From c434cad322b8d1bacbf296fd6d295afe77b4d5a6 Mon Sep 17 00:00:00 2001 From: alex Date: Tue, 11 Jul 2006 13:10:51 +0000 Subject: [PATCH] Patch level : 4.0 451 Files correlati : Ricompilazione Demo : [ ] Commento : Riportata la versione 3.1 patch 650 git-svn-id: svn://10.65.10.50/trunk@14148 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- at/agaat.men | 112 +-- at/at00.gif | Bin 0 -> 7927 bytes at/at01.gif | Bin 0 -> 12492 bytes at/at02.gif | Bin 0 -> 2462 bytes at/at03.gif | Bin 0 -> 64486 bytes at/at04.gif | Bin 0 -> 24532 bytes at/at2600.cpp | 6 +- at/ba00.gif | Bin 0 -> 12492 bytes at/ba01.gif | Bin 0 -> 12492 bytes at/ba02.gif | Bin 0 -> 18617 bytes at/ba03.gif | Bin 0 -> 64486 bytes at/ba04.bmp | Bin 0 -> 76678 bytes at/logo.bmp | Bin 0 -> 99254 bytes ba/ba0100.cpp | 301 ++++--- ba/ba0101.cpp | 3 +- ba/ba1400.cpp | 109 ++- ba/ba8200.cpp | 5 +- ba/ba8300.cpp | 5 +- ba/ba8300.h | 2 +- ba/ba8300c.uml | 11 +- ba/ba8300d.uml | 32 + ba/ba8301.cpp | 7 +- ba/f155.dir | 3 + ba/f155.trr | 9 + ce/ce2300.cpp | 3 +- ce/ce2300a.h | 4 +- ce/ce2300a.uml | 26 +- ce/ce2300b.uml | 687 +++++++++++++++ ce/ce3200.cpp | 3 +- ce/f140.dir | 2 +- ce/f140.trr | 6 +- cg/cg0100a.uml | 21 +- cg/cg2100.cpp | 9 + cg/cg2100.h | 8 +- cg/cg2102.cpp | 76 +- cg/cg2102.h | 2 +- cg/cg2103.cpp | 5 +- cg/cg2105.cpp | 14 +- cg/cg3600.cpp | 48 +- cg/cg6900.cpp | 39 +- cg/cg6900.h | 16 +- cg/cg6902.cpp | 44 +- cg/cg6905.cpp | 36 +- cg/cg6905.h | 21 +- cg/cglib01.cpp | 2 + cg/cglib01.h | 1 - cg/cglib02.cpp | 5 +- cg/cgp4.cpp | 6 +- cg/cgsaldac.cpp | 3 +- cm/cm1100.cpp | 6 +- db/dblib.h | 8 +- db/dbtblav.h | 2 + db/dbtblav.uml | 12 + dt/dt0300.cpp | 6 +- dt/dt0300a.h | 24 +- dt/dt0300a.uml | 46 +- dt/dt0400.cpp | 759 +++++++++++++---- dt/dt0400b.ini | 514 ++++++++++++ ef/ef0500.cpp | 11 + htmlhelp/index.html | 5 +- htmlhelp/pages/alto.html | 4 +- htmlhelp/pages/home.html | 5 +- htmlhelp/pages/sinistra.html | 3 +- htmlhelp/pages/sinistra_ba.html | 3 +- htmlhelp/pages/sinistra_cg.html | 3 +- htmlhelp/pages/sinistra_mg.html | 3 +- htmlhelp/pages/sinistra_ve.html | 4 +- include/bagn008.uml | 9 +- include/bagn009.h | 7 + include/bagn009.uml | 64 ++ include/bagnerrlog.rep | 28 + include/controls.cpp | 10 +- include/default.url | 1 + include/defmask.h | 1 + include/filetext.cpp | 7 +- include/form.cpp | 42 +- include/log.cpp | 142 ++++ include/log.h | 26 + include/mask.cpp | 42 +- include/msksheet.cpp | 35 +- include/printer.cpp | 67 +- include/printer.h | 4 + include/printwin.cpp | 30 +- include/printwin.h | 2 +- include/recarray.cpp | 14 +- include/recset.cpp | 9 +- include/report.cpp | 25 +- include/reprint.cpp | 186 ++++- include/reprint.h | 6 +- include/urldefid.h | 3 +- include/viswin.cpp | 18 +- include/viswin.h | 2 + mg/anamag.h | 1 + mg/batbcau.h | 1 + mg/batbcau.uml | 7 +- mg/mg3100.cpp | 406 ++++----- mg/mg3100.h | 8 +- mg/mg3100.uml | 141 ++-- mg/mg3100a.frm | 2 +- mg/mg3100aa.frm | 7 +- mg/mg3200.cpp | 282 ++++--- mg/mg3200.frm | 2 +- mg/mg3200.h | 8 +- mg/mg3200.uml | 134 +-- mg/mg3200a.frm | 7 +- mg/mg3300.cpp | 600 ++++++------- mg/mg3300.h | 8 +- mg/mg3300.uml | 124 +-- mg/mg3300a.frm | 2 +- mg/mg3300as.frm | 2 +- mg/mg3500.cpp | 132 +-- mg/mg3500.frm | 4 +- mg/mg3500.h | 11 +- mg/mg3500.uml | 104 ++- mg/mg4200.cpp | 1388 +++++++++++++++++-------------- mg/mg4200.h | 6 +- mg/mg4200.uml | 151 ++-- mg/mg4200a.frm | 2 +- mg/mg4200a.h | 18 +- mg/mg4200aa.frm | 4 +- mg/mglib.h | 14 +- mg/mglib02.cpp | 6 +- mg/mglib03.cpp | 28 +- mr/mr2100.cpp | 858 ++++++++++--------- mr/mr2100.h | 56 +- mr/mr2100a.h | 6 +- mr/mr2100a.uml | 34 +- mr/mr2100b.uml | 14 +- mr/mr2200.cpp | 662 +++++++++------ mr/mr2200.h | 14 +- mr/mr2200a.h | 1 + mr/mr2200a.uml | 11 +- mr/mr2200b.uml | 2 +- mr/mr2201.cpp | 316 ++++--- mr/mr2201.h | 50 +- mr/mrtblnp.uml | 1 - pdf/flate/adler32.c | 4 +- pdf/flate/compress.c | 4 +- pdf/flate/crc32.c | 4 +- pdf/flate/deflate.c | 4 +- pdf/flate/deflate.h | 4 +- pdf/flate/infblock.c | 2 +- pdf/flate/infblock.h | 2 +- pdf/flate/infcodes.c | 2 +- pdf/flate/infcodes.h | 2 +- pdf/flate/inffast.c | 2 +- pdf/flate/inffast.h | 2 +- pdf/flate/inffixed.h | 2 +- pdf/flate/inflate.c | 2 +- pdf/flate/inftrees.c | 2 +- pdf/flate/inftrees.h | 2 +- pdf/flate/infutil.c | 2 +- pdf/flate/infutil.h | 2 +- pdf/flate/trees.c | 4 +- pdf/flate/trees.h | 2 +- pdf/flate/uncompr.c | 4 +- pdf/flate/zconf.h | 4 +- pdf/flate/zlib.h | 2 +- pdf/flate/zutil.c | 4 +- pdf/flate/zutil.h | 4 +- pdf/pdcore/pc_carbon.r | 2 +- pdf/pdcore/pc_chartabs.h | 2 +- pdf/pdcore/pc_config.h | 2 +- pdf/pdcore/pc_core.c | 2 +- pdf/pdcore/pc_core.h | 2 +- pdf/pdcore/pc_corefont.c | 2 +- pdf/pdcore/pc_corefont.h | 2 +- pdf/pdcore/pc_coremetr.h | 2 +- pdf/pdcore/pc_crypt.c | 2 +- pdf/pdcore/pc_crypt.h | 2 +- pdf/pdcore/pc_ebcdic.c | 2 +- pdf/pdcore/pc_ebcdic.h | 2 +- pdf/pdcore/pc_encoding.c | 2 +- pdf/pdcore/pc_encoding.h | 2 +- pdf/pdcore/pc_exports.h | 2 +- pdf/pdcore/pc_file.c | 2 +- pdf/pdcore/pc_file.h | 2 +- pdf/pdcore/pc_font.c | 2 +- pdf/pdcore/pc_font.h | 2 +- pdf/pdcore/pc_generr.h | 2 +- pdf/pdcore/pc_geom.c | 2 +- pdf/pdcore/pc_geom.h | 2 +- pdf/pdcore/pc_md5.c | 2 +- pdf/pdcore/pc_md5.h | 2 +- pdf/pdcore/pc_optparse.c | 2 +- pdf/pdcore/pc_optparse.h | 2 +- pdf/pdcore/pc_output.c | 2 +- pdf/pdcore/pc_output.h | 2 +- pdf/pdcore/pc_sbuf.c | 2 +- pdf/pdcore/pc_sbuf.h | 2 +- pdf/pdcore/pc_scope.c | 2 +- pdf/pdcore/pc_scope.h | 2 +- pdf/pdcore/pc_unicode.c | 2 +- pdf/pdcore/pc_unicode.h | 2 +- pdf/pdcore/pc_util.c | 2 +- pdf/pdcore/pc_util.h | 2 +- pdf/pdflib/p_actions.c | 2 +- pdf/pdflib/p_afm.c | 2 +- pdf/pdflib/p_annots.c | 2 +- pdf/pdflib/p_block.c | 2 +- pdf/pdflib/p_bmp.c | 2 +- pdf/pdflib/p_ccitt.c | 2 +- pdf/pdflib/p_cid.c | 2 +- pdf/pdflib/p_cid.h | 2 +- pdf/pdflib/p_color.c | 2 +- pdf/pdflib/p_color.h | 2 +- pdf/pdflib/p_defopt.h | 2 +- pdf/pdflib/p_document.c | 2 +- pdf/pdflib/p_draw.c | 2 +- pdf/pdflib/p_encoding.c | 2 +- pdf/pdflib/p_fields.c | 2 +- pdf/pdflib/p_filter.c | 2 +- pdf/pdflib/p_font.c | 2 +- pdf/pdflib/p_font.h | 2 +- pdf/pdflib/p_generr.h | 2 +- pdf/pdflib/p_gif.c | 2 +- pdf/pdflib/p_gstate.c | 2 +- pdf/pdflib/p_hkscmyk.h | 2 +- pdf/pdflib/p_hkslab.h | 2 +- pdf/pdflib/p_hostfont.c | 2 +- pdf/pdflib/p_hyper.c | 2 +- pdf/pdflib/p_icc.c | 2 +- pdf/pdflib/p_icc.h | 2 +- pdf/pdflib/p_icc9809.h | 2 +- pdf/pdflib/p_icclib.c | 14 +- pdf/pdflib/p_icclib.h | 14 +- pdf/pdflib/p_image.c | 2 +- pdf/pdflib/p_image.h | 2 +- pdf/pdflib/p_intern.h | 2 +- pdf/pdflib/p_jpeg.c | 2 +- pdf/pdflib/p_jpx.c | 2 +- pdf/pdflib/p_kerning.c | 2 +- pdf/pdflib/p_keyconn.h | 2 +- pdf/pdflib/p_layer.c | 2 +- pdf/pdflib/p_layer.h | 2 +- pdf/pdflib/p_object.c | 2 +- pdf/pdflib/p_opi.c | 2 +- pdf/pdflib/p_page.c | 2 +- pdf/pdflib/p_page.h | 2 +- pdf/pdflib/p_pantlab.h | 2 +- pdf/pdflib/p_params.c | 2 +- pdf/pdflib/p_params.h | 2 +- pdf/pdflib/p_pattern.c | 2 +- pdf/pdflib/p_pdi.c | 2 +- pdf/pdflib/p_pfm.c | 2 +- pdf/pdflib/p_png.c | 2 +- pdf/pdflib/p_resource.c | 2 +- pdf/pdflib/p_shading.c | 2 +- pdf/pdflib/p_subsett.c | 2 +- pdf/pdflib/p_tagged.c | 2 +- pdf/pdflib/p_tagged.h | 2 +- pdf/pdflib/p_template.c | 2 +- pdf/pdflib/p_text.c | 2 +- pdf/pdflib/p_textflow.c | 2 +- pdf/pdflib/p_tiff.c | 2 +- pdf/pdflib/p_truetype.c | 2 +- pdf/pdflib/p_truetype.h | 2 +- pdf/pdflib/p_type1.c | 2 +- pdf/pdflib/p_type3.c | 2 +- pdf/pdflib/p_util.c | 2 +- pdf/pdflib/p_xgstate.c | 2 +- pdf/pdflib/pdflib.c | 2 +- pdf/pdflib/pdflib.h | 2 +- pdf/pdflib/pdflib.hpp | 2 +- pdf/pdflib/pdflibdl.c | 2 +- pdf/pdflib/pdflibdl.h | 2 +- pdf/pdflib/resource.h | 2 +- pdf/png/png.c | 2 +- pdf/png/png.h | 2 +- pdf/png/pngconf.h | 2 +- pdf/png/pngerror.c | 2 +- pdf/png/pngget.c | 2 +- pdf/png/pngmem.c | 2 +- pdf/png/pngread.c | 2 +- pdf/png/pngrio.c | 2 +- pdf/png/pngrtran.c | 2 +- pdf/png/pngrutil.c | 2 +- pdf/png/pngset.c | 2 +- pdf/png/pngtrans.c | 2 +- pdf/png/pngvcrd.c | 2 +- pdf/tiff/port.h | 2 +- pdf/tiff/t4.h | 2 +- pdf/tiff/tif_auxx.c | 2 +- pdf/tiff/tif_close.c | 2 +- pdf/tiff/tif_codec.c | 2 +- pdf/tiff/tif_color.c | 2 +- pdf/tiff/tif_compress.c | 2 +- pdf/tiff/tif_dir.c | 2 +- pdf/tiff/tif_dir.h | 2 +- pdf/tiff/tif_dirinfo.c | 2 +- pdf/tiff/tif_dirread.c | 2 +- pdf/tiff/tif_dumpmode.c | 2 +- pdf/tiff/tif_error.c | 2 +- pdf/tiff/tif_extension.c | 2 +- pdf/tiff/tif_fax3.c | 2 +- pdf/tiff/tif_fax3.h | 2 +- pdf/tiff/tif_fax3sm.c | 2 +- pdf/tiff/tif_flush.c | 2 +- pdf/tiff/tif_getimage.c | 2 +- pdf/tiff/tif_jpeg.c | 2 +- pdf/tiff/tif_luv.c | 2 +- pdf/tiff/tif_lzw.c | 2 +- pdf/tiff/tif_next.c | 2 +- pdf/tiff/tif_ojpeg.c | 2 +- pdf/tiff/tif_open.c | 2 +- pdf/tiff/tif_packbits.c | 2 +- pdf/tiff/tif_predict.c | 2 +- pdf/tiff/tif_predict.h | 2 +- pdf/tiff/tif_read.c | 2 +- pdf/tiff/tif_strip.c | 2 +- pdf/tiff/tif_swab.c | 2 +- pdf/tiff/tif_thunder.c | 2 +- pdf/tiff/tif_tile.c | 2 +- pdf/tiff/tif_unix.c | 2 +- pdf/tiff/tif_version.c | 2 +- pdf/tiff/tif_warning.c | 2 +- pdf/tiff/tif_zip.c | 2 +- pdf/tiff/tiff.h | 2 +- pdf/tiff/tiffconf.h | 2 +- pdf/tiff/tiffio.h | 2 +- pdf/tiff/tiffiop.h | 2 +- pdf/tiff/tiffvers.h | 2 +- pdf/tiff/uvcode.h | 2 +- ps/Interfaccia Contabile.pdf | Bin 0 -> 433343 bytes ps/indice_programmi.txt | 43 + ps/pd1579.cpp | 16 + ps/pd1579.h | 1 + ps/pd1579100.cpp | 292 +++++++ ps/pd1579100a.h | 3 + ps/pd1579100a.ini | 53 ++ ps/pd1579100a.uml | 33 + ps/pd1890.cpp | 21 + ps/pd1890.h | 4 + ps/pd1890.trr | 16 + ps/pd1890100.cpp | 186 +++++ ps/pd1890100.h | 5 + ps/pd1890100a.uml | 63 ++ ps/pd6030.cpp | 16 + ps/pd6030.h | 1 + ps/pd6030100.cpp | 76 ++ ps/pd6030100.h | 10 + ps/pd6030100.uml | 119 +++ ps/pd6030100a.rep | 286 +++++++ ps/pd6030100b.rep | 258 ++++++ ps/pg0069.cpp | 16 + ps/pg0069.h | 1 + ps/pg0069100.cpp | 719 ++++++++++++++++ ps/pg0069100a.h | 39 + ps/pg0069100a.uml | 285 +++++++ ps/pg0069conf.ini | 14 + ps/pg0388.cpp | 18 + ps/pg0388.h | 2 + ps/pg0388100.cpp | 254 ++++++ ps/pg0388100a.h | 5 + ps/pg0388100a.ini | 54 ++ ps/pg0388100a.uml | 1 + ps/pg0388200.cpp | 530 ++++++++++++ ps/pg0388200a.h | 9 + ps/pg0388200a.ini | 84 ++ ps/pg0388200a.uml | 76 ++ ps/pg0388conf.ini | 9 + ps/ps0544.cpp | 19 + ps/ps0544.h | 2 + ps/ps0544100.cpp | 254 ++++++ ps/ps0544100.ini | 251 ++++++ ps/ps0544100a.h | 8 + ps/ps0544100a.uml | 122 +++ ps/ps0544200.cpp | 408 +++++++++ ps/ps0544200.ini | 810 ++++++++++++++++++ ps/ps0544200a.h | 8 + ps/ps0544200a.uml | 122 +++ ps/ps0816.cpp | 2 +- ps/ps0816100.cpp | 4 +- ps/ps0872.cpp | 19 + ps/ps0872.h | 2 + ps/ps0872100.cpp | 70 ++ ps/ps0872100a.h | 3 + ps/ps0872100a.uml | 48 ++ ps/ps0872200.cpp | 238 ++++++ ps/ps0872200a.h | 6 + ps/ps0872200a.uml | 76 ++ ps/ps0913.cpp | 16 + ps/ps0913.h | 1 + ps/ps0913100.cpp | 453 ++++++++++ ps/ps0913100.ini | 134 +++ ps/ps0913100a.h | 41 + ps/ps0913100a.uml | 112 +++ ps/ps0913100b.h | 7 + ps/ps0913100b.uml | 87 ++ ps/ps0913100c.h | 5 + ps/ps0913100c.uml | 52 ++ ps/ps0920.cpp | 18 + ps/ps0920.h | 2 + ps/ps0920100.cpp | 175 ++++ ps/ps0920100a.h | 6 + ps/ps0920100a.uml | 96 +++ ps/ps0920200.cpp | 138 +++ ps/ps0920200a.h | 11 + ps/ps0920200a.uml | 150 ++++ ps/pt0195.cpp | 16 + ps/pt0195.h | 1 + ps/pt0195100.cpp | 512 ++++++++++++ ps/pt0195100a.h | 5 + ps/pt0195100a.uml | 38 + ps/pt0195100d.ini | 98 +++ ps/pt0195100t.ini | 209 +++++ ps/pt0195conf.ini | 20 + server/baseserv.cpp | 19 +- sv/sv1100.cpp | 8 +- sv/sv1200.cpp | 193 +++-- tp/tp0.cpp | 17 + tp/tp0.h | 2 + tp/tp0100.cpp | 599 +++++++++++++ tp/tp0100.h | 188 +++++ tp/tp0100a.h | 20 + tp/tp0100a.rep | 28 + tp/tp0100a.uml | 117 +++ tp/tp0101.cpp | 667 +++++++++++++++ tp/tp0101a.ini | 190 +++++ tp/tp0102.cpp | 516 ++++++++++++ tp/tp0200.cpp | 96 +++ tp/tpmenu.men | 18 +- tp/tptbtpc.h | 3 + tp/tptbtpc.uml | 50 ++ tp/tptbtpi.h | 3 + tp/tptbtpi.uml | 50 ++ tp/tptbtpm.h | 3 + tp/tptbtpm.uml | 50 ++ tp/tptbtpp.h | 3 + tp/tptbtpp.uml | 50 ++ tp/tptbtps.h | 3 + tp/tptbtps.uml | 50 ++ tp/tptbtpz.h | 3 + tp/tptbtpz.uml | 50 ++ xvaga/XFont.cpp | 674 +++++++++++++++ xvaga/XFont.h | 36 + xvaga/XTrace.h | 118 +++ xvaga/xvaga.cpp | 15 +- xvaga/xvt.h | 1 + xvaga/xvt_defs.h | 7 +- xvaga/xvtextra.cpp | 96 ++- xvaga/xvtpdf.cpp | 1201 ++++++++++++++++++++++++++ xvaga/xvtpdf.h | 125 +++ 443 files changed, 20145 insertions(+), 3560 deletions(-) create mode 100755 at/at00.gif create mode 100755 at/at01.gif create mode 100755 at/at02.gif create mode 100755 at/at03.gif create mode 100755 at/at04.gif create mode 100755 at/ba00.gif create mode 100755 at/ba01.gif create mode 100755 at/ba02.gif create mode 100755 at/ba03.gif create mode 100755 at/ba04.bmp create mode 100755 at/logo.bmp create mode 100755 ba/f155.dir create mode 100755 ba/f155.trr create mode 100755 ce/ce2300b.uml create mode 100755 dt/dt0400b.ini create mode 100755 include/bagn009.h create mode 100755 include/bagn009.uml create mode 100755 include/bagnerrlog.rep create mode 100755 include/log.cpp create mode 100755 include/log.h create mode 100755 ps/Interfaccia Contabile.pdf create mode 100755 ps/indice_programmi.txt create mode 100755 ps/pd1579.cpp create mode 100755 ps/pd1579.h create mode 100755 ps/pd1579100.cpp create mode 100755 ps/pd1579100a.h create mode 100755 ps/pd1579100a.ini create mode 100755 ps/pd1579100a.uml create mode 100755 ps/pd1890.cpp create mode 100755 ps/pd1890.h create mode 100755 ps/pd1890.trr create mode 100755 ps/pd1890100.cpp create mode 100755 ps/pd1890100.h create mode 100755 ps/pd1890100a.uml create mode 100755 ps/pd6030.cpp create mode 100755 ps/pd6030.h create mode 100755 ps/pd6030100.cpp create mode 100755 ps/pd6030100.h create mode 100755 ps/pd6030100.uml create mode 100755 ps/pd6030100a.rep create mode 100755 ps/pd6030100b.rep create mode 100755 ps/pg0069.cpp create mode 100755 ps/pg0069.h create mode 100755 ps/pg0069100.cpp create mode 100755 ps/pg0069100a.h create mode 100755 ps/pg0069100a.uml create mode 100755 ps/pg0069conf.ini create mode 100755 ps/pg0388.cpp create mode 100755 ps/pg0388.h create mode 100755 ps/pg0388100.cpp create mode 100755 ps/pg0388100a.h create mode 100755 ps/pg0388100a.ini create mode 100755 ps/pg0388100a.uml create mode 100755 ps/pg0388200.cpp create mode 100755 ps/pg0388200a.h create mode 100755 ps/pg0388200a.ini create mode 100755 ps/pg0388200a.uml create mode 100755 ps/pg0388conf.ini create mode 100755 ps/ps0544.cpp create mode 100755 ps/ps0544.h create mode 100755 ps/ps0544100.cpp create mode 100755 ps/ps0544100.ini create mode 100755 ps/ps0544100a.h create mode 100755 ps/ps0544100a.uml create mode 100755 ps/ps0544200.cpp create mode 100755 ps/ps0544200.ini create mode 100755 ps/ps0544200a.h create mode 100755 ps/ps0544200a.uml create mode 100755 ps/ps0872.cpp create mode 100755 ps/ps0872.h create mode 100755 ps/ps0872100.cpp create mode 100755 ps/ps0872100a.h create mode 100755 ps/ps0872100a.uml create mode 100755 ps/ps0872200.cpp create mode 100755 ps/ps0872200a.h create mode 100755 ps/ps0872200a.uml create mode 100755 ps/ps0913.cpp create mode 100755 ps/ps0913.h create mode 100755 ps/ps0913100.cpp create mode 100755 ps/ps0913100.ini create mode 100755 ps/ps0913100a.h create mode 100755 ps/ps0913100a.uml create mode 100755 ps/ps0913100b.h create mode 100755 ps/ps0913100b.uml create mode 100755 ps/ps0913100c.h create mode 100755 ps/ps0913100c.uml create mode 100755 ps/ps0920.cpp create mode 100755 ps/ps0920.h create mode 100755 ps/ps0920100.cpp create mode 100755 ps/ps0920100a.h create mode 100755 ps/ps0920100a.uml create mode 100755 ps/ps0920200.cpp create mode 100755 ps/ps0920200a.h create mode 100755 ps/ps0920200a.uml create mode 100755 ps/pt0195.cpp create mode 100755 ps/pt0195.h create mode 100755 ps/pt0195100.cpp create mode 100755 ps/pt0195100a.h create mode 100755 ps/pt0195100a.uml create mode 100755 ps/pt0195100d.ini create mode 100755 ps/pt0195100t.ini create mode 100755 ps/pt0195conf.ini create mode 100755 tp/tp0.cpp create mode 100755 tp/tp0.h create mode 100755 tp/tp0100.cpp create mode 100755 tp/tp0100.h create mode 100755 tp/tp0100a.h create mode 100755 tp/tp0100a.rep create mode 100755 tp/tp0100a.uml create mode 100755 tp/tp0101.cpp create mode 100755 tp/tp0101a.ini create mode 100755 tp/tp0102.cpp create mode 100755 tp/tp0200.cpp create mode 100755 tp/tptbtpc.h create mode 100755 tp/tptbtpc.uml create mode 100755 tp/tptbtpi.h create mode 100755 tp/tptbtpi.uml create mode 100755 tp/tptbtpm.h create mode 100755 tp/tptbtpm.uml create mode 100755 tp/tptbtpp.h create mode 100755 tp/tptbtpp.uml create mode 100755 tp/tptbtps.h create mode 100755 tp/tptbtps.uml create mode 100755 tp/tptbtpz.h create mode 100755 tp/tptbtpz.uml create mode 100755 xvaga/XFont.cpp create mode 100755 xvaga/XFont.h create mode 100755 xvaga/XTrace.h create mode 100755 xvaga/xvtpdf.cpp create mode 100755 xvaga/xvtpdf.h diff --git a/at/agaat.men b/at/agaat.men index 64186579f..fe6be2cf8 100755 --- a/at/agaat.men +++ b/at/agaat.men @@ -1,6 +1,6 @@ [AVIS_000] Caption = "Menu principale" -Picture = +Picture = Module = 0 Flags = "" Item_01 = "Archiviazione", [AVIS_001] @@ -9,12 +9,13 @@ Item_03 = "Benemerenze", [AVIS_003] Item_04 = "Stampe", [AVIS_004] Item_05 = "Statistiche", [AVIS_005] Item_06 = "Procedure personalizzate", [AVIS_006] -Item_07 = "Anagrafiche EUROCAMPO", [PRASSI_001] -Item_08 = "Manutenzione", [PRASSI_015] +Item_07 = "Anagrafiche EUROCAMPO", [AGA_001] +Item_08 = "Manutenzione", [AGA_015] +Item_09 = "Preferiti", [MENU_PREFERITI], "", 10216 [AVIS_001] Caption = "Archiviazione" -Picture = +Picture = Module = 17 Flags = "" Item_01 = "Soggetti", "at0 -0", "" @@ -29,7 +30,7 @@ Item_08 = "Tabelle", [AVIS_0012] [AVIS_0011] Caption = "Operazioni periodiche" -Picture = +Picture = Module = 17 Flags = "" Item_01 = "Chiusura", "at0 -5", "" @@ -39,7 +40,7 @@ Item_04 = "Verifica integrita' dati", "at8 -4", "" [AVIS_0012] Caption = "Tabelle" -Picture = +Picture = Module = 17 Flags = "" Item_01 = "Sezioni", "ba3 -3 batbsez 96", "" @@ -59,7 +60,7 @@ Item_14 = "Tipi/Esiti controlli sanitari", "ba3 -0 tcs", "" [AVIS_002] Caption = "Convocazioni" -Picture = +Picture = Module = 17 Flags = "" Item_01 = "Scadenze di donazione", "at4 -0", "" @@ -69,7 +70,7 @@ Item_04 = "Convocazioni su punto di prelievo", [AVIS_0021] [AVIS_0021] Caption = "Convocazioni su punto di prelievo" -Picture = +Picture = Module = 17 Flags = "" Item_01 = "Gestione", "at4 -4", "" @@ -78,7 +79,7 @@ Item_03 = "Stampa", "at4 -3", "" [AVIS_003] Caption = "Benemerenze" -Picture = +Picture = Module = 17 Flags = "" Item_01 = "Proposta benemerenza singola", "at1 -0", "" @@ -90,7 +91,7 @@ Item_06 = "Inserimento veloce", "at1 -5", "" [AVIS_004] Caption = "Stampe" -Picture = +Picture = Module = 17 Flags = "" Item_04 = "Segreteria", [AVIS_0041] @@ -99,7 +100,7 @@ Item_06 = "Di controllo", [AVIS_0043] [AVIS_0041] Caption = "Stampe segreteria" -Picture = +Picture = Module = 17 Flags = "" Item_01 = "Per categorie", "at2 -6", "" @@ -117,7 +118,7 @@ Item_12 = "Tessere associative singole", "at7 -1", "" [AVIS_0042] Caption = "Stampe sanitarie" -Picture = +Picture = Module = 17 Flags = "" Item_01 = "Sospesi", "at2 -0", "" @@ -130,7 +131,7 @@ Item_07 = "Turni per controlli sanitari", "at5 -2", "" [AVIS_0043] Caption = "Stampe di controllo" -Picture = +Picture = Module = 17 Flags = "" Item_01 = "Donazioni", "at6 -2", "" @@ -142,7 +143,7 @@ Item_05 = "Tabelle", [AVIS_00431] [AVIS_00431] Caption = "Stampe di controllo tabelle" -Picture = +Picture = Module = 17 Flags = "" Item_01 = "Sezioni", "at6 -1", "" @@ -159,7 +160,7 @@ Item_11 = "Professioni", "ba3 -1 prf", "" [AVIS_005] Caption = "Statistiche" -Picture = +Picture = Module = 17 Flags = "" Item_01 = "Mensile donazioni per tipo", "at3 -3" @@ -174,7 +175,7 @@ Item_09 = "Soggetti per comune domicilio", "at3 -8" [AVIS_006] Caption = "Procedure personalizzate" -Picture = +Picture = Module = 17 Flags = "" Item_01 = "Rimini", [AVIS_0061] @@ -183,7 +184,7 @@ Item_03 = "Parma", [AVIS_0063] [AVIS_0061] Caption = "Rimini: procedure personalizzate" -Picture = +Picture = Module = 0 Flags = "" Item_01 = "Acquisizione dati da CT", "at8 -2", "" @@ -192,7 +193,7 @@ Item_03 = "Estrazione dati per aggiornamento", "at9 -1", "" [AVIS_0062] Caption = "Bologna: procedure personalizzate" -Picture = +Picture = Module = 0 Flags = "" Item_01 = "Trasferimento dati a CT", "at8 -6", "" @@ -200,7 +201,7 @@ Item_02 = "Acquisizione dati da CT", "at8 -7", "" [AVIS_0063] Caption = "Parma: procedure personalizzate" -Picture = +Picture = Module = 0 Flags = "" Item_01 = "Aggiornamento dati da SIT", "at8 -8", "" @@ -210,25 +211,25 @@ Item_04 = "Conversione tipi donazione", "ba3 -0 pr2", "" Item_04 = "Estrazione dati per aggiornamento", "at9 -1", "" Item_04 = "Aggiornamento dati da estrazione", "at9 -2", "" -[PRASSI_001] +[AGA_001] Caption = "Gestione Anagrafiche" -Picture = +Picture = Module = 0 Flags = "" Item_01 = "Persone fisiche", "ba4 -1 F", "" Item_02 = "Persone giuridiche", "ba4 -1 G", "" Item_03 = "Ditte", "ba4 -2", "" Item_04 = "Ricerca Soci", "ba5", "" -Item_05 = "Tabelle ministeriali", [PRASSI_011] -Item_06 = "Tabelle", [PRASSI_002] +Item_05 = "Tabelle ministeriali", [AGA_011] +Item_06 = "Tabelle", [AGA_002] Item_07 = "Stampa anagrafiche", "ba6 -0", "" -Item_08 = "Stampa tabelle", [PRASSI_003] -Item_09 = "Stampa tabelle ministeriali", [PRASSI_012] +Item_08 = "Stampa tabelle", [AGA_003] +Item_09 = "Stampa tabelle ministeriali", [AGA_012] Item_10 = "Stampa fogli libri bollati", "ba3 -2", "" -[PRASSI_002] +[AGA_002] Caption = "Tabelle" -Picture = +Picture = Module = 0 Flags = "" Item_01 = "Codici IVA", "ba3 -0 %iva", "" @@ -243,25 +244,25 @@ Item_09 = "Vecchi cod.Attivita'", "ba3 -0 %ois", "" Item_10 = "Stati esteri", "ba3 -0 %sta", "" Item_11 = "Gestione profili deleghe e distinte", "ba2 -0", "" -[PRASSI_003] +[AGA_003] Caption = "Stampa tabelle" -Picture = +Picture = Module = 0 Flags = "" -Item_01 = "Codici IVA", "ba3 -1 %iva", "" -Item_02 = "Codici Attivita'", "ba3 -1 %ais", "" +Item_01 = "Codici IVA", "ba8 -5 %iva", "" +Item_02 = "Codici Attivita'", "ba8 -5 %ais", "" Item_03 = "Condizioni di pagamento", "ba3 -9", "" -Item_04 = "Classificazione pagamenti", "ba3 -1 %clr", "" -Item_05 = "Libri sociali", "ba3 -1 %itl", "" -Item_06 = "Banche", "ba3 -1 %ban", "" -Item_07 = "Codici statistici", "ba3 -1 %stt", "" -Item_08 = "Cariche sociali", "ba3 -1 %crs", "" -Item_09 = "Vecchi cod.Attivita'", "ba3 -1 %ois", "" -Item_10 = "Stati esteri", "ba3 -1 %sta", "" +Item_04 = "Classificazione pagamenti", "ba8 -5 %clr", "" +Item_05 = "Libri sociali", "ba8 -5 %itl", "" +Item_06 = "Banche", "ba8 -5 %ban", "" +Item_07 = "Codici statistici", "ba8 -5 %stt", "" +Item_08 = "Cariche sociali", "ba8 -5 %crs", "" +Item_09 = "Vecchi cod.Attivita'", "ba8 -5 %ois", "" +Item_10 = "Stati esteri", "ba8 -5 %sta", "" -[PRASSI_011] +[AGA_011] Caption = "Tabelle ministeriali" -Picture = +Picture = Module = 0 Flags = "" Item_01 = "Comuni", "ba4 -0", "" @@ -272,27 +273,36 @@ Item_05 = "Uffici IVA", "ba3 -0 %uiv", "" Item_06 = "Uffici registro", "ba3 -0 %ure", "" Item_07 = "Centri servizio", "ba3 -0 %ucs", "" -[PRASSI_012] +[AGA_012] Caption = "Stampa tabelle ministeriali" -Picture = +Picture = Module = 0 Flags = "" Item_01 = "Comuni", "ba6 -1", "" -Item_02 = "Uffici concessioni", "ba3 -1 %ucc", "" -Item_03 = "Uffici imposte dirette", "ba3 -1 %uid", "" -Item_04 = "Uffici IVA", "ba3 -1 %uiv", "" -Item_05 = "Uffici registro", "ba3 -1 %ure", "" -Item_06 = "Centri servizio", "ba3 -1 %ucs", "" +Item_02 = "Uffici concessioni", "ba8 -5 %ucc", "" +Item_03 = "Uffici imposte dirette", "ba8 -5 %uid", "" +Item_04 = "Uffici IVA", "ba8 -5 %uiv", "" +Item_05 = "Uffici registro", "ba8 -5 %ure", "" +Item_06 = "Centri servizio", "ba8 -5 %ucs", "" -[PRASSI_015] +[AGA_015] Caption = "Manutenzione" -Picture = +Picture = Module = 0 Flags = "" -Item_01 = "Archivi", "ba1", "" +Item_01 = "Archivi", "ba1 -0", "" Item_02 = "Compatta tutti i files", "ba1 -2", "" Item_03 = "Utenti", "ba1 -3 agaat.men", "" Item_04 = "Attivazione moduli", "ba1 -4", "" Item_05 = "Installazione moduli", "ba1 -6", "" -Item_06 = "Backup", "ba2 -1", "" +Item_06 = "Creazione dischi di installazione", "ba1 -5", "" +Item_07 = "Backup", "ba2 -1", "", 10213 +Item_08 = "Generatore query", "ba8 -1", "" +Item_09 = "Generatore report", "ba8 -2", "" +Item_10 = "Convertitore da form a report", "ba8 -3", "" +[MENU_PREFERITI] +Caption = "Preferiti" +Picture = +Module = 0 +Flags = "" diff --git a/at/at00.gif b/at/at00.gif new file mode 100755 index 0000000000000000000000000000000000000000..875f5d9367273d52553fa086df63868e588a39cb GIT binary patch literal 7927 zcmcInuROKtfuY0R!nqx}`gW(W8{^8lBP|GC~PK(m<535K&PP z712F@fB(aCU)RYu_jz&7bORMd-Bu!~aki!@O2*R-<6n}^|USzq@J3$PCM@eh|(z9X;DNk#nt z1bGeuwwPg$K;T0V)gOA6Lpbsb1v^AR|1dKhvap;p@vUD(zq^S3&By)(1N+X;@=H=- zN?7DTQ25UkQHs3$FMfk$6$ra9Pl$kj95!?VOIEY&BnDAYSG)VnY|f*2BB?C#m*?lI^U-WcZ580I+?9nlmS z)~|0gt7rDWz--0baM{jo(bVR-f%bbG?$32&inYy|z0dRwCyFb6&dK4_-+#eB=#PEQ z&G@Y7z~lnI-g`0Wv$2WiqteKJX`vBi{Z<{O0sQ5mo8rBu_+E3*UU&8J(D)rF)sst? zA7DA=B}C3aAPS6cMZ)C1In$i6)O3Kvyot%YvHxs<(Zi5{WXYLygDQeiU8d=14!$$* zMoU6OVRmqLtx;p6W!s>`y%N)zWdF&`kj2Ef^$MT+l~D^>F`qlU<~u!B@7p)6hUCn7 zHBZHjKEQ9yIg#(BDW>E_Po(3ny%#q&9-?F2!!lAx9?aj9HBt>sEug{Bx{&LzZ55Up>g-l6xyU)%j*I?Skv+^S%3} zb2XaN4N~BlvaceVNsg-D^SH;qN9-ul_RGoALQ>c?@|(JBavqd!w* zy&s5tMV<9m0xDcXz>XO^CBPbMb`!BBE4xXIW$3+RW=nYz-oy*Goyr}4z-i;3GYO^> zpz;7C1Z&yZ5uyWg`{~K002rR2H#DVgQJ@A!DE7?p-c0%<{Mtz@r-oY7T??7QY$_a; zlqau+d{cmw;YeX%ed+{eG$){EnN3pB)QnnLHiC=>YJ?<&)(TYuvz<b%0}}m(x#1UtnYnyZ+c)!K9e$*(#oO3oby`c^C#SB*X&J6jyozjxN-rhCLj}C?Pizu~j4R=l1=G|z5 zb@Vo1qz}C<YO6CU&m}&;Idsrm#kk>x+D^Ha@o&s z?v_Ak=eEP6wqzXZHs#E3#_ZKNX6C2mxEwSIX(i#;gLO41e9nOqrqXJv%$XeWvm_>2o3BIPc_eD89xqIt`Lkp%4p$5nOr+-y zh^4J4yd=V_R4VW}j#GmOk@hOhKDm=jtDJS8*aIb#V2nj(>_^NR&?(Z2EPXwET(v|E z8H!G$=D;8*zDc==?PKCMu#2&6lU9P1Gl1-#P6K(Sae$Z zBvDN=u`69g&yiK?JIF>@i_>@J@fRP|gRNV;)U4hK>kkh&G3eww#cgo3v~?RF=uIdO zp+W=aAuiU_$}YuS@4W)gJt|!dgo({T_z_@fyqj$+l2-^)G+MJk@C|mwok1--IC%M4 zD!E>x#h7@xz*nT)De7LWYf+eZiZWylLhTUa(T>H+c#(I8-4n&7b7^q`V!K5Hk4N#)!MtPy&?F9j$O+$5HMy=&J7;* z0tnAWrtSMMpP+T32;RFl&m<~nqjdc2^;ccSX@vuJISpwBIj5WV&{e|3$FD6*Qv{*3 z70k;AVy5dpjm)uvVYs_E+jR{xOxQHZ(J{+2$3R)5xoPy^NyRl(6ndlTB%J{{ zYBBzE6`eVmEJ14u9$PZQ1hdzt{sjzU;s|y|v75G~bA))sqUh3X1Wc@MK!6vx8-I7N-UwP2VynizG3@w#*?U$1*| zaq9Cbuk5jMZ>bwnB*(v&8})N4L(}Pt64$?QVkX1o$VM5l%*Xrq3j3g7+c-sB(12?aseD8@T{1dOAD}`a6~h5 z<3*@Av--b?o~FuqYO?uENh!Q}f3EQAqbYAEbt$;v0^hQd?**r3!4u)6ac_cNu z?3>aHQ|e`ZJdBuU7z#cuzGPZ^qmg6+6$V~QYfm0x%YUcRkO*CT+-)y^CTF>h7u7u* zf1$$+<=nlDhU=_ku`?<=Mc>AG^$(}|LxMNtsjn$BN7eu>bW)Iy!ft#p*b9W>1N0 zx)na!kmX4*2&)btI(Q!-m?VWInQEfYogRu2bS`Q9>*t-<11#Owut-N$RO4S&InV_r zpU$h9(D_{i*X66#EAz1{BOC%-VfQ5HeU*_C zYQuv!`vZPFgRHubv9tl>o|3OjH{Vvr{P}{8e%V;Rlg>dE&CbpW{nGdVx=6MU^%S4^ z^o|)6&7KM3qB$?*k%d-^ugPuXn3n2o`UHR^vLv``K$~HXJiFf1NZNh2xJ#RMEbGp>GrGOV zP(C1H+4O1|jm}Dh7Mrw%G8K$Y3TCvzHKXOh(eD)8kJ6a5L`%}Z_TYPi4%1iN&)vil zdw~m1@pn=rO@6gQI6KyUPjZlt-^x$W-9Q>2OT_MlKcf`KD0IiG`2)xW;;`>36q?w-J-&PlFyDME&d2VD(L;%aDev?8WaC(x)jOShZ& zQhyieib#N@iiY4~R*NI9YK5X#B+(eS(k$vT4dGS_t$0afNl6N|GXvgTN2+|3lrfw5y3)8r`&KC>Sb#r7Oq&f2U0e%7kHBnMbdhwW&1Qa zcAnC~P2v`ktdn^yxmGf9%qF5MY|fN9-2iyjyu6#9tZ1(pM?1*cERexr<{uxpKGi|7 z+qM5y3=|Ys5}9Y}0f+}GTuF)nwEcL^Z<+CfZvhGqpg1Az{Pdx8q=MK7GZF0{fL@pC z&=ks24Lh?DrQwApN3v9LmvfnA7LJ}2)^rnRYHyR%qUe_k;7$_+&PW}d1NB3u< zXx~#H7RCj(zO&gAVj&Ee4;Rav`ef?HA>N48cA4Msd)PZ`OE6%X$E6Z?oN9ISwLH9lbLl-Pcm2iQP2S z9n%pJGzAsCa=e5)swVzxjW?l4`VYSn#fRBGnR?J+pr5RjROP}GwdHubAiw8to5_)6 zwXp!2`4TO+rDh%k6ic@ddbU}-AaBt-k2xU%ev{QdXuz*$Dg~!wCCb!jFvP*M!UE@N z6{O#{ep#>jVysW}=D&rzB9gCL10i2g)Z==RlmAG|;qEL+{H!j8RZV%7zHvRLF$kC| ztv`C}Pa_pJF#t$Q)~n6L}G#s1-Cc_iU@&X1BG#GeQqICjw#8N~n!T7q2 zZ4&r(BM)amkqAn2x3yf#pPE!v$r;P&2}G*3p;tWW5%IZahB>^Mbp=2Wq3Ls?zKbQQ z@4&{(Ep1r8aEOQ)IVgK=mQYh%33y%S>+1Mz)5O(t`-YI{Tm4emy}COoHIM|taCAzZ z6EFhJoMviU5WXv_gJ%kAN06xP>f3ww8>Enp+CM>tPQd+Ncda6UFiDBm)HmSj)YH*1 z_y8J`&3gs@?Gf95tr_MQWmz3<3q#{ zg)ft5^;&r8)n0NTB%uwv7%0TiNuAr?peM`wjd0PoESe0JH|zZ|4eSs1-2-Wh>>2br zH}EfJ__Ov&lpw@x0H1mbt`=X3->u@Jy<1Vhie!&L8wNMTw11`B7u9h?v~Q@{QA!?I zi7cmEwekGj%GT)DmT^`2Al{r#OsR#*LQ*y82^f|@C@}7b7Oe zO-!tZ*Pcc(T!xSC(X^J!U#)Ev3*;CgTS&hTi~9T;z#rG7wYGbUGEGFwp()4ZQ7vQi zwm_6|!sB58&px)f-kjXl5E7bm^m~kdFYo?yi`QInS|0)mzKaQ)S$&HsIX!GX_H6~X zw;rJ=J~W$EK(pV zHP*RD_`?GW?~?Wp!k*g^DHYW;edGLY$X-d8TJGTM>ni){b^J~}xQzMd4cR8G(lHO~ zS#J8ci-F^PkXMeApV%Qox`eO&oJ*YMd=Z1R{s9uwRofK-I*%TlZQikq7Qfyu7J5#a z41UNIv{amjRGz#%gZEBV2cve8Q}#`gc%WEvrbKM9?5LGZHldnZia#fqR56OHM-HxC z+p|w@A4Jm3FYUP2g1;cT9{Qua%|d(tzvJ<*VeH=;kk8YRd@NjjQPYS3 z+(p?5$PZkJ$5$&i3IC~3KMwAqTGG3i5XiWsOX!#7rmSk9yFe54ssdg9{FU=A_9jai zz?{&O@Z&YGc_&E9d<9^8XYs4pvdo-uD3Uy~HxQZ}#DRF9T@J5cqjf%%5fH}3) zs#22Z(oJB>x!GWx?ZvA#!T_gtmINCK6o>#bw_{dZ41!g>@P(^coNZ-<`Fy)n&e=Jm zK~2MRP|zYW%dlKUsNj}!KND&A{0XrN{1ik9L0STjS?{x1`=q$Hj?u|4EiP@qFw^8E z%TK@8`d&DM@+oj2>Gb_Be^%jU!$42YOp`V(j$#KpPkms{^m%{cn@pBm-@a&@XQO+u zHrOt$I2fPB%kA!qbX|eQeA!rcSpCeE^&o~}t6@y26tOU#!Bz;W{5r4^{GiTm^4hpX ztGfKFBcwI@A+u}@H}i636oYWtz2-`LndP2a$UUf39mTIV)&v|0F!3zcy?86d*|W)o zfnTt-W^s<#v!|vZA%-GfV#^Rh9JJWG7QU~X=^nlo=q0bI>+V+;A~y$Gx_7b*I8=701Mj}%&&ao*L*}=a>AGd3y1fc+m>@`ZTqbJXUwk*g zK3{Svcxq3FwqmzQGs`vq!SU=%!&@KlI>^>U8OGZpaOV|T(E}Q1dIgSLoGNfE_|l0v zmG}77SHqFp6Ds)yCLF5B-OCa7YDn1={I}s2;i!t|DIZ_x489Gfq0Obu_+3{PBy)ec z^&MjY+_V0k8|1?$pj&mCH80{AXBre4)8@RvnY!=Uleip6pF{F(I1_yka zsA_^X&e2>e4QXos#0`e4NP&-pXPt_yTD!p`0bp^i;Ez*7T|;y{=$+}ZRvrWlz^iW`VEX`E&57;&X91pN=Xg>?k?8r)elS1qaB9t|E5i9 zBA^&q%Mk>Bf5VMug&lz*T~nMBka*Sk2oq|IT)!N2+m}ouSn65MX4KY~8qV%1u}AoP zM&9|@qcFbvRXnZxn2wUmPFX&iMa}=>`k$eDMY63r$a6zK$O0& z-pc~`txkXD(P7C4e^EcFKpMMhiPQ|2v`UQkG*THZvW~Hu>}zGPbRy2t`_r1YFRG|! z1un5`XYm+T$#@0rt0B?yHOU<7PC5WbeDh4H**pDG6;$g9hxx%u9;Y7RX(=jMr`FKf zNO@tc<$4*e(4U(ac4(QbHy$@`o!6#UbKmc0!i)ic z3m(9gpI&}hC8O7`ZC`Y(Ih%R0PFW-onm&W_2Ds0yy|kAuN?&To3Nc=KSm~PAWoZ*O z)82SNF8rbrhJqO7v2;{o>Tf)%@ex@jKkbnTcrFile`&d#UJT-PgLOrVdt-L&$oA*QPW19+X{U@rQX?UnHFNdH_rxL+4F5VR)KrcE~(AfCS4{oyqd~@NcuF8fzmopS2VX|YImFWElginN15pMM#>!1Wrd=8_?cu@u$gsvbW%e6EZp>>JSd2X z>iazYn{{Yq=A6YBu(E{G%1{|TA$q~AfNN!nV@zVuL1vWre6(ADzLcYzuMoeFZMUlY zAbsd$GbMRi+NiT9_Rg~6qcZ{>PYe4u6W)olyK6sT9dmHtgxgpi$^0j16wTw8VfOAR z_m_FWiD)Jb#@4xX21CsDfq?0A7xMu#69%6;x_#yS)$H>#+9AuZj4-v)sqI25^hN4$ zk)8dUb<08q{ZdUFHg5VvuQzU+eU5E~^Y`SFRv1hU?YW7`@_@9au7_-_)nL%P>?W`A z>UZqcRUM$yY99=7PF(=E-w~{w+BSwVp8i>IdSaf))SJCL8cS(}1b$o{s%v`d_a#>k6<(|5i4P$p(e*&Vu9y8D=R&`*V5vSnWOHfX^6#)vG8l#*k zc(~~4B~qXTEwqUD>SQGGvW)P*6H7pjp8#p$=2rlzB-q60@mPttO|w|OrnAd5Ak`ih zUgl15{ymM(gsp4l;SmHoXIh3@0Sz>3Hu}!!eTWD9SaY(P1HOQWM(b3}{3JldgHVTu zz15RB1XiaC9M>iDI_}!n5ZP8VYh^xla!QkiLgU&vfk#-yn}(rD{8h}wP=!$ zAz*ES%Q)AQ7l#wR$iJwbQ3S+8}NQ1fF{05PgN!Z!_ z*_LCZT75o!cGK-qzPSb`gJO!->`U;}OU4GY zn_pnoZJXRndrx)Wy$QzJM)5X#c;`qn*3(;ENd#unmYe$Nv_5FzD7GOfE^1~%L+2Y# zeVT>^^Z@}EO0r~Mft9d9Xov;(Vy5M!alHO(X4gP4;(=}sEcPL0N68iU$P0|j>8lsG zm4Gmw1Z#7U^P=Z1G@2VR)VHx_xM(}XwT6t0=oJ6onywaCibg|Jy**XL1=z!PlhHC{ zxK5ymdG%KEWp+}lkssKie~bEV_-30km9I5fpSGu{u)UFe7CVE6)yGjYb{=bR=NMD7 z)=|nK=?wxM zlYW6IO4}JzBswL4&QI)sH(QcATlpynYne;8&)Y}~qOMX&39LR0e=@rB;w9DxlOcXo z!^j1wLv%PKU~VLuybPlB@OtX-9WTD_sLYM=7G<*ytFeB&9*xfuP7MzH|vVIz$CT zC6yKs-S>X?$NhDm`{O+4+~+>$IYuUis%oBOAQ_kl_clE1rkorP`DA=0_`{V|EClQ@ z9N|XSoOLy${P-O_`F(IGLoE7^o1W4g6O@sOgMm@Fvrib#*4Ed>>$b-YTwt(-uHNx5;{%@m}f~Mn*|CHZ?YWDX!k-ckEIFf>Lh>KZ}a&xu0;;4__2bC`)H& z&E=IYLhc^w^FHJaaVWBk=t*iS6^scyip&`Gwdb!y-SGc&%Hg9 z@MtbCX5qQ*L~Y>G+W=a!Gp*QcJMPi9tjA}BN3{Ha-?{hK>rJ*gOt(Ai_8Tou-x?fu zI_>`ByZX;VT6yUCEB~{ui0xk4pFOC(KAB$w*DfZNKlD2F^xt0`2>dqS@Vnpeq}Q1? zr9+!_UmL!=JrMbAGV*-T=WHbMVlId_9e%d` zOg2!A@{b!Rw36OG&j%*@6NY*V=lkO42lM9^ z)8?k~-@j{qH$qt&s+*gkto0Fo^yh5P5@_#;Cu7CGmq>p;7JnIdwl-USGEnzxpoO-R z@nfTzwoye}p`4vG{W+n~{{E%WX#bI4*ZL6KEG|rZG9c`1Dz{+Lr6_F)T4)xA^3; z9_Fg(Yb9Z865*VX9Wf0B$^O{?!J!!XO`58#>U(l7adk!@7aBkZ?Vpa}Zh zJ*T|g_%i`U{d)2`6Ma9Ns026&?yvq{V{LNYE?fnL0b9-#sN zmqga%yTjNy^!31e=+_&CX%&>-nQI*U&bJTill?n|&32zRlT985l*@M-Rn=^%X~J0w zk5lUKz~;u{s7;aj;+mz&#%q=gvb5LOFsZ5)0@FK&@P78cK4m?ivRc%Ux`*Z#H{kA_#~~?(G`?g)Fcbx$CZ<7?I8nrv5FZ&BG0#HbHn11dRv{p zexlRoiZ=+}d%6ub1>{$m<=X&yD-%*b1i;IzT)mS><|eEQ+*r2#;remDM5NHOv!~^w zBX7TYF^Z+V-QD&5UVEJ>(s=3lp6}4N+tMX`UiH#=_C4rn7VpNpfVk`>rXUI+)*8ba zNVd+uj0bYp!nD-9#?~POu#RuK*0ZVXi9xS+KHn9?Z4<|+1V@Q?!^U!TH?kRD910rv zK2w*h1JL2V4E1{GFLYq?wK@!cd3$mb zY6#bqjpP{dt_7kPh0`5*o4bsh-t~@fU;T-D#+_E3s?~ygCNdzV4>Nm@u(fll(#rPr z*@cfHQO9=45tz|TxLkI>VIc%G*O?8a{{`YfVh~s?n15%5jox?#D2D?w7CK&I8pL{( zn&r?-&FOQMB`IEMWsa0zXg#LN$bn*gm_N^}Cj+seBC5Or~?;LMC*G6FkK= zm`UYIZtl-5?Fj$?rEvJ`C)5OV+bWFXysGAwho)UM0P%DPt9TZn7RD-n4MIFxz$R$g%`+WI@HEs8;OjFdpp_<*X;cpg%sQ4S z4Q=`*cMuokL^P&b1MrCZ;|fD>ak6)-5D-w1WZyI+zT@e)BWd#>@!?bb?h?y#BS@Nh zPMVvzqFXb}GmR_hUfXv)aXKtHuc7A=GqN?sWmdGGVoI75Q)QDi0sU3I#i#EAz^w5Ex@bDh#WgWzv#8LH#27Q>#Kk9s#R6gZ|UjcXw2Z|s7 z+^?%Uw;wW%oE^OvXL{E)JL(o3NN1kOg7xTgnkUEMPWu2))C%d^zX|aQctC?5jnSj3 zB~@rmNY|r6?4XZY)yXZCes*V8+MuqX*57I0uS+D%a!0M7RzyaRu9@c`i20pMp4en8 zpmo`PhxipERv1u$+CVB+1v;=J2@3m7jB z1)#tOJ2TSoYqwl>Gc%Wwx$Co8R|8w#Av$&O%v06ILWkG%nK1y?oK9Xu^PP->*}P-C z{R$I7vi9p*ekAW90kUz@>m*Olg23Ymy+g*tCB`I!lmx|M&;Hv^pa*|MfcGpoXo1PL ztPsXFl`N^To&b}K8jk8G#iWsZ3sJwYA7_Ne<48G9jplcD{_da!5`}QZ0Rq+XDsCk1?v5$Qd}`q>gxE-{)dxq6fY= ze%^n1DX7tO2RL=oJHNke>Ex-%Z;MxgUlDrxs9#J-rgI1nMI&?&97z~P4udv;O80lG zM4!K*(X|qFhB8Dgd>Jq5M(XQCeVPy3r^FYd7eFpg+{mS~HYkvxWiD zUDrFi>8J_!kAqdgo$t%y6i+K5?2&-W4E{QFGk7OB0L=6Sl#?mgIBTbTpvZY-C3qF9 zKoS1x08bLR16&i<*1tdM3$HS|@3|)Ra$Y?pT)KcW7?`7NC>i5GXA^c9JO2_v_N4pN z7Uhc%Js5(@`qP0dC?6_r#t+P4`$h zvL0J!%RXxLhU(n0Fp7JNHiL5Gtiyc1e~D(nDXB#y0=Ti^G_YM7frnwA_jwy~#o^Im ztL*YM><&AI9wFyzY;!9?^h?&&agJC!1k4m+>+c7xaexMpp|*gqmyWkmM8%cy0BMvD zBm|JBtGDPGY^023ku?4*B7VusgChxR(XM`I@L)6v4l1+%q;u!x{LRz@CDMI~ogPI| zN>Vw!=35jys`YprQV9Wm-;-V*CVpXi&xM_oE)Kem z)%$gLty@W4vlr$JPYv)0EQ^P#BH`7U!tM93uhaTL(t7~b*W%}dVAgLwP;c^~mv(6d zFeMXA-=hywGLjFy{+1(M3cnzyC^?4r;{^V91AnuX?~t zaDie8(0gR!-xd3tYN6poA(?Imk6eZO{wN+!4`W@$2@%BGHaEZ69G?ymLA`5oed?&I zI_lg!(C$=b#mg$20)T$mUoV2)&*b}81Vz>&`?ASRSDpTL!_263W@Qj(yw~4um7h5= z+FYhQIRI&ExMa7!q3+$so7yk+3^ffEn5}~nN0N9TRu6~nZ)85q%odPpg*$jkcsYx? zsp{vn7yRHbFM39{&A-Z-^Oz5Sgm}7uXh0ceGFj}JyK)WaiCwO~gOfj}$7z55N{iIP z3PWa$e=P7(Uzm!mF)~XP{uUuOTnl7IcoIbTVnleDDoTx}WX^eG=U!iP1U@1~Xnat+ z>o#TXcm>D+2OjXq-t$jV!0GxIJX|ukYXQpF*L^Tvi%Mw|lqiJ%V-tIc%j2|K`N0?4 zbFl9@L{QJ`zHmYGi=)cNbUf_m8sa%w#*yVI6`-JM5EDWpSkV(V1ds_tw&z!{cJL_{ znz{5N&-px-UmJNXTKY^@pC$ABQ4DDbFyz<}5Se%PQxuf_5)aOcHmZ;{^}-mPYveqT z6kbf)MeF<-0x^^Gg8aC%^%Wv$9GI<4pb!oyv;uT3MD*RW{>gg8~I|egu_{gjaCbU`C+B}VBln{TRuxKo99-98AU5oSupzY|h{94L6 zPk^rscC`#9WDS>~-q_nu?HqloG?VslEnI0-{OHUn^Tic4m)nJ-wdO|1c$jizr_j?= zL9}DT!>f`QdkKCpA{5q8KBFI10gUwLC)p=`&x#>;0v{mi>?1(LP^8c6AnO+zrfaz@ zE&O^)!78Jo7XI~C{?g)WihU6E-AsSDnW7bg*h+1)jS`Q>l{g;QbGGh=ja85qT{SdB zm%mzFyaPe5hm97(e$eP%D1S}+cTKyv^Y%_1ob7?i3k=lJtNA63%8gBRU zgG(ZS95_@(xc~PVpb-TU@D9k;i~2?6{RAat;4qgH;;>ssFqEs;)UAixkXCo zR2YkY7j(-P*AqiKOJY(RuBC(+fA4Hv3`5x;@Ro2E>w9VPqR^LDfQA%Epaa2Hw^pYdjfK`W9S1_G_kU1i)~wqRD|^kD3sj`kRNG zYP7?D7n4x*dxCJxTX8zYKh=IGD zvhp$?m7C7Z2%qCDZFsaq2V0_raiB}4y4>1pk(MbCHCf93?gKdAdUX+35uZ-|GK z(RF_M4k``2Zq_O`J*WPB&b;k1Z;GNXlc~3ms0Lk-U`nCHloyGOxBFh0n)qw(l%75% z&8u)6;5^IxPb;b_1bwXv?gb9gBtnd-P%NhZ=5gISc7h4>GwmbMTp9K|Jv>WKB!Im< zVt|rZS}%Z!B4}$W%7~SO$ne1K^FeP7+RF&+9H{+xEqL4JEwl za%9`nDB-o=0_~C0es;&72O5ma*t>Y&mdPA!4fVxATk`1uPpP4vbQN^4!$@c#nT1hn z(t4lHhdTq_<;T@EX;KdL2Dte@3B@8x1YD=|Jz;_PJ9N=d*&(PaV)BaM^!0t99PN^A z5DMBnJQakQQu;Wpsz?`1f!-TS@w@k5hrM5!HVx*KK-e}o28ye=v?Os5DKidF;o>VZ zqE~F6BWD8Obo1666CMtZu5*w~I-mBb1|x@+Txh*9$07!3A3PVHKBts)XQh4a_FmSl zZaSmxX`xsK`!c%l;JL*z=!yYVM9!tso+|zXS`6WED+8Z6F8J=k%;0XM;K196$I>66 zo@6K%&MfT7#)E)FdMx@jnb@S?D;{4EQGQGrE)-a0QC|UnEL(C69PAfRXTDC0JNZ;VwE_k3;eU zu?U!K4Erh$;_F7eZw(`Pum!qJ*?Z6#ltBaF(E35>CmI@hi%K^`VPBwt6@@Zzl<#3> z43FKW+*e4!-Am=%uz@c2P%1c+6_)J=yN`lVahq3y=^PNSa4H=ao+`-B;<>V_cLy3l z-oB69Dk$4}dj~GQ2YzX}?t$6Dd2G3%VE?||0eJ#_5bJtwJ3}$B>=;6Uv-f#&2(xCp;=V9RqwY(8{#j$W8-{{q01g%1=O*w6((iwM zY~Fr0@k#6MtPKFFld*?*`+bYVa0uY+Apg@9sQ- zgP3LPP5n5!WVIyUv*n68_I9_)_c-yt`y=4`?tR=(Sx>q^I7|!v%Q2T_&+XUb+r8Q5 zU(&10kDf!k*iN~tS-3E#-|p-j#ry{@M+`g_yGKvDYwwOfb}s!fTk=bGpVX1lKYrWhMjdcaU+0o?hvsT;l4BT>37w0j_5rS02QsW-LZnJZ0iPu+jCVWS8sf`EYXVo3%P8!p&t}z zEu{Pa%3Ac~{ts%;)tqt^8XHv8B4)qs(Cpe3bIkZPi7f0fR)!9%VST6WehN7}mt!qb z4xhdN7CHWOdmDY|mnsG^H_7pET1!5pZ|qjW?ws%QJ0JLr=1OR1-&i-wA2&#$?t?Dv zR4RH;&D8h2o!##! zn_0Kc!?$K%*Cb~zsfBNU?0O7ypX4i2@hvH>Yf!z2I@x{pxKDRplYiy5=*Lx+ zTCh1)t)ufVyT7mn?O`ifijvIJ5tEJLFUGoBGrzD|pnD)0YPeoj)z8hS7nT~Yd-Yf? z{&rW5U*DmKk*?9364MoEPXAoBF?f&yW;1FD;4Hd+forqXr10TvEUwKW^F{x9v|4GN zj47E}{~4~zkW%w)pH1v_7G=4v>pE?xyx6aA8&teFZtotwtCy^@MbBNNTriepq0&A! zSm0jjo2yCK@t9h0QSK4rG*<*3XJ|*ot1N5W4sT>NRa~5Q(N-LZV|8tLZFuX!_(g)e zXnIhnm4)i-StsxI{z^9g?-EWUazXW}uT@icBkY2dW4ZW~C1RlbK8%BrMw&Sk1}(K| z@~Knwe2$Y@GHgQiD?E3lqxrj1)d`zr$LueMB(WGnt=#+CxD1s>r3@W3vMb!qWVY>W z!|s7!=YOV=cxw-W=HJzR(^_QEWlg&_ZIB+sshqKPjT z=y(f@mmjngH)}GCYjqayZyv7^-+YG~3aqxU3$?P`{G+Ar6?DE35p~$JL@3*Cd9S@c z@IJrmL$X00Z+6f*zU1KW7fiZXKEc2ATU%lwsi~Y*5nNiBQgfxr7i@Du^ss96q+1m+ z$M=Y=>;)dx(tIssLw|1dT@_XBeM;3~S$t8}Wj(CTRMNxhJeB)43nraBsS_vO?`bqc zZRK7{)#G7CT%KA%X8pNshpt*}zLT$a#SJ2Pw7-zIb+wB02OhHbu)OYNcw1q0gVmec zUc3^7>=SNs3SA=;BVRuhvnd_wT2+3PqIgAdE>k39ublhexQ-PxGJWygGT$5j_J$@Y z*SvG$RV7~|L(z36YmIbn`&vWoP_~eUcNG^i5sh*Im2Bxj>({ER2b5YV(c@>8T+v}L zaj#vMD<5+IVhZ&91w12TX2hgFNOm)~mZL*Ze6>_x;~QU1Ghc9h5uU=lGBsp>I0316 z^wtjQ%s{*GD9+sRj6Bk>nzpL;p@A(i##org(k54-(P1OVUnwXyq)0qGZHSj^f~%Q= z|JKNa+ag!r(vc2zWa1OD{ADTNM;}6q6;<0cc^`F>85GoUS)*?VBe$PYCbq68zO7Pa zQpk}M(7!@<>lk=E!WQt))S|(!Jnh{^_R_jGe~HQm6&f4T!4BCog~jYzxt44Kq1K-t zuN90k_8w(q9Z9qx>ow&znfMoR{#Ma>>9NaM5r)2=bhkOCnA1J0D$TswOU{#OO_d{J ztov5~h80#Uy&zEgg~Ae&^l#1v-R^P9b#6F{l@KVGi9vE@PJEdRg&M^hRA(f}=QbyO z%Wg8&DPOIKGP`=tKd)(WYZTW0ao+nENk|hxTIjn-htG0eMt4xrXT+m;oK~8U4GNXO@ z{U{mZ%NH8n|M70RL{);S-7A&{XW${`pb2K+v;*&2@V1+ug8RA1vp%%XdI`{8Ds_W? zKYWbs0K_Wqf$eI3_Z{w?l&Ibhl&oB}(TQUGwymoW1Vn5U`|I7*%KyC6nyi>qE-Y6EyX% z^5h;>Dc26~!yKpC7Ik90u{i2l_a%*5&!)P~ueWGrP1@`ScK7y(!hrbKW*Up0sPMsx z^mJj4+9Vy%qzSk4Zn|aD;HK6rJMlK|Ia}8zyU6Ydevge{OE2%_FDlktv{5}_6lFCy zYQ*poFT{B6L4;K%b?|!Tf}GLEP7`5qzkdf?IWH3<}X-sJAEG; zK_S7MrC=QKL?$?>_{$1ITmSl!#z5fsGN-#(9etymqV) z=S>P26`?%)?2U#RF*}qonZGc}tTO_~RLTb)wy8jr=2HLd6L||CQH}xDi>Qi~qHp=D zYB42gmo2fPeWG`q+Q8WL%$TXh5skxh6FrVOcmfTTXl%qg;ZwX%>qi9K=?oh4;TUkV zrRXwpPEZH84_|=&-@#ZlA6u(RSMFlw*VX>j(F-s)ZxTDX>WFS|<;X29l|yZ)%}Qil z4%aWh4zJSt2zY!vdi}>VxUOzs{)xfR&k}~ytbsCD5WFD`w?Qmz(e4Z&E7HT=qqKcq za0MwAy0RDl>0_fY5<%xRMZ*m9IH(Mgz^X?qW9L9J!oOjjnbnnQQ$!g1Gi1xuQ6h?g zE-&Xdh^ngnxO41v4R8(FLg!n_5EpDzv~&V(gUeuZ`Xqa-X~hNX>)Q zsxRe=EUP*hJb8nNwth38LKMsbtDja~6Thxz*Kc$l+hp6VU`)adCzurEIG0}zB5Ui9 zWvK2XvLk_NToMv1AdDw~X$k@vEUIqJYH6#=!?wLp7@eHQpjr5>cHB z;-C(>qhn*@_>0T5R(OfRD+C4AVfS?-TD*AyCsnP%4D4Mz?9L2HT`#yste8Qv$!`q1 z`xuh#_`atU(vU=yH4&$3V$f)u%awP1qlMOqnYSU_%{NiwGAxqKzh1?EY?3ZiMl8+g zE94q=R}(niuT(k(V(d&Kd`4^5x#}s}+|wBO4Uo(RLCA^Fv^kv9Z|dGdKr`wz=d|A! z&&ZaIZP0wDQBHUydNm;GX?Hy%x|>jde)swoSAC(Vov5VM@5+M>U_qSOYsi?ibN*+P zn6|o_W>J^m6ruEDc<>EpSY!IlbB>-h0fIHV20d89dW_^_KCaL4*@HytVRz5^R|%Ps zU0|=t zeCz?^vv&2?e_H-qI{I(1rBI#aht6lmAj^2sB0)0PQh$6;KkM!afq5(coApHR7xE#| zQuA~KjEZjy?Ox3>wWY zF-+R-lw2(@I$jmxE*L0fHf3R9KbQgYXLFfXLZ_;gZ7cJ7k_*Phkt}TW zSr&0FEuUwqZ**Rz5wKu7S8J36e9#Gu5_ncCTM77B324u|TriovZgow9jJRoYcBDAJ zSle4D`D34)J!XDAz6+`+P_o^`siyXzvkBSCkF6vkw1y3Q?Jlq+c-qXtm?Zndm+UfJ zM@--$_>|>1TPJ7Hsz_FCK@A6H^vHEn~N6$1kS|(pZh7BQe6lbW9o1X>$Gv z$Z}$Jn1&a0I;jOALs^R!$TA>9b$CTt;6F)P>B+N3mQ7AS>EkdOqK-#%ceaspJn04x!JHvpB{utok{gRtmoUgl87M7CDU7lC7%ADHdM!*TE zo4#+Ln$|=yCy>MjL2L!2W(+u6@A4j7x&)dl7r=-EguWzda>MtPtvJSq_;v z(AfFyW8+=Aj35LXx98$6a`~OOdl~xkPgS7G2H^TOT4iCRHP-MT{ln?g4?!L5Jy{t$ zVbtzFADfRq|12Xakip{yj=R>M^V*2@JD(vhNx~GOa4pzMtYmy3S-KV^T}JTI9ALv*G zl2#v(G~SR|fkT(&*Vb!6w2_tLO@ZA2@F?Sulss8$I6X4( zAU&W$Dh{Q`Uif|4fFe=EYE`iOaQ~erBy&9Izu}=3&>NKhW^G~soX9fi=@a9>um}1N z&~pz~tvBD-P5~BhLS6t^t>f!sc~;9LaEqd!1ZLyQ3WO$9mO-m0q9U<(pJ3}0IpjOA zYt%S(c##r-s064XC9vp-Ovj1%X5V44;N=pQS5*ZNf!>>=-3hT(T5+Ko^4)QT&CJ?| zXeB(6gNrD(zd7QR?{^uj%G;@^x;2tdd>zSp)oCm9lfN3}`?DV@MKxL%Pu*59;Mjg> z1a+$m59+5cWDyeD*#OFSthYj$kQ+4z^l*^qCK^c)s)cn-q=qMGPuLJY*!BNsF;MW( z1#=|Y_*2X&ogXsjISz_k0lCN%RIvnYav$c@02>+9j8BMJ0U>$8BJ^pca(LjW0emB< zX(K*d0PlbX7ziZH3Z=~53kF688!$s?MU}fGN^tmpkvRH02K@x$c5un*Zg`d9+PBRw z-x$XKngFyB-#;a<{}@(TV18Efqk!^*I0jt|BD;V3LBjtar6tJY31vXAI^W&T+9pih zgi=K|6do+>^zX@F(ht&*0^FOEuamF;=f&R<1+sHXW*p#O`ag3=}+NV~%O<)?H zgGJ;vj}`qTm|-`f=(ES7m{u)!yuRSic!ujEwh%IN9s0-X_e%IZ=I%+`1P{SKCgRWsU*u8%49B7Y-;XfHwTjlFkJ8_DWE{lFwxd)RAzkYz+ z(RC2Eto@=LTe=Jycqn+5TDM(gzR=_TO5=_`c30_p^S z)MGxg9?}yP^Fd372ej-emxgXc2&3~^rK2>5>{0_DvD74Bp}a{{VwrJK{UcHWLP9F+ z-1_xG7g$xBDVh0ELQ1q6u$?el5*AcTKupW!Hl3P+C*F@?4o{hjuA8`K|MMM-ayoo4 zuNJ9cfSIA_RFn?8(Yy3b1yr+5n#e_<7&hZG&pG~zL1ej{#KLusMbOfkSv=i23T6*= zYpd>$l!4DRK8Wq2GN6B>s%C$I#+|Ug_l0*eWV%kLvDi2^3U^jy8bFEekXw>*`SU)AXn(^{+S@Dq>vxTfUGzMG^2?gF z9W>T#SWNx(ekZo1CO8~p!E>2k!5Pf|2!cyXFdQmD(Sw6Jjw`Rkk;H+jJ-6jO3ZzvD z57UQKsjbBCQ$hgx#~>JoEOrmk8^?G_DQII)q(6y6(zX%1|6i7q8+N?Cu`g!K89a4i zO<>`_B=i~6dXaB9QmEv)K$U%QWjz1N<@*Oan}?FrGTlUu<5%*I^0t;PN?IXt6UsHV zT2TJ%E8hwfeMc!$H-;=HDPBWaa<@+!`y;-DE>?(RrH9>CS9;U4u8hwqy1ow=yaAD0 z=_bHvobqY78TqO|N0Y(kc})C`zNbsFeFmh}vBGO%KLkQ%Y7MiOdcuM_B~;Y1f0ZmQ zxg=kE-|9cz96jgo#^jkgch=BP^xj=;v*n$x2$mwn4?$P&{zk7qwil^4)q(R<#$Qb{dFVIM|`N@h2fqWOD#N*G2dDHAd(|R zwlqmh_|`;~jXuBU0@om4u=xpC1svERlIXKPH7ftqoa6mn=2o8}HlBm_&*s|wlXQZD zqpD)*mp@K3%9kyQPH10=IvU^(ZtJND;MfcQb!23s>7U)o14_%x$VrZU^tJM>x((+Ud zS+3;bZK3w{v~of{e53_p>D>>6Mf$ZFa#~<1<@)T)#dIbt6e z$ANS58o5#(`HrDug|VE0{j>Q)`OfzJ^Gp@{H~SFLytu3+k<>_0rneOJ-r?9Y!T|+YQ5>4m&3#i~0mY}+n=bWCJd|Fhj?z0S{UT1utZt;P zaV=T?(mxlW&U^V@rpT5?LW*>K?Hf~MZIx20XooE5>ZAeK-bAA05l8BHgKF1aZ$nj9 zigf9)SNf#$?chv}S1a$(?;C1C%3@wOn$UAM8@f((PnT_(WGRtrCjDnAN-44-|0cIp z1pWT=3Ul=4AZ59vThx?L`bczCvT}pPOs@R`ruy}^;|&(Ig6uGC#nZen){QbNH?_^` Sq8Rn9x`wyv+W;5@pz%M|R)IeN literal 0 HcmV?d00001 diff --git a/at/at02.gif b/at/at02.gif new file mode 100755 index 0000000000000000000000000000000000000000..7d804c1619a0fd0ae41a5b6c3fdb3863902b0c59 GIT binary patch literal 2462 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 literal 0 HcmV?d00001 diff --git a/at/at03.gif b/at/at03.gif new file mode 100755 index 0000000000000000000000000000000000000000..0b909d1653790ca0b4f76acf3f30646ccae2b1aa GIT binary patch literal 64486 zcmV)9K*hgDNk%w1VK@T90fztp4-pj?8YCPh6&fclDjEIczmJ zMk_mU9zYu{K^ZqkD;Y;s6H0YCMNutFb3b5zOb-rI8zxOD7fv%OZW9-26eDaU8gDW$ zLOV!AJ8E(>Q+z9MO-=<%OEFJlK50=EaY{L8X&ZENE=NR4Nl8^oQb|ctTU1F%QcPA` zR!3M=TSiD^Mn!i^Rb@k7c~ePlQ%QAOS!GvQbX8?YTVii-Q%+)BXmM**W@Bq>Xme_E zdvj=Pa&35ba(xd!lL=Fm1X!XFVwVJBrzuQ~BTu6%WRWvb7ZgZn&gI#%pbUA>uQHQd5gqC}Xqj;dYR+Y(Q zoXc~l(|D%gj1C=-7AlW08j>zEvl=zGI3BSnIEfxgl`}GuTy2KXIidqaK{@v$R#|`9Yo9~M$kQC z;~h!jDpbr&G|+25$x2ktRB6j?R?ls7=2cJTQgP*MQ|NPUl0k-oe20X5q^);~q<^5! zc!=(Gih+eYn21G>i+Hw>oP~{}jfu00lc$TCvXzaal8dsNmZO-QvYDfto1(Ou-u$sQKq?xFqtgEH8r?RW8vAnXYtg@=Mwz00cv$~R*#g(zmh_>UR zn#QQB!mq8=tg*wZywJI=!LX~;ytcu(yVJb2;JU`Jm&@(C!_u+T^R?yw%#e`InxoO8 zn9Q=X@r#o8mZ|Nkk?ygy!@R}8y5{+|#>v61#KXJ9(5%+$RG>gn?L^XcjF z?DO>U>-_xuA^8LV00930EC2ui05}4|0RRa90RIUbNU)&6g9sBUT*$DY!-o(fN}Ncs zqQ#3CGiuz(Q6j#NAU}2-NwTELlPFWFT*H^bV*Y454ovuM+*UCY)YNPG6` z)r(h8p4^Vmpi$L|^(W50Ujqxy8BbonwuloeUd*^L!jJaw$+I_4p5=J++Qn-Jubn$~ z?%J_i$F4NHc11V(8U{|?P@PwUTFu(k=g_WGbLXb%E?z#zz=I1PPMqRB%JY(Ap1Bz( zymjr~b$+K=^UQYGJ7ccCd0sqz8*%;ra(1;abFnwa4qgv-ox0wsi_4!+zdllY`sm@K zr#v3K|M0j2V1NO-BiDfkO6T8s@GRKigXhikUp-}IgbQn}*)$V-u<53oYaqHel{>Co zrH)WRRcPOeEVk(4L6E^!nRlCQhuw`2(m2yxa?vGMUpLLgpmhH+*Pw(u_9!7d^Js*N zGtgvcnLH6js9t*M@syiTR(a?pS0}3Y;+SNX`BYK-)RQKKbiH#AR`$R%mp%SbIa6Fa zR_Wh>oQc*aX9EK0;GXc9_TM~A%K6_t_sD5rJM-v+(Jy&rSPx`&Qi)Sxn|3-@mbO(j z;$B_3W6xn`rmE_y7vW>iadX1|BafVP(iI>-=Ct`{JqFTw4?gg0T9=R;&P1h>^)&b= zc9}H`DWu9ViP=5#9GBd+*VZ%7IpmO2%s7m8mYk#(Q3_6Ly+wwpp6Gq*Zgg7G*5!#n zjk=DQtmdn4nUnn^&phw^+nZ)b3R%xP^{5liJ$d@LFg}q&st-HB%t8)3^L!Mngmw}8 zAb>n3D>8)l)Waw`{Gg1^J>s<7@;BXd!wol1`(~~6Vr5}QC1vu+v|M+y);eQha^Wc#u>9DgjyetE zlPo#2q@qPBz_g>!4K7swTuKVFtfP-S?8HOaf^_+aAcBlCdLTULpkvN9*<@1-HhyHT z2Of9akpml`hpq-2Z?NG8>8B53PRX5dX3=UypLi!e{U}|lo$Q|HE~xQR<>lM0#e?eB z#1{`!YGNN=HfHv)BhNk1kkkCXP0twjO!JVa4l%`e8xKCQ=%9r!k^G>_J>(pq1^U1^ zkjgzPgbfOyMEXsQ@LY~hIaRr+fXex>X3@? zjK{+sVgxQSlF>W={t*vys6!aQm`V4F!46dbgB+2dTP%oCibw!MGTQnVl?L}5(e#EN zJU9U^is6D2kOLpW5XL?FkqYtMqa7*O0XrmB3;^_k96!**Hq23v3q-;klG`KYc7csr z)M65o$V4ADmxs==;SOwAL+IFm2Gi~A4Gk288#KAWPD;=XfcOIiN4dcZ7UF_z-~-CE z#V~w5b*2CyNHO6-A>WpD!`1~CXsV$uzNfao94P{9g@vZ8+g1RyA= z!3lbjlb+lpL^VoMlB&U^8Fkx#UKVP+R05;77&)*ASlrQh?4^14H`Y^20c57GT@;bamioWR_^9u>rcNh->XYE;4)#&AhT8_Ea2;iPW3phiDD zK?`fx#3&X-A<*!KZ=}gP?Xb*fgwmR~+1Nec@P#jm;R{s^Lm21k%}hX&(|+VbY%z=> z4YR~MzHsR(;9;(mwdNffabN}JFb6U8aDZ9tLka=#g*&#K0no&0_HiH=aEGRLk;Z~>k4;Xv{AHLD3BOkUl~2sOL`4wPO4AGndTO0c28i@*jS^sQiUO3|^4!MRiO2IQEVrAF=qQ_j2 z`&yhpBNnkpqcDnLxBu0T%pV25W#sBoW(&JFH<3cksX& z*l-3jct8$#I0Y`;Ar5s+A_s+7@hB6%Y0jcS5QM-!WD{QDQA_X-g~%ZPAi__j-tjBr^6J@aXf%VaJCbJ6#-~qVz0dN2Zmf#1Vvj!RP zf*7CyXK)9MMmeb93<#4Aet-tor%}@9N&9y}La1@2woz{|LE!g&e9_ug@Cjt$lfD7R84zhDJ>hcl3 zMS60RY!w)EsRuPZv4JFFARris^C36Y;tu;T1qko}M*sl{kObBL&;%Di0CFG)7;pxA zpa`Gv37OLi#Lx=?!YIAqZk#0uXn=4@$Vr7zcb_F;^tXy&2!u|^X&q!yokn3Gmr0IoO03p}Cf0qzs7aOJV&3s8wXzd5p)hc08Nv_=!tfqVV;OUJZ2s^M zcE}?Y7#7XuY(vKrtQR2f0aJpQj$BhM^*|5pa0H470Y{JkIPd@jU;q?A0T>_$iogxt zzzx`-4XJ<*?Z7Aq0}qJcZdfQ`30Go0h)HU2QkX<=0XKgVwvZ3jY5XUCsg`OP_k<+H zYCKp5Wk3cdNd|ZDc6;zx7N8IKo0IeRO(ojh(Q;P@(*8t07U=+LofsqkN^~L0d!yo za$p7Q^#@p}2CycC7nE?3HH07KP@lz%J97qa za8STUgLgmzBya&FFanw|i5p-67C-=)X#fro0wHh#Az+!7NJqqap?)6pa_a^2bP%!J8+L7&;mREPz?7#5A;w_4Fw2jP>UuNN`A>f zNT`~r*hv$VSq|g|BT15Ga0Y5Hd}n}eh}M`CaG4gM33D(9a3}3(sP0#@}-~k?xg6{@Wq$vmsbV;NGNubkpB(MQ;DyJ7vrx#!Vclw|Q zU;qLj00s~OF7N|8kOPr;0WGis4uGeLN&qAO01B9Z33)&QpD6$h5CS5w12>SVBH#cP zumL-hQ63aZ9JEn}*J-45Sr~kP4@e1213$GVlNjz^)OX016NR2(SS3ngAWp0c5%cYv2ZOAP8{4aTS!GBuSDl zn2!c)umnH>3A?bEnVApTrviYPcABT)83G1C01bc%>Cg#~nggF10+~<_<#1jiu&EAk z0UHpJq>7pwDt`B;k(mZsqxlDjMGQax6B&4Nq9?i_!lDX6uzbt`qd5B!y|s;paSuI3 zEW+wj#L1H=+M@#EdC&2q%v!Y>;VPQ44)OpFL?cwrKs3%U47h*_s6Yy%zzq2?8NbpD z4*&sPIRptH1Q37#3GlXW`;}gK1V|tRLQn)qFa$>sxC?Lu^m+s^&;bfC00nTdeM$fV zu($=Vr;dA%1rV_S;JAzHrvL!4ehRS+Ah{P%0T-YF5^9-|c#kH)2_|3y;kg4L&;Si^ z10wLc4Zr}DngdyoXcb364at%1r;#q3X(0)IfWQah0B*-odBL*0gOZ}^a0)@-3-54C z*k}**U=RGD4@G+zyNR^SF&9h!n`G`XzB;kIQfm|NpfKcOwd~6f!1b(fcrM@o4bCuA z>);IIF%_*bzr&CVxbO<3U$hJi1bRETFkrX~ z00Rq9={Y2j2Ys*uk(mRR&;lk< z0w4ea1^@yfkf^W=p$5PJmAV6&pa+#1k%2&(B*&3Z47?HMkr_mqfWQWoaFfSz9CpII z8geA2;tM}83gAE|xs;pglD+-VTSkc|bU`EGt0&~kWGH%~<{K=a5fAIzzIG61Pc7XNN@x~ zFa)D4%6zNI6#M`PFaWG<00Ypcl`FyrZ~&a^xB<02Gh`Z-)p8`380H z2;3kFpWqGN01D%<37pUgmjD6{-~a-k%be)|*n9yE@SqJ4u@-;`Y|xh;CB+vCpAvLR z^%s&<_y*aKCawZ2{-GccA}8xm59=@rR)7lzXc?6OMEJlD_))ans1I&zEW$ZMbj&+< ze5|AKJ$wwLhw~ZWAX~CE4bfW2@+-*TpwSrZ4Dlch!$2NWAq~L8wYNYDK=1>U9Dx3? zl@Or7nJffEKmgWW&^dL$2L1U4hQJMvUj;Ic%@;&;Lw%+|hh@01ol+&>$!oC?db}E5DTzC8$l>s+~hQw7ewkrTn-MI~WkDAG+ z7SIQY@L`Pq)mezp2$sMIZZHUqpazDZosXHrm0GEsd8s$>y0qH>o+$!ZkOh(2K&mQP zs`;LPr+yvkQH3xFX#y+wa3jkUbZ3YQKZ^^)L>FHZqxzr^wbQEv-EB)wNr4|+Ve}lgRI&vzS`hW4f~rz(ZJdo?H<3t8X{t2v>glO0|e^O z4<>UQqmTe!Nd$N6+cn+E!VS0-9Jry31epv0Le1O)u+$K{%Y6y}n=1gD372^g0*>3K zA&>`o@L>$ZKntawV3-Jsum>YR0U-balnT3c&Y65F01UtYn)%)$P^X+l2&yW7^eLDc zI?glyY0fG}4*pQ!<(U~(5@T3045JVUJ2t&!2p7Nd5fo10{;&`JFgQ(jEIv2S9=?a| zGS3`tzS4n?CcZB(BoBaW+NmwSCH>+rUgI-fV>N!rz~dU=kPF4|A%R>BxNr(UpaZCY zy(WVX>hJ*4spJnl(@U=8$X(n#Ew~9F-A`Qr-X6In%m#h12$c{sGE*~bhXML12MJjQ zJZNgBmXHxS?{$y}bzlY$dYJ=C0U98uXCMdv&IWVPn51g}47#Y5xVxeHQGVA^Ecx&p zndI}`-|%?e#pJ<>puTBQ!xy~;5#;kzo-xiJOBjXAmp3Q1zb7pzfIG??UhY_ z?b!b0giGDCT*5~k03Lh+c(4gM6U>PvcK;4{*N2}xIPYe_Vi8#fh(L)yd;uds0t4R% zc+Y5l@ClWmiJLG9o1h1-%c=O70gM%eGO3~TS++!}@) z$iH4=KfmL%4TsS%6;SdMHb%d=5DAcs3N`xi?GOQV`^mt4kaI-#@Zt&7MV@R_$80ZQZ_w8&~dJx^?Z|Ws55oG``@Vfddy!9bk2W!4)2y`0(Py zh}AuY{CJ(Z$&?>gd$$hSx_9cFab7oh9XMycMveLbL><3-_U!HZf}qI%5F)gP*d~%& z_if(2ha7*^H*DUN`A!|XpzPGu7(#?-Q6CZ)3=kkdfCfUi;DR#th=`+&I#Mtr2R#x5q>4Zq z#0@{h*=HVo=HX|jmU@!OC92|4#|kTI878NGcZ*6}!7E86mt?X@C!d58EnHLy=CH^f`|B^j2(z*=#un@HO3NxEb1=}r z2`#h9{Q3ozNP_qw7JGuSN1u2mcwmUxaLbK0-TL%Rh#`bHVhAMvkPza~-ynEkfaeVG zj{pM>Fn|IIG>}6LHOf0fQ~NySuDa^pI0TV6%+R#cH{941jqB7v!&5cx*dvcSav-6F z3mh<@0bd;e7T66)*e;@r7{mx8j+V8kB8cGNrk;CRYi+3yMSSWVVS*S%7+i+oiKmn1 zL6u)uTlq|exl^JUw{7vIN*PLQH2)2wnTU^gsn8} zF~*{?63u8Pn^?>%1tU|<&_as_nqhFUB9b41c*mX&^|>du+iIJww%m-^tv26oJA%+d z5k+E92^xLwfC5u!p#>fEu$7NQ63H)VH3UJ#5J9L*!_}w%-*`k6M&9UDjWSqugN;92 zt&Y6)_FzK}5;m~Ff&za9HiTeB*kA+h1c8VU2I)?A*#$pRknTd**uxxt;6b@sre0zf zrgz?{=gnPwsRbN+T11Ilb7MpbDU@GwsvaKWm8zwwcC1&ctG1%*v3dk%y>-`LXWbXQ zd~qgWh!2BU;e`WZ%wdZq8*|K!H>NC2H3xI%ms3UoLI+Y-9Go9|V$idQB5E@tdzkW1`II41~8xjz@pTo+!ieVU>QIIckqa@A~X?*BnUzeT2My{ z5s2|z$RF++7l;n`64AK>8df;P$9&-qd^p85L0Q*}VwA3Ywp01cSb1R1bP3tB(}8}JAr zglUlyLa14N8{rBEA&5J4gEbq{$GYm#4iPE;kty$x2`(a03)u;SaW~>gJj{g;lAx;} z`~WBDphCkDL4{uLWD1bn5f6K4(Vq9jXY6Fr#b4|$Vg4**#C|uXYNWAv!($_8Dg%yT zsA73P=)ovDl#+e4V`qE1-Vpj2GeFMFP)O*&3=+YOiNMMb_<5xM$^%JRY0Xpni%*0Y z;Ru?B!V?5kgdHx~sjNLRX^G&&9{RH@TlTDH&8cNA-BzGYk+2Xe%t+l*h%Aas6(nzH z1UmRJj~Df@9qo8YSVhN@Z3H0_-oiyO;1LvhwuYQRH?K(p4#adqTA$0QslQO zg%ADE_8+9?l2QUdYMLpqfk$3MB6xcc>5Ll2?`=F|5|yFSgVfmCvc8*QCaI&R?fky~M&7TyiyJ z1lnp?2TypkesLQ$R+;2ER1a3*fhy#YkCXTV9!Y?Jp7aD{muWPRygBxu2sNAuOkf5* z@B<#M%?4WKp$|yjK@RRf0x3gMrJBl)lCg#cPRVb6`C-s95mAWWqEdc?m_rVBKmrjo zUIZKz&;b}gUN%6LA`nrp!q=P3gGUGu5*oxKDoZ+NBh%_*v)Ahd#d)OE6XBLQ7vN zV~N8gycHuI>1_m!ngBD5TF6lkKmbBK=y8vx_yY`k+*9^~>~$i*thK%o-?Ale1PMq0 z1s(7J4_JfuI0FqRgSfeX3LpRruoMhX58m2?O#uWna09VAd-r5wE+7A8j0}n`!;3$F~ z;|<~%jwg5mNPq-5fP+DRgN_&v@*s~TbF!d%xNzhHJ@5lP$OdaHzJK+P=!&5ggF`ocd(H;(T7<`fFjVu z`m4X~!Ht~s9+wdm-`JxEV1Tx900kII4%h%ZNQ6argryXPPxypIP=p9fz=cSg3b24z z0-XF{1f+Q+_IRl!dmj))1SER_8Q3Fd?6Kk)pCwp=5BLCUtiXv_riL4YXp1&Wz{_sn zhHl`?ZV-pR1kArghkD?%XNso7gptIQM;OTmNXv(Lq{ldP$a@qD`?4=B3?gZA2XdGb zo@fn)1Wnf%m(d))fpo(%tU}8yiF>rKpr8ji%&>`+O;O9kJ;a55$^~br7-_hY?fc08 zHF5{h2+l$rPJ|*!k~GPWS)ND$f;brpKf4EikboY0nN74w`un=B`ySd50-0eH2#A32 zOabPAkE2mabz91()Po#A4g_$|1c1-@jL$<#0wlnKD7er2jDr1?Mker2CZGZTJc0=T z4k5_813k;LEW0LXf-ATJQg{Vh@P%yv2XjCNkt?~QD80DShftfV!laRZ*cX5B2T0S0 z6NM4Pl*e~`$BBbXAdLe}gdb6K>1?4iyS%^vkpA0*1K5K>IGUqTgr$6h{iwGHc!B=w zzdcFu!MtxsKm4mhMEh}0xdf-T?zFbD%NKn7}X)oXxN zdf113K#G$q%n~h3K0_H2JyB@lkX+4GYDrNIdCbO?$99aS$5hP3j7-T~KZtaz%XCPR zlLvDl2SwXap%}Swxd(0yP2meoHMAUQUCoD7(#vVmbj_z=u*fLQg)Yj?kGzs9Ejlg@ zjp7{6;|#ws71K32NmV#gG{psb=m*!}hj54i2uOn2&_p;rwoly2)%v>s+1R55fPe*9 zfI*nciO7#hs01u{f#B$)-k6O&(YoG9&;*r$1#JQ@@B%Mz1zI?UW~hdCxCVNV)mcRf z5+#dSZO4hrhoC)76{UxHJj`O1$9<5;rBzH6g%P57OsI{K#f%YU9oliiLfh-Adw5Nu zSif>{5!WaNbllN}6xT8=i7osId=$euv9HNAQhJ2Udl(CKwc9MJO^me7Tlj^|;7u~*F}7zk8#9E5E&~_2X!H*eQ<>YNP?|vSowQXos=0*?4H{=%l#XU zxZI9zyn{A)fevs+kD8exFjXaR0xsZ!FbD%=I0j^}25W%TS>@gT-t}FdjS(5?hjt`h zp@q$&Ra)M~hu6Fu7ggG#)d%E-$DfVI#w=FHWXyNGUZ!Q%IkdeZwa11G3ODqJYmJB2 zkcY}7Qny_f(j*sfCDPS|TdsYPb?jcky4(DHohN{L(Px zjKpPN@N*bvn3Cm$6I_tPcxZwMz}(E$4P+Ct4sNYHJ(L{yfNj$hDSLt$$hsl0SpMt3 z31HAE@PbyLgEM2MCR9c7!52L246UZ&$5F5AOHei_y=>zF?#TUnQYjbtWHk0 z$(VUYOiWqeNCFvXf*?4BTIdCB*anxF<$tJ=e8?Q7easVuG$F3q;l({4W)0Th)f$mR zq{wAl?$s0>+NHdojjr%0Q}dX{S_x#xWLUwuxs;yH|1Q==^<+~UF4k~~g?PUy*E zD3o->Ab^ups0XThA$kY~g~jBJuE~xPlp}E6`dsDNMTS<5Razxc5)Im%En1vD(Gm^b zn?6w?mc-WH5_lbNC5udzHPAr z)>6z8PUHO2!EWGoNL;FLBhUC4T*$S@^#zsVhj^G(E|380G4KN~fH{^hAH@e~DG z+IH%ih7rfC>SR6IWvyzt?dEYRQm&TnEF52d7+ZCbt@aBE-ni4 zw(`5EYyaJ2jKqci9fm^$o-GAzf+pPm%m`D$zHh6jiiP%=2p)w~XwFD5nUWg{YLE>d zs~${r-Pl#t+lA%Nws77h?dZL2-~QR2<}-glOyZ5E=XLa>J!;?fZ4wva*hX~Lh+vk)AhzDZ$aj4n}bvbrx zE)MZ42X?tIZzTB^2QK5O{@hez%Z&tk03X6C-%BxPSQo=lVRHDLgU7#UYF)^+gR z?zZ-Ex2AaU4)&FAi!8rQeTMn-E`}#GU@jeK!xd~qj`k5zbEfduHcy4qh-j2PU!UNI zeW->nIEFvJ+25t`CI%uDN11rP^jwYNeE?c|Xy#|mWfa|ao`&(Tm+=!t-Wh*tr-t-{ zC-G{|@f$zP)`s}FH*OraTI_B6Y@TCoPSPK@N1ZIGaNhI&|$ zbtxH{*4cKn2jVrCpN0DW+aKyURItJ^nUfo*pAGBVLkc3^<+nQ46~}kuWn!v*`^NNP zrM_BR)*ME+e(lBn=C@vJe$0qh(e3APDxdOJk5RrSaz8VdVqk~uj$1b#eCK}hy`RIz zFXn1CZV!$8{CD{+$7_A|1!w>Wb?(-wTeohYL4@xPu3Omf-9m^GCr*q<(IUoo7By;= z_fDNUi1F&#!-ub*zkc=b+2dyqoVtTX=OTfo<6wrlInAMwW!v! zUDckoTlX)%zc~T_*WKDR@Y%I{12f*LlQHAEkRRWBT(WZIk|pa=t>?=n%g~kQ;maIV z=VgsBu3w{Ydc zg=-kNga#REkJ#`b#qbq5ZiM&{V?254?UiI5+N9?8@ruE}dGv8lo%!vO?ax2oeX>C% zm{x}gh8SR8B}f=zj0Fgmem#{%7e4+Bcwb#8@nh14_kq>VKPB};Rbp!GRiI&0ZKc>? zTJdL>Q!%6OJ=V=2~QkZD^olwk7u@lu=4KC6!ew zCyOl6Jr^DSE?HXl3pCsz#GQ9#Ml_K@;$5Usdh*0$k38(jIcJXWwI?4;?-l8ugfjN$ zA6iZ=8QE0^BB&QvTp4EAp(+X{VSp!{bQDi@Rd%F4m)7M^q5qhal2-SzRn($_9r#y) zfjP<*iaCuH<9;;GxM!XCwNp$?dgi$2owD}ynohA1x+;iP8hb3V$tru?a?NGwTy@h` zcU?%^S)1l}W`>t0dE}+n=A4>^7H*L^#>bXCA=N1=Ykk7%DvW`?3K)xx61do6ERuMt zs%asJSW0mDQ=32c+*7cH2xn?xh4}n4&%yeDn3FyJ{FBr@0~R{iqALDdYNGPWyOXRX zn~YEYy6WtslRQA_N{_jcz<(%jAxG6V@@Kc4s``Xht!+_~{p+t7)h0SCWNMb!wqXny6RYbMMt6 zqi>HG7+p!tQ*c}sViwpvr0L_&JpUlRjy)^WRWMwsBC4XkY~3rj+VReOa>=ohEKf1^ z{1g+dmYpmh&4ij-C`wNO{W|Qi1KsQ`v_w}O?$pKNi!;@pnJv_6rWfveU(3n$@m<$> zCyw%f6A$NpN)K=5f!e&WslzUaIovp_n&40We3(;F{|wg8K8+tml*9D=vk(0ANJ0<) z{pQCs7ruaDFTZEFmw zR)?TendpCcs~b`_%gsz3`Y;)5sz zLX@EhL&S|CMs0!eRRL!fE1s+a81m?mkD@oDU!^WKOTu1JGT6aE60(rGX;uii1VZZ^ zEf>WAPw>{15vj$=PB+I0}$Pp34b#Jg3JTwq`OvTwVY2VaR#XQ+6LD8VGThi&*61 z7f2fhw;~CV6<(wu!^7l_$mK##GIW#bfF6e$xJQze^IdL?%%I+e#3JIWa!ksXfh2Pe z_QfL{?dX6c!tq5cJfjL#NQNZj!GtI5LlQHPhc%yJgDNcJ1>taJIAD;BV%lI8;SkIB zo}w7JsjfgC1E3q>6-QF)P)0@i2Q+};l$Nb?qBRRvYtncU{_U-vWAKFYl{ z`tNOK5ekS{5dmp1fd()QM+Z7k1xYBQ1Ih@84RTS^Z6eAu=ya$BD zs#Hd;GH-;^TmTh2PU#JhbB$Blj}WLw<+k&k-PGBLMwAjKp|!f!eUe&@)+OjrN1wjv zCqN})SK*1ITk8M^D0@{r^_EL!?FB4L9?Cg)^$Adlz1jAzrx?mI)sLoHDo;Mtk7sm% z6_R)y!j=-T@osS2-dckH+ru7ij=o)8Sv+FV zo;ON0hb{i9bNMH+8RrZ@DY-6=b37ciMvIXnTx37{T}o84?sJq&1fow+m`X;9{hmEIOc3He)z*e*wf$KEST&6--?*Z#ib~q1t@No0H__m zm?OByEx^}Iu*2SbbXPd#k9}B-()QLdk4dP{AA>NiM|)nV%PVkDTVx%@fW|{N>Eu?k zdf|K(Tbpq>{_GYq{0fL;ZmW=>KQ&{0)aD-jplam9r&z~L>e<8^B4C^dSa_g=D({jXjtNxDqN^WZKP+c9nsla4Mq{Py=h{xKhj zz#^fvt*n~4kViOPp|X4g=_f)F3&+-|ua0|c+pnsgxL-`l$3Gq)xR`#pA^)dW_RDUW z-+a7lymZjhzmTG*`XYZ3SLpN;7rrnxda&NsxgPAP9@fyFs@dMyfyPTbkmIGBaNU>h zU7S;)5y-e-h~3TlQQlE_N*MtN`Y2zBRDlgVLq1f2Iuyn}9EMo5pitP^+hNZCq*9+P z-nZ#oeLt( zTI;b%Jg5UW6oUf20}OeR!-ZYLiO4`08#@Kz=HMLoE#9917w>%^4^^Dy$)QnTkUp?a zKd3`2R0GP?L$h5>TeqB0}>t1vBW;egVJ1Lj6eu) zt=*M5nqDY{C?3w^B*k<&OcSQ!>%2pEWr-BNA{9o%sR^LBOwAU8gEL^q*BuXE&7Rni zAq3?^Jh;ORA{Hgu+Rd$v^4S+MKBDnG;}F)Mtntk}&;xFX4;I1CQUGEe>RrJgMN;gR z`)T0%Ib#GOV=_)6&#^{;ki+Cr9#I(oohPOeyp70I^vzTx%qV)ED)wW~#Dme?&MQtK z2sy*oL0_j~p)J}XIN)M2I75;p&#v4Ed?6rw36@4s3;{7$4w|DJdZb11S(VjV`1RRI z_(QW%+rjt)ASzB)+ygqC13H+4KWxJ{@IyUp1K@ZVicpSOL}N0>Va0VDCGH-%txV(C zgDJoRQHY2<{@%?v2#t;0+w7ev>La}QqgE!%6At7+Dnq})gh$vSo3x%SzFyZkgQ-a* zC;g%WS>%kET^jD(&IKhKisVJ%B|1jp8wO=tEXBdpgJ7D2U=qVPn1eRZWH0mrJfK4_ ze8V@?!Zw)0IKYF2Y~TJ|1tW_8%SwBDnF0`3XC|XoDR@>PP=h4MI z=A$X<&2%;0R^Dcmup$WYpI260J~_iICS+MIBtt@jGk9U|@S+$_LnzK(_;0|KbXTdpaVak13G-eCVWFZ7z{RO13!qvCzz);6bw4}0eND> zc^1sBWlv!MC12KHXa2-Ssv~}!Sx&5sDzJm{?Zow5*;bUwh$LOkSXNb%;%w$jS>Yyz zLJ2^YUT=aBFZdfS^bV1^32_c!dN|}mD$twEkdi6jl0DF9o|;!t=l8*3&N1FyQkiv@ z<8|f)PHsasXu~(a0vY2iY;35w>T z0d5j|)m}w5nS4OhpLuB=S|@R_Av$g;9nN8Q+QmKm13zR#B~WRTLS}t_12( zn%sPTLwVXKI_wRufe)5K<96z(&e5f!nj}5|Lp-bu`QX|QJ*ZDUsM3w%n$D&v>cxo2 zsj&`+ZrUk9>YqXCX^HZwpBBR~l$tX*gLK9Wt+*)dEgXA5=R3^kB;Msv8Y47%WVi7r z_{B(7XoDXNsi>m=15EmZH+aK0RKk#Mf;Je;J+v!i-b0hlquZdXq@L?`0%(`6qtEHk zKahet9EGSXXez~1J?=%{Sk~Uj=7Ubxv2N^d$iqJErWEpmhX$Fy;i-BMr%04&JRB!- z9-Qi3O#>+zFmCH|!ijn?*I_}TpTSYA;$U?;Dt8Ly+7#BMX2W{=D@`s1I!uDWNTy?I zLwPzaJQ$2QK+l^>4BO@Cj@qajjuUlG&qvBbBm|rG)QwLPYy8QZ{Iw~C%I4uD;iGY^ z+~!6+d~9!)tjJb}zX7Mps;rwFC(EiOaDv^~&1?c1k3B$-gh-T&>0slfU!%(Ej;5Vw zcBfZ}!;pUeLpGp8HiRd6q65_WgE^Q3Op<3kz-vkt%%#Mj_c5NxSgz~(hkzDkqM5|i zdCF1TnPwgcbSa(utu33%CRTD@vCi$>%0rh3WEAFYF66Dh>7OqQLo_TTo796X>M7`? zWr|v>?6GK}5^8g@$D175pOIhW4xJ7@AeRbZ(V<09K&LvOWz{O%934`eH>)K$~)~L@aYL>c6KcE6RtjykY%;iY%#5$S<@0}P^ zDDf_#1|KW(a%jkoY%YMM{#jjYotlYOjV-F>_6`GfNGI3S%Hhr|jig6KCTb0n?-Y+8 zt-WeVR<5h;gH4P`;rN3*XoXE!W5tMwKF|*%U-A;862R&#Gmd1?k}CqI=KB2uIFLeF z7@iUBi?5b324SU}#_|`Z+!-G$2ZO8>K5xH?to|Jhn1G?*TFumG?{VTW!oA5Qxv*Pm zt9!Uf%ytzt8|Cyw$X@xCG%mrLDNKjZvKYT?$;Llu)GyLQ(SgoBKlH}G7@VHU` zar(V3`i#Om0EpY&3&(&Qy!|c)mtqCaW*MVmEz2qL4$UhvZ}ax@8^;wusfR|8aGTV_ z$p-F24#RP-B_I3o3(Jgp%rG=B7vu`)`l_Ef>YT}COyDTdP&7rQoMdg(2vlUUqD^2M zg`ZH0YtIJgDEma_#0XXaL#6C)qRbqG&hjf$=onip+(KGF%jqo-B;NMh^A3YQDGiCr zgF~+eiKgfsADkX*!A$#gfDYReUq01jY)sOpkm; zVbH@oWHN!MW@8kv(7JB=8Y2Sp8KqpYqI4Oac`^J&mzx?j+Y&W(Ej4a>ERd=H@dx*l zFKo6yy>Tu8XX1W~3AfNY0B*HT^e_~II`oP{5syR)Y9~2RuK;pcdvqbEo8uOv`R?|9 zAkb!-1ysQ2B{V zZU=ZfFW+WbGb0W*RT(!0AvXm*csn(?gwthy?1MUxLTywG$8a}adg_$Z}Lgd>SNG5D23MuT%?JkSPMsDd!0PfFYa zgdX8kX6)~dIGZ~*oR+vhf_J8M7ZsAMW_Na-FZ5NnNu1EQX+LBx3WI8gQu5IE3+ecM zj|*%IiE{Q81hr^Ke=T8ys|_16+O=w6+a(Tv+l0G^aU*wgMRS#-MLSpl!*Dr*lreP= zwTQR+c1IVS$N7l^83?KPi*xpiTiwfA@5x$?J;;`g+c+M_H=>41eZ$NpEmWc_T#NFe zUlqBLNBe3JxmnLD&U#g&Dml1KGl2*AZMWE`qq>7*`IdM3k+c~3@Pvqv|3WcvcVM)1 zhA_6yta^yIIZ@ABcgMOa$~k6(u#0~ep7R2EN3Ru*M6a)hI^^P?7xTe^VY0IakJopP zPy8OUB}E>(tfWRskOpk`_gogEem`KHGb%pQ66+`>cDHo$H^#YX%P8pB>DM*A{Kuw|@Z#7VI{k+QI}4Cmy``Z(+xX z4awCC-a>?eG2vE>?&5HOPfk{>da}esKvk~-KvzX-LL1#mL2ak zuUn;9`=(9XbuK-;Vd?8l3zi;S{i6X4P{08pE6_B`E*mUC$vD$&FwsKm%)tgBOzgA; z@#*IsEfmtMAb}9VC!&jVyRAftN=$Jf;#h3a#TQ}p|LCQdkgLfi<#=kYCmosd<(Kf{ zLFziDwBv57VTKU~ns>&tXP)!eYcjpD%sR_Iw1)gEKD^?(>q__DijTlC$t?50Gcl~p zGQ|$tthB(~d<(P)DV*?4#m*dPlwu;{47S2>V+cjuEK>1A6A9HP#zh%z)KQS|G441U zadd9S9eK&cr(tYzW}P5GjprSwkVJC3s!FvAzOkO1($(~;w9>uz*6T7XF6+aUKEA;8 zuh;(40v0V{eI3@!GA~P0S;3N}v%$I4y6>LSDs(o$3(uU4oJbnd3^x#E+fAbpRTOl@ ze8^oWU37VS)ZKUC{cXlcW4ftQp_q#fD13zp|Ies+)>#J}n|>+vDN>^nW|;7lYPI1g z(R($@ykvb(9{IMEOD?eP<29`Q;I~3m(Qtbpn0| zoZE51WtW}CE|nN0p;1TewcC~$N?GBu{|70G+q}pjZRaKyYm9=DLRmC&j@hGOeRWZ*>CH$L~dIdM`osfHC z0-u>4lb`_MYBYWsjQV02J_g}~A1kv=KMKTn(2 z!W0V5dVpEs3sF{>9tv_mUXs=h{}Xe>*W_c70~+K(l6b8G_0TQ(L*C9@sUf^ z+@C=Ct$RQTD7NoF2tA~t+%)80g{?;Vca#XNf1g>axt#~&>!8>!+snDF$aO9VC*4I zeBfd=TFJ*a?eR_}x`v4#nxAYy2Sv}>rf3;jw7!imIXMn?uM%pDi zE4W4^6@xlK8YUczd6uONsYzABqu%y-LKLBgXtk9y~!AJMiPZ^ zQ)KdtXwG+fvmZvxhdNTx|BoZ`L#S#wB4|G3#DX|+a~~QS{+>!og$yL1Rn=lEyJ)X_ z>8N$HOyC3;3XTUBV<S_Bo(0VCns|TGLLVeLoXowXmoJynEs4~%sUPZ3(!Ac$F8b`QB>?m|q5A*n%T#^zN zq#})Gv7q~0={j>TfrA!WXsAAuQYNKuIV|9gDcQ)rgS_gXojTkRuyt&Wyj){aTk#>g zqGo8EfSM;~=9k&l|9}=DJzEGV2W1gdqL#o)!>Si`@y2%KZ&pi9StAkoB7wlC8 z+BU4U{e^^MS1PhCtb^96<8?rc(T*z9D;y=}i1%9JzOA^#CU!1i`3&ekx0qKmreQc| zg_QAA~9 z-zV=(sr2-jY(mLjpLKTBur_#%l;Oo28T3-NMqq4zF9g>B|JAMuibBm`j z02(B{1GKOm4y1>gMe0I6OTYO6s=rnDFMoA5;Dc|SI6Nv~EFI3^VFYhGzK~#7GtMwN zB6Gta{}(Y^(4*`ScX+OGFM0DoN@us!m&V{sr}8oc_`vX;#(Nj)KaO|`TfWyGbjfT= zUwS8_5+3OU+9pBbp$cwtGILJXH)s9b*{jzxv4W3-f?6u<3GC%ioY7FSO3+8Y z&Ui5x@8;{++3jrOJ)NsPXN}G+VkcMeF*!~poZ7TX`PlZ%u`MP@3YGdq#YZeEJM&XV zYn<~I>_{s=IDX(_9hglbzd!H!t25QJ{uKyQM_pRf&%Y(g(CVzY+VIv_5El!}rR>0F zD1HIs&`KD<<6?~Bu|z1`IJ1j-J3}>Vj~p z_=o;i)L;A!ZJ|qcIu_Ww|wHEH6 z7OeHW3gT`DRU*ho(u|FMXGt(@3o|UkG%NwFBN%=0_sAl$C@=$iZ%Q(%nDk0{|G35- z>d=91=L6rNxb*Iw?7?Q25}Td!3wM(2!7xPct8hSzy($S1y0}q;PC`} z;iVRdlBDGY9q%u=3525S`2H-=V$d-90X&W<)H+eK;N*$&%Lk$C>7uS5QZXVyqB&k^ ztMo7IkVI^9hoPRL7;-@s`tKGE#t(6iEr4+gKdh}3aQ9Nur z>yV+)3*O>Eu{JTWj7lqxs2E1!6iDF|46z)8KnK)u9an$_PT&MMU@AG_0IE^}4xj)6 z-~>*g1FtJuyu<}ZY_R^Z#r%=Q(!vJG=^b*=`Ht%Sc+h+{CpLs|AVM*;|MW>B^^zlk zf%RI;;e3g~h$1_7Nfm@4qJT|!-cZ9R-s~ zmZH%PC9T<@P0-{4$$E+@U7!Y1ASyZF1Qb94H~=fLvMS*b9t$8ha}xjnKmj7*9g1j7 z{%AN^NROz?x!$HNE{~gfC>7ixrJ9A2976{gWI72#ItwI*q;or&ioeuiFC{VZtACo2Dthe3>4C%-ulR}v4EZ)pQ_hfQ2A1g@eAxP+u z4t3HU;H|EJ54lP%J~S!%tRNn1^ENG1H+3@r1VAeVAOH$L007_s|9$`(_5l(rv5)#_ z&rmD|Nos|bGo1V|reugZt+P6>vqrP?Mz@oZL`f8n5Ij+lQ^u3w^hJy|7^6W&VNgw|L zFOV!1Fejc62Ro@#O|z@m8@^3wLn=mm;!=k>r$O(LmF@sFCsV$fUL+B{gu4|2(RrszgqWC>}UqPXPc= z1r-4N6i_|XDp{Zgejo@&Ar=f!VTwT={LDDfl~L0*xu)rvwhf%P=^oI<7x;uS4unQq z1~O_iUkzhAr85ZYr;>}rNWNoVm7drg6WE%qAgBz>_L!_;DV5k6J2 z*o1_*woq8LQ70p90!ij9+Aid%&3Hn{n7*Q?zT%x~Kr8Ds9#g;tfFKf5ft?sADO8Ok zAhI9!;pU(r<@{pB9(7Syv^4RGxfo|IhN>UjArleGWTQ+9gI7TM^6f(f$1R7m8uN*jwn|F86J>o!=Cg1sIMmwar;km-$@ zku1278LLEtkP!{(4lJP6h`@mqQUMsiLmedToe*yy7zv0t4Kg|cAKKyWT*zq25^43! z+Df)v6~`X+Ar_u;Vrw@RzD3(b^_-a$bb%~&}snLG&j*5f7bEDdYrFrb7r-f16> zs6_o$JGYb5u!50DGsXBS&)D^J?drrHv1#YR`TRj0d_i9A^+t76Q(t#>fii2|ufL2c zcTcY`xyoRjP+?VdVR4~cp+RkZ?G_7$R6Ip)|D9Jzpm#t;cy6ipgs(#^-a&S(F>z<| zO;uLT$T!;hf-N}hrt)=jCqo{9);jO#Tmy}Cm-eInrsW*b1u4lNPT^v(1xKxxfHQSX z5+n#kuizYb>!5)acvos(Yl20P8E?#g4 z6$^kD!cyIGlM%#1x`}3Th)y!cv_=`$vKWjG_LN;OYrvxzd;uh5=O=PYJ17?p0d$t7 zw{A=Lgy%R|l?NP(LHF#lK8N{(TuyQ8?vF_he3xP`yzo6JS}892nbk0v3%Mpk7rH=K znf*u^Wv*%KVJ_^!AM9Zk;vtFhkbSlGQhliC&Y4;qBs12TollkZko1%lCbq&@7(nvZ z5YuhzmX6mHdP~@OY1t%k)jGt(9fTn%CbluTaG|j}s{O3ThN3+>4T;YUgAb4N zjyM-1yOcs7(y1SWK^QRCQsXIW|I6o`$*1TB*rw?RcXOJ++F5MD4xS%Qc2ap3$C#*- zSIw%iK#JFtGPNoz`C^UfwYH- z4PzJsn>A#PF)zdoD{@*48giVaueA&scDi>3yLEiz59w8` z%x;3zEV@hOQ@V7GAA6~<8=!4@dQq}mL1hiCFmT5iH@Nha^=MilIa;wVY+zOx|Q5@WM0rnz*Z~org4*id3*6F18GC z8^`#St#F^MJ5-ihgs)q&|8@CFdvP70;k(`VN`W~TCy+i-5}4Eb*uFH5_*k@;G5F#; zGmQx__!}(4l1uyn9A<%!@H#qu2q+UWawbHUqnUG zd{x7eC}1i8;4G&B`kEt(~#V%)}f$$q&ywY z6%i^IkOU^CW41mr)Guf|C@LzdQOo;$%N@IfC3{W%*_YL!9+r$r=sd;KyjC@gaOHs> zsPx2hJQtb@ zDOP>FmU@r2 zA}GZ3-r@e<{{f!g>0aOcof)9P-f1Bix|1M493N zD${pj(`&8CZ4J~H2pV<)q70@xI&v6-jMasV>gZMDp)*VwHw z7>OM+h5Z-Xs^d_6=JAtP$6ZKZzwH=g-20r}-#r@io!;%9?SDZTfVaPUp{2v}g;?}@SjN&F zf0Z&_(i#M<0#f=s_a=hp< zjR9)TO|D5F z>oWTb_^;c+Ztofn#;j|wW{Ar=wMXw>WPA7K+0#c37r)E(px*NgHT2Waq)VHQdK&f9 z(WLW1)%P#9?Af$y+rEuEx9;7%d;9(kT=zO$zjFQZW!(7M<;VI< zq4tCgi-B`jaU#fx89#Q^ND<_Ck00yBgQ(Lz(4;eK8l}mxe7u5iejn7Vu~#O zLQ9H#)iqXNfx%T*hBYFFSc!K*LklhO(DRr*^WZbjJ@#xiOFjBLr6fL|fo9rhL^^fa zYN?Sn8f&dR6X5IoG;Y9>D+YFEjOo}YwZFJIJ@}5kai9^#85Hn zgjZ2U>4|inc!!>6-bMD*vsHgU#gr6%FttP=Ml>ab>7-266QE6^4mhfSL=n}JMO3vD zAvoYLQw&+bxasC{ALb=%Va~+(%bXypsNyflv0lr6_zs5|JEf} zhCVv$OEvh=GZd1P9chn0#6YvzXHZIs8kVeSnXYK6ZRr$|UgG20YiHhzZ@&8Go2Hs= zt_f$r)D0uuT5~!B4nf-WxlnfyrT30{6zL~1p%yP{UP-^alTxUuj#O!*EVc7-f%u&q zpvNZ5tKd}cK!}xAaKQ+pS}9ihYq2`7*rSee1&QKc%ao|IT-Az2bC59JoGf1`=BO-Q zMkjmLU1#M3*{PIK){i^0Y%L{gQ+oN-l~`tZHoWeh_9Q<0z72QWa?3W{n*IvRoSg*M zX>i}Y(&UD|1$e)xgC|(>p7Z4DTx%uh!Bp@^048 zG8!x6(MQ`n^;j`B_KUobRc549_sBB}Jo$hcHoEC{nReOlqOW#puC+aP{PNEaTs*`9 ztXy(&`aQ68dlUS(<_yCidcuV>e9;ia{V5>|0gvPyq$tRl=VFwT4>*Kj4~|8SQ{n+h zN-PqfcYIDBBRrJJa*`l=c&;7cXiznx5sknk?Ps|M&*Mq zgCT{6CZe?j2^X^akPY3E3l`CWm%orj6l->t7Y3smcZmiwov9323=4TglZ7jo@e5qc zA{Mg<1`}aeMpppi7-8fcErJL%DXJ4_%B$JWN_534@=A#QXY2@>DsgFT^McpBTvM;l2y&tnjaxk2lt@Ib|0SbyVq_#GSunjd$A7=T z6G3`~$pjW-A>NTlJY3o!inPN$p-d$OQyG(Y3_~4Akst^+my}b%qaKt}R6A~BD0l>j zA`+sIGsrSEVcKk}E282#V`R)S#;A^RG_X=z<~WN7;w3Y&_GcC=)==$kUS7LPV^IlOSBBkd$fgAD_L&e(+k7l_-1L}Vf` zjVU}N2V7C&R30nU3Fll=5uec1r8HGk%QAA*j6^6J|4$7jbKKO+E&j@jfh{95UZ{*0 z$|Z(>i3TlVn4>6`Xs=sEQ50LT3NKvY3SKZKjPx*xY-D2_r{JYsqj^qQ2-ui*MP@#O zWX!(8D42J}qB~!dPGQ2Wjn%W%~Zg43lo_Zuq zC6Mc&O*co>{gh3G;i$$s?gEV1(ZV>?Q`+_7Lg5xk)t*57ZV#DxB3U3NNcfzhELzbD zQd~g_P{2V9UJ!vmD_{T$h`}m?7>iisw;R}~{{WoV2k&1WB5>%gIY_~RhN6x;h#idCoySVh3(8_q& z#Ey+TY9%n(@-I5R`X96T7C>hRgBLPLEV}YV~GqH{rI(D;)+j94L_`x8t|oelnumQ<8WHD%|0bh*2;n z539IJ7`UJWC2rwvCcpp&ipPR6N)AO%1NL|k7PZWIUQc7**$Z9ZGY)JJ0To0%;wmV; z=u0p0i4S1)0cbq{24I6LXq*Ook9?@36tt!cmH-6xTc`imRL}K7Z_Tc! zXkDURufJ%&&g1;&E&o1d?T`1C|9{ZtT5|#o15{)x<#sD2C@v)tA`}ns&}4NdTJF{X+9T3%Cu=$MSWLgXFNxP z2^J%<@C#Q!3PT4Oov}4a0!NXcWd@}+x8{EA^N1=IFOQLanH3enW`CJTKQ#6?tu<0+ zM<+XW5Td9zkVJ~VkPy~3|6~obK!LJ%z{P;PC4rI?cpw1|zF=Ikm_bG{4@2b+qhL+7 zw@ZpP36xNbwh#-ifN3&lXES$vGdEyeKm}9)1vO9uC-8%TrUEDsdfX^zs#gF55RT(G zaVYQtHP8c4Kn0}0j;Lk|ssMtfFaR+C1@hK=tx#}xhK2ZeXRaV;D6$LyNek7`1*-rH z%CHKp5MIq-OUz_^3Dye51c(R*jg&@%dZ>rUXOWcF3OE1_SYvdIbvEy?5Z$LPxaNrH zvst>i>^B-(hl!d(2x*F)_{bv zl-ss#y;XO$I1%a~{|uZ|fgKSszf}(zkqSZb1yO_xg`*3Tpa+mZ3AwnUoHL097Su3CzNvcJ5uLYFT`IBX* z9lP)gfZ`BDrdv=cQ?lrkv-o7=1`g{%5#_cY^)L*tuonB|3$=g^+R$izFbb3qB(8v; z1J--48Jqf9|B1rPwQXO|HW131tFQox||)di+N3Z|f#vcOBZfNabGRlNcX z!w?J{>I*oa05|{z^o3`5hE*!pkuTr{W+8b~bWO4l19uh!^9Eo=1Q>eQ1HnK-%s`=R z*`L+~r2goS{pkZ%KqQV;B&%T$qo5A`AZq|}l0_nkE9ribsHAtaYfiD8TdFTN89+Iy zf4$Ow14yRTIe=wn5C`EViL*e?uoVme9#s*Zv6y6Z>YWmJ5yc=3=Gj3;u^-Ox3X@h4 zwa^QjfDMhd3%d{ttq_buI;64br~>w=i3y~ya8}Vk3OE1+R?r0zY6_qFsbM%*vjCQ| z6Fam*|1+=Cp{vSL!4NCOa0Reej|EwxcXpqqunI8{015yFDz}WXzzkks1F~=h5ulki z2sAweV6MOe)xc$s`J<2OsIlOWjLN8#3Zw!S3tdnHjD@63(JlRuX#8-S2;!1gdahP_ zl8$&bNAej*!lm(gCiVaf&-okzm^UHClch+VK}L$xVGu~krf!-Lf>NhX37#-zr{cLD z>VOLrq#zVw59=@rx1dCXYN(oEsGDG0{YZPX7o;KU3e-xnBWtpEc4s6@bJdUws{oIt zU~h~mN3$SDVOFp8Dh#jns;$bi3PB8Q7b~%F00}yxT~MM%8%F0O1p@#82+#$K8hi=Y z|7RlF11f+6uHXYPx(cg+tJP{u#)FTopaRZN4Gn^4GZ(3mDyh~)tpjGQC~K{;unH^? z4JWx2P2mnf;H~ER80wm?e;bLO(JhZLlk#e~zF`k^qFVb0K+rad{aT$OWhZHR5Z1PK zf3i~0u#^jnu$$|YoC}q`kBtKyu;rv=&Bq_3V|?+^~S`k2>x|E<02 zziZ38iTS^-@CvO^1Ec_@sKT3|k`Go;4C<1=O8T39d#)1fw^7I3lgc~;<6qp-Vci=WiGkNUW~cxJNu$i(o~12v!y=BhRMAPl3R|1}g$r72mQ z6wJziOFl=Ub@Px99Zbu*fe$$wrUK+q&E{;Tc%}g;QfaEf+^IkbxPYG9l(C4+vIx2r z5iwO^4-3J=R>@nQBoEH;sk4yHMtsDz0FRoyk0naQQyjOOtdAp$yJve=K=P_+JPcz@ z3>zv8Y5cR&ThH}e3}dXuJIlr^6%3{@w010rxrzg=;024!qYN6CF%WybXL&Q&1s6A> zRKTEgytR0S173i;fo27EEMWZ`q?R1T;w;XU`Ln1 zr3zLlr%Lt?@Zi-DSPBn11*HJ9sgMe>pmE_03sx-7Y)#T{t&g#Q$*CDcc>xUhjK+CQ z#(K@y@SM+oy;AtR#(*6RxDc5*P=y5vXq^WI2bYj9z@QO;pYi1dUa+b!e!{5EkXMV7E8s6_Q z3|BeT5a`wRKnz`=1yi5}8qM0QfQ5$H3L2NzJO0`-o{+Qvp#@pMLG%^R+t+)|=y<)x zkN($a?C3wM!@&>)Au6I!unJPRdNv@UHqdY#i310B{{;s(1zlj-m95FHunJOemk4Ud zQs8F^+67G9->==tHV){o{l1qy;*k&oEFcR?9damcK@Cu*W=Ovof{0(1tmezlc(V4!r!`C_n&hP@h=m!qz5ueZ7prt1tyJ5CH?A;-d!zc&^b~yQrkS>o+gXt9{v) z&AvFm0aV~vOCj_Ck`IxP3Qi&9%8trOy7cJU|Ljp>8BmW8(@yPNT8fJsfM+Tl9qR4e zUfoMQifO7iNa+xR!`+#C?hTUeYrpPR&497s4uOZm;7xb?LFlu<;{)#nn$6=}d)Wm% zzZw_#IzR9{9s@mK;awmJmKqGvpy&_3=#wt#c`f;Qy$zGUQow)$Do_J`R_a|a1%DQ3 z8{P^~aB-o%gI0J2c08G zxpJk;sw+INcAA8xf>jCF+!FE23Towpv9>AX&5m z#fmjZRv<&S6x*sjSTzz96ex1plgGEOJbCp1+spSuojt^S5%;Z^*fC;!kR?x!OnI`s z%9ZCO-fVC4y?>!ak0xE(^l8+oRj+2<+VyMLp^N<*Mq63!U%7SH<~@uT@883G3%@N~ zIBny-jU!Lq+!-`y#iB=tR;+q4|8?=+z0=-q`*-cz!-FUPT|9U6+SQ|%H>}t@dE(*0 zYX>i0yLj5=Rg=|a;6t;lvg)9Nycm!bvsSTaA_f`i;wT&ZgQAL6Wch^|aAay}Lt;4e zkfjb!l1V0FMuaIQVuFd}032+9!lwsgyvnCmpilsS0b+o{2Pk;r@uMqzh(UoV4ubKg zsvZ=`6eJsDh^>Swl2WdT1O$tyRi>aK1`bAfM=>z%i3hQMP)TJmzXI#)F*YBIEVDM_ zbgVNv5!+0k*z(kKPd@wf)3n)``%SmqXfyP<<(gv-(c~6ov^n9Pn@+mwo`YtX?8J-5 zo%G7<^gK|*Q*S*|;R8pQ|8?w1Z@zZ$%MU(zXz>p$QXG1+Km%=k#i|6$GAKb{e^O9^ z2wqU3qg7s^g(PrJJh3GbNeuC&mzi>$SroU%#+4K(m4Dxly&fgaZR3r)r3!3P>1#^kH9!PbTIL5$z{}P3TcjAXn?4HCLL*Aa{?->*MdPW^f#zqSjcy-3_}xDmY4v;ohgAFUdpbXP)RAOY(qZi-Hm1l# zA`-S^%$VvCJmz^UjKymnV#+v1=!Nlj_h5_})nvPRfUJ6Rq+=aZLk{FP;}?3Y&7fFj zobGk+Q8FXn__jAGN$rd}>M&2x;1@JU#;;VbN}AE&Hmdn>XMfz0$2ue;2_FK{YVgWc zDF>(|Z-tF5PMB*rgy~8`B zijOQ-A&G(23v6GzT;>wk!e-8>S4~_6EttU!lw?q^XeeQDJc3F8;Q@I_aBF^gHm z!W3g2#T7A+PjO*T76{7Hxs?=F`N>{^XwJ8~&QI7$mUo{G<7Xo}P~RypF#W)2 z|7%?vGIG>LkIvxDp^zg;M-9WH;RBx`KZ+db|*rDMn!mRm=hxz_1QG z+F=iR=mQ@k&PP93`wx5UqaXOl2R`Bf4qv1y9%{;`s`7yf9_UUmxO1Lozc`QE1qR3j z9rEoS8a(I$d9(#(vS)%F@q3UtPd!e+T@`R00?(ge6K`F*jhsChkF2kb)Ihz03uhLa`&M zMyup8j}Y%e*SgNfKJ=mDd;~im`e-qW|B(;O*mE7gfJW;&+q!(XP8}y8hl}H}(A-Is z$lKnrkBNu8&$O}I;|@%>zulKAr(4~pQ3rBT2GTwL5mGQCU!xG^+hO=3QqoBzbcj0) zXRO)H0}qv^+;`kf#iJOwpd>tW`f%=Ws*_{^bj96DSj2@F)ZdatD`+tb|5uFlDyO>w ztEJ!r9c~=FZfz?I>FQs&_LsnfJre3*r182!Seac|W)NCESXeLCJ>Xb}cZ6Nyef*;z zA{H?}n2wL9LmeOdfI8Lrkq@hn7#~Z=M~1$XpDKcBOguOR^Q!pc9RpcSX=nS|5!#uB z3KYm{hjQA5{AA+!W8HgSw>rQF94rT3IAC^}nEy`F-vT$KJFCtx1Ws_{5{;_SQfjhEc!=`<^h7<{?W*F5G`xw*>gD%aAdKIYQ& zh)`G!^s&Z*m=tUWJ?J5973;bmDqenxkFF1Y=!5B0m%2WjUUjUq|JdsK=!ZYDZVzG{ z1~4=33qHQ|4t${E2UWZWJQ#C#`0u#f@gK4p9V-92$6qkl_89V{%y$5MEx!Xe0;H|l z`h}KhncUJX-U_pM+aBBiIFcYPOK}Epa0X#;hIeoWMuNOHlf2`qyhn|?{L zV=*{1Kj?b4hLI>8CPW7PeZ~Wbio-6 zicvGd@IsxY_(1^kL0$a89)v3#?8P3exgT^2s1P-q8?07?As=W)lta10qJ>~khjx$$ zdcX&ISiXNyzFy-sHUzd`1H*nGL#$)N?2|gGOG7inhkH;%sw=iPJV&j|vu6{Gim?YE zn1vqmr~K>3KNK?2BE*2~N4i@(y2F!1Oh`KNJK8D^1B}20oVQ9GqzAk=l`$y`l#~nf zx9CuZPvjJke1~=LK$3(!g~J6-36IW;IEQlwd1!}L|A<8#tVNof$ysCyTI301#629; z$zCkRpUlB%ibY!NiNR8)R&z$Bl!8bYt62~UXs9)7R6a2@v2wh+ez>|8>%Q(wL+K+n zrW3JpB(|%gJ~kvVHB3vjOg6P_%Ms%X{+TiUX()S8h4mAY#>kzv^G84Q9VLS(z#J%v zDn!1FGKD-$>S2chEWq31joX;5Mr_EzGr-&;Bzk+qJfgsjB(80E4o+DIcNj^~+(7mL z#gcThP1z20c&<&M4~T1r&4UM*Y=>XqiJOE9oyDVotLjJ&|jw7?9(lnn$;QvF1c997a}(Sc(hyMfWyw2#fxscJ9}CsqZyk~AI7u5&b&ZjU?~$dQPBL%P#nn=eLRre z4uSL7cL0Z2FprfqLD__dDwPFX|9#n8?GbB|*%YeT6dFz*a6%whLLZ0(V;za2>x*mb zHP#BYFC^NdyViTqho!xTdsw=qQ&Y7RF}7qn5L3fq`_{Fr40?Es&JZIynTK10va#h) zEd;x>OC%7+}CIa2t8a# zsnCVRP{WHzc)J--%}5Z%nPFh5QO#Hs4NX*Kv(jv-742Nhdxy+3!59@;cpwLstwvg~ zRhgY8*KOU_Z3>#b*_oXtR=V9>yn{@Kpy6DA+c?h6ft$+9{(RrF#oPZhNP!$gBg4PFRTHsANWwi})EHQuSzv|zjh2zjha|wq zR9K0uV39JU30z>3cn)y5vVa@a6D3(v4PnjYTon~r$a4qvPzPUt2G!(_4s0opwO!nW zUDrK1rKAEM(BWoW(jIm~AJBpen+0G32M-&uiv3YN%{LOe_1nGFU}4_1d0^~BK>%~Gvo6h7fi zPSF&;B+Ju|bpXNd=z?6OCYxoY9>4*3f`TP|QjarO$a-VU=*}cg+Au6bDNakN-Q_i9 z%WjR6;Gs)2S(7ZL(=v`@bxmewj!QU>OEFevFE(R);3r?$!#B25JDuZgCcgxo-z+A~ zyYsBU{HH%YXVGYnLFP9C{IUsUz;{+yMP6jaeZ-sD;LeQX5Tz|j4$TnmSdI1P&m74T zCg{-|IMCD%bqE|7<_^(xGgGhvA7*77*cKd6%38q%paqQM>$PS*+U^X)aa2#jI8$Gi zVzx}nV78})|M}X-DA$IuPnkAXdqiVsHe)c(X`CKooCZ6dzG-Kkv7NdPG8Pji#OC^> z%3LU`xZ4 zPU)>(>6KK9@Ycz{wfb&R7)^34b z>rd2fw)W>xjO)$aj;;zxkzCR5a2T!>OK9aj;#JEivsPe!6E>C4Znf;opoi}5UNAXk zc75;%Z`;)VV)+5%6daW?PjFWm^VBBoG#BkKpD{NP6M1lfEpl7W26GRW_L@eK7X>X_IG6b_=pZhzkH5YFU`#oQqu$qvkpb%2KF zI#rTwGj({{vK+Cjo4V&6u~xrU%GPf$jZZcS@HDpV+&=IG7xPz{pSC^o6f_$885N># z^PDzzT?b>kZEA|yzwHQ7Veo|?aDf1EK#sraT52`Pa}5V=K9{J$`17{~(EY2|;U@G& zRq+)++zE|07oSu|zf8nilnR_~jU0wuux<|Q=Mmm<%-#1)9&%2}>%4Y{QHbHWcC)E# z40gl}s%!P-p_38Yj3{Fsu~q5C@bWEJW-^ZEo?dg))}PWY-G}S-kf*7c0=uLc_LB!= zWdAqtH;427wA*!1hbzN{Q$dKE&v6~sbg}2;kSu6-kkWc!Bu{s{t)w3S*Psj!t@&_#k$ZC-Yw?cAPDbxe_k~#46pxKz8UMzj z^23<9Pm^QTcA!r7GCw$xe>0Q^!Ay_&>t2WZNe{o5sYjw8qe0P9AIZS?Saz-UF;-1z z5C&X;v{SHxAlQ6>IHk&$I(P2k)w73>-@AA6AmUjvz@sT=`KY#+NVW$<$s#{t#85fd?X( zpn^D+rBqVIEJYPo68>_PSXpTW)m9sZRTWrYb!gU6+Z1h4l2dOgO^}78n#Y5n-QrQdKGzwZQ&K7AVshEG8*fNK z=nRBTRRs-I(y0;|a>Sul3j2Ggjs(1A@otF|G6a7O9;`lpsA;#nrcuDIyfO# z6EanyR#Sl~A&0ki=wYrGnt0Yx&X`!1FKNwHP>U=YE2FYA%9WR4I1(1mK=Igh7hiF$ z`5Bv{rP*e;%FU*xxZ{c|=UK%NGmJ38Z1@X^?z$V+FU7zc3n}2FNgQFV8Rz7rtYKzR zYje#>-6>Y!d0lp@bf*ra;sx#AEbAqfY#ngnnMCgpHQe{}7hD{ZND_6SiI{zkGzV@0HRNt}aj*2eU z_TpPBTAlS^J{D$Uw9^50WscZlJDiiTNoi)3-&P4;VXnDNu9R`d$*wTJ2;&RhzVQ7E z-+BY?x8T0u;`er{L;~ECtNr`tb8&(LjWD>>c`(A*jdBVq?0(njNu!4L+(jo*Ec$Tr zaBzxAi;Dd3q#?(r(dV7I)Zd{k;SOo3HuK)Q?>DJql+Lb3RV$dhSe1N+M(0Wuh#htX ztTWsA3Jrt}T0d--a=GE=2+W$?_d{MbbU@$wHLj}Wz(Yb`+ zBOxMbQ)?P0yUxU;beGBqo8(~y7r5g*5u72&EY*>h#HVGUQW=0ilaSv5F^Dr$N2^|y zysXg5XI7Eb(3s~Hq&<%*OEU^Mm=ZbZ`JxzEvP<{qLKnLj>uN8W%NS?0rW!5g6ySJ= z*sN78GPArFa2L@x4? zbvh&}P(cbH1i@n#gUtlNVYpO~A`*D|0TA@SC+-*oJP4_W2tgOY5q@kr$x$K2+VKw0 zFex&SdIvN%CPQ!0u!ga_l!gZSfHW4ZAcYlx01bIK ztSsQz#xE#GQalCW2ay;BDpD~JbdClh_ISy*#d6GKQ;o;Qysp>uHwEoOm+ zFFc4FFM6?9SljDc$k^8}eo-*h!pksl5&x&gT+5CDedk@^5>UuM7LU*BCu8>Mz8W1T zm71NS{p@MWxTxY4mVCu6CMsG+5>Ri$2!?MWSB+{!BO29+95Y4{iy%Zo52Mh-4{$q* zRQQ4ze|iTFbr-SMl#n>vYDg?CMZ%u8XD_$`N1vl?K;(|xa^F0 zXE@c-!EPh?C{%QDbFOs_!>jV0uT8+}stKXBiDtDGTFu%-sL<-0ZUu{o&gG?YvPBrs zklJk;++cWS4W1BgC;8w44OM{0v0!|oaqKwQ#DbVgcN|QEU-Y9?3T8@rIn(_#8@F{F za-^-0MJryxj2kl}7|c*cFl6E5R{xk{6enu7xA?={j_yE?l4@5@x}?nuI9 zVUN1Zn>pDHZ^fW5p}QK71CM2_SdmpW8x1B`^*6v8dSbh(vX-M<8bVXF-n`Q3UYreRWF{^b3Gk&pS zSp>PrK7axaY=DCp)F1}ZR>2EmpaK=3Km`$qzyWGdjGeObsZ&1Nb45e$DFqTe5QI+T zCU*)klM)D;>yvN`f)G^%A^#!K$}XGZkpf>-#HoN%5@>oD)jS)CG!r~mF&bX9bdggx zwuwifE8fgQOS5Q8DXTO3Yb$P6^U=mrVq23YMY(GF(&enHr$7DRc(Suaq4wT7{o0~; zsG=BI11uPQ^gUX~TA%Oa@U@&(S)uE3YyJ9TwDQG9bF9>V2=s+1fGh(*u zhuXhYk$c2cTTUfTlHg&>6qa`+Coz=5A9^lz`K{rtmH3}-Zt>6mP9D<~lQV)rytVF^ z<3O|KSu4$<3suj02mhXHS~%Bom*YP7xS#oL-Z7nG^&I9B{&~=W{=J{y$Xef{(!U1A zn(0QaXp^hcC`R#v-jXujrqF@3BcN^XfBgXwP{6hyFm?nCApK+y0Q&*pejSuXeFAF| z^V7X&SxQhH>WalEtndRK@Bp5S!ayw8I}{3i99NqZggv-`DqvS?$OA5LfWtt_l4utS zfktLTmvp(;ocIm9jKx}{MHd;%v2dU}fL;pPj64`cSW#2Q`4AK*q5CO7F^q;mn2l^amuhU1 zwt$g3@Qo^v6cF%$4&r zbRZ$|4ZAp;mK33FgpEU}U@NMMJ+z>gDB9|6NLjVsHi_I4A&u*uoQSAgIaQH@K@Bu` znh>VqG0ufsM1ni9lM)VH6G9_pmCJNlPs0rmBAvo0L;}L#i4|bSHfG}~kb){SnUm>; z9%h6p9Y-~sKme#;9M)kx0)RV`9}2_(4tyal%mQo(Tym8VAHq#^41>XJAs6mlDmWQM zOci87BL8yD5KpN?4J-x;W!Grb!wKZuJ1idLdCQzl5IKm|-EarqjNop3T5h=9vGB!W z$b&1oq^aP8n3TmZ2+vvJmo35y>$!?pAkVvelTUsHIql%=g_W0pLl#L5=iL=bGUZ(z zBktvfwD^Leyj)(y2pIuMi`5gBL?2ZU&LL&vHs;Bg{Xh=@ASTTeD)dPfY0)Gm9ca)E z-3W{=$wLpwqZ|rA0USUIqyP_SfhqvQG=M`p*pg?I#Qd?{xUo@m5YD@Gp$^mlBFYph zAmt(8qNYNk#Ek;Q3>{nITV1PlcI7ZAtP}ISxj6~Aw)s&(L{#JzA%nGtynwQ!zc`Z zUMheJ0H79>0xl3kF^~g0R0M!{q=7!ra$Ht2&I#pg5jDM5|{$XNr zERK{gXbqW0^?_(K;7d6|2R=?$~CJ3WbRn z(V}66$4N+|=@+cfN>3K2$$`i(w&0TzZ3MU{RL-;19pl2DW%cbeJZ1%!Hv#8D2Of zYxvbl?ZPgc0wv@L54eB}Nan&Q7@#&sl~DxR$Wpk3Xr}&D1Sy9-_`(mErs?dG3-AD4 zZO3-p4G1=zNh+m-p=1%Z$gD;UT(qQ*;%ZP3k?d(4&qzTxE5GS%8 z7;+NjlS)SxX$j{^>vU18Q(`HWQYY1bLl^#Enoj7q=3QB0k||{lId%nENZk8W*=5O( zK0$`p=+Ab(ou-CMjNH;YumfS_YiVG_V#uikVMMz&#q_*#kJZ03M1W1!)lwoB%Nhng~*95Jt{P-rkMIW*997kLGI3 z>I5$d53C@MPKunPAJV%P&eG#9m?TNS#^!ve;ilC6fl9yVN{mmdg$Y@m_Jr5AI|C9xMn2q!2i5x-VEqF03eICY}{^oU^fG^>|r9^aIt(~7XP z1~BwZE7S^aiPc=q#jO}M##?lry|x-Wy;>0NRopCJW@Z-jp{m_Yt)sX=4zR!qxWEtS zK@eoZg%SffoP#=?!v(I{nxzsuXyj>#ZD{&S!0Ls#1xIFjsQ-3A?JxfiCWeZe2{A0`qZA?CNg%DgZT~`J>*t>10N(~;;b^m1$ppbL zNUlrWWn)Z{CjkE6^>y??uBWJF7vX;G95n<|sc%6c6;h?rN#D;xxlQv^px&R9d@d=y&qy}InkfSe<12m9>Zji&oU0`W6)MhnkN^7J^gGWPYWM(HzOPh|1 zXx2KQw3EEp`os@oRLPfOo&r(M0x|5>#^^Al3;!F7pcX~P4~#v`{W-cXJ<=E=7P_FxM(q>_@}DpHdPmmY0bYp5+5K?_!5c1-(P zp8k>Z(vLx5uiKT8^KKxC@doC7=K@L60KurbjEUyyMr)qPQoDsO)Br97k8bmJbg0K~ zN9#a4bc;Xqi?=M+NDT@m_vsSvUONTy?5uTfbv$bYk2~Chg*y@=CD3+Yv%1X58V5CPSEEpxtXsr_ z4xp27EH;P>!vWYf0JC_N&ozt}w-<>nIKV@V+xT)5>xRH{fbF=C_c-h7%8=78O~REg znzcVeLrVp;S~vM6w>48v`8XeRIw5s_XHc0B1iO^v`^ZM{otpQYnmx_WfJ5^iIpH1w z$*t+norAJojnURv@7Cg)YKN(XKT;%N_@N8KY$sY(qzj@i`l6GQcW|=znz&FewK}K* z2dwhuvbdIZx;cY-YyzKc)B~xTuK!ibo;z>#sw3-G<6!epuy7`FykPfO(B9A>$N;Y%_gGR)yU#`f@Wmg6+0%SV1c2c5igNJJ_$(gm=H& zvC4XSj6c|n!>qygC_C3A$YtKo>6Q^c!T)IlduUxUwK0x zy1KQeK|>@YW6FNoR?5?|ucWNOT&O)h)kq;_tz^;NMUX(D=1b$)mTeO5hM43H;miUh zRgxls(jpZ){^qZ2ukpGMX#WUmUKs~< z7x0VA6OE&Nu7U$G_=>_S(W-X{@+9dYE4)1m*iYh(Pj(15(>izm3Qc}@E_i(3_b%U$ zcO@fqbSQMNC_hSA!)0>ry@?gkDNcyQf2cLx_HeD@II zLv<6uL4#JTm@i+rVyQxP3e~7lq)34zl?s(ARk3j4()d!C#+bv14I3ux<}aK(Z4N8u z)8@~bKZ#hR7%HfwJr_q7cOTNEz-8#)oX6uU!Q8_?K`Y)!@qm?Ci{+u zuXkn1es!mgAi;G7-A11-z2U=z)2E|tOP2d|h~c?=C$F7+bJN8>bL@DE6snN$;mcRq zF&4{~8g+^m)<35IcGBsl$8hRNsG^keNvQ^xN{y)q$!W@+NOa%|n&F%RrxdBkUzJvN9toPZ8MfCDr z4%=nd9bbT0&P252ToD|Fx|4GvfS)6;Jn+&Rw!1LFF_&9kI`Rk=Qbd|~lt?U&L?rs; zOG#4wHvii1rC~4?tv~<#`{iT-b2_lV$4DhcK~z;u3c^-voz(?Ztde(2bzB%lxOsV{ z$k%)UO%drk)tO7#rk#FT*>}J}8A@oaopxI#v&MGoY_kOoR42Wyl1e9gB#r9QY}=CE zd5e47Z86t%SFE#Y=(SDrtjink6I(R6JGcHUQ?+Mfb5A~rE4G61#v`%9;)y}xSS9!L zYYFqrL9TSb? z*gNZin)u?4CyX4C7gNkJX`wZ8+9ZjTo_feY{jA$5!Hv=<*A^pfm{=gB?dEmc9x>jw z$N%S@Xsz7Q0hhOZEfK7_1MdAResd#DF_d$`{1x&MiNzq-I0Ie`V~(=VeK^v{7GvT zlbZ1PgnU+M;ks~RzVmenDKaz;iGcGCku(QPM0*zwYgH?Z*hCl`{9i0yp^8^b>~U5I z!XSY_$RGd#2#!M_q!tLVK6b2u`N5CoFqc70{V#J)`b?%e__+^)aC9vz-6%&{!v7Pd zDuqT-VT5WGt1Xo;LsoD>T;c{M{4ob_cnjVx+42q|{t}o@lN!pHceTk>k4VV`lD53I ztL(qjOBaE&uE#$-qnqV%sHA5d8!s) z1{0`3rBPvs$-Iw3F-gjpVv?N4%px%fR2DIp78O&qEiR^9#lYr<||`Z z!&wofkVu?N5k@giuqupf>R}(DCn0|Tgdg=;WHD@leTHYJH$R3r|m0~VY>0R<=k005v_4n*QyBfAvINCqmEwd`~x995}cX2R9Y ztaYs9W>O5@uQ6a&1IY! zU2a8}NuFZjGf~z>)M#;gS5=JmTJqHhnOC;yJ&j2bm8gX>bQG!>g)boUKzT-NfL1^S z3v{s0eCG46J>bEB1&mij>Jy**gxtj@1}O(a*02!s$b?m**oHoAlK%w7@5Ue{SU_To zaS~Ml3KVdF00iIw3P6D`W+5{EkQTcj#p8@g*b`C_#e}G29eNGL!ly(+Dqc0KRXlXV zGWqtVzv>$se+3<-?Jc=cmU3ReA&gk$B)iaM(o?T{-A{V?Kil1Mce_Vb?Q!ohsrf}L zvKb8akgQ=J%gPovI%Mi#oH2>30ne02A`pwA$v(A*c zJ!N$WV;06xG4x-`bzV=WxHxmN`ng>1c887@PVNbz34#KV4^P2 z0l*19QG;U?qk0GT>5YXt z!W^?OK~24qcygrE4i>B=C`NOM>6-^NAn^cft$-Q;gM<9>qzA!9AW@kv%}6h{Yhjy| z^RhCmIrGYGiJWn1@2=YI%VkdW6)<77Wg*=bdvc-C642217rBV>XQ(S~b%#03*^T>{ z>04%af2*3_t=cFKzyTGozy*J2!QcmfQHloK-~ea1pZ^J5amN?BkXER{0TS8IdM-HM zq)-44NMVHmW}0G)Qk>#GzG=cTlCTh#FsN5fYKG#6vHGdA%rz}@NOj@WJy1aecz%Eb z_@IJ8-z2)Bnv<5T)}%LvfekHdfz((bF!1) zA&;@2Kd9hv7=1msi?x4L-Jg{Ib>psOMCtwR)!gDwc%+yhI2xn=4bTW|;wTQE?8%TS zjh_~f0sF}X6aaGY&43PQ!49AY?hJuCF4Ih}!#FVYOzz|&E9EN8^$e<@+`}beA?6^3 z=0pzlI!xbi00j;J00w{qMgbUNBU3mj#!SoTME|MAMheGZ=CxAEW?0F`z~K~7pen|y zLvVou;D&CtE~mf`MZE4#_61L11pT^@h}3}?Vu6D`L+#!##^^7);;#PS&r?L^7pO{$ z^e^uugGYei(IzdQeBi$x@9_-jkQy-0E>FQu;IkOV@-pyoFeV5f5Cb*v;|9wGIZ)M3 zPt_nS1VK&IO7Ox6N|G=~1y``-AdD1Vfh4*h5_%v86u{OZKow#FQ-+TCio~=?3h7Yi z#+ELn9)wk#Z?>x9DSm(lyy=zH0my2~mZ;5ls1Pky1TMZqPM+hZyigjCr|eh)#?lTO z)vgTJZVlHhyXKF(>Q0*CP`rYKM|j{4_5VrI5-`sQDbMhU;uOq)`suIu=>SiF1zZh* z3Mc|cfd>vC5d*9ALJst5uhS|q^(+w+N3iu?j}sB9B_IZ|C=sy&$Rc0C6e7k4ct8~$ z&2xCI+(HVq5JU)5hX{4dK~~AfTm>9-;1uK~rYu4oYQPHC$(-oN+OF+rn2{~;WG$j` z8iVp_z`;F8M(sSP42kXxiH|A0G2Oxu|KiYD5TrHu?-yJk9f80Hdf=WMFCPD@aTZVk z=@9`L5C}LRAMq`b_K|=9N(VRq6%y$4+Oi-)?gMRa6e>|6MKIJHN)sIt_AuwuAd3_? z#v)Onk5n)tBf$qwpaxwa7&-?Qwf~D-1_TIC=VeL-rI>HWju4h=!v%a{XJ%z9RzMYu z5q-Wd8Jo;4nsNN_#ixW)HlL;#a6uJBV}r7h=(bVJVi6p9(4*kY?xyLgszwga<)SF= z(7LkX{?IwcvH_#h(iDvHD61_I(PB{H1b$|5JWehJ%Pu1^pvDs+6;dMmveZbBpk4v? zAToj;<}l+EF)gyx`iMPEffOR41_Gb}tUwrA0_cX1DTR|$K!{~hizHhsrBp{3k*z75 z0z$!12OtzCrw$xgAVZMsx0JETz77koa5-LNHb*pBs?macLG5-y8?mPhd2{%lvMB|W zw5~BKS)+^Ou$rn07n1Y8w*Qh3A~?dl1#XMr8Rr2nIj_RDl>qOF%zr4MXSX zYBBjVGZ%}{>CB5(UjGG6WTirBgBaEU6@oxv4i&gKw1 zY!o~%fuQse!&4F|F(I#XFez-*NDV(4>vC+AHXe5DR zq!ct&^3(`<@my2GXHY@NVyYP40SHb(VQdMfaH&Ii31GYfUyO@i!!|HrBR}*AMa_0a zS9JJ1i2XV#VRukr>kba7iBzA(Zbt!C^=uC*?Veh7V;Rs8HI8uxtyZyf9~FSXA_rwd zPfAx7Aro>h(f_kp6SL(K$`j>@OjCkP)3Z$dC_hNy;o>$XUNpMkY)*@ol!lGzRO&%& zWve1lvjBL_EK@v zZ4p*RULC9r>Z8y3ch!5{p%0OH)Ew!a5v7L8V6O`*Ki}J1~@=s61N~zRy@fw zSQ96Ii8W>)X=d9qc{k#*>{EaR*h~|1QX;4ZBEiMRu(UqPbib99j`pN3m}XX~D$aEj zYGABrgB&Iz7F+T@ zp~l!Y14wi06PXXV6CVgbdjJ(s=0Dv}DdP_9Xz@V7RfLKSkINMat3n-ufCrq-FxKT1 zYX9IlG_*vxZflcf{JM4`7}=2>xfqo7KQ+gCUs3qpHhSS!=tk(1|9N}aBS?CH1=Mj5 zQ`tG~@oza6eG^IJW)-kNwtYu|19bIqc(qp>cb8eVmn9dNxm1|_R~0r$e=~6t=S-n8 z$6-L`Q#T0>xiyqVs&rJ>*tXe0yJCF6VFjRef4qu@SU?rF4{Ou8Xz0~mgNH20!5-q7 zsq3OPO(A(HNrUdWliyUIbr_RB`B_k>RJm6&c)$e=8j(_Yl@&TVn>bd}cRI;32xc`P zLl%KXVS(csWl8T5#S>U3k&6+lr1=-aI1#Yj(;8v+q-l0iRJu}FdV1xUyCV1pYyS~J zX_`TsZlzphDynRD*+zq(Vs^K0L$%I3mh6XC1Yp=T{ zsCr*aH2j&pw%TZ&fn|I_2VCI4P?>KP&{flV0R=a3r_&06KmjB$11A~<@U3JqdIL2& z6t}peO*)tZ`ynlNj3*4k{P(aWsFHSVw2rcqAq5;M+rv}z{y4f-VgTMvinz|c>)qZu0h4s^Z+4X9?yCL#{82{Z9rJ8fXT*njE z8`)50nxsxgNcqO~*oqt`4Z{UcVTLsODRkg8gGPtCuS1olHUDP()PWsP`_<#w7dU3t zEoIkbyQMp7!NWYOla3_+*`G;)1$cni6KtOVv6VeM#PQtH1dhQt?yW5b2x?%@pA^su za-&-uvih3B`d7wne2p8uk~F8*sT$pd?i!`{dgk<7-`%8ye4D#!wss~fd_i`|ifxKv z1qvB!v-X5l9l))eEQ%%JnR>Nly=F7WC3bDsU~!WlzRYjCtI_=8AA=N7fa8fBV~_o; zKfE57Jpv)e1$ZD4OP0j3vj={LWHXv^S-d=Z8PsY%#t}WF8UKB}6CCm_Nwju-$JhOX zD1Ehn!suxN(ybKP3SJ$syzApR7-oSKqPpBI z<=kr<-NU^1)gI%4JxG!y2nxE0i#?$`ydI64EF)T1mpc+zU@cQVajk$9YJl(K_u3mb zi?tZ>QEtK>Y2`X%@lS1ynHlnNoO8zhyg!oHh%Ri7DcDkXgtR&7Uq?c4!yW2M-)n;y ze*hrVfg31rAUJ^t)hS%K@L)rR4A&`?s7|6pcM#Q)i}$ai$B!UGiX2I@q{)*gQ>t9a zvSl$}s8Geig)7!fnly9a^0jlPuUx)@{uDY?C{UwBfB*d&#+0eErck3o1;U~S5Fl24 zTm=$@Yu6xO!HOLl#EMw6Wz$+&8>vSmvyoT;u@dR+sJeI~-Hk-5s@}SHM+qK0ij-i( zq!KG$jEYp_$1x*ER)vak<;#>+X;$@W^X6EpK-&y$vvkdyH*xmF$+IWVpgx8E3OZZ1 zuh~j}3Cq2-_b_3>)+46e}7??p{5#5Jn8gWP)8w1RDwkzwUks4 zLiOMoh{9ZT(Uliqb&+yH4}1MZ7-5JN zR@h>UIp!E-lEq}1keF#!S!kY#MjC0RH96put-0n}gS1t7+m%Y~mfLO=HU(U8$w5_I zn9CgpU31bsC*7LawfP-1E2!d~L34uR0xkv7c@RPFDYTw@eZn`W+X{O|8rP)-|w5btTsii>022^d_(uUiX zzInOSm&PF%=5gpYXXcsEu^ApTx#>FpN6ZeRthJ#hgHpz6GWC(7=Aa7tx>< zCCm^;>fqz(!w^R-@kqa@LW(MyE4g<~40u>y4rfFB!*0SzdX%nd^oET}<- zGW5BYrAl;ZiJ2Z_1*;Od;Qs^|q|04gxnjcLrx1B~@tDYjm?}nrF(z3}H3r%k?7h-W^Lp2ubbvN>P{%qH{r@xLL2Fn!kx6A_6ME2twyD6Capi&H1QE>4!c+>L(+cT)iw5(8 ziUi_?S0S7o34dg}APuQVne?Z!F!`*24%BMZvQ|N}Ma`~ZX?b7!TG)C>*K^sGdKEnr z_Sklv@Wkso#BjlM!1J$x@L-mD(;IsNrPB5xY?$v;$V?|o*_Gg;6c?KX|N4imOI=D^ zLAj=AN2|kP#HFZP>B>>>m{bwvv798LOKc;d03EdRML*L^UvwZC8{ueZw5uIHO-M;0 z8Ht}PEGua;COm3=vY=W^qe7MP)`mJSIOIAP_0nag>b1*=Z+lmG4iXC&ylG$h5{3@I z;STBuY>K{Y?Ek@5nlP7Igm9J3uYN_cOi~22Qqg3Mfnc*KkPVQuKxN8u7}buU zQx#KT+f+WHh(rf)%Q^wGm%-%fXMthl>>k-8u9onG`^@BVH`AGC1#h6j6A)*28p=%J zrn=wKk`8%Du2hN%U1&=e5%=0Q?PYWz?udj7!ndy`gM)k(aqs!|R!1!I$+r(7{SH%MGxcxXVA@g!V|1;Z23q*E9l?=gVdlP(dk>?4yK;pE@9G&3)W<< zn5;{R7IQnfZnbu{z*M@l(i_Udy88Iuc+G35-PYIbee?vr;AQu&;{sv`EMV{jCaeu6 z%>P=`+NBgvI~T#|5nS8_?ss2VWWQ<@ z9KtxkEJ5l~kY0xc3PG$%Pg>=LGdw;IH+#g@PJAy~>=ZI-Tqosj&}kBQjdy2?FQB0c z&h=fjczmt1Th8*Djp772%UNDJYz0*CfCYr%_RS#=ZptgIlDcEzKcV$vp=bPBH0(H) zw&g8`!d1u4^K__3CPD^kMN~vb)HYS;4x_MS_yQgR0S)e;3OoQs2e()X=XGvl;!+}B5Z!~rNERdi8E z81xsYfHJVtTfe1MiqROv0wnqbf0dLOPorF!M|5QNT-I_R`&Ug$2UnT)P+sz5K!$Iv zgn+PwUbF;09%UW|!GJ-qdwTM9y_Zrd5|5bEP5;<5X zRK;e9*ff1rHG`=YXLwXPIGBTX#sTrSQ)QCipv6Y z^fxs^=UkpdL!bpfH%47K);yYqN?;O1si!X1Gj*Z{4%|T}srC*(fC?7qYX9mpc2uk zb47YB*mMnOjx;!D5VS{;ICw3006fr68-{J$q$`8wD>?Fs?I(F&6@T$}c>v{TFBEBI zc94|jZU*L7u^3l7CN_0tZ)fvq6Zu`-(ncdu3OW3&CY7 zd6zUL7`;}1%O_)1NqT@uY!9Mj4hCnBn2y^giL%912Y@0!h!;R8NGQN~H==&tmW2G6 zXeacKDi)AISARIQjnH*wSc!E0$2?#YF4#4IW8!H-wu=Y|Qg1U5s;~ki6-DTAG6vUb zQuVRDfeh zk>fR312GDR#A%!snjfgZc>nP^mCxjyP;wg-q9t1* zm=t0Kor9f+nU374n0fY{^0-dqc^4PNiTSvGIoFR($(dq>BvGk~tLUMU=6P9|6w7m( z3<(vsXjfknmH@gop(dNNi9zQ@H%S%=42nx&M`b7#Yi0Lv@30Pec%fp79~pXaHszyK zIAhKin9*rn1B7fR>LKVjI!)D+KFLQe5NNl>PJH2JScRU7!G2vON$vTM{sf4}+>hogq-bBHR1fyk&q>RFqjJds)( zlX|H-o1~hGdjE+w%%OU*nH}ViFZluvzJPUm0x)N}UQpDpDFv_^2&=HV5eR#=CGj(+ z08l>KoL)PK5Zk7_A);|L8+ykBj2K}`#giPnj{hEuXOt+Owh|*cz*||Bvcj^2*Xo`{ zvZKq{t$hh>jv5=}+BLIbu9SKkIcur6n5o+(mQn{x^vXTzfC?)R9?h|a;(-gN)|eP`RPq>Rb=os8b?93T3$Gdaj47u3S)Q2UX6v!x3sumW2TsXM!wB%>!xI@6vdzlI*_)lwNx{c ztarvoCUO9_C9>lO7^Hv#L2#ahcA592xBu>^yiRk9^EZX|_qA4NpAIsv)LXr}L8&_n zCJz}zkZXY9E2^ZX4m=P9d1HI-;9nkva1PqOQ~Rpwa1QPert~|%fPueK!<@w9En2cX zvm2dnq=`Y$0~o8eueGte>$W;*1qGmCeg?s=Bdx%7yg^c^%4>Pdd&J%}yLJM5|%F}g414$(Nos5=T;5DBN) zx@nwN{7YRF@_!A*CDm60Q9Q+KTg7(Pv2RNk1%M*f7QDSe3gLIR7M!>Fl))|QbN_V4 z4g0$FX_b{z8*c1>)jP+Es~f+u6#v@Gnw#3BE(}Y9l`jgh0=NKD3iyEP5DBv+WuFU| zawxhPK@Klvu#AklsBj{qFd7&Gh{2<)RX99e)0O{AT{(1TskD@(>tsA4VFqw@(vCn$FZHDC!+xUq=1i#rT+tg}L-i_TG3|0xV;l7JTV z9eDE+pfL(RzycYaH{t<4bn{+QA z3f7wz%$T~GK&vhoZBfxf&HoUs3X$*w=f_PtKpq%_Cbwj-x8!PklYyZN5yUhf?m!Oe zAipx5y1e2u+v>r;7DJ~gq9D3ZW=ojwOvRvlgY%5kg!gjt=w}QD#-12lpvaW(_ml$N zquR(x2i=Oo*2ZppX_i{nW3r^?LL9Tr9Kc-BstS8x76dN90wp*_D08-AT_b z!U8ZyNK-WmK(L85`YWy6Bd_d!oLSWbt&Lf&#*K=Qtxdwz_1X|^y<7s(nCg&c!xY`q z9KwJLK_Ds|Z~(x~0srQxoEZH!ei9w%6<#;IpiQLLeEqNT_1A&z4)<`~sf!9G;uu!l z-OYIu`N@Sp{R>Ja#Zp{@5yZBasWc)U25;(!_ z#hXv7(!bfN657%dDsd{Fx>99|KnJ+ZMZF6N)Ie>bIDSXQikNk}jy`T8qrd?dwAl|# z3OvvQMt+3#t+FPD-&8HjrtP{Y_`Lu9in|=(xbe`HN)%p_Cgw7!dL}C1N9kt10&{&U zxS$--aYV2_(*NHv(p9I-JP->JXy^VKm(ZSBk zjPB?L+~f7kRFmF=a%(G?4g@0BNSz+qEKAjl=H$5wW6Font8L}eJK(@fSL$-s!*B}l zT>~dT<^?eD2XF#4Kpv;C6B(}27Pa7H2)@0pF9N3ny2P7OWX*f6=X>7L>_rYJ`Ru5B zB9N>?Moj8HaqU}KwmIYryq)7Z+328r+2MXplqi1rd>A?)XcR0vovxmujXU`*%TCUh zS#9d7=vafa0 z+$ROyEWPIf3l9I>4Dts{3PJD#kuVctb=4ni8eEgEhzl}$7vEO#G8`+<;2!Q$g(9`p zyE?;oj*;_i4_u8p_j}GbKiPTKR0X(q%8-|JRG{M}KlsI?6_f2`nvYDoM zTwo~hFL|i>|^Z*h>@Zca;3J*4X*svAGjU8Kw#5nR~$dG|palm7;mPnI3 ze~v_|MvzgFMx7=#Dz$3Xq+Gv-jf#|P+Nf;TzMb2)s@-SLqJ0(jEiPQcV-ZJA+^w(T zZjm3KH5WO?VZ!nfA7zCH3l0JU002`P&YOZySAE|GoPJNjC`5NbgB$+=X zN|*mDTgGhZCYRjFP911$!U;j2dRh>up&l%1D5I7->L+*HQHP(fHsr8F4?hGk#H&!z zBCt}{N(-&FRD`QJ;_lKbFT2*O>zBT203xu!2vZC(A0GoUvdSnEvM>&Q@C-80Ktn|b z(oTc2HPlptt;*T1v~4!sw(RY!;L^HHEw_aH;MW=4MeP6)S+K;RFQ; z`VN4B4&b1?A0TT87m4btPR2H4#7iQInwam9v zL{7T9+*HoBA9!%#gaZTu4?OV@S|LX(&{K0gH)&K@#)<5@&!UQi$%s&n?E47P{U#O3 zKWJ3?7(f7T`T>_t*BN=#27BU3D5FkIRVfOQat9t-Z^k)iox?(9PAzt0H$`6Ca#7HQ ze+^czUy2WFxTDf6*1Q( zx?W#$k#4Qj408d6?h43L-~tX>!3Bk^Xehd)lg=w~q}|MGV!RTim}18Xh0p&!V(^QU zWBx3Ssq>qP(V-Zb5+q$zms>_P)e2X&FrJ-XhduV4$12OWwA|)(Oo!h3wReW|`b8BU zMkDKKAEjQlu*ImhT3W__;DED*hy<;)NL(<>TPej2*KFF%y)EtB*hMi#+viTsEm9&0 zf?vJ6`xj5}{ym6=zb@;nAvIsDOK#uynn(a?BspRv>MoI!SbQ$_sLYLIW1Q;`OEM)B zVdx+y7eo+GR(85n!K^4UW1Tx(Cp!|B(1aX9MGyefn-t-0Xu~m@?;NHyRp`J;#Y+}r zj<*=)QEgh%5|S05cP-Fl%QWmmLH54InzEVAHQ&pU+F0l|qLC>}qyYbdU$}Dsf&@%Y z;xPyZP*4LNEQDLZNsgcdC7t3hXH9BMqZ{odEMOh5B8X4t!>MM${H6dQby#jSV%cS)yyG#I3Z=hDGy2 z%iXfb1HCDLiv{rFp7_Lp8r<(-wh@kVlrv7`%%V8BFlW8^x5od)Xn>E49A2t3F^Sa& zBOPfE#{Bp|Nl}V(0g~WL2owpQ9O#0h(je*@lseT>XlCvp$0z?KI#Etqp$DXKm#)lY zCU&l}j(2I&MPrFPT25_wK5X9AAk(kP0JD0b;a6!6W=tww={4iaow~x6qv5gO1RS_i z0KU^VFd~EnHNa6|I-@03;4Us>a?Wv%bIx<76P;;%QFPRZwBOYco{9?KJjF_%dq(V! zAkkPq)%s7Ccn%!yFiofqnn4Dg4nh%XsH%QKGj&kZuYY}AEE}RO6+zXo$5EvWyZQ@M z)Ig-hOWu!a>BC&=@`wGRp4Xr>%++X5e6m5NVWwFF7q9>YKeZ-7RIA#59RLL^aDg|y zH5)2Ib*joSyNV8avv~89pq4@*D$n7*0%W| zMvW~Gcu=)uJ`rdhPR)mHS6GckbzU2VAyubpPU!y-=eH=1Z_a0WpFr*L~aE1n7`TFh`k-$+b z19M-fHO8c1=C4X4!2#?AcuCpeRwQg_!yW*J3XrkhY;S5)Cn^(N9_Er2aRW4H^4Ydg z6*M`qS}(22(cHvkG4PH{F?sH>VvNFPrS)@Z{^twx8dSAOTZ+bvd$$fy6TmwRr!=Y3;Lx7DrSP(@Aj4M`y{)aiI_ zCZoO<|nU@Bjq!5wZxj~lpK?VX}O+URvB7lA%+?xbtXPk&m9x*@{}Du7@h z&Zn&DbamNx!K+saQQhjNXL9?3aF&L^EncWp=huA!gk$NNhqreYWrN+BjuWW>Js69} zk2tov+Z{?(8u{6DgRalA%XaMr@wd_BqT6D%`Y%Gf*SQM3Uv&R*-uHfT#R}t|mtW|U zkM8Co2#%8c#~nY2#RT`wvJHCIRHOelN<>k=e<~WfnY-cx7bY6HnkqRhVZQLu4d(;Fg_APr6ESeRzU$kn>@&c{n+P`n zzwZ;j@hiWJF{_|UtMtP(LOP`OlL;U&8Ts3;AXKRP`?plV5Op|04B@{eG_NcQf>IDb zw5SDofuj}l9R$n~1>`l|tE>m?xM?YX|C0>O@)im-K4fAdk+U`{ITsI1m*)$bmRpe! zld5y7L&Kx0*h4&Y^S%~*L5cuG1Y#})qO`NRL3%5?LSjG90RmrGI;Nw)px7V|Dz&0G zLh@q5Oq?ho(u^pKms$WWEA0Orzd#me>5(4cLX3MrApwE{Scu*`qTxFYGaQ=>w8iex zz-ep4DB2Pb)Vda$Lzt7Q-m*TdIx!VYJcW6|1L{8UqX-$~qdo$GONk(nDTW~MG?AIV`lCc5#J?m|hjvKEnXD)ZLyLEewdxbaU+Ie*x{Q0oz2up! z{YsKmR1zIHfPfT8fu#StrmV%|OT#tH#V6`Oh5W#V6u~ngK^Uq-6huMnyU3m7K0oZf ziHN~xl$_;at{S99d9%h$%P{~E1}oUHZzP=|?6-w7!U-`wn)J)qQ6V0H!vU;9d2FYi z%prV4MJ{x}&rp&YNJ_^%Hm0OSgG58_=^k=X$f_J4tjtN5Lz7{Y$Z@+qL=#Je$w(Lk zM2QhZvWmQEG(;Ptx9RE+M@pnfunB{*E=cUIaBNBZ8?T>mioYbz*WtuexHBna3s6kK zuR}~82};S*y?rDi&v1bQ5U`hulFEcisLV`+WJAvUEEXEfDAP(Z5k~4uqpt+ZJ&Z4g z@xIjLNY;e3%BlYtp$j_AAv%x2l-tCRl=Q|Rj6?_-N0)4`jEY1bRnfB>{)=Q7} z5+|DLAG#2fV&Q=u*^%fBO3I=hB>_>>U;zaXzJZj*?X=7~+dz{8pOm}GpxL^30krAM zL(()xi+s<$fRR50zq1UhdDyoRh%D|6mD6@)T~VOMTNW-$WfrB#KK^9dKaK zE4`V(#1-gc5$r=o3#AJTwa0wKNBsgeT>=frAO#d4Q8F~qg0wp{%)sz07bx;ThGZAq zaiI~U!>%+u_H0gede0f!(eE?MXKXj+N+A27oRA#4%JUePAf#e=2P;s8CUw#Q9YQG` zJu1c0PmTW-!%{YX3simC7H$6jR!bLjW)m`kxJ%hgU z?9!k(mEG9Pw6AP zuVnvEW5r0|Nlk}ERCar@8Eh2GAyPrgLAH`0LUI9O=+8`LI=tl6kc|)w0f&Jr*|hx% zAozj*<5F=t#&Z)?UwB!OiY1v{OrnHU$&7@JGYx3dmYvPledX7w)Wx9XI}H=q7UEMn zBs^j*)|M4T8PUj$JX9ZjG>^O(NxNE0o7Vmyhw35*7tl1%<4sMqD+4t`pHK>UP}|q_ zibyzFhPX)-sfE&laOwWwb zIV3^##6uK(Bh%!=Lfyz`Y!g8wKOr?M=ql1mAtdTzzn4&?x^$%Z^G%j4!n}GbpHTl$ z*tK7*kh8dhGWaS?bL%KU38~)2Ti~TxG+o64&--|_B9bDr}KFzc#J55}o4Vqugof#Fe z8m&k;YT09@3ypk1vMfuA2&*3@6!HVf%&{@)8VU9zBy}i^OwqJZdnB2`D;w@0m~@98 z24t$hx=27yc=Xb+%v~d%Gsyb2RD28|qE{<$;=r9uIE~^d*&ZsUN;@6T&J6!S7c$x{ zPESA`;)E4r7E4w#K4b9U_?a-_-(843|Fuvfwp)r*9wmO&q9meL>;YMvOm3FqOioA%PF$?q(+*J-mcn!78iV?^ESKbTqSsv`DiE@_p2zJ5opb0aOr>w%RxDqNJN(q$8x^2w@d< zDCT1}=41vwRA@)EpgH$cSY_*hIoTm=)<;$Rj2;NXd)3Zctvg#Z+$!E=p&i=A6`IV5cgZ3%b!rGY;Xh{NBfbJV^VwM!{zkhGYM5q#D459n=5i&#R=Rt|XZJ z3AAPC9@Y-ccp|l+&=l(^a<#9La^wcw+pgh(0#M4O^yY7lU`?*marVVH{5!#mNMc;t ziFPBIt_zyBX%<^X9(|neL}x?{#(D6^d_U_MaErfg&WVGH{W z+(qQN=-nl^(t05g4)*aj4K?0zdpDpiO2t?v6BWM}HqXV%>{ z>h3wwp~ckb0?sVRV1WYY=JU4XC7R+5H0j#tsTRE2VvL-XLxX(;6c?DuY$&h3kT#m;ej4V1*UrG zID+O67p?HVxZPXDj2qGHbkpIRyJEsj?-6I%c5fIJ6OG!PJEX|!i|gP*Jer1)8o8HL zHp?{LIn5Ptwj^+m=_hq44W!Q23vvmYC?Ja226HfncewwMcu)s&DBE9-x}V_kE_Z0` zb_g$yN4+2pGe-3Zw^V=skRzH(ahklmyNyiCB3JITh2Xt_UOjn002Zw5iUrU^j zQU~PrnKKQm$aOV9T=?)thV>wt^$;C}S(^#{db@PB<@mutD*M@O}U+dYX z`nMLhK1W!(P9;I18+KZluW$Ar@9!X&C*-1!wZzZZ#Aiqef&&nSdway2xF?qw23){{ zNoe_92;EOtcb73+qoDAG#(CIHuO8q5ZUHBU*FHh{fg8eiG}reJmCR8%h-g##^FGn# zEorJe>2W^z5H!zW&z*@p_Lx)rxUK21SAB}_?K3{~|7K%pEJRAv7=3~WjrbR5NO0>i z-AQQ)KfnWQX!!=;`}-4hOCk!W9(=WRvaqp@Q%LqwHhjVOY*?3dH8*r*DPU{#a&#B+j@;T?yf4MO~)eb(IK?nc)GroAfhW+vz@;it z8p-RZ11v^;wLi4f-RY3;}E*w-9V#Ki$ zD^?ZjG2~ddBuk!5v~uO5Nsk`QrPPh)7z90K(dV1OAm;$f=1;uvBlF1Dgjk4;9|P?*Jd-+i1Z^%-cQopxGk zsIB(PYe1?d)5Zpir(3n~Br5X5u@X(?TF3kg#UGz_T&O(o(? zaz`x~VWbW_9hFBOdG4SGADwmDc_*HDY5{}}R-_WtP_@u_BaW)@&;t-b>=YoQR2BHB zfmVzX6)6Sqpw@$#x@Dn-a&`ZDVTO2Z$d`wG{bg8SgcZgZiY&V7SY(k|HmH6zezsJO zx$3G~YC{f5+i^!8mzt5q3Y!~~wc$n#Zo>GotS`VE2aGSHq;Nn1qa?KDbJD3p97E9H zqRN-872^>^5rL=fcyOwdC%o~>J1@OY^+bwdmSsj%FE@f_D58rtIE&RTqY$df1_LQG^*1FkJqKy{X$}9iaYmdA-3na0= z%zQJEH5>cdvJ5dq%yGpKXJ8J*6-5$ zHP~T`Et3^m92$u#wZ#9j%f5qh<_o}y3Oq2Q26KfLSCSUc1Evi_I3dKJN^Dofp^|zy zh#I3x*oh`Gwphp^j||zYw4(f(Xt=gKn#!id{Q2gf?Mx);HXj)bF~SA+8quTxacu!s z25{AY#Dh;rl|e0WfU6Py5B0SJJV3ZQ@!q~La2+LqIz2Bu;7qBe`cg)k=L zi*p&TYszEO^J4!f!x^r}KRWmUpm0$={uyN!Ly6m>w#PlI*zHkxv%=mc<*@QCF>vUc z7^f%}DvVt$V<8fZ{0`H&$3;$LlPj6!{DmI@lF@%;Bp}NSSU}knDQ8DPj9qpD1R(T) z2QF|y3T&r<0~`Q@2T;HUPauql7zBjfatK4FG!$V}CTIk47uSvl9(JsQhL*e}CR@T2 zzQtmPCc7RkQgJA`32}&yBGC7YSe76ZfIbFd;)I@8Oce$gP&Ht zs@Q^{g&V2@ZfqM=zwRSSL}?G9L_{T|Bz2%3w2~A-faTvHCd(*Z2t$SIP%f=_s*MHZ z6@5+7$3)tyVV110#5`=KL`h9BP?O} z)X}z&sh$t@VLmoxS#-$Vy^j|OCh>O zx6stB;`?ZfMO3Y-$be-Pq#-?0F4}Ka8>SKDKGfdu4QMNon6G=Y0%}lyI&W0jCO4;C z<)vYef>t=lQMIHILmm>$S{t)!-R0mkv$@y4UWuE7A}dc4ioRKtiFD^A%;;!hzD!3Hq$zwPD>@p zQ2uaK@Y_MoZg3Q1B1l6BEMRqp7HYRszdB# z;vUFAqd>s{H09ht%XQkctSd&Vt^XxAAFqC`I$X@O#^L==Z3GIrh zk&J93ih3$Z{L;n7`1We9W~-=XaVcBz6XXqq*Z zMO4rc8X^j!%+UrSUiKx58-8F02GN~)TBJCc5pjy3`CgL+frS#SUg_+CV%px;#CpgBxjkiscg)3kA6 z1YXy=i6P-lN~%d25ct3>&LW~*79G)|8crYe!C@QzqA$wf2h!nLy_?@S5rkMsOr7E> zjv{59f}tG1`njJVQsbAsADE>UYlQ@aF`_rh&>W%7EQ}kh-~#O_QieqW5;9&TLSDy_ z#R=2^0#4yE22K|K%`u|Si&+S%+{Im)fe{CL!)=oI-KMq@Vx~%p*fd)cGW!?^%c}^`j~}<@Q;Dl<8tY z9tuKYB`)rwLe?T05@bWJAw-TP8^)n9-Wk#5W8nqPi&@lLbmX5HMG1w=xkLgBOb1?` zWYt;S433@+mYz1|nn%n-O%~?Z_)`#+0=bo)pi~C!;lfX{V@h$ z0LlWW zr%9%yNnRsL`X$1ZS-UWtiQeg*1OaL)=63&;op%z26|7@;3LwW_Q&eQ4Zfa)Y!J%lL zrjXXaYC@`zo+hQDrhF>)-i z3?WfGW}qfva7||0Jz*rcRo;Z=XgVrSjVrm1s}4x&xe95z7Ab1BE2R=?YPPF)Lxw*)nB1J7+E4~G# zSyARf0YSOmkqeY7PX%qco~yY+D!QWUkg98?!YgaK>%7|QrRr;@V&$Qf5?42^qyN;X>7{P?*4z@PtdqA?JjK z32`c?o4Q~6oh%_qQoE4DJK#ghHm-W`#HHk9K>5(V;OzG3ES^E0CGOO?5-rf)(KiXL z=<-y$B5moaE0P}RYNqb$vZj#&>3l-%z3QiuV(otNt81pAkMg1h2BVdN?I~pn%ejb; zKrC@Q?2l9|XwWQAo&`Wk2rmB=gR=35T7eFz9p>hq<|2p$8ST#&?dX#0>6)(p_V2nvDh>#6kP@kCHm$o_ zDt+26);{Te=I$=iqVED%XeQp+7R*IT3Wo3!!}f@+{>H2hN$8BrFyMkIOiEU0qReK6 zTm%Iv*vwoC1Fq&OL;S)4paRu|tgdP=hZfS7gs=F9*=kK^`JS&4%S0q->LUsUk(Ja? z%ty|)BhL8~`pr zgKuo_BbTJ$0&5|qWUVR0oVE)**y$0EvP*PRpZt=b2w~;iZ2aDy6wheK1!|)zUZTK-=n1W+WNvuKxGeB%Hpn?_n0yH?4Zv=;#s=@*I0wO)~B@<^4#~MNa zv8|2SceDfJlCnUr#LMDPEU<5j^yFk%ZnnzkczQ(@ckV6QvMq$ zk1moPtw;ZxaRF0mlVWP9_ABn1s`LRPaFJq-QBMAl40t7WV{gs?c@E1cg->fUuORaB znu2?GK`HpaC|H*>?83OD&OQy6Im0UdIW#KKRjMl6^@ELlMpj6xU4EHH@1E)2sq@WLsaf|xEjtq#X$ z6N81Wz?kZ-u8Jv_hc=rQgP2ybYD0vZaKu2&!Ys5`Dc}MyD64}%_&|g8QL3nm?1EY2 zY=-}9IEQ-=kPh&;`uT8w6LM$tMnh^DKkWj8s&(5ZrcyV*LZrKqVui@~V2M{wt_VpP z6UqD-W2X^mkkFKz@F-ArX#nJ0h@nu>0x$#vE&TK_?7}Vp!2w7eBsYnEBMYy(z^sC> z@Q5jx?{LV1(76nR;8p`V4b3=`#Wu}UDa?YEvjaQ?G@J{xe>8;_K#tlpCQ+zDH}$rj zt14I25t7=#hl9A#esM^vE=WJE>%ym~!X~Na?(}gV6p4s0(a+!I7j6!Nqi)rL^Y6Jr?q<6&r!Y=#*CFp=y)B@lliIM;VG_U{<6h~13R=sJ<$AYLoV7(oVHH}w_~_(Pv#SH1!)TNFN^W%553W*tLhT) zYT7{Sre?mndy`J-N^>hIZZM4nMlbD^^W7MWTzbEIeYgd`&Y_}KJVn!ueFguafMrK) z%d|$@r#VC&_AXHJk~_(1zRMdEp zV?~P+B}U|-qX&+MJb3g_xe^EvDnWn*38HY}D4RA(<Kis&m;s!%0W ziWI5Rq)1~CjXHIzs;aTDMkU%bsZgCaZPvV*(2BzzHCUiHfFc&HU&DU+`W08MFT1p? znu>+XZZ2oLiU}JgxY#ga!-fG%{1%uq1*nEOgDY8bv0%=MRW7zUuwegTxKxd@@}mdo zAX-M1I?5LqG-%+|v3obq-ap&7ap%^(n|E*DzkvrAKAd=Qwts_5jj@O8p>I6kb^vX%zoar2fn4 zKb(9L5Wt>xO3?743>^mKN;_=9gV08w@dFei6o(!QSdov0xrU3@*zeyDZ7g4D&@5QWApchnV+mK3F}>8lOcU%>D5pOCbf~9Pd8MeQ zsKc--2$2%)P96x%)Y7nMt##6}=HnqP4i2axml$2N%NM?ao$D81jFoFg9eET?E?|5? z_E=vyP%$no-wI|JXpmH;l+hmgfd?%VQY{tMh$#jdF4+N-w%XW?SKfK)t=C@Rg7`s) zAXKS^PS9|%1vH2B4AIYnw<9YO9Znd}qW9u^6beWml}RRn_8V)ID?H4&QcD5EiNF9A z+zF@*yFze5p_qCQ6|Izt3e^6}>OmqFY8Y_V4x#jr!~Xw3#MS0qd%a6oqmPbjuDaer ztj8XQ5tbNj2MZ?4SWfUoT`hy*_7_}CAq7_;emE^PR8mppN??Rhm)&;adH3GA>8{)E zyO+D}hf$)c1>owg%Tqgq2_J}|NL=863YQqauONmnrioHYfu7W7Nj|<*XRt6Wxxi4p z@@he=kRqk!u5wz)AuAv>H7S~}L+b<=Nd7A1S^3MoV-Qb_U3_7qry1)oJpx~} zp7*R{se*Q*A)EH7M2b|z;!46um%7Lin|Mso9%5?W6|tB_EdmD!IsgKM0G1+E00B>B zDcJrF7Nwa)q6Qo|h!hT@Fa*|Qfpnx}105I%%so(K8|qvHJ%u0uk)?||U>$}Kq&k$K z1qgdVolOMt5JRCr2S1yf&+0h2TUnuZXaU{nPtm!UV4^4wL_w#bjR)bg(ynfkt3ana>%sgGPi&s*MJW z1bzaTAB;inaGCU&CKuAcpFQw)oQh!WL?s~6z(fZuU_m2~ViXIKlwh_8uBragV2`YJ1ZwB;MgtS>f)pCF!tZ1PX z^~JB=dbH!wf|b`R#X{f%1Rv0(6dwN-1~AeU#db|`9`!)qN)ek_#h!_iUR0N(<)k{7esar0LeZqAWUEzyBj)uMp4wiOpIN)fT*n!I6Q#fT4) z&uMB>3RBF2iNzqsx?%$lxYffR_c-ig;TvE10%w*ei3Dgq=*+SiOgjZT%H?e^O@27kN2Sj2(y?FXyyY1{`xn$ zbr!I}CL7I2u$WJrHJqOn44wsxwkAty(1k^33JfnA6{`@6qFFV+e+(?OTF;^xxana=+m z+_~%A-#JG@1-Xr5pcDTr$K?t%fx0tQsfuzs1_{N{N(q~%VquE@%ts<9F|iAL5D7;8 zzz08=CD~B&1Bq*a;*rooDJY(0ElB(%Ad#)1MqT1gx1hx_Hu(xtfbv(v`l}}(1(a1G z@b^inG*~`ODN>UP@451?(cUFH+(GTQRT10UHu}+1`o8BzLTy9=jY{N9kaG8T>c%yr z#mqS8E2L$h(wz4k!M-2UMa5LEa~+}uxsxu`PSFiH38Q?_D3X+>;>*VQU8zj*QRqAs zZr(~NQbCGkTioIlKaIvulk8)M%hZe#4|zz<5fVp2Y(j%nl_QY}B{GpUUH#nSRZk00Li(ga6-;B!ZZGSQ%eWlyxPkzV zjBC%_4ePuva)OGRhKl$OEhq#D6%-8w1qpWcDiW-umDuLGa4DqPX8%4<9rSOP$YG>D z&jn?$2KA3K(q(Fhq5HP)uj~S(q9vrN56Y~M`mQ7vuy5E*K^6MW*^b39q%FPNMNEoL z0I@I&v#9?pRE+8TF0!I-psG$!$gm8rjtr&10j(h6en$+^t){-Nn?@m?lA`!B9PORtN$eN9T3qS<}n^vaUC!*HsFRG zN$>v(W$_>p5^u_4BuHT@NCAKHXAB{5A}8`C8qf!30tKMz_RMX6=510iNGY0;Cz>%z zyeru#PuSFE7)DBpPRhO7YaH?69^$3F%5fa;;U=pnCrhs!d-7d+(k6qlipb0$6Y?mL zvToqV3wLY3sE#8kGAd;PBP}Kvu}&i;aLVt&#{^#n zmjJPAq^PixGA`wEF4yFRdf;5HCl@19D*3W6FQ#IwfW;mV0*Ubr4=e*20xZSywff^e zB85L}2@s)(70X8+jFK)fGcz@FH#i9;Mu9p|ApxJ#>dMeBkBcg)aw;t z`lQbwjJ7faO5~3}j$&<~h)dum95?effipO9<4$V83YzY_vhEj6Gb&v|HIGZLtl$Jx zU^#0KVIXHuSOzIhp)tuuQcmGzz$ab6K{j0R|Ag~A(NiuP>jy{y7eZ6A@Qg2GVm@J_ zKItuXblp=j`7Y$;KzN3p2;uMsyZFY$tV>C*oG$A1_5@tbMf^q*KG)pF4 zVsX5baTe!39CLA|QLiYbB_yi{tUv*308CxNOS{wxu*o840-Ip7>+V!x_~Z`*iyh)& zN&z)cwUBITKnqeqC9(sX~G!Ge6g~2D-F9x)e+`HB1|oQ8DsS z7N;QaqfWCU61t#0g#q;1K~P=wRa39NI*Q>;)e6$EL+SJ-LbW9TQ%)B(qs;VCr13^E zQURbUO!Jcprg0h_lUM6Anjr8|G-^Jeu44E@2|*85wRKyMZc0ia&K4CvT;l31a#I&4 zQkQj7&va5Nh6CEPOw063k@ZZ4l_l&|KJaxuA4%fzC1-4{OHnGS>_TqCx zd6il<3hIVcQdgo;R01Wui}gyaQQ+fdkw_-8?0w$HCU8#Jj>49vPgq21UEbkjnYL+- zi8Si9W-T^8Y}R6T)?O(#&h%UrH-6=Je(AS0fztp000000BRI2asU96A3K9HGt2{T0uyi%Aax-CQBeV1 zSSn9t09BCyY_BIngD*>pF;SE_RgyhhmH=nV8gj=eb;&bk{{ol+28|31stFu`6d9Ei z9kL1E}eX|?Hdl*M$W$a|d2Mzj7?zb9ytkC4`htJjOJ*^al!j7&N$q{zsn$nU1g@UGFvvE1yp$jG$a(Tc?XlhOaH+5ffa|LsyD>tizEd051X0L7Oq z(31etq!j0-A;OYT%bHfoqjK7-Y2LDW>9uLdw~o-0lhK}r%&4B{vy$q&qP@Gx?ZzqY z$!o&Cj>gKQ%E`FYzK+w-q0Z;D-p7^Q+OFy8weQ81@Y}V%zP`r9!NSnU$?)^Y$jHmw z($vt%(9qDy-0tAmz~0)@+}qsW?eOI3*6Zr%@bJ*^@agpQ^ThD~$>0Cm@c;1e|Kb1D z;Q#;sGy(owBL12>|B^=kvQGceAOG4h|HWYc*l7OadH>Lp|I@Mm)x7`hivQ`g|Lf5I z{-FQ=%m4rXA^8LV00930EC2ui0GtA#0RRa90KW+wNU)&6g9sBUT*$DY!-o(fN}Ncs zqQ#3CGiuz(v7^V2AVZ2ANwTELlPFWFT*S*QHRHW6H2&%bra;ZQHk*oNcnr^Sjz-TSf$#II{BU(UR_ z^Od*14jj%~G{N9Jsq^d&dLUxG&%=xVA5XqK!nRH0az}kPd1%hnL7N8P{ySjv`19-E z?--~5f!?HXSx<=JHQH~e1vub01=7V@V)yYU;e-@ch*f~@S*YQL9Ck=nG-l8hKq(%U zXyS<|rl{hIEVk(4i!jD0V}JhTw9#oZ=BVS2{WT@sjR^86ExMcrfHC6m*vJ_44~chAY;A3=NW|D zZHC<;UEUd|XsXGn=AeWw38kA}(sdl3)`=zNZ<`Ib8HfR_k_Mf=nUH9Zg?8#`jEAac zop+4Ncc)%@{w67cz0qOadIQ1#`su8+vKXpn^fe}sed{?2;e5a$I9!1vhUQ*-y4I@f zvK-cEB5?4o=7EmY{LV?6=_VXrDt0juq~?=oUF{L+hsN?z`~DEAPDY z)@$#*_~xrGy*Bjg@4o;CEbzbt7i{ps2q&!Y!VEX;@WT*CEb+t?S8Vac7-y{U#vFI- z@x%W_WCI-}mu&LMD5tFQ$}G3+^2;#CEc47X*KG66IOnYM&OG<*^UpvBE%eYt7fo|D zAwx8BHB2|{^wUq%0rk{WS8a9GQeUn0)=_iq_192m4ffb%Q!RGcXs3O4+HAM&_S;*p z4L90y&#kuIcz2yQ(^4n@{m{}r1}-?@f){T1;fVi3c;bvRzIfx1N3M9^l2>l|;FMpk zx#o{=?)m4ShmLsXqFYXS>6f35dg!Wu4!FpDXCwRUwAU^>;I`+k`|iBkj(hLG2Y-9) z!WVD+@JJu8{PMZ~&iwPtI}iQz)K_nP@6unteD>N$Pki^_b6@@IN`EiB_~7r3e){XD zuY3FMZ*PA5*27Q#{rD?yfBxC*&p-12_#gEAcRcd_ZGONbAo~y)KLxtafdZr*1S2Rx z22${X6rA7!lZV0gS+Ij10{%28KM~5V7rzl83uX90;{_uzt;n5# zv_L%t?vQpr1fdZB&sRg{1+jQDq#X=R(8D4Q5rDfpqVY)B5EIUC892lbQm`F9w?uJa%Vjznr$1$F9kcONj2n(4FHoCEPf2?F9jVDD!@^Ofq1mztI zs7c;o@_DJe-yv72zrHQfkwkPM7DW^X03^UKZM-2~RCvQ*(x;bs$sr64^T|FwG6u#B z05aRSL>L;An!gc{i00_b7yibYz-)yuQ`kvp`bC<|%*Ha4nZ`E`GaK3jz!Sj9&K0&& zcjIJdJnxwQPZh>9jO%P;?XuTT+3k~u2W8_N06L`{#?zngJZ1P0cu;jVl%4{uXh6l8 zn1yn)e}Q~xL6=xig$AGo0a!#i1v)$KJ+zEF%%?y%YEo1@6rRJxXfr{|$b;%M8z>~_ zKy6t*MgsDTo`hi=kI0NmE#ih@L?IJn8Uq!=u!}97A5>8xRh(*}n#tVZ5=B|TOMWw~ zw9H0RQ@YizQq`*RY$xrwI6Jy}bE#>iA16J@MVO{_t&6DS4dIH_Zqg30e*J0;srt(R zaH6UfeS%$q8dr%vkc^AvCuFax)K-W!vsxHzWQ!StFqRdUyPNFn5F10;0hYArWFiXj znAJ1?PByW8m8WR03fo>{^|olGtzi?}+0RZjuRQfz30p}}943~sB6=zg>AJ(9T5G6C zoo-x>OWfa(wYI1Q>v4H#UAAf$qFS)7qU2iFcUl*&b=?`}}V9lDgzb1GubSrCF?PagP>CIGPA&lUyS`xLoQ}BXQTE_fZ7>u2`)JKzB zI|bv`xxcCKeiy7l6N47JsD z63@Eh?e@48KaOx=**m*+GSSMrQ*va}mFoQ2#VlYD(!k(n;l&x&h^)~qb zdJn!YkjFe@gwDCJX;w1utjyy@EV0jdMqv)dY}ht4*{fYvZJybTAMF#aVS^DVWK@!0j}{HS{#0M)+=phv>};gQMWhSwCgv&nXj^+iS;=T`H&>L{pwr)`q^D2S6BvLI{Na;D9-JgGYFQNr;3d*o02_gipAH zH`q8*IE7X?g;hv{S%`&Ks5x6$IXif1J@|lja06y|hG@7AMc9B}sDxJ7h8oC$P&kKl z2!(Lig-mgWc({k5qla$DhlS&ZZ3 z=s9v&hnl#FAUKJGxQCVqh*~I$P2q`>NQzWQh|0x-i0BWBSU8NxhCX5rY5)KYaEVM2 ziYnL?`w%Sv01JPZi_wAwg=2}v2#KGQi62M~ZIBM?Kn>AS1?oT!Ap!s=@PW3_0O>%D zc<~DAFb#AejlOUhCjgD~5ew58A_H&^AvlBn&<2s{59%0?)%c6@h!?=f6!$m)xcH8^ zxD@+Hj{v}rfwO|Za2Y6Yj{txI`UsE0h!+IeIJ$T_x;T*%iHwp%i@uQq1nCcG@Q?q1 zg1yL)OMwfwh=e|(kPI1+ML3TwIgkPwk^1P8Ea@XFsFE-LxsW+Yk|lYPJ;@FVX^-^? z3qeVgLur$qQTYWIwJC34rdSx)8LKeumXa_4eKa^wx9)a`Hc+_4r<_y(~y=Q z2!jWCi?j%g_i&3I*^eJ7IJf|ez(A6V36hoh50}}P|L~X~nS;211@{1q=D-GEnVGqW zk&?5Oj);-2X*jW&IJ!8RoSBcM$csL(24J}lIl!7OxPqnm52q;$n|Yc4aGVUOoXKgK zJXw;?*_@pDoJ%2`riq%vS)AF4nk6{}7>Nts36zun36SGigyk8TftZx#xsd*@q`hnCy1K1Fl6uJ%?N)8&DnDhyW=oy*lNuFhi zo)rn4HfjVa8jtH4lEp{^l6i>}X_37Mll%FLRv9e~APq(U2lshSvT&sR`JYQspGK;c zka&=`*r0TQ1x0$FP0F9LiIHCU3BXyMS?LSJhzojfrYvZK9=W4dsiTwmh;nMDb;_DK zdZ%X!r|0>nkq8W4ij0D4i8E@RL8^~EnuqHDS(Zz|lnLRKKM0kuD3w&Hqh{coz37-r z8Uvi_sHymn^Z}Nq*c7;+lU6wcvTzRpu&PT6iS_xZm!pgx=%FN9p$*!X9QurR$&J?N zs{r7Q9%u{F$c+II3v7vw7utz03Y1?-oT!PDIH{;SDx^3%nQ{88#fg-ZNsPp)1~NIM zzBmBukg3zTsh`;ZzWhEs-)_%CVQ$2I<&heI9}-r7;CW^%cG{dv8M~KxhcAUTZFIc zl~{Wj46si=>9*gBo4AX+d;2-O`wujG5H{zUCCe1=3$Hi&k2#8q zRXKyU=_8xTxcsZH%8R%F%$oY@rZ<|rmy3+@2&PU;xCacXy6BP4;FGO8xP808C|NkT z(6y4Ar+mt%iHfI28=8i*ztCx_xH+W28NZzAtxKW8D(s`7^TNSv5W@?f#;db|^O);; zu7=CJ{yDhm3cAgki&;>&)cds53#0=q#DR#t&o~1ZS`6q|wH@f8Z>hbpK&;P51MC>K z)aZ?2s}2n+jqBUExJZk{IGkR&s=&C$COn;j%M{G{wk*u3^y;_80G4jtzj_+51H2B; z3JkAGk0&g&Xe_vP>c{;5D#+6C2+$g(Kq`-#YRGC($BYXMu<*Mu48)uqgDaTFuxp&r z$(*DdoyobJqio6(ycD3k#;yF7ue`Y^%noY&m9@;qp?u4nYdN~y6f;~9HC((ta=cA( zj|lsv797A#oSvepw=ejy4%(_r`?!&Ks^Q7M8+ex8IF5Kx1>i^*-ut~~D~()wtYWMN zWc-ZhgpS{w&MxXBTKbDh3jp3)uf%B2De01&iI2tXlJjiIy-UYTG0#Z4&ti(r$h^e! z?43NDxVCt>F#5Xli_8Y?o#oo4B}vZ-Ewp<~r372SoIA@GJkb2ik|s@)`iu)L+mZUb z%Ad*41nrpo9LHAwO3w~`&%=1rFuOVU%$~6Gp4$-ALOs;P42Y%}IY*t0oVe7SnADz( zijWhacqr9g2-TZx)lU7Us`%3n$T*E?)SoDdw93?E-Go`)f@jTwn2d*OUDZ&X*2!qq zGPu>{(~1#z*I&(taBVnyoy}$a*Jdr(L@U^YjkIq~*nJJXbX|T3*w~K!*pMCBl0Dg! zUD=j>*_fT#n#~QrOc2A1*La=Sj3e5+yoX~A*r@G+r2Wi=-P&%AimSbWu3g%t)7b-2 z!$X+cIIP!UZPcm#+hsi4b}Zb)J=m~~*u{O-t7F>&5zJ`#+(pgXTu6$i4cvbn+gO?0 z+MTdijoiimz1PhB4Z$3hdF?s#3pv=W+@@{a)}7vQz1{FV+|=#e#0}ofnwJ zS(87hlquKAb7gI9@=W|(?Q%mO`>VYf@qIr(zE!vKOlbN1Lu*n&ohYHWO z2%v5M{JPTFncOMpR(=mMxt*-g=(o$AWj?0X`s1BkIkicQZLQ9Y=&pb6=?i0jn4>om&iJFPi|?#o&psa#IHUaqkA+ob%c zrP3Uxzi5f9YNkxeq!G&9W*mq53yi(M32BVeR~n)9D#7SIf_qN2eZJ=$YOCqqtLNVC zdfw;3{ht&YsDmn=4{MPyF24+F>3!-Wy|B5(j0V`i@3>g9_u%aWsin85@MSsC_LxX*tiyF{Zp7X#v>@{2LHayI`?a%}H4DZ?$0Xnd+Dh*2fxbhmr91rG--4ufQ zj_UxAl_|;R`mQ=`u9selA(*RrDfS&m_Pgq#XWy&U=-_J);nwK(68_F+?8e23vM?&M z?E8-sIq${{@BuC2BHQ;!kIGt~uly!(yCKl(lRTpuaEaGT{+V#>|Cwim0I2+?a+f9 zuQ5Q7K?~82O6F^B;8mIh`;Z0Z;0D;>2Fd)t)V%VeP43%Ewbie^vpXfWo4pPH>b>3X zf!|;Dg&FS$&bHW)wTJ$;af{LX>&9}cv6V@S0!pBS+mBxv|7!4@9@+fQKe_bi%mDFE z;65Yl1{#r8@ZUZf&lD0|XJ&xGg#`&3Watp1LV+C*Qv7!>fGm$CO`hz?&ErK}0AO82 z8B^v=fhs$iQv*OJ00lG*`a`o0&Cj4i{{a zE~Md!D{8(yB)U?WJ*+|<2>4cpfLtJt$^(|%2@ zNIKZMdBgTqC3f)P!hsuyt$A}tn9BtM!(y_zzcVB~eywcK92@IyJAU2X9V=<=+&%XC zlqE6PpAy?ol+H0bSdHubxxcvh^lFsT(Ku7BGn5d^&!^@DM9{nV#4>_G2aP%qy9Ob| ztfrL|+U^q!+0d{&SB%>3!}7#~&Z81LI`O&aJWKGT6a}J7FB$RT%P+tLBg`;=2*hkL zg@9=QvWg(X1&hjrJdni;S!*#S<$B41qUO*qetWllNcBr`U3l;bikHCFuS9{)Dh#k+nd7J>0H&}kvV!j8Hz6d0wJ=wLg^jc%ATf#| zt$ktuU?Lyc;Z&ypyVP@hL&>Xg&-#SI;e1-2xtKRu#mb+bh*qAV)%OIH=>*q zof>L(CMMKigYF3sQep3P4q>?XOblrF~qftxeMA8*%Pz2LoZ8_hT8yxzmy20e1n2OND-`J7rk`Z zA)j5{(`%pUp4)Lxmv_{CM>uxi6BJ(9$}Oj{uXx|GclfuRFS>Mn;X^R>*RRJud)14F z{`c-<+V%UGdv%`s@68vV_Vm{V{&?i~Qa)b!=Z_bC-|Y{5eJ8c&zyIs;*I&W{I6wjd z5O@YG9|5b^zPh|GdE9_t1SL2@3Rcj97sOx&HMl|l4tCIk9|U0tML0qdme7PJL}3b5 zxIz}T(1kCAVGKX$zV~5{em88M0@Wuz1lG=a{sUqVdld=T?I--J-Sg<9^q=+)1 zA@Xb(7&}zaidVFQj-KeYEqc$0KMZ0Rwb#Y-HPMVdY$6$Dr^ey2aV`yXApC6f7s1@X zj(5DH=XUhP^|`S{U=(8@VRy!v_>qu&T%sX^cgT|{GK!X)B97>##hD}tcZwvPm+(q4o=e6uO*GnXgRqU8qczmrs0c8rTZZ{ z_%?uZh-sL`6lTPVnX&+ciJ4*Y#ZCZlf@tplgqqU4rZx4%Cx5h|ZhMn8&97h{eJ^sP_~m;euZjGmBaU>sEDw&a%Ne>AT`b zM^~BzmNCNuxB4YD^7O2i3%n=qxVfdkUBtDrSPP+U+nU&r0}aSTgEoFErr-|Ox7bLk zZi?#6Hsyu}#dI!o)j^Ht_NKa3mFd5X!j!Fsr%w`c3SoWu74h!yGXo{8cl)GX6zPO$ zJ!`;Db#hs8nuM_X@Ie|jN)R{R3?2I8Ux|p4@N5;l6k^a)AWR`9 zA%?tYz=nAaG?re7N4(I9&_LBY$|8aow5xPrN+-EewXjt+mD#DoFrzzPWp}PzJjtXa zBqV{**vF@%@!NWvr*f>p6+|}wGLmDF%w`&MXlrWfRHZD{m+|Q$Wot0s>Up=*8#bgpqb*x~G8>9sOVD>7 zw0m&7vX;HF-J&#w(GqsFQbs!F!Se03MOx^f6uqeEz$DGANfp6{SRzY?Rz@m*B_)?c zs3Xb8A|@m7^J05RlRQ>&5z~m`JUSFb>H5Z*(NoHlDQsdA`y8{`=?S3viey_?y3~F4 zb*C%s21A*}T`eTG_(Yoec*|*AbzfoTXt4sW9=`yGTodZgFh7FVPtD+smOPov1mPA;bI zf|FQS|FjruOntf0%1fo6Gm$inWEmbmrZIr_qJmTT8FaN<8ZU z$@gUjmKv)E`Y8bVwG(CDNBdq4Mc&@XgRK7Gwx1hcLQ=1eK}2RwM;%#T_c-WEjp7=X zT#~6~v0Tt5FeAkHAVOMLf@>XXnob2!v%36`(iVeGi$3ltQQc0Fqk7n=UYN9@t~Sg7 z`|3j5*|(4G_MqmXJexbeYmvo^qq{&g(^9qNNIS?-9P-eYsq?Gvurz>+DGJ;PiGejDnXe78jtKNQ z)QgRdF%A-Z4HKL$rg0_}R0r034Hs-dHCR0vTpg>LnT&d;P8*zYvKt&!m>c|>1SSUB!*7@(=0Q0Hvc%qLk*zaCL?lJ*A|*ULqrP&) z&X^v9P{sR6qfi$b#%PqrX{5$#w8m@1#%$EaZR7@9e4t#+MPCdhg!-ajEJbm|F=JFmR2;Zu9L8nb z!$`uSc?`sM4M?`!` zg8WDSW1L7KjKz1v#CSx=liQ=(sTlHcl0g)Z`QW68^rVYKzjZW8Qc}rdY)EC?$OBBk zl3>VP;=Gu+vMwwneG0-wTn{`eua*oRJxL~FO2H>nhicLZWi!EK@)+4zDyUR8VM7jb zXalCIHv2-SHQcgz5-AL%9v>{IuW6`vV<^ZZpDik>k}ya1wJecoW(vvO2*NXc{a3 zt$Ym|B&#A+jkO|)tEw#FlPq&u7sV>Ga$$wCdMxBDFfr7mzLU$h%$MkRMfNc~lAMam zGS2r)7Uwjq`dci=iZAtStgfP%$y(0Rj3@M>&$)V{&oU{-lcJ7Xu}-9`!Qrp{GJ*he z301L}c|#ihGB*nwDA|$}v*-m*=soUqFYD`<-IAJ@P|N}8E#tzlKQhYs^6HV_e*gPRb6(RMo<$^g&-^)DgChO+v)&7iT` zy3h)(jQ$#%4V|^Ld&IY3n*~#tm6I^NtB43IO^Bedk@7BrXwQlm(~GdtjyTi*7?sb3 zQ`1Ir8xzY%E^G|$Xka;6cJT)r^)UL?bGmONFuXIoop_(>W2X7L^NNh>nkqa8# zAJ|Zn7Bng*D^aI{N&tuxEmJn)5Sg8tO`!wTr@JRg^OMP%QG}CBVoA6PQ`IdQu^us* zk=U_4dziHNF`0_h!J-h#0}0)Ej6HMI-2;X}^G>~F!@g9J_4qU|YdE}IIHZ8lG6Nc- znN~}wz{gY?chXkC+%$HC3sTcVj+`Tt>(7rg7zEwR`rtP{ebNl94?yiPL7hbA$bx;y z0&{Q!Y;Xgi87p4ZwU(o|8~Y(+LpC)~w&Kcq&ZbU7W=y% z0Y85kyOV|2Hl5e`42?x04?JtNn|rC23qi;Mx*{k#-q_73Q_;FTj*+L=&!7G%q307J>(oh2yqIlP!#0;Hl&;mO_1TjEy?L*Dzu&zh?0b8qZTSnJsEsGg|)q<6Hz;n*y-AhG$9jen1K@IUf>kQzr_^* z#Mod-tWE<%0W2)EWWW21I+*aYOz~Z|ToLl4U*5If?!&wwp(W6h-@h`yr_D>uJv2u| zU-Dd*`jfx&OqNN@zdys4{M#1xyWmM!N&1pc>3VZs9g~rS3mqi&f!e`aY%eb$&^&bi7doMbRJ1g zU`iB7ne?5@)WnkGL~{*Da%{*(?xdHDIsFmE?gSoGMpi_+WR1*ZtVOAk14sE$$wfY* zd=zE=A?1LpNQ=zKR-Q$8BxG(R=3+MHV@Bp=R_0}9=4NIgO~%Dp=2|QD+;Yt2eSG9z z&Sp#g=9R&u;~#G*t7Pv{|KT)t-P*=1SNW>>~XS#)RIfo6nM$UGuvoyBKsPG=xm zXDV%HOnzr~4Ca{x=R(Haj?i7+sViI7=Y8&c0aQ2OQ+8{ymy zM8zT2Jp8qL;S{$#;D;Hvx3#60LBW=G86Wmxsbnf!cvz^aX_^L3ZtBX2$~2IID7&ez z&)8|DnW%`W!$u)$nr+;fuqfigDaCyYv8Bt5+ljjrS~q2m7?76A1Z9l^(!-47Dvl?f zR!eE+){F9L#LA_T!q$yy>rM$|vrE-Cl2e2B$a_&6gjs01ir+P2DVIWEAIg|dl}+g? z>=#Tb*Ho(Cum#*?Y{$OM=4$K^4bGSut6P!IUF+4ZOOz||u0m|D04Xme0xQUeJg70DkW(b&ju*w}ALWv=BK-=(YqkwMWmDRAC6aKBx(M;mSSl8`bb z7<`LdCAu)h@QI4r2;%UCSs@in#X*@cTCpJ(l+Q%_D~(>auX^Rr!TmFVj;0wa(d z=~Z6rUC^g;|U4 zyt4o&S#4I1jaFtAS-<-VR@rB zc;k=68;BX;gq&1wvWwY9mr*HXieB5mE*3%B9In`lb{Y__WqPiHRW@vwubp53{o;0S z*NJX-Sgo|OhX`Y~09kI^*kzYEZcAy_nA&r*SWQ9qKH0Z`bq=QZ*BGeTP)p&ko!Qes z*JHI=OSkP}DbU^CbdputPX}86p%wM32FQY=_%n!3X%cshqX?-rV2+>6(TVq3&&*r* zB}h?Q;4O`^8|xwMJM*$FN!;{|B@MRCLa=)&gMeI~Yg=cpi4HBMBKwe^H?rY6x}-xo zx>dRWpV$;_(ejnKBq@<2-7ycGHP}VPy?UGzu{oYk_sg?fBbba;toiJaH`B;;n(&X! z<;9yZ5QUFn#ES9N72O>FuF}oAm`K#T7v73~-DI`;zbD2PkzJ7|Es{r4i4i?^#XjbM z6@3%6B_Tg7SBU#yVOJR#R~$W6w|uVup{Rm3&%bt*q4wFEHrb=SXA4oLPkqXE`l!Q| zb#dR|qm^07>jLv&V$?qWwejGsZx6T3y!*h?&Cg){bu~rDe8s0FP-&3<Eu_os*(rn*4gm)`{lcK-$r*ugBVxsi6cJJ@ zl8&QCkRK0r9Ep${L4v>lu!MDwC6%UvAaEu_St$qJ1ON+Y&Y>t% zzD#OPO-z|IqyF1xM4(I~(ymHn*#Ik1oUjJsVmU?Y)ty-Uoe`Q9t5tS4&u(QG*Qzv{ zU+?N=$JQ;uxc~0|eXU9Z?9hTK1;0(~_%Y_u06Eczi+~a6E7~@1|4qxmix1_?K$-5+dePf z&HFm`$JVoRcf7rOV#0{I8$@XSJo@zN*RyZ`9X$N_y5-ZaPkFTc?)UKL|M$LseE$I` zpMV1bSYUm?8Mh#D$SKDhcFZAYpmr2uHz9Ypj1^#e9eViThZtH&pNJ#I2h4^hCWhjG zC8|h}i!aV6qk%DUryzq2I>;Q4J^EN3jTZ)~)Q}f~cqEcX+E}D_Ogi~wc1xNl<%?80 zX=P+M=4hP%gWP!eC75A~IVPE9nt3LgX{xye1wgT^@s zP4mh_YdEA1=bnQuI_c$@eo*QiuYS&cO5*h{0k9yXN+XFun!N9?%fsQF$jt)mI zbE%4PR{@Goc=s9kee5WhVc&|dkiHSM4=h%JL(-7afUVT!CNnew3@u}%^Z23)CHY+F z&I3es^zetXGtUrk;HH^!x;1~m1D6O4Z|mlXYg_`x6}>~t56Zott=sG7(nQHxXhD{%$d+6 zqB4Kj%!fRaiMU&%U)nN2SM1G?5adh*SD2Eg0MCnU8`|L5=|VCJL_Ahe$c7a8E~I$H zm;QUBR)kqcy{&R4y#t#p!2*n^VM=T)0bY^5bHvKtS5O zX9|Rp2{q|NhgP?h%8i2HX({1CDM}3{E-{O9jKzL(nE7d_Y7>Jfyv&vsaYoF0^UPvh zWJ$wCn!z&wMW|BDBS)`{L?NU*2szHciiPO1s%p5ZI#P)DO8m?_aE)TF`{7oi;=RDm^=pDhoUMt!bTrcoGRma(an-7CD*Qxfw?vt?l2 zE<(BsyYGf1yvp?Md7uazj9yW-=fti$9aB8)c5+2@7049{GGD@eFnl@1m}Rp<+{rrj zWHV94A6Cmle*G)!~pkL+3cpLB(+0p zF&u(ckv#bfv50b5txRRoL0QULp4nQ#@|2jQZ;ShwK@~ylKbZtJCB?`LQQZl@)t31% zZ(gmCx$?U@;xlfl>@iiwS7Q|1b%sdZ-WGNI&jOEGs8~VKZutdZDDCFVfDzzd_^0Vr zl4UfTUUT5?{1;KTh17rr%7%909YH_=9xB4x(zb)Sf?m1 zxy?u^#@t+QW~9wk&1;Mo@9A|VCkkU|Yvg@L#w=9HNCEa&REu0*&xNVzE=wgZa^M0_ zSTI0_YpXU(>E&)M;kQ{^yWb`np_ztlfol!O=S|->=A^drs<;mvs%CN*N0yAoF_g2 zYhU-7QAtgLH+%>qwVLppF)N6&N;v7&-(QmdqKFP8g11S+&f0eN#$A&+hn` zF-6gA=^>Em7pEl<`J~!b9TeP%5Mh)90*MFzG=@Q~QBrjWa-9zqE?D|}ov=ZUqGRZ&qeGPcBQ?-~H^p6;S=84E(rL+}B~=n1IgcysV}0Qx zHXzU;Eg5ocV@_?Oz8%xRDcnGvlvl`+#VuS8g&>6KktfodRrms#>A^<&oWneiK5iHy zaTq^h*pks3K^mkM9Yz?*qKUN&B;}W!)yF0EBKl>J`aPlA^%|?~MKKYEG@uz~1?6Q` z)SqQx^4&-Ou+SE&2BD#u@yrla0t3YC$0J4w5^0(1#Dd6d1ngA7lznAbrj;#_rB|BH zS(Z#4+M&A)Pasj0T>4rp%@0cP5h00Fez7E9lBBN50zSe;9z~E=F4ld(l`!nn#4OC9 z0hBZd)I=53P|{qxEEN6OT~-wTQe#D8!`vfXnwDs>pe$aLK>DRn%%vK=BH+kPUg8%? znbS?m$7_O8^L>L8Do*OX#a}??2mPj9=ml}bU(cWcHn>3x&Yio+(12Z+nF*&STHdxn zlP$c0LdeWK_Fr3_Lv>y!N6_N}_5^oYry5`D^nD#ZiQ$eRS63 z_?2j8)M?@)Y2{~IvBQ3<0e>VKV2PO;Afs#v7K@f(Q^rRM-XCx6q;HWD^y#Mbg#}Ld zqhSpcUQp$M66a9#!Y5?^!O#sCkRoP-GFFm$CX-295kx~seC1f4M@LBMM^Gv1yyY@s zsqIuLxjkt9p%_hOSQp}%#JwnNBo#oKDR%wn6fRX!PN9J%7GXB0g6+h@F(`qpBo{Im z&Ap0InVE%ZVb6G$N>tcET9}*0(xO_8L?LE=rB4I(rSSwB`4o?P&1QXAjW6P6PvWT4 z!4gqAmVo|dQeh>LK~JFaple{{G&02vmDH>*T1gQaS74=+0!w-*1X-E^>13xldXuku zOt6Bdup&gU0_(6gYnYPYXF($_y4x(4V*XiL!azk5S`kzz+7_XrVCa}7F&kp)>Y+VP zqZueu6;$|`>-;7E+MgZIQ>80}L7E;)=*SgnLj?v^sz$7hqNfGo#sTcMMyt2_S76l{ zJGk0gm>RaGshYBjPTpp2+SG3T=NTkhP9Yf8)uLGlsZMZGjj$U-b*xtOMPVh+$L^|R zoX53s8%bz{M5sX>zU+AwAUD-)wZ$w(_^Nu8n^@>fy+I?ou^U894RZi!C7roARHY%Rm17obhX)om4Z026R^7(gpwR>n zx-~7eeip^7oU*;fx|!STW#4#w>dV1gbnIq?0UzsepS*aVX8zp&6p7FU*|U`2@|_>W z)>_m3WZ|y=Ub-M|;>Mo$VWN|OF6EG)^3fghH6i3hUXEt233*L1 z?Oo+Ep6>20@Aj_m{x0wauka2p;Q?;ysxIbomf>#h>&{B-3hL}0U+qrs(VcF~Y0&AN z3gIfR=3-0pIxp=;uk?Bz_4bSP&Xn%)-m&b36SelMgvZ|8~cRxqsEij~Uj0#XFd zg5l1BFwDM8%8;R>aPO_BM{Sw{DGY#_ArMi zs~oOj8k#W~PQx|P&Kif+5e*Smy|EKLpi1bDDlY7_z9Pjj3?AlAVW8p-Cl3RqQz;IQ zKOjQ>N$i4BVi7~@C1&vaR)rLDq8MwQOvaL$k>V*@YyW7njn!9nI1ek>^5J{^X9Q_YMb^_ZM<2F@KO%gP9rV2$zaFBku*D_Po662^r^ra&xa z+2V$bqAk=4X1o$wF?nk|TV7jsw61|A%AD}H#Y|W=6G@Y_3Oia|p4!F47yeaqTAU^i zz9!Q^Gg;6LZ(j5xGIXO>uw&}9sY+&A=yYWw)MZ8}>}@6*bY?s!wV$a}O>d}alID9& z^*p;ORtkiM%$J5xu`~*Fe-Jc{zL+Za@Af7Xa{?z`{1kyUvMo=EA023)?$r-J>3Df( zca|sWkf#8y&OExKvvLzyS(UP);TO^|bcJY(8b(RYt@hy+Z_4zG#wf#RC{ev$&`d?^X3U=UhMBMt|Fsu0bbM_jPCK8U$qMxDI!J zsd;hNTZ$JprL@F_E26seOY3D!Uvs3An4-Fm83E^Jo2vDV51v+*p8BX{C8$vsW`ni! zi{8ayw05j6*NMfqJvVAS_q3YgTy){beoT1ddU03-_gK@KK@YcMlq#*BY90BLOq^?G zCZT~Vr^C@0P;*9+O*c3)>tDn8Im$S9W)nT8<*-%(z#l*0SuE%{k8|0VIWvGY|JuW{ z*?%9^76P)XzQwA6tC6DhPOZ3w{Ta7nDq%imyBgZNK6ybgnzovgy+X3L~JT8F<@Boi*uV}mDR``McUg>Jx`SzXVUWc^<|F9L)2h}Mz z`*8cC$ZweEis%-}y}LHK+iv|buofe)};y^&ar#_4|kbZZ$kS#7Dfu zPdvp}yv1KU#%H|7Z#>6$yvKh$$cMbhk37kjyvd(D%BQ@_uRP1Qyvx5l%!7P}7YD-E zyv^S{&gZ<&@4S87rqBO8&*o5z2Dz`9R$AM3;u$@&>{Ri;wQf1FFxZp{?^xlW7I+61Hj=I|9v!=K>)ad(O-V% zJHF?CKIn(O=sP{+Cx+x3hv9EN=4-y?um0%2KJ3T7?8koT55?&VM-H*X;s3&GX#+G& z3sb^9KMZxc={FK0xpSVB#Ab z0EeK(pz`e(04fa`Xft>ynwbEuzGc+7kz+@XA3=r`Ig(^alP6K8RJoF6OP4QU#*{ge zW=)$nan7vsk7v(+bu>;acu*h!qXQF0Y)G&ufB>ZuUi?;3|7ucg0vAqfYShHip%g7* z%sG~9S+i%+rd7L^ZCkf*S?=`76KF=ES{-h*x)f`{r&gzi{bsc<-h~>yPNXUpZez!f zAxD-xnQ~>z8|BWe`>pW7hEg+HooJAXw={oaL=0Rt_0_x+KQm5zaPei^w{hpzy_ zG0afI4LR)4!w*3WQN$5REYZXhPyFY>6(Z?Tw z3{uD;i7e7cBCAoc#U)vMv6?5Lj8aM|>6p^WE3wQ{%PqNlvdS*O3{%W%z8urcGpR&V z%{AGqQb{J^WYEdE=&W(ofchL!=0DYb$9Ld+kNe;|2I{6?={!nd;!iB-*(@Pcie#${^#0d zVh8{gQ6ZKX(}OXsc;Z~$#fff+_N>XxfLd1#}GK04`Ej5Z;g zb)QZy0I2~`I=QQ>K1yu{=CD{?hc7KVYPPpFcjdTI*}7@JjfR?PkwdooY`l%rVsDB4 z-rBmg0cd*h8jfN-@uiLWyK+>lP8;i(d;VGU^@0vL?6J)?nq`ccIc*VlC6;3#)D@4R zX``Dy_SMtZRlSwoXD8cc*~J!~W!ax_|M&LD%a$8-x-Eqr72;{K0Nnqkhj$L zoIQP2dg_5M{`%~t-hSswTMyuM>?791=C;jeH=Fhsp;`I1w|{>0|IJgnh2czK<)a<< zD)+wQMUHl|GmhAF7czVqkb>7+pyq1FvamU@Inv9N_}^7V(?Oj#SFqwiWUUhK&a@#gb}fYPKzQ2XZXTObxv$-Y+|WEctP5wag1!F*%K8A zFCG@qTzI@A13RU!BM$O5NyJnP|GQSdayi=RO|VBsx=xLML}TReM>9y?tdoTFC2kCPsn#W~ zi4cPh6hSF4%mFfMWgI5an)pnvu@ZyJgy1rh_sY3pikh^OrWbwaISy)2i*PL58NHde zQH~Q{4h(?&j+w_wxw8}MG-d#zvj`tb44b|DD5ygv6|JW z-qfjG9m|Wj5mvE|m8@ko>sis7R<*8`t!;JdTj3g4xz3fYb+zkV>B?2F?zJXh^~YZU z8(6^#mK%;T>|uMt4RtJ*v5j@?V<8(^$xc?Xg+=UT@nl)dZWgn8lwR}=6Wnmjz*~WIYtwn5YZJS#`c^0(2U5RM_YKI#Pm$=2@KWFJOg2Wy)PUG=WFvDF=~pWOT2 z>1KDk^$kgPzl*2v|0dTb`&e55WYOC4o|m)fW$%F>OAa#}#o=F~>o$Vs;Jed)lBz~;A3`+ahM+iYhcn=QaJ1^|a|4B&s58o=d+ zgN#G02O}7y|HPOzaF!8FjxBc?Pon0DuTx8BU|=E2!yYiOk=(Ce~t7>vqBBVVL;yU?PnjCx!we?I@PDn6N?Y3=W83dl+T-JKTp`yS^#;6rEcmX zLpsNk|89FvPLA^Js=U)I2Q@pQeeE{unC8#eyO3uP;B@bN?>+y!VSyg>1N)*14$f1e z2c31u+xzb&UwBV0&y&m}oY|W#xs`E|@HT54-G|@2+v}`!Zy#Cim!>S@rrluG#X5fGsMF2J}E|k+5UXDOP}q%@BO1AjeSY8 zUHhG{^56YjjK5p z|4OU^i!A(p49DhT$3Ac_NRY^05Clz*_23W5@M{}zFb8#z{^ZNH5HJA|Oayx{1cz`4 z)RO9-1#3Y*Zdjt~j=s=Eej3z@JA^$iM*j|zuS483qst`G~m z3as#I4cV{_-S7?JFb?H#4)N*?(XgqskPEkv49hUjz%UH^uuu3f5O<3P@36P<>$DWn z?g;Vc{!sA-al9h25&6Up4>6^dthh9h2Ptt;p70T!YZ9$X6gv@5Eb$U4O8$I;6ZypF zDDe|PF}g}I&t{ReP7xIWN)>y86|FActdCB7E*KB5P6o^s_XHMWv9WBS0n)(%|9@@4 zYL3)at;Q&j15-@HI85Y*3Hbde`` zQOJB?4cyNd1qB~}(NK^v8P&lSrl1I#(df9X-U6*049yoe?jF9*+U8=-%!|y-to!)P z8#k*WrH%p{03ieH+!`(NRxQIS@*&Yr^G>ZD4e=e*Fw-`T$yTllH4h6y&)!^48hoH! zMxp6oVen{eC(X;$HnQmefX!Zw9av2k{OteC>&9+w)+}(v{86?Tj~WEh8AWZ*rcLlF zZ_0Y%?Uv2h{tno>%@x0~_pTBRvXbH8Z1_q~01vM%F_2E&Q6&c{9{+(C|0gmVc`w}p z?;Zdw&~#23=1n65bKQgi@0M~feInk}vb<&v{q9X8v#lRNk@3`lDhHCWR;&8VtmED; z^sZ6l7B0#T?ib0j*%~h6#LP1%F2jE9?Bep{U<}V(aW3i7i0qOVF-{f?F93_t2m+Jv zbZ+Lp?l%RH|9&$7rOfXN5Gtc`vWCt$n2{h;a2>@?4O}zt&~4qUE+?gvz^V`RVv`6x zZ|A(O|6pP4d?M|*1~%1l8qLK$YcnNp6Q^>M5i!p=h)p<`vOj}U@01h5ni4Uujs1*s z@UD#pnDaeD@HrK*DyefW5H$C4Y$iob<2Y|TJxs;IQ$w{5HK}Yu|1mW4;F3XKvpG!^ z?&z~VQR+UsFe5c`9ViVLevd#0PdRTC_slHsgm2YQZOR;z_ZF>38`MEz3p1UuAh7_# z%5UAwZzl6j{nV2BB5fbo?*hs5`_N7emUJ(tOiDL2B==FxO439B!8Tb`bX=6bev$i> z(l`ARIQcXGJkZ02a_{`_PQy-5nUX+L^dBfQ8Id$XtFcZ~Ex=IF>QrzW@2&!CEe7GU z*0L0_NDvlGkR}&Z1J&{CDs@u{tW)1FO;=LWMr#L66+dfHPy*FR7pp9D%T-eqO-1!% zl#owgGF1hURn-etTZ>m`QC4S_U-D272@6*TWmQ?#R}0Ko|1S$zgY{d~kPfAFTB)^K zt@T>5Rjr)$S(jy4iS<^QHBXS$NR`zI!}YMXm0N8k5f#z2Q1x8JRac>_Tx|_r9VK1W zRZ=oh6Nzgc?bSKub++jBvIdqA@ikxLWKBQqu=H^h12z=HwO|ABU=fx{6jt`!(f~(p z7`cvPkM&^_tPL_#GbL0S4|M}Q?otbt<9aN`T(-x&@3Oj49A}IgQ!5?KaUFR=Wmhm9 zS+LS7HWyiPv|O_8x{&8Qc4IZxPZ~B?L6)(6;nYU9Ro62iIZ`99_Rtuz!?sp7z4k=E zw&E`GBs22R1}(@&5+oOm0vpl=$<`nh@=RAWXh-K_|1Yo@rST{`P%n+5M%D5tU2Ooc zK`4oh)B@Ki`_=%*6$}S8Lbt8Ft`>5s&AhtOCn`5=lkLtl7FMy%A?=MjORg<1S82~O z+bEW9SHy0svv1uEMJW&kn3Um$uKeWGb>l5E)w1*ivq{hEF#Ygp8LM$gRvlH1H9hlX zCs5>+7ve-NW)W*QDOAHiFmyqVP9;@BQxj3sEL2gKkW@D|(+zTNt|keubr}vv6SHrX zvoXbYK?QVa7Z(bJmue$VJ+E`Z?sq%Q*Zi=qAg2yS`*%{G*F24)IJxsZ%dUFgZOYUx zE{Cjb<+gi$>3bP;Lha2!YnS2nH-q_7E7#XJ|M&5Ie;0T!6G9`DG}+)2MlXd|*cIq3 z%v|`qMpOnjuZCq1P(kzpXL3wS&wMddLw)XaC0I^|Hn@rw_D~gRAJh71R7OiJC}~&S zd`~%P^n<4?b{$wpw-;c6cYf7jGre?)qfLyb3`)y5;l7kZvrmn;Z;iz>v2xhz#P5Lr z6!O;AjEAq<5|w+07=S1kX)`c!^YqOs@Xc@zarJbNGg!@t4Cewg!frURNLU@B)+mZ@ zcvDc-PWEJzQq?+H@HCK7MOjk?*sv;9W%oEzvyKHnnNCib1LbmV`*>e&&{TEsT`#L? zuWXVlD`NkZQG|Gw5u{f41Y8+5X?>8F|9hEPCAJTPS(pvPTfcQ-e|dzJIZ11=nal8* zp_xEzfK9+ToW*&Z$+?`(`JB-?oufpSyV+K%`JLf8o~^5$>A9Zm`JVAPpY?g4`MIC{ z`JVwgpaq&mg`=Q7LMULuD+YR@lPoiQVly@Zp+}-NJVK#UqBi=1p*4DRG6Mj50-}TB zI7ot`JHnz-f}}S(rGKWQKRTj~LpvH`YP5klWSZ8Tf-w+dAgIGA4kM=1rWqh7D=KFW zbh;@Pq9GI@X|!P|cv_{MdO>!=I6QhYx+5Wu+93$TAy9fFmZCc#LL0mx50?5HOyenP zqpNiqHqu5Sh$1hZ`mGa$rRgH1|Fr`z9%wHHVyko71cYKKBzmWvq7=@0Ao_YBy2Gg9 zIDlhzyG_y`y;@A+ihk#HGbhD5S!LuTERbi zY8(fr4gA7~`yZsbu_HSo|F9wrG=0x4R9#1Gr8?PA9X{KuIbJ@A{ug`BMsqR4$)t-<4~ zRUEdPe9PNozJVjbxgyF_yQxV$xvyHLzoW;we9hm(yhEZmGMmlioIu?CBZ`8#=RD8# ze9!s3&;6V%yj;LjqR#)k&~xL-1sx>_-Ow4`GJ>2X7QN9WJu+attX-iYaNEPRJ1H9c zIwHa#K3%�r|B)l9RRggPTC}?&wBx+jr5z=LydtLH3_9Tqa^ND4y~v}2a-uuT zJHp0&d)m$2BoN)DBcfb}{Kf$zDS%qNkps`U8rsYK-0?jm0(~Q1eJBnCvELm#?#8=E zUAyl+-w{6H6~0!`yK+il;UPZaC4S;5{(ttpBuv^SGQQ%cJ>4;0r#k|pksKvV`qnvK z(mkFeHlD{{V&zXB)l;6+FT$tW-OQQVDMp;s0U)W@`sPub=W8BvrsL)NJgQfHGeA6I zuH&jv9M8*Ix1|EDbA7E1Bd0_C5N2H94}<9WJmwL1(S?VZTm zo$HIfPLRIH|8JcyUW2ovUdJO`?2WuRyqfK09OT_z&%ItXVq>pKIgQq8(x})Raza!_>{>Gc4?H50}>3#A|pC%&x^i?0yi+uH6|Mg)% z_GN$eY2PfA>h^J8LfEi4UPn|VKIoy1JaM4gd;N|vO=|hGpZaO4leoX7u>bpmb^AZ%bgo7HyTAO+UsTcGQ`rAfY^hb| zKa9f1```bc001y(#n8mhq5z&` zOT#okoQB!tFm=i>K@6jAhg{9N zAogs@yK-LGkh5XLuz3eB4qS`x+37PYcgXy+_4)Mc+rN)LKgR8>w|DogTV)MF^+aK~ z|CRR}RmT~3UO_+6reJXHUDlvMXz7Pxh8k|jVTUU5hnIhvIk;6(Pb8HX00Go+SZpdz z<XqWXhtuDb5JD>v%=3T&{#4ohsY#vY4ovcJY!YqQQiTP7Xc|LAH* zwbou+?LWEts%*F3ehY4}%tA|Ux#rS$Yp!Xg$*G$tF3wbM_VObrd^9Gr8{VvkMs&o=~3aJ)oge6`cQRAEaMSeLxc88-u~wbOcE zjWs!Fe0{HcWDia_&t{`7wAw{$?e{t5Fg?x3c^6?d$xrVHfYf^L*g)m#|3q#%yopDi8gDtq}zW-h;>S(LZHp?TUobu##-z{?O zdmoMa$Xx>-IPlhA|Ecgn6OXsaeEiuvzu+2f+wZ>1W%hpan0;zl3RUgUhO) z1V0Eu4n+)c6f+nHPnfXLg>Z!|v`)l$1w#{}aEA12p$%_1A5pz(hdk_|4}Ul+72K1Z`;HMo2<|;ZdO{WT-rLGNQB~n?5Ba)A4s306p9@|n z8T6nQBq~#D7~b^e52*f#s6>}~UYvbbz4Yx+OIB?65Hp#1LFhmanhIYgvGa`k{AU;|`pb+qiZ*5( - #include "at2.h" #include "at2600a.h" #include "atlib.h" @@ -489,7 +488,6 @@ bool TStampaIscritti::user_create() _rel->add(LF_SEZIONI, "CODSEZ==CODSEZ|CODSOT==CODSOT"); _rel->add("LCP", "CODTAB==DOM_CODLOC",1,0,ALIAS_LCPDOM); _rel->add(LF_COMUNI, "COM==DOM_CODCOM",1,0,ALIAS_COMDOM); - add_cursor(new TCursor(_rel, "", 3)); _msk = new TMask("at2600a"); @@ -505,13 +503,13 @@ bool TStampaIscritti::user_create() if (iscrtrr.exist()) _fileiscr = new TExternisamfile(iscrname, iscrtrr, false); + return TRUE; } bool TStampaIscritti::user_destroy() { - if (_fileiscr != NULL) - delete _fileiscr; + delete _fileiscr; delete _form_eti; delete _msk; delete _rel; diff --git a/at/ba00.gif b/at/ba00.gif new file mode 100755 index 0000000000000000000000000000000000000000..53e96671796044116c0586e47e5d49b7a6edcafb GIT binary patch literal 12492 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 Sq8Rn9x`wyv+W;5@pz%M|R)IeN literal 0 HcmV?d00001 diff --git a/at/ba01.gif b/at/ba01.gif new file mode 100755 index 0000000000000000000000000000000000000000..53e96671796044116c0586e47e5d49b7a6edcafb GIT binary patch literal 12492 zcmWk!Wmppo7hSQ@j1;6s$>@OtX-9WTD_sLYM=7G<*ytFeB&9*xfuP7MzH|vVIz$CT zC6yKs-S>X?$NhDm`{O+4+~+>$IYuUis%oBOAQ_kl_clE1rkorP`DA=0_`{V|EClQ@ z9N|XSoOLy${P-O_`F(IGLoE7^o1W4g6O@sOgMm@Fvrib#*4Ed>>$b-YTwt(-uHNx5;{%@m}f~Mn*|CHZ?YWDX!k-ckEIFf>Lh>KZ}a&xu0;;4__2bC`)H& z&E=IYLhc^w^FHJaaVWBk=t*iS6^scyip&`Gwdb!y-SGc&%Hg9 z@MtbCX5qQ*L~Y>G+W=a!Gp*QcJMPi9tjA}BN3{Ha-?{hK>rJ*gOt(Ai_8Tou-x?fu zI_>`ByZX;VT6yUCEB~{ui0xk4pFOC(KAB$w*DfZNKlD2F^xt0`2>dqS@Vnpeq}Q1? zr9+!_UmL!=JrMbAGV*-T=WHbMVlId_9e%d` zOg2!A@{b!Rw36OG&j%*@6NY*V=lkO42lM9^ z)8?k~-@j{qH$qt&s+*gkto0Fo^yh5P5@_#;Cu7CGmq>p;7JnIdwl-USGEnzxpoO-R z@nfTzwoye}p`4vG{W+n~{{E%WX#bI4*ZL6KEG|rZG9c`1Dz{+Lr6_F)T4)xA^3; z9_Fg(Yb9Z865*VX9Wf0B$^O{?!J!!XO`58#>U(l7adk!@7aBkZ?Vpa}Zh zJ*T|g_%i`U{d)2`6Ma9Ns026&?yvq{V{LNYE?fnL0b9-#sN zmqga%yTjNy^!31e=+_&CX%&>-nQI*U&bJTill?n|&32zRlT985l*@M-Rn=^%X~J0w zk5lUKz~;u{s7;aj;+mz&#%q=gvb5LOFsZ5)0@FK&@P78cK4m?ivRc%Ux`*Z#H{kA_#~~?(G`?g)Fcbx$CZ<7?I8nrv5FZ&BG0#HbHn11dRv{p zexlRoiZ=+}d%6ub1>{$m<=X&yD-%*b1i;IzT)mS><|eEQ+*r2#;remDM5NHOv!~^w zBX7TYF^Z+V-QD&5UVEJ>(s=3lp6}4N+tMX`UiH#=_C4rn7VpNpfVk`>rXUI+)*8ba zNVd+uj0bYp!nD-9#?~POu#RuK*0ZVXi9xS+KHn9?Z4<|+1V@Q?!^U!TH?kRD910rv zK2w*h1JL2V4E1{GFLYq?wK@!cd3$mb zY6#bqjpP{dt_7kPh0`5*o4bsh-t~@fU;T-D#+_E3s?~ygCNdzV4>Nm@u(fll(#rPr z*@cfHQO9=45tz|TxLkI>VIc%G*O?8a{{`YfVh~s?n15%5jox?#D2D?w7CK&I8pL{( zn&r?-&FOQMB`IEMWsa0zXg#LN$bn*gm_N^}Cj+seBC5Or~?;LMC*G6FkK= zm`UYIZtl-5?Fj$?rEvJ`C)5OV+bWFXysGAwho)UM0P%DPt9TZn7RD-n4MIFxz$R$g%`+WI@HEs8;OjFdpp_<*X;cpg%sQ4S z4Q=`*cMuokL^P&b1MrCZ;|fD>ak6)-5D-w1WZyI+zT@e)BWd#>@!?bb?h?y#BS@Nh zPMVvzqFXb}GmR_hUfXv)aXKtHuc7A=GqN?sWmdGGVoI75Q)QDi0sU3I#i#EAz^w5Ex@bDh#WgWzv#8LH#27Q>#Kk9s#R6gZ|UjcXw2Z|s7 z+^?%Uw;wW%oE^OvXL{E)JL(o3NN1kOg7xTgnkUEMPWu2))C%d^zX|aQctC?5jnSj3 zB~@rmNY|r6?4XZY)yXZCes*V8+MuqX*57I0uS+D%a!0M7RzyaRu9@c`i20pMp4en8 zpmo`PhxipERv1u$+CVB+1v;=J2@3m7jB z1)#tOJ2TSoYqwl>Gc%Wwx$Co8R|8w#Av$&O%v06ILWkG%nK1y?oK9Xu^PP->*}P-C z{R$I7vi9p*ekAW90kUz@>m*Olg23Ymy+g*tCB`I!lmx|M&;Hv^pa*|MfcGpoXo1PL ztPsXFl`N^To&b}K8jk8G#iWsZ3sJwYA7_Ne<48G9jplcD{_da!5`}QZ0Rq+XDsCk1?v5$Qd}`q>gxE-{)dxq6fY= ze%^n1DX7tO2RL=oJHNke>Ex-%Z;MxgUlDrxs9#J-rgI1nMI&?&97z~P4udv;O80lG zM4!K*(X|qFhB8Dgd>Jq5M(XQCeVPy3r^FYd7eFpg+{mS~HYkvxWiD zUDrFi>8J_!kAqdgo$t%y6i+K5?2&-W4E{QFGk7OB0L=6Sl#?mgIBTbTpvZY-C3qF9 zKoS1x08bLR16&i<*1tdM3$HS|@3|)Ra$Y?pT)KcW7?`7NC>i5GXA^c9JO2_v_N4pN z7Uhc%Js5(@`qP0dC?6_r#t+P4`$h zvL0J!%RXxLhU(n0Fp7JNHiL5Gtiyc1e~D(nDXB#y0=Ti^G_YM7frnwA_jwy~#o^Im ztL*YM><&AI9wFyzY;!9?^h?&&agJC!1k4m+>+c7xaexMpp|*gqmyWkmM8%cy0BMvD zBm|JBtGDPGY^023ku?4*B7VusgChxR(XM`I@L)6v4l1+%q;u!x{LRz@CDMI~ogPI| zN>Vw!=35jys`YprQV9Wm-;-V*CVpXi&xM_oE)Kem z)%$gLty@W4vlr$JPYv)0EQ^P#BH`7U!tM93uhaTL(t7~b*W%}dVAgLwP;c^~mv(6d zFeMXA-=hywGLjFy{+1(M3cnzyC^?4r;{^V91AnuX?~t zaDie8(0gR!-xd3tYN6poA(?Imk6eZO{wN+!4`W@$2@%BGHaEZ69G?ymLA`5oed?&I zI_lg!(C$=b#mg$20)T$mUoV2)&*b}81Vz>&`?ASRSDpTL!_263W@Qj(yw~4um7h5= z+FYhQIRI&ExMa7!q3+$so7yk+3^ffEn5}~nN0N9TRu6~nZ)85q%odPpg*$jkcsYx? zsp{vn7yRHbFM39{&A-Z-^Oz5Sgm}7uXh0ceGFj}JyK)WaiCwO~gOfj}$7z55N{iIP z3PWa$e=P7(Uzm!mF)~XP{uUuOTnl7IcoIbTVnleDDoTx}WX^eG=U!iP1U@1~Xnat+ z>o#TXcm>D+2OjXq-t$jV!0GxIJX|ukYXQpF*L^Tvi%Mw|lqiJ%V-tIc%j2|K`N0?4 zbFl9@L{QJ`zHmYGi=)cNbUf_m8sa%w#*yVI6`-JM5EDWpSkV(V1ds_tw&z!{cJL_{ znz{5N&-px-UmJNXTKY^@pC$ABQ4DDbFyz<}5Se%PQxuf_5)aOcHmZ;{^}-mPYveqT z6kbf)MeF<-0x^^Gg8aC%^%Wv$9GI<4pb!oyv;uT3MD*RW{>gg8~I|egu_{gjaCbU`C+B}VBln{TRuxKo99-98AU5oSupzY|h{94L6 zPk^rscC`#9WDS>~-q_nu?HqloG?VslEnI0-{OHUn^Tic4m)nJ-wdO|1c$jizr_j?= zL9}DT!>f`QdkKCpA{5q8KBFI10gUwLC)p=`&x#>;0v{mi>?1(LP^8c6AnO+zrfaz@ zE&O^)!78Jo7XI~C{?g)WihU6E-AsSDnW7bg*h+1)jS`Q>l{g;QbGGh=ja85qT{SdB zm%mzFyaPe5hm97(e$eP%D1S}+cTKyv^Y%_1ob7?i3k=lJtNA63%8gBRU zgG(ZS95_@(xc~PVpb-TU@D9k;i~2?6{RAat;4qgH;;>ssFqEs;)UAixkXCo zR2YkY7j(-P*AqiKOJY(RuBC(+fA4Hv3`5x;@Ro2E>w9VPqR^LDfQA%Epaa2Hw^pYdjfK`W9S1_G_kU1i)~wqRD|^kD3sj`kRNG zYP7?D7n4x*dxCJxTX8zYKh=IGD zvhp$?m7C7Z2%qCDZFsaq2V0_raiB}4y4>1pk(MbCHCf93?gKdAdUX+35uZ-|GK z(RF_M4k``2Zq_O`J*WPB&b;k1Z;GNXlc~3ms0Lk-U`nCHloyGOxBFh0n)qw(l%75% z&8u)6;5^IxPb;b_1bwXv?gb9gBtnd-P%NhZ=5gISc7h4>GwmbMTp9K|Jv>WKB!Im< zVt|rZS}%Z!B4}$W%7~SO$ne1K^FeP7+RF&+9H{+xEqL4JEwl za%9`nDB-o=0_~C0es;&72O5ma*t>Y&mdPA!4fVxATk`1uPpP4vbQN^4!$@c#nT1hn z(t4lHhdTq_<;T@EX;KdL2Dte@3B@8x1YD=|Jz;_PJ9N=d*&(PaV)BaM^!0t99PN^A z5DMBnJQakQQu;Wpsz?`1f!-TS@w@k5hrM5!HVx*KK-e}o28ye=v?Os5DKidF;o>VZ zqE~F6BWD8Obo1666CMtZu5*w~I-mBb1|x@+Txh*9$07!3A3PVHKBts)XQh4a_FmSl zZaSmxX`xsK`!c%l;JL*z=!yYVM9!tso+|zXS`6WED+8Z6F8J=k%;0XM;K196$I>66 zo@6K%&MfT7#)E)FdMx@jnb@S?D;{4EQGQGrE)-a0QC|UnEL(C69PAfRXTDC0JNZ;VwE_k3;eU zu?U!K4Erh$;_F7eZw(`Pum!qJ*?Z6#ltBaF(E35>CmI@hi%K^`VPBwt6@@Zzl<#3> z43FKW+*e4!-Am=%uz@c2P%1c+6_)J=yN`lVahq3y=^PNSa4H=ao+`-B;<>V_cLy3l z-oB69Dk$4}dj~GQ2YzX}?t$6Dd2G3%VE?||0eJ#_5bJtwJ3}$B>=;6Uv-f#&2(xCp;=V9RqwY(8{#j$W8-{{q01g%1=O*w6((iwM zY~Fr0@k#6MtPKFFld*?*`+bYVa0uY+Apg@9sQ- zgP3LPP5n5!WVIyUv*n68_I9_)_c-yt`y=4`?tR=(Sx>q^I7|!v%Q2T_&+XUb+r8Q5 zU(&10kDf!k*iN~tS-3E#-|p-j#ry{@M+`g_yGKvDYwwOfb}s!fTk=bGpVX1lKYrWhMjdcaU+0o?hvsT;l4BT>37w0j_5rS02QsW-LZnJZ0iPu+jCVWS8sf`EYXVo3%P8!p&t}z zEu{Pa%3Ac~{ts%;)tqt^8XHv8B4)qs(Cpe3bIkZPi7f0fR)!9%VST6WehN7}mt!qb z4xhdN7CHWOdmDY|mnsG^H_7pET1!5pZ|qjW?ws%QJ0JLr=1OR1-&i-wA2&#$?t?Dv zR4RH;&D8h2o!##! zn_0Kc!?$K%*Cb~zsfBNU?0O7ypX4i2@hvH>Yf!z2I@x{pxKDRplYiy5=*Lx+ zTCh1)t)ufVyT7mn?O`ifijvIJ5tEJLFUGoBGrzD|pnD)0YPeoj)z8hS7nT~Yd-Yf? z{&rW5U*DmKk*?9364MoEPXAoBF?f&yW;1FD;4Hd+forqXr10TvEUwKW^F{x9v|4GN zj47E}{~4~zkW%w)pH1v_7G=4v>pE?xyx6aA8&teFZtotwtCy^@MbBNNTriepq0&A! zSm0jjo2yCK@t9h0QSK4rG*<*3XJ|*ot1N5W4sT>NRa~5Q(N-LZV|8tLZFuX!_(g)e zXnIhnm4)i-StsxI{z^9g?-EWUazXW}uT@icBkY2dW4ZW~C1RlbK8%BrMw&Sk1}(K| z@~Knwe2$Y@GHgQiD?E3lqxrj1)d`zr$LueMB(WGnt=#+CxD1s>r3@W3vMb!qWVY>W z!|s7!=YOV=cxw-W=HJzR(^_QEWlg&_ZIB+sshqKPjT z=y(f@mmjngH)}GCYjqayZyv7^-+YG~3aqxU3$?P`{G+Ar6?DE35p~$JL@3*Cd9S@c z@IJrmL$X00Z+6f*zU1KW7fiZXKEc2ATU%lwsi~Y*5nNiBQgfxr7i@Du^ss96q+1m+ z$M=Y=>;)dx(tIssLw|1dT@_XBeM;3~S$t8}Wj(CTRMNxhJeB)43nraBsS_vO?`bqc zZRK7{)#G7CT%KA%X8pNshpt*}zLT$a#SJ2Pw7-zIb+wB02OhHbu)OYNcw1q0gVmec zUc3^7>=SNs3SA=;BVRuhvnd_wT2+3PqIgAdE>k39ublhexQ-PxGJWygGT$5j_J$@Y z*SvG$RV7~|L(z36YmIbn`&vWoP_~eUcNG^i5sh*Im2Bxj>({ER2b5YV(c@>8T+v}L zaj#vMD<5+IVhZ&91w12TX2hgFNOm)~mZL*Ze6>_x;~QU1Ghc9h5uU=lGBsp>I0316 z^wtjQ%s{*GD9+sRj6Bk>nzpL;p@A(i##org(k54-(P1OVUnwXyq)0qGZHSj^f~%Q= z|JKNa+ag!r(vc2zWa1OD{ADTNM;}6q6;<0cc^`F>85GoUS)*?VBe$PYCbq68zO7Pa zQpk}M(7!@<>lk=E!WQt))S|(!Jnh{^_R_jGe~HQm6&f4T!4BCog~jYzxt44Kq1K-t zuN90k_8w(q9Z9qx>ow&znfMoR{#Ma>>9NaM5r)2=bhkOCnA1J0D$TswOU{#OO_d{J ztov5~h80#Uy&zEgg~Ae&^l#1v-R^P9b#6F{l@KVGi9vE@PJEdRg&M^hRA(f}=QbyO z%Wg8&DPOIKGP`=tKd)(WYZTW0ao+nENk|hxTIjn-htG0eMt4xrXT+m;oK~8U4GNXO@ z{U{mZ%NH8n|M70RL{);S-7A&{XW${`pb2K+v;*&2@V1+ug8RA1vp%%XdI`{8Ds_W? zKYWbs0K_Wqf$eI3_Z{w?l&Ibhl&oB}(TQUGwymoW1Vn5U`|I7*%KyC6nyi>qE-Y6EyX% z^5h;>Dc26~!yKpC7Ik90u{i2l_a%*5&!)P~ueWGrP1@`ScK7y(!hrbKW*Up0sPMsx z^mJj4+9Vy%qzSk4Zn|aD;HK6rJMlK|Ia}8zyU6Ydevge{OE2%_FDlktv{5}_6lFCy zYQ*poFT{B6L4;K%b?|!Tf}GLEP7`5qzkdf?IWH3<}X-sJAEG; zK_S7MrC=QKL?$?>_{$1ITmSl!#z5fsGN-#(9etymqV) z=S>P26`?%)?2U#RF*}qonZGc}tTO_~RLTb)wy8jr=2HLd6L||CQH}xDi>Qi~qHp=D zYB42gmo2fPeWG`q+Q8WL%$TXh5skxh6FrVOcmfTTXl%qg;ZwX%>qi9K=?oh4;TUkV zrRXwpPEZH84_|=&-@#ZlA6u(RSMFlw*VX>j(F-s)ZxTDX>WFS|<;X29l|yZ)%}Qil z4%aWh4zJSt2zY!vdi}>VxUOzs{)xfR&k}~ytbsCD5WFD`w?Qmz(e4Z&E7HT=qqKcq za0MwAy0RDl>0_fY5<%xRMZ*m9IH(Mgz^X?qW9L9J!oOjjnbnnQQ$!g1Gi1xuQ6h?g zE-&Xdh^ngnxO41v4R8(FLg!n_5EpDzv~&V(gUeuZ`Xqa-X~hNX>)Q zsxRe=EUP*hJb8nNwth38LKMsbtDja~6Thxz*Kc$l+hp6VU`)adCzurEIG0}zB5Ui9 zWvK2XvLk_NToMv1AdDw~X$k@vEUIqJYH6#=!?wLp7@eHQpjr5>cHB z;-C(>qhn*@_>0T5R(OfRD+C4AVfS?-TD*AyCsnP%4D4Mz?9L2HT`#yste8Qv$!`q1 z`xuh#_`atU(vU=yH4&$3V$f)u%awP1qlMOqnYSU_%{NiwGAxqKzh1?EY?3ZiMl8+g zE94q=R}(niuT(k(V(d&Kd`4^5x#}s}+|wBO4Uo(RLCA^Fv^kv9Z|dGdKr`wz=d|A! z&&ZaIZP0wDQBHUydNm;GX?Hy%x|>jde)swoSAC(Vov5VM@5+M>U_qSOYsi?ibN*+P zn6|o_W>J^m6ruEDc<>EpSY!IlbB>-h0fIHV20d89dW_^_KCaL4*@HytVRz5^R|%Ps zU0|=t zeCz?^vv&2?e_H-qI{I(1rBI#aht6lmAj^2sB0)0PQh$6;KkM!afq5(coApHR7xE#| zQuA~KjEZjy?Ox3>wWY zF-+R-lw2(@I$jmxE*L0fHf3R9KbQgYXLFfXLZ_;gZ7cJ7k_*Phkt}TW zSr&0FEuUwqZ**Rz5wKu7S8J36e9#Gu5_ncCTM77B324u|TriovZgow9jJRoYcBDAJ zSle4D`D34)J!XDAz6+`+P_o^`siyXzvkBSCkF6vkw1y3Q?Jlq+c-qXtm?Zndm+UfJ zM@--$_>|>1TPJ7Hsz_FCK@A6H^vHEn~N6$1kS|(pZh7BQe6lbW9o1X>$Gv z$Z}$Jn1&a0I;jOALs^R!$TA>9b$CTt;6F)P>B+N3mQ7AS>EkdOqK-#%ceaspJn04x!JHvpB{utok{gRtmoUgl87M7CDU7lC7%ADHdM!*TE zo4#+Ln$|=yCy>MjL2L!2W(+u6@A4j7x&)dl7r=-EguWzda>MtPtvJSq_;v z(AfFyW8+=Aj35LXx98$6a`~OOdl~xkPgS7G2H^TOT4iCRHP-MT{ln?g4?!L5Jy{t$ zVbtzFADfRq|12Xakip{yj=R>M^V*2@JD(vhNx~GOa4pzMtYmy3S-KV^T}JTI9ALv*G zl2#v(G~SR|fkT(&*Vb!6w2_tLO@ZA2@F?Sulss8$I6X4( zAU&W$Dh{Q`Uif|4fFe=EYE`iOaQ~erBy&9Izu}=3&>NKhW^G~soX9fi=@a9>um}1N z&~pz~tvBD-P5~BhLS6t^t>f!sc~;9LaEqd!1ZLyQ3WO$9mO-m0q9U<(pJ3}0IpjOA zYt%S(c##r-s064XC9vp-Ovj1%X5V44;N=pQS5*ZNf!>>=-3hT(T5+Ko^4)QT&CJ?| zXeB(6gNrD(zd7QR?{^uj%G;@^x;2tdd>zSp)oCm9lfN3}`?DV@MKxL%Pu*59;Mjg> z1a+$m59+5cWDyeD*#OFSthYj$kQ+4z^l*^qCK^c)s)cn-q=qMGPuLJY*!BNsF;MW( z1#=|Y_*2X&ogXsjISz_k0lCN%RIvnYav$c@02>+9j8BMJ0U>$8BJ^pca(LjW0emB< zX(K*d0PlbX7ziZH3Z=~53kF688!$s?MU}fGN^tmpkvRH02K@x$c5un*Zg`d9+PBRw z-x$XKngFyB-#;a<{}@(TV18Efqk!^*I0jt|BD;V3LBjtar6tJY31vXAI^W&T+9pih zgi=K|6do+>^zX@F(ht&*0^FOEuamF;=f&R<1+sHXW*p#O`ag3=}+NV~%O<)?H zgGJ;vj}`qTm|-`f=(ES7m{u)!yuRSic!ujEwh%IN9s0-X_e%IZ=I%+`1P{SKCgRWsU*u8%49B7Y-;XfHwTjlFkJ8_DWE{lFwxd)RAzkYz+ z(RC2Eto@=LTe=Jycqn+5TDM(gzR=_TO5=_`c30_p^S z)MGxg9?}yP^Fd372ej-emxgXc2&3~^rK2>5>{0_DvD74Bp}a{{VwrJK{UcHWLP9F+ z-1_xG7g$xBDVh0ELQ1q6u$?el5*AcTKupW!Hl3P+C*F@?4o{hjuA8`K|MMM-ayoo4 zuNJ9cfSIA_RFn?8(Yy3b1yr+5n#e_<7&hZG&pG~zL1ej{#KLusMbOfkSv=i23T6*= zYpd>$l!4DRK8Wq2GN6B>s%C$I#+|Ug_l0*eWV%kLvDi2^3U^jy8bFEekXw>*`SU)AXn(^{+S@Dq>vxTfUGzMG^2?gF z9W>T#SWNx(ekZo1CO8~p!E>2k!5Pf|2!cyXFdQmD(Sw6Jjw`Rkk;H+jJ-6jO3ZzvD z57UQKsjbBCQ$hgx#~>JoEOrmk8^?G_DQII)q(6y6(zX%1|6i7q8+N?Cu`g!K89a4i zO<>`_B=i~6dXaB9QmEv)K$U%QWjz1N<@*Oan}?FrGTlUu<5%*I^0t;PN?IXt6UsHV zT2TJ%E8hwfeMc!$H-;=HDPBWaa<@+!`y;-DE>?(RrH9>CS9;U4u8hwqy1ow=yaAD0 z=_bHvobqY78TqO|N0Y(kc})C`zNbsFeFmh}vBGO%KLkQ%Y7MiOdcuM_B~;Y1f0ZmQ zxg=kE-|9cz96jgo#^jkgch=BP^xj=;v*n$x2$mwn4?$P&{zk7qwil^4)q(R<#$Qb{dFVIM|`N@h2fqWOD#N*G2dDHAd(|R zwlqmh_|`;~jXuBU0@om4u=xpC1svERlIXKPH7ftqoa6mn=2o8}HlBm_&*s|wlXQZD zqpD)*mp@K3%9kyQPH10=IvU^(ZtJND;MfcQb!23s>7U)o14_%x$VrZU^tJM>x((+Ud zS+3;bZK3w{v~of{e53_p>D>>6Mf$ZFa#~<1<@)T)#dIbt6e z$ANS58o5#(`HrDug|VE0{j>Q)`OfzJ^Gp@{H~SFLytu3+k<>_0rneOJ-r?9Y!T|+YQ5>4m&3#i~0mY}+n=bWCJd|Fhj?z0S{UT1utZt;P zaV=T?(mxlW&U^V@rpT5?LW*>K?Hf~MZIx20XooE5>ZAeK-bAA05l8BHgKF1aZ$nj9 zigf9)SNf#$?chv}S1a$(?;C1C%3@wOn$UAM8@f((PnT_(WGRtrCjDnAN-44-|0cIp z1pWT=3Ul=4AZ59vThx?L`bczCvT}pPOs@R`ruy}^;|&(Ig6uGC#nZen){QbNH?_^` Sq8Rn9x`wyv+W;5@pz%M|R)IeN literal 0 HcmV?d00001 diff --git a/at/ba02.gif b/at/ba02.gif new file mode 100755 index 0000000000000000000000000000000000000000..8c76d8384a19d4b9a155cd59ae757e84a030f0c7 GIT binary patch literal 18617 zcmeFY^LHf9(>A@y6QN_QaUjwr$&**tVUCHL;y}Ki~Vmc+YvRK3(0_ z^;6fmx=)?zE^$dQE>45iFK}N%KK&2A|JQy0Z}9z3^Y!id4;wwjV^{xK{MtzPy9a*{Qt=V(ATTn+`|7j{6G3aKm8wz{}cb4{RjI0ZRLMw;nNT3CxRdN61BO# z0YA`bwMT06`a@93q%tMy@&_ZZ*#H|Obp^vQ#3JGNlJ$k73DipE+N1SF<0;HWW0{f- z#giFaj*yMfhLY(V!2oyysm9XT0*M4#ow3HU`I3JHQdv^>zDri$en{r+$Q z>E_DS2J`uHo$=FMdu1Ex-Y+K{We5um+k29{@!)4{q<5{xp&FAYaj;G+scFvWK zY6Aox+I2R+y^#buy{V4Y+oPER=^VMvw)@kS2FtCf&i2R4UMg1T4<`FRS3AcUm_CTx z?XQnld*eCs-Cggm(`=lk%-~+{+wZX{VBf!0%edY@C`-5f5jl=?JziLb^a3MfT?zfL zF@I#*qc|V$gb)W)?>haW<;e3v`$DZBOn+glZ*(3-y%+g=$(+oEg3@`{r@rafNS=um zb1&*Irp107@nPsnG|j`)UIG_P>q@MIszs5Ys%aQmIL5>9UeLc_?u5i-3k%aE_3ScJ zZ|(GBlLY;6ni6SaO0k1<*XUH!Y)`b@eFGWill{!V>R-m{UYn~&X)r&T|2aevnxQ&a zs7j$0A#=SP=eyFbs_6Mqj-~5j!m1ya(GZlQenNa3q{)sMf~J=hr%D0Js#*Z)CsmDI zZHGBp&lnJ04H#8Ocq!#+Tsd4Fq`W3_YOJC<<6`u*Y0ea(D%}S*G^x(^qbRACme$fn zBE)}@wr)K=%(}W$v%N5oq0@GpzB}@6anfdlaG{HT^1fLy0FR?p z)ySGdND6D{Zuw$r?4i>rKyc=4*$lq1{zZv@u%O=1wM8*nmgyHNlrghPJ6TTruozhA-2c>CMWX?tu8Yl;%=?zdwS9x&j|prH5f+Y~4= zQ~(e2TL{U*4l>+gKMf3Zm>!}Lc0fxGsp71=s~ah5QEAiE$YGQ<`8Lj}nP{U>Y@pT~ z*zHrP*h1BCR5Z>O{%ndEbG1UGG(9G1FZGZZGMX1~V4a{Yb(jh`D~I<&MyB`sFKP2t z+=-DPzBsoSH-BB!-WQV>QW{h#U4@7w#CZyfWJyIpe4NQ!A?-NTnBtm)Z^+#N<4I|E zVJ~ZP@`e%2d#IF_^ISsz1~DVlRYH(4J~2Ad^g;dPlUn|H>d4(J{UXOCIVM`1a9|{H zlVqn-zEWzKObPGavy5|ja0Yk)kE?$anr}~Nm-T>HDoCO+5pori!*FAUG08O(%=6nF z1~?-0Gd+)R^dcX7l3GlpWH#FUu7DV+OhR00Etu&Xd&|Dr{YHqu)vWu$FK9X8)TLV@BR;g4u$uins?rVIJ zD)qlhuk_(Q)cWvMXxy&Kc3vzpdWoLtW6-URX+G4aPF9+pxMS!5rt4ygq>Vu@Nj18I z6^Rtqrb?D5OT`aOIu_@u5)~MAQ2)WkYSAhS&hd5dOLKMQIl%1T``XNqScSe9gAI^Q zdz2Q`I-_FkkY>3?C&$@VrNijl(7wLq{@A{4eQK97pu9)ODQH?`;Z7??At(ZbkCI9!&|I5f^hcE%;dxv?*)ndD zTU3#NYgA67KDwx4g9hOV+KZBX?p$MaK!3V2$k%M0`Z#gah{i3h?Y5CNJMoLX|8YwD zq1MFW>`;XFr4Lv4DhMyi4E6DOE|u~$wbSr$7p-k(GYD<}k zYrgj5CPzTyP;T#f-V>?GTk9RtrgDtF~K{n`l2)Y6AObrrdtLg7}U`1bI=dQXN- zB7%wDp1O11o04iS_F)DLL?4$gBuZ=#?z64NOZe_q4z3QSb`fC?S4nu-A`Z3<-cysaXl7iCJoBEXWP5 zCGama#D85(m!2!cXwGXa1z39@x}0n!;_B4BYu?3pa;*_`?n+j#0Y<_Da^Osf4LS8RBRrQr8~`qZ!#6DK0f zh$>f~QczsUllJp>f1Tj)7)&kVQBM)^cr?j4S=G>3^_YJv(a1FDKxz}0(!e$sn-l1u ztHg0&*-EhTkc-?SV8`A>P|{eRE70Oc1fgmI&Pe=COYGN`Se8+AW!JDM?BG6Z1Gc9C z-Y_d=SS|L4B!N}$;uT-Pv_N$W3$9c%6C7a9a3a%TV)ge}(SR7GG}>e?0844$Zb}kY zncHMZ%BK+z{Z=Exu;iBI5^zFl3LkmzTTr6 zXPg<$SXNXtnWe2MS=jzUlAcQ#K9&}VMrp}LPjRo}X&>S-ZWKwK&(YK_!4uH3Ol~uy zf@ik?xA>wHH-EEiUYax<)vU0zgc_P)NgS_c?oiz@N1sDc@N*WsLK2~5+V?V57qf8x z(F8k?-_vUD?Dw4N6ITlhlb<8W;TB1%Tsf~A5u44wJK%DOSrXck@;Ed!JX}NV)3U)K z=|jUwrV<%-l8N_bfucCcx}mw>%JX%WbLhS$5QnGiJcm1##PedCWVXatQ^b#Or_uxR zMvw9vlANZv{n5(`mB&Ikr81<-fsbmr^vikscR2#M=pCuCrhw46qliD@l7>9RFW7~9 z&c&Y(i*!R`^~*VlAjNnJQAaB!2qjV8xTVL`rGY%90aDRH>7~KA;k?kp9RBi>E{)hV z%92E$lzU^TSX_#D&9cn3GQ&fM==8E}$&$sxvSM5ZmvAmO+H%ZmM|CVGbZ)1f!)B(A|q{X$^dqDjSuOwob36yv|6VsfK?k3x2M}SgMhGt_q=vglo%rEzcu+2@+Bd z+*|egB~~u)R+bT1%Q~9YB$*$SR-CBn!+KaXOPhWd7FUE*c@EV~Y<}_P3C$uONpaBBabj_q2s9~N9*>L&upEYPT_0U552)+V`?lVO*O zz7`*a<V5sW`9ym11S^6D~{o5#v#dNE(O_E zgqW5#;g4rC!Fw&X)h+RWR(ZTVpPD0iTXZAx^|g!)5nAYXDou}?hAaw&u|rYTTb4DO z{v@~YNP#M)Ltn-KWbjp&YSp=G1)1w;*%<+U;e8VBn<62F_QBz4p;;1uCh@hpoa6A{ zbn(pP744QqX%Si(9_@m(^|N@EOA(&MYamyt#)a{pCQu&3RfOif^}6Nt(&pFB#rD#( zjHvLJu5-NZt8u$f+U^J5Zg`OTd_@<<&n{Bct|Ppj-!0v5mW`*hJwNa}H!8}(T0K}h z-6XI*aDRGzO{y#Ws*x+@g>d5r0F~yi5iLzVm(Ml1)J00}9TZ`?b?jC|79C|F@nqaZ zaUKaEn94y&OLtSx(OM7AMy2?vpBX|Oab(qST2hQg0pQusL&NVoZYmO98XK=!1zcw1 zT7t7{t1^A>l~ld;LVuil&!>z=wUN~QkRmv#M85HwGpRvY%DgbRLAkRecaW#>vxjX- zvy0eJV`$z*o2O=G&`U;_ZX~0CRkK&+@BmzD8`Nb8k}`zL3))&9idxN=tqg^i8rHTP zHnzyS0gO)L4E&U?&M@i49Ow_QlF_d;>2*s7NqQqc)d*P_9ECKn{)xDS7|yqX`jQ)R zpM4`&)62sK_GmLHX+{kZ{a!T6{U(ZiJjTWo#N?8(tj6mScq=C@M{*;YxV76SWTuHoT5Q7x^ASgE-0Ez!S~YP8{kdmc zHflVyCrH&t5z;5awFW;pC#&$=wnfLnp#HslneC^dEk2$dbQNt>NFDYb1+2jXLmgSv zotDz@jgf29J!uQIua&rb?Y7MmV}LQtPE@YVY)-_{xv{1}-j2f24hCE!O8TV+gr&jE z!o##UQ?G#1!^ND?Tw8`h>M8-jbWlG__52eVJZw>z2u59UjkK)y`$^h2`s~Wg5`D zHo^2as}+pil1I93U!K(`kJaR?)ou0e)Xmj{%w>+OUerG&;W}%luxmj`t2Kcu#hYur zTq{Kz6Xlc3kvdM*Uh5S>YxPxY)$sjo9{n7rmWo;f2bDAZbREyy9pX_-eeOltZ51Y; z3wk@lIkc7mF5y=bX0*FY*h zi{Ef>)XvA$EJZ1qpg+T8*Z@Z<|M{iz-(*Nt_+BnAza9FCbfC< zWpfi;RqJNC)mJqlHZg~NIPwE|6ozpCUUx3tSufXY+Xi7Ai+87j&Y|sm6UAye?re$% z-;Iqnn~rDvpd`-pe28o+xdlH*DB6brXUhV6|4;ka+xN~V*;$p&_1O0ePUJnj_u#ck zPw2!<$C0mMn^PzJl-5Z0HO=VU==g#4g7VR*8e=A$thmP7^*&VI7im=yN zlCz~x=er0OPUK$6XK!uvP@B3(w`m1}qY26bSm}e{%`MK1qem|#P}>v5v*}1p?2_ zL&npUamZM#hLCp!NtW`W-$ln(XHGiY>`U#W=RskRl3gAH=nD| z!>h2i-O2#pJplxfrg*=yV!n;Y;T*0f^AOE;dtjn>-=k&g)Kb2&}x zqByu6p>%1t>sS)XaN$b`r1u=v(F6+WLX=acN0C7MJ{Mi-2k4tuB6KGnS&LkZi&wOB zwP$n8bcvnSPTw_~rN^t{+tX<$w~b^b4e;CX!EJk{*Hk_$CJ~V2=!+}d?R=MqPLP`< z?f!D>aQEv>9rwP2{3yowJ-g&2Ez-OQ;WZ+5v%mI(sUFx>_w2Fj(L55I&>m_JJ-NY} zQm*jMpbzEHaQ+tkjPvUG$9uw+>B&<3A-H=@6?*uPb*}k5rp0K*h;SO#oZR67z%D)X z4m;OQ2a8O;dLHCe=Xp?OYauB1%WOzn4Mx}m%+)ErAt zIjQ@Y7(kI{N40adJ2v?6YO8mSMOGB}C zG}gp}P%KmZ+Hfd};POq<8KBe;yr#Tw|HZa4nph)-k$z{X)?l!n%^!tx4*(Tu)aW9l zvO|xS?2+0oD%Cg#$DD5;z*!nkSKC5gQ83?buN@92vjjqrTWgKytv;h9Su^w6N2%oL ze)pNBb6v|mXeOxg^60y2txGT?%Jw{d_;Q3b{G!w0^?a43yA@Mi@kx1_>#{|JS?D2F zM6UIiFpyaoj_S^W2Zm{YSpeRC-PX2*mS5^=ojGdE$+x)Gfa&+d@^)ja! zBlxitp->v5t25sAI*1fB0(!~wt=^E|Pf4yjp)ab`3?>iC z@uHuzZnYi!W7oHAmsYF0`AuIl?f=TI0a+4d;M<(rlo6b<`Wjts{>ZNK&$0oAOaHi; zeUf+krs|?U5xK*fu5)a>sQ|RCv-0N+yIjpMxa!r$uyv>jS#SMr6EtfKlmxptP_330XKJ56}#&806IwgAu_t5!e- ziicZs-rtAkCgfWThNBPzuO@?y6#{P4Ytvx2L!-g_mbS^}E`*(hT-`h4M1}kpKsU6Q z=CswaA@VStf|1iIgqu+7)NF5v`?@jKTGOU^l?~S-_BtZTGB;o_L!r#)4a;s`K4wJN z6~_#Br^FJhV!u4KYb8E;5WQ(=w)HXH{W(Zi`(mq`qHBBReF5)aPQeTe=si!;a0n8x z@vvXhkms-|!ppIIbuEJua&)Xbfc2*j*k7Im#0Bi154W(M+;$4o9)W0&2|6z`h@9;o zi??jiq1dW5_5`8273qs$=aYv{gSVp|i2X>0wud!{Jw(SB5oz>y4`*n&hejWO_C~VHF~4LtH8WpDVKjzdlhic_{ZjqFN2#T5uNAaWPTU^ z`spUAYZxCVcdEXLiCyiYVP|c|OT0T5oFU0g;ky4a$rd%rcb5f?PdXdRRSR~jm3R=1 zp)NOO8a&B_&#wjc7b?sapU9jFO>y=$X3rcu{})Eyra^vf-M1;pTz$UHyn2)6go1KA zH|;XNTgz~lwN8%fjF`d&YVj6v^LtFmWzXQ_itg;Pd4|(@Uer^5O%dzv+jNNC`ZmY- zvu$pe`j?|AT^Th-GKZo!h1tbjlI&iYOcuvN0AGd~dy~?QXt=Sx}M0SidF^QF+$%w^pj+~wlA`!bh7dbwW! zeqT&E@of=$1J3l>UT1c-9$_ns-XP8Q2}`n=ck(-Ox`mdT@+jCzD;qtb3NO=ZIDB9oH#U;lpe5Dt(bOKrh6L`_K@pyIF(&odVL1!@_vqBqy! zt<(~XhwuM2WFKu%`3Gm3tATyVJ~pUh0Ol3c%MXS!#)<;>NH|-YaVgh z0$cbAq*>GO6g+pPyEfsnb2G{|_@zM&s)H1wY-biV&hcn;-HH-QMr>ix~SC-vF1fJ;PKi8g8H-@u4@AVdme%;Tn5I}IycUf;91oSj-r5{Y51D?ZR(TcNwk z>-${>eORk_#k2IH!kO;(ur%*CG2L;--8jMpo-;Og<_0;5m0Lfmr)ZsxYAi0lX6Lu$z-UrV&cu$)LnpFkUQ&r^3~Aw`&KqtBB17pEK+G zqoJr(#1k!`@fO*yNZ;CMP|mVLmHJ}piL3pEUDoiYAVLzaxTg-jIF&+pfr9vztz##g zNOSDzjuAwN#GxW0>lS@bRwsJ$->rS{)qWKj2oss)fjrR;JV*l~5&f--alKM`Lf`j= z;dVg;h$4bJ&CCTf4(NT38C*9~ocziyVU7c-ydt_8{jKO67{6N?0+=LaqW-?obBqcL zZuALd<_dos6xna^MPO(&9QaMn#;nAk#9RGLl9y9I5U5mK+D|z=C)xm?r}k%n*|YQF zsh>I_UGR)wnfx!4b}8Q*Ll6n~22KM7Vj5+jkXXjRgD+$F_)zT^ZWS#msz^p^&#FIX zWuMUoRgHW0)rXXvh8~}}ehHt|vKJ+h8WIW`AYmdqpNpBiAlr~#S=FQ=x1gt@gk3kddq#o$^G+9 zh%b?l{gx`KL%i`zi_1oBxYbaEadxD!z@uIFD@n&l#h*37oZoZ}pMQhY!fQSpN8EM< z++Pbztw=)l@PFnrCKpiTTG0dO2m7!w{7mnJ?@!UqxrWsm#Eb%)rY2dkvg<8JK=6%)M2b%+Md=n43X5m_fdu zL4lb?#hCp`F^fi_P;U&ki2n~#_|I1%8mHr*;KV=lqFLOgS-inn{KZ)UnAz38(XRt^ znAQqbZVEU-@?;0I1vhsiYW*uaR@{Ez?x@b4)Pv%os{k zn~ID@y~I_DP`XJ>dLTN3sO(ziEKAZnchNjg(>#)g5|`*KnWPeXCnm=t?{wrWebhWJ z`+|t*!rv+dqNseD&M>(9d6mz~wZ9NKMHNK{7i1O}WGS-#h{BEjQKH?Pmx#(C9vu}U zSm0n#mNQvY1uk-%EOa9-ieo4$PW}=^8jr127C!G#yI<6UQAN)h(Oz8CsEXxpQjs-K zGWj{KEIX-!v}B&NWN|)YK%pwmx1=DeO3JPho*84xr>I-BWKXf|P=yI1U;5g!lAQ64x03R-VTT5l~{Z);j_ zAJl3$(QF3BmCKejz-;vBD0UAjb#>06QfT+8Yz&Hap;&A5M}t!s*{8}_YR(XBg`t$UNL2jJFY(AHDZ)^m~Glh;P@KTSmIr%#b)`(PvlqLgmzoqfyo&fd8)FtqolXZvKFNYHTlYT4 z6FW?(IzPrxT139sZAx6xwb?(I+ldD2n%L0jXaG(+b~~*bMywT*tj2FTh8FwWbPuWc zE;b)FBeTx;N^RC|Cs-LS^Scb{$XB1LFATlUpPb7dylpv$Y)D^b&iTVHs(0UX4j{<=gRnl`}LAKNFwl5F12q728A2w$YnepArmP%VV7g`hyyAa|lt8+V7 z<)I%Jd#?9d3m50R&RU#b;H2OpFOYscaN7=B$L@Arzmp>pW2p-aU6XPqsZJ@t#O#x8 zUE|kWbLL&E7TY6!zr0d)=t^@S1>Ml0EYPDkJW$@aYTHB6pbj)@CKP6uTc&%^W?Q0B zd#)4*2BIwVn9yG#2TNVoBrf*SVYj`Mm);t;VO|abDI6pzmxPbHM@{yB#qY#8??g(J z@#JlBO&ri%oIdz&NK2gfYm}cbo$$Qxq^gZ^P=IuVK!uz;FLt|k=R1j*yKmp`Z5b{F zsP1H-b~>U8BZo%w#cb3*_Ub8@^e{HmDIA?_55|`=Z;Xy`rg!>S&gMB6{4vf1N!Mm2 z4{|jR`N{jIst-orT@2LJ(l_sfI9-gV@9k}!F-sn7iJauj9GRA#71e;kHBP`3I9(S& z*g+Rx&ZBjWIV@P7UED=I#o08+&IxP#Jn&ssv)eaxQxyIpiHEoDJZVpOg_ zQ>>y;T%yHIjUHWhtzGQYOkAf=7~U^~{)=~fTwpL zJhMA~Eca3YkJBZ~^kqxEBmN?B2P}E*=_&Vs?=LEP&P%$FEa0br9H&Cgmsk}0vg!YR z(LE?1Ik|T;PE5Hw`n-G}c1K!%8Q6MpdVB#Sy%C7Jl^@NF4BrIBcyvHLOmo~Wi;Y3w z?PgMLwH_a*%-ljl-WRFdR;N8WbFLV+oS;QV4oh3NtDHBzCCe{EUR#`ZEb=#-P$yN` z+byF1LYVh>+nWu&kDVH?`jqXJ64$tzM_)4&8MUFM5c`H@GT!CKW@i;qCVOeytAZre zJNZtS%YTm{P*-u=pGi<&6{l~Uj-5>JUpS$vFh5{F;p0=AUlI2O!Xtc9KfcNn@%u)i zSZRK3*dKw*=}<{sM>ZV!L)8DzQ{BE$Jh6QK@6!5%&&kYYbHBNn$*1D5D0q%fZq26s z1Vhj!sS~N^^27+3%^`O*3#E!Bid6s=NKb`k-j@{!5U^BZIBat+^+3PYU@#A0A5UUX zE4G7~(m_~0-zavzy_sxZrv236`xT0?^m=cu_&pT;tIk+zokCwcl~T3UGwb0*I;Z2s z*)!YmOul#mqxH*g$U?bVgU$I1``Jn&5nXXrV%~XSoXPFQ`77tuc3%iOlg%5~&3=S6 z@08bTkHgViiBgTtJI}+}8p!eT;+^;DYIit+$@b&V%i*F6o$ciZ-`ms8(R_`q4?FPw z8E5VE5-Q;P8J>&S4+fWu_|tdV7UBRz$`#_kpHf^TK^Q#dB*8c@kGa7(4l5*~51!bh zVHD{SJE1?qgV%v#Sx=;qEMr_`QS583WYOG^7NY=~8*>Bw`4cK~9|3ps{Xl-w*1{+$ zRyUFaIZ~Q~1eJIR6CWV}IVv<_skLRtMya1+Nt#aKA057`o@36~dK}Ep=em%WLaRwr zD*57uo~u)>MxGZF-cnv(84M`%%Mwm6GK`dxDpst4z#C+w&*3gq_d>$Wa(pxgD4bT1 z+)pd|$Kpv~p`8Hmy?_Rz4-kMWa1-hBMMaY`j#$X^=CVAPH=O_|H$Ab)zcU{^3gS;OZT ze2Z~GEIigedb)R~C>A{_z(B&PF~oa@B$13B^` zMlpvPw8lJdV>Q?V*#?O1%`TD_o6?TNc zB7(LjV{dZ{OV@tX+rZb+n!{7Wvy-S6<%#P?>#@c6v=u?b|Gej+WBGiNQN#aw z8ne#-b}=l_4SlDVTgK-wNnFhFFD{Sok02UxUYP)J8FV=;e zlj^UO`7fNjhDe19@c?5yHOy)O);K%kf$eoGiCmHMx|kNo5~j#}e>euK^^EX-539sz zf(4^iHPo@F2bFvDq$)ni$de-d_?Tv=tS(`ETm}Af8sBE5qDPSo!O)qjq;bBS`M!f9 zY0CWQU)4F2%8G-+zZ`=w7PBc45k(vrCVZidSIWc6h3HvgvMRw*DWH9$-+m{RGB?N> z9h#JEjyQ52x`^p3yCosMC%uqG#K6JCZSG~)v7{naSHDOlCRwU!64ko&g#yZ^V{Qs9 z_lB%(r_5|s?4L}+he7oYcp^=sQ?bqQ34y!&e`jI;Au=KtR5YG2B3X!v21}*?rZ`TP zNXKU8nKLU@E)!wE`J1yk7GvyKBAUTDYcYtwulSW3FD&bzZz5%{5+hsKttz(;S0t|i>+ zZk|a`POsSWL^}jls-vO9HlaaK8+Sk~Ey6A2#-d(>CA4cSe%H0YD_xtfcW%0owzf2S z66 zN#wi^9=pf;FTP{mRi|%Ut|^A-!Bjg-Yf2FFz=v&qBh=Rdl!lu&b=pucg>GaFm0!3N zECx{jy-rsOe|R)l(UDMR;auv`IW3i?V|KM|`TOjBlXfq>;NU}RplW|n+?Kg1M@Shhejo6c)1V=2bD)yW9Q(MZ*b+N4XVN9dM%dIf*97-${i1$&z<8hPOL z;M(UndDPa0zXJ8A91LQ(jaqy*#CDu_T73&ENCTL27XTNX>K&QADi_4ZmFLI2;6y(~ z0fZ7Rl1~GZ98A0pCMBQC8nX>#g9w`Fhu7w;{y1m2WiCSwj8kVs9oGI%8bc4Ot*vH1 z%uY%t0L16NrD{1?hgb7MF0EM|u9TZLxIkF0k=D@=$`D8*8qkPCGBjMcbE} z=2%tYP%k|!UpO)pT7pBX*#|f6l{$7YL65+#Dqi#9@)j&LfGZLsIA(8d0+-6z*3Ggf zv4I0bYxX>DB*&l9pXvKM<@w1*_xAR@XZ@=Oj5wN)DRRC-FnG7YDDR;geg9AbZaxhoda3Z>sqg8oJrPIR`^~2^$`b66 zEdX_|e&#DUw`u7Y-`H%^ig6T5%fsP7i6j2DQM2^ zpy>@}=O?cGDI*#>L0u)lDOJd>3DZjgZY(Dve!fxu(M9D-^60lT|D0)YvN25&OYOf)olg3cxJwg{Nt>@qR~$pzwM+Y=J;Rqrm8>)3 zwfQ1TN&)ysA-B1*n%`udV!)oyLRbKIZFur`w~1yC+mMu5*AN@mU;)O63c0{tC*ku) zmd4KZ8o_2VO#W(-(k2O6pU}!X5Qhwd^b>6+7Yi9nHFQTBZmWZR74u}F)^Gk>eHz}< zPI^~x zG{vBG8GDI4S^E3ja-(O@2I7bL3c>roq6*Ii4RU9RQ&Bbl0dgF42(v`ziII16f%@0% z*#{T~{r7uU%m&emyX+6f2eRmVru*}svj4&wcGKj@)0#+e$SAEDLl|VzY7Z8u3&Rae zM5cbkjnzt5_LQ%W^p21jw7m!S++?W?^g4w04ltiY%vr3phZeMKj#=YlR zSD@@xESgBJCr1TbO3+_3l~O;b#@Ks1$)_MCV3*q)*4Q)KJuI2rr5Pf1@5`reK5{?I z^jOpOET!VP1KH6Y0)8ju11`@c5l{ib`yQr40{_ zmS&uN05_&`SQeG_#dMy6W-RPP5;@lbg6dmFo1RV`l1?03H=Z+hSdb5y`FVo$lI{y{ zz<)uF(u`FAApPV`D+_;;UvG-0sGodcoLyXgIAfl`NGTUg9V3izW>FkQsh>py$-=ap zJu$Kth9E*H*RG3oz{kE1Yh*xZf=3u#C?iE(Rp)t2n-UFIf6 z>qu*uCq``|O#c?9Gipjb2-xgds+(1KP>0P@jgH(+s6j3jg5O$8G!_A?7235T@-gr2c{(L6sb!Jn|xA#IsfxpIiSKiOh`KQ6e= z_?FwUI~&k=0Wc+0YywmOhrp2Y?L>#ug&Upe`m#U=i>ayeDZoxD*xDp{*;Y`XKn8yR?Y2M1`_}MI6#G4=2Dz=mD z&nWdlRBH%00YFxpA)G7~E1DNIFBeP)gfsqd`mH76!#pJg8jHRWpj8`1R zhjItkHdLh)hnvC*IiHPD;Hm0fs`keUkLxRP){JUR8Lx+m^NgAN^Xa-5O6vd?&0nG| zS(!BCE`t@|Zjnu2k#XL}O5Yp`<`k`iJZrWvjAs$GJK}9KaF04a%A0g09kMTSNbT~i zwz{QGC%u_}_!J7^(mPF5_9-&KixBvlCL`+}&j@G2MbN(mo{ey%A}-q@&D(iEm~F4^ zte%;Xw`y(ep>{`K&a9fxTyE&QgbU!iueJy6eu&roYG;Cps|`l0bonUh$7I6N%N*#l zo0Zy~T{@kkv{sBJBD+WL8PL#WJPIn_TqxZu{e(^2TmZ{C`-#fxbB_FD_9dCAVJDwP z>`z-fP}+y;m18g?X+daaFR!c7H$2W1ERX4EJ$nF0`G8_oKCA1Og{Q6p`uZp);v&qxavo{oeuiB&bW=H z9+bmWJUT%0PC(${Tx@Sz(SC;G+Bm@8gzOUg(g2V4yo1qVb53tdI9p{eh2y4Xk%vim znT0Ome!sS9M}cm|{q!>b=W1Itp+dtAjzipG-dAMuZxuD`xQhI@zm0h_ZOJGTU^&5< zaU3Nlg&+G=OpUza2P9-`4nOZLgjwl8zhMcQ1cu23jaaeg9EJlSH^BO|gB#wVC zpK7E}s+SkE``Vkl5fK_P&bUh;RZe1g<@pjOpo^_>)|I)j_ie zx)y~%*RDs#15@Oz@NEg^U&DQ%AymNl00NzNXZ+ft_GBnHiE*_hD|M$`9vB~BqZ zvoF<7M0KDSN-h(omUS=dnlIdY)-RaYZV(Mf?KSLPd`^M zzBJQ)wFPCBP{z$0s92t>M6}|l)tCyn^lLMZda~ym-CNagYtXg)G~*~sagVWT=F(y{ zDycH|;P6*+uV`qs=r1xTF|3+iGT3rAIC|0dp|4qgsrmjoMdAFx@Zi(UZr=WqApXF9 z>zEPKRwmxwX!OGCz~M>9+c5l6Cvax2*HU@5-DiX|GN2naj`)`goTD;g8c-nM*6I@E)t9s2G|A8)gGa%&dWu+NS_9?fj{GJX3 zE}&n0vo3CyF<8u&`#pP4sWo=(!k!w#jWo|(75NN9W?tepodskC!*uUvpll|A&ct@N zT18LFfS14G8Df?l>%(5)FD;Y9WdY+&8XWG63hj$Z4%1AIUDKCcmr$l1)EgyIu@H?n zN-8gv&8PbD!;$eu1$1}C%fmdMm+cJ>?vl-~X0v;XHTjOf=-Cf6A_dOnSG`vHq12B? zDE}1}?Ser2!YgY9=WBTc2Z+ion(iSwr=$8dv)1hFPQ2Sw)#uYs4mv{tat(pUuc&ni zg>{_#XuQrhwvHgYO{{=+@Yn8Fv*xQKzQz>jbpl7T5;M9-dxuYOT|-KqBbVUHSLPXA zp@8o{DV1Ad4MajvNC@$NZ0`(&!P7{|q|TD|M*Uy|L~_L&OD0e$6bG&-m`KMG>I@BV z{eJ<*1v&cCqD-48Ll*3q^JY(p02~ArI+UnT00#~LExMGcgQH0o=Hw|*|DaKwR;lXr zX>jURl_7bCB|0^1*sDXyg8b-}?bo(jyJ~%l5i8fZD`AS%oAqwrs%ZT>jQi37Qp1N4 zBW3VZX;a5R8AnxX_pj5lmiZ12yqWUKqEazym3p~u)zOnVr&irkbLz&eSMzO{HnvN# zV{4NfSU7QS#f%>Zk34fSSgfzt!p$w1;cdWNLsLE7xHQnydzZh3oxOANz{s)3?rN61 zSL%?LZ{O|P_hO{ygMWT6c_V1_mC2X?E)e#4`=L3a3_j!TlT9xD5L~UM^h(oDy#!eU z=`#p10*bxf+)FAx$A1%SQ1EnMFzMTT>QOYls3$no) zR|1nJ332;!Jt7A(61XIn>d?#Sjyn!V8FR$az^up{EyOhYjL}S!qD1gSzw+EuK_>N7 zbWk*(+Yv9`5GxX~BjJp5N$=7E&(lZY8q>=xKPpShF4dw9)KyEeaYs?JqwzXcouksn zH7jlN(l;|jYttTSyXZr(77UX_VX+&J$6!-bl%gxIWVOsek<}5=yc%6p&|;;nk6TGA z8uC3ZpE>~3UVVkC+jZG(*WGvFjrCnz$L;8_bJ2zDS7{4%|1jQe`#siQf&T?nNJ;)^Yg*s_cWr<6~0e%T@nGSDya6uzqyz*ny?i=5R;U=xqI=6&%Mm#T%i>&8@WfXGe z_Ab1^$y=SBL0b>~*FUHQ1B!v)fe&8z-x)@iF~N~f|6cj!nQz|t=b?{Y`st~!-ummY z&tCiOx$oZl@4*jWeCUTSU-;sCML#&UGtIE?_u-FU{`u*z-~RjY&tL!j`S0KV{{a|4 z0S=IW1+?Ga9K*Kg9nEXNkst9ocOl{#kb)Jo-~}<5K@Dz@gB|qX2QL^w2`6scnKFbm0qO7(*G(kcKt1p$kRG9^#d-YbQL~1KF2C_uY_)MKt0Ok(fj!E>V6t zY!3<3XF||v2#EAz;SiaaMJ;ZTi(T~M7cb;Q3_&qd>I2*li8e+nj&N&WbmJT07)LqI z@qamNqhiQ-#vV>lgu1#^5aHKCIu4SMg*4wzJMJ)wd*opRi*_$SzE6;dwB#i* znMq9&P?2q9WErLS$Q6=nZIkpI7B`tnRj!hisZ1LwONl@Zg|d;agr&JmdBr=nl9#>o z8#f<~P9^PI1<+ zlYf+DQ_Pqo6y{2eVl?MC;TcbP&NG{AGEyGZNlQ@Hvr_F`Asgu#P=OA#m3CC)HTn2Y zHo8-i-X!QlAsSIIGPI!x6=fAEs!WM)l%pMGVn(f5OSi3)lDPz^M^TzmmA(+9xI8CQ z(zzkvn2)CHt7-Whx>B9)l&Agk-A#x0o>EOYvX(%_DFBRmzMd|XsZBj#QqO16T8@vZ zRki9>v6@w_Zk4ND_3Br_8rEbAb(Z_fsZ-IKR<-i)tnni&I@!8bxz3fY2W0C=#hO>W z?v<~7_3K{&8(6_|)oq0}>|qg`Sj8@uv5j@?V<8(^$xfECm9^|;F`HSIczmJ zMk_mU9zYu{K^ZqkD;Y;s6H0YCMNutFb3b5zOb-rI8zxOD7fv%OZW9-26eDaU8gDW$ zLOV!AJ8E(>Q+z9MO-=<%OEFJlK50=EaY{L8X&ZENE=NR4Nl8^oQb|ctTU1F%QcPA` zR!3M=TSiD^Mn!i^Rb@k7c~ePlQ%QAOS!GvQbX8?YTVii-Q%+)BXmM**W@Bq>Xme_E zdvj=Pa&35ba(xd!lL=Fm1X!XFVwVJBrzuQ~BTu6%WRWvb7ZgZn&gI#%pbUA>uQHQd5gqC}Xqj;dYR+Y(Q zoXc~l(|D%gj1C=-7AlW08j>zEvl=zGI3BSnIEfxgl`}GuTy2KXIidqaK{@v$R#|`9Yo9~M$kQC z;~h!jDpbr&G|+25$x2ktRB6j?R?ls7=2cJTQgP*MQ|NPUl0k-oe20X5q^);~q<^5! zc!=(Gih+eYn21G>i+Hw>oP~{}jfu00lc$TCvXzaal8dsNmZO-QvYDfto1(Ou-u$sQKq?xFqtgEH8r?RW8vAnXYtg@=Mwz00cv$~R*#g(zmh_>UR zn#QQB!mq8=tg*wZywJI=!LX~;ytcu(yVJb2;JU`Jm&@(C!_u+T^R?yw%#e`InxoO8 zn9Q=X@r#o8mZ|Nkk?ygy!@R}8y5{+|#>v61#KXJ9(5%+$RG>gn?L^XcjF z?DO>U>-_xuA^8LV00930EC2ui05}4|0RRa90RIUbNU)&6g9sBUT*$DY!-o(fN}Ncs zqQ#3CGiuz(Q6j#NAU}2-NwTELlPFWFT*H^bV*Y454ovuM+*UCY)YNPG6` z)r(h8p4^Vmpi$L|^(W50Ujqxy8BbonwuloeUd*^L!jJaw$+I_4p5=J++Qn-Jubn$~ z?%J_i$F4NHc11V(8U{|?P@PwUTFu(k=g_WGbLXb%E?z#zz=I1PPMqRB%JY(Ap1Bz( zymjr~b$+K=^UQYGJ7ccCd0sqz8*%;ra(1;abFnwa4qgv-ox0wsi_4!+zdllY`sm@K zr#v3K|M0j2V1NO-BiDfkO6T8s@GRKigXhikUp-}IgbQn}*)$V-u<53oYaqHel{>Co zrH)WRRcPOeEVk(4L6E^!nRlCQhuw`2(m2yxa?vGMUpLLgpmhH+*Pw(u_9!7d^Js*N zGtgvcnLH6js9t*M@syiTR(a?pS0}3Y;+SNX`BYK-)RQKKbiH#AR`$R%mp%SbIa6Fa zR_Wh>oQc*aX9EK0;GXc9_TM~A%K6_t_sD5rJM-v+(Jy&rSPx`&Qi)Sxn|3-@mbO(j z;$B_3W6xn`rmE_y7vW>iadX1|BafVP(iI>-=Ct`{JqFTw4?gg0T9=R;&P1h>^)&b= zc9}H`DWu9ViP=5#9GBd+*VZ%7IpmO2%s7m8mYk#(Q3_6Ly+wwpp6Gq*Zgg7G*5!#n zjk=DQtmdn4nUnn^&phw^+nZ)b3R%xP^{5liJ$d@LFg}q&st-HB%t8)3^L!Mngmw}8 zAb>n3D>8)l)Waw`{Gg1^J>s<7@;BXd!wol1`(~~6Vr5}QC1vu+v|M+y);eQha^Wc#u>9DgjyetE zlPo#2q@qPBz_g>!4K7swTuKVFtfP-S?8HOaf^_+aAcBlCdLTULpkvN9*<@1-HhyHT z2Of9akpml`hpq-2Z?NG8>8B53PRX5dX3=UypLi!e{U}|lo$Q|HE~xQR<>lM0#e?eB z#1{`!YGNN=HfHv)BhNk1kkkCXP0twjO!JVa4l%`e8xKCQ=%9r!k^G>_J>(pq1^U1^ zkjgzPgbfOyMEXsQ@LY~hIaRr+fXex>X3@? zjK{+sVgxQSlF>W={t*vys6!aQm`V4F!46dbgB+2dTP%oCibw!MGTQnVl?L}5(e#EN zJU9U^is6D2kOLpW5XL?FkqYtMqa7*O0XrmB3;^_k96!**Hq23v3q-;klG`KYc7csr z)M65o$V4ADmxs==;SOwAL+IFm2Gi~A4Gk288#KAWPD;=XfcOIiN4dcZ7UF_z-~-CE z#V~w5b*2CyNHO6-A>WpD!`1~CXsV$uzNfao94P{9g@vZ8+g1RyA= z!3lbjlb+lpL^VoMlB&U^8Fkx#UKVP+R05;77&)*ASlrQh?4^14H`Y^20c57GT@;bamioWR_^9u>rcNh->XYE;4)#&AhT8_Ea2;iPW3phiDD zK?`fx#3&X-A<*!KZ=}gP?Xb*fgwmR~+1Nec@P#jm;R{s^Lm21k%}hX&(|+VbY%z=> z4YR~MzHsR(;9;(mwdNffabN}JFb6U8aDZ9tLka=#g*&#K0no&0_HiH=aEGRLk;Z~>k4;Xv{AHLD3BOkUl~2sOL`4wPO4AGndTO0c28i@*jS^sQiUO3|^4!MRiO2IQEVrAF=qQ_j2 z`&yhpBNnkpqcDnLxBu0T%pV25W#sBoW(&JFH<3cksX& z*l-3jct8$#I0Y`;Ar5s+A_s+7@hB6%Y0jcS5QM-!WD{QDQA_X-g~%ZPAi__j-tjBr^6J@aXf%VaJCbJ6#-~qVz0dN2Zmf#1Vvj!RP zf*7CyXK)9MMmeb93<#4Aet-tor%}@9N&9y}La1@2woz{|LE!g&e9_ug@Cjt$lfD7R84zhDJ>hcl3 zMS60RY!w)EsRuPZv4JFFARris^C36Y;tu;T1qko}M*sl{kObBL&;%Di0CFG)7;pxA zpa`Gv37OLi#Lx=?!YIAqZk#0uXn=4@$Vr7zcb_F;^tXy&2!u|^X&q!yokn3Gmr0IoO03p}Cf0qzs7aOJV&3s8wXzd5p)hc08Nv_=!tfqVV;OUJZ2s^M zcE}?Y7#7XuY(vKrtQR2f0aJpQj$BhM^*|5pa0H470Y{JkIPd@jU;q?A0T>_$iogxt zzzx`-4XJ<*?Z7Aq0}qJcZdfQ`30Go0h)HU2QkX<=0XKgVwvZ3jY5XUCsg`OP_k<+H zYCKp5Wk3cdNd|ZDc6;zx7N8IKo0IeRO(ojh(Q;P@(*8t07U=+LofsqkN^~L0d!yo za$p7Q^#@p}2CycC7nE?3HH07KP@lz%J97qa za8STUgLgmzBya&FFanw|i5p-67C-=)X#fro0wHh#Az+!7NJqqap?)6pa_a^2bP%!J8+L7&;mREPz?7#5A;w_4Fw2jP>UuNN`A>f zNT`~r*hv$VSq|g|BT15Ga0Y5Hd}n}eh}M`CaG4gM33D(9a3}3(sP0#@}-~k?xg6{@Wq$vmsbV;NGNubkpB(MQ;DyJ7vrx#!Vclw|Q zU;qLj00s~OF7N|8kOPr;0WGis4uGeLN&qAO01B9Z33)&QpD6$h5CS5w12>SVBH#cP zumL-hQ63aZ9JEn}*J-45Sr~kP4@e1213$GVlNjz^)OX016NR2(SS3ngAWp0c5%cYv2ZOAP8{4aTS!GBuSDl zn2!c)umnH>3A?bEnVApTrviYPcABT)83G1C01bc%>Cg#~nggF10+~<_<#1jiu&EAk z0UHpJq>7pwDt`B;k(mZsqxlDjMGQax6B&4Nq9?i_!lDX6uzbt`qd5B!y|s;paSuI3 zEW+wj#L1H=+M@#EdC&2q%v!Y>;VPQ44)OpFL?cwrKs3%U47h*_s6Yy%zzq2?8NbpD z4*&sPIRptH1Q37#3GlXW`;}gK1V|tRLQn)qFa$>sxC?Lu^m+s^&;bfC00nTdeM$fV zu($=Vr;dA%1rV_S;JAzHrvL!4ehRS+Ah{P%0T-YF5^9-|c#kH)2_|3y;kg4L&;Si^ z10wLc4Zr}DngdyoXcb364at%1r;#q3X(0)IfWQah0B*-odBL*0gOZ}^a0)@-3-54C z*k}**U=RGD4@G+zyNR^SF&9h!n`G`XzB;kIQfm|NpfKcOwd~6f!1b(fcrM@o4bCuA z>);IIF%_*bzr&CVxbO<3U$hJi1bRETFkrX~ z00Rq9={Y2j2Ys*uk(mRR&;lk< z0w4ea1^@yfkf^W=p$5PJmAV6&pa+#1k%2&(B*&3Z47?HMkr_mqfWQWoaFfSz9CpII z8geA2;tM}83gAE|xs;pglD+-VTSkc|bU`EGt0&~kWGH%~<{K=a5fAIzzIG61Pc7XNN@x~ zFa)D4%6zNI6#M`PFaWG<00Ypcl`FyrZ~&a^xB<02Gh`Z-)p8`380H z2;3kFpWqGN01D%<37pUgmjD6{-~a-k%be)|*n9yE@SqJ4u@-;`Y|xh;CB+vCpAvLR z^%s&<_y*aKCawZ2{-GccA}8xm59=@rR)7lzXc?6OMEJlD_))ans1I&zEW$ZMbj&+< ze5|AKJ$wwLhw~ZWAX~CE4bfW2@+-*TpwSrZ4Dlch!$2NWAq~L8wYNYDK=1>U9Dx3? zl@Or7nJffEKmgWW&^dL$2L1U4hQJMvUj;Ic%@;&;Lw%+|hh@01ol+&>$!oC?db}E5DTzC8$l>s+~hQw7ewkrTn-MI~WkDAG+ z7SIQY@L`Pq)mezp2$sMIZZHUqpazDZosXHrm0GEsd8s$>y0qH>o+$!ZkOh(2K&mQP zs`;LPr+yvkQH3xFX#y+wa3jkUbZ3YQKZ^^)L>FHZqxzr^wbQEv-EB)wNr4|+Ve}lgRI&vzS`hW4f~rz(ZJdo?H<3t8X{t2v>glO0|e^O z4<>UQqmTe!Nd$N6+cn+E!VS0-9Jry31epv0Le1O)u+$K{%Y6y}n=1gD372^g0*>3K zA&>`o@L>$ZKntawV3-Jsum>YR0U-balnT3c&Y65F01UtYn)%)$P^X+l2&yW7^eLDc zI?glyY0fG}4*pQ!<(U~(5@T3045JVUJ2t&!2p7Nd5fo10{;&`JFgQ(jEIv2S9=?a| zGS3`tzS4n?CcZB(BoBaW+NmwSCH>+rUgI-fV>N!rz~dU=kPF4|A%R>BxNr(UpaZCY zy(WVX>hJ*4spJnl(@U=8$X(n#Ew~9F-A`Qr-X6In%m#h12$c{sGE*~bhXML12MJjQ zJZNgBmXHxS?{$y}bzlY$dYJ=C0U98uXCMdv&IWVPn51g}47#Y5xVxeHQGVA^Ecx&p zndI}`-|%?e#pJ<>puTBQ!xy~;5#;kzo-xiJOBjXAmp3Q1zb7pzfIG??UhY_ z?b!b0giGDCT*5~k03Lh+c(4gM6U>PvcK;4{*N2}xIPYe_Vi8#fh(L)yd;uds0t4R% zc+Y5l@ClWmiJLG9o1h1-%c=O70gM%eGO3~TS++!}@) z$iH4=KfmL%4TsS%6;SdMHb%d=5DAcs3N`xi?GOQV`^mt4kaI-#@Zt&7MV@R_$80ZQZ_w8&~dJx^?Z|Ws55oG``@Vfddy!9bk2W!4)2y`0(Py zh}AuY{CJ(Z$&?>gd$$hSx_9cFab7oh9XMycMveLbL><3-_U!HZf}qI%5F)gP*d~%& z_if(2ha7*^H*DUN`A!|XpzPGu7(#?-Q6CZ)3=kkdfCfUi;DR#th=`+&I#Mtr2R#x5q>4Zq z#0@{h*=HVo=HX|jmU@!OC92|4#|kTI878NGcZ*6}!7E86mt?X@C!d58EnHLy=CH^f`|B^j2(z*=#un@HO3NxEb1=}r z2`#h9{Q3ozNP_qw7JGuSN1u2mcwmUxaLbK0-TL%Rh#`bHVhAMvkPza~-ynEkfaeVG zj{pM>Fn|IIG>}6LHOf0fQ~NySuDa^pI0TV6%+R#cH{941jqB7v!&5cx*dvcSav-6F z3mh<@0bd;e7T66)*e;@r7{mx8j+V8kB8cGNrk;CRYi+3yMSSWVVS*S%7+i+oiKmn1 zL6u)uTlq|exl^JUw{7vIN*PLQH2)2wnTU^gsn8} zF~*{?63u8Pn^?>%1tU|<&_as_nqhFUB9b41c*mX&^|>du+iIJww%m-^tv26oJA%+d z5k+E92^xLwfC5u!p#>fEu$7NQ63H)VH3UJ#5J9L*!_}w%-*`k6M&9UDjWSqugN;92 zt&Y6)_FzK}5;m~Ff&za9HiTeB*kA+h1c8VU2I)?A*#$pRknTd**uxxt;6b@sre0zf zrgz?{=gnPwsRbN+T11Ilb7MpbDU@GwsvaKWm8zwwcC1&ctG1%*v3dk%y>-`LXWbXQ zd~qgWh!2BU;e`WZ%wdZq8*|K!H>NC2H3xI%ms3UoLI+Y-9Go9|V$idQB5E@tdzkW1`II41~8xjz@pTo+!ieVU>QIIckqa@A~X?*BnUzeT2My{ z5s2|z$RF++7l;n`64AK>8df;P$9&-qd^p85L0Q*}VwA3Ywp01cSb1R1bP3tB(}8}JAr zglUlyLa14N8{rBEA&5J4gEbq{$GYm#4iPE;kty$x2`(a03)u;SaW~>gJj{g;lAx;} z`~WBDphCkDL4{uLWD1bn5f6K4(Vq9jXY6Fr#b4|$Vg4**#C|uXYNWAv!($_8Dg%yT zsA73P=)ovDl#+e4V`qE1-Vpj2GeFMFP)O*&3=+YOiNMMb_<5xM$^%JRY0Xpni%*0Y z;Ru?B!V?5kgdHx~sjNLRX^G&&9{RH@TlTDH&8cNA-BzGYk+2Xe%t+l*h%Aas6(nzH z1UmRJj~Df@9qo8YSVhN@Z3H0_-oiyO;1LvhwuYQRH?K(p4#adqTA$0QslQO zg%ADE_8+9?l2QUdYMLpqfk$3MB6xcc>5Ll2?`=F|5|yFSgVfmCvc8*QCaI&R?fky~M&7TyiyJ z1lnp?2TypkesLQ$R+;2ER1a3*fhy#YkCXTV9!Y?Jp7aD{muWPRygBxu2sNAuOkf5* z@B<#M%?4WKp$|yjK@RRf0x3gMrJBl)lCg#cPRVb6`C-s95mAWWqEdc?m_rVBKmrjo zUIZKz&;b}gUN%6LA`nrp!q=P3gGUGu5*oxKDoZ+NBh%_*v)Ahd#d)OE6XBLQ7vN zV~N8gycHuI>1_m!ngBD5TF6lkKmbBK=y8vx_yY`k+*9^~>~$i*thK%o-?Ale1PMq0 z1s(7J4_JfuI0FqRgSfeX3LpRruoMhX58m2?O#uWna09VAd-r5wE+7A8j0}n`!;3$F~ z;|<~%jwg5mNPq-5fP+DRgN_&v@*s~TbF!d%xNzhHJ@5lP$OdaHzJK+P=!&5ggF`ocd(H;(T7<`fFjVu z`m4X~!Ht~s9+wdm-`JxEV1Tx900kII4%h%ZNQ6argryXPPxypIP=p9fz=cSg3b24z z0-XF{1f+Q+_IRl!dmj))1SER_8Q3Fd?6Kk)pCwp=5BLCUtiXv_riL4YXp1&Wz{_sn zhHl`?ZV-pR1kArghkD?%XNso7gptIQM;OTmNXv(Lq{ldP$a@qD`?4=B3?gZA2XdGb zo@fn)1Wnf%m(d))fpo(%tU}8yiF>rKpr8ji%&>`+O;O9kJ;a55$^~br7-_hY?fc08 zHF5{h2+l$rPJ|*!k~GPWS)ND$f;brpKf4EikboY0nN74w`un=B`ySd50-0eH2#A32 zOabPAkE2mabz91()Po#A4g_$|1c1-@jL$<#0wlnKD7er2jDr1?Mker2CZGZTJc0=T z4k5_813k;LEW0LXf-ATJQg{Vh@P%yv2XjCNkt?~QD80DShftfV!laRZ*cX5B2T0S0 z6NM4Pl*e~`$BBbXAdLe}gdb6K>1?4iyS%^vkpA0*1K5K>IGUqTgr$6h{iwGHc!B=w zzdcFu!MtxsKm4mhMEh}0xdf-T?zFbD%NKn7}X)oXxN zdf113K#G$q%n~h3K0_H2JyB@lkX+4GYDrNIdCbO?$99aS$5hP3j7-T~KZtaz%XCPR zlLvDl2SwXap%}Swxd(0yP2meoHMAUQUCoD7(#vVmbj_z=u*fLQg)Yj?kGzs9Ejlg@ zjp7{6;|#ws71K32NmV#gG{psb=m*!}hj54i2uOn2&_p;rwoly2)%v>s+1R55fPe*9 zfI*nciO7#hs01u{f#B$)-k6O&(YoG9&;*r$1#JQ@@B%Mz1zI?UW~hdCxCVNV)mcRf z5+#dSZO4hrhoC)76{UxHJj`O1$9<5;rBzH6g%P57OsI{K#f%YU9oliiLfh-Adw5Nu zSif>{5!WaNbllN}6xT8=i7osId=$euv9HNAQhJ2Udl(CKwc9MJO^me7Tlj^|;7u~*F}7zk8#9E5E&~_2X!H*eQ<>YNP?|vSowQXos=0*?4H{=%l#XU zxZI9zyn{A)fevs+kD8exFjXaR0xsZ!FbD%=I0j^}25W%TS>@gT-t}FdjS(5?hjt`h zp@q$&Ra)M~hu6Fu7ggG#)d%E-$DfVI#w=FHWXyNGUZ!Q%IkdeZwa11G3ODqJYmJB2 zkcY}7Qny_f(j*sfCDPS|TdsYPb?jcky4(DHohN{L(Px zjKpPN@N*bvn3Cm$6I_tPcxZwMz}(E$4P+Ct4sNYHJ(L{yfNj$hDSLt$$hsl0SpMt3 z31HAE@PbyLgEM2MCR9c7!52L246UZ&$5F5AOHei_y=>zF?#TUnQYjbtWHk0 z$(VUYOiWqeNCFvXf*?4BTIdCB*anxF<$tJ=e8?Q7easVuG$F3q;l({4W)0Th)f$mR zq{wAl?$s0>+NHdojjr%0Q}dX{S_x#xWLUwuxs;yH|1Q==^<+~UF4k~~g?PUy*E zD3o->Ab^ups0XThA$kY~g~jBJuE~xPlp}E6`dsDNMTS<5Razxc5)Im%En1vD(Gm^b zn?6w?mc-WH5_lbNC5udzHPAr z)>6z8PUHO2!EWGoNL;FLBhUC4T*$S@^#zsVhj^G(E|380G4KN~fH{^hAH@e~DG z+IH%ih7rfC>SR6IWvyzt?dEYRQm&TnEF52d7+ZCbt@aBE-ni4 zw(`5EYyaJ2jKqci9fm^$o-GAzf+pPm%m`D$zHh6jiiP%=2p)w~XwFD5nUWg{YLE>d zs~${r-Pl#t+lA%Nws77h?dZL2-~QR2<}-glOyZ5E=XLa>J!;?fZ4wva*hX~Lh+vk)AhzDZ$aj4n}bvbrx zE)MZ42X?tIZzTB^2QK5O{@hez%Z&tk03X6C-%BxPSQo=lVRHDLgU7#UYF)^+gR z?zZ-Ex2AaU4)&FAi!8rQeTMn-E`}#GU@jeK!xd~qj`k5zbEfduHcy4qh-j2PU!UNI zeW->nIEFvJ+25t`CI%uDN11rP^jwYNeE?c|Xy#|mWfa|ao`&(Tm+=!t-Wh*tr-t-{ zC-G{|@f$zP)`s}FH*OraTI_B6Y@TCoPSPK@N1ZIGaNhI&|$ zbtxH{*4cKn2jVrCpN0DW+aKyURItJ^nUfo*pAGBVLkc3^<+nQ46~}kuWn!v*`^NNP zrM_BR)*ME+e(lBn=C@vJe$0qh(e3APDxdOJk5RrSaz8VdVqk~uj$1b#eCK}hy`RIz zFXn1CZV!$8{CD{+$7_A|1!w>Wb?(-wTeohYL4@xPu3Omf-9m^GCr*q<(IUoo7By;= z_fDNUi1F&#!-ub*zkc=b+2dyqoVtTX=OTfo<6wrlInAMwW!v! zUDckoTlX)%zc~T_*WKDR@Y%I{12f*LlQHAEkRRWBT(WZIk|pa=t>?=n%g~kQ;maIV z=VgsBu3w{Ydc zg=-kNga#REkJ#`b#qbq5ZiM&{V?254?UiI5+N9?8@ruE}dGv8lo%!vO?ax2oeX>C% zm{x}gh8SR8B}f=zj0Fgmem#{%7e4+Bcwb#8@nh14_kq>VKPB};Rbp!GRiI&0ZKc>? zTJdL>Q!%6OJ=V=2~QkZD^olwk7u@lu=4KC6!ew zCyOl6Jr^DSE?HXl3pCsz#GQ9#Ml_K@;$5Usdh*0$k38(jIcJXWwI?4;?-l8ugfjN$ zA6iZ=8QE0^BB&QvTp4EAp(+X{VSp!{bQDi@Rd%F4m)7M^q5qhal2-SzRn($_9r#y) zfjP<*iaCuH<9;;GxM!XCwNp$?dgi$2owD}ynohA1x+;iP8hb3V$tru?a?NGwTy@h` zcU?%^S)1l}W`>t0dE}+n=A4>^7H*L^#>bXCA=N1=Ykk7%DvW`?3K)xx61do6ERuMt zs%asJSW0mDQ=32c+*7cH2xn?xh4}n4&%yeDn3FyJ{FBr@0~R{iqALDdYNGPWyOXRX zn~YEYy6WtslRQA_N{_jcz<(%jAxG6V@@Kc4s``Xht!+_~{p+t7)h0SCWNMb!wqXny6RYbMMt6 zqi>HG7+p!tQ*c}sViwpvr0L_&JpUlRjy)^WRWMwsBC4XkY~3rj+VReOa>=ohEKf1^ z{1g+dmYpmh&4ij-C`wNO{W|Qi1KsQ`v_w}O?$pKNi!;@pnJv_6rWfveU(3n$@m<$> zCyw%f6A$NpN)K=5f!e&WslzUaIovp_n&40We3(;F{|wg8K8+tml*9D=vk(0ANJ0<) z{pQCs7ruaDFTZEFmw zR)?TendpCcs~b`_%gsz3`Y;)5sz zLX@EhL&S|CMs0!eRRL!fE1s+a81m?mkD@oDU!^WKOTu1JGT6aE60(rGX;uii1VZZ^ zEf>WAPw>{15vj$=PB+I0}$Pp34b#Jg3JTwq`OvTwVY2VaR#XQ+6LD8VGThi&*61 z7f2fhw;~CV6<(wu!^7l_$mK##GIW#bfF6e$xJQze^IdL?%%I+e#3JIWa!ksXfh2Pe z_QfL{?dX6c!tq5cJfjL#NQNZj!GtI5LlQHPhc%yJgDNcJ1>taJIAD;BV%lI8;SkIB zo}w7JsjfgC1E3q>6-QF)P)0@i2Q+};l$Nb?qBRRvYtncU{_U-vWAKFYl{ z`tNOK5ekS{5dmp1fd()QM+Z7k1xYBQ1Ih@84RTS^Z6eAu=ya$BD zs#Hd;GH-;^TmTh2PU#JhbB$Blj}WLw<+k&k-PGBLMwAjKp|!f!eUe&@)+OjrN1wjv zCqN})SK*1ITk8M^D0@{r^_EL!?FB4L9?Cg)^$Adlz1jAzrx?mI)sLoHDo;Mtk7sm% z6_R)y!j=-T@osS2-dckH+ru7ij=o)8Sv+FV zo;ON0hb{i9bNMH+8RrZ@DY-6=b37ciMvIXnTx37{T}o84?sJq&1fow+m`X;9{hmEIOc3He)z*e*wf$KEST&6--?*Z#ib~q1t@No0H__m zm?OByEx^}Iu*2SbbXPd#k9}B-()QLdk4dP{AA>NiM|)nV%PVkDTVx%@fW|{N>Eu?k zdf|K(Tbpq>{_GYq{0fL;ZmW=>KQ&{0)aD-jplam9r&z~L>e<8^B4C^dSa_g=D({jXjtNxDqN^WZKP+c9nsla4Mq{Py=h{xKhj zz#^fvt*n~4kViOPp|X4g=_f)F3&+-|ua0|c+pnsgxL-`l$3Gq)xR`#pA^)dW_RDUW z-+a7lymZjhzmTG*`XYZ3SLpN;7rrnxda&NsxgPAP9@fyFs@dMyfyPTbkmIGBaNU>h zU7S;)5y-e-h~3TlQQlE_N*MtN`Y2zBRDlgVLq1f2Iuyn}9EMo5pitP^+hNZCq*9+P z-nZ#oeLt( zTI;b%Jg5UW6oUf20}OeR!-ZYLiO4`08#@Kz=HMLoE#9917w>%^4^^Dy$)QnTkUp?a zKd3`2R0GP?L$h5>TeqB0}>t1vBW;egVJ1Lj6eu) zt=*M5nqDY{C?3w^B*k<&OcSQ!>%2pEWr-BNA{9o%sR^LBOwAU8gEL^q*BuXE&7Rni zAq3?^Jh;ORA{Hgu+Rd$v^4S+MKBDnG;}F)Mtntk}&;xFX4;I1CQUGEe>RrJgMN;gR z`)T0%Ib#GOV=_)6&#^{;ki+Cr9#I(oohPOeyp70I^vzTx%qV)ED)wW~#Dme?&MQtK z2sy*oL0_j~p)J}XIN)M2I75;p&#v4Ed?6rw36@4s3;{7$4w|DJdZb11S(VjV`1RRI z_(QW%+rjt)ASzB)+ygqC13H+4KWxJ{@IyUp1K@ZVicpSOL}N0>Va0VDCGH-%txV(C zgDJoRQHY2<{@%?v2#t;0+w7ev>La}QqgE!%6At7+Dnq})gh$vSo3x%SzFyZkgQ-a* zC;g%WS>%kET^jD(&IKhKisVJ%B|1jp8wO=tEXBdpgJ7D2U=qVPn1eRZWH0mrJfK4_ ze8V@?!Zw)0IKYF2Y~TJ|1tW_8%SwBDnF0`3XC|XoDR@>PP=h4MI z=A$X<&2%;0R^Dcmup$WYpI260J~_iICS+MIBtt@jGk9U|@S+$_LnzK(_;0|KbXTdpaVak13G-eCVWFZ7z{RO13!qvCzz);6bw4}0eND> zc^1sBWlv!MC12KHXa2-Ssv~}!Sx&5sDzJm{?Zow5*;bUwh$LOkSXNb%;%w$jS>Yyz zLJ2^YUT=aBFZdfS^bV1^32_c!dN|}mD$twEkdi6jl0DF9o|;!t=l8*3&N1FyQkiv@ z<8|f)PHsasXu~(a0vY2iY;35w>T z0d5j|)m}w5nS4OhpLuB=S|@R_Av$g;9nN8Q+QmKm13zR#B~WRTLS}t_12( zn%sPTLwVXKI_wRufe)5K<96z(&e5f!nj}5|Lp-bu`QX|QJ*ZDUsM3w%n$D&v>cxo2 zsj&`+ZrUk9>YqXCX^HZwpBBR~l$tX*gLK9Wt+*)dEgXA5=R3^kB;Msv8Y47%WVi7r z_{B(7XoDXNsi>m=15EmZH+aK0RKk#Mf;Je;J+v!i-b0hlquZdXq@L?`0%(`6qtEHk zKahet9EGSXXez~1J?=%{Sk~Uj=7Ubxv2N^d$iqJErWEpmhX$Fy;i-BMr%04&JRB!- z9-Qi3O#>+zFmCH|!ijn?*I_}TpTSYA;$U?;Dt8Ly+7#BMX2W{=D@`s1I!uDWNTy?I zLwPzaJQ$2QK+l^>4BO@Cj@qajjuUlG&qvBbBm|rG)QwLPYy8QZ{Iw~C%I4uD;iGY^ z+~!6+d~9!)tjJb}zX7Mps;rwFC(EiOaDv^~&1?c1k3B$-gh-T&>0slfU!%(Ej;5Vw zcBfZ}!;pUeLpGp8HiRd6q65_WgE^Q3Op<3kz-vkt%%#Mj_c5NxSgz~(hkzDkqM5|i zdCF1TnPwgcbSa(utu33%CRTD@vCi$>%0rh3WEAFYF66Dh>7OqQLo_TTo796X>M7`? zWr|v>?6GK}5^8g@$D175pOIhW4xJ7@AeRbZ(V<09K&LvOWz{O%934`eH>)K$~)~L@aYL>c6KcE6RtjykY%;iY%#5$S<@0}P^ zDDf_#1|KW(a%jkoY%YMM{#jjYotlYOjV-F>_6`GfNGI3S%Hhr|jig6KCTb0n?-Y+8 zt-WeVR<5h;gH4P`;rN3*XoXE!W5tMwKF|*%U-A;862R&#Gmd1?k}CqI=KB2uIFLeF z7@iUBi?5b324SU}#_|`Z+!-G$2ZO8>K5xH?to|Jhn1G?*TFumG?{VTW!oA5Qxv*Pm zt9!Uf%ytzt8|Cyw$X@xCG%mrLDNKjZvKYT?$;Llu)GyLQ(SgoBKlH}G7@VHU` zar(V3`i#Om0EpY&3&(&Qy!|c)mtqCaW*MVmEz2qL4$UhvZ}ax@8^;wusfR|8aGTV_ z$p-F24#RP-B_I3o3(Jgp%rG=B7vu`)`l_Ef>YT}COyDTdP&7rQoMdg(2vlUUqD^2M zg`ZH0YtIJgDEma_#0XXaL#6C)qRbqG&hjf$=onip+(KGF%jqo-B;NMh^A3YQDGiCr zgF~+eiKgfsADkX*!A$#gfDYReUq01jY)sOpkm; zVbH@oWHN!MW@8kv(7JB=8Y2Sp8KqpYqI4Oac`^J&mzx?j+Y&W(Ej4a>ERd=H@dx*l zFKo6yy>Tu8XX1W~3AfNY0B*HT^e_~II`oP{5syR)Y9~2RuK;pcdvqbEo8uOv`R?|9 zAkb!-1ysQ2B{V zZU=ZfFW+WbGb0W*RT(!0AvXm*csn(?gwthy?1MUxLTywG$8a}adg_$Z}Lgd>SNG5D23MuT%?JkSPMsDd!0PfFYa zgdX8kX6)~dIGZ~*oR+vhf_J8M7ZsAMW_Na-FZ5NnNu1EQX+LBx3WI8gQu5IE3+ecM zj|*%IiE{Q81hr^Ke=T8ys|_16+O=w6+a(Tv+l0G^aU*wgMRS#-MLSpl!*Dr*lreP= zwTQR+c1IVS$N7l^83?KPi*xpiTiwfA@5x$?J;;`g+c+M_H=>41eZ$NpEmWc_T#NFe zUlqBLNBe3JxmnLD&U#g&Dml1KGl2*AZMWE`qq>7*`IdM3k+c~3@Pvqv|3WcvcVM)1 zhA_6yta^yIIZ@ABcgMOa$~k6(u#0~ep7R2EN3Ru*M6a)hI^^P?7xTe^VY0IakJopP zPy8OUB}E>(tfWRskOpk`_gogEem`KHGb%pQ66+`>cDHo$H^#YX%P8pB>DM*A{Kuw|@Z#7VI{k+QI}4Cmy``Z(+xX z4awCC-a>?eG2vE>?&5HOPfk{>da}esKvk~-KvzX-LL1#mL2ak zuUn;9`=(9XbuK-;Vd?8l3zi;S{i6X4P{08pE6_B`E*mUC$vD$&FwsKm%)tgBOzgA; z@#*IsEfmtMAb}9VC!&jVyRAftN=$Jf;#h3a#TQ}p|LCQdkgLfi<#=kYCmosd<(Kf{ zLFziDwBv57VTKU~ns>&tXP)!eYcjpD%sR_Iw1)gEKD^?(>q__DijTlC$t?50Gcl~p zGQ|$tthB(~d<(P)DV*?4#m*dPlwu;{47S2>V+cjuEK>1A6A9HP#zh%z)KQS|G441U zadd9S9eK&cr(tYzW}P5GjprSwkVJC3s!FvAzOkO1($(~;w9>uz*6T7XF6+aUKEA;8 zuh;(40v0V{eI3@!GA~P0S;3N}v%$I4y6>LSDs(o$3(uU4oJbnd3^x#E+fAbpRTOl@ ze8^oWU37VS)ZKUC{cXlcW4ftQp_q#fD13zp|Ies+)>#J}n|>+vDN>^nW|;7lYPI1g z(R($@ykvb(9{IMEOD?eP<29`Q;I~3m(Qtbpn0| zoZE51WtW}CE|nN0p;1TewcC~$N?GBu{|70G+q}pjZRaKyYm9=DLRmC&j@hGOeRWZ*>CH$L~dIdM`osfHC z0-u>4lb`_MYBYWsjQV02J_g}~A1kv=KMKTn(2 z!W0V5dVpEs3sF{>9tv_mUXs=h{}Xe>*W_c70~+K(l6b8G_0TQ(L*C9@sUf^ z+@C=Ct$RQTD7NoF2tA~t+%)80g{?;Vca#XNf1g>axt#~&>!8>!+snDF$aO9VC*4I zeBfd=TFJ*a?eR_}x`v4#nxAYy2Sv}>rf3;jw7!imIXMn?uM%pDi zE4W4^6@xlK8YUczd6uONsYzABqu%y-LKLBgXtk9y~!AJMiPZ^ zQ)KdtXwG+fvmZvxhdNTx|BoZ`L#S#wB4|G3#DX|+a~~QS{+>!og$yL1Rn=lEyJ)X_ z>8N$HOyC3;3XTUBV<S_Bo(0VCns|TGLLVeLoXowXmoJynEs4~%sUPZ3(!Ac$F8b`QB>?m|q5A*n%T#^zN zq#})Gv7q~0={j>TfrA!WXsAAuQYNKuIV|9gDcQ)rgS_gXojTkRuyt&Wyj){aTk#>g zqGo8EfSM;~=9k&l|9}=DJzEGV2W1gdqL#o)!>Si`@y2%KZ&pi9StAkoB7wlC8 z+BU4U{e^^MS1PhCtb^96<8?rc(T*z9D;y=}i1%9JzOA^#CU!1i`3&ekx0qKmreQc| zg_QAA~9 z-zV=(sr2-jY(mLjpLKTBur_#%l;Oo28T3-NMqq4zF9g>B|JAMuibBm`j z02(B{1GKOm4y1>gMe0I6OTYO6s=rnDFMoA5;Dc|SI6Nv~EFI3^VFYhGzK~#7GtMwN zB6Gta{}(Y^(4*`ScX+OGFM0DoN@us!m&V{sr}8oc_`vX;#(Nj)KaO|`TfWyGbjfT= zUwS8_5+3OU+9pBbp$cwtGILJXH)s9b*{jzxv4W3-f?6u<3GC%ioY7FSO3+8Y z&Ui5x@8;{++3jrOJ)NsPXN}G+VkcMeF*!~poZ7TX`PlZ%u`MP@3YGdq#YZeEJM&XV zYn<~I>_{s=IDX(_9hglbzd!H!t25QJ{uKyQM_pRf&%Y(g(CVzY+VIv_5El!}rR>0F zD1HIs&`KD<<6?~Bu|z1`IJ1j-J3}>Vj~p z_=o;i)L;A!ZJ|qcIu_Ww|wHEH6 z7OeHW3gT`DRU*ho(u|FMXGt(@3o|UkG%NwFBN%=0_sAl$C@=$iZ%Q(%nDk0{|G35- z>d=91=L6rNxb*Iw?7?Q25}Td!3wM(2!7xPct8hSzy($S1y0}q;PC`} z;iVRdlBDGY9q%u=3525S`2H-=V$d-90X&W<)H+eK;N*$&%Lk$C>7uS5QZXVyqB&k^ ztMo7IkVI^9hoPRL7;-@s`tKGE#t(6iEr4+gKdh}3aQ9Nur z>yV+)3*O>Eu{JTWj7lqxs2E1!6iDF|46z)8KnK)u9an$_PT&MMU@AG_0IE^}4xj)6 z-~>*g1FtJuyu<}ZY_R^Z#r%=Q(!vJG=^b*=`Ht%Sc+h+{CpLs|AVM*;|MW>B^^zlk zf%RI;;e3g~h$1_7Nfm@4qJT|!-cZ9R-s~ zmZH%PC9T<@P0-{4$$E+@U7!Y1ASyZF1Qb94H~=fLvMS*b9t$8ha}xjnKmj7*9g1j7 z{%AN^NROz?x!$HNE{~gfC>7ixrJ9A2976{gWI72#ItwI*q;or&ioeuiFC{VZtACo2Dthe3>4C%-ulR}v4EZ)pQ_hfQ2A1g@eAxP+u z4t3HU;H|EJ54lP%J~S!%tRNn1^ENG1H+3@r1VAeVAOH$L007_s|9$`(_5l(rv5)#_ z&rmD|Nos|bGo1V|reugZt+P6>vqrP?Mz@oZL`f8n5Ij+lQ^u3w^hJy|7^6W&VNgw|L zFOV!1Fejc62Ro@#O|z@m8@^3wLn=mm;!=k>r$O(LmF@sFCsV$fUL+B{gu4|2(RrszgqWC>}UqPXPc= z1r-4N6i_|XDp{Zgejo@&Ar=f!VTwT={LDDfl~L0*xu)rvwhf%P=^oI<7x;uS4unQq z1~O_iUkzhAr85ZYr;>}rNWNoVm7drg6WE%qAgBz>_L!_;DV5k6J2 z*o1_*woq8LQ70p90!ij9+Aid%&3Hn{n7*Q?zT%x~Kr8Ds9#g;tfFKf5ft?sADO8Ok zAhI9!;pU(r<@{pB9(7Syv^4RGxfo|IhN>UjArleGWTQ+9gI7TM^6f(f$1R7m8uN*jwn|F86J>o!=Cg1sIMmwar;km-$@ zku1278LLEtkP!{(4lJP6h`@mqQUMsiLmedToe*yy7zv0t4Kg|cAKKyWT*zq25^43! z+Df)v6~`X+Ar_u;Vrw@RzD3(b^_-a$bb%~&}snLG&j*5f7bEDdYrFrb7r-f16> zs6_o$JGYb5u!50DGsXBS&)D^J?drrHv1#YR`TRj0d_i9A^+t76Q(t#>fii2|ufL2c zcTcY`xyoRjP+?VdVR4~cp+RkZ?G_7$R6Ip)|D9Jzpm#t;cy6ipgs(#^-a&S(F>z<| zO;uLT$T!;hf-N}hrt)=jCqo{9);jO#Tmy}Cm-eInrsW*b1u4lNPT^v(1xKxxfHQSX z5+n#kuizYb>!5)acvos(Yl20P8E?#g4 z6$^kD!cyIGlM%#1x`}3Th)y!cv_=`$vKWjG_LN;OYrvxzd;uh5=O=PYJ17?p0d$t7 zw{A=Lgy%R|l?NP(LHF#lK8N{(TuyQ8?vF_he3xP`yzo6JS}892nbk0v3%Mpk7rH=K znf*u^Wv*%KVJ_^!AM9Zk;vtFhkbSlGQhliC&Y4;qBs12TollkZko1%lCbq&@7(nvZ z5YuhzmX6mHdP~@OY1t%k)jGt(9fTn%CbluTaG|j}s{O3ThN3+>4T;YUgAb4N zjyM-1yOcs7(y1SWK^QRCQsXIW|I6o`$*1TB*rw?RcXOJ++F5MD4xS%Qc2ap3$C#*- zSIw%iK#JFtGPNoz`C^UfwYH- z4PzJsn>A#PF)zdoD{@*48giVaueA&scDi>3yLEiz59w8` z%x;3zEV@hOQ@V7GAA6~<8=!4@dQq}mL1hiCFmT5iH@Nha^=MilIa;wVY+zOx|Q5@WM0rnz*Z~org4*id3*6F18GC z8^`#St#F^MJ5-ihgs)q&|8@CFdvP70;k(`VN`W~TCy+i-5}4Eb*uFH5_*k@;G5F#; zGmQx__!}(4l1uyn9A<%!@H#qu2q+UWawbHUqnUG zd{x7eC}1i8;4G&B`kEt(~#V%)}f$$q&ywY z6%i^IkOU^CW41mr)Guf|C@LzdQOo;$%N@IfC3{W%*_YL!9+r$r=sd;KyjC@gaOHs> zsPx2hJQtb@ zDOP>FmU@r2 zA}GZ3-r@e<{{f!g>0aOcof)9P-f1Bix|1M493N zD${pj(`&8CZ4J~H2pV<)q70@xI&v6-jMasV>gZMDp)*VwHw z7>OM+h5Z-Xs^d_6=JAtP$6ZKZzwH=g-20r}-#r@io!;%9?SDZTfVaPUp{2v}g;?}@SjN&F zf0Z&_(i#M<0#f=s_a=hp< zjR9)TO|D5F z>oWTb_^;c+Ztofn#;j|wW{Ar=wMXw>WPA7K+0#c37r)E(px*NgHT2Waq)VHQdK&f9 z(WLW1)%P#9?Af$y+rEuEx9;7%d;9(kT=zO$zjFQZW!(7M<;VI< zq4tCgi-B`jaU#fx89#Q^ND<_Ck00yBgQ(Lz(4;eK8l}mxe7u5iejn7Vu~#O zLQ9H#)iqXNfx%T*hBYFFSc!K*LklhO(DRr*^WZbjJ@#xiOFjBLr6fL|fo9rhL^^fa zYN?Sn8f&dR6X5IoG;Y9>D+YFEjOo}YwZFJIJ@}5kai9^#85Hn zgjZ2U>4|inc!!>6-bMD*vsHgU#gr6%FttP=Ml>ab>7-266QE6^4mhfSL=n}JMO3vD zAvoYLQw&+bxasC{ALb=%Va~+(%bXypsNyflv0lr6_zs5|JEf} zhCVv$OEvh=GZd1P9chn0#6YvzXHZIs8kVeSnXYK6ZRr$|UgG20YiHhzZ@&8Go2Hs= zt_f$r)D0uuT5~!B4nf-WxlnfyrT30{6zL~1p%yP{UP-^alTxUuj#O!*EVc7-f%u&q zpvNZ5tKd}cK!}xAaKQ+pS}9ihYq2`7*rSee1&QKc%ao|IT-Az2bC59JoGf1`=BO-Q zMkjmLU1#M3*{PIK){i^0Y%L{gQ+oN-l~`tZHoWeh_9Q<0z72QWa?3W{n*IvRoSg*M zX>i}Y(&UD|1$e)xgC|(>p7Z4DTx%uh!Bp@^048 zG8!x6(MQ`n^;j`B_KUobRc549_sBB}Jo$hcHoEC{nReOlqOW#puC+aP{PNEaTs*`9 ztXy(&`aQ68dlUS(<_yCidcuV>e9;ia{V5>|0gvPyq$tRl=VFwT4>*Kj4~|8SQ{n+h zN-PqfcYIDBBRrJJa*`l=c&;7cXiznx5sknk?Ps|M&*Mq zgCT{6CZe?j2^X^akPY3E3l`CWm%orj6l->t7Y3smcZmiwov9323=4TglZ7jo@e5qc zA{Mg<1`}aeMpppi7-8fcErJL%DXJ4_%B$JWN_534@=A#QXY2@>DsgFT^McpBTvM;l2y&tnjaxk2lt@Ib|0SbyVq_#GSunjd$A7=T z6G3`~$pjW-A>NTlJY3o!inPN$p-d$OQyG(Y3_~4Akst^+my}b%qaKt}R6A~BD0l>j zA`+sIGsrSEVcKk}E282#V`R)S#;A^RG_X=z<~WN7;w3Y&_GcC=)==$kUS7LPV^IlOSBBkd$fgAD_L&e(+k7l_-1L}Vf` zjVU}N2V7C&R30nU3Fll=5uec1r8HGk%QAA*j6^6J|4$7jbKKO+E&j@jfh{95UZ{*0 z$|Z(>i3TlVn4>6`Xs=sEQ50LT3NKvY3SKZKjPx*xY-D2_r{JYsqj^qQ2-ui*MP@#O zWX!(8D42J}qB~!dPGQ2Wjn%W%~Zg43lo_Zuq zC6Mc&O*co>{gh3G;i$$s?gEV1(ZV>?Q`+_7Lg5xk)t*57ZV#DxB3U3NNcfzhELzbD zQd~g_P{2V9UJ!vmD_{T$h`}m?7>iisw;R}~{{WoV2k&1WB5>%gIY_~RhN6x;h#idCoySVh3(8_q& z#Ey+TY9%n(@-I5R`X96T7C>hRgBLPLEV}YV~GqH{rI(D;)+j94L_`x8t|oelnumQ<8WHD%|0bh*2;n z539IJ7`UJWC2rwvCcpp&ipPR6N)AO%1NL|k7PZWIUQc7**$Z9ZGY)JJ0To0%;wmV; z=u0p0i4S1)0cbq{24I6LXq*Ook9?@36tt!cmH-6xTc`imRL}K7Z_Tc! zXkDURufJ%&&g1;&E&o1d?T`1C|9{ZtT5|#o15{)x<#sD2C@v)tA`}ns&}4NdTJF{X+9T3%Cu=$MSWLgXFNxP z2^J%<@C#Q!3PT4Oov}4a0!NXcWd@}+x8{EA^N1=IFOQLanH3enW`CJTKQ#6?tu<0+ zM<+XW5Td9zkVJ~VkPy~3|6~obK!LJ%z{P;PC4rI?cpw1|zF=Ikm_bG{4@2b+qhL+7 zw@ZpP36xNbwh#-ifN3&lXES$vGdEyeKm}9)1vO9uC-8%TrUEDsdfX^zs#gF55RT(G zaVYQtHP8c4Kn0}0j;Lk|ssMtfFaR+C1@hK=tx#}xhK2ZeXRaV;D6$LyNek7`1*-rH z%CHKp5MIq-OUz_^3Dye51c(R*jg&@%dZ>rUXOWcF3OE1_SYvdIbvEy?5Z$LPxaNrH zvst>i>^B-(hl!d(2x*F)_{bv zl-ss#y;XO$I1%a~{|uZ|fgKSszf}(zkqSZb1yO_xg`*3Tpa+mZ3AwnUoHL097Su3CzNvcJ5uLYFT`IBX* z9lP)gfZ`BDrdv=cQ?lrkv-o7=1`g{%5#_cY^)L*tuonB|3$=g^+R$izFbb3qB(8v; z1J--48Jqf9|B1rPwQXO|HW131tFQox||)di+N3Z|f#vcOBZfNabGRlNcX z!w?J{>I*oa05|{z^o3`5hE*!pkuTr{W+8b~bWO4l19uh!^9Eo=1Q>eQ1HnK-%s`=R z*`L+~r2goS{pkZ%KqQV;B&%T$qo5A`AZq|}l0_nkE9ribsHAtaYfiD8TdFTN89+Iy zf4$Ow14yRTIe=wn5C`EViL*e?uoVme9#s*Zv6y6Z>YWmJ5yc=3=Gj3;u^-Ox3X@h4 zwa^QjfDMhd3%d{ttq_buI;64br~>w=i3y~ya8}Vk3OE1+R?r0zY6_qFsbM%*vjCQ| z6Fam*|1+=Cp{vSL!4NCOa0Reej|EwxcXpqqunI8{015yFDz}WXzzkks1F~=h5ulki z2sAweV6MOe)xc$s`J<2OsIlOWjLN8#3Zw!S3tdnHjD@63(JlRuX#8-S2;!1gdahP_ zl8$&bNAej*!lm(gCiVaf&-okzm^UHClch+VK}L$xVGu~krf!-Lf>NhX37#-zr{cLD z>VOLrq#zVw59=@rx1dCXYN(oEsGDG0{YZPX7o;KU3e-xnBWtpEc4s6@bJdUws{oIt zU~h~mN3$SDVOFp8Dh#jns;$bi3PB8Q7b~%F00}yxT~MM%8%F0O1p@#82+#$K8hi=Y z|7RlF11f+6uHXYPx(cg+tJP{u#)FTopaRZN4Gn^4GZ(3mDyh~)tpjGQC~K{;unH^? z4JWx2P2mnf;H~ER80wm?e;bLO(JhZLlk#e~zF`k^qFVb0K+rad{aT$OWhZHR5Z1PK zf3i~0u#^jnu$$|YoC}q`kBtKyu;rv=&Bq_3V|?+^~S`k2>x|E<02 zziZ38iTS^-@CvO^1Ec_@sKT3|k`Go;4C<1=O8T39d#)1fw^7I3lgc~;<6qp-Vci=WiGkNUW~cxJNu$i(o~12v!y=BhRMAPl3R|1}g$r72mQ z6wJziOFl=Ub@Px99Zbu*fe$$wrUK+q&E{;Tc%}g;QfaEf+^IkbxPYG9l(C4+vIx2r z5iwO^4-3J=R>@nQBoEH;sk4yHMtsDz0FRoyk0naQQyjOOtdAp$yJve=K=P_+JPcz@ z3>zv8Y5cR&ThH}e3}dXuJIlr^6%3{@w010rxrzg=;024!qYN6CF%WybXL&Q&1s6A> zRKTEgytR0S173i;fo27EEMWZ`q?R1T;w;XU`Ln1 zr3zLlr%Lt?@Zi-DSPBn11*HJ9sgMe>pmE_03sx-7Y)#T{t&g#Q$*CDcc>xUhjK+CQ z#(K@y@SM+oy;AtR#(*6RxDc5*P=y5vXq^WI2bYj9z@QO;pYi1dUa+b!e!{5EkXMV7E8s6_Q z3|BeT5a`wRKnz`=1yi5}8qM0QfQ5$H3L2NzJO0`-o{+Qvp#@pMLG%^R+t+)|=y<)x zkN($a?C3wM!@&>)Au6I!unJPRdNv@UHqdY#i310B{{;s(1zlj-m95FHunJOemk4Ud zQs8F^+67G9->==tHV){o{l1qy;*k&oEFcR?9damcK@Cu*W=Ovof{0(1tmezlc(V4!r!`C_n&hP@h=m!qz5ueZ7prt1tyJ5CH?A;-d!zc&^b~yQrkS>o+gXt9{v) z&AvFm0aV~vOCj_Ck`IxP3Qi&9%8trOy7cJU|Ljp>8BmW8(@yPNT8fJsfM+Tl9qR4e zUfoMQifO7iNa+xR!`+#C?hTUeYrpPR&497s4uOZm;7xb?LFlu<;{)#nn$6=}d)Wm% zzZw_#IzR9{9s@mK;awmJmKqGvpy&_3=#wt#c`f;Qy$zGUQow)$Do_J`R_a|a1%DQ3 z8{P^~aB-o%gI0J2c08G zxpJk;sw+INcAA8xf>jCF+!FE23Towpv9>AX&5m z#fmjZRv<&S6x*sjSTzz96ex1plgGEOJbCp1+spSuojt^S5%;Z^*fC;!kR?x!OnI`s z%9ZCO-fVC4y?>!ak0xE(^l8+oRj+2<+VyMLp^N<*Mq63!U%7SH<~@uT@883G3%@N~ zIBny-jU!Lq+!-`y#iB=tR;+q4|8?=+z0=-q`*-cz!-FUPT|9U6+SQ|%H>}t@dE(*0 zYX>i0yLj5=Rg=|a;6t;lvg)9Nycm!bvsSTaA_f`i;wT&ZgQAL6Wch^|aAay}Lt;4e zkfjb!l1V0FMuaIQVuFd}032+9!lwsgyvnCmpilsS0b+o{2Pk;r@uMqzh(UoV4ubKg zsvZ=`6eJsDh^>Swl2WdT1O$tyRi>aK1`bAfM=>z%i3hQMP)TJmzXI#)F*YBIEVDM_ zbgVNv5!+0k*z(kKPd@wf)3n)``%SmqXfyP<<(gv-(c~6ov^n9Pn@+mwo`YtX?8J-5 zo%G7<^gK|*Q*S*|;R8pQ|8?w1Z@zZ$%MU(zXz>p$QXG1+Km%=k#i|6$GAKb{e^O9^ z2wqU3qg7s^g(PrJJh3GbNeuC&mzi>$SroU%#+4K(m4Dxly&fgaZR3r)r3!3P>1#^kH9!PbTIL5$z{}P3TcjAXn?4HCLL*Aa{?->*MdPW^f#zqSjcy-3_}xDmY4v;ohgAFUdpbXP)RAOY(qZi-Hm1l# zA`-S^%$VvCJmz^UjKymnV#+v1=!Nlj_h5_})nvPRfUJ6Rq+=aZLk{FP;}?3Y&7fFj zobGk+Q8FXn__jAGN$rd}>M&2x;1@JU#;;VbN}AE&Hmdn>XMfz0$2ue;2_FK{YVgWc zDF>(|Z-tF5PMB*rgy~8`B zijOQ-A&G(23v6GzT;>wk!e-8>S4~_6EttU!lw?q^XeeQDJc3F8;Q@I_aBF^gHm z!W3g2#T7A+PjO*T76{7Hxs?=F`N>{^XwJ8~&QI7$mUo{G<7Xo}P~RypF#W)2 z|7%?vGIG>LkIvxDp^zg;M-9WH;RBx`KZ+db|*rDMn!mRm=hxz_1QG z+F=iR=mQ@k&PP93`wx5UqaXOl2R`Bf4qv1y9%{;`s`7yf9_UUmxO1Lozc`QE1qR3j z9rEoS8a(I$d9(#(vS)%F@q3UtPd!e+T@`R00?(ge6K`F*jhsChkF2kb)Ihz03uhLa`&M zMyup8j}Y%e*SgNfKJ=mDd;~im`e-qW|B(;O*mE7gfJW;&+q!(XP8}y8hl}H}(A-Is z$lKnrkBNu8&$O}I;|@%>zulKAr(4~pQ3rBT2GTwL5mGQCU!xG^+hO=3QqoBzbcj0) zXRO)H0}qv^+;`kf#iJOwpd>tW`f%=Ws*_{^bj96DSj2@F)ZdatD`+tb|5uFlDyO>w ztEJ!r9c~=FZfz?I>FQs&_LsnfJre3*r182!Seac|W)NCESXeLCJ>Xb}cZ6Nyef*;z zA{H?}n2wL9LmeOdfI8Lrkq@hn7#~Z=M~1$XpDKcBOguOR^Q!pc9RpcSX=nS|5!#uB z3KYm{hjQA5{AA+!W8HgSw>rQF94rT3IAC^}nEy`F-vT$KJFCtx1Ws_{5{;_SQfjhEc!=`<^h7<{?W*F5G`xw*>gD%aAdKIYQ& zh)`G!^s&Z*m=tUWJ?J5973;bmDqenxkFF1Y=!5B0m%2WjUUjUq|JdsK=!ZYDZVzG{ z1~4=33qHQ|4t${E2UWZWJQ#C#`0u#f@gK4p9V-92$6qkl_89V{%y$5MEx!Xe0;H|l z`h}KhncUJX-U_pM+aBBiIFcYPOK}Epa0X#;hIeoWMuNOHlf2`qyhn|?{L zV=*{1Kj?b4hLI>8CPW7PeZ~Wbio-6 zicvGd@IsxY_(1^kL0$a89)v3#?8P3exgT^2s1P-q8?07?As=W)lta10qJ>~khjx$$ zdcX&ISiXNyzFy-sHUzd`1H*nGL#$)N?2|gGOG7inhkH;%sw=iPJV&j|vu6{Gim?YE zn1vqmr~K>3KNK?2BE*2~N4i@(y2F!1Oh`KNJK8D^1B}20oVQ9GqzAk=l`$y`l#~nf zx9CuZPvjJke1~=LK$3(!g~J6-36IW;IEQlwd1!}L|A<8#tVNof$ysCyTI301#629; z$zCkRpUlB%ibY!NiNR8)R&z$Bl!8bYt62~UXs9)7R6a2@v2wh+ez>|8>%Q(wL+K+n zrW3JpB(|%gJ~kvVHB3vjOg6P_%Ms%X{+TiUX()S8h4mAY#>kzv^G84Q9VLS(z#J%v zDn!1FGKD-$>S2chEWq31joX;5Mr_EzGr-&;Bzk+qJfgsjB(80E4o+DIcNj^~+(7mL z#gcThP1z20c&<&M4~T1r&4UM*Y=>XqiJOE9oyDVotLjJ&|jw7?9(lnn$;QvF1c997a}(Sc(hyMfWyw2#fxscJ9}CsqZyk~AI7u5&b&ZjU?~$dQPBL%P#nn=eLRre z4uSL7cL0Z2FprfqLD__dDwPFX|9#n8?GbB|*%YeT6dFz*a6%whLLZ0(V;za2>x*mb zHP#BYFC^NdyViTqho!xTdsw=qQ&Y7RF}7qn5L3fq`_{Fr40?Es&JZIynTK10va#h) zEd;x>OC%7+}CIa2t8a# zsnCVRP{WHzc)J--%}5Z%nPFh5QO#Hs4NX*Kv(jv-742Nhdxy+3!59@;cpwLstwvg~ zRhgY8*KOU_Z3>#b*_oXtR=V9>yn{@Kpy6DA+c?h6ft$+9{(RrF#oPZhNP!$gBg4PFRTHsANWwi})EHQuSzv|zjh2zjha|wq zR9K0uV39JU30z>3cn)y5vVa@a6D3(v4PnjYTon~r$a4qvPzPUt2G!(_4s0opwO!nW zUDrK1rKAEM(BWoW(jIm~AJBpen+0G32M-&uiv3YN%{LOe_1nGFU}4_1d0^~BK>%~Gvo6h7fi zPSF&;B+Ju|bpXNd=z?6OCYxoY9>4*3f`TP|QjarO$a-VU=*}cg+Au6bDNakN-Q_i9 z%WjR6;Gs)2S(7ZL(=v`@bxmewj!QU>OEFevFE(R);3r?$!#B25JDuZgCcgxo-z+A~ zyYsBU{HH%YXVGYnLFP9C{IUsUz;{+yMP6jaeZ-sD;LeQX5Tz|j4$TnmSdI1P&m74T zCg{-|IMCD%bqE|7<_^(xGgGhvA7*77*cKd6%38q%paqQM>$PS*+U^X)aa2#jI8$Gi zVzx}nV78})|M}X-DA$IuPnkAXdqiVsHe)c(X`CKooCZ6dzG-Kkv7NdPG8Pji#OC^> z%3LU`xZ4 zPU)>(>6KK9@Ycz{wfb&R7)^34b z>rd2fw)W>xjO)$aj;;zxkzCR5a2T!>OK9aj;#JEivsPe!6E>C4Znf;opoi}5UNAXk zc75;%Z`;)VV)+5%6daW?PjFWm^VBBoG#BkKpD{NP6M1lfEpl7W26GRW_L@eK7X>X_IG6b_=pZhzkH5YFU`#oQqu$qvkpb%2KF zI#rTwGj({{vK+Cjo4V&6u~xrU%GPf$jZZcS@HDpV+&=IG7xPz{pSC^o6f_$885N># z^PDzzT?b>kZEA|yzwHQ7Veo|?aDf1EK#sraT52`Pa}5V=K9{J$`17{~(EY2|;U@G& zRq+)++zE|07oSu|zf8nilnR_~jU0wuux<|Q=Mmm<%-#1)9&%2}>%4Y{QHbHWcC)E# z40gl}s%!P-p_38Yj3{Fsu~q5C@bWEJW-^ZEo?dg))}PWY-G}S-kf*7c0=uLc_LB!= zWdAqtH;427wA*!1hbzN{Q$dKE&v6~sbg}2;kSu6-kkWc!Bu{s{t)w3S*Psj!t@&_#k$ZC-Yw?cAPDbxe_k~#46pxKz8UMzj z^23<9Pm^QTcA!r7GCw$xe>0Q^!Ay_&>t2WZNe{o5sYjw8qe0P9AIZS?Saz-UF;-1z z5C&X;v{SHxAlQ6>IHk&$I(P2k)w73>-@AA6AmUjvz@sT=`KY#+NVW$<$s#{t#85fd?X( zpn^D+rBqVIEJYPo68>_PSXpTW)m9sZRTWrYb!gU6+Z1h4l2dOgO^}78n#Y5n-QrQdKGzwZQ&K7AVshEG8*fNK z=nRBTRRs-I(y0;|a>Sul3j2Ggjs(1A@otF|G6a7O9;`lpsA;#nrcuDIyfO# z6EanyR#Sl~A&0ki=wYrGnt0Yx&X`!1FKNwHP>U=YE2FYA%9WR4I1(1mK=Igh7hiF$ z`5Bv{rP*e;%FU*xxZ{c|=UK%NGmJ38Z1@X^?z$V+FU7zc3n}2FNgQFV8Rz7rtYKzR zYje#>-6>Y!d0lp@bf*ra;sx#AEbAqfY#ngnnMCgpHQe{}7hD{ZND_6SiI{zkGzV@0HRNt}aj*2eU z_TpPBTAlS^J{D$Uw9^50WscZlJDiiTNoi)3-&P4;VXnDNu9R`d$*wTJ2;&RhzVQ7E z-+BY?x8T0u;`er{L;~ECtNr`tb8&(LjWD>>c`(A*jdBVq?0(njNu!4L+(jo*Ec$Tr zaBzxAi;Dd3q#?(r(dV7I)Zd{k;SOo3HuK)Q?>DJql+Lb3RV$dhSe1N+M(0Wuh#htX ztTWsA3Jrt}T0d--a=GE=2+W$?_d{MbbU@$wHLj}Wz(Yb`+ zBOxMbQ)?P0yUxU;beGBqo8(~y7r5g*5u72&EY*>h#HVGUQW=0ilaSv5F^Dr$N2^|y zysXg5XI7Eb(3s~Hq&<%*OEU^Mm=ZbZ`JxzEvP<{qLKnLj>uN8W%NS?0rW!5g6ySJ= z*sN78GPArFa2L@x4? zbvh&}P(cbH1i@n#gUtlNVYpO~A`*D|0TA@SC+-*oJP4_W2tgOY5q@kr$x$K2+VKw0 zFex&SdIvN%CPQ!0u!ga_l!gZSfHW4ZAcYlx01bIK ztSsQz#xE#GQalCW2ay;BDpD~JbdClh_ISy*#d6GKQ;o;Qysp>uHwEoOm+ zFFc4FFM6?9SljDc$k^8}eo-*h!pksl5&x&gT+5CDedk@^5>UuM7LU*BCu8>Mz8W1T zm71NS{p@MWxTxY4mVCu6CMsG+5>Ri$2!?MWSB+{!BO29+95Y4{iy%Zo52Mh-4{$q* zRQQ4ze|iTFbr-SMl#n>vYDg?CMZ%u8XD_$`N1vl?K;(|xa^F0 zXE@c-!EPh?C{%QDbFOs_!>jV0uT8+}stKXBiDtDGTFu%-sL<-0ZUu{o&gG?YvPBrs zklJk;++cWS4W1BgC;8w44OM{0v0!|oaqKwQ#DbVgcN|QEU-Y9?3T8@rIn(_#8@F{F za-^-0MJryxj2kl}7|c*cFl6E5R{xk{6enu7xA?={j_yE?l4@5@x}?nuI9 zVUN1Zn>pDHZ^fW5p}QK71CM2_SdmpW8x1B`^*6v8dSbh(vX-M<8bVXF-n`Q3UYreRWF{^b3Gk&pS zSp>PrK7axaY=DCp)F1}ZR>2EmpaK=3Km`$qzyWGdjGeObsZ&1Nb45e$DFqTe5QI+T zCU*)klM)D;>yvN`f)G^%A^#!K$}XGZkpf>-#HoN%5@>oD)jS)CG!r~mF&bX9bdggx zwuwifE8fgQOS5Q8DXTO3Yb$P6^U=mrVq23YMY(GF(&enHr$7DRc(Suaq4wT7{o0~; zsG=BI11uPQ^gUX~TA%Oa@U@&(S)uE3YyJ9TwDQG9bF9>V2=s+1fGh(*u zhuXhYk$c2cTTUfTlHg&>6qa`+Coz=5A9^lz`K{rtmH3}-Zt>6mP9D<~lQV)rytVF^ z<3O|KSu4$<3suj02mhXHS~%Bom*YP7xS#oL-Z7nG^&I9B{&~=W{=J{y$Xef{(!U1A zn(0QaXp^hcC`R#v-jXujrqF@3BcN^XfBgXwP{6hyFm?nCApK+y0Q&*pejSuXeFAF| z^V7X&SxQhH>WalEtndRK@Bp5S!ayw8I}{3i99NqZggv-`DqvS?$OA5LfWtt_l4utS zfktLTmvp(;ocIm9jKx}{MHd;%v2dU}fL;pPj64`cSW#2Q`4AK*q5CO7F^q;mn2l^amuhU1 zwt$g3@Qo^v6cF%$4&r zbRZ$|4ZAp;mK33FgpEU}U@NMMJ+z>gDB9|6NLjVsHi_I4A&u*uoQSAgIaQH@K@Bu` znh>VqG0ufsM1ni9lM)VH6G9_pmCJNlPs0rmBAvo0L;}L#i4|bSHfG}~kb){SnUm>; z9%h6p9Y-~sKme#;9M)kx0)RV`9}2_(4tyal%mQo(Tym8VAHq#^41>XJAs6mlDmWQM zOci87BL8yD5KpN?4J-x;W!Grb!wKZuJ1idLdCQzl5IKm|-EarqjNop3T5h=9vGB!W z$b&1oq^aP8n3TmZ2+vvJmo35y>$!?pAkVvelTUsHIql%=g_W0pLl#L5=iL=bGUZ(z zBktvfwD^Leyj)(y2pIuMi`5gBL?2ZU&LL&vHs;Bg{Xh=@ASTTeD)dPfY0)Gm9ca)E z-3W{=$wLpwqZ|rA0USUIqyP_SfhqvQG=M`p*pg?I#Qd?{xUo@m5YD@Gp$^mlBFYph zAmt(8qNYNk#Ek;Q3>{nITV1PlcI7ZAtP}ISxj6~Aw)s&(L{#JzA%nGtynwQ!zc`Z zUMheJ0H79>0xl3kF^~g0R0M!{q=7!ra$Ht2&I#pg5jDM5|{$XNr zERK{gXbqW0^?_(K;7d6|2R=?$~CJ3WbRn z(V}66$4N+|=@+cfN>3K2$$`i(w&0TzZ3MU{RL-;19pl2DW%cbeJZ1%!Hv#8D2Of zYxvbl?ZPgc0wv@L54eB}Nan&Q7@#&sl~DxR$Wpk3Xr}&D1Sy9-_`(mErs?dG3-AD4 zZO3-p4G1=zNh+m-p=1%Z$gD;UT(qQ*;%ZP3k?d(4&qzTxE5GS%8 z7;+NjlS)SxX$j{^>vU18Q(`HWQYY1bLl^#Enoj7q=3QB0k||{lId%nENZk8W*=5O( zK0$`p=+Ab(ou-CMjNH;YumfS_YiVG_V#uikVMMz&#q_*#kJZ03M1W1!)lwoB%Nhng~*95Jt{P-rkMIW*997kLGI3 z>I5$d53C@MPKunPAJV%P&eG#9m?TNS#^!ve;ilC6fl9yVN{mmdg$Y@m_Jr5AI|C9xMn2q!2i5x-VEqF03eICY}{^oU^fG^>|r9^aIt(~7XP z1~BwZE7S^aiPc=q#jO}M##?lry|x-Wy;>0NRopCJW@Z-jp{m_Yt)sX=4zR!qxWEtS zK@eoZg%SffoP#=?!v(I{nxzsuXyj>#ZD{&S!0Ls#1xIFjsQ-3A?JxfiCWeZe2{A0`qZA?CNg%DgZT~`J>*t>10N(~;;b^m1$ppbL zNUlrWWn)Z{CjkE6^>y??uBWJF7vX;G95n<|sc%6c6;h?rN#D;xxlQv^px&R9d@d=y&qy}InkfSe<12m9>Zji&oU0`W6)MhnkN^7J^gGWPYWM(HzOPh|1 zXx2KQw3EEp`os@oRLPfOo&r(M0x|5>#^^Al3;!F7pcX~P4~#v`{W-cXJ<=E=7P_FxM(q>_@}DpHdPmmY0bYp5+5K?_!5c1-(P zp8k>Z(vLx5uiKT8^KKxC@doC7=K@L60KurbjEUyyMr)qPQoDsO)Br97k8bmJbg0K~ zN9#a4bc;Xqi?=M+NDT@m_vsSvUONTy?5uTfbv$bYk2~Chg*y@=CD3+Yv%1X58V5CPSEEpxtXsr_ z4xp27EH;P>!vWYf0JC_N&ozt}w-<>nIKV@V+xT)5>xRH{fbF=C_c-h7%8=78O~REg znzcVeLrVp;S~vM6w>48v`8XeRIw5s_XHc0B1iO^v`^ZM{otpQYnmx_WfJ5^iIpH1w z$*t+norAJojnURv@7Cg)YKN(XKT;%N_@N8KY$sY(qzj@i`l6GQcW|=znz&FewK}K* z2dwhuvbdIZx;cY-YyzKc)B~xTuK!ibo;z>#sw3-G<6!epuy7`FykPfO(B9A>$N;Y%_gGR)yU#`f@Wmg6+0%SV1c2c5igNJJ_$(gm=H& zvC4XSj6c|n!>qygC_C3A$YtKo>6Q^c!T)IlduUxUwK0x zy1KQeK|>@YW6FNoR?5?|ucWNOT&O)h)kq;_tz^;NMUX(D=1b$)mTeO5hM43H;miUh zRgxls(jpZ){^qZ2ukpGMX#WUmUKs~< z7x0VA6OE&Nu7U$G_=>_S(W-X{@+9dYE4)1m*iYh(Pj(15(>izm3Qc}@E_i(3_b%U$ zcO@fqbSQMNC_hSA!)0>ry@?gkDNcyQf2cLx_HeD@II zLv<6uL4#JTm@i+rVyQxP3e~7lq)34zl?s(ARk3j4()d!C#+bv14I3ux<}aK(Z4N8u z)8@~bKZ#hR7%HfwJr_q7cOTNEz-8#)oX6uU!Q8_?K`Y)!@qm?Ci{+u zuXkn1es!mgAi;G7-A11-z2U=z)2E|tOP2d|h~c?=C$F7+bJN8>bL@DE6snN$;mcRq zF&4{~8g+^m)<35IcGBsl$8hRNsG^keNvQ^xN{y)q$!W@+NOa%|n&F%RrxdBkUzJvN9toPZ8MfCDr z4%=nd9bbT0&P252ToD|Fx|4GvfS)6;Jn+&Rw!1LFF_&9kI`Rk=Qbd|~lt?U&L?rs; zOG#4wHvii1rC~4?tv~<#`{iT-b2_lV$4DhcK~z;u3c^-voz(?Ztde(2bzB%lxOsV{ z$k%)UO%drk)tO7#rk#FT*>}J}8A@oaopxI#v&MGoY_kOoR42Wyl1e9gB#r9QY}=CE zd5e47Z86t%SFE#Y=(SDrtjink6I(R6JGcHUQ?+Mfb5A~rE4G61#v`%9;)y}xSS9!L zYYFqrL9TSb? z*gNZin)u?4CyX4C7gNkJX`wZ8+9ZjTo_feY{jA$5!Hv=<*A^pfm{=gB?dEmc9x>jw z$N%S@Xsz7Q0hhOZEfK7_1MdAResd#DF_d$`{1x&MiNzq-I0Ie`V~(=VeK^v{7GvT zlbZ1PgnU+M;ks~RzVmenDKaz;iGcGCku(QPM0*zwYgH?Z*hCl`{9i0yp^8^b>~U5I z!XSY_$RGd#2#!M_q!tLVK6b2u`N5CoFqc70{V#J)`b?%e__+^)aC9vz-6%&{!v7Pd zDuqT-VT5WGt1Xo;LsoD>T;c{M{4ob_cnjVx+42q|{t}o@lN!pHceTk>k4VV`lD53I ztL(qjOBaE&uE#$-qnqV%sHA5d8!s) z1{0`3rBPvs$-Iw3F-gjpVv?N4%px%fR2DIp78O&qEiR^9#lYr<||`Z z!&wofkVu?N5k@giuqupf>R}(DCn0|Tgdg=;WHD@leTHYJH$R3r|m0~VY>0R<=k005v_4n*QyBfAvINCqmEwd`~x995}cX2R9Y ztaYs9W>O5@uQ6a&1IY! zU2a8}NuFZjGf~z>)M#;gS5=JmTJqHhnOC;yJ&j2bm8gX>bQG!>g)boUKzT-NfL1^S z3v{s0eCG46J>bEB1&mij>Jy**gxtj@1}O(a*02!s$b?m**oHoAlK%w7@5Ue{SU_To zaS~Ml3KVdF00iIw3P6D`W+5{EkQTcj#p8@g*b`C_#e}G29eNGL!ly(+Dqc0KRXlXV zGWqtVzv>$se+3<-?Jc=cmU3ReA&gk$B)iaM(o?T{-A{V?Kil1Mce_Vb?Q!ohsrf}L zvKb8akgQ=J%gPovI%Mi#oH2>30ne02A`pwA$v(A*c zJ!N$WV;06xG4x-`bzV=WxHxmN`ng>1c887@PVNbz34#KV4^P2 z0l*19QG;U?qk0GT>5YXt z!W^?OK~24qcygrE4i>B=C`NOM>6-^NAn^cft$-Q;gM<9>qzA!9AW@kv%}6h{Yhjy| z^RhCmIrGYGiJWn1@2=YI%VkdW6)<77Wg*=bdvc-C642217rBV>XQ(S~b%#03*^T>{ z>04%af2*3_t=cFKzyTGozy*J2!QcmfQHloK-~ea1pZ^J5amN?BkXER{0TS8IdM-HM zq)-44NMVHmW}0G)Qk>#GzG=cTlCTh#FsN5fYKG#6vHGdA%rz}@NOj@WJy1aecz%Eb z_@IJ8-z2)Bnv<5T)}%LvfekHdfz((bF!1) zA&;@2Kd9hv7=1msi?x4L-Jg{Ib>psOMCtwR)!gDwc%+yhI2xn=4bTW|;wTQE?8%TS zjh_~f0sF}X6aaGY&43PQ!49AY?hJuCF4Ih}!#FVYOzz|&E9EN8^$e<@+`}beA?6^3 z=0pzlI!xbi00j;J00w{qMgbUNBU3mj#!SoTME|MAMheGZ=CxAEW?0F`z~K~7pen|y zLvVou;D&CtE~mf`MZE4#_61L11pT^@h}3}?Vu6D`L+#!##^^7);;#PS&r?L^7pO{$ z^e^uugGYei(IzdQeBi$x@9_-jkQy-0E>FQu;IkOV@-pyoFeV5f5Cb*v;|9wGIZ)M3 zPt_nS1VK&IO7Ox6N|G=~1y``-AdD1Vfh4*h5_%v86u{OZKow#FQ-+TCio~=?3h7Yi z#+ELn9)wk#Z?>x9DSm(lyy=zH0my2~mZ;5ls1Pky1TMZqPM+hZyigjCr|eh)#?lTO z)vgTJZVlHhyXKF(>Q0*CP`rYKM|j{4_5VrI5-`sQDbMhU;uOq)`suIu=>SiF1zZh* z3Mc|cfd>vC5d*9ALJst5uhS|q^(+w+N3iu?j}sB9B_IZ|C=sy&$Rc0C6e7k4ct8~$ z&2xCI+(HVq5JU)5hX{4dK~~AfTm>9-;1uK~rYu4oYQPHC$(-oN+OF+rn2{~;WG$j` z8iVp_z`;F8M(sSP42kXxiH|A0G2Oxu|KiYD5TrHu?-yJk9f80Hdf=WMFCPD@aTZVk z=@9`L5C}LRAMq`b_K|=9N(VRq6%y$4+Oi-)?gMRa6e>|6MKIJHN)sIt_AuwuAd3_? z#v)Onk5n)tBf$qwpaxwa7&-?Qwf~D-1_TIC=VeL-rI>HWju4h=!v%a{XJ%z9RzMYu z5q-Wd8Jo;4nsNN_#ixW)HlL;#a6uJBV}r7h=(bVJVi6p9(4*kY?xyLgszwga<)SF= z(7LkX{?IwcvH_#h(iDvHD61_I(PB{H1b$|5JWehJ%Pu1^pvDs+6;dMmveZbBpk4v? zAToj;<}l+EF)gyx`iMPEffOR41_Gb}tUwrA0_cX1DTR|$K!{~hizHhsrBp{3k*z75 z0z$!12OtzCrw$xgAVZMsx0JETz77koa5-LNHb*pBs?macLG5-y8?mPhd2{%lvMB|W zw5~BKS)+^Ou$rn07n1Y8w*Qh3A~?dl1#XMr8Rr2nIj_RDl>qOF%zr4MXSX zYBBjVGZ%}{>CB5(UjGG6WTirBgBaEU6@oxv4i&gKw1 zY!o~%fuQse!&4F|F(I#XFez-*NDV(4>vC+AHXe5DR zq!ct&^3(`<@my2GXHY@NVyYP40SHb(VQdMfaH&Ii31GYfUyO@i!!|HrBR}*AMa_0a zS9JJ1i2XV#VRukr>kba7iBzA(Zbt!C^=uC*?Veh7V;Rs8HI8uxtyZyf9~FSXA_rwd zPfAx7Aro>h(f_kp6SL(K$`j>@OjCkP)3Z$dC_hNy;o>$XUNpMkY)*@ol!lGzRO&%& zWve1lvjBL_EK@v zZ4p*RULC9r>Z8y3ch!5{p%0OH)Ew!a5v7L8V6O`*Ki}J1~@=s61N~zRy@fw zSQ96Ii8W>)X=d9qc{k#*>{EaR*h~|1QX;4ZBEiMRu(UqPbib99j`pN3m}XX~D$aEj zYGABrgB&Iz7F+T@ zp~l!Y14wi06PXXV6CVgbdjJ(s=0Dv}DdP_9Xz@V7RfLKSkINMat3n-ufCrq-FxKT1 zYX9IlG_*vxZflcf{JM4`7}=2>xfqo7KQ+gCUs3qpHhSS!=tk(1|9N}aBS?CH1=Mj5 zQ`tG~@oza6eG^IJW)-kNwtYu|19bIqc(qp>cb8eVmn9dNxm1|_R~0r$e=~6t=S-n8 z$6-L`Q#T0>xiyqVs&rJ>*tXe0yJCF6VFjRef4qu@SU?rF4{Ou8Xz0~mgNH20!5-q7 zsq3OPO(A(HNrUdWliyUIbr_RB`B_k>RJm6&c)$e=8j(_Yl@&TVn>bd}cRI;32xc`P zLl%KXVS(csWl8T5#S>U3k&6+lr1=-aI1#Yj(;8v+q-l0iRJu}FdV1xUyCV1pYyS~J zX_`TsZlzphDynRD*+zq(Vs^K0L$%I3mh6XC1Yp=T{ zsCr*aH2j&pw%TZ&fn|I_2VCI4P?>KP&{flV0R=a3r_&06KmjB$11A~<@U3JqdIL2& z6t}peO*)tZ`ynlNj3*4k{P(aWsFHSVw2rcqAq5;M+rv}z{y4f-VgTMvinz|c>)qZu0h4s^Z+4X9?yCL#{82{Z9rJ8fXT*njE z8`)50nxsxgNcqO~*oqt`4Z{UcVTLsODRkg8gGPtCuS1olHUDP()PWsP`_<#w7dU3t zEoIkbyQMp7!NWYOla3_+*`G;)1$cni6KtOVv6VeM#PQtH1dhQt?yW5b2x?%@pA^su za-&-uvih3B`d7wne2p8uk~F8*sT$pd?i!`{dgk<7-`%8ye4D#!wss~fd_i`|ifxKv z1qvB!v-X5l9l))eEQ%%JnR>Nly=F7WC3bDsU~!WlzRYjCtI_=8AA=N7fa8fBV~_o; zKfE57Jpv)e1$ZD4OP0j3vj={LWHXv^S-d=Z8PsY%#t}WF8UKB}6CCm_Nwju-$JhOX zD1Ehn!suxN(ybKP3SJ$syzApR7-oSKqPpBI z<=kr<-NU^1)gI%4JxG!y2nxE0i#?$`ydI64EF)T1mpc+zU@cQVajk$9YJl(K_u3mb zi?tZ>QEtK>Y2`X%@lS1ynHlnNoO8zhyg!oHh%Ri7DcDkXgtR&7Uq?c4!yW2M-)n;y ze*hrVfg31rAUJ^t)hS%K@L)rR4A&`?s7|6pcM#Q)i}$ai$B!UGiX2I@q{)*gQ>t9a zvSl$}s8Geig)7!fnly9a^0jlPuUx)@{uDY?C{UwBfB*d&#+0eErck3o1;U~S5Fl24 zTm=$@Yu6xO!HOLl#EMw6Wz$+&8>vSmvyoT;u@dR+sJeI~-Hk-5s@}SHM+qK0ij-i( zq!KG$jEYp_$1x*ER)vak<;#>+X;$@W^X6EpK-&y$vvkdyH*xmF$+IWVpgx8E3OZZ1 zuh~j}3Cq2-_b_3>)+46e}7??p{5#5Jn8gWP)8w1RDwkzwUks4 zLiOMoh{9ZT(Uliqb&+yH4}1MZ7-5JN zR@h>UIp!E-lEq}1keF#!S!kY#MjC0RH96put-0n}gS1t7+m%Y~mfLO=HU(U8$w5_I zn9CgpU31bsC*7LawfP-1E2!d~L34uR0xkv7c@RPFDYTw@eZn`W+X{O|8rP)-|w5btTsii>022^d_(uUiX zzInOSm&PF%=5gpYXXcsEu^ApTx#>FpN6ZeRthJ#hgHpz6GWC(7=Aa7tx>< zCCm^;>fqz(!w^R-@kqa@LW(MyE4g<~40u>y4rfFB!*0SzdX%nd^oET}<- zGW5BYrAl;ZiJ2Z_1*;Od;Qs^|q|04gxnjcLrx1B~@tDYjm?}nrF(z3}H3r%k?7h-W^Lp2ubbvN>P{%qH{r@xLL2Fn!kx6A_6ME2twyD6Capi&H1QE>4!c+>L(+cT)iw5(8 ziUi_?S0S7o34dg}APuQVne?Z!F!`*24%BMZvQ|N}Ma`~ZX?b7!TG)C>*K^sGdKEnr z_Sklv@Wkso#BjlM!1J$x@L-mD(;IsNrPB5xY?$v;$V?|o*_Gg;6c?KX|N4imOI=D^ zLAj=AN2|kP#HFZP>B>>>m{bwvv798LOKc;d03EdRML*L^UvwZC8{ueZw5uIHO-M;0 z8Ht}PEGua;COm3=vY=W^qe7MP)`mJSIOIAP_0nag>b1*=Z+lmG4iXC&ylG$h5{3@I z;STBuY>K{Y?Ek@5nlP7Igm9J3uYN_cOi~22Qqg3Mfnc*KkPVQuKxN8u7}buU zQx#KT+f+WHh(rf)%Q^wGm%-%fXMthl>>k-8u9onG`^@BVH`AGC1#h6j6A)*28p=%J zrn=wKk`8%Du2hN%U1&=e5%=0Q?PYWz?udj7!ndy`gM)k(aqs!|R!1!I$+r(7{SH%MGxcxXVA@g!V|1;Z23q*E9l?=gVdlP(dk>?4yK;pE@9G&3)W<< zn5;{R7IQnfZnbu{z*M@l(i_Udy88Iuc+G35-PYIbee?vr;AQu&;{sv`EMV{jCaeu6 z%>P=`+NBgvI~T#|5nS8_?ss2VWWQ<@ z9KtxkEJ5l~kY0xc3PG$%Pg>=LGdw;IH+#g@PJAy~>=ZI-Tqosj&}kBQjdy2?FQB0c z&h=fjczmt1Th8*Djp772%UNDJYz0*CfCYr%_RS#=ZptgIlDcEzKcV$vp=bPBH0(H) zw&g8`!d1u4^K__3CPD^kMN~vb)HYS;4x_MS_yQgR0S)e;3OoQs2e()X=XGvl;!+}B5Z!~rNERdi8E z81xsYfHJVtTfe1MiqROv0wnqbf0dLOPorF!M|5QNT-I_R`&Ug$2UnT)P+sz5K!$Iv zgn+PwUbF;09%UW|!GJ-qdwTM9y_Zrd5|5bEP5;<5X zRK;e9*ff1rHG`=YXLwXPIGBTX#sTrSQ)QCipv6Y z^fxs^=UkpdL!bpfH%47K);yYqN?;O1si!X1Gj*Z{4%|T}srC*(fC?7qYX9mpc2uk zb47YB*mMnOjx;!D5VS{;ICw3006fr68-{J$q$`8wD>?Fs?I(F&6@T$}c>v{TFBEBI zc94|jZU*L7u^3l7CN_0tZ)fvq6Zu`-(ncdu3OW3&CY7 zd6zUL7`;}1%O_)1NqT@uY!9Mj4hCnBn2y^giL%912Y@0!h!;R8NGQN~H==&tmW2G6 zXeacKDi)AISARIQjnH*wSc!E0$2?#YF4#4IW8!H-wu=Y|Qg1U5s;~ki6-DTAG6vUb zQuVRDfeh zk>fR312GDR#A%!snjfgZc>nP^mCxjyP;wg-q9t1* zm=t0Kor9f+nU374n0fY{^0-dqc^4PNiTSvGIoFR($(dq>BvGk~tLUMU=6P9|6w7m( z3<(vsXjfknmH@gop(dNNi9zQ@H%S%=42nx&M`b7#Yi0Lv@30Pec%fp79~pXaHszyK zIAhKin9*rn1B7fR>LKVjI!)D+KFLQe5NNl>PJH2JScRU7!G2vON$vTM{sf4}+>hogq-bBHR1fyk&q>RFqjJds)( zlX|H-o1~hGdjE+w%%OU*nH}ViFZluvzJPUm0x)N}UQpDpDFv_^2&=HV5eR#=CGj(+ z08l>KoL)PK5Zk7_A);|L8+ykBj2K}`#giPnj{hEuXOt+Owh|*cz*||Bvcj^2*Xo`{ zvZKq{t$hh>jv5=}+BLIbu9SKkIcur6n5o+(mQn{x^vXTzfC?)R9?h|a;(-gN)|eP`RPq>Rb=os8b?93T3$Gdaj47u3S)Q2UX6v!x3sumW2TsXM!wB%>!xI@6vdzlI*_)lwNx{c ztarvoCUO9_C9>lO7^Hv#L2#ahcA592xBu>^yiRk9^EZX|_qA4NpAIsv)LXr}L8&_n zCJz}zkZXY9E2^ZX4m=P9d1HI-;9nkva1PqOQ~Rpwa1QPert~|%fPueK!<@w9En2cX zvm2dnq=`Y$0~o8eueGte>$W;*1qGmCeg?s=Bdx%7yg^c^%4>Pdd&J%}yLJM5|%F}g414$(Nos5=T;5DBN) zx@nwN{7YRF@_!A*CDm60Q9Q+KTg7(Pv2RNk1%M*f7QDSe3gLIR7M!>Fl))|QbN_V4 z4g0$FX_b{z8*c1>)jP+Es~f+u6#v@Gnw#3BE(}Y9l`jgh0=NKD3iyEP5DBv+WuFU| zawxhPK@Klvu#AklsBj{qFd7&Gh{2<)RX99e)0O{AT{(1TskD@(>tsA4VFqw@(vCn$FZHDC!+xUq=1i#rT+tg}L-i_TG3|0xV;l7JTV z9eDE+pfL(RzycYaH{t<4bn{+QA z3f7wz%$T~GK&vhoZBfxf&HoUs3X$*w=f_PtKpq%_Cbwj-x8!PklYyZN5yUhf?m!Oe zAipx5y1e2u+v>r;7DJ~gq9D3ZW=ojwOvRvlgY%5kg!gjt=w}QD#-12lpvaW(_ml$N zquR(x2i=Oo*2ZppX_i{nW3r^?LL9Tr9Kc-BstS8x76dN90wp*_D08-AT_b z!U8ZyNK-WmK(L85`YWy6Bd_d!oLSWbt&Lf&#*K=Qtxdwz_1X|^y<7s(nCg&c!xY`q z9KwJLK_Ds|Z~(x~0srQxoEZH!ei9w%6<#;IpiQLLeEqNT_1A&z4)<`~sf!9G;uu!l z-OYIu`N@Sp{R>Ja#Zp{@5yZBasWc)U25;(!_ z#hXv7(!bfN657%dDsd{Fx>99|KnJ+ZMZF6N)Ie>bIDSXQikNk}jy`T8qrd?dwAl|# z3OvvQMt+3#t+FPD-&8HjrtP{Y_`Lu9in|=(xbe`HN)%p_Cgw7!dL}C1N9kt10&{&U zxS$--aYV2_(*NHv(p9I-JP->JXy^VKm(ZSBk zjPB?L+~f7kRFmF=a%(G?4g@0BNSz+qEKAjl=H$5wW6Font8L}eJK(@fSL$-s!*B}l zT>~dT<^?eD2XF#4Kpv;C6B(}27Pa7H2)@0pF9N3ny2P7OWX*f6=X>7L>_rYJ`Ru5B zB9N>?Moj8HaqU}KwmIYryq)7Z+328r+2MXplqi1rd>A?)XcR0vovxmujXU`*%TCUh zS#9d7=vafa0 z+$ROyEWPIf3l9I>4Dts{3PJD#kuVctb=4ni8eEgEhzl}$7vEO#G8`+<;2!Q$g(9`p zyE?;oj*;_i4_u8p_j}GbKiPTKR0X(q%8-|JRG{M}KlsI?6_f2`nvYDoM zTwo~hFL|i>|^Z*h>@Zca;3J*4X*svAGjU8Kw#5nR~$dG|palm7;mPnI3 ze~v_|MvzgFMx7=#Dz$3Xq+Gv-jf#|P+Nf;TzMb2)s@-SLqJ0(jEiPQcV-ZJA+^w(T zZjm3KH5WO?VZ!nfA7zCH3l0JU002`P&YOZySAE|GoPJNjC`5NbgB$+=X zN|*mDTgGhZCYRjFP911$!U;j2dRh>up&l%1D5I7->L+*HQHP(fHsr8F4?hGk#H&!z zBCt}{N(-&FRD`QJ;_lKbFT2*O>zBT203xu!2vZC(A0GoUvdSnEvM>&Q@C-80Ktn|b z(oTc2HPlptt;*T1v~4!sw(RY!;L^HHEw_aH;MW=4MeP6)S+K;RFQ; z`VN4B4&b1?A0TT87m4btPR2H4#7iQInwam9v zL{7T9+*HoBA9!%#gaZTu4?OV@S|LX(&{K0gH)&K@#)<5@&!UQi$%s&n?E47P{U#O3 zKWJ3?7(f7T`T>_t*BN=#27BU3D5FkIRVfOQat9t-Z^k)iox?(9PAzt0H$`6Ca#7HQ ze+^czUy2WFxTDf6*1Q( zx?W#$k#4Qj408d6?h43L-~tX>!3Bk^Xehd)lg=w~q}|MGV!RTim}18Xh0p&!V(^QU zWBx3Ssq>qP(V-Zb5+q$zms>_P)e2X&FrJ-XhduV4$12OWwA|)(Oo!h3wReW|`b8BU zMkDKKAEjQlu*ImhT3W__;DED*hy<;)NL(<>TPej2*KFF%y)EtB*hMi#+viTsEm9&0 zf?vJ6`xj5}{ym6=zb@;nAvIsDOK#uynn(a?BspRv>MoI!SbQ$_sLYLIW1Q;`OEM)B zVdx+y7eo+GR(85n!K^4UW1Tx(Cp!|B(1aX9MGyefn-t-0Xu~m@?;NHyRp`J;#Y+}r zj<*=)QEgh%5|S05cP-Fl%QWmmLH54InzEVAHQ&pU+F0l|qLC>}qyYbdU$}Dsf&@%Y z;xPyZP*4LNEQDLZNsgcdC7t3hXH9BMqZ{odEMOh5B8X4t!>MM${H6dQby#jSV%cS)yyG#I3Z=hDGy2 z%iXfb1HCDLiv{rFp7_Lp8r<(-wh@kVlrv7`%%V8BFlW8^x5od)Xn>E49A2t3F^Sa& zBOPfE#{Bp|Nl}V(0g~WL2owpQ9O#0h(je*@lseT>XlCvp$0z?KI#Etqp$DXKm#)lY zCU&l}j(2I&MPrFPT25_wK5X9AAk(kP0JD0b;a6!6W=tww={4iaow~x6qv5gO1RS_i z0KU^VFd~EnHNa6|I-@03;4Us>a?Wv%bIx<76P;;%QFPRZwBOYco{9?KJjF_%dq(V! zAkkPq)%s7Ccn%!yFiofqnn4Dg4nh%XsH%QKGj&kZuYY}AEE}RO6+zXo$5EvWyZQ@M z)Ig-hOWu!a>BC&=@`wGRp4Xr>%++X5e6m5NVWwFF7q9>YKeZ-7RIA#59RLL^aDg|y zH5)2Ib*joSyNV8avv~89pq4@*D$n7*0%W| zMvW~Gcu=)uJ`rdhPR)mHS6GckbzU2VAyubpPU!y-=eH=1Z_a0WpFr*L~aE1n7`TFh`k-$+b z19M-fHO8c1=C4X4!2#?AcuCpeRwQg_!yW*J3XrkhY;S5)Cn^(N9_Er2aRW4H^4Ydg z6*M`qS}(22(cHvkG4PH{F?sH>VvNFPrS)@Z{^twx8dSAOTZ+bvd$$fy6TmwRr!=Y3;Lx7DrSP(@Aj4M`y{)aiI_ zCZoO<|nU@Bjq!5wZxj~lpK?VX}O+URvB7lA%+?xbtXPk&m9x*@{}Du7@h z&Zn&DbamNx!K+saQQhjNXL9?3aF&L^EncWp=huA!gk$NNhqreYWrN+BjuWW>Js69} zk2tov+Z{?(8u{6DgRalA%XaMr@wd_BqT6D%`Y%Gf*SQM3Uv&R*-uHfT#R}t|mtW|U zkM8Co2#%8c#~nY2#RT`wvJHCIRHOelN<>k=e<~WfnY-cx7bY6HnkqRhVZQLu4d(;Fg_APr6ESeRzU$kn>@&c{n+P`n zzwZ;j@hiWJF{_|UtMtP(LOP`OlL;U&8Ts3;AXKRP`?plV5Op|04B@{eG_NcQf>IDb zw5SDofuj}l9R$n~1>`l|tE>m?xM?YX|C0>O@)im-K4fAdk+U`{ITsI1m*)$bmRpe! zld5y7L&Kx0*h4&Y^S%~*L5cuG1Y#})qO`NRL3%5?LSjG90RmrGI;Nw)px7V|Dz&0G zLh@q5Oq?ho(u^pKms$WWEA0Orzd#me>5(4cLX3MrApwE{Scu*`qTxFYGaQ=>w8iex zz-ep4DB2Pb)Vda$Lzt7Q-m*TdIx!VYJcW6|1L{8UqX-$~qdo$GONk(nDTW~MG?AIV`lCc5#J?m|hjvKEnXD)ZLyLEewdxbaU+Ie*x{Q0oz2up! z{YsKmR1zIHfPfT8fu#StrmV%|OT#tH#V6`Oh5W#V6u~ngK^Uq-6huMnyU3m7K0oZf ziHN~xl$_;at{S99d9%h$%P{~E1}oUHZzP=|?6-w7!U-`wn)J)qQ6V0H!vU;9d2FYi z%prV4MJ{x}&rp&YNJ_^%Hm0OSgG58_=^k=X$f_J4tjtN5Lz7{Y$Z@+qL=#Je$w(Lk zM2QhZvWmQEG(;Ptx9RE+M@pnfunB{*E=cUIaBNBZ8?T>mioYbz*WtuexHBna3s6kK zuR}~82};S*y?rDi&v1bQ5U`hulFEcisLV`+WJAvUEEXEfDAP(Z5k~4uqpt+ZJ&Z4g z@xIjLNY;e3%BlYtp$j_AAv%x2l-tCRl=Q|Rj6?_-N0)4`jEY1bRnfB>{)=Q7} z5+|DLAG#2fV&Q=u*^%fBO3I=hB>_>>U;zaXzJZj*?X=7~+dz{8pOm}GpxL^30krAM zL(()xi+s<$fRR50zq1UhdDyoRh%D|6mD6@)T~VOMTNW-$WfrB#KK^9dKaK zE4`V(#1-gc5$r=o3#AJTwa0wKNBsgeT>=frAO#d4Q8F~qg0wp{%)sz07bx;ThGZAq zaiI~U!>%+u_H0gede0f!(eE?MXKXj+N+A27oRA#4%JUePAf#e=2P;s8CUw#Q9YQG` zJu1c0PmTW-!%{YX3simC7H$6jR!bLjW)m`kxJ%hgU z?9!k(mEG9Pw6AP zuVnvEW5r0|Nlk}ERCar@8Eh2GAyPrgLAH`0LUI9O=+8`LI=tl6kc|)w0f&Jr*|hx% zAozj*<5F=t#&Z)?UwB!OiY1v{OrnHU$&7@JGYx3dmYvPledX7w)Wx9XI}H=q7UEMn zBs^j*)|M4T8PUj$JX9ZjG>^O(NxNE0o7Vmyhw35*7tl1%<4sMqD+4t`pHK>UP}|q_ zibyzFhPX)-sfE&laOwWwb zIV3^##6uK(Bh%!=Lfyz`Y!g8wKOr?M=ql1mAtdTzzn4&?x^$%Z^G%j4!n}GbpHTl$ z*tK7*kh8dhGWaS?bL%KU38~)2Ti~TxG+o64&--|_B9bDr}KFzc#J55}o4Vqugof#Fe z8m&k;YT09@3ypk1vMfuA2&*3@6!HVf%&{@)8VU9zBy}i^OwqJZdnB2`D;w@0m~@98 z24t$hx=27yc=Xb+%v~d%Gsyb2RD28|qE{<$;=r9uIE~^d*&ZsUN;@6T&J6!S7c$x{ zPESA`;)E4r7E4w#K4b9U_?a-_-(843|Fuvfwp)r*9wmO&q9meL>;YMvOm3FqOioA%PF$?q(+*J-mcn!78iV?^ESKbTqSsv`DiE@_p2zJ5opb0aOr>w%RxDqNJN(q$8x^2w@d< zDCT1}=41vwRA@)EpgH$cSY_*hIoTm=)<;$Rj2;NXd)3Zctvg#Z+$!E=p&i=A6`IV5cgZ3%b!rGY;Xh{NBfbJV^VwM!{zkhGYM5q#D459n=5i&#R=Rt|XZJ z3AAPC9@Y-ccp|l+&=l(^a<#9La^wcw+pgh(0#M4O^yY7lU`?*marVVH{5!#mNMc;t ziFPBIt_zyBX%<^X9(|neL}x?{#(D6^d_U_MaErfg&WVGH{W z+(qQN=-nl^(t05g4)*aj4K?0zdpDpiO2t?v6BWM}HqXV%>{ z>h3wwp~ckb0?sVRV1WYY=JU4XC7R+5H0j#tsTRE2VvL-XLxX(;6c?DuY$&h3kT#m;ej4V1*UrG zID+O67p?HVxZPXDj2qGHbkpIRyJEsj?-6I%c5fIJ6OG!PJEX|!i|gP*Jer1)8o8HL zHp?{LIn5Ptwj^+m=_hq44W!Q23vvmYC?Ja226HfncewwMcu)s&DBE9-x}V_kE_Z0` zb_g$yN4+2pGe-3Zw^V=skRzH(ahklmyNyiCB3JITh2Xt_UOjn002Zw5iUrU^j zQU~PrnKKQm$aOV9T=?)thV>wt^$;C}S(^#{db@PB<@mutD*M@O}U+dYX z`nMLhK1W!(P9;I18+KZluW$Ar@9!X&C*-1!wZzZZ#Aiqef&&nSdway2xF?qw23){{ zNoe_92;EOtcb73+qoDAG#(CIHuO8q5ZUHBU*FHh{fg8eiG}reJmCR8%h-g##^FGn# zEorJe>2W^z5H!zW&z*@p_Lx)rxUK21SAB}_?K3{~|7K%pEJRAv7=3~WjrbR5NO0>i z-AQQ)KfnWQX!!=;`}-4hOCk!W9(=WRvaqp@Q%LqwHhjVOY*?3dH8*r*DPU{#a&#B+j@;T?yf4MO~)eb(IK?nc)GroAfhW+vz@;it z8p-RZ11v^;wLi4f-RY3;}E*w-9V#Ki$ zD^?ZjG2~ddBuk!5v~uO5Nsk`QrPPh)7z90K(dV1OAm;$f=1;uvBlF1Dgjk4;9|P?*Jd-+i1Z^%-cQopxGk zsIB(PYe1?d)5Zpir(3n~Br5X5u@X(?TF3kg#UGz_T&O(o(? zaz`x~VWbW_9hFBOdG4SGADwmDc_*HDY5{}}R-_WtP_@u_BaW)@&;t-b>=YoQR2BHB zfmVzX6)6Sqpw@$#x@Dn-a&`ZDVTO2Z$d`wG{bg8SgcZgZiY&V7SY(k|HmH6zezsJO zx$3G~YC{f5+i^!8mzt5q3Y!~~wc$n#Zo>GotS`VE2aGSHq;Nn1qa?KDbJD3p97E9H zqRN-872^>^5rL=fcyOwdC%o~>J1@OY^+bwdmSsj%FE@f_D58rtIE&RTqY$df1_LQG^*1FkJqKy{X$}9iaYmdA-3na0= z%zQJEH5>cdvJ5dq%yGpKXJ8J*6-5$ zHP~T`Et3^m92$u#wZ#9j%f5qh<_o}y3Oq2Q26KfLSCSUc1Evi_I3dKJN^Dofp^|zy zh#I3x*oh`Gwphp^j||zYw4(f(Xt=gKn#!id{Q2gf?Mx);HXj)bF~SA+8quTxacu!s z25{AY#Dh;rl|e0WfU6Py5B0SJJV3ZQ@!q~La2+LqIz2Bu;7qBe`cg)k=L zi*p&TYszEO^J4!f!x^r}KRWmUpm0$={uyN!Ly6m>w#PlI*zHkxv%=mc<*@QCF>vUc z7^f%}DvVt$V<8fZ{0`H&$3;$LlPj6!{DmI@lF@%;Bp}NSSU}knDQ8DPj9qpD1R(T) z2QF|y3T&r<0~`Q@2T;HUPauql7zBjfatK4FG!$V}CTIk47uSvl9(JsQhL*e}CR@T2 zzQtmPCc7RkQgJA`32}&yBGC7YSe76ZfIbFd;)I@8Oce$gP&Ht zs@Q^{g&V2@ZfqM=zwRSSL}?G9L_{T|Bz2%3w2~A-faTvHCd(*Z2t$SIP%f=_s*MHZ z6@5+7$3)tyVV110#5`=KL`h9BP?O} z)X}z&sh$t@VLmoxS#-$Vy^j|OCh>O zx6stB;`?ZfMO3Y-$be-Pq#-?0F4}Ka8>SKDKGfdu4QMNon6G=Y0%}lyI&W0jCO4;C z<)vYef>t=lQMIHILmm>$S{t)!-R0mkv$@y4UWuE7A}dc4ioRKtiFD^A%;;!hzD!3Hq$zwPD>@p zQ2uaK@Y_MoZg3Q1B1l6BEMRqp7HYRszdB# z;vUFAqd>s{H09ht%XQkctSd&Vt^XxAAFqC`I$X@O#^L==Z3GIrh zk&J93ih3$Z{L;n7`1We9W~-=XaVcBz6XXqq*Z zMO4rc8X^j!%+UrSUiKx58-8F02GN~)TBJCc5pjy3`CgL+frS#SUg_+CV%px;#CpgBxjkiscg)3kA6 z1YXy=i6P-lN~%d25ct3>&LW~*79G)|8crYe!C@QzqA$wf2h!nLy_?@S5rkMsOr7E> zjv{59f}tG1`njJVQsbAsADE>UYlQ@aF`_rh&>W%7EQ}kh-~#O_QieqW5;9&TLSDy_ z#R=2^0#4yE22K|K%`u|Si&+S%+{Im)fe{CL!)=oI-KMq@Vx~%p*fd)cGW!?^%c}^`j~}<@Q;Dl<8tY z9tuKYB`)rwLe?T05@bWJAw-TP8^)n9-Wk#5W8nqPi&@lLbmX5HMG1w=xkLgBOb1?` zWYt;S433@+mYz1|nn%n-O%~?Z_)`#+0=bo)pi~C!;lfX{V@h$ z0LlWW zr%9%yNnRsL`X$1ZS-UWtiQeg*1OaL)=63&;op%z26|7@;3LwW_Q&eQ4Zfa)Y!J%lL zrjXXaYC@`zo+hQDrhF>)-i z3?WfGW}qfva7||0Jz*rcRo;Z=XgVrSjVrm1s}4x&xe95z7Ab1BE2R=?YPPF)Lxw*)nB1J7+E4~G# zSyARf0YSOmkqeY7PX%qco~yY+D!QWUkg98?!YgaK>%7|QrRr;@V&$Qf5?42^qyN;X>7{P?*4z@PtdqA?JjK z32`c?o4Q~6oh%_qQoE4DJK#ghHm-W`#HHk9K>5(V;OzG3ES^E0CGOO?5-rf)(KiXL z=<-y$B5moaE0P}RYNqb$vZj#&>3l-%z3QiuV(otNt81pAkMg1h2BVdN?I~pn%ejb; zKrC@Q?2l9|XwWQAo&`Wk2rmB=gR=35T7eFz9p>hq<|2p$8ST#&?dX#0>6)(p_V2nvDh>#6kP@kCHm$o_ zDt+26);{Te=I$=iqVED%XeQp+7R*IT3Wo3!!}f@+{>H2hN$8BrFyMkIOiEU0qReK6 zTm%Iv*vwoC1Fq&OL;S)4paRu|tgdP=hZfS7gs=F9*=kK^`JS&4%S0q->LUsUk(Ja? z%ty|)BhL8~`pr zgKuo_BbTJ$0&5|qWUVR0oVE)**y$0EvP*PRpZt=b2w~;iZ2aDy6wheK1!|)zUZTK-=n1W+WNvuKxGeB%Hpn?_n0yH?4Zv=;#s=@*I0wO)~B@<^4#~MNa zv8|2SceDfJlCnUr#LMDPEU<5j^yFk%ZnnzkczQ(@ckV6QvMq$ zk1moPtw;ZxaRF0mlVWP9_ABn1s`LRPaFJq-QBMAl40t7WV{gs?c@E1cg->fUuORaB znu2?GK`HpaC|H*>?83OD&OQy6Im0UdIW#KKRjMl6^@ELlMpj6xU4EHH@1E)2sq@WLsaf|xEjtq#X$ z6N81Wz?kZ-u8Jv_hc=rQgP2ybYD0vZaKu2&!Ys5`Dc}MyD64}%_&|g8QL3nm?1EY2 zY=-}9IEQ-=kPh&;`uT8w6LM$tMnh^DKkWj8s&(5ZrcyV*LZrKqVui@~V2M{wt_VpP z6UqD-W2X^mkkFKz@F-ArX#nJ0h@nu>0x$#vE&TK_?7}Vp!2w7eBsYnEBMYy(z^sC> z@Q5jx?{LV1(76nR;8p`V4b3=`#Wu}UDa?YEvjaQ?G@J{xe>8;_K#tlpCQ+zDH}$rj zt14I25t7=#hl9A#esM^vE=WJE>%ym~!X~Na?(}gV6p4s0(a+!I7j6!Nqi)rL^Y6Jr?q<6&r!Y=#*CFp=y)B@lliIM;VG_U{<6h~13R=sJ<$AYLoV7(oVHH}w_~_(Pv#SH1!)TNFN^W%553W*tLhT) zYT7{Sre?mndy`J-N^>hIZZM4nMlbD^^W7MWTzbEIeYgd`&Y_}KJVn!ueFguafMrK) z%d|$@r#VC&_AXHJk~_(1zRMdEp zV?~P+B}U|-qX&+MJb3g_xe^EvDnWn*38HY}D4RA(<Kis&m;s!%0W ziWI5Rq)1~CjXHIzs;aTDMkU%bsZgCaZPvV*(2BzzHCUiHfFc&HU&DU+`W08MFT1p? znu>+XZZ2oLiU}JgxY#ga!-fG%{1%uq1*nEOgDY8bv0%=MRW7zUuwegTxKxd@@}mdo zAX-M1I?5LqG-%+|v3obq-ap&7ap%^(n|E*DzkvrAKAd=Qwts_5jj@O8p>I6kb^vX%zoar2fn4 zKb(9L5Wt>xO3?743>^mKN;_=9gV08w@dFei6o(!QSdov0xrU3@*zeyDZ7g4D&@5QWApchnV+mK3F}>8lOcU%>D5pOCbf~9Pd8MeQ zsKc--2$2%)P96x%)Y7nMt##6}=HnqP4i2axml$2N%NM?ao$D81jFoFg9eET?E?|5? z_E=vyP%$no-wI|JXpmH;l+hmgfd?%VQY{tMh$#jdF4+N-w%XW?SKfK)t=C@Rg7`s) zAXKS^PS9|%1vH2B4AIYnw<9YO9Znd}qW9u^6beWml}RRn_8V)ID?H4&QcD5EiNF9A z+zF@*yFze5p_qCQ6|Izt3e^6}>OmqFY8Y_V4x#jr!~Xw3#MS0qd%a6oqmPbjuDaer ztj8XQ5tbNj2MZ?4SWfUoT`hy*_7_}CAq7_;emE^PR8mppN??Rhm)&;adH3GA>8{)E zyO+D}hf$)c1>owg%Tqgq2_J}|NL=863YQqauONmnrioHYfu7W7Nj|<*XRt6Wxxi4p z@@he=kRqk!u5wz)AuAv>H7S~}L+b<=Nd7A1S^3MoV-Qb_U3_7qry1)oJpx~} zp7*R{se*Q*A)EH7M2b|z;!46um%7Lin|Mso9%5?W6|tB_EdmD!IsgKM0G1+E00B>B zDcJrF7Nwa)q6Qo|h!hT@Fa*|Qfpnx}105I%%so(K8|qvHJ%u0uk)?||U>$}Kq&k$K z1qgdVolOMt5JRCr2S1yf&+0h2TUnuZXaU{nPtm!UV4^4wL_w#bjR)bg(ynfkt3ana>%sgGPi&s*MJW z1bzaTAB;inaGCU&CKuAcpFQw)oQh!WL?s~6z(fZuU_m2~ViXIKlwh_8uBragV2`YJ1ZwB;MgtS>f)pCF!tZ1PX z^~JB=dbH!wf|b`R#X{f%1Rv0(6dwN-1~AeU#db|`9`!)qN)ek_#h!_iUR0N(<)k{7esar0LeZqAWUEzyBj)uMp4wiOpIN)fT*n!I6Q#fT4) z&uMB>3RBF2iNzqsx?%$lxYffR_c-ig;TvE10%w*ei3Dgq=*+SiOgjZT%H?e^O@27kN2Sj2(y?FXyyY1{`xn$ zbr!I}CL7I2u$WJrHJqOn44wsxwkAty(1k^33JfnA6{`@6qFFV+e+(?OTF;^xxana=+m z+_~%A-#JG@1-Xr5pcDTr$K?t%fx0tQsfuzs1_{N{N(q~%VquE@%ts<9F|iAL5D7;8 zzz08=CD~B&1Bq*a;*rooDJY(0ElB(%Ad#)1MqT1gx1hx_Hu(xtfbv(v`l}}(1(a1G z@b^inG*~`ODN>UP@451?(cUFH+(GTQRT10UHu}+1`o8BzLTy9=jY{N9kaG8T>c%yr z#mqS8E2L$h(wz4k!M-2UMa5LEa~+}uxsxu`PSFiH38Q?_D3X+>;>*VQU8zj*QRqAs zZr(~NQbCGkTioIlKaIvulk8)M%hZe#4|zz<5fVp2Y(j%nl_QY}B{GpUUH#nSRZk00Li(ga6-;B!ZZGSQ%eWlyxPkzV zjBC%_4ePuva)OGRhKl$OEhq#D6%-8w1qpWcDiW-umDuLGa4DqPX8%4<9rSOP$YG>D z&jn?$2KA3K(q(Fhq5HP)uj~S(q9vrN56Y~M`mQ7vuy5E*K^6MW*^b39q%FPNMNEoL z0I@I&v#9?pRE+8TF0!I-psG$!$gm8rjtr&10j(h6en$+^t){-Nn?@m?lA`!B9PORtN$eN9T3qS<}n^vaUC!*HsFRG zN$>v(W$_>p5^u_4BuHT@NCAKHXAB{5A}8`C8qf!30tKMz_RMX6=510iNGY0;Cz>%z zyeru#PuSFE7)DBpPRhO7YaH?69^$3F%5fa;;U=pnCrhs!d-7d+(k6qlipb0$6Y?mL zvToqV3wLY3sE#8kGAd;PBP}Kvu}&i;aLVt&#{^#n zmjJPAq^PixGA`wEF4yFRdf;5HCl@19D*3W6FQ#IwfW;mV0*Ubr4=e*20xZSywff^e zB85L}2@s)(70X8+jFK)fGcz@FH#i9;Mu9p|ApxJ#>dMeBkBcg)aw;t z`lQbwjJ7faO5~3}j$&<~h)dum95?effipO9<4$V83YzY_vhEj6Gb&v|HIGZLtl$Jx zU^#0KVIXHuSOzIhp)tuuQcmGzz$ab6K{j0R|Ag~A(NiuP>jy{y7eZ6A@Qg2GVm@J_ zKItuXblp=j`7Y$;KzN3p2;uMsyZFY$tV>C*oG$A1_5@tbMf^q*KG)pF4 zVsX5baTe!39CLA|QLiYbB_yi{tUv*308CxNOS{wxu*o840-Ip7>+V!x_~Z`*iyh)& zN&z)cwUBITKnqeqC9(sX~G!Ge6g~2D-F9x)e+`HB1|oQ8DsS z7N;QaqfWCU61t#0g#q;1K~P=wRa39NI*Q>;)e6$EL+SJ-LbW9TQ%)B(qs;VCr13^E zQURbUO!Jcprg0h_lUM6Anjr8|G-^Jeu44E@2|*85wRKyMZc0ia&K4CvT;l31a#I&4 zQkQj7&va5Nh6CEPOw063k@ZZ4l_l&|KJaxuA4%fzC1-4{OHnGS>_TqCx zd6il<3hIVcQdgo;R01Wui}gyaQQ+fdkw_-8?0w$HCU8#Jj>49vPgq21UEbkjnYL+- zi8Si9W-T^8Y}R6T)?O(#&h%UrH-6=Je(ASA8nAk33f5@cV^}kEJJB+Gr-%5Ws?2|W=kLqpAHV z?|H2r6$0Br;Gh2Q$J+n+$A5&6|I8(!Es+;A=3n?LaudzXsz-%Dg+PTsg+PTsg+PTs zg+PTsg+PTsg+PTsg+PTsg+PTsg+PTsg+PTsg+PTsg+PTsg+PTsg+PTsg+PTsg+PTs zg+PTsg+PTsg+PTsg+PTsg+PTsg+PTsg+PTsg+PVC?1$-Dg+c)W1;f$Kv+lM zY*vxWIx4hOuoS{_QpwyxTz)8Q{nIy@(D*4rMrvZ<%h*xt%Uu{VaDYH1ql4lDk=68@$c` zkh?!E0wY(&Q_||xE}nGT_b2HxpG=lunw@@ru*@dzhe7Sz<5$Odp07;e?CkB?o3qh) zwAy}KI4;jyhC$6|qsxP{*>K_g=kj*y&a6EGm7|e!-@Dq zKNl>P`tieTa`-C$!_m>m2Bv1hBpVJvXR;7~ULV!c74G-phYR4xkIhBXKNZPQ+Fa_6 zNBQ81{mPhDbEjcUI5?!YXWu;lBGU_jb>TlgHY`Zd!618;uYfb1xzMI*8ilFLPX>`q zc1*ny7(1M$ar%1e7T=YudE*gzY*>cJ{l2mN(DdDsoI7!06oyeJbVrj>YLYf6nJBTw zqy}`{mVud=WqaVUx#-01KXxM_e)EFD_YeO3)L95xz z^KaJG)YX^o@y<0?aJk1dw)mB?`+~V2xxs&Qqkf$H?Kv}j=d5X4fZ&m)_6c~{)ONxs z>4e6#^UiYu5bHh|C<;4doT9>{obpid_Q(4qkfLS ziBb_t+69`h6Cr1!Fb1j6BbDa)D0kZwF|O`DD_o{Fe);0%i*NI9_V!*3jwb_?9u1G; z2xhU}Btsp6PGk)~ag>0L3DHnAIzU^N2zQ;4rSomgUg+ti_Q&~f=u)%4|Ki1e!RyKQ z_I~p!KeizZ@{P-LaIhB13o?*NXuAkrlX!`P_=V9T>sD0z{Ri=;*39nz?QMV4nYbD3 z{qDs}FDdeud%tnVuZ+XS{lnZXkp5f4cteoJq4^fSFp7Wo^2P5bFw)V#d$HF)er02DaYx`X%B_iN#+Xi$#URlZ zXTd_4F_GlXAlw@5+vewj%lAqD=qNuLhpqh=zk9Lw&EF$`wk0dU{;}=;Ihma%gCictud-IM|J&cc-2d&~OUNZZ z8rUX+<2c6#&fSsgr&gTQk(9B~Qyca|R8!c-L*T`3iIK+5p!0dC=?rrfa={Ae?<9M_ z?Z15S;^p3pSFgU=H%$}U0mxvWjDShF)bRttHhLQIi*;vh97Zu*6>SNZQLXuTm@i+u zqY>01Y>xY;v-c7s<{Jd?%Z>?}omzu{f-JYuac(AFdu=-k*kIMZ+?%M`49Ut=-k_hHMN?I{X8G0Sp)?c(~R%|a0lYH ziM?Nt%9aVY6H^OY(S}-N^RJ&yW+&O;_20YU&<&1WVbRa9W77V<-Amd~#&h>0kKEM4 z49V+knAsM5#1Xj!ULjc%wv#9_X)jDS@6c>^7_S5wwsFzBUgLOnC=)(4`P+OvnM~h| zCqFtXb&RKM?AhDbKmK_3qi;&xDDU>W#4&>wzuxQ(yHeFiVWJTAsM)*g?TgOmzFQJh zMOVLF+h}|`=$Tf%b->`~54~|#p}5#xHvV|#Y7w}kU2GN80GL)C$69m}B|Q|A?IMty z=JjmjtiYH_d30-+iAilU_~R7-=jcq{oWHqzIjEU|+{1_fU6ata2_O)T;9)!su zyGIYckmw{44KgM+h;?Xf;?=%b4l$`cZE zPy)kR^Te1ewcV_1#7014@E?IiIy#KHsB^n9A5A-H*x8P{-+;@8WIq;!>lzX(4R31J zW(4j)q}dAUJ5A3>;v_kacexrWZIEx+q@)V!HHc^+UgIv$U5+budvnwgvkn zVIo$Zv#mDU=q?&k1k$jN3RE+MSA(p4o;`zMKs34(Za_Q11|jHQwIp%M$q0D zD_O!*n0JVsgAMa*0~2*WgV>A9(_ldxO$f*xPA3aM-~mJnI8Aoa3<2YV4WNQ&Eq9T? zrtBCSHcYYVVj+3$q_y~y(3#W6Qym8=0|@p$5*2Ug}DC5C35-kuwjBLwD~g^~u- zY)ZCt#Yy;%@R7Z$SJBwc?&uYe1W)7WGl`D`RB&LU>0^T|uz%i-aMg6p~=mLfLs3v1H3N*wtm{#zwx(nI0 zaU8_9RO@njI-bo%jAM45M(}9bh!%0<1(0 z;ERkh1>=V2>KgaR$sa_`q}g}lOT4B7(~}@kL?L2!@frj1kt%~A8Z;Er1uE)<+2uN3 zXA=8lwaEWsUdAzBBfQSHyNy8J1W8Nk^&VRt(LYzC@-)j7nQcT_n7NbFF$-M~#&otr z(AL`F>B;!V;R&^5CLtzev0u_&7g^G(%ROpCaWVRcw@6(=kTI2-mo_ihB7GJJ=mHbH zI&Oj$7oqWY$j%YhqE^k=+BK4T@#_!yUhYViX1k2nqL&&$Oh~`g1f(wQ&<5#e;&Xr} zeoNC`JR=+=LY5GVaOh+XwT(`SX+Yj!J$EUgItON=>`~mF323IFD(XLG7G{F zlpww*t#U#AkWegLdra7XS<2F=OO+UYpD~mxn|2Hh(GCx`q07WVAOkKW zs-tKwddD^S+NyYU~PI99wC`1)=D#Czc;9k%~B#y*c z@D@m+laVh?xJaS}k~y@k5GGRDhX(>+5VfJ{z$bDwaTfewX!m4^4&0T0|89!FX_# z4Pt8TgW}ZxwrPbW5DP#oz8z0pkcdC%7L(ki(-FeN%M-~L-ny_yffVx!XaMvKa(R~Y zn19%&saD!~QVhYO3ekk0`UDc8p7orqP&Mfj#_yHgT$k5CMGlp8xUaPm!9-6(eDhLz zS?u{X-jADw=BDC{V+?Oi6t(Qql(2)#z)74X1ufzTJwAd)awMILnYcy;4CO#wk&2K3 zh{W^~$`8TUD_zw&V+Xdq0o(3EFVIEC%{n3*)9xZ|!?5dV#lwSS^45S&u5-Y*0m%6^ zaNbMm_Q!+3l10TRqnFGzh%iQ3od6;ojZBen!M0Tzjj%55U1CzGjaC3-0GEK_KPDDAh@giX=B5E@MZ5lvA6s5`VCqW;a$k*X2&T4QVh;CcTFc~lC{yQUfhKpCo zO5=f~oHY}QRl%lB*3F+LX#zC7_iHa;9Kj;5Jc{dFzOxhuEg9}~e29FQuRkw2 z<)-Gb!<*~4lS?0WF2GKtL+J+Hfy6}#rr8#i(1eI(K7F*m);>6(@|z-sJ}f0E3e}kS z@Qug|3B)&v$dZ7CLe76QOx$9r?2fWZ9SXt$29QBQ?odMZASFrZsfn|sslznKR@Abl zTdc2P@%fw0%O+fiA<7+{H#yJ6`pDK=bEiZD=q6ZS;DQdJ?gxSZ6Y|do*d_lkn~cZ$ z(%7UKx{ISorPouOX@&|Pc?3NG;n zkfZ7=LSX zSaq3#sE%sa&z#=62_lTIUtd{w3J2XJIc|A8m!;K*!}(POf`T1Ppe9%BFZm*btd}>) z-QF%{T(5f`Wn1V4!dW^BT(Ie7lTS_#WVpiw3A~lQ_EMt^bM#w5uG&6=AP{VW>GeSvII^jDC`O{D4Ra{`Q z*z6<;rW#|%=#SQ;vJ=Iy_)Rf&$FsTAdCM#V0}48vOItyY#DEY55bwAFXCQbwKD;6^ z6vAHoP^^e>LJG-z1RCgt?0<=SSm$$hgyi$Yo53(g~&E z^uPdc6;2P?Axt}XKh0t{IbCsJ4;ww%zyvfQ_UZYw9v(0rS+CN-%r^tH9nVyfIsAyT zQv3pZ18y&g%#W-`zNeMO+?tts3S|*8w|3_mKDy>m@z}48OVAH*dyB{+8ae@aXiY1M zBT9%vVYbNHLckEFli)?bqy>p(r|gk@NF~dzsC|-B34$lhU5xzWr!og2M9DBO-mw5h z4#*Wu1I6#8*f9)Hf}ZQNeu*!T!UeIQeDH_m5Y2Q5lxs{s(8 zNfC&RzMw!1nu10;tmWb?a6(AKbOibIA&@#NPpVDJ5xW}f>bncFUTr5cFS;dc1_=}W z;ptiZi^%?Ki5kW*?<)$4>hnYS$VdgKJYBc1@>=S=t}+5`aV}7LDCkt&BGJnyM255- zq=D574zMl`0`YX18P5Z;3jwvf%%>lSJ=0KQ*eR{?7~V(dUL#=~tZROmz``M_gW??o zp(ak8-GeVM%k@Da+t*{W%Vs8`ilT*dBZ?Jd@kR|+crL;MNUT9&jh1EriAqlvkV1ATVK~ZNYq;bwZ<|Z=?rR&M3a&+TpW!qvsQjH!2=|XylXKN z6N6X=vv$%Vvd|U3C5a6hAZAx~H@UbmukN0>K*xnk7zstpi036UrvnRmf}{gb7Teu8L&fbNV1+Cp;~6L{wX-pvRdH zA!FO%lA*Q>JA#RWW!I^f)Eu}te1>c{b1ssf1hI0*rxI;R)Z$l2h*b3}0+YE7H7V6Z zq_eyxsAzCSIIOj~dX%lx{y;Z{V6b82?n}%l5J%szBbd#eIu2Sv=Uff;o63|C^6eG{ z6#Id2No(-zIwR4g*D;q?)B=)7@UoPkW*R&SPqej=;x@?HIY}uM`?Tk&B_z=jMa}YP zUEwsXfl$ye>JTej$?Ba938hIPi%ul(Vt&~_0J9Ea31Ds|8JWvw4L0&4ouH~ghHn)y zv}-8Rkkxx7xXh+KEXY`tf;)i&fUx1_$d-_J4Vl{=O^M_WOKl@nEy{63^4KOe4i-cq z+KhIxlt6mBP5=dnoHwOn4);CGx}bx7<+)JO$L z7a(6uT1GFkW&0&x-Yo61^M!8?r4BSLP=K^0My;F`#@<9D$$n9>f!JB05Pm3I=y4Wa z>|nu)Lm8{qy-_IXPRM8zn`&gG1DLUA77|63GmJjLT!C@DfCY(qYlk?pu^pK=$RQBp zYVr#LxIC(rnsuxC&-E8;Y6{^vZ=7i3J;_jHjQYNAxSfWfQ9e<77?>J-(Q zA}Nkx{XQW)6_jVwS9i@HC)ub-0yKV1@nW9NpXm1Qo|OMhjc|>MSWr;2VBJXS@KL=?fWHB8>w8844xPFGJ%0gbI7_K z^kWeFTvgHaX0tb|d^54NsL;e;{l4n!#YggxnINnraf$R|`lLaxkiGP_(>Bdti*O?Q zZ`3^k(yP)Ag2Cu5ws_@orx>O;;4(Xa8o0J7avu3%j-U|=#q09!skUL3l$_C2K1CnV zRWf#~W4ijhv_=40iLz!%=<6g# z!5;a8ddcK1^kX(_Y&N{iwW^t`IV57c^ zD=)pWv4@h5*O2`D^oa{&A8&z`H9^p)m$h2W1zH4(sTGFDGI~m38AN5wO<*r|L>~yk z4^~z9%1JD05ftVLs8ER`*&?GrG6fO|6ad1!gOb`!=|%}<{&wqsEa*($l1EvL3p*Ex z$rdcZm5y9|#3cY1EN)0f8?W*a@@4NK;+M=A$zG_~^E@gNVHnl#QKK3souXLuMIW#~ z20NHf?C~Q5g^q}Ym>@brWlIP1J)K)L1PeI>Z-m2~mB?dUfAk5|h9xp&M7;VM4{70I zeWaS`6^0Gti>=FAL9HQqOh!hA6x~29V%3n*4sq&>db4oJwYPZi?R2p|c;yV@3=&<^ z#TNLhx|W3j97Mpho{+2v*(>74Yp$JeAWdJ2%mgS@$R-<((W~?i-6I2P(W0IU)ZvqxXqco{8*%bk)A`y_vAt_7{kC(WPmkb%=IwK3Q`)NzalmJz7fM zfKF3pG3Gq#D^#4W=)n^6^6jsXcEw)8+Ldsw6;Ym}pd=@EZq^!g{C<2>kbvFAKtXet zzt<)0*Dih8FtHS6Av+4>FEyv!QklHDkOd`?1V7M+EdGvsw8T4Xr~xPmR)WchO_kMA z4;xV#EupW1=eMNzTsl}qYF&ykA$YQDEK`ELh#_Z`-FV-`n^a6y34LB7Q1WIB4Tu=C zRWUPUEgl$1m_R91p1`c~Mm*hM-6`RJ4XZC zBM34EEJC5uUMF!^h|>$c1bRVRAz#P`KtwFzNO#rI@+l%(P<{}*?W$YXzaxVK#jq+# zUMzMCMA`_5Pf^SnQItlfm?g^nsOu|t8?V2`%nig1z}#UDgt&HJfqO+K{1un+o|1#k zSE2?Vfl+u&@EE0HAtp>aNCo)L6!)M|>&?(Fj z-Q0mYpE1TE@WL07=J}l!=}mlgX=-_Cq#G&rxL(fR;-;*yMQ*TMN6Qo>S%{+Gamd)E zwhem)?&;NW$zT|cV?0pX-d30jWax%Uk`cb_l68xlZRHdwM%fv^P)k*a;+qy>UWsAI zSsKfxI~&pqK~||9_F-hCst;AjMHmqImq5V}pn_SFo@1CU{G5wvxlgja6^dq~iH-Yl zd(3j~2|>x25&-TofO@^jfs zL>*pE2u{WJ>v_c@U9YQSS4q!%T>tzlY%VQ(7BPQbULxJg4Jkdr5AZ3i<_<83VB{b{ z#l(0;RkY|dEj>NEl~a8GPA+{Dhd{EIVpvIi_^9FYNN84uAjkSPvD&387JeAB=>|fE zy%B2bC3tAM~SFJ)>Xtz2n>h@2zr7tAJ{V4|CdI#~PXp@v3PcKSX356b_Os+wioLe$E%Fo-n_Q>Mj zL;xc324=4$?6i1~t-e>{4+IpcgU<1iI!G6|N^Y&@X#+Q4sh znn0pada7Ivx|Qq{&h z4T}rmZn|dC@wd;hU|6W9bf!?}iLnPIh7a3vkQ$sH-Q#w}nqbMPxvF`;9z6sku%OGBv^v6*dY#$@b-rEFG)yk2C;-eN2!jn7=BB;XLBt<-xcujKA~} zWB!o`OhYP{S`gC)ATs;p{Rj|Ty9Z$D1yug@P|A=?2r{c(6eW zo)DaLAz^S5lHS)Tp{!Kiqe}eVoPBDqajDDHOEfiA+5xYNw@+H&!Tz1XSawMl>Qu40 ziTK|bh%@moen8g2;}3g)`3E?u=Z2EMO7PV?-R7?g&e}>7|0P;_ z$vg36U}f2UsntYy)7rw(b$hY?ZycyRxhDU*m9E@;kzDTd_f*sm>0h4;l?Re9>Pe0& zBBn5}0i_C`rOB`sGN-4_Emkh>X8{`-xo>^6X4 z?3DLG9=vBlw1<{9Mx_<;(!FkX>HCcEe&3nIYz>&H9GHK2^59|BNuTHnOrr(lbyO3K z1TeljikCRp>EK27?>CYye{0fa@1Zo%)HMksJ+vZV8-93+E$Dj9I!OTSc#4R@xyHgI zvPrlzzOndr%LtTQZo)tAVDTGHuU3>iIBWN%awLAqk5eKf0i(O`@`hdialCI?99J@$ zEjByWf}*O2F2F%~a8)qr;kFaKB=UV;Pyr%}-(^{w;5Q3e9-3rt4c%cMV+-PLb#3bt z5HZ_@5tGqAQQCxCX0ZQ39yheB=Y!A8t#KjMPSAk`hgq|8i=`pAzi#oFQ^HhU%3$gR zM8#wykPXiMny>@u$Il3t*#OG{6*;(n)nPFN#jR&Es<%j+NHs^b4xwIf;SXvGLV8S> zajn0OFfRgeYw5}=aA56^zT-w(Pt4wg6)f;2*7!2NrM0r0x2)1MfF?6wKf1VE z-yitwvFo>+YGF<$x@h|DlPn4NOTvXUL%G|0$MCVv5U3ES z5U3ES5U3ES5U3ES5U3ES5U3ES5U3ES5U3ES5U3ES5U3ES5U3ES5U3ES5U3ES5U3ES z5U3ES5U3ES5U3ES5U3ES5U3ES5U3ES5U3ES5U3ES5U3ES5U3ES5U3ES5U3ES5U3ES a5U3ES5U3ES5U3ES5U3ES5cpXj@c#e-Ilv46 literal 0 HcmV?d00001 diff --git a/at/logo.bmp b/at/logo.bmp new file mode 100755 index 0000000000000000000000000000000000000000..d8d13b8bee662dce304712829b260a4723bcae91 GIT binary patch literal 99254 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 #include #include + #include #include #include -#include #include #include + #include #include #include -#include - #include +#include #include "ba0.h" #include "ba0101.h" @@ -31,19 +31,13 @@ #define DLG_TREE 301 #define DLG_LIST 302 -#ifdef XVAGA -#define MEN_FILE "bamenu.men" -#else -#define MEN_FILE "baprassi.men" -#endif - /////////////////////////////////////////////////////////// // TMenu_application declaration /////////////////////////////////////////////////////////// class TMenu_application : public TSkeleton_application { - const char* _name; + TFilename _menuname; TMenu _menu; int _tree_view; @@ -51,9 +45,6 @@ class TMenu_application : public TSkeleton_application TMask* _mask; - static int _last_button; - static bool _find_button; - protected: // TApplication virtual bool user_create(); virtual bool destroy(); @@ -62,6 +53,8 @@ protected: // TApplication virtual void on_firm_change(); virtual bool test_assistance_year() const; + const TString& ask_user_password(); + protected: void deconnect_user(); virtual void main_loop(); @@ -101,7 +94,7 @@ public: void reload_images(); TMenu& main_menu() { return _menu; } - TMenu_application(const char* name) : _name(name), _mask(NULL) { } + TMenu_application(const char* name) : _menuname(name), _mask(NULL) { } virtual ~TMenu_application() { } }; @@ -262,21 +255,21 @@ TPicture_mask::TPicture_mask(const char* name, int dx, int dy, { set_current(submenu); TFilename logoname; - const char* ext[3] = { "jpg", "gif", "bmp" }; - for (int i = 0; i < 3; i++) + const char* const ext[] = { "jpg", "png", "gif", "bmp", NULL }; + for (int i = 0; ext[i]; i++) { logoname = "logo"; logoname << '.' << ext[i]; if (logoname.custom_path()) + break; } TImage logo(logoname); - if(logo.ok()) + if (logo.ok()) { if (can_be_transparent(logo)) logo.convert_transparent_color(MASK_BACK_COLOR); _logo = new TImage(logo); - } } @@ -788,8 +781,9 @@ COLOR TColor_mask::cid2color(short cid) const // Menu application /////////////////////////////////////////////////////////// -int TMenu_application::_last_button = 0; -bool TMenu_application::_find_button = false; +//int TMenu_application::_last_button = 0; +//bool TMenu_application::_find_button = false; + bool TMenu_application::test_assistance_year() const { @@ -930,12 +924,12 @@ HIDDEN bool pwd_handler(TMask_field& fld, KEY key) if (key == K_F8) { TMask& m = fld.mask(); - TString16 pwd; - TString16 usr = dongle().administrator(&pwd); + TString pwd; + TString usr = dongle().administrator(&pwd); TLocalisamfile users(LF_USER); - users.put("USERNAME", usr); + users.put(USR_USERNAME, usr); users.read(); - pwd = decode(users.get("PASSWORD")); + pwd = decode(users.get(USR_PASSWORD)); m.set(F_USER, usr); m.set(F_PASSWORD, pwd); m.stop_run(K_ENTER); @@ -948,30 +942,34 @@ void TMenu_application::reload_images() _menu.reload_images(); } -bool TMenu_application::check_user() -{ +const TString& TMenu_application::ask_user_password() +{ + TString& utente = get_tmp_string(); + utente = user(); + +#ifndef _DEMO_ // Disabilita le voci di personalizzazione - for (int mi = 2; mi <= 6; mi++) + int mi; + for (mi = 2; mi <= 7; mi++) disable_menu_item(MENU_ITEM(mi)); - TString utente(user()); - -#ifdef _DEMO_ - user() = utente = dongle().administrator(); - const bool ok = TRUE; -#else - TMask m("ba0100a"); if (is_power_station()) + { m.set_handler(F_USER, pwd_handler); m.set_handler(F_PASSWORD, pwd_handler); } + m.set(F_USER, utente); + m.first_focus(F_PASSWORD); + TEdit_field& e = m.efield(F_USER); e.browse()->set_filter("ISGROUP!=\"X\""); + TLocalisamfile& users = e.browse()->cursor()->file(); + TString pwd; bool ok = false; for (int i = 0; i < 3 && !ok; i++) @@ -982,103 +980,164 @@ bool TMenu_application::check_user() m.first_focus(F_PASSWORD); } + if (m.run() == K_ESC) break; utente = m.get(F_USER); - const TString& pass = m.get(F_PASSWORD); - pwd = ""; + TString pwd; - TLocalisamfile users(LF_USER); - users.put("USERNAME", utente); + users.put(USR_USERNAME, utente); if (users.read() == NOERR) { - pwd = decode(users.get("PASSWORD")); + pwd = decode(users.get(USR_PASSWORD)); } else { + // Creo l'amministratore se necessario users.zero(); - if (utente == dongle().administrator(&pwd)) + if (utente == dongle().administrator(&pwd)) { - users.put("USERNAME", utente); - users.put("USERDESC", "Amministratore"); - users.put("PASSWORD", encode(pwd)); + users.put(USR_USERNAME, utente); + users.put(USR_USERDESC, "Amministratore"); + users.put(USR_PASSWORD, encode(pwd)); users.write(); } else utente.cut(0); } - - ok = utente.not_empty() && pwd.not_empty() && pwd == pass; - - if (ok) + + const TString& pass = m.get(F_PASSWORD); + ok = utente.full() && pwd == pass; + + if (ok) { - ok = !users.get_bool("CONNECTED"); - if (!ok) + if (users.get_bool("CONNECTED")) { ok = yesno_box("%s\n%s", - TR("L'utente risulta essere già collegato"), - TR("Si desidera continuare ugualmente?")); + TR("L'utente risulta essere già collegato"), + TR("Si desidera continuare ugualmente?")); } - - if (ok) - { - users.put("USERNAME", dongle().administrator()); - users.read(); - if (users.get("AUTSTR") == "CONVERTING") - { - TString msg; msg << TR("E' in corso una conversione archivi") << ":\n"; - if (utente == dongle().administrator()) - { - msg << TR("Si desidera continuare ugualmente?"); - ok = yesno_box(msg); - } - else - { - msg << TR("Accesso negato."); - ok = error_box(msg); - } - } - } - - if (ok) - { - dongle().logout(); - user() = utente; - ok = get_serial_number() >= 0; - if (!ok) - error_box(TR("Probabilmente è stato superato il numero massimo di utenti")); - } - } - else + } + else { error_box(TR("Utente e/o password errata: fare attenzione alle maiuscole")); - m.set(F_PASSWORD,""); + m.reset(F_PASSWORD); } - + } + + if (ok && utente != dongle().administrator() && users.curr().exist(USR_DATAPWD)) + { + TConfig studio_ini(CONFIG_STUDIO, "Main"); + const long expiration = studio_ini.get_long("PasswordExpiration"); + bool runba = expiration > 0; + while (runba) + { + runba = users.get(USR_PASSWORD).empty(); + if (!runba) + { + const TDate oggi(TODAY); + const TDate datapwd = users.get_date(USR_DATAPWD); + if (datapwd.ok()) + runba = expiration < (oggi-datapwd); // Password scaduta + else + { + // Scrivi la data se necessario + users.put(USR_DATAPWD, oggi); + users.rewrite(); + } + } + if (runba) + { + warning_box(TR("La password e' scaduta o vuota:\ne' necessario inserirne una nuova")); + user() = utente; + TExternal_app app("ba1 -3"); + app.run(); + users.reread(); + } + } + } + + if (!ok) + utente.cut(0); + + // Abilita le voci di personalizzazione + for (mi = 2; mi <= 7; mi++) + enable_menu_item(MENU_ITEM(mi)); +#endif + + return utente; +} + +bool TMenu_application::check_user() +{ + bool ok = false; + +#ifndef _DEMO_ + TString utente = user(); + + if (_mask == NULL) // Primo login della sessione; + { + TConfig campo_ini(CONFIG_INSTALL, "Main"); + const use_system_user = campo_ini.get_bool("AutoLogin"); + if (use_system_user) + ok = !cache().get(LF_USER, utente).empty(); + } + + if (!ok) + { + utente = ask_user_password(); + ok = utente.full(); + } + + if (ok) + { + const TString& autstr = cache().get(LF_USER, dongle().administrator(), USR_AUTSTR); + if (autstr == "CONVERTING") + { + TString msg; msg << TR("E' in corso una conversione archivi") << ":\n"; + if (user() == dongle().administrator()) + { + msg << TR("Si desidera continuare ugualmente?"); + ok = yesno_box(msg); + } + else + { + msg << TR("Accesso negato."); + ok = error_box(msg); + } + } + + if (ok) + { + dongle().logout(); + user() = utente; + ok = get_serial_number() >= 0; + if (!ok) + error_box(TR("Probabilmente è stato superato il numero massimo di utenti")); + } + if (ok) { TLocalisamfile users(LF_USER); users.put("USERNAME", utente); - users.read(_isequal, _lock); - users.put("CONNECTED", "X"); - users.rewrite(); + if (users.read(_isequal, _lock) == NOERR) + { + users.put("CONNECTED", "X"); + users.rewrite(); + } + + // Memorizza l'ultimo utente per riproporlo la prossima volta + TConfig campo_ini(CONFIG_INSTALL, "Main"); + campo_ini.set("User", utente); } - } -#endif // _DEMO_ + } +#else + ok = true; +#endif if (ok) { - if (utente != dongle().administrator()) - { - TConfig prawin(CONFIG_INSTALL, "Main"); - prawin.set("User", utente); - } - - // Abilita le voci di personalizzazione - for (int mi = 2; mi <= 6; mi++) - enable_menu_item(MENU_ITEM(mi)); - customize_colors(); // Aggiorna set di colori reload_images(); // Ritrasparentizza immagini xvt_dwin_invalidate_rect(TASK_WIN, NULL); // Ridisegna sfondo @@ -1161,7 +1220,7 @@ bool TMenu_application::test_programs() TString msg = TR("I seguenti moduli devono essere aggiornati prima dell'utilizzo:"); int update_needed = 0; - for (int module = 0; scan.line().not_empty(); module++) + for (int module = 0; scan.line().full(); module++) { if (dongle().active(module)) { @@ -1206,18 +1265,18 @@ bool TMenu_application::test_programs() (!more && !yesno_box(TR("Si desidera aggiornare i moduli adesso?")))) break; - const TString16 old_user = user(); + const TString old_user = user(); user() = dongle().administrator(); // Divento temporaneamente amministratore TExternal_app app("ba1 -6"); app.run(); user() = old_user; // Ripristino utente normale - more = TRUE; // ricontrolla + more = true; // ricontrolla if (sys_dll_changed()) //costringe ad uscire dal programma se si e' installato il modulo SY return false; } _menu.set_dangerous_modules(dangerous); - return TRUE; + return true; } bool TMenu_application::user_create() @@ -1258,7 +1317,7 @@ bool TMenu_application::user_create() if (!_menu.ok()) { TWait_cursor hourglass; - TFilename menu = _name; + TFilename menu = _menuname; menu.ext("men"); _menu.read(menu); update_preferred_tree(); @@ -1496,6 +1555,7 @@ bool TMenu_application::choose_study() { disable_menu_item(MENU_ITEM(4)); + TMask m(TR("Scelta studio"), 1, 62, 4); m.add_button(DLG_OK, 0, "", -12, -1, 10, 2); m.add_button(DLG_CANCEL, 0, "", -22, -1, 10, 2); @@ -1519,6 +1579,7 @@ bool TMenu_application::choose_study() enable_menu_item(MENU_ITEM(4)); + return ok; } @@ -1677,8 +1738,9 @@ void TMenu_application::update_preferred_tree() if (sm != NULL) { const int num = node.get_int(1); - if (num < sm->items()) + if (num >= 0 && num < sm->items()) pref->add(new TMenuitem(sm->item(num))); + } } } @@ -1937,6 +1999,10 @@ bool TMenu_application::menu(MENU_TAG mt) case MENU_ITEM(4): choose_study(); break; case MENU_ITEM(5): add_to_preferred(); break; case MENU_ITEM(6): manage_preferred(); break; + case MENU_ITEM(7): + if (check_user()) + _mask->stop_run(K_CTRL + 'R'); // Ricarica maschera + break; default: if (mt >= MENU_ITEM(50) && mt < MENU_ITEM(50+_preferred.items())) { @@ -1972,18 +2038,29 @@ bool TMenu_application::menu(MENU_TAG mt) int ba0100(int argc, char** argv) { TApplication::check_parameters(argc, argv); - if (user().blank()) + + TString& u = user(); + if (u.blank()) { - TConfig prawin(CONFIG_INSTALL, "Main"); - TString16 u = prawin.get("User"); - if (u.blank()) - u = dongle().administrator(); - user() = u; + TConfig campo_ini(CONFIG_INSTALL, "Main"); + const bool su = campo_ini.get_bool("AutoLogin"); + if (su) // usa utente di windows + { + xvt_sys_get_user_name(u.get_buffer(), u.size()+1); + u.upper(); + if (u == "ADMINISTRATOR") // Converti amministratore + u = dongle().administrator(); + } + if (u.blank()) + u = campo_ini.get("User"); // Ultimo utente usato + if (u.blank()) + u = dongle().administrator(); // Usa amministratore come extrema ratio } TFilename menu = (argc < 2) ? MEN_FILE : argv[1]; if (menu.custom_path()) + { TMenu_application *ma = new TMenu_application(menu); ma->run(argc, argv, TR("Menu Principale")); @@ -1993,4 +2070,4 @@ int ba0100(int argc, char** argv) error_box(FR("Non esiste il menu %s"), (const char*)menu); return 0; -} +} \ No newline at end of file diff --git a/ba/ba0101.cpp b/ba/ba0101.cpp index 0d4114cdb..bfcee74bb 100755 --- a/ba/ba0101.cpp +++ b/ba/ba0101.cpp @@ -674,6 +674,7 @@ TImage& TMenu::image(const char* name) const char* ext[4] = { "jpg", "gif", "bmp", "png" }; bool bFound = false; for (int i = 0; i < 4 && !bFound; i++) + { realname = name; realname.ext(ext[i]); @@ -762,4 +763,4 @@ TMenu::TMenu() : _current(NULL), _item(0) { } TMenu::~TMenu() -{ } +{ } \ No newline at end of file diff --git a/ba/ba1400.cpp b/ba/ba1400.cpp index 30e22e44b..5878bb313 100755 --- a/ba/ba1400.cpp +++ b/ba/ba1400.cpp @@ -157,7 +157,7 @@ protected: virtual bool user_create(); virtual bool user_destroy(); virtual TMask* get_mask(int mode) { return _msk; } - virtual bool changing_mask(int mode) { return FALSE; } + virtual bool changing_mask(int mode) { return false; } virtual TRelation* get_relation() const { return _rel; } virtual int read(TMask& m); @@ -190,7 +190,7 @@ protected: virtual bool user_create(); virtual bool user_destroy(); virtual TMask* get_mask(int mode) { return _msk;} - virtual bool changing_mask(int mode) { return FALSE;} + virtual bool changing_mask(int mode) { return false;} virtual TRelation* get_relation() const { return _rel;} virtual int read(TMask& m); virtual bool remove(); @@ -297,7 +297,6 @@ TSubmenu& TMenu::get_submenu(const char* name) return *sub; } - void TMenu::import(const char* filename, TString& first) { TFilename fname(filename); fname.custom_path(); @@ -313,7 +312,7 @@ void TMenu::import(const char* filename, TString& first) first = line; sub = &get_submenu(line); } else - if (line.compare("Caption", 7, TRUE) == 0) + if (line.compare("Caption", 7, true) == 0) { CHECK(sub, "Invalid menu file"); const int equal = line.find('='); @@ -322,14 +321,14 @@ void TMenu::import(const char* filename, TString& first) line.strip("\""); *sub = line; } else - if (line.compare("Module", 6, TRUE) == 0) + if (line.compare("Module", 6, true) == 0) { CHECK(sub, "Invalid menu file"); const int equal = line.find('='); CHECK(equal > 0, "Invalid menu Module"); sub->set_module(atoi(line.mid(equal+1))); } else - if (line.compare("Item", 4, TRUE) == 0) + if (line.compare("Item", 4, true) == 0) { CHECK(sub, "Invalid menu file"); const int equal = line.find('='); @@ -388,7 +387,7 @@ TMenu::TMenu(const char* menuname) bool TSet_users::user_handler(TMask_field& f, KEY key) { if (!f.mask().query_mode() || !f.to_check(key)) - return TRUE; + return true; const bool ok = f.get().find(' ') < 0; if (!ok) return f.error_box(TR("Il nome dell'utente non deve contenere spazi")); @@ -410,16 +409,45 @@ bool TSet_users::group_handler(TMask_field& f, KEY key) } app().build_sheet(&rec); } - return TRUE; + return true; } bool TSet_user_passwd::password_handler(TMask_field& f, KEY key) { - if (f.mask().query_mode() || key != K_ENTER) return TRUE; - const bool ok = f.get().len() > 3 && f.get().find(' ') < 0; + bool ok = true; - if (!ok) - return f.error_box(TR("La password deve essere lunga almeno 4 caratteri e non contenere spazi")); + if (key == K_ENTER && !f.mask().query_mode()) + { + const TString& pwd = f.get(); + const int pwdlen = pwd.len(); + + for (int i = pwdlen-1; i >= 0; i--) + { + if (pwd[i] >= 0 && pwd[i] <= ' ') + { + ok = error_box("La password contiene un carattere non valido."); + break; + } + } + + if (ok) + { + TConfig ini(CONFIG_STUDIO, "Main"); + const int minlen = ini.get_int("MinPwdLen", NULL, -1, 4); + if (pwdlen < minlen) + { + TString msg; msg.format(TR("La password deve essere lunga almeno %d caratteri."), minlen); + if (pwdlen == 0 && user() == dongle().administrator()) + { + msg << '\n' << TR("Si desidera continuare ugualmente?"); + ok = yesno_box(msg); + } + else + ok = f.error_box(msg); + } + } + } + return ok; } @@ -440,7 +468,7 @@ bool TSet_users::tree_handler(TMask_field& f, KEY key) { menu->properties(old) = sf.rows_array(); - const TString16 mod = old.left(2); + const TString4 mod = old.left(2); TString_array& mprop = menu->properties(mod); if (m.get_bool(F_NOWRITE)) { @@ -473,16 +501,16 @@ bool TSet_users::tree_handler(TMask_field& f, KEY key) sf.check_row(r); sf.force_update(); } - const TString16 mod = cmd.left(2); + const TString4 mod = cmd.left(2); const TString_array* mprop = menu->find_properties(mod); m.enable(F_NOWRITE); m.set(F_NOWRITE, mprop && mprop->items() ? "X" : ""); - m.field(F_NOWRITE).set_dirty(FALSE); + m.field(F_NOWRITE).set_dirty(false); } } } } - return TRUE; + return true; } bool TSet_users::p_notify(TSheet_field& f, int r, KEY k) @@ -498,7 +526,7 @@ bool TSet_users::p_notify(TSheet_field& f, int r, KEY k) default: break; } - return TRUE; + return true; } void TSet_user_passwd::build_sheet(const TRectype* r) @@ -600,14 +628,14 @@ bool TSet_user_passwd::user_has_module(int mod) bool TSet_users::k_notify(TSheet_field& f, int r, KEY k) { if (k == K_INS || k == K_DEL) - return FALSE; + return false; if (k == K_TAB) { TMask& m = f.sheet_mask(); m.enable(F_ENABLE, f.cell_enabled(r, f.cid2index(F_ENABLE))); } - return TRUE; + return true; } bool TSet_user_passwd::user_create() @@ -625,7 +653,7 @@ bool TSet_user_passwd::user_create() _msk->enable_page(1, superuser); _msk->enable(-G_SUPERUSER, superuser); - return TRUE; + return true; } bool TSet_users::user_create() @@ -646,7 +674,7 @@ bool TSet_users::user_create() _msk->tfield(F_PERMESSI).set_tree(_tree); _msk->sfield(F_PROPERTIES).set_notify(p_notify); - return TRUE; + return true; } int TSet_users::read(TMask& m) @@ -655,7 +683,7 @@ int TSet_users::read(TMask& m) const TRectype& r = get_relation()->curr(); build_sheet(&r); - const TString16 pwd = decode(r.get("PASSWORD")); + const char* pwd = decode(r.get("PASSWORD")); m.set(F_PASSWORD, pwd); m.set(F_PROVA, pwd); @@ -664,19 +692,22 @@ int TSet_users::read(TMask& m) return NOERR; } - void TSet_user_passwd::put_in_record(const TMask& m) { - const TString16 s = encode(m.get(F_PASSWORD)); TRectype& r = get_relation()->curr(); - if (_msk->get(F_USER) == user()) + const char* s = encode(m.get(F_PASSWORD)); + if (r.get("PASSWORD") != s) + { r.put("PASSWORD", s); - else - error_box(TR("Impossibile cambiare la password di altri utenti")); + if (r.exist("DATAPWD")) + r.put("DATAPWD", TDate(TODAY)); + } } void TSet_users::put_in_record(const TMask& m) { + TSet_user_passwd::put_in_record(m); + TString autstr(ENDAUT, ' '); TSheet_field& sf = sheet_field(); FOR_EACH_SHEET_ROW(sf, i, riga) @@ -687,9 +718,7 @@ void TSet_users::put_in_record(const TMask& m) autstr[module] = c; } - const TString16 s = encode(m.get(F_PASSWORD)); TRectype& r = get_relation()->curr(); - r.put("PASSWORD", s); r.put("AUTSTR", autstr); TToken_string prop_field(256, '\n'); @@ -726,10 +755,9 @@ bool TSet_users::remove() const bool ok = TRelation_application::remove(); if (ok) { - const TString16 u = get_relation()->curr().get("USERNAME"); TFilename file = firm2dir(-1); // Directory dati file.add("config"); // Directory configurazioni - file.add(u); // Nome utente + file.add(get_relation()->curr().get("USERNAME")); // Nome utente file.ext("ini"); // Estensione ::remove(file); } @@ -738,16 +766,18 @@ bool TSet_users::remove() bool TSet_user_passwd::user_destroy() { - if (_msk != NULL) delete _msk; - if (_rel != NULL) delete _rel; - if (_im != NULL) delete _im; - return TRUE; + if (_msk != NULL) delete _msk; + if (_rel != NULL) delete _rel; + if (_im != NULL) delete _im; + return true; } + bool TSet_users::user_destroy() { TSet_user_passwd::user_destroy(); - if (_tree != NULL) delete _tree; - return TRUE; + if (_tree != NULL) + delete _tree; + return true; } @@ -757,7 +787,7 @@ int TSet_user_passwd::read(TMask& m) const TRectype& r = get_relation()->curr(); build_sheet(&r); - const TString16 pwd =decode(r.get("PASSWORD")); + const char* pwd = decode(r.get("PASSWORD")); m.set(F_PASSWORD, pwd); m.set(F_PROVA, pwd); @@ -769,6 +799,7 @@ void TSet_user_passwd::init_query_mode(TMask& m) enable_aut(); _msk->set(F_USER,user()); _msk->send_key(K_AUTO_ENTER,0); + _msk->disable(DLG_NEWREC); _msk->disable(DLG_FINDREC); _msk->disable(DLG_DELREC); } @@ -776,8 +807,10 @@ void TSet_user_passwd::init_query_mode(TMask& m) void TSet_user_passwd::init_modify_mode(TMask& m) { enable_aut(); + _msk->disable(DLG_NEWREC); _msk->disable(DLG_FINDREC); _msk->disable(DLG_DELREC); + _msk->enable_page(1, false); } int ba1400(int argc, char** argv) diff --git a/ba/ba8200.cpp b/ba/ba8200.cpp index 816b3db3e..5a08dde1e 100755 --- a/ba/ba8200.cpp +++ b/ba/ba8200.cpp @@ -8,7 +8,7 @@ #include #include #include -#include +#include #include #include #include @@ -917,6 +917,7 @@ void TQuery_mask::save_as(TRecordsetExportFormat fmt) return; } + xvt_fsys_save_dir(); TFilename path; path.tempdir(); @@ -1519,4 +1520,4 @@ int ba8200(int argc, char* argv[]) TSQL_recordset_app app; app.run(argc, argv, TR("Query Generator")); return 0; -} +} \ No newline at end of file diff --git a/ba/ba8300.cpp b/ba/ba8300.cpp index 463984e95..f3e89b230 100755 --- a/ba/ba8300.cpp +++ b/ba/ba8300.cpp @@ -21,6 +21,7 @@ /////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////// // TReport_sheet /////////////////////////////////////////////////////////// @@ -167,6 +168,7 @@ void TSection_properties_mask::vedo_non_vedo() show(F_CONDITION, /*type == 'B' &&*/ level > 0 && level < 10); show(F_GROUP_BY, type == 'H' && level > 1 && level < 10); show(F_SQL, type == 'B' && level > 10); + show(F_KEEP_WITH_NEXT, level > 1 && type == 'H'); show(F_CAN_BREAK, level > 0 && type == 'B'); show(F_HIDE_IF_NEEDED, level == 0 && type != 'B'); @@ -314,6 +316,7 @@ void TReport_properties_mask::set_report(const TReport& r) set(F_FONT_AUTO, r.use_printer_font()); set(F_ORIENTATION, r.orientation()); set(F_DX, r.user_defined_cpi()); + set(F_DY, r.lpi()); set_font_info(r.font()); set(F_CLASS, r.get_class()); @@ -341,6 +344,7 @@ void TReport_properties_mask::get_report(TReport& r) const r.set_orientation(get_int(F_ORIENTATION)); r.set_class(get(F_CLASS)); r.set_command_line(get(F_COMMAND)); + const TString& oldlib = r.get_libraries(); if (oldlib != get(F_INCLUDE)) @@ -973,7 +977,6 @@ bool TReport_mask::on_field_event(TOperable_field& o, TField_event e, long jolly warning_box(TR("Nessuna riga risultato")); } delete rex; - } } break; diff --git a/ba/ba8300.h b/ba/ba8300.h index 51e0a55a8..9842e8e3f 100755 --- a/ba/ba8300.h +++ b/ba/ba8300.h @@ -56,9 +56,9 @@ #define F_ORIENTATION 169 #define F_CLASS 170 #define F_COMMAND 171 + #define F_SQL 201 #define F_IMPORT_QRY 202 #define F_NEW_QRY 203 #define F_SHOW_QRY 204 - diff --git a/ba/ba8300c.uml b/ba/ba8300c.uml index 2b372d5e5..b12639dae 100755 --- a/ba/ba8300c.uml +++ b/ba/ba8300c.uml @@ -49,6 +49,7 @@ END BOOLEAN F_DISABLED BEGIN PROMPT 24 4 "Disattivata" + END BOOLEAN F_PAGE_BREAK @@ -94,9 +95,18 @@ MEMO F_CONDITION 58 6 BEGIN // Visibile sezioni con livello > 0 PROMPT 1 8 "Condizione" + FLAGS "H" END +MEMO F_SQL 56 6 +BEGIN + // Visibile sezioni con livello > 10 + PROMPT 1 6 "Query" + FLAGS "H" + CHECKTYPE REQUIRED +END + BUTTON DLG_OK 10 2 BEGIN PROMPT -13 -1 "" @@ -231,4 +241,3 @@ END ENDPAGE ENDMASK - diff --git a/ba/ba8300d.uml b/ba/ba8300d.uml index f34e090de..544182709 100755 --- a/ba/ba8300d.uml +++ b/ba/ba8300d.uml @@ -24,6 +24,14 @@ BEGIN CHECKTYPE NORMAL END +RADIO F_ORIENTATION 1 24 +BEGIN + PROMPT 1 1 "@bOrientamento della carta" + ITEM "0|Impostazioni Stampante" + ITEM "1|Ritratto (Verticale)" + ITEM "2|Paesaggio (Orizzontale)" +END + NUMBER F_DY 2 BEGIN PROMPT 1 6 "Linee per pollice " @@ -54,11 +62,14 @@ END BUTTON DLG_CANCEL 10 2 BEGIN PROMPT -12 -1 "" + END BUTTON DLG_OK 10 2 + BEGIN PROMPT -22 -1 "" + END ENDPAGE @@ -68,6 +79,7 @@ PAGE "Parametri" -1 -1 60 16 SPREADSHEET F_PARAMS 0 -3 BEGIN PROMPT 1 1 "" + ITEM "Parametro@16" ITEM "Valore@50" END @@ -128,6 +140,26 @@ END ENDPAGE +PAGE "Allegati" -1 -1 60 16 + +SPREADSHEET F_LINK 0 -3 +BEGIN + PROMPT 1 1 "" + ITEM "Allegato@50" +END + +BUTTON DLG_CANCEL 10 2 +BEGIN + PROMPT -12 -1 "" +END + +BUTTON DLG_OK 10 2 +BEGIN + PROMPT -22 -1 "" +END + +ENDPAGE + ENDMASK PAGE "Parametro" -1 -1 60 5 diff --git a/ba/ba8301.cpp b/ba/ba8301.cpp index 5bcfb06b4..5b2ab0df9 100755 --- a/ba/ba8301.cpp +++ b/ba/ba8301.cpp @@ -1700,7 +1700,9 @@ void TReport_window::draw_field(const TReport_field& rf) advanced_draw_rect(r, rf.pattern(), rf.border(), rf.fore_color(), rf.back_color(), rad, off); xvt_dwin_set_font(win(), rf.font().get_xvt_font(*this)); set_color(rf.fore_color(), rf.back_color()); - advanced_draw_text_line(*this, rf.picture(), r, rf.horizontal_alignment(), rf.vertical_alignment()); + + TString str = rf.picture(); + advanced_draw_paragraph(*this, str, r, rf.horizontal_alignment(), rf.vertical_alignment(), _default_row_height); } break; default : @@ -1734,7 +1736,7 @@ void TReport_window::draw_field(const TReport_field& rf) str << rf.id(); else str = rf.field(); - advanced_draw_text_line(*this, str, r, rf.horizontal_alignment(), rf.vertical_alignment()); + advanced_draw_paragraph(*this, str, r, rf.horizontal_alignment(), rf.vertical_alignment(), _default_row_height); break; } @@ -1801,7 +1803,6 @@ void TReport_window::update() draw_grid(); // Disegna griglia draw_bg(); - const TRectangle rect_riga(0,0,1000,100); RCT rct_riga; TWindow::log2dev(rect_riga, rct_riga); _default_row_height = rct_riga.bottom - rct_riga.top; diff --git a/ba/f155.dir b/ba/f155.dir new file mode 100755 index 000000000..817c594b8 --- /dev/null +++ b/ba/f155.dir @@ -0,0 +1,3 @@ +155 +0 +$multirel|0|0|96|0|Relazione molti a molti||| diff --git a/ba/f155.trr b/ba/f155.trr new file mode 100755 index 000000000..54af41044 --- /dev/null +++ b/ba/f155.trr @@ -0,0 +1,9 @@ +155 +4 +COD|1|5|0|Codice relazione +FIRST|1|20|0|Primo elemento +SECOND|1|20|0|Secondo elemento +DATA|1|50|0|Dati +2 +COD+FIRST+SECOND| +COD+SECOND+FIRST| diff --git a/ce/ce2300.cpp b/ce/ce2300.cpp index 147c0985e..6ec1afce9 100755 --- a/ce/ce2300.cpp +++ b/ce/ce2300.cpp @@ -92,6 +92,7 @@ bool TCesp2cg_qmask::on_field_event(TOperable_field& o, TField_event e, long jol } break; case F_CODCAT2: + case F_DESCAT: return ditta_cespiti().on_category_event(o, e, jolly); case F_IDCESPITE: if (e == fe_close) @@ -303,7 +304,7 @@ void TCesp2cg::init_insert_mode(TMask& m) init_mask(m); // Valori preimpostati "quasi" sempre buoni :-) - m.set(F_TIPO, 1); m.set(F_TIPOTRAS, "T"); + m.set(F_TIPO, 1); const TString& idcespite = m.get(F_IDCESPITE); if (!idcespite.blank()) diff --git a/ce/ce2300a.h b/ce/ce2300a.h index e55b82b48..040b536a3 100755 --- a/ce/ce2300a.h +++ b/ce/ce2300a.h @@ -16,9 +16,7 @@ #define F_CODCAT2 116 #define F_DESCAT2 117 #define F_IDCESPITE2 118 -#define F_TIPOTRAS 119 -#define F_CENTRO_COS 120 -#define F_COMPL 121 +#define F_COMPL 119 #define F_IMM_G 201 #define F_IMM_C 202 diff --git a/ce/ce2300a.uml b/ce/ce2300a.uml index 99c93fdfe..ecf5a4b8e 100755 --- a/ce/ce2300a.uml +++ b/ce/ce2300a.uml @@ -139,9 +139,9 @@ RADIOBUTTON F_TIPO 1 14 BEGIN PROMPT 0 6 "Selezione" ITEM "1|Categorie" - MESSAGE ENABLE,F_CODCAT|CLEAR,F_IDCESPITE|REQUIRED,F_CODCAT|NORMAL,F_IDCESPITE|"1",F_TIPO2 + MESSAGE ENABLE,F_CODCAT|CLEAR,F_DESCES|ENABLE,F_DESCAT|CLEAR,F_IDCESPITE|REQUIRED,F_CODCAT,NORMAL,F_IDCESPITE,NORMAL,F_DESCES|"1",F_TIPO2 ITEM "2|Cespiti" - MESSAGE ENABLE,F_IDCESPITE|CLEAR,F_CODCAT|NORMAL,F_CODCAT|REQUIRED,F_IDCESPITE|"2",F_TIPO2 + MESSAGE ENABLE,F_IDCESPITE|ENABLE,F_DESCES|CLEAR,F_DESCAT|CLEAR,F_CODCAT|NORMAL,F_CODCAT,REQUIRED,F_IDCESPITE,REQUIRED,F_DESCES|"2",F_TIPO2 GROUP 1 END @@ -150,10 +150,11 @@ BEGIN PROMPT 0 6 "Selezione" FLAGS "P" ITEM "1|Categorie" - MESSAGE ENABLE,F_CODCAT2|CLEAR,F_IDCESPITE2|REQUIRED,F_CODCAT2,NORMAL,F_IDCESPITE2 + MESSAGE ENABLE,F_CODCAT2|CLEAR,F_DESCES|ENABLE,F_DESCAT|CLEAR,F_IDCESPITE2|REQUIRED,F_CODCAT2,NORMAL,F_IDCESPITE2,NORMAL,F_DESCES ITEM "2|Cespiti" - MESSAGE ENABLE,F_IDCESPITE2|CLEAR,F_CODCAT2|NORMAL,F_CODCAT2,REQUIRED,F_IDCESPITE2 + MESSAGE ENABLE,F_IDCESPITE2|ENABLE,F_DESCES|CLEAR,F_DESCAT|CLEAR,F_CODCAT2|NORMAL,F_CODCAT2,REQUIRED,F_IDCESPITE2,REQUIRED,F_DESCES GROUP 2 + FLAGS "G" END @@ -184,7 +185,8 @@ END STRING F_DESCAT 70 54 BEGIN PROMPT 22 7 "" - FLAGS "D" + KEY 2 + FLAGS "B" END STRING F_IDCESPITE 10 @@ -218,16 +220,22 @@ BEGIN COPY OUTPUT F_IDCESPITE CHECKTYPE REQUIRED FIELD IDCESPITE - MESSAGE COPY,F_IDCESPITE KEY 1 - GROUP 2 - WARNING "Inserire un cespite valido" + GROUP 1 END STRING F_DESCES 50 47 BEGIN PROMPT 29 8 "" - FLAGS "D" + USE LF_CESPI KEY 2 + INPUT DESC F_DESCES + DISPLAY "Descrizione@50" DESC + DISPLAY "Cespite@10" IDCESPITE + DISPLAY "Categoria" CODCAT + COPY OUTPUT F_IDCESPITE + CHECKTYPE REQUIRED + KEY 2 + GROUP 1 END ENDPAGE diff --git a/ce/ce2300b.uml b/ce/ce2300b.uml new file mode 100755 index 000000000..cd31ca18d --- /dev/null +++ b/ce/ce2300b.uml @@ -0,0 +1,687 @@ +#include "ce2300a.h" + +TOOLBAR "Toolbar" 0 -3 0 3 + +BUTTON DLG_SAVEREC 10 2 +BEGIN + PROMPT -16 -11 "~Registra" + MESSAGE EXIT,K_SAVE + PICTURE BMP_SAVEREC + PICTURE BMP_SAVERECDN +END + +BUTTON DLG_NEWREC 10 2 +BEGIN + PROMPT -26 -11 "~Nuovo" + MESSAGE EXIT,K_INS + PICTURE BMP_NEWREC + PICTURE BMP_NEWRECDN +END + +BUTTON DLG_DELREC 10 2 +BEGIN + PROMPT -36 -11 "~Elimina" + MESSAGE EXIT,K_DEL + PICTURE BMP_DELREC + PICTURE BMP_DELRECDN +END + +BUTTON DLG_FINDREC 10 2 +BEGIN + PROMPT -46 -11 "Ri~cerca" + MESSAGE EXIT,K_F9 + PICTURE 126 +END + +BUTTON DLG_CANCEL 10 2 +BEGIN + PROMPT -56 -11 "~Annulla" + MESSAGE EXIT,K_ESC + PICTURE 102 +END + +BUTTON DLG_QUIT 10 2 +BEGIN + PROMPT -66 -11 "~Fine" + MESSAGE EXIT,K_QUIT + PICTURE BMP_QUIT + PICTURE BMP_QUITDN +END + +ENDPAGE + +PAGE "Collegamento Contabilità" -1 -1 78 10 + +GROUPBOX DLG_NULL 78 10 +BEGIN + PROMPT 0 1 "@bParametri ditta" +END + +NUMBER F_DITTA 5 +BEGIN + PROMPT 1 2 "Ditta " + FLAGS "DF" +END + +STRING F_RAGSOC 50 +BEGIN + PROMPT 26 2 "" + USE LF_NDITTE + INPUT CODDITTA F_DITTA + OUTPUT F_RAGSOC RAGSOC + CHECKTYPE NORMAL + FLAGS "D" +END + +NUMBER F_ESERCIZIO 4 +BEGIN + PROMPT 1 3 "Esercizio " + FLAGS "AZD" + USE CCE + JOIN ESC ALIAS 104 INTO CODTAB==CODTAB + INPUT CODTAB F_ESERCIZIO + DISPLAY "Codice esercizio" CODTAB + DISPLAY "Inizio esercizio" 104@->D0 + DISPLAY "Fine esercizio" 104@->D1 + OUTPUT F_ESERCIZIO CODTAB + OUTPUT F_INIZIO_ES 104@->D0 + OUTPUT F_FINE_ES 104@->D1 +END + +DATE F_INIZIO_ES +BEGIN + PROMPT 26 3 "Inizio " + FLAGS "D" +END + +DATE F_FINE_ES +BEGIN + PROMPT 50 3 "Fine " + FLAGS "D" +END + +NUMBER F_GRUPPO 2 +BEGIN + PROMPT 1 4 "Gruppo " + FLAGS "PZD" + FIELD CODGRUPPO + KEY 1 +END + +STRING F_SPECIE 4 +BEGIN + PROMPT 16 4 "Specie " + FLAGS "_PD" + USE CCB + JOIN %CAT ALIAS 400 INTO CODTAB=CODTAB[5,10] + INPUT CODTAB[1,4] F_ESERCIZIO SELECT + INPUT CODTAB[5,6] F_GRUPPO + INPUT CODTAB[7,10] F_SPECIE + DISPLAY "Gruppo" CODTAB[5,6] + DISPLAY "Specie" CODTAB[7,10] + DISPLAY "Descrizione@50" 400@->S0 + OUTPUT F_GRUPPO CODTAB[5,6] + OUTPUT F_SPECIE CODTAB[7,10] + OUTPUT F_DESC_GRSP 400@->S0 + FIELD CODSPECIE +END + +STRING F_DESC_GRSP 60 45 +BEGIN + PROMPT 31 4 "" + FLAGS "D" +END + +RADIOBUTTON F_TIPO 1 14 +BEGIN + PROMPT 0 6 "Selezione" + ITEM "1|Categorie" + ITEM "2|Cespiti" + FLAGS "DG" +END + +NUMBER F_CODCAT 2 +BEGIN + PROMPT 16 7 "" + FLAGS "BZD" + CHECKTYPE REQUIRED + FIELD CODCAT + MESSAGE COPY,F_CODCAT2 +END + +STRING F_DESCAT 70 54 +BEGIN + PROMPT 22 7 "" + FLAGS "D" +END + +STRING F_IDCESPITE 10 +BEGIN + PROMPT 16 8 "" + FLAGS "UZD" + USE LF_COLLCES SELECT IDCESPITE!="" + JOIN LF_CESPI INTO IDCESPITE==IDCESPITE + INPUT CODGRUPPO F_GRUPPO SELECT + INPUT CODSPECIE F_SPECIE SELECT + INPUT IDCESPITE F_IDCESPITE + DISPLAY "Cespite@10" IDCESPITE + DISPLAY "Categoria" LF_CESPI->CODCAT + DISPLAY "Descrizione@50" LF_CESPI->DESC + OUTPUT F_IDCESPITE IDCESPITE + OUTPUT F_DESCES LF_CESPI->DESC + FIELD IDCESPITE +END + +BOOLEAN F_COMPL +BEGIN + PROMPT 18 8 "Chiave completa " + FLAGS "H" +END + +STRING F_DESCES 50 47 +BEGIN + PROMPT 29 8 "" + FLAGS "D" +END + +GROUPBOX DLG_NULL 78 9 +BEGIN + PROMPT 1 12 "" + FLAGS "R" +END + +TEXT DLG_NULL +BEGIN + PROMPT 25 11 "Gruppo" +END + +TEXT DLG_NULL +BEGIN + PROMPT 31 11 "Conto" +END + +TEXT DLG_NULL +BEGIN + PROMPT 37 11 "Sottoc." +END + +TEXT DLG_NULL +BEGIN + PROMPT 46 11 "Descrizione" +END + +NUMBER F_IMM_G 3 +BEGIN + PROMPT 2 13 "Immobilizzazione " + FIELD GRUPPO + FLAGS "R" + USE LF_PCON KEY 1 SELECT CONTO="" + INPUT GRUPPO F_IMM_G + DISPLAY "Gruppo" GRUPPO + DISPLAY "Descrizione@50" DESCR + OUTPUT F_IMM_G GRUPPO + ADD RUN CG0 -0 + CHECKTYPE REQUIRED +END + +NUMBER F_IMM_C 3 +BEGIN + PROMPT 31 13 "" + FIELD CONTO + FLAGS "R" + USE LF_PCON KEY 1 SELECT ((CONTO!="")&&(SOTTOCONTO="")) + COPY INPUT F_IMM_G + INPUT CONTO F_IMM_C + DISPLAY "Gruppo" GRUPPO + DISPLAY "Conto" CONTO + DISPLAY "Descrizione@50" DESCR + OUTPUT F_IMM_G GRUPPO + OUTPUT F_IMM_C CONTO + ADD RUN CG0 -0 + CHECKTYPE REQUIRED +END + +NUMBER F_IMM_S 6 +BEGIN + PROMPT 37 13 "" + FIELD SOTTOC + FLAGS "R" + USE LF_PCON KEY 1 SELECT SOTTOCONTO!="" + COPY INPUT F_IMM_C + INPUT SOTTOCONTO F_IMM_S + DISPLAY "Gruppo" GRUPPO + DISPLAY "Conto" CONTO + DISPLAY "Sottoconto" SOTTOCONTO + DISPLAY "Sosp." SOSPESO + DISPLAY "Descrizione@50" DESCR + OUTPUT F_IMM_S SOTTOCONTO + OUTPUT F_IMM_G GRUPPO + OUTPUT F_IMM_C CONTO + OUTPUT F_IMM_D DESCR + ADD RUN CG0 -0 + CHECKTYPE REQUIRED +END + +STRING F_IMM_D 50 29 +BEGIN + PROMPT 46 13 "" + USE LF_PCON KEY 2 + INPUT DESCR F_IMM_D + DISPLAY "Descrizione@50" DESCR + DISPLAY "Sosp." SOSPESO + DISPLAY "Gruppo" GRUPPO + DISPLAY "Conto" CONTO + DISPLAY "Sottoconto" SOTTOCONTO + COPY OUTPUT F_IMM_S + ADD RUN CG0 -0 + CHECKTYPE REQUIRED +END + +NUMBER F_QNOR_G 3 +BEGIN + PROMPT 2 14 "Quote amm.to normale " + FIELD GRUPPOQNO + FLAGS "R" + USE LF_PCON KEY 1 SELECT CONTO="" + INPUT GRUPPO F_QNOR_G + DISPLAY "Gruppo" GRUPPO + DISPLAY "Descrizione@50" DESCR + OUTPUT F_QNOR_G GRUPPO + ADD RUN CG0 -0 + CHECKTYPE REQUIRED +END + +NUMBER F_QNOR_C 3 +BEGIN + PROMPT 31 14 "" + FIELD CONTOQNO + FLAGS "R" + USE LF_PCON KEY 1 SELECT ((CONTO!="")&&(SOTTOCONTO="")) + COPY INPUT F_QNOR_G + INPUT CONTO F_QNOR_C + DISPLAY "Gruppo" GRUPPO + DISPLAY "Conto" CONTO + DISPLAY "Descrizione@50" DESCR + OUTPUT F_QNOR_G GRUPPO + OUTPUT F_QNOR_C CONTO + ADD RUN CG0 -0 + CHECKTYPE REQUIRED +END + +NUMBER F_QNOR_S 6 +BEGIN + PROMPT 37 14 "" + FIELD SOTTOCQNO + FLAGS "R" + USE LF_PCON KEY 1 SELECT SOTTOCONTO!="" + COPY INPUT F_QNOR_C + INPUT SOTTOCONTO F_QNOR_S + DISPLAY "Gruppo" GRUPPO + DISPLAY "Conto" CONTO + DISPLAY "Sottoconto" SOTTOCONTO + DISPLAY "Sosp." SOSPESO + DISPLAY "Descrizione@50" DESCR + OUTPUT F_QNOR_S SOTTOCONTO + OUTPUT F_QNOR_G GRUPPO + OUTPUT F_QNOR_C CONTO + OUTPUT F_QNOR_D DESCR + ADD RUN CG0 -0 + CHECKTYPE REQUIRED +END + +STRING F_QNOR_D 50 29 +BEGIN + PROMPT 46 14 "" + USE LF_PCON KEY 2 + INPUT DESCR F_QNOR_D + DISPLAY "Descrizione@50" DESCR + DISPLAY "Sosp." SOSPESO + DISPLAY "Gruppo" GRUPPO + DISPLAY "Conto" CONTO + DISPLAY "Sottoconto" SOTTOCONTO + COPY OUTPUT F_QNOR_S + ADD RUN CG0 -0 + CHECKTYPE REQUIRED +END + +NUMBER F_QANT_G 3 +BEGIN + PROMPT 2 15 "Quote amm.to anticipato" + FIELD GRUPPOQAN + FLAGS "R" + USE LF_PCON KEY 1 SELECT CONTO="" + INPUT GRUPPO F_QANT_G + DISPLAY "Gruppo" GRUPPO + DISPLAY "Descrizione@50" DESCR + OUTPUT F_QANT_G GRUPPO + ADD RUN CG0 -0 + CHECKTYPE REQUIRED +END + +NUMBER F_QANT_C 3 +BEGIN + PROMPT 31 15 "" + FIELD CONTOQAN + FLAGS "R" + USE LF_PCON KEY 1 SELECT ((CONTO!="")&&(SOTTOCONTO="")) + COPY INPUT F_QANT_G + INPUT CONTO F_QANT_C + DISPLAY "Gruppo" GRUPPO + DISPLAY "Conto" CONTO + DISPLAY "Descrizione@50" DESCR + OUTPUT F_QANT_G GRUPPO + OUTPUT F_QANT_C CONTO + ADD RUN CG0 -0 + CHECKTYPE REQUIRED +END + +NUMBER F_QANT_S 6 +BEGIN + PROMPT 37 15 "" + FIELD SOTTOCQAN + FLAGS "R" + USE LF_PCON KEY 1 SELECT SOTTOCONTO!="" + COPY INPUT F_QANT_C + INPUT SOTTOCONTO F_QANT_S + DISPLAY "Gruppo" GRUPPO + DISPLAY "Conto" CONTO + DISPLAY "Sottoconto" SOTTOCONTO + DISPLAY "Sosp." SOSPESO + DISPLAY "Descrizione@50" DESCR + OUTPUT F_QANT_S SOTTOCONTO + OUTPUT F_QANT_G GRUPPO + OUTPUT F_QANT_C CONTO + OUTPUT F_QANT_D DESCR + ADD RUN CG0 -0 + CHECKTYPE REQUIRED +END + +STRING F_QANT_D 50 29 +BEGIN + PROMPT 46 15 "" + USE LF_PCON KEY 2 + INPUT DESCR F_QANT_D + DISPLAY "Descrizione@50" DESCR + DISPLAY "Sosp." SOSPESO + DISPLAY "Gruppo" GRUPPO + DISPLAY "Conto" CONTO + DISPLAY "Sottoconto" SOTTOCONTO + COPY OUTPUT F_QANT_S + ADD RUN CG0 -0 + CHECKTYPE REQUIRED +END + +NUMBER F_QACC_G 3 +BEGIN + PROMPT 2 16 "Quote amm.to accelerato" + FIELD GRUPPOQAC + FLAGS "R" + USE LF_PCON KEY 1 SELECT CONTO="" + INPUT GRUPPO F_QACC_G + DISPLAY "Gruppo" GRUPPO + DISPLAY "Descrizione@50" DESCR + OUTPUT F_QACC_G GRUPPO + ADD RUN CG0 -0 + CHECKTYPE REQUIRED +END + +NUMBER F_QACC_C 3 +BEGIN + PROMPT 31 16 "" + FIELD CONTOQAC + FLAGS "R" + USE LF_PCON KEY 1 SELECT ((CONTO!="")&&(SOTTOCONTO="")) + COPY INPUT F_QACC_G + INPUT CONTO F_QACC_C + DISPLAY "Gruppo" GRUPPO + DISPLAY "Conto" CONTO + DISPLAY "Descrizione@50" DESCR + OUTPUT F_QACC_G GRUPPO + OUTPUT F_QACC_C CONTO + ADD RUN CG0 -0 + CHECKTYPE REQUIRED +END + +NUMBER F_QACC_S 6 +BEGIN + PROMPT 37 16 "" + FIELD SOTTOCQAC + FLAGS "R" + USE LF_PCON KEY 1 SELECT SOTTOCONTO!="" + COPY INPUT F_QACC_C + INPUT SOTTOCONTO F_QACC_S + DISPLAY "Gruppo" GRUPPO + DISPLAY "Conto" CONTO + DISPLAY "Sottoconto" SOTTOCONTO + DISPLAY "Sosp." SOSPESO + DISPLAY "Descrizione@50" DESCR + OUTPUT F_QACC_S SOTTOCONTO + OUTPUT F_QACC_G GRUPPO + OUTPUT F_QACC_C CONTO + OUTPUT F_QACC_D DESCR + ADD RUN CG0 -0 + CHECKTYPE REQUIRED +END + +STRING F_QACC_D 50 29 +BEGIN + PROMPT 46 16 "" + USE LF_PCON KEY 2 + INPUT DESCR F_QACC_D + DISPLAY "Descrizione@50" DESCR + DISPLAY "Sosp." SOSPESO + DISPLAY "Gruppo" GRUPPO + DISPLAY "Conto" CONTO + DISPLAY "Sottoconto" SOTTOCONTO + COPY OUTPUT F_QACC_S + ADD RUN CG0 -0 + CHECKTYPE REQUIRED +END + +NUMBER F_FNOR_G 3 +BEGIN + PROMPT 2 17 "Fondo amm.to normale " + FIELD GRUPPOFN + FLAGS "R" + USE LF_PCON KEY 1 SELECT CONTO="" + INPUT GRUPPO F_FNOR_G + DISPLAY "Gruppo" GRUPPO + DISPLAY "Descrizione@50" DESCR + OUTPUT F_FNOR_G GRUPPO + ADD RUN CG0 -0 + CHECKTYPE REQUIRED +END + +NUMBER F_FNOR_C 3 +BEGIN + PROMPT 31 17 "" + FIELD CONTOFN + FLAGS "R" + USE LF_PCON KEY 1 SELECT ((CONTO!="")&&(SOTTOCONTO="")&&(INDBIL==4)) + COPY INPUT F_FNOR_G + INPUT CONTO F_FNOR_C + DISPLAY "Gruppo" GRUPPO + DISPLAY "Conto" CONTO + DISPLAY "Descrizione@50" DESCR + OUTPUT F_FNOR_G GRUPPO + OUTPUT F_FNOR_C CONTO + ADD RUN CG0 -0 + CHECKTYPE REQUIRED +END + +NUMBER F_FNOR_S 6 +BEGIN + PROMPT 37 17 "" + FIELD SOTTOCFN + FLAGS "R" + USE LF_PCON KEY 1 SELECT SOTTOCONTO!="" + INPUT GRUPPO F_FNOR_G SELECT + INPUT CONTO F_FNOR_C SELECT + INPUT SOTTOCONTO F_FNOR_S + DISPLAY "Gruppo" GRUPPO + DISPLAY "Conto" CONTO + DISPLAY "Sottoconto" SOTTOCONTO + DISPLAY "Sosp." SOSPESO + DISPLAY "Descrizione@50" DESCR + OUTPUT F_FNOR_S SOTTOCONTO + OUTPUT F_FNOR_G GRUPPO + OUTPUT F_FNOR_C CONTO + OUTPUT F_FNOR_D DESCR + ADD RUN CG0 -0 + CHECKTYPE REQUIRED +END + +STRING F_FNOR_D 50 29 +BEGIN + PROMPT 46 17 "" + USE LF_PCON KEY 2 + INPUT DESCR F_FNOR_D + DISPLAY "Descrizione@50" DESCR + DISPLAY "Sosp." SOSPESO + DISPLAY "Gruppo" GRUPPO + DISPLAY "Conto" CONTO + DISPLAY "Sottoconto" SOTTOCONTO + COPY OUTPUT F_FNOR_S + ADD RUN CG0 -0 + CHECKTYPE REQUIRED +END + +NUMBER F_FANT_G 3 +BEGIN + PROMPT 2 18 "Fondo amm.to anticipato" + FIELD GRUPPOFA + FLAGS "R" + USE LF_PCON KEY 1 SELECT CONTO="" + INPUT GRUPPO F_FANT_G + DISPLAY "Gruppo" GRUPPO + DISPLAY "Descrizione@50" DESCR + OUTPUT F_FANT_G GRUPPO + ADD RUN CG0 -0 + CHECKTYPE REQUIRED +END + +NUMBER F_FANT_C 3 +BEGIN + PROMPT 31 18 "" + FIELD CONTOFA + FLAGS "R" + USE LF_PCON KEY 1 SELECT ((CONTO!="")&&(SOTTOCONTO="")&&(INDBIL==3)) + COPY INPUT F_FANT_G + INPUT CONTO F_FANT_C + DISPLAY "Gruppo" GRUPPO + DISPLAY "Conto" CONTO + DISPLAY "Descrizione@50" DESCR + OUTPUT F_FANT_G GRUPPO + OUTPUT F_FANT_C CONTO + ADD RUN CG0 -0 + CHECKTYPE REQUIRED +END + +NUMBER F_FANT_S 6 +BEGIN + PROMPT 37 18 "" + FIELD SOTTOCFA + FLAGS "R" + USE LF_PCON KEY 1 SELECT SOTTOCONTO!="" + INPUT GRUPPO F_FANT_G SELECT + INPUT CONTO F_FANT_C SELECT + INPUT SOTTOCONTO F_FANT_S + DISPLAY "Gruppo" GRUPPO + DISPLAY "Conto" CONTO + DISPLAY "Sottoconto" SOTTOCONTO + DISPLAY "Sosp." SOSPESO + DISPLAY "Descrizione@50" DESCR + OUTPUT F_FANT_S SOTTOCONTO + OUTPUT F_FANT_G GRUPPO + OUTPUT F_FANT_C CONTO + OUTPUT F_FANT_D DESCR + ADD RUN CG0 -0 + CHECKTYPE REQUIRED +END + +STRING F_FANT_D 50 29 +BEGIN + PROMPT 46 18 "" + USE LF_PCON KEY 2 + INPUT DESCR F_FANT_D + DISPLAY "Descrizione@50" DESCR + DISPLAY "Sosp." SOSPESO + DISPLAY "Gruppo" GRUPPO + DISPLAY "Conto" CONTO + DISPLAY "Sottoconto" SOTTOCONTO + COPY OUTPUT F_FANT_S + ADD RUN CG0 -0 + CHECKTYPE REQUIRED +END + +NUMBER F_FACC_G 3 +BEGIN + PROMPT 2 19 "Fondo amm.to accelerato" + FIELD GRUPPOACC + FLAGS "R" + USE LF_PCON KEY 1 SELECT CONTO="" + INPUT GRUPPO F_FACC_G + DISPLAY "Gruppo" GRUPPO + DISPLAY "Descrizione@50" DESCR + OUTPUT F_FACC_G GRUPPO + ADD RUN CG0 -0 + CHECKTYPE REQUIRED +END + +NUMBER F_FACC_C 3 +BEGIN + PROMPT 31 19 "" + FIELD CONTOACC + FLAGS "R" + USE LF_PCON KEY 1 SELECT ((CONTO!="")&&(SOTTOCONTO="")) + COPY INPUT F_FACC_G + INPUT CONTO F_FACC_C + DISPLAY "Gruppo" GRUPPO + DISPLAY "Conto" CONTO + DISPLAY "Descrizione@50" DESCR + OUTPUT F_FACC_G GRUPPO + OUTPUT F_FACC_C CONTO + ADD RUN CG0 -0 + CHECKTYPE REQUIRED +END + +NUMBER F_FACC_S 6 +BEGIN + PROMPT 37 19 "" + FIELD SOTTOCACC + FLAGS "R" + USE LF_PCON SELECT SOTTOCONTO!="" + COPY INPUT F_FACC_C + INPUT SOTTOCONTO F_FACC_S + DISPLAY "Gruppo" GRUPPO + DISPLAY "Conto" CONTO + DISPLAY "Sottoconto" SOTTOCONTO + DISPLAY "Descrizione@50" DESCR + DISPLAY "Sospeso" SOSPESO + OUTPUT F_FACC_S SOTTOCONTO + OUTPUT F_FACC_G GRUPPO + OUTPUT F_FACC_C CONTO + OUTPUT F_FACC_D DESCR + ADD RUN CG0 -0 + CHECKTYPE REQUIRED +END + +STRING F_FACC_D 50 29 +BEGIN + PROMPT 46 19 "" + USE LF_PCON KEY 2 + INPUT DESCR F_FACC_D + DISPLAY "Descrizione@50" DESCR + DISPLAY "Sosp." SOSPESO + DISPLAY "Gruppo" GRUPPO + DISPLAY "Conto" CONTO + DISPLAY "Sottoconto" SOTTOCONTO + COPY OUTPUT F_FACC_S + ADD RUN CG0 -0 + CHECKTYPE REQUIRED +END + +ENDPAGE + +ENDMASK + diff --git a/ce/ce3200.cpp b/ce/ce3200.cpp index b15d68792..7c2f7a9cc 100755 --- a/ce/ce3200.cpp +++ b/ce/ce3200.cpp @@ -240,6 +240,7 @@ void TStampa_storico::print_percespite( const int tipo) TEsercizi_contabili esc; const TDate& inies = esc[esercizio].inizio(); + if (!errore) do //se non c'é incongruenza di date procede alla stampa righe 2 { @@ -579,4 +580,4 @@ int ce3200(int argc, char* argv[]) TStampa_storico a; a.run(argc,argv,TR("Stampa schede cespiti")); return 0; -} +} \ No newline at end of file diff --git a/ce/f140.dir b/ce/f140.dir index f3414cd22..5f59840ec 100755 --- a/ce/f140.dir +++ b/ce/f140.dir @@ -1,3 +1,3 @@ 140 0 -$collces|0|0|110|0|Collegamento contabile cespiti||| +$collces|0|0|106|0|Collegamento contabile cespiti||| diff --git a/ce/f140.trr b/ce/f140.trr index f6b1c6a82..6391f5c13 100755 --- a/ce/f140.trr +++ b/ce/f140.trr @@ -1,13 +1,11 @@ 140 -30 +28 CODGRUPPO|2|2|0|Codice gruppo (CGCDGR) CODSPECIE|1|4|0|Codice specie (CGCDSP) TIPO|2|1|0|Tipo collegamento ("1" per categoria, "2" per cespite) (CGTIPO) IDCESPITE|1|10|0|Codice cespite (CGCESP) CODCAT|2|2|0|Codice categoria (CGCDCT) COMPL|8|1|0|Riferimenti completati per collegamento (CGCOMP) -TIPOTRAS|1|1|0|Tipo trasferimento (ovimenti, otali per sottoconto) (CGTRAS) -CODCC|2|3|0|Codice centro di costo (CGCCCE) GRUPPO|2|3|0|Gruppo cespite (CGRCES) CONTO|2|3|0|Conto cespite SOTTOC|3|6|0|Sottoconto cespite @@ -31,4 +29,4 @@ CONTOACC|2|3|0|Conto fondi acccelerati SOTTOCACC|3|6|0|Sottoconto fondi accelerati TRASF|8|1|0|Giá trasferito (CGMOVI) 1 -CODGRUPPO+CODSPECIE+CODCAT+IDCESPITE| +CODGRUPPO+CODSPECIE+TIPO+CODCAT+IDCESPITE| diff --git a/cg/cg0100a.uml b/cg/cg0100a.uml index 8a4301ed8..d61408807 100755 --- a/cg/cg0100a.uml +++ b/cg/cg0100a.uml @@ -250,6 +250,26 @@ BEGIN PROMPT 64 7 "" FLAGS "HD" GROUP 1 5 + ITEM " |" + ITEM "02|Bis" + ITEM "03|Ter" + ITEM "04|Quater" + ITEM "05|Quinquies" + ITEM "06|Sexies" +END + +LIST F_SUBH 9 +BEGIN + PROMPT 69 7 "" + + GROUP 1 5 + ITEM " |" + ITEM "02|Bis" + ITEM "03|Ter" + ITEM "04|Quater" + ITEM "05|Quinquies" + ITEM "06|Sexies" + KEY 1 END LIST F_SUBH 9 @@ -509,4 +529,3 @@ END ENDPAGE ENDMASK - diff --git a/cg/cg2100.cpp b/cg/cg2100.cpp index 273d54f7e..cf026825d 100755 --- a/cg/cg2100.cpp +++ b/cg/cg2100.cpp @@ -200,6 +200,7 @@ bool TPrimanota_application::user_create() if (get_mask_swap_file(tmp)) xvt_fsys_removefile(tmp); + load_mask(0); load_colors(); @@ -724,6 +725,7 @@ void TPrimanota_application::init_insert_mode(TMask& m) xvt_fsys_removefile(tmp); } + } @@ -1184,6 +1186,7 @@ int TPrimanota_application::write(const TMask& m) { const TString4 causimm(causale().causale_inc_imm()); if (causimm.not_empty()) + genera_incasso(causimm); } } @@ -1810,6 +1813,8 @@ bool TPrimanota_application::link_intra(const TMask& m, const char* action) const bool bModify = xvt_str_compare_ignoring_case(action, "Modify") == 0; + const bool bModify = xvt_str_compare_ignoring_case(action, "Modify") == 0; + TFilename intrini; intrini.tempdir(); intrini.add("ActIntra.ini"); @@ -1918,6 +1923,7 @@ bool TPrimanota_application::link_intra(const TMask& m, const char* action) appname << "in0 -4 /i" << intrini; } + bool ok = false; if (!appname.empty()) { @@ -1965,11 +1971,13 @@ bool TPrimanota_application::link_anal(const TMask& msk, const char* action) long nExist = 0L; if (action[0] == 'I') + { // Cerco se c'e' almeno un conto interessato all'analitica // Se non ci sono conti analitici e' inutile inserire if (!bAnalBill) return false; + } else { @@ -2011,6 +2019,7 @@ bool TPrimanota_application::link_anal(const TMask& msk, const char* action) app.run(); return true; + } bool TPrimanota_application::protected_record(TRectype& mov) diff --git a/cg/cg2100.h b/cg/cg2100.h index ab3903fe4..63759fc12 100755 --- a/cg/cg2100.h +++ b/cg/cg2100.h @@ -76,8 +76,12 @@ #define CG_CONTO 105 #define CG_SOTTOCONTO 106 #define CG_DESCR 109 -#define CG_ROWTYPE 115 -#define CG_MASTRINO 199 +#define CG_COMMESSA 115 +#define CG_FASE 116 +#define CG_DESC_CDC 117 +#define CG_DESC_FASE 118 +#define CG_ROWTYPE 119 +#define CG_MASTRINO 200 // Campi ripetuti sulla seconda pagina #define H_DATAREG 201 diff --git a/cg/cg2102.cpp b/cg/cg2102.cpp index e784dcf8b..22cd62034 100755 --- a/cg/cg2102.cpp +++ b/cg/cg2102.cpp @@ -16,6 +16,7 @@ #include + /////////////////////////////////////////////////////////// // Funzioni di decodifica/calcolo /////////////////////////////////////////////////////////// @@ -705,6 +706,7 @@ bool TPrimanota_application::cg_handler(TMask_field& f, KEY k) } } } + } } @@ -1889,6 +1891,73 @@ bool TPrimanota_application::sheet_mastrino_handler(TMask_field& f, KEY k) return true; } +void TPrimanota_application::link_mastrino(const TBill& bill) const +{ + if (bill.ok()) + { + TPrimanota_application& a = app(); + const TMask& cm = a.curr_mask(); + + int anno = cm.get_int(F_ANNOES); + if (anno <= 0) + { + TDate date = cm.get(F_DATACOMP); + if (!date.ok()) + { + date = cm.get_date(F_DATAREG); + if (!date.ok()) + date = TDate(TODAY); + } + anno = a._esercizi.date2esc(date); + } + + TFilename ininame; ininame.tempdir(); ininame.add("mastrino.ini"); + if (anno > 0) + { + TConfig ini(ininame, "Transaction"); + ini.set("Action", "Modify"); + ini.set_paragraph("24"); + ini.set(RMV_ANNOES, anno); + ini.set(RMV_TIPOC, bill.tipo()); + ini.set(RMV_GRUPPO, bill.gruppo()); + ini.set(RMV_CONTO, bill.conto()); + ini.set(RMV_SOTTOCONTO, bill.sottoconto()); + } + if (ininame.exist()) + { + TString cmd; + cmd << "cg3 -5 -i" << ininame; + TExternal_app app(cmd); + app.run(); + xvt_fsys_removefile(ininame); + } + } +} + +bool TPrimanota_application::mastrino_handler(TMask_field& f, KEY k) +{ + if (k == K_SPACE) + { + TMask& m = f.mask(); + TBill bill; bill.get(m, F_GRUPPO, F_CONTO, F_SOTTOCONTO); + app().link_mastrino(bill); + } + return true; +} + +bool TPrimanota_application::sheet_mastrino_handler(TMask_field& f, KEY k) +{ + if (k == K_SPACE) + { + TMask& m = f.mask(); + const char tipo = m.get(CG_TIPO)[0]; + const short id_sotto = CG_SOTTOCONTO + (tipo <= ' ' ? 0 : (tipo == 'C' ? 100 : 200)); + TBill bill; bill.get(m, CG_GRUPPO, CG_CONTO, id_sotto, CG_TIPO); + app().link_mastrino(bill); + } + return true; +} + /////////////////////////////////////////////////////////// // Handlers dei campi della testata /////////////////////////////////////////////////////////// @@ -1937,6 +2006,7 @@ bool TPrimanota_application::num_handler(TMask_field& f, KEY key) { // Riempie a mano i campi necessari nel caso non sia stato usata la ricerca F9 m.set(F_DATAREG, mov.get(MOV_DATAREG), true); + m.set(F_CODCAUS, mov.get(MOV_CODCAUS)); f.set_focusdirty(false); @@ -1991,10 +2061,12 @@ bool TPrimanota_application::caus_modify_handler(TMask_field& f, KEY key) const TMask& m = f.mask(); const int ann = m.get_int(F_ANNOIVA); const TString& cau = f.get(); + const TCausale c(cau, ann); - if (!c.ok()) return false; + if (!c.ok()) + return false; - const TCausale& k = app().causale(); + const TCausale& k = app().causale(); const TString& msg = c.compatible(k); if (msg.not_empty()) // La causale non e' compatibile { diff --git a/cg/cg2102.h b/cg/cg2102.h index cc4fc2f9e..4b40158f0 100755 --- a/cg/cg2102.h +++ b/cg/cg2102.h @@ -206,7 +206,6 @@ protected: void init_mask(TMask& m); static TipoIVA reg2IVA(const char* registro, int anno); - static int type2pos(char tipo); static const real& cod2IVA(const TMask& m); static real scorpora(real& imponibile, const real& percentuale); static bool detraibile(TToken_string& row); @@ -283,6 +282,7 @@ protected: bool link_anal(const TMask& msk, const char* action); public: + static int type2pos(char tipo); static char row_type(const TToken_string& s); void type2colors(char tipor, COLOR& back, COLOR& fore); diff --git a/cg/cg2103.cpp b/cg/cg2103.cpp index 2a35b10d0..7d57a8262 100755 --- a/cg/cg2103.cpp +++ b/cg/cg2103.cpp @@ -206,13 +206,16 @@ char TCausale::sezione_ritsoc() const } char TCausale::sezione_ritfis() + { if (_sezione_ritfis == ' ') + { if (_rec.get_int(CAU_TIPOMOV) <= 2) _sezione_ritfis = sezione(8); // Fatture else _sezione_ritfis = sezione(12); // Pagamenti + } return _sezione_ritfis; } @@ -271,9 +274,7 @@ const TString& TCausale::compatible(const TCausale& c) const return msg; } - return EMPTY_STRING; - } bool TCausale::IVA2bill(const TCodiceIVA& iva, TBill& c) const diff --git a/cg/cg2105.cpp b/cg/cg2105.cpp index 7a56cd0cc..3d76d3f10 100755 --- a/cg/cg2105.cpp +++ b/cg/cg2105.cpp @@ -347,12 +347,12 @@ void TPay_mask::set_pag(const TRectype& oldpag, const TRiga_scadenze& scad, { const tipo_movimento tm = sum.tipo(); _can_solder = !(tm == tm_nota_credito || tm == tm_insoluto); - if (_can_solder) +/* if (_can_solder) { const TDate datasca(fatt.get(PART_DATADOC)); const TDate datapag(sum.get(PART_DATADOC)); _can_solder = datapag >= datasca; - } + } */ } // Mostra saldo solo se non e' ne' un acconto, ne' una nota di credito @@ -1339,6 +1339,16 @@ int TGame_mask::nuovo_pagamento(TPartita& partita, int nriga, int rata, tipo_mov TBill contro; causale.bill(caus, contro); // Legge conto contropartita if (caus != 2 && contro.empty()) // Se non specificato ... causale.bill(caus = 2, contro); // ... prende il primo + if (contro.sottoconto() == 0L) + { + const int nrow = app().type2pos('I'); + + if (nrow >= 0) + { + TSheet_field & cgs = app().cgs(); + contro.get(cgs.row(nrow), 3); + } + } contro.put(pagamento, TRUE); // Scrive conto contropartita } #endif diff --git a/cg/cg3600.cpp b/cg/cg3600.cpp index b1e9f9e90..aa9f3dbc5 100755 --- a/cg/cg3600.cpp +++ b/cg/cg3600.cpp @@ -346,7 +346,6 @@ void TMastrino::read(const TBill& conto, caption.format(FR("Caricamento mastrino %03d.%03d.%06ld"), _conto.gruppo(), _conto.conto(), _conto.sottoconto()); TProgind pi(totrows, caption, false, true); - for (cur = 0L; cur.pos() < totrows; ++cur) { @@ -2251,30 +2250,14 @@ void TGrid_mask::handler(WINDOW win, EVENT* ep) if (_last_grid) { TGrid_field& sht = (TGrid_field&)*_last_grid; -#if (XVT_PTK_VERSION_MAJOR > 4) || (XVT_PTK_VERSION_MAJOR == 4 && XVT_PTK_VERSION_MINOR >= 50) MENU_ITEM* menu = xvt_res_get_menu(BROWSE_BAR); - if (menu) + + if (menu != NULL) { const PNT& p = ep->v.mouse.where; - RCT cr; xvt_vobj_get_client_rect(win, &cr); - XVT_POPUP_ALIGNMENT pa = XVT_POPUP_CENTER; - if (p.h < cr.right / 3) - pa = XVT_POPUP_LEFT_ALIGN; - else - if (p.h > 2 * cr.right / 3) - pa = XVT_POPUP_RIGHT_ALIGN; - - xvt_menu_popup(menu->child, win, p, pa, NULL); + xvt_menu_popup(menu->child, win, p, XVT_POPUP_CENTER, 0); xvt_res_free_menu_tree(menu); } -#else - ASK_RESPONSE r = xvt_dm_post_ask(TR("Annulla"), TR("Ripristina"), TR("Salva"), - TR("Ordinamento delle colonne")); - if (r == RESP_2) - sht.reset_columns_order(); - if (r == RESP_2 || r == RESP_3) - sht.save_columns_order(); -#endif return; } } @@ -2284,16 +2267,10 @@ void TGrid_mask::handler(WINDOW win, EVENT* ep) { switch (ep->v.cmd.tag) { - case M_EDIT_UNDO: - _last_grid->reset_columns_order(); - case M_EDIT_COPY: - _last_grid->save_columns_order(); - break; - case M_EDIT_SEARCH: - _last_grid->on_key(K_F11); - break; - default: - break; + case BROWSE_BAR+1: _last_grid->save_columns_order(); break; + case BROWSE_BAR+2: _last_grid->reset_columns_order(); break; + case BROWSE_BAR+3: _last_grid->on_key(K_F11); break; + default: break; } return; } @@ -2456,8 +2433,6 @@ public: bool TMastrini_video::create() { xvtil_statbar_set("", TRUE); - - open_files(LF_RMOV, LF_MOV, LF_CAUSALI, 0); open_files(LF_SALDI, LF_PCON, 0); @@ -2507,7 +2482,6 @@ bool TMastrini_video::menu(MENU_TAG mt) { const TEsercizio& esercizio = esercizi.esercizio(codesc); qm.set(F_ESERCIZIO, codesc); - qm.set(F_DADATA, esercizio.inizio()); qm.set(F_ADATA, esercizio.fine()); } @@ -2515,13 +2489,6 @@ bool TMastrini_video::menu(MENU_TAG mt) KEY key = 0; while (key != K_QUIT) { -/* Ca$$ata tipica della Prassi - - qm.reset(F_SOTTOCONTO); // Azzera sottoconto - qm.reset(F_CLIENTE); // Azzera cliente - qm.reset(F_FORNITORE); // Azzera fornitore - qm.reset(-5); // Azzera causali -*/ key = qm.run(); switch (key) { @@ -2555,4 +2522,3 @@ int cg3600(int argc, char* argv[]) mv.run(argc, argv, TR("Mastrini")); return 0; } - diff --git a/cg/cg6900.cpp b/cg/cg6900.cpp index 0d067bfbe..a21d54387 100755 --- a/cg/cg6900.cpp +++ b/cg/cg6900.cpp @@ -636,23 +636,22 @@ bool TInv_cont::leggi_header() return TRUE; } -bool TInv_cont::record_controllo() +bool TInv_cont::record_controllo() const { +/* TString tiporecord = _control_rec.sub(0,2); - if (tiporecord != " 1") return FALSE; - return TRUE; +*/ + const TString& tiporecord = _control_rec.sub(0,2); + return atoi(tiporecord) == 1; } bool TInv_cont::esegui_controlli() { _esiste_record = leggi_header(); - - if (!controlli()) - return FALSE; - return TRUE; + return controlli(); } void TInv_cont::setta_parametri_record(TMask& m,const TString& flag) @@ -683,7 +682,7 @@ bool TInv_cont::controlli() bool TInv_cont::sub_controlli() { - long ditta_trasfer = _tras_file.ditta(); + const long ditta_trasfer = _tras_file.ditta(); if (_ditta == ditta_trasfer) { @@ -972,24 +971,20 @@ void TInv_cont::setta_tabella_studio(TMask& m,bool flag_ditta) void TInv_cont::setta_tabella_ditta(TMask& m,const char* flag, bool comp) { TTable ind ("%IND"); - TString dep; - - long ditta = m.get_long(F_DITTAINV); + TString8 dep; + const long ditta = m.get_long(F_DITTAINV); dep.format("%05ld", ditta); - - ind.zero(); ind.put("CODTAB", dep); + if (ind.read() == NOERR) { - int num = m.get_int(F_NUMULINV); - num++; - TDate data (m.get(F_DATALIM)); - ind.put("S6", flag); if (comp) { - ind.put("I0", (long)num); + const long num = m.get_int(F_NUMULINV)+1; + const TDate data (m.get(F_DATALIM)); + ind.put("I0", num); ind.put("D0", data); } ind.rewrite(); @@ -1060,6 +1055,7 @@ const char* TInv_cont::cerca_provincia(const TString& comcf) const { TString8 k; k << " |" << comcf; return cache().get(LF_COMUNI, k, COM_PROVCOM); + } bool TInv_cont::invio_tempfile(TMask& m) @@ -1954,9 +1950,8 @@ int cg6900 (int argc, char* argv[]) break; case 'C': { - TCanc_file_invio* a = new TCanc_file_invio; - a->run(argc, argv,"Eliminazione file invio"); - delete a; + TCanc_file_invio a; + a.run(argc, argv,"Eliminazione file invio"); } break; @@ -1965,4 +1960,4 @@ int cg6900 (int argc, char* argv[]) } return TRUE; -} +} \ No newline at end of file diff --git a/cg/cg6900.h b/cg/cg6900.h index 603fb7745..2a137351e 100755 --- a/cg/cg6900.h +++ b/cg/cg6900.h @@ -46,7 +46,8 @@ class TInv_cont : public TSkeleton_application TString _ocfpi, _ragsococc, _indocc, _capocc, _localocc, _provocc, _codvali, _codval; bool _esiste_ditta, _esiste_record, _inviato, _flag_provvis, _flag_bollato; long _ditta, _protiva, _uprotiva, _codcf, _numrec, _tot_rec; - long _dim_tot, _dim_disk,_dittaAS; + long _dittaAS; + unsigned long _dim_tot, _dim_disk; long _numrec_cau,_numrec_clifo,_numrec_pcon,_numrec_pn,_numrec_iva,_numrec_sc; int _num,_annoes; TDate _data, _datadoc, _data74ter,_datalimsk,_dataregiva,_datareg; @@ -64,7 +65,7 @@ public: {return FALSE;} bool esiste_tabella_studio(); - bool record_controllo(); + bool record_controllo() const; bool esegui_controlli(); bool leggi_header(); bool controlli(); @@ -136,15 +137,15 @@ public: void calcola_totale_record(); void scrivi_telefono(TString& app); - const char* cerca_provincia(const TString& comcf) const; - void cerca_dencom(const TString& comcf, TString& dencom) const; + const TString& cerca_provincia(const TString& comcf) const; + void cerca_dencom(TString& comcf,TString& dencom); static bool setta_maschera_hnd(TMask_field& f, KEY k); static bool messaggio_hnd (TMask_field& f, KEY k); - int calcola_numero_dischi(TMask& m,TString& floppy); - FILE* chiedi_disco(const char* name, int disk, TString& floppy, bool lettura); - bool scrivi_disco(TString& floppy, int disk, const char* work, FILE* i, TProgind& w); + int calcola_numero_dischi(TMask& m, const TString& floppy); + FILE* chiedi_disco(const char* name, int disk, const TString& floppy, bool lettura); + bool scrivi_disco(const TString& floppy, int disk, const char* work, FILE* i, TProgind& w); bool invio_contabilita_PC(); void invio_testata_causali(); @@ -164,4 +165,3 @@ public: }; HIDDEN TInv_cont& app() { return (TInv_cont &) main_app(); } - diff --git a/cg/cg6902.cpp b/cg/cg6902.cpp index 4eb69338a..fc4ccc43d 100755 --- a/cg/cg6902.cpp +++ b/cg/cg6902.cpp @@ -4,14 +4,13 @@ #include "cg6900.h" #include "cg6900a.h" -FILE* TInv_cont::chiedi_disco(const char* name, int disk, TString& floppy, bool lettura) +FILE* TInv_cont::chiedi_disco(const char* name, int disk, const TString& floppy, bool lettura) { FILE* f = NULL; + if (!xvt_fsys_is_removable_drive(floppy)) + return f; - char flop = floppy[0]; - if (flop != 'A' && flop != 'B') return f; - - message_box("Inserire il disco %d nel drive %c:", disk, flop); + message_box("Inserire il disco %d nel drive %c:", disk, floppy[0]); // name.ext(format("%03d", disk)); @@ -31,19 +30,25 @@ FILE* TInv_cont::chiedi_disco(const char* name, int disk, TString& floppy, bool return f; } -bool TInv_cont::scrivi_disco(TString& floppy, int disk, const char* work, +bool TInv_cont::scrivi_disco(const TString& floppy, int disk, const char* work, FILE* i, TProgind& w) { FILE* file = chiedi_disco(work, disk, floppy, FALSE); - if (floppy == "A" || floppy == "B") - if (file == NULL) return FALSE; - - if (floppy[0] != 'A' && floppy[0] != 'B') + + const bool is_floppy = xvt_fsys_is_removable_drive(floppy) != 0; + if (is_floppy) + { + if (file == NULL) + return FALSE; + } + else + { if (_dim_disk < _dim_tot) { - warning_box("Lo spazio su disco non e' sufficiente"); + warning_box(FR("Occorrono almeno %d Kb di spazio su disco"), int(_dim_tot/1024+1)); return FALSE; } + } TString str; str.format("%02d", disk); @@ -54,7 +59,6 @@ bool TInv_cont::scrivi_disco(TString& floppy, int disk, const char* work, TFilename path_m = floppy; path_m.add("marker"); TFilename path_t = floppy; path_t.add("trasfer"); - if (!fcopy(_marker,path_m)) // Copia il marker su disco return FALSE; @@ -63,7 +67,7 @@ bool TInv_cont::scrivi_disco(TString& floppy, int disk, const char* work, TString buffer(BUFSIZE); - long tot_scritti = BUFSIZE; + unsigned long tot_scritti = BUFSIZE; while (tot_scritti <= _dim_disk) { @@ -83,7 +87,7 @@ bool TInv_cont::scrivi_disco(TString& floppy, int disk, const char* work, return TRUE; } -int TInv_cont::calcola_numero_dischi(TMask& msk,TString& floppy) +int TInv_cont::calcola_numero_dischi(TMask& msk, const TString& floppy) { int numdisc = 1; @@ -107,7 +111,7 @@ int TInv_cont::calcola_numero_dischi(TMask& msk,TString& floppy) _dim_tot = dim_t + dim_m; //+dim_h; // Determina la dimensione totale - if (floppy[0] == 'A' || floppy[0] == 'B') + if (xvt_fsys_is_removable_drive(floppy)) { int item = msk.get_int(F_DIM); @@ -140,12 +144,7 @@ int TInv_cont::calcola_numero_dischi(TMask& msk,TString& floppy) } else { - _dim_disk = 16L*1024L*1024L; // 16 mega - for (; _dim_disk > 0; _dim_disk -= 1024L*1024L) - { - if (xvt_fsys_test_disk_free_space("", _dim_disk)) - break; - } + _dim_disk = xvt_fsys_get_disk_free_space(floppy, 'b'); } return numdisc; @@ -703,6 +702,7 @@ bool TInv_cont::invio_clifo() record.overwrite(str,133); //Localita' const TString4 provincia = cerca_provincia(comcf); + str.format("%-2s", (const char*) provincia); record.overwrite(str,153); //Provincia @@ -2043,4 +2043,4 @@ void TInv_cont::write_AS_imp(const real& importo, TString& record, int pos, int negPC2negAS(numero); numero.right_just(len, '0'); record.overwrite(numero, pos); -} +} \ No newline at end of file diff --git a/cg/cg6905.cpp b/cg/cg6905.cpp index 4c3326686..58d928f38 100755 --- a/cg/cg6905.cpp +++ b/cg/cg6905.cpp @@ -1,40 +1,18 @@ #include #include "cg6905.h" +#include "cglib04.h" -bool TCanc_file_invio::create() -{ - TApplication::create(); - - dispatch_e_menu (BAR_ITEM(1)); - - return TRUE; -} - -bool TCanc_file_invio::destroy() -{ - return TApplication::destroy(); -} - -bool TCanc_file_invio::set() +void TCanc_file_invio::main_loop() { - TString marker; - - _tras_file.remove_all(FALSE); + TTransfer_file tras_file; + tras_file.remove_all(false); + TFilename marker; marker = firm2dir(0); marker << "\\marker"; - ::remove(marker); + xvt_fsys_removefile(marker); - message_box("Eliminazione file di lavoro dell' invio terminata"); - - return FALSE; + message_box("Eliminazione file di lavoro dell'invio terminata"); } -bool TCanc_file_invio::menu(MENU_TAG m) -{ - if (m == BAR_ITEM(1)) - return set(); - - return FALSE; -} diff --git a/cg/cg6905.h b/cg/cg6905.h index db900f7e2..688c7ef9c 100755 --- a/cg/cg6905.h +++ b/cg/cg6905.h @@ -1,23 +1,10 @@ // Ripristino flag invio PN e IVA -#include -#include -#include +#include -#include "cglib04.h" - -class TCanc_file_invio : public TApplication +class TCanc_file_invio : public TSkeleton_application { - TTransfer_file _tras_file; - public: - virtual bool check_autorization() const - {return FALSE;} - virtual bool create(); - virtual bool destroy(); - virtual bool menu(MENU_TAG m); - - bool set(); - - TCanc_file_invio() {} + virtual bool check_autorization() const { return false; } + virtual void main_loop(); }; diff --git a/cg/cglib01.cpp b/cg/cglib01.cpp index de638a4f5..a89daf268 100755 --- a/cg/cglib01.cpp +++ b/cg/cglib01.cpp @@ -226,6 +226,7 @@ bool TEsercizi_contabili::code2range(int codice, TDate& dal, TDate& al) const ///////////////////////////////////////////////////////// + const char* iva2name(TipoIVA iva) { const char* i; @@ -982,6 +983,7 @@ int TBill::indicatore_bilancio() const return ib; } + bool TBill::sospeso() const { if (_tipo_cr < 0) tipo_cr(); // trick to load _sospeso diff --git a/cg/cglib01.h b/cg/cglib01.h index f75b0b926..3340744ae 100755 --- a/cg/cglib01.h +++ b/cg/cglib01.h @@ -247,4 +247,3 @@ public: enum TIndbil { ib_null, ib_attivita, ib_passivita, ib_costi, ib_ricavi, ib_conti_ordine }; #endif - diff --git a/cg/cglib02.cpp b/cg/cglib02.cpp index fa003a4f4..5705934f8 100755 --- a/cg/cglib02.cpp +++ b/cg/cglib02.cpp @@ -452,6 +452,7 @@ bool TSaldo::ultima_immissione_bilancio(int annoes,int g,int c,long s,int indbil const real& TSaldo::saldo_periodo(int g, int c, long s, const TDate& dal, const TDate& al, int indbil, bool provv) + { _saldo_iniziale = ZERO; _saldo = ZERO; @@ -467,7 +468,7 @@ const real& TSaldo::saldo_periodo(int g, int c, long s, const TDate& dal, const const TDate inizio = es.esercizio(codes).inizio(); _annoes = codes; - TString80 key; key.format("%04d| |%d|%d|%ld", _annoes, g, c, s); + TString80 key; key.format("%04d| |%d|%d|%ld", _annoes, g, c, s); const TRectype& saldo = cache().get(LF_SALDI, key); _saldo_iniziale = saldo.get_real(SLD_SALDO); @@ -543,6 +544,7 @@ const real& TSaldo::saldo_periodo(int g, int c, long s, const TDate& dal, const } } + if (p != NULL) delete p; } @@ -1082,4 +1084,3 @@ TImporto TBalance::saldo_finale_chiusura() const { return saldo_finale(TRUE); } - diff --git a/cg/cgp4.cpp b/cg/cgp4.cpp index 7b1d40775..6272a1ec1 100755 --- a/cg/cgp4.cpp +++ b/cg/cgp4.cpp @@ -8,16 +8,14 @@ int main(int argc,char** argv) switch (s) { - - case 1 : - cgp4100(argc,argv) ; break; // Importa stipendi in prima nota (OMASA) + cgp4200(argc,argv) ; break; // Importa stipendi in prima nota (OMASA) default: cgp4100(argc,argv) ; break; // Importazione clienti (GSA/CODFIDI) + } exit(0); return 0; } - diff --git a/cg/cgsaldac.cpp b/cg/cgsaldac.cpp index 03f3374f4..7d0dd51d3 100755 --- a/cg/cgsaldac.cpp +++ b/cg/cgsaldac.cpp @@ -502,6 +502,7 @@ TImporto TRiga_scadenze::esposto(bool valuta, const TDate & data_scad, const TDa } + bool TRiga_scadenze::modifica_pagamento(const TRectype& new_pag, const TValuta& valuta, char& old_ap, TImporto& old_abb, TImporto& old_diffcam, char& new_ap, TImporto& new_abb, TImporto& new_diffcam, @@ -2165,4 +2166,4 @@ TRiga_partite* TPartite_array::mov2rig(long numreg, int numrig) return &game->riga(r); } return NULL; -} +} \ No newline at end of file diff --git a/cm/cm1100.cpp b/cm/cm1100.cpp index bc9f03e3a..000ed34cb 100755 --- a/cm/cm1100.cpp +++ b/cm/cm1100.cpp @@ -901,6 +901,7 @@ void TPag_per_cms::find_commesse(const long nreg, const TRectype& riga_pag) const TBill conto(rmoviva); if (cms_in_range(codcms, codfase) && conto.indicatore_bilancio() != 5) + { TToken_string cms_fsc = codcms; if (codfase.not_empty()) @@ -968,6 +969,7 @@ void TPag_per_cms::find_commesse(const long nreg, const TRectype& riga_pag) const TString& codcms = rmov.get("CODCMS"); const TString& codfase = rmov.get("FASCMS"); + if (cms_in_range(codcms,codfase) && conto.indicatore_bilancio() != 5) { TToken_string cms_fsc = codcms; @@ -1068,6 +1070,7 @@ void TPag_per_cms::add_importo(TAssoc_array& assoc, const TRectype& rmov) const chiave.add(rmov.get("FASCMS")); chiave.add(rmov.get(RMV_NUMREG)); + TImporto* importo = (TImporto*)assoc.objptr(chiave); if (importo == NULL) { @@ -1094,6 +1097,7 @@ void TPag_per_cms::find_commesse_cg(const long nreg) const TString& codcms = rmov.get("CODCMS"); const TString& codfase = rmov.get("FASCMS"); + if (cms_in_range(codcms,codfase)) { const TBill conto(rmov); @@ -1384,4 +1388,4 @@ int cm1100(int argc, char* argv[]) TPag_per_cms a; a.run(argc,argv,TR("Stampa pagato per commessa")); return 0; -} +} \ No newline at end of file diff --git a/db/dblib.h b/db/dblib.h index 0e4061472..693a41951 100755 --- a/db/dblib.h +++ b/db/dblib.h @@ -97,10 +97,12 @@ protected: TObject* dup() const { return new TLavorazione(*this); } public: - const char* codice() const { return get("CODTAB"); } - const char* descr() const { return get("S0"); } - const char* um() const { return get("S6"); } + const char * codice() const { return get("CODTAB"); } + const char * descr() const { return get("S0"); } + const char * um() const { return get("S6"); } TUm_tempo um_temporale() const {return (TUm_tempo)get_char("I7");} + bool lavorazione_non_rilevata() const { return get_bool("B3");} + real percentuale_minima() const { return get_real("R0"); } real prezzo() const; void reset_linee(); diff --git a/db/dbtblav.h b/db/dbtblav.h index 1d01eeffa..59ecc28ad 100755 --- a/db/dbtblav.h +++ b/db/dbtblav.h @@ -13,6 +13,8 @@ #define F_DESUNTEMPO 113 #define F_UNMIS2 114 #define F_LINEESTD 115 +#define F_PERCMIN 116 +#define F_PRODNRIL 117 #define F_CODLIN 101 diff --git a/db/dbtblav.uml b/db/dbtblav.uml index cb1e2d13c..882b8dd6f 100755 --- a/db/dbtblav.uml +++ b/db/dbtblav.uml @@ -108,6 +108,18 @@ BEGIN FIELD B0 END +NUMBER F_PERCMIN 6 2 +BEGIN + PROMPT 2 10 "Tempo minimo " + FIELD R1 +END + +BOOLEAN F_PRODNRIL +BEGIN + PROMPT 51 10 "Produzione non rilevata" + FIELD B3 +END + ENDPAGE PAGE "Parametri di MRP" -1 -1 65 15 diff --git a/dt/dt0300.cpp b/dt/dt0300.cpp index 259dcede6..0ba6fe0ae 100755 --- a/dt/dt0300.cpp +++ b/dt/dt0300.cpp @@ -65,6 +65,8 @@ bool TConf_dt::load_mask_ditte(TMask* mask) row.add(workstring.get(1), 1); row.add(workstring.get(2), 2); row.add(workstring.get(3), 3); + row.add(workstring.get(4), 4); + row.add(workstring.get(5), 5); sf_ditte.check_row(sf_ditte.items()-1); } return TRUE; @@ -119,6 +121,8 @@ bool TConf_dt::save_mask_ditte(TMask* mask) workstring.add(line->get(1)); workstring.add(line->get(2)); workstring.add(line->get(3)); + workstring.add(line->get(4)); + workstring.add(line->get(5)); config_studio->set("ConfDitte", workstring, NULL, true, c++); } } @@ -178,4 +182,4 @@ int dt0300(int argc, char* argv[]) app.run(argc, argv, TR("Configurazione modulo")); return 0; -} +} \ No newline at end of file diff --git a/dt/dt0300a.h b/dt/dt0300a.h index 981aacf85..ec98ae39d 100755 --- a/dt/dt0300a.h +++ b/dt/dt0300a.h @@ -1,12 +1,16 @@ // definizione campi maschera dt0300a - configurazione modulo DTECH -#define F_CONF_DOC 201 // configurazione causali/documenti -#define F_CONF_CODPAG 202 // condizione pagamento standard -#define F_CONF_NETTO 203 // contabilizzazione al netto dello sconto +#define F_CONF_DOC 201 // configurazione causali/documenti +#define F_CONF_CODPAG 202 // condizione pagamento standard +#define F_CONF_NETTO 203 // contabilizzazione al netto dello sconto +#define F_CONF_SPESEACC1 204 // codice spese accessorie 1 +#define F_CONF_SPESEACC2 205 // codice spese accessorie 2 +#define F_CONF_SCONTOFIN 206 // codice spesa sconto finanziario -#define F_S_NEGOZIO 101 -#define F_S_CAUS 102 -#define F_S_TIPODOCDT 103 -#define F_S_TIPODOC 104 -#define F_S_STATO 105 -#define F_S_D_TIPODOC 106 -#define F_S_D_STATO 107 +#define F_S_NEGOZIO 101 +#define F_S_CAUS 102 +#define F_S_TIPODOCDT 103 + +#define F_S_TIPODOC 104 +#define F_S_STATO 105 +#define F_S_D_TIPODOC 106 +#define F_S_D_STATO 107 \ No newline at end of file diff --git a/dt/dt0300a.uml b/dt/dt0300a.uml index 7e2591384..facaff5b4 100755 --- a/dt/dt0300a.uml +++ b/dt/dt0300a.uml @@ -33,7 +33,7 @@ END STRING F_CONF_CODPAG 4 BEGIN - PROMPT 1 12 "Codice pagamento standard " + PROMPT 1 12 "Codice pagamento standard " HELP "Codice di pagamento" FIELD CondPag FLAGS "U" @@ -47,11 +47,49 @@ END BOOLEAN F_CONF_NETTO BEGIN - PROMPT 1 13 "Contabilizzazione al netto sconto" + PROMPT 40 12 "Contabilizzazione al netto sconto" HELP "Indicare se trasferire i documenti al netto dello sconto" FIELD ContNettoSconto END +STRING F_CONF_SPESEACC1 8 +BEGIN + PROMPT 1 13 "Cod. spese acc. 1 " + FIELD SpeseAcc1 + FLAGS "U" + USE SPP + INPUT CODTAB F_CONF_SPESEACC1 + DISPLAY "Codice " CODTAB + DISPLAY "Descrizione@50 " S0 + OUTPUT F_CONF_SPESEACC1 CODTAB + CHECKTYPE NORMAL +END + +STRING F_CONF_SPESEACC2 8 +BEGIN + PROMPT 1 14 "Cod. spese acc. 2 " + FIELD SpeseAcc2 + FLAGS "U" + USE SPP + INPUT CODTAB F_CONF_SPESEACC2 + DISPLAY "Codice " CODTAB + DISPLAY "Descrizione@50 " S0 + OUTPUT F_CONF_SPESEACC2 CODTAB + CHECKTYPE NORMAL +END + +STRING F_CONF_SCONTOFIN 8 +BEGIN + PROMPT 1 15 "Cod. spesa per sconto fin. " + FIELD ScontoFin + FLAGS "U" + USE SPP SELECT S9 != " " + INPUT CODTAB F_CONF_SCONTOFIN + DISPLAY "Codice " CODTAB + DISPLAY "Descrizione@50 " S0 + OUTPUT F_CONF_SCONTOFIN CODTAB + CHECKTYPE NORMAL +END ENDPAGE @@ -59,7 +97,7 @@ ENDMASK PAGE "" -1 -1 75 10 -STRING F_S_NEGOZIO 6 +STRING F_S_CODNEG 6 BEGIN PROMPT 1 1 "Negozio " END @@ -141,4 +179,4 @@ END ENDPAGE -ENDMASK +ENDMASK \ No newline at end of file diff --git a/dt/dt0400.cpp b/dt/dt0400.cpp index 2ed028b2f..c5e1c21d9 100755 --- a/dt/dt0400.cpp +++ b/dt/dt0400.cpp @@ -7,6 +7,7 @@ #include #include #include +#include #include #include @@ -19,6 +20,7 @@ #include "rdoc.h" #include "..\cg\cglib01.h" +#include "..\ve\velib.h" // TAutomask @@ -48,15 +50,10 @@ protected: virtual void validate(TCursor& cur,TRecord_text &rec, TToken_string &val, TString& str); public: - TDT2Doc_file(const TString& file_name); + TDT2Doc_file(const TString& file_name, const TString& config_name) : TFile_text(file_name, config_name) {}; virtual ~TDT2Doc_file() { } }; -TDT2Doc_file::TDT2Doc_file(const TString& file_name) - : TFile_text(file_name, "dt0400a.ini") -{ -} - void TDT2Doc_file::validate(TCursor& cur,TRecord_text &rec, TToken_string &s, TString& str) { const TString code(s.get(0)); @@ -76,7 +73,6 @@ HIDDEN bool browse_file_handler(TMask_field& f, KEY k) FILE_SPEC fs; memset(&fs, 0, sizeof(FILE_SPEC)); strcpy(fs.type, ""); strcpy(fs.name, f.get()); - //strcpy(fs.creator, "ba1"); xvt_fsys_get_default_dir(&fs.dir); xvt_fsys_save_dir(); if (xvt_dm_post_file_open(&fs, TR("Selezione file")) == FL_OK) @@ -100,40 +96,47 @@ class TDT2Doc : public TSkeleton_application { TDT2Doc_mask* _msk; TDT2Doc_file* _trasfile; - TLocalisamfile* _clienti; + TLocalisamfile* _clifor; + TRelation* _rel; TCursor* _cur; TProgind* _prog; - TAssoc_array* _array_clienti; + TAssoc_array* _array_clifor; TAssoc_array* _confditte; TAssoc_array* _confdoc; TAssoc_array* _totalilordi; TAssoc_array* _castelletto; TAssoc_array* _primariga; - TString80 _cms, _condpag, _codnum, _negozio; + TString80 _cms, _condpag, _codnum, _negozio, _speseacc1, _speseacc2, _scontofin; bool _contnetto; - public: bool print_header(const TString80& percorso); + void print_line(const TString& rigastampa = ""); void print_footer(); virtual bool create(); virtual bool destroy(); virtual void main_loop(); - bool import_clienti(const TString80& percorso); - bool import_documenti(const TString80& percorso); - const long get_nextcodcf(); + bool import_clifor(const TFilename& percorso, const char tipocf); + bool import_documenti(const TFilename& percorso, const bool doc_attivi); + bool elabora_documenti(const bool doc_attivi); + const long get_nextcodcf(const char tipocf); bool load_conf_ditte(); bool load_conf_doc(); - bool check_negozio(const TString80& percorso); - bool TDT2Doc::error_msg(const TString& msg, const TString16& causale, const int numdoc, const TString& codice); + char check_negozio(const TFilename& percorso); + bool error_msg(const TString& msg, const TString16& causale, const int numdoc, const TString& codice); + void rename_file(const TFilename& percorso); + int get_numdoc(const TString& numdocrif, const TDate datadoc, const TString& _codnum, const TString& tipodoc, const long codcf); + int add_riga_doc(TDocumento* doc, TConfig& config); + TDT2Doc() {} }; TDT2Doc& app() { return (TDT2Doc&) main_app(); } -bool TDT2Doc::print_header(const TString80& percorso) +bool TDT2Doc::print_header(const TFilename& percorso) + { if (printer().open()) { @@ -155,7 +158,7 @@ bool TDT2Doc::print_header(const TString80& percorso) return TRUE; } else - return error_box("Errore in apertura stampante."); + return error_box(TR("Errore in apertura stampante.")); } void TDT2Doc::print_line(const TString& rigastampa) @@ -175,51 +178,71 @@ void TDT2Doc::print_footer() printer().close(); } -bool TDT2Doc::check_negozio(const TString80& percorso) +char TDT2Doc::check_negozio(const TFilename& percorso) { - TConfig config_studio = TConfig(CONFIG_STUDIO, "dt"); - int inizio = percorso.find("DF"); - inizio+=2; - const int fine = percorso.find('.'); - _negozio = percorso.mid(inizio, fine); - _negozio.trim(); - if (_confditte->is_key(_negozio)) + char tipocf = 'E'; + TConfig config_studio(CONFIG_STUDIO, "dt"); + TString80 nomefile(percorso.name()); + TString80 estensione(percorso.ext()); + const int fine = nomefile.find(estensione); + if (fine > 0) + nomefile = nomefile.sub(0,fine-1); + if (_confditte->is_key(nomefile)) { - TToken_string& config = (TToken_string&) _confditte->find(_negozio); - TString16 dittastr = config.get(); + TToken_string& config = (TToken_string&) _confditte->find(nomefile); + TString16 dittastr(config.get()); _cms = config.get(); _codnum = config.get(); + tipocf = config.get_char(); if (_codnum.empty()) - return error_box("Attenzione: manca la numerazione corrispondente al negozio. Completare la tabella prima di effettuare il trasferimento"); - const long ditta = atol(dittastr); - if (prefix().exist(ditta)) { - load_conf_doc(); - return set_firm(ditta); + error_box(TR("Attenzione: manca la numerazione corrispondente al negozio. Completare la tabella prima di effettuare il trasferimento")); + tipocf = 'E'; } else - return error_box("Attenzione: non esiste la ditta %ld; trasferimento annullato", ditta); + { + const long ditta = atol(dittastr); + if (prefix().exist(ditta)) + { + _negozio = nomefile.sub(2); + load_conf_doc(); + if (!set_firm(ditta)) + tipocf = 'E'; + } + else + { + error_box(TR("Attenzione: non esiste la ditta %ld; trasferimento annullato"), ditta); + tipocf = 'E'; + } + } } else - return error_box("Attenzione: manca la corrispondenza negozio - ditta; trasferimento annullato"); + { + error_box(TR("Attenzione: manca la corrispondenza negozio - ditta; trasferimento annullato")); + tipocf = 'E'; + } + return tipocf; } bool TDT2Doc::load_conf_ditte() { - TConfig config_studio = TConfig(CONFIG_STUDIO, "dt"); + TConfig config_studio(TConfig(CONFIG_STUDIO, "dt")); TToken_string workstring; _confditte->destroy(); for (int k = 0; config_studio.exist("ConfDitte", k); k++) { - workstring= config_studio.get("ConfDitte", NULL, k); - const TString16 negozio = workstring.get(0); - const TString16 ditta = workstring.get(1); - const TString80 cms = workstring.get(2); - const TString16 codnum = workstring.get(3); + workstring = config_studio.get("ConfDitte", NULL, k); + TString16 negozio(workstring.get(0)); + negozio << workstring.get(1); + const TString16 ditta(workstring.get(2)); + const TString80 cms(workstring.get(3)); + const TString16 codnum(workstring.get(4)); + const char attpass(workstring.get_char()); TToken_string config; config.add(ditta); config.add(cms); config.add(codnum); + config.add(attpass); _confditte->add(negozio, config); } return TRUE; @@ -248,6 +271,9 @@ bool TDT2Doc::load_conf_doc() } _condpag = config_studio.get("CondPag"); _contnetto = config_studio.get_bool("ContNettoSconto"); + _speseacc1 = config_studio.get("SpeseAcc1"); + _speseacc2 = config_studio.get("SpeseAcc2"); + _scontofin = config_studio.get("ScontoFin"); return TRUE; } @@ -258,9 +284,9 @@ bool TDT2Doc::create() _msk->set_handler(F_PERCORSO, browse_file_handler); _cms = " "; _condpag = " "; - _clienti = new TLocalisamfile(LF_CLIFO); + _clifor = new TLocalisamfile(LF_CLIFO); // array delle corrispondenze tra codici clienti - _array_clienti = new TAssoc_array(); + _array_clifor = new TAssoc_array(); // array della configurazione negozi/ditte _confditte = new TAssoc_array(); load_conf_ditte(); @@ -275,8 +301,10 @@ bool TDT2Doc::create() // primariga di ogni aliquota _primariga = new TAssoc_array(); return TSkeleton_application::create (); + } + bool TDT2Doc::destroy() { delete _primariga; @@ -284,8 +312,9 @@ bool TDT2Doc::destroy() delete _totalilordi; delete _confdoc; delete _confditte; - delete _array_clienti; - delete _clienti; + delete _array_clifor; + delete _clifor; + delete _msk; return TApplication::destroy(); } @@ -299,49 +328,74 @@ void TDT2Doc::main_loop() tasto = _msk->run(); if (tasto == K_ENTER) { - percorso = _msk->get(F_PERCORSO); - if (check_negozio(percorso)) + TFilename percorso(_msk->get(F_PERCORSO)); + const char tipocf = check_negozio(percorso); + if (tipocf != 'E') + { if (print_header(percorso)) { - _trasfile = new TDT2Doc_file(percorso); - import_clienti(percorso); - import_documenti(percorso); + const bool doc_attivi = tipocf == 'A'; + _trasfile = new TDT2Doc_file(percorso, (doc_attivi ? true, "dt0400a.ini" : "dt0400b.ini")); + import_clifor(percorso, (doc_attivi ? true, 'C' : 'F')); + int error = import_documenti(percorso, doc_attivi); configfile.set("PERCORSO", percorso, "OPZIONI"); delete _trasfile; - message_box(TR("Importazione documenti completata")); + if (!error) + { + rename_file(percorso); + message_box(TR("Importazione documenti completata")); + } + else + message_box(TR("Errori nell'importazione")); print_footer(); } + } } } -const long TDT2Doc::get_nextcodcf() +const long TDT2Doc::get_nextcodcf(const char tipocfchiesto) { - TLocalisamfile& clifo = *_clienti; + TLocalisamfile& clifo = *_clifor; long codcf = 1L ; - if (!clifo.empty()) - { - clifo.zero() ; - clifo.setkey(1) ; - clifo.put(CLI_TIPOCF, 'F'); - clifo.read(_isgteq) ; - if (clifo.good()) - clifo.prev() ; - clifo.setstatus(NOERR); - } - else clifo.last(); - if (clifo.good()) + if (tipocfchiesto == 'C') { - const TFixed_string tipocf(clifo.get(CLI_TIPOCF)); - if ( tipocf == "C") + if (!clifo.empty()) { - codcf = clifo.get_long(CLI_CODCF); - if (codcf == 999999) - clifo.prev(); - codcf = clifo.get_long(CLI_CODCF)+1; + clifo.zero() ; + clifo.setkey(1) ; + clifo.put(CLI_TIPOCF, 'F'); + clifo.read(_isgteq) ; + if (clifo.good()) + clifo.prev() ; + clifo.setstatus(NOERR); } - } + else clifo.last(); + if (clifo.good()) + { + const TFixed_string tipocf(clifo.get(CLI_TIPOCF)); + if ( tipocf == "C") + { + codcf = clifo.get_long(CLI_CODCF); + if (codcf == 999999) + clifo.prev(); + codcf = clifo.get_long(CLI_CODCF)+1; + } + } + } + else + { + clifo.last(); + if (clifo.good()) + { + const TFixed_string tipocf(clifo.get(CLI_TIPOCF)); + if ( tipocf == "C") + codcf = 1; + else + codcf = clifo.get_long(CLI_CODCF)+1; + } + } return codcf; } @@ -362,16 +416,117 @@ bool TDT2Doc::error_msg(const TString& msg, const TString16& causale, const int return TRUE; } -bool TDT2Doc::import_documenti(const TString80& percorso) +bool TDT2Doc::import_documenti(const TFilename& percorso, const bool doc_attivi) + { // eliminazione files delle elaborazioni precedenti TString_array transactions; - list_files("ditet*.ini", transactions); + TFilename dtfiles; dtfiles.tempdir(); + dtfiles.add("ditet*.ini"); + list_files(dtfiles, transactions); FOR_EACH_ARRAY_ROW(transactions, row, name) - remove(*name); - // lettura file - _trasfile->open(percorso, 'r'); - const long dimension = fsize(percorso); + remove_file(*name); + TFilename tempname; + if (doc_attivi) + _trasfile->open(percorso, 'r'); + else + { + // riordina i record del file di input documenti passivi per ndoc+tiporec + tempname.temp("", "txt"); + const size_t recordsize = 256; + char * buf = new char[recordsize]; + ifstream infile(percorso); + ofstream outfile(tempname); + TSort s(recordsize); + s.addsortkey(8, 3); + s.addsortkey(11, 10); + s.addsortkey(6, 2); + s.init(); + while (infile.getline(buf, recordsize) != NULL) + s.sort(buf); + s.endsort(); + delete buf; + const char * outbuf; + while ((outbuf = s.retrieve()) != NULL) + outfile << outbuf << endl; + _trasfile->open(tempname, 'r'); + } + bool error = elabora_documenti(doc_attivi); + _trasfile->close(); + if (tempname.exist()) + remove_file(tempname); + TString80 applicat; + applicat.format("ve0.exe -1 -i%s", (const char*) dtfiles); + TExternal_app gestdoc(applicat); + gestdoc.run(); + return error; +} + +int TDT2Doc::get_numdoc(const TString& numdocrif, const TDate datadoc, const TString& _codnum, const TString& tipodoc, const long codcf) +{ + int numdoc = 0; + TRelation rel(LF_DOC); + TRectype& curr = rel.curr(); + curr.put(DOC_TIPOCF, "F"); + curr.put(DOC_CODCF, codcf); + curr.put(DOC_PROVV, "D"); + curr.put(DOC_ANNO, datadoc.year()); + curr.put(DOC_DATADOC, datadoc); + curr.put(DOC_CODNUM, _codnum); + TCursor cur(&rel, "", 2, &curr, &curr); + const long items = cur.items(); + for (cur = 0; cur.pos() < items; ++cur) + { + TString80 ndr = cur.curr().get(DOC_NUMDOCRIF); + ndr.trim(); + if (ndr == numdocrif) + numdoc = cur.curr().get_int(DOC_NDOC); + } + return numdoc; +} + +int TDT2Doc::add_riga_doc(TDocumento* doc, TConfig& config) +{ + TRiga_documento& riga = doc->new_row(config.get(RDOC_TIPORIGA)); + riga.put(RDOC_QTA, config.get(RDOC_QTA)); + riga.put(RDOC_UMQTA,config.get(RDOC_UMQTA)); + riga.put(RDOC_CODIVA, config.get(RDOC_CODIVA)); + riga.put(RDOC_PREZZO, config.get(RDOC_PREZZO)); + return 0; +} + +void TDT2Doc::rename_file(const TFilename& percorso) +{ + TFilename newfile; + const TDate data(TODAY); + TString str = data.string(full,'-',full,full,amg_date); + str.strip("-"); + TFilename renamedfiles(percorso); + renamedfiles << str; + newfile = renamedfiles; + renamedfiles << "*.*"; + TString_array listfiles; + list_files(renamedfiles, listfiles); + int suffisso = 0; + FOR_EACH_ARRAY_ROW(listfiles, row, name) + { + TString80 namef(*name); + namef.trim(); + suffisso = atoi(namef.right(1)); + } + suffisso++; + newfile << suffisso; + if (fcopy(percorso, newfile)) + remove_file(percorso); + TString messaggio; + messaggio << "Il file " << percorso << " e' stato copiato in " << newfile; + print_line(messaggio); +} + +bool TDT2Doc::elabora_documenti(const bool doc_attivi) +{ + const long dimension = fsize(_trasfile->name()); + TProgind pi(dimension,"Importazione in corso..."); TConfig* docum=NULL; TString256 stampa; @@ -385,6 +540,8 @@ bool TDT2Doc::import_documenti(const TString80& percorso) real percsconto(ZERO); int numdoc; TString16 causale; + TDocumento* doc=NULL; + TRecord_text curr; while (_trasfile->read(curr) == NOERR && !pi.iscancelled() && err == NOERR) { @@ -396,43 +553,102 @@ bool TDT2Doc::import_documenti(const TString80& percorso) { if (sconto != ZERO && !_contnetto) { - TGeneric_distrib d(sconto, TCurrency::get_firm_dec(true)); + const int ndec = TCurrency::get_firm_dec(false); + TGeneric_distrib d(sconto, ndec); for (tl = (real*) _totalilordi->first_item(); tl != NULL; tl = (real*) _totalilordi->succ_item()) d.add(*tl); real totsconti(ZERO); for (tl = (real*) _totalilordi->first_item(); tl != NULL; tl = (real*) _totalilordi->succ_item()) { sconto = d.get(); - TString16 codiva = _totalilordi->get_hashobj()->key(); + const TString& codiva = _totalilordi->get_hashobj()->key(); TCodiceIVA codiceIVA(codiva); - codiceIVA.scorpora(sconto, TCurrency::get_firm_dec(true)); + codiceIVA.scorpora(sconto, ndec); real& imp_calcolato = *tl; - real& imp_castelletto = (real&) _castelletto->find(codiva); - codiceIVA.scorpora(imp_calcolato, TCurrency::get_firm_dec(true)); - real diff = imp_calcolato-sconto-imp_castelletto; - sconto = sconto + diff; - nriga++; - docum->set_paragraph(format("%d,%d",LF_RIGHEDOC, nriga)); - docum->set(RDOC_CHECKED, "X"); - docum->set(RDOC_TIPORIGA, "07"); - docum->set(RDOC_DESCR, "Sconto"); - TString16 str = sconto.string(TCurrency::get_firm_dec(true)); - docum->set(RDOC_PREZZO, str); - docum->set(RDOC_CODIVA, codiva); - docum->set(RDOC_CODCMS, _cms); - totsconti+=sconto; + if (_castelletto->is_key(codiva)) + { + real& imp_castelletto = (real&) _castelletto->find(codiva); + codiceIVA.scorpora(imp_calcolato, ndec); + real diff = imp_calcolato-sconto-imp_castelletto; + if (sconto != ZERO) + { + if (doc_attivi) + sconto += diff; + nriga++; + docum->set_paragraph(format("%d,%d",LF_RIGHEDOC, nriga)); + docum->set(RDOC_CHECKED, "X"); + docum->set(RDOC_TIPORIGA, "07"); + docum->set(RDOC_DESCR, "Sconto"); + docum->set(RDOC_PREZZO, sconto.string()); + docum->set(RDOC_CODIVA, codiva); + docum->set(RDOC_CODCMS, _cms); + add_riga_doc(doc, *docum); + totsconti+=sconto; + if (!doc_attivi) + { + nriga++; + docum->set_paragraph(format("%d,%d",LF_RIGHEDOC, nriga)); + docum->set(RDOC_CHECKED, "X"); + docum->set(RDOC_TIPORIGA, "01"); + docum->set(RDOC_CODART, codiva); + docum->set(RDOC_DESCR, "Pareggio sconto"); + docum->set(RDOC_QTA, "1"); + docum->set(RDOC_PREZZO, sconto.string()); + docum->set(RDOC_CODIVA, codiva); + docum->set(RDOC_CODCMS, _cms); + add_riga_doc(doc, *docum); + } + } + } + else + error = error_msg("incongruenza nel castelletto - iva assente ", causale, numdoc, codiva); } } else { for (tl = (real*) _totalilordi->first_item(); tl != NULL; tl = (real*) _totalilordi->succ_item()) { - TString16 codiva = _totalilordi->get_hashobj()->key(); + const TString& codiva = _totalilordi->get_hashobj()->key(); TCodiceIVA codiceIVA(codiva); real& imp_calcolato = *tl; - real& imp_castelletto = (real&) _castelletto->find(codiva); - codiceIVA.scorpora(imp_calcolato, TCurrency::get_firm_dec(true)); - real diff = imp_castelletto-imp_calcolato; + if (_castelletto->is_key(codiva)) + { + real& imp_castelletto = (real&) _castelletto->find(codiva); + codiceIVA.scorpora(imp_calcolato, TCurrency::get_firm_dec(true)); + real diff = imp_castelletto-imp_calcolato; + diff.round(2); + if (diff != ZERO) + { + nriga++; + docum->set_paragraph(format("%d,%d",LF_RIGHEDOC, nriga)); + docum->set(RDOC_CHECKED, "X"); + docum->set(RDOC_TIPORIGA, "01"); + docum->set(RDOC_DESCR, "Rettifica"); + docum->set(RDOC_PREZZO, diff.string()); + docum->set(RDOC_QTA, "1"); + docum->set(RDOC_CODIVA, codiva); + TString& codart = (TString&) _primariga->find(codiva); + docum->set(RDOC_CODART, codart); + docum->set(RDOC_CODCMS, _cms); + add_riga_doc(doc, *docum); + } + } + else + error = error_msg("incongruenza nel castelletto - iva assente ", causale, numdoc, codiva); + } + } + if ((!doc_attivi) && (doc!=NULL)) + { + // verifico tabella iva + TAssoc_array& tabella_iva = doc->tabella_iva(); + TRiepilogo_iva* riepilogo_iva; + // Scorre tutti gli elementi della tabella IVA del documento (elementi per codice iva) + for (riepilogo_iva = (TRiepilogo_iva*) tabella_iva.first_item(); riepilogo_iva != NULL; riepilogo_iva = (TRiepilogo_iva*) tabella_iva.succ_item()) + { + const TString& codiva_riep = riepilogo_iva->cod_iva().codice(); + real& imp_castelletto = (real&) _castelletto->find( codiva_riep); + real imponibile = riepilogo_iva->imponibile(); + real diff = imp_castelletto-imponibile; diff.round(2); if (diff != ZERO) { @@ -441,16 +657,17 @@ bool TDT2Doc::import_documenti(const TString80& percorso) docum->set(RDOC_CHECKED, "X"); docum->set(RDOC_TIPORIGA, "01"); docum->set(RDOC_DESCR, "Rettifica"); - TString16 str = diff.string(TCurrency::get_firm_dec()); - docum->set(RDOC_PREZZO, str); + docum->set(RDOC_PREZZO, diff.string()); docum->set(RDOC_QTA, "1"); - docum->set(RDOC_CODIVA, codiva); - TString& codart = (TString&) _primariga->find(codiva); + docum->set(RDOC_CODIVA, codiva_riep); + TString& codart = (TString&) _primariga->find(codiva_riep); docum->set(RDOC_CODART, codart); docum->set(RDOC_CODCMS, _cms); + add_riga_doc(doc, *docum); } } } + } // chiudo il file precedente _totalilordi->destroy(); @@ -463,17 +680,23 @@ bool TDT2Doc::import_documenti(const TString80& percorso) } if (error) // cancello il file perch'e la transazione non e' andata bene { - TFilename file = format("ditet%03d.ini",ntransac); - if (file.exist()) - remove(file); + TFilename dtfile; dtfile.tempdir(); + dtfile.add(format("ditet%03d.ini",ntransac)); + if (dtfile.exist()) + remove_file(dtfile); } error = FALSE; if (curr.type() == "01") { ntransac++; - docum = new TConfig(format("ditet%03d.ini",ntransac)); + TFilename dtfile; dtfile.tempdir(); + dtfile.add(format("ditet%03d.ini",ntransac)); + docum = new TConfig(dtfile); sconto = ZERO; - numdoc = atoi(curr.get(3)); + if (doc_attivi) + numdoc = atoi(curr.get(3)); + else + numdoc = 0; const TDate datadoc = (TDate) curr.get(4); causale = curr.get(10); causale << "|"; @@ -486,14 +709,12 @@ bool TDT2Doc::import_documenti(const TString80& percorso) const TString16 tipodoc = str.get(); if (tipodoc.not_empty()) { - TString16 codclidt; - codclidt = curr.get(5); - if (_array_clienti->is_key(codclidt)) + TString16 codcfdt; + codcfdt = curr.get(5); + if (_array_clifor->is_key(codcfdt)) { - TString& codcli = (TString&) _array_clienti->find(codclidt); - //ntransac++; + TString& codcf = (TString&) _array_clifor->find(codcfdt); nriga=0; - //docum = new TConfig(format("ditet%03d.ini",ntransac)); docum->set_paragraph("Transaction"); docum->set("Action","INSERT"); docum->set("Mode","AUTO"); @@ -502,10 +723,23 @@ bool TDT2Doc::import_documenti(const TString80& percorso) docum->set(DOC_PROVV, "D"); docum->set(DOC_CODNUM, _codnum); docum->set(DOC_TIPODOC, tipodoc); - docum->set(DOC_NDOC, numdoc); + if (!doc_attivi) + { + TString80 numdocrif = curr.get(3); + numdocrif.strip("/"); + numdocrif.strip("\\"); + numdocrif.strip("-"); + numdocrif.strip("_"); + numdocrif.trim(); + numdoc = get_numdoc(numdocrif, datadoc, _codnum, tipodoc, atol(codcf)); + docum->set(DOC_NUMDOCRIF, numdocrif); + docum->set(DOC_DATADOCRIF, datadoc); + } + if (numdoc != 0) + docum->set(DOC_NDOC, numdoc); docum->set(DOC_DATADOC, datadoc); - docum->set(DOC_TIPOCF, "C"); - docum->set(DOC_CODCF, codcli); + docum->set(DOC_TIPOCF, (doc_attivi ? "C": "F")); + docum->set(DOC_CODCF, codcf); TString16 codpag = curr.get(6); codpag.trim(); const TString16 codpagdt = cache().get("%DTP", codpag, "S4"); @@ -513,6 +747,11 @@ bool TDT2Doc::import_documenti(const TString80& percorso) docum->set(DOC_CODPAG, _condpag); else docum->set(DOC_CODPAG, codpagdt); + // istanzio TDocumento per fare le verifiche sul castelletto + if (doc != NULL) + delete doc; + doc = new TDocumento('D', datadoc.year(), _codnum, 0); + doc->set_tipo(tipodoc); } else error = error_msg("cliente non identificato", causale, numdoc, ""); @@ -543,6 +782,71 @@ bool TDT2Doc::import_documenti(const TString80& percorso) importo=importo/100; real* oggetto = new real(importo); _castelletto->add(codiva,(TObject*)oggetto); + + // creo le righe di doc. perche' nei doc.passivi non ci sono + if (!doc_attivi) + { + real imposta = (real) curr.get(10); + imposta=imposta/100; + nriga++; + docum->set_paragraph(format("%d,%d",LF_RIGHEDOC, nriga)); + docum->set(RDOC_CHECKED, "X"); + docum->set(RDOC_TIPORIGA, "01"); + docum->set(RDOC_CODART, codiva); + docum->set(RDOC_CODCMS, _cms); + if (!_primariga->is_key(codiva)) + { + TString* ca = new TString(codiva); + _primariga->add(codiva,(TObject*)ca); + } + docum->set(RDOC_DESCR, "Riga documento "); + real qta = 1; + TString str = qta.string(); + docum->set(RDOC_QTA, str); + docum->set(RDOC_UMQTA, "N."); + TCodiceIVA codiceIVA((const char*) codiva); + docum->set(RDOC_CODIVA, codiva); + real impostacalc = codiceIVA.imposta(importo); + str = importo.string(); + docum->set(RDOC_PREZZO, str); + add_riga_doc(doc, *docum); + if (imposta != impostacalc) //inserisco riga di rettifica IVA + { + nriga++; + docum->set_paragraph(format("%d,%d",LF_RIGHEDOC, nriga)); + docum->set(RDOC_CHECKED, "X"); + docum->set(RDOC_TIPORIGA, "15"); + docum->set(RDOC_CODART, codiva); + docum->set(RDOC_CODCMS, _cms); + if (!_primariga->is_key(codiva)) + { + TString* ca = new TString(codiva); + _primariga->add(codiva,(TObject*)ca); + } + docum->set(RDOC_DESCR, "Rettifica IVA "); + real qta = 1; + TString str = qta.string(); + docum->set(RDOC_QTA, str); + docum->set(RDOC_UMQTA, "N."); + TCodiceIVA codiceIVA((const char*) codiva); + docum->set(RDOC_CODIVA, codiva); + real diff = imposta - impostacalc; + str = diff.string(); + docum->set(RDOC_PREZZO, str); + add_riga_doc(doc, *docum); + } + real importoriga = importo+impostacalc; + if (_totalilordi->is_key(codiva)) + { + real& importor = (real&)_totalilordi->find(codiva); + importor+=importoriga; + } + else + { + real* oggetto = new real(importoriga); + _totalilordi->add(codiva,(TObject*)oggetto); + } + } } else error = error_msg("manca la corrispondenza iva" ,causale, numdoc, tabiva); @@ -555,6 +859,177 @@ bool TDT2Doc::import_documenti(const TString80& percorso) sconto = sconto/100; importodoc = importodoc + sconto; percsconto = sconto/importodoc; + + if (!doc_attivi) + { + TString str; + // sconto finanziario + real scontofin = (real) curr.get(9); + real importoriga = scontofin/100; + if (importoriga != ZERO) + { + const TString16 codiva = cache().get("SPP", _scontofin, "S3"); + nriga++; + docum->set_paragraph(format("%d,%d",LF_RIGHEDOC, nriga)); + docum->set(RDOC_CHECKED, "X"); + docum->set(RDOC_TIPORIGA, "02"); + docum->set(RDOC_CODART, _scontofin); + docum->set(RDOC_CODCMS, _cms); + docum->set(RDOC_DESCR, "Sconto finanziario"); + real qta = 1; + str = qta.string(); + docum->set(RDOC_QTA, str); + docum->set(RDOC_UMQTA, "N."); + TCodiceIVA codiceIVA((const char*) codiva); + docum->set(RDOC_CODIVA, codiva); + real imposta = codiceIVA.imposta(importoriga); + str = importoriga.string(); + docum->set(RDOC_PREZZO, str); + add_riga_doc(doc, *docum); + } + // spese accessorie 1 + char segno = curr.get(10)[0]; + importoriga = (real) curr.get(11); + importoriga = importoriga/100; + if (segno == '-') + importoriga = -importoriga; + if (importoriga != ZERO) + { + TString16 tabiva = curr.get(12); + tabiva.trim(); + tabiva.rpad(4); + str = curr.get(13); + str.trim(); + tabiva << str; + tabiva.rpad(7); + str = curr.get(14); + str.trim(); + tabiva << str; + const TString16 codiva = cache().get("%DTI", tabiva, "S4"); + nriga++; + docum->set_paragraph(format("%d,%d",LF_RIGHEDOC, nriga)); + docum->set(RDOC_CHECKED, "X"); + docum->set(RDOC_TIPORIGA, "02"); + docum->set(RDOC_CODART, _speseacc1); + docum->set(RDOC_CODCMS, _cms); + if (!_primariga->is_key(codiva)) + { + TString* ca = new TString(_speseacc1); + _primariga->add(codiva,(TObject*)ca); + } + docum->set(RDOC_DESCR, "Spese accessorie 1"); + real qta = 1; + str = qta.string(); + docum->set(RDOC_QTA, str); + docum->set(RDOC_UMQTA, "N."); + TCodiceIVA codiceIVA((const char*) codiva); + docum->set(RDOC_CODIVA, codiva); + real imposta = codiceIVA.imposta(importoriga); + str = importoriga.string(); + docum->set(RDOC_PREZZO, str); + add_riga_doc(doc, *docum); + if (_contnetto) + { + real importo = importoriga+imposta; + if (_totalilordi->is_key(codiva)) + { + real& importoi = (real&)_totalilordi->find(codiva); + importoi+=importo; } + else + { + real* oggetto = new real(importo); + _totalilordi->add(codiva,(TObject*)oggetto); + } + } + else //aggiungo la rettifica per far quadrare il castelletto + { + nriga++; + docum->set_paragraph(format("%d,%d",LF_RIGHEDOC, nriga)); + docum->set(RDOC_CHECKED, "X"); + docum->set(RDOC_TIPORIGA, "01"); + docum->set(RDOC_DESCR, "Rettifica spese acc. 1"); + importoriga = -importoriga; + str = importoriga.string(); + docum->set(RDOC_PREZZO, str); + docum->set(RDOC_QTA, "1"); + docum->set(RDOC_CODIVA, codiva); + TString& codart = (TString&) _primariga->find(codiva); + docum->set(RDOC_CODCMS, _cms); + add_riga_doc(doc, *docum); + } + } + // spese accessorie 2 + segno = curr.get(15)[0]; + importoriga = (real) curr.get(16); + importoriga = importoriga/100; + if (segno =='-') + importoriga = -importoriga; + if (importoriga != ZERO) + { + TString16 tabiva = curr.get(17); + tabiva.trim(); + tabiva.rpad(4); + TString str = curr.get(18); + str.trim(); + tabiva << str; + tabiva.rpad(7); + str = curr.get(19); + str.trim(); + tabiva << str; + const TString16 codiva = cache().get("%DTI", tabiva, "S4"); + nriga++; + docum->set_paragraph(format("%d,%d",LF_RIGHEDOC, nriga)); + docum->set(RDOC_CHECKED, "X"); + docum->set(RDOC_TIPORIGA, "02"); + docum->set(RDOC_CODART, _speseacc2); + docum->set(RDOC_CODCMS, _cms); + if (!_primariga->is_key(codiva)) + { + TString* ca = new TString(_speseacc2); + _primariga->add(codiva,(TObject*)ca); + } + docum->set(RDOC_DESCR, "Spese accessorie 2"); + real qta = 1; + str = qta.string(); + docum->set(RDOC_QTA, str); + docum->set(RDOC_UMQTA, "N."); + TCodiceIVA codiceIVA((const char*) codiva); + docum->set(RDOC_CODIVA, codiva); + real imposta = codiceIVA.imposta(importoriga); + str = importoriga.string(); + docum->set(RDOC_PREZZO, str); + add_riga_doc(doc, *docum); + if (_contnetto) + { + real importo = importoriga+imposta; + if (_totalilordi->is_key(codiva)) + { + real& importoi = (real&)_totalilordi->find(codiva); + importoi+=importo; } + else + { + real* oggetto = new real(importo); + _totalilordi->add(codiva,(TObject*)oggetto); + } + } + else // aggiungo la rettifica per far quadrare il castelletto + { + nriga++; + docum->set_paragraph(format("%d,%d",LF_RIGHEDOC, nriga)); + docum->set(RDOC_CHECKED, "X"); + docum->set(RDOC_TIPORIGA, "01"); + docum->set(RDOC_DESCR, "Rettifica spese acc. 2"); + importoriga = -importoriga; + str = importoriga.string(); + docum->set(RDOC_PREZZO, str); + docum->set(RDOC_QTA, "1"); + docum->set(RDOC_CODIVA, codiva); + TString& codart = (TString&) _primariga->find(codiva); + docum->set(RDOC_CODCMS, _cms); + add_riga_doc(doc, *docum); + } + } + } } else if ((!error) && (curr.type() == "04" || curr.type() == "05")) // righe documento { @@ -604,6 +1079,7 @@ bool TDT2Doc::import_documenti(const TString80& percorso) prezzo.round(TCurrency::get_firm_dec(true)); str = prezzo.string(); docum->set(RDOC_PREZZO, str); + add_riga_doc(doc, *docum); importoriga=prezzo*qta; importoriga = codiceIVA.lordo(importoriga, TCurrency::get_firm_dec(true)); if (_totalilordi->is_key(codiva)) @@ -616,28 +1092,31 @@ bool TDT2Doc::import_documenti(const TString80& percorso) real* oggetto = new real(importoriga); _totalilordi->add(codiva,(TObject*)oggetto); } - } else error = error_msg("manca la corrispondenza iva" ,causale, numdoc, tabiva); } } - _trasfile->close(); // chiudo l'ultimo file if (docum != NULL) delete docum; + if (doc != NULL) + delete doc; + if (error) // cancello il file perch'e la transazione non e' andata bene { - TFilename file = format("ditet%03d.ini",ntransac); - if (file.exist()) - remove(file); + TFilename dtfile; dtfile.tempdir(); + dtfile.add(format("ditet%03d.ini",ntransac)); + if (dtfile.exist()) + remove_file(dtfile); + } - TExternal_app gestdoc("ve0.exe -1 -iditet*.ini "); - gestdoc.run(); - return TRUE; + return error; + } -bool TDT2Doc::import_clienti(const TString80& percorso) +bool TDT2Doc::import_clifor(const TFilename& percorso, const char tipocf) + { // cache per i comuni TRecord_cache cache_comuni(LF_COMUNI, 2); @@ -647,8 +1126,9 @@ bool TDT2Doc::import_clienti(const TString80& percorso) TRelation rel(LF_CLIFO); TRectype& reccli = rel.curr(); TLocalisamfile& clifo = rel.lfile(); - _array_clienti->destroy(); + _array_clifor->destroy(); TString256 stampa; + int err = NOERR; TRecord_text curr; while (_trasfile->read(curr) == NOERR && !pi.iscancelled() && err == NOERR) @@ -665,37 +1145,37 @@ bool TDT2Doc::import_clienti(const TString80& percorso) { rel.lfile().setkey(4); reccli.zero(); - reccli.put(CLI_TIPOCF, 'C'); + reccli.put(CLI_TIPOCF, tipocf); reccli.put(CLI_COFI, cofi); if (reccli.read(rel.lfile())!=NOERR) { reccli.zero(); - const long codcf = get_nextcodcf(); - reccli.put(CLI_TIPOCF, 'C'); + const long codcf = get_nextcodcf(tipocf); + reccli.put(CLI_TIPOCF, tipocf); reccli.put(CLI_CODCF, codcf); reccli.put(CLI_RAGSOC, ragsoc); err = reccli.write(rel.lfile()); if (err != NOERR) - message_box("Errore in scrittura clienti %d", err); + message_box(TR("Errore in scrittura clienti/fornitori %d"), err); } } else if (!paiv.blank()) { rel.lfile().setkey(5); reccli.zero(); - reccli.put(CLI_TIPOCF, 'C'); + reccli.put(CLI_TIPOCF, tipocf); reccli.put(CLI_STATOPAIV, statopaiv); reccli.put(CLI_PAIV, paiv); if (reccli.read(rel.lfile())!=NOERR) { reccli.zero(); - const long codcf = get_nextcodcf(); - reccli.put(CLI_TIPOCF, 'C'); + const long codcf = get_nextcodcf(tipocf); + reccli.put(CLI_TIPOCF, tipocf); reccli.put(CLI_CODCF, codcf); reccli.put(CLI_RAGSOC, ragsoc); err = reccli.write(rel.lfile()); if (err != NOERR) - message_box("Errore in scrittura clienti %d", err); + message_box(TR("Errore in scrittura clienti/fornitori %d"), err); } } _trasfile->autosave(rel, curr); @@ -720,10 +1200,10 @@ bool TDT2Doc::import_clienti(const TString80& percorso) } rel.rewrite(); // aggiungo il cliente all'array per ritrovarlo sui documenti - const TString16 codcli = rel.curr().get(CLI_CODCF); - const TString16 codclidt = curr.get(3); - if (!_array_clienti->is_key(codclidt)) - _array_clienti->add(codclidt, codcli); + const TString16 codcf = rel.curr().get(CLI_CODCF); + const TString16 codcfdt = curr.get(3); + if (!_array_clifor->is_key(codcfdt)) + _array_clifor->add(codcfdt, codcf); } } _trasfile->close(); @@ -736,4 +1216,3 @@ int dt0400(int argc, char* argv[]) main_app.run(argc, argv, TR("Importazione documenti")); return TRUE; } - diff --git a/dt/dt0400b.ini b/dt/dt0400b.ini new file mode 100755 index 000000000..579fd6bcf --- /dev/null +++ b/dt/dt0400b.ini @@ -0,0 +1,514 @@ +[MAIN] +DECSEP = , +RECORDSEP = \n +TYPEFIELD = 1 +TYPEPOS = 6 +TYPELEN = 2 + +[TYPE STRINGA] +DATA = S + +[TYPE DATA] +DATA = D +LENGTH=10 + +[TYPE NUMERO] +DATA = N + +[TYPE IMPORTO] +DATA = N +LENGTH=10 +DECIMAL=2 + +[TYPE QTA] +DATA = N +LENGTH=11 +DECIMAL=3 + + +[RECORD 01] +NAME(0) = CODICE NEGOZIO +TYPE(0) = STRINGA +POSITION(0) = 0 +LENGTH(0) = 6 + +NAME(1) = TIPO RECORD +TYPE(1) = STRINGA +POSITION(1) = 6 +LENGTH(1) = 2 + +NAME(2) = TIPO DOCUMENTO +TYPE(2) = STRINGA +POSITION(2) = 8 +LENGTH(2) = 3 + +NAME(3) = NUMERO DOCUMENTO +TYPE(3) = NUMERO +POSITION(3) = 11 +LENGTH(3) = 10 + +NAME(4) = DATA DOCUMENTO +TYPE(4) = DATA +POSITION(4) = 21 +LENGTH(4) = 10 + +NAME(5) = CODICE CLIENTE +TYPE(5) = STRINGA +POSITION(5) = 31 +LENGTH(5) = 8 + +NAME(6) = CODICE PAGAMENTO +TYPE(6) = STRINGA +POSITION(6) = 39 +LENGTH(6) = 3 + +NAME(7) = CODICE DILAZIONE PAGAMENTO +TYPE(7) = STRINGA +POSITION(7) = 42 +LENGTH(7) = 2 + +NAME(8) = DATA DI ESTRAZIONE +TYPE(8) = DATA +POSITION(8) = 44 +LENGTH(8) = 10 + +NAME(9) = FLAG DI DOCUMENTO RECUPERATO +TYPE(9) = STRINGA +POSITION(9) = 54 +LENGTH(9) = 1 + +NAME(10) = CAUSALE +TYPE(10) = STRINGA +POSITION(10) = 55 +LENGTH(10) = 3 + +[RECORD 02] +NAME(0) = CODICE NEGOZIO +TYPE(0) = STRINGA +POSITION(0) = 0 +LENGTH(0) = 6 + +NAME(1) = TIPO RECORD +TYPE(1) = STRINGA +POSITION(1) = 6 +LENGTH(1) = 2 + +NAME(2) = TIPO DOCUMENTO +TYPE(2) = STRINGA +POSITION(2) = 8 +LENGTH(2) = 3 + +NAME(3) = NUMERO DOCUMENTO +TYPE(3) = NUMERO +POSITION(3) = 11 +LENGTH(3) = 10 + +NAME(4) = DATA DOCUMENTO +TYPE(4) = DATA +POSITION(4) = 21 +LENGTH(4) = 10 + +NAME(5) = ALIQUOTA IVA +TYPE(5) = STRINGA +POSITION(5) = 31 +LENGTH(5) = 4 + +NAME(6) = ARTICOLO LEGGE IVA +TYPE(6) = STRINGA +POSITION(6) = 35 +LENGTH(6) = 3 + +NAME(7) = COMMA LEGGE IVA +TYPE(7) = STRINGA +POSITION(7) = 38 +LENGTH(7) = 2 + +NAME(8) = SEGNO IMPORTO +TYPE(8) = STRINGA +POSITION(8) = 40 +LENGTH(8) = 1 + +NAME(9) = IMPONIBILE +TYPE(9) = IMPORTO +POSITION(9) = 41 +LENGTH(9) = 10 + +NAME(10) = IMPOSTA +TYPE(10) = IMPORTO +POSITION(10) = 51 +LENGTH(10) = 10 + +[RECORD 03] +NAME(0) = CODICE NEGOZIO +TYPE(0) = STRINGA +POSITION(0) = 0 +LENGTH(0) = 6 + +NAME(1) = TIPO RECORD +TYPE(1) = STRINGA +POSITION(1) = 6 +LENGTH(1) = 2 + +NAME(2) = TIPO DOCUMENTO +TYPE(2) = STRINGA +POSITION(2) = 8 +LENGTH(2) = 3 + +NAME(3) = NUMERO DOCUMENTO +TYPE(3) = NUMERO +POSITION(3) = 11 +LENGTH(3) = 10 + +NAME(4) = DATA DOCUMENTO +TYPE(4) = DATA +POSITION(4) = 21 +LENGTH(4) = 10 + +NAME(5) = TOTALE DOCUMENTO +TYPE(5) = IMPORTO +POSITION(5) = 31 +LENGTH(5) = 10 + +NAME(6) = TOTALE SCONTI +TYPE(6) = IMPORTO +POSITION(6) = 41 +LENGTH(6) = 10 + +NAME(7) = TOTALE A PAGARE +TYPE(7) = IMPORTO +POSITION(7) = 51 +LENGTH(7) = 10 + +NAME(8) = CODICE STATO PAGAMENTO +TYPE(8) = STRINGA +POSITION(8) = 61 +LENGTH(8) = 1 + +NAME(9) = SCONTO FINANZIARIO +TYPE(9) = IMPORTO +POSITION(9) = 62 +LENGTH(9) = 10 + +NAME(10) = SEGNO SPESE ACC. 1 +TYPE(10) = STRINGA +POSITION(10) = 72 +LENGTH(10) = 1 + +NAME(11) = IMPONIBILE SPESE ACC. 1 +TYPE(11) = IMPORTO +POSITION(11) = 73 +LENGTH(11) = 10 + +NAME(12) = ALIQUOTA SPESE ACC. 1 +TYPE(12) = STRINGA +POSITION(12) = 83 +LENGTH(12) = 4 + +NAME(13) = ARTICOLO SPESE ACC. 1 +TYPE(13) = STRINGA +POSITION(13) = 87 +LENGTH(13) = 3 + +NAME(14) = COMMA SPESE ACC. 1 +TYPE(14) = STRINGA +POSITION(14) = 90 +LENGTH(14) = 2 + +NAME(15) = SEGNO SPESE ACC. 2 +TYPE(15) = STRINGA +POSITION(15) = 92 +LENGTH(15) = 1 + +NAME(16) = IMPONIBILE SPESE ACC. 2 +TYPE(16) = IMPORTO +POSITION(16) = 93 +LENGTH(16) = 10 + +NAME(17) = ALIQUOTA SPESE ACC. 2 +TYPE(17) = STRINGA +POSITION(17) = 103 +LENGTH(17) = 4 + +NAME(18) = ARTICOLO SPESE ACC. 2 +TYPE(18) = STRINGA +POSITION(18) = 107 +LENGTH(18) = 3 + +NAME(19) = COMMA SPESE ACC. 2 +TYPE(19) = STRINGA +POSITION(19) = 110 +LENGTH(19) = 2 + +[RECORD 04] +NAME(0) = CODICE NEGOZIO +TYPE(0) = STRINGA +POSITION(0) = 0 +LENGTH(0) = 6 + +NAME(1) = TIPO RECORD +TYPE(1) = STRINGA +POSITION(1) = 6 +LENGTH(1) = 2 + +NAME(2) = TIPO DOCUMENTO +TYPE(2) = STRINGA +POSITION(2) = 8 +LENGTH(2) = 3 + +NAME(3) = NUMERO DOCUMENTO +TYPE(3) = NUMERO +POSITION(3) = 11 +LENGTH(3) = 6 + +NAME(4) = DATA DOCUMENTO +TYPE(4) = DATA +POSITION(4) = 17 +LENGTH(4) = 10 + +NAME(5) = CAUSALE +TYPE(5) = STRINGA +POSITION(5) = 27 +LENGTH(5) = 5 + +NAME(6) = CODICE ARTICOLO +TYPE(6) = STRINGA +POSITION(6) = 32 +LENGTH(6) = 15 + +NAME(7) = DESCRIZIONE ARTICOLO +TYPE(7) = STRINGA +POSITION(7) = 47 +LENGTH(7) = 35 + +NAME(8) = QUANTITA +TYPE(8) = QTA +POSITION(8) = 82 +LENGTH(8) = 11 + +NAME(9) = UNITA DI MISURA +TYPE(9) = STRINGA +POSITION(9) = 93 +LENGTH(9) = 2 + +NAME(10) = PREZZO UNITARIO +TYPE(10) = IMPORTO +POSITION(10) = 95 +LENGTH(10) = 10 + +NAME(11) = ALIQUOTA IVA +TYPE(11) = STRINGA +POSITION(11) = 105 +LENGTH(11) = 4 + +NAME(12) = ARTICOLO LEGGE IVA +TYPE(12) = STRINGA +POSITION(12) = 109 +LENGTH(12) = 3 + +NAME(19) = COMMA LEGGE IVA +TYPE(19) = STRINGA +POSITION(19) = 112 +LENGTH(19) = 2 + +NAME(13) = SCONTO A VALORE +TYPE(13) = IMPORTO +POSITION(13) = 114 +LENGTH(13) = 10 + +NAME(14) = IMPORTO TOTALE RIGA +TYPE(14) = IMPORTO +POSITION(14) = 114 +LENGTH(14) = 10 + +NAME(15) = CODICE FORNITORE +TYPE(15) = STRINGA +POSITION(15) = 134 +LENGTH(15) = 8 + +NAME(16) = NUMERO RIFERIMENTO BOLLA +TYPE(16) = NUMERO +POSITION(16) = 142 +LENGTH(16) = 6 + +NAME(17) = DATA RIFERIMENTO BOLLA +TYPE(17) = DATA +POSITION(17) = 148 +LENGTH(17) = 10 + +NAME(18) = CODICE REPARTO CASSA +TYPE(18) = STRINGA +POSITION(18) = 158 +LENGTH(18) = 3 + +[RECORD 05] +NAME(0) = CODICE NEGOZIO +TYPE(0) = STRINGA +POSITION(0) = 0 +LENGTH(0) = 6 + +NAME(1) = TIPO RECORD +TYPE(1) = STRINGA +POSITION(1) = 6 +LENGTH(1) = 2 + +NAME(2) = TIPO DOCUMENTO +TYPE(2) = STRINGA +POSITION(2) = 8 +LENGTH(2) = 3 + +NAME(3) = NUMERO DOCUMENTO +TYPE(3) = NUMERO +POSITION(3) = 11 +LENGTH(3) = 6 + +NAME(4) = DATA DOCUMENTO +TYPE(4) = DATA +POSITION(4) = 17 +LENGTH(4) = 10 + +NAME(5) = CAUSALE +TYPE(5) = STRINGA +POSITION(5) = 27 +LENGTH(5) = 5 + +NAME(6) = CODICE ARTICOLO +TYPE(6) = STRINGA +POSITION(6) = 32 +LENGTH(6) = 15 + +NAME(7) = DESCRIZIONE ARTICOLO +TYPE(7) = STRINGA +POSITION(7) = 47 +LENGTH(7) = 35 + +NAME(8) = QUANTITA +TYPE(8) = QTA +POSITION(8) = 82 +LENGTH(8) = 11 + +NAME(9) = UNITA DI MISURA +TYPE(9) = STRINGA +POSITION(9) = 93 +LENGTH(9) = 2 + +NAME(10) = PREZZO UNITARIO +TYPE(10) = IMPORTO +POSITION(10) = 95 +LENGTH(10) = 10 + +NAME(11) = ALIQUOTA IVA +TYPE(11) = STRINGA +POSITION(11) = 105 +LENGTH(11) = 4 + +NAME(12) = ARTICOLO LEGGE IVA +TYPE(12) = STRINGA +POSITION(12) = 109 +LENGTH(12) = 5 + +NAME(19) = COMMA LEGGE IVA +TYPE(19) = STRINGA +POSITION(19) = 112 +LENGTH(19) = 2 + +NAME(13) = SCONTO A VALORE +TYPE(13) = IMPORTO +POSITION(13) = 114 +LENGTH(13) = 10 + +NAME(14) = IMPORTO TOTALE RIGA +TYPE(14) = IMPORTO +POSITION(14) = 114 +LENGTH(14) = 10 + +NAME(15) = CODICE FORNITORE +TYPE(15) = STRINGA +POSITION(15) = 134 +LENGTH(15) = 8 + +NAME(16) = NUMERO RIFERIMENTO BOLLA +TYPE(16) = NUMERO +POSITION(16) = 142 +LENGTH(16) = 6 + +NAME(17) = DATA RIFERIMENTO BOLLA +TYPE(17) = DATA +POSITION(17) = 148 +LENGTH(17) = 10 + +NAME(18) = CODICE REPARTO CASSA +TYPE(18) = STRINGA +POSITION(18) = 158 +LENGTH(18) = 3 + +[RECORD 06] +NAME(0) = CODICE NEGOZIO +TYPE(0) = STRINGA +POSITION(0) = 0 +LENGTH(0) = 6 + +NAME(1) = TIPO RECORD +TYPE(1) = STRINGA +POSITION(1) = 6 +LENGTH(1) = 2 + +NAME(2) = TIPO DOCUMENTO +TYPE(2) = STRINGA +POSITION(2) = 8 +LENGTH(2) = 3 + +NAME(3) = CODICE FORNITORE +TYPE(3) = STRINGA +POSITION(3) = 11 +LENGTH(3) = 8 + +NAME(4) = RAGIONE SOCIALE 1 +TYPE(4) = STRINGA +POSITION(4) = 19 +LENGTH(4) = 30 + +NAME(5) = RAGIONE SOCIALE 2 +TYPE(5) = STRINGA +POSITION(5) = 49 +LENGTH(5) = 30 + +NAME(6) = INDIRIZZO +TYPE(6) = STRINGA +LENGTH(6) = 40 +POSITION(6) = 79 +FIELD(6) = 20->INDCF + +NAME(7) = CAP +TYPE(7) = STRINGA +LENGTH(7) = 5 +POSITION(7) = 119 +FIELD(7) = 20->CAPCF + +NAME(8) = LOCALITA +TYPE(8) = STRINGA +LENGTH(8) = 20 +POSITION(8) = 124 +FIELD(8) = 20->LOCALITACF + +NAME(9) = COMUNE +TYPE(9) = STRINGA +POSITION(9) = 144 +LENGTH(9) = 30 + +NAME(10) = PROVINCIA +TYPE(10) = STRINGA +POSITION(10) = 174 +LENGTH(10) = 2 + +NAME(11) = PARTITA IVA +TYPE(11) = STRINGA +POSITION(11) = 176 +LENGTH(11) = 11 +FIELD(11) = 20->PAIV + +NAME(12) = CODICE FISCALE +TYPE(12) = STRINGA +POSITION(12) = 187 +LENGTH(12) = 16 +FIELD(12) = 20->COFI + diff --git a/ef/ef0500.cpp b/ef/ef0500.cpp index 7af1d1c36..5c568525a 100755 --- a/ef/ef0500.cpp +++ b/ef/ef0500.cpp @@ -834,6 +834,17 @@ bool TDistinta_form::validate(TForm_item &cf, TToken_string &s) cf.set(valore); } else if (in == "CFPI") + { + valore = _firmrel->curr(LF_ANAG).get("PAIV"); + valore.trim(); + if (valore.empty()) + { + valore = _firmrel->curr(LF_ANAG).get("COFI"); + valore.trim(); + } + cf.set(valore); + } else + if (in == "CFPI") { valore = _firmrel->curr(LF_ANAG).get("PAIV"); valore.trim(); diff --git a/htmlhelp/index.html b/htmlhelp/index.html index 732acbd58..d3cfaa448 100755 --- a/htmlhelp/index.html +++ b/htmlhelp/index.html @@ -1,7 +1,6 @@ -OneRed by DoubleOne - +Campo @@ -12,4 +11,4 @@ - + \ No newline at end of file diff --git a/htmlhelp/pages/alto.html b/htmlhelp/pages/alto.html index 422253661..1cd8420e2 100755 --- a/htmlhelp/pages/alto.html +++ b/htmlhelp/pages/alto.html @@ -1,7 +1,7 @@ - DoubleOne + Campo @@ -21,4 +21,4 @@ - + \ No newline at end of file diff --git a/htmlhelp/pages/home.html b/htmlhelp/pages/home.html index f61a56176..d06a455a9 100755 --- a/htmlhelp/pages/home.html +++ b/htmlhelp/pages/home.html @@ -1,6 +1,6 @@ -OneRed by DoubleOne +Campo