mysql++-3.2.5/000755 000765 000024 00000000000 13515046541 013623 5ustar00tangentstaff000000 000000 mysql++-3.2.5/Makefile.mingw000644 000765 000024 00000107063 13515046514 016412 0ustar00tangentstaff000000 000000 # ========================================================================= # This makefile was generated by # Bakefile 0.2.11 (http://www.bakefile.org) # Do not modify, all changes will be overwritten! # ========================================================================= # ------------------------------------------------------------------------- # These are configurable options: # ------------------------------------------------------------------------- # Compiler flags to link shared library LINK_DLL_FLAGS ?= -shared # C++ compiler CXX = g++ # Standard flags for C++ CXXFLAGS ?= # Standard preprocessor flags (common for CC and CXX) CPPFLAGS ?= # Standard linker flags LDFLAGS ?= # Type of compiled binaries [debug,release] BUILD ?= debug # ------------------------------------------------------------------------- # Do not modify the rest of this file! # ------------------------------------------------------------------------- ### Variables: ### CPPDEPS = -MT$@ -MF$@.d -MD -MP MYSQLPP_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -mthreads -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -DHAVE_MYSQL_SSL_SET -I"C:\Program \ Files\MySQL\MySQL Connector C 6.1\include" $(CPPFLAGS) $(CXXFLAGS) MYSQLPP_OBJECTS = \ mysqlpp_beemutex.o \ mysqlpp_cmdline.o \ mysqlpp_connection.o \ mysqlpp_cpool.o \ mysqlpp_datetime.o \ mysqlpp_dbdriver.o \ mysqlpp_field_names.o \ mysqlpp_field_types.o \ mysqlpp_manip.o \ mysqlpp_myset.o \ mysqlpp_mysql++.o \ mysqlpp_mystring.o \ mysqlpp_null.o \ mysqlpp_options.o \ mysqlpp_qparms.o \ mysqlpp_query.o \ mysqlpp_result.o \ mysqlpp_row.o \ mysqlpp_scopedconnection.o \ mysqlpp_sql_buffer.o \ mysqlpp_sqlstream.o \ mysqlpp_ssqls2.o \ mysqlpp_stadapter.o \ mysqlpp_tcp_connection.o \ mysqlpp_transaction.o \ mysqlpp_type_info.o \ mysqlpp_uds_connection.o \ mysqlpp_utility.o \ mysqlpp_vallist.o \ mysqlpp_wnp_connection.o SSQLS2PARSE_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -Ilib -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" -I. $(CPPFLAGS) $(CXXFLAGS) SSQLS2PARSE_OBJECTS = \ ssqls2parse_parsev2.o SSQLSXLAT_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -Ilib -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) SSQLSXLAT_OBJECTS = \ ssqlsxlat_genv2.o \ ssqlsxlat_main.o TEST_ARRAY_INDEX_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) \ -DUNICODE -D_UNICODE -DMYSQLPP_NO_DLL -Ilib -I"C:\Program Files\MySQL\MySQL \ Connector C 6.1\include" $(CPPFLAGS) $(CXXFLAGS) TEST_ARRAY_INDEX_OBJECTS = \ test_array_index_array_index.o TEST_CPOOL_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -Ilib -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) TEST_CPOOL_OBJECTS = \ test_cpool_cpool.o TEST_DATETIME_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -Ilib -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) TEST_DATETIME_OBJECTS = \ test_datetime_datetime.o TEST_INTTYPES_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -Ilib -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) TEST_INTTYPES_OBJECTS = \ test_inttypes_inttypes.o TEST_INSERTPOLICY_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) \ -DUNICODE -D_UNICODE -DMYSQLPP_NO_DLL -Ilib -I"C:\Program Files\MySQL\MySQL \ Connector C 6.1\include" $(CPPFLAGS) $(CXXFLAGS) TEST_INSERTPOLICY_OBJECTS = \ test_insertpolicy_insertpolicy.o TEST_MANIP_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -Ilib -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) TEST_MANIP_OBJECTS = \ test_manip_manip.o TEST_NULL_COMPARISON_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) \ -DUNICODE -D_UNICODE -DMYSQLPP_NO_DLL -Ilib -I"C:\Program Files\MySQL\MySQL \ Connector C 6.1\include" $(CPPFLAGS) $(CXXFLAGS) TEST_NULL_COMPARISON_OBJECTS = \ test_null_comparison_null_comparison.o TEST_QUERY_COPY_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) \ -DUNICODE -D_UNICODE -DMYSQLPP_NO_DLL -Ilib -I"C:\Program Files\MySQL\MySQL \ Connector C 6.1\include" $(CPPFLAGS) $(CXXFLAGS) TEST_QUERY_COPY_OBJECTS = \ test_query_copy_query_copy.o TEST_QSSQLS_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -Ilib -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) TEST_QSSQLS_OBJECTS = \ test_qssqls_qssqls.o TEST_QSTREAM_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -Ilib -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) TEST_QSTREAM_OBJECTS = \ test_qstream_qstream.o TEST_SQLSTREAM_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -Ilib -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) TEST_SQLSTREAM_OBJECTS = \ test_sqlstream_sqlstream.o TEST_SSQLS2_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -Ilib -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) TEST_SSQLS2_OBJECTS = \ test_ssqls2_ssqls2.o TEST_STRING_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -Ilib -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) TEST_STRING_OBJECTS = \ test_string_string.o TEST_TCP_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -Ilib -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) TEST_TCP_OBJECTS = \ test_tcp_tcp.o TEST_UDS_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -Ilib -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) TEST_UDS_OBJECTS = \ test_uds_uds.o TEST_WNP_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -Ilib -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) TEST_WNP_OBJECTS = \ test_wnp_wnp.o EXCOMMON_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -Ilib -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) EXCOMMON_OBJECTS = \ excommon_printdata.o CGI_JPEG_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -Ilib -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) CGI_JPEG_OBJECTS = \ cgi_jpeg_cgi_jpeg.o CPOOL_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -Ilib -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) CPOOL_OBJECTS = \ cpool_cpool.o DBINFO_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -Ilib -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) DBINFO_OBJECTS = \ dbinfo_dbinfo.o DEADLOCK_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -Ilib -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) DEADLOCK_OBJECTS = \ deadlock_deadlock.o FIELDINF_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -Ilib -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) FIELDINF_OBJECTS = \ fieldinf_fieldinf.o FOR_EACH_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -Ilib -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) FOR_EACH_OBJECTS = \ for_each_for_each.o LOAD_JPEG_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -Ilib -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) LOAD_JPEG_OBJECTS = \ load_jpeg_load_jpeg.o MULTIQUERY_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -Ilib -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) MULTIQUERY_OBJECTS = \ multiquery_multiquery.o RESETDB_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -Ilib -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) RESETDB_OBJECTS = \ resetdb_resetdb.o SIMPLE1_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -Ilib -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) SIMPLE1_OBJECTS = \ simple1_simple1.o SIMPLE2_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -Ilib -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) SIMPLE2_OBJECTS = \ simple2_simple2.o SIMPLE3_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -Ilib -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) SIMPLE3_OBJECTS = \ simple3_simple3.o SSQLS1_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -Ilib -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) SSQLS1_OBJECTS = \ ssqls1_ssqls1.o SSQLS2_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -Ilib -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) SSQLS2_OBJECTS = \ ssqls2_ssqls2.o SSQLS3_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -Ilib -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) SSQLS3_OBJECTS = \ ssqls3_ssqls3.o SSQLS4_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -Ilib -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) SSQLS4_OBJECTS = \ ssqls4_ssqls4.o SSQLS5_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -Ilib -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) SSQLS5_OBJECTS = \ ssqls5_ssqls5.o SSQLS6_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -Ilib -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) SSQLS6_OBJECTS = \ ssqls6_ssqls6.o STORE_IF_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -Ilib -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) STORE_IF_OBJECTS = \ store_if_store_if.o TQUERY1_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -Ilib -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) TQUERY1_OBJECTS = \ tquery1_tquery1.o TQUERY2_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -Ilib -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) TQUERY2_OBJECTS = \ tquery2_tquery2.o TQUERY3_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -Ilib -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) TQUERY3_OBJECTS = \ tquery3_tquery3.o TQUERY4_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -Ilib -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) TQUERY4_OBJECTS = \ tquery4_tquery4.o TRANSACTION_CXXFLAGS = -mthreads $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -DUNICODE \ -D_UNICODE -DMYSQLPP_NO_DLL -Ilib -I"C:\Program Files\MySQL\MySQL Connector C \ 6.1\include" $(CPPFLAGS) $(CXXFLAGS) TRANSACTION_OBJECTS = \ transaction_transaction.o ### Conditionally set variables: ### ifeq ($(BUILD),debug) __OPTIMIZE_FLAG = -O0 endif ifeq ($(BUILD),release) __OPTIMIZE_FLAG = -O2 endif ifeq ($(BUILD),debug) __DEBUGINFO = -g endif ifeq ($(BUILD),release) __DEBUGINFO = endif ### Targets: ### all: mysqlpp.dll libmysqlpp_ssqls2parse.a ssqlsxlat.exe test_array_index.exe test_cpool.exe test_datetime.exe test_inttypes.exe test_insertpolicy.exe test_manip.exe test_null_comparison.exe test_query_copy.exe test_qssqls.exe test_qstream.exe test_sqlstream.exe test_ssqls2.exe test_string.exe test_tcp.exe test_uds.exe test_wnp.exe libmysqlpp_excommon.a cgi_jpeg.exe cpool.exe dbinfo.exe deadlock.exe fieldinf.exe for_each.exe load_jpeg.exe multiquery.exe resetdb.exe simple1.exe simple2.exe simple3.exe ssqls1.exe ssqls2.exe ssqls3.exe ssqls4.exe ssqls5.exe ssqls6.exe store_if.exe tquery1.exe tquery2.exe tquery3.exe tquery4.exe transaction.exe clean: -if exist .\*.o del .\*.o -if exist .\*.d del .\*.d -if exist mysqlpp.dll del mysqlpp.dll -if exist libmysqlpp.a del libmysqlpp.a -if exist libmysqlpp_ssqls2parse.a del libmysqlpp_ssqls2parse.a -if exist ssqlsxlat.exe del ssqlsxlat.exe -if exist test_array_index.exe del test_array_index.exe -if exist test_cpool.exe del test_cpool.exe -if exist test_datetime.exe del test_datetime.exe -if exist test_inttypes.exe del test_inttypes.exe -if exist test_insertpolicy.exe del test_insertpolicy.exe -if exist test_manip.exe del test_manip.exe -if exist test_null_comparison.exe del test_null_comparison.exe -if exist test_query_copy.exe del test_query_copy.exe -if exist test_qssqls.exe del test_qssqls.exe -if exist test_qstream.exe del test_qstream.exe -if exist test_sqlstream.exe del test_sqlstream.exe -if exist test_ssqls2.exe del test_ssqls2.exe -if exist test_string.exe del test_string.exe -if exist test_tcp.exe del test_tcp.exe -if exist test_uds.exe del test_uds.exe -if exist test_wnp.exe del test_wnp.exe -if exist libmysqlpp_excommon.a del libmysqlpp_excommon.a -if exist cgi_jpeg.exe del cgi_jpeg.exe -if exist cpool.exe del cpool.exe -if exist dbinfo.exe del dbinfo.exe -if exist deadlock.exe del deadlock.exe -if exist fieldinf.exe del fieldinf.exe -if exist for_each.exe del for_each.exe -if exist load_jpeg.exe del load_jpeg.exe -if exist multiquery.exe del multiquery.exe -if exist resetdb.exe del resetdb.exe -if exist simple1.exe del simple1.exe -if exist simple2.exe del simple2.exe -if exist simple3.exe del simple3.exe -if exist ssqls1.exe del ssqls1.exe -if exist ssqls2.exe del ssqls2.exe -if exist ssqls3.exe del ssqls3.exe -if exist ssqls4.exe del ssqls4.exe -if exist ssqls5.exe del ssqls5.exe -if exist ssqls6.exe del ssqls6.exe -if exist store_if.exe del store_if.exe -if exist tquery1.exe del tquery1.exe -if exist tquery2.exe del tquery2.exe -if exist tquery3.exe del tquery3.exe -if exist tquery4.exe del tquery4.exe -if exist transaction.exe del transaction.exe mysqlpp.dll: $(MYSQLPP_OBJECTS) $(CXX) $(LINK_DLL_FLAGS) -fPIC -o $@ $(MYSQLPP_OBJECTS) -Wl,--out-implib=libmysqlpp.a $(__DEBUGINFO) -mthreads -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" $(LDFLAGS) -lwsock32 -lmysql libmysqlpp_ssqls2parse.a: $(SSQLS2PARSE_OBJECTS) mysqlpp.dll mysqlpp.dll if exist $@ del $@ ar rcu $@ $(SSQLS2PARSE_OBJECTS) ranlib $@ ssqlsxlat.exe: $(SSQLSXLAT_OBJECTS) mysqlpp.dll libmysqlpp_ssqls2parse.a mysqlpp.dll $(CXX) -o $@ $(SSQLSXLAT_OBJECTS) -mthreads $(__DEBUGINFO) -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" -L. $(LDFLAGS) -lmysql -lmysqlpp -lmysqlpp_ssqls2parse -lmysqlpp test_array_index.exe: $(TEST_ARRAY_INDEX_OBJECTS) mysqlpp.dll $(CXX) -o $@ $(TEST_ARRAY_INDEX_OBJECTS) -mthreads $(__DEBUGINFO) -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" -L. $(LDFLAGS) -lmysql -lmysqlpp test_cpool.exe: $(TEST_CPOOL_OBJECTS) mysqlpp.dll $(CXX) -o $@ $(TEST_CPOOL_OBJECTS) -mthreads $(__DEBUGINFO) -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" -L. $(LDFLAGS) -lmysql -lmysqlpp test_datetime.exe: $(TEST_DATETIME_OBJECTS) mysqlpp.dll $(CXX) -o $@ $(TEST_DATETIME_OBJECTS) -mthreads $(__DEBUGINFO) -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" -L. $(LDFLAGS) -lmysql -lmysqlpp test_inttypes.exe: $(TEST_INTTYPES_OBJECTS) mysqlpp.dll $(CXX) -o $@ $(TEST_INTTYPES_OBJECTS) -mthreads $(__DEBUGINFO) -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" -L. $(LDFLAGS) -lmysql -lmysqlpp test_insertpolicy.exe: $(TEST_INSERTPOLICY_OBJECTS) mysqlpp.dll $(CXX) -o $@ $(TEST_INSERTPOLICY_OBJECTS) -mthreads $(__DEBUGINFO) -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" -L. $(LDFLAGS) -lmysql -lmysqlpp test_manip.exe: $(TEST_MANIP_OBJECTS) mysqlpp.dll $(CXX) -o $@ $(TEST_MANIP_OBJECTS) -mthreads $(__DEBUGINFO) -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" -L. $(LDFLAGS) -lmysql -lmysqlpp test_null_comparison.exe: $(TEST_NULL_COMPARISON_OBJECTS) mysqlpp.dll $(CXX) -o $@ $(TEST_NULL_COMPARISON_OBJECTS) -mthreads $(__DEBUGINFO) -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" -L. $(LDFLAGS) -lmysql -lmysqlpp test_query_copy.exe: $(TEST_QUERY_COPY_OBJECTS) mysqlpp.dll $(CXX) -o $@ $(TEST_QUERY_COPY_OBJECTS) -mthreads $(__DEBUGINFO) -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" -L. $(LDFLAGS) -lmysql -lmysqlpp test_qssqls.exe: $(TEST_QSSQLS_OBJECTS) mysqlpp.dll $(CXX) -o $@ $(TEST_QSSQLS_OBJECTS) -mthreads $(__DEBUGINFO) -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" -L. $(LDFLAGS) -lmysql -lmysqlpp test_qstream.exe: $(TEST_QSTREAM_OBJECTS) mysqlpp.dll $(CXX) -o $@ $(TEST_QSTREAM_OBJECTS) -mthreads $(__DEBUGINFO) -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" -L. $(LDFLAGS) -lmysql -lmysqlpp test_sqlstream.exe: $(TEST_SQLSTREAM_OBJECTS) mysqlpp.dll $(CXX) -o $@ $(TEST_SQLSTREAM_OBJECTS) -mthreads $(__DEBUGINFO) -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" -L. $(LDFLAGS) -lmysql -lmysqlpp test_ssqls2.exe: $(TEST_SSQLS2_OBJECTS) mysqlpp.dll libmysqlpp_ssqls2parse.a mysqlpp.dll libmysqlpp_ssqls2parse.a $(CXX) -o $@ $(TEST_SSQLS2_OBJECTS) -mthreads $(__DEBUGINFO) -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" -L. $(LDFLAGS) -lmysql -lmysqlpp -lmysqlpp_ssqls2parse -lmysqlpp -lmysqlpp_ssqls2parse test_string.exe: $(TEST_STRING_OBJECTS) mysqlpp.dll $(CXX) -o $@ $(TEST_STRING_OBJECTS) -mthreads $(__DEBUGINFO) -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" -L. $(LDFLAGS) -lmysql -lmysqlpp test_tcp.exe: $(TEST_TCP_OBJECTS) mysqlpp.dll $(CXX) -o $@ $(TEST_TCP_OBJECTS) -mthreads $(__DEBUGINFO) -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" -L. $(LDFLAGS) -lmysql -lmysqlpp test_uds.exe: $(TEST_UDS_OBJECTS) mysqlpp.dll $(CXX) -o $@ $(TEST_UDS_OBJECTS) -mthreads $(__DEBUGINFO) -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" -L. $(LDFLAGS) -lmysql -lmysqlpp test_wnp.exe: $(TEST_WNP_OBJECTS) mysqlpp.dll $(CXX) -o $@ $(TEST_WNP_OBJECTS) -mthreads $(__DEBUGINFO) -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" -L. $(LDFLAGS) -lmysql -lmysqlpp libmysqlpp_excommon.a: $(EXCOMMON_OBJECTS) mysqlpp.dll if exist $@ del $@ ar rcu $@ $(EXCOMMON_OBJECTS) ranlib $@ cgi_jpeg.exe: $(CGI_JPEG_OBJECTS) libmysqlpp_excommon.a mysqlpp.dll $(CXX) -o $@ $(CGI_JPEG_OBJECTS) -mthreads $(__DEBUGINFO) -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" -L. $(LDFLAGS) -lmysqlpp_excommon -lmysql -lmysqlpp cpool.exe: $(CPOOL_OBJECTS) libmysqlpp_excommon.a mysqlpp.dll $(CXX) -o $@ $(CPOOL_OBJECTS) -mthreads $(__DEBUGINFO) -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" -L. $(LDFLAGS) -lmysqlpp_excommon -lmysql -lmysqlpp dbinfo.exe: $(DBINFO_OBJECTS) libmysqlpp_excommon.a mysqlpp.dll $(CXX) -o $@ $(DBINFO_OBJECTS) -mthreads $(__DEBUGINFO) -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" -L. $(LDFLAGS) -lmysqlpp_excommon -lmysql -lmysqlpp deadlock.exe: $(DEADLOCK_OBJECTS) libmysqlpp_excommon.a mysqlpp.dll $(CXX) -o $@ $(DEADLOCK_OBJECTS) -mthreads $(__DEBUGINFO) -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" -L. $(LDFLAGS) -lmysqlpp_excommon -lmysql -lmysqlpp fieldinf.exe: $(FIELDINF_OBJECTS) libmysqlpp_excommon.a mysqlpp.dll $(CXX) -o $@ $(FIELDINF_OBJECTS) -mthreads $(__DEBUGINFO) -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" -L. $(LDFLAGS) -lmysqlpp_excommon -lmysql -lmysqlpp for_each.exe: $(FOR_EACH_OBJECTS) libmysqlpp_excommon.a mysqlpp.dll $(CXX) -o $@ $(FOR_EACH_OBJECTS) -mthreads $(__DEBUGINFO) -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" -L. $(LDFLAGS) -lmysqlpp_excommon -lmysql -lmysqlpp load_jpeg.exe: $(LOAD_JPEG_OBJECTS) libmysqlpp_excommon.a mysqlpp.dll $(CXX) -o $@ $(LOAD_JPEG_OBJECTS) -mthreads $(__DEBUGINFO) -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" -L. $(LDFLAGS) -lmysqlpp_excommon -lmysql -lmysqlpp multiquery.exe: $(MULTIQUERY_OBJECTS) libmysqlpp_excommon.a mysqlpp.dll $(CXX) -o $@ $(MULTIQUERY_OBJECTS) -mthreads $(__DEBUGINFO) -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" -L. $(LDFLAGS) -lmysqlpp_excommon -lmysql -lmysqlpp resetdb.exe: $(RESETDB_OBJECTS) libmysqlpp_excommon.a mysqlpp.dll $(CXX) -o $@ $(RESETDB_OBJECTS) -mthreads $(__DEBUGINFO) -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" -L. $(LDFLAGS) -lmysqlpp_excommon -lmysql -lmysqlpp simple1.exe: $(SIMPLE1_OBJECTS) libmysqlpp_excommon.a mysqlpp.dll $(CXX) -o $@ $(SIMPLE1_OBJECTS) -mthreads $(__DEBUGINFO) -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" -L. $(LDFLAGS) -lmysqlpp_excommon -lmysql -lmysqlpp simple2.exe: $(SIMPLE2_OBJECTS) libmysqlpp_excommon.a mysqlpp.dll $(CXX) -o $@ $(SIMPLE2_OBJECTS) -mthreads $(__DEBUGINFO) -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" -L. $(LDFLAGS) -lmysqlpp_excommon -lmysql -lmysqlpp simple3.exe: $(SIMPLE3_OBJECTS) libmysqlpp_excommon.a mysqlpp.dll $(CXX) -o $@ $(SIMPLE3_OBJECTS) -mthreads $(__DEBUGINFO) -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" -L. $(LDFLAGS) -lmysqlpp_excommon -lmysql -lmysqlpp ssqls1.exe: $(SSQLS1_OBJECTS) libmysqlpp_excommon.a mysqlpp.dll $(CXX) -o $@ $(SSQLS1_OBJECTS) -mthreads $(__DEBUGINFO) -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" -L. $(LDFLAGS) -lmysqlpp_excommon -lmysql -lmysqlpp ssqls2.exe: $(SSQLS2_OBJECTS) libmysqlpp_excommon.a mysqlpp.dll $(CXX) -o $@ $(SSQLS2_OBJECTS) -mthreads $(__DEBUGINFO) -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" -L. $(LDFLAGS) -lmysqlpp_excommon -lmysql -lmysqlpp ssqls3.exe: $(SSQLS3_OBJECTS) libmysqlpp_excommon.a mysqlpp.dll $(CXX) -o $@ $(SSQLS3_OBJECTS) -mthreads $(__DEBUGINFO) -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" -L. $(LDFLAGS) -lmysqlpp_excommon -lmysql -lmysqlpp ssqls4.exe: $(SSQLS4_OBJECTS) libmysqlpp_excommon.a mysqlpp.dll $(CXX) -o $@ $(SSQLS4_OBJECTS) -mthreads $(__DEBUGINFO) -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" -L. $(LDFLAGS) -lmysqlpp_excommon -lmysql -lmysqlpp ssqls5.exe: $(SSQLS5_OBJECTS) libmysqlpp_excommon.a mysqlpp.dll $(CXX) -o $@ $(SSQLS5_OBJECTS) -mthreads $(__DEBUGINFO) -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" -L. $(LDFLAGS) -lmysqlpp_excommon -lmysql -lmysqlpp ssqls6.exe: $(SSQLS6_OBJECTS) libmysqlpp_excommon.a mysqlpp.dll $(CXX) -o $@ $(SSQLS6_OBJECTS) -mthreads $(__DEBUGINFO) -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" -L. $(LDFLAGS) -lmysqlpp_excommon -lmysql -lmysqlpp store_if.exe: $(STORE_IF_OBJECTS) libmysqlpp_excommon.a mysqlpp.dll $(CXX) -o $@ $(STORE_IF_OBJECTS) -mthreads $(__DEBUGINFO) -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" -L. $(LDFLAGS) -lmysqlpp_excommon -lmysql -lmysqlpp tquery1.exe: $(TQUERY1_OBJECTS) libmysqlpp_excommon.a mysqlpp.dll $(CXX) -o $@ $(TQUERY1_OBJECTS) -mthreads $(__DEBUGINFO) -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" -L. $(LDFLAGS) -lmysqlpp_excommon -lmysql -lmysqlpp tquery2.exe: $(TQUERY2_OBJECTS) libmysqlpp_excommon.a mysqlpp.dll $(CXX) -o $@ $(TQUERY2_OBJECTS) -mthreads $(__DEBUGINFO) -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" -L. $(LDFLAGS) -lmysqlpp_excommon -lmysql -lmysqlpp tquery3.exe: $(TQUERY3_OBJECTS) libmysqlpp_excommon.a mysqlpp.dll $(CXX) -o $@ $(TQUERY3_OBJECTS) -mthreads $(__DEBUGINFO) -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" -L. $(LDFLAGS) -lmysqlpp_excommon -lmysql -lmysqlpp tquery4.exe: $(TQUERY4_OBJECTS) libmysqlpp_excommon.a mysqlpp.dll $(CXX) -o $@ $(TQUERY4_OBJECTS) -mthreads $(__DEBUGINFO) -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" -L. $(LDFLAGS) -lmysqlpp_excommon -lmysql -lmysqlpp transaction.exe: $(TRANSACTION_OBJECTS) libmysqlpp_excommon.a mysqlpp.dll $(CXX) -o $@ $(TRANSACTION_OBJECTS) -mthreads $(__DEBUGINFO) -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-stdcall-fixup -L"C:\Program Files\MySQL\MySQL Connector C 6.1\lib" -L. $(LDFLAGS) -lmysqlpp_excommon -lmysql -lmysqlpp mysqlpp_beemutex.o: ./lib/beemutex.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_cmdline.o: ./lib/cmdline.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_connection.o: ./lib/connection.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_cpool.o: ./lib/cpool.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_datetime.o: ./lib/datetime.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_dbdriver.o: ./lib/dbdriver.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_field_names.o: ./lib/field_names.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_field_types.o: ./lib/field_types.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_manip.o: ./lib/manip.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_myset.o: ./lib/myset.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_mysql++.o: ./lib/mysql++.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_mystring.o: ./lib/mystring.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_null.o: ./lib/null.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_options.o: ./lib/options.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_qparms.o: ./lib/qparms.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_query.o: ./lib/query.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_result.o: ./lib/result.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_row.o: ./lib/row.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_scopedconnection.o: ./lib/scopedconnection.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_sql_buffer.o: ./lib/sql_buffer.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_sqlstream.o: ./lib/sqlstream.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_ssqls2.o: ./lib/ssqls2.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_stadapter.o: ./lib/stadapter.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_tcp_connection.o: ./lib/tcp_connection.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_transaction.o: ./lib/transaction.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_type_info.o: ./lib/type_info.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_uds_connection.o: ./lib/uds_connection.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_utility.o: ./lib/utility.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_vallist.o: ./lib/vallist.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< mysqlpp_wnp_connection.o: ./lib/wnp_connection.cpp $(CXX) -c -o $@ $(MYSQLPP_CXXFLAGS) $(CPPDEPS) $< ssqls2parse_parsev2.o: ./ssx/parsev2.cpp $(CXX) -c -o $@ $(SSQLS2PARSE_CXXFLAGS) $(CPPDEPS) $< ssqlsxlat_genv2.o: ./ssx/genv2.cpp $(CXX) -c -o $@ $(SSQLSXLAT_CXXFLAGS) $(CPPDEPS) $< ssqlsxlat_main.o: ./ssx/main.cpp $(CXX) -c -o $@ $(SSQLSXLAT_CXXFLAGS) $(CPPDEPS) $< test_array_index_array_index.o: ./test/array_index.cpp $(CXX) -c -o $@ $(TEST_ARRAY_INDEX_CXXFLAGS) $(CPPDEPS) $< test_cpool_cpool.o: ./test/cpool.cpp $(CXX) -c -o $@ $(TEST_CPOOL_CXXFLAGS) $(CPPDEPS) $< test_datetime_datetime.o: ./test/datetime.cpp $(CXX) -c -o $@ $(TEST_DATETIME_CXXFLAGS) $(CPPDEPS) $< test_inttypes_inttypes.o: ./test/inttypes.cpp $(CXX) -c -o $@ $(TEST_INTTYPES_CXXFLAGS) $(CPPDEPS) $< test_insertpolicy_insertpolicy.o: ./test/insertpolicy.cpp $(CXX) -c -o $@ $(TEST_INSERTPOLICY_CXXFLAGS) $(CPPDEPS) $< test_manip_manip.o: ./test/manip.cpp $(CXX) -c -o $@ $(TEST_MANIP_CXXFLAGS) $(CPPDEPS) $< test_null_comparison_null_comparison.o: ./test/null_comparison.cpp $(CXX) -c -o $@ $(TEST_NULL_COMPARISON_CXXFLAGS) $(CPPDEPS) $< test_query_copy_query_copy.o: ./test/query_copy.cpp $(CXX) -c -o $@ $(TEST_QUERY_COPY_CXXFLAGS) $(CPPDEPS) $< test_qssqls_qssqls.o: ./test/qssqls.cpp $(CXX) -c -o $@ $(TEST_QSSQLS_CXXFLAGS) $(CPPDEPS) $< test_qstream_qstream.o: ./test/qstream.cpp $(CXX) -c -o $@ $(TEST_QSTREAM_CXXFLAGS) $(CPPDEPS) $< test_sqlstream_sqlstream.o: ./test/sqlstream.cpp $(CXX) -c -o $@ $(TEST_SQLSTREAM_CXXFLAGS) $(CPPDEPS) $< test_ssqls2_ssqls2.o: ./test/ssqls2.cpp $(CXX) -c -o $@ $(TEST_SSQLS2_CXXFLAGS) $(CPPDEPS) $< test_string_string.o: ./test/string.cpp $(CXX) -c -o $@ $(TEST_STRING_CXXFLAGS) $(CPPDEPS) $< test_tcp_tcp.o: ./test/tcp.cpp $(CXX) -c -o $@ $(TEST_TCP_CXXFLAGS) $(CPPDEPS) $< test_uds_uds.o: ./test/uds.cpp $(CXX) -c -o $@ $(TEST_UDS_CXXFLAGS) $(CPPDEPS) $< test_wnp_wnp.o: ./test/wnp.cpp $(CXX) -c -o $@ $(TEST_WNP_CXXFLAGS) $(CPPDEPS) $< excommon_printdata.o: ./examples/printdata.cpp $(CXX) -c -o $@ $(EXCOMMON_CXXFLAGS) $(CPPDEPS) $< cgi_jpeg_cgi_jpeg.o: ./examples/cgi_jpeg.cpp $(CXX) -c -o $@ $(CGI_JPEG_CXXFLAGS) $(CPPDEPS) $< cpool_cpool.o: ./examples/cpool.cpp $(CXX) -c -o $@ $(CPOOL_CXXFLAGS) $(CPPDEPS) $< dbinfo_dbinfo.o: ./examples/dbinfo.cpp $(CXX) -c -o $@ $(DBINFO_CXXFLAGS) $(CPPDEPS) $< deadlock_deadlock.o: ./examples/deadlock.cpp $(CXX) -c -o $@ $(DEADLOCK_CXXFLAGS) $(CPPDEPS) $< fieldinf_fieldinf.o: ./examples/fieldinf.cpp $(CXX) -c -o $@ $(FIELDINF_CXXFLAGS) $(CPPDEPS) $< for_each_for_each.o: ./examples/for_each.cpp $(CXX) -c -o $@ $(FOR_EACH_CXXFLAGS) $(CPPDEPS) $< load_jpeg_load_jpeg.o: ./examples/load_jpeg.cpp $(CXX) -c -o $@ $(LOAD_JPEG_CXXFLAGS) $(CPPDEPS) $< multiquery_multiquery.o: ./examples/multiquery.cpp $(CXX) -c -o $@ $(MULTIQUERY_CXXFLAGS) $(CPPDEPS) $< resetdb_resetdb.o: ./examples/resetdb.cpp $(CXX) -c -o $@ $(RESETDB_CXXFLAGS) $(CPPDEPS) $< simple1_simple1.o: ./examples/simple1.cpp $(CXX) -c -o $@ $(SIMPLE1_CXXFLAGS) $(CPPDEPS) $< simple2_simple2.o: ./examples/simple2.cpp $(CXX) -c -o $@ $(SIMPLE2_CXXFLAGS) $(CPPDEPS) $< simple3_simple3.o: ./examples/simple3.cpp $(CXX) -c -o $@ $(SIMPLE3_CXXFLAGS) $(CPPDEPS) $< ssqls1_ssqls1.o: ./examples/ssqls1.cpp $(CXX) -c -o $@ $(SSQLS1_CXXFLAGS) $(CPPDEPS) $< ssqls2_ssqls2.o: ./examples/ssqls2.cpp $(CXX) -c -o $@ $(SSQLS2_CXXFLAGS) $(CPPDEPS) $< ssqls3_ssqls3.o: ./examples/ssqls3.cpp $(CXX) -c -o $@ $(SSQLS3_CXXFLAGS) $(CPPDEPS) $< ssqls4_ssqls4.o: ./examples/ssqls4.cpp $(CXX) -c -o $@ $(SSQLS4_CXXFLAGS) $(CPPDEPS) $< ssqls5_ssqls5.o: ./examples/ssqls5.cpp $(CXX) -c -o $@ $(SSQLS5_CXXFLAGS) $(CPPDEPS) $< ssqls6_ssqls6.o: ./examples/ssqls6.cpp $(CXX) -c -o $@ $(SSQLS6_CXXFLAGS) $(CPPDEPS) $< store_if_store_if.o: ./examples/store_if.cpp $(CXX) -c -o $@ $(STORE_IF_CXXFLAGS) $(CPPDEPS) $< tquery1_tquery1.o: ./examples/tquery1.cpp $(CXX) -c -o $@ $(TQUERY1_CXXFLAGS) $(CPPDEPS) $< tquery2_tquery2.o: ./examples/tquery2.cpp $(CXX) -c -o $@ $(TQUERY2_CXXFLAGS) $(CPPDEPS) $< tquery3_tquery3.o: ./examples/tquery3.cpp $(CXX) -c -o $@ $(TQUERY3_CXXFLAGS) $(CPPDEPS) $< tquery4_tquery4.o: ./examples/tquery4.cpp $(CXX) -c -o $@ $(TQUERY4_CXXFLAGS) $(CPPDEPS) $< transaction_transaction.o: ./examples/transaction.cpp $(CXX) -c -o $@ $(TRANSACTION_CXXFLAGS) $(CPPDEPS) $< .PHONY: all clean SHELL := $(COMSPEC) # Dependencies tracking: -include ./*.d mysql++-3.2.5/ssx/000755 000765 000024 00000000000 13515046540 014437 5ustar00tangentstaff000000 000000 mysql++-3.2.5/README-Solaris.txt000644 000765 000024 00000003410 13515046514 016731 0ustar00tangentstaff000000 000000 For the most part, Solaris is just another Unix variant as far as MySQL++ is concerned. See README-Unix.txt for most of what you need to know to build and use MySQL++. Prerequisite: Install the MySQL Development Files ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ MySQL++ is built on top of the MySQL C API library, so it needs the C API development files to build against. With the current version of Solaris, at least, a MySQL package is included on the operating system disk, but not installed by default. To install it, oull down the GNOME System menu, go to Administration, and then to Package Manager. Search for "mysql5" and install those packages. While there, you may also need to install the gcc packages, if you haven't done that already. I'm not sure, but you may need to install Perl as well. Don't search for just "mysql" in Package Manager, as that will also bring up legacy MySQL 4.0 packages. MySQL++ may build against 4.0 still; it's been a while since we've tested it. What is certain is that the examples won't run against 4.0 without modification, as they assume the availability of UTF-8 character set support, which was added in 4.1. It's no doubt possible to use the official binaries from mysql.com instead, or to build from source. We don't do that ourselves, though, and don't have reports from those who have, so we can't advise on how to do it. C API Development File Directories ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Sun's MySQL package installs the development files in relatively uncommon locations. The libraries are in /usr/mysql/lib/mysql, and the headers are in /usr/mysql/include/mysql. Way to be redundant, guys. :) mysql++-3.2.5/COPYING.txt000644 000765 000024 00000001116 13515046514 015473 0ustar00tangentstaff000000 000000 The MySQL++ library proper and the reference manual derived from comments in the library source code are licensed under the GNU Lesser General Public License. A copy is provided in this directory, in the file LICENSE.txt. The MySQL++ User Manual is licensed under a unique license derived from the Linux Documentation Project License. (The only changes are due to the fact that the User Manual isn't actually part of the LDP, so a lot of the language in the LDPL doesn't make sense when applied to the user manual.) This license is provided in the file doc/userman/LICENSE.txt. mysql++-3.2.5/libtool000755 000765 000024 00001242241 13515046541 015223 0ustar00tangentstaff000000 000000 #! /bin/sh # Generated automatically by config.status () # Libtool was configured on host Antakya.local: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # Provide generalized library-building support services. # Written by Gordon Matzigkeit, 1996 # Copyright (C) 2014 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # GNU Libtool is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of of the License, or # (at your option) any later version. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program or library that is built # using GNU Libtool, you may include this file under the same # distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # The names of the tagged configurations supported by this script. available_tags='CXX ' # Configured defaults for sys_lib_dlsearch_path munging. : ${LT_SYS_LIBRARY_PATH=""} # ### BEGIN LIBTOOL CONFIG # Which release of libtool.m4 was used? macro_version=2.4.6 macro_revision=2.4.6 # Whether or not to build shared libraries. build_libtool_libs=yes # Whether or not to build static libraries. build_old_libs=yes # What type of objects to build. pic_mode=default # Whether or not to optimize for fast installation. fast_install=needless # Shared archive member basename,for filename based shared library versioning on AIX. shared_archive_member_spec= # Shell to use when invoking shell scripts. SHELL="/bin/sh" # An echo program that protects backslashes. ECHO="printf %s\\n" # The PATH separator for the build system. PATH_SEPARATOR=":" # The host system. host_alias= host=x86_64-apple-darwin18.6.0 host_os=darwin18.6.0 # The build system. build_alias= build=x86_64-apple-darwin18.6.0 build_os=darwin18.6.0 # A sed program that does not truncate output. SED="/usr/local/bin/gsed" # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="$SED -e 1s/^X//" # A grep program that handles long lines. GREP="/usr/local/bin/ggrep" # An ERE matcher. EGREP="/usr/local/bin/ggrep -E" # A literal string matcher. FGREP="/usr/local/bin/ggrep -F" # A BSD- or MS-compatible name lister. NM="/usr/bin/nm -B" # Whether we need soft or hard links. LN_S="ln -s" # What is the maximum length of a command? max_cmd_len=196608 # Object file suffix (normally "o"). objext=o # Executable file suffix (normally ""). exeext= # whether the shell understands "unset". lt_unset=unset # turn spaces into newlines. SP2NL="tr \\040 \\012" # turn newlines into spaces. NL2SP="tr \\015\\012 \\040\\040" # convert $build file names to $host format. to_host_file_cmd=func_convert_file_noop # convert $build files to toolchain format. to_tool_file_cmd=func_convert_file_noop # An object symbol dumper. OBJDUMP="objdump" # Method to check whether dependent libraries are shared objects. deplibs_check_method="pass_all" # Command to use when deplibs_check_method = "file_magic". file_magic_cmd="\$MAGIC_CMD" # How to find potential files when deplibs_check_method = "file_magic". file_magic_glob="" # Find potential files using nocaseglob when deplibs_check_method = "file_magic". want_nocaseglob="no" # DLL creation program. DLLTOOL="false" # Command to associate shared and link libraries. sharedlib_from_linklib_cmd="printf %s\\n" # The archiver. AR="ar" # Flags to create an archive. AR_FLAGS="cru" # How to feed a file listing to the archiver. archiver_list_spec="" # A symbol stripping program. STRIP="strip" # Commands used to install an old-style archive. RANLIB="ranlib" old_postinstall_cmds="chmod 644 \$oldlib~\$RANLIB \$tool_oldlib" old_postuninstall_cmds="" # Whether to use a lock for old archive extraction. lock_old_archive_extraction=yes # A C compiler. LTCC="gcc" # LTCC compiler flags. LTCFLAGS="-g -O2 -fno-common" # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe="sed -n -e 's/^.*[ ]\\([BCDEGRST][BCDEGRST]*\\)[ ][ ]*_\\([_A-Za-z][_A-Za-z0-9]*\\)\$/\\1 _\\2 \\2/p' | sed '/ __gnu_lto/d'" # Transform the output of nm in a proper C declaration. global_symbol_to_cdecl="sed -n -e 's/^T .* \\(.*\\)\$/extern int \\1();/p' -e 's/^[BCDEGRST][BCDEGRST]* .* \\(.*\\)\$/extern char \\1;/p'" # Transform the output of nm into a list of symbols to manually relocate. global_symbol_to_import="" # Transform the output of nm in a C name address pair. global_symbol_to_c_name_address="sed -n -e 's/^: \\(.*\\) .*\$/ {\"\\1\", (void *) 0},/p' -e 's/^[BCDEGRST][BCDEGRST]* .* \\(.*\\)\$/ {\"\\1\", (void *) \\&\\1},/p'" # Transform the output of nm in a C name address pair when lib prefix is needed. global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \\(.*\\) .*\$/ {\"\\1\", (void *) 0},/p' -e 's/^[BCDEGRST][BCDEGRST]* .* \\(lib.*\\)\$/ {\"\\1\", (void *) \\&\\1},/p' -e 's/^[BCDEGRST][BCDEGRST]* .* \\(.*\\)\$/ {\"lib\\1\", (void *) \\&\\1},/p'" # The name lister interface. nm_interface="BSD nm" # Specify filename containing input files for $NM. nm_file_list_spec="" # The root where to search for dependent libraries,and where our libraries should be installed. lt_sysroot= # Command to truncate a binary pipe. lt_truncate_bin="/bin/dd bs=4096 count=1" # The name of the directory that contains temporary libtool files. objdir=.libs # Used to examine libraries when file_magic_cmd begins with "file". MAGIC_CMD=file # Must we lock files when doing compilation? need_locks="no" # Manifest tool. MANIFEST_TOOL=":" # Tool to manipulate archived DWARF debug symbol files on Mac OS X. DSYMUTIL="dsymutil" # Tool to change global to local symbols on Mac OS X. NMEDIT="nmedit" # Tool to manipulate fat objects and archives on Mac OS X. LIPO="lipo" # ldd/readelf like tool for Mach-O binaries on Mac OS X. OTOOL="otool" # ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. OTOOL64=":" # Old archive suffix (normally "a"). libext=a # Shared library suffix (normally ".so"). shrext_cmds="\`test .\$module = .yes && echo .so || echo .dylib\`" # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds="" # Variables whose values should be saved in libtool wrapper scripts and # restored at link time. variables_saved_for_relink="PATH DYLD_LIBRARY_PATH GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" # Do we need the "lib" prefix for modules? need_lib_prefix=no # Do we need a version for libraries? need_version=no # Library versioning type. version_type=darwin # Shared library runtime path variable. runpath_var= # Shared library path variable. shlibpath_var=DYLD_LIBRARY_PATH # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=yes # Format of library name prefix. libname_spec="lib\$name" # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME library_names_spec="\$libname\$release\$major\$shared_ext \$libname\$shared_ext" # The coded name of the library, if different from the real name. soname_spec="\$libname\$release\$major\$shared_ext" # Permission mode override for installation of shared libraries. install_override_mode="" # Command to use after installation of a shared archive. postinstall_cmds="" # Command to use after uninstallation of a shared archive. postuninstall_cmds="" # Commands used to finish a libtool library installation in a directory. finish_cmds="" # As "finish_cmds", except a single script fragment to be evaled but # not shown. finish_eval="" # Whether we should hardcode library paths into libraries. hardcode_into_libs=no # Compile-time system search path for libraries. sys_lib_search_path_spec="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/10.0.1 /usr/local/lib" # Detected run-time system search path for libraries. sys_lib_dlsearch_path_spec="/usr/local/lib /lib /usr/lib" # Explicit LT_SYS_LIBRARY_PATH set during ./configure time. configure_time_lt_sys_library_path="" # Whether dlopen is supported. dlopen_support=unknown # Whether dlopen of programs is supported. dlopen_self=unknown # Whether dlopen of statically linked programs is supported. dlopen_self_static=unknown # Commands to strip libraries. old_striplib="strip -S" striplib="strip -x" # The linker used to build libraries. LD="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld" # How to create reloadable object files. reload_flag=" -r" reload_cmds="\$LTCC \$LTCFLAGS -nostdlib \$wl-r -o \$output\$reload_objs" # Commands used to build an old-style archive. old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs~\$RANLIB \$tool_oldlib" # A language specific compiler. CC="gcc" # Is the compiler the GNU compiler? with_gcc=yes # Compiler flag to turn off builtin functions. no_builtin_flag=" -fno-builtin -fno-rtti -fno-exceptions" # Additional compiler flags for building library objects. pic_flag=" -fno-common -DPIC" # How to pass a linker flag through the compiler. wl="-Wl," # Compiler flag to prevent dynamic linking. link_static_flag="" # Does compiler simultaneously support -c and -o options? compiler_c_o="yes" # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=no # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=no # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec="" # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec="\`for conv in \$convenience\\\"\\\"; do test -n \\\"\$conv\\\" && new_convenience=\\\"\$new_convenience \$wl-force_load,\$conv\\\"; done; func_echo_all \\\"\$new_convenience\\\"\`" # Whether the compiler copes with passing no objects directly. compiler_needs_object="no" # Create an old-style archive from a shared archive. old_archive_from_new_cmds="" # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds="" # Commands used to build a shared archive. archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring \$single_module" archive_expsym_cmds="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring \$single_module \$wl-exported_symbols_list,\$output_objdir/\$libname-symbols.expsym" # Commands used to build a loadable module if different from building # a shared archive. module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags" module_expsym_cmds="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags \$wl-exported_symbols_list,\$output_objdir/\$libname-symbols.expsym" # Whether we are building with GNU ld or not. with_gnu_ld="no" # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag="\$wl-undefined \${wl}dynamic_lookup" # Flag that enforces no undefined symbols. no_undefined_flag="" # Flag to hardcode $libdir into a binary during linking. # This must work even if $libdir does not exist hardcode_libdir_flag_spec="" # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator="" # Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes # DIR into the resulting binary. hardcode_direct=no # Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting $shlibpath_var if the # library is relocated. hardcode_direct_absolute=no # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=no # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=unsupported # Set to "yes" if building a shared library automatically hardcodes DIR # into the library and all subsequent libraries and executables linked # against it. hardcode_automatic=yes # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=no # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=yes # Set to "yes" if exported symbols are required. always_export_symbols=no # The commands to list exported symbols. export_symbols_cmds="\$NM \$libobjs \$convenience | \$global_symbol_pipe | \$SED 's/.* //' | sort | uniq > \$export_symbols" # Symbols that should not be listed in the preloaded symbols. exclude_expsyms="_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*" # Symbols that must always be exported. include_expsyms="" # Commands necessary for linking programs (against libraries) with templates. prelink_cmds="" # Commands necessary for finishing linking programs. postlink_cmds="" # Specify filename containing input files. file_list_spec="" # How to hardcode a shared library path into an executable. hardcode_action=immediate # The directories searched by this compiler when creating a shared library. compiler_lib_search_dirs="" # Dependencies to place before and after the objects being linked to # create a shared library. predep_objects="" postdep_objects="" predeps="" postdeps="" # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path="" # ### END LIBTOOL CONFIG # ### BEGIN FUNCTIONS SHARED WITH CONFIGURE # func_munge_path_list VARIABLE PATH # ----------------------------------- # VARIABLE is name of variable containing _space_ separated list of # directories to be munged by the contents of PATH, which is string # having a format: # "DIR[:DIR]:" # string "DIR[ DIR]" will be prepended to VARIABLE # ":DIR[:DIR]" # string "DIR[ DIR]" will be appended to VARIABLE # "DIRP[:DIRP]::[DIRA:]DIRA" # string "DIRP[ DIRP]" will be prepended to VARIABLE and string # "DIRA[ DIRA]" will be appended to VARIABLE # "DIR[:DIR]" # VARIABLE will be replaced by "DIR[ DIR]" func_munge_path_list () { case x$2 in x) ;; *:) eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" ;; x:*) eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" ;; *::*) eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" ;; *) eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" ;; esac } # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. func_cc_basename () { for cc_temp in $*""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` } # ### END FUNCTIONS SHARED WITH CONFIGURE #! /bin/sh ## DO NOT EDIT - This file generated from ./build-aux/ltmain.in ## by inline-source v2014-01-03.01 # libtool (GNU libtool) 2.4.6 # Provide generalized library-building support services. # Written by Gordon Matzigkeit , 1996 # Copyright (C) 1996-2015 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # GNU Libtool is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . PROGRAM=libtool PACKAGE=libtool VERSION=2.4.6 package_revision=2.4.6 ## ------ ## ## Usage. ## ## ------ ## # Run './libtool --help' for help with using this script from the # command line. ## ------------------------------- ## ## User overridable command paths. ## ## ------------------------------- ## # After configure completes, it has a better idea of some of the # shell tools we need than the defaults used by the functions shared # with bootstrap, so set those here where they can still be over- # ridden by the user, but otherwise take precedence. : ${AUTOCONF="autoconf"} : ${AUTOMAKE="automake"} ## -------------------------- ## ## Source external libraries. ## ## -------------------------- ## # Much of our low-level functionality needs to be sourced from external # libraries, which are installed to $pkgauxdir. # Set a version string for this script. scriptversion=2015-01-20.17; # UTC # General shell script boiler plate, and helper functions. # Written by Gary V. Vaughan, 2004 # Copyright (C) 2004-2015 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # As a special exception to the GNU General Public License, if you distribute # this file as part of a program or library that is built using GNU Libtool, # you may include this file under the same distribution terms that you use # for the rest of that program. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNES FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # Please report bugs or propose patches to gary@gnu.org. ## ------ ## ## Usage. ## ## ------ ## # Evaluate this file near the top of your script to gain access to # the functions and variables defined here: # # . `echo "$0" | ${SED-sed} 's|[^/]*$||'`/build-aux/funclib.sh # # If you need to override any of the default environment variable # settings, do that before evaluating this file. ## -------------------- ## ## Shell normalisation. ## ## -------------------- ## # Some shells need a little help to be as Bourne compatible as possible. # Before doing anything else, make sure all that help has been provided! DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi # NLS nuisances: We save the old values in case they are required later. _G_user_locale= _G_safe_locale= for _G_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test set = \"\${$_G_var+set}\"; then save_$_G_var=\$$_G_var $_G_var=C export $_G_var _G_user_locale=\"$_G_var=\\\$save_\$_G_var; \$_G_user_locale\" _G_safe_locale=\"$_G_var=C; \$_G_safe_locale\" fi" done # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Make sure IFS has a sensible default sp=' ' nl=' ' IFS="$sp $nl" # There are apparently some retarded systems that use ';' as a PATH separator! if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi ## ------------------------- ## ## Locate command utilities. ## ## ------------------------- ## # func_executable_p FILE # ---------------------- # Check that FILE is an executable regular file. func_executable_p () { test -f "$1" && test -x "$1" } # func_path_progs PROGS_LIST CHECK_FUNC [PATH] # -------------------------------------------- # Search for either a program that responds to --version with output # containing "GNU", or else returned by CHECK_FUNC otherwise, by # trying all the directories in PATH with each of the elements of # PROGS_LIST. # # CHECK_FUNC should accept the path to a candidate program, and # set $func_check_prog_result if it truncates its output less than # $_G_path_prog_max characters. func_path_progs () { _G_progs_list=$1 _G_check_func=$2 _G_PATH=${3-"$PATH"} _G_path_prog_max=0 _G_path_prog_found=false _G_save_IFS=$IFS; IFS=${PATH_SEPARATOR-:} for _G_dir in $_G_PATH; do IFS=$_G_save_IFS test -z "$_G_dir" && _G_dir=. for _G_prog_name in $_G_progs_list; do for _exeext in '' .EXE; do _G_path_prog=$_G_dir/$_G_prog_name$_exeext func_executable_p "$_G_path_prog" || continue case `"$_G_path_prog" --version 2>&1` in *GNU*) func_path_progs_result=$_G_path_prog _G_path_prog_found=: ;; *) $_G_check_func $_G_path_prog func_path_progs_result=$func_check_prog_result ;; esac $_G_path_prog_found && break 3 done done done IFS=$_G_save_IFS test -z "$func_path_progs_result" && { echo "no acceptable sed could be found in \$PATH" >&2 exit 1 } } # We want to be able to use the functions in this file before configure # has figured out where the best binaries are kept, which means we have # to search for them ourselves - except when the results are already set # where we skip the searches. # Unless the user overrides by setting SED, search the path for either GNU # sed, or the sed that truncates its output the least. test -z "$SED" && { _G_sed_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for _G_i in 1 2 3 4 5 6 7; do _G_sed_script=$_G_sed_script$nl$_G_sed_script done echo "$_G_sed_script" 2>/dev/null | sed 99q >conftest.sed _G_sed_script= func_check_prog_sed () { _G_path_prog=$1 _G_count=0 printf 0123456789 >conftest.in while : do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo '' >> conftest.nl "$_G_path_prog" -f conftest.sed conftest.out 2>/dev/null || break diff conftest.out conftest.nl >/dev/null 2>&1 || break _G_count=`expr $_G_count + 1` if test "$_G_count" -gt "$_G_path_prog_max"; then # Best one so far, save it but keep looking for a better one func_check_prog_result=$_G_path_prog _G_path_prog_max=$_G_count fi # 10*(2^10) chars as input seems more than enough test 10 -lt "$_G_count" && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out } func_path_progs "sed gsed" func_check_prog_sed $PATH:/usr/xpg4/bin rm -f conftest.sed SED=$func_path_progs_result } # Unless the user overrides by setting GREP, search the path for either GNU # grep, or the grep that truncates its output the least. test -z "$GREP" && { func_check_prog_grep () { _G_path_prog=$1 _G_count=0 _G_path_prog_max=0 printf 0123456789 >conftest.in while : do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo 'GREP' >> conftest.nl "$_G_path_prog" -e 'GREP$' -e '-(cannot match)-' conftest.out 2>/dev/null || break diff conftest.out conftest.nl >/dev/null 2>&1 || break _G_count=`expr $_G_count + 1` if test "$_G_count" -gt "$_G_path_prog_max"; then # Best one so far, save it but keep looking for a better one func_check_prog_result=$_G_path_prog _G_path_prog_max=$_G_count fi # 10*(2^10) chars as input seems more than enough test 10 -lt "$_G_count" && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out } func_path_progs "grep ggrep" func_check_prog_grep $PATH:/usr/xpg4/bin GREP=$func_path_progs_result } ## ------------------------------- ## ## User overridable command paths. ## ## ------------------------------- ## # All uppercase variable names are used for environment variables. These # variables can be overridden by the user before calling a script that # uses them if a suitable command of that name is not already available # in the command search PATH. : ${CP="cp -f"} : ${ECHO="printf %s\n"} : ${EGREP="$GREP -E"} : ${FGREP="$GREP -F"} : ${LN_S="ln -s"} : ${MAKE="make"} : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"} : ${SHELL="${CONFIG_SHELL-/bin/sh}"} ## -------------------- ## ## Useful sed snippets. ## ## -------------------- ## sed_dirname='s|/[^/]*$||' sed_basename='s|^.*/||' # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. sed_quote_subst='s|\([`"$\\]\)|\\\1|g' # Same as above, but do not quote variable references. sed_double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution that turns a string into a regex matching for the # string literally. sed_make_literal_regex='s|[].[^$\\*\/]|\\&|g' # Sed substitution that converts a w32 file name or path # that contains forward slashes, into one that contains # (escaped) backslashes. A very naive implementation. sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' # Re-'\' parameter expansions in output of sed_double_quote_subst that # were '\'-ed in input to the same. If an odd number of '\' preceded a # '$' in input to sed_double_quote_subst, that '$' was protected from # expansion. Since each input '\' is now two '\'s, look for any number # of runs of four '\'s followed by two '\'s and then a '$'. '\' that '$'. _G_bs='\\' _G_bs2='\\\\' _G_bs4='\\\\\\\\' _G_dollar='\$' sed_double_backslash="\ s/$_G_bs4/&\\ /g s/^$_G_bs2$_G_dollar/$_G_bs&/ s/\\([^$_G_bs]\\)$_G_bs2$_G_dollar/\\1$_G_bs2$_G_bs$_G_dollar/g s/\n//g" ## ----------------- ## ## Global variables. ## ## ----------------- ## # Except for the global variables explicitly listed below, the following # functions in the '^func_' namespace, and the '^require_' namespace # variables initialised in the 'Resource management' section, sourcing # this file will not pollute your global namespace with anything # else. There's no portable way to scope variables in Bourne shell # though, so actually running these functions will sometimes place # results into a variable named after the function, and often use # temporary variables in the '^_G_' namespace. If you are careful to # avoid using those namespaces casually in your sourcing script, things # should continue to work as you expect. And, of course, you can freely # overwrite any of the functions or variables defined here before # calling anything to customize them. EXIT_SUCCESS=0 EXIT_FAILURE=1 EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. # Allow overriding, eg assuming that you follow the convention of # putting '$debug_cmd' at the start of all your functions, you can get # bash to show function call trace with: # # debug_cmd='eval echo "${FUNCNAME[0]} $*" >&2' bash your-script-name debug_cmd=${debug_cmd-":"} exit_cmd=: # By convention, finish your script with: # # exit $exit_status # # so that you can set exit_status to non-zero if you want to indicate # something went wrong during execution without actually bailing out at # the point of failure. exit_status=$EXIT_SUCCESS # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh # is ksh but when the shell is invoked as "sh" and the current value of # the _XPG environment variable is not equal to 1 (one), the special # positional parameter $0, within a function call, is the name of the # function. progpath=$0 # The name of this program. progname=`$ECHO "$progpath" |$SED "$sed_basename"` # Make sure we have an absolute progpath for reexecution: case $progpath in [\\/]*|[A-Za-z]:\\*) ;; *[\\/]*) progdir=`$ECHO "$progpath" |$SED "$sed_dirname"` progdir=`cd "$progdir" && pwd` progpath=$progdir/$progname ;; *) _G_IFS=$IFS IFS=${PATH_SEPARATOR-:} for progdir in $PATH; do IFS=$_G_IFS test -x "$progdir/$progname" && break done IFS=$_G_IFS test -n "$progdir" || progdir=`pwd` progpath=$progdir/$progname ;; esac ## ----------------- ## ## Standard options. ## ## ----------------- ## # The following options affect the operation of the functions defined # below, and should be set appropriately depending on run-time para- # meters passed on the command line. opt_dry_run=false opt_quiet=false opt_verbose=false # Categories 'all' and 'none' are always available. Append any others # you will pass as the first argument to func_warning from your own # code. warning_categories= # By default, display warnings according to 'opt_warning_types'. Set # 'warning_func' to ':' to elide all warnings, or func_fatal_error to # treat the next displayed warning as a fatal error. warning_func=func_warn_and_continue # Set to 'all' to display all warnings, 'none' to suppress all # warnings, or a space delimited list of some subset of # 'warning_categories' to display only the listed warnings. opt_warning_types=all ## -------------------- ## ## Resource management. ## ## -------------------- ## # This section contains definitions for functions that each ensure a # particular resource (a file, or a non-empty configuration variable for # example) is available, and if appropriate to extract default values # from pertinent package files. Call them using their associated # 'require_*' variable to ensure that they are executed, at most, once. # # It's entirely deliberate that calling these functions can set # variables that don't obey the namespace limitations obeyed by the rest # of this file, in order that that they be as useful as possible to # callers. # require_term_colors # ------------------- # Allow display of bold text on terminals that support it. require_term_colors=func_require_term_colors func_require_term_colors () { $debug_cmd test -t 1 && { # COLORTERM and USE_ANSI_COLORS environment variables take # precedence, because most terminfo databases neglect to describe # whether color sequences are supported. test -n "${COLORTERM+set}" && : ${USE_ANSI_COLORS="1"} if test 1 = "$USE_ANSI_COLORS"; then # Standard ANSI escape sequences tc_reset='' tc_bold=''; tc_standout='' tc_red=''; tc_green='' tc_blue=''; tc_cyan='' else # Otherwise trust the terminfo database after all. test -n "`tput sgr0 2>/dev/null`" && { tc_reset=`tput sgr0` test -n "`tput bold 2>/dev/null`" && tc_bold=`tput bold` tc_standout=$tc_bold test -n "`tput smso 2>/dev/null`" && tc_standout=`tput smso` test -n "`tput setaf 1 2>/dev/null`" && tc_red=`tput setaf 1` test -n "`tput setaf 2 2>/dev/null`" && tc_green=`tput setaf 2` test -n "`tput setaf 4 2>/dev/null`" && tc_blue=`tput setaf 4` test -n "`tput setaf 5 2>/dev/null`" && tc_cyan=`tput setaf 5` } fi } require_term_colors=: } ## ----------------- ## ## Function library. ## ## ----------------- ## # This section contains a variety of useful functions to call in your # scripts. Take note of the portable wrappers for features provided by # some modern shells, which will fall back to slower equivalents on # less featureful shells. # func_append VAR VALUE # --------------------- # Append VALUE onto the existing contents of VAR. # We should try to minimise forks, especially on Windows where they are # unreasonably slow, so skip the feature probes when bash or zsh are # being used: if test set = "${BASH_VERSION+set}${ZSH_VERSION+set}"; then : ${_G_HAVE_ARITH_OP="yes"} : ${_G_HAVE_XSI_OPS="yes"} # The += operator was introduced in bash 3.1 case $BASH_VERSION in [12].* | 3.0 | 3.0*) ;; *) : ${_G_HAVE_PLUSEQ_OP="yes"} ;; esac fi # _G_HAVE_PLUSEQ_OP # Can be empty, in which case the shell is probed, "yes" if += is # useable or anything else if it does not work. test -z "$_G_HAVE_PLUSEQ_OP" \ && (eval 'x=a; x+=" b"; test "a b" = "$x"') 2>/dev/null \ && _G_HAVE_PLUSEQ_OP=yes if test yes = "$_G_HAVE_PLUSEQ_OP" then # This is an XSI compatible shell, allowing a faster implementation... eval 'func_append () { $debug_cmd eval "$1+=\$2" }' else # ...otherwise fall back to using expr, which is often a shell builtin. func_append () { $debug_cmd eval "$1=\$$1\$2" } fi # func_append_quoted VAR VALUE # ---------------------------- # Quote VALUE and append to the end of shell variable VAR, separated # by a space. if test yes = "$_G_HAVE_PLUSEQ_OP"; then eval 'func_append_quoted () { $debug_cmd func_quote_for_eval "$2" eval "$1+=\\ \$func_quote_for_eval_result" }' else func_append_quoted () { $debug_cmd func_quote_for_eval "$2" eval "$1=\$$1\\ \$func_quote_for_eval_result" } fi # func_append_uniq VAR VALUE # -------------------------- # Append unique VALUE onto the existing contents of VAR, assuming # entries are delimited by the first character of VALUE. For example: # # func_append_uniq options " --another-option option-argument" # # will only append to $options if " --another-option option-argument " # is not already present somewhere in $options already (note spaces at # each end implied by leading space in second argument). func_append_uniq () { $debug_cmd eval _G_current_value='`$ECHO $'$1'`' _G_delim=`expr "$2" : '\(.\)'` case $_G_delim$_G_current_value$_G_delim in *"$2$_G_delim"*) ;; *) func_append "$@" ;; esac } # func_arith TERM... # ------------------ # Set func_arith_result to the result of evaluating TERMs. test -z "$_G_HAVE_ARITH_OP" \ && (eval 'test 2 = $(( 1 + 1 ))') 2>/dev/null \ && _G_HAVE_ARITH_OP=yes if test yes = "$_G_HAVE_ARITH_OP"; then eval 'func_arith () { $debug_cmd func_arith_result=$(( $* )) }' else func_arith () { $debug_cmd func_arith_result=`expr "$@"` } fi # func_basename FILE # ------------------ # Set func_basename_result to FILE with everything up to and including # the last / stripped. if test yes = "$_G_HAVE_XSI_OPS"; then # If this shell supports suffix pattern removal, then use it to avoid # forking. Hide the definitions single quotes in case the shell chokes # on unsupported syntax... _b='func_basename_result=${1##*/}' _d='case $1 in */*) func_dirname_result=${1%/*}$2 ;; * ) func_dirname_result=$3 ;; esac' else # ...otherwise fall back to using sed. _b='func_basename_result=`$ECHO "$1" |$SED "$sed_basename"`' _d='func_dirname_result=`$ECHO "$1" |$SED "$sed_dirname"` if test "X$func_dirname_result" = "X$1"; then func_dirname_result=$3 else func_append func_dirname_result "$2" fi' fi eval 'func_basename () { $debug_cmd '"$_b"' }' # func_dirname FILE APPEND NONDIR_REPLACEMENT # ------------------------------------------- # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. eval 'func_dirname () { $debug_cmd '"$_d"' }' # func_dirname_and_basename FILE APPEND NONDIR_REPLACEMENT # -------------------------------------------------------- # Perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # For efficiency, we do not delegate to the functions above but instead # duplicate the functionality here. eval 'func_dirname_and_basename () { $debug_cmd '"$_b"' '"$_d"' }' # func_echo ARG... # ---------------- # Echo program name prefixed message. func_echo () { $debug_cmd _G_message=$* func_echo_IFS=$IFS IFS=$nl for _G_line in $_G_message; do IFS=$func_echo_IFS $ECHO "$progname: $_G_line" done IFS=$func_echo_IFS } # func_echo_all ARG... # -------------------- # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "$*" } # func_echo_infix_1 INFIX ARG... # ------------------------------ # Echo program name, followed by INFIX on the first line, with any # additional lines not showing INFIX. func_echo_infix_1 () { $debug_cmd $require_term_colors _G_infix=$1; shift _G_indent=$_G_infix _G_prefix="$progname: $_G_infix: " _G_message=$* # Strip color escape sequences before counting printable length for _G_tc in "$tc_reset" "$tc_bold" "$tc_standout" "$tc_red" "$tc_green" "$tc_blue" "$tc_cyan" do test -n "$_G_tc" && { _G_esc_tc=`$ECHO "$_G_tc" | $SED "$sed_make_literal_regex"` _G_indent=`$ECHO "$_G_indent" | $SED "s|$_G_esc_tc||g"` } done _G_indent="$progname: "`echo "$_G_indent" | $SED 's|.| |g'`" " ## exclude from sc_prohibit_nested_quotes func_echo_infix_1_IFS=$IFS IFS=$nl for _G_line in $_G_message; do IFS=$func_echo_infix_1_IFS $ECHO "$_G_prefix$tc_bold$_G_line$tc_reset" >&2 _G_prefix=$_G_indent done IFS=$func_echo_infix_1_IFS } # func_error ARG... # ----------------- # Echo program name prefixed message to standard error. func_error () { $debug_cmd $require_term_colors func_echo_infix_1 " $tc_standout${tc_red}error$tc_reset" "$*" >&2 } # func_fatal_error ARG... # ----------------------- # Echo program name prefixed message to standard error, and exit. func_fatal_error () { $debug_cmd func_error "$*" exit $EXIT_FAILURE } # func_grep EXPRESSION FILENAME # ----------------------------- # Check whether EXPRESSION matches any line of FILENAME, without output. func_grep () { $debug_cmd $GREP "$1" "$2" >/dev/null 2>&1 } # func_len STRING # --------------- # Set func_len_result to the length of STRING. STRING may not # start with a hyphen. test -z "$_G_HAVE_XSI_OPS" \ && (eval 'x=a/b/c; test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ && _G_HAVE_XSI_OPS=yes if test yes = "$_G_HAVE_XSI_OPS"; then eval 'func_len () { $debug_cmd func_len_result=${#1} }' else func_len () { $debug_cmd func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` } fi # func_mkdir_p DIRECTORY-PATH # --------------------------- # Make sure the entire path to DIRECTORY-PATH is available. func_mkdir_p () { $debug_cmd _G_directory_path=$1 _G_dir_list= if test -n "$_G_directory_path" && test : != "$opt_dry_run"; then # Protect directory names starting with '-' case $_G_directory_path in -*) _G_directory_path=./$_G_directory_path ;; esac # While some portion of DIR does not yet exist... while test ! -d "$_G_directory_path"; do # ...make a list in topmost first order. Use a colon delimited # list incase some portion of path contains whitespace. _G_dir_list=$_G_directory_path:$_G_dir_list # If the last portion added has no slash in it, the list is done case $_G_directory_path in */*) ;; *) break ;; esac # ...otherwise throw away the child directory and loop _G_directory_path=`$ECHO "$_G_directory_path" | $SED -e "$sed_dirname"` done _G_dir_list=`$ECHO "$_G_dir_list" | $SED 's|:*$||'` func_mkdir_p_IFS=$IFS; IFS=: for _G_dir in $_G_dir_list; do IFS=$func_mkdir_p_IFS # mkdir can fail with a 'File exist' error if two processes # try to create one of the directories concurrently. Don't # stop in that case! $MKDIR "$_G_dir" 2>/dev/null || : done IFS=$func_mkdir_p_IFS # Bail out if we (or some other process) failed to create a directory. test -d "$_G_directory_path" || \ func_fatal_error "Failed to create '$1'" fi } # func_mktempdir [BASENAME] # ------------------------- # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If # given, BASENAME is the basename for that directory. func_mktempdir () { $debug_cmd _G_template=${TMPDIR-/tmp}/${1-$progname} if test : = "$opt_dry_run"; then # Return a directory name, but don't create it in dry-run mode _G_tmpdir=$_G_template-$$ else # If mktemp works, use that first and foremost _G_tmpdir=`mktemp -d "$_G_template-XXXXXXXX" 2>/dev/null` if test ! -d "$_G_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race _G_tmpdir=$_G_template-${RANDOM-0}$$ func_mktempdir_umask=`umask` umask 0077 $MKDIR "$_G_tmpdir" umask $func_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$_G_tmpdir" || \ func_fatal_error "cannot create temporary directory '$_G_tmpdir'" fi $ECHO "$_G_tmpdir" } # func_normal_abspath PATH # ------------------------ # Remove doubled-up and trailing slashes, "." path components, # and cancel out any ".." path components in PATH after making # it an absolute path. func_normal_abspath () { $debug_cmd # These SED scripts presuppose an absolute path with a trailing slash. _G_pathcar='s|^/\([^/]*\).*$|\1|' _G_pathcdr='s|^/[^/]*||' _G_removedotparts=':dotsl s|/\./|/|g t dotsl s|/\.$|/|' _G_collapseslashes='s|/\{1,\}|/|g' _G_finalslash='s|/*$|/|' # Start from root dir and reassemble the path. func_normal_abspath_result= func_normal_abspath_tpath=$1 func_normal_abspath_altnamespace= case $func_normal_abspath_tpath in "") # Empty path, that just means $cwd. func_stripname '' '/' "`pwd`" func_normal_abspath_result=$func_stripname_result return ;; # The next three entries are used to spot a run of precisely # two leading slashes without using negated character classes; # we take advantage of case's first-match behaviour. ///*) # Unusual form of absolute path, do nothing. ;; //*) # Not necessarily an ordinary path; POSIX reserves leading '//' # and for example Cygwin uses it to access remote file shares # over CIFS/SMB, so we conserve a leading double slash if found. func_normal_abspath_altnamespace=/ ;; /*) # Absolute path, do nothing. ;; *) # Relative path, prepend $cwd. func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath ;; esac # Cancel out all the simple stuff to save iterations. We also want # the path to end with a slash for ease of parsing, so make sure # there is one (and only one) here. func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$_G_removedotparts" -e "$_G_collapseslashes" -e "$_G_finalslash"` while :; do # Processed it all yet? if test / = "$func_normal_abspath_tpath"; then # If we ascended to the root using ".." the result may be empty now. if test -z "$func_normal_abspath_result"; then func_normal_abspath_result=/ fi break fi func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$_G_pathcar"` func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$_G_pathcdr"` # Figure out what to do with it case $func_normal_abspath_tcomponent in "") # Trailing empty path component, ignore it. ;; ..) # Parent dir; strip last assembled component from result. func_dirname "$func_normal_abspath_result" func_normal_abspath_result=$func_dirname_result ;; *) # Actual path component, append it. func_append func_normal_abspath_result "/$func_normal_abspath_tcomponent" ;; esac done # Restore leading double-slash if one was found on entry. func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result } # func_notquiet ARG... # -------------------- # Echo program name prefixed message only when not in quiet mode. func_notquiet () { $debug_cmd $opt_quiet || func_echo ${1+"$@"} # A bug in bash halts the script if the last line of a function # fails when set -e is in force, so we need another command to # work around that: : } # func_relative_path SRCDIR DSTDIR # -------------------------------- # Set func_relative_path_result to the relative path from SRCDIR to DSTDIR. func_relative_path () { $debug_cmd func_relative_path_result= func_normal_abspath "$1" func_relative_path_tlibdir=$func_normal_abspath_result func_normal_abspath "$2" func_relative_path_tbindir=$func_normal_abspath_result # Ascend the tree starting from libdir while :; do # check if we have found a prefix of bindir case $func_relative_path_tbindir in $func_relative_path_tlibdir) # found an exact match func_relative_path_tcancelled= break ;; $func_relative_path_tlibdir*) # found a matching prefix func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" func_relative_path_tcancelled=$func_stripname_result if test -z "$func_relative_path_result"; then func_relative_path_result=. fi break ;; *) func_dirname $func_relative_path_tlibdir func_relative_path_tlibdir=$func_dirname_result if test -z "$func_relative_path_tlibdir"; then # Have to descend all the way to the root! func_relative_path_result=../$func_relative_path_result func_relative_path_tcancelled=$func_relative_path_tbindir break fi func_relative_path_result=../$func_relative_path_result ;; esac done # Now calculate path; take care to avoid doubling-up slashes. func_stripname '' '/' "$func_relative_path_result" func_relative_path_result=$func_stripname_result func_stripname '/' '/' "$func_relative_path_tcancelled" if test -n "$func_stripname_result"; then func_append func_relative_path_result "/$func_stripname_result" fi # Normalisation. If bindir is libdir, return '.' else relative path. if test -n "$func_relative_path_result"; then func_stripname './' '' "$func_relative_path_result" func_relative_path_result=$func_stripname_result fi test -n "$func_relative_path_result" || func_relative_path_result=. : } # func_quote_for_eval ARG... # -------------------------- # Aesthetically quote ARGs to be evaled later. # This function returns two values: # i) func_quote_for_eval_result # double-quoted, suitable for a subsequent eval # ii) func_quote_for_eval_unquoted_result # has all characters that are still active within double # quotes backslashified. func_quote_for_eval () { $debug_cmd func_quote_for_eval_unquoted_result= func_quote_for_eval_result= while test 0 -lt $#; do case $1 in *[\\\`\"\$]*) _G_unquoted_arg=`printf '%s\n' "$1" |$SED "$sed_quote_subst"` ;; *) _G_unquoted_arg=$1 ;; esac if test -n "$func_quote_for_eval_unquoted_result"; then func_append func_quote_for_eval_unquoted_result " $_G_unquoted_arg" else func_append func_quote_for_eval_unquoted_result "$_G_unquoted_arg" fi case $_G_unquoted_arg in # Double-quote args containing shell metacharacters to delay # word splitting, command substitution and variable expansion # for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") _G_quoted_arg=\"$_G_unquoted_arg\" ;; *) _G_quoted_arg=$_G_unquoted_arg ;; esac if test -n "$func_quote_for_eval_result"; then func_append func_quote_for_eval_result " $_G_quoted_arg" else func_append func_quote_for_eval_result "$_G_quoted_arg" fi shift done } # func_quote_for_expand ARG # ------------------------- # Aesthetically quote ARG to be evaled later; same as above, # but do not quote variable references. func_quote_for_expand () { $debug_cmd case $1 in *[\\\`\"]*) _G_arg=`$ECHO "$1" | $SED \ -e "$sed_double_quote_subst" -e "$sed_double_backslash"` ;; *) _G_arg=$1 ;; esac case $_G_arg in # Double-quote args containing shell metacharacters to delay # word splitting and command substitution for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") _G_arg=\"$_G_arg\" ;; esac func_quote_for_expand_result=$_G_arg } # func_stripname PREFIX SUFFIX NAME # --------------------------------- # strip PREFIX and SUFFIX from NAME, and store in func_stripname_result. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). if test yes = "$_G_HAVE_XSI_OPS"; then eval 'func_stripname () { $debug_cmd # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are # positional parameters, so assign one to ordinary variable first. func_stripname_result=$3 func_stripname_result=${func_stripname_result#"$1"} func_stripname_result=${func_stripname_result%"$2"} }' else func_stripname () { $debug_cmd case $2 in .*) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%\\\\$2\$%%"`;; *) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%$2\$%%"`;; esac } fi # func_show_eval CMD [FAIL_EXP] # ----------------------------- # Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. func_show_eval () { $debug_cmd _G_cmd=$1 _G_fail_exp=${2-':'} func_quote_for_expand "$_G_cmd" eval "func_notquiet $func_quote_for_expand_result" $opt_dry_run || { eval "$_G_cmd" _G_status=$? if test 0 -ne "$_G_status"; then eval "(exit $_G_status); $_G_fail_exp" fi } } # func_show_eval_locale CMD [FAIL_EXP] # ------------------------------------ # Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. Use the saved locale for evaluation. func_show_eval_locale () { $debug_cmd _G_cmd=$1 _G_fail_exp=${2-':'} $opt_quiet || { func_quote_for_expand "$_G_cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || { eval "$_G_user_locale $_G_cmd" _G_status=$? eval "$_G_safe_locale" if test 0 -ne "$_G_status"; then eval "(exit $_G_status); $_G_fail_exp" fi } } # func_tr_sh # ---------- # Turn $1 into a string suitable for a shell variable name. # Result is stored in $func_tr_sh_result. All characters # not in the set a-zA-Z0-9_ are replaced with '_'. Further, # if $1 begins with a digit, a '_' is prepended as well. func_tr_sh () { $debug_cmd case $1 in [0-9]* | *[!a-zA-Z0-9_]*) func_tr_sh_result=`$ECHO "$1" | $SED -e 's/^\([0-9]\)/_\1/' -e 's/[^a-zA-Z0-9_]/_/g'` ;; * ) func_tr_sh_result=$1 ;; esac } # func_verbose ARG... # ------------------- # Echo program name prefixed message in verbose mode only. func_verbose () { $debug_cmd $opt_verbose && func_echo "$*" : } # func_warn_and_continue ARG... # ----------------------------- # Echo program name prefixed warning message to standard error. func_warn_and_continue () { $debug_cmd $require_term_colors func_echo_infix_1 "${tc_red}warning$tc_reset" "$*" >&2 } # func_warning CATEGORY ARG... # ---------------------------- # Echo program name prefixed warning message to standard error. Warning # messages can be filtered according to CATEGORY, where this function # elides messages where CATEGORY is not listed in the global variable # 'opt_warning_types'. func_warning () { $debug_cmd # CATEGORY must be in the warning_categories list! case " $warning_categories " in *" $1 "*) ;; *) func_internal_error "invalid warning category '$1'" ;; esac _G_category=$1 shift case " $opt_warning_types " in *" $_G_category "*) $warning_func ${1+"$@"} ;; esac } # func_sort_ver VER1 VER2 # ----------------------- # 'sort -V' is not generally available. # Note this deviates from the version comparison in automake # in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a # but this should suffice as we won't be specifying old # version formats or redundant trailing .0 in bootstrap.conf. # If we did want full compatibility then we should probably # use m4_version_compare from autoconf. func_sort_ver () { $debug_cmd printf '%s\n%s\n' "$1" "$2" \ | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n -k 5,5n -k 6,6n -k 7,7n -k 8,8n -k 9,9n } # func_lt_ver PREV CURR # --------------------- # Return true if PREV and CURR are in the correct order according to # func_sort_ver, otherwise false. Use it like this: # # func_lt_ver "$prev_ver" "$proposed_ver" || func_fatal_error "..." func_lt_ver () { $debug_cmd test "x$1" = x`func_sort_ver "$1" "$2" | $SED 1q` } # Local variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" # time-stamp-time-zone: "UTC" # End: #! /bin/sh # Set a version string for this script. scriptversion=2014-01-07.03; # UTC # A portable, pluggable option parser for Bourne shell. # Written by Gary V. Vaughan, 2010 # Copyright (C) 2010-2015 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # Please report bugs or propose patches to gary@gnu.org. ## ------ ## ## Usage. ## ## ------ ## # This file is a library for parsing options in your shell scripts along # with assorted other useful supporting features that you can make use # of too. # # For the simplest scripts you might need only: # # #!/bin/sh # . relative/path/to/funclib.sh # . relative/path/to/options-parser # scriptversion=1.0 # func_options ${1+"$@"} # eval set dummy "$func_options_result"; shift # ...rest of your script... # # In order for the '--version' option to work, you will need to have a # suitably formatted comment like the one at the top of this file # starting with '# Written by ' and ending with '# warranty; '. # # For '-h' and '--help' to work, you will also need a one line # description of your script's purpose in a comment directly above the # '# Written by ' line, like the one at the top of this file. # # The default options also support '--debug', which will turn on shell # execution tracing (see the comment above debug_cmd below for another # use), and '--verbose' and the func_verbose function to allow your script # to display verbose messages only when your user has specified # '--verbose'. # # After sourcing this file, you can plug processing for additional # options by amending the variables from the 'Configuration' section # below, and following the instructions in the 'Option parsing' # section further down. ## -------------- ## ## Configuration. ## ## -------------- ## # You should override these variables in your script after sourcing this # file so that they reflect the customisations you have added to the # option parser. # The usage line for option parsing errors and the start of '-h' and # '--help' output messages. You can embed shell variables for delayed # expansion at the time the message is displayed, but you will need to # quote other shell meta-characters carefully to prevent them being # expanded when the contents are evaled. usage='$progpath [OPTION]...' # Short help message in response to '-h' and '--help'. Add to this or # override it after sourcing this library to reflect the full set of # options your script accepts. usage_message="\ --debug enable verbose shell tracing -W, --warnings=CATEGORY report the warnings falling in CATEGORY [all] -v, --verbose verbosely report processing --version print version information and exit -h, --help print short or long help message and exit " # Additional text appended to 'usage_message' in response to '--help'. long_help_message=" Warning categories include: 'all' show all warnings 'none' turn off all the warnings 'error' warnings are treated as fatal errors" # Help message printed before fatal option parsing errors. fatal_help="Try '\$progname --help' for more information." ## ------------------------- ## ## Hook function management. ## ## ------------------------- ## # This section contains functions for adding, removing, and running hooks # to the main code. A hook is just a named list of of function, that can # be run in order later on. # func_hookable FUNC_NAME # ----------------------- # Declare that FUNC_NAME will run hooks added with # 'func_add_hook FUNC_NAME ...'. func_hookable () { $debug_cmd func_append hookable_fns " $1" } # func_add_hook FUNC_NAME HOOK_FUNC # --------------------------------- # Request that FUNC_NAME call HOOK_FUNC before it returns. FUNC_NAME must # first have been declared "hookable" by a call to 'func_hookable'. func_add_hook () { $debug_cmd case " $hookable_fns " in *" $1 "*) ;; *) func_fatal_error "'$1' does not accept hook functions." ;; esac eval func_append ${1}_hooks '" $2"' } # func_remove_hook FUNC_NAME HOOK_FUNC # ------------------------------------ # Remove HOOK_FUNC from the list of functions called by FUNC_NAME. func_remove_hook () { $debug_cmd eval ${1}_hooks='`$ECHO "\$'$1'_hooks" |$SED "s| '$2'||"`' } # func_run_hooks FUNC_NAME [ARG]... # --------------------------------- # Run all hook functions registered to FUNC_NAME. # It is assumed that the list of hook functions contains nothing more # than a whitespace-delimited list of legal shell function names, and # no effort is wasted trying to catch shell meta-characters or preserve # whitespace. func_run_hooks () { $debug_cmd case " $hookable_fns " in *" $1 "*) ;; *) func_fatal_error "'$1' does not support hook funcions.n" ;; esac eval _G_hook_fns=\$$1_hooks; shift for _G_hook in $_G_hook_fns; do eval $_G_hook '"$@"' # store returned options list back into positional # parameters for next 'cmd' execution. eval _G_hook_result=\$${_G_hook}_result eval set dummy "$_G_hook_result"; shift done func_quote_for_eval ${1+"$@"} func_run_hooks_result=$func_quote_for_eval_result } ## --------------- ## ## Option parsing. ## ## --------------- ## # In order to add your own option parsing hooks, you must accept the # full positional parameter list in your hook function, remove any # options that you action, and then pass back the remaining unprocessed # options in '_result', escaped suitably for # 'eval'. Like this: # # my_options_prep () # { # $debug_cmd # # # Extend the existing usage message. # usage_message=$usage_message' # -s, --silent don'\''t print informational messages # ' # # func_quote_for_eval ${1+"$@"} # my_options_prep_result=$func_quote_for_eval_result # } # func_add_hook func_options_prep my_options_prep # # # my_silent_option () # { # $debug_cmd # # # Note that for efficiency, we parse as many options as we can # # recognise in a loop before passing the remainder back to the # # caller on the first unrecognised argument we encounter. # while test $# -gt 0; do # opt=$1; shift # case $opt in # --silent|-s) opt_silent=: ;; # # Separate non-argument short options: # -s*) func_split_short_opt "$_G_opt" # set dummy "$func_split_short_opt_name" \ # "-$func_split_short_opt_arg" ${1+"$@"} # shift # ;; # *) set dummy "$_G_opt" "$*"; shift; break ;; # esac # done # # func_quote_for_eval ${1+"$@"} # my_silent_option_result=$func_quote_for_eval_result # } # func_add_hook func_parse_options my_silent_option # # # my_option_validation () # { # $debug_cmd # # $opt_silent && $opt_verbose && func_fatal_help "\ # '--silent' and '--verbose' options are mutually exclusive." # # func_quote_for_eval ${1+"$@"} # my_option_validation_result=$func_quote_for_eval_result # } # func_add_hook func_validate_options my_option_validation # # You'll alse need to manually amend $usage_message to reflect the extra # options you parse. It's preferable to append if you can, so that # multiple option parsing hooks can be added safely. # func_options [ARG]... # --------------------- # All the functions called inside func_options are hookable. See the # individual implementations for details. func_hookable func_options func_options () { $debug_cmd func_options_prep ${1+"$@"} eval func_parse_options \ ${func_options_prep_result+"$func_options_prep_result"} eval func_validate_options \ ${func_parse_options_result+"$func_parse_options_result"} eval func_run_hooks func_options \ ${func_validate_options_result+"$func_validate_options_result"} # save modified positional parameters for caller func_options_result=$func_run_hooks_result } # func_options_prep [ARG]... # -------------------------- # All initialisations required before starting the option parse loop. # Note that when calling hook functions, we pass through the list of # positional parameters. If a hook function modifies that list, and # needs to propogate that back to rest of this script, then the complete # modified list must be put in 'func_run_hooks_result' before # returning. func_hookable func_options_prep func_options_prep () { $debug_cmd # Option defaults: opt_verbose=false opt_warning_types= func_run_hooks func_options_prep ${1+"$@"} # save modified positional parameters for caller func_options_prep_result=$func_run_hooks_result } # func_parse_options [ARG]... # --------------------------- # The main option parsing loop. func_hookable func_parse_options func_parse_options () { $debug_cmd func_parse_options_result= # this just eases exit handling while test $# -gt 0; do # Defer to hook functions for initial option parsing, so they # get priority in the event of reusing an option name. func_run_hooks func_parse_options ${1+"$@"} # Adjust func_parse_options positional parameters to match eval set dummy "$func_run_hooks_result"; shift # Break out of the loop if we already parsed every option. test $# -gt 0 || break _G_opt=$1 shift case $_G_opt in --debug|-x) debug_cmd='set -x' func_echo "enabling shell trace mode" $debug_cmd ;; --no-warnings|--no-warning|--no-warn) set dummy --warnings none ${1+"$@"} shift ;; --warnings|--warning|-W) test $# = 0 && func_missing_arg $_G_opt && break case " $warning_categories $1" in *" $1 "*) # trailing space prevents matching last $1 above func_append_uniq opt_warning_types " $1" ;; *all) opt_warning_types=$warning_categories ;; *none) opt_warning_types=none warning_func=: ;; *error) opt_warning_types=$warning_categories warning_func=func_fatal_error ;; *) func_fatal_error \ "unsupported warning category: '$1'" ;; esac shift ;; --verbose|-v) opt_verbose=: ;; --version) func_version ;; -\?|-h) func_usage ;; --help) func_help ;; # Separate optargs to long options (plugins may need this): --*=*) func_split_equals "$_G_opt" set dummy "$func_split_equals_lhs" \ "$func_split_equals_rhs" ${1+"$@"} shift ;; # Separate optargs to short options: -W*) func_split_short_opt "$_G_opt" set dummy "$func_split_short_opt_name" \ "$func_split_short_opt_arg" ${1+"$@"} shift ;; # Separate non-argument short options: -\?*|-h*|-v*|-x*) func_split_short_opt "$_G_opt" set dummy "$func_split_short_opt_name" \ "-$func_split_short_opt_arg" ${1+"$@"} shift ;; --) break ;; -*) func_fatal_help "unrecognised option: '$_G_opt'" ;; *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;; esac done # save modified positional parameters for caller func_quote_for_eval ${1+"$@"} func_parse_options_result=$func_quote_for_eval_result } # func_validate_options [ARG]... # ------------------------------ # Perform any sanity checks on option settings and/or unconsumed # arguments. func_hookable func_validate_options func_validate_options () { $debug_cmd # Display all warnings if -W was not given. test -n "$opt_warning_types" || opt_warning_types=" $warning_categories" func_run_hooks func_validate_options ${1+"$@"} # Bail if the options were screwed! $exit_cmd $EXIT_FAILURE # save modified positional parameters for caller func_validate_options_result=$func_run_hooks_result } ## ----------------- ## ## Helper functions. ## ## ----------------- ## # This section contains the helper functions used by the rest of the # hookable option parser framework in ascii-betical order. # func_fatal_help ARG... # ---------------------- # Echo program name prefixed message to standard error, followed by # a help hint, and exit. func_fatal_help () { $debug_cmd eval \$ECHO \""Usage: $usage"\" eval \$ECHO \""$fatal_help"\" func_error ${1+"$@"} exit $EXIT_FAILURE } # func_help # --------- # Echo long help message to standard output and exit. func_help () { $debug_cmd func_usage_message $ECHO "$long_help_message" exit 0 } # func_missing_arg ARGNAME # ------------------------ # Echo program name prefixed message to standard error and set global # exit_cmd. func_missing_arg () { $debug_cmd func_error "Missing argument for '$1'." exit_cmd=exit } # func_split_equals STRING # ------------------------ # Set func_split_equals_lhs and func_split_equals_rhs shell variables after # splitting STRING at the '=' sign. test -z "$_G_HAVE_XSI_OPS" \ && (eval 'x=a/b/c; test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ && _G_HAVE_XSI_OPS=yes if test yes = "$_G_HAVE_XSI_OPS" then # This is an XSI compatible shell, allowing a faster implementation... eval 'func_split_equals () { $debug_cmd func_split_equals_lhs=${1%%=*} func_split_equals_rhs=${1#*=} test "x$func_split_equals_lhs" = "x$1" \ && func_split_equals_rhs= }' else # ...otherwise fall back to using expr, which is often a shell builtin. func_split_equals () { $debug_cmd func_split_equals_lhs=`expr "x$1" : 'x\([^=]*\)'` func_split_equals_rhs= test "x$func_split_equals_lhs" = "x$1" \ || func_split_equals_rhs=`expr "x$1" : 'x[^=]*=\(.*\)$'` } fi #func_split_equals # func_split_short_opt SHORTOPT # ----------------------------- # Set func_split_short_opt_name and func_split_short_opt_arg shell # variables after splitting SHORTOPT after the 2nd character. if test yes = "$_G_HAVE_XSI_OPS" then # This is an XSI compatible shell, allowing a faster implementation... eval 'func_split_short_opt () { $debug_cmd func_split_short_opt_arg=${1#??} func_split_short_opt_name=${1%"$func_split_short_opt_arg"} }' else # ...otherwise fall back to using expr, which is often a shell builtin. func_split_short_opt () { $debug_cmd func_split_short_opt_name=`expr "x$1" : 'x-\(.\)'` func_split_short_opt_arg=`expr "x$1" : 'x-.\(.*\)$'` } fi #func_split_short_opt # func_usage # ---------- # Echo short help message to standard output and exit. func_usage () { $debug_cmd func_usage_message $ECHO "Run '$progname --help |${PAGER-more}' for full usage" exit 0 } # func_usage_message # ------------------ # Echo short help message to standard output. func_usage_message () { $debug_cmd eval \$ECHO \""Usage: $usage"\" echo $SED -n 's|^# || /^Written by/{ x;p;x } h /^Written by/q' < "$progpath" echo eval \$ECHO \""$usage_message"\" } # func_version # ------------ # Echo version message to standard output and exit. func_version () { $debug_cmd printf '%s\n' "$progname $scriptversion" $SED -n ' /(C)/!b go :more /\./!{ N s|\n# | | b more } :go /^# Written by /,/# warranty; / { s|^# || s|^# *$|| s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2| p } /^# Written by / { s|^# || p } /^warranty; /q' < "$progpath" exit $? } # Local variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" # time-stamp-time-zone: "UTC" # End: # Set a version string. scriptversion='(GNU libtool) 2.4.6' # func_echo ARG... # ---------------- # Libtool also displays the current mode in messages, so override # funclib.sh func_echo with this custom definition. func_echo () { $debug_cmd _G_message=$* func_echo_IFS=$IFS IFS=$nl for _G_line in $_G_message; do IFS=$func_echo_IFS $ECHO "$progname${opt_mode+: $opt_mode}: $_G_line" done IFS=$func_echo_IFS } # func_warning ARG... # ------------------- # Libtool warnings are not categorized, so override funclib.sh # func_warning with this simpler definition. func_warning () { $debug_cmd $warning_func ${1+"$@"} } ## ---------------- ## ## Options parsing. ## ## ---------------- ## # Hook in the functions to make sure our own options are parsed during # the option parsing loop. usage='$progpath [OPTION]... [MODE-ARG]...' # Short help message in response to '-h'. usage_message="Options: --config show all configuration variables --debug enable verbose shell tracing -n, --dry-run display commands without modifying any files --features display basic configuration information and exit --mode=MODE use operation mode MODE --no-warnings equivalent to '-Wnone' --preserve-dup-deps don't remove duplicate dependency libraries --quiet, --silent don't print informational messages --tag=TAG use configuration variables from tag TAG -v, --verbose print more informational messages than default --version print version information -W, --warnings=CATEGORY report the warnings falling in CATEGORY [all] -h, --help, --help-all print short, long, or detailed help message " # Additional text appended to 'usage_message' in response to '--help'. func_help () { $debug_cmd func_usage_message $ECHO "$long_help_message MODE must be one of the following: clean remove files from the build directory compile compile a source file into a libtool object execute automatically set library path, then run a program finish complete the installation of libtool libraries install install libraries or executables link create a library or an executable uninstall remove libraries from an installed directory MODE-ARGS vary depending on the MODE. When passed as first option, '--mode=MODE' may be abbreviated as 'MODE' or a unique abbreviation of that. Try '$progname --help --mode=MODE' for a more detailed description of MODE. When reporting a bug, please describe a test case to reproduce it and include the following information: host-triplet: $host shell: $SHELL compiler: $LTCC compiler flags: $LTCFLAGS linker: $LD (gnu? $with_gnu_ld) version: $progname (GNU libtool) 2.4.6 automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q` autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q` Report bugs to . GNU libtool home page: . General help using GNU software: ." exit 0 } # func_lo2o OBJECT-NAME # --------------------- # Transform OBJECT-NAME from a '.lo' suffix to the platform specific # object suffix. lo2o=s/\\.lo\$/.$objext/ o2lo=s/\\.$objext\$/.lo/ if test yes = "$_G_HAVE_XSI_OPS"; then eval 'func_lo2o () { case $1 in *.lo) func_lo2o_result=${1%.lo}.$objext ;; * ) func_lo2o_result=$1 ;; esac }' # func_xform LIBOBJ-OR-SOURCE # --------------------------- # Transform LIBOBJ-OR-SOURCE from a '.o' or '.c' (or otherwise) # suffix to a '.lo' libtool-object suffix. eval 'func_xform () { func_xform_result=${1%.*}.lo }' else # ...otherwise fall back to using sed. func_lo2o () { func_lo2o_result=`$ECHO "$1" | $SED "$lo2o"` } func_xform () { func_xform_result=`$ECHO "$1" | $SED 's|\.[^.]*$|.lo|'` } fi # func_fatal_configuration ARG... # ------------------------------- # Echo program name prefixed message to standard error, followed by # a configuration failure hint, and exit. func_fatal_configuration () { func__fatal_error ${1+"$@"} \ "See the $PACKAGE documentation for more information." \ "Fatal configuration error." } # func_config # ----------- # Display the configuration for all the tags in this script. func_config () { re_begincf='^# ### BEGIN LIBTOOL' re_endcf='^# ### END LIBTOOL' # Default configuration. $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" # Now print the configurations for the tags. for tagname in $taglist; do $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" done exit $? } # func_features # ------------- # Display the features supported by this script. func_features () { echo "host: $host" if test yes = "$build_libtool_libs"; then echo "enable shared libraries" else echo "disable shared libraries" fi if test yes = "$build_old_libs"; then echo "enable static libraries" else echo "disable static libraries" fi exit $? } # func_enable_tag TAGNAME # ----------------------- # Verify that TAGNAME is valid, and either flag an error and exit, or # enable the TAGNAME tag. We also add TAGNAME to the global $taglist # variable here. func_enable_tag () { # Global variable: tagname=$1 re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" sed_extractcf=/$re_begincf/,/$re_endcf/p # Validate tagname. case $tagname in *[!-_A-Za-z0-9,/]*) func_fatal_error "invalid tag name: $tagname" ;; esac # Don't test for the "default" C tag, as we know it's # there but not specially marked. case $tagname in CC) ;; *) if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then taglist="$taglist $tagname" # Evaluate the configuration. Be careful to quote the path # and the sed script, to avoid splitting on whitespace, but # also don't use non-portable quotes within backquotes within # quotes we have to do it in 2 steps: extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` eval "$extractedcf" else func_error "ignoring unknown tag $tagname" fi ;; esac } # func_check_version_match # ------------------------ # Ensure that we are using m4 macros, and libtool script from the same # release of libtool. func_check_version_match () { if test "$package_revision" != "$macro_revision"; then if test "$VERSION" != "$macro_version"; then if test -z "$macro_version"; then cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from an older release. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from $PACKAGE $macro_version. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF fi else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, $progname: but the definition of this LT_INIT comes from revision $macro_revision. $progname: You should recreate aclocal.m4 with macros from revision $package_revision $progname: of $PACKAGE $VERSION and run autoconf again. _LT_EOF fi exit $EXIT_MISMATCH fi } # libtool_options_prep [ARG]... # ----------------------------- # Preparation for options parsed by libtool. libtool_options_prep () { $debug_mode # Option defaults: opt_config=false opt_dlopen= opt_dry_run=false opt_help=false opt_mode= opt_preserve_dup_deps=false opt_quiet=false nonopt= preserve_args= # Shorthand for --mode=foo, only valid as the first argument case $1 in clean|clea|cle|cl) shift; set dummy --mode clean ${1+"$@"}; shift ;; compile|compil|compi|comp|com|co|c) shift; set dummy --mode compile ${1+"$@"}; shift ;; execute|execut|execu|exec|exe|ex|e) shift; set dummy --mode execute ${1+"$@"}; shift ;; finish|finis|fini|fin|fi|f) shift; set dummy --mode finish ${1+"$@"}; shift ;; install|instal|insta|inst|ins|in|i) shift; set dummy --mode install ${1+"$@"}; shift ;; link|lin|li|l) shift; set dummy --mode link ${1+"$@"}; shift ;; uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) shift; set dummy --mode uninstall ${1+"$@"}; shift ;; esac # Pass back the list of options. func_quote_for_eval ${1+"$@"} libtool_options_prep_result=$func_quote_for_eval_result } func_add_hook func_options_prep libtool_options_prep # libtool_parse_options [ARG]... # --------------------------------- # Provide handling for libtool specific options. libtool_parse_options () { $debug_cmd # Perform our own loop to consume as many options as possible in # each iteration. while test $# -gt 0; do _G_opt=$1 shift case $_G_opt in --dry-run|--dryrun|-n) opt_dry_run=: ;; --config) func_config ;; --dlopen|-dlopen) opt_dlopen="${opt_dlopen+$opt_dlopen }$1" shift ;; --preserve-dup-deps) opt_preserve_dup_deps=: ;; --features) func_features ;; --finish) set dummy --mode finish ${1+"$@"}; shift ;; --help) opt_help=: ;; --help-all) opt_help=': help-all' ;; --mode) test $# = 0 && func_missing_arg $_G_opt && break opt_mode=$1 case $1 in # Valid mode arguments: clean|compile|execute|finish|install|link|relink|uninstall) ;; # Catch anything else as an error *) func_error "invalid argument for $_G_opt" exit_cmd=exit break ;; esac shift ;; --no-silent|--no-quiet) opt_quiet=false func_append preserve_args " $_G_opt" ;; --no-warnings|--no-warning|--no-warn) opt_warning=false func_append preserve_args " $_G_opt" ;; --no-verbose) opt_verbose=false func_append preserve_args " $_G_opt" ;; --silent|--quiet) opt_quiet=: opt_verbose=false func_append preserve_args " $_G_opt" ;; --tag) test $# = 0 && func_missing_arg $_G_opt && break opt_tag=$1 func_append preserve_args " $_G_opt $1" func_enable_tag "$1" shift ;; --verbose|-v) opt_quiet=false opt_verbose=: func_append preserve_args " $_G_opt" ;; # An option not handled by this hook function: *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;; esac done # save modified positional parameters for caller func_quote_for_eval ${1+"$@"} libtool_parse_options_result=$func_quote_for_eval_result } func_add_hook func_parse_options libtool_parse_options # libtool_validate_options [ARG]... # --------------------------------- # Perform any sanity checks on option settings and/or unconsumed # arguments. libtool_validate_options () { # save first non-option argument if test 0 -lt $#; then nonopt=$1 shift fi # preserve --debug test : = "$debug_cmd" || func_append preserve_args " --debug" case $host in # Solaris2 added to fix http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16452 # see also: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59788 *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* | *os2*) # don't eliminate duplications in $postdeps and $predeps opt_duplicate_compiler_generated_deps=: ;; *) opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps ;; esac $opt_help || { # Sanity checks first: func_check_version_match test yes != "$build_libtool_libs" \ && test yes != "$build_old_libs" \ && func_fatal_configuration "not configured to build any kind of library" # Darwin sucks eval std_shrext=\"$shrext_cmds\" # Only execute mode is allowed to have -dlopen flags. if test -n "$opt_dlopen" && test execute != "$opt_mode"; then func_error "unrecognized option '-dlopen'" $ECHO "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help=$help help="Try '$progname --help --mode=$opt_mode' for more information." } # Pass back the unparsed argument list func_quote_for_eval ${1+"$@"} libtool_validate_options_result=$func_quote_for_eval_result } func_add_hook func_validate_options libtool_validate_options # Process options as early as possible so that --help and --version # can return quickly. func_options ${1+"$@"} eval set dummy "$func_options_result"; shift ## ----------- ## ## Main. ## ## ----------- ## magic='%%%MAGIC variable%%%' magic_exe='%%%MAGIC EXE variable%%%' # Global variables. extracted_archives= extracted_serial=0 # If this variable is set in any of the actions, the command in it # will be execed at the end. This prevents here-documents from being # left over by shells. exec_cmd= # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $1 _LTECHO_EOF' } # func_generated_by_libtool # True iff stdin has been generated by Libtool. This function is only # a basic sanity check; it will hardly flush out determined imposters. func_generated_by_libtool_p () { $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 } # func_lalib_p file # True iff FILE is a libtool '.la' library or '.lo' object file. # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_lalib_p () { test -f "$1" && $SED -e 4q "$1" 2>/dev/null | func_generated_by_libtool_p } # func_lalib_unsafe_p file # True iff FILE is a libtool '.la' library or '.lo' object file. # This function implements the same check as func_lalib_p without # resorting to external programs. To this end, it redirects stdin and # closes it afterwards, without saving the original file descriptor. # As a safety measure, use it only where a negative result would be # fatal anyway. Works if 'file' does not exist. func_lalib_unsafe_p () { lalib_p=no if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then for lalib_p_l in 1 2 3 4 do read lalib_p_line case $lalib_p_line in \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; esac done exec 0<&5 5<&- fi test yes = "$lalib_p" } # func_ltwrapper_script_p file # True iff FILE is a libtool wrapper script # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_script_p () { test -f "$1" && $lt_truncate_bin < "$1" 2>/dev/null | func_generated_by_libtool_p } # func_ltwrapper_executable_p file # True iff FILE is a libtool wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_executable_p () { func_ltwrapper_exec_suffix= case $1 in *.exe) ;; *) func_ltwrapper_exec_suffix=.exe ;; esac $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 } # func_ltwrapper_scriptname file # Assumes file is an ltwrapper_executable # uses $file to determine the appropriate filename for a # temporary ltwrapper_script. func_ltwrapper_scriptname () { func_dirname_and_basename "$1" "" "." func_stripname '' '.exe' "$func_basename_result" func_ltwrapper_scriptname_result=$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper } # func_ltwrapper_p file # True iff FILE is a libtool wrapper script or wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_p () { func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" } # func_execute_cmds commands fail_cmd # Execute tilde-delimited COMMANDS. # If FAIL_CMD is given, eval that upon failure. # FAIL_CMD may read-access the current command in variable CMD! func_execute_cmds () { $debug_cmd save_ifs=$IFS; IFS='~' for cmd in $1; do IFS=$sp$nl eval cmd=\"$cmd\" IFS=$save_ifs func_show_eval "$cmd" "${2-:}" done IFS=$save_ifs } # func_source file # Source FILE, adding directory component if necessary. # Note that it is not necessary on cygwin/mingw to append a dot to # FILE even if both FILE and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # 'FILE.' does not work on cygwin managed mounts. func_source () { $debug_cmd case $1 in */* | *\\*) . "$1" ;; *) . "./$1" ;; esac } # func_resolve_sysroot PATH # Replace a leading = in PATH with a sysroot. Store the result into # func_resolve_sysroot_result func_resolve_sysroot () { func_resolve_sysroot_result=$1 case $func_resolve_sysroot_result in =*) func_stripname '=' '' "$func_resolve_sysroot_result" func_resolve_sysroot_result=$lt_sysroot$func_stripname_result ;; esac } # func_replace_sysroot PATH # If PATH begins with the sysroot, replace it with = and # store the result into func_replace_sysroot_result. func_replace_sysroot () { case $lt_sysroot:$1 in ?*:"$lt_sysroot"*) func_stripname "$lt_sysroot" '' "$1" func_replace_sysroot_result='='$func_stripname_result ;; *) # Including no sysroot. func_replace_sysroot_result=$1 ;; esac } # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. # Only attempt this if the compiler in the base compile # command doesn't match the default compiler. # arg is usually of the form 'gcc ...' func_infer_tag () { $debug_cmd if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do func_append_quoted CC_quoted "$arg" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) for z in $available_tags; do if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. eval "`$SED -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. func_append_quoted CC_quoted "$arg" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` case "$@ " in " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. tagname=$z break ;; esac fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then func_echo "unable to infer tagged configuration" func_fatal_error "specify a tag with '--tag'" # else # func_verbose "using $tagname tagged configuration" fi ;; esac fi } # func_write_libtool_object output_name pic_name nonpic_name # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. func_write_libtool_object () { write_libobj=$1 if test yes = "$build_libtool_libs"; then write_lobj=\'$2\' else write_lobj=none fi if test yes = "$build_old_libs"; then write_oldobj=\'$3\' else write_oldobj=none fi $opt_dry_run || { cat >${write_libobj}T </dev/null` if test "$?" -eq 0 && test -n "$func_convert_core_file_wine_to_w32_tmp"; then func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | $SED -e "$sed_naive_backslashify"` else func_convert_core_file_wine_to_w32_result= fi fi } # end: func_convert_core_file_wine_to_w32 # func_convert_core_path_wine_to_w32 ARG # Helper function used by path conversion functions when $build is *nix, and # $host is mingw, cygwin, or some other w32 environment. Relies on a correctly # configured wine environment available, with the winepath program in $build's # $PATH. Assumes ARG has no leading or trailing path separator characters. # # ARG is path to be converted from $build format to win32. # Result is available in $func_convert_core_path_wine_to_w32_result. # Unconvertible file (directory) names in ARG are skipped; if no directory names # are convertible, then the result may be empty. func_convert_core_path_wine_to_w32 () { $debug_cmd # unfortunately, winepath doesn't convert paths, only file names func_convert_core_path_wine_to_w32_result= if test -n "$1"; then oldIFS=$IFS IFS=: for func_convert_core_path_wine_to_w32_f in $1; do IFS=$oldIFS func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" if test -n "$func_convert_core_file_wine_to_w32_result"; then if test -z "$func_convert_core_path_wine_to_w32_result"; then func_convert_core_path_wine_to_w32_result=$func_convert_core_file_wine_to_w32_result else func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" fi fi done IFS=$oldIFS fi } # end: func_convert_core_path_wine_to_w32 # func_cygpath ARGS... # Wrapper around calling the cygpath program via LT_CYGPATH. This is used when # when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) # $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or # (2), returns the Cygwin file name or path in func_cygpath_result (input # file name or path is assumed to be in w32 format, as previously converted # from $build's *nix or MSYS format). In case (3), returns the w32 file name # or path in func_cygpath_result (input file name or path is assumed to be in # Cygwin format). Returns an empty string on error. # # ARGS are passed to cygpath, with the last one being the file name or path to # be converted. # # Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH # environment variable; do not put it in $PATH. func_cygpath () { $debug_cmd if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` if test "$?" -ne 0; then # on failure, ensure result is empty func_cygpath_result= fi else func_cygpath_result= func_error "LT_CYGPATH is empty or specifies non-existent file: '$LT_CYGPATH'" fi } #end: func_cygpath # func_convert_core_msys_to_w32 ARG # Convert file name or path ARG from MSYS format to w32 format. Return # result in func_convert_core_msys_to_w32_result. func_convert_core_msys_to_w32 () { $debug_cmd # awkward: cmd appends spaces to result func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | $SED -e 's/[ ]*$//' -e "$sed_naive_backslashify"` } #end: func_convert_core_msys_to_w32 # func_convert_file_check ARG1 ARG2 # Verify that ARG1 (a file name in $build format) was converted to $host # format in ARG2. Otherwise, emit an error message, but continue (resetting # func_to_host_file_result to ARG1). func_convert_file_check () { $debug_cmd if test -z "$2" && test -n "$1"; then func_error "Could not determine host file name corresponding to" func_error " '$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback: func_to_host_file_result=$1 fi } # end func_convert_file_check # func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH # Verify that FROM_PATH (a path in $build format) was converted to $host # format in TO_PATH. Otherwise, emit an error message, but continue, resetting # func_to_host_file_result to a simplistic fallback value (see below). func_convert_path_check () { $debug_cmd if test -z "$4" && test -n "$3"; then func_error "Could not determine the host path corresponding to" func_error " '$3'" func_error "Continuing, but uninstalled executables may not work." # Fallback. This is a deliberately simplistic "conversion" and # should not be "improved". See libtool.info. if test "x$1" != "x$2"; then lt_replace_pathsep_chars="s|$1|$2|g" func_to_host_path_result=`echo "$3" | $SED -e "$lt_replace_pathsep_chars"` else func_to_host_path_result=$3 fi fi } # end func_convert_path_check # func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG # Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT # and appending REPL if ORIG matches BACKPAT. func_convert_path_front_back_pathsep () { $debug_cmd case $4 in $1 ) func_to_host_path_result=$3$func_to_host_path_result ;; esac case $4 in $2 ) func_append func_to_host_path_result "$3" ;; esac } # end func_convert_path_front_back_pathsep ################################################## # $build to $host FILE NAME CONVERSION FUNCTIONS # ################################################## # invoked via '$to_host_file_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # Result will be available in $func_to_host_file_result. # func_to_host_file ARG # Converts the file name ARG from $build format to $host format. Return result # in func_to_host_file_result. func_to_host_file () { $debug_cmd $to_host_file_cmd "$1" } # end func_to_host_file # func_to_tool_file ARG LAZY # converts the file name ARG from $build format to toolchain format. Return # result in func_to_tool_file_result. If the conversion in use is listed # in (the comma separated) LAZY, no conversion takes place. func_to_tool_file () { $debug_cmd case ,$2, in *,"$to_tool_file_cmd",*) func_to_tool_file_result=$1 ;; *) $to_tool_file_cmd "$1" func_to_tool_file_result=$func_to_host_file_result ;; esac } # end func_to_tool_file # func_convert_file_noop ARG # Copy ARG to func_to_host_file_result. func_convert_file_noop () { func_to_host_file_result=$1 } # end func_convert_file_noop # func_convert_file_msys_to_w32 ARG # Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic # conversion to w32 is not available inside the cwrapper. Returns result in # func_to_host_file_result. func_convert_file_msys_to_w32 () { $debug_cmd func_to_host_file_result=$1 if test -n "$1"; then func_convert_core_msys_to_w32 "$1" func_to_host_file_result=$func_convert_core_msys_to_w32_result fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_msys_to_w32 # func_convert_file_cygwin_to_w32 ARG # Convert file name ARG from Cygwin to w32 format. Returns result in # func_to_host_file_result. func_convert_file_cygwin_to_w32 () { $debug_cmd func_to_host_file_result=$1 if test -n "$1"; then # because $build is cygwin, we call "the" cygpath in $PATH; no need to use # LT_CYGPATH in this case. func_to_host_file_result=`cygpath -m "$1"` fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_cygwin_to_w32 # func_convert_file_nix_to_w32 ARG # Convert file name ARG from *nix to w32 format. Requires a wine environment # and a working winepath. Returns result in func_to_host_file_result. func_convert_file_nix_to_w32 () { $debug_cmd func_to_host_file_result=$1 if test -n "$1"; then func_convert_core_file_wine_to_w32 "$1" func_to_host_file_result=$func_convert_core_file_wine_to_w32_result fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_nix_to_w32 # func_convert_file_msys_to_cygwin ARG # Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. # Returns result in func_to_host_file_result. func_convert_file_msys_to_cygwin () { $debug_cmd func_to_host_file_result=$1 if test -n "$1"; then func_convert_core_msys_to_w32 "$1" func_cygpath -u "$func_convert_core_msys_to_w32_result" func_to_host_file_result=$func_cygpath_result fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_msys_to_cygwin # func_convert_file_nix_to_cygwin ARG # Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed # in a wine environment, working winepath, and LT_CYGPATH set. Returns result # in func_to_host_file_result. func_convert_file_nix_to_cygwin () { $debug_cmd func_to_host_file_result=$1 if test -n "$1"; then # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. func_convert_core_file_wine_to_w32 "$1" func_cygpath -u "$func_convert_core_file_wine_to_w32_result" func_to_host_file_result=$func_cygpath_result fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_nix_to_cygwin ############################################# # $build to $host PATH CONVERSION FUNCTIONS # ############################################# # invoked via '$to_host_path_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # The result will be available in $func_to_host_path_result. # # Path separators are also converted from $build format to $host format. If # ARG begins or ends with a path separator character, it is preserved (but # converted to $host format) on output. # # All path conversion functions are named using the following convention: # file name conversion function : func_convert_file_X_to_Y () # path conversion function : func_convert_path_X_to_Y () # where, for any given $build/$host combination the 'X_to_Y' value is the # same. If conversion functions are added for new $build/$host combinations, # the two new functions must follow this pattern, or func_init_to_host_path_cmd # will break. # func_init_to_host_path_cmd # Ensures that function "pointer" variable $to_host_path_cmd is set to the # appropriate value, based on the value of $to_host_file_cmd. to_host_path_cmd= func_init_to_host_path_cmd () { $debug_cmd if test -z "$to_host_path_cmd"; then func_stripname 'func_convert_file_' '' "$to_host_file_cmd" to_host_path_cmd=func_convert_path_$func_stripname_result fi } # func_to_host_path ARG # Converts the path ARG from $build format to $host format. Return result # in func_to_host_path_result. func_to_host_path () { $debug_cmd func_init_to_host_path_cmd $to_host_path_cmd "$1" } # end func_to_host_path # func_convert_path_noop ARG # Copy ARG to func_to_host_path_result. func_convert_path_noop () { func_to_host_path_result=$1 } # end func_convert_path_noop # func_convert_path_msys_to_w32 ARG # Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic # conversion to w32 is not available inside the cwrapper. Returns result in # func_to_host_path_result. func_convert_path_msys_to_w32 () { $debug_cmd func_to_host_path_result=$1 if test -n "$1"; then # Remove leading and trailing path separator characters from ARG. MSYS # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; # and winepath ignores them completely. func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" func_to_host_path_result=$func_convert_core_msys_to_w32_result func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_msys_to_w32 # func_convert_path_cygwin_to_w32 ARG # Convert path ARG from Cygwin to w32 format. Returns result in # func_to_host_file_result. func_convert_path_cygwin_to_w32 () { $debug_cmd func_to_host_path_result=$1 if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_cygwin_to_w32 # func_convert_path_nix_to_w32 ARG # Convert path ARG from *nix to w32 format. Requires a wine environment and # a working winepath. Returns result in func_to_host_file_result. func_convert_path_nix_to_w32 () { $debug_cmd func_to_host_path_result=$1 if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" func_to_host_path_result=$func_convert_core_path_wine_to_w32_result func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_nix_to_w32 # func_convert_path_msys_to_cygwin ARG # Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. # Returns result in func_to_host_file_result. func_convert_path_msys_to_cygwin () { $debug_cmd func_to_host_path_result=$1 if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_msys_to_w32_result" func_to_host_path_result=$func_cygpath_result func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" fi } # end func_convert_path_msys_to_cygwin # func_convert_path_nix_to_cygwin ARG # Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a # a wine environment, working winepath, and LT_CYGPATH set. Returns result in # func_to_host_file_result. func_convert_path_nix_to_cygwin () { $debug_cmd func_to_host_path_result=$1 if test -n "$1"; then # Remove leading and trailing path separator characters from # ARG. msys behavior is inconsistent here, cygpath turns them # into '.;' and ';.', and winepath ignores them completely. func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" func_to_host_path_result=$func_cygpath_result func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" fi } # end func_convert_path_nix_to_cygwin # func_dll_def_p FILE # True iff FILE is a Windows DLL '.def' file. # Keep in sync with _LT_DLL_DEF_P in libtool.m4 func_dll_def_p () { $debug_cmd func_dll_def_p_tmp=`$SED -n \ -e 's/^[ ]*//' \ -e '/^\(;.*\)*$/d' \ -e 's/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p' \ -e q \ "$1"` test DEF = "$func_dll_def_p_tmp" } # func_mode_compile arg... func_mode_compile () { $debug_cmd # Get the compilation command and the source file. base_compile= srcfile=$nonopt # always keep a non-empty value in "srcfile" suppress_opt=yes suppress_output= arg_mode=normal libobj= later= pie_flag= for arg do case $arg_mode in arg ) # do not "continue". Instead, add this to base_compile lastarg=$arg arg_mode=normal ;; target ) libobj=$arg arg_mode=normal continue ;; normal ) # Accept any command-line options. case $arg in -o) test -n "$libobj" && \ func_fatal_error "you cannot specify '-o' more than once" arg_mode=target continue ;; -pie | -fpie | -fPIE) func_append pie_flag " $arg" continue ;; -shared | -static | -prefer-pic | -prefer-non-pic) func_append later " $arg" continue ;; -no-suppress) suppress_opt=no continue ;; -Xcompiler) arg_mode=arg # the next one goes into the "base_compile" arg list continue # The current "srcfile" will either be retained or ;; # replaced later. I would guess that would be a bug. -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result lastarg= save_ifs=$IFS; IFS=, for arg in $args; do IFS=$save_ifs func_append_quoted lastarg "$arg" done IFS=$save_ifs func_stripname ' ' '' "$lastarg" lastarg=$func_stripname_result # Add the arguments to base_compile. func_append base_compile " $lastarg" continue ;; *) # Accept the current argument as the source file. # The previous "srcfile" becomes the current argument. # lastarg=$srcfile srcfile=$arg ;; esac # case $arg ;; esac # case $arg_mode # Aesthetically quote the previous argument. func_append_quoted base_compile "$lastarg" done # for arg case $arg_mode in arg) func_fatal_error "you must specify an argument for -Xcompile" ;; target) func_fatal_error "you must specify a target with '-o'" ;; *) # Get the name of the library object. test -z "$libobj" && { func_basename "$srcfile" libobj=$func_basename_result } ;; esac # Recognize several different file suffixes. # If the user specifies -o file.o, it is replaced with file.lo case $libobj in *.[cCFSifmso] | \ *.ada | *.adb | *.ads | *.asm | \ *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) func_xform "$libobj" libobj=$func_xform_result ;; esac case $libobj in *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; *) func_fatal_error "cannot determine name of library object from '$libobj'" ;; esac func_infer_tag $base_compile for arg in $later; do case $arg in -shared) test yes = "$build_libtool_libs" \ || func_fatal_configuration "cannot build a shared library" build_old_libs=no continue ;; -static) build_libtool_libs=no build_old_libs=yes continue ;; -prefer-pic) pic_mode=yes continue ;; -prefer-non-pic) pic_mode=no continue ;; esac done func_quote_for_eval "$libobj" test "X$libobj" != "X$func_quote_for_eval_result" \ && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ && func_warning "libobj name '$libobj' may not contain shell special characters." func_dirname_and_basename "$obj" "/" "" objname=$func_basename_result xdir=$func_dirname_result lobj=$xdir$objdir/$objname test -z "$base_compile" && \ func_fatal_help "you must specify a compilation command" # Delete any leftover library objects. if test yes = "$build_old_libs"; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2* | cegcc*) pic_mode=default ;; esac if test no = "$pic_mode" && test pass_all != "$deplibs_check_method"; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c if test no = "$compiler_c_o"; then output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.$objext lockfile=$output_obj.lock else output_obj= need_locks=no lockfile= fi # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test yes = "$need_locks"; then until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done elif test warn = "$need_locks"; then if test -f "$lockfile"; then $ECHO "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support '-c' and '-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi func_append removelist " $output_obj" $ECHO "$srcfile" > "$lockfile" fi $opt_dry_run || $RM $removelist func_append removelist " $lockfile" trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 srcfile=$func_to_tool_file_result func_quote_for_eval "$srcfile" qsrcfile=$func_quote_for_eval_result # Only build a PIC object if we are building libtool libraries. if test yes = "$build_libtool_libs"; then # Without this assignment, base_compile gets emptied. fbsd_hideous_sh_bug=$base_compile if test no != "$pic_mode"; then command="$base_compile $qsrcfile $pic_flag" else # Don't build PIC code command="$base_compile $qsrcfile" fi func_mkdir_p "$xdir$objdir" if test -z "$output_obj"; then # Place PIC objects in $objdir func_append command " -o $lobj" fi func_show_eval_locale "$command" \ 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' if test warn = "$need_locks" && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support '-c' and '-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then func_show_eval '$MV "$output_obj" "$lobj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi # Allow error messages only from the first compilation. if test yes = "$suppress_opt"; then suppress_output=' >/dev/null 2>&1' fi fi # Only build a position-dependent object if we build old libraries. if test yes = "$build_old_libs"; then if test yes != "$pic_mode"; then # Don't build PIC code command="$base_compile $qsrcfile$pie_flag" else command="$base_compile $qsrcfile $pic_flag" fi if test yes = "$compiler_c_o"; then func_append command " -o $obj" fi # Suppress compiler output if we already did a PIC compilation. func_append command "$suppress_output" func_show_eval_locale "$command" \ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' if test warn = "$need_locks" && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support '-c' and '-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then func_show_eval '$MV "$output_obj" "$obj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi fi $opt_dry_run || { func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" # Unlock the critical section if it was locked if test no != "$need_locks"; then removelist=$lockfile $RM "$lockfile" fi } exit $EXIT_SUCCESS } $opt_help || { test compile = "$opt_mode" && func_mode_compile ${1+"$@"} } func_mode_help () { # We need to display help for each of the modes. case $opt_mode in "") # Generic help is extracted from the usage comments # at the start of this file. func_help ;; clean) $ECHO \ "Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE (typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $ECHO \ "Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -no-suppress do not suppress compiler output for multiple passes -prefer-pic try to build PIC objects only -prefer-non-pic try to build non-PIC objects only -shared do not build a '.o' file suitable for static linking -static only build a '.o' file suitable for static linking -Wc,FLAG pass FLAG directly to the compiler COMPILE-COMMAND is a command to be used in creating a 'standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix '.c' with the library object suffix, '.lo'." ;; execute) $ECHO \ "Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to '-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $ECHO \ "Usage: $progname [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the '--dry-run' option if you just want to see what would be executed." ;; install) $ECHO \ "Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the 'install' or 'cp' program. The following components of INSTALL-COMMAND are treated specially: -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $ECHO \ "Usage: $progname [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -bindir BINDIR specify path to binaries directory (for systems where libraries must be found in the PATH setting at runtime) -dlopen FILE '-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -objectlist FILE use a list of object files found in FILE to specify objects -os2dllname NAME force a short DLL name on OS/2 (no effect on other OSes) -precious-files-regex REGEX don't remove output files matching REGEX -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -shared only do dynamic linking of libtool libraries -shrext SUFFIX override the standard shared library file extension -static do not do any dynamic linking of uninstalled libtool libraries -static-libtool-libs do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] -weak LIBNAME declare that the target provides the LIBNAME interface -Wc,FLAG -Xcompiler FLAG pass linker-specific FLAG directly to the compiler -Wl,FLAG -Xlinker FLAG pass linker-specific FLAG directly to the linker -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) All other options (arguments beginning with '-') are ignored. Every other argument is treated as a filename. Files ending in '.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in '.la', then a libtool library is created, only library objects ('.lo' files) may be specified, and '-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in '.a' or '.lib', then a standard library is created using 'ar' and 'ranlib', or on Windows using 'lib'. If OUTPUT-FILE ends in '.lo' or '.$objext', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $ECHO \ "Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) func_fatal_help "invalid operation mode '$opt_mode'" ;; esac echo $ECHO "Try '$progname --help' for more information about other modes." } # Now that we've collected a possible --mode arg, show help if necessary if $opt_help; then if test : = "$opt_help"; then func_mode_help else { func_help noexit for opt_mode in compile link execute install finish uninstall clean; do func_mode_help done } | $SED -n '1p; 2,$s/^Usage:/ or: /p' { func_help noexit for opt_mode in compile link execute install finish uninstall clean; do echo func_mode_help done } | $SED '1d /^When reporting/,/^Report/{ H d } $x /information about other modes/d /more detailed .*MODE/d s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' fi exit $? fi # func_mode_execute arg... func_mode_execute () { $debug_cmd # The first argument is the command name. cmd=$nonopt test -z "$cmd" && \ func_fatal_help "you must specify a COMMAND" # Handle -dlopen flags immediately. for file in $opt_dlopen; do test -f "$file" \ || func_fatal_help "'$file' is not a file" dir= case $file in *.la) func_resolve_sysroot "$file" file=$func_resolve_sysroot_result # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "'$lib' is not a valid libtool archive" # Read the libtool library. dlname= library_names= func_source "$file" # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && \ func_warning "'$file' was not linked with '-export-dynamic'" continue fi func_dirname "$file" "" "." dir=$func_dirname_result if test -f "$dir/$objdir/$dlname"; then func_append dir "/$objdir" else if test ! -f "$dir/$dlname"; then func_fatal_error "cannot find '$dlname' in '$dir' or '$dir/$objdir'" fi fi ;; *.lo) # Just add the directory containing the .lo file. func_dirname "$file" "" "." dir=$func_dirname_result ;; *) func_warning "'-dlopen' is ignored for non-libtool libraries and objects" continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir=$absdir # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic=$magic # Check if any of the arguments is a wrapper script. args= for file do case $file in -* | *.la | *.lo ) ;; *) # Do a test to see if this is really a libtool program. if func_ltwrapper_script_p "$file"; then func_source "$file" # Transform arg to wrapped name. file=$progdir/$program elif func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" func_source "$func_ltwrapper_scriptname_result" # Transform arg to wrapped name. file=$progdir/$program fi ;; esac # Quote arguments (to preserve shell metacharacters). func_append_quoted args "$file" done if $opt_dry_run; then # Display what would be done. if test -n "$shlibpath_var"; then eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" echo "export $shlibpath_var" fi $ECHO "$cmd$args" exit $EXIT_SUCCESS else if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${save_$lt_var+set}\" = set; then $lt_var=\$save_$lt_var; export $lt_var else $lt_unset $lt_var fi" done # Now prepare to actually exec the command. exec_cmd=\$cmd$args fi } test execute = "$opt_mode" && func_mode_execute ${1+"$@"} # func_mode_finish arg... func_mode_finish () { $debug_cmd libs= libdirs= admincmds= for opt in "$nonopt" ${1+"$@"} do if test -d "$opt"; then func_append libdirs " $opt" elif test -f "$opt"; then if func_lalib_unsafe_p "$opt"; then func_append libs " $opt" else func_warning "'$opt' is not a valid libtool archive" fi else func_fatal_error "invalid argument '$opt'" fi done if test -n "$libs"; then if test -n "$lt_sysroot"; then sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" else sysroot_cmd= fi # Remove sysroot references if $opt_dry_run; then for lib in $libs; do echo "removing references to $lt_sysroot and '=' prefixes from $lib" done else tmpdir=`func_mktempdir` for lib in $libs; do $SED -e "$sysroot_cmd s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ > $tmpdir/tmp-la mv -f $tmpdir/tmp-la $lib done ${RM}r "$tmpdir" fi fi if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. func_execute_cmds "$finish_cmds" 'admincmds="$admincmds '"$cmd"'"' fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $opt_dry_run || eval "$cmds" || func_append admincmds " $cmds" fi done fi # Exit here if they wanted silent mode. $opt_quiet && exit $EXIT_SUCCESS if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then echo "----------------------------------------------------------------------" echo "Libraries have been installed in:" for libdir in $libdirs; do $ECHO " $libdir" done echo echo "If you ever happen to want to link against installed libraries" echo "in a given directory, LIBDIR, you must either use libtool, and" echo "specify the full pathname of the library, or use the '-LLIBDIR'" echo "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then echo " - add LIBDIR to the '$shlibpath_var' environment variable" echo " during execution" fi if test -n "$runpath_var"; then echo " - add LIBDIR to the '$runpath_var' environment variable" echo " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" $ECHO " - use the '$flag' linker flag" fi if test -n "$admincmds"; then $ECHO " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then echo " - have your system administrator add LIBDIR to '/etc/ld.so.conf'" fi echo echo "See any operating system documentation about shared libraries for" case $host in solaris2.[6789]|solaris2.1[0-9]) echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" echo "pages." ;; *) echo "more information, such as the ld(1) and ld.so(8) manual pages." ;; esac echo "----------------------------------------------------------------------" fi exit $EXIT_SUCCESS } test finish = "$opt_mode" && func_mode_finish ${1+"$@"} # func_mode_install arg... func_mode_install () { $debug_cmd # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$SHELL" = "$nonopt" || test /bin/sh = "$nonopt" || # Allow the use of GNU shtool's install command. case $nonopt in *shtool*) :;; *) false;; esac then # Aesthetically quote it. func_quote_for_eval "$nonopt" install_prog="$func_quote_for_eval_result " arg=$1 shift else install_prog= arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. func_quote_for_eval "$arg" func_append install_prog "$func_quote_for_eval_result" install_shared_prog=$install_prog case " $install_prog " in *[\\\ /]cp\ *) install_cp=: ;; *) install_cp=false ;; esac # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=false stripme= no_mode=: for arg do arg2= if test -n "$dest"; then func_append files " $dest" dest=$arg continue fi case $arg in -d) isdir=: ;; -f) if $install_cp; then :; else prev=$arg fi ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then if test X-m = "X$prev" && test -n "$install_override_mode"; then arg2=$install_override_mode no_mode=false fi prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. func_quote_for_eval "$arg" func_append install_prog " $func_quote_for_eval_result" if test -n "$arg2"; then func_quote_for_eval "$arg2" fi func_append install_shared_prog " $func_quote_for_eval_result" done test -z "$install_prog" && \ func_fatal_help "you must specify an install program" test -n "$prev" && \ func_fatal_help "the '$prev' option requires an argument" if test -n "$install_override_mode" && $no_mode; then if $install_cp; then :; else func_quote_for_eval "$install_override_mode" func_append install_shared_prog " -m $func_quote_for_eval_result" fi fi if test -z "$files"; then if test -z "$dest"; then func_fatal_help "no file or destination specified" else func_fatal_help "you must specify a destination" fi fi # Strip any trailing slash from the destination. func_stripname '' '/' "$dest" dest=$func_stripname_result # Check to see that the destination is a directory. test -d "$dest" && isdir=: if $isdir; then destdir=$dest destname= else func_dirname_and_basename "$dest" "" "." destdir=$func_dirname_result destname=$func_basename_result # Not a directory, so check to see that there is only one file specified. set dummy $files; shift test "$#" -gt 1 && \ func_fatal_help "'$dest' is not a directory" fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) func_fatal_help "'$destdir' must be an absolute directory name" ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic=$magic staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. func_append staticlibs " $file" ;; *.la) func_resolve_sysroot "$file" file=$func_resolve_sysroot_result # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "'$file' is not a valid libtool archive" library_names= old_library= relink_command= func_source "$file" # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) func_append current_libdirs " $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) func_append future_libdirs " $libdir" ;; esac fi func_dirname "$file" "/" "" dir=$func_dirname_result func_append dir "$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. test "$inst_prefix_dir" = "$destdir" && \ func_fatal_error "error: cannot install '$file' to a directory not ending in $libdir" if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` fi func_warning "relinking '$file'" func_show_eval "$relink_command" \ 'func_fatal_error "error: relink '\''$file'\'' with the above command before installing it"' fi # See the names of the shared library. set dummy $library_names; shift if test -n "$1"; then realname=$1 shift srcname=$realname test -n "$relink_command" && srcname=${realname}T # Install the shared library and build the symlinks. func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ 'exit $?' tstripme=$stripme case $host_os in cygwin* | mingw* | pw32* | cegcc*) case $realname in *.dll.a) tstripme= ;; esac ;; os2*) case $realname in *_dll.a) tstripme= ;; esac ;; esac if test -n "$tstripme" && test -n "$striplib"; then func_show_eval "$striplib $destdir/$realname" 'exit $?' fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. # Try 'ln -sf' first, because the 'ln' binary might depend on # the symlink we replace! Solaris /bin/ln does not understand -f, # so we also need to try rm && ln -s. for linkname do test "$linkname" != "$realname" \ && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" done fi # Do each command in the postinstall commands. lib=$destdir/$realname func_execute_cmds "$postinstall_cmds" 'exit $?' fi # Install the pseudo-library for information purposes. func_basename "$file" name=$func_basename_result instname=$dir/${name}i func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' # Maybe install the static library, too. test -n "$old_library" && func_append staticlibs " $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile=$destdir/$destname else func_basename "$file" destfile=$func_basename_result destfile=$destdir/$destfile fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) func_lo2o "$destfile" staticdest=$func_lo2o_result ;; *.$objext) staticdest=$destfile destfile= ;; *) func_fatal_help "cannot copy a libtool object to '$destfile'" ;; esac # Install the libtool object if requested. test -n "$destfile" && \ func_show_eval "$install_prog $file $destfile" 'exit $?' # Install the old object if enabled. if test yes = "$build_old_libs"; then # Deduce the name of the old-style object file. func_lo2o "$file" staticobj=$func_lo2o_result func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' fi exit $EXIT_SUCCESS ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile=$destdir/$destname else func_basename "$file" destfile=$func_basename_result destfile=$destdir/$destfile fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install stripped_ext= case $file in *.exe) if test ! -f "$file"; then func_stripname '' '.exe' "$file" file=$func_stripname_result stripped_ext=.exe fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin* | *mingw*) if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" wrapper=$func_ltwrapper_scriptname_result else func_stripname '' '.exe' "$file" wrapper=$func_stripname_result fi ;; *) wrapper=$file ;; esac if func_ltwrapper_script_p "$wrapper"; then notinst_deplibs= relink_command= func_source "$wrapper" # Check the variables that should have been set. test -z "$generated_by_libtool_version" && \ func_fatal_error "invalid libtool wrapper script '$wrapper'" finalize=: for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then func_source "$lib" fi libfile=$libdir/`$ECHO "$lib" | $SED 's%^.*/%%g'` if test -n "$libdir" && test ! -f "$libfile"; then func_warning "'$lib' has not been installed in '$libdir'" finalize=false fi done relink_command= func_source "$wrapper" outputname= if test no = "$fast_install" && test -n "$relink_command"; then $opt_dry_run || { if $finalize; then tmpdir=`func_mktempdir` func_basename "$file$stripped_ext" file=$func_basename_result outputname=$tmpdir/$file # Replace the output file specification. relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` $opt_quiet || { func_quote_for_expand "$relink_command" eval "func_echo $func_quote_for_expand_result" } if eval "$relink_command"; then : else func_error "error: relink '$file' with the above command before installing it" $opt_dry_run || ${RM}r "$tmpdir" continue fi file=$outputname else func_warning "cannot relink '$file'" fi } else # Install the binary that we compiled earlier. file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyway case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) func_stripname '' '.exe' "$destfile" destfile=$func_stripname_result ;; esac ;; esac func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' $opt_dry_run || if test -n "$outputname"; then ${RM}r "$tmpdir" fi ;; esac done for file in $staticlibs; do func_basename "$file" name=$func_basename_result # Set up the ranlib parameters. oldlib=$destdir/$name func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 tool_oldlib=$func_to_tool_file_result func_show_eval "$install_prog \$file \$oldlib" 'exit $?' if test -n "$stripme" && test -n "$old_striplib"; then func_show_eval "$old_striplib $tool_oldlib" 'exit $?' fi # Do each command in the postinstall commands. func_execute_cmds "$old_postinstall_cmds" 'exit $?' done test -n "$future_libdirs" && \ func_warning "remember to run '$progname --finish$future_libdirs'" if test -n "$current_libdirs"; then # Maybe just do a dry run. $opt_dry_run && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL "$progpath" $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi } test install = "$opt_mode" && func_mode_install ${1+"$@"} # func_generate_dlsyms outputname originator pic_p # Extract symbols from dlprefiles and create ${outputname}S.o with # a dlpreopen symbol table. func_generate_dlsyms () { $debug_cmd my_outputname=$1 my_originator=$2 my_pic_p=${3-false} my_prefix=`$ECHO "$my_originator" | $SED 's%[^a-zA-Z0-9]%_%g'` my_dlsyms= if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then if test -n "$NM" && test -n "$global_symbol_pipe"; then my_dlsyms=${my_outputname}S.c else func_error "not configured to extract global symbols from dlpreopened files" fi fi if test -n "$my_dlsyms"; then case $my_dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist=$output_objdir/$my_outputname.nm func_show_eval "$RM $nlist ${nlist}S ${nlist}T" # Parse the name list into a source file. func_verbose "creating $output_objdir/$my_dlsyms" $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ /* $my_dlsyms - symbol resolution table for '$my_outputname' dlsym emulation. */ /* Generated by $PROGRAM (GNU $PACKAGE) $VERSION */ #ifdef __cplusplus extern \"C\" { #endif #if defined __GNUC__ && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) #pragma GCC diagnostic ignored \"-Wstrict-prototypes\" #endif /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE /* DATA imports from DLLs on WIN32 can't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST #elif defined __osf__ /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else # define LT_DLSYM_CONST const #endif #define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) /* External symbol declarations for the compiler. */\ " if test yes = "$dlself"; then func_verbose "generating symbol list for '$output'" $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` for progfile in $progfiles; do func_to_tool_file "$progfile" func_convert_file_msys_to_w32 func_verbose "extracting global C symbols from '$func_to_tool_file_result'" $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $opt_dry_run || { eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi if test -n "$export_symbols_regex"; then $opt_dry_run || { eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols=$output_objdir/$outputname.exp $opt_dry_run || { $RM $export_symbols eval "$SED -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; esac } else $opt_dry_run || { eval "$SED -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; esac } fi fi for dlprefile in $dlprefiles; do func_verbose "extracting global C symbols from '$dlprefile'" func_basename "$dlprefile" name=$func_basename_result case $host in *cygwin* | *mingw* | *cegcc* ) # if an import library, we need to obtain dlname if func_win32_import_lib_p "$dlprefile"; then func_tr_sh "$dlprefile" eval "curr_lafile=\$libfile_$func_tr_sh_result" dlprefile_dlbasename= if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then # Use subshell, to avoid clobbering current variable values dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` if test -n "$dlprefile_dlname"; then func_basename "$dlprefile_dlname" dlprefile_dlbasename=$func_basename_result else # no lafile. user explicitly requested -dlpreopen . $sharedlib_from_linklib_cmd "$dlprefile" dlprefile_dlbasename=$sharedlib_from_linklib_result fi fi $opt_dry_run || { if test -n "$dlprefile_dlbasename"; then eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' else func_warning "Could not compute DLL name from $name" eval '$ECHO ": $name " >> "$nlist"' fi func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" } else # not an import lib $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" } fi ;; *) $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" } ;; esac done $opt_dry_run || { # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $MV "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if $GREP -v "^: " < "$nlist" | if sort -k 3 /dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else $GREP -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' else echo '/* NONE */' >> "$output_objdir/$my_dlsyms" fi func_show_eval '$RM "${nlist}I"' if test -n "$global_symbol_to_import"; then eval "$global_symbol_to_import"' < "$nlist"S > "$nlist"I' fi echo >> "$output_objdir/$my_dlsyms" "\ /* The mapping between symbol names and symbols. */ typedef struct { const char *name; void *address; } lt_dlsymlist; extern LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[];\ " if test -s "$nlist"I; then echo >> "$output_objdir/$my_dlsyms" "\ static void lt_syminit(void) { LT_DLSYM_CONST lt_dlsymlist *symbol = lt_${my_prefix}_LTX_preloaded_symbols; for (; symbol->name; ++symbol) {" $SED 's/.*/ if (STREQ (symbol->name, \"&\")) symbol->address = (void *) \&&;/' < "$nlist"I >> "$output_objdir/$my_dlsyms" echo >> "$output_objdir/$my_dlsyms" "\ } }" fi echo >> "$output_objdir/$my_dlsyms" "\ LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[] = { {\"$my_originator\", (void *) 0}," if test -s "$nlist"I; then echo >> "$output_objdir/$my_dlsyms" "\ {\"@INIT@\", (void *) <_syminit}," fi case $need_lib_prefix in no) eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; *) eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; esac echo >> "$output_objdir/$my_dlsyms" "\ {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_${my_prefix}_LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " } # !$opt_dry_run pic_flag_for_symtable= case "$compile_command " in *" -static "*) ;; *) case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; *-*-hpux*) pic_flag_for_symtable=" $pic_flag" ;; *) $my_pic_p && pic_flag_for_symtable=" $pic_flag" ;; esac ;; esac symtab_cflags= for arg in $LTCFLAGS; do case $arg in -pie | -fpie | -fPIE) ;; *) func_append symtab_cflags " $arg" ;; esac done # Now compile the dynamic symbol file. func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' # Clean up the generated files. func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T" "${nlist}I"' # Transform the symbol file into the correct name. symfileobj=$output_objdir/${my_outputname}S.$objext case $host in *cygwin* | *mingw* | *cegcc* ) if test -f "$output_objdir/$my_outputname.def"; then compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` else compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` fi ;; *) compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` ;; esac ;; *) func_fatal_error "unknown suffix for '$my_dlsyms'" ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` fi } # func_cygming_gnu_implib_p ARG # This predicate returns with zero status (TRUE) if # ARG is a GNU/binutils-style import library. Returns # with nonzero status (FALSE) otherwise. func_cygming_gnu_implib_p () { $debug_cmd func_to_tool_file "$1" func_convert_file_msys_to_w32 func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` test -n "$func_cygming_gnu_implib_tmp" } # func_cygming_ms_implib_p ARG # This predicate returns with zero status (TRUE) if # ARG is an MS-style import library. Returns # with nonzero status (FALSE) otherwise. func_cygming_ms_implib_p () { $debug_cmd func_to_tool_file "$1" func_convert_file_msys_to_w32 func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` test -n "$func_cygming_ms_implib_tmp" } # func_win32_libid arg # return the library type of file 'arg' # # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. # Despite the name, also deal with 64 bit binaries. func_win32_libid () { $debug_cmd win32_libid_type=unknown win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then case $nm_interface in "MS dumpbin") if func_cygming_ms_implib_p "$1" || func_cygming_gnu_implib_p "$1" then win32_nmres=import else win32_nmres= fi ;; *) func_to_tool_file "$1" func_convert_file_msys_to_w32 win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | $SED -n -e ' 1,100{ / I /{ s|.*|import| p q } }'` ;; esac case $win32_nmres in import*) win32_libid_type="x86 archive import";; *) win32_libid_type="x86 archive static";; esac fi ;; *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... case $win32_fileres in *MS\ Windows\ PE\ Intel*) win32_libid_type="x86 DLL" ;; esac ;; esac $ECHO "$win32_libid_type" } # func_cygming_dll_for_implib ARG # # Platform-specific function to extract the # name of the DLL associated with the specified # import library ARG. # Invoked by eval'ing the libtool variable # $sharedlib_from_linklib_cmd # Result is available in the variable # $sharedlib_from_linklib_result func_cygming_dll_for_implib () { $debug_cmd sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` } # func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs # # The is the core of a fallback implementation of a # platform-specific function to extract the name of the # DLL associated with the specified import library LIBNAME. # # SECTION_NAME is either .idata$6 or .idata$7, depending # on the platform and compiler that created the implib. # # Echos the name of the DLL associated with the # specified import library. func_cygming_dll_for_implib_fallback_core () { $debug_cmd match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` $OBJDUMP -s --section "$1" "$2" 2>/dev/null | $SED '/^Contents of section '"$match_literal"':/{ # Place marker at beginning of archive member dllname section s/.*/====MARK====/ p d } # These lines can sometimes be longer than 43 characters, but # are always uninteresting /:[ ]*file format pe[i]\{,1\}-/d /^In archive [^:]*:/d # Ensure marker is printed /^====MARK====/p # Remove all lines with less than 43 characters /^.\{43\}/!d # From remaining lines, remove first 43 characters s/^.\{43\}//' | $SED -n ' # Join marker and all lines until next marker into a single line /^====MARK====/ b para H $ b para b :para x s/\n//g # Remove the marker s/^====MARK====// # Remove trailing dots and whitespace s/[\. \t]*$// # Print /./p' | # we now have a list, one entry per line, of the stringified # contents of the appropriate section of all members of the # archive that possess that section. Heuristic: eliminate # all those that have a first or second character that is # a '.' (that is, objdump's representation of an unprintable # character.) This should work for all archives with less than # 0x302f exports -- but will fail for DLLs whose name actually # begins with a literal '.' or a single character followed by # a '.'. # # Of those that remain, print the first one. $SED -e '/^\./d;/^.\./d;q' } # func_cygming_dll_for_implib_fallback ARG # Platform-specific function to extract the # name of the DLL associated with the specified # import library ARG. # # This fallback implementation is for use when $DLLTOOL # does not support the --identify-strict option. # Invoked by eval'ing the libtool variable # $sharedlib_from_linklib_cmd # Result is available in the variable # $sharedlib_from_linklib_result func_cygming_dll_for_implib_fallback () { $debug_cmd if func_cygming_gnu_implib_p "$1"; then # binutils import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` elif func_cygming_ms_implib_p "$1"; then # ms-generated import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` else # unknown sharedlib_from_linklib_result= fi } # func_extract_an_archive dir oldlib func_extract_an_archive () { $debug_cmd f_ex_an_ar_dir=$1; shift f_ex_an_ar_oldlib=$1 if test yes = "$lock_old_archive_extraction"; then lockfile=$f_ex_an_ar_oldlib.lock until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done fi func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ 'stat=$?; rm -f "$lockfile"; exit $stat' if test yes = "$lock_old_archive_extraction"; then $opt_dry_run || rm -f "$lockfile" fi if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" fi } # func_extract_archives gentop oldlib ... func_extract_archives () { $debug_cmd my_gentop=$1; shift my_oldlibs=${1+"$@"} my_oldobjs= my_xlib= my_xabs= my_xdir= for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in [\\/]* | [A-Za-z]:[\\/]*) my_xabs=$my_xlib ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac func_basename "$my_xlib" my_xlib=$func_basename_result my_xlib_u=$my_xlib while :; do case " $extracted_archives " in *" $my_xlib_u "*) func_arith $extracted_serial + 1 extracted_serial=$func_arith_result my_xlib_u=lt$extracted_serial-$my_xlib ;; *) break ;; esac done extracted_archives="$extracted_archives $my_xlib_u" my_xdir=$my_gentop/$my_xlib_u func_mkdir_p "$my_xdir" case $host in *-darwin*) func_verbose "Extracting $my_xabs" # Do not bother doing anything if just a dry run $opt_dry_run || { darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` func_basename "$darwin_archive" darwin_base_archive=$func_basename_result darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` if test -n "$darwin_arches"; then darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" for darwin_arch in $darwin_arches; do func_mkdir_p "unfat-$$/$darwin_base_archive-$darwin_arch" $LIPO -thin $darwin_arch -output "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" "$darwin_archive" cd "unfat-$$/$darwin_base_archive-$darwin_arch" func_extract_an_archive "`pwd`" "$darwin_base_archive" cd "$darwin_curdir" $RM "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" done # $darwin_arches ## Okay now we've a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$sed_basename" | sort -u` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` $LIPO -create -output "$darwin_file" $darwin_files done # $darwin_filelist $RM -rf unfat-$$ cd "$darwin_orig_dir" else cd $darwin_orig_dir func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches } # !$opt_dry_run ;; *) func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` done func_extract_archives_result=$my_oldobjs } # func_emit_wrapper [arg=no] # # Emit a libtool wrapper script on stdout. # Don't directly open a file because we may want to # incorporate the script contents within a cygwin/mingw # wrapper executable. Must ONLY be called from within # func_mode_link because it depends on a number of variables # set therein. # # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR # variable will take. If 'yes', then the emitted script # will assume that the directory where it is stored is # the $objdir directory. This is a cygwin/mingw-specific # behavior. func_emit_wrapper () { func_emit_wrapper_arg1=${1-no} $ECHO "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM (GNU $PACKAGE) $VERSION # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. sed_quote_subst='$sed_quote_subst' # Be Bourne compatible if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variables: generated_by_libtool_version='$macro_version' notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$ECHO are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then file=\"\$0\"" qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` $ECHO "\ # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$1 _LTECHO_EOF' } ECHO=\"$qECHO\" fi # Very basic option parsing. These options are (a) specific to # the libtool wrapper, (b) are identical between the wrapper # /script/ and the wrapper /executable/ that is used only on # windows platforms, and (c) all begin with the string "--lt-" # (application programs are unlikely to have options that match # this pattern). # # There are only two supported options: --lt-debug and # --lt-dump-script. There is, deliberately, no --lt-help. # # The first argument to this parsing function should be the # script's $0 value, followed by "$@". lt_option_debug= func_parse_lt_options () { lt_script_arg0=\$0 shift for lt_opt do case \"\$lt_opt\" in --lt-debug) lt_option_debug=1 ;; --lt-dump-script) lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` cat \"\$lt_dump_D/\$lt_dump_F\" exit 0 ;; --lt-*) \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 exit 1 ;; esac done # Print the debug banner immediately: if test -n \"\$lt_option_debug\"; then echo \"$outputname:$output:\$LINENO: libtool wrapper (GNU $PACKAGE) $VERSION\" 1>&2 fi } # Used when --lt-debug. Prints its arguments to stdout # (redirection is the responsibility of the caller) func_lt_dump_args () { lt_dump_args_N=1; for lt_arg do \$ECHO \"$outputname:$output:\$LINENO: newargv[\$lt_dump_args_N]: \$lt_arg\" lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` done } # Core function for launching the target application func_exec_program_core () { " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2* | *-cegcc*) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir\\\\\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir/\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $ECHO "\ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 exit 1 } # A function to encapsulate launching the target application # Strips options in the --lt-* namespace from \$@ and # launches target application with the remaining arguments. func_exec_program () { case \" \$* \" in *\\ --lt-*) for lt_wr_arg do case \$lt_wr_arg in --lt-*) ;; *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; esac shift done ;; esac func_exec_program_core \${1+\"\$@\"} } # Parse options func_parse_lt_options \"\$0\" \${1+\"\$@\"} # Find the directory that this script lives in. thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` done # Usually 'no', except on cygwin/mingw when embedded into # the cwrapper. WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then # special case for '.' if test \"\$thisdir\" = \".\"; then thisdir=\`pwd\` fi # remove .libs from thisdir case \"\$thisdir\" in *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; $objdir ) thisdir=. ;; esac fi # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test yes = "$fast_install"; then $ECHO "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | $SED 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $MKDIR \"\$progdir\" else $RM \"\$progdir/\$file\" fi" $ECHO "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else \$ECHO \"\$relink_command_output\" >&2 $RM \"\$progdir/\$file\" exit 1 fi fi $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $RM \"\$progdir/\$program\"; $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } $RM \"\$progdir/\$file\" fi" else $ECHO "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $ECHO "\ if test -f \"\$progdir/\$program\"; then" # fixup the dll searchpath if we need to. # # Fix the DLL searchpath if we need to. Do this before prepending # to shlibpath, because on Windows, both are PATH and uninstalled # libraries must come first. if test -n "$dllsearchpath"; then $ECHO "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi # Export our shlibpath_var if we have one. if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $ECHO "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` export $shlibpath_var " fi $ECHO "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. func_exec_program \${1+\"\$@\"} fi else # The program doesn't exist. \$ECHO \"\$0: error: '\$progdir/\$program' does not exist\" 1>&2 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 exit 1 fi fi\ " } # func_emit_cwrapperexe_src # emit the source code for a wrapper executable on stdout # Must ONLY be called from within func_mode_link because # it depends on a number of variable set therein. func_emit_cwrapperexe_src () { cat < #include #ifdef _MSC_VER # include # include # include #else # include # include # ifdef __CYGWIN__ # include # endif #endif #include #include #include #include #include #include #include #include #define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) /* declarations of non-ANSI functions */ #if defined __MINGW32__ # ifdef __STRICT_ANSI__ int _putenv (const char *); # endif #elif defined __CYGWIN__ # ifdef __STRICT_ANSI__ char *realpath (const char *, char *); int putenv (char *); int setenv (const char *, const char *, int); # endif /* #elif defined other_platform || defined ... */ #endif /* portability defines, excluding path handling macros */ #if defined _MSC_VER # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv # define S_IXUSR _S_IEXEC #elif defined __MINGW32__ # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv #elif defined __CYGWIN__ # define HAVE_SETENV # define FOPEN_WB "wb" /* #elif defined other platforms ... */ #endif #if defined PATH_MAX # define LT_PATHMAX PATH_MAX #elif defined MAXPATHLEN # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef S_IXOTH # define S_IXOTH 0 #endif #ifndef S_IXGRP # define S_IXGRP 0 #endif /* path handling portability macros */ #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' #endif #if defined _WIN32 || defined __MSDOS__ || defined __DJGPP__ || \ defined __OS2__ # define HAVE_DOS_BASED_FILE_SYSTEM # define FOPEN_WB "wb" # ifndef DIR_SEPARATOR_2 # define DIR_SEPARATOR_2 '\\' # endif # ifndef PATH_SEPARATOR_2 # define PATH_SEPARATOR_2 ';' # endif #endif #ifndef DIR_SEPARATOR_2 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) #else /* DIR_SEPARATOR_2 */ # define IS_DIR_SEPARATOR(ch) \ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ #ifndef PATH_SEPARATOR_2 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) #else /* PATH_SEPARATOR_2 */ # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ #ifndef FOPEN_WB # define FOPEN_WB "w" #endif #ifndef _O_BINARY # define _O_BINARY 0 #endif #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free (stale); stale = 0; } \ } while (0) #if defined LT_DEBUGWRAPPER static int lt_debug = 1; #else static int lt_debug = 0; #endif const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ void *xmalloc (size_t num); char *xstrdup (const char *string); const char *base_name (const char *name); char *find_executable (const char *wrapper); char *chase_symlinks (const char *pathspec); int make_executable (const char *path); int check_executable (const char *path); char *strendzap (char *str, const char *pat); void lt_debugprintf (const char *file, int line, const char *fmt, ...); void lt_fatal (const char *file, int line, const char *message, ...); static const char *nonnull (const char *s); static const char *nonempty (const char *s); void lt_setenv (const char *name, const char *value); char *lt_extend_str (const char *orig_value, const char *add, int to_end); void lt_update_exe_path (const char *name, const char *value); void lt_update_lib_path (const char *name, const char *value); char **prepare_spawn (char **argv); void lt_dump_script (FILE *f); EOF cat <= 0) && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) return 1; else return 0; } int make_executable (const char *path) { int rval = 0; struct stat st; lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", nonempty (path)); if ((!path) || (!*path)) return 0; if (stat (path, &st) >= 0) { rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); } return rval; } /* Searches for the full path of the wrapper. Returns newly allocated full path name if found, NULL otherwise Does not chase symlinks, even on platforms that support them. */ char * find_executable (const char *wrapper) { int has_slash = 0; const char *p; const char *p_next; /* static buffer for getcwd */ char tmp[LT_PATHMAX + 1]; size_t tmp_len; char *concat_name; lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", nonempty (wrapper)); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; /* Absolute path? */ #if defined HAVE_DOS_BASED_FILE_SYSTEM if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } else { #endif if (IS_DIR_SEPARATOR (wrapper[0])) { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } #if defined HAVE_DOS_BASED_FILE_SYSTEM } #endif for (p = wrapper; *p; p++) if (*p == '/') { has_slash = 1; break; } if (!has_slash) { /* no slashes; search PATH */ const char *path = getenv ("PATH"); if (path != NULL) { for (p = path; *p; p = p_next) { const char *q; size_t p_len; for (q = p; *q; q++) if (IS_PATH_SEPARATOR (*q)) break; p_len = (size_t) (q - p); p_next = (*q == '\0' ? q : q + 1); if (p_len == 0) { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); } else { concat_name = XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, p, p_len); concat_name[p_len] = '/'; strcpy (concat_name + p_len + 1, wrapper); } if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } } /* not found in PATH; assume curdir */ } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); return NULL; } char * chase_symlinks (const char *pathspec) { #ifndef S_ISLNK return xstrdup (pathspec); #else char buf[LT_PATHMAX]; struct stat s; char *tmp_pathspec = xstrdup (pathspec); char *p; int has_symlinks = 0; while (strlen (tmp_pathspec) && !has_symlinks) { lt_debugprintf (__FILE__, __LINE__, "checking path component for symlinks: %s\n", tmp_pathspec); if (lstat (tmp_pathspec, &s) == 0) { if (S_ISLNK (s.st_mode) != 0) { has_symlinks = 1; break; } /* search backwards for last DIR_SEPARATOR */ p = tmp_pathspec + strlen (tmp_pathspec) - 1; while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) p--; if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) { /* no more DIR_SEPARATORS left */ break; } *p = '\0'; } else { lt_fatal (__FILE__, __LINE__, "error accessing file \"%s\": %s", tmp_pathspec, nonnull (strerror (errno))); } } XFREE (tmp_pathspec); if (!has_symlinks) { return xstrdup (pathspec); } tmp_pathspec = realpath (pathspec, buf); if (tmp_pathspec == 0) { lt_fatal (__FILE__, __LINE__, "could not follow symlinks for %s", pathspec); } return xstrdup (tmp_pathspec); #endif } char * strendzap (char *str, const char *pat) { size_t len, patlen; assert (str != NULL); assert (pat != NULL); len = strlen (str); patlen = strlen (pat); if (patlen <= len) { str += len - patlen; if (STREQ (str, pat)) *str = '\0'; } return str; } void lt_debugprintf (const char *file, int line, const char *fmt, ...) { va_list args; if (lt_debug) { (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); va_start (args, fmt); (void) vfprintf (stderr, fmt, args); va_end (args); } } static void lt_error_core (int exit_status, const char *file, int line, const char *mode, const char *message, va_list ap) { fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *file, int line, const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); va_end (ap); } static const char * nonnull (const char *s) { return s ? s : "(null)"; } static const char * nonempty (const char *s) { return (s && !*s) ? "(empty)" : nonnull (s); } void lt_setenv (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_setenv) setting '%s' to '%s'\n", nonnull (name), nonnull (value)); { #ifdef HAVE_SETENV /* always make a copy, for consistency with !HAVE_SETENV */ char *str = xstrdup (value); setenv (name, str, 1); #else size_t len = strlen (name) + 1 + strlen (value) + 1; char *str = XMALLOC (char, len); sprintf (str, "%s=%s", name, value); if (putenv (str) != EXIT_SUCCESS) { XFREE (str); } #endif } } char * lt_extend_str (const char *orig_value, const char *add, int to_end) { char *new_value; if (orig_value && *orig_value) { size_t orig_value_len = strlen (orig_value); size_t add_len = strlen (add); new_value = XMALLOC (char, add_len + orig_value_len + 1); if (to_end) { strcpy (new_value, orig_value); strcpy (new_value + orig_value_len, add); } else { strcpy (new_value, add); strcpy (new_value + add_len, orig_value); } } else { new_value = xstrdup (add); } return new_value; } void lt_update_exe_path (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (value)); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); /* some systems can't cope with a ':'-terminated path #' */ size_t len = strlen (new_value); while ((len > 0) && IS_PATH_SEPARATOR (new_value[len-1])) { new_value[--len] = '\0'; } lt_setenv (name, new_value); XFREE (new_value); } } void lt_update_lib_path (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (value)); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); } } EOF case $host_os in mingw*) cat <<"EOF" /* Prepares an argument vector before calling spawn(). Note that spawn() does not by itself call the command interpreter (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); GetVersionEx(&v); v.dwPlatformId == VER_PLATFORM_WIN32_NT; }) ? "cmd.exe" : "command.com"). Instead it simply concatenates the arguments, separated by ' ', and calls CreateProcess(). We must quote the arguments since Win32 CreateProcess() interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a special way: - Space and tab are interpreted as delimiters. They are not treated as delimiters if they are surrounded by double quotes: "...". - Unescaped double quotes are removed from the input. Their only effect is that within double quotes, space and tab are treated like normal characters. - Backslashes not followed by double quotes are not special. - But 2*n+1 backslashes followed by a double quote become n backslashes followed by a double quote (n >= 0): \" -> " \\\" -> \" \\\\\" -> \\" */ #define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" #define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" char ** prepare_spawn (char **argv) { size_t argc; char **new_argv; size_t i; /* Count number of arguments. */ for (argc = 0; argv[argc] != NULL; argc++) ; /* Allocate new argument vector. */ new_argv = XMALLOC (char *, argc + 1); /* Put quoted arguments into the new argument vector. */ for (i = 0; i < argc; i++) { const char *string = argv[i]; if (string[0] == '\0') new_argv[i] = xstrdup ("\"\""); else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) { int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); size_t length; unsigned int backslashes; const char *s; char *quoted_string; char *p; length = 0; backslashes = 0; if (quote_around) length++; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') length += backslashes + 1; length++; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) length += backslashes + 1; quoted_string = XMALLOC (char, length + 1); p = quoted_string; backslashes = 0; if (quote_around) *p++ = '"'; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') { unsigned int j; for (j = backslashes + 1; j > 0; j--) *p++ = '\\'; } *p++ = c; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) { unsigned int j; for (j = backslashes; j > 0; j--) *p++ = '\\'; *p++ = '"'; } *p = '\0'; new_argv[i] = quoted_string; } else new_argv[i] = (char *) string; } new_argv[argc] = NULL; return new_argv; } EOF ;; esac cat <<"EOF" void lt_dump_script (FILE* f) { EOF func_emit_wrapper yes | $SED -n -e ' s/^\(.\{79\}\)\(..*\)/\1\ \2/ h s/\([\\"]\)/\\\1/g s/$/\\n/ s/\([^\n]*\).*/ fputs ("\1", f);/p g D' cat <<"EOF" } EOF } # end: func_emit_cwrapperexe_src # func_win32_import_lib_p ARG # True if ARG is an import lib, as indicated by $file_magic_cmd func_win32_import_lib_p () { $debug_cmd case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in *import*) : ;; *) false ;; esac } # func_suncc_cstd_abi # !!ONLY CALL THIS FOR SUN CC AFTER $compile_command IS FULLY EXPANDED!! # Several compiler flags select an ABI that is incompatible with the # Cstd library. Avoid specifying it if any are in CXXFLAGS. func_suncc_cstd_abi () { $debug_cmd case " $compile_command " in *" -compat=g "*|*\ -std=c++[0-9][0-9]\ *|*" -library=stdcxx4 "*|*" -library=stlport4 "*) suncc_use_cstd_abi=no ;; *) suncc_use_cstd_abi=yes ;; esac } # func_mode_link arg... func_mode_link () { $debug_cmd case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) # It is impossible to link a dll without this setting, and # we shouldn't force the makefile maintainer to figure out # what system we are compiling for in order to pass an extra # flag for every libtool invocation. # allow_undefined=no # FIXME: Unfortunately, there are problems with the above when trying # to make a dll that has undefined symbols, in which case not # even a static library is built. For now, we need to specify # -no-undefined on the libtool link line when we can be certain # that all symbols are satisfied, otherwise we get a static library. allow_undefined=yes ;; *) allow_undefined=yes ;; esac libtool_args=$nonopt base_compile="$nonopt $@" compile_command=$nonopt finalize_command=$nonopt compile_rpath= finalize_rpath= compile_shlibpath= finalize_shlibpath= convenience= old_convenience= deplibs= old_deplibs= compiler_flags= linker_flags= dllsearchpath= lib_search_path=`pwd` inst_prefix_dir= new_inherited_linker_flags= avoid_version=no bindir= dlfiles= dlprefiles= dlself=no export_dynamic=no export_symbols= export_symbols_regex= generated= libobjs= ltlibs= module=no no_install=no objs= os2dllname= non_pic_objects= precious_files_regex= prefer_static_libs=no preload=false prev= prevarg= release= rpath= xrpath= perm_rpath= temp_rpath= thread_safe=no vinfo= vinfo_number=no weak_libs= single_module=$wl-single_module func_infer_tag $base_compile # We need to know -static, to get the right output filenames. for arg do case $arg in -shared) test yes != "$build_libtool_libs" \ && func_fatal_configuration "cannot build a shared library" build_old_libs=no break ;; -all-static | -static | -static-libtool-libs) case $arg in -all-static) if test yes = "$build_libtool_libs" && test -z "$link_static_flag"; then func_warning "complete static linking is impossible in this configuration" fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; -static) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=built ;; -static-libtool-libs) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; esac build_libtool_libs=no build_old_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg=$1 shift func_quote_for_eval "$arg" qarg=$func_quote_for_eval_unquoted_result func_append libtool_args " $func_quote_for_eval_result" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) func_append compile_command " @OUTPUT@" func_append finalize_command " @OUTPUT@" ;; esac case $prev in bindir) bindir=$arg prev= continue ;; dlfiles|dlprefiles) $preload || { # Add the symbol object into the linking commands. func_append compile_command " @SYMFILE@" func_append finalize_command " @SYMFILE@" preload=: } case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test no = "$dlself"; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test dlprefiles = "$prev"; then dlself=yes elif test dlfiles = "$prev" && test yes != "$dlopen_self"; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test dlfiles = "$prev"; then func_append dlfiles " $arg" else func_append dlprefiles " $arg" fi prev= continue ;; esac ;; expsyms) export_symbols=$arg test -f "$arg" \ || func_fatal_error "symbol file '$arg' does not exist" prev= continue ;; expsyms_regex) export_symbols_regex=$arg prev= continue ;; framework) case $host in *-*-darwin*) case "$deplibs " in *" $qarg.ltframework "*) ;; *) func_append deplibs " $qarg.ltframework" # this is fixed later ;; esac ;; esac prev= continue ;; inst_prefix) inst_prefix_dir=$arg prev= continue ;; mllvm) # Clang does not use LLVM to link, so we can simply discard any # '-mllvm $arg' options when doing the link step. prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat "$save_arg"` do # func_append moreargs " $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test none = "$pic_object" && test none = "$non_pic_object"; then func_fatal_error "cannot find name of object for '$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir=$func_dirname_result if test none != "$pic_object"; then # Prepend the subdirectory the object is found in. pic_object=$xdir$pic_object if test dlfiles = "$prev"; then if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then func_append dlfiles " $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test dlprefiles = "$prev"; then # Preload the old-style object. func_append dlprefiles " $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg=$pic_object fi # Non-PIC object. if test none != "$non_pic_object"; then # Prepend the subdirectory the object is found in. non_pic_object=$xdir$non_pic_object # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test none = "$pic_object"; then arg=$non_pic_object fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object=$pic_object func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir=$func_dirname_result func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "'$arg' is not a valid libtool object" fi fi done else func_fatal_error "link input file '$arg' does not exist" fi arg=$save_arg prev= continue ;; os2dllname) os2dllname=$arg prev= continue ;; precious_regex) precious_files_regex=$arg prev= continue ;; release) release=-$arg prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac if test rpath = "$prev"; then case "$rpath " in *" $arg "*) ;; *) func_append rpath " $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) func_append xrpath " $arg" ;; esac fi prev= continue ;; shrext) shrext_cmds=$arg prev= continue ;; weak) func_append weak_libs " $arg" prev= continue ;; xcclinker) func_append linker_flags " $qarg" func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xcompiler) func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xlinker) func_append linker_flags " $qarg" func_append compiler_flags " $wl$qarg" prev= func_append compile_command " $wl$qarg" func_append finalize_command " $wl$qarg" continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n "$prev" prevarg=$arg case $arg in -all-static) if test -n "$link_static_flag"; then # See comment for -static flag below, for more details. func_append compile_command " $link_static_flag" func_append finalize_command " $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. func_fatal_error "'-allow-undefined' must not be used because it is the default" ;; -avoid-version) avoid_version=yes continue ;; -bindir) prev=bindir continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then func_fatal_error "more than one -exported-symbols argument is not allowed" fi if test X-export-symbols = "X$arg"; then prev=expsyms else prev=expsyms_regex fi continue ;; -framework) prev=framework continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in no/*-*-irix* | /*-*-irix*) func_append compile_command " $arg" func_append finalize_command " $arg" ;; esac continue ;; -L*) func_stripname "-L" '' "$arg" if test -z "$func_stripname_result"; then if test "$#" -gt 0; then func_fatal_error "require no space between '-L' and '$1'" else func_fatal_error "need path for '-L' option" fi fi func_resolve_sysroot "$func_stripname_result" dir=$func_resolve_sysroot_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` test -z "$absdir" && \ func_fatal_error "cannot determine absolute directory name of '$dir'" dir=$absdir ;; esac case "$deplibs " in *" -L$dir "* | *" $arg "*) # Will only happen for absolute or sysroot arguments ;; *) # Preserve sysroot, but never include relative directories case $dir in [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; *) func_append deplibs " -L$dir" ;; esac func_append lib_search_path " $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; ::) dllsearchpath=$dir;; *) func_append dllsearchpath ":$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) func_append dllsearchpath ":$testbindir";; esac ;; esac continue ;; -l*) if test X-lc = "X$arg" || test X-lm = "X$arg"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) # These systems don't actually have a C or math library (as such) continue ;; *-*-os2*) # These systems don't actually have a C library (as such) test X-lc = "X$arg" && continue ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*) # Do not include libc due to us having libc/libc_r. test X-lc = "X$arg" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework func_append deplibs " System.ltframework" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype test X-lc = "X$arg" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work test X-lc = "X$arg" && continue ;; esac elif test X-lc_r = "X$arg"; then case $host in *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi func_append deplibs " $arg" continue ;; -mllvm) prev=mllvm continue ;; -module) module=yes continue ;; # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. # Darwin uses the -arch flag to determine output architecture. -model|-arch|-isysroot|--sysroot) func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" prev=xcompiler continue ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" case "$new_inherited_linker_flags " in *" $arg "*) ;; * ) func_append new_inherited_linker_flags " $arg" ;; esac continue ;; -multi_module) single_module=$wl-multi_module continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) # The PATH hackery in wrapper scripts is required on Windows # and Darwin in order for the loader to find any dlls it needs. func_warning "'-no-install' is ignored for $host" func_warning "assuming '-no-fast-install' instead" fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -os2dllname) prev=os2dllname continue ;; -o) prev=output ;; -precious-files-regex) prev=precious_regex continue ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) func_stripname '-R' '' "$arg" dir=$func_stripname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; =*) func_stripname '=' '' "$dir" dir=$lt_sysroot$func_stripname_result ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac case "$xrpath " in *" $dir "*) ;; *) func_append xrpath " $dir" ;; esac continue ;; -shared) # The effects of -shared are defined in a previous loop. continue ;; -shrext) prev=shrext continue ;; -static | -static-libtool-libs) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -version-number) prev=vinfo vinfo_number=yes continue ;; -weak) prev=weak continue ;; -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result arg= save_ifs=$IFS; IFS=, for flag in $args; do IFS=$save_ifs func_quote_for_eval "$flag" func_append arg " $func_quote_for_eval_result" func_append compiler_flags " $func_quote_for_eval_result" done IFS=$save_ifs func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Wl,*) func_stripname '-Wl,' '' "$arg" args=$func_stripname_result arg= save_ifs=$IFS; IFS=, for flag in $args; do IFS=$save_ifs func_quote_for_eval "$flag" func_append arg " $wl$func_quote_for_eval_result" func_append compiler_flags " $wl$func_quote_for_eval_result" func_append linker_flags " $func_quote_for_eval_result" done IFS=$save_ifs func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # -msg_* for osf cc -msg_*) func_quote_for_eval "$arg" arg=$func_quote_for_eval_result ;; # Flags to be passed through unchanged, with rationale: # -64, -mips[0-9] enable 64-bit mode for the SGI compiler # -r[0-9][0-9]* specify processor for the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler # +DA*, +DD* enable 64-bit mode for the HP compiler # -q* compiler args for the IBM compiler # -m*, -t[45]*, -txscale* architecture-specific flags for GCC # -F/path path to uninstalled frameworks, gcc on darwin # -p, -pg, --coverage, -fprofile-* profiling flags for GCC # -fstack-protector* stack protector flags for GCC # @file GCC response files # -tp=* Portland pgcc target processor selection # --sysroot=* for sysroot support # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization # -stdlib=* select c++ std lib with clang -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*) func_quote_for_eval "$arg" arg=$func_quote_for_eval_result func_append compile_command " $arg" func_append finalize_command " $arg" func_append compiler_flags " $arg" continue ;; -Z*) if test os2 = "`expr $host : '.*\(os2\)'`"; then # OS/2 uses -Zxxx to specify OS/2-specific options compiler_flags="$compiler_flags $arg" func_append compile_command " $arg" func_append finalize_command " $arg" case $arg in -Zlinker | -Zstack) prev=xcompiler ;; esac continue else # Otherwise treat like 'Some other compiler flag' below func_quote_for_eval "$arg" arg=$func_quote_for_eval_result fi ;; # Some other compiler flag. -* | +*) func_quote_for_eval "$arg" arg=$func_quote_for_eval_result ;; *.$objext) # A standard object. func_append objs " $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test none = "$pic_object" && test none = "$non_pic_object"; then func_fatal_error "cannot find name of object for '$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir=$func_dirname_result test none = "$pic_object" || { # Prepend the subdirectory the object is found in. pic_object=$xdir$pic_object if test dlfiles = "$prev"; then if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then func_append dlfiles " $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test dlprefiles = "$prev"; then # Preload the old-style object. func_append dlprefiles " $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg=$pic_object } # Non-PIC object. if test none != "$non_pic_object"; then # Prepend the subdirectory the object is found in. non_pic_object=$xdir$non_pic_object # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test none = "$pic_object"; then arg=$non_pic_object fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object=$pic_object func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir=$func_dirname_result func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "'$arg' is not a valid libtool object" fi fi ;; *.$libext) # An archive. func_append deplibs " $arg" func_append old_deplibs " $arg" continue ;; *.la) # A libtool-controlled library. func_resolve_sysroot "$arg" if test dlfiles = "$prev"; then # This library was specified with -dlopen. func_append dlfiles " $func_resolve_sysroot_result" prev= elif test dlprefiles = "$prev"; then # The library was specified with -dlpreopen. func_append dlprefiles " $func_resolve_sysroot_result" prev= else func_append deplibs " $func_resolve_sysroot_result" fi continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. func_quote_for_eval "$arg" arg=$func_quote_for_eval_result ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then func_append compile_command " $arg" func_append finalize_command " $arg" fi done # argument parsing loop test -n "$prev" && \ func_fatal_help "the '$prevarg' option requires an argument" if test yes = "$export_dynamic" && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" func_append compile_command " $arg" func_append finalize_command " $arg" fi oldlibs= # calculate the name of the file, without its directory func_basename "$output" outputname=$func_basename_result libobjs_save=$libobjs if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$ECHO \"\$$shlibpath_var\" \| \$SED \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" # Definition is injected by LT_CONFIG during libtool generation. func_munge_path_list sys_lib_dlsearch_path "$LT_SYS_LIBRARY_PATH" func_dirname "$output" "/" "" output_objdir=$func_dirname_result$objdir func_to_tool_file "$output_objdir/" tool_output_objdir=$func_to_tool_file_result # Create the object directory. func_mkdir_p "$output_objdir" # Determine the type of output case $output in "") func_fatal_help "you must specify an output file" ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac specialdeplibs= libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do if $opt_preserve_dup_deps; then case "$libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append libs " $deplib" done if test lib = "$linkmode"; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= if $opt_duplicate_compiler_generated_deps; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; esac func_append pre_post_deps " $pre_post_dep" done fi pre_post_deps= fi deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries notinst_path= # paths that contain not-installed libtool libraries case $linkmode in lib) passes="conv dlpreopen link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) func_fatal_help "libraries can '-dlopen' only libtool libraries: $file" ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=false newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do # The preopen pass in lib mode reverses $deplibs; put it back here # so that -L comes before libs that need it for instance... if test lib,link = "$linkmode,$pass"; then ## FIXME: Find the place where the list is rebuilt in the wrong ## order, and fix it there properly tmp_deplibs= for deplib in $deplibs; do tmp_deplibs="$deplib $tmp_deplibs" done deplibs=$tmp_deplibs fi if test lib,link = "$linkmode,$pass" || test prog,scan = "$linkmode,$pass"; then libs=$deplibs deplibs= fi if test prog = "$linkmode"; then case $pass in dlopen) libs=$dlfiles ;; dlpreopen) libs=$dlprefiles ;; link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; esac fi if test lib,dlpreopen = "$linkmode,$pass"; then # Collect and forward deplibs of preopened libtool libs for lib in $dlprefiles; do # Ignore non-libtool-libs dependency_libs= func_resolve_sysroot "$lib" case $lib in *.la) func_source "$func_resolve_sysroot_result" ;; esac # Collect preopened libtool deplibs, except any this library # has declared as weak libs for deplib in $dependency_libs; do func_basename "$deplib" deplib_base=$func_basename_result case " $weak_libs " in *" $deplib_base "*) ;; *) func_append deplibs " $deplib" ;; esac done done libs=$dlprefiles fi if test dlopen = "$pass"; then # Collect dlpreopened libraries save_deplibs=$deplibs deplibs= fi for deplib in $libs; do lib= found=false case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) if test prog,link = "$linkmode,$pass"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else func_append compiler_flags " $deplib" if test lib = "$linkmode"; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) func_append new_inherited_linker_flags " $deplib" ;; esac fi fi continue ;; -l*) if test lib != "$linkmode" && test prog != "$linkmode"; then func_warning "'-l' is ignored for archives/objects" continue fi func_stripname '-l' '' "$deplib" name=$func_stripname_result if test lib = "$linkmode"; then searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" else searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" fi for searchdir in $searchdirs; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library lib=$searchdir/lib$name$search_ext if test -f "$lib"; then if test .la = "$search_ext"; then found=: else found=false fi break 2 fi done done if $found; then # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. if test yes = "$allow_libtool_libs_with_static_runtimes"; then case " $predeps $postdeps " in *" $deplib "*) if func_lalib_p "$lib"; then library_names= old_library= func_source "$lib" for l in $old_library $library_names; do ll=$l done if test "X$ll" = "X$old_library"; then # only static version available found=false func_dirname "$lib" "" "." ladir=$func_dirname_result lib=$ladir/$old_library if test prog,link = "$linkmode,$pass"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" fi continue fi fi ;; *) ;; esac fi else # deplib doesn't seem to be a libtool library if test prog,link = "$linkmode,$pass"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" fi continue fi ;; # -l *.ltframework) if test prog,link = "$linkmode,$pass"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" if test lib = "$linkmode"; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) func_append new_inherited_linker_flags " $deplib" ;; esac fi fi continue ;; -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test conv = "$pass" && continue newdependency_libs="$deplib $newdependency_libs" func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; prog) if test conv = "$pass"; then deplibs="$deplib $deplibs" continue fi if test scan = "$pass"; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; *) func_warning "'-L' is ignored for archives/objects" ;; esac # linkmode continue ;; # -L -R*) if test link = "$pass"; then func_stripname '-R' '' "$deplib" func_resolve_sysroot "$func_stripname_result" dir=$func_resolve_sysroot_result # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) func_append xrpath " $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) func_resolve_sysroot "$deplib" lib=$func_resolve_sysroot_result ;; *.$libext) if test conv = "$pass"; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) # Linking convenience modules into shared libraries is allowed, # but linking other static libraries is non-portable. case " $dlpreconveniencelibs " in *" $deplib "*) ;; *) valid_a_lib=false case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=: fi ;; pass_all) valid_a_lib=: ;; esac if $valid_a_lib; then echo $ECHO "*** Warning: Linking the shared library $output against the" $ECHO "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" else echo $ECHO "*** Warning: Trying to link with static lib archive $deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because the file extensions .$libext of this argument makes me believe" echo "*** that it is just a static archive that I should not use here." fi ;; esac continue ;; prog) if test link != "$pass"; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test conv = "$pass"; then deplibs="$deplib $deplibs" elif test prog = "$linkmode"; then if test dlpreopen = "$pass" || test yes != "$dlopen_support" || test no = "$build_libtool_libs"; then # If there is no dlopen support or we're linking statically, # we need to preload. func_append newdlprefiles " $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else func_append newdlfiles " $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=: continue ;; esac # case $deplib $found || test -f "$lib" \ || func_fatal_error "cannot find the library '$lib' or unhandled argument '$deplib'" # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$lib" \ || func_fatal_error "'$lib' is not a valid libtool archive" func_dirname "$lib" "" "." ladir=$func_dirname_result dlname= dlopen= dlpreopen= libdir= library_names= old_library= inherited_linker_flags= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no avoidtemprpath= # Read the .la file func_source "$lib" # Convert "-framework foo" to "foo.ltframework" if test -n "$inherited_linker_flags"; then tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do case " $new_inherited_linker_flags " in *" $tmp_inherited_linker_flag "*) ;; *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; esac done fi dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` if test lib,link = "$linkmode,$pass" || test prog,scan = "$linkmode,$pass" || { test prog != "$linkmode" && test lib != "$linkmode"; }; then test -n "$dlopen" && func_append dlfiles " $dlopen" test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" fi if test conv = "$pass"; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then func_fatal_error "cannot find name of link library for '$lib'" fi # It is a libtool convenience library, so add in its objects. func_append convenience " $ladir/$objdir/$old_library" func_append old_convenience " $ladir/$objdir/$old_library" elif test prog != "$linkmode" && test lib != "$linkmode"; then func_fatal_error "'$lib' is not a convenience library" fi tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if $opt_preserve_dup_deps; then case "$tmp_libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append tmp_libs " $deplib" done continue fi # $pass = conv # Get the name of the library we link against. linklib= if test -n "$old_library" && { test yes = "$prefer_static_libs" || test built,no = "$prefer_static_libs,$installed"; }; then linklib=$old_library else for l in $old_library $library_names; do linklib=$l done fi if test -z "$linklib"; then func_fatal_error "cannot find name of link library for '$lib'" fi # This library was specified with -dlopen. if test dlopen = "$pass"; then test -z "$libdir" \ && func_fatal_error "cannot -dlopen a convenience library: '$lib'" if test -z "$dlname" || test yes != "$dlopen_support" || test no = "$build_libtool_libs" then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. func_append dlprefiles " $lib $dependency_libs" else func_append newdlfiles " $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [A-Za-z]:[\\/]*) abs_ladir=$ladir ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then func_warning "cannot determine absolute directory name of '$ladir'" func_warning "passing it literally to the linker, although it might fail" abs_ladir=$ladir fi ;; esac func_basename "$lib" laname=$func_basename_result # Find the relevant object directory and library name. if test yes = "$installed"; then if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then func_warning "library '$lib' was moved." dir=$ladir absdir=$abs_ladir libdir=$abs_ladir else dir=$lt_sysroot$libdir absdir=$lt_sysroot$libdir fi test yes = "$hardcode_automatic" && avoidtemprpath=yes else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then dir=$ladir absdir=$abs_ladir # Remove this search path later func_append notinst_path " $abs_ladir" else dir=$ladir/$objdir absdir=$abs_ladir/$objdir # Remove this search path later func_append notinst_path " $abs_ladir" fi fi # $installed = yes func_stripname 'lib' '.la' "$laname" name=$func_stripname_result # This library was specified with -dlpreopen. if test dlpreopen = "$pass"; then if test -z "$libdir" && test prog = "$linkmode"; then func_fatal_error "only libraries may -dlpreopen a convenience library: '$lib'" fi case $host in # special handling for platforms with PE-DLLs. *cygwin* | *mingw* | *cegcc* ) # Linker will automatically link against shared library if both # static and shared are present. Therefore, ensure we extract # symbols from the import library if a shared library is present # (otherwise, the dlopen module name will be incorrect). We do # this by putting the import library name into $newdlprefiles. # We recover the dlopen module name by 'saving' the la file # name in a special purpose variable, and (later) extracting the # dlname from the la file. if test -n "$dlname"; then func_tr_sh "$dir/$linklib" eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" func_append newdlprefiles " $dir/$linklib" else func_append newdlprefiles " $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ func_append dlpreconveniencelibs " $dir/$old_library" fi ;; * ) # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then func_append newdlprefiles " $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ func_append dlpreconveniencelibs " $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then func_append newdlprefiles " $dir/$dlname" else func_append newdlprefiles " $dir/$linklib" fi ;; esac fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test lib = "$linkmode"; then deplibs="$dir/$old_library $deplibs" elif test prog,link = "$linkmode,$pass"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi if test prog = "$linkmode" && test link != "$pass"; then func_append newlib_search_path " $ladir" deplibs="$lib $deplibs" linkalldeplibs=false if test no != "$link_all_deplibs" || test -z "$library_names" || test no = "$build_libtool_libs"; then linkalldeplibs=: fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; esac # Need to link against all dependency_libs? if $linkalldeplibs; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if $opt_preserve_dup_deps; then case "$tmp_libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append tmp_libs " $deplib" done # for deplib continue fi # $linkmode = prog... if test prog,link = "$linkmode,$pass"; then if test -n "$library_names" && { { test no = "$prefer_static_libs" || test built,yes = "$prefer_static_libs,$installed"; } || test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var" && test -z "$avoidtemprpath"; then # Make sure the rpath contains only unique directories. case $temp_rpath: in *"$absdir:"*) ;; *) func_append temp_rpath "$absdir:" ;; esac fi # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) func_append compile_rpath " $absdir" ;; esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac ;; esac fi # $linkmode,$pass = prog,link... if $alldeplibs && { test pass_all = "$deplibs_check_method" || { test yes = "$build_libtool_libs" && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi fi link_static=no # Whether the deplib will be linked statically use_static_libs=$prefer_static_libs if test built = "$use_static_libs" && test yes = "$installed"; then use_static_libs=no fi if test -n "$library_names" && { test no = "$use_static_libs" || test -z "$old_library"; }; then case $host in *cygwin* | *mingw* | *cegcc* | *os2*) # No point in relinking DLLs because paths are not encoded func_append notinst_deplibs " $lib" need_relink=no ;; *) if test no = "$installed"; then func_append notinst_deplibs " $lib" need_relink=yes fi ;; esac # This is a shared library # Warn about portability, can't link against -module's on some # systems (darwin). Don't bleat about dlopened modules though! dlopenmodule= for dlpremoduletest in $dlprefiles; do if test "X$dlpremoduletest" = "X$lib"; then dlopenmodule=$dlpremoduletest break fi done if test -z "$dlopenmodule" && test yes = "$shouldnotlink" && test link = "$pass"; then echo if test prog = "$linkmode"; then $ECHO "*** Warning: Linking the executable $output against the loadable module" else $ECHO "*** Warning: Linking the shared library $output against the loadable module" fi $ECHO "*** $linklib is not portable!" fi if test lib = "$linkmode" && test yes = "$hardcode_into_libs"; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) func_append compile_rpath " $absdir" ;; esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names shift realname=$1 shift libname=`eval "\\$ECHO \"$libname_spec\""` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname=$dlname elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin* | mingw* | *cegcc* | *os2*) func_arith $current - $age major=$func_arith_result versuffix=-$major ;; esac eval soname=\"$soname_spec\" else soname=$realname fi # Make a new name for the extract_expsyms_cmds to use soroot=$soname func_basename "$soroot" soname=$func_basename_result func_stripname 'lib' '.dll' "$soname" newlib=libimp-$func_stripname_result.a # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else func_verbose "extracting exported symbol list from '$soname'" func_execute_cmds "$extract_expsyms_cmds" 'exit $?' fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else func_verbose "generating import library for '$soname'" func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" if test prog = "$linkmode" || test relink != "$opt_mode"; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test no = "$hardcode_direct"; then add=$dir/$linklib case $host in *-*-sco3.2v5.0.[024]*) add_dir=-L$dir ;; *-*-sysv4*uw2*) add_dir=-L$dir ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ *-*-unixware7*) add_dir=-L$dir ;; *-*-darwin* ) # if the lib is a (non-dlopened) module then we cannot # link against it, someone is ignoring the earlier warnings if /usr/bin/file -L $add 2> /dev/null | $GREP ": [^:]* bundle" >/dev/null; then if test "X$dlopenmodule" != "X$lib"; then $ECHO "*** Warning: lib $linklib is a module, not a shared library" if test -z "$old_library"; then echo echo "*** And there doesn't seem to be a static archive available" echo "*** The link will probably fail, sorry" else add=$dir/$old_library fi elif test -n "$old_library"; then add=$dir/$old_library fi fi esac elif test no = "$hardcode_minus_L"; then case $host in *-*-sunos*) add_shlibpath=$dir ;; esac add_dir=-L$dir add=-l$name elif test no = "$hardcode_shlibpath_var"; then add_shlibpath=$dir add=-l$name else lib_linked=no fi ;; relink) if test yes = "$hardcode_direct" && test no = "$hardcode_direct_absolute"; then add=$dir/$linklib elif test yes = "$hardcode_minus_L"; then add_dir=-L$absdir # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) func_append add_dir " -L$inst_prefix_dir$libdir" ;; esac fi add=-l$name elif test yes = "$hardcode_shlibpath_var"; then add_shlibpath=$dir add=-l$name else lib_linked=no fi ;; *) lib_linked=no ;; esac if test yes != "$lib_linked"; then func_fatal_configuration "unsupported hardcode properties" fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) func_append compile_shlibpath "$add_shlibpath:" ;; esac fi if test prog = "$linkmode"; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" if test yes != "$hardcode_direct" && test yes != "$hardcode_minus_L" && test yes = "$hardcode_shlibpath_var"; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) func_append finalize_shlibpath "$libdir:" ;; esac fi fi fi if test prog = "$linkmode" || test relink = "$opt_mode"; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test yes = "$hardcode_direct" && test no = "$hardcode_direct_absolute"; then add=$libdir/$linklib elif test yes = "$hardcode_minus_L"; then add_dir=-L$libdir add=-l$name elif test yes = "$hardcode_shlibpath_var"; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) func_append finalize_shlibpath "$libdir:" ;; esac add=-l$name elif test yes = "$hardcode_automatic"; then if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib"; then add=$inst_prefix_dir$libdir/$linklib else add=$libdir/$linklib fi else # We cannot seem to hardcode it, guess we'll fake it. add_dir=-L$libdir # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) func_append add_dir " -L$inst_prefix_dir$libdir" ;; esac fi add=-l$name fi if test prog = "$linkmode"; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test prog = "$linkmode"; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. if test unsupported != "$hardcode_direct"; then test -n "$old_library" && linklib=$old_library compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi elif test yes = "$build_libtool_libs"; then # Not a shared library if test pass_all != "$deplibs_check_method"; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. echo $ECHO "*** Warning: This system cannot link to static lib archive $lib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have." if test yes = "$module"; then echo "*** But as you try to build a module library, libtool will still create " echo "*** a static module, that should work as long as the dlopening application" echo "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" echo "*** lists from a program, using 'nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." echo "*** 'nm' from GNU binutils and a full rebuild may help." fi if test no = "$build_old_libs"; then build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test lib = "$linkmode"; then if test -n "$dependency_libs" && { test yes != "$hardcode_into_libs" || test yes = "$build_old_libs" || test yes = "$link_static"; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) func_stripname '-R' '' "$libdir" temp_xrpath=$func_stripname_result case " $xrpath " in *" $temp_xrpath "*) ;; *) func_append xrpath " $temp_xrpath";; esac;; *) func_append temp_deplibs " $libdir";; esac done dependency_libs=$temp_deplibs fi func_append newlib_search_path " $absdir" # Link against this library test no = "$link_static" && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" case $deplib in -L*) func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result";; *) func_resolve_sysroot "$deplib" ;; esac if $opt_preserve_dup_deps; then case "$tmp_libs " in *" $func_resolve_sysroot_result "*) func_append specialdeplibs " $func_resolve_sysroot_result" ;; esac fi func_append tmp_libs " $func_resolve_sysroot_result" done if test no != "$link_all_deplibs"; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do path= case $deplib in -L*) path=$deplib ;; *.la) func_resolve_sysroot "$deplib" deplib=$func_resolve_sysroot_result func_dirname "$deplib" "" "." dir=$func_dirname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir=$dir ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then func_warning "cannot determine absolute directory name of '$dir'" absdir=$dir fi ;; esac if $GREP "^installed=no" $deplib > /dev/null; then case $host in *-*-darwin*) depdepl= eval deplibrary_names=`$SED -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names"; then for tmp in $deplibrary_names; do depdepl=$tmp done if test -f "$absdir/$objdir/$depdepl"; then depdepl=$absdir/$objdir/$depdepl darwin_install_name=`$OTOOL -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` if test -z "$darwin_install_name"; then darwin_install_name=`$OTOOL64 -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` fi func_append compiler_flags " $wl-dylib_file $wl$darwin_install_name:$depdepl" func_append linker_flags " -dylib_file $darwin_install_name:$depdepl" path= fi fi ;; *) path=-L$absdir/$objdir ;; esac else eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "'$deplib' is not a valid libtool archive" test "$absdir" != "$libdir" && \ func_warning "'$deplib' seems to be moved" path=-L$absdir fi ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$path $deplibs" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs if test link = "$pass"; then if test prog = "$linkmode"; then compile_deplibs="$new_inherited_linker_flags $compile_deplibs" finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" else compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` fi fi dependency_libs=$newdependency_libs if test dlpreopen = "$pass"; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test dlopen != "$pass"; then test conv = "$pass" || { # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) func_append lib_search_path " $dir" ;; esac done newlib_search_path= } if test prog,link = "$linkmode,$pass"; then vars="compile_deplibs finalize_deplibs" else vars=deplibs fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do # FIXME: Pedantically, this is the right thing to do, so # that some nasty dependency loop isn't accidentally # broken: #new_libs="$deplib $new_libs" # Pragmatically, this seems to cause very few problems in # practice: case $deplib in -L*) new_libs="$deplib $new_libs" ;; -R*) ;; *) # And here is the reason: when a library appears more # than once as an explicit dependence of a library, or # is implicitly linked in more than once by the # compiler, it is considered special, and multiple # occurrences thereof are not removed. Compare this # with having the same library being listed as a # dependency of multiple other libraries: in this case, # we know (pedantically, we assume) the library does not # need to be listed more than once, so we keep only the # last copy. This is not always right, but it is rare # enough that we require users that really mean to play # such unportable linking tricks to link the library # using -Wl,-lname, so that libtool does not consider it # for duplicate removal. case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$deplib $new_libs" ;; esac ;; esac ;; esac done tmp_libs= for deplib in $new_libs; do case $deplib in -L*) case " $tmp_libs " in *" $deplib "*) ;; *) func_append tmp_libs " $deplib" ;; esac ;; *) func_append tmp_libs " $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # Add Sun CC postdeps if required: test CXX = "$tagname" && { case $host_os in linux*) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 func_suncc_cstd_abi if test no != "$suncc_use_cstd_abi"; then func_append postdeps ' -library=Cstd -library=Crun' fi ;; esac ;; solaris*) func_cc_basename "$CC" case $func_cc_basename_result in CC* | sunCC*) func_suncc_cstd_abi if test no != "$suncc_use_cstd_abi"; then func_append postdeps ' -library=Cstd -library=Crun' fi ;; esac ;; esac } # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= for i in $dependency_libs; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) i= ;; esac if test -n "$i"; then func_append tmp_libs " $i" fi done dependency_libs=$tmp_libs done # for pass if test prog = "$linkmode"; then dlfiles=$newdlfiles fi if test prog = "$linkmode" || test lib = "$linkmode"; then dlprefiles=$newdlprefiles fi case $linkmode in oldlib) if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then func_warning "'-dlopen' is ignored for archives" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "'-l' and '-L' are ignored for archives" ;; esac test -n "$rpath" && \ func_warning "'-rpath' is ignored for archives" test -n "$xrpath" && \ func_warning "'-R' is ignored for archives" test -n "$vinfo" && \ func_warning "'-version-info/-version-number' is ignored for archives" test -n "$release" && \ func_warning "'-release' is ignored for archives" test -n "$export_symbols$export_symbols_regex" && \ func_warning "'-export-symbols' is ignored for archives" # Now set the variables for building old libraries. build_libtool_libs=no oldlibs=$output func_append objs "$old_deplibs" ;; lib) # Make sure we only generate libraries of the form 'libNAME.la'. case $outputname in lib*) func_stripname 'lib' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) test no = "$module" \ && func_fatal_help "libtool library '$output' must begin with 'lib'" if test no != "$need_lib_prefix"; then # Add the "lib" prefix for modules if required func_stripname '' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else func_stripname '' '.la' "$outputname" libname=$func_stripname_result fi ;; esac if test -n "$objs"; then if test pass_all != "$deplibs_check_method"; then func_fatal_error "cannot build libtool library '$output' from non-libtool objects on this host:$objs" else echo $ECHO "*** Warning: Linking the shared library $output against the non-libtool" $ECHO "*** objects $objs is not portable!" func_append libobjs " $objs" fi fi test no = "$dlself" \ || func_warning "'-dlopen self' is ignored for libtool libraries" set dummy $rpath shift test 1 -lt "$#" \ && func_warning "ignoring multiple '-rpath's for a libtool library" install_libdir=$1 oldlibs= if test -z "$rpath"; then if test yes = "$build_libtool_libs"; then # Building a libtool convenience library. # Some compilers have problems with a '.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi test -n "$vinfo" && \ func_warning "'-version-info/-version-number' is ignored for convenience libraries" test -n "$release" && \ func_warning "'-release' is ignored for convenience libraries" else # Parse the version information argument. save_ifs=$IFS; IFS=: set dummy $vinfo 0 0 0 shift IFS=$save_ifs test -n "$7" && \ func_fatal_help "too many parameters to '-version-info'" # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible case $vinfo_number in yes) number_major=$1 number_minor=$2 number_revision=$3 # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # that has an extra 1 added just for fun # case $version_type in # correct linux to gnu/linux during the next big refactor darwin|freebsd-elf|linux|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result age=$number_minor revision=$number_revision ;; freebsd-aout|qnx|sunos) current=$number_major revision=$number_minor age=0 ;; irix|nonstopux) func_arith $number_major + $number_minor current=$func_arith_result age=$number_minor revision=$number_minor lt_irix_increment=no ;; esac ;; no) current=$1 revision=$2 age=$3 ;; esac # Check that each of the things are valid numbers. case $current in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "CURRENT '$current' must be a nonnegative integer" func_fatal_error "'$vinfo' is not valid version information" ;; esac case $revision in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "REVISION '$revision' must be a nonnegative integer" func_fatal_error "'$vinfo' is not valid version information" ;; esac case $age in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "AGE '$age' must be a nonnegative integer" func_fatal_error "'$vinfo' is not valid version information" ;; esac if test "$age" -gt "$current"; then func_error "AGE '$age' is greater than the current interface number '$current'" func_fatal_error "'$vinfo' is not valid version information" fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header func_arith $current - $age major=.$func_arith_result versuffix=$major.$age.$revision # Darwin ld doesn't like 0 for these options... func_arith $current + 1 minor_current=$func_arith_result xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" # On Darwin other compilers case $CC in nagfor*) verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" ;; *) verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" ;; esac ;; freebsd-aout) major=.$current versuffix=.$current.$revision ;; freebsd-elf) func_arith $current - $age major=.$func_arith_result versuffix=$major.$age.$revision ;; irix | nonstopux) if test no = "$lt_irix_increment"; then func_arith $current - $age else func_arith $current - $age + 1 fi major=$func_arith_result case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring=$verstring_prefix$major.$revision # Add in all the interfaces that we are compatible with. loop=$revision while test 0 -ne "$loop"; do func_arith $revision - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring=$verstring_prefix$major.$iface:$verstring done # Before this point, $major must not contain '.'. major=.$major versuffix=$major.$revision ;; linux) # correct to gnu/linux during the next big refactor func_arith $current - $age major=.$func_arith_result versuffix=$major.$age.$revision ;; osf) func_arith $current - $age major=.$func_arith_result versuffix=.$current.$age.$revision verstring=$current.$age.$revision # Add in all the interfaces that we are compatible with. loop=$age while test 0 -ne "$loop"; do func_arith $current - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring=$verstring:$iface.0 done # Make executables depend on our current version. func_append verstring ":$current.0" ;; qnx) major=.$current versuffix=.$current ;; sco) major=.$current versuffix=.$current ;; sunos) major=.$current versuffix=.$current.$revision ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 file systems. func_arith $current - $age major=$func_arith_result versuffix=-$major ;; *) func_fatal_configuration "unknown library version type '$version_type'" ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring= ;; *) verstring=0.0 ;; esac if test no = "$need_version"; then versuffix= else versuffix=.0.0 fi fi # Remove version info from name if versioning should be avoided if test yes,no = "$avoid_version,$need_version"; then major= versuffix= verstring= fi # Check to see if the archive will have undefined symbols. if test yes = "$allow_undefined"; then if test unsupported = "$allow_undefined_flag"; then if test yes = "$build_old_libs"; then func_warning "undefined symbols not allowed in $host shared libraries; building static only" build_libtool_libs=no else func_fatal_error "can't build $host shared library unless -no-undefined is specified" fi fi else # Don't allow undefined symbols. allow_undefined_flag=$no_undefined_flag fi fi func_generate_dlsyms "$libname" "$libname" : func_append libobjs " $symfileobj" test " " = "$libobjs" && libobjs= if test relink != "$opt_mode"; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= tempremovelist=`$ECHO "$output_objdir/*"` for p in $tempremovelist; do case $p in *.$objext | *.gcno) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/$libname$release.*) if test -n "$precious_files_regex"; then if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi func_append removelist " $p" ;; *) ;; esac done test -n "$removelist" && \ func_show_eval "${RM}r \$removelist" fi # Now set the variables for building old libraries. if test yes = "$build_old_libs" && test convenience != "$build_libtool_libs"; then func_append oldlibs " $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; $lo2o" | $NL2SP` fi # Eliminate all temporary directories. #for path in $notinst_path; do # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` #done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do func_replace_sysroot "$libdir" func_append temp_xrpath " -R$func_replace_sysroot_result" case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac done if test yes != "$hardcode_into_libs" || test yes = "$build_old_libs"; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened old_dlfiles=$dlfiles dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; *) func_append dlfiles " $lib" ;; esac done # Make sure dlprefiles contains only unique files old_dlprefiles=$dlprefiles dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; *) func_append dlprefiles " $lib" ;; esac done if test yes = "$build_libtool_libs"; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework func_append deplibs " System.ltframework" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work ;; *) # Add libc to deplibs on all other systems if necessary. if test yes = "$build_libtool_need_lc"; then func_append deplibs " -lc" fi ;; esac fi # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? release= versuffix= major= newdeplibs= droppeddeps=no case $deplibs_check_method in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $opt_dry_run || $RM conftest.c cat > conftest.c </dev/null` $nocaseglob else potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` fi for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null | $GREP " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib=$potent_lib while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | $SED 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib=$potliblink;; *) potlib=`$ECHO "$potlib" | $SED 's|[^/]*$||'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | $SED -e 10q | $EGREP "$file_magic_regex" > /dev/null; then func_append newdeplibs " $a_deplib" a_deplib= break 2 fi done done fi if test -n "$a_deplib"; then droppeddeps=yes echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib"; then $ECHO "*** with $libname but no candidates were found. (...for file magic test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a file magic. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. func_append newdeplibs " $a_deplib" ;; esac done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` for a_deplib in $deplibs; do case $a_deplib in -l*) func_stripname -l '' "$a_deplib" name=$func_stripname_result if test yes = "$allow_libtool_libs_with_static_runtimes"; then case " $predeps $postdeps " in *" $a_deplib "*) func_append newdeplibs " $a_deplib" a_deplib= ;; esac fi if test -n "$a_deplib"; then libname=`eval "\\$ECHO \"$libname_spec\""` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib=$potent_lib # see symlink-check above in file_magic test if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ $EGREP "$match_pattern_regex" > /dev/null; then func_append newdeplibs " $a_deplib" a_deplib= break 2 fi done done fi if test -n "$a_deplib"; then droppeddeps=yes echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib"; then $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a regex pattern. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. func_append newdeplibs " $a_deplib" ;; esac done # Gone through all deplibs. ;; none | unknown | *) newdeplibs= tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` if test yes = "$allow_libtool_libs_with_static_runtimes"; then for i in $predeps $postdeps; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s|$i||"` done fi case $tmp_deplibs in *[!\ \ ]*) echo if test none = "$deplibs_check_method"; then echo "*** Warning: inter-library dependencies are not supported in this platform." else echo "*** Warning: inter-library dependencies are not known to be supported." fi echo "*** All declared inter-library dependencies are being dropped." droppeddeps=yes ;; esac ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library with the System framework newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac if test yes = "$droppeddeps"; then if test yes = "$module"; then echo echo "*** Warning: libtool could not satisfy all declared inter-library" $ECHO "*** dependencies of module $libname. Therefore, libtool will create" echo "*** a static module, that should work as long as the dlopening" echo "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" echo "*** lists from a program, using 'nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." echo "*** 'nm' from GNU binutils and a full rebuild may help." fi if test no = "$build_old_libs"; then oldlibs=$output_objdir/$libname.$libext build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else echo "*** The inter-library dependencies that have been dropped here will be" echo "*** automatically added whenever a program is linked with this library" echo "*** or is declared to -dlopen it." if test no = "$allow_undefined"; then echo echo "*** Since this library must not contain undefined symbols," echo "*** because either the platform does not support them or" echo "*** it was explicitly requested with -no-undefined," echo "*** libtool will only create a static version of it." if test no = "$build_old_libs"; then oldlibs=$output_objdir/$libname.$libext build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" case $host in *-*-darwin*) newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $deplibs " in *" -L$path/$objdir "*) func_append new_libs " -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) func_append new_libs " $deplib" ;; esac ;; *) func_append new_libs " $deplib" ;; esac done deplibs=$new_libs # All the library-specific variables (install_libdir is set above). library_names= old_library= dlname= # Test again, we may have decided not to build it any more if test yes = "$build_libtool_libs"; then # Remove $wl instances when linking with ld. # FIXME: should test the right _cmds variable. case $archive_cmds in *\$LD\ *) wl= ;; esac if test yes = "$hardcode_into_libs"; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath=$finalize_rpath test relink = "$opt_mode" || rpath=$compile_rpath$rpath for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then func_replace_sysroot "$libdir" libdir=$func_replace_sysroot_result if test -z "$hardcode_libdirs"; then hardcode_libdirs=$libdir else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append dep_rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) func_append perm_rpath " $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir=$hardcode_libdirs eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do func_append rpath "$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath=$finalize_shlibpath test relink = "$opt_mode" || shlibpath=$compile_shlibpath$shlibpath if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names shift realname=$1 shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname=$realname fi if test -z "$dlname"; then dlname=$soname fi lib=$output_objdir/$realname linknames= for link do func_append linknames " $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` test "X$libobjs" = "X " && libobjs= delfiles= if test -n "$export_symbols" && test -n "$include_expsyms"; then $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" export_symbols=$output_objdir/$libname.uexp func_append delfiles " $export_symbols" fi orig_export_symbols= case $host_os in cygwin* | mingw* | cegcc*) if test -n "$export_symbols" && test -z "$export_symbols_regex"; then # exporting using user supplied symfile func_dll_def_p "$export_symbols" || { # and it's NOT already a .def file. Must figure out # which of the given symbols are data symbols and tag # them as such. So, trigger use of export_symbols_cmds. # export_symbols gets reassigned inside the "prepare # the list of exported symbols" if statement, so the # include_expsyms logic still works. orig_export_symbols=$export_symbols export_symbols= always_export_symbols=yes } fi ;; esac # Prepare the list of exported symbols if test -z "$export_symbols"; then if test yes = "$always_export_symbols" || test -n "$export_symbols_regex"; then func_verbose "generating symbol list for '$libname.la'" export_symbols=$output_objdir/$libname.exp $opt_dry_run || $RM $export_symbols cmds=$export_symbols_cmds save_ifs=$IFS; IFS='~' for cmd1 in $cmds; do IFS=$save_ifs # Take the normal branch if the nm_file_list_spec branch # doesn't work or if tool conversion is not needed. case $nm_file_list_spec~$to_tool_file_cmd in *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) try_normal_branch=yes eval cmd=\"$cmd1\" func_len " $cmd" len=$func_len_result ;; *) try_normal_branch=no ;; esac if test yes = "$try_normal_branch" \ && { test "$len" -lt "$max_cmd_len" \ || test "$max_cmd_len" -le -1; } then func_show_eval "$cmd" 'exit $?' skipped_export=false elif test -n "$nm_file_list_spec"; then func_basename "$output" output_la=$func_basename_result save_libobjs=$libobjs save_output=$output output=$output_objdir/$output_la.nm func_to_tool_file "$output" libobjs=$nm_file_list_spec$func_to_tool_file_result func_append delfiles " $output" func_verbose "creating $NM input file list: $output" for obj in $save_libobjs; do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" done > "$output" eval cmd=\"$cmd1\" func_show_eval "$cmd" 'exit $?' output=$save_output libobjs=$save_libobjs skipped_export=false else # The command line is too long to execute in one step. func_verbose "using reloadable object file for export list..." skipped_export=: # Break out early, otherwise skipped_export may be # set to false by a later but shorter cmd. break fi done IFS=$save_ifs if test -n "$export_symbols_regex" && test : != "$skipped_export"; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols=$export_symbols test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test : != "$skipped_export" && test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for '$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands, which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter func_append delfiles " $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) func_append tmp_deplibs " $test_deplib" ;; esac done deplibs=$tmp_deplibs if test -n "$convenience"; then if test -n "$whole_archive_flag_spec" && test yes = "$compiler_needs_object" && test -z "$libobjs"; then # extract the archives, so we have objects to list. # TODO: could optimize this to just extract one archive. whole_archive_flag_spec= fi if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= else gentop=$output_objdir/${outputname}x func_append generated " $gentop" func_extract_archives $gentop $convenience func_append libobjs " $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi fi if test yes = "$thread_safe" && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" func_append linker_flags " $flag" fi # Make a backup of the uninstalled library when relinking if test relink = "$opt_mode"; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test yes = "$module" && test -n "$module_cmds"; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds else eval test_cmds=\"$module_cmds\" cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval test_cmds=\"$archive_expsym_cmds\" cmds=$archive_expsym_cmds else eval test_cmds=\"$archive_cmds\" cmds=$archive_cmds fi fi if test : != "$skipped_export" && func_len " $test_cmds" && len=$func_len_result && test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise # or, if using GNU ld and skipped_export is not :, use a linker # script. # Save the value of $output and $libobjs because we want to # use them later. If we have whole_archive_flag_spec, we # want to use save_libobjs as it was before # whole_archive_flag_spec was expanded, because we can't # assume the linker understands whole_archive_flag_spec. # This may have to be revisited, in case too many # convenience libraries get linked in and end up exceeding # the spec. if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then save_libobjs=$libobjs fi save_output=$output func_basename "$output" output_la=$func_basename_result # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= last_robj= k=1 if test -n "$save_libobjs" && test : != "$skipped_export" && test yes = "$with_gnu_ld"; then output=$output_objdir/$output_la.lnkscript func_verbose "creating GNU ld script: $output" echo 'INPUT (' > $output for obj in $save_libobjs do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" >> $output done echo ')' >> $output func_append delfiles " $output" func_to_tool_file "$output" output=$func_to_tool_file_result elif test -n "$save_libobjs" && test : != "$skipped_export" && test -n "$file_list_spec"; then output=$output_objdir/$output_la.lnk func_verbose "creating linker input file list: $output" : > $output set x $save_libobjs shift firstobj= if test yes = "$compiler_needs_object"; then firstobj="$1 " shift fi for obj do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" >> $output done func_append delfiles " $output" func_to_tool_file "$output" output=$firstobj\"$file_list_spec$func_to_tool_file_result\" else if test -n "$save_libobjs"; then func_verbose "creating reloadable object files..." output=$output_objdir/$output_la-$k.$objext eval test_cmds=\"$reload_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 # Loop over the list of objects to be linked. for obj in $save_libobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result if test -z "$objlist" || test "$len" -lt "$max_cmd_len"; then func_append objlist " $obj" else # The command $test_cmds is almost too long, add a # command to the queue. if test 1 -eq "$k"; then # The first file doesn't have a previous command to add. reload_objs=$objlist eval concat_cmds=\"$reload_cmds\" else # All subsequent reloadable object files will link in # the last one created. reload_objs="$objlist $last_robj" eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" fi last_robj=$output_objdir/$output_la-$k.$objext func_arith $k + 1 k=$func_arith_result output=$output_objdir/$output_la-$k.$objext objlist=" $obj" func_len " $last_robj" func_arith $len0 + $func_len_result len=$func_arith_result fi done # Handle the remaining objects by creating one last # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ reload_objs="$objlist $last_robj" eval concat_cmds=\"\$concat_cmds$reload_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" fi func_append delfiles " $output" else output= fi ${skipped_export-false} && { func_verbose "generating symbol list for '$libname.la'" export_symbols=$output_objdir/$libname.exp $opt_dry_run || $RM $export_symbols libobjs=$output # Append the command to create the export file. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" fi } test -n "$save_libobjs" && func_verbose "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. save_ifs=$IFS; IFS='~' for cmd in $concat_cmds; do IFS=$save_ifs $opt_quiet || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test relink = "$opt_mode"; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS=$save_ifs if test -n "$export_symbols_regex" && ${skipped_export-false}; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi ${skipped_export-false} && { if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols=$export_symbols test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for '$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands, which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter func_append delfiles " $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi } libobjs=$output # Restore the value of output. output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test yes = "$module" && test -n "$module_cmds"; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then cmds=$archive_expsym_cmds else cmds=$archive_cmds fi fi fi if test -n "$delfiles"; then # Append the command to remove temporary files to $cmds. eval cmds=\"\$cmds~\$RM $delfiles\" fi # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop=$output_objdir/${outputname}x func_append generated " $gentop" func_extract_archives $gentop $dlprefiles func_append libobjs " $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi save_ifs=$IFS; IFS='~' for cmd in $cmds; do IFS=$sp$nl eval cmd=\"$cmd\" IFS=$save_ifs $opt_quiet || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test relink = "$opt_mode"; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS=$save_ifs # Restore the uninstalled library and exit if test relink = "$opt_mode"; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? if test -n "$convenience"; then if test -z "$whole_archive_flag_spec"; then func_show_eval '${RM}r "$gentop"' fi fi exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' fi done # If -module or -export-dynamic was specified, set the dlname. if test yes = "$module" || test yes = "$export_dynamic"; then # On all known operating systems, these are identical. dlname=$soname fi fi ;; obj) if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then func_warning "'-dlopen' is ignored for objects" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "'-l' and '-L' are ignored for objects" ;; esac test -n "$rpath" && \ func_warning "'-rpath' is ignored for objects" test -n "$xrpath" && \ func_warning "'-R' is ignored for objects" test -n "$vinfo" && \ func_warning "'-version-info' is ignored for objects" test -n "$release" && \ func_warning "'-release' is ignored for objects" case $output in *.lo) test -n "$objs$old_deplibs" && \ func_fatal_error "cannot build library object '$output' from non-libtool objects" libobj=$output func_lo2o "$libobj" obj=$func_lo2o_result ;; *) libobj= obj=$output ;; esac # Delete the old objects. $opt_dry_run || $RM $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # the extraction. reload_conv_objs= gentop= # if reload_cmds runs $LD directly, get rid of -Wl from # whole_archive_flag_spec and hope we can get by with turning comma # into space. case $reload_cmds in *\$LD[\ \$]*) wl= ;; esac if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" test -n "$wl" || tmp_whole_archive_flags=`$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` reload_conv_objs=$reload_objs\ $tmp_whole_archive_flags else gentop=$output_objdir/${obj}x func_append generated " $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # If we're not building shared, we need to use non_pic_objs test yes = "$build_libtool_libs" || libobjs=$non_pic_objects # Create the old-style object. reload_objs=$objs$old_deplibs' '`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; /\.lib$/d; $lo2o" | $NL2SP`' '$reload_conv_objs output=$obj func_execute_cmds "$reload_cmds" 'exit $?' # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS fi test yes = "$build_libtool_libs" || { if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $show "echo timestamp > $libobj" # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS } if test -n "$pic_flag" || test default != "$pic_mode"; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output=$libobj func_execute_cmds "$reload_cmds" 'exit $?' fi if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) func_stripname '' '.exe' "$output" output=$func_stripname_result.exe;; esac test -n "$vinfo" && \ func_warning "'-version-info' is ignored for programs" test -n "$release" && \ func_warning "'-release' is ignored for programs" $preload \ && test unknown,unknown,unknown = "$dlopen_support,$dlopen_self,$dlopen_self_static" \ && func_warning "'LT_INIT([dlopen])' not used. Assuming no dlopen support." case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac case $host in *-*-darwin*) # Don't allow lazy linking, it breaks C++ global constructors # But is supposedly fixed on 10.4 or later (yay!). if test CXX = "$tagname"; then case ${MACOSX_DEPLOYMENT_TARGET-10.0} in 10.[0123]) func_append compile_command " $wl-bind_at_load" func_append finalize_command " $wl-bind_at_load" ;; esac fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $compile_deplibs " in *" -L$path/$objdir "*) func_append new_libs " -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) func_append new_libs " $deplib" ;; esac ;; *) func_append new_libs " $deplib" ;; esac done compile_deplibs=$new_libs func_append compile_command " $compile_deplibs" func_append finalize_command " $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs=$libdir else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) func_append perm_rpath " $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "$libdir" | $SED -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; ::) dllsearchpath=$libdir;; *) func_append dllsearchpath ":$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) func_append dllsearchpath ":$testbindir";; esac ;; esac done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir=$hardcode_libdirs eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath=$rpath rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs=$libdir else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) func_append finalize_perm_rpath " $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir=$hardcode_libdirs eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath=$rpath if test -n "$libobjs" && test yes = "$build_old_libs"; then # Transform all the library objects into standard objects. compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` fi func_generate_dlsyms "$outputname" "@PROGRAM@" false # template prelinking step if test -n "$prelink_cmds"; then func_execute_cmds "$prelink_cmds" 'exit $?' fi wrappers_required=: case $host in *cegcc* | *mingw32ce*) # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. wrappers_required=false ;; *cygwin* | *mingw* ) test yes = "$build_libtool_libs" || wrappers_required=false ;; *) if test no = "$need_relink" || test yes != "$build_libtool_libs"; then wrappers_required=false fi ;; esac $wrappers_required || { # Replace the output file specification. compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` link_command=$compile_command$compile_rpath # We have no uninstalled library dependencies, so finalize right now. exit_status=0 func_show_eval "$link_command" 'exit_status=$?' if test -n "$postlink_cmds"; then func_to_tool_file "$output" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi # Delete the generated files. if test -f "$output_objdir/${outputname}S.$objext"; then func_show_eval '$RM "$output_objdir/${outputname}S.$objext"' fi exit $exit_status } if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do func_append rpath "$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi if test -n "$finalize_perm_rpath"; then # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do func_append rpath "$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test yes = "$no_install"; then # We don't need to create a wrapper script. link_command=$compile_var$compile_command$compile_rpath # Replace the output file specification. link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $opt_dry_run || $RM $output # Link the executable and exit func_show_eval "$link_command" 'exit $?' if test -n "$postlink_cmds"; then func_to_tool_file "$output" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi exit $EXIT_SUCCESS fi case $hardcode_action,$fast_install in relink,*) # Fast installation is not supported link_command=$compile_var$compile_command$compile_rpath relink_command=$finalize_var$finalize_command$finalize_rpath func_warning "this platform does not like uninstalled shared libraries" func_warning "'$output' will be relinked during installation" ;; *,yes) link_command=$finalize_var$compile_command$finalize_rpath relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` ;; *,no) link_command=$compile_var$compile_command$compile_rpath relink_command=$finalize_var$finalize_command$finalize_rpath ;; *,needless) link_command=$finalize_var$compile_command$finalize_rpath relink_command= ;; esac # Replace the output file specification. link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname func_show_eval "$link_command" 'exit $?' if test -n "$postlink_cmds"; then func_to_tool_file "$output_objdir/$outputname" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi # Now create the wrapper script. func_verbose "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` fi # Only actually do things if not in dry run mode. $opt_dry_run || { # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) func_stripname '' '.exe' "$output" output=$func_stripname_result ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe func_stripname '' '.exe' "$outputname" outputname=$func_stripname_result ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) func_dirname_and_basename "$output" "" "." output_name=$func_basename_result output_path=$func_dirname_result cwrappersource=$output_path/$objdir/lt-$output_name.c cwrapper=$output_path/$output_name.exe $RM $cwrappersource $cwrapper trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 func_emit_cwrapperexe_src > $cwrappersource # The wrapper executable is built using the $host compiler, # because it contains $host paths and files. If cross- # compiling, it, like the target executable, must be # executed on the $host or under an emulation environment. $opt_dry_run || { $LTCC $LTCFLAGS -o $cwrapper $cwrappersource $STRIP $cwrapper } # Now, create the wrapper script for func_source use: func_ltwrapper_scriptname $cwrapper $RM $func_ltwrapper_scriptname_result trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 $opt_dry_run || { # note: this script will not be executed, so do not chmod. if test "x$build" = "x$host"; then $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result else func_emit_wrapper no > $func_ltwrapper_scriptname_result fi } ;; * ) $RM $output trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 func_emit_wrapper no > $output chmod +x $output ;; esac } exit $EXIT_SUCCESS ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do case $build_libtool_libs in convenience) oldobjs="$libobjs_save $symfileobj" addlibs=$convenience build_libtool_libs=no ;; module) oldobjs=$libobjs_save addlibs=$old_convenience build_libtool_libs=no ;; *) oldobjs="$old_deplibs $non_pic_objects" $preload && test -f "$symfileobj" \ && func_append oldobjs " $symfileobj" addlibs=$old_convenience ;; esac if test -n "$addlibs"; then gentop=$output_objdir/${outputname}x func_append generated " $gentop" func_extract_archives $gentop $addlibs func_append oldobjs " $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test yes = "$build_libtool_libs"; then cmds=$old_archive_from_new_cmds else # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop=$output_objdir/${outputname}x func_append generated " $gentop" func_extract_archives $gentop $dlprefiles func_append oldobjs " $func_extract_archives_result" fi # POSIX demands no paths to be encoded in archives. We have # to avoid creating archives with duplicate basenames if we # might have to extract them afterwards, e.g., when creating a # static archive out of a convenience library, or when linking # the entirety of a libtool archive into another (currently # not supported by libtool). if (for obj in $oldobjs do func_basename "$obj" $ECHO "$func_basename_result" done | sort | sort -uc >/dev/null 2>&1); then : else echo "copying selected object files to avoid basename conflicts..." gentop=$output_objdir/${outputname}x func_append generated " $gentop" func_mkdir_p "$gentop" save_oldobjs=$oldobjs oldobjs= counter=1 for obj in $save_oldobjs do func_basename "$obj" objbase=$func_basename_result case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) while :; do # Make sure we don't pick an alternate name that also # overlaps. newobj=lt$counter-$objbase func_arith $counter + 1 counter=$func_arith_result case " $oldobjs " in *[\ /]"$newobj "*) ;; *) if test ! -f "$gentop/$newobj"; then break; fi ;; esac done func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" func_append oldobjs " $gentop/$newobj" ;; *) func_append oldobjs " $obj" ;; esac done fi func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 tool_oldlib=$func_to_tool_file_result eval cmds=\"$old_archive_cmds\" func_len " $cmds" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds elif test -n "$archiver_list_spec"; then func_verbose "using command file archive linking..." for obj in $oldobjs do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" done > $output_objdir/$libname.libcmd func_to_tool_file "$output_objdir/$libname.libcmd" oldobjs=" $archiver_list_spec$func_to_tool_file_result" cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts func_verbose "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs oldobjs= # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done eval test_cmds=\"$old_archive_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 for obj in $save_oldobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result func_append objlist " $obj" if test "$len" -lt "$max_cmd_len"; then : else # the above command should be used before it gets too long oldobjs=$objlist if test "$obj" = "$last_oldobj"; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\$concat_cmds$old_archive_cmds\" objlist= len=$len0 fi done RANLIB=$save_RANLIB oldobjs=$objlist if test -z "$oldobjs"; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi func_execute_cmds "$cmds" 'exit $?' done test -n "$generated" && \ func_show_eval "${RM}r$generated" # Now create the libtool archive. case $output in *.la) old_library= test yes = "$build_old_libs" && old_library=$libname.$libext func_verbose "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` if test yes = "$hardcode_automatic"; then relink_command= fi # Only create the output if not a dry run. $opt_dry_run || { for installed in no yes; do if test yes = "$installed"; then if test -z "$install_libdir"; then break fi output=$output_objdir/${outputname}i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) func_basename "$deplib" name=$func_basename_result func_resolve_sysroot "$deplib" eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` test -z "$libdir" && \ func_fatal_error "'$deplib' is not a valid libtool archive" func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" ;; -L*) func_stripname -L '' "$deplib" func_replace_sysroot "$func_stripname_result" func_append newdependency_libs " -L$func_replace_sysroot_result" ;; -R*) func_stripname -R '' "$deplib" func_replace_sysroot "$func_stripname_result" func_append newdependency_libs " -R$func_replace_sysroot_result" ;; *) func_append newdependency_libs " $deplib" ;; esac done dependency_libs=$newdependency_libs newdlfiles= for lib in $dlfiles; do case $lib in *.la) func_basename "$lib" name=$func_basename_result eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "'$lib' is not a valid libtool archive" func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" ;; *) func_append newdlfiles " $lib" ;; esac done dlfiles=$newdlfiles newdlprefiles= for lib in $dlprefiles; do case $lib in *.la) # Only pass preopened files to the pseudo-archive (for # eventual linking with the app. that links it) if we # didn't already link the preopened objects directly into # the library: func_basename "$lib" name=$func_basename_result eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "'$lib' is not a valid libtool archive" func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" ;; esac done dlprefiles=$newdlprefiles else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;; *) abs=`pwd`"/$lib" ;; esac func_append newdlfiles " $abs" done dlfiles=$newdlfiles newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;; *) abs=`pwd`"/$lib" ;; esac func_append newdlprefiles " $abs" done dlprefiles=$newdlprefiles fi $RM $output # place dlname in correct position for cygwin # In fact, it would be nice if we could use this code for all target # systems that can't hard-code library paths into their executables # and that have no shared library path variable independent of PATH, # but it turns out we can't easily determine that from inspecting # libtool variables, so we have to hard-code the OSs to which it # applies here; at the moment, that means platforms that use the PE # object format with DLL files. See the long comment at the top of # tests/bindir.at for full details. tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) # If a -bindir argument was supplied, place the dll there. if test -n "$bindir"; then func_relative_path "$install_libdir" "$bindir" tdlname=$func_relative_path_result/$dlname else # Otherwise fall back on heuristic. tdlname=../bin/$dlname fi ;; esac $ECHO > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM (GNU $PACKAGE) $VERSION # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Linker flags that cannot go in dependency_libs. inherited_linker_flags='$new_inherited_linker_flags' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Names of additional weak libraries provided by this library weak_library_names='$weak_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Should we warn about portability when linking against -modules? shouldnotlink=$module # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test no,yes = "$installed,$need_relink"; then $ECHO >> $output "\ relink_command=\"$relink_command\"" fi done } # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' ;; esac exit $EXIT_SUCCESS } if test link = "$opt_mode" || test relink = "$opt_mode"; then func_mode_link ${1+"$@"} fi # func_mode_uninstall arg... func_mode_uninstall () { $debug_cmd RM=$nonopt files= rmforce=false exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic=$magic for arg do case $arg in -f) func_append RM " $arg"; rmforce=: ;; -*) func_append RM " $arg" ;; *) func_append files " $arg" ;; esac done test -z "$RM" && \ func_fatal_help "you must specify an RM program" rmdirs= for file in $files; do func_dirname "$file" "" "." dir=$func_dirname_result if test . = "$dir"; then odir=$objdir else odir=$dir/$objdir fi func_basename "$file" name=$func_basename_result test uninstall = "$opt_mode" && odir=$dir # Remember odir for removal later, being careful to avoid duplicates if test clean = "$opt_mode"; then case " $rmdirs " in *" $odir "*) ;; *) func_append rmdirs " $odir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if { test -L "$file"; } >/dev/null 2>&1 || { test -h "$file"; } >/dev/null 2>&1 || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif $rmforce; then continue fi rmfiles=$file case $name in *.la) # Possibly a libtool archive, so verify it. if func_lalib_p "$file"; then func_source $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do func_append rmfiles " $odir/$n" done test -n "$old_library" && func_append rmfiles " $odir/$old_library" case $opt_mode in clean) case " $library_names " in *" $dlname "*) ;; *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; esac test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" ;; uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. func_execute_cmds "$postuninstall_cmds" '$rmforce || exit_status=1' fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. func_execute_cmds "$old_postuninstall_cmds" '$rmforce || exit_status=1' fi # FIXME: should reinstall the best remaining shared library. ;; esac fi ;; *.lo) # Possibly a libtool object, so verify it. if func_lalib_p "$file"; then # Read the .lo file func_source $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" && test none != "$pic_object"; then func_append rmfiles " $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" && test none != "$non_pic_object"; then func_append rmfiles " $dir/$non_pic_object" fi fi ;; *) if test clean = "$opt_mode"; then noexename=$name case $file in *.exe) func_stripname '' '.exe' "$file" file=$func_stripname_result func_stripname '' '.exe' "$name" noexename=$func_stripname_result # $file with .exe has already been added to rmfiles, # add $file without .exe func_append rmfiles " $file" ;; esac # Do a test to see if this is a libtool program. if func_ltwrapper_p "$file"; then if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" relink_command= func_source $func_ltwrapper_scriptname_result func_append rmfiles " $func_ltwrapper_scriptname_result" else relink_command= func_source $dir/$noexename fi # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles func_append rmfiles " $odir/$name $odir/${name}S.$objext" if test yes = "$fast_install" && test -n "$relink_command"; then func_append rmfiles " $odir/lt-$name" fi if test "X$noexename" != "X$name"; then func_append rmfiles " $odir/lt-$noexename.c" fi fi fi ;; esac func_show_eval "$RM $rmfiles" 'exit_status=1' done # Try to remove the $objdir's in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then func_show_eval "rmdir $dir >/dev/null 2>&1" fi done exit $exit_status } if test uninstall = "$opt_mode" || test clean = "$opt_mode"; then func_mode_uninstall ${1+"$@"} fi test -z "$opt_mode" && { help=$generic_help func_fatal_help "you must specify a MODE" } test -z "$exec_cmd" && \ func_fatal_help "invalid operation mode '$opt_mode'" if test -n "$exec_cmd"; then eval exec "$exec_cmd" exit $EXIT_FAILURE fi exit $exit_status # The TAGs below are defined such that we never get into a situation # where we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support # them. This is particularly important on AIX, because we don't # support having both static and shared libraries enabled at the same # time on that platform, so we default to a shared-only configuration. # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared build_libtool_libs=no build_old_libs=yes # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: # ### BEGIN LIBTOOL TAG CONFIG: CXX # The linker used to build libraries. LD="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld" # How to create reloadable object files. reload_flag=" -r" reload_cmds="\$LTCC \$LTCFLAGS -nostdlib \$wl-r -o \$output\$reload_objs" # Commands used to build an old-style archive. old_archive_cmds="\$AR \$AR_FLAGS \$oldlib\$oldobjs~\$RANLIB \$tool_oldlib" # A language specific compiler. CC="g++" # Is the compiler the GNU compiler? with_gcc=yes # Compiler flag to turn off builtin functions. no_builtin_flag=" -fno-builtin" # Additional compiler flags for building library objects. pic_flag=" -fno-common -DPIC" # How to pass a linker flag through the compiler. wl="-Wl," # Compiler flag to prevent dynamic linking. link_static_flag="" # Does compiler simultaneously support -c and -o options? compiler_c_o="yes" # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=no # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=no # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec="" # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec="\`for conv in \$convenience\\\"\\\"; do test -n \\\"\$conv\\\" && new_convenience=\\\"\$new_convenience \$wl-force_load,\$conv\\\"; done; func_echo_all \\\"\$new_convenience\\\"\`" # Whether the compiler copes with passing no objects directly. compiler_needs_object="no" # Create an old-style archive from a shared archive. old_archive_from_new_cmds="" # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds="" # Commands used to build a shared archive. archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring \$single_module" archive_expsym_cmds="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring \$single_module \$wl-exported_symbols_list,\$output_objdir/\$libname-symbols.expsym" # Commands used to build a loadable module if different from building # a shared archive. module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags" module_expsym_cmds="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags \$wl-exported_symbols_list,\$output_objdir/\$libname-symbols.expsym" # Whether we are building with GNU ld or not. with_gnu_ld="no" # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag="\$wl-undefined \${wl}dynamic_lookup" # Flag that enforces no undefined symbols. no_undefined_flag="" # Flag to hardcode $libdir into a binary during linking. # This must work even if $libdir does not exist hardcode_libdir_flag_spec="" # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator="" # Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes # DIR into the resulting binary. hardcode_direct=no # Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting $shlibpath_var if the # library is relocated. hardcode_direct_absolute=no # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=no # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=unsupported # Set to "yes" if building a shared library automatically hardcodes DIR # into the library and all subsequent libraries and executables linked # against it. hardcode_automatic=yes # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=no # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=yes # Set to "yes" if exported symbols are required. always_export_symbols=no # The commands to list exported symbols. export_symbols_cmds="\$NM \$libobjs \$convenience | \$global_symbol_pipe | \$SED 's/.* //' | sort | uniq > \$export_symbols" # Symbols that should not be listed in the preloaded symbols. exclude_expsyms="_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*" # Symbols that must always be exported. include_expsyms="" # Commands necessary for linking programs (against libraries) with templates. prelink_cmds="" # Commands necessary for finishing linking programs. postlink_cmds="" # Specify filename containing input files. file_list_spec="" # How to hardcode a shared library path into an executable. hardcode_action=immediate # The directories searched by this compiler when creating a shared library. compiler_lib_search_dirs="" # Dependencies to place before and after the objects being linked to # create a shared library. predep_objects="" postdep_objects="" predeps="" postdeps="" # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path="" # ### END LIBTOOL TAG CONFIG: CXX mysql++-3.2.5/osver000755 000765 000024 00000000524 13515046514 014710 0ustar00tangentstaff000000 000000 #!/bin/sh if grep Red /etc/issue > /dev/null 2>&1 then echo -n rh grep Red /etc/issue |cut -f5 -d' ' elif grep Fedora /etc/issue > /dev/null 2>&1 then echo -n fc grep Fedora /etc/issue |cut -f4 -d' ' elif grep CentOS /etc/issue > /dev/null 2>&1 then echo -n el grep CentOS /etc/issue |cut -f3 -d' ' |cut -f1 -d. else echo UNKNOWN fi mysql++-3.2.5/README-Linux.txt000644 000765 000024 00000007132 13515046514 016421 0ustar00tangentstaff000000 000000 Linux is basically Unix, so README-Unix.txt covers the generic bits. I'll just cover a few of the issues specific to Linux here. Prerequisite: Install the MySQL Development Files ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ MySQL++ is built on top of the MySQL C API library, so it needs the C API development files to build against. Most distributions of the MySQL server for Linux don't come with these development files; they're packaged separately. This is because you don't actually need the server on your development machine, though it's often more convenient to use a local server than a remote one, for testing. There are about as many different ways to get the C API development files on your system as there are major Linux distributions. More actually, because you also have the option of the official MySQL binaries from mysql.com: http://dev.mysql.com/downloads/mysql/5.0.html#linux For RPM-based distributions, MySQL comes in several different packages. You need at least the -devel and the -shared packages to build MySQL++. The other binary distributions seem to come in just a single file, presumably with everything included. You can also build from source, in which case you will also get the entire kit and kaboodle. MySQL frequently comes with Linux distributions as well. If your distribution doesn't come with at least MySQL v4.1, I recommend using the official MySQL.com packages instead. MySQL++ can be made to run with 4.0 and older, but it takes some work. On Red Hat type systems with yum, say: # yum install mysql-devel If you want to use rpm directly, you need that package and probably the base mysql package as well. On Debian/Ubuntu type systems, say: $ sudo apt-get install libmysqlclient15-dev The version number is the ABI version of the MySQL C API library. ABI version 15 corresponds to MySQL version 5.0, the recommended stable version as of this writing. Dealing with the Dynamic Linker, ld.so ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ld.so is a system-level program on Linux which is used to run any program that uses shared libraries (lib*.so). Its job is to find the libraries and link them to the base executable so it will run. Because ld.so only looks in a few places for libraries on most systems, a common problem is a program that builds without error but won't run, complaining about libmysqlpp.SOMETHING. There are a number of ways to deal with this. First, you could just configure MySQL++ to install under /usr instead of /usr/local, like system-provided packages: $ ./configure --prefix=/usr This isn't recommended practice when building packages from source, but it does work. Second, you can add the MySQL++ library directory to the LD_LIBRARY_PATH environment variable. This works like the shell's PATH variable: a colon-separated list of directories to search. This is best when the installation directory is something totally uncommon, or you don't have root permissions on the box so you can't do the next option. Finally, the most robust way to tell ld.so about a nonstandard library directory is to put it in /etc/ld.so.conf or in one of the files included from there. Then, run ldconfig as root to rebuild the cache file ld.so uses to find libraries in these nonstandard directories. Running ldconfig isn't necessary for the previous two methods. mysql++-3.2.5/install-sh000755 000765 000024 00000036010 13515046514 015627 0ustar00tangentstaff000000 000000 #!/bin/sh # install - install a program, script, or datafile scriptversion=2018-03-11.20; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # 'make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. tab=' ' nl=' ' IFS=" $tab$nl" # Set DOITPROG to "echo" to test this script. doit=${DOITPROG-} doit_exec=${doit:-exec} # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false is_target_a_directory=possibly usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) is_target_a_directory=always dst_arg=$2 # Protect names problematic for 'test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac shift;; -T) is_target_a_directory=never;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done # We allow the use of options -d and -T together, by making -d # take the precedence; this is for compatibility with GNU install. if test -n "$dir_arg"; then if test -n "$dst_arg"; then echo "$0: target directory not allowed when installing a directory." >&2 exit 1 fi fi if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg # Protect names problematic for 'test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call 'install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then if test $# -gt 1 || test "$is_target_a_directory" = always; then if test ! -d "$dst_arg"; then echo "$0: $dst_arg: Is not a directory." >&2 exit 1 fi fi fi if test -z "$dir_arg"; then do_exit='(exit $ret); exit $ret' trap "ret=129; $do_exit" 1 trap "ret=130; $do_exit" 2 trap "ret=141; $do_exit" 13 trap "ret=143; $do_exit" 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names problematic for 'test' and other utilities. case $src in -* | [=\(\)!]) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # If destination is a directory, append the input filename. if test -d "$dst"; then if test "$is_target_a_directory" = never; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dstbase=`basename "$src"` case $dst in */) dst=$dst$dstbase;; *) dst=$dst/$dstbase;; esac dstdir_status=0 else dstdir=`dirname "$dst"` test -d "$dstdir" dstdir_status=$? fi fi case $dstdir in */) dstdirslash=$dstdir;; *) dstdirslash=$dstdir/;; esac obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) # Note that $RANDOM variable is not portable (e.g. dash); Use it # here however when possible just to lower collision chance. tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0 # Because "mkdir -p" follows existing symlinks and we likely work # directly in world-writeable /tmp, make sure that the '$tmpdir' # directory is successfully created first before we actually test # 'mkdir -p' feature. if (umask $mkdir_umask && $mkdirprog $mkdir_mode "$tmpdir" && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. test_tmpdir="$tmpdir/a" ls_ld_tmpdir=`ls -ld "$test_tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$test_tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; [-=\(\)!]*) prefix='./';; *) prefix='';; esac oIFS=$IFS IFS=/ set -f set fnord $dstdir shift set +f IFS=$oIFS prefixes= for d do test X"$d" = X && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=${dstdirslash}_inst.$$_ rmtmp=${dstdirslash}_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: mysql++-3.2.5/README-Cygwin.txt000644 000765 000024 00000001751 13515046514 016563 0ustar00tangentstaff000000 000000 Prerequisite: Install MySQL ~~~~~~~~~~~~~~~~~~~~~~~~~~~ Before you can build MySQL++, you need to install the libmysqlclient-devel package with Cygwin's setup.exe. In the past, you had to build MySQL from source, since there was no reliable place to get a binary version of the client library for Cygwin. If you must still do this for some reason, here's a hint on how to build just the client library, since you probably will be running either a native Windows version of the server, or have the server installed on another machine entirely: $ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \ --infodir=/usr/share/info --mandir=/usr/share/man \ --disable-shared --without-{debug,readline,libedit,server} Building the Library and Example Programs ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Having done that, Cygwin behaves like any other Unixy system. See the instructions in README-Unix.txt. mysql++-3.2.5/configure.ac000644 000765 000024 00000006330 13515046514 016113 0ustar00tangentstaff000000 000000 # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published # by the Free Software Foundation; either version 2.1 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with MySQL++; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 # USA # Standard autotools stuff AC_INIT(mysql++, 3.2.5, plusplus@lists.mysql.com, mysql++) AC_CONFIG_HEADER(config.h) AC_CONFIG_MACRO_DIR([config]) AC_CANONICAL_SYSTEM # Enable libtool to decide shared library compile flags (ie -fPIC) AC_PROG_LIBTOOL AC_SUBST([LIBTOOL_DEPS]) # Break package version up into major, minor and bugfix components. MYSQLPP_VERSION_MAJOR=`echo $PACKAGE_VERSION | cut -f1 -d.` AC_SUBST(MYSQLPP_VERSION_MAJOR) MYSQLPP_VERSION_MINOR=`echo $PACKAGE_VERSION | cut -f2 -d.` AC_SUBST(MYSQLPP_VERSION_MINOR) MYSQLPP_VERSION_BUGFIX=`echo $PACKAGE_VERSION | cut -f3 -d.` AC_SUBST(MYSQLPP_VERSION_BUGFIX) # Check for Standard C support AC_PROG_CC AC_HEADER_STDC # Figure out whether/how to handle threading support, if available. AC_ARG_ENABLE(thread-check, [ --enable-thread-check Check for threads, and use if available. ], [ thread_check=yes ]) if test "x$thread_check" = "xyes" then ACX_PTHREAD LIBS="$PTHREAD_LIBS $LIBS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" CC="$PTHREAD_CC" AC_CHECK_HEADERS(synch.h) AC_CHECK_HEADERS(unistd.h) fi # Let caller provide -f to lib/*.pl scripts in a uniform way AC_ARG_WITH([field-limit], AS_HELP_STRING([--with-field-limit=], [set max template query and SSQLS field count]), [], []) if test -n "$with_field_limit" then ( cd lib ; ./querydef.pl -f $with_field_limit ; ./ssqls.pl -f $with_field_limit ) fi # Try to find local getopt(); if we fail, we'll use the one in lib/cmdline.* AC_CHECK_FUNC(getopt, [AC_DEFINE(HAVE_POSIX_GETOPT, [], Define if getopt() is available in unistd.h)], [AC_CHECK_LIB(iberty, getopt, [AC_DEFINE(HAVE_LIBIBERTY_GETOPT, [], Define if getopt() is available in libiberty.h)], [])]) # Checks for libraries and local system features LIB_MATH LIB_SOCKET_NSL MYSQL_C_API_LOCATION MYSQL_WITH_SSL AX_C_LOCALTIME_R AC_CHECK_LIB(intl, main) # If this is Cygwin, add a linker flag to suppress a silly link message. case "${host}" in *cygwin*) LDFLAGS="$LDFLAGS -Wl,--enable-auto-import" ;; esac # Check for Standard C++ support, and extensions. This must be near # the end, because the CPLUSPLUS directive makes autoconf use C++ # compiler for all subsequent tests! AC_PROG_CXX AC_LANG_CPLUSPLUS STL_SLIST_EXTENSION # Include Bakefile macros AC_BAKEFILE([m4_include(config/autoconf_inc.m4)]) # # Configure process complete; write out files generated from *.in. # AC_OUTPUT([\ doc/userman/userman.dbx \ install.hta \ lib/Doxyfile \ lib/mysql++.h \ ssx/Doxyfile \ abi.xml \ mysql++.spec \ Makefile \ version ]) chmod +x version mysql++-3.2.5/mysql++.bkl-original000644 000765 000024 00000051561 13515046514 017422 0ustar00tangentstaff000000 000000 $(DOLLAR)$(DOLLAR)d $(DOLLAR)$(DOLLAR)e $(DOLLAR)$(DOLLAR)f 3.1.0 ../$(STABLEABI)/abi_dumps/mysqlpp ./abi_dumps/mysqlpp no single yes multi C:\Program Files\MySQL\MySQL Connector C 6.1 on off off speed _d yes yes yes yes $(PREFIX)/include/mysql++ .. mysqlpp$(DEBUG_SUFFIX) mysqlpp$(DEBUG_SUFFIX) 3.2.5 lib/beemutex.cpp lib/cmdline.cpp lib/connection.cpp lib/cpool.cpp lib/datetime.cpp lib/dbdriver.cpp lib/field_names.cpp lib/field_types.cpp lib/manip.cpp lib/myset.cpp lib/mysql++.cpp lib/mystring.cpp lib/null.cpp lib/options.cpp lib/qparms.cpp lib/query.cpp lib/result.cpp lib/row.cpp lib/scopedconnection.cpp lib/sql_buffer.cpp lib/sqlstream.cpp lib/ssqls2.cpp lib/stadapter.cpp lib/tcp_connection.cpp lib/transaction.cpp lib/type_info.cpp lib/uds_connection.cpp lib/utility.cpp lib/vallist.cpp lib/wnp_connection.cpp $(DEBUGINFO) $(OPTIMIZE_FLAG) $(THREAD_TYPE) on on $(LIBDIR) UNICODE _UNICODE wsock32 MYSQLPP_MAKING_DLL HAVE_MYSQL_SSL_SET $(MYSQL_WIN_DIR)\include $(MYSQL_WIN_DIR)\lib libmysql MYSQLPP_NO_DLL HAVE_MYSQL_SSL_SET "$(MYSQL_WIN_DIR)\include" -Wl,--enable-stdcall-fixup "$(MYSQL_WIN_DIR)\lib" mysql lib/ssqls.h lib/querydef.h @PTHREAD_CFLAGS@ . @MYSQL_C_INC_DIR@ -L@MYSQL_C_LIB_DIR@ -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ HAVE_POSIX_GETOPT MYSQLPP_XCODE /usr/local/mysql/include -lmysqlclient /usr/local/mysql/lib lib/*.h $(HEADER_DIR) mysqlpp_ssqls2parse ssx/parsev2.cpp . mysqlpp mysqlpp ssx/genv2.cpp ssx/main.cpp test/array_index.cpp test/cpool.cpp test/datetime.cpp test/inttypes.cpp test/insertpolicy.cpp test/manip.cpp test/null_comparison.cpp test/query_copy.cpp test/qssqls.cpp test/qstream.cpp test/sqlstream.cpp test/ssqls2.cpp ssqls2parse mysqlpp_ssqls2parse test/string.cpp test/tcp.cpp test/uds.cpp test/wnp.cpp mysqlpp_excommon examples/printdata.cpp examples/cgi_jpeg.cpp examples/cpool.cpp examples/dbinfo.cpp examples/deadlock.cpp examples/fieldinf.cpp examples/for_each.cpp examples/load_jpeg.cpp examples/multiquery.cpp examples/resetdb.cpp examples/simple1.cpp examples/simple2.cpp examples/simple3.cpp examples/ssqls1.cpp examples/ssqls2.cpp examples/ssqls3.cpp examples/ssqls4.cpp examples/ssqls5.cpp $ examples/ssqls6.cpp $ examples/store_if.cpp examples/tquery1.cpp examples/tquery2.cpp examples/tquery3.cpp examples/tquery4.cpp examples/transaction.cpp @PACKAGE_NAME@-@PACKAGE_VERSION@ rm -rf doc/latex doc/pdf ; \ cd doc/html/refman ; \ for e in dot html map md5 png ; \ do \ rm -f doxygen.css [a-z]*.$(DDE) ; \ done -rmdir $(HEADER_DIR) rm -f $(DESTDIR)$(libdir)/$(DLLPREFIX)mysqlpp.$(SO_SUFFIX) configure.ac install.hta.in mysql++.bkl mysql++.spec.in doc/userman/userman.dbx.in lib/Doxyfile.in lib/mysql++.h.in ssx/Doxyfile.in bakefile_gen ./config.status cd lib ; ./ssqls.pl lib/ssqls.pl cd lib ; ./querydef.pl lib/querydef.pl ctags --recurse=yes . tags lib/Doxyfile lib/*.cpp lib/*.h cd lib ; doxygen > /dev/null ssx/Doxyfile ssx/*.cpp ssx/*.h cd ssx ; doxygen > /dev/null doc/userman/*.dbx doc/userman/userman.dbx.in cd doc/userman ; make html pdf doc/html/refman/index.html doc/html/refman/ssx/index.html doc/html/userman/index.html for d in config doc/html/refman/ssx doc/html/userman \ doc/refman doc/userman examples lib ssx test ; \ do \ mkdir -p $(PKGNAME)/$(DDD) ; \ done cp -RL *.bat *.css *.in *.md *.txt abi.xml aclocal.m4 \ Bakefiles.bkgen bootstrap cleanmf config.guess config.h \ config.sub configure* dtest \exrun install* Makefile.* \ mysql++.* osver $(PKGNAME) for d in vc200? ; do \ mkdir -p $(PKGNAME)/$(DDD) ; \ cp $(DDD)/*.sln $(DDD)/*.vcproj $(PKGNAME)/$(DDD) ; \ done cp config/*.m4 $(PKGNAME)/config cp -RL doc/README* doc/pdf doc/ssqls-pretty $(PKGNAME)/doc for f in fo2pdf LICENSE.txt Makefile Makefile.hello.* mktxt README.txt \*.dbx \*.in \*.mod \*.txt \*.xsl ; \ do \ cp doc/userman/$(DDF) $(PKGNAME)/doc/userman ; \ done find doc \( -name *.css -o -name *.html \) -exec install {} $(PKGNAME)/{} \; cp doc/html/refman/*.png $(PKGNAME)/doc/html/refman cp doc/userman/userman.dbx.in $(PKGNAME)/doc/userman for e in cpp h jpg txt ; \ do \ cp examples/*.$(DDE) $(PKGNAME)/examples ; \ done for d in mfc wforms ; \ do \ mkdir -p $(PKGNAME)/examples/vstudio/$(DDD) ; \ cp examples/vstudio/$(DDD)/* $(PKGNAME)/examples/vstudio/$(DDD) ; \ done cp lib/*.cpp lib/*.h lib/*.in lib/*.pl $(PKGNAME)/lib cp test/*.cpp $(PKGNAME)/test cp ssx/*.cpp ssx/*.h ssx/*.in $(PKGNAME)/ssx cd $(PKGNAME) ; ./bootstrap nodoc nomaint rm -f $(PKGNAME)/Makefile rm -f $(PKGNAME)/config.log rm -f $(PKGNAME)/config.status rm -fr $(PKGNAME)/autom4te.cache doc $(PKGNAME) tar -chz -f $(PKGNAME).tar.gz $(PKGNAME) rm -rf $(PKGNAME) doc dist cp $(PKGNAME).tar.gz ~/rpmbuild/SOURCES cd ~/rpmbuild/SPECS rpm-prep rpmbuild -ba mysql++.spec rpm-prep rpmbuild -bs mysql++.spec dist cp $(PKGNAME).tar.gz /usr/portage/distfiles cp mysql++.ebuild /usr/portage/dev-db/mysql++/$(PKGNAME).ebuild ebuild /usr/portage/dev-db/mysql++/$(PKGNAME).ebuild digest mysql++-3.2.5/cleanmf000755 000765 000024 00000000064 13515046514 015156 0ustar00tangentstaff000000 000000 #!/bin/sh rm -f Makefile* rm -rf *.xcodeproj vc200? mysql++-3.2.5/ltmain.sh000644 000765 000024 00001170771 13515046525 015463 0ustar00tangentstaff000000 000000 #! /bin/sh ## DO NOT EDIT - This file generated from ./build-aux/ltmain.in ## by inline-source v2014-01-03.01 # libtool (GNU libtool) 2.4.6 # Provide generalized library-building support services. # Written by Gordon Matzigkeit , 1996 # Copyright (C) 1996-2015 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # GNU Libtool is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # As a special exception to the GNU General Public License, # if you distribute this file as part of a program or library that # is built using GNU Libtool, you may include this file under the # same distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . PROGRAM=libtool PACKAGE=libtool VERSION=2.4.6 package_revision=2.4.6 ## ------ ## ## Usage. ## ## ------ ## # Run './libtool --help' for help with using this script from the # command line. ## ------------------------------- ## ## User overridable command paths. ## ## ------------------------------- ## # After configure completes, it has a better idea of some of the # shell tools we need than the defaults used by the functions shared # with bootstrap, so set those here where they can still be over- # ridden by the user, but otherwise take precedence. : ${AUTOCONF="autoconf"} : ${AUTOMAKE="automake"} ## -------------------------- ## ## Source external libraries. ## ## -------------------------- ## # Much of our low-level functionality needs to be sourced from external # libraries, which are installed to $pkgauxdir. # Set a version string for this script. scriptversion=2015-01-20.17; # UTC # General shell script boiler plate, and helper functions. # Written by Gary V. Vaughan, 2004 # Copyright (C) 2004-2015 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # As a special exception to the GNU General Public License, if you distribute # this file as part of a program or library that is built using GNU Libtool, # you may include this file under the same distribution terms that you use # for the rest of that program. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNES FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # Please report bugs or propose patches to gary@gnu.org. ## ------ ## ## Usage. ## ## ------ ## # Evaluate this file near the top of your script to gain access to # the functions and variables defined here: # # . `echo "$0" | ${SED-sed} 's|[^/]*$||'`/build-aux/funclib.sh # # If you need to override any of the default environment variable # settings, do that before evaluating this file. ## -------------------- ## ## Shell normalisation. ## ## -------------------- ## # Some shells need a little help to be as Bourne compatible as possible. # Before doing anything else, make sure all that help has been provided! DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi # NLS nuisances: We save the old values in case they are required later. _G_user_locale= _G_safe_locale= for _G_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test set = \"\${$_G_var+set}\"; then save_$_G_var=\$$_G_var $_G_var=C export $_G_var _G_user_locale=\"$_G_var=\\\$save_\$_G_var; \$_G_user_locale\" _G_safe_locale=\"$_G_var=C; \$_G_safe_locale\" fi" done # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Make sure IFS has a sensible default sp=' ' nl=' ' IFS="$sp $nl" # There are apparently some retarded systems that use ';' as a PATH separator! if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi ## ------------------------- ## ## Locate command utilities. ## ## ------------------------- ## # func_executable_p FILE # ---------------------- # Check that FILE is an executable regular file. func_executable_p () { test -f "$1" && test -x "$1" } # func_path_progs PROGS_LIST CHECK_FUNC [PATH] # -------------------------------------------- # Search for either a program that responds to --version with output # containing "GNU", or else returned by CHECK_FUNC otherwise, by # trying all the directories in PATH with each of the elements of # PROGS_LIST. # # CHECK_FUNC should accept the path to a candidate program, and # set $func_check_prog_result if it truncates its output less than # $_G_path_prog_max characters. func_path_progs () { _G_progs_list=$1 _G_check_func=$2 _G_PATH=${3-"$PATH"} _G_path_prog_max=0 _G_path_prog_found=false _G_save_IFS=$IFS; IFS=${PATH_SEPARATOR-:} for _G_dir in $_G_PATH; do IFS=$_G_save_IFS test -z "$_G_dir" && _G_dir=. for _G_prog_name in $_G_progs_list; do for _exeext in '' .EXE; do _G_path_prog=$_G_dir/$_G_prog_name$_exeext func_executable_p "$_G_path_prog" || continue case `"$_G_path_prog" --version 2>&1` in *GNU*) func_path_progs_result=$_G_path_prog _G_path_prog_found=: ;; *) $_G_check_func $_G_path_prog func_path_progs_result=$func_check_prog_result ;; esac $_G_path_prog_found && break 3 done done done IFS=$_G_save_IFS test -z "$func_path_progs_result" && { echo "no acceptable sed could be found in \$PATH" >&2 exit 1 } } # We want to be able to use the functions in this file before configure # has figured out where the best binaries are kept, which means we have # to search for them ourselves - except when the results are already set # where we skip the searches. # Unless the user overrides by setting SED, search the path for either GNU # sed, or the sed that truncates its output the least. test -z "$SED" && { _G_sed_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for _G_i in 1 2 3 4 5 6 7; do _G_sed_script=$_G_sed_script$nl$_G_sed_script done echo "$_G_sed_script" 2>/dev/null | sed 99q >conftest.sed _G_sed_script= func_check_prog_sed () { _G_path_prog=$1 _G_count=0 printf 0123456789 >conftest.in while : do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo '' >> conftest.nl "$_G_path_prog" -f conftest.sed conftest.out 2>/dev/null || break diff conftest.out conftest.nl >/dev/null 2>&1 || break _G_count=`expr $_G_count + 1` if test "$_G_count" -gt "$_G_path_prog_max"; then # Best one so far, save it but keep looking for a better one func_check_prog_result=$_G_path_prog _G_path_prog_max=$_G_count fi # 10*(2^10) chars as input seems more than enough test 10 -lt "$_G_count" && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out } func_path_progs "sed gsed" func_check_prog_sed $PATH:/usr/xpg4/bin rm -f conftest.sed SED=$func_path_progs_result } # Unless the user overrides by setting GREP, search the path for either GNU # grep, or the grep that truncates its output the least. test -z "$GREP" && { func_check_prog_grep () { _G_path_prog=$1 _G_count=0 _G_path_prog_max=0 printf 0123456789 >conftest.in while : do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo 'GREP' >> conftest.nl "$_G_path_prog" -e 'GREP$' -e '-(cannot match)-' conftest.out 2>/dev/null || break diff conftest.out conftest.nl >/dev/null 2>&1 || break _G_count=`expr $_G_count + 1` if test "$_G_count" -gt "$_G_path_prog_max"; then # Best one so far, save it but keep looking for a better one func_check_prog_result=$_G_path_prog _G_path_prog_max=$_G_count fi # 10*(2^10) chars as input seems more than enough test 10 -lt "$_G_count" && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out } func_path_progs "grep ggrep" func_check_prog_grep $PATH:/usr/xpg4/bin GREP=$func_path_progs_result } ## ------------------------------- ## ## User overridable command paths. ## ## ------------------------------- ## # All uppercase variable names are used for environment variables. These # variables can be overridden by the user before calling a script that # uses them if a suitable command of that name is not already available # in the command search PATH. : ${CP="cp -f"} : ${ECHO="printf %s\n"} : ${EGREP="$GREP -E"} : ${FGREP="$GREP -F"} : ${LN_S="ln -s"} : ${MAKE="make"} : ${MKDIR="mkdir"} : ${MV="mv -f"} : ${RM="rm -f"} : ${SHELL="${CONFIG_SHELL-/bin/sh}"} ## -------------------- ## ## Useful sed snippets. ## ## -------------------- ## sed_dirname='s|/[^/]*$||' sed_basename='s|^.*/||' # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. sed_quote_subst='s|\([`"$\\]\)|\\\1|g' # Same as above, but do not quote variable references. sed_double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution that turns a string into a regex matching for the # string literally. sed_make_literal_regex='s|[].[^$\\*\/]|\\&|g' # Sed substitution that converts a w32 file name or path # that contains forward slashes, into one that contains # (escaped) backslashes. A very naive implementation. sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' # Re-'\' parameter expansions in output of sed_double_quote_subst that # were '\'-ed in input to the same. If an odd number of '\' preceded a # '$' in input to sed_double_quote_subst, that '$' was protected from # expansion. Since each input '\' is now two '\'s, look for any number # of runs of four '\'s followed by two '\'s and then a '$'. '\' that '$'. _G_bs='\\' _G_bs2='\\\\' _G_bs4='\\\\\\\\' _G_dollar='\$' sed_double_backslash="\ s/$_G_bs4/&\\ /g s/^$_G_bs2$_G_dollar/$_G_bs&/ s/\\([^$_G_bs]\\)$_G_bs2$_G_dollar/\\1$_G_bs2$_G_bs$_G_dollar/g s/\n//g" ## ----------------- ## ## Global variables. ## ## ----------------- ## # Except for the global variables explicitly listed below, the following # functions in the '^func_' namespace, and the '^require_' namespace # variables initialised in the 'Resource management' section, sourcing # this file will not pollute your global namespace with anything # else. There's no portable way to scope variables in Bourne shell # though, so actually running these functions will sometimes place # results into a variable named after the function, and often use # temporary variables in the '^_G_' namespace. If you are careful to # avoid using those namespaces casually in your sourcing script, things # should continue to work as you expect. And, of course, you can freely # overwrite any of the functions or variables defined here before # calling anything to customize them. EXIT_SUCCESS=0 EXIT_FAILURE=1 EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. # Allow overriding, eg assuming that you follow the convention of # putting '$debug_cmd' at the start of all your functions, you can get # bash to show function call trace with: # # debug_cmd='eval echo "${FUNCNAME[0]} $*" >&2' bash your-script-name debug_cmd=${debug_cmd-":"} exit_cmd=: # By convention, finish your script with: # # exit $exit_status # # so that you can set exit_status to non-zero if you want to indicate # something went wrong during execution without actually bailing out at # the point of failure. exit_status=$EXIT_SUCCESS # Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh # is ksh but when the shell is invoked as "sh" and the current value of # the _XPG environment variable is not equal to 1 (one), the special # positional parameter $0, within a function call, is the name of the # function. progpath=$0 # The name of this program. progname=`$ECHO "$progpath" |$SED "$sed_basename"` # Make sure we have an absolute progpath for reexecution: case $progpath in [\\/]*|[A-Za-z]:\\*) ;; *[\\/]*) progdir=`$ECHO "$progpath" |$SED "$sed_dirname"` progdir=`cd "$progdir" && pwd` progpath=$progdir/$progname ;; *) _G_IFS=$IFS IFS=${PATH_SEPARATOR-:} for progdir in $PATH; do IFS=$_G_IFS test -x "$progdir/$progname" && break done IFS=$_G_IFS test -n "$progdir" || progdir=`pwd` progpath=$progdir/$progname ;; esac ## ----------------- ## ## Standard options. ## ## ----------------- ## # The following options affect the operation of the functions defined # below, and should be set appropriately depending on run-time para- # meters passed on the command line. opt_dry_run=false opt_quiet=false opt_verbose=false # Categories 'all' and 'none' are always available. Append any others # you will pass as the first argument to func_warning from your own # code. warning_categories= # By default, display warnings according to 'opt_warning_types'. Set # 'warning_func' to ':' to elide all warnings, or func_fatal_error to # treat the next displayed warning as a fatal error. warning_func=func_warn_and_continue # Set to 'all' to display all warnings, 'none' to suppress all # warnings, or a space delimited list of some subset of # 'warning_categories' to display only the listed warnings. opt_warning_types=all ## -------------------- ## ## Resource management. ## ## -------------------- ## # This section contains definitions for functions that each ensure a # particular resource (a file, or a non-empty configuration variable for # example) is available, and if appropriate to extract default values # from pertinent package files. Call them using their associated # 'require_*' variable to ensure that they are executed, at most, once. # # It's entirely deliberate that calling these functions can set # variables that don't obey the namespace limitations obeyed by the rest # of this file, in order that that they be as useful as possible to # callers. # require_term_colors # ------------------- # Allow display of bold text on terminals that support it. require_term_colors=func_require_term_colors func_require_term_colors () { $debug_cmd test -t 1 && { # COLORTERM and USE_ANSI_COLORS environment variables take # precedence, because most terminfo databases neglect to describe # whether color sequences are supported. test -n "${COLORTERM+set}" && : ${USE_ANSI_COLORS="1"} if test 1 = "$USE_ANSI_COLORS"; then # Standard ANSI escape sequences tc_reset='' tc_bold=''; tc_standout='' tc_red=''; tc_green='' tc_blue=''; tc_cyan='' else # Otherwise trust the terminfo database after all. test -n "`tput sgr0 2>/dev/null`" && { tc_reset=`tput sgr0` test -n "`tput bold 2>/dev/null`" && tc_bold=`tput bold` tc_standout=$tc_bold test -n "`tput smso 2>/dev/null`" && tc_standout=`tput smso` test -n "`tput setaf 1 2>/dev/null`" && tc_red=`tput setaf 1` test -n "`tput setaf 2 2>/dev/null`" && tc_green=`tput setaf 2` test -n "`tput setaf 4 2>/dev/null`" && tc_blue=`tput setaf 4` test -n "`tput setaf 5 2>/dev/null`" && tc_cyan=`tput setaf 5` } fi } require_term_colors=: } ## ----------------- ## ## Function library. ## ## ----------------- ## # This section contains a variety of useful functions to call in your # scripts. Take note of the portable wrappers for features provided by # some modern shells, which will fall back to slower equivalents on # less featureful shells. # func_append VAR VALUE # --------------------- # Append VALUE onto the existing contents of VAR. # We should try to minimise forks, especially on Windows where they are # unreasonably slow, so skip the feature probes when bash or zsh are # being used: if test set = "${BASH_VERSION+set}${ZSH_VERSION+set}"; then : ${_G_HAVE_ARITH_OP="yes"} : ${_G_HAVE_XSI_OPS="yes"} # The += operator was introduced in bash 3.1 case $BASH_VERSION in [12].* | 3.0 | 3.0*) ;; *) : ${_G_HAVE_PLUSEQ_OP="yes"} ;; esac fi # _G_HAVE_PLUSEQ_OP # Can be empty, in which case the shell is probed, "yes" if += is # useable or anything else if it does not work. test -z "$_G_HAVE_PLUSEQ_OP" \ && (eval 'x=a; x+=" b"; test "a b" = "$x"') 2>/dev/null \ && _G_HAVE_PLUSEQ_OP=yes if test yes = "$_G_HAVE_PLUSEQ_OP" then # This is an XSI compatible shell, allowing a faster implementation... eval 'func_append () { $debug_cmd eval "$1+=\$2" }' else # ...otherwise fall back to using expr, which is often a shell builtin. func_append () { $debug_cmd eval "$1=\$$1\$2" } fi # func_append_quoted VAR VALUE # ---------------------------- # Quote VALUE and append to the end of shell variable VAR, separated # by a space. if test yes = "$_G_HAVE_PLUSEQ_OP"; then eval 'func_append_quoted () { $debug_cmd func_quote_for_eval "$2" eval "$1+=\\ \$func_quote_for_eval_result" }' else func_append_quoted () { $debug_cmd func_quote_for_eval "$2" eval "$1=\$$1\\ \$func_quote_for_eval_result" } fi # func_append_uniq VAR VALUE # -------------------------- # Append unique VALUE onto the existing contents of VAR, assuming # entries are delimited by the first character of VALUE. For example: # # func_append_uniq options " --another-option option-argument" # # will only append to $options if " --another-option option-argument " # is not already present somewhere in $options already (note spaces at # each end implied by leading space in second argument). func_append_uniq () { $debug_cmd eval _G_current_value='`$ECHO $'$1'`' _G_delim=`expr "$2" : '\(.\)'` case $_G_delim$_G_current_value$_G_delim in *"$2$_G_delim"*) ;; *) func_append "$@" ;; esac } # func_arith TERM... # ------------------ # Set func_arith_result to the result of evaluating TERMs. test -z "$_G_HAVE_ARITH_OP" \ && (eval 'test 2 = $(( 1 + 1 ))') 2>/dev/null \ && _G_HAVE_ARITH_OP=yes if test yes = "$_G_HAVE_ARITH_OP"; then eval 'func_arith () { $debug_cmd func_arith_result=$(( $* )) }' else func_arith () { $debug_cmd func_arith_result=`expr "$@"` } fi # func_basename FILE # ------------------ # Set func_basename_result to FILE with everything up to and including # the last / stripped. if test yes = "$_G_HAVE_XSI_OPS"; then # If this shell supports suffix pattern removal, then use it to avoid # forking. Hide the definitions single quotes in case the shell chokes # on unsupported syntax... _b='func_basename_result=${1##*/}' _d='case $1 in */*) func_dirname_result=${1%/*}$2 ;; * ) func_dirname_result=$3 ;; esac' else # ...otherwise fall back to using sed. _b='func_basename_result=`$ECHO "$1" |$SED "$sed_basename"`' _d='func_dirname_result=`$ECHO "$1" |$SED "$sed_dirname"` if test "X$func_dirname_result" = "X$1"; then func_dirname_result=$3 else func_append func_dirname_result "$2" fi' fi eval 'func_basename () { $debug_cmd '"$_b"' }' # func_dirname FILE APPEND NONDIR_REPLACEMENT # ------------------------------------------- # Compute the dirname of FILE. If nonempty, add APPEND to the result, # otherwise set result to NONDIR_REPLACEMENT. eval 'func_dirname () { $debug_cmd '"$_d"' }' # func_dirname_and_basename FILE APPEND NONDIR_REPLACEMENT # -------------------------------------------------------- # Perform func_basename and func_dirname in a single function # call: # dirname: Compute the dirname of FILE. If nonempty, # add APPEND to the result, otherwise set result # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE. # value retuned in "$func_basename_result" # For efficiency, we do not delegate to the functions above but instead # duplicate the functionality here. eval 'func_dirname_and_basename () { $debug_cmd '"$_b"' '"$_d"' }' # func_echo ARG... # ---------------- # Echo program name prefixed message. func_echo () { $debug_cmd _G_message=$* func_echo_IFS=$IFS IFS=$nl for _G_line in $_G_message; do IFS=$func_echo_IFS $ECHO "$progname: $_G_line" done IFS=$func_echo_IFS } # func_echo_all ARG... # -------------------- # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "$*" } # func_echo_infix_1 INFIX ARG... # ------------------------------ # Echo program name, followed by INFIX on the first line, with any # additional lines not showing INFIX. func_echo_infix_1 () { $debug_cmd $require_term_colors _G_infix=$1; shift _G_indent=$_G_infix _G_prefix="$progname: $_G_infix: " _G_message=$* # Strip color escape sequences before counting printable length for _G_tc in "$tc_reset" "$tc_bold" "$tc_standout" "$tc_red" "$tc_green" "$tc_blue" "$tc_cyan" do test -n "$_G_tc" && { _G_esc_tc=`$ECHO "$_G_tc" | $SED "$sed_make_literal_regex"` _G_indent=`$ECHO "$_G_indent" | $SED "s|$_G_esc_tc||g"` } done _G_indent="$progname: "`echo "$_G_indent" | $SED 's|.| |g'`" " ## exclude from sc_prohibit_nested_quotes func_echo_infix_1_IFS=$IFS IFS=$nl for _G_line in $_G_message; do IFS=$func_echo_infix_1_IFS $ECHO "$_G_prefix$tc_bold$_G_line$tc_reset" >&2 _G_prefix=$_G_indent done IFS=$func_echo_infix_1_IFS } # func_error ARG... # ----------------- # Echo program name prefixed message to standard error. func_error () { $debug_cmd $require_term_colors func_echo_infix_1 " $tc_standout${tc_red}error$tc_reset" "$*" >&2 } # func_fatal_error ARG... # ----------------------- # Echo program name prefixed message to standard error, and exit. func_fatal_error () { $debug_cmd func_error "$*" exit $EXIT_FAILURE } # func_grep EXPRESSION FILENAME # ----------------------------- # Check whether EXPRESSION matches any line of FILENAME, without output. func_grep () { $debug_cmd $GREP "$1" "$2" >/dev/null 2>&1 } # func_len STRING # --------------- # Set func_len_result to the length of STRING. STRING may not # start with a hyphen. test -z "$_G_HAVE_XSI_OPS" \ && (eval 'x=a/b/c; test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ && _G_HAVE_XSI_OPS=yes if test yes = "$_G_HAVE_XSI_OPS"; then eval 'func_len () { $debug_cmd func_len_result=${#1} }' else func_len () { $debug_cmd func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` } fi # func_mkdir_p DIRECTORY-PATH # --------------------------- # Make sure the entire path to DIRECTORY-PATH is available. func_mkdir_p () { $debug_cmd _G_directory_path=$1 _G_dir_list= if test -n "$_G_directory_path" && test : != "$opt_dry_run"; then # Protect directory names starting with '-' case $_G_directory_path in -*) _G_directory_path=./$_G_directory_path ;; esac # While some portion of DIR does not yet exist... while test ! -d "$_G_directory_path"; do # ...make a list in topmost first order. Use a colon delimited # list incase some portion of path contains whitespace. _G_dir_list=$_G_directory_path:$_G_dir_list # If the last portion added has no slash in it, the list is done case $_G_directory_path in */*) ;; *) break ;; esac # ...otherwise throw away the child directory and loop _G_directory_path=`$ECHO "$_G_directory_path" | $SED -e "$sed_dirname"` done _G_dir_list=`$ECHO "$_G_dir_list" | $SED 's|:*$||'` func_mkdir_p_IFS=$IFS; IFS=: for _G_dir in $_G_dir_list; do IFS=$func_mkdir_p_IFS # mkdir can fail with a 'File exist' error if two processes # try to create one of the directories concurrently. Don't # stop in that case! $MKDIR "$_G_dir" 2>/dev/null || : done IFS=$func_mkdir_p_IFS # Bail out if we (or some other process) failed to create a directory. test -d "$_G_directory_path" || \ func_fatal_error "Failed to create '$1'" fi } # func_mktempdir [BASENAME] # ------------------------- # Make a temporary directory that won't clash with other running # libtool processes, and avoids race conditions if possible. If # given, BASENAME is the basename for that directory. func_mktempdir () { $debug_cmd _G_template=${TMPDIR-/tmp}/${1-$progname} if test : = "$opt_dry_run"; then # Return a directory name, but don't create it in dry-run mode _G_tmpdir=$_G_template-$$ else # If mktemp works, use that first and foremost _G_tmpdir=`mktemp -d "$_G_template-XXXXXXXX" 2>/dev/null` if test ! -d "$_G_tmpdir"; then # Failing that, at least try and use $RANDOM to avoid a race _G_tmpdir=$_G_template-${RANDOM-0}$$ func_mktempdir_umask=`umask` umask 0077 $MKDIR "$_G_tmpdir" umask $func_mktempdir_umask fi # If we're not in dry-run mode, bomb out on failure test -d "$_G_tmpdir" || \ func_fatal_error "cannot create temporary directory '$_G_tmpdir'" fi $ECHO "$_G_tmpdir" } # func_normal_abspath PATH # ------------------------ # Remove doubled-up and trailing slashes, "." path components, # and cancel out any ".." path components in PATH after making # it an absolute path. func_normal_abspath () { $debug_cmd # These SED scripts presuppose an absolute path with a trailing slash. _G_pathcar='s|^/\([^/]*\).*$|\1|' _G_pathcdr='s|^/[^/]*||' _G_removedotparts=':dotsl s|/\./|/|g t dotsl s|/\.$|/|' _G_collapseslashes='s|/\{1,\}|/|g' _G_finalslash='s|/*$|/|' # Start from root dir and reassemble the path. func_normal_abspath_result= func_normal_abspath_tpath=$1 func_normal_abspath_altnamespace= case $func_normal_abspath_tpath in "") # Empty path, that just means $cwd. func_stripname '' '/' "`pwd`" func_normal_abspath_result=$func_stripname_result return ;; # The next three entries are used to spot a run of precisely # two leading slashes without using negated character classes; # we take advantage of case's first-match behaviour. ///*) # Unusual form of absolute path, do nothing. ;; //*) # Not necessarily an ordinary path; POSIX reserves leading '//' # and for example Cygwin uses it to access remote file shares # over CIFS/SMB, so we conserve a leading double slash if found. func_normal_abspath_altnamespace=/ ;; /*) # Absolute path, do nothing. ;; *) # Relative path, prepend $cwd. func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath ;; esac # Cancel out all the simple stuff to save iterations. We also want # the path to end with a slash for ease of parsing, so make sure # there is one (and only one) here. func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$_G_removedotparts" -e "$_G_collapseslashes" -e "$_G_finalslash"` while :; do # Processed it all yet? if test / = "$func_normal_abspath_tpath"; then # If we ascended to the root using ".." the result may be empty now. if test -z "$func_normal_abspath_result"; then func_normal_abspath_result=/ fi break fi func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$_G_pathcar"` func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ -e "$_G_pathcdr"` # Figure out what to do with it case $func_normal_abspath_tcomponent in "") # Trailing empty path component, ignore it. ;; ..) # Parent dir; strip last assembled component from result. func_dirname "$func_normal_abspath_result" func_normal_abspath_result=$func_dirname_result ;; *) # Actual path component, append it. func_append func_normal_abspath_result "/$func_normal_abspath_tcomponent" ;; esac done # Restore leading double-slash if one was found on entry. func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result } # func_notquiet ARG... # -------------------- # Echo program name prefixed message only when not in quiet mode. func_notquiet () { $debug_cmd $opt_quiet || func_echo ${1+"$@"} # A bug in bash halts the script if the last line of a function # fails when set -e is in force, so we need another command to # work around that: : } # func_relative_path SRCDIR DSTDIR # -------------------------------- # Set func_relative_path_result to the relative path from SRCDIR to DSTDIR. func_relative_path () { $debug_cmd func_relative_path_result= func_normal_abspath "$1" func_relative_path_tlibdir=$func_normal_abspath_result func_normal_abspath "$2" func_relative_path_tbindir=$func_normal_abspath_result # Ascend the tree starting from libdir while :; do # check if we have found a prefix of bindir case $func_relative_path_tbindir in $func_relative_path_tlibdir) # found an exact match func_relative_path_tcancelled= break ;; $func_relative_path_tlibdir*) # found a matching prefix func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" func_relative_path_tcancelled=$func_stripname_result if test -z "$func_relative_path_result"; then func_relative_path_result=. fi break ;; *) func_dirname $func_relative_path_tlibdir func_relative_path_tlibdir=$func_dirname_result if test -z "$func_relative_path_tlibdir"; then # Have to descend all the way to the root! func_relative_path_result=../$func_relative_path_result func_relative_path_tcancelled=$func_relative_path_tbindir break fi func_relative_path_result=../$func_relative_path_result ;; esac done # Now calculate path; take care to avoid doubling-up slashes. func_stripname '' '/' "$func_relative_path_result" func_relative_path_result=$func_stripname_result func_stripname '/' '/' "$func_relative_path_tcancelled" if test -n "$func_stripname_result"; then func_append func_relative_path_result "/$func_stripname_result" fi # Normalisation. If bindir is libdir, return '.' else relative path. if test -n "$func_relative_path_result"; then func_stripname './' '' "$func_relative_path_result" func_relative_path_result=$func_stripname_result fi test -n "$func_relative_path_result" || func_relative_path_result=. : } # func_quote_for_eval ARG... # -------------------------- # Aesthetically quote ARGs to be evaled later. # This function returns two values: # i) func_quote_for_eval_result # double-quoted, suitable for a subsequent eval # ii) func_quote_for_eval_unquoted_result # has all characters that are still active within double # quotes backslashified. func_quote_for_eval () { $debug_cmd func_quote_for_eval_unquoted_result= func_quote_for_eval_result= while test 0 -lt $#; do case $1 in *[\\\`\"\$]*) _G_unquoted_arg=`printf '%s\n' "$1" |$SED "$sed_quote_subst"` ;; *) _G_unquoted_arg=$1 ;; esac if test -n "$func_quote_for_eval_unquoted_result"; then func_append func_quote_for_eval_unquoted_result " $_G_unquoted_arg" else func_append func_quote_for_eval_unquoted_result "$_G_unquoted_arg" fi case $_G_unquoted_arg in # Double-quote args containing shell metacharacters to delay # word splitting, command substitution and variable expansion # for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") _G_quoted_arg=\"$_G_unquoted_arg\" ;; *) _G_quoted_arg=$_G_unquoted_arg ;; esac if test -n "$func_quote_for_eval_result"; then func_append func_quote_for_eval_result " $_G_quoted_arg" else func_append func_quote_for_eval_result "$_G_quoted_arg" fi shift done } # func_quote_for_expand ARG # ------------------------- # Aesthetically quote ARG to be evaled later; same as above, # but do not quote variable references. func_quote_for_expand () { $debug_cmd case $1 in *[\\\`\"]*) _G_arg=`$ECHO "$1" | $SED \ -e "$sed_double_quote_subst" -e "$sed_double_backslash"` ;; *) _G_arg=$1 ;; esac case $_G_arg in # Double-quote args containing shell metacharacters to delay # word splitting and command substitution for a subsequent eval. # Many Bourne shells cannot handle close brackets correctly # in scan sets, so we specify it separately. *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") _G_arg=\"$_G_arg\" ;; esac func_quote_for_expand_result=$_G_arg } # func_stripname PREFIX SUFFIX NAME # --------------------------------- # strip PREFIX and SUFFIX from NAME, and store in func_stripname_result. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). if test yes = "$_G_HAVE_XSI_OPS"; then eval 'func_stripname () { $debug_cmd # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are # positional parameters, so assign one to ordinary variable first. func_stripname_result=$3 func_stripname_result=${func_stripname_result#"$1"} func_stripname_result=${func_stripname_result%"$2"} }' else func_stripname () { $debug_cmd case $2 in .*) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%\\\\$2\$%%"`;; *) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%$2\$%%"`;; esac } fi # func_show_eval CMD [FAIL_EXP] # ----------------------------- # Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. func_show_eval () { $debug_cmd _G_cmd=$1 _G_fail_exp=${2-':'} func_quote_for_expand "$_G_cmd" eval "func_notquiet $func_quote_for_expand_result" $opt_dry_run || { eval "$_G_cmd" _G_status=$? if test 0 -ne "$_G_status"; then eval "(exit $_G_status); $_G_fail_exp" fi } } # func_show_eval_locale CMD [FAIL_EXP] # ------------------------------------ # Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is # not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP # is given, then evaluate it. Use the saved locale for evaluation. func_show_eval_locale () { $debug_cmd _G_cmd=$1 _G_fail_exp=${2-':'} $opt_quiet || { func_quote_for_expand "$_G_cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || { eval "$_G_user_locale $_G_cmd" _G_status=$? eval "$_G_safe_locale" if test 0 -ne "$_G_status"; then eval "(exit $_G_status); $_G_fail_exp" fi } } # func_tr_sh # ---------- # Turn $1 into a string suitable for a shell variable name. # Result is stored in $func_tr_sh_result. All characters # not in the set a-zA-Z0-9_ are replaced with '_'. Further, # if $1 begins with a digit, a '_' is prepended as well. func_tr_sh () { $debug_cmd case $1 in [0-9]* | *[!a-zA-Z0-9_]*) func_tr_sh_result=`$ECHO "$1" | $SED -e 's/^\([0-9]\)/_\1/' -e 's/[^a-zA-Z0-9_]/_/g'` ;; * ) func_tr_sh_result=$1 ;; esac } # func_verbose ARG... # ------------------- # Echo program name prefixed message in verbose mode only. func_verbose () { $debug_cmd $opt_verbose && func_echo "$*" : } # func_warn_and_continue ARG... # ----------------------------- # Echo program name prefixed warning message to standard error. func_warn_and_continue () { $debug_cmd $require_term_colors func_echo_infix_1 "${tc_red}warning$tc_reset" "$*" >&2 } # func_warning CATEGORY ARG... # ---------------------------- # Echo program name prefixed warning message to standard error. Warning # messages can be filtered according to CATEGORY, where this function # elides messages where CATEGORY is not listed in the global variable # 'opt_warning_types'. func_warning () { $debug_cmd # CATEGORY must be in the warning_categories list! case " $warning_categories " in *" $1 "*) ;; *) func_internal_error "invalid warning category '$1'" ;; esac _G_category=$1 shift case " $opt_warning_types " in *" $_G_category "*) $warning_func ${1+"$@"} ;; esac } # func_sort_ver VER1 VER2 # ----------------------- # 'sort -V' is not generally available. # Note this deviates from the version comparison in automake # in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a # but this should suffice as we won't be specifying old # version formats or redundant trailing .0 in bootstrap.conf. # If we did want full compatibility then we should probably # use m4_version_compare from autoconf. func_sort_ver () { $debug_cmd printf '%s\n%s\n' "$1" "$2" \ | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n -k 5,5n -k 6,6n -k 7,7n -k 8,8n -k 9,9n } # func_lt_ver PREV CURR # --------------------- # Return true if PREV and CURR are in the correct order according to # func_sort_ver, otherwise false. Use it like this: # # func_lt_ver "$prev_ver" "$proposed_ver" || func_fatal_error "..." func_lt_ver () { $debug_cmd test "x$1" = x`func_sort_ver "$1" "$2" | $SED 1q` } # Local variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" # time-stamp-time-zone: "UTC" # End: #! /bin/sh # Set a version string for this script. scriptversion=2014-01-07.03; # UTC # A portable, pluggable option parser for Bourne shell. # Written by Gary V. Vaughan, 2010 # Copyright (C) 2010-2015 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # Please report bugs or propose patches to gary@gnu.org. ## ------ ## ## Usage. ## ## ------ ## # This file is a library for parsing options in your shell scripts along # with assorted other useful supporting features that you can make use # of too. # # For the simplest scripts you might need only: # # #!/bin/sh # . relative/path/to/funclib.sh # . relative/path/to/options-parser # scriptversion=1.0 # func_options ${1+"$@"} # eval set dummy "$func_options_result"; shift # ...rest of your script... # # In order for the '--version' option to work, you will need to have a # suitably formatted comment like the one at the top of this file # starting with '# Written by ' and ending with '# warranty; '. # # For '-h' and '--help' to work, you will also need a one line # description of your script's purpose in a comment directly above the # '# Written by ' line, like the one at the top of this file. # # The default options also support '--debug', which will turn on shell # execution tracing (see the comment above debug_cmd below for another # use), and '--verbose' and the func_verbose function to allow your script # to display verbose messages only when your user has specified # '--verbose'. # # After sourcing this file, you can plug processing for additional # options by amending the variables from the 'Configuration' section # below, and following the instructions in the 'Option parsing' # section further down. ## -------------- ## ## Configuration. ## ## -------------- ## # You should override these variables in your script after sourcing this # file so that they reflect the customisations you have added to the # option parser. # The usage line for option parsing errors and the start of '-h' and # '--help' output messages. You can embed shell variables for delayed # expansion at the time the message is displayed, but you will need to # quote other shell meta-characters carefully to prevent them being # expanded when the contents are evaled. usage='$progpath [OPTION]...' # Short help message in response to '-h' and '--help'. Add to this or # override it after sourcing this library to reflect the full set of # options your script accepts. usage_message="\ --debug enable verbose shell tracing -W, --warnings=CATEGORY report the warnings falling in CATEGORY [all] -v, --verbose verbosely report processing --version print version information and exit -h, --help print short or long help message and exit " # Additional text appended to 'usage_message' in response to '--help'. long_help_message=" Warning categories include: 'all' show all warnings 'none' turn off all the warnings 'error' warnings are treated as fatal errors" # Help message printed before fatal option parsing errors. fatal_help="Try '\$progname --help' for more information." ## ------------------------- ## ## Hook function management. ## ## ------------------------- ## # This section contains functions for adding, removing, and running hooks # to the main code. A hook is just a named list of of function, that can # be run in order later on. # func_hookable FUNC_NAME # ----------------------- # Declare that FUNC_NAME will run hooks added with # 'func_add_hook FUNC_NAME ...'. func_hookable () { $debug_cmd func_append hookable_fns " $1" } # func_add_hook FUNC_NAME HOOK_FUNC # --------------------------------- # Request that FUNC_NAME call HOOK_FUNC before it returns. FUNC_NAME must # first have been declared "hookable" by a call to 'func_hookable'. func_add_hook () { $debug_cmd case " $hookable_fns " in *" $1 "*) ;; *) func_fatal_error "'$1' does not accept hook functions." ;; esac eval func_append ${1}_hooks '" $2"' } # func_remove_hook FUNC_NAME HOOK_FUNC # ------------------------------------ # Remove HOOK_FUNC from the list of functions called by FUNC_NAME. func_remove_hook () { $debug_cmd eval ${1}_hooks='`$ECHO "\$'$1'_hooks" |$SED "s| '$2'||"`' } # func_run_hooks FUNC_NAME [ARG]... # --------------------------------- # Run all hook functions registered to FUNC_NAME. # It is assumed that the list of hook functions contains nothing more # than a whitespace-delimited list of legal shell function names, and # no effort is wasted trying to catch shell meta-characters or preserve # whitespace. func_run_hooks () { $debug_cmd case " $hookable_fns " in *" $1 "*) ;; *) func_fatal_error "'$1' does not support hook funcions.n" ;; esac eval _G_hook_fns=\$$1_hooks; shift for _G_hook in $_G_hook_fns; do eval $_G_hook '"$@"' # store returned options list back into positional # parameters for next 'cmd' execution. eval _G_hook_result=\$${_G_hook}_result eval set dummy "$_G_hook_result"; shift done func_quote_for_eval ${1+"$@"} func_run_hooks_result=$func_quote_for_eval_result } ## --------------- ## ## Option parsing. ## ## --------------- ## # In order to add your own option parsing hooks, you must accept the # full positional parameter list in your hook function, remove any # options that you action, and then pass back the remaining unprocessed # options in '_result', escaped suitably for # 'eval'. Like this: # # my_options_prep () # { # $debug_cmd # # # Extend the existing usage message. # usage_message=$usage_message' # -s, --silent don'\''t print informational messages # ' # # func_quote_for_eval ${1+"$@"} # my_options_prep_result=$func_quote_for_eval_result # } # func_add_hook func_options_prep my_options_prep # # # my_silent_option () # { # $debug_cmd # # # Note that for efficiency, we parse as many options as we can # # recognise in a loop before passing the remainder back to the # # caller on the first unrecognised argument we encounter. # while test $# -gt 0; do # opt=$1; shift # case $opt in # --silent|-s) opt_silent=: ;; # # Separate non-argument short options: # -s*) func_split_short_opt "$_G_opt" # set dummy "$func_split_short_opt_name" \ # "-$func_split_short_opt_arg" ${1+"$@"} # shift # ;; # *) set dummy "$_G_opt" "$*"; shift; break ;; # esac # done # # func_quote_for_eval ${1+"$@"} # my_silent_option_result=$func_quote_for_eval_result # } # func_add_hook func_parse_options my_silent_option # # # my_option_validation () # { # $debug_cmd # # $opt_silent && $opt_verbose && func_fatal_help "\ # '--silent' and '--verbose' options are mutually exclusive." # # func_quote_for_eval ${1+"$@"} # my_option_validation_result=$func_quote_for_eval_result # } # func_add_hook func_validate_options my_option_validation # # You'll alse need to manually amend $usage_message to reflect the extra # options you parse. It's preferable to append if you can, so that # multiple option parsing hooks can be added safely. # func_options [ARG]... # --------------------- # All the functions called inside func_options are hookable. See the # individual implementations for details. func_hookable func_options func_options () { $debug_cmd func_options_prep ${1+"$@"} eval func_parse_options \ ${func_options_prep_result+"$func_options_prep_result"} eval func_validate_options \ ${func_parse_options_result+"$func_parse_options_result"} eval func_run_hooks func_options \ ${func_validate_options_result+"$func_validate_options_result"} # save modified positional parameters for caller func_options_result=$func_run_hooks_result } # func_options_prep [ARG]... # -------------------------- # All initialisations required before starting the option parse loop. # Note that when calling hook functions, we pass through the list of # positional parameters. If a hook function modifies that list, and # needs to propogate that back to rest of this script, then the complete # modified list must be put in 'func_run_hooks_result' before # returning. func_hookable func_options_prep func_options_prep () { $debug_cmd # Option defaults: opt_verbose=false opt_warning_types= func_run_hooks func_options_prep ${1+"$@"} # save modified positional parameters for caller func_options_prep_result=$func_run_hooks_result } # func_parse_options [ARG]... # --------------------------- # The main option parsing loop. func_hookable func_parse_options func_parse_options () { $debug_cmd func_parse_options_result= # this just eases exit handling while test $# -gt 0; do # Defer to hook functions for initial option parsing, so they # get priority in the event of reusing an option name. func_run_hooks func_parse_options ${1+"$@"} # Adjust func_parse_options positional parameters to match eval set dummy "$func_run_hooks_result"; shift # Break out of the loop if we already parsed every option. test $# -gt 0 || break _G_opt=$1 shift case $_G_opt in --debug|-x) debug_cmd='set -x' func_echo "enabling shell trace mode" $debug_cmd ;; --no-warnings|--no-warning|--no-warn) set dummy --warnings none ${1+"$@"} shift ;; --warnings|--warning|-W) test $# = 0 && func_missing_arg $_G_opt && break case " $warning_categories $1" in *" $1 "*) # trailing space prevents matching last $1 above func_append_uniq opt_warning_types " $1" ;; *all) opt_warning_types=$warning_categories ;; *none) opt_warning_types=none warning_func=: ;; *error) opt_warning_types=$warning_categories warning_func=func_fatal_error ;; *) func_fatal_error \ "unsupported warning category: '$1'" ;; esac shift ;; --verbose|-v) opt_verbose=: ;; --version) func_version ;; -\?|-h) func_usage ;; --help) func_help ;; # Separate optargs to long options (plugins may need this): --*=*) func_split_equals "$_G_opt" set dummy "$func_split_equals_lhs" \ "$func_split_equals_rhs" ${1+"$@"} shift ;; # Separate optargs to short options: -W*) func_split_short_opt "$_G_opt" set dummy "$func_split_short_opt_name" \ "$func_split_short_opt_arg" ${1+"$@"} shift ;; # Separate non-argument short options: -\?*|-h*|-v*|-x*) func_split_short_opt "$_G_opt" set dummy "$func_split_short_opt_name" \ "-$func_split_short_opt_arg" ${1+"$@"} shift ;; --) break ;; -*) func_fatal_help "unrecognised option: '$_G_opt'" ;; *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;; esac done # save modified positional parameters for caller func_quote_for_eval ${1+"$@"} func_parse_options_result=$func_quote_for_eval_result } # func_validate_options [ARG]... # ------------------------------ # Perform any sanity checks on option settings and/or unconsumed # arguments. func_hookable func_validate_options func_validate_options () { $debug_cmd # Display all warnings if -W was not given. test -n "$opt_warning_types" || opt_warning_types=" $warning_categories" func_run_hooks func_validate_options ${1+"$@"} # Bail if the options were screwed! $exit_cmd $EXIT_FAILURE # save modified positional parameters for caller func_validate_options_result=$func_run_hooks_result } ## ----------------- ## ## Helper functions. ## ## ----------------- ## # This section contains the helper functions used by the rest of the # hookable option parser framework in ascii-betical order. # func_fatal_help ARG... # ---------------------- # Echo program name prefixed message to standard error, followed by # a help hint, and exit. func_fatal_help () { $debug_cmd eval \$ECHO \""Usage: $usage"\" eval \$ECHO \""$fatal_help"\" func_error ${1+"$@"} exit $EXIT_FAILURE } # func_help # --------- # Echo long help message to standard output and exit. func_help () { $debug_cmd func_usage_message $ECHO "$long_help_message" exit 0 } # func_missing_arg ARGNAME # ------------------------ # Echo program name prefixed message to standard error and set global # exit_cmd. func_missing_arg () { $debug_cmd func_error "Missing argument for '$1'." exit_cmd=exit } # func_split_equals STRING # ------------------------ # Set func_split_equals_lhs and func_split_equals_rhs shell variables after # splitting STRING at the '=' sign. test -z "$_G_HAVE_XSI_OPS" \ && (eval 'x=a/b/c; test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ && _G_HAVE_XSI_OPS=yes if test yes = "$_G_HAVE_XSI_OPS" then # This is an XSI compatible shell, allowing a faster implementation... eval 'func_split_equals () { $debug_cmd func_split_equals_lhs=${1%%=*} func_split_equals_rhs=${1#*=} test "x$func_split_equals_lhs" = "x$1" \ && func_split_equals_rhs= }' else # ...otherwise fall back to using expr, which is often a shell builtin. func_split_equals () { $debug_cmd func_split_equals_lhs=`expr "x$1" : 'x\([^=]*\)'` func_split_equals_rhs= test "x$func_split_equals_lhs" = "x$1" \ || func_split_equals_rhs=`expr "x$1" : 'x[^=]*=\(.*\)$'` } fi #func_split_equals # func_split_short_opt SHORTOPT # ----------------------------- # Set func_split_short_opt_name and func_split_short_opt_arg shell # variables after splitting SHORTOPT after the 2nd character. if test yes = "$_G_HAVE_XSI_OPS" then # This is an XSI compatible shell, allowing a faster implementation... eval 'func_split_short_opt () { $debug_cmd func_split_short_opt_arg=${1#??} func_split_short_opt_name=${1%"$func_split_short_opt_arg"} }' else # ...otherwise fall back to using expr, which is often a shell builtin. func_split_short_opt () { $debug_cmd func_split_short_opt_name=`expr "x$1" : 'x-\(.\)'` func_split_short_opt_arg=`expr "x$1" : 'x-.\(.*\)$'` } fi #func_split_short_opt # func_usage # ---------- # Echo short help message to standard output and exit. func_usage () { $debug_cmd func_usage_message $ECHO "Run '$progname --help |${PAGER-more}' for full usage" exit 0 } # func_usage_message # ------------------ # Echo short help message to standard output. func_usage_message () { $debug_cmd eval \$ECHO \""Usage: $usage"\" echo $SED -n 's|^# || /^Written by/{ x;p;x } h /^Written by/q' < "$progpath" echo eval \$ECHO \""$usage_message"\" } # func_version # ------------ # Echo version message to standard output and exit. func_version () { $debug_cmd printf '%s\n' "$progname $scriptversion" $SED -n ' /(C)/!b go :more /\./!{ N s|\n# | | b more } :go /^# Written by /,/# warranty; / { s|^# || s|^# *$|| s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2| p } /^# Written by / { s|^# || p } /^warranty; /q' < "$progpath" exit $? } # Local variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" # time-stamp-time-zone: "UTC" # End: # Set a version string. scriptversion='(GNU libtool) 2.4.6' # func_echo ARG... # ---------------- # Libtool also displays the current mode in messages, so override # funclib.sh func_echo with this custom definition. func_echo () { $debug_cmd _G_message=$* func_echo_IFS=$IFS IFS=$nl for _G_line in $_G_message; do IFS=$func_echo_IFS $ECHO "$progname${opt_mode+: $opt_mode}: $_G_line" done IFS=$func_echo_IFS } # func_warning ARG... # ------------------- # Libtool warnings are not categorized, so override funclib.sh # func_warning with this simpler definition. func_warning () { $debug_cmd $warning_func ${1+"$@"} } ## ---------------- ## ## Options parsing. ## ## ---------------- ## # Hook in the functions to make sure our own options are parsed during # the option parsing loop. usage='$progpath [OPTION]... [MODE-ARG]...' # Short help message in response to '-h'. usage_message="Options: --config show all configuration variables --debug enable verbose shell tracing -n, --dry-run display commands without modifying any files --features display basic configuration information and exit --mode=MODE use operation mode MODE --no-warnings equivalent to '-Wnone' --preserve-dup-deps don't remove duplicate dependency libraries --quiet, --silent don't print informational messages --tag=TAG use configuration variables from tag TAG -v, --verbose print more informational messages than default --version print version information -W, --warnings=CATEGORY report the warnings falling in CATEGORY [all] -h, --help, --help-all print short, long, or detailed help message " # Additional text appended to 'usage_message' in response to '--help'. func_help () { $debug_cmd func_usage_message $ECHO "$long_help_message MODE must be one of the following: clean remove files from the build directory compile compile a source file into a libtool object execute automatically set library path, then run a program finish complete the installation of libtool libraries install install libraries or executables link create a library or an executable uninstall remove libraries from an installed directory MODE-ARGS vary depending on the MODE. When passed as first option, '--mode=MODE' may be abbreviated as 'MODE' or a unique abbreviation of that. Try '$progname --help --mode=MODE' for a more detailed description of MODE. When reporting a bug, please describe a test case to reproduce it and include the following information: host-triplet: $host shell: $SHELL compiler: $LTCC compiler flags: $LTCFLAGS linker: $LD (gnu? $with_gnu_ld) version: $progname (GNU libtool) 2.4.6 automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q` autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q` Report bugs to . GNU libtool home page: . General help using GNU software: ." exit 0 } # func_lo2o OBJECT-NAME # --------------------- # Transform OBJECT-NAME from a '.lo' suffix to the platform specific # object suffix. lo2o=s/\\.lo\$/.$objext/ o2lo=s/\\.$objext\$/.lo/ if test yes = "$_G_HAVE_XSI_OPS"; then eval 'func_lo2o () { case $1 in *.lo) func_lo2o_result=${1%.lo}.$objext ;; * ) func_lo2o_result=$1 ;; esac }' # func_xform LIBOBJ-OR-SOURCE # --------------------------- # Transform LIBOBJ-OR-SOURCE from a '.o' or '.c' (or otherwise) # suffix to a '.lo' libtool-object suffix. eval 'func_xform () { func_xform_result=${1%.*}.lo }' else # ...otherwise fall back to using sed. func_lo2o () { func_lo2o_result=`$ECHO "$1" | $SED "$lo2o"` } func_xform () { func_xform_result=`$ECHO "$1" | $SED 's|\.[^.]*$|.lo|'` } fi # func_fatal_configuration ARG... # ------------------------------- # Echo program name prefixed message to standard error, followed by # a configuration failure hint, and exit. func_fatal_configuration () { func__fatal_error ${1+"$@"} \ "See the $PACKAGE documentation for more information." \ "Fatal configuration error." } # func_config # ----------- # Display the configuration for all the tags in this script. func_config () { re_begincf='^# ### BEGIN LIBTOOL' re_endcf='^# ### END LIBTOOL' # Default configuration. $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" # Now print the configurations for the tags. for tagname in $taglist; do $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" done exit $? } # func_features # ------------- # Display the features supported by this script. func_features () { echo "host: $host" if test yes = "$build_libtool_libs"; then echo "enable shared libraries" else echo "disable shared libraries" fi if test yes = "$build_old_libs"; then echo "enable static libraries" else echo "disable static libraries" fi exit $? } # func_enable_tag TAGNAME # ----------------------- # Verify that TAGNAME is valid, and either flag an error and exit, or # enable the TAGNAME tag. We also add TAGNAME to the global $taglist # variable here. func_enable_tag () { # Global variable: tagname=$1 re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" sed_extractcf=/$re_begincf/,/$re_endcf/p # Validate tagname. case $tagname in *[!-_A-Za-z0-9,/]*) func_fatal_error "invalid tag name: $tagname" ;; esac # Don't test for the "default" C tag, as we know it's # there but not specially marked. case $tagname in CC) ;; *) if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then taglist="$taglist $tagname" # Evaluate the configuration. Be careful to quote the path # and the sed script, to avoid splitting on whitespace, but # also don't use non-portable quotes within backquotes within # quotes we have to do it in 2 steps: extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` eval "$extractedcf" else func_error "ignoring unknown tag $tagname" fi ;; esac } # func_check_version_match # ------------------------ # Ensure that we are using m4 macros, and libtool script from the same # release of libtool. func_check_version_match () { if test "$package_revision" != "$macro_revision"; then if test "$VERSION" != "$macro_version"; then if test -z "$macro_version"; then cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from an older release. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, but the $progname: definition of this LT_INIT comes from $PACKAGE $macro_version. $progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION $progname: and run autoconf again. _LT_EOF fi else cat >&2 <<_LT_EOF $progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, $progname: but the definition of this LT_INIT comes from revision $macro_revision. $progname: You should recreate aclocal.m4 with macros from revision $package_revision $progname: of $PACKAGE $VERSION and run autoconf again. _LT_EOF fi exit $EXIT_MISMATCH fi } # libtool_options_prep [ARG]... # ----------------------------- # Preparation for options parsed by libtool. libtool_options_prep () { $debug_mode # Option defaults: opt_config=false opt_dlopen= opt_dry_run=false opt_help=false opt_mode= opt_preserve_dup_deps=false opt_quiet=false nonopt= preserve_args= # Shorthand for --mode=foo, only valid as the first argument case $1 in clean|clea|cle|cl) shift; set dummy --mode clean ${1+"$@"}; shift ;; compile|compil|compi|comp|com|co|c) shift; set dummy --mode compile ${1+"$@"}; shift ;; execute|execut|execu|exec|exe|ex|e) shift; set dummy --mode execute ${1+"$@"}; shift ;; finish|finis|fini|fin|fi|f) shift; set dummy --mode finish ${1+"$@"}; shift ;; install|instal|insta|inst|ins|in|i) shift; set dummy --mode install ${1+"$@"}; shift ;; link|lin|li|l) shift; set dummy --mode link ${1+"$@"}; shift ;; uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) shift; set dummy --mode uninstall ${1+"$@"}; shift ;; esac # Pass back the list of options. func_quote_for_eval ${1+"$@"} libtool_options_prep_result=$func_quote_for_eval_result } func_add_hook func_options_prep libtool_options_prep # libtool_parse_options [ARG]... # --------------------------------- # Provide handling for libtool specific options. libtool_parse_options () { $debug_cmd # Perform our own loop to consume as many options as possible in # each iteration. while test $# -gt 0; do _G_opt=$1 shift case $_G_opt in --dry-run|--dryrun|-n) opt_dry_run=: ;; --config) func_config ;; --dlopen|-dlopen) opt_dlopen="${opt_dlopen+$opt_dlopen }$1" shift ;; --preserve-dup-deps) opt_preserve_dup_deps=: ;; --features) func_features ;; --finish) set dummy --mode finish ${1+"$@"}; shift ;; --help) opt_help=: ;; --help-all) opt_help=': help-all' ;; --mode) test $# = 0 && func_missing_arg $_G_opt && break opt_mode=$1 case $1 in # Valid mode arguments: clean|compile|execute|finish|install|link|relink|uninstall) ;; # Catch anything else as an error *) func_error "invalid argument for $_G_opt" exit_cmd=exit break ;; esac shift ;; --no-silent|--no-quiet) opt_quiet=false func_append preserve_args " $_G_opt" ;; --no-warnings|--no-warning|--no-warn) opt_warning=false func_append preserve_args " $_G_opt" ;; --no-verbose) opt_verbose=false func_append preserve_args " $_G_opt" ;; --silent|--quiet) opt_quiet=: opt_verbose=false func_append preserve_args " $_G_opt" ;; --tag) test $# = 0 && func_missing_arg $_G_opt && break opt_tag=$1 func_append preserve_args " $_G_opt $1" func_enable_tag "$1" shift ;; --verbose|-v) opt_quiet=false opt_verbose=: func_append preserve_args " $_G_opt" ;; # An option not handled by this hook function: *) set dummy "$_G_opt" ${1+"$@"}; shift; break ;; esac done # save modified positional parameters for caller func_quote_for_eval ${1+"$@"} libtool_parse_options_result=$func_quote_for_eval_result } func_add_hook func_parse_options libtool_parse_options # libtool_validate_options [ARG]... # --------------------------------- # Perform any sanity checks on option settings and/or unconsumed # arguments. libtool_validate_options () { # save first non-option argument if test 0 -lt $#; then nonopt=$1 shift fi # preserve --debug test : = "$debug_cmd" || func_append preserve_args " --debug" case $host in # Solaris2 added to fix http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16452 # see also: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59788 *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* | *os2*) # don't eliminate duplications in $postdeps and $predeps opt_duplicate_compiler_generated_deps=: ;; *) opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps ;; esac $opt_help || { # Sanity checks first: func_check_version_match test yes != "$build_libtool_libs" \ && test yes != "$build_old_libs" \ && func_fatal_configuration "not configured to build any kind of library" # Darwin sucks eval std_shrext=\"$shrext_cmds\" # Only execute mode is allowed to have -dlopen flags. if test -n "$opt_dlopen" && test execute != "$opt_mode"; then func_error "unrecognized option '-dlopen'" $ECHO "$help" 1>&2 exit $EXIT_FAILURE fi # Change the help message to a mode-specific one. generic_help=$help help="Try '$progname --help --mode=$opt_mode' for more information." } # Pass back the unparsed argument list func_quote_for_eval ${1+"$@"} libtool_validate_options_result=$func_quote_for_eval_result } func_add_hook func_validate_options libtool_validate_options # Process options as early as possible so that --help and --version # can return quickly. func_options ${1+"$@"} eval set dummy "$func_options_result"; shift ## ----------- ## ## Main. ## ## ----------- ## magic='%%%MAGIC variable%%%' magic_exe='%%%MAGIC EXE variable%%%' # Global variables. extracted_archives= extracted_serial=0 # If this variable is set in any of the actions, the command in it # will be execed at the end. This prevents here-documents from being # left over by shells. exec_cmd= # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $1 _LTECHO_EOF' } # func_generated_by_libtool # True iff stdin has been generated by Libtool. This function is only # a basic sanity check; it will hardly flush out determined imposters. func_generated_by_libtool_p () { $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 } # func_lalib_p file # True iff FILE is a libtool '.la' library or '.lo' object file. # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_lalib_p () { test -f "$1" && $SED -e 4q "$1" 2>/dev/null | func_generated_by_libtool_p } # func_lalib_unsafe_p file # True iff FILE is a libtool '.la' library or '.lo' object file. # This function implements the same check as func_lalib_p without # resorting to external programs. To this end, it redirects stdin and # closes it afterwards, without saving the original file descriptor. # As a safety measure, use it only where a negative result would be # fatal anyway. Works if 'file' does not exist. func_lalib_unsafe_p () { lalib_p=no if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then for lalib_p_l in 1 2 3 4 do read lalib_p_line case $lalib_p_line in \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; esac done exec 0<&5 5<&- fi test yes = "$lalib_p" } # func_ltwrapper_script_p file # True iff FILE is a libtool wrapper script # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_script_p () { test -f "$1" && $lt_truncate_bin < "$1" 2>/dev/null | func_generated_by_libtool_p } # func_ltwrapper_executable_p file # True iff FILE is a libtool wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_executable_p () { func_ltwrapper_exec_suffix= case $1 in *.exe) ;; *) func_ltwrapper_exec_suffix=.exe ;; esac $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 } # func_ltwrapper_scriptname file # Assumes file is an ltwrapper_executable # uses $file to determine the appropriate filename for a # temporary ltwrapper_script. func_ltwrapper_scriptname () { func_dirname_and_basename "$1" "" "." func_stripname '' '.exe' "$func_basename_result" func_ltwrapper_scriptname_result=$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper } # func_ltwrapper_p file # True iff FILE is a libtool wrapper script or wrapper executable # This function is only a basic sanity check; it will hardly flush out # determined imposters. func_ltwrapper_p () { func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" } # func_execute_cmds commands fail_cmd # Execute tilde-delimited COMMANDS. # If FAIL_CMD is given, eval that upon failure. # FAIL_CMD may read-access the current command in variable CMD! func_execute_cmds () { $debug_cmd save_ifs=$IFS; IFS='~' for cmd in $1; do IFS=$sp$nl eval cmd=\"$cmd\" IFS=$save_ifs func_show_eval "$cmd" "${2-:}" done IFS=$save_ifs } # func_source file # Source FILE, adding directory component if necessary. # Note that it is not necessary on cygwin/mingw to append a dot to # FILE even if both FILE and FILE.exe exist: automatic-append-.exe # behavior happens only for exec(3), not for open(2)! Also, sourcing # 'FILE.' does not work on cygwin managed mounts. func_source () { $debug_cmd case $1 in */* | *\\*) . "$1" ;; *) . "./$1" ;; esac } # func_resolve_sysroot PATH # Replace a leading = in PATH with a sysroot. Store the result into # func_resolve_sysroot_result func_resolve_sysroot () { func_resolve_sysroot_result=$1 case $func_resolve_sysroot_result in =*) func_stripname '=' '' "$func_resolve_sysroot_result" func_resolve_sysroot_result=$lt_sysroot$func_stripname_result ;; esac } # func_replace_sysroot PATH # If PATH begins with the sysroot, replace it with = and # store the result into func_replace_sysroot_result. func_replace_sysroot () { case $lt_sysroot:$1 in ?*:"$lt_sysroot"*) func_stripname "$lt_sysroot" '' "$1" func_replace_sysroot_result='='$func_stripname_result ;; *) # Including no sysroot. func_replace_sysroot_result=$1 ;; esac } # func_infer_tag arg # Infer tagged configuration to use if any are available and # if one wasn't chosen via the "--tag" command line option. # Only attempt this if the compiler in the base compile # command doesn't match the default compiler. # arg is usually of the form 'gcc ...' func_infer_tag () { $debug_cmd if test -n "$available_tags" && test -z "$tagname"; then CC_quoted= for arg in $CC; do func_append_quoted CC_quoted "$arg" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` case $@ in # Blanks in the command may have been stripped by the calling shell, # but not from the CC environment variable when configure was run. " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; # Blanks at the start of $base_compile will cause this to fail # if we don't check for them as well. *) for z in $available_tags; do if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then # Evaluate the configuration. eval "`$SED -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" CC_quoted= for arg in $CC; do # Double-quote args containing other shell metacharacters. func_append_quoted CC_quoted "$arg" done CC_expanded=`func_echo_all $CC` CC_quoted_expanded=`func_echo_all $CC_quoted` case "$@ " in " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) # The compiler in the base compile command matches # the one in the tagged configuration. # Assume this is the tagged configuration we want. tagname=$z break ;; esac fi done # If $tagname still isn't set, then no tagged configuration # was found and let the user know that the "--tag" command # line option must be used. if test -z "$tagname"; then func_echo "unable to infer tagged configuration" func_fatal_error "specify a tag with '--tag'" # else # func_verbose "using $tagname tagged configuration" fi ;; esac fi } # func_write_libtool_object output_name pic_name nonpic_name # Create a libtool object file (analogous to a ".la" file), # but don't create it if we're doing a dry run. func_write_libtool_object () { write_libobj=$1 if test yes = "$build_libtool_libs"; then write_lobj=\'$2\' else write_lobj=none fi if test yes = "$build_old_libs"; then write_oldobj=\'$3\' else write_oldobj=none fi $opt_dry_run || { cat >${write_libobj}T </dev/null` if test "$?" -eq 0 && test -n "$func_convert_core_file_wine_to_w32_tmp"; then func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | $SED -e "$sed_naive_backslashify"` else func_convert_core_file_wine_to_w32_result= fi fi } # end: func_convert_core_file_wine_to_w32 # func_convert_core_path_wine_to_w32 ARG # Helper function used by path conversion functions when $build is *nix, and # $host is mingw, cygwin, or some other w32 environment. Relies on a correctly # configured wine environment available, with the winepath program in $build's # $PATH. Assumes ARG has no leading or trailing path separator characters. # # ARG is path to be converted from $build format to win32. # Result is available in $func_convert_core_path_wine_to_w32_result. # Unconvertible file (directory) names in ARG are skipped; if no directory names # are convertible, then the result may be empty. func_convert_core_path_wine_to_w32 () { $debug_cmd # unfortunately, winepath doesn't convert paths, only file names func_convert_core_path_wine_to_w32_result= if test -n "$1"; then oldIFS=$IFS IFS=: for func_convert_core_path_wine_to_w32_f in $1; do IFS=$oldIFS func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" if test -n "$func_convert_core_file_wine_to_w32_result"; then if test -z "$func_convert_core_path_wine_to_w32_result"; then func_convert_core_path_wine_to_w32_result=$func_convert_core_file_wine_to_w32_result else func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" fi fi done IFS=$oldIFS fi } # end: func_convert_core_path_wine_to_w32 # func_cygpath ARGS... # Wrapper around calling the cygpath program via LT_CYGPATH. This is used when # when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) # $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or # (2), returns the Cygwin file name or path in func_cygpath_result (input # file name or path is assumed to be in w32 format, as previously converted # from $build's *nix or MSYS format). In case (3), returns the w32 file name # or path in func_cygpath_result (input file name or path is assumed to be in # Cygwin format). Returns an empty string on error. # # ARGS are passed to cygpath, with the last one being the file name or path to # be converted. # # Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH # environment variable; do not put it in $PATH. func_cygpath () { $debug_cmd if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` if test "$?" -ne 0; then # on failure, ensure result is empty func_cygpath_result= fi else func_cygpath_result= func_error "LT_CYGPATH is empty or specifies non-existent file: '$LT_CYGPATH'" fi } #end: func_cygpath # func_convert_core_msys_to_w32 ARG # Convert file name or path ARG from MSYS format to w32 format. Return # result in func_convert_core_msys_to_w32_result. func_convert_core_msys_to_w32 () { $debug_cmd # awkward: cmd appends spaces to result func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | $SED -e 's/[ ]*$//' -e "$sed_naive_backslashify"` } #end: func_convert_core_msys_to_w32 # func_convert_file_check ARG1 ARG2 # Verify that ARG1 (a file name in $build format) was converted to $host # format in ARG2. Otherwise, emit an error message, but continue (resetting # func_to_host_file_result to ARG1). func_convert_file_check () { $debug_cmd if test -z "$2" && test -n "$1"; then func_error "Could not determine host file name corresponding to" func_error " '$1'" func_error "Continuing, but uninstalled executables may not work." # Fallback: func_to_host_file_result=$1 fi } # end func_convert_file_check # func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH # Verify that FROM_PATH (a path in $build format) was converted to $host # format in TO_PATH. Otherwise, emit an error message, but continue, resetting # func_to_host_file_result to a simplistic fallback value (see below). func_convert_path_check () { $debug_cmd if test -z "$4" && test -n "$3"; then func_error "Could not determine the host path corresponding to" func_error " '$3'" func_error "Continuing, but uninstalled executables may not work." # Fallback. This is a deliberately simplistic "conversion" and # should not be "improved". See libtool.info. if test "x$1" != "x$2"; then lt_replace_pathsep_chars="s|$1|$2|g" func_to_host_path_result=`echo "$3" | $SED -e "$lt_replace_pathsep_chars"` else func_to_host_path_result=$3 fi fi } # end func_convert_path_check # func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG # Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT # and appending REPL if ORIG matches BACKPAT. func_convert_path_front_back_pathsep () { $debug_cmd case $4 in $1 ) func_to_host_path_result=$3$func_to_host_path_result ;; esac case $4 in $2 ) func_append func_to_host_path_result "$3" ;; esac } # end func_convert_path_front_back_pathsep ################################################## # $build to $host FILE NAME CONVERSION FUNCTIONS # ################################################## # invoked via '$to_host_file_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # Result will be available in $func_to_host_file_result. # func_to_host_file ARG # Converts the file name ARG from $build format to $host format. Return result # in func_to_host_file_result. func_to_host_file () { $debug_cmd $to_host_file_cmd "$1" } # end func_to_host_file # func_to_tool_file ARG LAZY # converts the file name ARG from $build format to toolchain format. Return # result in func_to_tool_file_result. If the conversion in use is listed # in (the comma separated) LAZY, no conversion takes place. func_to_tool_file () { $debug_cmd case ,$2, in *,"$to_tool_file_cmd",*) func_to_tool_file_result=$1 ;; *) $to_tool_file_cmd "$1" func_to_tool_file_result=$func_to_host_file_result ;; esac } # end func_to_tool_file # func_convert_file_noop ARG # Copy ARG to func_to_host_file_result. func_convert_file_noop () { func_to_host_file_result=$1 } # end func_convert_file_noop # func_convert_file_msys_to_w32 ARG # Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic # conversion to w32 is not available inside the cwrapper. Returns result in # func_to_host_file_result. func_convert_file_msys_to_w32 () { $debug_cmd func_to_host_file_result=$1 if test -n "$1"; then func_convert_core_msys_to_w32 "$1" func_to_host_file_result=$func_convert_core_msys_to_w32_result fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_msys_to_w32 # func_convert_file_cygwin_to_w32 ARG # Convert file name ARG from Cygwin to w32 format. Returns result in # func_to_host_file_result. func_convert_file_cygwin_to_w32 () { $debug_cmd func_to_host_file_result=$1 if test -n "$1"; then # because $build is cygwin, we call "the" cygpath in $PATH; no need to use # LT_CYGPATH in this case. func_to_host_file_result=`cygpath -m "$1"` fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_cygwin_to_w32 # func_convert_file_nix_to_w32 ARG # Convert file name ARG from *nix to w32 format. Requires a wine environment # and a working winepath. Returns result in func_to_host_file_result. func_convert_file_nix_to_w32 () { $debug_cmd func_to_host_file_result=$1 if test -n "$1"; then func_convert_core_file_wine_to_w32 "$1" func_to_host_file_result=$func_convert_core_file_wine_to_w32_result fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_nix_to_w32 # func_convert_file_msys_to_cygwin ARG # Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. # Returns result in func_to_host_file_result. func_convert_file_msys_to_cygwin () { $debug_cmd func_to_host_file_result=$1 if test -n "$1"; then func_convert_core_msys_to_w32 "$1" func_cygpath -u "$func_convert_core_msys_to_w32_result" func_to_host_file_result=$func_cygpath_result fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_msys_to_cygwin # func_convert_file_nix_to_cygwin ARG # Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed # in a wine environment, working winepath, and LT_CYGPATH set. Returns result # in func_to_host_file_result. func_convert_file_nix_to_cygwin () { $debug_cmd func_to_host_file_result=$1 if test -n "$1"; then # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. func_convert_core_file_wine_to_w32 "$1" func_cygpath -u "$func_convert_core_file_wine_to_w32_result" func_to_host_file_result=$func_cygpath_result fi func_convert_file_check "$1" "$func_to_host_file_result" } # end func_convert_file_nix_to_cygwin ############################################# # $build to $host PATH CONVERSION FUNCTIONS # ############################################# # invoked via '$to_host_path_cmd ARG' # # In each case, ARG is the path to be converted from $build to $host format. # The result will be available in $func_to_host_path_result. # # Path separators are also converted from $build format to $host format. If # ARG begins or ends with a path separator character, it is preserved (but # converted to $host format) on output. # # All path conversion functions are named using the following convention: # file name conversion function : func_convert_file_X_to_Y () # path conversion function : func_convert_path_X_to_Y () # where, for any given $build/$host combination the 'X_to_Y' value is the # same. If conversion functions are added for new $build/$host combinations, # the two new functions must follow this pattern, or func_init_to_host_path_cmd # will break. # func_init_to_host_path_cmd # Ensures that function "pointer" variable $to_host_path_cmd is set to the # appropriate value, based on the value of $to_host_file_cmd. to_host_path_cmd= func_init_to_host_path_cmd () { $debug_cmd if test -z "$to_host_path_cmd"; then func_stripname 'func_convert_file_' '' "$to_host_file_cmd" to_host_path_cmd=func_convert_path_$func_stripname_result fi } # func_to_host_path ARG # Converts the path ARG from $build format to $host format. Return result # in func_to_host_path_result. func_to_host_path () { $debug_cmd func_init_to_host_path_cmd $to_host_path_cmd "$1" } # end func_to_host_path # func_convert_path_noop ARG # Copy ARG to func_to_host_path_result. func_convert_path_noop () { func_to_host_path_result=$1 } # end func_convert_path_noop # func_convert_path_msys_to_w32 ARG # Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic # conversion to w32 is not available inside the cwrapper. Returns result in # func_to_host_path_result. func_convert_path_msys_to_w32 () { $debug_cmd func_to_host_path_result=$1 if test -n "$1"; then # Remove leading and trailing path separator characters from ARG. MSYS # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; # and winepath ignores them completely. func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" func_to_host_path_result=$func_convert_core_msys_to_w32_result func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_msys_to_w32 # func_convert_path_cygwin_to_w32 ARG # Convert path ARG from Cygwin to w32 format. Returns result in # func_to_host_file_result. func_convert_path_cygwin_to_w32 () { $debug_cmd func_to_host_path_result=$1 if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_cygwin_to_w32 # func_convert_path_nix_to_w32 ARG # Convert path ARG from *nix to w32 format. Requires a wine environment and # a working winepath. Returns result in func_to_host_file_result. func_convert_path_nix_to_w32 () { $debug_cmd func_to_host_path_result=$1 if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" func_to_host_path_result=$func_convert_core_path_wine_to_w32_result func_convert_path_check : ";" \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" fi } # end func_convert_path_nix_to_w32 # func_convert_path_msys_to_cygwin ARG # Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. # Returns result in func_to_host_file_result. func_convert_path_msys_to_cygwin () { $debug_cmd func_to_host_path_result=$1 if test -n "$1"; then # See func_convert_path_msys_to_w32: func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_msys_to_w32_result" func_to_host_path_result=$func_cygpath_result func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" fi } # end func_convert_path_msys_to_cygwin # func_convert_path_nix_to_cygwin ARG # Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a # a wine environment, working winepath, and LT_CYGPATH set. Returns result in # func_to_host_file_result. func_convert_path_nix_to_cygwin () { $debug_cmd func_to_host_path_result=$1 if test -n "$1"; then # Remove leading and trailing path separator characters from # ARG. msys behavior is inconsistent here, cygpath turns them # into '.;' and ';.', and winepath ignores them completely. func_stripname : : "$1" func_to_host_path_tmp1=$func_stripname_result func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" func_to_host_path_result=$func_cygpath_result func_convert_path_check : : \ "$func_to_host_path_tmp1" "$func_to_host_path_result" func_convert_path_front_back_pathsep ":*" "*:" : "$1" fi } # end func_convert_path_nix_to_cygwin # func_dll_def_p FILE # True iff FILE is a Windows DLL '.def' file. # Keep in sync with _LT_DLL_DEF_P in libtool.m4 func_dll_def_p () { $debug_cmd func_dll_def_p_tmp=`$SED -n \ -e 's/^[ ]*//' \ -e '/^\(;.*\)*$/d' \ -e 's/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p' \ -e q \ "$1"` test DEF = "$func_dll_def_p_tmp" } # func_mode_compile arg... func_mode_compile () { $debug_cmd # Get the compilation command and the source file. base_compile= srcfile=$nonopt # always keep a non-empty value in "srcfile" suppress_opt=yes suppress_output= arg_mode=normal libobj= later= pie_flag= for arg do case $arg_mode in arg ) # do not "continue". Instead, add this to base_compile lastarg=$arg arg_mode=normal ;; target ) libobj=$arg arg_mode=normal continue ;; normal ) # Accept any command-line options. case $arg in -o) test -n "$libobj" && \ func_fatal_error "you cannot specify '-o' more than once" arg_mode=target continue ;; -pie | -fpie | -fPIE) func_append pie_flag " $arg" continue ;; -shared | -static | -prefer-pic | -prefer-non-pic) func_append later " $arg" continue ;; -no-suppress) suppress_opt=no continue ;; -Xcompiler) arg_mode=arg # the next one goes into the "base_compile" arg list continue # The current "srcfile" will either be retained or ;; # replaced later. I would guess that would be a bug. -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result lastarg= save_ifs=$IFS; IFS=, for arg in $args; do IFS=$save_ifs func_append_quoted lastarg "$arg" done IFS=$save_ifs func_stripname ' ' '' "$lastarg" lastarg=$func_stripname_result # Add the arguments to base_compile. func_append base_compile " $lastarg" continue ;; *) # Accept the current argument as the source file. # The previous "srcfile" becomes the current argument. # lastarg=$srcfile srcfile=$arg ;; esac # case $arg ;; esac # case $arg_mode # Aesthetically quote the previous argument. func_append_quoted base_compile "$lastarg" done # for arg case $arg_mode in arg) func_fatal_error "you must specify an argument for -Xcompile" ;; target) func_fatal_error "you must specify a target with '-o'" ;; *) # Get the name of the library object. test -z "$libobj" && { func_basename "$srcfile" libobj=$func_basename_result } ;; esac # Recognize several different file suffixes. # If the user specifies -o file.o, it is replaced with file.lo case $libobj in *.[cCFSifmso] | \ *.ada | *.adb | *.ads | *.asm | \ *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) func_xform "$libobj" libobj=$func_xform_result ;; esac case $libobj in *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; *) func_fatal_error "cannot determine name of library object from '$libobj'" ;; esac func_infer_tag $base_compile for arg in $later; do case $arg in -shared) test yes = "$build_libtool_libs" \ || func_fatal_configuration "cannot build a shared library" build_old_libs=no continue ;; -static) build_libtool_libs=no build_old_libs=yes continue ;; -prefer-pic) pic_mode=yes continue ;; -prefer-non-pic) pic_mode=no continue ;; esac done func_quote_for_eval "$libobj" test "X$libobj" != "X$func_quote_for_eval_result" \ && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ && func_warning "libobj name '$libobj' may not contain shell special characters." func_dirname_and_basename "$obj" "/" "" objname=$func_basename_result xdir=$func_dirname_result lobj=$xdir$objdir/$objname test -z "$base_compile" && \ func_fatal_help "you must specify a compilation command" # Delete any leftover library objects. if test yes = "$build_old_libs"; then removelist="$obj $lobj $libobj ${libobj}T" else removelist="$lobj $libobj ${libobj}T" fi # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in cygwin* | mingw* | pw32* | os2* | cegcc*) pic_mode=default ;; esac if test no = "$pic_mode" && test pass_all != "$deplibs_check_method"; then # non-PIC code in shared libraries is not supported pic_mode=default fi # Calculate the filename of the output object if compiler does # not support -o with -c if test no = "$compiler_c_o"; then output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.$objext lockfile=$output_obj.lock else output_obj= need_locks=no lockfile= fi # Lock this critical section if it is needed # We use this script file to make the link, it avoids creating a new file if test yes = "$need_locks"; then until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done elif test warn = "$need_locks"; then if test -f "$lockfile"; then $ECHO "\ *** ERROR, $lockfile exists and contains: `cat $lockfile 2>/dev/null` This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support '-c' and '-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi func_append removelist " $output_obj" $ECHO "$srcfile" > "$lockfile" fi $opt_dry_run || $RM $removelist func_append removelist " $lockfile" trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 srcfile=$func_to_tool_file_result func_quote_for_eval "$srcfile" qsrcfile=$func_quote_for_eval_result # Only build a PIC object if we are building libtool libraries. if test yes = "$build_libtool_libs"; then # Without this assignment, base_compile gets emptied. fbsd_hideous_sh_bug=$base_compile if test no != "$pic_mode"; then command="$base_compile $qsrcfile $pic_flag" else # Don't build PIC code command="$base_compile $qsrcfile" fi func_mkdir_p "$xdir$objdir" if test -z "$output_obj"; then # Place PIC objects in $objdir func_append command " -o $lobj" fi func_show_eval_locale "$command" \ 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' if test warn = "$need_locks" && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support '-c' and '-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed, then go on to compile the next one if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then func_show_eval '$MV "$output_obj" "$lobj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi # Allow error messages only from the first compilation. if test yes = "$suppress_opt"; then suppress_output=' >/dev/null 2>&1' fi fi # Only build a position-dependent object if we build old libraries. if test yes = "$build_old_libs"; then if test yes != "$pic_mode"; then # Don't build PIC code command="$base_compile $qsrcfile$pie_flag" else command="$base_compile $qsrcfile $pic_flag" fi if test yes = "$compiler_c_o"; then func_append command " -o $obj" fi # Suppress compiler output if we already did a PIC compilation. func_append command "$suppress_output" func_show_eval_locale "$command" \ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' if test warn = "$need_locks" && test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then $ECHO "\ *** ERROR, $lockfile contains: `cat $lockfile 2>/dev/null` but it should contain: $srcfile This indicates that another process is trying to use the same temporary object file, and libtool could not work around it because your compiler does not support '-c' and '-o' together. If you repeat this compilation, it may succeed, by chance, but you had better avoid parallel builds (make -j) in this platform, or get a better compiler." $opt_dry_run || $RM $removelist exit $EXIT_FAILURE fi # Just move the object if needed if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then func_show_eval '$MV "$output_obj" "$obj"' \ 'error=$?; $opt_dry_run || $RM $removelist; exit $error' fi fi $opt_dry_run || { func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" # Unlock the critical section if it was locked if test no != "$need_locks"; then removelist=$lockfile $RM "$lockfile" fi } exit $EXIT_SUCCESS } $opt_help || { test compile = "$opt_mode" && func_mode_compile ${1+"$@"} } func_mode_help () { # We need to display help for each of the modes. case $opt_mode in "") # Generic help is extracted from the usage comments # at the start of this file. func_help ;; clean) $ECHO \ "Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... Remove files from the build directory. RM is the name of the program to use to delete files associated with each FILE (typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed to RM. If FILE is a libtool library, object or program, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; compile) $ECHO \ "Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE Compile a source file into a libtool library object. This mode accepts the following additional options: -o OUTPUT-FILE set the output file name to OUTPUT-FILE -no-suppress do not suppress compiler output for multiple passes -prefer-pic try to build PIC objects only -prefer-non-pic try to build non-PIC objects only -shared do not build a '.o' file suitable for static linking -static only build a '.o' file suitable for static linking -Wc,FLAG pass FLAG directly to the compiler COMPILE-COMMAND is a command to be used in creating a 'standard' object file from the given SOURCEFILE. The output file name is determined by removing the directory component from SOURCEFILE, then substituting the C source code suffix '.c' with the library object suffix, '.lo'." ;; execute) $ECHO \ "Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... Automatically set library path, then run a program. This mode accepts the following additional options: -dlopen FILE add the directory containing FILE to the library path This mode sets the library path environment variable according to '-dlopen' flags. If any of the ARGS are libtool executable wrappers, then they are translated into their corresponding uninstalled binary, and any of their required library directories are added to the library path. Then, COMMAND is executed, with ARGS as arguments." ;; finish) $ECHO \ "Usage: $progname [OPTION]... --mode=finish [LIBDIR]... Complete the installation of libtool libraries. Each LIBDIR is a directory that contains libtool libraries. The commands that this mode executes may require superuser privileges. Use the '--dry-run' option if you just want to see what would be executed." ;; install) $ECHO \ "Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... Install executables or libraries. INSTALL-COMMAND is the installation command. The first component should be either the 'install' or 'cp' program. The following components of INSTALL-COMMAND are treated specially: -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation The rest of the components are interpreted as arguments to that command (only BSD-compatible install options are recognized)." ;; link) $ECHO \ "Usage: $progname [OPTION]... --mode=link LINK-COMMAND... Link object files or libraries together to form another library, or to create an executable program. LINK-COMMAND is a command using the C compiler that you would use to create a program from several object files. The following components of LINK-COMMAND are treated specially: -all-static do not do any dynamic linking at all -avoid-version do not add a version suffix if possible -bindir BINDIR specify path to binaries directory (for systems where libraries must be found in the PATH setting at runtime) -dlopen FILE '-dlpreopen' FILE if it cannot be dlopened at runtime -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) -export-symbols SYMFILE try to export only the symbols listed in SYMFILE -export-symbols-regex REGEX try to export only the symbols matching REGEX -LLIBDIR search LIBDIR for required installed libraries -lNAME OUTPUT-FILE requires the installed library libNAME -module build a library that can dlopened -no-fast-install disable the fast-install mode -no-install link a not-installable executable -no-undefined declare that a library does not refer to external symbols -o OUTPUT-FILE create OUTPUT-FILE from the specified objects -objectlist FILE use a list of object files found in FILE to specify objects -os2dllname NAME force a short DLL name on OS/2 (no effect on other OSes) -precious-files-regex REGEX don't remove output files matching REGEX -release RELEASE specify package release information -rpath LIBDIR the created library will eventually be installed in LIBDIR -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries -shared only do dynamic linking of libtool libraries -shrext SUFFIX override the standard shared library file extension -static do not do any dynamic linking of uninstalled libtool libraries -static-libtool-libs do not do any dynamic linking of libtool libraries -version-info CURRENT[:REVISION[:AGE]] specify library version info [each variable defaults to 0] -weak LIBNAME declare that the target provides the LIBNAME interface -Wc,FLAG -Xcompiler FLAG pass linker-specific FLAG directly to the compiler -Wl,FLAG -Xlinker FLAG pass linker-specific FLAG directly to the linker -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) All other options (arguments beginning with '-') are ignored. Every other argument is treated as a filename. Files ending in '.la' are treated as uninstalled libtool libraries, other files are standard or library object files. If the OUTPUT-FILE ends in '.la', then a libtool library is created, only library objects ('.lo' files) may be specified, and '-rpath' is required, except when creating a convenience library. If OUTPUT-FILE ends in '.a' or '.lib', then a standard library is created using 'ar' and 'ranlib', or on Windows using 'lib'. If OUTPUT-FILE ends in '.lo' or '.$objext', then a reloadable object file is created, otherwise an executable program is created." ;; uninstall) $ECHO \ "Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... Remove libraries from an installation directory. RM is the name of the program to use to delete files associated with each FILE (typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed to RM. If FILE is a libtool library, all the files associated with it are deleted. Otherwise, only FILE itself is deleted using RM." ;; *) func_fatal_help "invalid operation mode '$opt_mode'" ;; esac echo $ECHO "Try '$progname --help' for more information about other modes." } # Now that we've collected a possible --mode arg, show help if necessary if $opt_help; then if test : = "$opt_help"; then func_mode_help else { func_help noexit for opt_mode in compile link execute install finish uninstall clean; do func_mode_help done } | $SED -n '1p; 2,$s/^Usage:/ or: /p' { func_help noexit for opt_mode in compile link execute install finish uninstall clean; do echo func_mode_help done } | $SED '1d /^When reporting/,/^Report/{ H d } $x /information about other modes/d /more detailed .*MODE/d s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' fi exit $? fi # func_mode_execute arg... func_mode_execute () { $debug_cmd # The first argument is the command name. cmd=$nonopt test -z "$cmd" && \ func_fatal_help "you must specify a COMMAND" # Handle -dlopen flags immediately. for file in $opt_dlopen; do test -f "$file" \ || func_fatal_help "'$file' is not a file" dir= case $file in *.la) func_resolve_sysroot "$file" file=$func_resolve_sysroot_result # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "'$lib' is not a valid libtool archive" # Read the libtool library. dlname= library_names= func_source "$file" # Skip this library if it cannot be dlopened. if test -z "$dlname"; then # Warn if it was a shared library. test -n "$library_names" && \ func_warning "'$file' was not linked with '-export-dynamic'" continue fi func_dirname "$file" "" "." dir=$func_dirname_result if test -f "$dir/$objdir/$dlname"; then func_append dir "/$objdir" else if test ! -f "$dir/$dlname"; then func_fatal_error "cannot find '$dlname' in '$dir' or '$dir/$objdir'" fi fi ;; *.lo) # Just add the directory containing the .lo file. func_dirname "$file" "" "." dir=$func_dirname_result ;; *) func_warning "'-dlopen' is ignored for non-libtool libraries and objects" continue ;; esac # Get the absolute pathname. absdir=`cd "$dir" && pwd` test -n "$absdir" && dir=$absdir # Now add the directory to shlibpath_var. if eval "test -z \"\$$shlibpath_var\""; then eval "$shlibpath_var=\"\$dir\"" else eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" fi done # This variable tells wrapper scripts just to set shlibpath_var # rather than running their programs. libtool_execute_magic=$magic # Check if any of the arguments is a wrapper script. args= for file do case $file in -* | *.la | *.lo ) ;; *) # Do a test to see if this is really a libtool program. if func_ltwrapper_script_p "$file"; then func_source "$file" # Transform arg to wrapped name. file=$progdir/$program elif func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" func_source "$func_ltwrapper_scriptname_result" # Transform arg to wrapped name. file=$progdir/$program fi ;; esac # Quote arguments (to preserve shell metacharacters). func_append_quoted args "$file" done if $opt_dry_run; then # Display what would be done. if test -n "$shlibpath_var"; then eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" echo "export $shlibpath_var" fi $ECHO "$cmd$args" exit $EXIT_SUCCESS else if test -n "$shlibpath_var"; then # Export the shlibpath_var. eval "export $shlibpath_var" fi # Restore saved environment variables for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES do eval "if test \"\${save_$lt_var+set}\" = set; then $lt_var=\$save_$lt_var; export $lt_var else $lt_unset $lt_var fi" done # Now prepare to actually exec the command. exec_cmd=\$cmd$args fi } test execute = "$opt_mode" && func_mode_execute ${1+"$@"} # func_mode_finish arg... func_mode_finish () { $debug_cmd libs= libdirs= admincmds= for opt in "$nonopt" ${1+"$@"} do if test -d "$opt"; then func_append libdirs " $opt" elif test -f "$opt"; then if func_lalib_unsafe_p "$opt"; then func_append libs " $opt" else func_warning "'$opt' is not a valid libtool archive" fi else func_fatal_error "invalid argument '$opt'" fi done if test -n "$libs"; then if test -n "$lt_sysroot"; then sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" else sysroot_cmd= fi # Remove sysroot references if $opt_dry_run; then for lib in $libs; do echo "removing references to $lt_sysroot and '=' prefixes from $lib" done else tmpdir=`func_mktempdir` for lib in $libs; do $SED -e "$sysroot_cmd s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ > $tmpdir/tmp-la mv -f $tmpdir/tmp-la $lib done ${RM}r "$tmpdir" fi fi if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands. func_execute_cmds "$finish_cmds" 'admincmds="$admincmds '"$cmd"'"' fi if test -n "$finish_eval"; then # Do the single finish_eval. eval cmds=\"$finish_eval\" $opt_dry_run || eval "$cmds" || func_append admincmds " $cmds" fi done fi # Exit here if they wanted silent mode. $opt_quiet && exit $EXIT_SUCCESS if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then echo "----------------------------------------------------------------------" echo "Libraries have been installed in:" for libdir in $libdirs; do $ECHO " $libdir" done echo echo "If you ever happen to want to link against installed libraries" echo "in a given directory, LIBDIR, you must either use libtool, and" echo "specify the full pathname of the library, or use the '-LLIBDIR'" echo "flag during linking and do at least one of the following:" if test -n "$shlibpath_var"; then echo " - add LIBDIR to the '$shlibpath_var' environment variable" echo " during execution" fi if test -n "$runpath_var"; then echo " - add LIBDIR to the '$runpath_var' environment variable" echo " during linking" fi if test -n "$hardcode_libdir_flag_spec"; then libdir=LIBDIR eval flag=\"$hardcode_libdir_flag_spec\" $ECHO " - use the '$flag' linker flag" fi if test -n "$admincmds"; then $ECHO " - have your system administrator run these commands:$admincmds" fi if test -f /etc/ld.so.conf; then echo " - have your system administrator add LIBDIR to '/etc/ld.so.conf'" fi echo echo "See any operating system documentation about shared libraries for" case $host in solaris2.[6789]|solaris2.1[0-9]) echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" echo "pages." ;; *) echo "more information, such as the ld(1) and ld.so(8) manual pages." ;; esac echo "----------------------------------------------------------------------" fi exit $EXIT_SUCCESS } test finish = "$opt_mode" && func_mode_finish ${1+"$@"} # func_mode_install arg... func_mode_install () { $debug_cmd # There may be an optional sh(1) argument at the beginning of # install_prog (especially on Windows NT). if test "$SHELL" = "$nonopt" || test /bin/sh = "$nonopt" || # Allow the use of GNU shtool's install command. case $nonopt in *shtool*) :;; *) false;; esac then # Aesthetically quote it. func_quote_for_eval "$nonopt" install_prog="$func_quote_for_eval_result " arg=$1 shift else install_prog= arg=$nonopt fi # The real first argument should be the name of the installation program. # Aesthetically quote it. func_quote_for_eval "$arg" func_append install_prog "$func_quote_for_eval_result" install_shared_prog=$install_prog case " $install_prog " in *[\\\ /]cp\ *) install_cp=: ;; *) install_cp=false ;; esac # We need to accept at least all the BSD install flags. dest= files= opts= prev= install_type= isdir=false stripme= no_mode=: for arg do arg2= if test -n "$dest"; then func_append files " $dest" dest=$arg continue fi case $arg in -d) isdir=: ;; -f) if $install_cp; then :; else prev=$arg fi ;; -g | -m | -o) prev=$arg ;; -s) stripme=" -s" continue ;; -*) ;; *) # If the previous option needed an argument, then skip it. if test -n "$prev"; then if test X-m = "X$prev" && test -n "$install_override_mode"; then arg2=$install_override_mode no_mode=false fi prev= else dest=$arg continue fi ;; esac # Aesthetically quote the argument. func_quote_for_eval "$arg" func_append install_prog " $func_quote_for_eval_result" if test -n "$arg2"; then func_quote_for_eval "$arg2" fi func_append install_shared_prog " $func_quote_for_eval_result" done test -z "$install_prog" && \ func_fatal_help "you must specify an install program" test -n "$prev" && \ func_fatal_help "the '$prev' option requires an argument" if test -n "$install_override_mode" && $no_mode; then if $install_cp; then :; else func_quote_for_eval "$install_override_mode" func_append install_shared_prog " -m $func_quote_for_eval_result" fi fi if test -z "$files"; then if test -z "$dest"; then func_fatal_help "no file or destination specified" else func_fatal_help "you must specify a destination" fi fi # Strip any trailing slash from the destination. func_stripname '' '/' "$dest" dest=$func_stripname_result # Check to see that the destination is a directory. test -d "$dest" && isdir=: if $isdir; then destdir=$dest destname= else func_dirname_and_basename "$dest" "" "." destdir=$func_dirname_result destname=$func_basename_result # Not a directory, so check to see that there is only one file specified. set dummy $files; shift test "$#" -gt 1 && \ func_fatal_help "'$dest' is not a directory" fi case $destdir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) for file in $files; do case $file in *.lo) ;; *) func_fatal_help "'$destdir' must be an absolute directory name" ;; esac done ;; esac # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic=$magic staticlibs= future_libdirs= current_libdirs= for file in $files; do # Do each installation. case $file in *.$libext) # Do the static libraries later. func_append staticlibs " $file" ;; *.la) func_resolve_sysroot "$file" file=$func_resolve_sysroot_result # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$file" \ || func_fatal_help "'$file' is not a valid libtool archive" library_names= old_library= relink_command= func_source "$file" # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then case "$current_libdirs " in *" $libdir "*) ;; *) func_append current_libdirs " $libdir" ;; esac else # Note the libdir as a future libdir. case "$future_libdirs " in *" $libdir "*) ;; *) func_append future_libdirs " $libdir" ;; esac fi func_dirname "$file" "/" "" dir=$func_dirname_result func_append dir "$objdir" if test -n "$relink_command"; then # Determine the prefix the user has applied to our future dir. inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that # are installed to the same prefix. # At present, this check doesn't affect windows .dll's that # are installed into $libdir/../bin (currently, that works fine) # but it's something to keep an eye on. test "$inst_prefix_dir" = "$destdir" && \ func_fatal_error "error: cannot install '$file' to a directory not ending in $libdir" if test -n "$inst_prefix_dir"; then # Stick the inst_prefix_dir data into the link command. relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` else relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` fi func_warning "relinking '$file'" func_show_eval "$relink_command" \ 'func_fatal_error "error: relink '\''$file'\'' with the above command before installing it"' fi # See the names of the shared library. set dummy $library_names; shift if test -n "$1"; then realname=$1 shift srcname=$realname test -n "$relink_command" && srcname=${realname}T # Install the shared library and build the symlinks. func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ 'exit $?' tstripme=$stripme case $host_os in cygwin* | mingw* | pw32* | cegcc*) case $realname in *.dll.a) tstripme= ;; esac ;; os2*) case $realname in *_dll.a) tstripme= ;; esac ;; esac if test -n "$tstripme" && test -n "$striplib"; then func_show_eval "$striplib $destdir/$realname" 'exit $?' fi if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. # Try 'ln -sf' first, because the 'ln' binary might depend on # the symlink we replace! Solaris /bin/ln does not understand -f, # so we also need to try rm && ln -s. for linkname do test "$linkname" != "$realname" \ && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" done fi # Do each command in the postinstall commands. lib=$destdir/$realname func_execute_cmds "$postinstall_cmds" 'exit $?' fi # Install the pseudo-library for information purposes. func_basename "$file" name=$func_basename_result instname=$dir/${name}i func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' # Maybe install the static library, too. test -n "$old_library" && func_append staticlibs " $dir/$old_library" ;; *.lo) # Install (i.e. copy) a libtool object. # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile=$destdir/$destname else func_basename "$file" destfile=$func_basename_result destfile=$destdir/$destfile fi # Deduce the name of the destination old-style object file. case $destfile in *.lo) func_lo2o "$destfile" staticdest=$func_lo2o_result ;; *.$objext) staticdest=$destfile destfile= ;; *) func_fatal_help "cannot copy a libtool object to '$destfile'" ;; esac # Install the libtool object if requested. test -n "$destfile" && \ func_show_eval "$install_prog $file $destfile" 'exit $?' # Install the old object if enabled. if test yes = "$build_old_libs"; then # Deduce the name of the old-style object file. func_lo2o "$file" staticobj=$func_lo2o_result func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' fi exit $EXIT_SUCCESS ;; *) # Figure out destination file name, if it wasn't already specified. if test -n "$destname"; then destfile=$destdir/$destname else func_basename "$file" destfile=$func_basename_result destfile=$destdir/$destfile fi # If the file is missing, and there is a .exe on the end, strip it # because it is most likely a libtool script we actually want to # install stripped_ext= case $file in *.exe) if test ! -f "$file"; then func_stripname '' '.exe' "$file" file=$func_stripname_result stripped_ext=.exe fi ;; esac # Do a test to see if this is really a libtool program. case $host in *cygwin* | *mingw*) if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" wrapper=$func_ltwrapper_scriptname_result else func_stripname '' '.exe' "$file" wrapper=$func_stripname_result fi ;; *) wrapper=$file ;; esac if func_ltwrapper_script_p "$wrapper"; then notinst_deplibs= relink_command= func_source "$wrapper" # Check the variables that should have been set. test -z "$generated_by_libtool_version" && \ func_fatal_error "invalid libtool wrapper script '$wrapper'" finalize=: for lib in $notinst_deplibs; do # Check to see that each library is installed. libdir= if test -f "$lib"; then func_source "$lib" fi libfile=$libdir/`$ECHO "$lib" | $SED 's%^.*/%%g'` if test -n "$libdir" && test ! -f "$libfile"; then func_warning "'$lib' has not been installed in '$libdir'" finalize=false fi done relink_command= func_source "$wrapper" outputname= if test no = "$fast_install" && test -n "$relink_command"; then $opt_dry_run || { if $finalize; then tmpdir=`func_mktempdir` func_basename "$file$stripped_ext" file=$func_basename_result outputname=$tmpdir/$file # Replace the output file specification. relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` $opt_quiet || { func_quote_for_expand "$relink_command" eval "func_echo $func_quote_for_expand_result" } if eval "$relink_command"; then : else func_error "error: relink '$file' with the above command before installing it" $opt_dry_run || ${RM}r "$tmpdir" continue fi file=$outputname else func_warning "cannot relink '$file'" fi } else # Install the binary that we compiled earlier. file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` fi fi # remove .exe since cygwin /usr/bin/install will append another # one anyway case $install_prog,$host in */usr/bin/install*,*cygwin*) case $file:$destfile in *.exe:*.exe) # this is ok ;; *.exe:*) destfile=$destfile.exe ;; *:*.exe) func_stripname '' '.exe' "$destfile" destfile=$func_stripname_result ;; esac ;; esac func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' $opt_dry_run || if test -n "$outputname"; then ${RM}r "$tmpdir" fi ;; esac done for file in $staticlibs; do func_basename "$file" name=$func_basename_result # Set up the ranlib parameters. oldlib=$destdir/$name func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 tool_oldlib=$func_to_tool_file_result func_show_eval "$install_prog \$file \$oldlib" 'exit $?' if test -n "$stripme" && test -n "$old_striplib"; then func_show_eval "$old_striplib $tool_oldlib" 'exit $?' fi # Do each command in the postinstall commands. func_execute_cmds "$old_postinstall_cmds" 'exit $?' done test -n "$future_libdirs" && \ func_warning "remember to run '$progname --finish$future_libdirs'" if test -n "$current_libdirs"; then # Maybe just do a dry run. $opt_dry_run && current_libdirs=" -n$current_libdirs" exec_cmd='$SHELL "$progpath" $preserve_args --finish$current_libdirs' else exit $EXIT_SUCCESS fi } test install = "$opt_mode" && func_mode_install ${1+"$@"} # func_generate_dlsyms outputname originator pic_p # Extract symbols from dlprefiles and create ${outputname}S.o with # a dlpreopen symbol table. func_generate_dlsyms () { $debug_cmd my_outputname=$1 my_originator=$2 my_pic_p=${3-false} my_prefix=`$ECHO "$my_originator" | $SED 's%[^a-zA-Z0-9]%_%g'` my_dlsyms= if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then if test -n "$NM" && test -n "$global_symbol_pipe"; then my_dlsyms=${my_outputname}S.c else func_error "not configured to extract global symbols from dlpreopened files" fi fi if test -n "$my_dlsyms"; then case $my_dlsyms in "") ;; *.c) # Discover the nlist of each of the dlfiles. nlist=$output_objdir/$my_outputname.nm func_show_eval "$RM $nlist ${nlist}S ${nlist}T" # Parse the name list into a source file. func_verbose "creating $output_objdir/$my_dlsyms" $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ /* $my_dlsyms - symbol resolution table for '$my_outputname' dlsym emulation. */ /* Generated by $PROGRAM (GNU $PACKAGE) $VERSION */ #ifdef __cplusplus extern \"C\" { #endif #if defined __GNUC__ && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) #pragma GCC diagnostic ignored \"-Wstrict-prototypes\" #endif /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE /* DATA imports from DLLs on WIN32 can't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST #elif defined __osf__ /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else # define LT_DLSYM_CONST const #endif #define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) /* External symbol declarations for the compiler. */\ " if test yes = "$dlself"; then func_verbose "generating symbol list for '$output'" $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" # Add our own program objects to the symbol list. progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` for progfile in $progfiles; do func_to_tool_file "$progfile" func_convert_file_msys_to_w32 func_verbose "extracting global C symbols from '$func_to_tool_file_result'" $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" done if test -n "$exclude_expsyms"; then $opt_dry_run || { eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi if test -n "$export_symbols_regex"; then $opt_dry_run || { eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' } fi # Prepare the list of exported symbols if test -z "$export_symbols"; then export_symbols=$output_objdir/$outputname.exp $opt_dry_run || { $RM $export_symbols eval "$SED -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;; esac } else $opt_dry_run || { eval "$SED -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' case $host in *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;; esac } fi fi for dlprefile in $dlprefiles; do func_verbose "extracting global C symbols from '$dlprefile'" func_basename "$dlprefile" name=$func_basename_result case $host in *cygwin* | *mingw* | *cegcc* ) # if an import library, we need to obtain dlname if func_win32_import_lib_p "$dlprefile"; then func_tr_sh "$dlprefile" eval "curr_lafile=\$libfile_$func_tr_sh_result" dlprefile_dlbasename= if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then # Use subshell, to avoid clobbering current variable values dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` if test -n "$dlprefile_dlname"; then func_basename "$dlprefile_dlname" dlprefile_dlbasename=$func_basename_result else # no lafile. user explicitly requested -dlpreopen . $sharedlib_from_linklib_cmd "$dlprefile" dlprefile_dlbasename=$sharedlib_from_linklib_result fi fi $opt_dry_run || { if test -n "$dlprefile_dlbasename"; then eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' else func_warning "Could not compute DLL name from $name" eval '$ECHO ": $name " >> "$nlist"' fi func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" } else # not an import lib $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" } fi ;; *) $opt_dry_run || { eval '$ECHO ": $name " >> "$nlist"' func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" } ;; esac done $opt_dry_run || { # Make sure we have at least an empty file. test -f "$nlist" || : > "$nlist" if test -n "$exclude_expsyms"; then $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T $MV "$nlist"T "$nlist" fi # Try sorting and uniquifying the output. if $GREP -v "^: " < "$nlist" | if sort -k 3 /dev/null 2>&1; then sort -k 3 else sort +2 fi | uniq > "$nlist"S; then : else $GREP -v "^: " < "$nlist" > "$nlist"S fi if test -f "$nlist"S; then eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' else echo '/* NONE */' >> "$output_objdir/$my_dlsyms" fi func_show_eval '$RM "${nlist}I"' if test -n "$global_symbol_to_import"; then eval "$global_symbol_to_import"' < "$nlist"S > "$nlist"I' fi echo >> "$output_objdir/$my_dlsyms" "\ /* The mapping between symbol names and symbols. */ typedef struct { const char *name; void *address; } lt_dlsymlist; extern LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[];\ " if test -s "$nlist"I; then echo >> "$output_objdir/$my_dlsyms" "\ static void lt_syminit(void) { LT_DLSYM_CONST lt_dlsymlist *symbol = lt_${my_prefix}_LTX_preloaded_symbols; for (; symbol->name; ++symbol) {" $SED 's/.*/ if (STREQ (symbol->name, \"&\")) symbol->address = (void *) \&&;/' < "$nlist"I >> "$output_objdir/$my_dlsyms" echo >> "$output_objdir/$my_dlsyms" "\ } }" fi echo >> "$output_objdir/$my_dlsyms" "\ LT_DLSYM_CONST lt_dlsymlist lt_${my_prefix}_LTX_preloaded_symbols[] = { {\"$my_originator\", (void *) 0}," if test -s "$nlist"I; then echo >> "$output_objdir/$my_dlsyms" "\ {\"@INIT@\", (void *) <_syminit}," fi case $need_lib_prefix in no) eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; *) eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" ;; esac echo >> "$output_objdir/$my_dlsyms" "\ {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt_${my_prefix}_LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif\ " } # !$opt_dry_run pic_flag_for_symtable= case "$compile_command " in *" -static "*) ;; *) case $host in # compiling the symbol table file with pic_flag works around # a FreeBSD bug that causes programs to crash when -lm is # linked before any other PIC object. But we must not use # pic_flag when linking with -static. The problem exists in # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; *-*-hpux*) pic_flag_for_symtable=" $pic_flag" ;; *) $my_pic_p && pic_flag_for_symtable=" $pic_flag" ;; esac ;; esac symtab_cflags= for arg in $LTCFLAGS; do case $arg in -pie | -fpie | -fPIE) ;; *) func_append symtab_cflags " $arg" ;; esac done # Now compile the dynamic symbol file. func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' # Clean up the generated files. func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T" "${nlist}I"' # Transform the symbol file into the correct name. symfileobj=$output_objdir/${my_outputname}S.$objext case $host in *cygwin* | *mingw* | *cegcc* ) if test -f "$output_objdir/$my_outputname.def"; then compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` else compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` fi ;; *) compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` ;; esac ;; *) func_fatal_error "unknown suffix for '$my_dlsyms'" ;; esac else # We keep going just in case the user didn't refer to # lt_preloaded_symbols. The linker will fail if global_symbol_pipe # really was required. # Nullify the symbol file. compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` fi } # func_cygming_gnu_implib_p ARG # This predicate returns with zero status (TRUE) if # ARG is a GNU/binutils-style import library. Returns # with nonzero status (FALSE) otherwise. func_cygming_gnu_implib_p () { $debug_cmd func_to_tool_file "$1" func_convert_file_msys_to_w32 func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` test -n "$func_cygming_gnu_implib_tmp" } # func_cygming_ms_implib_p ARG # This predicate returns with zero status (TRUE) if # ARG is an MS-style import library. Returns # with nonzero status (FALSE) otherwise. func_cygming_ms_implib_p () { $debug_cmd func_to_tool_file "$1" func_convert_file_msys_to_w32 func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` test -n "$func_cygming_ms_implib_tmp" } # func_win32_libid arg # return the library type of file 'arg' # # Need a lot of goo to handle *both* DLLs and import libs # Has to be a shell function in order to 'eat' the argument # that is supplied when $file_magic_command is called. # Despite the name, also deal with 64 bit binaries. func_win32_libid () { $debug_cmd win32_libid_type=unknown win32_fileres=`file -L $1 2>/dev/null` case $win32_fileres in *ar\ archive\ import\ library*) # definitely import win32_libid_type="x86 archive import" ;; *ar\ archive*) # could be an import, or static # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then case $nm_interface in "MS dumpbin") if func_cygming_ms_implib_p "$1" || func_cygming_gnu_implib_p "$1" then win32_nmres=import else win32_nmres= fi ;; *) func_to_tool_file "$1" func_convert_file_msys_to_w32 win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | $SED -n -e ' 1,100{ / I /{ s|.*|import| p q } }'` ;; esac case $win32_nmres in import*) win32_libid_type="x86 archive import";; *) win32_libid_type="x86 archive static";; esac fi ;; *DLL*) win32_libid_type="x86 DLL" ;; *executable*) # but shell scripts are "executable" too... case $win32_fileres in *MS\ Windows\ PE\ Intel*) win32_libid_type="x86 DLL" ;; esac ;; esac $ECHO "$win32_libid_type" } # func_cygming_dll_for_implib ARG # # Platform-specific function to extract the # name of the DLL associated with the specified # import library ARG. # Invoked by eval'ing the libtool variable # $sharedlib_from_linklib_cmd # Result is available in the variable # $sharedlib_from_linklib_result func_cygming_dll_for_implib () { $debug_cmd sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` } # func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs # # The is the core of a fallback implementation of a # platform-specific function to extract the name of the # DLL associated with the specified import library LIBNAME. # # SECTION_NAME is either .idata$6 or .idata$7, depending # on the platform and compiler that created the implib. # # Echos the name of the DLL associated with the # specified import library. func_cygming_dll_for_implib_fallback_core () { $debug_cmd match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` $OBJDUMP -s --section "$1" "$2" 2>/dev/null | $SED '/^Contents of section '"$match_literal"':/{ # Place marker at beginning of archive member dllname section s/.*/====MARK====/ p d } # These lines can sometimes be longer than 43 characters, but # are always uninteresting /:[ ]*file format pe[i]\{,1\}-/d /^In archive [^:]*:/d # Ensure marker is printed /^====MARK====/p # Remove all lines with less than 43 characters /^.\{43\}/!d # From remaining lines, remove first 43 characters s/^.\{43\}//' | $SED -n ' # Join marker and all lines until next marker into a single line /^====MARK====/ b para H $ b para b :para x s/\n//g # Remove the marker s/^====MARK====// # Remove trailing dots and whitespace s/[\. \t]*$// # Print /./p' | # we now have a list, one entry per line, of the stringified # contents of the appropriate section of all members of the # archive that possess that section. Heuristic: eliminate # all those that have a first or second character that is # a '.' (that is, objdump's representation of an unprintable # character.) This should work for all archives with less than # 0x302f exports -- but will fail for DLLs whose name actually # begins with a literal '.' or a single character followed by # a '.'. # # Of those that remain, print the first one. $SED -e '/^\./d;/^.\./d;q' } # func_cygming_dll_for_implib_fallback ARG # Platform-specific function to extract the # name of the DLL associated with the specified # import library ARG. # # This fallback implementation is for use when $DLLTOOL # does not support the --identify-strict option. # Invoked by eval'ing the libtool variable # $sharedlib_from_linklib_cmd # Result is available in the variable # $sharedlib_from_linklib_result func_cygming_dll_for_implib_fallback () { $debug_cmd if func_cygming_gnu_implib_p "$1"; then # binutils import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` elif func_cygming_ms_implib_p "$1"; then # ms-generated import library sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` else # unknown sharedlib_from_linklib_result= fi } # func_extract_an_archive dir oldlib func_extract_an_archive () { $debug_cmd f_ex_an_ar_dir=$1; shift f_ex_an_ar_oldlib=$1 if test yes = "$lock_old_archive_extraction"; then lockfile=$f_ex_an_ar_oldlib.lock until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do func_echo "Waiting for $lockfile to be removed" sleep 2 done fi func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ 'stat=$?; rm -f "$lockfile"; exit $stat' if test yes = "$lock_old_archive_extraction"; then $opt_dry_run || rm -f "$lockfile" fi if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then : else func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" fi } # func_extract_archives gentop oldlib ... func_extract_archives () { $debug_cmd my_gentop=$1; shift my_oldlibs=${1+"$@"} my_oldobjs= my_xlib= my_xabs= my_xdir= for my_xlib in $my_oldlibs; do # Extract the objects. case $my_xlib in [\\/]* | [A-Za-z]:[\\/]*) my_xabs=$my_xlib ;; *) my_xabs=`pwd`"/$my_xlib" ;; esac func_basename "$my_xlib" my_xlib=$func_basename_result my_xlib_u=$my_xlib while :; do case " $extracted_archives " in *" $my_xlib_u "*) func_arith $extracted_serial + 1 extracted_serial=$func_arith_result my_xlib_u=lt$extracted_serial-$my_xlib ;; *) break ;; esac done extracted_archives="$extracted_archives $my_xlib_u" my_xdir=$my_gentop/$my_xlib_u func_mkdir_p "$my_xdir" case $host in *-darwin*) func_verbose "Extracting $my_xabs" # Do not bother doing anything if just a dry run $opt_dry_run || { darwin_orig_dir=`pwd` cd $my_xdir || exit $? darwin_archive=$my_xabs darwin_curdir=`pwd` func_basename "$darwin_archive" darwin_base_archive=$func_basename_result darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` if test -n "$darwin_arches"; then darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` darwin_arch= func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" for darwin_arch in $darwin_arches; do func_mkdir_p "unfat-$$/$darwin_base_archive-$darwin_arch" $LIPO -thin $darwin_arch -output "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" "$darwin_archive" cd "unfat-$$/$darwin_base_archive-$darwin_arch" func_extract_an_archive "`pwd`" "$darwin_base_archive" cd "$darwin_curdir" $RM "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" done # $darwin_arches ## Okay now we've a bunch of thin objects, gotta fatten them up :) darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$sed_basename" | sort -u` darwin_file= darwin_files= for darwin_file in $darwin_filelist; do darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` $LIPO -create -output "$darwin_file" $darwin_files done # $darwin_filelist $RM -rf unfat-$$ cd "$darwin_orig_dir" else cd $darwin_orig_dir func_extract_an_archive "$my_xdir" "$my_xabs" fi # $darwin_arches } # !$opt_dry_run ;; *) func_extract_an_archive "$my_xdir" "$my_xabs" ;; esac my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` done func_extract_archives_result=$my_oldobjs } # func_emit_wrapper [arg=no] # # Emit a libtool wrapper script on stdout. # Don't directly open a file because we may want to # incorporate the script contents within a cygwin/mingw # wrapper executable. Must ONLY be called from within # func_mode_link because it depends on a number of variables # set therein. # # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR # variable will take. If 'yes', then the emitted script # will assume that the directory where it is stored is # the $objdir directory. This is a cygwin/mingw-specific # behavior. func_emit_wrapper () { func_emit_wrapper_arg1=${1-no} $ECHO "\ #! $SHELL # $output - temporary wrapper script for $objdir/$outputname # Generated by $PROGRAM (GNU $PACKAGE) $VERSION # # The $output program cannot be directly executed until all the libtool # libraries that it depends on are installed. # # This wrapper script should never be moved out of the build directory. # If it is, it will not operate correctly. # Sed substitution that helps us do robust quoting. It backslashifies # metacharacters that are still active within double-quoted strings. sed_quote_subst='$sed_quote_subst' # Be Bourne compatible if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac fi BIN_SH=xpg4; export BIN_SH # for Tru64 DUALCASE=1; export DUALCASE # for MKS sh # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH relink_command=\"$relink_command\" # This environment variable determines our operation mode. if test \"\$libtool_install_magic\" = \"$magic\"; then # install mode needs the following variables: generated_by_libtool_version='$macro_version' notinst_deplibs='$notinst_deplibs' else # When we are sourced in execute mode, \$file and \$ECHO are already set. if test \"\$libtool_execute_magic\" != \"$magic\"; then file=\"\$0\"" qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` $ECHO "\ # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$1 _LTECHO_EOF' } ECHO=\"$qECHO\" fi # Very basic option parsing. These options are (a) specific to # the libtool wrapper, (b) are identical between the wrapper # /script/ and the wrapper /executable/ that is used only on # windows platforms, and (c) all begin with the string "--lt-" # (application programs are unlikely to have options that match # this pattern). # # There are only two supported options: --lt-debug and # --lt-dump-script. There is, deliberately, no --lt-help. # # The first argument to this parsing function should be the # script's $0 value, followed by "$@". lt_option_debug= func_parse_lt_options () { lt_script_arg0=\$0 shift for lt_opt do case \"\$lt_opt\" in --lt-debug) lt_option_debug=1 ;; --lt-dump-script) lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` cat \"\$lt_dump_D/\$lt_dump_F\" exit 0 ;; --lt-*) \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 exit 1 ;; esac done # Print the debug banner immediately: if test -n \"\$lt_option_debug\"; then echo \"$outputname:$output:\$LINENO: libtool wrapper (GNU $PACKAGE) $VERSION\" 1>&2 fi } # Used when --lt-debug. Prints its arguments to stdout # (redirection is the responsibility of the caller) func_lt_dump_args () { lt_dump_args_N=1; for lt_arg do \$ECHO \"$outputname:$output:\$LINENO: newargv[\$lt_dump_args_N]: \$lt_arg\" lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` done } # Core function for launching the target application func_exec_program_core () { " case $host in # Backslashes separate directories on plain windows *-*-mingw | *-*-os2* | *-cegcc*) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir\\\\\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} " ;; *) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir/\$program\" 1>&2 func_lt_dump_args \${1+\"\$@\"} 1>&2 fi exec \"\$progdir/\$program\" \${1+\"\$@\"} " ;; esac $ECHO "\ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 exit 1 } # A function to encapsulate launching the target application # Strips options in the --lt-* namespace from \$@ and # launches target application with the remaining arguments. func_exec_program () { case \" \$* \" in *\\ --lt-*) for lt_wr_arg do case \$lt_wr_arg in --lt-*) ;; *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; esac shift done ;; esac func_exec_program_core \${1+\"\$@\"} } # Parse options func_parse_lt_options \"\$0\" \${1+\"\$@\"} # Find the directory that this script lives in. thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` test \"x\$thisdir\" = \"x\$file\" && thisdir=. # Follow symbolic links until we get to the real thisdir. file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` while test -n \"\$file\"; do destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` # If there was a directory component, then change thisdir. if test \"x\$destdir\" != \"x\$file\"; then case \"\$destdir\" in [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; *) thisdir=\"\$thisdir/\$destdir\" ;; esac fi file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` done # Usually 'no', except on cygwin/mingw when embedded into # the cwrapper. WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then # special case for '.' if test \"\$thisdir\" = \".\"; then thisdir=\`pwd\` fi # remove .libs from thisdir case \"\$thisdir\" in *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; $objdir ) thisdir=. ;; esac fi # Try to get the absolute directory name. absdir=\`cd \"\$thisdir\" && pwd\` test -n \"\$absdir\" && thisdir=\"\$absdir\" " if test yes = "$fast_install"; then $ECHO "\ program=lt-'$outputname'$exeext progdir=\"\$thisdir/$objdir\" if test ! -f \"\$progdir/\$program\" || { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | $SED 1q\`; \\ test \"X\$file\" != \"X\$progdir/\$program\"; }; then file=\"\$\$-\$program\" if test ! -d \"\$progdir\"; then $MKDIR \"\$progdir\" else $RM \"\$progdir/\$file\" fi" $ECHO "\ # relink executable if necessary if test -n \"\$relink_command\"; then if relink_command_output=\`eval \$relink_command 2>&1\`; then : else \$ECHO \"\$relink_command_output\" >&2 $RM \"\$progdir/\$file\" exit 1 fi fi $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || { $RM \"\$progdir/\$program\"; $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } $RM \"\$progdir/\$file\" fi" else $ECHO "\ program='$outputname' progdir=\"\$thisdir/$objdir\" " fi $ECHO "\ if test -f \"\$progdir/\$program\"; then" # fixup the dll searchpath if we need to. # # Fix the DLL searchpath if we need to. Do this before prepending # to shlibpath, because on Windows, both are PATH and uninstalled # libraries must come first. if test -n "$dllsearchpath"; then $ECHO "\ # Add the dll search path components to the executable PATH PATH=$dllsearchpath:\$PATH " fi # Export our shlibpath_var if we have one. if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then $ECHO "\ # Add our own library path to $shlibpath_var $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" # Some systems cannot cope with colon-terminated $shlibpath_var # The second colon is a workaround for a bug in BeOS R4 sed $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` export $shlibpath_var " fi $ECHO "\ if test \"\$libtool_execute_magic\" != \"$magic\"; then # Run the actual program with our arguments. func_exec_program \${1+\"\$@\"} fi else # The program doesn't exist. \$ECHO \"\$0: error: '\$progdir/\$program' does not exist\" 1>&2 \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 exit 1 fi fi\ " } # func_emit_cwrapperexe_src # emit the source code for a wrapper executable on stdout # Must ONLY be called from within func_mode_link because # it depends on a number of variable set therein. func_emit_cwrapperexe_src () { cat < #include #ifdef _MSC_VER # include # include # include #else # include # include # ifdef __CYGWIN__ # include # endif #endif #include #include #include #include #include #include #include #include #define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) /* declarations of non-ANSI functions */ #if defined __MINGW32__ # ifdef __STRICT_ANSI__ int _putenv (const char *); # endif #elif defined __CYGWIN__ # ifdef __STRICT_ANSI__ char *realpath (const char *, char *); int putenv (char *); int setenv (const char *, const char *, int); # endif /* #elif defined other_platform || defined ... */ #endif /* portability defines, excluding path handling macros */ #if defined _MSC_VER # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv # define S_IXUSR _S_IEXEC #elif defined __MINGW32__ # define setmode _setmode # define stat _stat # define chmod _chmod # define getcwd _getcwd # define putenv _putenv #elif defined __CYGWIN__ # define HAVE_SETENV # define FOPEN_WB "wb" /* #elif defined other platforms ... */ #endif #if defined PATH_MAX # define LT_PATHMAX PATH_MAX #elif defined MAXPATHLEN # define LT_PATHMAX MAXPATHLEN #else # define LT_PATHMAX 1024 #endif #ifndef S_IXOTH # define S_IXOTH 0 #endif #ifndef S_IXGRP # define S_IXGRP 0 #endif /* path handling portability macros */ #ifndef DIR_SEPARATOR # define DIR_SEPARATOR '/' # define PATH_SEPARATOR ':' #endif #if defined _WIN32 || defined __MSDOS__ || defined __DJGPP__ || \ defined __OS2__ # define HAVE_DOS_BASED_FILE_SYSTEM # define FOPEN_WB "wb" # ifndef DIR_SEPARATOR_2 # define DIR_SEPARATOR_2 '\\' # endif # ifndef PATH_SEPARATOR_2 # define PATH_SEPARATOR_2 ';' # endif #endif #ifndef DIR_SEPARATOR_2 # define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) #else /* DIR_SEPARATOR_2 */ # define IS_DIR_SEPARATOR(ch) \ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) #endif /* DIR_SEPARATOR_2 */ #ifndef PATH_SEPARATOR_2 # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) #else /* PATH_SEPARATOR_2 */ # define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) #endif /* PATH_SEPARATOR_2 */ #ifndef FOPEN_WB # define FOPEN_WB "w" #endif #ifndef _O_BINARY # define _O_BINARY 0 #endif #define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) #define XFREE(stale) do { \ if (stale) { free (stale); stale = 0; } \ } while (0) #if defined LT_DEBUGWRAPPER static int lt_debug = 1; #else static int lt_debug = 0; #endif const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ void *xmalloc (size_t num); char *xstrdup (const char *string); const char *base_name (const char *name); char *find_executable (const char *wrapper); char *chase_symlinks (const char *pathspec); int make_executable (const char *path); int check_executable (const char *path); char *strendzap (char *str, const char *pat); void lt_debugprintf (const char *file, int line, const char *fmt, ...); void lt_fatal (const char *file, int line, const char *message, ...); static const char *nonnull (const char *s); static const char *nonempty (const char *s); void lt_setenv (const char *name, const char *value); char *lt_extend_str (const char *orig_value, const char *add, int to_end); void lt_update_exe_path (const char *name, const char *value); void lt_update_lib_path (const char *name, const char *value); char **prepare_spawn (char **argv); void lt_dump_script (FILE *f); EOF cat <= 0) && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) return 1; else return 0; } int make_executable (const char *path) { int rval = 0; struct stat st; lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", nonempty (path)); if ((!path) || (!*path)) return 0; if (stat (path, &st) >= 0) { rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); } return rval; } /* Searches for the full path of the wrapper. Returns newly allocated full path name if found, NULL otherwise Does not chase symlinks, even on platforms that support them. */ char * find_executable (const char *wrapper) { int has_slash = 0; const char *p; const char *p_next; /* static buffer for getcwd */ char tmp[LT_PATHMAX + 1]; size_t tmp_len; char *concat_name; lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", nonempty (wrapper)); if ((wrapper == NULL) || (*wrapper == '\0')) return NULL; /* Absolute path? */ #if defined HAVE_DOS_BASED_FILE_SYSTEM if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } else { #endif if (IS_DIR_SEPARATOR (wrapper[0])) { concat_name = xstrdup (wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } #if defined HAVE_DOS_BASED_FILE_SYSTEM } #endif for (p = wrapper; *p; p++) if (*p == '/') { has_slash = 1; break; } if (!has_slash) { /* no slashes; search PATH */ const char *path = getenv ("PATH"); if (path != NULL) { for (p = path; *p; p = p_next) { const char *q; size_t p_len; for (q = p; *q; q++) if (IS_PATH_SEPARATOR (*q)) break; p_len = (size_t) (q - p); p_next = (*q == '\0' ? q : q + 1); if (p_len == 0) { /* empty path: current directory */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); } else { concat_name = XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, p, p_len); concat_name[p_len] = '/'; strcpy (concat_name + p_len + 1, wrapper); } if (check_executable (concat_name)) return concat_name; XFREE (concat_name); } } /* not found in PATH; assume curdir */ } /* Relative path | not found in path: prepend cwd */ if (getcwd (tmp, LT_PATHMAX) == NULL) lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", nonnull (strerror (errno))); tmp_len = strlen (tmp); concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); memcpy (concat_name, tmp, tmp_len); concat_name[tmp_len] = '/'; strcpy (concat_name + tmp_len + 1, wrapper); if (check_executable (concat_name)) return concat_name; XFREE (concat_name); return NULL; } char * chase_symlinks (const char *pathspec) { #ifndef S_ISLNK return xstrdup (pathspec); #else char buf[LT_PATHMAX]; struct stat s; char *tmp_pathspec = xstrdup (pathspec); char *p; int has_symlinks = 0; while (strlen (tmp_pathspec) && !has_symlinks) { lt_debugprintf (__FILE__, __LINE__, "checking path component for symlinks: %s\n", tmp_pathspec); if (lstat (tmp_pathspec, &s) == 0) { if (S_ISLNK (s.st_mode) != 0) { has_symlinks = 1; break; } /* search backwards for last DIR_SEPARATOR */ p = tmp_pathspec + strlen (tmp_pathspec) - 1; while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) p--; if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) { /* no more DIR_SEPARATORS left */ break; } *p = '\0'; } else { lt_fatal (__FILE__, __LINE__, "error accessing file \"%s\": %s", tmp_pathspec, nonnull (strerror (errno))); } } XFREE (tmp_pathspec); if (!has_symlinks) { return xstrdup (pathspec); } tmp_pathspec = realpath (pathspec, buf); if (tmp_pathspec == 0) { lt_fatal (__FILE__, __LINE__, "could not follow symlinks for %s", pathspec); } return xstrdup (tmp_pathspec); #endif } char * strendzap (char *str, const char *pat) { size_t len, patlen; assert (str != NULL); assert (pat != NULL); len = strlen (str); patlen = strlen (pat); if (patlen <= len) { str += len - patlen; if (STREQ (str, pat)) *str = '\0'; } return str; } void lt_debugprintf (const char *file, int line, const char *fmt, ...) { va_list args; if (lt_debug) { (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); va_start (args, fmt); (void) vfprintf (stderr, fmt, args); va_end (args); } } static void lt_error_core (int exit_status, const char *file, int line, const char *mode, const char *message, va_list ap) { fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); vfprintf (stderr, message, ap); fprintf (stderr, ".\n"); if (exit_status >= 0) exit (exit_status); } void lt_fatal (const char *file, int line, const char *message, ...) { va_list ap; va_start (ap, message); lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); va_end (ap); } static const char * nonnull (const char *s) { return s ? s : "(null)"; } static const char * nonempty (const char *s) { return (s && !*s) ? "(empty)" : nonnull (s); } void lt_setenv (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_setenv) setting '%s' to '%s'\n", nonnull (name), nonnull (value)); { #ifdef HAVE_SETENV /* always make a copy, for consistency with !HAVE_SETENV */ char *str = xstrdup (value); setenv (name, str, 1); #else size_t len = strlen (name) + 1 + strlen (value) + 1; char *str = XMALLOC (char, len); sprintf (str, "%s=%s", name, value); if (putenv (str) != EXIT_SUCCESS) { XFREE (str); } #endif } } char * lt_extend_str (const char *orig_value, const char *add, int to_end) { char *new_value; if (orig_value && *orig_value) { size_t orig_value_len = strlen (orig_value); size_t add_len = strlen (add); new_value = XMALLOC (char, add_len + orig_value_len + 1); if (to_end) { strcpy (new_value, orig_value); strcpy (new_value + orig_value_len, add); } else { strcpy (new_value, add); strcpy (new_value + add_len, orig_value); } } else { new_value = xstrdup (add); } return new_value; } void lt_update_exe_path (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (value)); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); /* some systems can't cope with a ':'-terminated path #' */ size_t len = strlen (new_value); while ((len > 0) && IS_PATH_SEPARATOR (new_value[len-1])) { new_value[--len] = '\0'; } lt_setenv (name, new_value); XFREE (new_value); } } void lt_update_lib_path (const char *name, const char *value) { lt_debugprintf (__FILE__, __LINE__, "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", nonnull (name), nonnull (value)); if (name && *name && value && *value) { char *new_value = lt_extend_str (getenv (name), value, 0); lt_setenv (name, new_value); XFREE (new_value); } } EOF case $host_os in mingw*) cat <<"EOF" /* Prepares an argument vector before calling spawn(). Note that spawn() does not by itself call the command interpreter (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); GetVersionEx(&v); v.dwPlatformId == VER_PLATFORM_WIN32_NT; }) ? "cmd.exe" : "command.com"). Instead it simply concatenates the arguments, separated by ' ', and calls CreateProcess(). We must quote the arguments since Win32 CreateProcess() interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a special way: - Space and tab are interpreted as delimiters. They are not treated as delimiters if they are surrounded by double quotes: "...". - Unescaped double quotes are removed from the input. Their only effect is that within double quotes, space and tab are treated like normal characters. - Backslashes not followed by double quotes are not special. - But 2*n+1 backslashes followed by a double quote become n backslashes followed by a double quote (n >= 0): \" -> " \\\" -> \" \\\\\" -> \\" */ #define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" #define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" char ** prepare_spawn (char **argv) { size_t argc; char **new_argv; size_t i; /* Count number of arguments. */ for (argc = 0; argv[argc] != NULL; argc++) ; /* Allocate new argument vector. */ new_argv = XMALLOC (char *, argc + 1); /* Put quoted arguments into the new argument vector. */ for (i = 0; i < argc; i++) { const char *string = argv[i]; if (string[0] == '\0') new_argv[i] = xstrdup ("\"\""); else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) { int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); size_t length; unsigned int backslashes; const char *s; char *quoted_string; char *p; length = 0; backslashes = 0; if (quote_around) length++; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') length += backslashes + 1; length++; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) length += backslashes + 1; quoted_string = XMALLOC (char, length + 1); p = quoted_string; backslashes = 0; if (quote_around) *p++ = '"'; for (s = string; *s != '\0'; s++) { char c = *s; if (c == '"') { unsigned int j; for (j = backslashes + 1; j > 0; j--) *p++ = '\\'; } *p++ = c; if (c == '\\') backslashes++; else backslashes = 0; } if (quote_around) { unsigned int j; for (j = backslashes; j > 0; j--) *p++ = '\\'; *p++ = '"'; } *p = '\0'; new_argv[i] = quoted_string; } else new_argv[i] = (char *) string; } new_argv[argc] = NULL; return new_argv; } EOF ;; esac cat <<"EOF" void lt_dump_script (FILE* f) { EOF func_emit_wrapper yes | $SED -n -e ' s/^\(.\{79\}\)\(..*\)/\1\ \2/ h s/\([\\"]\)/\\\1/g s/$/\\n/ s/\([^\n]*\).*/ fputs ("\1", f);/p g D' cat <<"EOF" } EOF } # end: func_emit_cwrapperexe_src # func_win32_import_lib_p ARG # True if ARG is an import lib, as indicated by $file_magic_cmd func_win32_import_lib_p () { $debug_cmd case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in *import*) : ;; *) false ;; esac } # func_suncc_cstd_abi # !!ONLY CALL THIS FOR SUN CC AFTER $compile_command IS FULLY EXPANDED!! # Several compiler flags select an ABI that is incompatible with the # Cstd library. Avoid specifying it if any are in CXXFLAGS. func_suncc_cstd_abi () { $debug_cmd case " $compile_command " in *" -compat=g "*|*\ -std=c++[0-9][0-9]\ *|*" -library=stdcxx4 "*|*" -library=stlport4 "*) suncc_use_cstd_abi=no ;; *) suncc_use_cstd_abi=yes ;; esac } # func_mode_link arg... func_mode_link () { $debug_cmd case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) # It is impossible to link a dll without this setting, and # we shouldn't force the makefile maintainer to figure out # what system we are compiling for in order to pass an extra # flag for every libtool invocation. # allow_undefined=no # FIXME: Unfortunately, there are problems with the above when trying # to make a dll that has undefined symbols, in which case not # even a static library is built. For now, we need to specify # -no-undefined on the libtool link line when we can be certain # that all symbols are satisfied, otherwise we get a static library. allow_undefined=yes ;; *) allow_undefined=yes ;; esac libtool_args=$nonopt base_compile="$nonopt $@" compile_command=$nonopt finalize_command=$nonopt compile_rpath= finalize_rpath= compile_shlibpath= finalize_shlibpath= convenience= old_convenience= deplibs= old_deplibs= compiler_flags= linker_flags= dllsearchpath= lib_search_path=`pwd` inst_prefix_dir= new_inherited_linker_flags= avoid_version=no bindir= dlfiles= dlprefiles= dlself=no export_dynamic=no export_symbols= export_symbols_regex= generated= libobjs= ltlibs= module=no no_install=no objs= os2dllname= non_pic_objects= precious_files_regex= prefer_static_libs=no preload=false prev= prevarg= release= rpath= xrpath= perm_rpath= temp_rpath= thread_safe=no vinfo= vinfo_number=no weak_libs= single_module=$wl-single_module func_infer_tag $base_compile # We need to know -static, to get the right output filenames. for arg do case $arg in -shared) test yes != "$build_libtool_libs" \ && func_fatal_configuration "cannot build a shared library" build_old_libs=no break ;; -all-static | -static | -static-libtool-libs) case $arg in -all-static) if test yes = "$build_libtool_libs" && test -z "$link_static_flag"; then func_warning "complete static linking is impossible in this configuration" fi if test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; -static) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=built ;; -static-libtool-libs) if test -z "$pic_flag" && test -n "$link_static_flag"; then dlopen_self=$dlopen_self_static fi prefer_static_libs=yes ;; esac build_libtool_libs=no build_old_libs=yes break ;; esac done # See if our shared archives depend on static archives. test -n "$old_archive_from_new_cmds" && build_old_libs=yes # Go through the arguments, transforming them on the way. while test "$#" -gt 0; do arg=$1 shift func_quote_for_eval "$arg" qarg=$func_quote_for_eval_unquoted_result func_append libtool_args " $func_quote_for_eval_result" # If the previous option needs an argument, assign it. if test -n "$prev"; then case $prev in output) func_append compile_command " @OUTPUT@" func_append finalize_command " @OUTPUT@" ;; esac case $prev in bindir) bindir=$arg prev= continue ;; dlfiles|dlprefiles) $preload || { # Add the symbol object into the linking commands. func_append compile_command " @SYMFILE@" func_append finalize_command " @SYMFILE@" preload=: } case $arg in *.la | *.lo) ;; # We handle these cases below. force) if test no = "$dlself"; then dlself=needless export_dynamic=yes fi prev= continue ;; self) if test dlprefiles = "$prev"; then dlself=yes elif test dlfiles = "$prev" && test yes != "$dlopen_self"; then dlself=yes else dlself=needless export_dynamic=yes fi prev= continue ;; *) if test dlfiles = "$prev"; then func_append dlfiles " $arg" else func_append dlprefiles " $arg" fi prev= continue ;; esac ;; expsyms) export_symbols=$arg test -f "$arg" \ || func_fatal_error "symbol file '$arg' does not exist" prev= continue ;; expsyms_regex) export_symbols_regex=$arg prev= continue ;; framework) case $host in *-*-darwin*) case "$deplibs " in *" $qarg.ltframework "*) ;; *) func_append deplibs " $qarg.ltframework" # this is fixed later ;; esac ;; esac prev= continue ;; inst_prefix) inst_prefix_dir=$arg prev= continue ;; mllvm) # Clang does not use LLVM to link, so we can simply discard any # '-mllvm $arg' options when doing the link step. prev= continue ;; objectlist) if test -f "$arg"; then save_arg=$arg moreargs= for fil in `cat "$save_arg"` do # func_append moreargs " $fil" arg=$fil # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test none = "$pic_object" && test none = "$non_pic_object"; then func_fatal_error "cannot find name of object for '$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir=$func_dirname_result if test none != "$pic_object"; then # Prepend the subdirectory the object is found in. pic_object=$xdir$pic_object if test dlfiles = "$prev"; then if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then func_append dlfiles " $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test dlprefiles = "$prev"; then # Preload the old-style object. func_append dlprefiles " $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg=$pic_object fi # Non-PIC object. if test none != "$non_pic_object"; then # Prepend the subdirectory the object is found in. non_pic_object=$xdir$non_pic_object # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test none = "$pic_object"; then arg=$non_pic_object fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object=$pic_object func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir=$func_dirname_result func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "'$arg' is not a valid libtool object" fi fi done else func_fatal_error "link input file '$arg' does not exist" fi arg=$save_arg prev= continue ;; os2dllname) os2dllname=$arg prev= continue ;; precious_regex) precious_files_regex=$arg prev= continue ;; release) release=-$arg prev= continue ;; rpath | xrpath) # We need an absolute path. case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac if test rpath = "$prev"; then case "$rpath " in *" $arg "*) ;; *) func_append rpath " $arg" ;; esac else case "$xrpath " in *" $arg "*) ;; *) func_append xrpath " $arg" ;; esac fi prev= continue ;; shrext) shrext_cmds=$arg prev= continue ;; weak) func_append weak_libs " $arg" prev= continue ;; xcclinker) func_append linker_flags " $qarg" func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xcompiler) func_append compiler_flags " $qarg" prev= func_append compile_command " $qarg" func_append finalize_command " $qarg" continue ;; xlinker) func_append linker_flags " $qarg" func_append compiler_flags " $wl$qarg" prev= func_append compile_command " $wl$qarg" func_append finalize_command " $wl$qarg" continue ;; *) eval "$prev=\"\$arg\"" prev= continue ;; esac fi # test -n "$prev" prevarg=$arg case $arg in -all-static) if test -n "$link_static_flag"; then # See comment for -static flag below, for more details. func_append compile_command " $link_static_flag" func_append finalize_command " $link_static_flag" fi continue ;; -allow-undefined) # FIXME: remove this flag sometime in the future. func_fatal_error "'-allow-undefined' must not be used because it is the default" ;; -avoid-version) avoid_version=yes continue ;; -bindir) prev=bindir continue ;; -dlopen) prev=dlfiles continue ;; -dlpreopen) prev=dlprefiles continue ;; -export-dynamic) export_dynamic=yes continue ;; -export-symbols | -export-symbols-regex) if test -n "$export_symbols" || test -n "$export_symbols_regex"; then func_fatal_error "more than one -exported-symbols argument is not allowed" fi if test X-export-symbols = "X$arg"; then prev=expsyms else prev=expsyms_regex fi continue ;; -framework) prev=framework continue ;; -inst-prefix-dir) prev=inst_prefix continue ;; # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* # so, if we see these flags be careful not to treat them like -L -L[A-Z][A-Z]*:*) case $with_gcc/$host in no/*-*-irix* | /*-*-irix*) func_append compile_command " $arg" func_append finalize_command " $arg" ;; esac continue ;; -L*) func_stripname "-L" '' "$arg" if test -z "$func_stripname_result"; then if test "$#" -gt 0; then func_fatal_error "require no space between '-L' and '$1'" else func_fatal_error "need path for '-L' option" fi fi func_resolve_sysroot "$func_stripname_result" dir=$func_resolve_sysroot_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; *) absdir=`cd "$dir" && pwd` test -z "$absdir" && \ func_fatal_error "cannot determine absolute directory name of '$dir'" dir=$absdir ;; esac case "$deplibs " in *" -L$dir "* | *" $arg "*) # Will only happen for absolute or sysroot arguments ;; *) # Preserve sysroot, but never include relative directories case $dir in [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; *) func_append deplibs " -L$dir" ;; esac func_append lib_search_path " $dir" ;; esac case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;; ::) dllsearchpath=$dir;; *) func_append dllsearchpath ":$dir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) func_append dllsearchpath ":$testbindir";; esac ;; esac continue ;; -l*) if test X-lc = "X$arg" || test X-lm = "X$arg"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) # These systems don't actually have a C or math library (as such) continue ;; *-*-os2*) # These systems don't actually have a C library (as such) test X-lc = "X$arg" && continue ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*) # Do not include libc due to us having libc/libc_r. test X-lc = "X$arg" && continue ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C and math libraries are in the System framework func_append deplibs " System.ltframework" continue ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype test X-lc = "X$arg" && continue ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work test X-lc = "X$arg" && continue ;; esac elif test X-lc_r = "X$arg"; then case $host in *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*) # Do not include libc_r directly, use -pthread flag. continue ;; esac fi func_append deplibs " $arg" continue ;; -mllvm) prev=mllvm continue ;; -module) module=yes continue ;; # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. # Darwin uses the -arch flag to determine output architecture. -model|-arch|-isysroot|--sysroot) func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" prev=xcompiler continue ;; -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg" case "$new_inherited_linker_flags " in *" $arg "*) ;; * ) func_append new_inherited_linker_flags " $arg" ;; esac continue ;; -multi_module) single_module=$wl-multi_module continue ;; -no-fast-install) fast_install=no continue ;; -no-install) case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) # The PATH hackery in wrapper scripts is required on Windows # and Darwin in order for the loader to find any dlls it needs. func_warning "'-no-install' is ignored for $host" func_warning "assuming '-no-fast-install' instead" fast_install=no ;; *) no_install=yes ;; esac continue ;; -no-undefined) allow_undefined=no continue ;; -objectlist) prev=objectlist continue ;; -os2dllname) prev=os2dllname continue ;; -o) prev=output ;; -precious-files-regex) prev=precious_regex continue ;; -release) prev=release continue ;; -rpath) prev=rpath continue ;; -R) prev=xrpath continue ;; -R*) func_stripname '-R' '' "$arg" dir=$func_stripname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; =*) func_stripname '=' '' "$dir" dir=$lt_sysroot$func_stripname_result ;; *) func_fatal_error "only absolute run-paths are allowed" ;; esac case "$xrpath " in *" $dir "*) ;; *) func_append xrpath " $dir" ;; esac continue ;; -shared) # The effects of -shared are defined in a previous loop. continue ;; -shrext) prev=shrext continue ;; -static | -static-libtool-libs) # The effects of -static are defined in a previous loop. # We used to do the same as -all-static on platforms that # didn't have a PIC flag, but the assumption that the effects # would be equivalent was wrong. It would break on at least # Digital Unix and AIX. continue ;; -thread-safe) thread_safe=yes continue ;; -version-info) prev=vinfo continue ;; -version-number) prev=vinfo vinfo_number=yes continue ;; -weak) prev=weak continue ;; -Wc,*) func_stripname '-Wc,' '' "$arg" args=$func_stripname_result arg= save_ifs=$IFS; IFS=, for flag in $args; do IFS=$save_ifs func_quote_for_eval "$flag" func_append arg " $func_quote_for_eval_result" func_append compiler_flags " $func_quote_for_eval_result" done IFS=$save_ifs func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Wl,*) func_stripname '-Wl,' '' "$arg" args=$func_stripname_result arg= save_ifs=$IFS; IFS=, for flag in $args; do IFS=$save_ifs func_quote_for_eval "$flag" func_append arg " $wl$func_quote_for_eval_result" func_append compiler_flags " $wl$func_quote_for_eval_result" func_append linker_flags " $func_quote_for_eval_result" done IFS=$save_ifs func_stripname ' ' '' "$arg" arg=$func_stripname_result ;; -Xcompiler) prev=xcompiler continue ;; -Xlinker) prev=xlinker continue ;; -XCClinker) prev=xcclinker continue ;; # -msg_* for osf cc -msg_*) func_quote_for_eval "$arg" arg=$func_quote_for_eval_result ;; # Flags to be passed through unchanged, with rationale: # -64, -mips[0-9] enable 64-bit mode for the SGI compiler # -r[0-9][0-9]* specify processor for the SGI compiler # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler # +DA*, +DD* enable 64-bit mode for the HP compiler # -q* compiler args for the IBM compiler # -m*, -t[45]*, -txscale* architecture-specific flags for GCC # -F/path path to uninstalled frameworks, gcc on darwin # -p, -pg, --coverage, -fprofile-* profiling flags for GCC # -fstack-protector* stack protector flags for GCC # @file GCC response files # -tp=* Portland pgcc target processor selection # --sysroot=* for sysroot support # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization # -stdlib=* select c++ std lib with clang -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*) func_quote_for_eval "$arg" arg=$func_quote_for_eval_result func_append compile_command " $arg" func_append finalize_command " $arg" func_append compiler_flags " $arg" continue ;; -Z*) if test os2 = "`expr $host : '.*\(os2\)'`"; then # OS/2 uses -Zxxx to specify OS/2-specific options compiler_flags="$compiler_flags $arg" func_append compile_command " $arg" func_append finalize_command " $arg" case $arg in -Zlinker | -Zstack) prev=xcompiler ;; esac continue else # Otherwise treat like 'Some other compiler flag' below func_quote_for_eval "$arg" arg=$func_quote_for_eval_result fi ;; # Some other compiler flag. -* | +*) func_quote_for_eval "$arg" arg=$func_quote_for_eval_result ;; *.$objext) # A standard object. func_append objs " $arg" ;; *.lo) # A libtool-controlled object. # Check to see that this really is a libtool object. if func_lalib_unsafe_p "$arg"; then pic_object= non_pic_object= # Read the .lo file func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || test none = "$pic_object" && test none = "$non_pic_object"; then func_fatal_error "cannot find name of object for '$arg'" fi # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir=$func_dirname_result test none = "$pic_object" || { # Prepend the subdirectory the object is found in. pic_object=$xdir$pic_object if test dlfiles = "$prev"; then if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then func_append dlfiles " $pic_object" prev= continue else # If libtool objects are unsupported, then we need to preload. prev=dlprefiles fi fi # CHECK ME: I think I busted this. -Ossama if test dlprefiles = "$prev"; then # Preload the old-style object. func_append dlprefiles " $pic_object" prev= fi # A PIC object. func_append libobjs " $pic_object" arg=$pic_object } # Non-PIC object. if test none != "$non_pic_object"; then # Prepend the subdirectory the object is found in. non_pic_object=$xdir$non_pic_object # A standard non-PIC object func_append non_pic_objects " $non_pic_object" if test -z "$pic_object" || test none = "$pic_object"; then arg=$non_pic_object fi else # If the PIC object exists, use it instead. # $xdir was prepended to $pic_object above. non_pic_object=$pic_object func_append non_pic_objects " $non_pic_object" fi else # Only an error if not doing a dry-run. if $opt_dry_run; then # Extract subdirectory from the argument. func_dirname "$arg" "/" "" xdir=$func_dirname_result func_lo2o "$arg" pic_object=$xdir$objdir/$func_lo2o_result non_pic_object=$xdir$func_lo2o_result func_append libobjs " $pic_object" func_append non_pic_objects " $non_pic_object" else func_fatal_error "'$arg' is not a valid libtool object" fi fi ;; *.$libext) # An archive. func_append deplibs " $arg" func_append old_deplibs " $arg" continue ;; *.la) # A libtool-controlled library. func_resolve_sysroot "$arg" if test dlfiles = "$prev"; then # This library was specified with -dlopen. func_append dlfiles " $func_resolve_sysroot_result" prev= elif test dlprefiles = "$prev"; then # The library was specified with -dlpreopen. func_append dlprefiles " $func_resolve_sysroot_result" prev= else func_append deplibs " $func_resolve_sysroot_result" fi continue ;; # Some other compiler argument. *) # Unknown arguments in both finalize_command and compile_command need # to be aesthetically quoted because they are evaled later. func_quote_for_eval "$arg" arg=$func_quote_for_eval_result ;; esac # arg # Now actually substitute the argument into the commands. if test -n "$arg"; then func_append compile_command " $arg" func_append finalize_command " $arg" fi done # argument parsing loop test -n "$prev" && \ func_fatal_help "the '$prevarg' option requires an argument" if test yes = "$export_dynamic" && test -n "$export_dynamic_flag_spec"; then eval arg=\"$export_dynamic_flag_spec\" func_append compile_command " $arg" func_append finalize_command " $arg" fi oldlibs= # calculate the name of the file, without its directory func_basename "$output" outputname=$func_basename_result libobjs_save=$libobjs if test -n "$shlibpath_var"; then # get the directories listed in $shlibpath_var eval shlib_search_path=\`\$ECHO \"\$$shlibpath_var\" \| \$SED \'s/:/ /g\'\` else shlib_search_path= fi eval sys_lib_search_path=\"$sys_lib_search_path_spec\" eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" # Definition is injected by LT_CONFIG during libtool generation. func_munge_path_list sys_lib_dlsearch_path "$LT_SYS_LIBRARY_PATH" func_dirname "$output" "/" "" output_objdir=$func_dirname_result$objdir func_to_tool_file "$output_objdir/" tool_output_objdir=$func_to_tool_file_result # Create the object directory. func_mkdir_p "$output_objdir" # Determine the type of output case $output in "") func_fatal_help "you must specify an output file" ;; *.$libext) linkmode=oldlib ;; *.lo | *.$objext) linkmode=obj ;; *.la) linkmode=lib ;; *) linkmode=prog ;; # Anything else should be a program. esac specialdeplibs= libs= # Find all interdependent deplibs by searching for libraries # that are linked more than once (e.g. -la -lb -la) for deplib in $deplibs; do if $opt_preserve_dup_deps; then case "$libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append libs " $deplib" done if test lib = "$linkmode"; then libs="$predeps $libs $compiler_lib_search_path $postdeps" # Compute libraries that are listed more than once in $predeps # $postdeps and mark them as special (i.e., whose duplicates are # not to be eliminated). pre_post_deps= if $opt_duplicate_compiler_generated_deps; then for pre_post_dep in $predeps $postdeps; do case "$pre_post_deps " in *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; esac func_append pre_post_deps " $pre_post_dep" done fi pre_post_deps= fi deplibs= newdependency_libs= newlib_search_path= need_relink=no # whether we're linking any uninstalled libtool libraries notinst_deplibs= # not-installed libtool libraries notinst_path= # paths that contain not-installed libtool libraries case $linkmode in lib) passes="conv dlpreopen link" for file in $dlfiles $dlprefiles; do case $file in *.la) ;; *) func_fatal_help "libraries can '-dlopen' only libtool libraries: $file" ;; esac done ;; prog) compile_deplibs= finalize_deplibs= alldeplibs=false newdlfiles= newdlprefiles= passes="conv scan dlopen dlpreopen link" ;; *) passes="conv" ;; esac for pass in $passes; do # The preopen pass in lib mode reverses $deplibs; put it back here # so that -L comes before libs that need it for instance... if test lib,link = "$linkmode,$pass"; then ## FIXME: Find the place where the list is rebuilt in the wrong ## order, and fix it there properly tmp_deplibs= for deplib in $deplibs; do tmp_deplibs="$deplib $tmp_deplibs" done deplibs=$tmp_deplibs fi if test lib,link = "$linkmode,$pass" || test prog,scan = "$linkmode,$pass"; then libs=$deplibs deplibs= fi if test prog = "$linkmode"; then case $pass in dlopen) libs=$dlfiles ;; dlpreopen) libs=$dlprefiles ;; link) libs="$deplibs %DEPLIBS% $dependency_libs" ;; esac fi if test lib,dlpreopen = "$linkmode,$pass"; then # Collect and forward deplibs of preopened libtool libs for lib in $dlprefiles; do # Ignore non-libtool-libs dependency_libs= func_resolve_sysroot "$lib" case $lib in *.la) func_source "$func_resolve_sysroot_result" ;; esac # Collect preopened libtool deplibs, except any this library # has declared as weak libs for deplib in $dependency_libs; do func_basename "$deplib" deplib_base=$func_basename_result case " $weak_libs " in *" $deplib_base "*) ;; *) func_append deplibs " $deplib" ;; esac done done libs=$dlprefiles fi if test dlopen = "$pass"; then # Collect dlpreopened libraries save_deplibs=$deplibs deplibs= fi for deplib in $libs; do lib= found=false case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) if test prog,link = "$linkmode,$pass"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else func_append compiler_flags " $deplib" if test lib = "$linkmode"; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) func_append new_inherited_linker_flags " $deplib" ;; esac fi fi continue ;; -l*) if test lib != "$linkmode" && test prog != "$linkmode"; then func_warning "'-l' is ignored for archives/objects" continue fi func_stripname '-l' '' "$deplib" name=$func_stripname_result if test lib = "$linkmode"; then searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" else searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" fi for searchdir in $searchdirs; do for search_ext in .la $std_shrext .so .a; do # Search the libtool library lib=$searchdir/lib$name$search_ext if test -f "$lib"; then if test .la = "$search_ext"; then found=: else found=false fi break 2 fi done done if $found; then # deplib is a libtool library # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, # We need to do some special things here, and not later. if test yes = "$allow_libtool_libs_with_static_runtimes"; then case " $predeps $postdeps " in *" $deplib "*) if func_lalib_p "$lib"; then library_names= old_library= func_source "$lib" for l in $old_library $library_names; do ll=$l done if test "X$ll" = "X$old_library"; then # only static version available found=false func_dirname "$lib" "" "." ladir=$func_dirname_result lib=$ladir/$old_library if test prog,link = "$linkmode,$pass"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" fi continue fi fi ;; *) ;; esac fi else # deplib doesn't seem to be a libtool library if test prog,link = "$linkmode,$pass"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" fi continue fi ;; # -l *.ltframework) if test prog,link = "$linkmode,$pass"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else deplibs="$deplib $deplibs" if test lib = "$linkmode"; then case "$new_inherited_linker_flags " in *" $deplib "*) ;; * ) func_append new_inherited_linker_flags " $deplib" ;; esac fi fi continue ;; -L*) case $linkmode in lib) deplibs="$deplib $deplibs" test conv = "$pass" && continue newdependency_libs="$deplib $newdependency_libs" func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; prog) if test conv = "$pass"; then deplibs="$deplib $deplibs" continue fi if test scan = "$pass"; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; *) func_warning "'-L' is ignored for archives/objects" ;; esac # linkmode continue ;; # -L -R*) if test link = "$pass"; then func_stripname '-R' '' "$deplib" func_resolve_sysroot "$func_stripname_result" dir=$func_resolve_sysroot_result # Make sure the xrpath contains only unique directories. case "$xrpath " in *" $dir "*) ;; *) func_append xrpath " $dir" ;; esac fi deplibs="$deplib $deplibs" continue ;; *.la) func_resolve_sysroot "$deplib" lib=$func_resolve_sysroot_result ;; *.$libext) if test conv = "$pass"; then deplibs="$deplib $deplibs" continue fi case $linkmode in lib) # Linking convenience modules into shared libraries is allowed, # but linking other static libraries is non-portable. case " $dlpreconveniencelibs " in *" $deplib "*) ;; *) valid_a_lib=false case $deplibs_check_method in match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ | $EGREP "$match_pattern_regex" > /dev/null; then valid_a_lib=: fi ;; pass_all) valid_a_lib=: ;; esac if $valid_a_lib; then echo $ECHO "*** Warning: Linking the shared library $output against the" $ECHO "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" else echo $ECHO "*** Warning: Trying to link with static lib archive $deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because the file extensions .$libext of this argument makes me believe" echo "*** that it is just a static archive that I should not use here." fi ;; esac continue ;; prog) if test link != "$pass"; then deplibs="$deplib $deplibs" else compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" fi continue ;; esac # linkmode ;; # *.$libext *.lo | *.$objext) if test conv = "$pass"; then deplibs="$deplib $deplibs" elif test prog = "$linkmode"; then if test dlpreopen = "$pass" || test yes != "$dlopen_support" || test no = "$build_libtool_libs"; then # If there is no dlopen support or we're linking statically, # we need to preload. func_append newdlprefiles " $deplib" compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs" else func_append newdlfiles " $deplib" fi fi continue ;; %DEPLIBS%) alldeplibs=: continue ;; esac # case $deplib $found || test -f "$lib" \ || func_fatal_error "cannot find the library '$lib' or unhandled argument '$deplib'" # Check to see that this really is a libtool archive. func_lalib_unsafe_p "$lib" \ || func_fatal_error "'$lib' is not a valid libtool archive" func_dirname "$lib" "" "." ladir=$func_dirname_result dlname= dlopen= dlpreopen= libdir= library_names= old_library= inherited_linker_flags= # If the library was installed with an old release of libtool, # it will not redefine variables installed, or shouldnotlink installed=yes shouldnotlink=no avoidtemprpath= # Read the .la file func_source "$lib" # Convert "-framework foo" to "foo.ltframework" if test -n "$inherited_linker_flags"; then tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do case " $new_inherited_linker_flags " in *" $tmp_inherited_linker_flag "*) ;; *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; esac done fi dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` if test lib,link = "$linkmode,$pass" || test prog,scan = "$linkmode,$pass" || { test prog != "$linkmode" && test lib != "$linkmode"; }; then test -n "$dlopen" && func_append dlfiles " $dlopen" test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" fi if test conv = "$pass"; then # Only check for convenience libraries deplibs="$lib $deplibs" if test -z "$libdir"; then if test -z "$old_library"; then func_fatal_error "cannot find name of link library for '$lib'" fi # It is a libtool convenience library, so add in its objects. func_append convenience " $ladir/$objdir/$old_library" func_append old_convenience " $ladir/$objdir/$old_library" elif test prog != "$linkmode" && test lib != "$linkmode"; then func_fatal_error "'$lib' is not a convenience library" fi tmp_libs= for deplib in $dependency_libs; do deplibs="$deplib $deplibs" if $opt_preserve_dup_deps; then case "$tmp_libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append tmp_libs " $deplib" done continue fi # $pass = conv # Get the name of the library we link against. linklib= if test -n "$old_library" && { test yes = "$prefer_static_libs" || test built,no = "$prefer_static_libs,$installed"; }; then linklib=$old_library else for l in $old_library $library_names; do linklib=$l done fi if test -z "$linklib"; then func_fatal_error "cannot find name of link library for '$lib'" fi # This library was specified with -dlopen. if test dlopen = "$pass"; then test -z "$libdir" \ && func_fatal_error "cannot -dlopen a convenience library: '$lib'" if test -z "$dlname" || test yes != "$dlopen_support" || test no = "$build_libtool_libs" then # If there is no dlname, no dlopen support or we're linking # statically, we need to preload. We also need to preload any # dependent libraries so libltdl's deplib preloader doesn't # bomb out in the load deplibs phase. func_append dlprefiles " $lib $dependency_libs" else func_append newdlfiles " $lib" fi continue fi # $pass = dlopen # We need an absolute path. case $ladir in [\\/]* | [A-Za-z]:[\\/]*) abs_ladir=$ladir ;; *) abs_ladir=`cd "$ladir" && pwd` if test -z "$abs_ladir"; then func_warning "cannot determine absolute directory name of '$ladir'" func_warning "passing it literally to the linker, although it might fail" abs_ladir=$ladir fi ;; esac func_basename "$lib" laname=$func_basename_result # Find the relevant object directory and library name. if test yes = "$installed"; then if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then func_warning "library '$lib' was moved." dir=$ladir absdir=$abs_ladir libdir=$abs_ladir else dir=$lt_sysroot$libdir absdir=$lt_sysroot$libdir fi test yes = "$hardcode_automatic" && avoidtemprpath=yes else if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then dir=$ladir absdir=$abs_ladir # Remove this search path later func_append notinst_path " $abs_ladir" else dir=$ladir/$objdir absdir=$abs_ladir/$objdir # Remove this search path later func_append notinst_path " $abs_ladir" fi fi # $installed = yes func_stripname 'lib' '.la' "$laname" name=$func_stripname_result # This library was specified with -dlpreopen. if test dlpreopen = "$pass"; then if test -z "$libdir" && test prog = "$linkmode"; then func_fatal_error "only libraries may -dlpreopen a convenience library: '$lib'" fi case $host in # special handling for platforms with PE-DLLs. *cygwin* | *mingw* | *cegcc* ) # Linker will automatically link against shared library if both # static and shared are present. Therefore, ensure we extract # symbols from the import library if a shared library is present # (otherwise, the dlopen module name will be incorrect). We do # this by putting the import library name into $newdlprefiles. # We recover the dlopen module name by 'saving' the la file # name in a special purpose variable, and (later) extracting the # dlname from the la file. if test -n "$dlname"; then func_tr_sh "$dir/$linklib" eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" func_append newdlprefiles " $dir/$linklib" else func_append newdlprefiles " $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ func_append dlpreconveniencelibs " $dir/$old_library" fi ;; * ) # Prefer using a static library (so that no silly _DYNAMIC symbols # are required to link). if test -n "$old_library"; then func_append newdlprefiles " $dir/$old_library" # Keep a list of preopened convenience libraries to check # that they are being used correctly in the link pass. test -z "$libdir" && \ func_append dlpreconveniencelibs " $dir/$old_library" # Otherwise, use the dlname, so that lt_dlopen finds it. elif test -n "$dlname"; then func_append newdlprefiles " $dir/$dlname" else func_append newdlprefiles " $dir/$linklib" fi ;; esac fi # $pass = dlpreopen if test -z "$libdir"; then # Link the convenience library if test lib = "$linkmode"; then deplibs="$dir/$old_library $deplibs" elif test prog,link = "$linkmode,$pass"; then compile_deplibs="$dir/$old_library $compile_deplibs" finalize_deplibs="$dir/$old_library $finalize_deplibs" else deplibs="$lib $deplibs" # used for prog,scan pass fi continue fi if test prog = "$linkmode" && test link != "$pass"; then func_append newlib_search_path " $ladir" deplibs="$lib $deplibs" linkalldeplibs=false if test no != "$link_all_deplibs" || test -z "$library_names" || test no = "$build_libtool_libs"; then linkalldeplibs=: fi tmp_libs= for deplib in $dependency_libs; do case $deplib in -L*) func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result" func_append newlib_search_path " $func_resolve_sysroot_result" ;; esac # Need to link against all dependency_libs? if $linkalldeplibs; then deplibs="$deplib $deplibs" else # Need to hardcode shared library paths # or/and link against static libraries newdependency_libs="$deplib $newdependency_libs" fi if $opt_preserve_dup_deps; then case "$tmp_libs " in *" $deplib "*) func_append specialdeplibs " $deplib" ;; esac fi func_append tmp_libs " $deplib" done # for deplib continue fi # $linkmode = prog... if test prog,link = "$linkmode,$pass"; then if test -n "$library_names" && { { test no = "$prefer_static_libs" || test built,yes = "$prefer_static_libs,$installed"; } || test -z "$old_library"; }; then # We need to hardcode the library path if test -n "$shlibpath_var" && test -z "$avoidtemprpath"; then # Make sure the rpath contains only unique directories. case $temp_rpath: in *"$absdir:"*) ;; *) func_append temp_rpath "$absdir:" ;; esac fi # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) func_append compile_rpath " $absdir" ;; esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac ;; esac fi # $linkmode,$pass = prog,link... if $alldeplibs && { test pass_all = "$deplibs_check_method" || { test yes = "$build_libtool_libs" && test -n "$library_names"; }; }; then # We only need to search for static libraries continue fi fi link_static=no # Whether the deplib will be linked statically use_static_libs=$prefer_static_libs if test built = "$use_static_libs" && test yes = "$installed"; then use_static_libs=no fi if test -n "$library_names" && { test no = "$use_static_libs" || test -z "$old_library"; }; then case $host in *cygwin* | *mingw* | *cegcc* | *os2*) # No point in relinking DLLs because paths are not encoded func_append notinst_deplibs " $lib" need_relink=no ;; *) if test no = "$installed"; then func_append notinst_deplibs " $lib" need_relink=yes fi ;; esac # This is a shared library # Warn about portability, can't link against -module's on some # systems (darwin). Don't bleat about dlopened modules though! dlopenmodule= for dlpremoduletest in $dlprefiles; do if test "X$dlpremoduletest" = "X$lib"; then dlopenmodule=$dlpremoduletest break fi done if test -z "$dlopenmodule" && test yes = "$shouldnotlink" && test link = "$pass"; then echo if test prog = "$linkmode"; then $ECHO "*** Warning: Linking the executable $output against the loadable module" else $ECHO "*** Warning: Linking the shared library $output against the loadable module" fi $ECHO "*** $linklib is not portable!" fi if test lib = "$linkmode" && test yes = "$hardcode_into_libs"; then # Hardcode the library path. # Skip directories that are in the system default run-time # search path. case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *) case "$compile_rpath " in *" $absdir "*) ;; *) func_append compile_rpath " $absdir" ;; esac ;; esac case " $sys_lib_dlsearch_path " in *" $libdir "*) ;; *) case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac ;; esac fi if test -n "$old_archive_from_expsyms_cmds"; then # figure out the soname set dummy $library_names shift realname=$1 shift libname=`eval "\\$ECHO \"$libname_spec\""` # use dlname if we got it. it's perfectly good, no? if test -n "$dlname"; then soname=$dlname elif test -n "$soname_spec"; then # bleh windows case $host in *cygwin* | mingw* | *cegcc* | *os2*) func_arith $current - $age major=$func_arith_result versuffix=-$major ;; esac eval soname=\"$soname_spec\" else soname=$realname fi # Make a new name for the extract_expsyms_cmds to use soroot=$soname func_basename "$soroot" soname=$func_basename_result func_stripname 'lib' '.dll' "$soname" newlib=libimp-$func_stripname_result.a # If the library has no export list, then create one now if test -f "$output_objdir/$soname-def"; then : else func_verbose "extracting exported symbol list from '$soname'" func_execute_cmds "$extract_expsyms_cmds" 'exit $?' fi # Create $newlib if test -f "$output_objdir/$newlib"; then :; else func_verbose "generating import library for '$soname'" func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' fi # make sure the library variables are pointing to the new library dir=$output_objdir linklib=$newlib fi # test -n "$old_archive_from_expsyms_cmds" if test prog = "$linkmode" || test relink != "$opt_mode"; then add_shlibpath= add_dir= add= lib_linked=yes case $hardcode_action in immediate | unsupported) if test no = "$hardcode_direct"; then add=$dir/$linklib case $host in *-*-sco3.2v5.0.[024]*) add_dir=-L$dir ;; *-*-sysv4*uw2*) add_dir=-L$dir ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ *-*-unixware7*) add_dir=-L$dir ;; *-*-darwin* ) # if the lib is a (non-dlopened) module then we cannot # link against it, someone is ignoring the earlier warnings if /usr/bin/file -L $add 2> /dev/null | $GREP ": [^:]* bundle" >/dev/null; then if test "X$dlopenmodule" != "X$lib"; then $ECHO "*** Warning: lib $linklib is a module, not a shared library" if test -z "$old_library"; then echo echo "*** And there doesn't seem to be a static archive available" echo "*** The link will probably fail, sorry" else add=$dir/$old_library fi elif test -n "$old_library"; then add=$dir/$old_library fi fi esac elif test no = "$hardcode_minus_L"; then case $host in *-*-sunos*) add_shlibpath=$dir ;; esac add_dir=-L$dir add=-l$name elif test no = "$hardcode_shlibpath_var"; then add_shlibpath=$dir add=-l$name else lib_linked=no fi ;; relink) if test yes = "$hardcode_direct" && test no = "$hardcode_direct_absolute"; then add=$dir/$linklib elif test yes = "$hardcode_minus_L"; then add_dir=-L$absdir # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) func_append add_dir " -L$inst_prefix_dir$libdir" ;; esac fi add=-l$name elif test yes = "$hardcode_shlibpath_var"; then add_shlibpath=$dir add=-l$name else lib_linked=no fi ;; *) lib_linked=no ;; esac if test yes != "$lib_linked"; then func_fatal_configuration "unsupported hardcode properties" fi if test -n "$add_shlibpath"; then case :$compile_shlibpath: in *":$add_shlibpath:"*) ;; *) func_append compile_shlibpath "$add_shlibpath:" ;; esac fi if test prog = "$linkmode"; then test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" test -n "$add" && compile_deplibs="$add $compile_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" if test yes != "$hardcode_direct" && test yes != "$hardcode_minus_L" && test yes = "$hardcode_shlibpath_var"; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) func_append finalize_shlibpath "$libdir:" ;; esac fi fi fi if test prog = "$linkmode" || test relink = "$opt_mode"; then add_shlibpath= add_dir= add= # Finalize command for both is simple: just hardcode it. if test yes = "$hardcode_direct" && test no = "$hardcode_direct_absolute"; then add=$libdir/$linklib elif test yes = "$hardcode_minus_L"; then add_dir=-L$libdir add=-l$name elif test yes = "$hardcode_shlibpath_var"; then case :$finalize_shlibpath: in *":$libdir:"*) ;; *) func_append finalize_shlibpath "$libdir:" ;; esac add=-l$name elif test yes = "$hardcode_automatic"; then if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib"; then add=$inst_prefix_dir$libdir/$linklib else add=$libdir/$linklib fi else # We cannot seem to hardcode it, guess we'll fake it. add_dir=-L$libdir # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in [\\/]*) func_append add_dir " -L$inst_prefix_dir$libdir" ;; esac fi add=-l$name fi if test prog = "$linkmode"; then test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" test -n "$add" && finalize_deplibs="$add $finalize_deplibs" else test -n "$add_dir" && deplibs="$add_dir $deplibs" test -n "$add" && deplibs="$add $deplibs" fi fi elif test prog = "$linkmode"; then # Here we assume that one of hardcode_direct or hardcode_minus_L # is not unsupported. This is valid on all known static and # shared platforms. if test unsupported != "$hardcode_direct"; then test -n "$old_library" && linklib=$old_library compile_deplibs="$dir/$linklib $compile_deplibs" finalize_deplibs="$dir/$linklib $finalize_deplibs" else compile_deplibs="-l$name -L$dir $compile_deplibs" finalize_deplibs="-l$name -L$dir $finalize_deplibs" fi elif test yes = "$build_libtool_libs"; then # Not a shared library if test pass_all != "$deplibs_check_method"; then # We're trying link a shared library against a static one # but the system doesn't support it. # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library. echo $ECHO "*** Warning: This system cannot link to static lib archive $lib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have." if test yes = "$module"; then echo "*** But as you try to build a module library, libtool will still create " echo "*** a static module, that should work as long as the dlopening application" echo "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" echo "*** lists from a program, using 'nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." echo "*** 'nm' from GNU binutils and a full rebuild may help." fi if test no = "$build_old_libs"; then build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi else deplibs="$dir/$old_library $deplibs" link_static=yes fi fi # link shared/static library? if test lib = "$linkmode"; then if test -n "$dependency_libs" && { test yes != "$hardcode_into_libs" || test yes = "$build_old_libs" || test yes = "$link_static"; }; then # Extract -R from dependency_libs temp_deplibs= for libdir in $dependency_libs; do case $libdir in -R*) func_stripname '-R' '' "$libdir" temp_xrpath=$func_stripname_result case " $xrpath " in *" $temp_xrpath "*) ;; *) func_append xrpath " $temp_xrpath";; esac;; *) func_append temp_deplibs " $libdir";; esac done dependency_libs=$temp_deplibs fi func_append newlib_search_path " $absdir" # Link against this library test no = "$link_static" && newdependency_libs="$abs_ladir/$laname $newdependency_libs" # ... and its dependency_libs tmp_libs= for deplib in $dependency_libs; do newdependency_libs="$deplib $newdependency_libs" case $deplib in -L*) func_stripname '-L' '' "$deplib" func_resolve_sysroot "$func_stripname_result";; *) func_resolve_sysroot "$deplib" ;; esac if $opt_preserve_dup_deps; then case "$tmp_libs " in *" $func_resolve_sysroot_result "*) func_append specialdeplibs " $func_resolve_sysroot_result" ;; esac fi func_append tmp_libs " $func_resolve_sysroot_result" done if test no != "$link_all_deplibs"; then # Add the search paths of all dependency libraries for deplib in $dependency_libs; do path= case $deplib in -L*) path=$deplib ;; *.la) func_resolve_sysroot "$deplib" deplib=$func_resolve_sysroot_result func_dirname "$deplib" "" "." dir=$func_dirname_result # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) absdir=$dir ;; *) absdir=`cd "$dir" && pwd` if test -z "$absdir"; then func_warning "cannot determine absolute directory name of '$dir'" absdir=$dir fi ;; esac if $GREP "^installed=no" $deplib > /dev/null; then case $host in *-*-darwin*) depdepl= eval deplibrary_names=`$SED -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` if test -n "$deplibrary_names"; then for tmp in $deplibrary_names; do depdepl=$tmp done if test -f "$absdir/$objdir/$depdepl"; then depdepl=$absdir/$objdir/$depdepl darwin_install_name=`$OTOOL -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` if test -z "$darwin_install_name"; then darwin_install_name=`$OTOOL64 -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` fi func_append compiler_flags " $wl-dylib_file $wl$darwin_install_name:$depdepl" func_append linker_flags " -dylib_file $darwin_install_name:$depdepl" path= fi fi ;; *) path=-L$absdir/$objdir ;; esac else eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` test -z "$libdir" && \ func_fatal_error "'$deplib' is not a valid libtool archive" test "$absdir" != "$libdir" && \ func_warning "'$deplib' seems to be moved" path=-L$absdir fi ;; esac case " $deplibs " in *" $path "*) ;; *) deplibs="$path $deplibs" ;; esac done fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs if test link = "$pass"; then if test prog = "$linkmode"; then compile_deplibs="$new_inherited_linker_flags $compile_deplibs" finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" else compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` fi fi dependency_libs=$newdependency_libs if test dlpreopen = "$pass"; then # Link the dlpreopened libraries before other libraries for deplib in $save_deplibs; do deplibs="$deplib $deplibs" done fi if test dlopen != "$pass"; then test conv = "$pass" || { # Make sure lib_search_path contains only unique directories. lib_search_path= for dir in $newlib_search_path; do case "$lib_search_path " in *" $dir "*) ;; *) func_append lib_search_path " $dir" ;; esac done newlib_search_path= } if test prog,link = "$linkmode,$pass"; then vars="compile_deplibs finalize_deplibs" else vars=deplibs fi for var in $vars dependency_libs; do # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs= for deplib in $tmp_libs; do # FIXME: Pedantically, this is the right thing to do, so # that some nasty dependency loop isn't accidentally # broken: #new_libs="$deplib $new_libs" # Pragmatically, this seems to cause very few problems in # practice: case $deplib in -L*) new_libs="$deplib $new_libs" ;; -R*) ;; *) # And here is the reason: when a library appears more # than once as an explicit dependence of a library, or # is implicitly linked in more than once by the # compiler, it is considered special, and multiple # occurrences thereof are not removed. Compare this # with having the same library being listed as a # dependency of multiple other libraries: in this case, # we know (pedantically, we assume) the library does not # need to be listed more than once, so we keep only the # last copy. This is not always right, but it is rare # enough that we require users that really mean to play # such unportable linking tricks to link the library # using -Wl,-lname, so that libtool does not consider it # for duplicate removal. case " $specialdeplibs " in *" $deplib "*) new_libs="$deplib $new_libs" ;; *) case " $new_libs " in *" $deplib "*) ;; *) new_libs="$deplib $new_libs" ;; esac ;; esac ;; esac done tmp_libs= for deplib in $new_libs; do case $deplib in -L*) case " $tmp_libs " in *" $deplib "*) ;; *) func_append tmp_libs " $deplib" ;; esac ;; *) func_append tmp_libs " $deplib" ;; esac done eval $var=\"$tmp_libs\" done # for var fi # Add Sun CC postdeps if required: test CXX = "$tagname" && { case $host_os in linux*) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 func_suncc_cstd_abi if test no != "$suncc_use_cstd_abi"; then func_append postdeps ' -library=Cstd -library=Crun' fi ;; esac ;; solaris*) func_cc_basename "$CC" case $func_cc_basename_result in CC* | sunCC*) func_suncc_cstd_abi if test no != "$suncc_use_cstd_abi"; then func_append postdeps ' -library=Cstd -library=Crun' fi ;; esac ;; esac } # Last step: remove runtime libs from dependency_libs # (they stay in deplibs) tmp_libs= for i in $dependency_libs; do case " $predeps $postdeps $compiler_lib_search_path " in *" $i "*) i= ;; esac if test -n "$i"; then func_append tmp_libs " $i" fi done dependency_libs=$tmp_libs done # for pass if test prog = "$linkmode"; then dlfiles=$newdlfiles fi if test prog = "$linkmode" || test lib = "$linkmode"; then dlprefiles=$newdlprefiles fi case $linkmode in oldlib) if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then func_warning "'-dlopen' is ignored for archives" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "'-l' and '-L' are ignored for archives" ;; esac test -n "$rpath" && \ func_warning "'-rpath' is ignored for archives" test -n "$xrpath" && \ func_warning "'-R' is ignored for archives" test -n "$vinfo" && \ func_warning "'-version-info/-version-number' is ignored for archives" test -n "$release" && \ func_warning "'-release' is ignored for archives" test -n "$export_symbols$export_symbols_regex" && \ func_warning "'-export-symbols' is ignored for archives" # Now set the variables for building old libraries. build_libtool_libs=no oldlibs=$output func_append objs "$old_deplibs" ;; lib) # Make sure we only generate libraries of the form 'libNAME.la'. case $outputname in lib*) func_stripname 'lib' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" ;; *) test no = "$module" \ && func_fatal_help "libtool library '$output' must begin with 'lib'" if test no != "$need_lib_prefix"; then # Add the "lib" prefix for modules if required func_stripname '' '.la' "$outputname" name=$func_stripname_result eval shared_ext=\"$shrext_cmds\" eval libname=\"$libname_spec\" else func_stripname '' '.la' "$outputname" libname=$func_stripname_result fi ;; esac if test -n "$objs"; then if test pass_all != "$deplibs_check_method"; then func_fatal_error "cannot build libtool library '$output' from non-libtool objects on this host:$objs" else echo $ECHO "*** Warning: Linking the shared library $output against the non-libtool" $ECHO "*** objects $objs is not portable!" func_append libobjs " $objs" fi fi test no = "$dlself" \ || func_warning "'-dlopen self' is ignored for libtool libraries" set dummy $rpath shift test 1 -lt "$#" \ && func_warning "ignoring multiple '-rpath's for a libtool library" install_libdir=$1 oldlibs= if test -z "$rpath"; then if test yes = "$build_libtool_libs"; then # Building a libtool convenience library. # Some compilers have problems with a '.al' extension so # convenience libraries should have the same extension an # archive normally would. oldlibs="$output_objdir/$libname.$libext $oldlibs" build_libtool_libs=convenience build_old_libs=yes fi test -n "$vinfo" && \ func_warning "'-version-info/-version-number' is ignored for convenience libraries" test -n "$release" && \ func_warning "'-release' is ignored for convenience libraries" else # Parse the version information argument. save_ifs=$IFS; IFS=: set dummy $vinfo 0 0 0 shift IFS=$save_ifs test -n "$7" && \ func_fatal_help "too many parameters to '-version-info'" # convert absolute version numbers to libtool ages # this retains compatibility with .la files and attempts # to make the code below a bit more comprehensible case $vinfo_number in yes) number_major=$1 number_minor=$2 number_revision=$3 # # There are really only two kinds -- those that # use the current revision as the major version # and those that subtract age and use age as # a minor version. But, then there is irix # that has an extra 1 added just for fun # case $version_type in # correct linux to gnu/linux during the next big refactor darwin|freebsd-elf|linux|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result age=$number_minor revision=$number_revision ;; freebsd-aout|qnx|sunos) current=$number_major revision=$number_minor age=0 ;; irix|nonstopux) func_arith $number_major + $number_minor current=$func_arith_result age=$number_minor revision=$number_minor lt_irix_increment=no ;; esac ;; no) current=$1 revision=$2 age=$3 ;; esac # Check that each of the things are valid numbers. case $current in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "CURRENT '$current' must be a nonnegative integer" func_fatal_error "'$vinfo' is not valid version information" ;; esac case $revision in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "REVISION '$revision' must be a nonnegative integer" func_fatal_error "'$vinfo' is not valid version information" ;; esac case $age in 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; *) func_error "AGE '$age' must be a nonnegative integer" func_fatal_error "'$vinfo' is not valid version information" ;; esac if test "$age" -gt "$current"; then func_error "AGE '$age' is greater than the current interface number '$current'" func_fatal_error "'$vinfo' is not valid version information" fi # Calculate the version variables. major= versuffix= verstring= case $version_type in none) ;; darwin) # Like Linux, but with the current version available in # verstring for coding it into the library header func_arith $current - $age major=.$func_arith_result versuffix=$major.$age.$revision # Darwin ld doesn't like 0 for these options... func_arith $current + 1 minor_current=$func_arith_result xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" # On Darwin other compilers case $CC in nagfor*) verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" ;; *) verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" ;; esac ;; freebsd-aout) major=.$current versuffix=.$current.$revision ;; freebsd-elf) func_arith $current - $age major=.$func_arith_result versuffix=$major.$age.$revision ;; irix | nonstopux) if test no = "$lt_irix_increment"; then func_arith $current - $age else func_arith $current - $age + 1 fi major=$func_arith_result case $version_type in nonstopux) verstring_prefix=nonstopux ;; *) verstring_prefix=sgi ;; esac verstring=$verstring_prefix$major.$revision # Add in all the interfaces that we are compatible with. loop=$revision while test 0 -ne "$loop"; do func_arith $revision - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring=$verstring_prefix$major.$iface:$verstring done # Before this point, $major must not contain '.'. major=.$major versuffix=$major.$revision ;; linux) # correct to gnu/linux during the next big refactor func_arith $current - $age major=.$func_arith_result versuffix=$major.$age.$revision ;; osf) func_arith $current - $age major=.$func_arith_result versuffix=.$current.$age.$revision verstring=$current.$age.$revision # Add in all the interfaces that we are compatible with. loop=$age while test 0 -ne "$loop"; do func_arith $current - $loop iface=$func_arith_result func_arith $loop - 1 loop=$func_arith_result verstring=$verstring:$iface.0 done # Make executables depend on our current version. func_append verstring ":$current.0" ;; qnx) major=.$current versuffix=.$current ;; sco) major=.$current versuffix=.$current ;; sunos) major=.$current versuffix=.$current.$revision ;; windows) # Use '-' rather than '.', since we only want one # extension on DOS 8.3 file systems. func_arith $current - $age major=$func_arith_result versuffix=-$major ;; *) func_fatal_configuration "unknown library version type '$version_type'" ;; esac # Clear the version info if we defaulted, and they specified a release. if test -z "$vinfo" && test -n "$release"; then major= case $version_type in darwin) # we can't check for "0.0" in archive_cmds due to quoting # problems, so we reset it completely verstring= ;; *) verstring=0.0 ;; esac if test no = "$need_version"; then versuffix= else versuffix=.0.0 fi fi # Remove version info from name if versioning should be avoided if test yes,no = "$avoid_version,$need_version"; then major= versuffix= verstring= fi # Check to see if the archive will have undefined symbols. if test yes = "$allow_undefined"; then if test unsupported = "$allow_undefined_flag"; then if test yes = "$build_old_libs"; then func_warning "undefined symbols not allowed in $host shared libraries; building static only" build_libtool_libs=no else func_fatal_error "can't build $host shared library unless -no-undefined is specified" fi fi else # Don't allow undefined symbols. allow_undefined_flag=$no_undefined_flag fi fi func_generate_dlsyms "$libname" "$libname" : func_append libobjs " $symfileobj" test " " = "$libobjs" && libobjs= if test relink != "$opt_mode"; then # Remove our outputs, but don't remove object files since they # may have been created when compiling PIC objects. removelist= tempremovelist=`$ECHO "$output_objdir/*"` for p in $tempremovelist; do case $p in *.$objext | *.gcno) ;; $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/$libname$release.*) if test -n "$precious_files_regex"; then if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 then continue fi fi func_append removelist " $p" ;; *) ;; esac done test -n "$removelist" && \ func_show_eval "${RM}r \$removelist" fi # Now set the variables for building old libraries. if test yes = "$build_old_libs" && test convenience != "$build_libtool_libs"; then func_append oldlibs " $output_objdir/$libname.$libext" # Transform .lo files to .o files. oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; $lo2o" | $NL2SP` fi # Eliminate all temporary directories. #for path in $notinst_path; do # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` #done if test -n "$xrpath"; then # If the user specified any rpath flags, then add them. temp_xrpath= for libdir in $xrpath; do func_replace_sysroot "$libdir" func_append temp_xrpath " -R$func_replace_sysroot_result" case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac done if test yes != "$hardcode_into_libs" || test yes = "$build_old_libs"; then dependency_libs="$temp_xrpath $dependency_libs" fi fi # Make sure dlfiles contains only unique files that won't be dlpreopened old_dlfiles=$dlfiles dlfiles= for lib in $old_dlfiles; do case " $dlprefiles $dlfiles " in *" $lib "*) ;; *) func_append dlfiles " $lib" ;; esac done # Make sure dlprefiles contains only unique files old_dlprefiles=$dlprefiles dlprefiles= for lib in $old_dlprefiles; do case "$dlprefiles " in *" $lib "*) ;; *) func_append dlprefiles " $lib" ;; esac done if test yes = "$build_libtool_libs"; then if test -n "$rpath"; then case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) # Rhapsody C library is in the System framework func_append deplibs " System.ltframework" ;; *-*-netbsd*) # Don't link with libc until the a.out ld.so is fixed. ;; *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) # Do not include libc due to us having libc/libc_r. ;; *-*-sco3.2v5* | *-*-sco5v6*) # Causes problems with __ctype ;; *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) # Compiler inserts libc in the correct place for threads to work ;; *) # Add libc to deplibs on all other systems if necessary. if test yes = "$build_libtool_need_lc"; then func_append deplibs " -lc" fi ;; esac fi # Transform deplibs into only deplibs that can be linked in shared. name_save=$name libname_save=$libname release_save=$release versuffix_save=$versuffix major_save=$major # I'm not sure if I'm treating the release correctly. I think # release should show up in the -l (ie -lgmp5) so we don't want to # add it in twice. Is that correct? release= versuffix= major= newdeplibs= droppeddeps=no case $deplibs_check_method in pass_all) # Don't check for shared/static. Everything works. # This might be a little naive. We might want to check # whether the library exists or not. But this is on # osf3 & osf4 and I'm not really sure... Just # implementing what was already the behavior. newdeplibs=$deplibs ;; test_compile) # This code stresses the "libraries are programs" paradigm to its # limits. Maybe even breaks it. We compile a program, linking it # against the deplibs as a proxy for the library. Then we can check # whether they linked in statically or dynamically with ldd. $opt_dry_run || $RM conftest.c cat > conftest.c </dev/null` $nocaseglob else potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` fi for potent_lib in $potential_libs; do # Follow soft links. if ls -lLd "$potent_lib" 2>/dev/null | $GREP " -> " >/dev/null; then continue fi # The statement above tries to avoid entering an # endless loop below, in case of cyclic links. # We might still enter an endless loop, since a link # loop can be closed while we follow links, # but so what? potlib=$potent_lib while test -h "$potlib" 2>/dev/null; do potliblink=`ls -ld $potlib | $SED 's/.* -> //'` case $potliblink in [\\/]* | [A-Za-z]:[\\/]*) potlib=$potliblink;; *) potlib=`$ECHO "$potlib" | $SED 's|[^/]*$||'`"$potliblink";; esac done if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | $SED -e 10q | $EGREP "$file_magic_regex" > /dev/null; then func_append newdeplibs " $a_deplib" a_deplib= break 2 fi done done fi if test -n "$a_deplib"; then droppeddeps=yes echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib"; then $ECHO "*** with $libname but no candidates were found. (...for file magic test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a file magic. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. func_append newdeplibs " $a_deplib" ;; esac done # Gone through all deplibs. ;; match_pattern*) set dummy $deplibs_check_method; shift match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` for a_deplib in $deplibs; do case $a_deplib in -l*) func_stripname -l '' "$a_deplib" name=$func_stripname_result if test yes = "$allow_libtool_libs_with_static_runtimes"; then case " $predeps $postdeps " in *" $a_deplib "*) func_append newdeplibs " $a_deplib" a_deplib= ;; esac fi if test -n "$a_deplib"; then libname=`eval "\\$ECHO \"$libname_spec\""` for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do potential_libs=`ls $i/$libname[.-]* 2>/dev/null` for potent_lib in $potential_libs; do potlib=$potent_lib # see symlink-check above in file_magic test if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ $EGREP "$match_pattern_regex" > /dev/null; then func_append newdeplibs " $a_deplib" a_deplib= break 2 fi done done fi if test -n "$a_deplib"; then droppeddeps=yes echo $ECHO "*** Warning: linker path does not have real file for library $a_deplib." echo "*** I have the capability to make that library automatically link in when" echo "*** you link to this library. But I can only do this if you have a" echo "*** shared version of the library, which you do not appear to have" echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib"; then $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" else $ECHO "*** with $libname and none of the candidates passed a file format test" $ECHO "*** using a regex pattern. Last file checked: $potlib" fi fi ;; *) # Add a -L argument. func_append newdeplibs " $a_deplib" ;; esac done # Gone through all deplibs. ;; none | unknown | *) newdeplibs= tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` if test yes = "$allow_libtool_libs_with_static_runtimes"; then for i in $predeps $postdeps; do # can't use Xsed below, because $i might contain '/' tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s|$i||"` done fi case $tmp_deplibs in *[!\ \ ]*) echo if test none = "$deplibs_check_method"; then echo "*** Warning: inter-library dependencies are not supported in this platform." else echo "*** Warning: inter-library dependencies are not known to be supported." fi echo "*** All declared inter-library dependencies are being dropped." droppeddeps=yes ;; esac ;; esac versuffix=$versuffix_save major=$major_save release=$release_save libname=$libname_save name=$name_save case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library with the System framework newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac if test yes = "$droppeddeps"; then if test yes = "$module"; then echo echo "*** Warning: libtool could not satisfy all declared inter-library" $ECHO "*** dependencies of module $libname. Therefore, libtool will create" echo "*** a static module, that should work as long as the dlopening" echo "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then echo echo "*** However, this would only work if libtool was able to extract symbol" echo "*** lists from a program, using 'nm' or equivalent, but libtool could" echo "*** not find such a program. So, this module is probably useless." echo "*** 'nm' from GNU binutils and a full rebuild may help." fi if test no = "$build_old_libs"; then oldlibs=$output_objdir/$libname.$libext build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi else echo "*** The inter-library dependencies that have been dropped here will be" echo "*** automatically added whenever a program is linked with this library" echo "*** or is declared to -dlopen it." if test no = "$allow_undefined"; then echo echo "*** Since this library must not contain undefined symbols," echo "*** because either the platform does not support them or" echo "*** it was explicitly requested with -no-undefined," echo "*** libtool will only create a static version of it." if test no = "$build_old_libs"; then oldlibs=$output_objdir/$libname.$libext build_libtool_libs=module build_old_libs=yes else build_libtool_libs=no fi fi fi fi # Done checking deplibs! deplibs=$newdeplibs fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" case $host in *-*-darwin*) newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $deplibs " in *" -L$path/$objdir "*) func_append new_libs " -L$path/$objdir" ;; esac ;; esac done for deplib in $deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) func_append new_libs " $deplib" ;; esac ;; *) func_append new_libs " $deplib" ;; esac done deplibs=$new_libs # All the library-specific variables (install_libdir is set above). library_names= old_library= dlname= # Test again, we may have decided not to build it any more if test yes = "$build_libtool_libs"; then # Remove $wl instances when linking with ld. # FIXME: should test the right _cmds variable. case $archive_cmds in *\$LD\ *) wl= ;; esac if test yes = "$hardcode_into_libs"; then # Hardcode the library paths hardcode_libdirs= dep_rpath= rpath=$finalize_rpath test relink = "$opt_mode" || rpath=$compile_rpath$rpath for libdir in $rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then func_replace_sysroot "$libdir" libdir=$func_replace_sysroot_result if test -z "$hardcode_libdirs"; then hardcode_libdirs=$libdir else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append dep_rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) func_append perm_rpath " $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir=$hardcode_libdirs eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" fi if test -n "$runpath_var" && test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do func_append rpath "$dir:" done eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" fi test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" fi shlibpath=$finalize_shlibpath test relink = "$opt_mode" || shlibpath=$compile_shlibpath$shlibpath if test -n "$shlibpath"; then eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" fi # Get the real and link names of the library. eval shared_ext=\"$shrext_cmds\" eval library_names=\"$library_names_spec\" set dummy $library_names shift realname=$1 shift if test -n "$soname_spec"; then eval soname=\"$soname_spec\" else soname=$realname fi if test -z "$dlname"; then dlname=$soname fi lib=$output_objdir/$realname linknames= for link do func_append linknames " $link" done # Use standard objects if they are pic test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` test "X$libobjs" = "X " && libobjs= delfiles= if test -n "$export_symbols" && test -n "$include_expsyms"; then $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" export_symbols=$output_objdir/$libname.uexp func_append delfiles " $export_symbols" fi orig_export_symbols= case $host_os in cygwin* | mingw* | cegcc*) if test -n "$export_symbols" && test -z "$export_symbols_regex"; then # exporting using user supplied symfile func_dll_def_p "$export_symbols" || { # and it's NOT already a .def file. Must figure out # which of the given symbols are data symbols and tag # them as such. So, trigger use of export_symbols_cmds. # export_symbols gets reassigned inside the "prepare # the list of exported symbols" if statement, so the # include_expsyms logic still works. orig_export_symbols=$export_symbols export_symbols= always_export_symbols=yes } fi ;; esac # Prepare the list of exported symbols if test -z "$export_symbols"; then if test yes = "$always_export_symbols" || test -n "$export_symbols_regex"; then func_verbose "generating symbol list for '$libname.la'" export_symbols=$output_objdir/$libname.exp $opt_dry_run || $RM $export_symbols cmds=$export_symbols_cmds save_ifs=$IFS; IFS='~' for cmd1 in $cmds; do IFS=$save_ifs # Take the normal branch if the nm_file_list_spec branch # doesn't work or if tool conversion is not needed. case $nm_file_list_spec~$to_tool_file_cmd in *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) try_normal_branch=yes eval cmd=\"$cmd1\" func_len " $cmd" len=$func_len_result ;; *) try_normal_branch=no ;; esac if test yes = "$try_normal_branch" \ && { test "$len" -lt "$max_cmd_len" \ || test "$max_cmd_len" -le -1; } then func_show_eval "$cmd" 'exit $?' skipped_export=false elif test -n "$nm_file_list_spec"; then func_basename "$output" output_la=$func_basename_result save_libobjs=$libobjs save_output=$output output=$output_objdir/$output_la.nm func_to_tool_file "$output" libobjs=$nm_file_list_spec$func_to_tool_file_result func_append delfiles " $output" func_verbose "creating $NM input file list: $output" for obj in $save_libobjs; do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" done > "$output" eval cmd=\"$cmd1\" func_show_eval "$cmd" 'exit $?' output=$save_output libobjs=$save_libobjs skipped_export=false else # The command line is too long to execute in one step. func_verbose "using reloadable object file for export list..." skipped_export=: # Break out early, otherwise skipped_export may be # set to false by a later but shorter cmd. break fi done IFS=$save_ifs if test -n "$export_symbols_regex" && test : != "$skipped_export"; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi fi if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols=$export_symbols test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test : != "$skipped_export" && test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for '$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands, which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter func_append delfiles " $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi tmp_deplibs= for test_deplib in $deplibs; do case " $convenience " in *" $test_deplib "*) ;; *) func_append tmp_deplibs " $test_deplib" ;; esac done deplibs=$tmp_deplibs if test -n "$convenience"; then if test -n "$whole_archive_flag_spec" && test yes = "$compiler_needs_object" && test -z "$libobjs"; then # extract the archives, so we have objects to list. # TODO: could optimize this to just extract one archive. whole_archive_flag_spec= fi if test -n "$whole_archive_flag_spec"; then save_libobjs=$libobjs eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= else gentop=$output_objdir/${outputname}x func_append generated " $gentop" func_extract_archives $gentop $convenience func_append libobjs " $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi fi if test yes = "$thread_safe" && test -n "$thread_safe_flag_spec"; then eval flag=\"$thread_safe_flag_spec\" func_append linker_flags " $flag" fi # Make a backup of the uninstalled library when relinking if test relink = "$opt_mode"; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? fi # Do each of the archive commands. if test yes = "$module" && test -n "$module_cmds"; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then eval test_cmds=\"$module_expsym_cmds\" cmds=$module_expsym_cmds else eval test_cmds=\"$module_cmds\" cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then eval test_cmds=\"$archive_expsym_cmds\" cmds=$archive_expsym_cmds else eval test_cmds=\"$archive_cmds\" cmds=$archive_cmds fi fi if test : != "$skipped_export" && func_len " $test_cmds" && len=$func_len_result && test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then : else # The command line is too long to link in one step, link piecewise # or, if using GNU ld and skipped_export is not :, use a linker # script. # Save the value of $output and $libobjs because we want to # use them later. If we have whole_archive_flag_spec, we # want to use save_libobjs as it was before # whole_archive_flag_spec was expanded, because we can't # assume the linker understands whole_archive_flag_spec. # This may have to be revisited, in case too many # convenience libraries get linked in and end up exceeding # the spec. if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then save_libobjs=$libobjs fi save_output=$output func_basename "$output" output_la=$func_basename_result # Clear the reloadable object creation command queue and # initialize k to one. test_cmds= concat_cmds= objlist= last_robj= k=1 if test -n "$save_libobjs" && test : != "$skipped_export" && test yes = "$with_gnu_ld"; then output=$output_objdir/$output_la.lnkscript func_verbose "creating GNU ld script: $output" echo 'INPUT (' > $output for obj in $save_libobjs do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" >> $output done echo ')' >> $output func_append delfiles " $output" func_to_tool_file "$output" output=$func_to_tool_file_result elif test -n "$save_libobjs" && test : != "$skipped_export" && test -n "$file_list_spec"; then output=$output_objdir/$output_la.lnk func_verbose "creating linker input file list: $output" : > $output set x $save_libobjs shift firstobj= if test yes = "$compiler_needs_object"; then firstobj="$1 " shift fi for obj do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" >> $output done func_append delfiles " $output" func_to_tool_file "$output" output=$firstobj\"$file_list_spec$func_to_tool_file_result\" else if test -n "$save_libobjs"; then func_verbose "creating reloadable object files..." output=$output_objdir/$output_la-$k.$objext eval test_cmds=\"$reload_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 # Loop over the list of objects to be linked. for obj in $save_libobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result if test -z "$objlist" || test "$len" -lt "$max_cmd_len"; then func_append objlist " $obj" else # The command $test_cmds is almost too long, add a # command to the queue. if test 1 -eq "$k"; then # The first file doesn't have a previous command to add. reload_objs=$objlist eval concat_cmds=\"$reload_cmds\" else # All subsequent reloadable object files will link in # the last one created. reload_objs="$objlist $last_robj" eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" fi last_robj=$output_objdir/$output_la-$k.$objext func_arith $k + 1 k=$func_arith_result output=$output_objdir/$output_la-$k.$objext objlist=" $obj" func_len " $last_robj" func_arith $len0 + $func_len_result len=$func_arith_result fi done # Handle the remaining objects by creating one last # reloadable object file. All subsequent reloadable object # files will link in the last one created. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ reload_objs="$objlist $last_robj" eval concat_cmds=\"\$concat_cmds$reload_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" fi func_append delfiles " $output" else output= fi ${skipped_export-false} && { func_verbose "generating symbol list for '$libname.la'" export_symbols=$output_objdir/$libname.exp $opt_dry_run || $RM $export_symbols libobjs=$output # Append the command to create the export file. test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" if test -n "$last_robj"; then eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" fi } test -n "$save_libobjs" && func_verbose "creating a temporary reloadable object file: $output" # Loop through the commands generated above and execute them. save_ifs=$IFS; IFS='~' for cmd in $concat_cmds; do IFS=$save_ifs $opt_quiet || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test relink = "$opt_mode"; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS=$save_ifs if test -n "$export_symbols_regex" && ${skipped_export-false}; then func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' func_show_eval '$MV "${export_symbols}T" "$export_symbols"' fi fi ${skipped_export-false} && { if test -n "$export_symbols" && test -n "$include_expsyms"; then tmp_export_symbols=$export_symbols test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' fi if test -n "$orig_export_symbols"; then # The given exports_symbols file has to be filtered, so filter it. func_verbose "filter symbol list for '$libname.la' to tag DATA exports" # FIXME: $output_objdir/$libname.filter potentially contains lots of # 's' commands, which not all seds can handle. GNU sed should be fine # though. Also, the filter scales superlinearly with the number of # global variables. join(1) would be nice here, but unfortunately # isn't a blessed tool. $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter func_append delfiles " $export_symbols $output_objdir/$libname.filter" export_symbols=$output_objdir/$libname.def $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols fi } libobjs=$output # Restore the value of output. output=$save_output if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then eval libobjs=\"\$libobjs $whole_archive_flag_spec\" test "X$libobjs" = "X " && libobjs= fi # Expand the library linking commands again to reset the # value of $libobjs for piecewise linking. # Do each of the archive commands. if test yes = "$module" && test -n "$module_cmds"; then if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then cmds=$module_expsym_cmds else cmds=$module_cmds fi else if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then cmds=$archive_expsym_cmds else cmds=$archive_cmds fi fi fi if test -n "$delfiles"; then # Append the command to remove temporary files to $cmds. eval cmds=\"\$cmds~\$RM $delfiles\" fi # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop=$output_objdir/${outputname}x func_append generated " $gentop" func_extract_archives $gentop $dlprefiles func_append libobjs " $func_extract_archives_result" test "X$libobjs" = "X " && libobjs= fi save_ifs=$IFS; IFS='~' for cmd in $cmds; do IFS=$sp$nl eval cmd=\"$cmd\" IFS=$save_ifs $opt_quiet || { func_quote_for_expand "$cmd" eval "func_echo $func_quote_for_expand_result" } $opt_dry_run || eval "$cmd" || { lt_exit=$? # Restore the uninstalled library and exit if test relink = "$opt_mode"; then ( cd "$output_objdir" && \ $RM "${realname}T" && \ $MV "${realname}U" "$realname" ) fi exit $lt_exit } done IFS=$save_ifs # Restore the uninstalled library and exit if test relink = "$opt_mode"; then $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? if test -n "$convenience"; then if test -z "$whole_archive_flag_spec"; then func_show_eval '${RM}r "$gentop"' fi fi exit $EXIT_SUCCESS fi # Create links to the real library. for linkname in $linknames; do if test "$realname" != "$linkname"; then func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' fi done # If -module or -export-dynamic was specified, set the dlname. if test yes = "$module" || test yes = "$export_dynamic"; then # On all known operating systems, these are identical. dlname=$soname fi fi ;; obj) if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then func_warning "'-dlopen' is ignored for objects" fi case " $deplibs" in *\ -l* | *\ -L*) func_warning "'-l' and '-L' are ignored for objects" ;; esac test -n "$rpath" && \ func_warning "'-rpath' is ignored for objects" test -n "$xrpath" && \ func_warning "'-R' is ignored for objects" test -n "$vinfo" && \ func_warning "'-version-info' is ignored for objects" test -n "$release" && \ func_warning "'-release' is ignored for objects" case $output in *.lo) test -n "$objs$old_deplibs" && \ func_fatal_error "cannot build library object '$output' from non-libtool objects" libobj=$output func_lo2o "$libobj" obj=$func_lo2o_result ;; *) libobj= obj=$output ;; esac # Delete the old objects. $opt_dry_run || $RM $obj $libobj # Objects from convenience libraries. This assumes # single-version convenience libraries. Whenever we create # different ones for PIC/non-PIC, this we'll have to duplicate # the extraction. reload_conv_objs= gentop= # if reload_cmds runs $LD directly, get rid of -Wl from # whole_archive_flag_spec and hope we can get by with turning comma # into space. case $reload_cmds in *\$LD[\ \$]*) wl= ;; esac if test -n "$convenience"; then if test -n "$whole_archive_flag_spec"; then eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" test -n "$wl" || tmp_whole_archive_flags=`$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` reload_conv_objs=$reload_objs\ $tmp_whole_archive_flags else gentop=$output_objdir/${obj}x func_append generated " $gentop" func_extract_archives $gentop $convenience reload_conv_objs="$reload_objs $func_extract_archives_result" fi fi # If we're not building shared, we need to use non_pic_objs test yes = "$build_libtool_libs" || libobjs=$non_pic_objects # Create the old-style object. reload_objs=$objs$old_deplibs' '`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; /\.lib$/d; $lo2o" | $NL2SP`' '$reload_conv_objs output=$obj func_execute_cmds "$reload_cmds" 'exit $?' # Exit if we aren't doing a library object file. if test -z "$libobj"; then if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS fi test yes = "$build_libtool_libs" || { if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi # Create an invalid libtool object if no PIC, so that we don't # accidentally link it into a program. # $show "echo timestamp > $libobj" # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? exit $EXIT_SUCCESS } if test -n "$pic_flag" || test default != "$pic_mode"; then # Only do commands if we really have different PIC objects. reload_objs="$libobjs $reload_conv_objs" output=$libobj func_execute_cmds "$reload_cmds" 'exit $?' fi if test -n "$gentop"; then func_show_eval '${RM}r "$gentop"' fi exit $EXIT_SUCCESS ;; prog) case $host in *cygwin*) func_stripname '' '.exe' "$output" output=$func_stripname_result.exe;; esac test -n "$vinfo" && \ func_warning "'-version-info' is ignored for programs" test -n "$release" && \ func_warning "'-release' is ignored for programs" $preload \ && test unknown,unknown,unknown = "$dlopen_support,$dlopen_self,$dlopen_self_static" \ && func_warning "'LT_INIT([dlopen])' not used. Assuming no dlopen support." case $host in *-*-rhapsody* | *-*-darwin1.[012]) # On Rhapsody replace the C library is the System framework compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` ;; esac case $host in *-*-darwin*) # Don't allow lazy linking, it breaks C++ global constructors # But is supposedly fixed on 10.4 or later (yay!). if test CXX = "$tagname"; then case ${MACOSX_DEPLOYMENT_TARGET-10.0} in 10.[0123]) func_append compile_command " $wl-bind_at_load" func_append finalize_command " $wl-bind_at_load" ;; esac fi # Time to change all our "foo.ltframework" stuff back to "-framework foo" compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` ;; esac # move library search paths that coincide with paths to not yet # installed libraries to the beginning of the library search list new_libs= for path in $notinst_path; do case " $new_libs " in *" -L$path/$objdir "*) ;; *) case " $compile_deplibs " in *" -L$path/$objdir "*) func_append new_libs " -L$path/$objdir" ;; esac ;; esac done for deplib in $compile_deplibs; do case $deplib in -L*) case " $new_libs " in *" $deplib "*) ;; *) func_append new_libs " $deplib" ;; esac ;; *) func_append new_libs " $deplib" ;; esac done compile_deplibs=$new_libs func_append compile_command " $compile_deplibs" func_append finalize_command " $finalize_deplibs" if test -n "$rpath$xrpath"; then # If the user specified any rpath flags, then add them. for libdir in $rpath $xrpath; do # This is the magic to use -rpath. case "$finalize_rpath " in *" $libdir "*) ;; *) func_append finalize_rpath " $libdir" ;; esac done fi # Now hardcode the library paths rpath= hardcode_libdirs= for libdir in $compile_rpath $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs=$libdir else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$perm_rpath " in *" $libdir "*) ;; *) func_append perm_rpath " $libdir" ;; esac fi case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "$libdir" | $SED -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;; ::) dllsearchpath=$libdir;; *) func_append dllsearchpath ":$libdir";; esac case :$dllsearchpath: in *":$testbindir:"*) ;; ::) dllsearchpath=$testbindir;; *) func_append dllsearchpath ":$testbindir";; esac ;; esac done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir=$hardcode_libdirs eval rpath=\" $hardcode_libdir_flag_spec\" fi compile_rpath=$rpath rpath= hardcode_libdirs= for libdir in $finalize_rpath; do if test -n "$hardcode_libdir_flag_spec"; then if test -n "$hardcode_libdir_separator"; then if test -z "$hardcode_libdirs"; then hardcode_libdirs=$libdir else # Just accumulate the unique libdirs. case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) ;; *) func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" ;; esac fi else eval flag=\"$hardcode_libdir_flag_spec\" func_append rpath " $flag" fi elif test -n "$runpath_var"; then case "$finalize_perm_rpath " in *" $libdir "*) ;; *) func_append finalize_perm_rpath " $libdir" ;; esac fi done # Substitute the hardcoded libdirs into the rpath. if test -n "$hardcode_libdir_separator" && test -n "$hardcode_libdirs"; then libdir=$hardcode_libdirs eval rpath=\" $hardcode_libdir_flag_spec\" fi finalize_rpath=$rpath if test -n "$libobjs" && test yes = "$build_old_libs"; then # Transform all the library objects into standard objects. compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` fi func_generate_dlsyms "$outputname" "@PROGRAM@" false # template prelinking step if test -n "$prelink_cmds"; then func_execute_cmds "$prelink_cmds" 'exit $?' fi wrappers_required=: case $host in *cegcc* | *mingw32ce*) # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. wrappers_required=false ;; *cygwin* | *mingw* ) test yes = "$build_libtool_libs" || wrappers_required=false ;; *) if test no = "$need_relink" || test yes != "$build_libtool_libs"; then wrappers_required=false fi ;; esac $wrappers_required || { # Replace the output file specification. compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` link_command=$compile_command$compile_rpath # We have no uninstalled library dependencies, so finalize right now. exit_status=0 func_show_eval "$link_command" 'exit_status=$?' if test -n "$postlink_cmds"; then func_to_tool_file "$output" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi # Delete the generated files. if test -f "$output_objdir/${outputname}S.$objext"; then func_show_eval '$RM "$output_objdir/${outputname}S.$objext"' fi exit $exit_status } if test -n "$compile_shlibpath$finalize_shlibpath"; then compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" fi if test -n "$finalize_shlibpath"; then finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" fi compile_var= finalize_var= if test -n "$runpath_var"; then if test -n "$perm_rpath"; then # We should set the runpath_var. rpath= for dir in $perm_rpath; do func_append rpath "$dir:" done compile_var="$runpath_var=\"$rpath\$$runpath_var\" " fi if test -n "$finalize_perm_rpath"; then # We should set the runpath_var. rpath= for dir in $finalize_perm_rpath; do func_append rpath "$dir:" done finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " fi fi if test yes = "$no_install"; then # We don't need to create a wrapper script. link_command=$compile_var$compile_command$compile_rpath # Replace the output file specification. link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` # Delete the old output file. $opt_dry_run || $RM $output # Link the executable and exit func_show_eval "$link_command" 'exit $?' if test -n "$postlink_cmds"; then func_to_tool_file "$output" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi exit $EXIT_SUCCESS fi case $hardcode_action,$fast_install in relink,*) # Fast installation is not supported link_command=$compile_var$compile_command$compile_rpath relink_command=$finalize_var$finalize_command$finalize_rpath func_warning "this platform does not like uninstalled shared libraries" func_warning "'$output' will be relinked during installation" ;; *,yes) link_command=$finalize_var$compile_command$finalize_rpath relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` ;; *,no) link_command=$compile_var$compile_command$compile_rpath relink_command=$finalize_var$finalize_command$finalize_rpath ;; *,needless) link_command=$finalize_var$compile_command$finalize_rpath relink_command= ;; esac # Replace the output file specification. link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` # Delete the old output files. $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname func_show_eval "$link_command" 'exit $?' if test -n "$postlink_cmds"; then func_to_tool_file "$output_objdir/$outputname" postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` func_execute_cmds "$postlink_cmds" 'exit $?' fi # Now create the wrapper script. func_verbose "creating $output" # Quote the relink command for shipping. if test -n "$relink_command"; then # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done relink_command="(cd `pwd`; $relink_command)" relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` fi # Only actually do things if not in dry run mode. $opt_dry_run || { # win32 will think the script is a binary if it has # a .exe suffix, so we strip it off here. case $output in *.exe) func_stripname '' '.exe' "$output" output=$func_stripname_result ;; esac # test for cygwin because mv fails w/o .exe extensions case $host in *cygwin*) exeext=.exe func_stripname '' '.exe' "$outputname" outputname=$func_stripname_result ;; *) exeext= ;; esac case $host in *cygwin* | *mingw* ) func_dirname_and_basename "$output" "" "." output_name=$func_basename_result output_path=$func_dirname_result cwrappersource=$output_path/$objdir/lt-$output_name.c cwrapper=$output_path/$output_name.exe $RM $cwrappersource $cwrapper trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 func_emit_cwrapperexe_src > $cwrappersource # The wrapper executable is built using the $host compiler, # because it contains $host paths and files. If cross- # compiling, it, like the target executable, must be # executed on the $host or under an emulation environment. $opt_dry_run || { $LTCC $LTCFLAGS -o $cwrapper $cwrappersource $STRIP $cwrapper } # Now, create the wrapper script for func_source use: func_ltwrapper_scriptname $cwrapper $RM $func_ltwrapper_scriptname_result trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 $opt_dry_run || { # note: this script will not be executed, so do not chmod. if test "x$build" = "x$host"; then $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result else func_emit_wrapper no > $func_ltwrapper_scriptname_result fi } ;; * ) $RM $output trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 func_emit_wrapper no > $output chmod +x $output ;; esac } exit $EXIT_SUCCESS ;; esac # See if we need to build an old-fashioned archive. for oldlib in $oldlibs; do case $build_libtool_libs in convenience) oldobjs="$libobjs_save $symfileobj" addlibs=$convenience build_libtool_libs=no ;; module) oldobjs=$libobjs_save addlibs=$old_convenience build_libtool_libs=no ;; *) oldobjs="$old_deplibs $non_pic_objects" $preload && test -f "$symfileobj" \ && func_append oldobjs " $symfileobj" addlibs=$old_convenience ;; esac if test -n "$addlibs"; then gentop=$output_objdir/${outputname}x func_append generated " $gentop" func_extract_archives $gentop $addlibs func_append oldobjs " $func_extract_archives_result" fi # Do each command in the archive commands. if test -n "$old_archive_from_new_cmds" && test yes = "$build_libtool_libs"; then cmds=$old_archive_from_new_cmds else # Add any objects from preloaded convenience libraries if test -n "$dlprefiles"; then gentop=$output_objdir/${outputname}x func_append generated " $gentop" func_extract_archives $gentop $dlprefiles func_append oldobjs " $func_extract_archives_result" fi # POSIX demands no paths to be encoded in archives. We have # to avoid creating archives with duplicate basenames if we # might have to extract them afterwards, e.g., when creating a # static archive out of a convenience library, or when linking # the entirety of a libtool archive into another (currently # not supported by libtool). if (for obj in $oldobjs do func_basename "$obj" $ECHO "$func_basename_result" done | sort | sort -uc >/dev/null 2>&1); then : else echo "copying selected object files to avoid basename conflicts..." gentop=$output_objdir/${outputname}x func_append generated " $gentop" func_mkdir_p "$gentop" save_oldobjs=$oldobjs oldobjs= counter=1 for obj in $save_oldobjs do func_basename "$obj" objbase=$func_basename_result case " $oldobjs " in " ") oldobjs=$obj ;; *[\ /]"$objbase "*) while :; do # Make sure we don't pick an alternate name that also # overlaps. newobj=lt$counter-$objbase func_arith $counter + 1 counter=$func_arith_result case " $oldobjs " in *[\ /]"$newobj "*) ;; *) if test ! -f "$gentop/$newobj"; then break; fi ;; esac done func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" func_append oldobjs " $gentop/$newobj" ;; *) func_append oldobjs " $obj" ;; esac done fi func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 tool_oldlib=$func_to_tool_file_result eval cmds=\"$old_archive_cmds\" func_len " $cmds" len=$func_len_result if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then cmds=$old_archive_cmds elif test -n "$archiver_list_spec"; then func_verbose "using command file archive linking..." for obj in $oldobjs do func_to_tool_file "$obj" $ECHO "$func_to_tool_file_result" done > $output_objdir/$libname.libcmd func_to_tool_file "$output_objdir/$libname.libcmd" oldobjs=" $archiver_list_spec$func_to_tool_file_result" cmds=$old_archive_cmds else # the command line is too long to link in one step, link in parts func_verbose "using piecewise archive linking..." save_RANLIB=$RANLIB RANLIB=: objlist= concat_cmds= save_oldobjs=$oldobjs oldobjs= # Is there a better way of finding the last object in the list? for obj in $save_oldobjs do last_oldobj=$obj done eval test_cmds=\"$old_archive_cmds\" func_len " $test_cmds" len0=$func_len_result len=$len0 for obj in $save_oldobjs do func_len " $obj" func_arith $len + $func_len_result len=$func_arith_result func_append objlist " $obj" if test "$len" -lt "$max_cmd_len"; then : else # the above command should be used before it gets too long oldobjs=$objlist if test "$obj" = "$last_oldobj"; then RANLIB=$save_RANLIB fi test -z "$concat_cmds" || concat_cmds=$concat_cmds~ eval concat_cmds=\"\$concat_cmds$old_archive_cmds\" objlist= len=$len0 fi done RANLIB=$save_RANLIB oldobjs=$objlist if test -z "$oldobjs"; then eval cmds=\"\$concat_cmds\" else eval cmds=\"\$concat_cmds~\$old_archive_cmds\" fi fi fi func_execute_cmds "$cmds" 'exit $?' done test -n "$generated" && \ func_show_eval "${RM}r$generated" # Now create the libtool archive. case $output in *.la) old_library= test yes = "$build_old_libs" && old_library=$libname.$libext func_verbose "creating $output" # Preserve any variables that may affect compiler behavior for var in $variables_saved_for_relink; do if eval test -z \"\${$var+set}\"; then relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" elif eval var_value=\$$var; test -z "$var_value"; then relink_command="$var=; export $var; $relink_command" else func_quote_for_eval "$var_value" relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" fi done # Quote the link command for shipping. relink_command="(cd `pwd`; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` if test yes = "$hardcode_automatic"; then relink_command= fi # Only create the output if not a dry run. $opt_dry_run || { for installed in no yes; do if test yes = "$installed"; then if test -z "$install_libdir"; then break fi output=$output_objdir/${outputname}i # Replace all uninstalled libtool libraries with the installed ones newdependency_libs= for deplib in $dependency_libs; do case $deplib in *.la) func_basename "$deplib" name=$func_basename_result func_resolve_sysroot "$deplib" eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` test -z "$libdir" && \ func_fatal_error "'$deplib' is not a valid libtool archive" func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" ;; -L*) func_stripname -L '' "$deplib" func_replace_sysroot "$func_stripname_result" func_append newdependency_libs " -L$func_replace_sysroot_result" ;; -R*) func_stripname -R '' "$deplib" func_replace_sysroot "$func_stripname_result" func_append newdependency_libs " -R$func_replace_sysroot_result" ;; *) func_append newdependency_libs " $deplib" ;; esac done dependency_libs=$newdependency_libs newdlfiles= for lib in $dlfiles; do case $lib in *.la) func_basename "$lib" name=$func_basename_result eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "'$lib' is not a valid libtool archive" func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" ;; *) func_append newdlfiles " $lib" ;; esac done dlfiles=$newdlfiles newdlprefiles= for lib in $dlprefiles; do case $lib in *.la) # Only pass preopened files to the pseudo-archive (for # eventual linking with the app. that links it) if we # didn't already link the preopened objects directly into # the library: func_basename "$lib" name=$func_basename_result eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib` test -z "$libdir" && \ func_fatal_error "'$lib' is not a valid libtool archive" func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" ;; esac done dlprefiles=$newdlprefiles else newdlfiles= for lib in $dlfiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;; *) abs=`pwd`"/$lib" ;; esac func_append newdlfiles " $abs" done dlfiles=$newdlfiles newdlprefiles= for lib in $dlprefiles; do case $lib in [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;; *) abs=`pwd`"/$lib" ;; esac func_append newdlprefiles " $abs" done dlprefiles=$newdlprefiles fi $RM $output # place dlname in correct position for cygwin # In fact, it would be nice if we could use this code for all target # systems that can't hard-code library paths into their executables # and that have no shared library path variable independent of PATH, # but it turns out we can't easily determine that from inspecting # libtool variables, so we have to hard-code the OSs to which it # applies here; at the moment, that means platforms that use the PE # object format with DLL files. See the long comment at the top of # tests/bindir.at for full details. tdlname=$dlname case $host,$output,$installed,$module,$dlname in *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) # If a -bindir argument was supplied, place the dll there. if test -n "$bindir"; then func_relative_path "$install_libdir" "$bindir" tdlname=$func_relative_path_result/$dlname else # Otherwise fall back on heuristic. tdlname=../bin/$dlname fi ;; esac $ECHO > $output "\ # $outputname - a libtool library file # Generated by $PROGRAM (GNU $PACKAGE) $VERSION # # Please DO NOT delete this file! # It is necessary for linking the library. # The name that we can dlopen(3). dlname='$tdlname' # Names of this library. library_names='$library_names' # The name of the static archive. old_library='$old_library' # Linker flags that cannot go in dependency_libs. inherited_linker_flags='$new_inherited_linker_flags' # Libraries that this one depends upon. dependency_libs='$dependency_libs' # Names of additional weak libraries provided by this library weak_library_names='$weak_libs' # Version information for $libname. current=$current age=$age revision=$revision # Is this an already installed library? installed=$installed # Should we warn about portability when linking against -modules? shouldnotlink=$module # Files to dlopen/dlpreopen dlopen='$dlfiles' dlpreopen='$dlprefiles' # Directory that this library needs to be installed in: libdir='$install_libdir'" if test no,yes = "$installed,$need_relink"; then $ECHO >> $output "\ relink_command=\"$relink_command\"" fi done } # Do a symbolic link so that the libtool archive can be found in # LD_LIBRARY_PATH before the program is installed. func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' ;; esac exit $EXIT_SUCCESS } if test link = "$opt_mode" || test relink = "$opt_mode"; then func_mode_link ${1+"$@"} fi # func_mode_uninstall arg... func_mode_uninstall () { $debug_cmd RM=$nonopt files= rmforce=false exit_status=0 # This variable tells wrapper scripts just to set variables rather # than running their programs. libtool_install_magic=$magic for arg do case $arg in -f) func_append RM " $arg"; rmforce=: ;; -*) func_append RM " $arg" ;; *) func_append files " $arg" ;; esac done test -z "$RM" && \ func_fatal_help "you must specify an RM program" rmdirs= for file in $files; do func_dirname "$file" "" "." dir=$func_dirname_result if test . = "$dir"; then odir=$objdir else odir=$dir/$objdir fi func_basename "$file" name=$func_basename_result test uninstall = "$opt_mode" && odir=$dir # Remember odir for removal later, being careful to avoid duplicates if test clean = "$opt_mode"; then case " $rmdirs " in *" $odir "*) ;; *) func_append rmdirs " $odir" ;; esac fi # Don't error if the file doesn't exist and rm -f was used. if { test -L "$file"; } >/dev/null 2>&1 || { test -h "$file"; } >/dev/null 2>&1 || test -f "$file"; then : elif test -d "$file"; then exit_status=1 continue elif $rmforce; then continue fi rmfiles=$file case $name in *.la) # Possibly a libtool archive, so verify it. if func_lalib_p "$file"; then func_source $dir/$name # Delete the libtool libraries and symlinks. for n in $library_names; do func_append rmfiles " $odir/$n" done test -n "$old_library" && func_append rmfiles " $odir/$old_library" case $opt_mode in clean) case " $library_names " in *" $dlname "*) ;; *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; esac test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" ;; uninstall) if test -n "$library_names"; then # Do each command in the postuninstall commands. func_execute_cmds "$postuninstall_cmds" '$rmforce || exit_status=1' fi if test -n "$old_library"; then # Do each command in the old_postuninstall commands. func_execute_cmds "$old_postuninstall_cmds" '$rmforce || exit_status=1' fi # FIXME: should reinstall the best remaining shared library. ;; esac fi ;; *.lo) # Possibly a libtool object, so verify it. if func_lalib_p "$file"; then # Read the .lo file func_source $dir/$name # Add PIC object to the list of files to remove. if test -n "$pic_object" && test none != "$pic_object"; then func_append rmfiles " $dir/$pic_object" fi # Add non-PIC object to the list of files to remove. if test -n "$non_pic_object" && test none != "$non_pic_object"; then func_append rmfiles " $dir/$non_pic_object" fi fi ;; *) if test clean = "$opt_mode"; then noexename=$name case $file in *.exe) func_stripname '' '.exe' "$file" file=$func_stripname_result func_stripname '' '.exe' "$name" noexename=$func_stripname_result # $file with .exe has already been added to rmfiles, # add $file without .exe func_append rmfiles " $file" ;; esac # Do a test to see if this is a libtool program. if func_ltwrapper_p "$file"; then if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" relink_command= func_source $func_ltwrapper_scriptname_result func_append rmfiles " $func_ltwrapper_scriptname_result" else relink_command= func_source $dir/$noexename fi # note $name still contains .exe if it was in $file originally # as does the version of $file that was added into $rmfiles func_append rmfiles " $odir/$name $odir/${name}S.$objext" if test yes = "$fast_install" && test -n "$relink_command"; then func_append rmfiles " $odir/lt-$name" fi if test "X$noexename" != "X$name"; then func_append rmfiles " $odir/lt-$noexename.c" fi fi fi ;; esac func_show_eval "$RM $rmfiles" 'exit_status=1' done # Try to remove the $objdir's in the directories where we deleted files for dir in $rmdirs; do if test -d "$dir"; then func_show_eval "rmdir $dir >/dev/null 2>&1" fi done exit $exit_status } if test uninstall = "$opt_mode" || test clean = "$opt_mode"; then func_mode_uninstall ${1+"$@"} fi test -z "$opt_mode" && { help=$generic_help func_fatal_help "you must specify a MODE" } test -z "$exec_cmd" && \ func_fatal_help "invalid operation mode '$opt_mode'" if test -n "$exec_cmd"; then eval exec "$exec_cmd" exit $EXIT_FAILURE fi exit $exit_status # The TAGs below are defined such that we never get into a situation # where we disable both kinds of libraries. Given conflicting # choices, we go for a static library, that is the most portable, # since we can't tell whether shared libraries were disabled because # the user asked for that or because the platform doesn't support # them. This is particularly important on AIX, because we don't # support having both static and shared libraries enabled at the same # time on that platform, so we default to a shared-only configuration. # If a disable-shared tag is given, we'll fallback to a static-only # configuration. But we'll never go from static-only to shared-only. # ### BEGIN LIBTOOL TAG CONFIG: disable-shared build_libtool_libs=no build_old_libs=yes # ### END LIBTOOL TAG CONFIG: disable-shared # ### BEGIN LIBTOOL TAG CONFIG: disable-static build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` # ### END LIBTOOL TAG CONFIG: disable-static # Local Variables: # mode:shell-script # sh-indentation:2 # End: mysql++-3.2.5/bootstrap000755 000765 000024 00000005665 13515046514 015602 0ustar00tangentstaff000000 000000 #!/bin/bash ARGS=1 BF_OPTIONS= MAINT_FLAGS="--cache-file=config.cache" while [ $ARGS != 0 ] do case "$1" in bat) cmd /c bootstrap.bat $BF_OPTIONS exit 0 ;; nodoc) BF_OPTIONS="-DBUILDDOCS=no $BF_OPTIONS" shift ;; noex) BF_OPTIONS="-DBUILDEXAMPLES=no $BF_OPTIONS" shift ;; nolib) BF_OPTIONS="-DBUILDLIBRARY=no $BF_OPTIONS" shift ;; nomaint) MAINT_FLAGS= shift ;; noopt) export CXXFLAGS="-g -O0" shift ;; pedantic) export CXXFLAGS="-g -O2 -ansi -pedantic -Wall -Wextra -W -Wold-style-cast -Wfloat-equal -Wwrite-strings -Wno-overloaded-virtual -Wno-long-long -Wno-variadic-macros -D_GLIBCXX_DEBUG -D_GLIBCXX_DEBUG_PEDANTIC" shift ;; *) ARGS=0 ;; esac done # Find location of Bakefile stuff. bakefilize=bakefilize for d in /usr/share/aclocal /usr/local/share/aclocal \ '/c/Program Files (x86)/Bakefile/autoconf' do BAKEFILE_M4="$d" if [ -e "$BAKEFILE_M4/bakefile.m4" ] then if [ -x "$d/bakefilize" ] then bakefilize="$d/bakefilize" fi break fi done if [ ! -e "$BAKEFILE_M4/bakefile.m4" ] then echo echo "Failed to find bakefile.m4. Add the directory containing" echo "this to the bootstrap script." echo exit 1 fi if [ ! -x "$bakefilize" ] && ! type -p "$bakefilize" > /dev/null then echo echo "Failed to find the bakefilize script. Is Bakefile installed?" echo exit 1 fi # Check for existence of needed tools, so we can give a better error # message than the shell will. tools="make" # POSIX tools="$tools aclocal autoconf autoheader autoreconf libtoolize" # Autotools tools="$tools bakefile bakefile_gen" # Bakefile for tool in $tools do if ! type -p $tool > /dev/null then echo "FAILED to find build tool '$tool'!" echo echo BOOTSTRAP FAILED! echo exit 1 fi done # Do Bakefile stuff first. Autoconf can't succeed without # autoconf_in.m4, which Bakefile creates. success= set -x && for d in 3 5 8 ; do mkdir -p vc200$d ; done && "$bakefilize" && rm -f INSTALL && bakefile_gen $BF_OPTIONS && bakefile -f gnu -o Makefile.simple -DBUILDLIBRARY=no mysql++.bkl && set +x && success=shonuff # Do the autotools stuff if Bakefile steps succeeded # # We're calling automake only because autoconf depends on install-sh or # similar, and it *ass*umes you're using automake as well, so it # delegates installation of that to automake! This is why we ignore its # errors: it fails because configure.ac doesn't refer to AM_* and there # is no Makefile.am file, but it does still copy over the missing files. if [ -n "$success" ] then rm -f config.cache mv autoconf_inc.m4 config > /dev/null 2>&1 # don't care if it fails set -x && automake --add-missing > /dev/null 2>&1 ; autoreconf -i -I "$BAKEFILE_M4" && ./configure $MAINT_FLAGS $* && make lib/querydef.h lib/ssqls.h && set +x && success=awyeah fi # Detect failure in any part of above if [ -z "$success" ] then echo echo BOOTSTRAP FAILED! echo exit 1 fi mysql++-3.2.5/bmark.txt000644 000765 000024 00000026322 13515046514 015465 0ustar00tangentstaff000000 000000 All unit tests passed ---------------- BEGIN resetdb OUTPUT ---------------- Connecting to database server... Dropping existing sample data tables... Creating stock table... Populating stock table...inserted 4 rows. Creating empty images table... Creating deadlock testing tables... Reinitialized sample database successfully. ================ END resetdb OUTPUT ================ ---------------- BEGIN simple1 OUTPUT ---------------- We have: Nürnberger Brats Pickle Relish Hot Mustard Hotdog Buns ================ END simple1 OUTPUT ================ ---------------- BEGIN simple2 OUTPUT ---------------- Item Num Weight Price Date Nürnberger Brats 97 1.5 8.79 2005-03-10 Pickle Relish 87 1.5 1.75 1998-09-04 Hot Mustard 73 0.95 0.97 1998-05-25 Hotdog Buns 65 1.1 1.10 1998-04-23 ================ END simple2 OUTPUT ================ ---------------- BEGIN simple3 OUTPUT ---------------- Item Num Weight Price Date Nürnberger Brats 97 1.5 8.79 2005-03-10 Pickle Relish 87 1.5 1.75 1998-09-04 Hot Mustard 73 0.95 0.97 1998-05-25 Hotdog Buns 65 1.1 1.10 1998-04-23 ================ END simple3 OUTPUT ================ ---------------- BEGIN store_if OUTPUT ---------------- Records found: 2 Item Num Weight Price Date Nürnberger Brats 97 1.5 8.79 2005-03-10 Hot Mustard 73 0.95 0.97 1998-05-25 ================ END store_if OUTPUT ================ ---------------- BEGIN for_each OUTPUT ---------------- There are 322 items weighing 416.85 stone and costing 1147.19 cowrie shells. ================ END for_each OUTPUT ================ ---------------- BEGIN multiquery OUTPUT ---------------- Multi-query: DROP TABLE IF EXISTS test_table; CREATE TABLE test_table(id INT); INSERT INTO test_table VALUES(10); UPDATE test_table SET id=20 WHERE id=10; SELECT * FROM test_table; DROP TABLE test_table Result set 0 is empty. Result set 1 is empty. Result set 2 is empty. Result set 3 is empty. Result set 4 has 1 row: +----+ | id | +----+ | 20 | +----+ Result set 5 is empty. Stored procedure query: DROP PROCEDURE IF EXISTS get_stock; CREATE PROCEDURE get_stock( i_item varchar(20) ) BEGIN SET i_item = concat('%', i_item, '%'); SELECT * FROM stock WHERE lower(item) like lower(i_item); END; Result set 0 is empty. Result set 1 is empty. Query: CALL get_stock('relish') Result set 0 has 1 row: +---------------+-----+--------+-------+------------+-------------+ | item | num | weight | price | sdate | description | +---------------+-----+--------+-------+------------+-------------+ | Pickle Relish | 87 | 1.5 | 1.75 | 1998-09-04 | NULL | +---------------+-----+--------+-------+------------+-------------+ Result set 1 is empty. ================ END multiquery OUTPUT ================ ---------------- BEGIN tquery1 OUTPUT ---------------- Query: select * from stock Records found: 4 Item Num Weight Price Date Nuerenberger Bratwurst 97 1.5 8.79 2005-03-10 Pickle Relish 87 1.5 1.75 1998-09-04 Hot Mustard 73 0.95 0.97 1998-05-25 Hotdog Buns 65 1.1 1.1 1998-04-23 ================ END tquery1 OUTPUT ================ ---------------- BEGIN resetdb OUTPUT ---------------- Connecting to database server... Dropping existing sample data tables... Creating stock table... Populating stock table...inserted 4 rows. Creating empty images table... Creating deadlock testing tables... Reinitialized sample database successfully. ================ END resetdb OUTPUT ================ ---------------- BEGIN tquery2 OUTPUT ---------------- Query: select * from stock Records found: 4 Item Num Weight Price Date Nuerenberger Bratwurst 97 1.5 8.79 2005-03-10 Pickle Relish 87 1.5 1.75 1998-09-04 Hot Mustard 73 0.95 0.97 1998-05-25 Hotdog Buns 65 1.1 1.1 1998-04-23 ================ END tquery2 OUTPUT ================ ---------------- BEGIN tquery3 OUTPUT ---------------- Stuff we have a lot of in stock: Nuerenberger Bratwurst Pickle Relish ================ END tquery3 OUTPUT ================ ---------------- BEGIN tquery4 OUTPUT ---------------- Query: update stock set num = 70 where num < 70 Query: select * from stock Records found: 4 Item Num Weight Price Date Nuerenberger Bratwurst 97 1.5 8.79 2005-03-10 Pickle Relish 87 1.5 1.75 1998-09-04 Hot Mustard 73 0.95 0.97 1998-05-25 Hotdog Buns 70 1.1 1.1 1998-04-23 Query: select * from stock where weight > 1.2 or description like '%Mustard%' Records found: 3 Item Num Weight Price Date Nuerenberger Bratwurst 97 1.5 8.79 2005-03-10 Pickle Relish 87 1.5 1.75 1998-09-04 Hot Mustard 73 0.95 0.97 1998-05-25 ================ END tquery4 OUTPUT ================ ---------------- BEGIN resetdb OUTPUT ---------------- Connecting to database server... Dropping existing sample data tables... Creating stock table... Populating stock table...inserted 4 rows. Creating empty images table... Creating deadlock testing tables... Reinitialized sample database successfully. ================ END resetdb OUTPUT ================ ---------------- BEGIN ssqls1 OUTPUT ---------------- We have: Nürnberger Brats Pickle Relish Hot Mustard (good American yellow mustard, not that European stuff) Hotdog Buns ================ END ssqls1 OUTPUT ================ ---------------- BEGIN ssqls2 OUTPUT ---------------- Query: INSERT INTO `stock` (`item`,`num`,`weight`,`price`,`sDate`,`description`) VALUES ('Hot Dogs',100,1.5,NULL,'1998-09-25',NULL) Query: select * from stock Records found: 5 Item Num Weight Price Date Nürnberger Brats 97 1.5 8.79 2005-03-10 Pickle Relish 87 1.5 1.75 1998-09-04 Hot Mustard 73 0.95 0.97 1998-05-25 Hotdog Buns 65 1.1 1.1 1998-04-23 Hot Dogs 100 1.5 (NULL) 1998-09-25 ================ END ssqls2 OUTPUT ================ ---------------- BEGIN ssqls3 OUTPUT ---------------- Query: UPDATE `stock` SET `item` = 'Nuerenberger Bratwurst',`num` = 97,`weight` = 1.5,`price` = 8.7899999999999991,`sDate` = '2005-03-10',`description` = NULL WHERE `item` = 'Nürnberger Brats' Query: select * from stock Records found: 5 Item Num Weight Price Date Nuerenberger Bratwurst 97 1.5 8.79 2005-03-10 Pickle Relish 87 1.5 1.75 1998-09-04 Hot Mustard 73 0.95 0.97 1998-05-25 Hotdog Buns 65 1.1 1.1 1998-04-23 Hot Dogs 100 1.5 (NULL) 1998-09-25 ================ END ssqls3 OUTPUT ================ ---------------- BEGIN ssqls4 OUTPUT ---------------- Records found: 5 Item Num Weight Price Date Hot Dogs 100 1.5 (NULL) 1998-09-25 Hot Mustard 73 0.95 0.97 1998-05-25 Hotdog Buns 65 1.1 1.1 1998-04-23 Nuerenberger Bratwurst 97 1.5 8.79 2005-03-10 Pickle Relish 87 1.5 1.75 1998-09-04 Currently 65 hotdog buns in stock. ================ END ssqls4 OUTPUT ================ ---------------- BEGIN ssqls5 OUTPUT ---------------- Custom query: select * from stock where `weight` = 1.5 and `price` = 8.7899999999999991 ================ END ssqls5 OUTPUT ================ ---------------- BEGIN ssqls6 OUTPUT ---------------- Query: select * from stock Records found: 26 Item Num Weight Price Date Tiny Screws 1000 0.01 0.05 2008-11-11 Needle-nose Pliers 50 0.5 5.95 2008-11-12 Small Soldering Iron 40 0.5 15.95 2008-09-01 Large Soldering Iron 35 0.75 24.95 2008-08-01 Solder Wick 100 0.1 2.95 2008-04-01 Mini Screwdrivers, 3 pc. 30 0.4 8.95 2008-03-25 Mini Screwdrivers, 6 pc. 40 0.6 12.95 2008-04-01 Wire-wrapping Tool 25 0.2 4.95 2008-04-23 Red LED, 5mm, 3000mcd 300 0.01 0.29 2008-10-02 Orange LED, 5mm, 2500mcd 250 0.01 0.29 2008-07-31 Yellow LED, 5mm, 3000mcd 400 0.01 0.25 2008-09-30 Green LED, 5mm, 1000mcd 350 0.01 0.45 2008-09-27 Blue LED, 5mm, 3900mcd 500 0.01 0.34 2007-12-01 White LED, 5mm, 15000mcd 750 0.01 0.43 2008-02-01 AA Battery, single 220 0.05 0.5 2007-09-19 AA Battery, 4-pack 60 0.2 1.79 2007-08-03 AA Battery, 24-pack 8 1.2 9.99 2007-04-25 C Battery, single 100 0.075 0.65 2007-11-14 C Battery, 4-pack 25 0.3 2.29 2007-06-05 C Battery, 24-pack 5 1.8 10.99 2007-06-13 D Battery, single 180 0.08 0.7 2007-12-03 D Battery, 4-pack 45 0.3 2.59 2007-04-01 D Battery, 24-pack 12 1.9 11.99 2007-05-15 9-volt Battery, single 90 0.06 0.75 2008-01-02 9-volt Battery, 3-pack 17 0.2 1.99 2008-02-28 9-volt Batter, 20-pack 12 1.2 12.99 2007-12-28 ================ END ssqls6 OUTPUT ================ ---------------- BEGIN load_jpeg OUTPUT ---------------- Inserted "NULL" into images table, 0 bytes, ID 1 ================ END load_jpeg OUTPUT ================ ---------------- BEGIN cgi_jpeg OUTPUT ---------------- Content-type: text/plain No image content! ================ END cgi_jpeg OUTPUT ================ --- BEGIN ssqlsxlat -i examples/common.ssqls -o ERROR OUTPUT --- ==== END ssqlsxlat -i examples/common.ssqls -o ERROR OUTPUT ==== --- BEGIN ssqlsxlat -i examples/stock.ssqls -o ERROR OUTPUT --- ==== END ssqlsxlat -i examples/stock.ssqls -o ERROR OUTPUT ==== --- BEGIN ssqlsxlat -i test/test1.ssqls -o ERROR OUTPUT --- ==== END ssqlsxlat -i test/test1.ssqls -o ERROR OUTPUT ==== --- BEGIN ssqlsxlat -i test/test2.ssqls -o ERROR OUTPUT --- ==== END ssqlsxlat -i test/test2.ssqls -o ERROR OUTPUT ==== mysql++-3.2.5/HACKERS.md000644 000765 000024 00000062500 13515046514 015230 0ustar00tangentstaff000000 000000 # Hacking on MySQL++ If you are going to make any changes to MySQL++, this file has some hints and commentary you may find helpful. ## Code Repository Access MySQL++ uses the [Fossil][fsl] [distributed version control system][dvcs]. See its [quick start guide][fslq] if you are unfamilar with Fossil. That Fossil repository is also [mirrored to GitHub][ghm] nightly, but this is a read-only mirror, meant for use with Git automation tooling. For example, you could use MySQL++ as a submodule in a larger Git project via this channel. [Changes to MySQL++](#patches) still must go go through the Fossil repository. You must be running Fossil version 2.1 or higher to access the MySQL++ repository. If your operating system includes an older Fossil package, you will either have to install [an official binary][fslb] or [build it from source][fsls]. To clone the MySQL++ repository anonymously, say: $ fossil clone https://tangentsoft.com/mysqlpp mysqlpp.fossil If you have a developer account on the MySQL++ Fossil instance, just add your username to the URL like so: $ fossil clone https://username@tangentsoft.com/mysqlpp mysqlpp.fossil That will get you a file called `mysqlpp.fossil` containing the [abridged version history][avh] of MySQL++ back to the project's founding. The repository clone file can be named anything you like. Even the `.fossil` extension is just a convention, not a requirement. To "open" the repo clone so you can hack on it, say: $ mkdir mysqlpp $ cd mysqlpp $ fossil open ../mysqlpp.fossil This two step “clone and open†process may seem weird if you’re used to Git, but it’s a feature. It means the repository and working directories are separate, allowing you to create multiple independent checkouts from a single repo clone. I like a working tree that looks like this: ~/museum/ # Where one keeps fossils, right? mysqlpp.fossil ~/src/ # Working tree for software projects mysqlpp/ # A directory for each project trunk/ # Primary working branch for MySQL++ v2.3.2-modern/ # Checkout for another branch v3.2.3/ # Checkout for a tagged stable release You check out a branch or tag like so: $ cd ~/src/mysqlpp/v3.2.3 $ fossil open ~/museum/mysqlpp.fossil v3.2.3 Fossil will let you make any modifications you like to your local repository copy. For those with check-in privileges on the upstream copy, changes get automatically synced with it by default. (If you prefer Git or Mercurial style two-phase commits, you can say `fossil set autosync off`, then later say `fossil push` after making one or more checkins.) If you don't have commit capability on the central repository server, checkins just modify your local repository clone. If you do such checkins on a branch, you don’t need to worry about conflicts when pulling down upstream changes into your local clone. Developers are expected to make all changes that affect the libary's API, ABI, or behavior on a branch, rather than check such changes directly into the trunk. Once we have discussed the change on the [forum][for] and resolved any isssues with the experimental branch, it will be merged into the trunk. Creating a branch in Fossil is scary-simple, to the point that those coming from other version control systems may ask, "Is that really all there is to it?" Yes, really, this is it: $ fossil checkin --branch new-branch-name That is to say, you make your changes as you normally would; then when you go to make the first checkin, you give the `--branch` option to put the changes on a new branch, rather than add them to the same branch the changes were made against. Every subsequent checkin without a `--branch` option gets checked in as the new tip of that branch. If you’re creating a branch that will probably live a long enough time that you’ll want to return to trunk one or more times while that branch lives, you might follow the above command with a sequence like this: $ fossil update trunk # return working dir to tip-of-trunk $ mkdir ../new-branch-name $ cd ../new-branch-name $ fossil open ~/museum/mysqlpp.fossil new-branch-name Now you can bounce back and forth between trunk and your new branch with a simple `cd` command, rather than switching in place, as is typical with Git. This style of work avoids invalidating build system outputs, and it makes it possible to switch branches without checking in or stashing your work on the other branch first. [avh]: https://tangentsoft.com/mysqlpp/wiki?name=Abridged+Version+History [dvcs]: http://en.wikipedia.org/wiki/Distributed_revision_control [for]: https://tangentsoft.com/mysqlpp/froum/ [fsl]: http://fossil-scm.org/ [fslb]: http://fossil-scm.org/fossil/uv/download.html [fslq]: http://fossil-scm.org/fossil/doc/trunk/www/quickstart.wiki [fsls]: http://fossil-scm.org/fossil/doc/trunk/www/build.wiki [ghm]: https://github.com/tangentsoft/mysqlpp ## Bootstrapping the Library When you check out MySQL++ from Fossil, there are a lot of things "missing" as compared to a distributed tarball, because the Fossil repository contains only source files, no generated files. The process that turns a fresh MySQL++ repository checkout into something you can build and hack on is called bootstrapping. Boostrapping is best done on a modern Unix type platform: Linux, OS X, BSD, Solaris...any version released since 2005 or so. It's possible to do it on Windows, but much harder; we cover the options below in a separate section. Two of the tools you need to do this are commonly available on Unixy systems, at least as an option: Perl 5, and GNU Autoconf 1.59 or higher. If they're not installed, you can probably run your system's package manager to install suitable versions. There's a third tool you'll need to bootstrap MySQL++ called [Bakefile][bf]. The syntax used in `mysql++.bkl` requires at least Bakefile 0.2.5 or higher, which in turn requires Python 2.3 or higher to run. You may require a newer version of Bakefile to support newer OSes and Python versions; we've tested with versions up to 0.2.11 successfully. Do not use any of the Bakefile 1.x versions: it’s an incompatible change, and we currently have no intention to switch from Bakefile 0.x. Once you have all the tools in place, you can bootstrap MySQL++ with a Bourne shell script called `bootstrap`, which you get as part of the Fossil checkout. It's fairly powerful, with many options. For most cases, it suffices to just run it without any arguments: $ ./bootstrap For more unusual situations, here's the complete usage: $ ./bootstrap [no{doc,ex,lib,opt}] [pedantic] [bat] [configure flags] Arguments: * `nodoc` The documentation won't be considered a prerequisite for building the distribution tarball. This is useful on systems where the documentation doesn't build correctly, and you only need to make a binary RPM. That process requires a tarball, but doesn't need the documentation. Don't distribute the tarball or SRPM that results, as they are no good for any other purpose. * `noex` The generated `Makefiles` and project files won't try to build any of the examples. * `nolib` The generated `Makefiles` and project files won't try to build the MySQL++ library. * `nomaint` Turn off "maintainer mode" stuff in the build. These are features used only by those building MySQL++ from Fossil. The `dist` build target uses this when creating the tarball, because it reduces the build time somewhat. * `noopt` Compiler optimization will be turned off. (This currently has no effect on the generated MinGW Makefile or the Visual C++ project files.) * `pedantic` Turns on all of GCC's warnings and portability checks. We use this as part of our [release process](./RELEASE-CHECKLIST.txt). * `bat` Runs `bootstrap.bat` via `cmd.exe` for you, passing along equivalent options to any of the "*no*" options you give before it. Only the "*no*" options above have an effect on the generated build system files when you give "`bat`". In particular, the files generated by `bootstrap.bat` make no distinction between "pedantic" and normal builds. Passing `bat` stops all command line processing in the `bootstrap` script, so if you also pass some of the other options, "`bat`" must be last. The `bootstrap.bat` script is useful only when you intend to build MySQL++ with MinGW or Visual C++, and you are using Cygwin only as a command line environment. If you intend to build MySQL++ with Cygwin's GCC toolchain, you must not give this option, else you will not end up with the necessary build system files. One advantage of this feature is that the commands necessary to achieve a given effect with `bootstrap.bat` when run via `bootstrap` are shorter than when you run the batch file directly. Another advantage is that this low-strength version of the bootstrap script runs faster than the full-strength form, because it produces fewer files. Finally, running `bootstrap.bat` indirectly like this lets you avoid using `cmd.exe`, a command shell greatly inferior to any of those available for Cygwin. * `configure` script options As soon as the bootstrap script sees an option that it doesn't understand, it stops processing the command line. Any subsequent options are passed to the `configure` script. See [README-Unix.txt][rmu] for more on `configure` script options. [bf]: http://bakefile.org/ [rmu]: https://tangentsoft.com/mysqlpp/file/README-Unix.txt ## Bootstrapping the Library Using Only Windows The thing that makes bootstrapping on Windows difficult is that one of the required steps uses a Unix-centric tool, Autoconf. This section gives alternatives for either getting Autoconf working on Windows or avoiding the need for it. The thing Autoconf does that's relevant to Windows builds of MySQL++ is that it substitutes the current MySQL++ version number into several source files. This allows us to change the version number in just one place — `configure.ac` — and have it applied to all these other places. Until you do this step, a Fossil checkout of MySQL++ won't build, because these files with the version numbers in them won't be generated. ### Option 1: Copy the generated files over from a released version Only one of these generated files is absolutely critical to allowing MySQL++ to build: `lib/mysql++.h`. So, the simplest option you have to bootstrap MySQL++ entirely on Windows is to copy `lib/mysql++.h` over from a released version of MySQL++. While you're doing that, you might copy over the other such generated files: install.hta mysql++.spec doc/userman/userman.dbx lib/Doxyfile Having done that, you can complete the bootstrapping process by running `bootstrap.bat`. It has the same purpose as the Bourne shell script described [above](#bootstrap), but with a different and simpler usage: C:\> bootstrap.bat [bakefile-options] Any options passed are passed as-is to Bakefile. This is normally used to pass `-D` options to affect the generated build system output files. ### Option 2: Cygwin If you'd like to hack on MySQL++ entirely on Windows and have all the build freedoms enjoyed by those working on Unixy platforms, the simplest solution is probably to [install Cygwin][cyg]. It doesn’t matter whether you use the 32-bit or 64-bit version, for our purposes here. While in the Cygwin setup program, you will have to add the Autoconf and Perl 5 packages, which aren't installed in Cygwin by default. Autoconf is in the Devel category, and Perl 5 in the Interpreters category. You will also need to install the native Windows binary version of [Bakefile](http://bakefile.org/). Don't get the source version and try to build Bakefile under Cygwin; it won't work. The Windows binary version of Bakefile includes an embedded version of Python, so you won't need to install Cygwin's Python. Having done all this, you can follow the Unix bootstrapping instructions in the previous section. [cyg]: http://cygwin.com/ ### Option 3: Windows Subsystem for Linux (WSL) If you’re on Windows 10, you have the option of [installing WSL][wsl], a lightweight Linux kernel and user environment that runs atop Windows. This is fundamentally different technology than Cygwin, but the user-level effect of it is the same as far as MySQL++’s build system goes. Assuming you use the default Ubuntu enviroment atop WSL, the [standard bootstrapping process](#bootstrap) applies, after you install the needed tools: $ apt install bakefile build-essential perl libmysqlclient-dev [wsl]: https://docs.microsoft.com/en-us/windows/wsl/install-win10 ### Option 4: ["Here's a nickel, kid, get yourself a better computer."][dc] Finally, you might have access to a Unixy system, or the ability to set one up. You don't even need a separate physical computer, now that virtual machine techology is free. Given such a machine, you'd do the Fossil checkout of MySQL++ on that machine, then bootstrap it there using the instructions in the previous section, and copy the generated files back to the Windows box. [dc]: http://tomayko.com/writings/that-dilbert-cartoon ## On Manipulating the Build System Source Files One of the things the bootstrapping system described [above](#bootstrap) does is produces various types of project and make files from a small number of source files. This system lets us support many platforms without having to maintain separate build system files for each platform. [Bakefile](http://bakefile.org/) produces most of these project and make files from a single source file called [`mysql++.bkl`][bkl]. Except for small local changes, it's best to change `mysql++.bkl` and "re-bake" the project and make files rather than change those files directly. You can do this with the bootstrap scripts covered above. On Windows, if all you've changed is `mysql++.bkl`, you can use `rebake.bat` instead, which doesn't try to do as much as `bootstrap.bat`. Bakefile produces finished project files for Visual C++ and Xcode and finished `Makefiles` for MinGW. It also produces `Makefile.in`, which is input to GNU Autoconf along with `configure.ac` and `config/*`. You may need to change these latter files in addition to or instead of `mysql++.bkl` to get the effect you want. Running bootstrap incorporates changes to all of these files in the GNU Autoconf output. While Bakefile's documentation isn't as comprehensive as it ought to be, you can at least count on it to list all of the available features. So, if you can't see a way to make Bakefile do something, it's likely it just can't do it. Bakefile is a high-level abstraction of build systems in general, so it'll never support all the particulars of every odd build system out there. [bkl]: https://tangentsoft.com/mysqlpp/file/mysql%2B%2B.bkl ## Submitting Patches If you wish to submit a patch to the library, it’s probably simplest to paste it into a [forum post][for], if it’s small. If it’s large, put it in Pastebin or similar, then link to it from a forum post. We want patches in unified diff format. We will also accept trivial patches not needing discussion as text or attachments to [a Fossil ticket][tkt]. The easiest way to get a unified diff is to check out a copy of the current MySQL++ tree [as described above](#repo). Then make your change, `cd` to the MySQL++ root directory, and ask Fossil to generate the patch for you: $ fossil diff > mychange.patch If your patch adds new files, moves files, or needs to be understood in terms of multiple checkins, it's best to do that work on a [private local branch](#private), then send a [bundle][fb] instead of a patch. If you've sent patches to MySQL++ before and don't have a Fossil developer login, another alternative is to ask for a login before you begin work so that your changes are automatically sync'd to the main Fossil repository as you work, so you don't have to send bundles or patch files. We generally don't refuse such requests if you've already proven your ability to work productively with the MySQL++ project. If you're making a patch against a MySQL++ distribution tarball, then you can generate a patch this way: $ diff -ruN mysql++-olddir mysql++-newdir > mychange.patch The `diff` command is part of every Unix and Linux system, and should be installed by default. If you're on a Windows machine, GNU diff is part of [Cygwin](http://cygwin.com/). Fossil is also available for all of these systems. There are no excuses for not being able to make unified diffs. :) Although MySQL++ does have a [GitHub mirror][ghm], we do not acccept PRs via that channel, because the mirror is read-only. You can still send us a PR through GitHub, but realize that what’s going to happen on the back end is that we’ll generate a patch and apply it to the Fossil repo by hand, then update the mirror, so you won’t get GitHub credit for the PR. Sorry; there’s no easy way for this mirroring system to accept contributions back the other direction. If you want credit for the commit, ask us for an account on the Fossil repo, and commit it there instead. [fb]: http://fossil-scm.org/fossil/help?cmd=bundle [tkt]: https://tangentsoft.com/mysqlpp/tktnew ## The MySQL++ Code Style Every code base should have a common code style. Love it or hate it, here are MySQL++'s current code style rules: ### Source Code File types: `ac`, `cpp`, `h`, `in`, `m4`, `pl` - Tabs for indents, size 4 - Unix line endings. Any decent programmer's editor can cope with this, even on Windows. - C/C++ rules: - Base whitespace style is AT&Tish: K&R/Stroustrup, plus a little local spice. If you have the indent(1) program, the command is: indent -kr -nce -cli4 -ss -di1 -psl -ts4 FILES... That is, don't cuddle else, indent case statement labels, space before semicolon with empty loop body, no extra space between a variable type and name, return value of function on separate line from rest of definition. - Class names are in `CamelCase`, uppercased first letter - Method names are in `all_lower_case_with_underscores()`; ditto most other global symbols. - Macro names are in `ALL_UPPERCASE_WITH_UNDERSCORES` - Doxygen comment for all public declarations, unless there is a very good reason to keep the thing undocumented. - Perl and shell script rules are more or less the same as for C/C++, to the extent this makes sense. ### XML/HTML Dialects File types: `bkl`, `dbx`, `hta` - Spaces for indents, size 2. Shallow indents due to the high level of nesting occurring in such files, and spaces because they're not as annoying at shallow indent levels in editors that don't treat space indents like tabs. - Unix line endings. Again, these are intended to be viewed in a programmer's text editor, which should work with Unix line endings no matter the platform. ### Plain Text Files File types: `txt` - Spaces for indents, size 4. Spaces because such files are often viewed in Notepad and similarly crippled text editors which use a default indent level of 8. - DOS line endings, again for the Notepad reason. And on modern Unixy platforms, the tools cope with DOS line endings reasonably well. Better than the converse, anyway. When in doubt, mimic what you see in the current code. When still in doubt, ask on [the forum][for]. ## Testing Your Proposed Change MySQL++ includes a self-test mechanism called `dtest`. It's a Bourne shell script, run much like `exrun`: $ ./dtest [-s server_addr] [-u user] [-p password] This automatically runs most of the examples, captures the outputs to a file, and then compares that to a known-good run's outputs, stored in `bmark.txt`. So, before you submit a patch, run `dtest` to see if anything has changed. If something has and you can't account for it, it represents a problem that you'll have to fix before submitting the patch. If it gives an expected change, remove `bmark.txt`, re-run `dtest`, and include the `bmark.txt` diffs in your patch. This communicates to us the fact that you know there are differences and want the patch evaluated anyway. Otherwise, we are likely to view the change as a bug. `dtest` also runs all of the unit tests in `test/*`. The purpose of `test/*` is different from that of `examples/*`: - `test/*` are unit tests: each tests only one MySQL++ class, independent of everything else. Because DB access requires several MySQL++ classes to cooperate, a unit test never accesses a database; hence, no unit test needs DB connection parameters. We will never get 100% code coverage from `test/*` alone. - `examples/*` can be thought of as integration tests: they test many pieces of MySQL++ working together, accessing a real database server. In addition to ensuring that all the pieces work together and give consistent results from platform to platform and run to run, it also fills in gaps in the code coverage where no suitable `test/*` module could be created. - `test/*` programs always run silently on success, writing output only to indicate test failures. This is because they're usually only run via `dtest`. - `examples/*` are always "noisy," regardless of whether they succeed or fail, because they're also run interactively by people learning to use MySQL++. Patches should include tests if they introduce new functionality or fix a bug that the existing test coverage failed to catch. If the test is noisy, needs DB access, or tests multiple parts of the library at once, it goes in `examples/*`. If your change affects only one class in MySQL++ and testing it can be done without instantiating other MySQL++ classes — other than by composition, of course — it should go in `test/*`. In general, prefer modifying an existing `examples/*` or `test/*` program. Add a new one only if you're introducing brand new functionality or when a given feature currently has no test at all. Beware that the primary role the examples is to illustrate points in the user manual. If an existing example does something similar to what a proper test would need to do and the test doesn't change the nature of the example, don't worry about changing the example code. If your test would change the nature of the example, you either need to do the test another way, or also submit a change to `doc/userman/*.dbx` that incorporates the difference. ## Adding Support for a Different Compiler As described above, MySQL++ uses the Bakefile system for creating project files and makefiles. This allows us to make changes to a single set of files, and have the proper changes be made to all generated project files and makefiles. In the past, we used more ad-hoc systems, and we'd frequently forget to update individual project files and makefiles, so at any given time, at least one target was likely to be broken. If MySQL++ doesn't currently ship with project files or makefiles tuned for your compiler of choice, you need to work through the Bakefile mechanism to add support. We're not willing to do ad-hoc platform support any more, so please don't ask if you can send us project files instead; we don't want them. If you want to port MySQL++ to another platform, we need to be confident that the entire library works on your platform before we'll accept patches. In the past, we've had broken ports that were missing important library features, or that crashed when built in certain ways. Few people will knowingly use a crippled version of MySQL++, since there are usually acceptable alternatives. Therefore, such ports become maintenance baggage with little compensating value. ## Maintaining a Private Repository Although Fossil syncs changes back to the [MySQL++ Fossil repository][home] by default, it is possible to maintain a private copy that simply pulls changes in occasionally. The first step is to turn off the auto-sync feature: $ fossil set autosync off Then, I recommend that you make any local changes on a branch: ...hack, hack, hack... $ fossil ci --branch my-local-branch After you give the `--branch` option on a checkin, Fossil automatically switches your local checkout to that branch, so that all further checkins can be made without the `--branch` option. To get back to the trunk, you'd say `fossil up trunk`, but under this workflow, the need for that will be rare. When something happens on the official trunk on `tangentsoft.com` that you want pulled into your private repository, say: $ fossil sync $ fossil merge trunk The first command pulls all remote changes into your local clone, but since those changes don't affect your private branch, you won't see any immediate change. The second attempts to merge the trunk branch's changes since the last branch or merge point into your private branch. Whether the merge is successful or not, Fossil does not immediately modify your clone, only the working checkout directory. You must then say `fossil ci` once you're happy with the merge. Until then, all the usual Fossil commands like `fossil diff` and `fossil status` will help you come to that decision. If you ever decide to contribute your private branch to the MySQL++ project, there are a couple of easy ways to achieve that. Ask about it on [the forum][for] if you find yourself in this situation. [home]: https://tangentsoft.com/mysqlpp/ mysql++-3.2.5/Bakefiles.bkgen000644 000765 000024 00000001176 13515046514 016525 0ustar00tangentstaff000000 000000 ./mysql++.bkl autoconf,mingw,msvs2003prj,msvs2005prj,msvs2008prj,xcode2 -o$(INPUT_FILE_DIR)/Makefile.mingw -ovc2003/mysql++.sln -ovc2005/mysql++.sln -ovc2008/mysql++.sln -DMSVS_PLATFORMS=win64 mysql++-3.2.5/test/000755 000765 000024 00000000000 13515046516 014604 5ustar00tangentstaff000000 000000 mysql++-3.2.5/config.h000644 000765 000024 00000005223 13515046514 015243 0ustar00tangentstaff000000 000000 /* config.h. Generated from config.h.in by configure. */ /* config.h.in. Generated from configure.ac by autoheader. */ /* Define to 1 if you have the header file. */ #define HAVE_DLFCN_H 1 /* Define if you have __gnu_cxx:slist container in */ /* #undef HAVE_EXT_SLIST */ /* Define if you have ::slist container in */ /* #undef HAVE_GLOBAL_SLIST */ /* Define to 1 if you have the header file. */ #define HAVE_INTTYPES_H 1 /* Define if getopt() is available in libiberty.h */ /* #undef HAVE_LIBIBERTY_GETOPT */ /* Define to 1 if you have the `intl' library (-lintl). */ /* #undef HAVE_LIBINTL */ /* Define if you have the localtime_r() facility */ #define HAVE_LOCALTIME_R 1 /* Define to 1 if you have the header file. */ #define HAVE_MEMORY_H 1 /* Define if your MySQL library has SSL functions */ #define HAVE_MYSQL_SSL_SET /**/ /* Define if getopt() is available in unistd.h */ #define HAVE_POSIX_GETOPT /**/ /* Define if you have POSIX threads libraries and header files. */ /* #undef HAVE_PTHREAD */ /* Define to 1 if you have the header file. */ #define HAVE_STDINT_H 1 /* Define to 1 if you have the header file. */ #define HAVE_STDLIB_H 1 /* Define if you have std::slist container in */ /* #undef HAVE_STD_SLIST */ /* Define to 1 if you have the header file. */ #define HAVE_STRINGS_H 1 /* Define to 1 if you have the header file. */ #define HAVE_STRING_H 1 /* Define to 1 if you have the header file. */ /* #undef HAVE_SYNCH_H */ /* Define to 1 if you have the header file. */ #define HAVE_SYS_STAT_H 1 /* Define to 1 if you have the header file. */ #define HAVE_SYS_TYPES_H 1 /* Define to 1 if you have the header file. */ #define HAVE_UNISTD_H 1 /* Define to the sub-directory where libtool stores uninstalled libraries. */ #define LT_OBJDIR ".libs/" /* Define to the address where bug reports for this package should be sent. */ #define PACKAGE_BUGREPORT "plusplus@lists.mysql.com" /* Define to the full name of this package. */ #define PACKAGE_NAME "mysql++" /* Define to the full name and version of this package. */ #define PACKAGE_STRING "mysql++ 3.2.5" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "mysql++" /* Define to the home page for this package. */ #define PACKAGE_URL "" /* Define to the version of this package. */ #define PACKAGE_VERSION "3.2.5" /* Define to necessary symbol if this constant uses a non-standard name on your system. */ /* #undef PTHREAD_CREATE_JOINABLE */ /* Define to 1 if you have the ANSI C header files. */ #define STDC_HEADERS 1 mysql++-3.2.5/configure000755 000765 000024 00002374233 13515046530 015546 0ustar00tangentstaff000000 000000 #! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.69 for mysql++ 3.2.5. # # Report bugs to . # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 as_fn_exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO PATH=/empty FPATH=/empty; export PATH FPATH test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org and $0: plusplus@lists.mysql.com about your system, including $0: any error possibly output before this message. Then $0: install a modern shell, or manually run the script $0: under such a shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" SHELL=${CONFIG_SHELL-/bin/sh} test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='mysql++' PACKAGE_TARNAME='mysql++' PACKAGE_VERSION='3.2.5' PACKAGE_STRING='mysql++ 3.2.5' PACKAGE_BUGREPORT='plusplus@lists.mysql.com' PACKAGE_URL='' # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_subst_vars='LTLIBOBJS LIBOBJS COND_WINDOWS_IMPLIB_1 COND_USE_SOVERSOLARIS_1 COND_USE_SOVERSION_1_USE_SOVERSOLARIS_1 COND_USE_SOVERSION_0 COND_USE_SOVERLINUX_1 COND_USE_SOVERCYGWIN_1_USE_SOVERSION_1 COND_USE_SOTWOSYMLINKS_1 COND_PLATFORM_OS2_1 COND_PLATFORM_MACOSX_1_USE_SOVERSION_1 COND_PLATFORM_MACOSX_1 COND_PLATFORM_MACOSX_0_USE_SOVERSION_1 COND_PLATFORM_MACOSX_0_USE_SOVERCYGWIN_0_USE_SOVERSION_1 COND_DEPS_TRACKING_1 COND_DEPS_TRACKING_0 COND_BUILD_release COND_BUILD_debug OBJCXXFLAGS WINDRES BK_DEPS DEPS_TRACKING SONAME_FLAG USE_SOTWOSYMLINKS USE_MACVERSION USE_SOVERCYGWIN USE_SOVERSOLARIS USE_SOVERLINUX USE_SOVERSION WINDOWS_IMPLIB PIC_FLAG SHARED_LD_MODULE_CXX SHARED_LD_MODULE_CC SHARED_LD_CXX SHARED_LD_CC AIX_CXX_LD dlldir DLLPREFIX_MODULE DLLPREFIX LIBEXT LIBPREFIX DLLIMP_SUFFIX SO_SUFFIX_MODULE SO_SUFFIX PLATFORM_BEOS PLATFORM_MACOSX PLATFORM_MACOS PLATFORM_MAC PLATFORM_WIN32 PLATFORM_UNIX IF_GNU_MAKE LDFLAGS_GUI INSTALL_DIR AROPTIONS MAKE_SET SET_MAKE INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM CXXCPP ac_ct_CXX CXXFLAGS CXX MYSQL_C_LIB_NAME MYSQL_C_LIB_DIR MYSQL_C_INC_DIR MYSQLPP_EXTRA_LIBS PTHREAD_CFLAGS PTHREAD_LIBS PTHREAD_CC acx_pthread_config MYSQLPP_VERSION_BUGFIX MYSQLPP_VERSION_MINOR MYSQLPP_VERSION_MAJOR LIBTOOL_DEPS CPP LT_SYS_LIBRARY_PATH OTOOL64 OTOOL LIPO NMEDIT DSYMUTIL MANIFEST_TOOL AWK RANLIB STRIP ac_ct_AR AR DLLTOOL OBJDUMP LN_S NM ac_ct_DUMPBIN DUMPBIN LD FGREP EGREP GREP SED OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC LIBTOOL target_os target_vendor target_cpu target host_os host_vendor host_cpu host build_os build_vendor build_cpu build target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_shared enable_static with_pic enable_fast_install with_aix_soname with_gnu_ld with_sysroot enable_libtool_lock enable_thread_check with_field_limit with_mysql with_mysql_lib with_mysql_include enable_dependency_tracking ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS LT_SYS_LIBRARY_PATH CPP CXX CXXFLAGS CCC CXXCPP' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures mysql++ 3.2.5 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/mysql++] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF System types: --build=BUILD configure for building on BUILD [guessed] --host=HOST cross-compile to build programs to run on HOST [BUILD] --target=TARGET configure for building compilers for TARGET [HOST] _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of mysql++ 3.2.5:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-shared[=PKGS] build shared libraries [default=yes] --enable-static[=PKGS] build static libraries [default=yes] --enable-fast-install[=PKGS] optimize for fast installation [default=yes] --disable-libtool-lock avoid locking (might break parallel builds) --enable-thread-check Check for threads, and use if available. --disable-dependency-tracking don't use dependency tracking even if the compiler can Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use both] --with-aix-soname=aix|svr4|both shared library versioning (aka "SONAME") variant to provide on AIX, [default=aix]. --with-gnu-ld assume the C compiler uses GNU ld [default=no] --with-sysroot[=DIR] Search for dependent libraries within DIR (or the compiler's sysroot if not specified). --with-field-limit= set max template query and SSQLS field count --with-mysql= root directory path of MySQL installation --with-mysql-lib= directory path of MySQL library installation --with-mysql-include= directory path of MySQL header installation Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory LT_SYS_LIBRARY_PATH User-defined run-time library search path. CPP C preprocessor CXX C++ compiler command CXXFLAGS C++ compiler flags CXXCPP C++ preprocessor Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF mysql++ configure 3.2.5 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || test -x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_link # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile # ac_fn_c_try_cpp LINENO # ---------------------- # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_cpp # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : ac_retval=0 else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_run # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $2 /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $2 (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$2 || defined __stub___$2 choke me #endif int main () { return $2 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_func # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using # the include files in INCLUDES and setting the cache variable VAR # accordingly. ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if eval \${$3+:} false; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 $as_echo_n "checking $2 usability... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_header_compiler=yes else ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 $as_echo_n "checking $2 presence... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <$2> _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : ac_header_preproc=yes else ac_header_preproc=no fi rm -f conftest.err conftest.i conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( yes:no: ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; no:yes:* ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ( $as_echo "## --------------------------------------- ## ## Report this to plusplus@lists.mysql.com ## ## --------------------------------------- ##" ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_mongrel # ac_fn_cxx_try_compile LINENO # ---------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_compile # ac_fn_cxx_try_cpp LINENO # ------------------------ # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_cpp # ac_fn_cxx_try_link LINENO # ------------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || test -x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_link cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by mysql++ $as_me 3.2.5, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_config_headers="$ac_config_headers config.h" ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 $as_echo_n "checking build system type... " >&6; } if ${ac_cv_build+:} false; then : $as_echo_n "(cached) " >&6 else ac_build_alias=$build_alias test "x$ac_build_alias" = x && ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` test "x$ac_build_alias" = x && as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 $as_echo "$ac_cv_build" >&6; } case $ac_cv_build in *-*-*) ;; *) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; esac build=$ac_cv_build ac_save_IFS=$IFS; IFS='-' set x $ac_cv_build shift build_cpu=$1 build_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: build_os=$* IFS=$ac_save_IFS case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 $as_echo_n "checking host system type... " >&6; } if ${ac_cv_host+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$host_alias" = x; then ac_cv_host=$ac_cv_build else ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 $as_echo "$ac_cv_host" >&6; } case $ac_cv_host in *-*-*) ;; *) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; esac host=$ac_cv_host ac_save_IFS=$IFS; IFS='-' set x $ac_cv_host shift host_cpu=$1 host_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: host_os=$* IFS=$ac_save_IFS case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5 $as_echo_n "checking target system type... " >&6; } if ${ac_cv_target+:} false; then : $as_echo_n "(cached) " >&6 else if test "x$target_alias" = x; then ac_cv_target=$ac_cv_host else ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` || as_fn_error $? "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5 fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_target" >&5 $as_echo "$ac_cv_target" >&6; } case $ac_cv_target in *-*-*) ;; *) as_fn_error $? "invalid value of canonical target" "$LINENO" 5;; esac target=$ac_cv_target ac_save_IFS=$IFS; IFS='-' set x $ac_cv_target shift target_cpu=$1 target_vendor=$2 shift; shift # Remember, the first character of IFS is used to create $*, # except with old shells: target_os=$* IFS=$ac_save_IFS case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac # The aliases save the names the user supplied, while $host etc. # will get canonicalized. test -n "$target_alias" && test "$program_prefix$program_suffix$program_transform_name" = \ NONENONEs,x,x, && program_prefix=${target_alias}- # Enable libtool to decide shared library compile flags (ie -fPIC) case `pwd` in *\ * | *\ *) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 $as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; esac macro_version='2.4.6' macro_revision='2.4.6' ltmain=$ac_aux_dir/ltmain.sh # Backslashify metacharacters that are still active within # double-quoted strings. sed_quote_subst='s/\(["`$\\]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\(["`\\]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 $as_echo_n "checking how to print strings... " >&6; } # Test print first, because it will be a builtin if present. if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='print -r --' elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='printf %s\n' else # Use this function as a fallback that always works. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $1 _LTECHO_EOF' } ECHO='func_fallback_echo' fi # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "" } case $ECHO in printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 $as_echo "printf" >&6; } ;; print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 $as_echo "print -r" >&6; } ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 $as_echo "cat" >&6; } ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi if test -z "$ac_file"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables See \`config.log' for more details" "$LINENO" 5; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5; } fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 $as_echo_n "checking for a sed that does not truncate output... " >&6; } if ${ac_cv_path_SED+:} false; then : $as_echo_n "(cached) " >&6 else ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ for ac_i in 1 2 3 4 5 6 7; do ac_script="$ac_script$as_nl$ac_script" done echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed { ac_script=; unset ac_script;} if test -z "$SED"; then ac_path_SED_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_SED" || continue # Check for GNU ac_path_SED and select it if it is found. # Check for GNU $ac_path_SED case `"$ac_path_SED" --version 2>&1` in *GNU*) ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo '' >> "conftest.nl" "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_SED_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_SED="$ac_path_SED" ac_path_SED_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_SED_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_SED"; then as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 fi else ac_cv_path_SED=$SED fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 $as_echo "$ac_cv_path_SED" >&6; } SED="$ac_cv_path_SED" rm -f conftest.sed test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_GREP" || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if ${ac_cv_path_EGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_EGREP" || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 $as_echo_n "checking for fgrep... " >&6; } if ${ac_cv_path_FGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 then ac_cv_path_FGREP="$GREP -F" else if test -z "$FGREP"; then ac_path_FGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in fgrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_FGREP" || continue # Check for GNU ac_path_FGREP and select it if it is found. # Check for GNU $ac_path_FGREP case `"$ac_path_FGREP" --version 2>&1` in *GNU*) ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'FGREP' >> "conftest.nl" "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_FGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_FGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_FGREP"; then as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_FGREP=$FGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 $as_echo "$ac_cv_path_FGREP" >&6; } FGREP="$ac_cv_path_FGREP" test -z "$GREP" && GREP=grep # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test yes = "$GCC"; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return, which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD=$ac_prog ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test yes = "$with_gnu_ld"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if ${lt_cv_path_LD+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD=$ac_dir/$ac_prog # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if ${lt_cv_prog_gnu_ld+:} false; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 $as_echo "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 $as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } if ${lt_cv_path_NM+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM=$NM else lt_nm_to_check=${ac_tool_prefix}nm if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. tmp_nm=$ac_dir/$lt_tmp_nm if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then # Check to see if the nm accepts a BSD-compat flag. # Adding the 'sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty case $build_os in mingw*) lt_bad_file=conftest.nm/nofile ;; *) lt_bad_file=/dev/null ;; esac case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in *$lt_bad_file* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break 2 ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break 2 ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS=$lt_save_ifs done : ${lt_cv_path_NM=no} fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 $as_echo "$lt_cv_path_NM" >&6; } if test no != "$lt_cv_path_NM"; then NM=$lt_cv_path_NM else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$DUMPBIN"; then : # Let the user override the test. else if test -n "$ac_tool_prefix"; then for ac_prog in dumpbin "link -dump" do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DUMPBIN+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DUMPBIN"; then ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DUMPBIN=$ac_cv_prog_DUMPBIN if test -n "$DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 $as_echo "$DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$DUMPBIN" && break done fi if test -z "$DUMPBIN"; then ac_ct_DUMPBIN=$DUMPBIN for ac_prog in dumpbin "link -dump" do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DUMPBIN"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN if test -n "$ac_ct_DUMPBIN"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 $as_echo "$ac_ct_DUMPBIN" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_DUMPBIN" && break done if test "x$ac_ct_DUMPBIN" = x; then DUMPBIN=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DUMPBIN=$ac_ct_DUMPBIN fi fi case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols -headers" ;; *) DUMPBIN=: ;; esac fi if test : != "$DUMPBIN"; then NM=$DUMPBIN fi fi test -z "$NM" && NM=nm { $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 $as_echo_n "checking the name lister ($NM) interface... " >&6; } if ${lt_cv_nm_interface+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 (eval echo "\"\$as_me:$LINENO: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 $as_echo "$lt_cv_nm_interface" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 $as_echo_n "checking whether ln -s works... " >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 $as_echo "no, using $LN_S" >&6; } fi # find the maximum length of command line arguments { $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 $as_echo_n "checking the maximum length of command line arguments... " >&6; } if ${lt_cv_sys_max_cmd_len+:} false; then : $as_echo_n "(cached) " >&6 else i=0 teststring=ABCD case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; mint*) # On MiNT this can take a long time and run out of memory. lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; os2*) # The test takes a long time on OS/2. lt_cv_sys_max_cmd_len=8192 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len" && \ test undefined != "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test X`env echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test 17 != "$i" # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac fi if test -n "$lt_cv_sys_max_cmd_len"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 $as_echo "$lt_cv_sys_max_cmd_len" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 $as_echo "none" >&6; } fi max_cmd_len=$lt_cv_sys_max_cmd_len : ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 $as_echo_n "checking how to convert $build file names to $host format... " >&6; } if ${lt_cv_to_host_file_cmd+:} false; then : $as_echo_n "(cached) " >&6 else case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ;; esac ;; *-*-cygwin* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_noop ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ;; esac ;; * ) # unhandled hosts (and "normal" native builds) lt_cv_to_host_file_cmd=func_convert_file_noop ;; esac fi to_host_file_cmd=$lt_cv_to_host_file_cmd { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 $as_echo "$lt_cv_to_host_file_cmd" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 $as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } if ${lt_cv_to_tool_file_cmd+:} false; then : $as_echo_n "(cached) " >&6 else #assume ordinary cross tools, or native build. lt_cv_to_tool_file_cmd=func_convert_file_noop case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ;; esac ;; esac fi to_tool_file_cmd=$lt_cv_to_tool_file_cmd { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 $as_echo "$lt_cv_to_tool_file_cmd" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 $as_echo_n "checking for $LD option to reload object files... " >&6; } if ${lt_cv_ld_reload_flag+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_reload_flag='-r' fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 $as_echo "$lt_cv_ld_reload_flag" >&6; } reload_flag=$lt_cv_ld_reload_flag case $reload_flag in "" | " "*) ;; *) reload_flag=" $reload_flag" ;; esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in cygwin* | mingw* | pw32* | cegcc*) if test yes != "$GCC"; then reload_cmds=false fi ;; darwin*) if test yes = "$GCC"; then reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs' else reload_cmds='$LD$reload_flag -o $output$reload_objs' fi ;; esac if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. set dummy ${ac_tool_prefix}objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OBJDUMP"; then ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OBJDUMP=$ac_cv_prog_OBJDUMP if test -n "$OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 $as_echo "$OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OBJDUMP"; then ac_ct_OBJDUMP=$OBJDUMP # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OBJDUMP"; then ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OBJDUMP="objdump" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP if test -n "$ac_ct_OBJDUMP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 $as_echo "$ac_ct_OBJDUMP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OBJDUMP" = x; then OBJDUMP="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OBJDUMP=$ac_ct_OBJDUMP fi else OBJDUMP="$ac_cv_prog_OBJDUMP" fi test -z "$OBJDUMP" && OBJDUMP=objdump { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 $as_echo_n "checking how to recognize dependent libraries... " >&6; } if ${lt_cv_deplibs_check_method+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. # 'unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # that responds to the $file_magic_cmd with a given extended regex. # If you have 'file' or equivalent on your system and you're not sure # whether 'pass_all' will *always* work, you probably want this one. case $host_os in aix[4-9]*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi[45]*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; cygwin*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' ;; mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling. if ( file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else # Keep this pattern in sync with the one in func_win32_libid. lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc*) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; haiku*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[3-9]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) lt_cv_deplibs_check_method=pass_all ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd* | bitrig*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; os2*) lt_cv_deplibs_check_method=pass_all ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 $as_echo "$lt_cv_deplibs_check_method" >&6; } file_magic_glob= want_nocaseglob=no if test "$build" = "$host"; then case $host_os in mingw* | pw32*) if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then want_nocaseglob=yes else file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` fi ;; esac fi file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. set dummy ${ac_tool_prefix}dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DLLTOOL"; then ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DLLTOOL=$ac_cv_prog_DLLTOOL if test -n "$DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 $as_echo "$DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DLLTOOL"; then ac_ct_DLLTOOL=$DLLTOOL # Extract the first word of "dlltool", so it can be a program name with args. set dummy dlltool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DLLTOOL"; then ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DLLTOOL="dlltool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL if test -n "$ac_ct_DLLTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 $as_echo "$ac_ct_DLLTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DLLTOOL" = x; then DLLTOOL="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DLLTOOL=$ac_ct_DLLTOOL fi else DLLTOOL="$ac_cv_prog_DLLTOOL" fi test -z "$DLLTOOL" && DLLTOOL=dlltool { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 $as_echo_n "checking how to associate runtime and link libraries... " >&6; } if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in cygwin* | mingw* | pw32* | cegcc*) # two different shell functions defined in ltmain.sh; # decide which one to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in *--identify-strict*) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ;; *) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ;; esac ;; *) # fallback: assume linklib IS sharedlib lt_cv_sharedlib_from_linklib_cmd=$ECHO ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 $as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO if test -n "$ac_tool_prefix"; then for ac_prog in ar do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 $as_echo "$AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AR" && break done fi if test -z "$AR"; then ac_ct_AR=$AR for ac_prog in ar do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 $as_echo "$ac_ct_AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_AR" && break done if test "x$ac_ct_AR" = x; then AR="false" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi fi : ${AR=ar} : ${AR_FLAGS=cru} { $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 $as_echo_n "checking for archiver @FILE support... " >&6; } if ${lt_cv_ar_at_file+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ar_at_file=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : echo conftest.$ac_objext > conftest.lst lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 (eval $lt_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test 0 -eq "$ac_status"; then # Ensure the archiver fails upon bogus file names. rm -f conftest.$ac_objext libconftest.a { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 (eval $lt_ar_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if test 0 -ne "$ac_status"; then lt_cv_ar_at_file=@ fi fi rm -f conftest.* libconftest.a fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 $as_echo "$lt_cv_ar_at_file" >&6; } if test no = "$lt_cv_ar_at_file"; then archiver_list_spec= else archiver_list_spec=$lt_cv_ar_at_file fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi test -z "$STRIP" && STRIP=: if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 $as_echo "$RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 $as_echo "$ac_ct_RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi test -z "$RANLIB" && RANLIB=: # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in bitrig* | openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" fi case $host_os in darwin*) lock_old_archive_extraction=yes ;; *) lock_old_archive_extraction=no ;; esac for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Check for command to grab the raw symbol name followed by C symbol from nm. { $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 $as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } if ${lt_cv_sys_global_symbol_pipe+:} false; then : $as_echo_n "(cached) " >&6 else # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[BCDEGRST]' # Regexp to match symbols that can be accessed directly from C. sympat='\([_A-Za-z][_A-Za-z0-9]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[BCDT]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[ABCDGISTW]' ;; hpux*) if test ia64 = "$host_cpu"; then symcode='[ABCDEGRST]' fi ;; irix* | nonstopux*) symcode='[BCDEGRST]' ;; osf*) symcode='[BCDEGQRST]' ;; solaris*) symcode='[BDRT]' ;; sco3.2v5*) symcode='[DT]' ;; sysv4.2uw2*) symcode='[DT]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[ABDT]' ;; sysv4) symcode='[DFNSTU]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[ABCDGIRSTW]' ;; esac if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Gets list of data symbols to import. lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'" # Adjust the below global symbol transforms to fixup imported variables. lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" lt_c_name_lib_hook="\ -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\ -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'" else # Disable hooks by default. lt_cv_sys_global_symbol_to_import= lt_cdecl_hook= lt_c_name_hook= lt_c_name_lib_hook= fi # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n"\ $lt_cdecl_hook\ " -e 's/^T .* \(.*\)$/extern int \1();/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n"\ $lt_c_name_hook\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" # Transform an extracted symbol line into symbol name with lib prefix and # symbol address. lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\ $lt_c_name_lib_hook\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function, # D for any global variable and I for any imported variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK '"\ " {last_section=section; section=\$ 3};"\ " /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\ " /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\ " /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\ " {split(\$ 0,a,/\||\r/); split(a[2],s)};"\ " s[1]~/^[@?]/{print f,s[1],s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # Now try to grab the symbols. nlist=conftest.nm if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5 (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE /* DATA imports from DLLs on WIN32 can't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT_DLSYM_CONST #elif defined __osf__ /* This system does not cope well with relocations in const data. */ # define LT_DLSYM_CONST #else # define LT_DLSYM_CONST const #endif #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ LT_DLSYM_CONST struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_globsym_save_LIBS=$LIBS lt_globsym_save_CFLAGS=$CFLAGS LIBS=conftstm.$ac_objext CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s conftest$ac_exeext; then pipe_works=yes fi LIBS=$lt_globsym_save_LIBS CFLAGS=$lt_globsym_save_CFLAGS else echo "cannot find nm_test_func in $nlist" >&5 fi else echo "cannot find nm_test_var in $nlist" >&5 fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 fi else echo "$progname: failed program was:" >&5 cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test yes = "$pipe_works"; then break else lt_cv_sys_global_symbol_pipe= fi done fi if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 $as_echo "failed" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 $as_echo "ok" >&6; } fi # Response file support. if test "$lt_cv_nm_interface" = "MS dumpbin"; then nm_file_list_spec='@' elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then nm_file_list_spec='@' fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 $as_echo_n "checking for sysroot... " >&6; } # Check whether --with-sysroot was given. if test "${with_sysroot+set}" = set; then : withval=$with_sysroot; else with_sysroot=no fi lt_sysroot= case $with_sysroot in #( yes) if test yes = "$GCC"; then lt_sysroot=`$CC --print-sysroot 2>/dev/null` fi ;; #( /*) lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` ;; #( no|'') ;; #( *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5 $as_echo "$with_sysroot" >&6; } as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 $as_echo "${lt_sysroot:-no}" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5 $as_echo_n "checking for a working dd... " >&6; } if ${ac_cv_path_lt_DD+:} false; then : $as_echo_n "(cached) " >&6 else printf 0123456789abcdef0123456789abcdef >conftest.i cat conftest.i conftest.i >conftest2.i : ${lt_DD:=$DD} if test -z "$lt_DD"; then ac_path_lt_DD_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in dd; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_lt_DD="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_lt_DD" || continue if "$ac_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then cmp -s conftest.i conftest.out \ && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=: fi $ac_path_lt_DD_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_lt_DD"; then : fi else ac_cv_path_lt_DD=$lt_DD fi rm -f conftest.i conftest2.i conftest.out fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5 $as_echo "$ac_cv_path_lt_DD" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5 $as_echo_n "checking how to truncate binary pipes... " >&6; } if ${lt_cv_truncate_bin+:} false; then : $as_echo_n "(cached) " >&6 else printf 0123456789abcdef0123456789abcdef >conftest.i cat conftest.i conftest.i >conftest2.i lt_cv_truncate_bin= if "$ac_cv_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then cmp -s conftest.i conftest.out \ && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" fi rm -f conftest.i conftest2.i conftest.out test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q" fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5 $as_echo "$lt_cv_truncate_bin" >&6; } # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. func_cc_basename () { for cc_temp in $*""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` } # Check whether --enable-libtool-lock was given. if test "${enable_libtool_lock+set}" = set; then : enableval=$enable_libtool_lock; fi test no = "$enable_libtool_lock" || enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out what ABI is being produced by ac_compile, and set mode # options accordingly. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE=32 ;; *ELF-64*) HPUX_IA64_MODE=64 ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. echo '#line '$LINENO' "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then if test yes = "$lt_cv_prog_gnu_ld"; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; mips64*-*linux*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. echo '#line '$LINENO' "configure"' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then emul=elf case `/usr/bin/file conftest.$ac_objext` in *32-bit*) emul="${emul}32" ;; *64-bit*) emul="${emul}64" ;; esac case `/usr/bin/file conftest.$ac_objext` in *MSB*) emul="${emul}btsmip" ;; *LSB*) emul="${emul}ltsmip" ;; esac case `/usr/bin/file conftest.$ac_objext` in *N32*) emul="${emul}n32" ;; esac LD="${LD-ld} -m $emul" fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. Note that the listed cases only cover the # situations where additional linker options are needed (such as when # doing 32-bit compilation for a host where ld defaults to 64-bit, or # vice versa); the common cases where no linker options are needed do # not appear in the list. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) case `/usr/bin/file conftest.o` in *x86-64*) LD="${LD-ld} -m elf32_x86_64" ;; *) LD="${LD-ld} -m elf_i386" ;; esac ;; powerpc64le-*linux*) LD="${LD-ld} -m elf32lppclinux" ;; powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; powerpcle-*linux*) LD="${LD-ld} -m elf64lppc" ;; powerpc-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS=$CFLAGS CFLAGS="$CFLAGS -belf" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 $as_echo_n "checking whether the C compiler needs -belf... " >&6; } if ${lt_cv_cc_needs_belf+:} false; then : $as_echo_n "(cached) " >&6 else ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_cc_needs_belf=yes else lt_cv_cc_needs_belf=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 $as_echo "$lt_cv_cc_needs_belf" >&6; } if test yes != "$lt_cv_cc_needs_belf"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS=$SAVE_CFLAGS fi ;; *-*solaris*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. echo 'int i;' > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) case $host in i?86-*-solaris*|x86_64-*-solaris*) LD="${LD-ld} -m elf_x86_64" ;; sparc*-*-solaris*) LD="${LD-ld} -m elf64_sparc" ;; esac # GNU ld 2.21 introduced _sol2 emulations. Use them if available. if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then LD=${LD-ld}_sol2 fi ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks=$enable_libtool_lock if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. set dummy ${ac_tool_prefix}mt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$MANIFEST_TOOL"; then ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL if test -n "$MANIFEST_TOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 $as_echo "$MANIFEST_TOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_MANIFEST_TOOL"; then ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL # Extract the first word of "mt", so it can be a program name with args. set dummy mt; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_MANIFEST_TOOL"; then ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL if test -n "$ac_ct_MANIFEST_TOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 $as_echo "$ac_ct_MANIFEST_TOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_MANIFEST_TOOL" = x; then MANIFEST_TOOL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL fi else MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" fi test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 $as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } if ${lt_cv_path_mainfest_tool+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_path_mainfest_tool=no echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out cat conftest.err >&5 if $GREP 'Manifest Tool' conftest.out > /dev/null; then lt_cv_path_mainfest_tool=yes fi rm -f conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 $as_echo "$lt_cv_path_mainfest_tool" >&6; } if test yes != "$lt_cv_path_mainfest_tool"; then MANIFEST_TOOL=: fi case $host_os in rhapsody* | darwin*) if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_DSYMUTIL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$DSYMUTIL"; then ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi DSYMUTIL=$ac_cv_prog_DSYMUTIL if test -n "$DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 $as_echo "$DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_DSYMUTIL"; then ac_ct_DSYMUTIL=$DSYMUTIL # Extract the first word of "dsymutil", so it can be a program name with args. set dummy dsymutil; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_DSYMUTIL"; then ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL if test -n "$ac_ct_DSYMUTIL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 $as_echo "$ac_ct_DSYMUTIL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_DSYMUTIL" = x; then DSYMUTIL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac DSYMUTIL=$ac_ct_DSYMUTIL fi else DSYMUTIL="$ac_cv_prog_DSYMUTIL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. set dummy ${ac_tool_prefix}nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_NMEDIT+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$NMEDIT"; then ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi NMEDIT=$ac_cv_prog_NMEDIT if test -n "$NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 $as_echo "$NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_NMEDIT"; then ac_ct_NMEDIT=$NMEDIT # Extract the first word of "nmedit", so it can be a program name with args. set dummy nmedit; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_NMEDIT"; then ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_NMEDIT="nmedit" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT if test -n "$ac_ct_NMEDIT"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 $as_echo "$ac_ct_NMEDIT" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_NMEDIT" = x; then NMEDIT=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac NMEDIT=$ac_ct_NMEDIT fi else NMEDIT="$ac_cv_prog_NMEDIT" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. set dummy ${ac_tool_prefix}lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_LIPO+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$LIPO"; then ac_cv_prog_LIPO="$LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_LIPO="${ac_tool_prefix}lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi LIPO=$ac_cv_prog_LIPO if test -n "$LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 $as_echo "$LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_LIPO"; then ac_ct_LIPO=$LIPO # Extract the first word of "lipo", so it can be a program name with args. set dummy lipo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_LIPO+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_LIPO"; then ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_LIPO="lipo" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO if test -n "$ac_ct_LIPO"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 $as_echo "$ac_ct_LIPO" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_LIPO" = x; then LIPO=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac LIPO=$ac_ct_LIPO fi else LIPO="$ac_cv_prog_LIPO" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. set dummy ${ac_tool_prefix}otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL"; then ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OTOOL="${ac_tool_prefix}otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL=$ac_cv_prog_OTOOL if test -n "$OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 $as_echo "$OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL"; then ac_ct_OTOOL=$OTOOL # Extract the first word of "otool", so it can be a program name with args. set dummy otool; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OTOOL+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL"; then ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OTOOL="otool" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL if test -n "$ac_ct_OTOOL"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 $as_echo "$ac_ct_OTOOL" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL" = x; then OTOOL=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL=$ac_ct_OTOOL fi else OTOOL="$ac_cv_prog_OTOOL" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. set dummy ${ac_tool_prefix}otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_OTOOL64+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$OTOOL64"; then ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi OTOOL64=$ac_cv_prog_OTOOL64 if test -n "$OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 $as_echo "$OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_OTOOL64"; then ac_ct_OTOOL64=$OTOOL64 # Extract the first word of "otool64", so it can be a program name with args. set dummy otool64; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_OTOOL64"; then ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_OTOOL64="otool64" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 if test -n "$ac_ct_OTOOL64"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 $as_echo "$ac_ct_OTOOL64" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_OTOOL64" = x; then OTOOL64=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac OTOOL64=$ac_ct_OTOOL64 fi else OTOOL64="$ac_cv_prog_OTOOL64" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 $as_echo_n "checking for -single_module linker flag... " >&6; } if ${lt_cv_apple_cc_single_mod+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_apple_cc_single_mod=no if test -z "$LT_MULTI_MODULE"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&5 $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? # If there is a non-empty error log, and "single_module" # appears in it, assume the flag caused a linker warning if test -s conftest.err && $GREP single_module conftest.err; then cat conftest.err >&5 # Otherwise, if the output was created with a 0 exit code from # the compiler, it worked. elif test -f libconftest.dylib && test 0 = "$_lt_result"; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&5 fi rm -rf libconftest.dylib* rm -f conftest.* fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 $as_echo "$lt_cv_apple_cc_single_mod" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } if ${lt_cv_ld_exported_symbols_list+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_ld_exported_symbols_list=yes else lt_cv_ld_exported_symbols_list=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 $as_echo "$lt_cv_ld_exported_symbols_list" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 $as_echo_n "checking for -force_load linker flag... " >&6; } if ${lt_cv_ld_force_load+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 echo "$AR cru libconftest.a conftest.o" >&5 $AR cru libconftest.a conftest.o 2>&5 echo "$RANLIB libconftest.a" >&5 $RANLIB libconftest.a 2>&5 cat > conftest.c << _LT_EOF int main() { return 0;} _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? if test -s conftest.err && $GREP force_load conftest.err; then cat conftest.err >&5 elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then lt_cv_ld_force_load=yes else cat conftest.err >&5 fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 $as_echo "$lt_cv_ld_force_load" >&6; } case $host_os in rhapsody* | darwin1.[012]) _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[91]*) _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; 10.[012][,.]*) _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test yes = "$lt_cv_apple_cc_single_mod"; then _lt_dar_single_mod='$single_module' fi if test yes = "$lt_cv_ld_exported_symbols_list"; then _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib' fi if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac # func_munge_path_list VARIABLE PATH # ----------------------------------- # VARIABLE is name of variable containing _space_ separated list of # directories to be munged by the contents of PATH, which is string # having a format: # "DIR[:DIR]:" # string "DIR[ DIR]" will be prepended to VARIABLE # ":DIR[:DIR]" # string "DIR[ DIR]" will be appended to VARIABLE # "DIRP[:DIRP]::[DIRA:]DIRA" # string "DIRP[ DIRP]" will be prepended to VARIABLE and string # "DIRA[ DIRA]" will be appended to VARIABLE # "DIR[:DIR]" # VARIABLE will be replaced by "DIR[ DIR]" func_munge_path_list () { case x$2 in x) ;; *:) eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" ;; x:*) eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" ;; *::*) eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" ;; *) eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" ;; esac } ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if ${ac_cv_prog_CPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done for ac_header in dlfcn.h do : ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default " if test "x$ac_cv_header_dlfcn_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_DLFCN_H 1 _ACEOF fi done # Set options enable_dlopen=no enable_win32_dll=no # Check whether --enable-shared was given. if test "${enable_shared+set}" = set; then : enableval=$enable_shared; p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS=$lt_save_ifs ;; esac else enable_shared=yes fi # Check whether --enable-static was given. if test "${enable_static+set}" = set; then : enableval=$enable_static; p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS=$lt_save_ifs ;; esac else enable_static=yes fi # Check whether --with-pic was given. if test "${with_pic+set}" = set; then : withval=$with_pic; lt_p=${PACKAGE-default} case $withval in yes|no) pic_mode=$withval ;; *) pic_mode=default # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for lt_pkg in $withval; do IFS=$lt_save_ifs if test "X$lt_pkg" = "X$lt_p"; then pic_mode=yes fi done IFS=$lt_save_ifs ;; esac else pic_mode=default fi # Check whether --enable-fast-install was given. if test "${enable_fast_install+set}" = set; then : enableval=$enable_fast_install; p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS=$lt_save_ifs ;; esac else enable_fast_install=yes fi shared_archive_member_spec= case $host,$enable_shared in power*-*-aix[5-9]*,yes) { $as_echo "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5 $as_echo_n "checking which variant of shared library versioning to provide... " >&6; } # Check whether --with-aix-soname was given. if test "${with_aix_soname+set}" = set; then : withval=$with_aix_soname; case $withval in aix|svr4|both) ;; *) as_fn_error $? "Unknown argument to --with-aix-soname" "$LINENO" 5 ;; esac lt_cv_with_aix_soname=$with_aix_soname else if ${lt_cv_with_aix_soname+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_with_aix_soname=aix fi with_aix_soname=$lt_cv_with_aix_soname fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5 $as_echo "$with_aix_soname" >&6; } if test aix != "$with_aix_soname"; then # For the AIX way of multilib, we name the shared archive member # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File. # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag, # the AIX toolchain works better with OBJECT_MODE set (default 32). if test 64 = "${OBJECT_MODE-32}"; then shared_archive_member_spec=shr_64 else shared_archive_member_spec=shr fi fi ;; *) with_aix_soname=aix ;; esac # This can be used to rebuild libtool when needed LIBTOOL_DEPS=$ltmain # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' test -z "$LN_S" && LN_S="ln -s" if test -n "${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 $as_echo_n "checking for objdir... " >&6; } if ${lt_cv_objdir+:} false; then : $as_echo_n "(cached) " >&6 else rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 $as_echo "$lt_cv_objdir" >&6; } objdir=$lt_cv_objdir cat >>confdefs.h <<_ACEOF #define LT_OBJDIR "$lt_cv_objdir/" _ACEOF case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test set != "${COLLECT_NAMES+set}"; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a '.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld=$lt_cv_prog_gnu_ld old_CC=$CC old_CFLAGS=$CFLAGS # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o func_cc_basename $compiler cc_basename=$func_cc_basename_result # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 $as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } if ${lt_cv_path_MAGIC_CMD+:} false; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD=$MAGIC_CMD lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/${ac_tool_prefix}file"; then lt_cv_path_MAGIC_CMD=$ac_dir/"${ac_tool_prefix}file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD=$lt_cv_path_MAGIC_CMD if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS=$lt_save_ifs MAGIC_CMD=$lt_save_MAGIC_CMD ;; esac fi MAGIC_CMD=$lt_cv_path_MAGIC_CMD if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 $as_echo_n "checking for file... " >&6; } if ${lt_cv_path_MAGIC_CMD+:} false; then : $as_echo_n "(cached) " >&6 else case $MAGIC_CMD in [\\/*] | ?:[\\/]*) lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD=$MAGIC_CMD lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" for ac_dir in $ac_dummy; do IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/file"; then lt_cv_path_MAGIC_CMD=$ac_dir/"file" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD=$lt_cv_path_MAGIC_CMD if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS=$lt_save_ifs MAGIC_CMD=$lt_save_MAGIC_CMD ;; esac fi MAGIC_CMD=$lt_cv_path_MAGIC_CMD if test -n "$MAGIC_CMD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 $as_echo "$MAGIC_CMD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi else MAGIC_CMD=: fi fi fi ;; esac # Use C for the default configuration in the libtool script lt_save_CC=$CC ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o objext=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* if test -n "$compiler"; then lt_prog_compiler_no_builtin_flag= if test yes = "$GCC"; then case $cc_basename in nvcc*) lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; *) lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 $as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_rtti_exceptions=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-fno-rtti -fno-exceptions" ## exclude from sc_useless_quotes_in_assignment # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_rtti_exceptions=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 $as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } if test yes = "$lt_cv_prog_compiler_rtti_exceptions"; then lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" else : fi fi lt_prog_compiler_wl= lt_prog_compiler_pic= lt_prog_compiler_static= if test yes = "$GCC"; then lt_prog_compiler_wl='-Wl,' lt_prog_compiler_static='-static' case $host_os in aix*) # All AIX code is PIC. if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' fi lt_prog_compiler_pic='-fPIC' ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the '-m68020' flag to GCC prevents building anything better, # like '-m68040'. lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic='-DDLL_EXPORT' case $host_os in os2*) lt_prog_compiler_static='$wl-static' ;; esac ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. lt_prog_compiler_static= ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) lt_prog_compiler_pic='-fPIC' ;; esac ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. lt_prog_compiler_can_build_shared=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic=-Kconform_pic fi ;; *) lt_prog_compiler_pic='-fPIC' ;; esac case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 lt_prog_compiler_wl='-Xlinker ' if test -n "$lt_prog_compiler_pic"; then lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" fi ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) lt_prog_compiler_wl='-Wl,' if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor lt_prog_compiler_static='-Bstatic' else lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' fi ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic='-fno-common' case $cc_basename in nagfor*) # NAG Fortran compiler lt_prog_compiler_wl='-Wl,-Wl,,' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; esac ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic='-DDLL_EXPORT' case $host_os in os2*) lt_prog_compiler_static='$wl-static' ;; esac ;; hpux9* | hpux10* | hpux11*) lt_prog_compiler_wl='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? lt_prog_compiler_static='$wl-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) lt_prog_compiler_wl='-Wl,' # PIC (with -KPIC) is the default. lt_prog_compiler_static='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in # old Intel for x86_64, which still supported -KPIC. ecc*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; # Lahey Fortran 8.1. lf95*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='--shared' lt_prog_compiler_static='--static' ;; nagfor*) # NAG Fortran compiler lt_prog_compiler_wl='-Wl,-Wl,,' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; tcc*) # Fabrice Bellard et al's Tiny C Compiler lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; ccc*) lt_prog_compiler_wl='-Wl,' # All Alpha code is PIC. lt_prog_compiler_static='-non_shared' ;; xl* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-qpic' lt_prog_compiler_static='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) # Sun Fortran 8.3 passes all unrecognized flags to the linker lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='' ;; *Sun\ F* | *Sun*Fortran*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Qoption ld ' ;; *Sun\ C*) # Sun C 5.9 lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' lt_prog_compiler_wl='-Wl,' ;; *Intel*\ [CF]*Compiler*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fPIC' lt_prog_compiler_static='-static' ;; *Portland\ Group*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-fpic' lt_prog_compiler_static='-Bstatic' ;; esac ;; esac ;; newsos6) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic='-fPIC -shared' ;; osf3* | osf4* | osf5*) lt_prog_compiler_wl='-Wl,' # All OSF/1 code is PIC. lt_prog_compiler_static='-non_shared' ;; rdos*) lt_prog_compiler_static='-non_shared' ;; solaris*) lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) lt_prog_compiler_wl='-Qoption ld ';; *) lt_prog_compiler_wl='-Wl,';; esac ;; sunos4*) lt_prog_compiler_wl='-Qoption ld ' lt_prog_compiler_pic='-PIC' lt_prog_compiler_static='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic='-Kconform_pic' lt_prog_compiler_static='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_pic='-KPIC' lt_prog_compiler_static='-Bstatic' ;; unicos*) lt_prog_compiler_wl='-Wl,' lt_prog_compiler_can_build_shared=no ;; uts4*) lt_prog_compiler_pic='-pic' lt_prog_compiler_static='-Bstatic' ;; *) lt_prog_compiler_can_build_shared=no ;; esac fi case $host_os in # For platforms that do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic= ;; *) lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&6; } if ${lt_cv_prog_compiler_pic+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic=$lt_prog_compiler_pic fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 $as_echo "$lt_cv_prog_compiler_pic" >&6; } lt_prog_compiler_pic=$lt_cv_prog_compiler_pic # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } if ${lt_cv_prog_compiler_pic_works+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic -DPIC" ## exclude from sc_useless_quotes_in_assignment # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 $as_echo "$lt_cv_prog_compiler_pic_works" >&6; } if test yes = "$lt_cv_prog_compiler_pic_works"; then case $lt_prog_compiler_pic in "" | " "*) ;; *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; esac else lt_prog_compiler_pic= lt_prog_compiler_can_build_shared=no fi fi # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if ${lt_cv_prog_compiler_static_works+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works=no save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works=yes fi else lt_cv_prog_compiler_static_works=yes fi fi $RM -r conftest* LDFLAGS=$save_LDFLAGS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 $as_echo "$lt_cv_prog_compiler_static_works" >&6; } if test yes = "$lt_cv_prog_compiler_static_works"; then : else lt_prog_compiler_static= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 $as_echo "$lt_cv_prog_compiler_c_o" >&6; } hard_links=nottested if test no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; then # do not overwrite the value of need_locks provided by the user { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } if test no = "$hard_links"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5 $as_echo "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } runpath_var= allow_undefined_flag= always_export_symbols=no archive_cmds= archive_expsym_cmds= compiler_needs_object=no enable_shared_with_static_runtimes=no export_dynamic_flag_spec= export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' hardcode_automatic=no hardcode_direct=no hardcode_direct_absolute=no hardcode_libdir_flag_spec= hardcode_libdir_separator= hardcode_minus_L=no hardcode_shlibpath_var=unsupported inherit_rpath=no link_all_deplibs=unknown module_cmds= module_expsym_cmds= old_archive_from_new_cmds= old_archive_from_expsyms_cmds= thread_safe_flag_spec= whole_archive_flag_spec= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list include_expsyms= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ' (' and ')$', so one must not match beginning or # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc', # as well as any symbol that contains 'd'. exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test yes != "$GCC"; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd* | bitrig*) with_gnu_ld=no ;; esac ld_shlibs=yes # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no if test yes = "$with_gnu_ld"; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility # with the native linker. However, as the warning in the GNU ld # block says, versions before 2.19.5* couldn't really create working # shared libraries, regardless of the interface used. case `$LD -v 2>&1` in *\ \(GNU\ Binutils\)\ 2.19.5*) ;; *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; *\ \(GNU\ Binutils\)\ [3-9]*) ;; *) lt_use_gnu_ld_interface=yes ;; esac ;; *) lt_use_gnu_ld_interface=yes ;; esac fi if test yes = "$lt_use_gnu_ld_interface"; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='$wl' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' export_dynamic_flag_spec='$wl--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then whole_archive_flag_spec=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' else whole_archive_flag_spec= fi supports_anon_versioning=no case `$LD -v | $SED -e 's/(^)\+)\s\+//' 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[3-9]*) # On AIX/PPC, the GNU linker is very broken if test ia64 != "$host_cpu"; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.19, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to install binutils *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. *** You will then need to restart the configuration process. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then allow_undefined_flag=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' else ld_shlibs=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec='-L$libdir' export_dynamic_flag_spec='$wl--export-all-symbols' allow_undefined_flag=unsupported always_export_symbols=no enable_shared_with_static_runtimes=yes export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file, use it as # is; otherwise, prepend EXPORTS... archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs=no fi ;; haiku*) archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' link_all_deplibs=yes ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported shrext_cmds=.dll archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; fi~ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' enable_shared_with_static_runtimes=yes ;; interix[3-9]*) hardcode_direct=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='$wl-rpath,$libdir' export_dynamic_flag_spec='$wl-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test linux-dietlibc = "$host_os"; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test no = "$tmp_diet" then tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group f77 and f90 compilers whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 whole_archive_flag_spec= tmp_sharedflag='--shared' ;; nagfor*) # NAGFOR 5.3 tmp_sharedflag='-Wl,-shared' ;; xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' compiler_needs_object=yes ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 whole_archive_flag_spec='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' compiler_needs_object=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' if test yes = "$supports_anon_versioning"; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' fi case $cc_basename in tcc*) export_dynamic_flag_spec='-rdynamic' ;; xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test yes = "$supports_anon_versioning"; then archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else ld_shlibs=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) ld_shlibs=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac ;; sunos4*) archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= hardcode_direct=yes hardcode_shlibpath_var=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else ld_shlibs=no fi ;; esac if test no = "$ld_shlibs"; then runpath_var= hardcode_libdir_flag_spec= export_dynamic_flag_spec= whole_archive_flag_spec= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) allow_undefined_flag=unsupported always_export_symbols=yes archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. hardcode_minus_L=yes if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. hardcode_direct=unsupported fi ;; aix[4-9]*) if test ia64 = "$host_cpu"; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag= else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to GNU nm, but means don't demangle to AIX nm. # Without the "-l" option, or with the "-B" option, AIX nm treats # weak defined symbols like other global defined symbols, whereas # GNU nm marks them as "W". # While the 'weak' keyword is ignored in the Export File, we need # it in the Import File for the 'aix-soname' feature, so we have # to replace the "-B" option with "-P" for AIX nm. if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # have runtime linking enabled, and use it for executables. # For shared libraries, we enable/disable runtime linking # depending on the kind of the shared library created - # when "with_aix_soname,aix_use_runtimelinking" is: # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables # "aix,yes" lib.so shared, rtl:yes, for executables # lib.a static archive # "both,no" lib.so.V(shr.o) shared, rtl:yes # lib.a(lib.so.V) shared, rtl:no, for executables # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a(lib.so.V) shared, rtl:no # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a static archive case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then aix_use_runtimelinking=yes break fi done if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then # With aix-soname=svr4, we create the lib.so.V shared archives only, # so we don't have lib.a shared libs to link our executables. # We have to force runtime linking in this case. aix_use_runtimelinking=yes LDFLAGS="$LDFLAGS -Wl,-brtl" fi ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds='' hardcode_direct=yes hardcode_direct_absolute=yes hardcode_libdir_separator=':' link_all_deplibs=yes file_list_spec='$wl-f,' case $with_aix_soname,$aix_use_runtimelinking in aix,*) ;; # traditional, no import file svr4,* | *,yes) # use import file # The Import File defines what to hardcode. hardcode_direct=no hardcode_direct_absolute=no ;; esac if test yes = "$GCC"; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`$CC -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L=yes hardcode_libdir_flag_spec='-L$libdir' hardcode_libdir_separator= fi ;; esac shared_flag='-shared' if test yes = "$aix_use_runtimelinking"; then shared_flag="$shared_flag "'$wl-G' fi # Need to ensure runtime linking is disabled for the traditional # shared library, or the linker may eventually find shared libraries # /with/ Import File - we do not want to mix them. shared_flag_aix='-shared' shared_flag_svr4='-shared $wl-G' else # not using gcc if test ia64 = "$host_cpu"; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test yes = "$aix_use_runtimelinking"; then shared_flag='$wl-G' else shared_flag='$wl-bM:SRE' fi shared_flag_aix='$wl-bM:SRE' shared_flag_svr4='$wl-G' fi fi export_dynamic_flag_spec='$wl-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. always_export_symbols=yes if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. allow_undefined_flag='-berok' # Determine the default libpath from the value encoded in an # empty executable. if test set = "${lt_cv_aix_libpath+set}"; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath_+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=/usr/lib:/lib fi fi aix_libpath=$lt_cv_aix_libpath_ fi hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag else if test ia64 = "$host_cpu"; then hardcode_libdir_flag_spec='$wl-R $libdir:/usr/lib:/lib' allow_undefined_flag="-z nodefs" archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. if test set = "${lt_cv_aix_libpath+set}"; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath_+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath_"; then lt_cv_aix_libpath_=/usr/lib:/lib fi fi aix_libpath=$lt_cv_aix_libpath_ fi hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag=' $wl-bernotok' allow_undefined_flag=' $wl-berok' if test yes = "$with_gnu_ld"; then # We only use this code for GNU lds that support --whole-archive. whole_archive_flag_spec='$wl--whole-archive$convenience $wl--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec='$convenience' fi archive_cmds_need_lc=yes archive_expsym_cmds='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' # -brtl affects multiple linker settings, -berok does not and is overridden later compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`' if test svr4 != "$with_aix_soname"; then # This is similar to how AIX traditionally builds its shared libraries. archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' fi if test aix != "$with_aix_soname"; then archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' else # used by -dlpreopen to get the symbols archive_expsym_cmds="$archive_expsym_cmds"'~$MV $output_objdir/$realname.d/$soname $output_objdir' fi archive_expsym_cmds="$archive_expsym_cmds"'~$RM -r $output_objdir/$realname.d' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds='' ;; m68k) archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes ;; esac ;; bsdi[45]*) export_dynamic_flag_spec=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. case $cc_basename in cl*) # Native MSVC hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported always_export_symbols=yes file_list_spec='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=.dll # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then cp "$export_symbols" "$output_objdir/$soname.def"; echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; else $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, )='true' enable_shared_with_static_runtimes=yes exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' # Don't use ranlib old_postinstall_cmds='chmod 644 $oldlib' postlink_cmds='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile=$lt_outputfile.exe lt_tool_outputfile=$lt_tool_outputfile.exe ;; esac~ if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # Assume MSVC wrapper hardcode_libdir_flag_spec=' ' allow_undefined_flag=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=.dll # FIXME: Setting linknames here is a bad hack. archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. old_archive_from_new_cmds='true' # FIXME: Should let the user specify the lib program. old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' enable_shared_with_static_runtimes=yes ;; esac ;; darwin* | rhapsody*) archive_cmds_need_lc=no hardcode_direct=no hardcode_automatic=yes hardcode_shlibpath_var=unsupported if test yes = "$lt_cv_ld_force_load"; then whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' else whole_archive_flag_spec='' fi link_all_deplibs=yes allow_undefined_flag=$_lt_dar_allow_undefined case $cc_basename in ifort*|nagfor*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test yes = "$_lt_dar_can_shared"; then output_verbose_link_cmd=func_echo_all archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" archive_expsym_cmds="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" module_expsym_cmds="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" else ld_shlibs=no fi ;; dgux*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2.*) archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; hpux9*) if test yes = "$GCC"; then archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' else archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' fi hardcode_libdir_flag_spec='$wl+b $wl$libdir' hardcode_libdir_separator=: hardcode_direct=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes export_dynamic_flag_spec='$wl-E' ;; hpux10*) if test yes,no = "$GCC,$with_gnu_ld"; then archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test no = "$with_gnu_ld"; then hardcode_libdir_flag_spec='$wl+b $wl$libdir' hardcode_libdir_separator=: hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='$wl-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes fi ;; hpux11*) if test yes,no = "$GCC,$with_gnu_ld"; then case $host_cpu in hppa*64*) archive_cmds='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) archive_cmds='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) archive_cmds='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) # Older versions of the 11.00 compiler do not understand -b yet # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 $as_echo_n "checking if $CC understands -b... " >&6; } if ${lt_cv_prog_compiler__b+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler__b=no save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -b" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler__b=yes fi else lt_cv_prog_compiler__b=yes fi fi $RM -r conftest* LDFLAGS=$save_LDFLAGS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 $as_echo "$lt_cv_prog_compiler__b" >&6; } if test yes = "$lt_cv_prog_compiler__b"; then archive_cmds='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi ;; esac fi if test no = "$with_gnu_ld"; then hardcode_libdir_flag_spec='$wl+b $wl$libdir' hardcode_libdir_separator=: case $host_cpu in hppa*64*|ia64*) hardcode_direct=no hardcode_shlibpath_var=no ;; *) hardcode_direct=yes hardcode_direct_absolute=yes export_dynamic_flag_spec='$wl-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. hardcode_minus_L=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test yes = "$GCC"; then archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. # This should be the same for all languages, so no per-tag cache variable. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 $as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } if ${lt_cv_irix_exported_symbol+:} false; then : $as_echo_n "(cached) " >&6 else save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int foo (void) { return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : lt_cv_irix_exported_symbol=yes else lt_cv_irix_exported_symbol=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 $as_echo "$lt_cv_irix_exported_symbol" >&6; } if test yes = "$lt_cv_irix_exported_symbol"; then archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' fi else archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' hardcode_libdir_separator=: inherit_rpath=yes link_all_deplibs=yes ;; linux*) case $cc_basename in tcc*) # Fabrice Bellard et al's Tiny C Compiler ld_shlibs=yes archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi hardcode_libdir_flag_spec='-R$libdir' hardcode_direct=yes hardcode_shlibpath_var=no ;; newsos6) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' hardcode_libdir_separator=: hardcode_shlibpath_var=no ;; *nto* | *qnx*) ;; openbsd* | bitrig*) if test -f /usr/libexec/ld.so; then hardcode_direct=yes hardcode_shlibpath_var=no hardcode_direct_absolute=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols' hardcode_libdir_flag_spec='$wl-rpath,$libdir' export_dynamic_flag_spec='$wl-E' else archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' hardcode_libdir_flag_spec='$wl-rpath,$libdir' fi else ld_shlibs=no fi ;; os2*) hardcode_libdir_flag_spec='-L$libdir' hardcode_minus_L=yes allow_undefined_flag=unsupported shrext_cmds=.dll archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; fi~ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' enable_shared_with_static_runtimes=yes ;; osf3*) if test yes = "$GCC"; then allow_undefined_flag=' $wl-expect_unresolved $wl\*' archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' fi archive_cmds_need_lc='no' hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' hardcode_libdir_separator=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test yes = "$GCC"; then allow_undefined_flag=' $wl-expect_unresolved $wl\*' archive_cmds='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' else allow_undefined_flag=' -expect_unresolved \*' archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly hardcode_libdir_flag_spec='-rpath $libdir' fi archive_cmds_need_lc='no' hardcode_libdir_separator=: ;; solaris*) no_undefined_flag=' -z defs' if test yes = "$GCC"; then wlarc='$wl' archive_cmds='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' archive_cmds='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='$wl' archive_cmds='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi hardcode_libdir_flag_spec='-R$libdir' hardcode_shlibpath_var=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands '-z linker_flag'. GCC discards it without '$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test yes = "$GCC"; then whole_archive_flag_spec='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' else whole_archive_flag_spec='-z allextract$convenience -z defaultextract' fi ;; esac link_all_deplibs=yes ;; sunos4*) if test sequent = "$host_vendor"; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. archive_cmds='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi hardcode_libdir_flag_spec='-L$libdir' hardcode_direct=yes hardcode_minus_L=yes hardcode_shlibpath_var=no ;; sysv4) case $host_vendor in sni) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' reload_cmds='$CC -r -o $output$reload_objs' hardcode_direct=no ;; motorola) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_direct=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' hardcode_shlibpath_var=no ;; sysv4.3*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no export_dynamic_flag_spec='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_shlibpath_var=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes ld_shlibs=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag='$wl-z,text' archive_cmds_need_lc=no hardcode_shlibpath_var=no runpath_var='LD_RUN_PATH' if test yes = "$GCC"; then archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We CANNOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag='$wl-z,text' allow_undefined_flag='$wl-z,nodefs' archive_cmds_need_lc=no hardcode_shlibpath_var=no hardcode_libdir_flag_spec='$wl-R,$libdir' hardcode_libdir_separator=':' link_all_deplibs=yes export_dynamic_flag_spec='$wl-Bexport' runpath_var='LD_RUN_PATH' if test yes = "$GCC"; then archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' hardcode_libdir_flag_spec='-L$libdir' hardcode_shlibpath_var=no ;; *) ld_shlibs=no ;; esac if test sni = "$host_vendor"; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) export_dynamic_flag_spec='$wl-Blargedynsym' ;; esac fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 $as_echo "$ld_shlibs" >&6; } test no = "$ld_shlibs" && can_build_shared=no with_gnu_ld=$with_gnu_ld # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc" in x|xyes) # Assume -lc should be added archive_cmds_need_lc=yes if test yes,yes = "$GCC,$enable_shared"; then case $archive_cmds in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } if ${lt_cv_archive_cmds_need_lc+:} false; then : $as_echo_n "(cached) " >&6 else $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl pic_flag=$lt_prog_compiler_pic compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag allow_undefined_flag= if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then lt_cv_archive_cmds_need_lc=no else lt_cv_archive_cmds_need_lc=yes fi allow_undefined_flag=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 $as_echo "$lt_cv_archive_cmds_need_lc" >&6; } archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc ;; esac fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } if test yes = "$GCC"; then case $host_os in darwin*) lt_awk_arg='/^libraries:/,/LR/' ;; *) lt_awk_arg='/^libraries:/' ;; esac case $host_os in mingw* | cegcc*) lt_sed_strip_eq='s|=\([A-Za-z]:\)|\1|g' ;; *) lt_sed_strip_eq='s|=/|/|g' ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in *\;*) # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` ;; *) lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ;; esac # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary... lt_tmp_lt_search_path_spec= lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` # ...but if some path component already ends with the multilib dir we assume # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer). case "$lt_multi_os_dir; $lt_search_path_spec " in "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*) lt_multi_os_dir= ;; esac for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir" elif test -n "$lt_multi_os_dir"; then test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' BEGIN {RS = " "; FS = "/|\n";} { lt_foo = ""; lt_count = 0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo = "/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[lt_foo]++; } if (lt_freq[lt_foo] == 1) { print lt_foo; } }'` # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's|/\([A-Za-z]:\)|\1|g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=.so postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='$libname$release$shared_ext$major' ;; aix[4-9]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes if test ia64 = "$host_cpu"; then # AIX 5 supports IA64 library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line '#! .'. This would cause the generated library to # depend on '.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # Using Import Files as archive members, it is possible to support # filename-based versioning of shared library archives on AIX. While # this would work for both with and without runtime linking, it will # prevent static linking of such archives. So we do filename-based # shared library versioning with .so extension only, which is used # when both runtime linking and shared linking is enabled. # Unfortunately, runtime linking may impact performance, so we do # not want this to be the default eventually. Also, we use the # versioned .so libs for executables only if there is the -brtl # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. # To allow for filename-based versioning support, we need to create # libNAME.so.V as an archive file, containing: # *) an Import File, referring to the versioned filename of the # archive as well as the shared archive member, telling the # bitwidth (32 or 64) of that shared object, and providing the # list of exported symbols of that shared object, eventually # decorated with the 'weak' keyword # *) the shared object with the F_LOADONLY flag set, to really avoid # it being seen by the linker. # At run time we better use the real file rather than another symlink, # but for link time we create the symlink libNAME.so -> libNAME.so.V case $with_aix_soname,$aix_use_runtimelinking in # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. aix,yes) # traditional libtool dynamic_linker='AIX unversionable lib.so' # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ;; aix,no) # traditional AIX only dynamic_linker='AIX lib.a(lib.so.V)' # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='$libname$release.a $libname.a' soname_spec='$libname$release$shared_ext$major' ;; svr4,*) # full svr4 only dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)" library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' # We do not specify a path in Import Files, so LIBPATH fires. shlibpath_overrides_runpath=yes ;; *,yes) # both, prefer svr4 dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)" library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' # unpreferred sharedlib libNAME.a needs extra handling postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' # We do not specify a path in Import Files, so LIBPATH fires. shlibpath_overrides_runpath=yes ;; *,no) # both, prefer aix dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)" library_names_spec='$libname$release.a $libname.a' soname_spec='$libname$release$shared_ext$major' # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' ;; esac shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='$libname$shared_ext' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux # correct to gnu/linux during the next big refactor need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=.dll need_version=no need_lib_prefix=no case $GCC,$cc_basename in yes,*) # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ;; esac dynamic_linker='Win32 ld.exe' ;; *,cl*) # Native MSVC libname_spec='$name' soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' library_names_spec='$libname.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec=$LIB if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC wrapper library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='$libname$release$major$shared_ext $libname$shared_ext' soname_spec='$libname$release$major$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[23].*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; haiku*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LIBRARY_PATH shlibpath_overrides_runpath=no sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' if test 32 = "$HPUX_IA64_MODE"; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" sys_lib_dlsearch_path_spec=/usr/lib/hpux32 else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" sys_lib_dlsearch_path_spec=/usr/lib/hpux64 fi ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' # or fails outright, so override atomically: install_override_mode=555 ;; interix[3-9]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test yes = "$lt_cv_prog_gnu_ld"; then version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='$libname$release$shared_ext$major' library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff" sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; linux*android*) version_type=none # Android doesn't support versioned libraries. need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext' soname_spec='$libname$release$shared_ext' finish_cmds= shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes dynamic_linker='Android linker' # Don't embed -rpath directories since the linker doesn't support them. hardcode_libdir_flag_spec='-L$libdir' ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH if ${lt_cv_shlibpath_overrides_runpath+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : lt_cv_shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir fi shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Ideally, we could use ldconfig to report *all* directores which are # searched for libraries, however this is still not possible. Aside from not # being certain /sbin/ldconfig is available, command # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, # even though it is searched at run-time. Try to do the best guess by # appending ld.so.conf contents (and includes) to the search path. if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd* | bitrig*) version_type=sunos sys_lib_dlsearch_path_spec=/usr/lib need_lib_prefix=no if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then need_version=no else need_version=yes fi library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; os2*) libname_spec='$name' version_type=windows shrext_cmds=.dll need_version=no need_lib_prefix=no # OS/2 can only load a DLL with a base name of 8 characters or less. soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; v=$($ECHO $release$versuffix | tr -d .-); n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); $ECHO $n$v`$shared_ext' library_names_spec='${libname}_dll.$libext' dynamic_linker='OS/2 ld.exe' shlibpath_var=BEGINLIBPATH sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='$libname$release$shared_ext$major' library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test yes = "$with_gnu_ld"; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec; then version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext' soname_spec='$libname$shared_ext.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=sco need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test yes = "$with_gnu_ld"; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 $as_echo "$dynamic_linker" >&6; } test no = "$dynamic_linker" && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test yes = "$GCC"; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec fi if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec fi # remember unaugmented sys_lib_dlsearch_path content for libtool script decls... configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec # ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" # to be used as default LT_SYS_LIBRARY_PATH value in generated libtool configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action= if test -n "$hardcode_libdir_flag_spec" || test -n "$runpath_var" || test yes = "$hardcode_automatic"; then # We can hardcode non-existent directories. if test no != "$hardcode_direct" && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, )" && test no != "$hardcode_minus_L"; then # Linking always hardcodes the temporary library directory. hardcode_action=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action=unsupported fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 $as_echo "$hardcode_action" >&6; } if test relink = "$hardcode_action" || test yes = "$inherit_rpath"; then # Fast installation is not supported enable_fast_install=no elif test yes = "$shlibpath_overrides_runpath" || test no = "$enable_shared"; then # Fast installation is not necessary enable_fast_install=needless fi if test yes != "$enable_dlopen"; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen=load_add_on lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen=LoadLibrary lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen=dlopen lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if ${ac_cv_lib_dl_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = xyes; then : lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl else lt_cv_dlopen=dyld lt_cv_dlopen_libs= lt_cv_dlopen_self=yes fi ;; tpf*) # Don't try to run any link tests for TPF. We know it's impossible # because TPF is a cross-compiler, and we know how we open DSOs. lt_cv_dlopen=dlopen lt_cv_dlopen_libs= lt_cv_dlopen_self=no ;; *) ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" if test "x$ac_cv_func_shl_load" = xyes; then : lt_cv_dlopen=shl_load else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 $as_echo_n "checking for shl_load in -ldld... " >&6; } if ${ac_cv_lib_dld_shl_load+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char shl_load (); int main () { return shl_load (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_shl_load=yes else ac_cv_lib_dld_shl_load=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 $as_echo "$ac_cv_lib_dld_shl_load" >&6; } if test "x$ac_cv_lib_dld_shl_load" = xyes; then : lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld else ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" if test "x$ac_cv_func_dlopen" = xyes; then : lt_cv_dlopen=dlopen else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 $as_echo_n "checking for dlopen in -ldl... " >&6; } if ${ac_cv_lib_dl_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dl_dlopen=yes else ac_cv_lib_dl_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 $as_echo "$ac_cv_lib_dl_dlopen" >&6; } if test "x$ac_cv_lib_dl_dlopen" = xyes; then : lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 $as_echo_n "checking for dlopen in -lsvld... " >&6; } if ${ac_cv_lib_svld_dlopen+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lsvld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dlopen (); int main () { return dlopen (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_svld_dlopen=yes else ac_cv_lib_svld_dlopen=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 $as_echo "$ac_cv_lib_svld_dlopen" >&6; } if test "x$ac_cv_lib_svld_dlopen" = xyes; then : lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 $as_echo_n "checking for dld_link in -ldld... " >&6; } if ${ac_cv_lib_dld_dld_link+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-ldld $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char dld_link (); int main () { return dld_link (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_dld_dld_link=yes else ac_cv_lib_dld_dld_link=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 $as_echo "$ac_cv_lib_dld_dld_link" >&6; } if test "x$ac_cv_lib_dld_dld_link" = xyes; then : lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld fi fi fi fi fi fi ;; esac if test no = "$lt_cv_dlopen"; then enable_dlopen=no else enable_dlopen=yes fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS=$CPPFLAGS test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS=$LDFLAGS wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS=$LIBS LIBS="$lt_cv_dlopen_libs $LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 $as_echo_n "checking whether a program can dlopen itself... " >&6; } if ${lt_cv_dlopen_self+:} false; then : $as_echo_n "(cached) " >&6 else if test yes = "$cross_compiling"; then : lt_cv_dlopen_self=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisibility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; esac else : # compilation failed lt_cv_dlopen_self=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 $as_echo "$lt_cv_dlopen_self" >&6; } if test yes = "$lt_cv_dlopen_self"; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } if ${lt_cv_dlopen_self_static+:} false; then : $as_echo_n "(cached) " >&6 else if test yes = "$cross_compiling"; then : lt_cv_dlopen_self_static=cross else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF #line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisibility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; } _LT_EOF if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 (eval $ac_link) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then (./conftest; exit; ) >&5 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; esac else : # compilation failed lt_cv_dlopen_self_static=no fi fi rm -fr conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 $as_echo "$lt_cv_dlopen_self_static" >&6; } fi CPPFLAGS=$save_CPPFLAGS LDFLAGS=$save_LDFLAGS LIBS=$save_LIBS ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi striplib= old_striplib= { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 $as_echo_n "checking whether stripping libraries is possible... " >&6; } if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP"; then striplib="$STRIP -x" old_striplib="$STRIP -S" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } ;; esac fi # Report what library types will actually be built { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 $as_echo_n "checking if libtool supports shared libraries... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 $as_echo "$can_build_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 $as_echo_n "checking whether to build shared libraries... " >&6; } test no = "$can_build_shared" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test yes = "$enable_shared" && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[4-9]*) if test ia64 != "$host_cpu"; then case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in yes,aix,yes) ;; # shared object as lib.so file only yes,svr4,*) ;; # shared object as lib.so archive member only yes,*) enable_static=no ;; # shared object in lib.a archive as well esac fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 $as_echo "$enable_shared" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 $as_echo_n "checking whether to build static libraries... " >&6; } # Make sure either enable_shared or enable_static is yes. test yes = "$enable_shared" || enable_static=yes { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 $as_echo "$enable_static" >&6; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu CC=$lt_save_CC ac_config_commands="$ac_config_commands libtool" # Only expand once: # Break package version up into major, minor and bugfix components. MYSQLPP_VERSION_MAJOR=`echo $PACKAGE_VERSION | cut -f1 -d.` MYSQLPP_VERSION_MINOR=`echo $PACKAGE_VERSION | cut -f2 -d.` MYSQLPP_VERSION_BUGFIX=`echo $PACKAGE_VERSION | cut -f3 -d.` # Check for Standard C support ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi # Figure out whether/how to handle threading support, if available. # Check whether --enable-thread-check was given. if test "${enable_thread_check+set}" = set; then : enableval=$enable_thread_check; thread_check=yes fi if test "x$thread_check" = "xyes" then ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu acx_pthread_ok=no # We used to check for pthread.h first, but this fails if pthread.h # requires special compiler flags (e.g. on True64 or Sequent). # It gets checked for in the link test anyway. # First of all, check if the user has set any of the PTHREAD_LIBS, # etcetera environment variables, and if threads linking works using # them: if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" save_LIBS="$LIBS" LIBS="$PTHREAD_LIBS $LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS" >&5 $as_echo_n "checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char pthread_join (); int main () { return pthread_join (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : acx_pthread_ok=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_pthread_ok" >&5 $as_echo "$acx_pthread_ok" >&6; } if test x"$acx_pthread_ok" = xno; then PTHREAD_LIBS="" PTHREAD_CFLAGS="" fi LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" fi # We must check for the threads library under a number of different # names; the ordering is very important because some systems # (e.g. DEC) have both -lpthread and -lpthreads, where one of the # libraries is broken (non-POSIX). # Create a list of thread flags to try. Items starting with a "-" are # C compiler flags, and other items are library names, except for "none" # which indicates that we try without any flags at all, and "pthread-config" # which is a program returning the flags for the Pth emulation library. acx_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" # The ordering *is* (sometimes) important. Some notes on the # individual items follow: # pthreads: AIX (must check this before -lpthread) # none: in case threads are in libc; should be tried before -Kthread and # other compiler flags to prevent continual compiler warnings # -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) # -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) # lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) # -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads) # -pthreads: Solaris/gcc # -mthreads: Mingw32/gcc, Lynx/gcc # -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it # doesn't hurt to check since this sometimes defines pthreads too; # also defines -D_REENTRANT) # ... -mt is also the pthreads flag for HP/aCC # pthread: Linux, etcetera # --thread-safe: KAI C++ # pthread-config: use pthread-config program (for GNU Pth library) case "${host_cpu}-${host_os}" in *solaris*) # On Solaris (at least, for some versions), libc contains stubbed # (non-functional) versions of the pthreads routines, so link-based # tests will erroneously succeed. (We need to link with -pthreads/-mt/ # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather # a function called by this macro, so we could check for that, but # who knows whether they'll stub that too in a future libc.) So, # we'll just look for -pthreads and -lpthread first: acx_pthread_flags="-pthreads pthread -mt -pthread $acx_pthread_flags" ;; esac if test x"$acx_pthread_ok" = xno; then for flag in $acx_pthread_flags; do case $flag in none) { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work without any flags" >&5 $as_echo_n "checking whether pthreads work without any flags... " >&6; } ;; -*) { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work with $flag" >&5 $as_echo_n "checking whether pthreads work with $flag... " >&6; } PTHREAD_CFLAGS="$flag" ;; pthread-config) # Extract the first word of "pthread-config", so it can be a program name with args. set dummy pthread-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_acx_pthread_config+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$acx_pthread_config"; then ac_cv_prog_acx_pthread_config="$acx_pthread_config" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_acx_pthread_config="yes" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_acx_pthread_config" && ac_cv_prog_acx_pthread_config="no" fi fi acx_pthread_config=$ac_cv_prog_acx_pthread_config if test -n "$acx_pthread_config"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_pthread_config" >&5 $as_echo "$acx_pthread_config" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test x"$acx_pthread_config" = xno; then continue; fi PTHREAD_CFLAGS="`pthread-config --cflags`" PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" ;; *) { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the pthreads library -l$flag" >&5 $as_echo_n "checking for the pthreads library -l$flag... " >&6; } PTHREAD_LIBS="-l$flag" ;; esac save_LIBS="$LIBS" save_CFLAGS="$CFLAGS" LIBS="$PTHREAD_LIBS $LIBS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" # Check for various functions. We must include pthread.h, # since some functions may be macros. (On the Sequent, we # need a special flag -Kthread to make this header compile.) # We check for pthread_join because it is in -lpthread on IRIX # while pthread_create is in libc. We check for pthread_attr_init # due to DEC craziness with -lpthreads. We check for # pthread_cleanup_push because it is one of the few pthread # functions on Solaris that doesn't have a non-functional libc stub. # We try pthread_create on general principles. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { pthread_t th; pthread_join(th, 0); pthread_attr_init(0); pthread_cleanup_push(0, 0); pthread_create(0,0,0,0); pthread_cleanup_pop(0); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : acx_pthread_ok=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $acx_pthread_ok" >&5 $as_echo "$acx_pthread_ok" >&6; } if test "x$acx_pthread_ok" = xyes; then break; fi PTHREAD_LIBS="" PTHREAD_CFLAGS="" done fi # Various other checks: if test "x$acx_pthread_ok" = xyes; then save_LIBS="$LIBS" LIBS="$PTHREAD_LIBS $LIBS" save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" # Detect AIX lossage: JOINABLE attribute is called UNDETACHED. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for joinable pthread attribute" >&5 $as_echo_n "checking for joinable pthread attribute... " >&6; } attr_name=unknown for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { int attr=$attr; return attr; ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : attr_name=$attr; break fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext done { $as_echo "$as_me:${as_lineno-$LINENO}: result: $attr_name" >&5 $as_echo "$attr_name" >&6; } if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then cat >>confdefs.h <<_ACEOF #define PTHREAD_CREATE_JOINABLE $attr_name _ACEOF fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if more special flags are required for pthreads" >&5 $as_echo_n "checking if more special flags are required for pthreads... " >&6; } flag=no case "${host_cpu}-${host_os}" in *-aix* | *-freebsd* | *-darwin*) flag="-D_THREAD_SAFE";; *solaris* | *-osf* | *-hpux*) flag="-D_REENTRANT";; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${flag}" >&5 $as_echo "${flag}" >&6; } if test "x$flag" != xno; then PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS" fi LIBS="$save_LIBS" CFLAGS="$save_CFLAGS" # More AIX lossage: must compile with xlc_r or cc_r if test x"$GCC" != xyes; then for ac_prog in xlc_r cc_r do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_PTHREAD_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$PTHREAD_CC"; then ac_cv_prog_PTHREAD_CC="$PTHREAD_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_PTHREAD_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi PTHREAD_CC=$ac_cv_prog_PTHREAD_CC if test -n "$PTHREAD_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PTHREAD_CC" >&5 $as_echo "$PTHREAD_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$PTHREAD_CC" && break done test -n "$PTHREAD_CC" || PTHREAD_CC="${CC}" else PTHREAD_CC=$CC fi else PTHREAD_CC="$CC" fi # Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: if test x"$acx_pthread_ok" = xyes; then $as_echo "#define HAVE_PTHREAD 1" >>confdefs.h : else acx_pthread_ok=no fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu LIBS="$PTHREAD_LIBS $LIBS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" CC="$PTHREAD_CC" for ac_header in synch.h do : ac_fn_c_check_header_mongrel "$LINENO" "synch.h" "ac_cv_header_synch_h" "$ac_includes_default" if test "x$ac_cv_header_synch_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SYNCH_H 1 _ACEOF fi done for ac_header in unistd.h do : ac_fn_c_check_header_mongrel "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$ac_includes_default" if test "x$ac_cv_header_unistd_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_UNISTD_H 1 _ACEOF fi done fi # Let caller provide -f to lib/*.pl scripts in a uniform way # Check whether --with-field-limit was given. if test "${with_field_limit+set}" = set; then : withval=$with_field_limit; fi if test -n "$with_field_limit" then ( cd lib ; ./querydef.pl -f $with_field_limit ; ./ssqls.pl -f $with_field_limit ) fi # Try to find local getopt(); if we fail, we'll use the one in lib/cmdline.* ac_fn_c_check_func "$LINENO" "getopt" "ac_cv_func_getopt" if test "x$ac_cv_func_getopt" = xyes; then : $as_echo "#define HAVE_POSIX_GETOPT /**/" >>confdefs.h else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getopt in -liberty" >&5 $as_echo_n "checking for getopt in -liberty... " >&6; } if ${ac_cv_lib_iberty_getopt+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-liberty $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char getopt (); int main () { return getopt (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_iberty_getopt=yes else ac_cv_lib_iberty_getopt=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_iberty_getopt" >&5 $as_echo "$ac_cv_lib_iberty_getopt" >&6; } if test "x$ac_cv_lib_iberty_getopt" = xyes; then : $as_echo "#define HAVE_LIBIBERTY_GETOPT /**/" >>confdefs.h fi fi # Checks for libraries and local system features { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lm is needed to use C math functions" >&5 $as_echo_n "checking whether -lm is needed to use C math functions... " >&6; } MYSQLPP_EXTRA_LIBS= TRY_LIBM=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { floor(0); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } else TRY_LIBM=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test "x$TRY_LIBM" = "xyes" then save_LIBS=$LIBS LIBS="$LIBS -lm" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { floor(0); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : MYSQLPP_EXTRA_LIBS=-lm { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else as_fn_error $? "Failed to build program containing math functions!" "$LINENO" 5 fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS="$save_LIBS" fi save_LIBS="$LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lsocket is needed" >&5 $as_echo_n "checking whether -lsocket is needed... " >&6; } TRY_LSOCKET=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { socket(AF_INET, SOCK_STREAM, 0); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } else TRY_LSOCKET=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test "x$TRY_LSOCKET" = "xyes" then LIBS="-lsocket $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { socket(AF_INET, SOCK_STREAM, 0); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : MYSQLPP_EXTRA_LIBS="-lsocket $MYSQLPP_EXTRA_LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else as_fn_error $? "failed to link using -lsocket!" "$LINENO" 5 fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lnsl is needed" >&5 $as_echo_n "checking whether -lnsl is needed... " >&6; } TRY_LNSL=no cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { gethostbyname("gna.org"); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } else TRY_LNSL=yes fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test "x$TRY_LNSL" = "xyes" then LIBS="-lnsl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { gethostbyname("gna.org"); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : MYSQLPP_EXTRA_LIBS="-lnsl $MYSQLPP_EXTRA_LIBS" { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else as_fn_error $? "failed to link using -lnsl!" "$LINENO" 5 fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi # # Set up configure script macros # # Check whether --with-mysql was given. if test "${with_mysql+set}" = set; then : withval=$with_mysql; MYSQL_lib_check="$with_mysql/lib/mysql $with_mysql/lib" MYSQL_inc_check="$with_mysql/include $with_mysql/include/mysql" else MYSQL_lib_check="/usr/lib64 /usr/lib /usr/lib64/mysql /usr/lib/mysql /usr/local/lib64 /usr/local/lib /usr/local/lib/mysql /usr/local/mysql/lib /usr/local/mysql/lib/mysql /usr/mysql/lib/mysql /opt/mysql/lib /opt/mysql/lib/mysql /sw/lib /sw/lib/mysql" MYSQL_inc_check="/usr/include/mysql /usr/local/include/mysql /usr/local/mysql/include /usr/local/mysql/include/mysql /usr/mysql/include/mysql /opt/mysql/include/mysql /sw/include/mysql" fi # Check whether --with-mysql-lib was given. if test "${with_mysql_lib+set}" = set; then : withval=$with_mysql_lib; MYSQL_lib_check="$with_mysql_lib $with_mysql_lib/lib64 $with_mysql_lib/lib $with_mysql_lib/lib64/mysql $with_mysql_lib/lib/mysql" fi # Check whether --with-mysql-include was given. if test "${with_mysql_include+set}" = set; then : withval=$with_mysql_include; MYSQL_inc_check="$with_mysql_include $with_mysql_include/include $with_mysql_include/include/mysql" fi # # Decide which C API library to use, based on thread support # if test "x$acx_pthread_ok" = xyes then MYSQL_C_LIB_NAME=mysqlclient_r else MYSQL_C_LIB_NAME=mysqlclient fi # # Look for MySQL C API headers # { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MySQL include directory" >&5 $as_echo_n "checking for MySQL include directory... " >&6; } MYSQL_C_INC_DIR= for m in $MYSQL_inc_check do if test -d "$m" && test -f "$m/mysql.h" then MYSQL_C_INC_DIR=$m break fi done if test -z "$MYSQL_C_INC_DIR" then as_fn_error $? "Didn't find the MySQL include dir in '$MYSQL_inc_check'" "$LINENO" 5 fi case "$MYSQL_C_INC_DIR" in /* ) ;; * ) as_fn_error $? "The MySQL include directory ($MYSQL_C_INC_DIR) must be an absolute path." "$LINENO" 5 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MYSQL_C_INC_DIR" >&5 $as_echo "$MYSQL_C_INC_DIR" >&6; } # # Look for MySQL C API library # { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MySQL C API library directory" >&5 $as_echo_n "checking for MySQL C API library directory... " >&6; } save_CPPFLAGS=$CPPFLAGS save_LIBS=$LIBS save_LDFLAGS=$LDFLAGS CPPFLAGS="$CPPFLAGS -I$MYSQL_C_INC_DIR" MYSQL_C_LIB_DIR= for m in $MYSQL_lib_check do if test -d $m then LDFLAGS="$save_LDFLAGS -L$m" LIBS="$save_LIBS -l$MYSQL_C_LIB_NAME" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { mysql_store_result(0); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: $m" >&5 $as_echo "$m" >&6; } MYSQL_C_LIB_DIR=$m break else LIBS="$save_LIBS -l$MYSQL_C_LIB_NAME -lz" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { mysql_store_result(0); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: $m" >&5 $as_echo "$m" >&6; } MYSQLPP_EXTRA_LIBS="$MYSQLPP_EXTRA_LIBS -lz" MYSQL_C_LIB_DIR=$m break fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi done CPPFLAGS=$save_CPPFLAGS LIBS=$save_LIBS LDFLAGS=$save_LDFLAGS if test -z "$MYSQL_C_LIB_DIR" then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no joy" >&5 $as_echo "no joy" >&6; } as_fn_error $? "Didn't find $MYSQL_C_LIB_NAME library in '$MYSQL_lib_check'" "$LINENO" 5 fi case "$MYSQL_C_LIB_DIR" in /* ) ;; * ) as_fn_error $? "The MySQL library directory ($MYSQL_C_LIB_DIR) must be an absolute path." "$LINENO" 5 ;; esac # # Check for mysql_ssl_set() in libmysqlclient(_r) # as_ac_Lib=`$as_echo "ac_cv_lib_$MYSQL_C_LIB_NAME''_mysql_ssl_set" | $as_tr_sh` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mysql_ssl_set in -l$MYSQL_C_LIB_NAME" >&5 $as_echo_n "checking for mysql_ssl_set in -l$MYSQL_C_LIB_NAME... " >&6; } if eval \${$as_ac_Lib+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-l$MYSQL_C_LIB_NAME $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char mysql_ssl_set (); int main () { return mysql_ssl_set (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$as_ac_Lib=yes" else eval "$as_ac_Lib=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi eval ac_res=\$$as_ac_Lib { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then : $as_echo "#define HAVE_MYSQL_SSL_SET /**/" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for localtime_r()" >&5 $as_echo_n "checking for localtime_r()... " >&6; } if test "$cross_compiling" = yes; then : localtime_r_found=no else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main(void) { time_t tt; struct tm stm; localtime_r(&tt, &stm); return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : localtime_r_found=yes else localtime_r_found=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $localtime_r_found" >&5 $as_echo "$localtime_r_found" >&6; } if test x"$localtime_r_found" = xyes then $as_echo "#define HAVE_LOCALTIME_R 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lintl" >&5 $as_echo_n "checking for main in -lintl... " >&6; } if ${ac_cv_lib_intl_main+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lintl $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { return main (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_intl_main=yes else ac_cv_lib_intl_main=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_intl_main" >&5 $as_echo "$ac_cv_lib_intl_main" >&6; } if test "x$ac_cv_lib_intl_main" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_LIBINTL 1 _ACEOF LIBS="-lintl $LIBS" fi # If this is Cygwin, add a linker flag to suppress a silly link message. case "${host}" in *cygwin*) LDFLAGS="$LDFLAGS -Wl,--enable-auto-import" ;; esac # Check for Standard C++ support, and extensions. This must be near # the end, because the CPLUSPLUS directive makes autoconf use C++ # compiler for all subsequent tests! ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -z "$CXX"; then if test -n "$CCC"; then CXX=$CCC else if test -n "$ac_tool_prefix"; then for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CXX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 $as_echo "$CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CXX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CXX="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 $as_echo "$ac_ct_CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CXX" && break done if test "x$ac_ct_CXX" = x; then CXX="g++" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CXX=$ac_ct_CXX fi fi fi fi # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 $as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } if ${ac_cv_cxx_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 $as_echo "$ac_cv_cxx_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GXX=yes else GXX= fi ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 $as_echo_n "checking whether $CXX accepts -g... " >&6; } if ${ac_cv_prog_cxx_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_cxx_werror_flag=$ac_cxx_werror_flag ac_cxx_werror_flag=yes ac_cv_prog_cxx_g=no CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes else CXXFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : else ac_cxx_werror_flag=$ac_save_cxx_werror_flag CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cxx_werror_flag=$ac_save_cxx_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 $as_echo "$ac_cv_prog_cxx_g" >&6; } if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu func_stripname_cnf () { case $2 in .*) func_stripname_result=`$ECHO "$3" | $SED "s%^$1%%; s%\\\\$2\$%%"`;; *) func_stripname_result=`$ECHO "$3" | $SED "s%^$1%%; s%$2\$%%"`;; esac } # func_stripname_cnf if test -n "$CXX" && ( test no != "$CXX" && ( (test g++ = "$CXX" && `g++ -v >/dev/null 2>&1` ) || (test g++ != "$CXX"))); then ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5 $as_echo_n "checking how to run the C++ preprocessor... " >&6; } if test -z "$CXXCPP"; then if ${ac_cv_prog_CXXCPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CXXCPP needs to be expanded for CXXCPP in "$CXX -E" "/lib/cpp" do ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CXXCPP=$CXXCPP fi CXXCPP=$ac_cv_prog_CXXCPP else ac_cv_prog_CXXCPP=$CXXCPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5 $as_echo "$CXXCPP" >&6; } ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu else _lt_caught_CXX_error=yes fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu archive_cmds_need_lc_CXX=no allow_undefined_flag_CXX= always_export_symbols_CXX=no archive_expsym_cmds_CXX= compiler_needs_object_CXX=no export_dynamic_flag_spec_CXX= hardcode_direct_CXX=no hardcode_direct_absolute_CXX=no hardcode_libdir_flag_spec_CXX= hardcode_libdir_separator_CXX= hardcode_minus_L_CXX=no hardcode_shlibpath_var_CXX=unsupported hardcode_automatic_CXX=no inherit_rpath_CXX=no module_cmds_CXX= module_expsym_cmds_CXX= link_all_deplibs_CXX=unknown old_archive_cmds_CXX=$old_archive_cmds reload_flag_CXX=$reload_flag reload_cmds_CXX=$reload_cmds no_undefined_flag_CXX= whole_archive_flag_spec_CXX= enable_shared_with_static_runtimes_CXX=no # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o objext_CXX=$objext # No sense in running all these tests if we already determined that # the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test yes != "$_lt_caught_CXX_error"; then # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC # save warnings/boilerplate of simple test code ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} CFLAGS=$CXXFLAGS compiler=$CC compiler_CXX=$CC func_cc_basename $compiler cc_basename=$func_cc_basename_result if test -n "$compiler"; then # We don't want -fno-exception when compiling C++ code, so set the # no_builtin_flag separately if test yes = "$GXX"; then lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin' else lt_prog_compiler_no_builtin_flag_CXX= fi if test yes = "$GXX"; then # Set up default GNU C++ configuration # Check whether --with-gnu-ld was given. if test "${with_gnu_ld+set}" = set; then : withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes else with_gnu_ld=no fi ac_prog=ld if test yes = "$GCC"; then # Check if gcc -print-prog-name=ld gives a path. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 $as_echo_n "checking for ld used by $CC... " >&6; } case $host in *-*-mingw*) # gcc leaves a trailing carriage return, which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [\\/]* | ?:[\\/]*) re_direlt='/[^/][^/]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD=$ac_prog ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test yes = "$with_gnu_ld"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 $as_echo_n "checking for GNU ld... " >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 $as_echo_n "checking for non-GNU ld... " >&6; } fi if ${lt_cv_path_LD+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$LD"; then lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD=$ac_dir/$ac_prog # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &5 $as_echo "$LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } if ${lt_cv_prog_gnu_ld+:} false; then : $as_echo_n "(cached) " >&6 else # I'd rather use --version here, but apparently some GNU lds only accept -v. case `$LD -v 2>&1 &5 $as_echo "$lt_cv_prog_gnu_ld" >&6; } with_gnu_ld=$lt_cv_prog_gnu_ld # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test yes = "$with_gnu_ld"; then archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir' export_dynamic_flag_spec_CXX='$wl--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='$wl' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | $GREP 'no-whole-archive' > /dev/null; then whole_archive_flag_spec_CXX=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' else whole_archive_flag_spec_CXX= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } ld_shlibs_CXX=yes case $host_os in aix3*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aix[4-9]*) if test ia64 = "$host_cpu"; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag= else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # have runtime linking enabled, and use it for executables. # For shared libraries, we enable/disable runtime linking # depending on the kind of the shared library created - # when "with_aix_soname,aix_use_runtimelinking" is: # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables # "aix,yes" lib.so shared, rtl:yes, for executables # lib.a static archive # "both,no" lib.so.V(shr.o) shared, rtl:yes # lib.a(lib.so.V) shared, rtl:no, for executables # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a(lib.so.V) shared, rtl:no # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a static archive case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then # With aix-soname=svr4, we create the lib.so.V shared archives only, # so we don't have lib.a shared libs to link our executables. # We have to force runtime linking in this case. aix_use_runtimelinking=yes LDFLAGS="$LDFLAGS -Wl,-brtl" fi ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. archive_cmds_CXX='' hardcode_direct_CXX=yes hardcode_direct_absolute_CXX=yes hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes file_list_spec_CXX='$wl-f,' case $with_aix_soname,$aix_use_runtimelinking in aix,*) ;; # no import file svr4,* | *,yes) # use import file # The Import File defines what to hardcode. hardcode_direct_CXX=no hardcode_direct_absolute_CXX=no ;; esac if test yes = "$GXX"; then case $host_os in aix4.[012]|aix4.[012].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`$CC -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 hardcode_direct_CXX=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking hardcode_minus_L_CXX=yes hardcode_libdir_flag_spec_CXX='-L$libdir' hardcode_libdir_separator_CXX= fi esac shared_flag='-shared' if test yes = "$aix_use_runtimelinking"; then shared_flag=$shared_flag' $wl-G' fi # Need to ensure runtime linking is disabled for the traditional # shared library, or the linker may eventually find shared libraries # /with/ Import File - we do not want to mix them. shared_flag_aix='-shared' shared_flag_svr4='-shared $wl-G' else # not using gcc if test ia64 = "$host_cpu"; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test yes = "$aix_use_runtimelinking"; then shared_flag='$wl-G' else shared_flag='$wl-bM:SRE' fi shared_flag_aix='$wl-bM:SRE' shared_flag_svr4='$wl-G' fi fi export_dynamic_flag_spec_CXX='$wl-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to # export. always_export_symbols_CXX=yes if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. # The "-G" linker flag allows undefined symbols. no_undefined_flag_CXX='-bernotok' # Determine the default libpath from the value encoded in an empty # executable. if test set = "${lt_cv_aix_libpath+set}"; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath__CXX+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath__CXX"; then lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath__CXX"; then lt_cv_aix_libpath__CXX=/usr/lib:/lib fi fi aix_libpath=$lt_cv_aix_libpath__CXX fi hardcode_libdir_flag_spec_CXX='$wl-blibpath:$libdir:'"$aix_libpath" archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag else if test ia64 = "$host_cpu"; then hardcode_libdir_flag_spec_CXX='$wl-R $libdir:/usr/lib:/lib' allow_undefined_flag_CXX="-z nodefs" archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. if test set = "${lt_cv_aix_libpath+set}"; then aix_libpath=$lt_cv_aix_libpath else if ${lt_cv_aix_libpath__CXX+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : lt_aix_libpath_sed=' /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }' lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$lt_cv_aix_libpath__CXX"; then lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext if test -z "$lt_cv_aix_libpath__CXX"; then lt_cv_aix_libpath__CXX=/usr/lib:/lib fi fi aix_libpath=$lt_cv_aix_libpath__CXX fi hardcode_libdir_flag_spec_CXX='$wl-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. no_undefined_flag_CXX=' $wl-bernotok' allow_undefined_flag_CXX=' $wl-berok' if test yes = "$with_gnu_ld"; then # We only use this code for GNU lds that support --whole-archive. whole_archive_flag_spec_CXX='$wl--whole-archive$convenience $wl--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives whole_archive_flag_spec_CXX='$convenience' fi archive_cmds_need_lc_CXX=yes archive_expsym_cmds_CXX='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' # -brtl affects multiple linker settings, -berok does not and is overridden later compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`' if test svr4 != "$with_aix_soname"; then # This is similar to how AIX traditionally builds its shared # libraries. Need -bnortl late, we may have -brtl in LDFLAGS. archive_expsym_cmds_CXX="$archive_expsym_cmds_CXX"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' fi if test aix != "$with_aix_soname"; then archive_expsym_cmds_CXX="$archive_expsym_cmds_CXX"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' else # used by -dlpreopen to get the symbols archive_expsym_cmds_CXX="$archive_expsym_cmds_CXX"'~$MV $output_objdir/$realname.d/$soname $output_objdir' fi archive_expsym_cmds_CXX="$archive_expsym_cmds_CXX"'~$RM -r $output_objdir/$realname.d' fi fi ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then allow_undefined_flag_CXX=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' else ld_shlibs_CXX=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; cygwin* | mingw* | pw32* | cegcc*) case $GXX,$cc_basename in ,cl* | no,cl*) # Native MSVC # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. hardcode_libdir_flag_spec_CXX=' ' allow_undefined_flag_CXX=unsupported always_export_symbols_CXX=yes file_list_spec_CXX='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=.dll # FIXME: Setting linknames here is a bad hack. archive_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' archive_expsym_cmds_CXX='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then cp "$export_symbols" "$output_objdir/$soname.def"; echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; else $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, CXX)='true' enable_shared_with_static_runtimes_CXX=yes # Don't use ranlib old_postinstall_cmds_CXX='chmod 644 $oldlib' postlink_cmds_CXX='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile=$lt_outputfile.exe lt_tool_outputfile=$lt_tool_outputfile.exe ;; esac~ func_to_tool_file "$lt_outputfile"~ if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # g++ # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, # as there is no search path for DLLs. hardcode_libdir_flag_spec_CXX='-L$libdir' export_dynamic_flag_spec_CXX='$wl--export-all-symbols' allow_undefined_flag_CXX=unsupported always_export_symbols_CXX=no enable_shared_with_static_runtimes_CXX=yes if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file, use it as # is; otherwise, prepend EXPORTS... archive_expsym_cmds_CXX='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else ld_shlibs_CXX=no fi ;; esac ;; darwin* | rhapsody*) archive_cmds_need_lc_CXX=no hardcode_direct_CXX=no hardcode_automatic_CXX=yes hardcode_shlibpath_var_CXX=unsupported if test yes = "$lt_cv_ld_force_load"; then whole_archive_flag_spec_CXX='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' else whole_archive_flag_spec_CXX='' fi link_all_deplibs_CXX=yes allow_undefined_flag_CXX=$_lt_dar_allow_undefined case $cc_basename in ifort*|nagfor*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test yes = "$_lt_dar_can_shared"; then output_verbose_link_cmd=func_echo_all archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" archive_expsym_cmds_CXX="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" module_expsym_cmds_CXX="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" if test yes != "$lt_cv_apple_cc_single_mod"; then archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil" archive_expsym_cmds_CXX="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil" fi else ld_shlibs_CXX=no fi ;; os2*) hardcode_libdir_flag_spec_CXX='-L$libdir' hardcode_minus_L_CXX=yes allow_undefined_flag_CXX=unsupported shrext_cmds=.dll archive_cmds_CXX='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' archive_expsym_cmds_CXX='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; fi~ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' old_archive_From_new_cmds_CXX='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' enable_shared_with_static_runtimes_CXX=yes ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; freebsd2.*) # C++ shared libraries reported to be fairly broken before # switch to ELF ld_shlibs_CXX=no ;; freebsd-elf*) archive_cmds_need_lc_CXX=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions ld_shlibs_CXX=yes ;; haiku*) archive_cmds_CXX='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' link_all_deplibs_CXX=yes ;; hpux9*) hardcode_libdir_flag_spec_CXX='$wl+b $wl$libdir' hardcode_libdir_separator_CXX=: export_dynamic_flag_spec_CXX='$wl-E' hardcode_direct_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC*) archive_cmds_CXX='$RM $output_objdir/$soname~$CC -b $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test yes = "$GXX"; then archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; hpux10*|hpux11*) if test no = "$with_gnu_ld"; then hardcode_libdir_flag_spec_CXX='$wl+b $wl$libdir' hardcode_libdir_separator_CXX=: case $host_cpu in hppa*64*|ia64*) ;; *) export_dynamic_flag_spec_CXX='$wl-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no ;; *) hardcode_direct_CXX=yes hardcode_direct_absolute_CXX=yes hardcode_minus_L_CXX=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; aCC*) case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -b $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test yes = "$GXX"; then if test no = "$with_gnu_ld"; then case $host_cpu in hppa*64*) archive_cmds_CXX='$CC -shared -nostdlib -fPIC $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) archive_cmds_CXX='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; interix[3-9]*) hardcode_direct_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir' export_dynamic_flag_spec_CXX='$wl-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' archive_expsym_cmds_CXX='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test yes = "$GXX"; then if test no = "$with_gnu_ld"; then archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' else archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` -o $lib' fi fi link_all_deplibs_CXX=yes ;; esac hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir' hardcode_libdir_separator_CXX=: inherit_rpath_CXX=yes ;; linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib $wl-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir' export_dynamic_flag_spec_CXX='$wl--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc* | ecpc* ) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ;; esac archive_cmds_need_lc_CXX=no hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir' export_dynamic_flag_spec_CXX='$wl--export-dynamic' whole_archive_flag_spec_CXX='$wl--whole-archive$convenience $wl--no-whole-archive' ;; pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in *pgCC\ [1-5].* | *pgcpp\ [1-5].*) prelink_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' old_archive_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ $RANLIB $oldlib' archive_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 6 and above use weak symbols archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ;; esac hardcode_libdir_flag_spec_CXX='$wl--rpath $wl$libdir' export_dynamic_flag_spec_CXX='$wl--export-dynamic' whole_archive_flag_spec_CXX='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' ;; cxx*) # Compaq C++ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib $wl-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH hardcode_libdir_flag_spec_CXX='-rpath $libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' ;; xl* | mpixl* | bgxl*) # IBM XL 8.0 on PPC, with GNU ld hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir' export_dynamic_flag_spec_CXX='$wl--export-dynamic' archive_cmds_CXX='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' if test yes = "$supports_anon_versioning"; then archive_expsym_cmds_CXX='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' fi ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 no_undefined_flag_CXX=' -zdefs' archive_cmds_CXX='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file $wl$export_symbols' hardcode_libdir_flag_spec_CXX='-R$libdir' whole_archive_flag_spec_CXX='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' compiler_needs_object_CXX=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; m88k*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; *nto* | *qnx*) ld_shlibs_CXX=yes ;; openbsd* | bitrig*) if test -f /usr/libexec/ld.so; then hardcode_direct_CXX=yes hardcode_shlibpath_var_CXX=no hardcode_direct_absolute_CXX=yes archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`"; then archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file,$export_symbols -o $lib' export_dynamic_flag_spec_CXX='$wl-E' whole_archive_flag_spec_CXX=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' fi output_verbose_link_cmd=func_echo_all else ld_shlibs_CXX=no fi ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir' hardcode_libdir_separator_CXX=: # Archives containing C++ object files must be created using # the KAI C++ compiler. case $host in osf3*) old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; *) old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;; esac ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; cxx*) case $host in osf3*) allow_undefined_flag_CXX=' $wl-expect_unresolved $wl\*' archive_cmds_CXX='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $soname `test -n "$verstring" && func_echo_all "$wl-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir' ;; *) allow_undefined_flag_CXX=' -expect_unresolved \*' archive_cmds_CXX='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname $wl-input $wl$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~ $RM $lib.exp' hardcode_libdir_flag_spec_CXX='-rpath $libdir' ;; esac hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test yes,no = "$GXX,$with_gnu_ld"; then allow_undefined_flag_CXX=' $wl-expect_unresolved $wl\*' case $host in osf3*) archive_cmds_CXX='$CC -shared -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' ;; *) archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' ;; esac hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir' hardcode_libdir_separator_CXX=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # FIXME: insert proper C++ library support ld_shlibs_CXX=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ archive_cmds_need_lc_CXX=yes no_undefined_flag_CXX=' -zdefs' archive_cmds_CXX='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G$allow_undefined_flag $wl-M $wl$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' hardcode_libdir_flag_spec_CXX='-R$libdir' hardcode_shlibpath_var_CXX=no case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands '-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract' ;; esac link_all_deplibs_CXX=yes output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test yes,no = "$GXX,$with_gnu_ld"; then no_undefined_flag_CXX=' $wl-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # g++ 2.7 appears to require '-G' NOT '-shared' on this # platform. archive_cmds_CXX='$CC -G -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' fi hardcode_libdir_flag_spec_CXX='$wl-R $wl$libdir' case $host_os in solaris2.[0-5] | solaris2.[0-5].*) ;; *) whole_archive_flag_spec_CXX='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) no_undefined_flag_CXX='$wl-z,text' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) archive_cmds_CXX='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We CANNOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. no_undefined_flag_CXX='$wl-z,text' allow_undefined_flag_CXX='$wl-z,nodefs' archive_cmds_need_lc_CXX=no hardcode_shlibpath_var_CXX=no hardcode_libdir_flag_spec_CXX='$wl-R,$libdir' hardcode_libdir_separator_CXX=':' link_all_deplibs_CXX=yes export_dynamic_flag_spec_CXX='$wl-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) archive_cmds_CXX='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' old_archive_cmds_CXX='$CC -Tprelink_objects $oldobjs~ '"$old_archive_cmds_CXX" reload_cmds_CXX='$CC -Tprelink_objects $reload_objs~ '"$reload_cmds_CXX" ;; *) archive_cmds_CXX='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' archive_expsym_cmds_CXX='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; *) # FIXME: insert proper C++ library support ld_shlibs_CXX=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 $as_echo "$ld_shlibs_CXX" >&6; } test no = "$ld_shlibs_CXX" && can_build_shared=no GCC_CXX=$GXX LD_CXX=$LD ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... # Dependencies to place before and after the object being linked: predep_objects_CXX= postdep_objects_CXX= predeps_CXX= postdeps_CXX= compiler_lib_search_path_CXX= cat > conftest.$ac_ext <<_LT_EOF class Foo { public: Foo (void) { a = 0; } private: int a; }; _LT_EOF _lt_libdeps_save_CFLAGS=$CFLAGS case "$CC $CFLAGS " in #( *\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; *\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; *\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; esac if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do case $prev$p in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test x-L = "$p" || test x-R = "$p"; then prev=$p continue fi # Expand the sysroot to ease extracting the directories later. if test -z "$prev"; then case $p in -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; esac fi case $p in =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; esac if test no = "$pre_test_object_deps_done"; then case $prev in -L | -R) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$compiler_lib_search_path_CXX"; then compiler_lib_search_path_CXX=$prev$p else compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} $prev$p" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$postdeps_CXX"; then postdeps_CXX=$prev$p else postdeps_CXX="${postdeps_CXX} $prev$p" fi fi prev= ;; *.lto.$objext) ;; # Ignore GCC LTO objects *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test no = "$pre_test_object_deps_done"; then if test -z "$predep_objects_CXX"; then predep_objects_CXX=$p else predep_objects_CXX="$predep_objects_CXX $p" fi else if test -z "$postdep_objects_CXX"; then postdep_objects_CXX=$p else postdep_objects_CXX="$postdep_objects_CXX $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling CXX test program" fi $RM -f confest.$objext CFLAGS=$_lt_libdeps_save_CFLAGS # PORTME: override above test on systems where it is broken case $host_os in interix[3-9]*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. predep_objects_CXX= postdep_objects_CXX= postdeps_CXX= ;; esac case " $postdeps_CXX " in *" -lc "*) archive_cmds_need_lc_CXX=no ;; esac compiler_lib_search_dirs_CXX= if test -n "${compiler_lib_search_path_CXX}"; then compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | $SED -e 's! -L! !g' -e 's!^ !!'` fi lt_prog_compiler_wl_CXX= lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX= # C++ specific cases for pic, static, wl, etc. if test yes = "$GXX"; then lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-static' case $host_os in aix*) # All AIX code is PIC. if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' fi lt_prog_compiler_pic_CXX='-fPIC' ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support lt_prog_compiler_pic_CXX='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the '-m68020' flag to GCC prevents building anything better, # like '-m68040'. lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries lt_prog_compiler_pic_CXX='-DDLL_EXPORT' case $host_os in os2*) lt_prog_compiler_static_CXX='$wl-static' ;; esac ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files lt_prog_compiler_pic_CXX='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all lt_prog_compiler_pic_CXX= ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. lt_prog_compiler_static_CXX= ;; interix[3-9]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then lt_prog_compiler_pic_CXX=-Kconform_pic fi ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic_CXX='-fPIC -shared' ;; *) lt_prog_compiler_pic_CXX='-fPIC' ;; esac else case $host_os in aix[4-9]*) # All AIX code is PIC. if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor lt_prog_compiler_static_CXX='-Bstatic' else lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). lt_prog_compiler_pic_CXX='-DDLL_EXPORT' ;; dgux*) case $cc_basename in ec++*) lt_prog_compiler_pic_CXX='-KPIC' ;; ghcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; freebsd* | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='$wl-a ${wl}archive' if test ia64 != "$host_cpu"; then lt_prog_compiler_pic_CXX='+Z' fi ;; aCC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='$wl-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) lt_prog_compiler_pic_CXX='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_static_CXX='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in KCC*) # KAI C++ Compiler lt_prog_compiler_wl_CXX='--backend -Wl,' lt_prog_compiler_pic_CXX='-fPIC' ;; ecpc* ) # old Intel C++ for x86_64, which still supported -KPIC. lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-static' ;; icpc* ) # Intel C++, used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-fPIC' lt_prog_compiler_static_CXX='-static' ;; pgCC* | pgcpp*) # Portland Group C++ compiler lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-fpic' lt_prog_compiler_static_CXX='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; xlc* | xlC* | bgxl[cC]* | mpixl[cC]*) # IBM XL 8.0, 9.0 on PPC and BlueGene lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-qpic' lt_prog_compiler_static_CXX='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' lt_prog_compiler_wl_CXX='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) lt_prog_compiler_pic_CXX='-W c,exportall' ;; *) ;; esac ;; netbsd*) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. lt_prog_compiler_pic_CXX='-fPIC -shared' ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) lt_prog_compiler_wl_CXX='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 lt_prog_compiler_pic_CXX='-pic' ;; cxx*) # Digital/Compaq C++ lt_prog_compiler_wl_CXX='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. lt_prog_compiler_pic_CXX= lt_prog_compiler_static_CXX='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' lt_prog_compiler_wl_CXX='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler lt_prog_compiler_pic_CXX='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x lt_prog_compiler_pic_CXX='-pic' lt_prog_compiler_static_CXX='-Bstatic' ;; lcc*) # Lucid lt_prog_compiler_pic_CXX='-pic' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) lt_prog_compiler_wl_CXX='-Wl,' lt_prog_compiler_pic_CXX='-KPIC' lt_prog_compiler_static_CXX='-Bstatic' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 lt_prog_compiler_pic_CXX='-KPIC' ;; *) ;; esac ;; vxworks*) ;; *) lt_prog_compiler_can_build_shared_CXX=no ;; esac fi case $host_os in # For platforms that do not support PIC, -DPIC is meaningless: *djgpp*) lt_prog_compiler_pic_CXX= ;; *) lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 $as_echo_n "checking for $compiler option to produce PIC... " >&6; } if ${lt_cv_prog_compiler_pic_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_CXX=$lt_prog_compiler_pic_CXX fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_CXX" >&5 $as_echo "$lt_cv_prog_compiler_pic_CXX" >&6; } lt_prog_compiler_pic_CXX=$lt_cv_prog_compiler_pic_CXX # # Check to make sure the PIC flag actually works. # if test -n "$lt_prog_compiler_pic_CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; } if ${lt_cv_prog_compiler_pic_works_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_pic_works_CXX=no ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" ## exclude from sc_useless_quotes_in_assignment # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_pic_works_CXX=yes fi fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works_CXX" >&5 $as_echo "$lt_cv_prog_compiler_pic_works_CXX" >&6; } if test yes = "$lt_cv_prog_compiler_pic_works_CXX"; then case $lt_prog_compiler_pic_CXX in "" | " "*) ;; *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;; esac else lt_prog_compiler_pic_CXX= lt_prog_compiler_can_build_shared_CXX=no fi fi # # Check to make sure the static flag actually works. # wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\" { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } if ${lt_cv_prog_compiler_static_works_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_static_works_CXX=no save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS $lt_tmp_static_flag" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&5 $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then lt_cv_prog_compiler_static_works_CXX=yes fi else lt_cv_prog_compiler_static_works_CXX=yes fi fi $RM -r conftest* LDFLAGS=$save_LDFLAGS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works_CXX" >&5 $as_echo "$lt_cv_prog_compiler_static_works_CXX" >&6; } if test yes = "$lt_cv_prog_compiler_static_works_CXX"; then : else lt_prog_compiler_static_CXX= fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_CXX=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_CXX=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5 $as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } if ${lt_cv_prog_compiler_c_o_CXX+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_prog_compiler_c_o_CXX=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then lt_cv_prog_compiler_c_o_CXX=yes fi fi chmod u+w . 2>&5 $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5 $as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; } hard_links=nottested if test no = "$lt_cv_prog_compiler_c_o_CXX" && test no != "$need_locks"; then # do not overwrite the value of need_locks provided by the user { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 $as_echo_n "checking if we can lock with hard links... " >&6; } hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 $as_echo "$hard_links" >&6; } if test no = "$hard_links"; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5 $as_echo "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;} need_locks=warn fi else need_locks=no fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' case $host_os in aix[4-9]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to GNU nm, but means don't demangle to AIX nm. # Without the "-l" option, or with the "-B" option, AIX nm treats # weak defined symbols like other global defined symbols, whereas # GNU nm marks them as "W". # While the 'weak' keyword is ignored in the Export File, we need # it in the Import File for the 'aix-soname' feature, so we have # to replace the "-B" option with "-P" for AIX nm. if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else export_symbols_cmds_CXX='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' fi ;; pw32*) export_symbols_cmds_CXX=$ltdll_cmds ;; cygwin* | mingw* | cegcc*) case $cc_basename in cl*) exclude_expsyms_CXX='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' ;; *) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' exclude_expsyms_CXX='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' ;; esac ;; *) export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 $as_echo "$ld_shlibs_CXX" >&6; } test no = "$ld_shlibs_CXX" && can_build_shared=no with_gnu_ld_CXX=$with_gnu_ld # # Do we need to explicitly link libc? # case "x$archive_cmds_need_lc_CXX" in x|xyes) # Assume -lc should be added archive_cmds_need_lc_CXX=yes if test yes,yes = "$GCC,$enable_shared"; then case $archive_cmds_CXX in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } if ${lt_cv_archive_cmds_need_lc_CXX+:} false; then : $as_echo_n "(cached) " >&6 else $RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$lt_prog_compiler_wl_CXX pic_flag=$lt_prog_compiler_pic_CXX compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$allow_undefined_flag_CXX allow_undefined_flag_CXX= if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 (eval $archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } then lt_cv_archive_cmds_need_lc_CXX=no else lt_cv_archive_cmds_need_lc_CXX=yes fi allow_undefined_flag_CXX=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc_CXX" >&5 $as_echo "$lt_cv_archive_cmds_need_lc_CXX" >&6; } archive_cmds_need_lc_CXX=$lt_cv_archive_cmds_need_lc_CXX ;; esac fi ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 $as_echo_n "checking dynamic linker characteristics... " >&6; } library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=.so postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown case $host_os in aix3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='$libname$release$shared_ext$major' ;; aix[4-9]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes if test ia64 = "$host_cpu"; then # AIX 5 supports IA64 library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line '#! .'. This would cause the generated library to # depend on '.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[01] | aix4.[01].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # Using Import Files as archive members, it is possible to support # filename-based versioning of shared library archives on AIX. While # this would work for both with and without runtime linking, it will # prevent static linking of such archives. So we do filename-based # shared library versioning with .so extension only, which is used # when both runtime linking and shared linking is enabled. # Unfortunately, runtime linking may impact performance, so we do # not want this to be the default eventually. Also, we use the # versioned .so libs for executables only if there is the -brtl # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. # To allow for filename-based versioning support, we need to create # libNAME.so.V as an archive file, containing: # *) an Import File, referring to the versioned filename of the # archive as well as the shared archive member, telling the # bitwidth (32 or 64) of that shared object, and providing the # list of exported symbols of that shared object, eventually # decorated with the 'weak' keyword # *) the shared object with the F_LOADONLY flag set, to really avoid # it being seen by the linker. # At run time we better use the real file rather than another symlink, # but for link time we create the symlink libNAME.so -> libNAME.so.V case $with_aix_soname,$aix_use_runtimelinking in # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. aix,yes) # traditional libtool dynamic_linker='AIX unversionable lib.so' # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ;; aix,no) # traditional AIX only dynamic_linker='AIX lib.a(lib.so.V)' # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='$libname$release.a $libname.a' soname_spec='$libname$release$shared_ext$major' ;; svr4,*) # full svr4 only dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)" library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' # We do not specify a path in Import Files, so LIBPATH fires. shlibpath_overrides_runpath=yes ;; *,yes) # both, prefer svr4 dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)" library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' # unpreferred sharedlib libNAME.a needs extra handling postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' # We do not specify a path in Import Files, so LIBPATH fires. shlibpath_overrides_runpath=yes ;; *,no) # both, prefer aix dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)" library_names_spec='$libname$release.a $libname.a' soname_spec='$libname$release$shared_ext$major' # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' ;; esac shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='$libname$shared_ext' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[45]*) version_type=linux # correct to gnu/linux during the next big refactor need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=.dll need_version=no need_lib_prefix=no case $GCC,$cc_basename in yes,*) # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' ;; esac dynamic_linker='Win32 ld.exe' ;; *,cl*) # Native MSVC libname_spec='$name' soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' library_names_spec='$libname.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec=$LIB if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then # It is most probably a Windows format PATH. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC wrapper library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='$libname$release$major$shared_ext $libname$shared_ext' soname_spec='$libname$release$major$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[23].*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[01]* | freebsdelf3.[01]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; haiku*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LIBRARY_PATH shlibpath_overrides_runpath=no sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' if test 32 = "$HPUX_IA64_MODE"; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" sys_lib_dlsearch_path_spec=/usr/lib/hpux32 else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" sys_lib_dlsearch_path_spec=/usr/lib/hpux64 fi ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' # or fails outright, so override atomically: install_override_mode=555 ;; interix[3-9]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test yes = "$lt_cv_prog_gnu_ld"; then version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='$libname$release$shared_ext$major' library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff" sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; linux*android*) version_type=none # Android doesn't support versioned libraries. need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext' soname_spec='$libname$release$shared_ext' finish_cmds= shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes dynamic_linker='Android linker' # Don't embed -rpath directories since the linker doesn't support them. hardcode_libdir_flag_spec_CXX='-L$libdir' ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH if ${lt_cv_shlibpath_overrides_runpath+:} false; then : $as_echo_n "(cached) " >&6 else lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\"" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : lt_cv_shlibpath_overrides_runpath=yes fi fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LDFLAGS=$save_LDFLAGS libdir=$save_libdir fi shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Ideally, we could use ldconfig to report *all* directores which are # searched for libraries, however this is still not possible. Aside from not # being certain /sbin/ldconfig is available, command # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, # even though it is searched at run-time. Try to do the best guess by # appending ld.so.conf contents (and includes) to the search path. if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd* | bitrig*) version_type=sunos sys_lib_dlsearch_path_spec=/usr/lib need_lib_prefix=no if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then need_version=no else need_version=yes fi library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; os2*) libname_spec='$name' version_type=windows shrext_cmds=.dll need_version=no need_lib_prefix=no # OS/2 can only load a DLL with a base name of 8 characters or less. soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; v=$($ECHO $release$versuffix | tr -d .-); n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); $ECHO $n$v`$shared_ext' library_names_spec='${libname}_dll.$libext' dynamic_linker='OS/2 ld.exe' shlibpath_var=BEGINLIBPATH sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='$libname$release$shared_ext$major' library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test yes = "$with_gnu_ld"; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec; then version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext' soname_spec='$libname$shared_ext.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=sco need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test yes = "$with_gnu_ld"; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 $as_echo "$dynamic_linker" >&6; } test no = "$dynamic_linker" && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test yes = "$GCC"; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec fi if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec fi # remember unaugmented sys_lib_dlsearch_path content for libtool script decls... configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec # ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" # to be used as default LT_SYS_LIBRARY_PATH value in generated libtool configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 $as_echo_n "checking how to hardcode library paths into programs... " >&6; } hardcode_action_CXX= if test -n "$hardcode_libdir_flag_spec_CXX" || test -n "$runpath_var_CXX" || test yes = "$hardcode_automatic_CXX"; then # We can hardcode non-existent directories. if test no != "$hardcode_direct_CXX" && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, CXX)" && test no != "$hardcode_minus_L_CXX"; then # Linking always hardcodes the temporary library directory. hardcode_action_CXX=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. hardcode_action_CXX=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. hardcode_action_CXX=unsupported fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_CXX" >&5 $as_echo "$hardcode_action_CXX" >&6; } if test relink = "$hardcode_action_CXX" || test yes = "$inherit_rpath_CXX"; then # Fast installation is not supported enable_fast_install=no elif test yes = "$shlibpath_overrides_runpath" || test no = "$enable_shared"; then # Fast installation is not necessary enable_fast_install=needless fi fi # test -n "$compiler" CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld fi # test yes != "$_lt_caught_CXX_error" ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for STL slist extension" >&5 $as_echo_n "checking for STL slist extension... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { slist l ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : $as_echo "#define HAVE_GLOBAL_SLIST 1" >>confdefs.h else TRY_NEXT=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test -z "$TRY_NEXT" then SLIST_LOC=", global scope" else TRY_NEXT="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { std::slist l ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : $as_echo "#define HAVE_STD_SLIST 1" >>confdefs.h else TRY_NEXT=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test -z "$TRY_NEXT" then SLIST_LOC=", namespace std" else TRY_NEXT="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { __gnu_cxx::slist l ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : $as_echo "#define HAVE_EXT_SLIST 1" >>confdefs.h else SLIST_LOC="not found" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test -z "$SLIST_LOC" then SLIST_LOC=", namespace __gnu_cxx" fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SLIST_LOC" >&5 $as_echo "$SLIST_LOC" >&6; } # Include Bakefile macros ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the Intel C compiler" >&5 $as_echo_n "checking whether we are using the Intel C compiler... " >&6; } if ${bakefile_cv_c_compiler___INTEL_COMPILER+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __INTEL_COMPILER choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : bakefile_cv_c_compiler___INTEL_COMPILER=yes else bakefile_cv_c_compiler___INTEL_COMPILER=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bakefile_cv_c_compiler___INTEL_COMPILER" >&5 $as_echo "$bakefile_cv_c_compiler___INTEL_COMPILER" >&6; } if test "x$bakefile_cv_c_compiler___INTEL_COMPILER" = "xyes"; then :; INTELCC=yes else :; fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test "$INTELCC" = "yes"; then ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using Intel C compiler v8 or later" >&5 $as_echo_n "checking whether we are using Intel C compiler v8 or later... " >&6; } if ${bakefile_cv_c_compiler___INTEL_COMPILER_lt_800+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __INTEL_COMPILER || __INTEL_COMPILER < 800 choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : bakefile_cv_c_compiler___INTEL_COMPILER_lt_800=yes else bakefile_cv_c_compiler___INTEL_COMPILER_lt_800=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bakefile_cv_c_compiler___INTEL_COMPILER_lt_800" >&5 $as_echo "$bakefile_cv_c_compiler___INTEL_COMPILER_lt_800" >&6; } if test "x$bakefile_cv_c_compiler___INTEL_COMPILER_lt_800" = "xyes"; then :; INTELCC8=yes else :; fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using Intel C compiler v10 or later" >&5 $as_echo_n "checking whether we are using Intel C compiler v10 or later... " >&6; } if ${bakefile_cv_c_compiler___INTEL_COMPILER_lt_1000+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __INTEL_COMPILER || __INTEL_COMPILER < 1000 choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : bakefile_cv_c_compiler___INTEL_COMPILER_lt_1000=yes else bakefile_cv_c_compiler___INTEL_COMPILER_lt_1000=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bakefile_cv_c_compiler___INTEL_COMPILER_lt_1000" >&5 $as_echo "$bakefile_cv_c_compiler___INTEL_COMPILER_lt_1000" >&6; } if test "x$bakefile_cv_c_compiler___INTEL_COMPILER_lt_1000" = "xyes"; then :; INTELCC10=yes else :; fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu fi if test "x$GCC" != "xyes"; then case `uname -s` in AIX*) ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the IBM xlC C compiler" >&5 $as_echo_n "checking whether we are using the IBM xlC C compiler... " >&6; } if ${bakefile_cv_c_compiler___xlC__+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __xlC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : bakefile_cv_c_compiler___xlC__=yes else bakefile_cv_c_compiler___xlC__=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bakefile_cv_c_compiler___xlC__" >&5 $as_echo "$bakefile_cv_c_compiler___xlC__" >&6; } if test "x$bakefile_cv_c_compiler___xlC__" = "xyes"; then :; XLCC=yes else :; fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ;; Darwin) ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the IBM xlC C compiler" >&5 $as_echo_n "checking whether we are using the IBM xlC C compiler... " >&6; } if ${bakefile_cv_c_compiler___xlC__+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __xlC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : bakefile_cv_c_compiler___xlC__=yes else bakefile_cv_c_compiler___xlC__=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bakefile_cv_c_compiler___xlC__" >&5 $as_echo "$bakefile_cv_c_compiler___xlC__" >&6; } if test "x$bakefile_cv_c_compiler___xlC__" = "xyes"; then :; XLCC=yes else :; fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ;; IRIX*) ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the SGI C compiler" >&5 $as_echo_n "checking whether we are using the SGI C compiler... " >&6; } if ${bakefile_cv_c_compiler__SGI_COMPILER_VERSION+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef _SGI_COMPILER_VERSION choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : bakefile_cv_c_compiler__SGI_COMPILER_VERSION=yes else bakefile_cv_c_compiler__SGI_COMPILER_VERSION=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bakefile_cv_c_compiler__SGI_COMPILER_VERSION" >&5 $as_echo "$bakefile_cv_c_compiler__SGI_COMPILER_VERSION" >&6; } if test "x$bakefile_cv_c_compiler__SGI_COMPILER_VERSION" = "xyes"; then :; SGICC=yes else :; fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ;; Linux*) if test "$INTELCC" != "yes"; then ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the Sun C compiler" >&5 $as_echo_n "checking whether we are using the Sun C compiler... " >&6; } if ${bakefile_cv_c_compiler___SUNPRO_C+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __SUNPRO_C choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : bakefile_cv_c_compiler___SUNPRO_C=yes else bakefile_cv_c_compiler___SUNPRO_C=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bakefile_cv_c_compiler___SUNPRO_C" >&5 $as_echo "$bakefile_cv_c_compiler___SUNPRO_C" >&6; } if test "x$bakefile_cv_c_compiler___SUNPRO_C" = "xyes"; then :; SUNCC=yes else :; fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu fi ;; HP-UX*) ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the HP C compiler" >&5 $as_echo_n "checking whether we are using the HP C compiler... " >&6; } if ${bakefile_cv_c_compiler___HP_cc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __HP_cc choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : bakefile_cv_c_compiler___HP_cc=yes else bakefile_cv_c_compiler___HP_cc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bakefile_cv_c_compiler___HP_cc" >&5 $as_echo "$bakefile_cv_c_compiler___HP_cc" >&6; } if test "x$bakefile_cv_c_compiler___HP_cc" = "xyes"; then :; HPCC=yes else :; fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ;; OSF1) ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the Compaq C compiler" >&5 $as_echo_n "checking whether we are using the Compaq C compiler... " >&6; } if ${bakefile_cv_c_compiler___DECC+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __DECC choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : bakefile_cv_c_compiler___DECC=yes else bakefile_cv_c_compiler___DECC=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bakefile_cv_c_compiler___DECC" >&5 $as_echo "$bakefile_cv_c_compiler___DECC" >&6; } if test "x$bakefile_cv_c_compiler___DECC" = "xyes"; then :; COMPAQCC=yes else :; fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ;; SunOS) ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the Sun C compiler" >&5 $as_echo_n "checking whether we are using the Sun C compiler... " >&6; } if ${bakefile_cv_c_compiler___SUNPRO_C+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __SUNPRO_C choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : bakefile_cv_c_compiler___SUNPRO_C=yes else bakefile_cv_c_compiler___SUNPRO_C=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bakefile_cv_c_compiler___SUNPRO_C" >&5 $as_echo "$bakefile_cv_c_compiler___SUNPRO_C" >&6; } if test "x$bakefile_cv_c_compiler___SUNPRO_C" = "xyes"; then :; SUNCC=yes else :; fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ;; esac fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the Intel C++ compiler" >&5 $as_echo_n "checking whether we are using the Intel C++ compiler... " >&6; } if ${bakefile_cv_cxx_compiler___INTEL_COMPILER+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __INTEL_COMPILER choke me #endif ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : bakefile_cv_cxx_compiler___INTEL_COMPILER=yes else bakefile_cv_cxx_compiler___INTEL_COMPILER=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bakefile_cv_cxx_compiler___INTEL_COMPILER" >&5 $as_echo "$bakefile_cv_cxx_compiler___INTEL_COMPILER" >&6; } if test "x$bakefile_cv_cxx_compiler___INTEL_COMPILER" = "xyes"; then :; INTELCXX=yes else :; fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test "$INTELCXX" = "yes"; then ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using Intel C++ compiler v8 or later" >&5 $as_echo_n "checking whether we are using Intel C++ compiler v8 or later... " >&6; } if ${bakefile_cv_cxx_compiler___INTEL_COMPILER_lt_800+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __INTEL_COMPILER || __INTEL_COMPILER < 800 choke me #endif ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : bakefile_cv_cxx_compiler___INTEL_COMPILER_lt_800=yes else bakefile_cv_cxx_compiler___INTEL_COMPILER_lt_800=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bakefile_cv_cxx_compiler___INTEL_COMPILER_lt_800" >&5 $as_echo "$bakefile_cv_cxx_compiler___INTEL_COMPILER_lt_800" >&6; } if test "x$bakefile_cv_cxx_compiler___INTEL_COMPILER_lt_800" = "xyes"; then :; INTELCXX8=yes else :; fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using Intel C++ compiler v10 or later" >&5 $as_echo_n "checking whether we are using Intel C++ compiler v10 or later... " >&6; } if ${bakefile_cv_cxx_compiler___INTEL_COMPILER_lt_1000+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __INTEL_COMPILER || __INTEL_COMPILER < 1000 choke me #endif ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : bakefile_cv_cxx_compiler___INTEL_COMPILER_lt_1000=yes else bakefile_cv_cxx_compiler___INTEL_COMPILER_lt_1000=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bakefile_cv_cxx_compiler___INTEL_COMPILER_lt_1000" >&5 $as_echo "$bakefile_cv_cxx_compiler___INTEL_COMPILER_lt_1000" >&6; } if test "x$bakefile_cv_cxx_compiler___INTEL_COMPILER_lt_1000" = "xyes"; then :; INTELCXX10=yes else :; fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu fi if test "x$GCXX" != "xyes"; then case `uname -s` in AIX*) ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the IBM xlC C++ compiler" >&5 $as_echo_n "checking whether we are using the IBM xlC C++ compiler... " >&6; } if ${bakefile_cv_cxx_compiler___xlC__+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __xlC__ choke me #endif ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : bakefile_cv_cxx_compiler___xlC__=yes else bakefile_cv_cxx_compiler___xlC__=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bakefile_cv_cxx_compiler___xlC__" >&5 $as_echo "$bakefile_cv_cxx_compiler___xlC__" >&6; } if test "x$bakefile_cv_cxx_compiler___xlC__" = "xyes"; then :; XLCXX=yes else :; fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ;; Darwin) ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the IBM xlC C++ compiler" >&5 $as_echo_n "checking whether we are using the IBM xlC C++ compiler... " >&6; } if ${bakefile_cv_cxx_compiler___xlC__+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __xlC__ choke me #endif ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : bakefile_cv_cxx_compiler___xlC__=yes else bakefile_cv_cxx_compiler___xlC__=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bakefile_cv_cxx_compiler___xlC__" >&5 $as_echo "$bakefile_cv_cxx_compiler___xlC__" >&6; } if test "x$bakefile_cv_cxx_compiler___xlC__" = "xyes"; then :; XLCXX=yes else :; fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ;; IRIX*) ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the SGI C++ compiler" >&5 $as_echo_n "checking whether we are using the SGI C++ compiler... " >&6; } if ${bakefile_cv_cxx_compiler__SGI_COMPILER_VERSION+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef _SGI_COMPILER_VERSION choke me #endif ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : bakefile_cv_cxx_compiler__SGI_COMPILER_VERSION=yes else bakefile_cv_cxx_compiler__SGI_COMPILER_VERSION=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bakefile_cv_cxx_compiler__SGI_COMPILER_VERSION" >&5 $as_echo "$bakefile_cv_cxx_compiler__SGI_COMPILER_VERSION" >&6; } if test "x$bakefile_cv_cxx_compiler__SGI_COMPILER_VERSION" = "xyes"; then :; SGICXX=yes else :; fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ;; Linux*) if test "$INTELCXX" != "yes"; then ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the Sun C++ compiler" >&5 $as_echo_n "checking whether we are using the Sun C++ compiler... " >&6; } if ${bakefile_cv_cxx_compiler___SUNPRO_CC+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __SUNPRO_CC choke me #endif ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : bakefile_cv_cxx_compiler___SUNPRO_CC=yes else bakefile_cv_cxx_compiler___SUNPRO_CC=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bakefile_cv_cxx_compiler___SUNPRO_CC" >&5 $as_echo "$bakefile_cv_cxx_compiler___SUNPRO_CC" >&6; } if test "x$bakefile_cv_cxx_compiler___SUNPRO_CC" = "xyes"; then :; SUNCXX=yes else :; fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu fi ;; HP-UX*) ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the HP C++ compiler" >&5 $as_echo_n "checking whether we are using the HP C++ compiler... " >&6; } if ${bakefile_cv_cxx_compiler___HP_aCC+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __HP_aCC choke me #endif ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : bakefile_cv_cxx_compiler___HP_aCC=yes else bakefile_cv_cxx_compiler___HP_aCC=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bakefile_cv_cxx_compiler___HP_aCC" >&5 $as_echo "$bakefile_cv_cxx_compiler___HP_aCC" >&6; } if test "x$bakefile_cv_cxx_compiler___HP_aCC" = "xyes"; then :; HPCXX=yes else :; fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ;; OSF1) ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the Compaq C++ compiler" >&5 $as_echo_n "checking whether we are using the Compaq C++ compiler... " >&6; } if ${bakefile_cv_cxx_compiler___DECCXX+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __DECCXX choke me #endif ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : bakefile_cv_cxx_compiler___DECCXX=yes else bakefile_cv_cxx_compiler___DECCXX=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bakefile_cv_cxx_compiler___DECCXX" >&5 $as_echo "$bakefile_cv_cxx_compiler___DECCXX" >&6; } if test "x$bakefile_cv_cxx_compiler___DECCXX" = "xyes"; then :; COMPAQCXX=yes else :; fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ;; SunOS) ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the Sun C++ compiler" >&5 $as_echo_n "checking whether we are using the Sun C++ compiler... " >&6; } if ${bakefile_cv_cxx_compiler___SUNPRO_CC+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __SUNPRO_CC choke me #endif ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : bakefile_cv_cxx_compiler___SUNPRO_CC=yes else bakefile_cv_cxx_compiler___SUNPRO_CC=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bakefile_cv_cxx_compiler___SUNPRO_CC" >&5 $as_echo "$bakefile_cv_cxx_compiler___SUNPRO_CC" >&6; } if test "x$bakefile_cv_cxx_compiler___SUNPRO_CC" = "xyes"; then :; SUNCXX=yes else :; fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ;; esac fi # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' if test "x$BAKEFILE_HOST" = "x"; then if test "x${host}" = "x" ; then as_fn_error $? "You must call the autoconf \"CANONICAL_HOST\" macro in your configure.ac (or .in) file." "$LINENO" 5 fi BAKEFILE_HOST="${host}" fi if test "x$BAKEFILE_CHECK_BASICS" != "xno"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$RANLIB"; then ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi RANLIB=$ac_cv_prog_RANLIB if test -n "$RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 $as_echo "$RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_RANLIB"; then ac_ct_RANLIB=$RANLIB # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_RANLIB"; then ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB if test -n "$ac_ct_RANLIB"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 $as_echo "$ac_ct_RANLIB" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_RANLIB" = x; then RANLIB=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac RANLIB=$ac_ct_RANLIB fi else RANLIB="$ac_cv_prog_RANLIB" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 $as_echo_n "checking whether ln -s works... " >&6; } LN_S=$as_ln_s if test "$LN_S" = "ln -s"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 $as_echo "no, using $LN_S" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi if test "x$SUNCXX" = "xyes"; then AR=$CXX AROPTIONS="-xar -o" elif test "x$SGICC" = "xyes"; then AR=$CXX AROPTIONS="-ar -o" else if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AR"; then ac_cv_prog_AR="$AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="${ac_tool_prefix}ar" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AR=$ac_cv_prog_AR if test -n "$AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 $as_echo "$AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_AR"; then ac_ct_AR=$AR # Extract the first word of "ar", so it can be a program name with args. set dummy ar; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="ar" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_AR=$ac_cv_prog_ac_ct_AR if test -n "$ac_ct_AR"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 $as_echo "$ac_ct_AR" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_AR" = x; then AR="ar" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac AR=$ac_ct_AR fi else AR="$ac_cv_prog_AR" fi AROPTIONS=rc fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}nm", so it can be a program name with args. set dummy ${ac_tool_prefix}nm; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_NM+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$NM"; then ac_cv_prog_NM="$NM" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_NM="${ac_tool_prefix}nm" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi NM=$ac_cv_prog_NM if test -n "$NM"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NM" >&5 $as_echo "$NM" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_NM"; then ac_ct_NM=$NM # Extract the first word of "nm", so it can be a program name with args. set dummy nm; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_NM+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_NM"; then ac_cv_prog_ac_ct_NM="$ac_ct_NM" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_NM="nm" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_NM=$ac_cv_prog_ac_ct_NM if test -n "$ac_ct_NM"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NM" >&5 $as_echo "$ac_ct_NM" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_NM" = x; then NM=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac NM=$ac_ct_NM fi else NM="$ac_cv_prog_NM" fi INSTALL_DIR="mkdir -p" LDFLAGS_GUI= case ${BAKEFILE_HOST} in *-*-cygwin* | *-*-mingw32* | *-*-mingw64* ) LDFLAGS_GUI="-mwindows" esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking if make is GNU make" >&5 $as_echo_n "checking if make is GNU make... " >&6; } if ${bakefile_cv_prog_makeisgnu+:} false; then : $as_echo_n "(cached) " >&6 else if ( ${SHELL-sh} -c "${MAKE-make} --version" 2> /dev/null | egrep -s GNU > /dev/null); then bakefile_cv_prog_makeisgnu="yes" else bakefile_cv_prog_makeisgnu="no" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bakefile_cv_prog_makeisgnu" >&5 $as_echo "$bakefile_cv_prog_makeisgnu" >&6; } if test "x$bakefile_cv_prog_makeisgnu" = "xyes"; then IF_GNU_MAKE="" else IF_GNU_MAKE="#" fi PLATFORM_UNIX=0 PLATFORM_WIN32=0 PLATFORM_MAC=0 PLATFORM_MACOS=0 PLATFORM_MACOSX=0 PLATFORM_BEOS=0 if test "x$BAKEFILE_FORCE_PLATFORM" = "x"; then case "${BAKEFILE_HOST}" in *-*-mingw32* ) PLATFORM_WIN32=1 ;; *-*-darwin* ) PLATFORM_MAC=1 PLATFORM_MACOSX=1 ;; *-*-beos* ) PLATFORM_BEOS=1 ;; powerpc-apple-macos* ) PLATFORM_MAC=1 PLATFORM_MACOS=1 ;; * ) PLATFORM_UNIX=1 ;; esac else case "$BAKEFILE_FORCE_PLATFORM" in win32 ) PLATFORM_WIN32=1 ;; darwin ) PLATFORM_MAC=1 PLATFORM_MACOSX=1 ;; unix ) PLATFORM_UNIX=1 ;; beos ) PLATFORM_BEOS=1 ;; * ) as_fn_error $? "Unknown platform: $BAKEFILE_FORCE_PLATFORM" "$LINENO" 5 ;; esac fi case "${BAKEFILE_HOST}" in *-*-darwin* ) if test "x$GCC" = "xyes"; then CFLAGS="$CFLAGS -fno-common" CXXFLAGS="$CXXFLAGS -fno-common" fi if test "x$XLCC" = "xyes"; then CFLAGS="$CFLAGS -qnocommon" CXXFLAGS="$CXXFLAGS -qnocommon" fi ;; i*86-*-beos* ) LDFLAGS="-L/boot/develop/lib/x86 $LDFLAGS" ;; esac SO_SUFFIX="so" SO_SUFFIX_MODULE="so" EXEEXT="" LIBPREFIX="lib" LIBEXT=".a" DLLPREFIX="lib" DLLPREFIX_MODULE="" DLLIMP_SUFFIX="" dlldir="$libdir" case "${BAKEFILE_HOST}" in ia64-hp-hpux* ) ;; *-hp-hpux* ) SO_SUFFIX="sl" SO_SUFFIX_MODULE="sl" ;; *-*-aix* ) SO_SUFFIX="a" SO_SUFFIX_MODULE="a" ;; *-*-cygwin* ) SO_SUFFIX="dll" SO_SUFFIX_MODULE="dll" DLLIMP_SUFFIX="dll.a" EXEEXT=".exe" DLLPREFIX="cyg" dlldir="$bindir" ;; *-*-mingw32* ) SO_SUFFIX="dll" SO_SUFFIX_MODULE="dll" DLLIMP_SUFFIX="dll.a" EXEEXT=".exe" DLLPREFIX="" dlldir="$bindir" ;; *-*-darwin* ) SO_SUFFIX="dylib" SO_SUFFIX_MODULE="bundle" ;; esac if test "x$DLLIMP_SUFFIX" = "x" ; then DLLIMP_SUFFIX="$SO_SUFFIX" fi PIC_FLAG="" if test "x$GCC" = "xyes"; then PIC_FLAG="-fPIC" fi SHARED_LD_CC="\$(CC) -shared ${PIC_FLAG} -o" SHARED_LD_CXX="\$(CXX) -shared ${PIC_FLAG} -o" WINDOWS_IMPLIB=0 case "${BAKEFILE_HOST}" in *-hp-hpux* ) if test "x$GCC" != "xyes"; then LDFLAGS="$LDFLAGS -L/usr/lib" SHARED_LD_CC="${CC} -b -o" SHARED_LD_CXX="${CXX} -b -o" PIC_FLAG="+Z" fi ;; *-*-linux* ) if test "$INTELCC" = "yes" -a "$INTELCC8" != "yes"; then PIC_FLAG="-KPIC" elif test "x$SUNCXX" = "xyes"; then SHARED_LD_CC="${CC} -G -o" SHARED_LD_CXX="${CXX} -G -o" PIC_FLAG="-KPIC" fi ;; *-*-solaris2* ) if test "x$SUNCXX" = xyes ; then SHARED_LD_CC="${CC} -G -o" SHARED_LD_CXX="${CXX} -G -o" PIC_FLAG="-KPIC" fi ;; *-*-darwin* ) D='$' cat <shared-ld-sh #!/bin/sh #----------------------------------------------------------------------------- #-- Name: distrib/mac/shared-ld-sh #-- Purpose: Link a mach-o dynamic shared library for Darwin / Mac OS X #-- Author: Gilles Depeyrot #-- Copyright: (c) 2002 Gilles Depeyrot #-- Licence: any use permitted #----------------------------------------------------------------------------- verbose=0 args="" objects="" linking_flag="-dynamiclib" ldargs="-r -keep_private_externs -nostdlib" if test "x${D}CXX" = "x"; then CXX="c++" fi while test ${D}# -gt 0; do case ${D}1 in -v) verbose=1 ;; -o|-compatibility_version|-current_version|-framework|-undefined|-install_name) # collect these options and values args="${D}{args} ${D}1 ${D}2" shift ;; -arch|-isysroot) # collect these options and values ldargs="${D}{ldargs} ${D}1 ${D}2" shift ;; -s|-Wl,*) # collect these load args ldargs="${D}{ldargs} ${D}1" ;; -l*|-L*|-flat_namespace|-headerpad_max_install_names) # collect these options args="${D}{args} ${D}1" ;; -dynamiclib|-bundle) linking_flag="${D}1" ;; -*) echo "shared-ld: unhandled option '${D}1'" exit 1 ;; *.o | *.a | *.dylib) # collect object files objects="${D}{objects} ${D}1" ;; *) echo "shared-ld: unhandled argument '${D}1'" exit 1 ;; esac shift done status=0 # # Link one module containing all the others # if test ${D}{verbose} = 1; then echo "${D}CXX ${D}{ldargs} ${D}{objects} -o master.${D}${D}.o" fi ${D}CXX ${D}{ldargs} ${D}{objects} -o master.${D}${D}.o status=${D}? # # Link the shared library from the single module created, but only if the # previous command didn't fail: # if test ${D}{status} = 0; then if test ${D}{verbose} = 1; then echo "${D}CXX ${D}{linking_flag} master.${D}${D}.o ${D}{args}" fi ${D}CXX ${D}{linking_flag} master.${D}${D}.o ${D}{args} status=${D}? fi # # Remove intermediate module # rm -f master.${D}${D}.o exit ${D}status EOF chmod +x shared-ld-sh SHARED_LD_MODULE_CC="`pwd`/shared-ld-sh -bundle -headerpad_max_install_names -o" SHARED_LD_MODULE_CXX="CXX=\"\$(CXX)\" $SHARED_LD_MODULE_CC" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gcc 3.1 or later" >&5 $as_echo_n "checking for gcc 3.1 or later... " >&6; } if ${bakefile_cv_gcc31+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #if (__GNUC__ < 3) || \ ((__GNUC__ == 3) && (__GNUC_MINOR__ < 1)) This is old gcc #endif ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : bakefile_cv_gcc31=yes else bakefile_cv_gcc31=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $bakefile_cv_gcc31" >&5 $as_echo "$bakefile_cv_gcc31" >&6; } if test "$bakefile_cv_gcc31" = "no"; then SHARED_LD_CC="`pwd`/shared-ld-sh -dynamiclib -headerpad_max_install_names -o" SHARED_LD_CXX="$SHARED_LD_CC" else SHARED_LD_CC="\${CC} -dynamiclib -single_module -headerpad_max_install_names -o" SHARED_LD_CXX="\${CXX} -dynamiclib -single_module -headerpad_max_install_names -o" fi if test "x$GCC" = "xyes"; then PIC_FLAG="-dynamic -fPIC" fi if test "x$XLCC" = "xyes"; then PIC_FLAG="-dynamic -DPIC" fi ;; *-*-aix* ) if test "x$GCC" = "xyes"; then PIC_FLAG="" case "${BAKEFILE_HOST}" in *-*-aix5* ) LD_EXPFULL="-Wl,-bexpfull" ;; esac SHARED_LD_CC="\$(CC) -shared $LD_EXPFULL -o" SHARED_LD_CXX="\$(CXX) -shared $LD_EXPFULL -o" else # Extract the first word of "makeC++SharedLib", so it can be a program name with args. set dummy makeC++SharedLib; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AIX_CXX_LD+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AIX_CXX_LD"; then ac_cv_prog_AIX_CXX_LD="$AIX_CXX_LD" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AIX_CXX_LD="makeC++SharedLib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_AIX_CXX_LD" && ac_cv_prog_AIX_CXX_LD="/usr/lpp/xlC/bin/makeC++SharedLib" fi fi AIX_CXX_LD=$ac_cv_prog_AIX_CXX_LD if test -n "$AIX_CXX_LD"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AIX_CXX_LD" >&5 $as_echo "$AIX_CXX_LD" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi SHARED_LD_CC="$AIX_CC_LD -p 0 -o" SHARED_LD_CXX="$AIX_CXX_LD -p 0 -o" fi ;; *-*-beos* ) SHARED_LD_CC="${LD} -nostart -o" SHARED_LD_CXX="${LD} -nostart -o" ;; *-*-irix* ) if test "x$GCC" != "xyes"; then PIC_FLAG="-KPIC" fi ;; *-*-cygwin* | *-*-mingw32* | *-*-mingw64* ) PIC_FLAG="" SHARED_LD_CC="\$(CC) -shared -o" SHARED_LD_CXX="\$(CXX) -shared -o" WINDOWS_IMPLIB=1 ;; powerpc-apple-macos* | \ *-*-freebsd* | *-*-openbsd* | *-*-haiku* | *-*-netbsd* | *-*-gnu* | *-*-k*bsd*-gnu | \ *-*-mirbsd* | \ *-*-sunos4* | \ *-*-osf* | \ *-*-dgux5* | \ *-*-sysv5* ) ;; *) as_fn_error $? "unknown system type $BAKEFILE_HOST." "$LINENO" 5 esac if test "x$PIC_FLAG" != "x" ; then PIC_FLAG="$PIC_FLAG -DPIC" fi if test "x$SHARED_LD_MODULE_CC" = "x" ; then SHARED_LD_MODULE_CC="$SHARED_LD_CC" fi if test "x$SHARED_LD_MODULE_CXX" = "x" ; then SHARED_LD_MODULE_CXX="$SHARED_LD_CXX" fi USE_SOVERSION=0 USE_SOVERLINUX=0 USE_SOVERSOLARIS=0 USE_SOVERCYGWIN=0 USE_SOTWOSYMLINKS=0 USE_MACVERSION=0 SONAME_FLAG= case "${BAKEFILE_HOST}" in *-*-linux* | *-*-freebsd* | *-*-openbsd* | *-*-haiku* | *-*-netbsd* | \ *-*-k*bsd*-gnu | *-*-mirbsd* | *-*-gnu* ) if test "x$SUNCXX" = "xyes"; then SONAME_FLAG="-h " else SONAME_FLAG="-Wl,-soname," fi USE_SOVERSION=1 USE_SOVERLINUX=1 USE_SOTWOSYMLINKS=1 ;; *-*-solaris2* ) SONAME_FLAG="-h " USE_SOVERSION=1 USE_SOVERSOLARIS=1 ;; *-*-darwin* ) USE_MACVERSION=1 USE_SOVERSION=1 USE_SOTWOSYMLINKS=1 ;; *-*-cygwin* ) USE_SOVERSION=1 USE_SOVERCYGWIN=1 ;; esac # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then : enableval=$enable_dependency_tracking; bk_use_trackdeps="$enableval" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dependency tracking method" >&5 $as_echo_n "checking for dependency tracking method... " >&6; } BK_DEPS="" if test "x$bk_use_trackdeps" = "xno" ; then DEPS_TRACKING=0 { $as_echo "$as_me:${as_lineno-$LINENO}: result: disabled" >&5 $as_echo "disabled" >&6; } else DEPS_TRACKING=1 if test "x$GCC" = "xyes"; then DEPSMODE=gcc DEPSFLAG="-MMD" { $as_echo "$as_me:${as_lineno-$LINENO}: result: gcc" >&5 $as_echo "gcc" >&6; } elif test "x$SUNCC" = "xyes"; then DEPSMODE=unixcc DEPSFLAG="-xM1" { $as_echo "$as_me:${as_lineno-$LINENO}: result: Sun cc" >&5 $as_echo "Sun cc" >&6; } elif test "x$SGICC" = "xyes"; then DEPSMODE=unixcc DEPSFLAG="-M" { $as_echo "$as_me:${as_lineno-$LINENO}: result: SGI cc" >&5 $as_echo "SGI cc" >&6; } elif test "x$HPCC" = "xyes"; then DEPSMODE=unixcc DEPSFLAG="+make" { $as_echo "$as_me:${as_lineno-$LINENO}: result: HP cc" >&5 $as_echo "HP cc" >&6; } elif test "x$COMPAQCC" = "xyes"; then DEPSMODE=gcc DEPSFLAG="-MD" { $as_echo "$as_me:${as_lineno-$LINENO}: result: Compaq cc" >&5 $as_echo "Compaq cc" >&6; } else DEPS_TRACKING=0 { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 $as_echo "none" >&6; } fi if test $DEPS_TRACKING = 1 ; then D='$' cat <bk-deps #!/bin/sh # This script is part of Bakefile (http://www.bakefile.org) autoconf # script. It is used to track C/C++ files dependencies in portable way. # # Permission is given to use this file in any way. DEPSMODE=${DEPSMODE} DEPSFLAG="${DEPSFLAG}" DEPSDIRBASE=.deps if test ${D}DEPSMODE = gcc ; then ${D}* ${D}{DEPSFLAG} status=${D}? # determine location of created files: while test ${D}# -gt 0; do case "${D}1" in -o ) shift objfile=${D}1 ;; -* ) ;; * ) srcfile=${D}1 ;; esac shift done objfilebase=\`basename ${D}objfile\` builddir=\`dirname ${D}objfile\` depfile=\`basename ${D}srcfile | sed -e 's/\\..*${D}/.d/g'\` depobjname=\`echo ${D}depfile |sed -e 's/\\.d/.o/g'\` depsdir=${D}builddir/${D}DEPSDIRBASE mkdir -p ${D}depsdir # if the compiler failed, we're done: if test ${D}{status} != 0 ; then rm -f ${D}depfile exit ${D}{status} fi # move created file to the location we want it in: if test -f ${D}depfile ; then sed -e "s,${D}depobjname:,${D}objfile:,g" ${D}depfile >${D}{depsdir}/${D}{objfilebase}.d rm -f ${D}depfile else # "g++ -MMD -o fooobj.o foosrc.cpp" produces fooobj.d depfile=\`echo "${D}objfile" | sed -e 's/\\..*${D}/.d/g'\` if test ! -f ${D}depfile ; then # "cxx -MD -o fooobj.o foosrc.cpp" creates fooobj.o.d (Compaq C++) depfile="${D}objfile.d" fi if test -f ${D}depfile ; then sed -e "\\,^${D}objfile,!s,${D}depobjname:,${D}objfile:,g" ${D}depfile >${D}{depsdir}/${D}{objfilebase}.d rm -f ${D}depfile fi fi exit 0 elif test ${D}DEPSMODE = unixcc; then ${D}* || exit ${D}? # Run compiler again with deps flag and redirect into the dep file. # It doesn't work if the '-o FILE' option is used, but without it the # dependency file will contain the wrong name for the object. So it is # removed from the command line, and the dep file is fixed with sed. cmd="" while test ${D}# -gt 0; do case "${D}1" in -o ) shift objfile=${D}1 ;; * ) eval arg${D}#=\\${D}1 cmd="${D}cmd \\${D}arg${D}#" ;; esac shift done objfilebase=\`basename ${D}objfile\` builddir=\`dirname ${D}objfile\` depsdir=${D}builddir/${D}DEPSDIRBASE mkdir -p ${D}depsdir eval "${D}cmd ${D}DEPSFLAG" | sed "s|.*:|${D}objfile:|" >${D}{depsdir}/${D}{objfilebase}.d exit 0 else ${D}* exit ${D}? fi EOF chmod +x bk-deps BK_DEPS="`pwd`/bk-deps" fi fi case ${BAKEFILE_HOST} in *-*-cygwin* | *-*-mingw32* | *-*-mingw64* ) if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}windres", so it can be a program name with args. set dummy ${ac_tool_prefix}windres; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_WINDRES+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$WINDRES"; then ac_cv_prog_WINDRES="$WINDRES" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_WINDRES="${ac_tool_prefix}windres" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi WINDRES=$ac_cv_prog_WINDRES if test -n "$WINDRES"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $WINDRES" >&5 $as_echo "$WINDRES" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_WINDRES"; then ac_ct_WINDRES=$WINDRES # Extract the first word of "windres", so it can be a program name with args. set dummy windres; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_WINDRES+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_WINDRES"; then ac_cv_prog_ac_ct_WINDRES="$ac_ct_WINDRES" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_WINDRES="windres" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_WINDRES=$ac_cv_prog_ac_ct_WINDRES if test -n "$ac_ct_WINDRES"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_WINDRES" >&5 $as_echo "$ac_ct_WINDRES" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_WINDRES" = x; then WINDRES="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac WINDRES=$ac_ct_WINDRES fi else WINDRES="$ac_cv_prog_WINDRES" fi ;; esac BAKEFILE_BAKEFILE_M4_VERSION="0.2.11" BAKEFILE_AUTOCONF_INC_M4_VERSION="0.2.11" COND_BUILD_debug="#" if test "x$BUILD" = "xdebug" ; then COND_BUILD_debug="" fi COND_BUILD_release="#" if test "x$BUILD" = "xrelease" ; then COND_BUILD_release="" fi COND_DEPS_TRACKING_0="#" if test "x$DEPS_TRACKING" = "x0" ; then COND_DEPS_TRACKING_0="" fi COND_DEPS_TRACKING_1="#" if test "x$DEPS_TRACKING" = "x1" ; then COND_DEPS_TRACKING_1="" fi COND_PLATFORM_MACOSX_0_USE_SOVERCYGWIN_0_USE_SOVERSION_1="#" if test "x$PLATFORM_MACOSX" = "x0" -a "x$USE_SOVERCYGWIN" = "x0" -a "x$USE_SOVERSION" = "x1" ; then COND_PLATFORM_MACOSX_0_USE_SOVERCYGWIN_0_USE_SOVERSION_1="" fi COND_PLATFORM_MACOSX_0_USE_SOVERSION_1="#" if test "x$PLATFORM_MACOSX" = "x0" -a "x$USE_SOVERSION" = "x1" ; then COND_PLATFORM_MACOSX_0_USE_SOVERSION_1="" fi COND_PLATFORM_MACOSX_1="#" if test "x$PLATFORM_MACOSX" = "x1" ; then COND_PLATFORM_MACOSX_1="" fi COND_PLATFORM_MACOSX_1_USE_SOVERSION_1="#" if test "x$PLATFORM_MACOSX" = "x1" -a "x$USE_SOVERSION" = "x1" ; then COND_PLATFORM_MACOSX_1_USE_SOVERSION_1="" fi COND_PLATFORM_OS2_1="#" if test "x$PLATFORM_OS2" = "x1" ; then COND_PLATFORM_OS2_1="" fi COND_USE_SOTWOSYMLINKS_1="#" if test "x$USE_SOTWOSYMLINKS" = "x1" ; then COND_USE_SOTWOSYMLINKS_1="" fi COND_USE_SOVERCYGWIN_1_USE_SOVERSION_1="#" if test "x$USE_SOVERCYGWIN" = "x1" -a "x$USE_SOVERSION" = "x1" ; then COND_USE_SOVERCYGWIN_1_USE_SOVERSION_1="" fi COND_USE_SOVERLINUX_1="#" if test "x$USE_SOVERLINUX" = "x1" ; then COND_USE_SOVERLINUX_1="" fi COND_USE_SOVERSION_0="#" if test "x$USE_SOVERSION" = "x0" ; then COND_USE_SOVERSION_0="" fi COND_USE_SOVERSION_1_USE_SOVERSOLARIS_1="#" if test "x$USE_SOVERSION" = "x1" -a "x$USE_SOVERSOLARIS" = "x1" ; then COND_USE_SOVERSION_1_USE_SOVERSOLARIS_1="" fi COND_USE_SOVERSOLARIS_1="#" if test "x$USE_SOVERSOLARIS" = "x1" ; then COND_USE_SOVERSOLARIS_1="" fi COND_WINDOWS_IMPLIB_1="#" if test "x$WINDOWS_IMPLIB" = "x1" ; then COND_WINDOWS_IMPLIB_1="" fi if test "$BAKEFILE_AUTOCONF_INC_M4_VERSION" = "" ; then as_fn_error $? "No version found in autoconf_inc.m4 - bakefile macro was changed to take additional argument, perhaps configure.in wasn't updated (see the documentation)?" "$LINENO" 5 fi if test "$BAKEFILE_BAKEFILE_M4_VERSION" != "$BAKEFILE_AUTOCONF_INC_M4_VERSION" ; then as_fn_error $? "Versions of Bakefile used to generate makefiles ($BAKEFILE_AUTOCONF_INC_M4_VERSION) and configure ($BAKEFILE_BAKEFILE_M4_VERSION) do not match." "$LINENO" 5 fi # # Configure process complete; write out files generated from *.in. # ac_config_files="$ac_config_files doc/userman/userman.dbx install.hta lib/Doxyfile lib/mysql++.h ssx/Doxyfile abi.xml mysql++.spec Makefile version" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' DEFS=-DHAVE_CONFIG_H ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by mysql++ $as_me 3.2.5, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac case $ac_config_headers in *" "*) set x $ac_config_headers; shift; ac_config_headers=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_headers="$ac_config_headers" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE --header=FILE[:TEMPLATE] instantiate the configuration header FILE Configuration files: $config_files Configuration headers: $config_headers Configuration commands: $config_commands Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ mysql++ config.status 3.2.5 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --header | --heade | --head | --hea ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac as_fn_append CONFIG_HEADERS " '$ac_optarg'" ac_need_defaults=false;; --he | --h) # Conflict between --help and --header as_fn_error $? "ambiguous option: \`$1' Try \`$0 --help' for more information.";; --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' shared_archive_member_spec='`$ECHO "$shared_archive_member_spec" | $SED "$delay_single_quote_subst"`' SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_import='`$ECHO "$lt_cv_sys_global_symbol_to_import" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' lt_cv_nm_interface='`$ECHO "$lt_cv_nm_interface" | $SED "$delay_single_quote_subst"`' nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' lt_cv_truncate_bin='`$ECHO "$lt_cv_truncate_bin" | $SED "$delay_single_quote_subst"`' objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' configure_time_dlsearch_path='`$ECHO "$configure_time_dlsearch_path" | $SED "$delay_single_quote_subst"`' configure_time_lt_sys_library_path='`$ECHO "$configure_time_lt_sys_library_path" | $SED "$delay_single_quote_subst"`' hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' compiler_lib_search_dirs='`$ECHO "$compiler_lib_search_dirs" | $SED "$delay_single_quote_subst"`' predep_objects='`$ECHO "$predep_objects" | $SED "$delay_single_quote_subst"`' postdep_objects='`$ECHO "$postdep_objects" | $SED "$delay_single_quote_subst"`' predeps='`$ECHO "$predeps" | $SED "$delay_single_quote_subst"`' postdeps='`$ECHO "$postdeps" | $SED "$delay_single_quote_subst"`' compiler_lib_search_path='`$ECHO "$compiler_lib_search_path" | $SED "$delay_single_quote_subst"`' LD_CXX='`$ECHO "$LD_CXX" | $SED "$delay_single_quote_subst"`' reload_flag_CXX='`$ECHO "$reload_flag_CXX" | $SED "$delay_single_quote_subst"`' reload_cmds_CXX='`$ECHO "$reload_cmds_CXX" | $SED "$delay_single_quote_subst"`' old_archive_cmds_CXX='`$ECHO "$old_archive_cmds_CXX" | $SED "$delay_single_quote_subst"`' compiler_CXX='`$ECHO "$compiler_CXX" | $SED "$delay_single_quote_subst"`' GCC_CXX='`$ECHO "$GCC_CXX" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "$lt_prog_compiler_no_builtin_flag_CXX" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_pic_CXX='`$ECHO "$lt_prog_compiler_pic_CXX" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_wl_CXX='`$ECHO "$lt_prog_compiler_wl_CXX" | $SED "$delay_single_quote_subst"`' lt_prog_compiler_static_CXX='`$ECHO "$lt_prog_compiler_static_CXX" | $SED "$delay_single_quote_subst"`' lt_cv_prog_compiler_c_o_CXX='`$ECHO "$lt_cv_prog_compiler_c_o_CXX" | $SED "$delay_single_quote_subst"`' archive_cmds_need_lc_CXX='`$ECHO "$archive_cmds_need_lc_CXX" | $SED "$delay_single_quote_subst"`' enable_shared_with_static_runtimes_CXX='`$ECHO "$enable_shared_with_static_runtimes_CXX" | $SED "$delay_single_quote_subst"`' export_dynamic_flag_spec_CXX='`$ECHO "$export_dynamic_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' whole_archive_flag_spec_CXX='`$ECHO "$whole_archive_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' compiler_needs_object_CXX='`$ECHO "$compiler_needs_object_CXX" | $SED "$delay_single_quote_subst"`' old_archive_from_new_cmds_CXX='`$ECHO "$old_archive_from_new_cmds_CXX" | $SED "$delay_single_quote_subst"`' old_archive_from_expsyms_cmds_CXX='`$ECHO "$old_archive_from_expsyms_cmds_CXX" | $SED "$delay_single_quote_subst"`' archive_cmds_CXX='`$ECHO "$archive_cmds_CXX" | $SED "$delay_single_quote_subst"`' archive_expsym_cmds_CXX='`$ECHO "$archive_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`' module_cmds_CXX='`$ECHO "$module_cmds_CXX" | $SED "$delay_single_quote_subst"`' module_expsym_cmds_CXX='`$ECHO "$module_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`' with_gnu_ld_CXX='`$ECHO "$with_gnu_ld_CXX" | $SED "$delay_single_quote_subst"`' allow_undefined_flag_CXX='`$ECHO "$allow_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`' no_undefined_flag_CXX='`$ECHO "$no_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`' hardcode_libdir_flag_spec_CXX='`$ECHO "$hardcode_libdir_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' hardcode_libdir_separator_CXX='`$ECHO "$hardcode_libdir_separator_CXX" | $SED "$delay_single_quote_subst"`' hardcode_direct_CXX='`$ECHO "$hardcode_direct_CXX" | $SED "$delay_single_quote_subst"`' hardcode_direct_absolute_CXX='`$ECHO "$hardcode_direct_absolute_CXX" | $SED "$delay_single_quote_subst"`' hardcode_minus_L_CXX='`$ECHO "$hardcode_minus_L_CXX" | $SED "$delay_single_quote_subst"`' hardcode_shlibpath_var_CXX='`$ECHO "$hardcode_shlibpath_var_CXX" | $SED "$delay_single_quote_subst"`' hardcode_automatic_CXX='`$ECHO "$hardcode_automatic_CXX" | $SED "$delay_single_quote_subst"`' inherit_rpath_CXX='`$ECHO "$inherit_rpath_CXX" | $SED "$delay_single_quote_subst"`' link_all_deplibs_CXX='`$ECHO "$link_all_deplibs_CXX" | $SED "$delay_single_quote_subst"`' always_export_symbols_CXX='`$ECHO "$always_export_symbols_CXX" | $SED "$delay_single_quote_subst"`' export_symbols_cmds_CXX='`$ECHO "$export_symbols_cmds_CXX" | $SED "$delay_single_quote_subst"`' exclude_expsyms_CXX='`$ECHO "$exclude_expsyms_CXX" | $SED "$delay_single_quote_subst"`' include_expsyms_CXX='`$ECHO "$include_expsyms_CXX" | $SED "$delay_single_quote_subst"`' prelink_cmds_CXX='`$ECHO "$prelink_cmds_CXX" | $SED "$delay_single_quote_subst"`' postlink_cmds_CXX='`$ECHO "$postlink_cmds_CXX" | $SED "$delay_single_quote_subst"`' file_list_spec_CXX='`$ECHO "$file_list_spec_CXX" | $SED "$delay_single_quote_subst"`' hardcode_action_CXX='`$ECHO "$hardcode_action_CXX" | $SED "$delay_single_quote_subst"`' compiler_lib_search_dirs_CXX='`$ECHO "$compiler_lib_search_dirs_CXX" | $SED "$delay_single_quote_subst"`' predep_objects_CXX='`$ECHO "$predep_objects_CXX" | $SED "$delay_single_quote_subst"`' postdep_objects_CXX='`$ECHO "$postdep_objects_CXX" | $SED "$delay_single_quote_subst"`' predeps_CXX='`$ECHO "$predeps_CXX" | $SED "$delay_single_quote_subst"`' postdeps_CXX='`$ECHO "$postdeps_CXX" | $SED "$delay_single_quote_subst"`' compiler_lib_search_path_CXX='`$ECHO "$compiler_lib_search_path_CXX" | $SED "$delay_single_quote_subst"`' LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$1 _LTECHO_EOF' } # Quote evaled strings. for var in SHELL \ ECHO \ PATH_SEPARATOR \ SED \ GREP \ EGREP \ FGREP \ LD \ NM \ LN_S \ lt_SP2NL \ lt_NL2SP \ reload_flag \ OBJDUMP \ deplibs_check_method \ file_magic_cmd \ file_magic_glob \ want_nocaseglob \ DLLTOOL \ sharedlib_from_linklib_cmd \ AR \ AR_FLAGS \ archiver_list_spec \ STRIP \ RANLIB \ CC \ CFLAGS \ compiler \ lt_cv_sys_global_symbol_pipe \ lt_cv_sys_global_symbol_to_cdecl \ lt_cv_sys_global_symbol_to_import \ lt_cv_sys_global_symbol_to_c_name_address \ lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ lt_cv_nm_interface \ nm_file_list_spec \ lt_cv_truncate_bin \ lt_prog_compiler_no_builtin_flag \ lt_prog_compiler_pic \ lt_prog_compiler_wl \ lt_prog_compiler_static \ lt_cv_prog_compiler_c_o \ need_locks \ MANIFEST_TOOL \ DSYMUTIL \ NMEDIT \ LIPO \ OTOOL \ OTOOL64 \ shrext_cmds \ export_dynamic_flag_spec \ whole_archive_flag_spec \ compiler_needs_object \ with_gnu_ld \ allow_undefined_flag \ no_undefined_flag \ hardcode_libdir_flag_spec \ hardcode_libdir_separator \ exclude_expsyms \ include_expsyms \ file_list_spec \ variables_saved_for_relink \ libname_spec \ library_names_spec \ soname_spec \ install_override_mode \ finish_eval \ old_striplib \ striplib \ compiler_lib_search_dirs \ predep_objects \ postdep_objects \ predeps \ postdeps \ compiler_lib_search_path \ LD_CXX \ reload_flag_CXX \ compiler_CXX \ lt_prog_compiler_no_builtin_flag_CXX \ lt_prog_compiler_pic_CXX \ lt_prog_compiler_wl_CXX \ lt_prog_compiler_static_CXX \ lt_cv_prog_compiler_c_o_CXX \ export_dynamic_flag_spec_CXX \ whole_archive_flag_spec_CXX \ compiler_needs_object_CXX \ with_gnu_ld_CXX \ allow_undefined_flag_CXX \ no_undefined_flag_CXX \ hardcode_libdir_flag_spec_CXX \ hardcode_libdir_separator_CXX \ exclude_expsyms_CXX \ include_expsyms_CXX \ file_list_spec_CXX \ compiler_lib_search_dirs_CXX \ predep_objects_CXX \ postdep_objects_CXX \ predeps_CXX \ postdeps_CXX \ compiler_lib_search_path_CXX; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in reload_cmds \ old_postinstall_cmds \ old_postuninstall_cmds \ old_archive_cmds \ extract_expsyms_cmds \ old_archive_from_new_cmds \ old_archive_from_expsyms_cmds \ archive_cmds \ archive_expsym_cmds \ module_cmds \ module_expsym_cmds \ export_symbols_cmds \ prelink_cmds \ postlink_cmds \ postinstall_cmds \ postuninstall_cmds \ finish_cmds \ sys_lib_search_path_spec \ configure_time_dlsearch_path \ configure_time_lt_sys_library_path \ reload_cmds_CXX \ old_archive_cmds_CXX \ old_archive_from_new_cmds_CXX \ old_archive_from_expsyms_cmds_CXX \ archive_cmds_CXX \ archive_expsym_cmds_CXX \ module_cmds_CXX \ module_expsym_cmds_CXX \ export_symbols_cmds_CXX \ prelink_cmds_CXX \ postlink_cmds_CXX; do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[\\\\\\\`\\"\\\$]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done ac_aux_dir='$ac_aux_dir' # See if we are running on zsh, and set the options that allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi PACKAGE='$PACKAGE' VERSION='$VERSION' RM='$RM' ofile='$ofile' _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; "doc/userman/userman.dbx") CONFIG_FILES="$CONFIG_FILES doc/userman/userman.dbx" ;; "install.hta") CONFIG_FILES="$CONFIG_FILES install.hta" ;; "lib/Doxyfile") CONFIG_FILES="$CONFIG_FILES lib/Doxyfile" ;; "lib/mysql++.h") CONFIG_FILES="$CONFIG_FILES lib/mysql++.h" ;; "ssx/Doxyfile") CONFIG_FILES="$CONFIG_FILES ssx/Doxyfile" ;; "abi.xml") CONFIG_FILES="$CONFIG_FILES abi.xml" ;; "mysql++.spec") CONFIG_FILES="$CONFIG_FILES mysql++.spec" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "version") CONFIG_FILES="$CONFIG_FILES version" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" # Set up the scripts for CONFIG_HEADERS section. # No need to generate them if there are no CONFIG_HEADERS. # This happens for instance with `./config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF # Transform confdefs.h into an awk script `defines.awk', embedded as # here-document in config.status, that substitutes the proper values into # config.h.in to produce config.h. # Create a delimiter string that does not exist in confdefs.h, to ease # handling of long lines. ac_delim='%!_!# ' for ac_last_try in false false :; do ac_tt=`sed -n "/$ac_delim/p" confdefs.h` if test -z "$ac_tt"; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done # For the awk script, D is an array of macro values keyed by name, # likewise P contains macro parameters if any. Preserve backslash # newline sequences. ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* sed -n ' s/.\{148\}/&'"$ac_delim"'/g t rset :rset s/^[ ]*#[ ]*define[ ][ ]*/ / t def d :def s/\\$// t bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3"/p s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p d :bsnl s/["\\]/\\&/g s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ D["\1"]=" \3\\\\\\n"\\/p t cont s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p t cont d :cont n s/.\{148\}/&'"$ac_delim"'/g t clear :clear s/\\$// t bsnlc s/["\\]/\\&/g; s/^/"/; s/$/"/p d :bsnlc s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p b cont ' >$CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 for (key in D) D_is_set[key] = 1 FS = "" } /^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { line = \$ 0 split(line, arg, " ") if (arg[1] == "#") { defundef = arg[2] mac1 = arg[3] } else { defundef = substr(arg[1], 2) mac1 = arg[2] } split(mac1, mac2, "(") #) macro = mac2[1] prefix = substr(line, 1, index(line, defundef) - 1) if (D_is_set[macro]) { # Preserve the white space surrounding the "#". print prefix "define", macro P[macro] D[macro] next } else { # Replace #undef with comments. This is necessary, for example, # in the case of _POSIX_SOURCE, which is predefined and required # on some systems where configure will not decide to define it. if (defundef == "undef") { print "/*", prefix defundef, macro, "*/" next } } } { print } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 fi # test -n "$CONFIG_HEADERS" eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :H) # # CONFIG_HEADER # if test x"$ac_file" != x-; then { $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" } >"$ac_tmp/config.h" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 $as_echo "$as_me: $ac_file is unchanged" >&6;} else rm -f "$ac_file" mv "$ac_tmp/config.h" "$ac_file" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 fi else $as_echo "/* $configure_input */" \ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ || as_fn_error $? "could not create -" "$LINENO" 5 fi ;; :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 $as_echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "libtool":C) # See if we are running on zsh, and set the options that allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi cfgfile=${ofile}T trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # Generated automatically by $as_me ($PACKAGE) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # Provide generalized library-building support services. # Written by Gordon Matzigkeit, 1996 # Copyright (C) 2014 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # GNU Libtool is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of of the License, or # (at your option) any later version. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program or library that is built # using GNU Libtool, you may include this file under the same # distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # The names of the tagged configurations supported by this script. available_tags='CXX ' # Configured defaults for sys_lib_dlsearch_path munging. : \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} # ### BEGIN LIBTOOL CONFIG # Which release of libtool.m4 was used? macro_version=$macro_version macro_revision=$macro_revision # Whether or not to build shared libraries. build_libtool_libs=$enable_shared # Whether or not to build static libraries. build_old_libs=$enable_static # What type of objects to build. pic_mode=$pic_mode # Whether or not to optimize for fast installation. fast_install=$enable_fast_install # Shared archive member basename,for filename based shared library versioning on AIX. shared_archive_member_spec=$shared_archive_member_spec # Shell to use when invoking shell scripts. SHELL=$lt_SHELL # An echo program that protects backslashes. ECHO=$lt_ECHO # The PATH separator for the build system. PATH_SEPARATOR=$lt_PATH_SEPARATOR # The host system. host_alias=$host_alias host=$host host_os=$host_os # The build system. build_alias=$build_alias build=$build build_os=$build_os # A sed program that does not truncate output. SED=$lt_SED # Sed that helps us avoid accidentally triggering echo(1) options like -n. Xsed="\$SED -e 1s/^X//" # A grep program that handles long lines. GREP=$lt_GREP # An ERE matcher. EGREP=$lt_EGREP # A literal string matcher. FGREP=$lt_FGREP # A BSD- or MS-compatible name lister. NM=$lt_NM # Whether we need soft or hard links. LN_S=$lt_LN_S # What is the maximum length of a command? max_cmd_len=$max_cmd_len # Object file suffix (normally "o"). objext=$ac_objext # Executable file suffix (normally ""). exeext=$exeext # whether the shell understands "unset". lt_unset=$lt_unset # turn spaces into newlines. SP2NL=$lt_lt_SP2NL # turn newlines into spaces. NL2SP=$lt_lt_NL2SP # convert \$build file names to \$host format. to_host_file_cmd=$lt_cv_to_host_file_cmd # convert \$build files to toolchain format. to_tool_file_cmd=$lt_cv_to_tool_file_cmd # An object symbol dumper. OBJDUMP=$lt_OBJDUMP # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method # Command to use when deplibs_check_method = "file_magic". file_magic_cmd=$lt_file_magic_cmd # How to find potential files when deplibs_check_method = "file_magic". file_magic_glob=$lt_file_magic_glob # Find potential files using nocaseglob when deplibs_check_method = "file_magic". want_nocaseglob=$lt_want_nocaseglob # DLL creation program. DLLTOOL=$lt_DLLTOOL # Command to associate shared and link libraries. sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd # The archiver. AR=$lt_AR # Flags to create an archive. AR_FLAGS=$lt_AR_FLAGS # How to feed a file listing to the archiver. archiver_list_spec=$lt_archiver_list_spec # A symbol stripping program. STRIP=$lt_STRIP # Commands used to install an old-style archive. RANLIB=$lt_RANLIB old_postinstall_cmds=$lt_old_postinstall_cmds old_postuninstall_cmds=$lt_old_postuninstall_cmds # Whether to use a lock for old archive extraction. lock_old_archive_extraction=$lock_old_archive_extraction # A C compiler. LTCC=$lt_CC # LTCC compiler flags. LTCFLAGS=$lt_CFLAGS # Take the output of nm and produce a listing of raw symbols and C names. global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe # Transform the output of nm in a proper C declaration. global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl # Transform the output of nm into a list of symbols to manually relocate. global_symbol_to_import=$lt_lt_cv_sys_global_symbol_to_import # Transform the output of nm in a C name address pair. global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address # Transform the output of nm in a C name address pair when lib prefix is needed. global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix # The name lister interface. nm_interface=$lt_lt_cv_nm_interface # Specify filename containing input files for \$NM. nm_file_list_spec=$lt_nm_file_list_spec # The root where to search for dependent libraries,and where our libraries should be installed. lt_sysroot=$lt_sysroot # Command to truncate a binary pipe. lt_truncate_bin=$lt_lt_cv_truncate_bin # The name of the directory that contains temporary libtool files. objdir=$objdir # Used to examine libraries when file_magic_cmd begins with "file". MAGIC_CMD=$MAGIC_CMD # Must we lock files when doing compilation? need_locks=$lt_need_locks # Manifest tool. MANIFEST_TOOL=$lt_MANIFEST_TOOL # Tool to manipulate archived DWARF debug symbol files on Mac OS X. DSYMUTIL=$lt_DSYMUTIL # Tool to change global to local symbols on Mac OS X. NMEDIT=$lt_NMEDIT # Tool to manipulate fat objects and archives on Mac OS X. LIPO=$lt_LIPO # ldd/readelf like tool for Mach-O binaries on Mac OS X. OTOOL=$lt_OTOOL # ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. OTOOL64=$lt_OTOOL64 # Old archive suffix (normally "a"). libext=$libext # Shared library suffix (normally ".so"). shrext_cmds=$lt_shrext_cmds # The commands to extract the exported symbol list from a shared archive. extract_expsyms_cmds=$lt_extract_expsyms_cmds # Variables whose values should be saved in libtool wrapper scripts and # restored at link time. variables_saved_for_relink=$lt_variables_saved_for_relink # Do we need the "lib" prefix for modules? need_lib_prefix=$need_lib_prefix # Do we need a version for libraries? need_version=$need_version # Library versioning type. version_type=$version_type # Shared library runtime path variable. runpath_var=$runpath_var # Shared library path variable. shlibpath_var=$shlibpath_var # Is shlibpath searched before the hard-coded library search path? shlibpath_overrides_runpath=$shlibpath_overrides_runpath # Format of library name prefix. libname_spec=$lt_libname_spec # List of archive names. First name is the real one, the rest are links. # The last name is the one that the linker finds with -lNAME library_names_spec=$lt_library_names_spec # The coded name of the library, if different from the real name. soname_spec=$lt_soname_spec # Permission mode override for installation of shared libraries. install_override_mode=$lt_install_override_mode # Command to use after installation of a shared archive. postinstall_cmds=$lt_postinstall_cmds # Command to use after uninstallation of a shared archive. postuninstall_cmds=$lt_postuninstall_cmds # Commands used to finish a libtool library installation in a directory. finish_cmds=$lt_finish_cmds # As "finish_cmds", except a single script fragment to be evaled but # not shown. finish_eval=$lt_finish_eval # Whether we should hardcode library paths into libraries. hardcode_into_libs=$hardcode_into_libs # Compile-time system search path for libraries. sys_lib_search_path_spec=$lt_sys_lib_search_path_spec # Detected run-time system search path for libraries. sys_lib_dlsearch_path_spec=$lt_configure_time_dlsearch_path # Explicit LT_SYS_LIBRARY_PATH set during ./configure time. configure_time_lt_sys_library_path=$lt_configure_time_lt_sys_library_path # Whether dlopen is supported. dlopen_support=$enable_dlopen # Whether dlopen of programs is supported. dlopen_self=$enable_dlopen_self # Whether dlopen of statically linked programs is supported. dlopen_self_static=$enable_dlopen_self_static # Commands to strip libraries. old_striplib=$lt_old_striplib striplib=$lt_striplib # The linker used to build libraries. LD=$lt_LD # How to create reloadable object files. reload_flag=$lt_reload_flag reload_cmds=$lt_reload_cmds # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds # A language specific compiler. CC=$lt_compiler # Is the compiler the GNU compiler? with_gcc=$GCC # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec # Whether the compiler copes with passing no objects directly. compiler_needs_object=$lt_compiler_needs_object # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds # Commands used to build a shared archive. archive_cmds=$lt_archive_cmds archive_expsym_cmds=$lt_archive_expsym_cmds # Commands used to build a loadable module if different from building # a shared archive. module_cmds=$lt_module_cmds module_expsym_cmds=$lt_module_expsym_cmds # Whether we are building with GNU ld or not. with_gnu_ld=$lt_with_gnu_ld # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag # Flag that enforces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator # Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct # Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting \$shlibpath_var if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=$hardcode_minus_L # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var # Set to "yes" if building a shared library automatically hardcodes DIR # into the library and all subsequent libraries and executables linked # against it. hardcode_automatic=$hardcode_automatic # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=$inherit_rpath # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms # Symbols that must always be exported. include_expsyms=$lt_include_expsyms # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds # Commands necessary for finishing linking programs. postlink_cmds=$lt_postlink_cmds # Specify filename containing input files. file_list_spec=$lt_file_list_spec # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action # The directories searched by this compiler when creating a shared library. compiler_lib_search_dirs=$lt_compiler_lib_search_dirs # Dependencies to place before and after the objects being linked to # create a shared library. predep_objects=$lt_predep_objects postdep_objects=$lt_postdep_objects predeps=$lt_predeps postdeps=$lt_postdeps # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path # ### END LIBTOOL CONFIG _LT_EOF cat <<'_LT_EOF' >> "$cfgfile" # ### BEGIN FUNCTIONS SHARED WITH CONFIGURE # func_munge_path_list VARIABLE PATH # ----------------------------------- # VARIABLE is name of variable containing _space_ separated list of # directories to be munged by the contents of PATH, which is string # having a format: # "DIR[:DIR]:" # string "DIR[ DIR]" will be prepended to VARIABLE # ":DIR[:DIR]" # string "DIR[ DIR]" will be appended to VARIABLE # "DIRP[:DIRP]::[DIRA:]DIRA" # string "DIRP[ DIRP]" will be prepended to VARIABLE and string # "DIRA[ DIRA]" will be appended to VARIABLE # "DIR[:DIR]" # VARIABLE will be replaced by "DIR[ DIR]" func_munge_path_list () { case x$2 in x) ;; *:) eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" ;; x:*) eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" ;; *::*) eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" ;; *) eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" ;; esac } # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. func_cc_basename () { for cc_temp in $*""; do case $cc_temp in compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; \-*) ;; *) break;; esac done func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` } # ### END FUNCTIONS SHARED WITH CONFIGURE _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test set != "${COLLECT_NAMES+set}"; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac ltmain=$ac_aux_dir/ltmain.sh # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" cat <<_LT_EOF >> "$ofile" # ### BEGIN LIBTOOL TAG CONFIG: CXX # The linker used to build libraries. LD=$lt_LD_CXX # How to create reloadable object files. reload_flag=$lt_reload_flag_CXX reload_cmds=$lt_reload_cmds_CXX # Commands used to build an old-style archive. old_archive_cmds=$lt_old_archive_cmds_CXX # A language specific compiler. CC=$lt_compiler_CXX # Is the compiler the GNU compiler? with_gcc=$GCC_CXX # Compiler flag to turn off builtin functions. no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX # Additional compiler flags for building library objects. pic_flag=$lt_lt_prog_compiler_pic_CXX # How to pass a linker flag through the compiler. wl=$lt_lt_prog_compiler_wl_CXX # Compiler flag to prevent dynamic linking. link_static_flag=$lt_lt_prog_compiler_static_CXX # Does compiler simultaneously support -c and -o options? compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX # Whether or not to add -lc for building shared libraries. build_libtool_need_lc=$archive_cmds_need_lc_CXX # Whether or not to disallow shared libs when runtime libs are static. allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX # Compiler flag to allow reflexive dlopens. export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX # Compiler flag to generate shared objects directly from archives. whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX # Whether the compiler copes with passing no objects directly. compiler_needs_object=$lt_compiler_needs_object_CXX # Create an old-style archive from a shared archive. old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX # Create a temporary old-style archive to link instead of a shared archive. old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX # Commands used to build a shared archive. archive_cmds=$lt_archive_cmds_CXX archive_expsym_cmds=$lt_archive_expsym_cmds_CXX # Commands used to build a loadable module if different from building # a shared archive. module_cmds=$lt_module_cmds_CXX module_expsym_cmds=$lt_module_expsym_cmds_CXX # Whether we are building with GNU ld or not. with_gnu_ld=$lt_with_gnu_ld_CXX # Flag that allows shared libraries with undefined symbols to be built. allow_undefined_flag=$lt_allow_undefined_flag_CXX # Flag that enforces no undefined symbols. no_undefined_flag=$lt_no_undefined_flag_CXX # Flag to hardcode \$libdir into a binary during linking. # This must work even if \$libdir does not exist hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX # Whether we need a single "-rpath" flag with a separated argument. hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX # Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes # DIR into the resulting binary. hardcode_direct=$hardcode_direct_CXX # Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes # DIR into the resulting binary and the resulting library dependency is # "absolute",i.e impossible to change by setting \$shlibpath_var if the # library is relocated. hardcode_direct_absolute=$hardcode_direct_absolute_CXX # Set to "yes" if using the -LDIR flag during linking hardcodes DIR # into the resulting binary. hardcode_minus_L=$hardcode_minus_L_CXX # Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR # into the resulting binary. hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX # Set to "yes" if building a shared library automatically hardcodes DIR # into the library and all subsequent libraries and executables linked # against it. hardcode_automatic=$hardcode_automatic_CXX # Set to yes if linker adds runtime paths of dependent libraries # to runtime path list. inherit_rpath=$inherit_rpath_CXX # Whether libtool must link a program against all its dependency libraries. link_all_deplibs=$link_all_deplibs_CXX # Set to "yes" if exported symbols are required. always_export_symbols=$always_export_symbols_CXX # The commands to list exported symbols. export_symbols_cmds=$lt_export_symbols_cmds_CXX # Symbols that should not be listed in the preloaded symbols. exclude_expsyms=$lt_exclude_expsyms_CXX # Symbols that must always be exported. include_expsyms=$lt_include_expsyms_CXX # Commands necessary for linking programs (against libraries) with templates. prelink_cmds=$lt_prelink_cmds_CXX # Commands necessary for finishing linking programs. postlink_cmds=$lt_postlink_cmds_CXX # Specify filename containing input files. file_list_spec=$lt_file_list_spec_CXX # How to hardcode a shared library path into an executable. hardcode_action=$hardcode_action_CXX # The directories searched by this compiler when creating a shared library. compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_CXX # Dependencies to place before and after the objects being linked to # create a shared library. predep_objects=$lt_predep_objects_CXX postdep_objects=$lt_postdep_objects_CXX predeps=$lt_predeps_CXX postdeps=$lt_postdeps_CXX # The library search path used internally by the compiler when linking # a shared library. compiler_lib_search_path=$lt_compiler_lib_search_path_CXX # ### END LIBTOOL TAG CONFIG: CXX _LT_EOF ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi chmod +x version mysql++-3.2.5/ChangeLog.md000644 000765 000024 00000410035 13515046514 015777 0ustar00tangentstaff000000 000000 # Change Log ## 3.2.5, 2019.07.21 * Supports `ulonglong` in MySQL++-to-SQL data type conversions so you can pass the return from `Result.insert_id()` and such into another SQL expression. This previously required an explicit cast to one of the `sql_*` types when using a C++ compiler that can’t figure out that `sql_bigint` is equivalent on its own. * Updates to support newer versions of MySQL and MariaDB. * Assorted documentation improvements. * Assorted build system improvements. ## 3.2.4, 2018.07.26 * Added the `MYSQLPP_UTF8_CS` and `MYSQLPP_UTF8_COL` macros to allow a given bit of code use either the legacy "utf8" character set or the new full-Unicode "utf8mb4" version depending on whether MySQL++ is built against MySQL 5.5 or newer, the version where `utf8mb4` was added. Using this in the `resetdb` example to demo the feature. * Updated the [Unicode chapter of the user manual][umuc] to cover this and other changes in the Unicode world over the past several years. * Recent versions of MySQL and MariaDB have removed some obsolete features, causing MySQL++ build errors in places where the library wraps one of these features: * MySQL 8.0 removed the embedded database feature, which caused build errors in four `Option::set()` overrides. For MySQL 8.0 and newer, these methods are now no-ops. * Removal of the `CLIENT_LONG_PASSWORD` define in MariaDB 10.2 caused a build error which we now fix with a conditional test for this before trying to use it. Thanks for this fix go to Augusto Caringi of Red Hat. * Updated the library to work with newer toolchains, particularly Clang on current macOS and the C++17 aware versions of GCC: * Methods with throw specifications still have them for ABI compatibility on systems with older compilers, but if we detect that the compiler is expecting C++14 or newer, we elide them. * If the compiler is detected as expecting C++11 or newer, we now use `std::unique_ptr` everywere we used to use `auto_ptr`. * Removed all `register` variable qualifiers. It's officially obsolete in C++17 and it's been anywhere from unnecessary to unhelpful in C++ compilers for quite a long time now. * It is now possible to build a release tarball (`make dist`) on systems like Debian where `/bin/sh` is not Bash. * All prior MySQL++ 3.2.x release tarballs contain a symlink from `ltmain.sh` to the copy provided by Libtool on the system the tarball was made on. If your system doesn't have Libtool installed or it's installed somewhere other than where Red Hat Enterprise Linux puts it, that symlink will be broken, preventing those tarballs from building until you fix the symlink somehow. We're now dereferencing all symlinks when building the tarball to avoid this sort of problem. There are also several changes to MySQL++ due purely to converting the MySQL++ source code repository from Subversion to Fossil: * Updated the hackers' guide to reflect all of the differences this repository conversion entails. * Converted the old `HACKERS.txt` and this change log file to Markdown format. Fossil will display plain text just fine, but it has a web renderer for Markdown, which gives nicer output. [umuc]: https://tangentsoft.com/mysqlpp/doc/html/userman/unicode.html ## 3.2.3, 2016.12.29 * Now using `snprintf()` instead of `_snprintf()` on Visual C++ 2015. * Cygwin changed its naming for the MySQL C API library since the last time we successfully tried building MySQL++ there. Reworked the autoconf detection macro to make it less dependent on such individual platform differences. The macro is in fact now entirely side-effect-free, just setting MYSQL_C_* variables that the top-level Bakefile uses when and as it needs them, rather than expecting that major variables like CPPLFAGS and LIBS were overridden by the autoconf macro. This makes the autoconf case more like that of the non-autoconf Bakefile outputs. * Squished a Clang warning ## 3.2.2, 2015.03.18 * The DBDriver::operator= would leak a live connection if you assigned a disconnected DBDriver to it. Patch by Quentin Armitage. * Plugged a potential DBDriver instance leak in Connection ctor. Patch by Yury Alekseev. * Explicitly #including algorithm.h in examples/multiquery.cpp for std::max(). * Added missing "break;" statements in Transaction ctor taking an isolation level parameter, which caused only the last one to do the right thing. Problem noticed by Tony Whyman, fix by me. * The bootstrap script now checks for the existence of needed build tools before trying to use them. This lets us emit a clearer error message than the shell will. Original patch by Adrian Cornish. * Fixed a build problem related to std::min/max with Visual C++ 2013 due to a change in the definitions provided by its header files. * Tracked several changes made to Connector/C made since 3.2.1. * Assorted documentation updates. * Generating HTML with UTF-8 encoding, not 8859-1 ## 3.2.1, 2013.12.10 * Connection copy ctor wasn't copying the "throw exceptions" flag. The copy always had exceptions enabled. * The resetdb example would print a bogus message about logging in as '1'@'1' instead of showing the actual values passed on the command line. This did not affect how it actually logged in. * Previous release tarball was missing a few text files present in the source repository. * Updated build paths for VC++ and MinGW to track a file layout change in Connector/C 6.1.2. ## 3.2.0, 2013.06.20 * References to MySQL 5.1 have been replaced with 5.6, that being the current GA release. * All Windows builds now assume you're using Connector/C 6.1 instead of having installed the MySQL server on your machine just to get development files. If you are running a MySQL server on your development machine and don't want to install Connector/C just to make MySQL++ happy, see the README-*.txt file for your platform to get instructions on fixing the paths so the build system finds the development files under the MySQL server directory. * The generated VC++ 2008 project files now assume you want 64-bit executables. (It is 2013 now, after all.) Since the VC++ 2005 project files continue to be configured for 32-bit builds, the easiest way to get a 32-bit project in VC++ 2008+ is to import the VC++ *2005* project files, rather than adjust the build target settings of all 44 vc2008/*.vcproj files within the IDE. See README-Visual-C++.txt for more on this change. * Added Query::replacefrom(): like insertfrom() but it uses REPLACE statements instead of INSERT. Patch by Adrian Cornish. * Added support for SQL "unsigned float" columns. Patch by Leonardo Lang. * Added "abicheck" top-level build target, which runs the ISPRAS ABI checker tool (http://goo.gl/e19lD) against a predecided "ABI-stable" version of MySQL++, comparing it against the current version. This should help avoid future unplanned ABI breakages, as happened between 3.0.9 and 3.1.0. We have chosen not to revert those changes that broke the ABI, but instead have chosen to accept the 3.1.0 ABI as the new stable ABI for the rest of the 3.x series. Running the ABI checker is now part of the release process, so we should not change the ABI again until 4.0! * The Query::insert() and replace() overloads that take a pair of iterators now work with containers that only provide forward iterators. Idea by Adrian Cornish. * Using libtool again on Autotools systems. It gives us relocatable libraries, which is needed in some linking situations. Patch by Adrian Cornish. * VC++ release builds now have optimization enabled. This might also affect other toolchains that create separate Debug and Release builds, if Bakefile obeys the directive for those systems. (Such as, perhaps, Xcode.) Initial patch by Matthew Bradbury. * Fixed a crash in CommandLine mechanism when the usage message is called up for programs that have no "extra" parameter and corresponding usage appendage. Initial patch by "Crazy Pete". * Query::storein() now tolerates empty result sets, due either to DBMS failure or passing a query that never returns results, such as INSERT. * Exposed `DBDriver::result_empty()` as `Query::result_empty()`. We did this primarily because it was needed as a helper for the previous fix, but it could also be useful more broadly. * Added -Wextra to the pedantic build flags. * Fixed the "escape" manipulator so it will work with Null<> wrapped types. Patch by "Kemet". * ssqls2parse now depends on libmysqlpp. (It wasn't getting relinked when you changed the library.) * The configure script's test for the existence of `mysql_ssl_set()` got broken by a change in the mysql_loc.m4 test, causing it to always return "no" even if the platform's MySQL C API library did have the function. Therefore, the SslOption could never be set. Fixes this bug: stackoverflow.com/questions/7794408 * Fixed a missing a "buried headers" ifdef wrapper for type_info.cpp. Patch provided by Xavier Richez. * We now export the DBDriver class from the MySQL++ DLL when building on Windows. Client programs can now access it directly, instead of being able to access only the fields and members exposed through Connection and Query. Fix suggested by Xavier Richez. * MinGW builds no longer require that you manually create an import library for the MySQL C API DLL from a .def file we provide, which would inevitably get outdated. We can now link directly to the DLL, and rely on the MinGW linker to figure out the imports. * Split the -l flags out of LDFLAGS in the userman's example Makefiles. They're now in LDLIBS, which causes them to be put after -o $(EXE) by the default GNU make rules, where they should be. * Assorted documentation and build system improvements. * Assorted fixes for newer GCCs. ## 3.1.0, 2010.06.03 * Default MySQL version now 5.1, having entered GA since 3.0.9. * Lots of platform updates tracked, lots of warnings from newer compilers squished. Most by me, some by Adrian Cornish. * Added Query::insertfrom(), plus associated classes SQLStream, NoTransactions, and the InsertPolicy hierarchy. Also adds examples/ssqls6.cpp, which shows how to use this new feature. Thanks for this feature go to Rick Gutleber, except for RowCountInsertPolicy, by me. * Added comparison operators to `tiny_int`. Thanks for this patch go to Edward Diener. * Added `SQLTypeAdapter::is_null()`. This lets you retrieve a nullable column from the DB, then re-insert a value from that column back into the DB via a template query without explicit checks for null-ness; it will do the right thing now. * Added `-f` flags to `lib/*.pl` header file generating scripts to allow overriding the default limit of 25 fields for tqueries and SSQLSes without having to edit the file, as in previous versions of MySQL++. Also added --with-field-limit option to the configure script so you can give both -f options at once during the build process. This latter is especially useful for automated binary package builders. * The file lib/querydef.h (generated by lib/querydef.pl) now defines the MYSQLPP_TQUERY_MAX_PARAMETERS macro, giving the maximum number of parameters the functions in the generated file allow for template queries. Similarly, lib/ssqls.h (generated by lib/ssqls.pl) defines MYSQLPP_SSQLS_MAX_MEMBERS. * Added `ConnectionPool::safe_grab()`, which pings the grabbed connection before returning it. If the ping fails, we remove the dead connection from the pool and try again. This doesn't eliminate the possibility of returning a dead connection; there is no protection against race conditions. It is merely a best-effort attempt. * Added `ConnectionPool::remove(Connection*)`, which removes a connection from the pool. * Added `ConnectionPool::exchange()`, which wraps `remove()` and `grab()`. It works like a customer support counter in a store: "I'm sorry, but this `Connection` is defective. Can I have another, please?" * Added a feature to Transaction, where it can send a SET TRANSACTION ISOLATION LEVEL query before it starts the transaction proper, affecting the isolation level and the scope of that change. * Added ScopedConnection class. Initial version by Joel Fielder, lots of changes by me. Using it instead of explicit safe_grab() and release() calls on the pool in examples/cpool.cpp. * Added `FieldNames::operator[](size_type)` overloads. This is necessary to correctly overload the base class versions inherited from std::vector. * FieldNames wasn't doing field-by-name matches case insentitively, most likely since 3.0.0 when we changed it to derive from std::vector. This caused SSQLS (at least) to be case sensitive. Fixed this and renamed the stock.sdate field in the SSQLS examples to stock.sDate to test this. * Added Query::replace(iter, iter), on the model of existing insert(iter, iter). Thanks for this patch go to David Walthour. * Added `Query::operator!()`, overriding `basic_ios` version so that `if (!query)` does the right thing. Fixes problem report in thread http://lists.mysql.com/plusplus/8594 * Query copy ctor and assignment operator now perform deeper copies, so you can pass Query objects around in certain ways that used to cause crashes. Thanks for this patch go to Steven Van Ingelgem. * Defined `*_null` variants for every `sql_* typedef`, wrapping all those earlier types in `Null<>`. All example programs now use these types instead of explicit `Null<>-wrapped` types. * Created a C++ command line parsing mechanism for the examples today, and for programs coming in the future. It uses the platform version of getopt() if available, substituting a public-domain implementation that gets built into MySQL++ itself otherwise. It's documented in the refman -- see the CommandLineBase class -- but it's in the newly created mysqlpp::internal namespace, which means we don't promise any sort of ABI or API stability for it. You're welcome to use it in your own programs, but expect it to change without warning. * Added a few missing `MYSQLPP_EXPORT` qualifiers to `operator<<()` overloads for stream manipulators to allow their use when MySQL++ is built as a DLL. * Added backticks around table and column identifiers in all code paths exercised by dtest. There are some others remaining, particularly things like Row::field_list(). Thanks for this patch go to Adrian Cornish. * Added mysqlpp::NOW() which returns a value that, when inserted into a SQL query, results in a call to SQL's NOW() function. DateTime::now() -- added in 3.0.0 -- does the same thing, but this is shorter and matches the SQL syntax. * Calling DBDriver::disconnect() twice no longer calls mysql_close() twice. * Worked around a weakness on Windows that caused problems in code with a connect(), disconnect(), connect() call pattern, when also using a named pipe to connect to the DB. (There never has been a problem with this on other platforms or with other IPC mechanisms.) * Initializing a SQLTypeAdapter with a floating-point value equal to infinity or NaN results in SQL null if the type is also nullable, or 0 otherwise. Previously, we got an implementation-defined string, which could give invalid SQL, or could give 0, a different value from NaN, infinity, or SQL null. This does collapse the notions of NaN and infinity, but the MySQL reference manual doesn't say how you're supposed to preserve these differences. * Removed the dependency of stadapter.h on `sql_types.h` just to get `sql_tinyint*`. We now `#include "tinyint.h"` instead, and use equivalent types to what `sql_types.h` defines. This is necessary because `sql_types.h` should be one of the last things included from `mysql++.h`, so that it can define `sql_*` equivalents for everything else in MySQL++, which means all those other things need to be included by that point. * The "find MySQL++" autoconf macro (config/mysql++.m4) now searches for the library in lib64 subdirectories everywhere it also looks in lib. We did this for the C API finder macro way back in MySQL++ 2.2.0, and only neglected to do it for this macro because it's not used by MySQL++ itself, just provided as a courtesy to MySQL++ users that also use autoconf. * Also improved the "find C API" macro (`config/mysql_loc.m4`) so it, too, is more useful in third-party projects. * Moved private `FieldNames::str_to_lwr()` method out into its own module, in the new mysqlpp::internal namespace, so other modules can use it. Also added an overload for this new global method taking std::string instead of char*. * userman build process can now find FOP when installed from the standard Ubuntu/Debian package repository. * No longer generating refman.pdf. It's difficult to generate properly on some platforms, and isn't all that useful anyway compared to the HTML version, which builds properly everywhere. * Dropped custom.h backwards-compatibility header. (Deprecated over a year ago in MySQL++ 3.0.0.) * Fixed a bad pointer access crash in `Connection::set_option()` triggered when the option set call fails. Thanks for this patch go to Kevin Regan. * ReconnectOption behavior now knows about a fix in MySQL 5.1.6 and newer that lets you set it either before the connection is up, or after. If you try to set this option when MySQL++ is built against earlier versions of the MySQL C API, it will refuse to set the option because it knows the option will be reset when the connection comes up. * No longer trying to make the C API library read from a "my" options file before connect. It does that by default, and the file is supposed to be .my.cnf anyway. * Reworked the `load_jpeg` example code for clarity, extracting load_jpeg_file() routine as an implementation detail and making that use the C++ stringstream "slurp into string" idiom instead of allocating a C char buffer and copying that into a std::string. * Restored support for repeating query parameters. Apparently you could say things like "stuff %0 morestuff %0" in v2.1, but this was broken by initial 1-parameter fixes in v2.2. This patch reportedly lets us have both things at once, and improves handling of 1-parameter template queries in general. Thanks for this patch go to Martin Gallwey. * Added examples/tquery4.cpp based on test code and feedback from Martin. * Put Comparable class in namespace mysqlpp, where it should always have been. Aside from being just plain wrong, it caused a conflict with Boost if you used its Comparable class and hoist them both into the global namespace. Thanks for this patch go to Michael Radzewitz. * Fixed all the known problems with the Xcode project files. * Skeletal support for SSQLS v2. Doesn't do anything useful yet, it just got caught up in the need to release 3.1 as-is. * Various enhancements to the test suite. * Many, many documentation enhancements. ## 3.0.9, 2009.02.04 * It is now possible to use Null objects in const context. * Query was emitting thousands separators when used in some locales. Thanks for the fix go to Tomaž Šolc. * Restored support for using Query::storein() with template queries. Was mistakenly removed in the 3.0.0 development process. * GCC 4.4 build fixes. Thanks for this go to Remi Collet. ## 3.0.8, 2008.11.27 (r2432) The "Thanksgiving" release * Fixed a VC++ build error introduced in 3.0.7 in the Sun CC fix. * Fixed the Makefile we generate from Makefile.simple for the devel RPM. The recent Bakefile upgrade changed the output so our munger stopped munging. * Changed all instances of "CREDITS" in header comments to "CREDITS.txt". * Brought ebuild file up to date with what Gentoo has been using for 2.3.2. ## 3.0.7, 2008.11.21 * Fixed bug where initting a Query with a query string and then appending more to it with operator <<() would start overwriting the beginning of the buffer. Thanks for the fix go to Chris Frey. * Added String::empty(), to parallel std::string better. * Added SQLTypeAdapter ctor for Null, to allow SSQLS with NULL BLOB columns. Thanks for this patch go to Russell Robinson. * Passing on "throw exceptions" flag in Query::storein() to the temporary Row objects it creates. (Should have done this all along.) * All MySQL++ classes with operator[]() and at() methods now throw the new BadIndex exception on out of range indices now, unconditionally. Before, it was a mishmash of MySQL++-specific mechanisms, std::range_error, and unchecked access. * Fixed some bugs in `load_jpeg` and `cgi_jpeg` examples that prevented them from working correctly on Windows. * Squished some warnings and incompatibilities that caused difficulty with Solaris CC. * Several minor fixes to allow building on Cygwin again. * Dedicated VC++ 2008 support. (Not just a clone of VC++ 2005 project files in a different directory.) * Lots of documentation improvements. ## 3.0.6, 2008.08.16 * Several fixes to allow thread-aware build on Solaris * More improvements to search for Fink version of C API library. * Various improvements to Windows installer (install.hta) ## 3.0.5, 2008.08.06 * Replaced install.bat with new install.hta, which has a GUI and a lot of embeded logic for doing The Right Thing, which we couldn't do in a dumb batch file. * Several fixes to allow it to build on Solaris 10. * Fixed a bug in comparison of Null to T: wouldn't always give the right result for one particular combination of argument values and order of parameters to operator <(). It wouldn't fail all the time, either; it depended on the way the system's memory allocator dealt with newly allocated RAM. The bug was discovered during the Solaris 10 porting effort, but it is not a Solaris-specific bug. * Split Linux-specific material out of README-Unix.txt into README-Linux.txt, and created README-Solaris.txt. * Shipping a vc2008 directory. Populated by bootstrap script with copies of vc2005 files when those are newer, with the idea being to update them by hand by running them through VC++2008 before release. * Several fixes to VS-only examples. They hadn't been updated to track several of the changes in MySQL++ v3, so they wouldn't build OOTB at all, crashed when you did get them building, and emitted a lot of warnings during the build. Cleaned it all up. * Autoconf now explicitly checks whether we need to link to zlib to link to MySQL C API library. It used to be required, but lately, MySQL has been shipping the library with zlib stuff embedded, causing multiply defined symbol errors on some systems. * configure script now looks in more locations for the MySQL C API library, adding default locations for Fink and Solaris. ## 3.0.4, 2008.07.02 * Fixed a few bugs in SslOption that prevented it from actually working. If you've been having SSL problems since upgrading to MySQL++ v3, this is why! Thanks for these patches go to Petteri Kiiskinen. * Changed type of String's internal "size" typedefs so it'll build without errors on 64-bit systems where these ints are different sizes. * Many user manual improvements. ## 3.0.3, 2008.05.11 * Fixed query well-formedness handling in Query::store() and use(). It was quietly eating these errors, confusing them with the no-results case. * Fixed examples/cpool.cpp to build without thread support. * No longer hiding all stdint.h typedefs inside namespace mysqlpp. * Fixed mysqlpp::String comparisons of empty strings against nonempty strings; if the empty string was on the left hand side, it would succeed because it was only comparing against characters in the empty side, which matches everything. (Fixes bug 11588.) ## 3.0.2, 2008.04.13 * Increased float to string conversion precision from 7 to 9 and double from 16 to 17 digits. Previous values weren't enough near the maximum values that each can hold. * Replaced Query's safe bool mechanism with an override of basic_ios::operator void*() to avoid a conflict between the two mechanisms. As the base class version isn't virtual, this is arguably evil, but it should be harmless in typical use. Besides, testing Query in bool context usually isn't the right thing anyway: test the result set instead. * Made ConnectionPool::grab() virtual. * Overriding ConnectionPool::grab() and release() in examples/cpool.cpp to show how to do connection-in-use count limiting. Also, added a few more output indicator states to allow one to better understand program flow. ## 3.0.1, 2008.03.23 * String objects can now be compared to mysqlpp::null directly. * Added a template operator== and operator!= to String, syntactic sugar for the existing String::compare() methods. * String::compare() now returns 0 ("equal") when one of the strings is an uninitialized String() (no refcounted buffer) and the other is empty. It used to consider any initialized string greater than an uninitted one. An uninitialized String appears empty, though, so this was incorrect. * Made `Connection::thread_aware()`, `thread_start()` and `thread_end()` static methods, so they can be called before you create your first connection. Ditto for DBDriver versions of these methods. * Calling `Connection::thread_start()` and `thread_end()` in `examples/cpool.cpp`, as appropriate. Above changes were necessary to make this work sensibly. * Made ConnectionPool::release() virtual, so your pool subclass can override it. * Added ConnectionPool::size(), so a subclass can know the current number of extant connections. * No longer single-quoting NOW() call generated for default init of DateTime type when building queries from SSQLS objects in Query::insert(), replace() and update(). The template query and stream interfaces of Query treated NOW() correctly already. * Fixed a bug that left `SSQLS::table_override_` uninitted if you used certain of the generated ctors or `set()` member functions instead of others used by the examples. This could cause a crash any time you caused `SSQLS.table()` to be called, such as when passing the SSQLS to `Query::insert()`. * Minor memset bug fixed in `test/uds.cpp`. Patch by Dave Jones. ## 3.0.0, 2008.02.29 (r2236) The "Giant Leap Forward" release **WARNING:** THIS IS NOT A DROP-IN REPLACEMENT FOR MySQL++ v2.x! You will have to recompile your program against this version of the library, and you will almost certainly have to make code changes as well. Please see thee [API][apib3] and [ABI breakages][abib3] sections in the user manual for information on migrating your code to this new version. [apib3]: https://tangentsoft.com/mysqlpp/doc/html/userman/breakages.html#api-3.0.0 [abib3]: https://tangentsoft.com/mysqlpp/doc/html/userman/breakages.html#abi-3.0.0 * Added ConnectionPool class, primarily to let multithreaded programs share a set of Connection objects safely in situations where it isn't acceptable to have a Connection per thread. * Created examples/cpool.cpp to demonstrate this new class. * Added RefCountedPointer template, which provides automatic memory management and data sharing. It's not intended for use outside of MySQL++ itself, but it's the mechanism behind everything below where reference counting is mentioned. I created the initial version of it, but Jonathan Wakely almost completely rebuilt it, and Joseph Artsimovich provided helpful commentary and advice as well. * Many improvements to Specialized SQL Structures (SSQLS): - Renamed `custom* to ssqls*`. There's still a custom.h which #includes ssqls.h for you, but it's only intended to ease the transition to the new name. It will go away in a future release, probably as soon as v3.1. - SSQLSes are finally compatible with Null<>-wrapped types. This feature is based loosely on the "Waba" patch posted to the mailing list back in the v2.0 days, but extended to allow Null types for key fields. (The Waba patch only allowed these types in non-key fields.) - It's no longer necessary to define a different SSQLS for each different field set you use in queries. That is to say, you can define an SSQLS for an entire table and store just a subset of the table in it now, with the other fields keeping default values. Removed examples/custom6.cpp, as custom1.cpp can now demonstrate the same thing, implicitly. - An SSQLS's field order no longer has to match the order of fields in the result set it is populated from. - As a result of previous, removed `sql_create_c_order_*` macros; they have no purpose now. - Removed order parameters from `sql_create_complete_*`, which now gives it the same functionality as `sql_create_c_names_*` so removed the latter, too. - Removed "basic" variants of SSQLS creation macros. They've been unofficially deprecated by dint of being all but undocumented and unexemplified for a very long time now. - It's now possible to use mysqlpp::String, Date, DateTime, and Time types in the key field positions in an SSQLS as they now support the necessary comparison interfaces. - If you use a floating-point data type in one of the key field positions, it no longer uses exact comparison logic. Instead, it now does [in]equality comparisons by testing whether the difference between two floating-point values is less than a configurable threshold defaulting to 0.00001. - You can now use 'bool' type in an SSQLS. - Renamed `_table` static member variable in each SSQLS to `table_` and made it private. There are now public setter and getter methods, `table()`. - Added per-instance table name overriding via `instance_table()` setter. `table()` getter returns static version if this is not set, so it's still a global setting by default. * You can now use mysqlpp::null as a template query parameter to get a SQL null. * Replaced template `ColData_Tmpl`: - Used to have `typedef ColData_Tmpl MutableColData`. It was used only once within MySQL++ itself, and was never documented as a class for end users. This one use within the library was a crock, so we just replaced this use with std::string and removed the typedef. - This left just one use of `ColData_Tmpl`, instantiating it with the MySQL++ utility class const_string, basically a clone of std::string with all the mutating features removed. Folded the functionality of const_string into the template, renamed the result to String, and deleted the const_string class. It'd be a complete std::string replacement -- with SQL-related enhancements -- if it were modifiable, but MySQL++ doesn't need it to be modifiable. Yet, it's still the closest thing MySQL++ has to its own string type; thus the name. - Replaced its internal buffer management with a much more clever reference counted scheme. This shows its greatest advantage in the return from Row::operator[](), which for technical reasons must return by value, not by reference as is more common. This lets you pass around Strings by value while having the efficiency of reference semantics. This can be important with large return values, like BLOBs. - Converting String to numeric types (ints, floats...) uses a new, cleaner system by Jonathan Wakely. Unless you were abusing weaknesses in the old system, you won't see a difference. It's just more robust and flexible. * Redesigned SQLString: - It used to derive from std::string, and while MySQL++'s internals did use it in place of std::string, these places didn't take advantage of the additional features offered by SQLString. So, replaced all those uses with std::string. - All the remaining uses are MySQL++ public interfaces that need to be able to accept any of many different data types, and we want that data to be automatically converted to a SQL-compatible string form. Because it no longer has the parentage to be a general-purpose string type and MySQL++ has a new contender for that role (String), renamed SQLString to SQLTypeAdapter to reflect its new, limited purpose. ("STA" for short.) - Since we don't have the std::string base class to manage the string buffer any more, using the same reference counted buffer mechanism as String. In addition to saving code by not creating yet another buffer management mechanism, it means objects of the two classes can share a buffer when you assign one to the other or pass one to the other's copy ctor. - Added many more conversion ctors. - STA interfaces using the 'char' data type now treat them as single-character strings instead of one-byte integers, as does the Standard C++ Library. - Added `mysqlpp::tiny_int` interfaces to STA to replace the former char interfaces for those needing one-byte integers. * As a result of the ColData -> String redesign, removed Row::raw_*(). Before String copies were efficient, this was helpful in accessing BLOB data efficiently. It was also required back when ColData didn't deal correctly with embedded null characters, but that reason is gone now, too. * `Row::operator[](const char*)` no longer unconditionally throws the `BadFieldName` exception when you ask for a field that doesn't exist. It will still throw it if exceptions are enabled, but if not, it'll just return an empty `String`. This was necessary to make the SSQLS subset and field order independence features work. * Similarly, `Result::field_num()` returns -1 when exceptions are disabled and you ask for a field that doesn't exist. * You can now use the OptionalExceptions mechanism to disable exceptions on const MySQL++ objects. * Redesigned query result classes: - Instead of Result deriving from ResUse, the two derive from a common base class -- ResultBase -- containing the bits that are truly the same between them. Before, Result inherited several methods that didn't really make sense for "store" query result sets. - Renamed Result to StoreQueryResult and ResUse to UseQueryResult so it's clearer what each is for. - Renamed ResNSel to SimpleResult. - Made all SimpleResult data members private and hid them behind const accessor functions of the same name. - The result set classes all used to be friends of Connection for various lame reasons. Since they are created by Query, and Query has a good reason for a strong relationship with Connection, moved Connection access out of each result set class into the code in Query that creates that type of result set object. - StoreQueryResult now derives from vector in addition to ResultBase; it used to merely emulate a vector of Rows, poorly. It can now dispose of the MYSQL_RESULT at the end of object construction, because it creates all the Row objects up front instead of on the fly. And as a result of *that*, operator[] returns by reference instead of by value, operator -> works correctly on iterators, all STL algorithms work, etc., etc. - IMPORTANT COMPATIBILITY BREAK: because we used `fetch_row()` stuff in Result previously, it was okay to index past the end of the result set: you'd just get a falsy Row when you did this, just as happens when doing the same thing in a "use" query. The simple1 and simple2 examples did this, so it's likely that code exists that takes advantage of this misfeature. New versions of these examples show how to index through a StoreQueryResult without running past its end. - ResUse used to delay creation of its FieldNames and FieldTypes objects until the point of need. This had several implications for thread and exception safety that we fix by just creating them in the ctor. If your code is multi-threaded and was avoiding certain usage patterns due to crashes, it's worth trying your preferred way again. - Result sets create a few data structures to hold information common to all rows in that set. The row objects need access to these shared data structures, so on creation each gets a pointer back to the result set object that creates it. This was efficient, but required that a result set object outlive any row objects it creates. Now these shared data structures are reference-counted, decoupling the lifetime of the child row objects from their result set parent. - Copy operations for result sets used to actually be "moves" before, for efficiency. (MySQL++ itelf only copied result sets in returning them by value from the query execution methods of Query, so this was acceptable if you didn't do anything uncommon with these objects.) Reference counted data structures allow us to have copy semantics now without sacrificing efficiency. - You can now use Query::storein() with an STL container of Row objects now, instead of having to use SSQLSes. The lifetime issue guaranteed a crash if you tried this before. - Removed a bunch of unnecessary alias methods: - columns() -> num_fields() - names() -> field_names() - rows() -> num_rows() - types() -> field_types() - Renamed several methods for grammar reasons: - fields(unsigned int) -> field(unsigned int) - names(const std::string&) -> field_num(const std::string&) - names(int) -> field_name(int) - types(int) -> field_type(int) - Removed several "smelly" methods: - purge() - raw_result() - reset_names() - reset_field_names() - reset_types() - reset_field_types() * Field class used to just be a typedef for the corresponding C API class. Now it's a real C++ class providing a more MySQL++ sort of interface, plus good OO things like information hiding and implementation detail abstraction. This changes several things about the interface. * Fields class was basically a specialized std::vector work-alike for dealing with the C API to get access to MYSQL_FIELD objects and present them as contained Field objects. New Field type let us replace it with "typedef std::vector Fields" * Major improvements to the quoting and escaping mechanisms: - Replaced almost all of the type-specific interfaces in manip.h with a single version taking STA. The compiler can convert almost anything to STA without losing any information we need for correct quoting and escaping. This has the side benefit that we can now do correct quoting and escaping for more data types now, including plain C and C++ string types. - Fixed a bug in `quote_double_only` manipulator for String: was using single quotes by mistake. - Escaping and quoting only works in instances where MySQL++ can tell you're building a SQL query and are using a data type that requires it. This affects many things, but the one most likely to cause trouble is that inserting MySQL++'s quoting and escaping manipulators in non-Query ostreams is now a no-op. - Added `escape_string()` member functions to Query and `SQLQueryParms::escape_string()`, and removed the global function of the same name. Because these are tied indirectly to a Connection object, this also has the effect that escaping is now aware of the current default character set used by the database server. There's only one case where this isn't done now, and that's when we're disconnected from the server. - Previous two items form a trade-off: if your code was depending on MySQL++ to get SQL escaping and it no longer happens for what we consider a good reason, you can build a replacement mechanism using these new functions. Quoting needs no special support in MySQL++. - Removed 'r' and 'R' template query parameter modifiers, which meant "always quote" and "always quote and escape" regardless of the data type of the parameter. There are no corresponding manipulators (for good reason), so the removal restores symmetry. * Created DBDriver class from code previously in Connection and Query to almost completely wrap the low-level MySQL C API: - Connection creates a DBDriver object upon connection and passes a pointer to it down to Query objects it creates. In turn, they pass the pointer on to any of their children that need access to the C API. - Nothing outside DBDriver calls the C API directly now, though DBDriver leaks C API data structures quite a lot, so this feature doesn't constitute "database independence." See the Wishlist for what must be done to get to that point. * Completely redesigned the connection option setting mechanism: - There's now just a single `Connection::set_option()` method that takes a pointer to the abstract Option base class, and there is an Option subclass for every connection option we understand. Thus, type errors are now caught at compile time instead of at run time. - Replaced `Connection::enable_ssl()` with SslOption class. - Enabling data compression and setting the connection timeout are no longer set via parameters to Connection interfaces. These are now set with CompressOption and ConnectTimeoutOption. - Similarly, removed `client_flag` parameters from Connection's ctor and connect() method and added corresponding Option subclasses. There's about a dozen, so rather than list them here, look for similarly-named classes in lib/options.h. * Added `Connection::count_rows()` to execute `SELECT COUNT(*) FROM tablename` queries for you. * Moved `Connection::affected_rows()`, `info()` and `insert_id()` methods to class Query, as they relate to the most recently-executed query, not to the connection. * Several method name changes in Connection: - `client_info()` -> `client_version()` - `host_info()` -> `ipc_info()` - `proto_info()` -> `protocol_version()` - `server_info()` -> `server_version()` - `stat()` -> `status()` * Removed `Connection::api_version()`. It does the same thing as `client_version()`. * Lots of changes to Date, DateTime, and Time classes: - If you use the default constructor for DateTime and don't subsequently set its year, month, day, hour, minute or second data members to nonzero values, it becomes the SQL function "NOW()" in a query string. You can also use DateTime::now() as syntactic sugar for this. - As a result of above, had to hide all of DateTime's data members behind accessor functions, to keep the state of the object consistent. (If it's initialized as "now" and you give it an explicit year value, say, it is no longer "now", so the setter has to clear the now-flag.) There are getters and setters for year, month, day, hour, minute and second, all named after the member. - Did the same for Date and Time for consistency, even though it isn't technically required. - The `sql_timestamp` typedef now aliases DateTime instead of Time. - Renamed template class DTbase to Comparable. The fact that it's the common base class of all date and time classes is irrelevant; making subclasses comparable is what it does, so that's what it should be named after. - Added a DateTime ctor taking discrete year, month, day, hour, minute, and second values. - Implicit conversion from stringish types to the date and time types is no longer allowed. This is part of the "Waba" Null patch mentioned above; allowing implicit conversions would break this new feature. - Added operator std::string and str() methods to all of these classes. Adding this to the existing operator << support, you now have several ways to convert these objects to string form. - Added `time_t` conversion to Date and Time classes. DateTime already had it, since it's more legitimate to convert time_t to DateTime, but you could already "slice" it with something like Time(DateTime(time(0))) so there's no point pretending you can't get from time_t to Date or Time. Might as well legitimize it. * Improved `tiny_int` class: - Turned it into a template parameterized on the value type so you can get both signed and unsigned TINYINTs - Changed the `sql_tinyint` and `sql_tinyint_unsigned` typedefs to use `mysqlpp::tiny_int` instead of raw chars - Added a bool conversion ctor and operator, and typedef'd it to sql_bool and sql_boolean to match MySQL server behavior * Added many more `sql_*` typedefs. We now have a typedef for every type the MySQL server knows about, including those it supports just for compatibility with other database servers. * Changed the `sql_*int*` typedefs to use integer types of the same size as the MySQL server. (Run test/inttypes.cpp to test it.) * Added copy ctor and assignment operator to Row. * Row::operator[]() takes int now instead of unsigned int. This finally (!) makes it possible to say row[0] without the compiler giving an ambiguous overload error. * Changed all uses of row.at(0) in the examples to row[0] * Added operator[] to all classes that only had at(). * Query now automatically resets itself unless the query fails or you're using template queries. In either case, the contents of the query's internal buffers are considered precious, either for debugging, or future queries. Except when using template queries, this means you may be able to avoid calling Query::reset() entirely. It's still safe to call reset() as before, just unnecessary most of the time. * Removed `reset_query` parameter from all Query methods. It was almost completely broken before, and above change does what was really wanted to begin with. * `Query::store_next()` and `Result::fetch_row()` no longer throw the EndOfResults and EndOfResultSets exceptions; these are not exceptional conditions! These methods simply return false now. * Removed examples/usequery.cpp: there's no essential difference between what it did and what examples/simple3.cpp does now as a result of the previous change. * Added Query::exec(void), paralleling Query::execute(void). * Removed Query::preview(). The most direct replacement is str(), which has always done the same thing. * You can now insert a Query object into an ostream to get a copy of the built query. This means Query::str() is only necessary when using template queries. * Removed overloads of Query::execute(), store(), and use() that take const char*. It was redundant because const char* converts implicitly to STA, for which overloads already exist. * Renamed Query::def to `Query::template_defaults` to make its purpose clearer. * `Query::error()` now returns const `char*`, not a `std::string` by value. There's no point in making a copy of the error string. The method is now `const` as well, as it doesn't change the `Query` object. * Added Query::errnum(), which just wraps Connection::errnum(). * Added error number parameters and accessor functions to BadQuery, ConnectionFailed and DBSelectionFailed exceptions, to preserve the state of Connection::errnum() at the point of the exception, so you don't have to rely on this value remaining unchanged during the exception throw process. All places that use these exceptions now include this value where possible. Thanks for the initial patch go to Jim Wallace. * Removed Lockable mechanism from Connection and Query; it was conceptually flawed. See the new user manual chapter on threading for advice on using MySQL++ safely without locking. There is mutex locking now in ConnectionPool, but that's it. * Connection::query() now takes an optional query string, allowing the returned Query object to start off with a value. Especially useful when the query string is static, either because it's a simple query or because it's a template. You can now build chains like "if (conn.query("CREATE INDEX ...").exec()) { ..." * Added `Connection::thread_aware()`, `thread_end()`, `thread_id()` and thread_safe(). See user manual's threading chapter for explanations. * Renamed "success" data members in Connection, Query and SimpleResult (neé ResNSel) to "copacetic_", making them private if they weren't before. This better reflects their actual use, which isn't to say that there has necessarily been actual success, but rather that everything's okay with the object. * Removed success() member functions from above classes. All can be tested in bool context to get the same information. * Replaced all operator bool()s in MySQL++ classes with safer alternatives. See http://www.artima.com/cppsource/safebool.html Thanks to Jonathan Wakely for much helpful commentary, advice, and code used in these mechanisms. * Decoupled `Connection::copacetic_` from `Connection::is_connected_`. It is now possible for the object to be copacetic without being connected. However, if it tries to connect and fails, then it is not copacetic. If it is copacetic and not connected, it means we haven't even tried to connect yet, a useful distinction. * Collapsed `Connection`'s host, port, and socket name down into a new combined `server` parameter which is parsed to determine what kind of connection you mean. These interfaces are still compatible with v2.3 and earlier up through the port parameter. There are differences beyond this. * Added TCPConnection, UnixDomainSocketConnection and WindowsNamedPipeConnection subclasses for Connection giving simpler construction and connect() method interfaces for instances where you know what kind of connection you want at compile time. * Changed Connection::ping() return value from int to bool. * Renamed NullisNull to NullIsNull -- capital I -- and similar for NullisZero and NullisBlank. * It's now a compile-time error to try to convert a MySQL++ representation of a SQL null to any other data type, rather than a run-time error as in previous versions. Removed BadNullConversion exception as a result. * Way back in v1.7.x we used the BadQuery exception for all kinds of exceptional conditions, not just bad queries. Replaced most of these in v2.0.0 with new dedicated exceptions, but a few remained: - Errors that occur during the processing of a "use" query after the query itself executes correctly now throw UseQueryError. It's not a "bad query", because the query executed successfully. It just choked during subsequent processing, so it's a different exception. Thanks for this patch go to Jim Wallace. - Replaced BadQuery exceptions thrown in Row constructor due to bad ctor parameters with new ObjectNotInitialized exception This is also Jim Wallace's work. * The examples now all use getopt() type command line options instead of positional options. This makes it possible to pass options in any order, leave at their default options that used to be in the middle of the sequence, and offer different subsets of options for different programs. Also allows for special internal-use options, like -D passed by dtest to let examples change their behavior when run under dtest to produce only predictable output. * Split old libutil functionality into two modules, one holding all the "print data" functions, and another holding all the command line parsing stuff. This makes it easier for newbies to ignore the command line stuff, treating it like a black box. The wish to understand the "print data" routines is much more common, so the two needed to be disentangled. * Renamed examples' libutil to libexcommon. * Removed `connect_to_db()` `libutil` function. It combined command line parsing, which users don't care about, with database connection establishment, which they do care about. Now the examples just call out to libexcommon to parse the command line, and use the values they get back to explicitly make the connection, so it isn't hidden. * Removed cchar and uint typedefs. * Redesigned dbinfo example's output to be easier to read. * Fixed an output formatting bug created in 2.3.0 that caused the tabular output from examples to not line up. * Renamed examples/tquery.cpp to tquery1.cpp. Created tquery2.cpp to demonstrate passing parameters via a SQLQueryParametrs object instead of discretely. Created tquery3.cpp for testing unquoted template parameters, such as integers. * Renamed fieldinf1.cpp example to fieldinf.cpp, and simplified its output so it can be part of the dtest sequence. * Renamed examples/xaction.cpp to transaction.cpp. It created too much cognotive dissonance whenever thinking about both it and lib/transaction.cpp. * Added examples/deadlock.cpp, to test handling of exceptions due to server-side transaction deadlock detection. Also added code to resetdb to create a table needed to test this. Initial version created by Jim Wallace to test the value of all his BadQuery exception work, with reworking by me. * Greatly expanded dtest suite. Primary change is that we now have a handful of unit tests, where in v2.3.2 we only tested a subset of the examples. Still very low coverage ratio, but it's a big improvement. * Optimized #includes, especially in `lib/*.h` to reduce dependencies and thus compile time when one of these changes. * Fixed a typo in RPM filename generation that prevented -devel RPM from recognizing that the corresponding MySQL++ library RPM was installed. * RPM spec file improvements by Remi Collet. * Renamed `NO_LONG_LONGS` to `MYSQLPP_NO_LONG_LONGS` to avoid a risk of collision in the global macro namespace. * First cut at Xcode2 project support. Testing needed! * Debug build of library on VC++ and Xcode have a `_d` suffix now so you can have both versions of the library installed without conflict. * Moved the VC++ 2003 project files into a new vs2003 subdirectory because there are so many of them. Also created vs2005 subdirectory for VC++ 2005 and 2008 compatible project files. 2005 makes an even bigger mess of the directory containing the .sln file, so the incentive is bigger. Plus, we have to disable several things to get VC++ 2003 to build MySQL++ now, so we need a special 2005+ version of the project files for a complete build, if the user has one of the newer compilers. * ...plus dozens of small bug fixes and internal enhancements, many documentation improvements, and expansion of support for newer operating systems and compilers. ## 2.3.2, 2007.07.11 **NOTE:** Because this is the last release in the 2.x line, and because I have no plans to make another formal 2.x release, there is now a [branch][m232] with minimal changes to allow this version of the software to build on modern systems. [m232]: https://tangentsoft.com/mysqlpp/timeline?r=v2.3.2-modern * Previous release's `const_string` change caused more problems than it fixed. This release contains the real fix. :) * New `Connection::set_option()` handling deals with the multi statements option correctly again. examples/multiquery now runs again as a result. * Added new unit testing script, called dtest. See the HACKERS file for details. (This tool caught the previous two problems!) * Squished a GCC pedantic warning. Thanks for the patch go to Andrew Sayers. ## 2.3.1, 2007.07.10 (r1659) The "After the Fireworks" release * `const_string` objects now keep a copy of their data, not just a pointer to it. This is less efficient, but necessary to allow SSQLS to work with BLOBs. Without this, we were seeing segfaults due to accessing freed memory pointed to by the const_string, because the underlying object went out of scope. * Fixed many more potential embedded null handling problems in manip.h. * MySQL++ can now optionally reference MySQL C API headers as being in a mysql subdirectory, a common thing on *ix systems, by defining MYSQLPP_MYSQL_HEADERS_BURIED before #including mysql++.h. * Restored `ColData_Tmpl::get_string()`, removed in v2.3.0, along with warnings in the docs saying why you don't want to use it, and what your alternatives are. * VC++ and MinGW builds now define the `HAVE_MYSQL_SSL_SET` macro, which lets you use the C API's SSL features. This assumes your C API library does actually have these features enabled, which is the case with the official binary releases on Windows. (Builds on *ix systems continue to test for these features at configure time.) * Fixed simple examples-only Makefile generation, for RPMs. ## 2.3.0, 2007.07.02 * Added `Query::for_each()` and `Query::store_if()` methods proposed by Joel Fielder, and added examples for each. * It's now possible to store BLOB data in an SSQLS. It's not foolproof, so added a section to the user manual (5.9) to document the method. Also, changed examples/cgi_jpeg to use this new mechanism, instead of the ugly "raw row data" method it used to use. * Revamped `Connection::set_option()` handling. These options used to be queued up, and applied only just before actually establishing the connection. This made error reporting less helpful because the diagnostic was separated from the cause. Plus, the error messages were misleading to begin with. Now, set_option() takes effect immediately if the connection is not yet up (excepting one special option that can actually be set after the connection is up) and issues better diagnostics when it detects errors. * Connection::connect() used to set a few options in such a way that the user couldn't override them. Now it's smart enough to set them with the desired default values only when we see that the user hasn't given them other values. * SQLString can now be initialized from a mysqlpp::null, giving a "NULL" string. This is useful for template queries. Patch by Michael Hanselmann. * resetdb error message about mixing library and header version numbers is now more explicit. * Changed BadConversion exception's "what" message text to be more like the other exceptions. The inconsistency lead one to incorrectly copy-paste code from another exception handler, expecting it to behave the same way. Now it does. * Added `Row::raw_size()`, as a shortcut for Row::at().size(). * ssqls-pretty now detects when it's being run from within the MySQL++ distribution tree and gives a different -I flag to the compiler, so that it picks up the distribution headers instead of those that may be on the system already. * The quote manipulator now works for char[] correctly. Thanks for this patch go to Andrew Sayers. (It's always worked for char*, but C++ doesn't consider that to be the same type, so it used the generic quote handling path, which doesn't do anything for char[].) * Fixed a build bug on older Solaris versions where the test for the C API library was erroneously failing, stopping the configuration process. * Simplified `mysql_shutdown()` level argument detection. Already had to do a version number ifdef check for the Windows case, so there's really no point to doing it with autoconf on Unixy platforms. Moved version number check into lib/connection.cpp, and nuked the separate autoconf and Windows tests. * Removed dependency of `sql_types.h` on myset.h and (indirectly) datetime.h. Now we only define sql_* typedef aliases for those MySQL++ types if the headers are included before sql_types.h. * Fixed a typo in one of the `storein_sequence()` template overloads, which is apparently rarely (or never?) used, because no one reported the compiler error you'd get if you tried. * Fixed a few more embedded null handling problems. * ColData used to keep two copies of all data it held. Now it keeps just one. * Fixed install.bat script to track the unified Bakefile change and the lack of separate debug and release builds under MinGW. * Yet another STLport + Query memory leak fix. * Squished a warning in newer GCCs having to do with identifier shadowing. Patch by Jonathan Wakely. * Fixed a null-termination bug in Query::parse(). If you somehow constructed a query string without a terminating null character, then tried to parse it as a template query, it could walk off the end of the string. Patch by Worster Chen. * Removed `MYSQLPP_EXPORT` tag from FieldNames and FieldTypes class declarations, as this can cause problems in programs that use vector in VC++. It has to do with multiply defined templates, since these classes derive from that template, and VC++ can't resolve the conflict without help. Since these classes aren't actually used outside the library, this shouldn't cause a problem. Patch by Nils Woetzel. * Partial fix to Doxygen PDF build on RHEL4 and 5. Needs hand-coaxing to complete successfully on RHEL4, and doesn't yet work at all on RHEL5. * Shortened the `no*` options to the bootstrap script, so that the usage message fits on a single line. * Added "nodoc" bootstrap script option, for disabling the documentation build during the dist target build. Allows for building binary RPMs on CentOS 5.0, where doc building is currently broken. * Removed the updel example program. It was kind of silly, and if you were to rewrite it today, you'd use for_each() anyway. * Lots of documentation improvements. ## 2.2.3, 2007.04.17 (r1538) The "Tax Day" release * Previous version left `examples/vstudio/*` out of the tarball by accident. * Improved generation of RPM temporary build directory path name generation. Was using a hacked variant of the Fedora Packaging Guidelines' second best choice. Now we're using the choice they recommend most highly, without changes. * Removed unnecessary resources from vstudio/wforms example. * Minor URL fix in refman ## 2.2.2, 2007.04.13 (r1526) The "Nervousmaking Friday the 13th" release * More small fixes to embedded null handling in Query. * Fixed a bug in single-parameter template query handling. * Added tquery example, to demonstrate proper use of template queries. Previously, resetdb was the only exemplar, and it wasn't really suited for that. This example also tests the previous item. * Added examples/vstudio/mfc, allowing us to improve the way we demonstrate Unicode handling. Old way wasn't realistic. On *ix, people will depend on the terminal code to handle UTF-8. On Windows, users are almost certain to be writing a GUI program, which requires different Unicode handling than the old examples showed. * Removed explicit Unicode conversion stuff from command line examples, and reworked the Unicode chapter in the user manual. * Added examples/vstudio/wforms to show integration with C++/CLI and Windows Forms. Documented this in README.vc. * Rewrote `load_file` and `cgi_image` examples to be more useful, renaming them to load_jpeg and cgi_jpeg along the way. Also, resetdb now creates a second table in the sample database for these two examples' use. Also, added examples/logo.jpg to the distribution as sample data for these examples. * Limited the ostream base class casting stuff in Query to VC++ 2003, which is the only platform that really needed it. VC++ 2005 emits a warning with that hack in place, and on other platforms it's just replicating work that the compiler does already. * Added library version information to main library target so that systems that version shared libraries work as expected. Thanks for this patch go to Jack Eidsness. * Merged much of the diffs between Remi Collet's RPM spec file into the official one. * Reorganized the doc subdir a bit. Generated HTML is now all under doc/html instead of scattered under other subdirs, and renamed doc/README.mysql++ to doc/README.manuals. * Improvements to top-level manual building make targets: manuals now only rebuild at need, it's easier to request a rebuild of all manuals, and we force a rebuild attempt before building the distribution tarball so we don't ship outdated manuals. * Added ability to run examples under gdb using exrun, using same mechanism as we currently have for valgrind. Thanks for this patch go to Michael Hanselmann. * Added "Important Underlying C API Limitations" chapter to the user manual, to cover problems we keep seeing on the mailing list that are the result of ignorance of the way libmysqlclient behaves, not bugs MySQL++ is really in a position to fix. ## 2.2.1, 2007.02.28 * Fixed the new localtime() alternative selection code for VS2003 and various uses of STLport. * No longer inserting a null character into the query stream on calling one of the preview() functions. This was harmless in v2.1, which used C strings more extensively, but began causing problems in v2.2 due to its wider use of C++ strings. * Fixed a bug in the Connection copy ctor where it didn't completely initialize the object. * Optimized `Query::preview_char()` a bit. Patch by Jonathan Wakely. * Reordered directory list used by autconf when locating the MySQL C API library. The list is now ordered with the most likely locations for the library first, so we're less distracted by incorrect libraries. This fixes a specific build error under RHEL4 with recent versions of MySQL 5.0. ## 2.2.0, 2007.01.23 * `ColData`, `const_string`, and `SQLString` can now be constructed with an explicit length parameter. Furthermore, Query class's `execute()`, `store()` and `use()` call chains terminate in a version taking an explicit length parameter, instead of one taking a simple C string. Together, this means that it's now easier to handle data from the SQL server containing nulls. The library is almost certainly not yet capable of handling embedded nulls in all cases, but this is a big first step towards that. * Can now construct a DateTime object from a `time_t`, and convert a DateTime back to a time_t. Patch by Korolyov Ilya. * Changed the way we're handling exported functions in the Windows DLL case so that it works more reliably under MinGW. * Added proper copy semantics to Connection, so that you get a new connection with the same parameters, not just a bitwise copy of the object. * Using an explicitly thread-safe variant of localtime() for time conversions where one is available. * Removed ListInsert template from myset.h. This wasn't used within the library, and was never documented, so I'm betting that no one actually uses it. * Result::copy() was not copying the exception flag in all cases. Fix by Steven Van Ingelgem. * Added exrun shell script and exrun.bat files to distribution, to avoid linkage errors when running the examples while you still have an older version of MySQL++ installed. * Renamed `MYSQLPP_LIB_VERSION` to `MYSQLPP_HEADER_VERSION`, as what it really encodes is the version number in the `mysql++.h` file you're using, not the actual library version number. * Added `mysqlpp::get_library_version()`, which returns the library version number at build time. Between this and the header version constant, you can check that you're not mixing MySQL++ header and library versions. * resetdb example uses these new version number affordances to double-check that you're not mixing libraries and headers from different versions. This happens easily unless you take care of it (such as by using exrun) when you have one version of MySQL++ installed and you're trying to build and test a new version without blowing away the old one first or overwriting it. * No longer using recursive Makefiles on Unixy platforms or split lib + examples project files on VC++. Everything is handled by a single top-level Makefile or project file, which is simpler for the end user, and makes better dependency management possible. * When looking for the MySQL C library on systems using autoconf, looking in .../lib64 wherever we are also looking in .../lib. * RPM build process no longer depends on Bakefile. It means you have to build the examples when building an RPM even though they're never used within the RPM, but it's a better tradeoff in my opinion. * Updated include and library paths on Windows to reflect changes in the most recent MySQL installers. * Merged lib/defs.h and lib/platform.h into new file, lib/common.h. Just cleans up the library internals. * Fixed build errors on Windows due to recent changes in MySQL. * Fixed a few memory leaks and double-deletes in Query class. * Fixed compatibility with STLPort's string implementation. Patch by dengxy at cse.buaa.edu.cn. * Fixed a compatibility problem between Set<> template and SSQLS. Patch by Korolyov Ilya. * Fixed build bug in SQLQueryParms due to a character signedness issue on PowerPC with GCC. Patch by Michael Hanselmann. * ~Transaction() can no longer throw exceptions. It'll just quietly eat them, to avoid program termination. Fix suggested by Alex Burton. * Fixed thread safety testing in autoconf case, accidentally broken during v2.1.0 development cycle. * Using Doxygen 1.5.1 to generate documentation. ## 2.1.1, 2006.04.04 * MinGW and Cygwin will now build and link to mysqlpp DLLs. * Fixed bug in Query, causing it to initialize the "throw exceptions" flag incorrectly. Thanks for this patch go to Joel Fielder. * Added -v flag for custom.pl script, which turns off the multiply-defined static variable fix. Needed for VS 2003, which doesn't support variadic macros. Also, added a diagnostic to detect the need for the -v flag, and suppressed the test for this feature in examples/util.cpp. ## 2.1.0, 2006.03.24 * Converted automake and makemake files to their equivalents in Bakefile format. * Added the Transaction class, which makes it easy to use transaction sets in MySQL++. * Added xaction example to test new Transaction class. * Resetdb example now creates its example table using the InnoDB storage engine, in order to test the new transaction support. Resetdb also declares the table as using UTF-8 text; this doesn't change anything, but it does correctly document what we're doing. * Added `sql_types.h` header, containing C++ typedefs corresponding to each MySQL column type. Using those new types in the type_info module, and in the SSQLS examples. * Replaced the way we were handling the template query version of Query member functions, to allow an arbitrary number of template query parameters. By default, we now support 25 parameters, up from the old limit of 12. It's now possible to change just one number, run a script, and have a new limit. * Connection class does a better job of returning error messages if you call certain member functions that depend on a connection to the server before the connection is established. * Updated libmysqlclient.def for newer versions of MySQL. (Fixes build errors having to do with mysql_more_results() and mysql_next_result(). * Replaced final use of strcpy() with strncpy(). * custom.pl now runs without complaint in strict mode, with warnings turned on. Thanks for this patch go to "Waba". * Fixed a bug in custom.pl where incorrect code would be generated for some SSQLS set() methods. Thanks for this patch go to "Waba". * SSQLS structures now support long and unsigned long fields. Thanks for this patch go to "Waba". * It's now possible to put SSQLS definitions in a header file used by multiple modules in a program without getting multiple static member definition errors. See the documentation for details. Thanks for this patch go to Viktor Stark. * Moved the definition of the 'stock' SSQLS out of the custom*.cpp example files and into a new stock.h file. Also, #including that file in the util module to test out the new SSQLS multiple static definition fix. * Using all of the digits of precision guaranteed by the IEEE 754 spec when stringizing floating point numbers to build queries. Previously, we would use the platform default, which can be as few as 6 digits. * Removed lib/compare.h. Not used within the library, never documented, and nobody seems to want to defend it. ## 2.0.7, 2005.11.23 * Added explicit mysqlpp namespace qualifiers to generated code in custom*.h so you can use SSQLS in places where it doesn't make sense to say "using namespace mysqlpp" before the declaration. Also updated some of the examples to not have this "using" declaration to make it clear to users that it isn't needed, if you want to use explicit namespace qualifiers as well. Thanks for this patch to Chris Frey. * Removed an apparently useless unlock() call from ResUse; there is no nearby lock() call, so if this unlock() is in fact necessary, it shouldn't be here anyway, because the two calls should be nearby each other. Thanks for this patch to Chris Frey. * Fixed Query ostream initialization bug affecting SunPro CC (at least). While this bug violates the Standard, it doesn't affect many real compilers because they don't enforce this rule. Fixed by Chris Frey. * Previously, we only used the C99 style "long long" support when building under GNU CC. This is now the default. This should allow the code to work under SunPro CC. * Added another dynamic cast needed for proper Query ostream subclass overloading under VC++. (7.1 at least...) * Detecting whether MySQL is built with SSL support on platforms using autotools. Needed on some old Sun systems, for instance. Thanks for this patch to Ovidiu Bivolaru. * Fixed a potential memory bug in ColData's conversion to SQL null. * Many minor packaging tweaks. (README clarifications, file permission fixes, better adherence to GNU packaging standards, etc.) ## 2.0.6, 2005.09.28 * Fixed makemake.bat so it works on cmd.exe, not just 4NT. * Documentation fixes. ## 2.0.5, 2005.09.13 * Visual C++ build now requires GNU make. It is tested to work with either the Cygwin or the MinGW versions. The previous version of MySQL++ used nmake. This change enabled the following features: o Debug and Release versions are both built into separate subdirectories. o Dependency tracking for release version works correctly now. (Previously dependencies worked only for debug version.) o 'make clean' removes release version binaries in addition to debug versions. * MinGW makemake support updated to support new release/debug subdirectory system. This is probationary support, since this code currently can't be built as a DLL. As a result, it is no more useful than the Cygwin version, for licensing reasons. * Several fixes to allow building on Solaris 8. These fixes may also help on other SVR4-derived systems. * Removed Borland C++ makemake support, because this version of the library does not work completely, and there seems to be almost no user interest in fixing it. * Clarified "Handling SQL Nulls" section of user manual's Tutorial chapter. ## 2.0.4, 2005.08.29 * Made `mysql_shutdown()` second parameter autoconf check less sensitive to compiler pedantry. * VC++ library Makefile is now smart enough to re-create the import library, if it is deleted while leaving the DLL alone. * Added libmysqlclient.def to tarball. * Reworked most of the top-level `README*` files. * Renamed LGPL file to LICENSE. ## 2.0.3, 2005.08.25 * Visual C++ makemake system updated to build both debug and release versions of library DLL. * Fixed bug in simple1 example that caused crashes on Windows. * Doing UTF-8 to ANSI text translation in simple examples now. * Previous two releases built libmysqlpp with wrong soname on autotools-based systems. Fixed. ## 2.0.2, 2005.08.18 * Fixes to makemake system for cmd.exe. * Fixed the case where the system's C++ library includes an slist implementation in namespace std. ## 2.0.1, 2005.08.17 * Added new simple1 example, showing how to retrieve just one column from a table. Old simple1 is now called simple2, and simple2 is likewise shifted to simple3. * Added custom6 example, showing how to do the same thing with SSQLS. * Updated user manual to cover new examples. * Was accidentally shipping Subversion crap with tarball. Fixed. ## 2.0.0, 2005.08.16 (r1031) The "Excess Hair Removal" release **WARNING:** THIS IS NOT A DROP-IN REPLACEMENT FOR MySQL++ v1.7! At minimum, you will have to recompile your program against this library. You may also have to make code changes. Please see the "[Incompatible Library Changes][ilc]" chapter of the user manual for a guide to migrating your code to this new version. [ilc]: https://tangentsoft.com/mysqlpp/doc/html/userman/breakages.html * The library's shared object file name (soname) scheme has changed. (This mainly affects POSIX systems.) The soname for the last 1.7.x releases of MySQL++ was libmysqlpp.so.4, meaning the fourth version of the library's application binary interface (ABI). (The first ABI version in this scheme was that provided by 1.7.9.) MySQL++ 2.0.0's soname is libmysqlpp.so.2.0.0. Since the dynamic linker setup on some systems will create a symlink to that file called libmysqlpp.so.2, it's possible that this library could be confused with that for MySQL++ 1.7.19 through .21, which also used this number. Do not install this library on a system which still has binaries linked against that version of the library! The new scheme is {ABI}.{feature}.{bug fix}. That is, the first number changes whenever we break the library's binary interface; the second changes when adding features that do not break the ABI; and the last changes when the release contains only internal bug fixes. This means that we will probably end up with MySQL++ 3.0 and 4.0 at some point, so there will be further soname conflicts. Hopefully we can put these ABI changes off long enough to avoid any real problems. * autoconf now installs headers into $prefix/include/mysql++, instead of $prefix/include. If you were using the --includedir configure script option to get this behavior before, you no longer need it. * Linux binary RPMs will henceforth include only the libmysqlpp.so.X.Y.Z file, and create any short names required, to allow multiple versions to be installed at once. Currently, you cannot install two MySQL++ library RPMs at once, because they both have /usr/lib/libmysqlpp.so.X, for instance. * Replaced the Visual C++ and Borland C++ project files with a new "makemake" system, which creates Makefiles specific to a particular toolchain. This new mechanism also supports MinGW and generic GCC-on-*ix. This was done partly to reduce the number of places we have to change when changing the file names in MySQL++ or adding new ones, and partly so we're not tied to one particular version of each of these tools. * VC++ Makefiles create a DLL version of the library only now, so there's no excuse for LGPL violations now. This same mechanism should make DLL builds under other Windows compilers easy. * Added `Connection::enable_ssl()`, which enables encrypted connections to the database server using SSL. * `Connection::create_db()` and `drop_db()` now return true on success, not false. * `Connection::create_db()` and `drop_db()` use Query::exec() now, for efficiency, rather than Query::execute(). * Removed `Connection::infoo()`. Apparently just there to save you from a typo when calling the info() method, since it was a mere alias. * Renamed `Connection::real_connect()` to `connect()`, gave several more of its parameters defaults, and removed old connect() function. Then changed user manual and examples to use new APIs. * Replaced `Connection::read_option()` with new `set_option()` mechanism. The name change matches the method's purpose better. Functional changes are that it returns true on success instead of 0, it supports a broader set of options than read_option() did, and it enforces the correct option argument type. * You can now call `Connection::set_option()` before the connection is established, which will simply queue the option request up until the connection comes up. If you use this feature, you should use exceptions, because that's the only way an option setting failure can be signalled in this case. * Removed query-building functions (`exec*()`, `store*()`, `use()`) from class `Connection`, and moved all the implementation code to `class Query`. `Query` no longer delegates the final step of sending the query to the database server to `Connection()`. * Added `Connection::enable_ssl()`, for turning on SSL support on a connection. * Extracted exception disabling mechanism out of the many classes that had the feature into a new OptionalExceptions base class, which all classes having this feature now derive from. Also, removed all per-method exception handling flags. Finally, added NoExceptions class. With all of these changes, there is now a common way to disable exceptions with fine granularity on all objects that support the feature. * All custom MySQL++ exceptions now derive from the new Exceptions class. This regularizes the exception interface and allows you to use a single catch() block if you want. * The "throw exceptions" flag is passed from parent to child in all situations now. (Or if not, please report it as a bug.) This fulfills a promise made in the v1.7.9 user manual, with the cost being that some programs will see new exceptions thrown that they're not expecting. * Added a bunch of new exception types: BadOption, ConnectionFailed, DBSelectionFailed, EndOfResults, EndOfResultSets, LockFailed, and ObjectNotInitialized. Some of these replace the use of BadQuery, which in v1.7.x was a kind of generic exception, thrown when something more specific wasn't available. Beware, this means that programs may start crashing after recompiling them under v2.0 due to uncaught exceptions, if they were only trying to catch BadQuery. There are additional instances where the library will throw new exceptions. One is when calling a method that forces the internals to use an out-of-bounds index on a vector; previously, this would just make the program likely to crash. Another is that the library uses the BadFieldName exception -- created in v1.7.30 -- in more apropos situations. * Renamed SQLQueryNEParms to BadParamCount, to match naming style of other concrete exception types. * Extracted lock()/unlock() functions from Connection and Query classes into a new Lockable interface class. Locking is implemented in terms of a different class hierarchy, Lock, which allows multiple locking strategies with a single ABI. * Removed ResUse::eof(). It's based on a deprecated MySQL C API feature, and it isn't needed anyway. * Removed arrow operator (->) for iterator returned by Fields, Result and Row containers. It was inherently buggy, because a correct arrow operator must return the address of an object, but the underlying element access functions in these classes (e.g. at()) return objects by value, of necessity. Therefore, this operator could only return the address of a temporary, which cannot be safely dereferenced. * Returned Row subscripting to something more like the v1.7.9 scheme: there are two operator[] overloads, one for an integer (field by index) and another for const char* (field by name). lookup_by_name() has been removed. Because row[0] is ambiguous again, added Row::at() (by analogy with STL sequence containers), which always works. * Collapsed two of the `Row::value_list*()` overloads into two other similar functions using default parameters. This changes the API, but the removed functions aren't used within the library, and I doubt they are used outside, either. * Merged RowTemplate into Row. * Merged SQLQuery class into Query class. * Query is now derived from std::ostream instead of std::stringstream, and we manage our own internal string buffer. * Moved SQLParseElement and SQLQueryParms into their own module, qparms. * Added multiple result set handling to Query. MySQL 4.1 and higher allow you to give multiple SQL statements in a single "store" call, which requires extensions to MySQL++ so you can iterate through the multiple result sets. Also, stored procedures in MySQL 5.0 reportedly return multiple result sets. Thanks for the initial patch go to Arnon Jalon; I reworked it quite a bit. * `Query::storein*()` now supports more varieties of the nonstandard slist comtainer. (Singly-linked version of STL `std::list`.) * Template query mechanism and user manual had several mismatches. Made manual match actual behavior, or made library match documented behavior, as apropriate. Initial patch by Jürgen MF Gleiss, with corrections and enhancements by Warren Young. * Collapsed `mysql_*` date and time base classes' methods and data into the subclasses. Also, DateTime no longer derives from Date and Time; you could get away with that in the old hierarchy, but now it creates an inheritance diamond, and allows unsupported concepts like comparing a Time to a DateTime. * Removed "field name" form of `Row::field_list()`. It was pretty much redundant -- if you have the field names, why do you need a list of field names? * ColData can convert itself to bool now. Thanks for this patch go to Byrial Jensen. * Removed `simp_list_b` type; wasn't being used, and doesn't look to be useful for end-user code. * Several methods that used to take objects by value now do so by const reference, for efficiency. * Several variable and function renamings so that MySQL++ isn't needlessly tied to MySQL. Even if we never make the library work with other database servers, there's little point in tying this library to MySQL blindly. * Renamed all private data members of MySQL++ classes to have trailing underscores. * 'private' section follows 'public' section in all classes now. * Removed mysql++.hh and sqlplus.hh backwards-compatibility headers. * Added copy ctors to Date/Time classes so that they will work in SSQLS under GCC 4.0.0. Without these, the compiler couldn't make the conversion from raw MySQL row data. * Fixed a bunch of GCC 4.0 pedantic warnings: added virtual dtors to all base classes, calling base class ctors from leaf classes, etc. * All warnings fixed under VC++ at warning level 3. (Mostly harmless signedness and integer conversion stuff.) * Updated LGPL license/copyright comments at the top of several files to use FSF's new physical address. * Relicensed user manual under a close variant of the Linux Documentation Project License, as it's designed for documentation, which the LGPL is not. Permission for this received from Kevin Atkinson and MySQL AB. * Added ABI and API breakages chapter to user manual. It is basically a subset of this change log, with only the information an end-user must know when migrating between versions. * Reworked user manual's DocBook code quite a bit after reading Bob Stayton's book "DocBook XSL" 3/e. Better handling of stylesheets, taking advantage of some superior DocBook features, prettier output (especially the HTML version), etc. * Rewrote doc/userman/README to make it clearer how to get started contributing to the user manual. It's essentially a "getting started with DocBook" guide now! * Lots of small text improvements to user and reference manuals. Aside from the obvious tracking of library changes, made a bunch of minor style and clarity improvements. * Added CSS stylesheets for userman and refman to make the HTML versions of each a) not ugly; and b) match `tangentsoft.com`. (Yes, some may say that these are incompatible goals....) * Standardized exception handling code in the examples that use it. * Fixed a potential memory leak due to exceptions thrown from ResUse. Thanks for this patch go to Chris Frey. * Using new "no exceptions" feature of library in simple1 example, so it is now truly simple. * simple1 example no longer depends as much on util module, so that all of the important code is in one place. Makes learning MySQL++ a little less intimidating. * Added new simple2 and usequery examples, to demonstrate the proper way to handle a "use" query, with exceptions disabled, and not, respectively. Added them to the user manual, in the appropriate place. * Refactored the "print stock table" example functions again, to make code using them clearer. * UTF-8 to UCS-2 handling in examples is now automatic on Windows. * Removed debug code from Windows Unicode output examples that slipped into previous release. * resetdb example is now clearer, and more robust in the face of database errors. * Simplified `connect_to_db()` in examples' util module. * Added sample autoconf macro for finding MySQL++ libraries, for people to use in their own autotools-based projects. * Lots and lots of minor cleanups not worth mentioning individually... ## 1.7.40, 2005.05.26 * Multiple item form of insert() now works if you're using the SQLQuery class, or its derivative, Query. Thanks to Mark Meredino for this patch. * Fixed a bug in `const_string::compare()`, in which MySQL++ would walk off the end of the shorter of the two strings. All was well if the two were the same length. * ResUse::operator=() now fully updates the object, so it's more like the behavior of the full ctor. * All source files now contain a license and copyright statement somewhere within them. * Optimized mysql++.h a bit: it now #includes only the minimum set of files required, and there is now an idempotency guard. This improves compile times a smidge, but mainly it was done to clean up the generated #include file graph in the reference manual. Before, it was a frightful tangle because we #included everything except custom*.h. * Constness fix in MySQL++ date/time classes to avoid compiler warnings with SSQLS. Thanks to Wolfram Arnold for this patch. * Fixed some compiler warnings in `custom*.h`. Thanks to Chris Frey for this patch. * Added "Submitting Patches" and "Maintaining a Private CVS Repository" sections to the HACKERS file. Thanks to Chris Frey for the source material for these sections. The HACKERS file was improved in several other ways at the same time. * PDF version of user manual no longer has links to the reference manual. They were ugly, and they were broken anyway due to the way we move the PDFs after generating them. If you want interlinked manuals, use the HTML version. * PDF version of user manual now has hard page breaks between chapters. * Removed complic1 example. Wasn't pulling its own weight. Everything it is supposed to demonstrate is shown in other examples already. * Refactored `print_stock_table()` in examples/util module to be four functions, and made all the examples use various of these functions where appropriate. Before, several of the examples had one-off stock table printing code because print_stock_table() wasn't exactly the right thing, for one reason or another. One practical problem with this is that some of the examples missed out on the recent Unicode updates; now such a change affects all examples the same way. * Since so many of the examples rely on the util module, the user manual now covers it. The simple1 example in the user manual didn't make much sense before, in particular, because it's really just a driver for the util module. * Added custom5 example. It shows how to use the `equal_list()` functionality of SSQLS. Thanks to Chris Frey for the original version of this program. (I simplified it quite a bit after accepting it.) * New user manual now covers the `value_list()`, `equal_list()` and `field_list()` stuff that the old manual covered but which was left out in previous versions of the new manaul. Most of the examples are the same, but the prose is almost completely new. This new section includes the custom5 example. * Every declaration in MySQL++ is now documented in the reference manual, or explicitly treated as "internal only". * Improved docs for MySQL++'s mechanism to map between MySQL server types and C++ types. Initial doc patch by Chris Frey, which I greatly reworked. * Improved a lot of existing reference manual documentation while adding the new stuff. * Expanded greatly on the exception handling discussion in the user manual. * Added all-new "Quoting and Escaping" section to the user manual's Tutorial chapter. Moved some existing comments on quoting and escaping around and added some new ones to other sections as a result. * Added all-new "Handling SQL Nulls" section to the user manual's Tutorial chapter. * Many improvements to the Overview section of the user manual. * Row::operator[] reference now explains the right and wrong way to use the values it returns. This is in response to a mailing list post where someone was incorrectly using this feature and getting a bunch of dangling pointers. * Updated Doxyfile so 1.3.19.1 parses it without warnings. Still works with versions back to 1.2.18, at least. (These are the versions shipped with Fedora Core 3 and Red Hat Linux 9, respectively.) * Using a superior method to make Doxygen ignore certain sections of the source code. Between this change and the fact that everything not so ignored is documented, Doxygen no longer generates any warnings. * Lots of code style updates. Everything should now be consistently formatted. ## 1.7.35, 2005.05.05 (r601) The "Cinco de Mayo" release * Added a "how to use Unicode with MySQL++" chapter to the user manual. (Too bad "Cinco de Mayo" doesn't have any accented characters. That would be just _too_ precious.) * VC++ examples now use the Unicode Win32 APIs, so they can display Unicode data from MySQL++. * Added an optional conversion function to examples/util.cpp to handle the conversion from UTF-8 to UCS-2 on Win32. * Moved "brief history of MySQL++" from intro section of refman to intro section of userman. * Lots of small bits of documentation polishing. * Made some minor constness fixes. Thanks to Erwin van Eijk for this patch. * Made some warning fixes for GCC 4.0. Not all warnings are fixed, because some of the needed changes would break the ABI. Thanks to Chris Frey for this patch. * Added lib/Doxyfile to distribution. ## 1.7.34, 2005.04.30 * Added a multiple-insert method for Query, which lets you insert a range of records from an STL container (or the whole thing, if you like) in a single SQL query. This is faster, and it reduces coding errors due to less repetition. Thanks to Mark Meredino for the patch. * Reference and user manual now get rebuilt automatically when required. (E.g. on 'make dist', or explicitly now through 'make docs'.) * Made it easier to change the maximum number of SSQLS data members in generated custom-macros.h file. It used to be hard-coded in several places in lib/custom.pl; now it's a variable at the top of the file. * Changed default SSQLS data member limit to 25, which is what it has been documented as for a long time now. It was actually 26 within custom.pl. * Fixed a regression in previous version. * Trimmed some fat from the distribution packages. * Some more small doucmentation improvements. ## 1.7.33, 2005.04.29 * Worked around an overloaded operator lookup bug in VC++ 7.1 that caused SSQLS insert, replace and update queries to get mangled. (Symptom was that custom2 and custom3 examples didn't work right.) Thanks to Mark Meredino for digging up [the problem's characterization and its solution](https://groups.google.com/forum/#!topic/microsoft.public.vc.stl/mmjYRkTmTxU). * Some VC++ warning fixes. * Major documentation improvements: o Using DocBook for user manual and Doxygen for reference manual. The former now references the latter where useful. o Split out HACKERS and CREDITS files from main README, and improved remaining bits of README. o Moved the text from the old v1.7.9 LaTeX-based documentation over into the new systems, and reworked it to more closely resemble English. o Added a lot of new material to documentation, and simplified a lot of what already existed. o Documentation is now being built in HTML and PDF forms. * ebuild file updated to take advantage of recent configure script features. Thanks to Chris Frey for this patch. ## 1.7.32, 2005.03.10 * Example building may now be skipped with --disable-examples configure script flag. * Changed stock items added in resetdb. One is now UTF-8 encoded, to show that basic use of Unicode with MySQL++ is easy, yet not foolproof. (See formatting of table on systems where cout isn't UTF-8 aware!) Other stock items now follow a theme, for your amusement. :) * custom3 example now changes UTF-8 item's name to the 7-bit ASCII equivalent. Previously, this example would fix a spelling error in the table. * resetdb example now says 'why' when it is unable to create the sample database. * Small formatting change to `print_stock_table()`, used by several examples. * Was issuing a VC++-specific warning-disable pragma when built by any Windows compiler. Fixed. ## 1.7.31, 2005.03.05 (r462) The "Inevitable Point-one Followup" release * Check for threads support must now be explicitly requested via configure script's new --enable-thread-check flag. * Fix for contacting MySQL server on a nonstandard port number. Thanks to Chris Frey for this patch. * Example programs using standard command line format now accept a fourth optional parameter, a port number for the server. Thanks to Chris Frey for this patch. * One more g++ 3.4 pedantic warning fix by Chris Frey. * Exception handling in resetdb is no longer nested, because you'd get a segfault on some systems when an exception was thrown from one of the inner try blocks. * Improvements to Connection class's handling of locking mechanism. Concept based on patches by Rongjun Mu. * Implemented the declared-but-never-defined Query::lock(). Thanks to Rongjun Mu for this patch. * Cleaned up some unclear if/else blocks in connection.cpp by adding explicit braces, correct indenting and putting normal code path in the if side instead of the else. ## 1.7.30, 2005.02.28 (r443) The "Power of Round Numbers" release * bootstrap script now accepts a 'pedantic' argument, which sets a bunch of CFLAGS that make g++ very picky about the code it accepts without warnings. * Fixed a bunch of things that generated warnings with g++ in pedantic mode. Only two warnings remain, having to do with floating point comparisons. (See Wishlist for plans on how to deal with these.) Thanks to Chris Frey for this patch. * Split long tests out of configure.in into M4 files in new config subdir. This makes configure.in easier to read. * Added preliminary thread support. Currently, this just means that we detect the required compiler and linker thread flags, and link against the proper thread-safe libraries. THERE MAY BE UN-THREAD-SAFE CODE IN MYSQL++ STILL! * Standard C++ exceptions are the default now. Old pre-Standard exception stuff removed. * `Row::lookup_by_name()` will throw the new BadFieldName exception if you pass a bad field name. Thanks for this patch to Chris Frey. * Row::operator[] will throw a Standard C++ out of bounds exception by way of std::vector::at() if you pass it a bad index. Thanks for this patch to Chris Frey. * Setting `Connection::is_connected` flag to false on close(). Previously, is_connected() would continue to return true after close() was called. * All number-to-string conversion ctors in SQLString class now use ostringstream to do the conversion. Previously, we used snprintf(), which isn't available on all systems. Also, we used a C99 format specifier for the "long long" conversion, which is also not available on all systems. This new ostringstream code should be platform-independent, finally. ## 1.7.28, 2005.02.04 * ` --with-mysql*` flags to configure script now try the given directory explicitly, and only if that fails do they try variations, like tacking '/lib' and such onto it to try and find the MySQL includes and libraries. Thanks to Matthew Walton for the patch. * Finally removed `sql_quote.h`'s dependence on `custom.h` by moving the one definition it needed from `custom.h` to `deps.h`. This will help portability to compilers that can't handle the SSQLS macros by making that part of the library truly optional. ## 1.7.27, 2005.01.12 * configure check for libmysqlclient now halts configuration if the library isn't found. Previously, it would just be flagged as missing, and MySQL++ would fail to build. * Added `sql_string.cpp` to VC++ and BCBuilder project files. * Removed Totte Karlsson's 'populate' example, which never made it into the distribution anyway. * Removed last vestiges of 'dummy.cpp'. * Renamed `*.cc` to `*.cpp` in BCBuilder project files. * Worked around a BCBuilder C++ syntax processing bug in row.h. ## 1.7.26, 2004.12.17 * Moved all of the SQLString definitions out of the header and into a new .cpp file, reformatted it all, and made the integer conversion functions use snprintf() or _snprintf() instead of sprintf(). Also, widened some of the buffers for 64-bit systems. * Using quoted #include form for internal library headers, to avoid some problems with file name clashes. (The headers should still be installed in their own separate directory for best results, however.) Thanks to Chris Frey and Evan Wies for the patch and the discussion that lead to it. * Removed unnecessary semicolons on namespace block closures. Thanks to Evan Wies for this patch. * Fixed namespace handling in the legacy headers mysql++.hh and sqlplus.hh. Thanks to Chris Frey for this patch. * #including iostream instead of ostream in lib/null.h for broader C++ compatibility. (This may allow MySQL++ to work on GCC 2.95.2 again, but this is unconfirmed.) * Detecting proper `mysql_shutdown()` argument handling automatically in platform.h for the Windows compiler case instead of making the user edit the file. Thanks to Evan Wies for this patch. * Fixed examples/Makefile.simple to use new `*.cpp` file naming. * Fix to Gentoo ebuild file's exception configure switch handling. Thanks to Chris Frey for this patch. * Rebuilding `lib/custom*.h` intelligently now, to avoid unnecessary recompiles after running bootstrap script. ## 1.7.25, 2004.12.09 * Yet more fixes to the --with-mysql-lib and --with-mysql-include flags. * Added DLLEXPORT stuff to platform.h, hopefully so that someone can figure out how to make VC++ make a DLL version of MySQL++. * Renamed `*.cc` to `*.cpp`. * Made 'set -> myset' change in VC++ project files. * Some style changes (mostly whitespace) in header files. ## 1.7.24, 2004.12.08 * Fixed the --with-mysql-lib and --with-mysql-include flags' behavior, and extended their search ability to handle one other common case. (Fixed by Steve Roberts) * Fixes to put freestanding functions in namespace mysqlpp. (They weren't in the namespace, while all the class member functions were.) This required bumping the ABI version number to 4. * Renamed set module to myset, to avoid conflicts with Standard C++ Library's set.h when MySQL++ headers were installed into one of the standard system include directories. * Renamed all the idempotency guards to make them consistent in style and unique to MySQL++. * Reformatted all of `lib/*.cc`. ## 1.7.23, 2004.11.20 * Query::reset() now empties the stored query string. If you subsequently stored a longer query in the object, you'd overwrite the previous query, but otherwise the longer part of the previous one would stick out past the new query. * We now look to the `NO_LONG_LONGS` macro only to decide whether to fake 64-bit integer support using 32-bit integers. * 64-bit integer support under Visual C++ may be working now, using that platform's __int64_t type. This has not been tested. * Removed 64-bit integer support for Codewarrior on Mac OS 9 and earlier. OS X uses GCC, so it requires no special support. * Added MinGW detection in platform.h. * If you pass a flag (-X) to the examples that take the standard parameters (resetdb, simple1, etc.), it prints a usage message. * Better error handling in resetdb example, where errors are the most critical. (If that one runs without errors, the others probably will, too, and you have to run that one first.) * resetdb now reports success, rather than succeeding silently. * Removed the code in sample1 example that duplicated util module's print_stock_table(), and called that function instead. * Moved the preview() calls in the example programs to before the query execution calls, because execution modifies the query. * All examples that take the standard command line parameters now exit when connect_to_db() fails in one of the ways that don't throw an exception, rather than bulling onward until the next MySQL database call fails because the connection isn't up. * dbinfo example now takes the standard command line parameters. * Much better output formatting in dbinfo example. * Calling reset() where appropriate in the various example programs. Before, the programs may have worked, but not for the right reason. This lead some people to believe that calling reset() was not necessary. * Fixed an incorrect use of row["string"] in complic1 example. * Lots of code style improvements to the examples. * Some VC++ type warnings squished. Some remain. ## 1.7.22, 2004.11.17 * Applied patches by Zahroof Mohammed to allow it to build under GCC 3.4.2. Tested on MinGW and Fedora Core 3 systems. * Removed all the forward declarations in defs.h, and added forward declarations where necessary in individual header files. #including defs.h in fewer locations as a result. * Legacy headers sqlplus.hh and mysql++.hh now declare they are using namespace mysqlpp, to allow old code to compile against the new library without changes. * Removed `query_reset` parameter from several class Query member functions. In the implementation, these parameters were always overridden! No sense pretending that we pay attention to these parameters. This changes the ABI version to 3. * `#including custom.h` in `sql_query.h` again...it's necessary on GCC 3.4. * bootstrap script runs lib/config.pl after configure. This is just a nicety for those running in 'maintainer mode'. ## 1.7.21, 2004.11.05 * Generating a main mysql++ RPM containing just the library files and basic documentation, and the -devel package containing everything else. * Devel package contains examples now, along with a new Makefile that uses the system include and library files, rather than the automake-based Makefile.am we currently have which uses the files in the mysql++ source directory. * Renamed sqlplusint subdirectory in the package to lib. * Removed the obsolete lib/README file. * `lib/sql_query.h` no longer #includes custom.h, simplifying build-time dependencies and shortening compile times. ## 1.7.20, 2004.11.03 * Collapsed all numbered `*.hh` headers into a single `*.h` file. For example, the contents of row1.hh, row2.hh and row3.hh are now in row.h. * While doing the previous change, broke several circular dependencies. (The numbered file scheme was probably partly done to avoid this problem.) The practical upshot of most of these changes is that some functions are no longer inline. * Removed `define_short.hh` and everything associated with it. The library now uses the short names exclusively (e.g. Row instead of MysqlRow). * Put all definitions into namespace mysqlpp. For most programs, simply adding a 'using namespace mysqlpp' near the top of the program will suffice to convert to this version. * Once again, the main include file was renamed, this time to mysql++.h. Hopefully this is the last renaming! * mysql++.hh still exists. It emits a compiler warning that the file is obsolete, then it #includes mysql++.h for you. * sqlplus.hh is back, being a copy of the new mysql++.hh. Both of these files may go away at any time. They exist simply to help people transition to the new file naming scheme. * Renamed mysql++-windows.hh to platform.h, and added code to it to handle #inclusion of config.h on autotools-based systems intelligently. This fixes the config.h error when building under Visual C++. * There is now only one place where conditional inclusion of winsock.h happens: platform.h. * Beautified the example programs. ## 1.7.19, 2004.10.25 * Fixed an infinite loop in the query mechanism resulting from the strstream change in the previous version. There is an overloaded set of str() member functions that weren't a problem when query objects were based on strstream. * Query mechanism had a bunch of const-incorrectness: there were several function parameters and functions that were const for the convenience of other parts of the code, but within these functions the constness was const_cast away! This was evil and wrong; now there are fewer const promises, and only one is still quietly broken within the code. (It's in the SQLQuery copy ctor implementation; it should be harmless.) * Removed operator=() in Query and SQLQuery classes. It cannot take a const argument for the same reason we have to cast away const in the SQLQuery copy ctor. It's tolerable to do this in the copy ctor, but intolerable in an operator. Since the copy ctor is good enough for all code within the library and within my own code, I'm removing the operator. * Above changes required bumping the ABI to version 2. * Visual C++ projects now look for MySQL build files in c:\mysql, since that's the default install location. (Previously, it was c:\program files\mysql.) ## 1.7.18, 2004.10.01 * Changed all the strstream (and friends) stuff to stringstream type classes. Let there be much rejoicing. * Query object now lets you use store() even when the SQL query cannot return a result, such as a DROP TABLE command. This is useful for sending arbitrary SQL to the server. Thanks to Jose Mortensen for the patch. * Quote fix in configure.in, thanks to David Sward. * Renamed `undef_short` file to `undef_short.hh`. * Gentoo ebuild file is actually being shipped with the tarball, instead of just sitting in my private CVS tree since 1.7.14 was current. Ooops.... ## 1.7.17, 2004.09.16 * Reverted one of the VC++ warning fix changes from 1.7.16 that caused crashes on Linux. * Added a configure test that conditionally adds the extra 'level' parameter to mysql_shutdown() that was added in MySQL 4.1.3 and 5.0.1. ## 1.7.16, 2004.09.13 * Building VC++ version with DLL version of C runtime libraries, and at warning level 3 with no warnings emitted. * VC++ build no longer attempts to fake "long long" support. See the Wishlist for further thoughts on this. ## 1.7.15, 2004.09.02 * Renamed Configure file to common.am, to avoid file name conflict with configure script on case-sensitive file systems. * Added ebuild file and ebuild target to top-level Makefile for Gentoo systems. Thanks to Chris Frey for this. * Small efficiency improvements to BadQuery exception handling. Initial idea by Chris Frey, improvements by Warren Young. ## 1.7.14, 2004.08.26 * Builds with Visual C++ 7.1. * Fixed a bug in custom macro generation that caused problems with GCC 3.4. (X_cus_value_list ctor definition was broken.) ## 1.7.13, 2004.08.23 * Removed USL CC support. (System V stock system compiler.) Use GCC on these platforms instead. * Added examples/README, explaining how to use the examples, and what they all do. * Most of the example programs now accept command line arguments for host name, user name and password, like resetdb does. * Renamed `sinisa_ex` example to `dbinfo`. * Several Standard C++ syntax fixes to quash errors emitted by GCC 3.4 and Borland C++ Builder 6. Thanks to Steffen Schumacher and Totte Karlsson for their testing and help with these. * Added proper #includes for BCBuilder, plus project files for same. Thanks to Totte Karlsson for these. ## 1.7.12, 2004.08.19 * Many Standard C++ fixes, most from the GCC 3.4 patch by Rune Kleveland. * Added Wishlist file to distribution. * Fixed a problem in the bootstrap script that caused complaints from the autotools on some systems. * RPM building is working properly now. * Fixed the idempotency guard in datetime1.hh. ## 1.7.11, 2004.08.17 * Renamed `mysql++`, `defs` and `define_short` files, adding `.hh` to the end of each. (They're header files!) This shouldn't impact library users, since these are hopefully used internal to the library only. * Removed `sqlplus.hh` file. Use `mysql++.hh` instead. * Added mysql++.spec, extracted from contributed 1.7.9 source RPM, and updated it significantly. Also, added an 'rpm' target to Makefile.am to automate the process of building RPMs. * Added bootstrap and LGPL files to distribution tarball. * Added pre-1.7.10 history to this file. * Removed .version file. Apparently it's something required by old versions of libtool. ## 1.7.10, 2004.08.16 Maintenance taken over by Warren Young. See [the mailing list post](http://lists.mysql.com/plusplus/3326) for rationale. * Applied many of the GCC 3.x patches submitted for 1.7.9 over the years. This allows it to build on everything from 3.0 to 3.3.3, at least. Because so many patches are rolled up in one big jump, it's difficult to describe all the changes and where they came from. Mostly they're Standard C++ fixes, as GCC has become more strict in the source code that it will accept. * MysqlRow used to overload operator[] for string types as well as integers so you could look up a field by its name, rather than by its index. GCC 3.3 says this is illegal C++ due to ambiguities in resolving which overload should be used in various situations. operator[] is now overloaded only for one integer type, and a new member function lookup_by_name() was added to maintain the old by-field-name functionality. * Fixed another operator overloading problem in SSQLS macro generation with GCC 3.3. * The` _table` member of SSQLS-defined structures is now `const char*`, so you can assign to it from a `const char*` string. * Got autoconf/automake build system working with current versions of those tools again. Removed the generated autotools files from CVS. * Renamed library file from libsqlplus to libmysqlpp. ## 1.7.9, 2001.05.01 * Fixed a serious bug in Connection constructor when reading MySQL options * Improved copy constructor and some other methods in Result / ResUse * Many other minor improvements * Produced a complete manual with chapter 5 included * Updated documentation, including a Postscript format ## 1.7.8, 2000.11.14 * Introduced a new, standard way of dealing with C++ exceptions. * MySQL++ now supports two different methods of tracing exceptions. One is by the fixed type (the old one) and one is standard C++ type by the usage of what() method. A choice of methods has to be done in building a library. If configure script is run with `-enable-exception` option , then new method will be used. If no option is provided, or `-disable-exception` is used, old MySQL++ exceptions will be enforced. This innovation is a contribution of Mr. Ben Johnson * MySQL++ now automatically reads at connection all standard MySQL configuration files * Fixed a bug in `sql_query::parse` to enable it to parse more then 99 char's * Added an optional client flag in connect, which will enable usage of this option, e.g. for getting matched and not just affected rows. This change does not require any changes in existing programs. * Fixed some smaller bugs * Added better handling of NULL's. Programmers will get a NULL string in result set and should use `is_null()` method in `ColData` to check if value is NULL * Further improved configuration * Updated documentation, including a Postscript format ## 1.7.6, 2000.09.22 This release contains some C++ coherency improvements and scripts enhacements. * `result_id()` is made available to programmers to fetch `LAST_INSERT_ID()` value * `Connection` ctor ambiguity resolved, thanks to marc@mit.edu * Improved cnnfigure for better finding out MySQL libraries and includes * Updated documentation, including a Postscript format ## 1.7.5, 2000.07.30 This release has mainl bug fixes and code improvements: * A bug in FieldNames::init has been fixed, enabling a bug free usage of this class with in what ever a mixture of cases that is required * Changed behaviour of ResUse, Result and Row classes, so that they could be re-used as much as necessary, without any memory leaks, nor with any re-initializations necessary * Fixed all potential leaks that could have been caused by usage of delete instead of delete[] after memory has been allocated with new[] * Deleted all unused classes and macros. This led to a reduction of library size to one half of the original size. This has furthermore brought improvements in compilation speed * Moved all string manipulation from system libraries to libmysqlclient, thus enabling uniformity of code and usage of 64 bit integers on all platforms, including Windows, without reverting to conditional compilation. This changes now requires usage of mysql 3.23 client libraries, as mandatory * Changed examples to reflect above changes * Configuration scripts have been largely changed and further changes shall appear in consecutive sub-releases. This changes have been done and shall be done by our MySQL developer Thimble Smith * Changed README, TODO and text version of manual. Other versions of manual have not been updated * Fixed .version ``bug''. This is only partially fixed and version remains 1.7.0 due to some problems in current versions of libtool. This shall be finally fixed in a near future. * Several smaller fixes and improvements * Added build.sh script to point to the correct procedure of building of this library. Edit it to add configure options of your choice. ## 1.7, 2000.05.17 This is mainly a release dealing with bug fixes, consistency improvements and easier configure on some platforms. * A bug in fetch_row() method of ResUse class has been fixed. Beside changes that existed in a distributed patch, some additional error checking has been introduced. * A bug in escape manipulator has been fixed that could cause an error if all characters had to be escaped. * An inconsistency in column indexing has been fixed. Before this version, column names in row indexing with strings, i.e. row[] , has been case sensitive, which was inconsistent with MySQL server handling of column names. * An inconsistency in conversion from strings to integers or floats has been fixed. In prior version a space found in data would cause a BadConversion exception. This has been fixed, but 100% consistency with MySQL server has not been targeted, so that other non-numeric characters in data will still cause BadConversion exception or error. As this API is used in applications, users should provide feedback if full compatibility with MySQL server is desired, in which case BadConversion exception or error would be abolished in some of future versions. * A new method in ColData class has been introduced. is_null() method returns a boolean to denote if a column in a row is NULL. * Finally, as of this release, testing for NULL values is possible. * Those are columns with empty strings for which is_null() returns true. * Some SPARC Solaris installations had C++ exception problems with g++ 2.95.2 This was a bug that was fixed in GNU gcc, as from release 2.95 19990728. This version was thoroughly tested and is fully functional on SPARC Solaris 2.6 with the above version of gcc. * A 'virtual destructor ' warning for Result class has been fixed * Several new functions for STL strings have been added. Those functions (see string_util.hh) add some of the functionality missing in existing STL libraries * Conversion for 64 bit integers on FreeBSD systems has been added. On those systems _FIX_FOR_BSD_ should be defined in CXXFLAGS prior to configuring. Complete conversion to the usage of functions for integer conversion found in mysqlclient library is planned for one of the next releases. * A completely new, fully dynamic, dramatic and fully mutable result set has been designed and will be implemented in some of 2.x releases. * Several smaller fixes and improvements, including defaulting exceptions to true, instead of false, as of this version. * An up-to-date and complete Postscript version of documentation is included in this distribution. * Large chunks of this manual are changed, as well as README and TODO files. ## 1.6, 2000.02.03 * This is a major release as it includes new features and major rewrites. * Automatic quoting and escaping with streams. It works automatically , depending on the column type. It will work with << on all ostream derived types. it is paricularly handy with query objects and strstreams. Automatic quoting and escaping on cout, cerr and clog stream objects is intentionally left out, as quoting / escaping on those stream objects is not necessary. This feature can be turned of by setting global boolean dont_quote_auto to true. * Made some major changes in code, so that now execute method should be used only with SSQL and template queries, while for all other query execution of UPDATE's, INSERT's, DELETE's, new method exec() should be used. It is also faster. * New method `get_string` is inroduced for easier handling / casting `ColData` into C++ strings. * Major rewrite of entire code, which led to it's reduction and speed improvement. This also led to removal of several source files. * Handling of binary data is introduced. No application program changes are required. One of new example programs demonstrates handling of binary data. * Three new example programs have been written and thoroughly tested. Their intention is to solve some problems addressed by MySQL users. * Thorough changes is Makefile system has been made * Better configuration scripts are written, thanks to D.Hawkins * Added several bug fixes * Changed Manual and Changelog ## 1.5, 1999.12.01 * Fixed bug in template queries, introduced in 1.4 (!) * Fixed connect bug * Fixed several bug in `type_info` classes * Added additional robustness in classes * Added additional methods for SQL type info * Changed Changelog and README ## 1.4, 1999.11.25 * Fixed bug in store and storein methods * Fixed one serious memory leak * Fixed a very serious bug generated by gcc 2.95.xx !! * Added robustness in classes, so that e.g. same query and row objects can be re-used. Changed `sinisa_ex` example to reflect and demonstrate this ability. * Changed Changelog and README * Few other bug fixes and small improvements and speed-ups ## 1.3, 1999.11.10 * Fixed several erronous definitions * Further changed source to be 2.95.2 compatible * Expunged unused statements, especially dubious ones, like use of `pointer_tracker` * Corrected bug in example file `fieldinf1` * Finally fixed `mysql_init` in `Connection` constructor, which provided much greater stability! * Added read and get options, so that clients, like mysqlgui can use it * Changed Changelog and README * Many other bug fixes. ## 1.2, 1999.10.15 First offical release by [Sinisa Milivojevic](mailto:sinisa@mysql.com) after Kevin Atkinson made him the offical maintainer, * Many manual fixes. * Changed README and Changelog * Changed source to be compilable by gcc 2.95.xx, tribute to Kevin Atkinson * Added methods in Connection class which are necessary for fullfilling administrative functions with MySQL * Added many bug fixes in code pertaining to missing class initializers, as notified by Michael Rendell ## 1.1, 1999.08.02 This release is the first one made by Sinisa Milivojevic. * Added several bug fixes * Fixed memory leak problems and variables overlapping problems. * Added automake and autoconf support by loic@ceic.com * Added Makefile for manual * Added support for cygwin * Added example `sinisa_ex` (let modesty prevail) which used to crash a lot when memory allocation, memory leak and overlap problems were present. Smooth running of this example proves that all those bugs are fixed * Corrected bugs in `sql_query.cc` regarding delete versus `delete[]` and string length in `manip.cc` * Changed manual * Changed README * Many other smaller things ## 1.0, 1999.06.09 All prior versions were released by Kevin Atkinson. This release was made by [Monty Widenius](mailto:monty@monty.pp.sci.fi) * Added patches from Orion Poplawski to support the UnixWare 7.0 compiler ## .64.1.1a, 1998.09.27 * Fixed several bugs that caused my library to fail to compile with egcs 1.1. Hopefully it will still compile with egcs 1.0 however I have not been able to test it with egcs 1.0. * Removed some problem causing debug output in sql++pretty. ## .64.1a, 1998.08.01 * Added an (almost) full guide to using Template Queries. * Fixed it so the SQLQuery will throw an exception when all the template parameters are not provided. * Proofread and speedchecked the manual (it really needed it). * Other minor document fixes. ## .64.0.1a, 1998.07.31 * Reworked the Class Reference section a bit. * Minor document fixes * Added more examples for SSQLS. * Changed the syntax of `equal_list` for SSQLS from `equal_list(cchar *, Manip, cchar *)` to `(cchar *, cchar *, Manip)`. * Added set methods to SSQLS. These new methods do the same thing as there corresponding constructors. * Added methods for creating a `mysql_type_info` from a C++ `type_info`. ## .64.a, 1998.07.24 * Changed the names of all the classes so they no longer have to have Mysql in the begging of it. However if this creates a problem you can define a macro to only use the old names instead. * The Specialized SQL Structures (formally known as Custom Mysql Structures) changed from mysql_ to sql_. * Added the option of using exceptions thoughout the API. * ColData (formally known as MysqlStrings) will now throw an exception if there is a problem in the conversion. * Added a null adapter. * Added Mutable Result Sets * Added a very basic runtime type identification for SQL types * Changed the document format from POD to LYX . * Am now using a modified version of Perceps to extract the class information directly from the code to make my life easier. * Added an option of defining a macro to avoid using the automatic conversion with binary operators. * Other small fixed I probully forgot to mentune. ## .63.1.a * Added Custom Mysql Structures. * Fixed the Copy constructor of class Mysql * Started adding code so that class Mysql lets it children now when it is leaving. * Attempted to compile it into a library but still need help. As default it will compile as a regular program. * Other small fixes. ## .62.a, 1998.05.03 * Added Template Queries * Created a separate SQLQuery object that is independent of an SQL connection. * You no longer have to import the data for the test program as the program creates the database and tables it needs. * Many small bug fixes. ## .61.1.a 1998.04.28 * Cleaned up the example code in test.cc and included it in the manual. * Added an interface layout plan to the manual. * Added a reverse iterator. * Fixed a bug with row.hh (It wasn't being included because of a typo). ## .61.0.a * Major interface changes. I warned you that the interface may change while it is in pre-alpha state and I wasn't kidding. * Created a new and Separate Query Object. You can no longer execute queries from the Mysql object instead you have to create a query object with Mysql::query() and use it to execute queries. * Added the comparison operators to MysqlDate, MysqlTime and MysqlDateTime. Fixed a few bugs in the MysqlDate... that effected the stream output and the conversion of them to strings. * Reflected the MysqlDate... changes in the manual. * Added a new MysqlSet object and a bunch of functions for working with mysql set strings. ## .60.3a, 1998.04.24 * Changed strtoq and strtouq to strtoll and strtull for metter compatibility Minor Manual fix. * Changed makefile to make it more compatible with Solaris (Thanks Chris H) * Fixed bug in comparison functions so that they would compare in he right direction. * Added some items to the to do list be sure to have a look. mysql++-3.2.5/mysql++.ebuild000644 000765 000024 00000003005 13515046514 016302 0ustar00tangentstaff000000 000000 # Copyright 1999-2008 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/dev-db/mysql++/mysql++-2.3.2.ebuild,v 1.3 2008/04/21 03:00:49 dirtyepic Exp $ inherit eutils DESCRIPTION="C++ API interface to the MySQL database" HOMEPAGE="http://tangentsoft.net/mysql++/" SRC_URI="http://www.tangentsoft.net/mysql++/releases/${P}.tar.gz" LICENSE="LGPL-2" SLOT="0" KEYWORDS="~alpha ~amd64 ~hppa ~mips ~ppc ~sparc ~x86" IUSE="" DEPEND=">=sys-devel/gcc-3" RDEPEND="${DEPEND} >=virtual/mysql-4.0" src_unpack() { unpack ${A} cd "${S}" epatch "${FILESDIR}"/${P}-gcc-4.3.patch for i in "${S}"/lib/*.h ; do sed -i \ -e '/#include tag to . (Remember the closing tag!) - Remove the tag - Remove the tag Then, re-bootstrap the library. See HACKERS.txt if you need further instruction on doing that. mysql++-3.2.5/vc2005/000755 000765 000024 00000000000 13515046514 014542 5ustar00tangentstaff000000 000000 mysql++-3.2.5/install.hta.in000644 000765 000024 00000025122 13515046514 016376 0ustar00tangentstaff000000 000000 Install MySQL++ Development Files

Where would you like to install the MySQL++ development files?
Drives:
Folders:
  Install in versioned folder?
  Segregate native C++ library builds from C++/CLI (CLR) builds?
  Segregate libraries by platform?
Target:
 

mysql++-3.2.5/exrun.bat000755 000765 000024 00000000717 13515046514 015464 0ustar00tangentstaff000000 000000 @echo off set PROG=%1 if not exist %PROG% set PROG=%1.exe if not exist %PROG% set PROG=Debug\%1 if not exist %PROG% set PROG=vc2008\x64\Debug\%1.exe if not exist %PROG% set PROG=vc2008\Debug\%1.exe if not exist %PROG% set PROG=vc2005\Debug\%1.exe if not exist %PROG% set PROG=vc2003\Debug\%1.exe if not exist %PROG% exit shift set PATH=Debug;vc2008\x64\Debug;vc2008\Debug;vc2005\Debug;vc2003\Debug;%PATH% echo Running %PROG%... %PROG% %1 %2 %3 %4 %5 %6 %7 %8 %9 mysql++-3.2.5/mysql++.bkl-baseline000644 000765 000024 00000051575 13515046514 017405 0ustar00tangentstaff000000 000000 $(DOLLAR)$(DOLLAR)d $(DOLLAR)$(DOLLAR)e $(DOLLAR)$(DOLLAR)f 3.1.0 ../$(STABLEABI)/abi_dumps/mysqlpp ./abi_dumps/mysqlpp no single yes multi C:\Program Files\MySQL\MySQL Connector C 6.1 on off off speed _d yes yes yes yes $(PREFIX)/include/mysql++ .. mysqlpp$(DEBUG_SUFFIX) mysqlpp$(DEBUG_SUFFIX) 3.2.5 lib/beemutex.cpp lib/cmdline.cpp lib/connection.cpp lib/cpool.cpp lib/datetime.cpp lib/dbdriver.cpp lib/field_names.cpp lib/field_types.cpp lib/manip.cpp lib/myset.cpp lib/mysql++.cpp lib/mystring.cpp lib/null.cpp lib/options.cpp lib/qparms.cpp lib/query.cpp lib/result.cpp lib/row.cpp lib/scopedconnection.cpp lib/sql_buffer.cpp lib/sqlstream.cpp lib/ssqls2.cpp lib/stadapter.cpp lib/tcp_connection.cpp lib/transaction.cpp lib/type_info.cpp lib/uds_connection.cpp lib/utility.cpp lib/vallist.cpp lib/wnp_connection.cpp $(DEBUGINFO) $(OPTIMIZE_FLAG) $(THREAD_TYPE) on on $(LIBDIR) UNICODE _UNICODE wsock32 MYSQLPP_MAKING_DLL HAVE_MYSQL_SSL_SET $(MYSQL_WIN_DIR)\include $(MYSQL_WIN_DIR)\lib libmysql MYSQLPP_NO_DLL HAVE_MYSQL_SSL_SET "$(MYSQL_WIN_DIR)\include" -Wl,--enable-stdcall-fixup "$(MYSQL_WIN_DIR)\lib" mysql lib/ssqls.h lib/querydef.h @PTHREAD_CFLAGS@ . @MYSQL_C_INC_DIR@ -L@MYSQL_C_LIB_DIR@ -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ HAVE_POSIX_GETOPT MYSQLPP_XCODE /usr/local/mysql/include -lmysqlclient /usr/local/mysql/lib lib/*.h $(HEADER_DIR) mysqlpp_ssqls2parse ssx/parsev2.cpp . mysqlpp mysqlpp ssx/genv2.cpp ssx/main.cpp test/array_index.cpp test/cpool.cpp test/datetime.cpp test/inttypes.cpp test/insertpolicy.cpp test/manip.cpp test/null_comparison.cpp test/query_copy.cpp test/qssqls.cpp test/qstream.cpp test/sqlstream.cpp test/ssqls2.cpp ssqls2parse mysqlpp_ssqls2parse test/string.cpp test/tcp.cpp test/uds.cpp test/wnp.cpp mysqlpp_excommon examples/printdata.cpp examples/cgi_jpeg.cpp examples/cpool.cpp examples/dbinfo.cpp examples/deadlock.cpp examples/fieldinf.cpp examples/for_each.cpp examples/load_jpeg.cpp examples/multiquery.cpp examples/resetdb.cpp examples/simple1.cpp examples/simple2.cpp examples/simple3.cpp examples/ssqls1.cpp examples/ssqls2.cpp examples/ssqls3.cpp examples/ssqls4.cpp examples/ssqls5.cpp $ examples/ssqls6.cpp $ examples/store_if.cpp examples/tquery1.cpp examples/tquery2.cpp examples/tquery3.cpp examples/tquery4.cpp examples/transaction.cpp @PACKAGE_NAME@-@PACKAGE_VERSION@ rm -rf doc/latex doc/pdf ; \ cd doc/html/refman ; \ for e in dot html map md5 png ; \ do \ rm -f doxygen.css [a-z]*.$(DDE) ; \ done -rmdir $(HEADER_DIR) rm -f $(DESTDIR)$(libdir)/$(DLLPREFIX)mysqlpp.$(SO_SUFFIX) configure.ac install.hta.in mysql++.bkl mysql++.spec.in doc/userman/userman.dbx.in lib/Doxyfile.in lib/mysql++.h.in ssx/Doxyfile.in bakefile_gen ./config.status cd lib ; ./ssqls.pl lib/ssqls.pl cd lib ; ./querydef.pl lib/querydef.pl ctags --recurse=yes . tags lib/Doxyfile lib/*.cpp lib/*.h cd lib ; doxygen > /dev/null ssx/Doxyfile ssx/*.cpp ssx/*.h cd ssx ; doxygen > /dev/null doc/userman/*.dbx doc/userman/userman.dbx.in cd doc/userman ; make html pdf doc/html/refman/index.html doc/html/refman/ssx/index.html doc/html/userman/index.html for d in config doc/html/refman/ssx doc/html/userman \ doc/refman doc/userman examples lib ssx test ; \ do \ mkdir -p $(PKGNAME)/$(DDD) ; \ done cp -RL *.bat *.in *.txt abi.xml aclocal.m4 Bakefiles.bkgen \ bootstrap ChangeLog.md cleanmf config.guess config.h \ config.sub configure* dtest exrun HACKERS.md install* \ Makefile.* mysql++.* osver $(PKGNAME) for d in vc200? ; do \ mkdir -p $(PKGNAME)/$(DDD) ; \ cp $(DDD)/*.sln $(DDD)/*.vcproj $(PKGNAME)/$(DDD) ; \ done cp config/*.m4 $(PKGNAME)/config cp -RL doc/README* doc/pdf doc/ssqls-pretty $(PKGNAME)/doc for f in fo2pdf LICENSE.txt Makefile Makefile.hello.* mktxt README.txt \*.dbx \*.in \*.mod \*.txt \*.xsl ; \ do \ cp doc/userman/$(DDF) $(PKGNAME)/doc/userman ; \ done find doc \( -name *.css -o -name *.html \) -exec install {} $(PKGNAME)/{} \; cp doc/html/refman/*.png $(PKGNAME)/doc/html/refman cp doc/userman/userman.dbx.in $(PKGNAME)/doc/userman for e in cpp h jpg txt ; \ do \ cp examples/*.$(DDE) $(PKGNAME)/examples ; \ done for d in mfc wforms ; \ do \ mkdir -p $(PKGNAME)/examples/vstudio/$(DDD) ; \ cp examples/vstudio/$(DDD)/* $(PKGNAME)/examples/vstudio/$(DDD) ; \ done cp lib/*.cpp lib/*.h lib/*.in lib/*.pl $(PKGNAME)/lib cp test/*.cpp $(PKGNAME)/test cp ssx/*.cpp ssx/*.h ssx/*.in $(PKGNAME)/ssx cd $(PKGNAME) ; ./bootstrap nodoc nomaint rm -f $(PKGNAME)/Makefile rm -f $(PKGNAME)/config.log rm -f $(PKGNAME)/config.status rm -fr $(PKGNAME)/autom4te.cache doc $(PKGNAME) tar -chz -f $(PKGNAME).tar.gz $(PKGNAME) rm -rf $(PKGNAME) doc dist cp $(PKGNAME).tar.gz ~/rpmbuild/SOURCES cd ~/rpmbuild/SPECS rpm-prep rpmbuild -ba mysql++.spec rpm-prep rpmbuild -bs mysql++.spec dist cp $(PKGNAME).tar.gz /usr/portage/distfiles cp mysql++.ebuild /usr/portage/dev-db/mysql++/$(PKGNAME).ebuild ebuild /usr/portage/dev-db/mysql++/$(PKGNAME).ebuild digest mysql++-3.2.5/vc2003/000755 000765 000024 00000000000 13515046514 014540 5ustar00tangentstaff000000 000000 mysql++-3.2.5/README-Visual-C++.txt000644 000765 000024 00000017613 13515046514 017100 0ustar00tangentstaff000000 000000 Prerequisites ~~~~~~~~~~~~~ You need to have the MySQL C API development files on your system, since MySQL++ is built on top of it. The easiest way to get it is to download Connector/C from mysql.com. If you need the MySQL server on your development system anyway, you you can choose to install the development files along with the server. Some versions of the MySQL Server installer for Windows have installed the development files by default, while others have made it an optional install. Project Files ~~~~~~~~~~~~~ The distribution comes with three sets of .sln and .vcproj files in the vc2003, vc2005 and vc2008 subdirectories. We do this for several reasons: 1. It lets you build MySQL++ with multiple versions of Visual C++ without the build products conflicting. 2. For Visual C++ 2003, we had to disable the SSQLS feature because changes made in MySQL++ 3.0 now cause the compiler to crash while building. See the Breakages chapter in the user manual for workarounds if you must still use VC++ 2003. 3. The VC++ 2008 project files get built for 64-bit output, while the other two build 32-bit executables. With VC++ 2003, we have no choice about this, since it only supports 32-bit targets. VC++ 2005 did have experimental 64-bit compilers available, but their beta nature was only one reason we chose not to use them. The real reason is that the current MySQL++ build system isn't currently set up to make it easy to build both 32- and 64-bit libraries and executables at the same time within the same solution. Bakefile allows it, but it would require forking many of the build rules in mysql++.bkl so we can do things like have separate MYSQL_WIN_DIR values for each bitness. (See below for more on this variable.) For that same reason, the VC++ 2008 project files are set up to build 64-bit libraries and executables *only*. It is possible to upgrade these project files to work with newer versions of Visual C++, but beware that the upgrade feature tends to be problematic. If you want to do a 32-bit build on VC++ 2008 or newer, it is easiest to open the vc2005\* project files and let Visual Studio upgrade them for you. The alternative, starting with the vc2008 files, requires that you add a 32-bit build option to all of the many targets in MySQL++, then optionally delete the 64-bit targets. This is a lot more work. Plus, it only works if you have the 64-bit compilers installed, since Visual Studio will refuse to open project files where all targets must be built with compilers that aren't installed, even if your goal is to immediately adjust them to use compilers that *are* installed. When converting the VC++ 2008 project files to VC++ 2012, Visual Studio will change the output directories from Debug to Debug\x64 (and similar for Release), but it won't also change the link paths from Debug to Debug\x64, so that the library and examples will compile but not link. The migration tool detects that there is a problem, but it can't fix its own mess. You have to manually fix it. There were also problems in VC++ 2010 when you had converted 32-bit VC++ 2008 projects and then were trying to switch them to 64-bit. It ended up being simpler in this case to just start over from scratch and build your own project files. Using Nonstandard MySQL Installations ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The Visual Studio project files that come with MySQL++ have everything set up correctly for the common case. The biggest assumption in the settings is that you're building against the current stable version of Connector/C, which gets installed here at the time of this writing: C:\Program Files\MySQL\MySQL Connector C 6.1\ If you installed a different version, or it's in a different directory, or you've installed the development files as part of MySQL Server on the same machine, you need to change the project files to reference the C API development files in that other location. There are two ways to do this. The hard way is to make 16 different changes each to 44 separate project files. If you're a talented Visual Studio driver, you can do this in as little as about 5 or 6 steps. You might even get it right the first time. If you are not so talented, you have to make all ~700 changes one at a time, and you almost certainly will *not* get it right the first time. The somewhat easier way is to open all these files in a text editor that lets you make a global search and replace on all open files. The easy way is to install Bakefile (http://bakefile.org/), change the value of the MYSQL_WIN_DIR variable near the top of mysql++.bkl in the top level of the MySQL++ source tree, and run rebake.bat. This will rebuild all of the project files for you, using the new MySQL path in all the many places it's needed. Building the Library and Example Programs ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ You must build both the Debug and Release versions of the library, because a release build of your program won't work with a Debug version of the MySQL++ DLL. These DLLs get different names, so you can install them in the same directory if needed: mysqlpp_d.dll for the Debug version, and mysqlpp.dll for the Release version. With the library built, run at least the resetdb and simple1 examples to ensure that the library is working correctly. In addition to the other generic examples, there are a few Visual C++ specific examples that you might want to look at in examples\vstudio. See README-examples.txt for further details. Once you're sure the library is working correctly, you can run the install.hta file at the project root to install the library files and headers in a directory of your choosing. (Aside: You may not have come across the .hta extension before. It's for a rarely-used feature of Microsoft's Internet Explorer, called HTML Applications. Know what Adobe AIR is? Kinda like that, only without the compilation into a single binary blob which you must install before you can run it. Just open install.hta in a text editor to see how it works.) Using MySQL++ in Your Own Projects ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ This is covered in the user manual, chapter 9. Working With Bakefile ~~~~~~~~~~~~~~~~~~~~~ MySQL++'s top-level Visual Studio project files aren't maintained directly. Instead, we use a tool called Bakefile (http://bakefile.org/) to generate them from mysql++.bkl. Since there are so many project files in MySQL++, it's often simpler to edit this source file and "re-bake" the project files from it than to make your changes in Visual Studio. To do this, download the native Windows version of Bakefile from the web site given above. Install it, and then put the installation directory in your Windows PATH. Then, open up a command window, cd into the MySQL++ directory, and type "rebake". This will run rebake.bat, which rebuilds the Visual Studio project files from mysql++.bkl. There's more information about using Bakefile in HACKERS.txt. If You Run Into Problems... ~~~~~~~~~~~~~~~~~~~~~~~~~~~ Especially if you have linking problems, make sure your project settings match the above. Visual C++ is very picky about things like run time library settings. When in doubt, try running one of the example programs. If it works, the problem is likely in your project settings, not in MySQL++. mysql++-3.2.5/config.h.in000644 000765 000024 00000004636 13515046514 015657 0ustar00tangentstaff000000 000000 /* config.h.in. Generated from configure.ac by autoheader. */ /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H /* Define if you have __gnu_cxx:slist container in */ #undef HAVE_EXT_SLIST /* Define if you have ::slist container in */ #undef HAVE_GLOBAL_SLIST /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H /* Define if getopt() is available in libiberty.h */ #undef HAVE_LIBIBERTY_GETOPT /* Define to 1 if you have the `intl' library (-lintl). */ #undef HAVE_LIBINTL /* Define if you have the localtime_r() facility */ #undef HAVE_LOCALTIME_R /* Define to 1 if you have the header file. */ #undef HAVE_MEMORY_H /* Define if your MySQL library has SSL functions */ #undef HAVE_MYSQL_SSL_SET /* Define if getopt() is available in unistd.h */ #undef HAVE_POSIX_GETOPT /* Define if you have POSIX threads libraries and header files. */ #undef HAVE_PTHREAD /* Define to 1 if you have the header file. */ #undef HAVE_STDINT_H /* Define to 1 if you have the header file. */ #undef HAVE_STDLIB_H /* Define if you have std::slist container in */ #undef HAVE_STD_SLIST /* Define to 1 if you have the header file. */ #undef HAVE_STRINGS_H /* Define to 1 if you have the header file. */ #undef HAVE_STRING_H /* Define to 1 if you have the header file. */ #undef HAVE_SYNCH_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_STAT_H /* Define to 1 if you have the header file. */ #undef HAVE_SYS_TYPES_H /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H /* Define to the sub-directory where libtool stores uninstalled libraries. */ #undef LT_OBJDIR /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT /* Define to the full name of this package. */ #undef PACKAGE_NAME /* Define to the full name and version of this package. */ #undef PACKAGE_STRING /* Define to the one symbol short name of this package. */ #undef PACKAGE_TARNAME /* Define to the home page for this package. */ #undef PACKAGE_URL /* Define to the version of this package. */ #undef PACKAGE_VERSION /* Define to necessary symbol if this constant uses a non-standard name on your system. */ #undef PTHREAD_CREATE_JOINABLE /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS mysql++-3.2.5/INSTALL.txt000644 000765 000024 00000001211 13515046514 015465 0ustar00tangentstaff000000 000000 The installation procedure depends on the compiler you use to build MySQL++ and the OS you build it on. There are platform-specific instructions for all popular platforms: README-Cygwin.txt - for Cygwin README-Linux.txt - for Linux README-Mac-OS-X.txt - for Mac OS X README-MinGW.txt - for MinGW README-Solaris.txt - for Solaris README-Visual-C++.txt - for Visual C++ If you're on some Unix variant (Linux, OS X, *BSD, Solaris, Cygwin...) there are additional general instructions in README-Unix.txt. See the main README.txt file for high-level instructions that apply to all platforms MySQL++ works on. mysql++-3.2.5/config.guess000755 000765 000024 00000126206 13515046514 016152 0ustar00tangentstaff000000 000000 #! /bin/sh # Attempt to guess a canonical system name. # Copyright 1992-2018 Free Software Foundation, Inc. timestamp='2018-03-08' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that # program. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # # Originally written by Per Bothner; maintained since 2000 by Ben Elliston. # # You can get the latest version of this script from: # https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess # # Please send patches to . me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] Output the configuration name of the system \`$me' is run on. Options: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. Copyright 1992-2018 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" >&2 exit 1 ;; * ) break ;; esac done if test $# != 0; then echo "$me: too many arguments$help" >&2 exit 1 fi trap 'exit 1' 1 2 15 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. # Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still # use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. set_cc_for_build=' trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; : ${TMPDIR=/tmp} ; { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; dummy=$tmp/dummy ; tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; case $CC_FOR_BUILD,$HOST_CC,$CC in ,,) echo "int x;" > "$dummy.c" ; for c in cc gcc c89 c99 ; do if ($c -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then CC_FOR_BUILD="$c"; break ; fi ; done ; if test x"$CC_FOR_BUILD" = x ; then CC_FOR_BUILD=no_compiler_found ; fi ;; ,,*) CC_FOR_BUILD=$CC ;; ,*,*) CC_FOR_BUILD=$HOST_CC ;; esac ; set_cc_for_build= ;' # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) if (test -f /.attbin/uname) >/dev/null 2>&1 ; then PATH=$PATH:/.attbin ; export PATH fi UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown case "$UNAME_SYSTEM" in Linux|GNU|GNU/*) # If the system lacks a compiler, then just pick glibc. # We could probably try harder. LIBC=gnu eval "$set_cc_for_build" cat <<-EOF > "$dummy.c" #include #if defined(__UCLIBC__) LIBC=uclibc #elif defined(__dietlibc__) LIBC=dietlibc #else LIBC=gnu #endif EOF eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`" # If ldd exists, use it to detect musl libc. if command -v ldd >/dev/null && \ ldd --version 2>&1 | grep -q ^musl then LIBC=musl fi ;; esac # Note: order is significant - the case branches are not exclusive. case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently # switched to ELF, *-*-netbsd* would select the old # object file format. This provides both forward # compatibility and a consistent mechanism for selecting the # object file format. # # Note: NetBSD doesn't particularly care about the vendor # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ "/sbin/$sysctl" 2>/dev/null || \ "/usr/sbin/$sysctl" 2>/dev/null || \ echo unknown)` case "$UNAME_MACHINE_ARCH" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; earmv*) arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'` endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'` machine="${arch}${endian}"-unknown ;; *) machine="$UNAME_MACHINE_ARCH"-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently (or will in the future) and ABI. case "$UNAME_MACHINE_ARCH" in earm*) os=netbsdelf ;; arm*|i386|m68k|ns32k|sh3*|sparc|vax) eval "$set_cc_for_build" if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). # Return netbsd for either. FIX? os=netbsd else os=netbsdelf fi ;; *) os=netbsd ;; esac # Determine ABI tags. case "$UNAME_MACHINE_ARCH" in earm*) expr='s/^earmv[0-9]/-eabi/;s/eb$//' abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"` ;; esac # The OS release # Debian GNU/NetBSD machines have a different userland, and # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. case "$UNAME_VERSION" in Debian*) release='-gnu' ;; *) release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "$machine-${os}${release}${abi}" exit ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE" exit ;; *:OpenBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE" exit ;; *:LibertyBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE" exit ;; *:MidnightBSD:*:*) echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE" exit ;; *:ekkoBSD:*:*) echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE" exit ;; *:SolidBSD:*:*) echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE" exit ;; macppc:MirBSD:*:*) echo powerpc-unknown-mirbsd"$UNAME_RELEASE" exit ;; *:MirBSD:*:*) echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE" exit ;; *:Sortix:*:*) echo "$UNAME_MACHINE"-unknown-sortix exit ;; *:Redox:*:*) echo "$UNAME_MACHINE"-unknown-redox exit ;; mips:OSF1:*.*) echo mips-dec-osf1 exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` ;; *5.*) UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` ;; esac # According to Compaq, /usr/sbin/psrinfo has been available on # OSF/1 and Tru64 systems produced since 1995. I hope that # covers most systems running today. This code pipes the CPU # types through head -n 1, so we only detect the type of CPU 0. ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` case "$ALPHA_CPU_TYPE" in "EV4 (21064)") UNAME_MACHINE=alpha ;; "EV4.5 (21064)") UNAME_MACHINE=alpha ;; "LCA4 (21066/21068)") UNAME_MACHINE=alpha ;; "EV5 (21164)") UNAME_MACHINE=alphaev5 ;; "EV5.6 (21164A)") UNAME_MACHINE=alphaev56 ;; "EV5.6 (21164PC)") UNAME_MACHINE=alphapca56 ;; "EV5.7 (21164PC)") UNAME_MACHINE=alphapca57 ;; "EV6 (21264)") UNAME_MACHINE=alphaev6 ;; "EV6.7 (21264A)") UNAME_MACHINE=alphaev67 ;; "EV6.8CB (21264C)") UNAME_MACHINE=alphaev68 ;; "EV6.8AL (21264B)") UNAME_MACHINE=alphaev68 ;; "EV6.8CX (21264D)") UNAME_MACHINE=alphaev68 ;; "EV6.9A (21264/EV69A)") UNAME_MACHINE=alphaev69 ;; "EV7 (21364)") UNAME_MACHINE=alphaev7 ;; "EV7.9 (21364A)") UNAME_MACHINE=alphaev79 ;; esac # A Pn.n version is a patched version. # A Vn.n version is a released version. # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`" # Reset EXIT trap before exiting to avoid spurious non-zero exit code. exitcode=$? trap '' 0 exit $exitcode ;; Amiga*:UNIX_System_V:4.0:*) echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) echo "$UNAME_MACHINE"-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) echo "$UNAME_MACHINE"-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition exit ;; *:z/VM:*:*) echo s390-ibm-zvmoe exit ;; *:OS400:*:*) echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) echo arm-acorn-riscix"$UNAME_RELEASE" exit ;; arm*:riscos:*:*|arm*:RISCOS:*:*) echo arm-unknown-riscos exit ;; SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) echo hppa1.1-hitachi-hiuxmpp exit ;; Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. if test "`(/bin/universe) 2>/dev/null`" = att ; then echo pyramid-pyramid-sysv3 else echo pyramid-pyramid-bsd fi exit ;; NILE*:*:*:dcosx) echo pyramid-pyramid-svr4 exit ;; DRS?6000:unix:4.0:6*) echo sparc-icl-nx6 exit ;; DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) case `/usr/bin/uname -p` in sparc) echo sparc-icl-nx7; exit ;; esac ;; s390x:SunOS:*:*) echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" exit ;; sun4H:SunOS:5.*:*) echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" exit ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) echo i386-pc-auroraux"$UNAME_RELEASE" exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) eval "$set_cc_for_build" SUN_ARCH=i386 # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. # This test works for both compilers. if [ "$CC_FOR_BUILD" != no_compiler_found ]; then if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then SUN_ARCH=x86_64 fi fi echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in Series*|S4*) UNAME_RELEASE=`uname -v` ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`" exit ;; sun3*:SunOS:*:*) echo m68k-sun-sunos"$UNAME_RELEASE" exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) echo m68k-sun-sunos"$UNAME_RELEASE" ;; sun4) echo sparc-sun-sunos"$UNAME_RELEASE" ;; esac exit ;; aushp:SunOS:*:*) echo sparc-auspex-sunos"$UNAME_RELEASE" exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not # "atarist" or "atariste" at least should have a processor # > m68000). The system name ranges from "MiNT" over "FreeMiNT" # to the lowercase version "mint" (or "freemint"). Finally # the system name "TOS" denotes a system which is actually not # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint"$UNAME_RELEASE" exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) echo m68k-atari-mint"$UNAME_RELEASE" exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) echo m68k-atari-mint"$UNAME_RELEASE" exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) echo m68k-milan-mint"$UNAME_RELEASE" exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) echo m68k-hades-mint"$UNAME_RELEASE" exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) echo m68k-unknown-mint"$UNAME_RELEASE" exit ;; m68k:machten:*:*) echo m68k-apple-machten"$UNAME_RELEASE" exit ;; powerpc:machten:*:*) echo powerpc-apple-machten"$UNAME_RELEASE" exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) echo mips-dec-ultrix"$UNAME_RELEASE" exit ;; VAX*:ULTRIX*:*:*) echo vax-dec-ultrix"$UNAME_RELEASE" exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) echo clipper-intergraph-clix"$UNAME_RELEASE" exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) eval "$set_cc_for_build" sed 's/^ //' << EOF > "$dummy.c" #ifdef __cplusplus #include /* for printf() prototype */ int main (int argc, char *argv[]) { #else int main (argc, argv) int argc; char *argv[]; { #endif #if defined (host_mips) && defined (MIPSEB) #if defined (SYSTYPE_SYSV) printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_SVR4) printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0); #endif #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0); #endif #endif exit (-1); } EOF $CC_FOR_BUILD -o "$dummy" "$dummy.c" && dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` && SYSTEM_NAME=`"$dummy" "$dummyarg"` && { echo "$SYSTEM_NAME"; exit; } echo mips-mips-riscos"$UNAME_RELEASE" exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax exit ;; Motorola:*:4.3:PL8-*) echo powerpc-harris-powermax exit ;; Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) echo powerpc-harris-powermax exit ;; Night_Hawk:Power_UNIX:*:*) echo powerpc-harris-powerunix exit ;; m88k:CX/UX:7*:*) echo m88k-harris-cxux7 exit ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 exit ;; m88k:*:3*:R3*) echo m88k-motorola-sysv3 exit ;; AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ] then if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \ [ "$TARGET_BINARY_INTERFACE"x = x ] then echo m88k-dg-dgux"$UNAME_RELEASE" else echo m88k-dg-dguxbcs"$UNAME_RELEASE" fi else echo i586-dg-dgux"$UNAME_RELEASE" fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) echo m88k-dolphin-sysv3 exit ;; M88*:*:R3*:*) # Delta 88k system running SVR3 echo m88k-motorola-sysv3 exit ;; XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) echo m88k-tektronix-sysv3 exit ;; Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`" exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' i*86:AIX:*:*) echo i386-ibm-aix exit ;; ia64:AIX:*:*) if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" fi echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV" exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then eval "$set_cc_for_build" sed 's/^ //' << EOF > "$dummy.c" #include main() { if (!__power_pc()) exit(1); puts("powerpc-ibm-aix3.2.5"); exit(0); } EOF if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` then echo "$SYSTEM_NAME" else echo rs6000-ibm-aix3.2.5 fi elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then echo rs6000-ibm-aix3.2.4 else echo rs6000-ibm-aix3.2 fi exit ;; *:AIX:*:[4567]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc fi if [ -x /usr/bin/lslpp ] ; then IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` else IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" fi echo "$IBM_ARCH"-ibm-aix"$IBM_REV" exit ;; *:AIX:*:*) echo rs6000-ibm-aix exit ;; ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*) echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and echo romp-ibm-bsd"$UNAME_RELEASE" # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx exit ;; DPX/2?00:B.O.S.:*:*) echo m68k-bull-sysv3 exit ;; 9000/[34]??:4.3bsd:1.*:*) echo m68k-hp-bsd exit ;; hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` case "$UNAME_MACHINE" in 9000/31?) HP_ARCH=m68000 ;; 9000/[34]??) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` case "$sc_cpu_version" in 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 case "$sc_kernel_bits" in 32) HP_ARCH=hppa2.0n ;; 64) HP_ARCH=hppa2.0w ;; '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 esac ;; esac fi if [ "$HP_ARCH" = "" ]; then eval "$set_cc_for_build" sed 's/^ //' << EOF > "$dummy.c" #define _HPUX_SOURCE #include #include int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); #endif long cpu = sysconf (_SC_CPU_VERSION); switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0"); break; case CPU_PA_RISC1_1: puts ("hppa1.1"); break; case CPU_PA_RISC2_0: #if defined(_SC_KERNEL_BITS) switch (bits) { case 64: puts ("hppa2.0w"); break; case 32: puts ("hppa2.0n"); break; default: puts ("hppa2.0"); break; } break; #else /* !defined(_SC_KERNEL_BITS) */ puts ("hppa2.0"); break; #endif default: puts ("hppa1.0"); break; } exit (0); } EOF (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac if [ "$HP_ARCH" = hppa2.0w ] then eval "$set_cc_for_build" # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler # generating 64-bit code. GNU and HP use different nomenclature: # # $ CC_FOR_BUILD=cc ./config.guess # => hppa2.0w-hp-hpux11.23 # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess # => hppa64-hp-hpux11.23 if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | grep -q __LP64__ then HP_ARCH=hppa2.0w else HP_ARCH=hppa64 fi fi echo "$HP_ARCH"-hp-hpux"$HPUX_REV" exit ;; ia64:HP-UX:*:*) HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` echo ia64-hp-hpux"$HPUX_REV" exit ;; 3050*:HI-UX:*:*) eval "$set_cc_for_build" sed 's/^ //' << EOF > "$dummy.c" #include int main () { long cpu = sysconf (_SC_CPU_VERSION); /* The order matters, because CPU_IS_HP_MC68K erroneously returns true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct results, however. */ if (CPU_IS_PA_RISC (cpu)) { switch (cpu) { case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; default: puts ("hppa-hitachi-hiuxwe2"); break; } } else if (CPU_IS_HP_MC68K (cpu)) puts ("m68k-hitachi-hiuxwe2"); else puts ("unknown-hitachi-hiuxwe2"); exit (0); } EOF $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*) echo hppa1.1-hp-bsd exit ;; 9000/8??:4.3bsd:*:*) echo hppa1.0-hp-bsd exit ;; *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) echo hppa1.0-hp-mpeix exit ;; hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*) echo hppa1.1-hp-osf exit ;; hp8??:OSF1:*:*) echo hppa1.0-hp-osf exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then echo "$UNAME_MACHINE"-unknown-osf1mk else echo "$UNAME_MACHINE"-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) echo hppa1.1-hp-lites exit ;; C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) echo c1-convex-bsd exit ;; C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) if getsysinfo -f scalar_acc then echo c32-convex-bsd else echo c2-convex-bsd fi exit ;; C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) echo c34-convex-bsd exit ;; C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) echo c38-convex-bsd exit ;; C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE" exit ;; sparc*:BSD/OS:*:*) echo sparc-unknown-bsdi"$UNAME_RELEASE" exit ;; *:BSD/OS:*:*) echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE" exit ;; *:FreeBSD:*:*) UNAME_PROCESSOR=`/usr/bin/uname -p` case "$UNAME_PROCESSOR" in amd64) UNAME_PROCESSOR=x86_64 ;; i386) UNAME_PROCESSOR=i586 ;; esac echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" exit ;; i*:CYGWIN*:*) echo "$UNAME_MACHINE"-pc-cygwin exit ;; *:MINGW64*:*) echo "$UNAME_MACHINE"-pc-mingw64 exit ;; *:MINGW*:*) echo "$UNAME_MACHINE"-pc-mingw32 exit ;; *:MSYS*:*) echo "$UNAME_MACHINE"-pc-msys exit ;; i*:PW*:*) echo "$UNAME_MACHINE"-pc-pw32 exit ;; *:Interix*:*) case "$UNAME_MACHINE" in x86) echo i586-pc-interix"$UNAME_RELEASE" exit ;; authenticamd | genuineintel | EM64T) echo x86_64-unknown-interix"$UNAME_RELEASE" exit ;; IA64) echo ia64-unknown-interix"$UNAME_RELEASE" exit ;; esac ;; i*:UWIN*:*) echo "$UNAME_MACHINE"-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) echo x86_64-unknown-cygwin exit ;; prep*:SunOS:5.*:*) echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" exit ;; *:GNU:*:*) # the GNU system echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`" exit ;; *:GNU/*:*:*) # other systems with GNU libc and userland echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC" exit ;; i*86:Minix:*:*) echo "$UNAME_MACHINE"-pc-minix exit ;; aarch64:Linux:*:*) echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in EV5) UNAME_MACHINE=alphaev5 ;; EV56) UNAME_MACHINE=alphaev56 ;; PCA56) UNAME_MACHINE=alphapca56 ;; PCA57) UNAME_MACHINE=alphapca56 ;; EV6) UNAME_MACHINE=alphaev6 ;; EV67) UNAME_MACHINE=alphaev67 ;; EV68*) UNAME_MACHINE=alphaev68 ;; esac objdump --private-headers /bin/sh | grep -q ld.so.1 if test "$?" = 0 ; then LIBC=gnulibc1 ; fi echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; arc:Linux:*:* | arceb:Linux:*:*) echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; arm*:Linux:*:*) eval "$set_cc_for_build" if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_EABI__ then echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi else echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf fi fi exit ;; avr32*:Linux:*:*) echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; cris:Linux:*:*) echo "$UNAME_MACHINE"-axis-linux-"$LIBC" exit ;; crisv32:Linux:*:*) echo "$UNAME_MACHINE"-axis-linux-"$LIBC" exit ;; e2k:Linux:*:*) echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; frv:Linux:*:*) echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; hexagon:Linux:*:*) echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; i*86:Linux:*:*) echo "$UNAME_MACHINE"-pc-linux-"$LIBC" exit ;; ia64:Linux:*:*) echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; k1om:Linux:*:*) echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; m32r*:Linux:*:*) echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; m68*:Linux:*:*) echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; mips:Linux:*:* | mips64:Linux:*:*) eval "$set_cc_for_build" sed 's/^ //' << EOF > "$dummy.c" #undef CPU #undef ${UNAME_MACHINE} #undef ${UNAME_MACHINE}el #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) CPU=${UNAME_MACHINE}el #else #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) CPU=${UNAME_MACHINE} #else CPU= #endif #endif EOF eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU'`" test "x$CPU" != x && { echo "$CPU-unknown-linux-$LIBC"; exit; } ;; mips64el:Linux:*:*) echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; openrisc*:Linux:*:*) echo or1k-unknown-linux-"$LIBC" exit ;; or32:Linux:*:* | or1k*:Linux:*:*) echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; padre:Linux:*:*) echo sparc-unknown-linux-"$LIBC" exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) echo hppa64-unknown-linux-"$LIBC" exit ;; parisc:Linux:*:* | hppa:Linux:*:*) # Look for CPU level case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;; PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;; *) echo hppa-unknown-linux-"$LIBC" ;; esac exit ;; ppc64:Linux:*:*) echo powerpc64-unknown-linux-"$LIBC" exit ;; ppc:Linux:*:*) echo powerpc-unknown-linux-"$LIBC" exit ;; ppc64le:Linux:*:*) echo powerpc64le-unknown-linux-"$LIBC" exit ;; ppcle:Linux:*:*) echo powerpcle-unknown-linux-"$LIBC" exit ;; riscv32:Linux:*:* | riscv64:Linux:*:*) echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; s390:Linux:*:* | s390x:Linux:*:*) echo "$UNAME_MACHINE"-ibm-linux-"$LIBC" exit ;; sh64*:Linux:*:*) echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; sh*:Linux:*:*) echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; tile*:Linux:*:*) echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; vax:Linux:*:*) echo "$UNAME_MACHINE"-dec-linux-"$LIBC" exit ;; x86_64:Linux:*:*) echo "$UNAME_MACHINE"-pc-linux-"$LIBC" exit ;; xtensa*:Linux:*:*) echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. # earlier versions are messed up and put the nodename in both # sysname and nodename. echo i386-sequent-sysv4 exit ;; i*86:UNIX_SV:4.2MP:2.*) # Unixware is an offshoot of SVR4, but it has its own version # number series starting with 2... # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION" exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. echo "$UNAME_MACHINE"-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) echo "$UNAME_MACHINE"-unknown-stop exit ;; i*86:atheos:*:*) echo "$UNAME_MACHINE"-unknown-atheos exit ;; i*86:syllable:*:*) echo "$UNAME_MACHINE"-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) echo i386-unknown-lynxos"$UNAME_RELEASE" exit ;; i*86:*DOS:*:*) echo "$UNAME_MACHINE"-pc-msdosdjgpp exit ;; i*86:*:4.*:*) UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL" else echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL" fi exit ;; i*86:*:5:[678]*) # UnixWare 7.x, OpenUNIX and OpenServer 6. case `/bin/uname -X | grep "^Machine"` in *486*) UNAME_MACHINE=i486 ;; *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}{$UNAME_VERSION}" exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ && UNAME_MACHINE=i586 (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL" else echo "$UNAME_MACHINE"-pc-sysv32 fi exit ;; pc:*:*:*) # Left here for compatibility: # uname -m prints for DJGPP always 'pc', but it prints nothing about # the processor, so we play safe by assuming i586. # Note: whatever this is, it MUST be the same as what config.sub # prints for the "djgpp" host, or else GDB configure will decide that # this is a cross-build. echo i586-pc-msdosdjgpp exit ;; Intel:Mach:3*:*) echo i386-pc-mach3 exit ;; paragon:*:*:*) echo i860-intel-osf1 exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. echo i860-unknown-sysv"$UNAME_RELEASE" # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) # "miniframe" echo m68010-convergent-sysv exit ;; mc68k:UNIX:SYSTEM5:3.51m) echo m68k-convergent-sysv exit ;; M680?0:D-NIX:5.3:*) echo m68k-diab-dnix exit ;; M68*:*:R3V[5678]*:*) test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) OS_REL='' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; NCR*:*:4.2:* | MPRAS*:*:4.2:*) OS_REL='.3' test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) echo m68k-unknown-lynxos"$UNAME_RELEASE" exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) echo sparc-unknown-lynxos"$UNAME_RELEASE" exit ;; rs6000:LynxOS:2.*:*) echo rs6000-unknown-lynxos"$UNAME_RELEASE" exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) echo powerpc-unknown-lynxos"$UNAME_RELEASE" exit ;; SM[BE]S:UNIX_SV:*:*) echo mips-dde-sysv"$UNAME_RELEASE" exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 exit ;; RM*:SINIX-*:*:*) echo mips-sni-sysv4 exit ;; *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` echo "$UNAME_MACHINE"-sni-sysv4 else echo ns32k-sni-sysv fi exit ;; PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says echo i586-unisys-sysv4 exit ;; *:UNIX_System_V:4*:FTX*) # From Gerald Hewes . # How about differentiating between stratus architectures? -djm echo hppa1.1-stratus-sysv4 exit ;; *:*:*:FTX*) # From seanf@swdc.stratus.com. echo i860-stratus-sysv4 exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. echo "$UNAME_MACHINE"-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) echo m68k-apple-aux"$UNAME_RELEASE" exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then echo mips-nec-sysv"$UNAME_RELEASE" else echo mips-unknown-sysv"$UNAME_RELEASE" fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. echo powerpc-be-beos exit ;; BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. echo powerpc-apple-beos exit ;; BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; BePC:Haiku:*:*) # Haiku running on Intel PC compatible. echo i586-pc-haiku exit ;; x86_64:Haiku:*:*) echo x86_64-unknown-haiku exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux"$UNAME_RELEASE" exit ;; SX-5:SUPER-UX:*:*) echo sx5-nec-superux"$UNAME_RELEASE" exit ;; SX-6:SUPER-UX:*:*) echo sx6-nec-superux"$UNAME_RELEASE" exit ;; SX-7:SUPER-UX:*:*) echo sx7-nec-superux"$UNAME_RELEASE" exit ;; SX-8:SUPER-UX:*:*) echo sx8-nec-superux"$UNAME_RELEASE" exit ;; SX-8R:SUPER-UX:*:*) echo sx8r-nec-superux"$UNAME_RELEASE" exit ;; SX-ACE:SUPER-UX:*:*) echo sxace-nec-superux"$UNAME_RELEASE" exit ;; Power*:Rhapsody:*:*) echo powerpc-apple-rhapsody"$UNAME_RELEASE" exit ;; *:Rhapsody:*:*) echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE" exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown eval "$set_cc_for_build" if test "$UNAME_PROCESSOR" = unknown ; then UNAME_PROCESSOR=powerpc fi if test "`echo "$UNAME_RELEASE" | sed -e 's/\..*//'`" -le 10 ; then if [ "$CC_FOR_BUILD" != no_compiler_found ]; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_64BIT_ARCH >/dev/null then case $UNAME_PROCESSOR in i386) UNAME_PROCESSOR=x86_64 ;; powerpc) UNAME_PROCESSOR=powerpc64 ;; esac fi # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ grep IS_PPC >/dev/null then UNAME_PROCESSOR=powerpc fi fi elif test "$UNAME_PROCESSOR" = i386 ; then # Avoid executing cc on OS X 10.9, as it ships with a stub # that puts up a graphical alert prompting to install # developer tools. Any system running Mac OS X 10.7 or # later (Darwin 11 and later) is required to have a 64-bit # processor. This is not true of the ARM version of Darwin # that Apple uses in portable devices. UNAME_PROCESSOR=x86_64 fi echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE" exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` if test "$UNAME_PROCESSOR" = x86; then UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE" exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NEO-*:NONSTOP_KERNEL:*:*) echo neo-tandem-nsk"$UNAME_RELEASE" exit ;; NSE-*:NONSTOP_KERNEL:*:*) echo nse-tandem-nsk"$UNAME_RELEASE" exit ;; NSR-*:NONSTOP_KERNEL:*:*) echo nsr-tandem-nsk"$UNAME_RELEASE" exit ;; NSV-*:NONSTOP_KERNEL:*:*) echo nsv-tandem-nsk"$UNAME_RELEASE" exit ;; NSX-*:NONSTOP_KERNEL:*:*) echo nsx-tandem-nsk"$UNAME_RELEASE" exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux exit ;; BS2000:POSIX*:*:*) echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE" exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. if test "$cputype" = 386; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi echo "$UNAME_MACHINE"-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 exit ;; *:TENEX:*:*) echo pdp10-unknown-tenex exit ;; KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) echo pdp10-dec-tops20 exit ;; XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) echo pdp10-xkl-tops20 exit ;; *:TOPS-20:*:*) echo pdp10-unknown-tops20 exit ;; *:ITS:*:*) echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) echo mips-sei-seiux"$UNAME_RELEASE" exit ;; *:DragonFly:*:*) echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` case "$UNAME_MACHINE" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; esac ;; *:XENIX:*:SysV) echo i386-pc-xenix exit ;; i*86:skyos:*:*) echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`" exit ;; i*86:rdos:*:*) echo "$UNAME_MACHINE"-pc-rdos exit ;; i*86:AROS:*:*) echo "$UNAME_MACHINE"-pc-aros exit ;; x86_64:VMkernel:*:*) echo "$UNAME_MACHINE"-unknown-esx exit ;; amd64:Isilon\ OneFS:*:*) echo x86_64-unknown-onefs exit ;; esac echo "$0: unable to guess system type" >&2 case "$UNAME_MACHINE:$UNAME_SYSTEM" in mips:Linux | mips64:Linux) # If we got here on MIPS GNU/Linux, output extra information. cat >&2 <&2 </dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` /bin/uname -X = `(/bin/uname -X) 2>/dev/null` hostinfo = `(hostinfo) 2>/dev/null` /bin/universe = `(/bin/universe) 2>/dev/null` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` /bin/arch = `(/bin/arch) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` UNAME_MACHINE = "$UNAME_MACHINE" UNAME_RELEASE = "$UNAME_RELEASE" UNAME_SYSTEM = "$UNAME_SYSTEM" UNAME_VERSION = "$UNAME_VERSION" EOF exit 1 # Local variables: # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: mysql++-3.2.5/exrun000755 000765 000024 00000002562 13515046514 014717 0ustar00tangentstaff000000 000000 #!/bin/sh if [ -z "$1" ] then echo "usage: $0 [TOOL] [args...]" echo echo " Runs the given example, using the library in the current directory" echo " instead of using the system library search mechanism. Accepts an " echo " arbitrary number of arguments." echo echo " TOOL can be 'valgrind', 'gdb', or 'ldd', which causes exrun to" echo " run the example program under the given tool." echo exit 1 fi TOOL= PROG=$1 if [ "$PROG" = 'valgrind' ] then TOOL='valgrind' shift PROG=$1 elif [ "$PROG" = 'gdb' ] then TOOL='gdb --args' shift PROG=$1 elif [ "$PROG" = 'ldd' ] then TOOL='ldd' shift PROG=$1 fi shift if [ -e "$PROG" ] then if [ `uname -s` = 'Darwin' ] then DYLD_LIBRARY_PATH=. $TOOL ./$PROG $* elif [ `uname -o` = 'Cygwin' ] then # Cygwin build case; see below for bash-as-DOS-shell case PATH=. $TOOL ./$PROG $* elif [ -e /usr/bin/ldd ] then if [ `uname -s` = 'SunOS' ] then LD_LIBRARY_PATH=.:/usr/mysql/lib/mysql $TOOL ./$PROG $* else LD_LIBRARY_PATH=. $TOOL ./$PROG $* fi else echo "ERROR: I don't grok this system's dynamic linkage system." fi elif [ `uname -o` = 'Cygwin' ] then # VC++ build, but using Cygwin's bash as shell to run programs cmd.exe /c exrun.bat $PROG $* else echo "usage: $0 [TOOL] [args...]" echo echo " Run $0 without arguments for more detailed usage info." echo exit 1 fi mysql++-3.2.5/version.in000644 000765 000024 00000000130 13515046514 015632 0ustar00tangentstaff000000 000000 #!/bin/sh echo @MYSQLPP_VERSION_MAJOR@.@MYSQLPP_VERSION_MINOR@.@MYSQLPP_VERSION_BUGFIX@ mysql++-3.2.5/mysql++.spec.in000644 000765 000024 00000012503 13515046514 016400 0ustar00tangentstaff000000 000000 Summary: C++ wrapper for the MySQL C API Name: @PACKAGE_NAME@ Version: @PACKAGE_VERSION@ Release: 1%{?dist} License: LGPL Group: Development/Libraries URL: http://tangentsoft.net/mysql++/ Source0: http://tangentsoft.net/mysql++/releases/mysql++-%{version}.tar.gz BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) BuildRequires: mysql-devel %description MySQL++ makes working with MySQL server queries as easy as working with STL containers. This package contains only the libraries needed to run MySQL++-based programs. If you are building your own MySQL++-based programs, you also need to install the -devel package. %package devel Summary: MySQL++ developer files (headers, examples, etc.) Group: Development/Libraries Requires: mysql++ = %{version}-%{release}, mysql-devel %description devel These are the files needed to compile MySQL++ based programs, plus some sample code to get you started. If you aren't building your own programs, you probably don't need to install this package. %package manuals Summary: MySQL++ user and reference manuals Group: Development/Libraries %description manuals This is the MySQL++ documentation. It's a separate RPM just because it's so large, and it doesn't change with every release. %prep %setup -q # Fakery for nodoc case if [ ! -e doc/README-devel-RPM.txt ] then touch doc/README-devel-RPM.txt touch doc/README-doc-RPM.txt touch doc/README-manuals-RPM.txt %{__mkdir_p} doc/html doc/pdf fi %build %configure --disable-dependency-tracking %{__make} %{?_smp_mflags} %install rm -rf %{buildroot} doc/examples %{__mkdir_p} %{buildroot}{%{_libdir},%{_includedir}} %{__make} DESTDIR=%{buildroot} install # Copy example programs to doc directory %{__mkdir_p} doc/examples %{__install} -m644 examples/*.{cpp,h} doc/examples/ %{__install} -m644 config.h doc/examples/ sed -i -e s@../config.h@config.h@ doc/examples/threads.h # Fix up simple example Makefile to allow it to build on the install # system, as opposed to the system where the Makefile was created. %{__sed} -e 's@./examples/@@' \ -e 's@^CPPFLAGS.*$@CPPFLAGS := $(shell mysql_config --cflags)@' \ -e 's@^LDFLAGS.*$@LDFLAGS := $(shell mysql_config --libs)@' \ -e 's@ -Ilib@@' \ -e '/^all:/s/test_[a-z,_]* //g' \ Makefile.simple > doc/examples/Makefile %clean rm -rf %{buildroot} doc/examples %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %files %defattr(-,root,root,-) %doc ChangeLog.md COPYING.txt CREDITS.txt LICENSE.txt README.md %{_libdir}/libmysqlpp.so.* %files devel %defattr(-,root,root,-) %doc doc/examples doc/README-devel-RPM.txt README-examples.txt %{_includedir}/mysql++ %{_libdir}/libmysqlpp.so %files manuals %defattr(-,root,root,-) %doc doc/html doc/pdf doc/README-manuals-RPM.txt %changelog * Mon Jul 2 2007 Warren Young 2.3.0-1 - Reflected changes to doc dir layout in manuals sub-package * Mon Mar 19 2007 Warren Young 2.2.1-4 - Reorganized locations of generated documentation * Mon Mar 19 2007 Warren Young 2.2.1-3 - Merge of Remi Collet's spec file with official one * Sun Mar 18 2007 Remi Collet 2.2.1-2 - find perm on common.h - soname mysql++-2.2.1-bkl.patch * Wed Feb 28 2007 Remi Collet 2.2.1-1 - Initial spec for Extras * Wed Feb 28 2007 Remi Collet 2.2.1-1.fc{3-6}.remi - update to version 2.2.1 * Thu Jan 25 2007 Remi Collet 2.2.0-1.fc{3-6}.remi - update to version 2.2.0 * Mon Nov 13 2006 Remi Collet 2.1.1.fc6.remi - FC6.x86_64 build - dynamic (sed) patch for Makefile (use mysql_config) * Thu Nov 02 2006 Remi Collet 2.1.1.fc6.remi - FC6 build * Sat Apr 8 2006 Remi Collet 2.1.1.fc{3,4,5}.remi - update to version 2.1.1 * Sat Nov 26 2005 Remi Collet 2.0.7-1.fc3.remi - 2.0.7-1.fc4.remi - update to version 2.0.4 - build with mysql-5.0.15 (requires libmysqlclient.so.15) * Sun Sep 4 2005 Remi Collet 2.0.4-1.FC4.remi - version 2.0.4 * Sat Aug 20 2005 Remi Collet 2.0.2-1.FC4.remi - built for FC4 - spec cleanning... * Thu Jun 16 2005 Remi Collet 1.7.40-1.FC3.remi - built for FC3 and MySQL 4.1.11 - examples in /usr/share/doc/mysql++-%%{version}/examples * Sat Apr 30 2005 Warren Young 1.7.34-1 - Split manuals out into their own sub-package. * Thu Mar 10 2005 Warren Young 1.7.32-1 - Disabled building of examples, to speed RPM build. * Fri Nov 05 2004 Warren Young 1.7.21-1 - Split out -devel subpackage, which now includes the examples * Wed Aug 18 2004 Warren Young 1.7.11-1 - Removed examples from documentation. - Limited documentation to just the generated files, not the sources. * Wed Apr 16 2003 Tuan Hoang 1.7.9-4 - Added gcc 3.2.2 patch. - Packaged using Red Hat Linux 8.0 and 9. * Thu Nov 14 2002 Tuan Hoang 1.7.9-3 - Changed the version passed to libtool. * Mon Oct 28 2002 Tuan Hoang 1.7.9-2 - Updated the version numbering of the library to be 1.7.9. - Packaged using Red Hat Linux 8.0. * Thu Oct 17 2002 Philipp Berndt - packaged mysql++-3.2.5/RELEASE-CHECKLIST.txt000644 000765 000024 00000004151 13515046514 016754 0ustar00tangentstaff000000 000000 - Update ChangeLog.md. - Change version number in configure.ac, mysql++.bkl, and ~/tangentsoft.com/mysqlpp/GNUmakefile All other places the version number occurs are generated from the first two. If there's a corresponding *.in file for the one you're looking at, the version number was substituted in by autoconf from configure.ac. Otherwise, the file was most likely created by the build system using the version number in mysql++.bkl. - Run "make abicheck". There should be no changes. You may have to run the following command in the current "stable" directory before this will succeed, since it depends on there being an ACC dump file in place already. $ abi-compliance-checker -lib mysqlpp -dump abi.xml ("Stable" is assumed to be in ../3.1.0 relative to the trunk checkout, as I write this.) This dependence on an existing ABI dump file is deemed reasonable since the ABI of the stable version had better not be changing! Plus, it saves some processing time, since ACC can load the stable ABI info without re-parsing its headers and library file. - Re-bootstrap the system in pedantic mode, then do a clean rebuild. Fix any new errors and warnings. Known bogus warnings: - Query's std::basic_ios<> base class is not being initialized. Yes, we know. We don't care. - The "==" float comparisons in lib/stadapter.cpp are harmless. They're comparisons against special NaN and infinity constants. Those are safe. - Re-bootstrap it again without "pedantic", to avoid shipping the pedantic build files. - Run tools/mkrel to check the new ChangeLog.md, configure.ac, and mysqyl++.bkl files in with the proper version tag and to merge it into the release branch. This also creates mysql++-$(VERSION).tar.gz and synchs it up to tangentsoft.com in the MySQL++ releases directory. - On a CentOS 7 box, say "make rpm" from the "release" branch tree. Copy the resulting ~/rpmbuild/SRPMS/mysql++-$(VERSION)-1.el7.src.rpm to that same releases directory. - Update "MySQL++" wiki document to point to new release packages. mysql++-3.2.5/mysql++.spec000644 000765 000024 00000012460 13515046541 015775 0ustar00tangentstaff000000 000000 Summary: C++ wrapper for the MySQL C API Name: mysql++ Version: 3.2.5 Release: 1%{?dist} License: LGPL Group: Development/Libraries URL: http://tangentsoft.net/mysql++/ Source0: http://tangentsoft.net/mysql++/releases/mysql++-%{version}.tar.gz BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) BuildRequires: mysql-devel %description MySQL++ makes working with MySQL server queries as easy as working with STL containers. This package contains only the libraries needed to run MySQL++-based programs. If you are building your own MySQL++-based programs, you also need to install the -devel package. %package devel Summary: MySQL++ developer files (headers, examples, etc.) Group: Development/Libraries Requires: mysql++ = %{version}-%{release}, mysql-devel %description devel These are the files needed to compile MySQL++ based programs, plus some sample code to get you started. If you aren't building your own programs, you probably don't need to install this package. %package manuals Summary: MySQL++ user and reference manuals Group: Development/Libraries %description manuals This is the MySQL++ documentation. It's a separate RPM just because it's so large, and it doesn't change with every release. %prep %setup -q # Fakery for nodoc case if [ ! -e doc/README-devel-RPM.txt ] then touch doc/README-devel-RPM.txt touch doc/README-doc-RPM.txt touch doc/README-manuals-RPM.txt %{__mkdir_p} doc/html doc/pdf fi %build %configure --disable-dependency-tracking %{__make} %{?_smp_mflags} %install rm -rf %{buildroot} doc/examples %{__mkdir_p} %{buildroot}{%{_libdir},%{_includedir}} %{__make} DESTDIR=%{buildroot} install # Copy example programs to doc directory %{__mkdir_p} doc/examples %{__install} -m644 examples/*.{cpp,h} doc/examples/ %{__install} -m644 config.h doc/examples/ sed -i -e s@../config.h@config.h@ doc/examples/threads.h # Fix up simple example Makefile to allow it to build on the install # system, as opposed to the system where the Makefile was created. %{__sed} -e 's@./examples/@@' \ -e 's@^CPPFLAGS.*$@CPPFLAGS := $(shell mysql_config --cflags)@' \ -e 's@^LDFLAGS.*$@LDFLAGS := $(shell mysql_config --libs)@' \ -e 's@ -Ilib@@' \ -e '/^all:/s/test_[a-z,_]* //g' \ Makefile.simple > doc/examples/Makefile %clean rm -rf %{buildroot} doc/examples %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %files %defattr(-,root,root,-) %doc ChangeLog.md COPYING.txt CREDITS.txt LICENSE.txt README.md %{_libdir}/libmysqlpp.so.* %files devel %defattr(-,root,root,-) %doc doc/examples doc/README-devel-RPM.txt README-examples.txt %{_includedir}/mysql++ %{_libdir}/libmysqlpp.so %files manuals %defattr(-,root,root,-) %doc doc/html doc/pdf doc/README-manuals-RPM.txt %changelog * Mon Jul 2 2007 Warren Young 2.3.0-1 - Reflected changes to doc dir layout in manuals sub-package * Mon Mar 19 2007 Warren Young 2.2.1-4 - Reorganized locations of generated documentation * Mon Mar 19 2007 Warren Young 2.2.1-3 - Merge of Remi Collet's spec file with official one * Sun Mar 18 2007 Remi Collet 2.2.1-2 - find perm on common.h - soname mysql++-2.2.1-bkl.patch * Wed Feb 28 2007 Remi Collet 2.2.1-1 - Initial spec for Extras * Wed Feb 28 2007 Remi Collet 2.2.1-1.fc{3-6}.remi - update to version 2.2.1 * Thu Jan 25 2007 Remi Collet 2.2.0-1.fc{3-6}.remi - update to version 2.2.0 * Mon Nov 13 2006 Remi Collet 2.1.1.fc6.remi - FC6.x86_64 build - dynamic (sed) patch for Makefile (use mysql_config) * Thu Nov 02 2006 Remi Collet 2.1.1.fc6.remi - FC6 build * Sat Apr 8 2006 Remi Collet 2.1.1.fc{3,4,5}.remi - update to version 2.1.1 * Sat Nov 26 2005 Remi Collet 2.0.7-1.fc3.remi - 2.0.7-1.fc4.remi - update to version 2.0.4 - build with mysql-5.0.15 (requires libmysqlclient.so.15) * Sun Sep 4 2005 Remi Collet 2.0.4-1.FC4.remi - version 2.0.4 * Sat Aug 20 2005 Remi Collet 2.0.2-1.FC4.remi - built for FC4 - spec cleanning... * Thu Jun 16 2005 Remi Collet 1.7.40-1.FC3.remi - built for FC3 and MySQL 4.1.11 - examples in /usr/share/doc/mysql++-%%{version}/examples * Sat Apr 30 2005 Warren Young 1.7.34-1 - Split manuals out into their own sub-package. * Thu Mar 10 2005 Warren Young 1.7.32-1 - Disabled building of examples, to speed RPM build. * Fri Nov 05 2004 Warren Young 1.7.21-1 - Split out -devel subpackage, which now includes the examples * Wed Aug 18 2004 Warren Young 1.7.11-1 - Removed examples from documentation. - Limited documentation to just the generated files, not the sources. * Wed Apr 16 2003 Tuan Hoang 1.7.9-4 - Added gcc 3.2.2 patch. - Packaged using Red Hat Linux 8.0 and 9. * Thu Nov 14 2002 Tuan Hoang 1.7.9-3 - Changed the version passed to libtool. * Mon Oct 28 2002 Tuan Hoang 1.7.9-2 - Updated the version numbering of the library to be 1.7.9. - Packaged using Red Hat Linux 8.0. * Thu Oct 17 2002 Philipp Berndt - packaged mysql++-3.2.5/CREDITS.txt000644 000765 000024 00000010067 13515046514 015465 0ustar00tangentstaff000000 000000 MySQL++ was created by Kevin Atkinson during 1998. From version 1.0 (released in June 1999) through 1.7.9 (May 2001), the primary maintainer was Sinisa Milivojevic . Neither Kevin nor Sinisa are currently involved in MySQL++ development. The current maintainer is Warren Young , starting with version 1.7.10 in August of 2004. For a fuller account of the library's history, see the first chapter of the user manual. For the nitty-gritty details, see the ChangeLog.md file in the root package directory. Change log items since 1.7.9 that aren't attributed to anyone else were done by Warren Young. Other contributors of note since 1.7.10: Chris Frey : Lots of GCC warning fixes for the bleeding-edge compiler versions, Gentoo ebuild support, and misc other fixes. Mark Meredino : Several fixes and additions, including a lot of work on Microsoft Visual C++ compatibility, and discoveries made while spelunking in the library. Evan Wies : Contributed several C++ code style cleanups. Arnon Jalon : Added the multi-query result set handling features, and examples/multiquery.cpp to demonstrate it. Korolyov Ilya has submitted several patches in many different areas of the library. Remi Collet is maintaining offical RPMs for Fedora, with other systems on the way. His work has improved the RPM spec file we distribute greatly. Joel Fielder of Switchplane, Ltd. created the ScopedConnection class, came up with the original idea for Query's for_each() and store_in() methods, provided the basis for examples/for_each.cpp, and provided a fix for exception flag propagation in Query. Jim Wallace demonstrated the need for BadQuery::errnum(), and contributed the patches and also examples/deadlock.cpp to test that this feature does what it is supposed to. Jonathan Wakely rebuilt my original versions of ConnectionPool, RefCountedPointer, and RefCountedBuffer. They're now simpler and safer. He also created the numeric conversion logic in lib/mystring.h introduced in v3.0. Adrian Cornish Several fixes and additions. Rick Gutleber contributed the Query::insertfrom() method and associated InsertPolicy object, as well as the SQLStream class. Here are the personal credits from the old 1.7.9 documentation, apparently written by Kevin Atkinson: Chris Halverson - For helping me get it to compile under Solaris. Fredric Fredricson - For a long talk about automatic conversions. Michael Widenius - MySQL developer who has been very supportive of my efforts. Paul J. Lucas - For the original idea of treating the query object like a stream. Scott Barron - For helping me with the shared libraries. Jools Enticknap - For giving me the Template Queries idea. M. S. Sriram - For a detailed dission of how the Template Queries should be implemented, the suggestion to throw exceptions on bad queries, and the idea of having a back-end independent query object (ie SQLQuery). Sinisa Milivojevic - For becoming the new offical maintainer. D. Hawkins and E. Loic for their autoconf + automake contribution. See the ChangeLog.md file for further credits and details about the differences between the many versions of this library. Please do not email any of these people with general questions about MySQL++. All of us who are still active in MySQL++ development read the mailing list, so questions sent there do get to us: http://lists.mysql.com/plusplus The mailing list is superior to private email because the answers are archived for future questioners to find, and because you are likely to get answers from more people. mysql++-3.2.5/README.md000644 000765 000024 00000012553 13515046514 015110 0ustar00tangentstaff000000 000000 # What It Is MySQL++ is a C++ wrapper for the MySQL and MariaDB C APIs. It is built around STL principles, to make dealing with the database as easy as dealing with an STL container. MySQL++ relieves the programmer of dealing with cumbersome C data structures, generation of repetitive SQL statements, and manual creation of C++ data structures to mirror the database schema. MySQL++’s development home is its [Fossil repository][home]. You may be reading this via its [GitHub mirror][ghm], but that repository is read-only, meant as a download-only mirror and for use by automation tooling based on Git. Checkins to the Fossil repository get pushed into the GitHub mirror within a day. [ghm]: https://github.com/tangentsoft/mysqlpp [home]: https://tangentsoft.com/mysqlpp/ # Prerequisites To build MySQL++, you must have the MySQL/MariaDB C API development files installed. On Unixy systems (Linux, Mac OS X, Cygwin, \*BSD, Solaris...), the MySQL development files are installed if you build MySQL from source. If you installed MySQL as a binary package, then the development files are often packaged separately from the MySQL server itself. It's common for the package containing the development files to be called something like `MySQL-devel`, `libmysqlclient-dev`, etc. If you're building on Windows with Visual C++ or MinGW, you need to install the native Windows port of MySQL or MariaDB. The way that’s packaged changes occasionally, so you might have to select a "complete" version rather than the server-only version. You might also have to choose a “custom†installation option to get the development files. Another pitfall is that the project files we ship assume that you've installed the current General Availability release of MySQL in its default location on your computer. If you've installed a different version, or if those packaging the development files move them around — which happens occasionally! — you'll have to adjust the link and include file paths in the project settings. # Additional Things to Read Each major platform we support has a dedicated `README-*.txt` file for it containing information specific to that platform. Please read it. For authorship information, see [the CREDITS.txt file][f1]. For license information, see [the COPYING.txt file][f2]. If you want to change MySQL++, see [the HACKERS.md file][f3]. You should have received a user manual and a reference manual with MySQL++. If not, you can read a recent version [online][docs]. Search the MySQL++ [mailing list archives][ml] and [its forum][for] if you have more questions. [docs]: https://tangentsoft.com/mysqlpp/doc/ [f1]: https://tangentsoft.com/mysqlpp/doc/trunk/CREDITS.txt [f2]: https://tangentsoft.com/mysqlpp/doc/trunk/COPYING.txt [f3]: https://tangentsoft.com/mysqlpp/doc/trunk/HACKERS.md [for]: https://tangentsoft.com/mysqlpp/froum/ [ml]: http://lists.mysql.com/plusplus/ # Building the Library MySQL++ uses [Bakefile](http://bakefile.org/) to generate platform-specific project files and makefiles from a single set of input files. We currently support these build systems: * **autoconf:** Use this method for most Unix type platforms along with [the generic instructions][unix]. We have supplemental information for [Linux][linux], [macOS][macos], [Cygwin][cyg], and [Solaris][sol]. * **MinGW:** We ship `Makefile.mingw` for MinGW. See [its README][mingw] for details. * **Visual C++:** We ship Visual Studio 2003, 2005, and 2008 project files. Newer versions of Visual C++ can upgrade these automatically, though the result sometimes requires manual adjustment. No older version of Visual C++ will build MySQL++, due to compiler limitations. See [its README][vcpp] for more details. * **Xcode:** We ship an Xcode project file, but it hasn't been well tested, since the autoconf method works just fine on macOS. [cyg]: https://tangentsoft.com/mysqlpp/doc/trunk/README-Cygwin.txt [linux]: https://tangentsoft.com/mysqlpp/doc/trunk/README-Linux.txt [macos]: https://tangentsoft.com/mysqlpp/doc/trunk/README-Mac-OS-X.txt [mingw]: https://tangentsoft.com/mysqlpp/doc/trunk/README-MinGW.txt [sol]: https://tangentsoft.com/mysqlpp/doc/trunk/README-Solaris.txt [unix]: https://tangentsoft.com/mysqlpp/doc/trunk/README-Unix.txt [vcpp]: https://tangentsoft.com/mysqlpp/doc/trunk/README-Visual-C%2B%2B.txt # Unsupported C++ Compilers and Operating Systems If you get MySQL++ to build under an operating system or with a C++ compiler not listed above, we’re likely to accept a patch for it. See [the HACKERS file][f3] for guidance. # Example Programs You may want to try out the programs in the examples subdirectory to ensure that the MySQL++ API and your MySQL database are both working properly. Also, [these examples][exr] give many examples of the proper use of MySQL++. [exr]: /doc/trunk/README-examples.txt # If You Want to Hack on MySQL++... If you intend to submit a change to the MySQL++ project, see [the HACKERS file][f3]. If you want to change the MySQL++ user manual, also read [the user manual’s README][umr]. If you want to change the MySQL++ reference manual, see [the Doxygen manual][dgm]. [dgm]: http://www.doxygen.nl/manual/ [umr]: https://tangentsoft.com/mysqlpp/doc/trunk/doc/userman/README.md mysql++-3.2.5/.bakefile_gen.state000644 000765 000024 00000064644 13515046520 017351 0ustar00tangentstaff000000 000000 K.}q((U8/usr/local/src/mysqlpp/release/mysql++-3.2.5/mysql++.bklUautoconft(cdependencies DepsRecord qo}q(Uoutputsq]q((U8/usr/local/src/mysqlpp/release/mysql++-3.2.5/Makefile.inUreplacetq(U(h]q?((US/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2003/mysql++_test_array_index.vcprojUreplaceq@tqA(UK/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2003/mysql++_test_uds.vcprojh@tqB(UJ/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2003/mysql++_simple1.vcprojh@tqC(UI/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2003/mysql++_dbinfo.vcprojh@tqD(UP/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2003/mysql++_test_datetime.vcprojh@tqE(UM/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2003/mysql++_test_cpool.vcprojh@tqF(UM/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2003/mysql++_test_manip.vcprojh@tqG(UH/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2003/mysql++_cpool.vcprojh@tqH(UJ/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2003/mysql++_simple2.vcprojh@tqI(U?/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2003/mysql++.slnh@tqJ(UK/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2003/mysql++_test_tcp.vcprojh@tqK(UM/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2003/mysql++_multiquery.vcprojh@tqL(UJ/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2003/mysql++_tquery1.vcprojh@tqM(UK/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2003/mysql++_deadlock.vcprojh@tqN(UJ/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2003/mysql++_tquery3.vcprojh@tqO(UQ/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2003/mysql++_test_sqlstream.vcprojh@tqP(UN/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2003/mysql++_test_ssqls2.vcprojh@tqQ(UL/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2003/mysql++_load_jpeg.vcprojh@tqR(UK/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2003/mysql++_test_wnp.vcprojh@tqS(UR/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2003/mysql++_test_query_copy.vcprojh@tqT(UL/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2003/mysql++_ssqlsxlat.vcprojh@tqU(UJ/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2003/mysql++_simple3.vcprojh@tqV(UK/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2003/mysql++_fieldinf.vcprojh@tqW(UJ/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2003/mysql++_mysqlpp.vcprojh@tqX(UJ/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2003/mysql++_tquery4.vcprojh@tqY(UO/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2003/mysql++_test_qstream.vcprojh@tqZ(UP/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2003/mysql++_test_inttypes.vcprojh@tq[(UJ/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2003/mysql++_resetdb.vcprojh@tq\(UJ/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2003/mysql++_tquery2.vcprojh@tq](UN/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2003/mysql++_ssqls2parse.vcprojh@tq^(UT/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2003/mysql++_test_insertpolicy.vcprojh@tq_(UK/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2003/mysql++_excommon.vcprojh@tq`eh]qa((h oqb}qch U*/usr/local/share/bakefile/rules/common.bklsb(h oqd}qeh U+/usr/local/share/bakefile/rules/version.bklsb(h oqf}qgh U(/usr/local/share/bakefile/rules/dirs.bklsb(h oqh}qih U3/usr/local/share/bakefile/rules/format_features.bklsb(h oqj}qkh U//usr/local/share/bakefile/rules/msvs2003prj.bklsb(h oql}qmh U//usr/local/share/bakefile/rules/msvs200xprj.bklsb(h oqn}qoh U:/usr/local/share/bakefile/rules/msvc_prj_vcproj_common.bklsb(h oqp}qqh U3/usr/local/share/bakefile/rules/msvc_prj_common.bklsb(h oqr}qsh U)/usr/local/share/bakefile/rules/win32.bklsb(h oqt}quh U5/usr/local/share/bakefile/rules/modules/datafiles.bklsb(h oqv}qwh U,/usr/local/share/bakefile/presets/simple.bklsb(h oqx}qyh U//usr/local/share/bakefile/output/msvs200xprj.pysbeub(U8/usr/local/src/mysqlpp/release/mysql++-3.2.5/mysql++.bklUmingwt(ho}qz(h]q{(U;/usr/local/src/mysqlpp/release/mysql++-3.2.5/Makefile.mingwUreplacetq|ah]q}((h oq~}qh U*/usr/local/share/bakefile/rules/common.bklsb(h oq€}qh U+/usr/local/share/bakefile/rules/version.bklsb(h oq‚}qƒh U(/usr/local/share/bakefile/rules/dirs.bklsb(h oq„}q…h U3/usr/local/share/bakefile/rules/format_features.bklsb(h oq†}q‡h U)/usr/local/share/bakefile/rules/mingw.bklsb(h oqˆ}q‰h U,/usr/local/share/bakefile/rules/makefile.bklsb(h oqŠ}q‹h U7/usr/local/share/bakefile/rules/makefile_defs_mingw.bklsb(h oqŒ}qh U)/usr/local/share/bakefile/rules/win32.bklsb(h oqŽ}qh U5/usr/local/share/bakefile/rules/makefile_defs_gnu.bklsb(h oq}q‘h U2/usr/local/share/bakefile/rules/makefile_mingw.bklsb(h oq’}q“h U5/usr/local/share/bakefile/rules/modules/datafiles.bklsb(h oq”}q•h U,/usr/local/share/bakefile/presets/simple.bklsb(h oq–}q—h U-/usr/local/share/bakefile/output/gnumake.empysbeub(U8/usr/local/src/mysqlpp/release/mysql++-3.2.5/mysql++.bklU msvs2008prjt(ho}q˜(h]q™((UK/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_excommon.vcprojUreplaceqštq›(UK/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_test_uds.vcprojhštqœ(UJ/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_tquery3.vcprojhštq(UQ/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_test_sqlstream.vcprojhštqž(UN/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_test_string.vcprojhštqŸ(UT/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_test_insertpolicy.vcprojhštq (UP/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_test_inttypes.vcprojhštq¡(UJ/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_resetdb.vcprojhštq¢(UN/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_test_ssqls2.vcprojhštq£(UK/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_deadlock.vcprojhštq¤(UK/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_test_wnp.vcprojhštq¥(UK/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_cgi_jpeg.vcprojhštq¦(UM/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_test_cpool.vcprojhštq§(UL/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_load_jpeg.vcprojhštq¨(UI/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_ssqls4.vcprojhštq©(UI/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_ssqls6.vcprojhštqª(UW/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_test_null_comparison.vcprojhštq«(UI/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_ssqls1.vcprojhštq¬(UO/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_test_qstream.vcprojhštq­(UJ/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_mysqlpp.vcprojhštq®(UJ/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_simple2.vcprojhštq¯(UR/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_test_query_copy.vcprojhštq°(UI/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_ssqls3.vcprojhštq±(UH/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_cpool.vcprojhštq²(UL/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_ssqlsxlat.vcprojhštq³(UK/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_store_if.vcprojhštq´(UI/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_dbinfo.vcprojhštqµ(UJ/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_tquery1.vcprojhštq¶(UI/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_ssqls2.vcprojhštq·(UP/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_test_datetime.vcprojhštq¸(UK/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_test_tcp.vcprojhštq¹(UN/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_ssqls2parse.vcprojhštqº(UN/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_test_qssqls.vcprojhštq»(UN/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_transaction.vcprojhštq¼(U?/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++.slnhštq½(UK/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_fieldinf.vcprojhštq¾(UM/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_multiquery.vcprojhštq¿(UK/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_for_each.vcprojhštqÀ(UJ/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_simple3.vcprojhštqÁ(US/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_test_array_index.vcprojhštqÂ(UM/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_test_manip.vcprojhštqÃ(UJ/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_tquery2.vcprojhštqÄ(UJ/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_tquery4.vcprojhštqÅ(UJ/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_simple1.vcprojhštqÆ(UI/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_ssqls5.vcprojhštqÇeh]qÈ((h oqÉ}qÊh U*/usr/local/share/bakefile/rules/common.bklsb(h oqË}qÌh U+/usr/local/share/bakefile/rules/version.bklsb(h oqÍ}qÎh U(/usr/local/share/bakefile/rules/dirs.bklsb(h oqÏ}qÐh U3/usr/local/share/bakefile/rules/format_features.bklsb(h oqÑ}qÒh U//usr/local/share/bakefile/rules/msvs2008prj.bklsb(h oqÓ}qÔh U//usr/local/share/bakefile/rules/msvs2005prj.bklsb(h oqÕ}qÖh U//usr/local/share/bakefile/rules/msvs200xprj.bklsb(h oq×}qØh U:/usr/local/share/bakefile/rules/msvc_prj_vcproj_common.bklsb(h oqÙ}qÚh U3/usr/local/share/bakefile/rules/msvc_prj_common.bklsb(h oqÛ}qÜh U)/usr/local/share/bakefile/rules/win32.bklsb(h oqÝ}qÞh U5/usr/local/share/bakefile/rules/modules/datafiles.bklsb(h oqß}qàh U,/usr/local/share/bakefile/presets/simple.bklsb(h oqá}qâh U//usr/local/share/bakefile/output/msvs200xprj.pysbeub(U8/usr/local/src/mysqlpp/release/mysql++-3.2.5/mysql++.bklU msvs2005prjt(ho}qã(h]qä((UK/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_excommon.vcprojUreplaceqåtqæ(UN/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_transaction.vcprojhåtqç(UK/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_test_uds.vcprojhåtqè(UN/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_test_qssqls.vcprojhåtqé(UI/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_ssqls3.vcprojhåtqê(UJ/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_simple2.vcprojhåtqë(UT/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_test_insertpolicy.vcprojhåtqì(UO/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_test_qstream.vcprojhåtqí(UP/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_test_datetime.vcprojhåtqî(UQ/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_test_sqlstream.vcprojhåtqï(U?/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++.slnhåtqð(UM/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_test_manip.vcprojhåtqñ(UN/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_ssqls2parse.vcprojhåtqò(UL/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_load_jpeg.vcprojhåtqó(UK/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_cgi_jpeg.vcprojhåtqô(UI/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_ssqls1.vcprojhåtqõ(UJ/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_tquery2.vcprojhåtqö(UM/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_test_cpool.vcprojhåtq÷(UJ/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_resetdb.vcprojhåtqø(UI/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_ssqls2.vcprojhåtqù(UM/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_multiquery.vcprojhåtqú(UJ/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_tquery1.vcprojhåtqû(UI/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_ssqls6.vcprojhåtqü(UK/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_for_each.vcprojhåtqý(UJ/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_tquery3.vcprojhåtqþ(UK/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_store_if.vcprojhåtqÿ(UJ/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_simple3.vcprojhåtr(UK/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_deadlock.vcprojhåtr(UH/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_cpool.vcprojhåtr(UJ/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_tquery4.vcprojhåtr(UI/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_ssqls5.vcprojhåtr(UJ/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_simple1.vcprojhåtr(UJ/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_mysqlpp.vcprojhåtr(UK/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_fieldinf.vcprojhåtr(UN/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_test_ssqls2.vcprojhåtr(US/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_test_array_index.vcprojhåtr (UW/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_test_null_comparison.vcprojhåtr (UP/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_test_inttypes.vcprojhåtr (UK/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_test_wnp.vcprojhåtr (UK/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_test_tcp.vcprojhåtr (UL/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_ssqlsxlat.vcprojhåtr(UR/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_test_query_copy.vcprojhåtr(UN/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_test_string.vcprojhåtr(UI/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_ssqls4.vcprojhåtr(UI/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_dbinfo.vcprojhåtreh]r((h or}rh U*/usr/local/share/bakefile/rules/common.bklsb(h or}rh U+/usr/local/share/bakefile/rules/version.bklsb(h or}rh U(/usr/local/share/bakefile/rules/dirs.bklsb(h or}rh U3/usr/local/share/bakefile/rules/format_features.bklsb(h or}rh U//usr/local/share/bakefile/rules/msvs2005prj.bklsb(h or}rh U//usr/local/share/bakefile/rules/msvs200xprj.bklsb(h or }r!h U:/usr/local/share/bakefile/rules/msvc_prj_vcproj_common.bklsb(h or"}r#h U3/usr/local/share/bakefile/rules/msvc_prj_common.bklsb(h or$}r%h U)/usr/local/share/bakefile/rules/win32.bklsb(h or&}r'h U5/usr/local/share/bakefile/rules/modules/datafiles.bklsb(h or(}r)h U,/usr/local/share/bakefile/presets/simple.bklsb(h or*}r+h U//usr/local/share/bakefile/output/msvs200xprj.pysbeubu.}q(UJ/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_mysqlpp.vcprojJPM4]UK/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_excommon.vcprojJPM4]UM/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2003/mysql++_multiquery.vcprojJPM4]UN/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_test_ssqls2.vcprojJPM4]UT/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2003/mysql++_test_insertpolicy.vcprojJPM4]U?/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2003/mysql++.slnJPM4]UO/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_test_qstream.vcprojJPM4]UK/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_store_if.vcprojJPM4]UQ/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_test_sqlstream.vcprojJPM4]US/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_test_array_index.vcprojJPM4]UJ/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_mysqlpp.vcprojJPM4]UW/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_test_null_comparison.vcprojJPM4]UJ/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2003/mysql++_simple1.vcprojJPM4]UJ/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2003/mysql++_tquery4.vcprojJPM4]UI/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_ssqls6.vcprojJPM4]UJ/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2003/mysql++_tquery3.vcprojJPM4]UK/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_cgi_jpeg.vcprojJPM4]UK/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2003/mysql++_test_wnp.vcprojJPM4]UJ/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2003/mysql++_tquery1.vcprojJPM4]UN/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2003/mysql++_ssqls2parse.vcprojJPM4]UK/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_for_each.vcprojJPM4]UL/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2003/mysql++_ssqlsxlat.vcprojJPM4]UK/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2003/mysql++_fieldinf.vcprojJPM4]UK/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_deadlock.vcprojJPM4]UJ/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2003/mysql++_simple3.vcprojJPM4]UI/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_ssqls3.vcprojJPM4]UI/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_ssqls1.vcprojJPM4]US/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2003/mysql++_test_array_index.vcprojJOM4]UJ/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_tquery1.vcprojJPM4]UJ/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_tquery4.vcprojJPM4]UM/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_test_manip.vcprojJPM4]UP/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_test_inttypes.vcprojJPM4]UK/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_fieldinf.vcprojJPM4]UK/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_for_each.vcprojJPM4]UL/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_ssqlsxlat.vcprojJPM4]UK/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2003/mysql++_test_uds.vcprojJPM4]UJ/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_simple3.vcprojJPM4]UK/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2003/mysql++_test_tcp.vcprojJPM4]UJ/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2003/mysql++_mysqlpp.vcprojJPM4]UK/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_excommon.vcprojJPM4]UN/usr/local/src/mysqlpp/release/mysql++-3.2.5/mysql++.xcodeproj/project.pbxprojJOM4]UK/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_test_uds.vcprojJPM4]UT/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_test_insertpolicy.vcprojJPM4]UM/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2003/mysql++_test_manip.vcprojJPM4]UP/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2003/mysql++_test_inttypes.vcprojJPM4]UI/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_ssqls6.vcprojJPM4]UK/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_deadlock.vcprojJPM4]UJ/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_simple3.vcprojJPM4]UN/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2005/mysql++_test_qssqls.vcprojJPM4]UK/usr/local/src/mysqlpp/release/mysql++-3.2.5/vc2008/mysql++_test_uds.vcprojJPM4]U/usr/local/src/mysqlpp/release/mysql++-3.2.5/mysql++.xcodeprojqas.mysql++-3.2.5/bk-deps000755 000765 000024 00000004730 13515046537 015107 0ustar00tangentstaff000000 000000 #!/bin/sh # This script is part of Bakefile (http://www.bakefile.org) autoconf # script. It is used to track C/C++ files dependencies in portable way. # # Permission is given to use this file in any way. DEPSMODE=gcc DEPSFLAG="-MMD" DEPSDIRBASE=.deps if test $DEPSMODE = gcc ; then $* ${DEPSFLAG} status=$? # determine location of created files: while test $# -gt 0; do case "$1" in -o ) shift objfile=$1 ;; -* ) ;; * ) srcfile=$1 ;; esac shift done objfilebase=`basename $objfile` builddir=`dirname $objfile` depfile=`basename $srcfile | sed -e 's/\..*$/.d/g'` depobjname=`echo $depfile |sed -e 's/\.d/.o/g'` depsdir=$builddir/$DEPSDIRBASE mkdir -p $depsdir # if the compiler failed, we're done: if test ${status} != 0 ; then rm -f $depfile exit ${status} fi # move created file to the location we want it in: if test -f $depfile ; then sed -e "s,$depobjname:,$objfile:,g" $depfile >${depsdir}/${objfilebase}.d rm -f $depfile else # "g++ -MMD -o fooobj.o foosrc.cpp" produces fooobj.d depfile=`echo "$objfile" | sed -e 's/\..*$/.d/g'` if test ! -f $depfile ; then # "cxx -MD -o fooobj.o foosrc.cpp" creates fooobj.o.d (Compaq C++) depfile="$objfile.d" fi if test -f $depfile ; then sed -e "\,^$objfile,!s,$depobjname:,$objfile:,g" $depfile >${depsdir}/${objfilebase}.d rm -f $depfile fi fi exit 0 elif test $DEPSMODE = unixcc; then $* || exit $? # Run compiler again with deps flag and redirect into the dep file. # It doesn't work if the '-o FILE' option is used, but without it the # dependency file will contain the wrong name for the object. So it is # removed from the command line, and the dep file is fixed with sed. cmd="" while test $# -gt 0; do case "$1" in -o ) shift objfile=$1 ;; * ) eval arg$#=\$1 cmd="$cmd \$arg$#" ;; esac shift done objfilebase=`basename $objfile` builddir=`dirname $objfile` depsdir=$builddir/$DEPSDIRBASE mkdir -p $depsdir eval "$cmd $DEPSFLAG" | sed "s|.*:|$objfile:|" >${depsdir}/${objfilebase}.d exit 0 else $* exit $? fi mysql++-3.2.5/mysql++.xcodeproj/000755 000765 000024 00000000000 13515046514 017112 5ustar00tangentstaff000000 000000 mysql++-3.2.5/dtest000755 000765 000024 00000004675 13515046514 014710 0ustar00tangentstaff000000 000000 #!/bin/bash TMP=`mktemp bmXXXXXX` # Run simple unit tests first. typeset -i count=0 echo -n 'Running unit tests:' for t in test_* do if [ -x "$t" ] then errmsg=`./exrun "$t" 2>&1` errno=$? if [ "$errno" = 0 ] then count=count+1 else rm -f $TMP echo " $t FAILED ($errno)" echo echo "$errmsg" exit $? fi fi done echo " $count tests succeeded" echo 'All unit tests passed' >> $TMP # Assume AUTO_INCREMENT id column in images table will get 1 in # load_jpeg call below, since we reset the DB before doing it. export QUERY_STRING=id=1 # Now run examples to test high-level behavior. The repeated use of # resetdb is intentional! It's run after each example that changes # the database in a way that will cause a subsequent example to fail # because data it expects isn't present. echo -n 'Running examples:' for t in \ resetdb simple[0-9] store_if for_each multiquery tquery1 \ resetdb tquery[2-9] \ resetdb ssqls[0-9] \ load_jpeg cgi_jpeg do if [ -x $t ] then if [ "$t" = "resetdb" ] then echo echo -n " " fi echo -n "$t " echo "---------------- BEGIN $t OUTPUT ----------------" >> $TMP if ! ./exrun $t -D $* >> $TMP then echo echo 'TESTING ABORTED.' rm -f $TMP exit $? fi echo "================ END $t OUTPUT ================" >> $TMP echo >> $TMP fi done echo # Test ssqlsxlat -o. Note that it suppresses stdout but keeps stderr # so warnings about directives and line elements it doesn't understand # aren't suppressed. We run the first pass's output back through # ssqlsxlat to deal with comments, whitespace differences, line element # ordering, boolean value and type canonicalization, and other niggly # differences we really don't care about. diff -w isn't enough. for f in {examples,test}/*.ssqls do echo -n "Testing ssqlsxlat -i $f -o..." echo "--- BEGIN ssqlsxlat -i $f -o ERROR OUTPUT ---" >> $TMP pass1=/tmp/dtest-ssxgv2-pass1-$bnf pass2=/tmp/dtest-ssxgv2-pass2-$bnf echo -n "pass 1" ./exrun ssqlsxlat -i $f -o $pass1 > /dev/null 2>> $TMP echo -n ", pass 2" ./exrun ssqlsxlat -i $pass1 -o $pass2 > /dev/null 2>> $TMP echo -n ", diff" diff $pass1 $pass2 > /dev/null >> $TMP echo "==== END ssqlsxlat -i $f -o ERROR OUTPUT ====" >> $TMP echo done # Check for any changes BFILE=bmark.txt if [ -f $BFILE ] then if diff -u -w $BFILE $TMP then echo echo 'All tests passed.' fi rm -f $TMP else mv $TMP $BFILE chmod -w $BFILE echo echo 'BENCHMARK FILE REGENERATED.' echo fi mysql++-3.2.5/Makefile.simple000644 000765 000024 00000051203 13515046514 016554 0ustar00tangentstaff000000 000000 # ========================================================================= # This makefile was generated by # Bakefile 0.2.11 (http://www.bakefile.org) # Do not modify, all changes will be overwritten! # ========================================================================= # ------------------------------------------------------------------------- # These are configurable options: # ------------------------------------------------------------------------- # AR ?= ar # RANLIB ?= ranlib # C++ compiler CXX = g++ # Standard flags for C++ CXXFLAGS ?= # Standard preprocessor flags (common for CC and CXX) CPPFLAGS ?= # Standard linker flags LDFLAGS ?= # Type of compiled binaries [debug,release] BUILD ?= debug # ------------------------------------------------------------------------- # Do not modify the rest of this file! # ------------------------------------------------------------------------- ### Variables: ### CPPDEPS = -MT$@ -MF`echo $@ | sed -e 's,\.o$$,.d,'` -MD -MP TEST_ARRAY_INDEX_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib \ -I@MYSQL_C_INC_DIR@ -I/usr/include/mysql -I/usr/include/mysql++ $(CPPFLAGS) \ $(CXXFLAGS) TEST_ARRAY_INDEX_OBJECTS = \ test_array_index_array_index.o TEST_CPOOL_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib \ -I@MYSQL_C_INC_DIR@ -I/usr/include/mysql -I/usr/include/mysql++ $(CPPFLAGS) \ $(CXXFLAGS) TEST_CPOOL_OBJECTS = \ test_cpool_cpool.o TEST_DATETIME_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib \ -I@MYSQL_C_INC_DIR@ -I/usr/include/mysql -I/usr/include/mysql++ $(CPPFLAGS) \ $(CXXFLAGS) TEST_DATETIME_OBJECTS = \ test_datetime_datetime.o TEST_INTTYPES_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib \ -I@MYSQL_C_INC_DIR@ -I/usr/include/mysql -I/usr/include/mysql++ $(CPPFLAGS) \ $(CXXFLAGS) TEST_INTTYPES_OBJECTS = \ test_inttypes_inttypes.o TEST_INSERTPOLICY_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib \ -I@MYSQL_C_INC_DIR@ -I/usr/include/mysql -I/usr/include/mysql++ $(CPPFLAGS) \ $(CXXFLAGS) TEST_INSERTPOLICY_OBJECTS = \ test_insertpolicy_insertpolicy.o TEST_MANIP_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib \ -I@MYSQL_C_INC_DIR@ -I/usr/include/mysql -I/usr/include/mysql++ $(CPPFLAGS) \ $(CXXFLAGS) TEST_MANIP_OBJECTS = \ test_manip_manip.o TEST_NULL_COMPARISON_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib \ -I@MYSQL_C_INC_DIR@ -I/usr/include/mysql -I/usr/include/mysql++ $(CPPFLAGS) \ $(CXXFLAGS) TEST_NULL_COMPARISON_OBJECTS = \ test_null_comparison_null_comparison.o TEST_QUERY_COPY_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib \ -I@MYSQL_C_INC_DIR@ -I/usr/include/mysql -I/usr/include/mysql++ $(CPPFLAGS) \ $(CXXFLAGS) TEST_QUERY_COPY_OBJECTS = \ test_query_copy_query_copy.o TEST_QSSQLS_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib \ -I@MYSQL_C_INC_DIR@ -I/usr/include/mysql -I/usr/include/mysql++ $(CPPFLAGS) \ $(CXXFLAGS) TEST_QSSQLS_OBJECTS = \ test_qssqls_qssqls.o TEST_QSTREAM_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib \ -I@MYSQL_C_INC_DIR@ -I/usr/include/mysql -I/usr/include/mysql++ $(CPPFLAGS) \ $(CXXFLAGS) TEST_QSTREAM_OBJECTS = \ test_qstream_qstream.o TEST_SQLSTREAM_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib \ -I@MYSQL_C_INC_DIR@ -I/usr/include/mysql -I/usr/include/mysql++ $(CPPFLAGS) \ $(CXXFLAGS) TEST_SQLSTREAM_OBJECTS = \ test_sqlstream_sqlstream.o TEST_STRING_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib \ -I@MYSQL_C_INC_DIR@ -I/usr/include/mysql -I/usr/include/mysql++ $(CPPFLAGS) \ $(CXXFLAGS) TEST_STRING_OBJECTS = \ test_string_string.o TEST_TCP_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib -I@MYSQL_C_INC_DIR@ \ -I/usr/include/mysql -I/usr/include/mysql++ $(CPPFLAGS) $(CXXFLAGS) TEST_TCP_OBJECTS = \ test_tcp_tcp.o TEST_UDS_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib -I@MYSQL_C_INC_DIR@ \ -I/usr/include/mysql -I/usr/include/mysql++ $(CPPFLAGS) $(CXXFLAGS) TEST_UDS_OBJECTS = \ test_uds_uds.o TEST_WNP_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib -I@MYSQL_C_INC_DIR@ \ -I/usr/include/mysql -I/usr/include/mysql++ $(CPPFLAGS) $(CXXFLAGS) TEST_WNP_OBJECTS = \ test_wnp_wnp.o EXCOMMON_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib -I@MYSQL_C_INC_DIR@ \ -I/usr/include/mysql -I/usr/include/mysql++ $(CPPFLAGS) $(CXXFLAGS) EXCOMMON_OBJECTS = \ excommon_printdata.o CGI_JPEG_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib -I@MYSQL_C_INC_DIR@ \ -I/usr/include/mysql -I/usr/include/mysql++ $(CPPFLAGS) $(CXXFLAGS) CGI_JPEG_OBJECTS = \ cgi_jpeg_cgi_jpeg.o CPOOL_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib -I@MYSQL_C_INC_DIR@ \ -I/usr/include/mysql -I/usr/include/mysql++ $(CPPFLAGS) $(CXXFLAGS) CPOOL_OBJECTS = \ cpool_cpool.o DBINFO_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib -I@MYSQL_C_INC_DIR@ \ -I/usr/include/mysql -I/usr/include/mysql++ $(CPPFLAGS) $(CXXFLAGS) DBINFO_OBJECTS = \ dbinfo_dbinfo.o DEADLOCK_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib -I@MYSQL_C_INC_DIR@ \ -I/usr/include/mysql -I/usr/include/mysql++ $(CPPFLAGS) $(CXXFLAGS) DEADLOCK_OBJECTS = \ deadlock_deadlock.o FIELDINF_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib -I@MYSQL_C_INC_DIR@ \ -I/usr/include/mysql -I/usr/include/mysql++ $(CPPFLAGS) $(CXXFLAGS) FIELDINF_OBJECTS = \ fieldinf_fieldinf.o FOR_EACH_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib -I@MYSQL_C_INC_DIR@ \ -I/usr/include/mysql -I/usr/include/mysql++ $(CPPFLAGS) $(CXXFLAGS) FOR_EACH_OBJECTS = \ for_each_for_each.o LOAD_JPEG_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib \ -I@MYSQL_C_INC_DIR@ -I/usr/include/mysql -I/usr/include/mysql++ $(CPPFLAGS) \ $(CXXFLAGS) LOAD_JPEG_OBJECTS = \ load_jpeg_load_jpeg.o MULTIQUERY_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib \ -I@MYSQL_C_INC_DIR@ -I/usr/include/mysql -I/usr/include/mysql++ $(CPPFLAGS) \ $(CXXFLAGS) MULTIQUERY_OBJECTS = \ multiquery_multiquery.o RESETDB_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib -I@MYSQL_C_INC_DIR@ \ -I/usr/include/mysql -I/usr/include/mysql++ $(CPPFLAGS) $(CXXFLAGS) RESETDB_OBJECTS = \ resetdb_resetdb.o SIMPLE1_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib -I@MYSQL_C_INC_DIR@ \ -I/usr/include/mysql -I/usr/include/mysql++ $(CPPFLAGS) $(CXXFLAGS) SIMPLE1_OBJECTS = \ simple1_simple1.o SIMPLE2_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib -I@MYSQL_C_INC_DIR@ \ -I/usr/include/mysql -I/usr/include/mysql++ $(CPPFLAGS) $(CXXFLAGS) SIMPLE2_OBJECTS = \ simple2_simple2.o SIMPLE3_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib -I@MYSQL_C_INC_DIR@ \ -I/usr/include/mysql -I/usr/include/mysql++ $(CPPFLAGS) $(CXXFLAGS) SIMPLE3_OBJECTS = \ simple3_simple3.o SSQLS1_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib -I@MYSQL_C_INC_DIR@ \ -I/usr/include/mysql -I/usr/include/mysql++ $(CPPFLAGS) $(CXXFLAGS) SSQLS1_OBJECTS = \ ssqls1_ssqls1.o SSQLS2_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib -I@MYSQL_C_INC_DIR@ \ -I/usr/include/mysql -I/usr/include/mysql++ $(CPPFLAGS) $(CXXFLAGS) SSQLS2_OBJECTS = \ ssqls2_ssqls2.o SSQLS3_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib -I@MYSQL_C_INC_DIR@ \ -I/usr/include/mysql -I/usr/include/mysql++ $(CPPFLAGS) $(CXXFLAGS) SSQLS3_OBJECTS = \ ssqls3_ssqls3.o SSQLS4_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib -I@MYSQL_C_INC_DIR@ \ -I/usr/include/mysql -I/usr/include/mysql++ $(CPPFLAGS) $(CXXFLAGS) SSQLS4_OBJECTS = \ ssqls4_ssqls4.o SSQLS5_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib -I@MYSQL_C_INC_DIR@ \ -I/usr/include/mysql -I/usr/include/mysql++ $(CPPFLAGS) $(CXXFLAGS) SSQLS5_OBJECTS = \ ssqls5_ssqls5.o SSQLS6_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib -I@MYSQL_C_INC_DIR@ \ -I/usr/include/mysql -I/usr/include/mysql++ $(CPPFLAGS) $(CXXFLAGS) SSQLS6_OBJECTS = \ ssqls6_ssqls6.o STORE_IF_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib -I@MYSQL_C_INC_DIR@ \ -I/usr/include/mysql -I/usr/include/mysql++ $(CPPFLAGS) $(CXXFLAGS) STORE_IF_OBJECTS = \ store_if_store_if.o TQUERY1_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib -I@MYSQL_C_INC_DIR@ \ -I/usr/include/mysql -I/usr/include/mysql++ $(CPPFLAGS) $(CXXFLAGS) TQUERY1_OBJECTS = \ tquery1_tquery1.o TQUERY2_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib -I@MYSQL_C_INC_DIR@ \ -I/usr/include/mysql -I/usr/include/mysql++ $(CPPFLAGS) $(CXXFLAGS) TQUERY2_OBJECTS = \ tquery2_tquery2.o TQUERY3_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib -I@MYSQL_C_INC_DIR@ \ -I/usr/include/mysql -I/usr/include/mysql++ $(CPPFLAGS) $(CXXFLAGS) TQUERY3_OBJECTS = \ tquery3_tquery3.o TQUERY4_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib -I@MYSQL_C_INC_DIR@ \ -I/usr/include/mysql -I/usr/include/mysql++ $(CPPFLAGS) $(CXXFLAGS) TQUERY4_OBJECTS = \ tquery4_tquery4.o TRANSACTION_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZE_FLAG) -Ilib \ -I@MYSQL_C_INC_DIR@ -I/usr/include/mysql -I/usr/include/mysql++ $(CPPFLAGS) \ $(CXXFLAGS) TRANSACTION_OBJECTS = \ transaction_transaction.o ### Conditionally set variables: ### ifeq ($(BUILD),debug) __OPTIMIZE_FLAG = -O0 endif ifeq ($(BUILD),release) __OPTIMIZE_FLAG = -O2 endif ifeq ($(BUILD),debug) __DEBUGINFO = -g endif ifeq ($(BUILD),release) __DEBUGINFO = endif ### Targets: ### all: test_array_index test_cpool test_datetime test_inttypes test_insertpolicy test_manip test_null_comparison test_query_copy test_qssqls test_qstream test_sqlstream test_string test_tcp test_uds test_wnp libmysqlpp_excommon.a cgi_jpeg cpool dbinfo deadlock fieldinf for_each load_jpeg multiquery resetdb simple1 simple2 simple3 ssqls1 ssqls2 ssqls3 ssqls4 ssqls5 ssqls6 store_if tquery1 tquery2 tquery3 tquery4 transaction install: uninstall: clean: rm -f ./*.o rm -f ./*.d rm -f test_array_index rm -f test_cpool rm -f test_datetime rm -f test_inttypes rm -f test_insertpolicy rm -f test_manip rm -f test_null_comparison rm -f test_query_copy rm -f test_qssqls rm -f test_qstream rm -f test_sqlstream rm -f test_string rm -f test_tcp rm -f test_uds rm -f test_wnp rm -f libmysqlpp_excommon.a rm -f cgi_jpeg rm -f cpool rm -f dbinfo rm -f deadlock rm -f fieldinf rm -f for_each rm -f load_jpeg rm -f multiquery rm -f resetdb rm -f simple1 rm -f simple2 rm -f simple3 rm -f ssqls1 rm -f ssqls2 rm -f ssqls3 rm -f ssqls4 rm -f ssqls5 rm -f ssqls6 rm -f store_if rm -f tquery1 rm -f tquery2 rm -f tquery3 rm -f tquery4 rm -f transaction test_array_index: $(TEST_ARRAY_INDEX_OBJECTS) $(CXX) -o $@ $(TEST_ARRAY_INDEX_OBJECTS) $(__DEBUGINFO) -L@MYSQL_C_LIB_DIR@ -L. $(LDFLAGS) -lmysqlpp -lmysqlclient test_cpool: $(TEST_CPOOL_OBJECTS) $(CXX) -o $@ $(TEST_CPOOL_OBJECTS) $(__DEBUGINFO) -L@MYSQL_C_LIB_DIR@ -L. $(LDFLAGS) -lmysqlpp -lmysqlclient test_datetime: $(TEST_DATETIME_OBJECTS) $(CXX) -o $@ $(TEST_DATETIME_OBJECTS) $(__DEBUGINFO) -L@MYSQL_C_LIB_DIR@ -L. $(LDFLAGS) -lmysqlpp -lmysqlclient test_inttypes: $(TEST_INTTYPES_OBJECTS) $(CXX) -o $@ $(TEST_INTTYPES_OBJECTS) $(__DEBUGINFO) -L@MYSQL_C_LIB_DIR@ -L. $(LDFLAGS) -lmysqlpp -lmysqlclient test_insertpolicy: $(TEST_INSERTPOLICY_OBJECTS) $(CXX) -o $@ $(TEST_INSERTPOLICY_OBJECTS) $(__DEBUGINFO) -L@MYSQL_C_LIB_DIR@ -L. $(LDFLAGS) -lmysqlpp -lmysqlclient test_manip: $(TEST_MANIP_OBJECTS) $(CXX) -o $@ $(TEST_MANIP_OBJECTS) $(__DEBUGINFO) -L@MYSQL_C_LIB_DIR@ -L. $(LDFLAGS) -lmysqlpp -lmysqlclient test_null_comparison: $(TEST_NULL_COMPARISON_OBJECTS) $(CXX) -o $@ $(TEST_NULL_COMPARISON_OBJECTS) $(__DEBUGINFO) -L@MYSQL_C_LIB_DIR@ -L. $(LDFLAGS) -lmysqlpp -lmysqlclient test_query_copy: $(TEST_QUERY_COPY_OBJECTS) $(CXX) -o $@ $(TEST_QUERY_COPY_OBJECTS) $(__DEBUGINFO) -L@MYSQL_C_LIB_DIR@ -L. $(LDFLAGS) -lmysqlpp -lmysqlclient test_qssqls: $(TEST_QSSQLS_OBJECTS) $(CXX) -o $@ $(TEST_QSSQLS_OBJECTS) $(__DEBUGINFO) -L@MYSQL_C_LIB_DIR@ -L. $(LDFLAGS) -lmysqlpp -lmysqlclient test_qstream: $(TEST_QSTREAM_OBJECTS) $(CXX) -o $@ $(TEST_QSTREAM_OBJECTS) $(__DEBUGINFO) -L@MYSQL_C_LIB_DIR@ -L. $(LDFLAGS) -lmysqlpp -lmysqlclient test_sqlstream: $(TEST_SQLSTREAM_OBJECTS) $(CXX) -o $@ $(TEST_SQLSTREAM_OBJECTS) $(__DEBUGINFO) -L@MYSQL_C_LIB_DIR@ -L. $(LDFLAGS) -lmysqlpp -lmysqlclient test_string: $(TEST_STRING_OBJECTS) $(CXX) -o $@ $(TEST_STRING_OBJECTS) $(__DEBUGINFO) -L@MYSQL_C_LIB_DIR@ -L. $(LDFLAGS) -lmysqlpp -lmysqlclient test_tcp: $(TEST_TCP_OBJECTS) $(CXX) -o $@ $(TEST_TCP_OBJECTS) $(__DEBUGINFO) -L@MYSQL_C_LIB_DIR@ -L. $(LDFLAGS) -lmysqlpp -lmysqlclient test_uds: $(TEST_UDS_OBJECTS) $(CXX) -o $@ $(TEST_UDS_OBJECTS) $(__DEBUGINFO) -L@MYSQL_C_LIB_DIR@ -L. $(LDFLAGS) -lmysqlpp -lmysqlclient test_wnp: $(TEST_WNP_OBJECTS) $(CXX) -o $@ $(TEST_WNP_OBJECTS) $(__DEBUGINFO) -L@MYSQL_C_LIB_DIR@ -L. $(LDFLAGS) -lmysqlpp -lmysqlclient libmysqlpp_excommon.a: $(EXCOMMON_OBJECTS) rm -f $@ $(AR) rcu $@ $(EXCOMMON_OBJECTS) $(RANLIB) $@ cgi_jpeg: $(CGI_JPEG_OBJECTS) libmysqlpp_excommon.a $(CXX) -o $@ $(CGI_JPEG_OBJECTS) $(__DEBUGINFO) -L@MYSQL_C_LIB_DIR@ -L. $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp -lmysqlclient cpool: $(CPOOL_OBJECTS) libmysqlpp_excommon.a $(CXX) -o $@ $(CPOOL_OBJECTS) $(__DEBUGINFO) -L@MYSQL_C_LIB_DIR@ -L. $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp -lmysqlclient dbinfo: $(DBINFO_OBJECTS) libmysqlpp_excommon.a $(CXX) -o $@ $(DBINFO_OBJECTS) $(__DEBUGINFO) -L@MYSQL_C_LIB_DIR@ -L. $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp -lmysqlclient deadlock: $(DEADLOCK_OBJECTS) libmysqlpp_excommon.a $(CXX) -o $@ $(DEADLOCK_OBJECTS) $(__DEBUGINFO) -L@MYSQL_C_LIB_DIR@ -L. $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp -lmysqlclient fieldinf: $(FIELDINF_OBJECTS) libmysqlpp_excommon.a $(CXX) -o $@ $(FIELDINF_OBJECTS) $(__DEBUGINFO) -L@MYSQL_C_LIB_DIR@ -L. $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp -lmysqlclient for_each: $(FOR_EACH_OBJECTS) libmysqlpp_excommon.a $(CXX) -o $@ $(FOR_EACH_OBJECTS) $(__DEBUGINFO) -L@MYSQL_C_LIB_DIR@ -L. $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp -lmysqlclient load_jpeg: $(LOAD_JPEG_OBJECTS) libmysqlpp_excommon.a $(CXX) -o $@ $(LOAD_JPEG_OBJECTS) $(__DEBUGINFO) -L@MYSQL_C_LIB_DIR@ -L. $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp -lmysqlclient multiquery: $(MULTIQUERY_OBJECTS) libmysqlpp_excommon.a $(CXX) -o $@ $(MULTIQUERY_OBJECTS) $(__DEBUGINFO) -L@MYSQL_C_LIB_DIR@ -L. $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp -lmysqlclient resetdb: $(RESETDB_OBJECTS) libmysqlpp_excommon.a $(CXX) -o $@ $(RESETDB_OBJECTS) $(__DEBUGINFO) -L@MYSQL_C_LIB_DIR@ -L. $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp -lmysqlclient simple1: $(SIMPLE1_OBJECTS) libmysqlpp_excommon.a $(CXX) -o $@ $(SIMPLE1_OBJECTS) $(__DEBUGINFO) -L@MYSQL_C_LIB_DIR@ -L. $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp -lmysqlclient simple2: $(SIMPLE2_OBJECTS) libmysqlpp_excommon.a $(CXX) -o $@ $(SIMPLE2_OBJECTS) $(__DEBUGINFO) -L@MYSQL_C_LIB_DIR@ -L. $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp -lmysqlclient simple3: $(SIMPLE3_OBJECTS) libmysqlpp_excommon.a $(CXX) -o $@ $(SIMPLE3_OBJECTS) $(__DEBUGINFO) -L@MYSQL_C_LIB_DIR@ -L. $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp -lmysqlclient ssqls1: $(SSQLS1_OBJECTS) libmysqlpp_excommon.a $(CXX) -o $@ $(SSQLS1_OBJECTS) $(__DEBUGINFO) -L@MYSQL_C_LIB_DIR@ -L. $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp -lmysqlclient ssqls2: $(SSQLS2_OBJECTS) libmysqlpp_excommon.a $(CXX) -o $@ $(SSQLS2_OBJECTS) $(__DEBUGINFO) -L@MYSQL_C_LIB_DIR@ -L. $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp -lmysqlclient ssqls3: $(SSQLS3_OBJECTS) libmysqlpp_excommon.a $(CXX) -o $@ $(SSQLS3_OBJECTS) $(__DEBUGINFO) -L@MYSQL_C_LIB_DIR@ -L. $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp -lmysqlclient ssqls4: $(SSQLS4_OBJECTS) libmysqlpp_excommon.a $(CXX) -o $@ $(SSQLS4_OBJECTS) $(__DEBUGINFO) -L@MYSQL_C_LIB_DIR@ -L. $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp -lmysqlclient ssqls5: $(SSQLS5_OBJECTS) libmysqlpp_excommon.a $(CXX) -o $@ $(SSQLS5_OBJECTS) $(__DEBUGINFO) -L@MYSQL_C_LIB_DIR@ -L. $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp -lmysqlclient ssqls6: $(SSQLS6_OBJECTS) libmysqlpp_excommon.a $(CXX) -o $@ $(SSQLS6_OBJECTS) $(__DEBUGINFO) -L@MYSQL_C_LIB_DIR@ -L. $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp -lmysqlclient store_if: $(STORE_IF_OBJECTS) libmysqlpp_excommon.a $(CXX) -o $@ $(STORE_IF_OBJECTS) $(__DEBUGINFO) -L@MYSQL_C_LIB_DIR@ -L. $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp -lmysqlclient tquery1: $(TQUERY1_OBJECTS) libmysqlpp_excommon.a $(CXX) -o $@ $(TQUERY1_OBJECTS) $(__DEBUGINFO) -L@MYSQL_C_LIB_DIR@ -L. $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp -lmysqlclient tquery2: $(TQUERY2_OBJECTS) libmysqlpp_excommon.a $(CXX) -o $@ $(TQUERY2_OBJECTS) $(__DEBUGINFO) -L@MYSQL_C_LIB_DIR@ -L. $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp -lmysqlclient tquery3: $(TQUERY3_OBJECTS) libmysqlpp_excommon.a $(CXX) -o $@ $(TQUERY3_OBJECTS) $(__DEBUGINFO) -L@MYSQL_C_LIB_DIR@ -L. $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp -lmysqlclient tquery4: $(TQUERY4_OBJECTS) libmysqlpp_excommon.a $(CXX) -o $@ $(TQUERY4_OBJECTS) $(__DEBUGINFO) -L@MYSQL_C_LIB_DIR@ -L. $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp -lmysqlclient transaction: $(TRANSACTION_OBJECTS) libmysqlpp_excommon.a $(CXX) -o $@ $(TRANSACTION_OBJECTS) $(__DEBUGINFO) -L@MYSQL_C_LIB_DIR@ -L. $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp -lmysqlclient test_array_index_array_index.o: ./test/array_index.cpp $(CXX) -c -o $@ $(TEST_ARRAY_INDEX_CXXFLAGS) $(CPPDEPS) $< test_cpool_cpool.o: ./test/cpool.cpp $(CXX) -c -o $@ $(TEST_CPOOL_CXXFLAGS) $(CPPDEPS) $< test_datetime_datetime.o: ./test/datetime.cpp $(CXX) -c -o $@ $(TEST_DATETIME_CXXFLAGS) $(CPPDEPS) $< test_inttypes_inttypes.o: ./test/inttypes.cpp $(CXX) -c -o $@ $(TEST_INTTYPES_CXXFLAGS) $(CPPDEPS) $< test_insertpolicy_insertpolicy.o: ./test/insertpolicy.cpp $(CXX) -c -o $@ $(TEST_INSERTPOLICY_CXXFLAGS) $(CPPDEPS) $< test_manip_manip.o: ./test/manip.cpp $(CXX) -c -o $@ $(TEST_MANIP_CXXFLAGS) $(CPPDEPS) $< test_null_comparison_null_comparison.o: ./test/null_comparison.cpp $(CXX) -c -o $@ $(TEST_NULL_COMPARISON_CXXFLAGS) $(CPPDEPS) $< test_query_copy_query_copy.o: ./test/query_copy.cpp $(CXX) -c -o $@ $(TEST_QUERY_COPY_CXXFLAGS) $(CPPDEPS) $< test_qssqls_qssqls.o: ./test/qssqls.cpp $(CXX) -c -o $@ $(TEST_QSSQLS_CXXFLAGS) $(CPPDEPS) $< test_qstream_qstream.o: ./test/qstream.cpp $(CXX) -c -o $@ $(TEST_QSTREAM_CXXFLAGS) $(CPPDEPS) $< test_sqlstream_sqlstream.o: ./test/sqlstream.cpp $(CXX) -c -o $@ $(TEST_SQLSTREAM_CXXFLAGS) $(CPPDEPS) $< test_string_string.o: ./test/string.cpp $(CXX) -c -o $@ $(TEST_STRING_CXXFLAGS) $(CPPDEPS) $< test_tcp_tcp.o: ./test/tcp.cpp $(CXX) -c -o $@ $(TEST_TCP_CXXFLAGS) $(CPPDEPS) $< test_uds_uds.o: ./test/uds.cpp $(CXX) -c -o $@ $(TEST_UDS_CXXFLAGS) $(CPPDEPS) $< test_wnp_wnp.o: ./test/wnp.cpp $(CXX) -c -o $@ $(TEST_WNP_CXXFLAGS) $(CPPDEPS) $< excommon_printdata.o: ./examples/printdata.cpp $(CXX) -c -o $@ $(EXCOMMON_CXXFLAGS) $(CPPDEPS) $< cgi_jpeg_cgi_jpeg.o: ./examples/cgi_jpeg.cpp $(CXX) -c -o $@ $(CGI_JPEG_CXXFLAGS) $(CPPDEPS) $< cpool_cpool.o: ./examples/cpool.cpp $(CXX) -c -o $@ $(CPOOL_CXXFLAGS) $(CPPDEPS) $< dbinfo_dbinfo.o: ./examples/dbinfo.cpp $(CXX) -c -o $@ $(DBINFO_CXXFLAGS) $(CPPDEPS) $< deadlock_deadlock.o: ./examples/deadlock.cpp $(CXX) -c -o $@ $(DEADLOCK_CXXFLAGS) $(CPPDEPS) $< fieldinf_fieldinf.o: ./examples/fieldinf.cpp $(CXX) -c -o $@ $(FIELDINF_CXXFLAGS) $(CPPDEPS) $< for_each_for_each.o: ./examples/for_each.cpp $(CXX) -c -o $@ $(FOR_EACH_CXXFLAGS) $(CPPDEPS) $< load_jpeg_load_jpeg.o: ./examples/load_jpeg.cpp $(CXX) -c -o $@ $(LOAD_JPEG_CXXFLAGS) $(CPPDEPS) $< multiquery_multiquery.o: ./examples/multiquery.cpp $(CXX) -c -o $@ $(MULTIQUERY_CXXFLAGS) $(CPPDEPS) $< resetdb_resetdb.o: ./examples/resetdb.cpp $(CXX) -c -o $@ $(RESETDB_CXXFLAGS) $(CPPDEPS) $< simple1_simple1.o: ./examples/simple1.cpp $(CXX) -c -o $@ $(SIMPLE1_CXXFLAGS) $(CPPDEPS) $< simple2_simple2.o: ./examples/simple2.cpp $(CXX) -c -o $@ $(SIMPLE2_CXXFLAGS) $(CPPDEPS) $< simple3_simple3.o: ./examples/simple3.cpp $(CXX) -c -o $@ $(SIMPLE3_CXXFLAGS) $(CPPDEPS) $< ssqls1_ssqls1.o: ./examples/ssqls1.cpp $(CXX) -c -o $@ $(SSQLS1_CXXFLAGS) $(CPPDEPS) $< ssqls2_ssqls2.o: ./examples/ssqls2.cpp $(CXX) -c -o $@ $(SSQLS2_CXXFLAGS) $(CPPDEPS) $< ssqls3_ssqls3.o: ./examples/ssqls3.cpp $(CXX) -c -o $@ $(SSQLS3_CXXFLAGS) $(CPPDEPS) $< ssqls4_ssqls4.o: ./examples/ssqls4.cpp $(CXX) -c -o $@ $(SSQLS4_CXXFLAGS) $(CPPDEPS) $< ssqls5_ssqls5.o: ./examples/ssqls5.cpp $(CXX) -c -o $@ $(SSQLS5_CXXFLAGS) $(CPPDEPS) $< ssqls6_ssqls6.o: ./examples/ssqls6.cpp $(CXX) -c -o $@ $(SSQLS6_CXXFLAGS) $(CPPDEPS) $< store_if_store_if.o: ./examples/store_if.cpp $(CXX) -c -o $@ $(STORE_IF_CXXFLAGS) $(CPPDEPS) $< tquery1_tquery1.o: ./examples/tquery1.cpp $(CXX) -c -o $@ $(TQUERY1_CXXFLAGS) $(CPPDEPS) $< tquery2_tquery2.o: ./examples/tquery2.cpp $(CXX) -c -o $@ $(TQUERY2_CXXFLAGS) $(CPPDEPS) $< tquery3_tquery3.o: ./examples/tquery3.cpp $(CXX) -c -o $@ $(TQUERY3_CXXFLAGS) $(CPPDEPS) $< tquery4_tquery4.o: ./examples/tquery4.cpp $(CXX) -c -o $@ $(TQUERY4_CXXFLAGS) $(CPPDEPS) $< transaction_transaction.o: ./examples/transaction.cpp $(CXX) -c -o $@ $(TRANSACTION_CXXFLAGS) $(CPPDEPS) $< .PHONY: all install uninstall clean # Dependencies tracking: -include ./*.d mysql++-3.2.5/config.sub000755 000765 000024 00000106455 13515046514 015621 0ustar00tangentstaff000000 000000 #! /bin/sh # Configuration validation subroutine script. # Copyright 1992-2018 Free Software Foundation, Inc. timestamp='2018-03-08' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, see . # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that # program. This Exception is an additional permission under section 7 # of the GNU General Public License, version 3 ("GPLv3"). # Please send patches to . # # Configuration subroutine to validate and canonicalize a configuration type. # Supply the specified configuration type as an argument. # If it is invalid, we print an error message on stderr and exit with code 1. # Otherwise, we print the canonical config type on stdout and succeed. # You can get the latest version of this script from: # https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub # This file is supposed to be the same for all GNU packages # and recognize all the CPU types, system types and aliases # that are meaningful with *any* GNU software. # Each package is responsible for reporting which valid configurations # it does not support. The user should be able to distinguish # a failure to support a valid configuration from a meaningless # configuration. # The goal of this file is to map all the various variations of a given # machine specification into a single specification in the form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM # or in some cases, the newer four-part form: # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM # It is wrong to echo any other type of specification. me=`echo "$0" | sed -e 's,.*/,,'` usage="\ Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS Canonicalize a configuration name. Options: -h, --help print this help, then exit -t, --time-stamp print date of last modification, then exit -v, --version print version number, then exit Report bugs and patches to ." version="\ GNU config.sub ($timestamp) Copyright 1992-2018 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help=" Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do case $1 in --time-stamp | --time* | -t ) echo "$timestamp" ; exit ;; --version | -v ) echo "$version" ; exit ;; --help | --h* | -h ) echo "$usage"; exit ;; -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. break ;; -* ) echo "$me: invalid option $1$help" exit 1 ;; *local*) # First pass through any local machine types. echo "$1" exit ;; * ) break ;; esac done case $# in 0) echo "$me: missing argument$help" >&2 exit 1;; 1) ;; *) echo "$me: too many arguments$help" >&2 exit 1;; esac # Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). # Here we must recognize all the valid KERNEL-OS combinations. maybe_os=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` case $maybe_os in nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ kopensolaris*-gnu* | cloudabi*-eabi* | \ storm-chaos* | os2-emx* | rtmk-nova*) os=-$maybe_os basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` ;; android-linux) os=-linux-android basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown ;; *) basic_machine=`echo "$1" | sed 's/-[^-]*$//'` if [ "$basic_machine" != "$1" ] then os=`echo "$1" | sed 's/.*-/-/'` else os=; fi ;; esac ### Let's recognize common machines as not being operating systems so ### that things like config.sub decstation-3100 work. We also ### recognize some manufacturers as not being operating systems, so we ### can provide default operating systems below. case $os in -sun*os*) # Prevent following clause from handling this invalid input. ;; -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -apple | -axis | -knuth | -cray | -microblaze*) os= basic_machine=$1 ;; -bluegene*) os=-cnk ;; -sim | -cisco | -oki | -wec | -winbond) os= basic_machine=$1 ;; -scout) ;; -wrs) os=-vxworks basic_machine=$1 ;; -chorusos*) os=-chorusos basic_machine=$1 ;; -chorusrdb) os=-chorusrdb basic_machine=$1 ;; -hiux*) os=-hiuxwe2 ;; -sco6) os=-sco5v6 basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -sco5) os=-sco3.2v5 basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -sco4) os=-sco3.2v4 basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -sco3.2.[4-9]*) os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -sco3.2v[4-9]*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -sco5v6*) # Don't forget version if it is 3.2v4 or newer. basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -sco*) os=-sco3.2v2 basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -udk*) basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -isc) os=-isc2.2 basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -clix*) basic_machine=clipper-intergraph ;; -isc*) basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` ;; -lynx*178) os=-lynxos178 ;; -lynx*5) os=-lynxos5 ;; -lynx*) os=-lynxos ;; -ptx*) basic_machine=`echo "$1" | sed -e 's/86-.*/86-sequent/'` ;; -psos*) os=-psos ;; -mint | -mint[0-9]*) basic_machine=m68k-atari os=-mint ;; esac # Decode aliases for certain CPU-COMPANY combinations. case $basic_machine in # Recognize the basic CPU types without company name. # Some are omitted here because they have special meanings below. 1750a | 580 \ | a29k \ | aarch64 | aarch64_be \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ | am33_2.0 \ | arc | arceb \ | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ | avr | avr32 \ | ba \ | be32 | be64 \ | bfin \ | c4x | c8051 | clipper \ | d10v | d30v | dlx | dsp16xx \ | e2k | epiphany \ | fido | fr30 | frv | ft32 \ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | hexagon \ | i370 | i860 | i960 | ia16 | ia64 \ | ip2k | iq2000 \ | k1om \ | le32 | le64 \ | lm32 \ | m32c | m32r | m32rle | m68000 | m68k | m88k \ | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ | mips | mipsbe | mipseb | mipsel | mipsle \ | mips16 \ | mips64 | mips64el \ | mips64octeon | mips64octeonel \ | mips64orion | mips64orionel \ | mips64r5900 | mips64r5900el \ | mips64vr | mips64vrel \ | mips64vr4100 | mips64vr4100el \ | mips64vr4300 | mips64vr4300el \ | mips64vr5000 | mips64vr5000el \ | mips64vr5900 | mips64vr5900el \ | mipsisa32 | mipsisa32el \ | mipsisa32r2 | mipsisa32r2el \ | mipsisa32r6 | mipsisa32r6el \ | mipsisa64 | mipsisa64el \ | mipsisa64r2 | mipsisa64r2el \ | mipsisa64r6 | mipsisa64r6el \ | mipsisa64sb1 | mipsisa64sb1el \ | mipsisa64sr71k | mipsisa64sr71kel \ | mipsr5900 | mipsr5900el \ | mipstx39 | mipstx39el \ | mn10200 | mn10300 \ | moxie \ | mt \ | msp430 \ | nds32 | nds32le | nds32be \ | nios | nios2 | nios2eb | nios2el \ | ns16k | ns32k \ | open8 | or1k | or1knd | or32 \ | pdp10 | pj | pjl \ | powerpc | powerpc64 | powerpc64le | powerpcle \ | pru \ | pyramid \ | riscv32 | riscv64 \ | rl78 | rx \ | score \ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ | sh64 | sh64le \ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ | spu \ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ | ubicom32 \ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ | visium \ | wasm32 \ | x86 | xc16x | xstormy16 | xtensa \ | z8k | z80) basic_machine=$basic_machine-unknown ;; c54x) basic_machine=tic54x-unknown ;; c55x) basic_machine=tic55x-unknown ;; c6x) basic_machine=tic6x-unknown ;; leon|leon[3-9]) basic_machine=sparc-$basic_machine ;; m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) basic_machine=$basic_machine-unknown os=-none ;; m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65) ;; ms1) basic_machine=mt-unknown ;; strongarm | thumb | xscale) basic_machine=arm-unknown ;; xgate) basic_machine=$basic_machine-unknown os=-none ;; xscaleeb) basic_machine=armeb-unknown ;; xscaleel) basic_machine=armel-unknown ;; # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64) basic_machine=$basic_machine-pc ;; # Object if more than one company name word. *-*-*) echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2 exit 1 ;; # Recognize the basic CPU types with company name. 580-* \ | a29k-* \ | aarch64-* | aarch64_be-* \ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ | avr-* | avr32-* \ | ba-* \ | be32-* | be64-* \ | bfin-* | bs2000-* \ | c[123]* | c30-* | [cjt]90-* | c4x-* \ | c8051-* | clipper-* | craynv-* | cydra-* \ | d10v-* | d30v-* | dlx-* \ | e2k-* | elxsi-* \ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ | h8300-* | h8500-* \ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ | hexagon-* \ | i*86-* | i860-* | i960-* | ia16-* | ia64-* \ | ip2k-* | iq2000-* \ | k1om-* \ | le32-* | le64-* \ | lm32-* \ | m32c-* | m32r-* | m32rle-* \ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ | microblaze-* | microblazeel-* \ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ | mips16-* \ | mips64-* | mips64el-* \ | mips64octeon-* | mips64octeonel-* \ | mips64orion-* | mips64orionel-* \ | mips64r5900-* | mips64r5900el-* \ | mips64vr-* | mips64vrel-* \ | mips64vr4100-* | mips64vr4100el-* \ | mips64vr4300-* | mips64vr4300el-* \ | mips64vr5000-* | mips64vr5000el-* \ | mips64vr5900-* | mips64vr5900el-* \ | mipsisa32-* | mipsisa32el-* \ | mipsisa32r2-* | mipsisa32r2el-* \ | mipsisa32r6-* | mipsisa32r6el-* \ | mipsisa64-* | mipsisa64el-* \ | mipsisa64r2-* | mipsisa64r2el-* \ | mipsisa64r6-* | mipsisa64r6el-* \ | mipsisa64sb1-* | mipsisa64sb1el-* \ | mipsisa64sr71k-* | mipsisa64sr71kel-* \ | mipsr5900-* | mipsr5900el-* \ | mipstx39-* | mipstx39el-* \ | mmix-* \ | mt-* \ | msp430-* \ | nds32-* | nds32le-* | nds32be-* \ | nios-* | nios2-* | nios2eb-* | nios2el-* \ | none-* | np1-* | ns16k-* | ns32k-* \ | open8-* \ | or1k*-* \ | orion-* \ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ | pru-* \ | pyramid-* \ | riscv32-* | riscv64-* \ | rl78-* | romp-* | rs6000-* | rx-* \ | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ | sparclite-* \ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \ | tahoe-* \ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ | tile*-* \ | tron-* \ | ubicom32-* \ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ | vax-* \ | visium-* \ | wasm32-* \ | we32k-* \ | x86-* | x86_64-* | xc16x-* | xps100-* \ | xstormy16-* | xtensa*-* \ | ymp-* \ | z8k-* | z80-*) ;; # Recognize the basic CPU types without company name, with glob match. xtensa*) basic_machine=$basic_machine-unknown ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. 386bsd) basic_machine=i386-pc os=-bsd ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) basic_machine=m68000-att ;; 3b*) basic_machine=we32k-att ;; a29khif) basic_machine=a29k-amd os=-udi ;; abacus) basic_machine=abacus-unknown ;; adobe68k) basic_machine=m68010-adobe os=-scout ;; alliant | fx80) basic_machine=fx80-alliant ;; altos | altos3068) basic_machine=m68k-altos ;; am29k) basic_machine=a29k-none os=-bsd ;; amd64) basic_machine=x86_64-pc ;; amd64-*) basic_machine=x86_64-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; amdahl) basic_machine=580-amdahl os=-sysv ;; amiga | amiga-*) basic_machine=m68k-unknown ;; amigaos | amigados) basic_machine=m68k-unknown os=-amigaos ;; amigaunix | amix) basic_machine=m68k-unknown os=-sysv4 ;; apollo68) basic_machine=m68k-apollo os=-sysv ;; apollo68bsd) basic_machine=m68k-apollo os=-bsd ;; aros) basic_machine=i386-pc os=-aros ;; asmjs) basic_machine=asmjs-unknown ;; aux) basic_machine=m68k-apple os=-aux ;; balance) basic_machine=ns32k-sequent os=-dynix ;; blackfin) basic_machine=bfin-unknown os=-linux ;; blackfin-*) basic_machine=bfin-`echo "$basic_machine" | sed 's/^[^-]*-//'` os=-linux ;; bluegene*) basic_machine=powerpc-ibm os=-cnk ;; c54x-*) basic_machine=tic54x-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; c55x-*) basic_machine=tic55x-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; c6x-*) basic_machine=tic6x-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; c90) basic_machine=c90-cray os=-unicos ;; cegcc) basic_machine=arm-unknown os=-cegcc ;; convex-c1) basic_machine=c1-convex os=-bsd ;; convex-c2) basic_machine=c2-convex os=-bsd ;; convex-c32) basic_machine=c32-convex os=-bsd ;; convex-c34) basic_machine=c34-convex os=-bsd ;; convex-c38) basic_machine=c38-convex os=-bsd ;; cray | j90) basic_machine=j90-cray os=-unicos ;; craynv) basic_machine=craynv-cray os=-unicosmp ;; cr16 | cr16-*) basic_machine=cr16-unknown os=-elf ;; crds | unos) basic_machine=m68k-crds ;; crisv32 | crisv32-* | etraxfs*) basic_machine=crisv32-axis ;; cris | cris-* | etrax*) basic_machine=cris-axis ;; crx) basic_machine=crx-unknown os=-elf ;; da30 | da30-*) basic_machine=m68k-da30 ;; decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) basic_machine=mips-dec ;; decsystem10* | dec10*) basic_machine=pdp10-dec os=-tops10 ;; decsystem20* | dec20*) basic_machine=pdp10-dec os=-tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) basic_machine=m68k-motorola ;; delta88) basic_machine=m88k-motorola os=-sysv3 ;; dicos) basic_machine=i686-pc os=-dicos ;; djgpp) basic_machine=i586-pc os=-msdosdjgpp ;; dpx20 | dpx20-*) basic_machine=rs6000-bull os=-bosx ;; dpx2*) basic_machine=m68k-bull os=-sysv3 ;; e500v[12]) basic_machine=powerpc-unknown os=$os"spe" ;; e500v[12]-*) basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'` os=$os"spe" ;; ebmon29k) basic_machine=a29k-amd os=-ebmon ;; elxsi) basic_machine=elxsi-elxsi os=-bsd ;; encore | umax | mmax) basic_machine=ns32k-encore ;; es1800 | OSE68k | ose68k | ose | OSE) basic_machine=m68k-ericsson os=-ose ;; fx2800) basic_machine=i860-alliant ;; genix) basic_machine=ns32k-ns ;; gmicro) basic_machine=tron-gmicro os=-sysv ;; go32) basic_machine=i386-pc os=-go32 ;; h3050r* | hiux*) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; h8300hms) basic_machine=h8300-hitachi os=-hms ;; h8300xray) basic_machine=h8300-hitachi os=-xray ;; h8500hms) basic_machine=h8500-hitachi os=-hms ;; harris) basic_machine=m88k-harris os=-sysv3 ;; hp300-*) basic_machine=m68k-hp ;; hp300bsd) basic_machine=m68k-hp os=-bsd ;; hp300hpux) basic_machine=m68k-hp os=-hpux ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) basic_machine=m68000-hp ;; hp9k3[2-9][0-9]) basic_machine=m68k-hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) basic_machine=hppa1.0-hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) basic_machine=hppa1.1-hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp basic_machine=hppa1.1-hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) basic_machine=hppa1.1-hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) basic_machine=hppa1.0-hp ;; hppaosf) basic_machine=hppa1.1-hp os=-osf ;; hppro) basic_machine=hppa1.1-hp os=-proelf ;; i370-ibm* | ibm*) basic_machine=i370-ibm ;; i*86v32) basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` os=-sysv32 ;; i*86v4*) basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` os=-sysv4 ;; i*86v) basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` os=-sysv ;; i*86sol2) basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` os=-solaris2 ;; i386mach) basic_machine=i386-mach os=-mach ;; vsta) basic_machine=i386-unknown os=-vsta ;; iris | iris4d) basic_machine=mips-sgi case $os in -irix*) ;; *) os=-irix4 ;; esac ;; isi68 | isi) basic_machine=m68k-isi os=-sysv ;; leon-*|leon[3-9]-*) basic_machine=sparc-`echo "$basic_machine" | sed 's/-.*//'` ;; m68knommu) basic_machine=m68k-unknown os=-linux ;; m68knommu-*) basic_machine=m68k-`echo "$basic_machine" | sed 's/^[^-]*-//'` os=-linux ;; magnum | m3230) basic_machine=mips-mips os=-sysv ;; merlin) basic_machine=ns32k-utek os=-sysv ;; microblaze*) basic_machine=microblaze-xilinx ;; mingw64) basic_machine=x86_64-pc os=-mingw64 ;; mingw32) basic_machine=i686-pc os=-mingw32 ;; mingw32ce) basic_machine=arm-unknown os=-mingw32ce ;; miniframe) basic_machine=m68000-convergent ;; *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) basic_machine=m68k-atari os=-mint ;; mips3*-*) basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'` ;; mips3*) basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`-unknown ;; monitor) basic_machine=m68k-rom68k os=-coff ;; morphos) basic_machine=powerpc-unknown os=-morphos ;; moxiebox) basic_machine=moxie-unknown os=-moxiebox ;; msdos) basic_machine=i386-pc os=-msdos ;; ms1-*) basic_machine=`echo "$basic_machine" | sed -e 's/ms1-/mt-/'` ;; msys) basic_machine=i686-pc os=-msys ;; mvs) basic_machine=i370-ibm os=-mvs ;; nacl) basic_machine=le32-unknown os=-nacl ;; ncr3000) basic_machine=i486-ncr os=-sysv4 ;; netbsd386) basic_machine=i386-unknown os=-netbsd ;; netwinder) basic_machine=armv4l-rebel os=-linux ;; news | news700 | news800 | news900) basic_machine=m68k-sony os=-newsos ;; news1000) basic_machine=m68030-sony os=-newsos ;; news-3600 | risc-news) basic_machine=mips-sony os=-newsos ;; necv70) basic_machine=v70-nec os=-sysv ;; next | m*-next) basic_machine=m68k-next case $os in -nextstep* ) ;; -ns2*) os=-nextstep2 ;; *) os=-nextstep3 ;; esac ;; nh3000) basic_machine=m68k-harris os=-cxux ;; nh[45]000) basic_machine=m88k-harris os=-cxux ;; nindy960) basic_machine=i960-intel os=-nindy ;; mon960) basic_machine=i960-intel os=-mon960 ;; nonstopux) basic_machine=mips-compaq os=-nonstopux ;; np1) basic_machine=np1-gould ;; neo-tandem) basic_machine=neo-tandem ;; nse-tandem) basic_machine=nse-tandem ;; nsr-tandem) basic_machine=nsr-tandem ;; nsv-tandem) basic_machine=nsv-tandem ;; nsx-tandem) basic_machine=nsx-tandem ;; op50n-* | op60c-*) basic_machine=hppa1.1-oki os=-proelf ;; openrisc | openrisc-*) basic_machine=or32-unknown ;; os400) basic_machine=powerpc-ibm os=-os400 ;; OSE68000 | ose68000) basic_machine=m68000-ericsson os=-ose ;; os68k) basic_machine=m68k-none os=-os68k ;; pa-hitachi) basic_machine=hppa1.1-hitachi os=-hiuxwe2 ;; paragon) basic_machine=i860-intel os=-osf ;; parisc) basic_machine=hppa-unknown os=-linux ;; parisc-*) basic_machine=hppa-`echo "$basic_machine" | sed 's/^[^-]*-//'` os=-linux ;; pbd) basic_machine=sparc-tti ;; pbb) basic_machine=m68k-tti ;; pc532 | pc532-*) basic_machine=ns32k-pc532 ;; pc98) basic_machine=i386-pc ;; pc98-*) basic_machine=i386-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; pentium | p5 | k5 | k6 | nexgen | viac3) basic_machine=i586-pc ;; pentiumpro | p6 | 6x86 | athlon | athlon_*) basic_machine=i686-pc ;; pentiumii | pentium2 | pentiumiii | pentium3) basic_machine=i686-pc ;; pentium4) basic_machine=i786-pc ;; pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) basic_machine=i586-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; pentiumpro-* | p6-* | 6x86-* | athlon-*) basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; pentium4-*) basic_machine=i786-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; pn) basic_machine=pn-gould ;; power) basic_machine=power-ibm ;; ppc | ppcbe) basic_machine=powerpc-unknown ;; ppc-* | ppcbe-*) basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; ppcle | powerpclittle) basic_machine=powerpcle-unknown ;; ppcle-* | powerpclittle-*) basic_machine=powerpcle-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; ppc64) basic_machine=powerpc64-unknown ;; ppc64-*) basic_machine=powerpc64-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; ppc64le | powerpc64little) basic_machine=powerpc64le-unknown ;; ppc64le-* | powerpc64little-*) basic_machine=powerpc64le-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; ps2) basic_machine=i386-ibm ;; pw32) basic_machine=i586-unknown os=-pw32 ;; rdos | rdos64) basic_machine=x86_64-pc os=-rdos ;; rdos32) basic_machine=i386-pc os=-rdos ;; rom68k) basic_machine=m68k-rom68k os=-coff ;; rm[46]00) basic_machine=mips-siemens ;; rtpc | rtpc-*) basic_machine=romp-ibm ;; s390 | s390-*) basic_machine=s390-ibm ;; s390x | s390x-*) basic_machine=s390x-ibm ;; sa29200) basic_machine=a29k-amd os=-udi ;; sb1) basic_machine=mipsisa64sb1-unknown ;; sb1el) basic_machine=mipsisa64sb1el-unknown ;; sde) basic_machine=mipsisa32-sde os=-elf ;; sei) basic_machine=mips-sei os=-seiux ;; sequent) basic_machine=i386-sequent ;; sh5el) basic_machine=sh5le-unknown ;; simso-wrs) basic_machine=sparclite-wrs os=-vxworks ;; sps7) basic_machine=m68k-bull os=-sysv2 ;; spur) basic_machine=spur-unknown ;; st2000) basic_machine=m68k-tandem ;; stratus) basic_machine=i860-stratus os=-sysv4 ;; strongarm-* | thumb-*) basic_machine=arm-`echo "$basic_machine" | sed 's/^[^-]*-//'` ;; sun2) basic_machine=m68000-sun ;; sun2os3) basic_machine=m68000-sun os=-sunos3 ;; sun2os4) basic_machine=m68000-sun os=-sunos4 ;; sun3os3) basic_machine=m68k-sun os=-sunos3 ;; sun3os4) basic_machine=m68k-sun os=-sunos4 ;; sun4os3) basic_machine=sparc-sun os=-sunos3 ;; sun4os4) basic_machine=sparc-sun os=-sunos4 ;; sun4sol2) basic_machine=sparc-sun os=-solaris2 ;; sun3 | sun3-*) basic_machine=m68k-sun ;; sun4) basic_machine=sparc-sun ;; sun386 | sun386i | roadrunner) basic_machine=i386-sun ;; sv1) basic_machine=sv1-cray os=-unicos ;; symmetry) basic_machine=i386-sequent os=-dynix ;; t3e) basic_machine=alphaev5-cray os=-unicos ;; t90) basic_machine=t90-cray os=-unicos ;; tile*) basic_machine=$basic_machine-unknown os=-linux-gnu ;; tx39) basic_machine=mipstx39-unknown ;; tx39el) basic_machine=mipstx39el-unknown ;; toad1) basic_machine=pdp10-xkl os=-tops20 ;; tower | tower-32) basic_machine=m68k-ncr ;; tpf) basic_machine=s390x-ibm os=-tpf ;; udi29k) basic_machine=a29k-amd os=-udi ;; ultra3) basic_machine=a29k-nyu os=-sym1 ;; v810 | necv810) basic_machine=v810-nec os=-none ;; vaxv) basic_machine=vax-dec os=-sysv ;; vms) basic_machine=vax-dec os=-vms ;; vpp*|vx|vx-*) basic_machine=f301-fujitsu ;; vxworks960) basic_machine=i960-wrs os=-vxworks ;; vxworks68) basic_machine=m68k-wrs os=-vxworks ;; vxworks29k) basic_machine=a29k-wrs os=-vxworks ;; w65*) basic_machine=w65-wdc os=-none ;; w89k-*) basic_machine=hppa1.1-winbond os=-proelf ;; x64) basic_machine=x86_64-pc ;; xbox) basic_machine=i686-pc os=-mingw32 ;; xps | xps100) basic_machine=xps100-honeywell ;; xscale-* | xscalee[bl]-*) basic_machine=`echo "$basic_machine" | sed 's/^xscale/arm/'` ;; ymp) basic_machine=ymp-cray os=-unicos ;; none) basic_machine=none-none os=-none ;; # Here we handle the default manufacturer of certain CPU types. It is in # some cases the only manufacturer, in others, it is the most popular. w89k) basic_machine=hppa1.1-winbond ;; op50n) basic_machine=hppa1.1-oki ;; op60c) basic_machine=hppa1.1-oki ;; romp) basic_machine=romp-ibm ;; mmix) basic_machine=mmix-knuth ;; rs6000) basic_machine=rs6000-ibm ;; vax) basic_machine=vax-dec ;; pdp11) basic_machine=pdp11-dec ;; we32k) basic_machine=we32k-att ;; sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) basic_machine=sh-unknown ;; cydra) basic_machine=cydra-cydrome ;; orion) basic_machine=orion-highlevel ;; orion105) basic_machine=clipper-highlevel ;; mac | mpw | mac-mpw) basic_machine=m68k-apple ;; pmac | pmac-mpw) basic_machine=powerpc-apple ;; *-unknown) # Make sure to match an already-canonicalized machine name. ;; *) echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2 exit 1 ;; esac # Here we canonicalize certain aliases for manufacturers. case $basic_machine in *-digital*) basic_machine=`echo "$basic_machine" | sed 's/digital.*/dec/'` ;; *-commodore*) basic_machine=`echo "$basic_machine" | sed 's/commodore.*/cbm/'` ;; *) ;; esac # Decode manufacturer-specific aliases for certain operating systems. if [ x"$os" != x"" ] then case $os in # First match some system type aliases that might get confused # with valid system types. # -solaris* is a basic system type, with this one exception. -auroraux) os=-auroraux ;; -solaris1 | -solaris1.*) os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; -solaris) os=-solaris2 ;; -unixware*) os=-sysv4.2uw ;; -gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; # es1800 is here to avoid being matched by es* (a different OS) -es1800*) os=-ose ;; # Now accept the basic system types. # The portable systems comes first. # Each alternative MUST end in a * to match a version number. # -sysv* is not here because it comes later, after sysvr4. -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ | -sym* | -kopensolaris* | -plan9* \ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ | -aos* | -aros* | -cloudabi* | -sortix* \ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ | -hiux* | -knetbsd* | -mirbsd* | -netbsd* \ | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* | -hcos* \ | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ | -linux-newlib* | -linux-musl* | -linux-uclibc* \ | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* \ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ | -morphos* | -superux* | -rtmk* | -windiss* \ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \ | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox* | -bme* \ | -midnightbsd*) # Remember, each alternative MUST END IN *, to match a version number. ;; -qnx*) case $basic_machine in x86-* | i*86-*) ;; *) os=-nto$os ;; esac ;; -nto-qnx*) ;; -nto*) os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; -sim | -xray | -os68k* | -v88r* \ | -windows* | -osx | -abug | -netware* | -os9* \ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) ;; -mac*) os=`echo "$os" | sed -e 's|mac|macos|'` ;; -linux-dietlibc) os=-linux-dietlibc ;; -linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; -sunos5*) os=`echo "$os" | sed -e 's|sunos5|solaris2|'` ;; -sunos6*) os=`echo "$os" | sed -e 's|sunos6|solaris3|'` ;; -opened*) os=-openedition ;; -os400*) os=-os400 ;; -wince*) os=-wince ;; -utek*) os=-bsd ;; -dynix*) os=-bsd ;; -acis*) os=-aos ;; -atheos*) os=-atheos ;; -syllable*) os=-syllable ;; -386bsd) os=-bsd ;; -ctix* | -uts*) os=-sysv ;; -nova*) os=-rtmk-nova ;; -ns2) os=-nextstep2 ;; -nsk*) os=-nsk ;; # Preserve the version number of sinix5. -sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; -sinix*) os=-sysv4 ;; -tpf*) os=-tpf ;; -triton*) os=-sysv3 ;; -oss*) os=-sysv3 ;; -svr4*) os=-sysv4 ;; -svr3) os=-sysv3 ;; -sysvr4) os=-sysv4 ;; # This must come after -sysvr4. -sysv*) ;; -ose*) os=-ose ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) os=-mint ;; -zvmoe) os=-zvmoe ;; -dicos*) os=-dicos ;; -pikeos*) # Until real need of OS specific support for # particular features comes up, bare metal # configurations are quite functional. case $basic_machine in arm*) os=-eabi ;; *) os=-elf ;; esac ;; -nacl*) ;; -ios) ;; -none) ;; *) # Get rid of the `-' at the beginning of $os. os=`echo $os | sed 's/[^-]*-//'` echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2 exit 1 ;; esac else # Here we handle the default operating systems that come with various machines. # The value should be what the vendor currently ships out the door with their # machine or put another way, the most popular os provided with the machine. # Note that if you're going to try to match "-MANUFACTURER" here (say, # "-sun"), then you have to tell the case statement up towards the top # that MANUFACTURER isn't an operating system. Otherwise, code above # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. case $basic_machine in score-*) os=-elf ;; spu-*) os=-elf ;; *-acorn) os=-riscix1.2 ;; arm*-rebel) os=-linux ;; arm*-semi) os=-aout ;; c4x-* | tic4x-*) os=-coff ;; c8051-*) os=-elf ;; hexagon-*) os=-elf ;; tic54x-*) os=-coff ;; tic55x-*) os=-coff ;; tic6x-*) os=-coff ;; # This must come before the *-dec entry. pdp10-*) os=-tops20 ;; pdp11-*) os=-none ;; *-dec | vax-*) os=-ultrix4.2 ;; m68*-apollo) os=-domain ;; i386-sun) os=-sunos4.0.2 ;; m68000-sun) os=-sunos3 ;; m68*-cisco) os=-aout ;; mep-*) os=-elf ;; mips*-cisco) os=-elf ;; mips*-*) os=-elf ;; or32-*) os=-coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=-sysv3 ;; sparc-* | *-sun) os=-sunos4.1.1 ;; pru-*) os=-elf ;; *-be) os=-beos ;; *-ibm) os=-aix ;; *-knuth) os=-mmixware ;; *-wec) os=-proelf ;; *-winbond) os=-proelf ;; *-oki) os=-proelf ;; *-hp) os=-hpux ;; *-hitachi) os=-hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) os=-sysv ;; *-cbm) os=-amigaos ;; *-dg) os=-dgux ;; *-dolphin) os=-sysv3 ;; m68k-ccur) os=-rtu ;; m88k-omron*) os=-luna ;; *-next) os=-nextstep ;; *-sequent) os=-ptx ;; *-crds) os=-unos ;; *-ns) os=-genix ;; i370-*) os=-mvs ;; *-gould) os=-sysv ;; *-highlevel) os=-bsd ;; *-encore) os=-bsd ;; *-sgi) os=-irix ;; *-siemens) os=-sysv4 ;; *-masscomp) os=-rtu ;; f30[01]-fujitsu | f700-fujitsu) os=-uxpv ;; *-rom68k) os=-coff ;; *-*bug) os=-coff ;; *-apple) os=-macos ;; *-atari*) os=-mint ;; *) os=-none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. vendor=unknown case $basic_machine in *-unknown) case $os in -riscix*) vendor=acorn ;; -sunos*) vendor=sun ;; -cnk*|-aix*) vendor=ibm ;; -beos*) vendor=be ;; -hpux*) vendor=hp ;; -mpeix*) vendor=hp ;; -hiux*) vendor=hitachi ;; -unos*) vendor=crds ;; -dgux*) vendor=dg ;; -luna*) vendor=omron ;; -genix*) vendor=ns ;; -mvs* | -opened*) vendor=ibm ;; -os400*) vendor=ibm ;; -ptx*) vendor=sequent ;; -tpf*) vendor=ibm ;; -vxsim* | -vxworks* | -windiss*) vendor=wrs ;; -aux*) vendor=apple ;; -hms*) vendor=hitachi ;; -mpw* | -macos*) vendor=apple ;; -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) vendor=atari ;; -vos*) vendor=stratus ;; esac basic_machine=`echo "$basic_machine" | sed "s/unknown/$vendor/"` ;; esac echo "$basic_machine$os" exit # Local variables: # eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" # End: mysql++-3.2.5/abi.xml.in000644 000765 000024 00000000224 13515046514 015503 0ustar00tangentstaff000000 000000 @MYSQLPP_VERSION_MAJOR@.@MYSQLPP_VERSION_MINOR@.@MYSQLPP_VERSION_BUGFIX@ lib . mysql++-3.2.5/version000755 000765 000024 00000000025 13515046541 015233 0ustar00tangentstaff000000 000000 #!/bin/sh echo 3.2.5 mysql++-3.2.5/README-MinGW.txt000644 000765 000024 00000015737 13515046514 016315 0ustar00tangentstaff000000 000000 Prerequisite: GCC Version ~~~~~~~~~~~~~~~~~~~~~~~~~ If your MinGW version isn't using at least GCC 3.4.5, it needs to be updated. Older versions are known to not work with MySQL++. As of MySQL++ 3.1.1, the required version might need to be even newer, as we are now depending on improvements to the MinGW linker which probably don't go back that far. Prerequisite: MySQL C Development Files ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ MySQL++ is built atop MySQL's C API library. The easiest way to get that is to install Connector/C on your development system, which you can download from mysql.com. The distribution assumes these files are in: C:\Program Files\MySQL\MySQL Connector C 6.1\ There are a number of reasons why that path may not work for you: - You have a newer version of Connector/C installed - You're on a 64-bit system, but have the 32-bit versions of Connector/C and MinGW installed and wish to build a 32-bit binary. In that case, the path will look like this instead: C:\Program Files (x86)\MySQL\MySQL Connector C 6.1\ - You may have the MySQL Server on your system and installed the development files along with it, and therefore don't want to install Connector/C separately. In that case, the path will look like this instead: C:\Program Files\MySQL\MySQL Server 5.6\ Regardless of the reason you have for changing this path, there are two ways that work: - The easy way is to do a global search and replace on the path in Makefile.mingw. This is a generated file, but if that's the only change to MySQL++ you need, it works fine. - If you're doing deeper work on MySQL++, you should change the MYSQL_WIN_DIR variable at the top of mysql++.bkl instead. Having done that, you can generate Makefile.mingw from that file using the Windows port of Bakefile (http://bakefile.org/): bakefile_gen -f mingw Building the Library and Example Programs ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ With the prerequisites above taken care of, you can build MySQL++ with this command: mingw32-make -f Makefile.mingw Notice that we're using the MinGW-specific version of GNU make, not the Cygwin or MSYS versions. Many things will break otherwise: path separator handling, shell commands used by the Makefile, etc. Speaking of Cygwin and MSYS, if you have either these or any other Unix emulation environment installed, be sure their executables aren't in the PATH when building MySQL++. MinGW's version of GNU make does some funny things if it thinks it's running in the presence of Unixy tools, which will break the MySQL++ build. Once the library is built, you should run the examples. At minimum, run resetdb and simple1. Once you're satisfied that the library is working correctly, you can run install.hta to automatically install the library files and headers in subdirectories under c:\mysql++. Cygwin and MinGW Coexistence ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ It's possible to have both Cygwin and MinGW installed and build with the MinGW tools without interference from the Cygwin bits. The main thing you have to take care of is that MinGW's bin directory must precede the Cygwin bin directory in the PATH, so that its tools are found first. If you use Cygwin's bash as a command shell in preference to the DOS-like cmd.exe, you can use this shell script to temporarily set the environment to "MinGW mode" and make it easy to get back to "Cygwin mode": #!/bin/sh PATH=/c/mingw/bin:/c/windows:/c/windows/system32:/c/cygwin/bin echo "Say 'exit' to leave MinGW shell and restore Cygwin environment." /usr/bin/bash --rcfile ~/.mingwrc I recommend having at least this in the ~/.mingwrc file: alias make=mingw32-make PS1='MinGW: \W \$ ' The prompt change reminds you that you are in a sub-shell set up for MinGW. The alias for 'make' ensures you don't accidentally run Cygwin's make, which won't work with Makefile.mingw. We could just leave /c/cygwin/bin out of the environment, but there are Cygwin tools we want access to, like vim. As long as all the MinGW ones override those Cygwin also provides, we don't need to worry about having both in the PATH. Besides, having the alias is nice for those who have 'make' committed to muscle memory. Building on Linux ~~~~~~~~~~~~~~~~~ You might wish to build MySQL++ with MinGW because you're not actually running Windows, but need Windows executables. The thought being that this lets you use GCC, the same compiler you're probably using to make native executables. There are indeed ways to make this work. The most "native" way to do this is to run MinGW under Wine. Leonti Bielski provided these instructions: 1. Install MinGW through Wine: $ wine MinGW-5.1.6.exe 2. Add the MinGW directory to Wine's PATH with Wine regedit: http://winehq.org/site/docs/wineusr-guide/environment-variables 3. Install MySQL under Wine, or at least unpack the Windows ZIP file version of MySQL in a place where Wine can find it. You don't need to run a Windows MySQL server under Wine. We're only doing this to get the MySQL C API library and its headers, which MySQL++ builds against. The resulting MinGW build of MySQL++ can talk to a native MySQL server out in Wine's host environment or on some other machine. 4. Modify Makefile.mingw to match the install location for the MySQL C API files. 5. Build MySQL++ with: $ wine mingw32-make -f Makefile.mingw Another way is to build a Windows virtual machine, such as with VMware or VirtualBox. In that case, you'd use the regular build instructions at the top of this document. You might think to avoid the need for Wine or Windows by use of a MinGW cross-compiler: $ ./configure --target=mingw32 $ make Unfortunately, that currently doesn't work. The reason is that our autoconf build system assumes a typical POSIX type target, which MinGW is not. We made this assumption because we have a perfectly good MinGW build option, Makefile.mingw. But, that also won't work on a POSIX system because that Makefile assumes external commands run under cmd.exe, not some Unixy shell. Thus the advice to build with Makefile.mingw under Windows or something sufficiently close to it. If you really wanted to, you could extend the autoconf build system to make it realize when it's being used to cross-compile for MinGW. Patches thoughtfully considered; see HACKERS.txt. mysql++-3.2.5/examples/000755 000765 000024 00000000000 13515046516 015443 5ustar00tangentstaff000000 000000 mysql++-3.2.5/README-Mac-OS-X.txt000644 000765 000024 00000014423 13515046514 016547 0ustar00tangentstaff000000 000000 Building MySQL++ ~~~~~~~~~~~~~~~~ There are two major ways to build MySQL++: from the command line, or from within the Xcode IDE. MySQL++ has its roots in Unix and Linux, like MySQL itself. As a result, the most well-supported way to build MySQL++ is from the command line, or Terminal as Apple likes to call it. See README-Unix.txt for the generic instructions. Further Mac-specific details are given elsewhere in this file. The option to build MySQL++ from within Xcode is new. We added experimental support for it in 3.0.0, but it didn't actually get tested and debugged until 3.1.0. It may still be buggy, and over time it's more likely to break again than the command line method, simply because it receives less testing during development. Even fully functional, it is less flexible than building from the command line; Xcode's project system cannot match the power available within the autotools build system. If you try the Xcode method and find that it doesn't work, the easiest way around that roadblock is to build from the command line instead. If you're the adventurous sort and want to contribute to the development of MySQL++, see the file HACKERS.txt for more info on fixing the source file used as input in the project file generation process. We don't want fixed project files, we want a process that lets us consistently generate correct project files. Prerequisite: Install the MySQL Development Files ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ MySQL++ is built on top of the MySQL C API library, so for MySQL++ to build, it needs at least that library and its header files installed. You don't need the server itself installed on your development machine, though it's often helpful anyway, for testing. There are many suitable sources: - The simplest option is to download the MySQL server DMG from mysql.com. In addition to the C API files you absolultely must have, this gives you a nice Mac-like installation procedure and a preference pane for bringing the server up and down and setting it to start on system boot. - If you really only want the C API development files, MySQL offers them separately as Connector/C. As of this writing, you get the files as a tarball, and you have to copy its contents to some suitable location on your hard drive. If you're using Xcode to build MySQL++, you'll want to put them under /usr/local/mysql. MySQL++'s command line build system is far more tolerant, looking there and in many other typical locations. - If you use Fink, you can install the C API files with: $ fink install mysql15-dev If you also want a local MySQL server, say this instead: $ fink install mysql mysql15-dev - From MacPorts, http://macports.org. I have zero information on this other than that it's theoretically possible for it to work. If you figure out how to make it work, please post the method to the mailing list so I can update this document. Dealing with the 64-Bit Transition in Snow Leopard ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Xcode for Snow Leopard installs two independent versions of the GNU Compiler Collection. The default is GCC 4.2, and it is set up to build 64-bit executables by default, even if your system is booted into 32-bit mode. You also get GCC 4.0, which builds 32-bit executables by default. On top of that, you have the confusion added by Apple's decision to make all 64-bit capable machines boot into 32-bit mode by default, except for the Xserves. The first symptom most people run into as a result of this mess is that the "configure" script fails, yelling something about being unable to link to libmysqlclient, the MySQL C API client library. It's because the library was probably built as a 32-bit executable and you're using the default compiler which tries to build a 64-bit test executable against this library and fails. There are many ways out of this tarpit. Here are the ones I prefer: First, you can force GCC 4.2 to build 32-bit binaries: ./configure CFLAGS=-m32 CXXFLAGS=-m32 LDFLAGS=-m32 --other-flags-here Second, you can make the MySQL++ build system use GCC 4.0 instead: ./configure CC=gcc-4.0 CXX=g++-4.0 --other-flags-here Last, you could just take Apple's implied advice and start booting your Mac into 64-bit mode, if it will support it. Here's an article that goes into all the details: http://macperformanceguide.com/SnowLeopard-64bit.html I'm aware of other solutions to the problem, but I expect one among these will work for you. Making Universal Binaries ~~~~~~~~~~~~~~~~~~~~~~~~~ By default, the command line build system will generate libraries that only work with the platform you build MySQL++ on. It can be convinced to build "universal" binaries instead by configuring the library like so: $ ./configure --disable-dependency-tracking \ CXXFLAGS='-arch ppc -arch i386' This builds the library for the two 32-bit OS X architectures, and is what most people have traditionally thought of as "universal". However, you may also want a 64-bit build, meaning there are four different architectures, and thus four -arch flags needed: $ ./configure --disable-dependency-tracking \ CXXFLAGS='-arch ppc -arch ppc64 -arch i386 -arch x86_64' These are single commands, with the line broken to keep the line lengths in this document reasonable. The first command doubles build time relative to the default configuration, and the second quadruples it. It also makes the resulting binaries larger, which increases the amount of time it takes to start a program. Build MySQL++ like this only if you must. The --disable-dependency-tracking flag is necessary because, when building universal binaries, it has to rebuild each source module multiple times, which confuses the logic that tries to tell when a given module needs rebuiding based on its dependencies on other files. mysql++-3.2.5/abi.xml000644 000765 000024 00000000121 13515046540 015071 0ustar00tangentstaff000000 000000 3.2.5 lib . mysql++-3.2.5/lib/000755 000765 000024 00000000000 13515046540 014370 5ustar00tangentstaff000000 000000 mysql++-3.2.5/doc/000755 000765 000024 00000000000 13515046514 014370 5ustar00tangentstaff000000 000000 mysql++-3.2.5/bootstrap.bat000644 000765 000024 00000003606 13515046514 016335 0ustar00tangentstaff000000 000000 @echo off if not exist vc2003 mkdir vc2003 if not exist vc2005 mkdir vc2005 if not exist vc2008 mkdir vc2008 bakefile_gen %* if errorlevel 1 exit if not exist vc2003\mysql++.sln goto no_bakefile if not exist vc2005\mysql++.sln goto no_bakefile if not exist vc2008\mysql++.sln goto no_bakefile cd lib perl querydef.pl if errorlevel 1 exit if not exist querydef.h goto no_perl perl ssqls.pl if errorlevel 1 exit if not exist ssqls.h goto no_perl if not exist mysql++.h goto no_mysqlpp_h cd .. exit :no_bakefile echo. echo Bakefile doesn't seem to be installed on this system. Download it echo from http://bakefile.org/ You need version 0.2.3 or newer. echo. exit :no_perl echo. echo You need a Perl interpreter installed on your system, somewhere in echo the PATH. Any recent version or flavor should work; we don't use echo any special extensions. The easiest to install on Windows would be echo ActivePerl, from http://activestate.com/Products/activeperl/ echo If you're familiar with Unix, you might like Cygwin better instead: echo http://cygwin.com/setup.exe echo. cd .. exit :no_mysqlpp_h echo. echo WARNING: Can't make lib/mysql++.h echo. echo On Unixy systems, autoconf creates lib/mysql++.h from lib/mysql++.h.in echo but there is no easy way to do this on Windows. You can do it manually: echo just copy the file to the new name, and edit the MYSQLPP_HEADER_VERSION echo definition to put the proper version number parts into the macro. It echo needs to look something like this: echo. echo #define MYSQLPP_HEADER_VERSION MYSQLPP_VERSION(3, 0, 0) echo. echo It's important that the three numbers match the actual library version echo number, or else programs that check this (like resetdb) will fail. echo. echo Alternately, if you've also got MySQL++ installed on some Unixy type echo system, you can let its bootstrap procedure create mysql++.h and then echo copy it to the Windows machine. echo. cd .. mysql++-3.2.5/vc2008/000755 000765 000024 00000000000 13515046514 014545 5ustar00tangentstaff000000 000000 mysql++-3.2.5/install.hta000644 000765 000024 00000025106 13515046540 015772 0ustar00tangentstaff000000 000000 Install MySQL++ Development Files

Where would you like to install the MySQL++ development files?
Drives:
Folders:
  Install in versioned folder?
  Segregate native C++ library builds from C++/CLI (CLR) builds?
  Segregate libraries by platform?
Target:
 

mysql++-3.2.5/shared-ld-sh000755 000765 000024 00000004045 13515046537 016034 0ustar00tangentstaff000000 000000 #!/bin/sh #----------------------------------------------------------------------------- #-- Name: distrib/mac/shared-ld-sh #-- Purpose: Link a mach-o dynamic shared library for Darwin / Mac OS X #-- Author: Gilles Depeyrot #-- Copyright: (c) 2002 Gilles Depeyrot #-- Licence: any use permitted #----------------------------------------------------------------------------- verbose=0 args="" objects="" linking_flag="-dynamiclib" ldargs="-r -keep_private_externs -nostdlib" if test "x$CXX" = "x"; then CXX="c++" fi while test $# -gt 0; do case $1 in -v) verbose=1 ;; -o|-compatibility_version|-current_version|-framework|-undefined|-install_name) # collect these options and values args="${args} $1 $2" shift ;; -arch|-isysroot) # collect these options and values ldargs="${ldargs} $1 $2" shift ;; -s|-Wl,*) # collect these load args ldargs="${ldargs} $1" ;; -l*|-L*|-flat_namespace|-headerpad_max_install_names) # collect these options args="${args} $1" ;; -dynamiclib|-bundle) linking_flag="$1" ;; -*) echo "shared-ld: unhandled option '$1'" exit 1 ;; *.o | *.a | *.dylib) # collect object files objects="${objects} $1" ;; *) echo "shared-ld: unhandled argument '$1'" exit 1 ;; esac shift done status=0 # # Link one module containing all the others # if test ${verbose} = 1; then echo "$CXX ${ldargs} ${objects} -o master.$$.o" fi $CXX ${ldargs} ${objects} -o master.$$.o status=$? # # Link the shared library from the single module created, but only if the # previous command didn't fail: # if test ${status} = 0; then if test ${verbose} = 1; then echo "$CXX ${linking_flag} master.$$.o ${args}" fi $CXX ${linking_flag} master.$$.o ${args} status=$? fi # # Remove intermediate module # rm -f master.$$.o exit $status mysql++-3.2.5/LICENSE.txt000644 000765 000024 00000064470 13515046514 015461 0ustar00tangentstaff000000 000000 GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 Copyright (C) 1991, 1999 Free Software Foundation, Inc. 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. [This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.] Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below. When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things. To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights. We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library. To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author's reputation will not be affected by problems that might be introduced by others. Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs. When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library. We call this license the "Lesser" General Public License because it does Less to protect the user's freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances. For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License. In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system. Although the Lesser General Public License is Less protective of the users' freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, whereas the latter must be combined with the library in order to run. GNU LESSER GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called "this License"). Each licensee is addressed as "you". A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".) "Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 6. As an exception to the Sections above, you may also combine or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things: a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with. c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy. For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License. 11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 13. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Libraries If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License). To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Also add information on how to contact you by electronic and paper mail. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker. , 1 April 1990 Ty Coon, President of Vice That's all there is to it! mysql++-3.2.5/rebake.bat000644 000765 000024 00000000031 13515046514 015536 0ustar00tangentstaff000000 000000 @echo on bakefile_gen %* mysql++-3.2.5/README-examples.txt000644 000765 000024 00000020553 13515046514 017142 0ustar00tangentstaff000000 000000 Building the Examples ~~~~~~~~~~~~~~~~~~~~~ If you're installing MySQL++ from the source tarball, the example programs get built when you build the library. If you change any example code, just say 'make' to rebuild the examples. The examples are built against the headers and library in the lib subdirectory, not against the ones you may have installed elsewhere on the system. If these example files were installed on your system as part of the -devel RPM, copy all the files to a directory you can write to, then say 'make' in that directory. This uses a simplified Makefile, which builds the examples against the headers and libraries installed in the system directories. Getting Started with the Examples ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ MySQL++ is built as a shared library on most systems, and a DLL on Windows. Since it isn't built in the same directory as the examples, this means that your system won't be able to find the library without help until you install it. Since you generally want to run the examples _before_ installing the library, to test that the library actually works, we need a workaround. That workaround is the exrun script. There are two versions, a Bourne shell script called just exrun for POSIX systems, and exrun.bat for Windows. Before running the other examples, you must first create the sample database. On POSIX systems, you do that like so: $ ./exrun resetdb [-s server_addr] [-u user] [-p password] On Windows, that would instead be: C:\mysql++\> exrun.bat resetdb [-s server] [-u user] [-p pass] You don't have to give any of these options. If you don't pass -s, it assumes the database server is running on the same machine, and so tries to contact the server over some form of local IPC. If you don't pass -u, it uses your own user name when logging into to the database server. If you don't pass -p, it assumes the database user has an empty password, which hopefully is not true. The -s option accepts many different forms of address. The main one is some sort of TCP/IP address, with an optional port number or service name. On Unixy systems, you can give a Unix domain socket name. On Windows, you can give just a period to use named pipes, if the server supports it. All of these are legal: . localhost 172.20.0.252:12345 /var/run/mysqld.sock my.server.name.com:mysql If you give -s but don't give a port number or service name with it, it assumes the default, port 3306. Running the Other Command Line Examples ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The following examples use the database set up by resetdb, and have the same command line format as resetdb: simple1: Shows the item names for all records in the sample stock table. Try this one if you do nothing else. simple2: Similar to simple1, but it displays all columns from the sample stock table, not just the item name. simple3: Same as simple2, except that it retrieves the data with a "use" query instead of a "store" query. See the user manual for the difference between these methods. ssqls1-5: These demonstrate the SSQLS features. Read the SSQLS sections in the user manual for details about these examples. multiquery: MySQL++ allows you to issue multiple queries at once, and get the results as separate sets. This shows that, and also how to use stored procedures, which return their results in the same way as a multiquery. tquery1-3: Shows how to use the template query facility. transaction: Shows how to use the Transaction class to create transaction sets which automatically roll back if not explicitly committed. deadlock: Shows how to handle errors that happen when the database server detects a deadlock in a transaction set. Also demonstrates the need for BadQuery::errnum() store_if: Demonstrates the Query::store_if() method, which allows you to store the results of a query in an STL container conditionally. Think of it as a way to express rules for selecting records in C++, to be used when SQL's WHERE clause isn't powerful enough. for_each: Demonstrates the Query::for_each() method, which allows you to execute a query and call a functor on each returned row. This example uses this to gather statistics on the sample table's contents. cpoolp, cpoolw: Respectively, the POSIX and Windows threads variants of the ConnectionPool class demonstration. load_jpeg: Inserts a JPEG file into the sample database, for use by the cgi_jpeg example. (See below.) Unlike the other examples, this one takes anything given on the command line that isn't a switch to be a JPEG file name. We've included examples/logo.jpg as a sample, if you want to use that. fieldinf: Shows how to get information about the fields in a result set. (Types, etc.) dbinfo: Dumps a bunch of information about the database server and some of the data it's managing. If you run the load_jpeg example, you should consider also playing with the other half of the demonstration, cgi_jpeg. To run it, you'll need to install MySQL++ on a machine with a web server, then copy the cgi_jpeg program to the server's CGI directory. For example, on a stock Red Hat type box, that would be /var/www/cgi-bin. At that point, a request like http://my.server.com/cgi-bin/cgi_jpeg?id=1 should show the JPEG you loaded. The ID value to use will be that reported by load_jpeg. Dedicated Windows Examples ~~~~~~~~~~~~~~~~~~~~~~~~~~ If you're a Visual C++ user, there are two GUI examples, too: examples\vstudio\mfc.vcproj: MFC-based replacement for the simple2 example. examples\vstudio\wforms.vcproj: The same thing, only written in C++/CLI and using Windows Forms. Please follow the instructions in README-Visual-C++.txt before trying to build and run this example. The MySQL++ library build settings must be modified and the library rebuilt first. Although these examples show use of MySQL++ in a GUI rather than command line program, that's not the main point of these examples. What we're really showing here is how to deal with Unicode. The MySQL server prefers the UTF-8 encoding for Unicode, which works naturally with most non-Windows systems. Windows, on the other hand, uses a different Unicode character encoding, UCS-2. These examples show how to do the necessary conversions. (See the Unicode chapter in the user manual for more on this topic.) We need two different examples because Unicode conversions and string handling are so wildly different under .NET than with the native Win32 API. .NET makes these tasks much easier. These examples build and run as-is under Visual C++ 2005. To make them work with VC++ 2008, you will have to change several paths in both project's settings to reference the "vc2008" subdirectory instead of "vc2005": o Configuration Properties > Debugging > Working Directory o Configuration Properties > Linker > General > Additional Library Directories If you want to backport these examples to VC++ 2003, it's probably not hard. The main difficulty is that VS 2003 supports Managed C++, which isn't the same thing as C++/CLI. Special exrun Capabilities ~~~~~~~~~~~~~~~~~~~~~~~~~~ The Bourne shell version of the exrun script has a few features not avaiable in the Windows batch file version. These features let you run the examples under various debugging tools. You can get simple gdb debugging if you run an example like this: $ ./exrun gdb simple1 foo bar qux The script also supports valgrind, in memory leak testing mode: $ ./exrun valgrind simple1 foo bar qux mysql++-3.2.5/Makefile.in000644 000765 000024 00000114363 13515046517 015703 0ustar00tangentstaff000000 000000 # ========================================================================= # This makefile was generated by # Bakefile 0.2.11 (http://www.bakefile.org) # Do not modify, all changes will be overwritten! # ========================================================================= @MAKE_SET@ prefix = @prefix@ exec_prefix = @exec_prefix@ datarootdir = @datarootdir@ INSTALL = @INSTALL@ SHARED_LD_CXX = @SHARED_LD_CXX@ LIBEXT = @LIBEXT@ LIBPREFIX = @LIBPREFIX@ SO_SUFFIX = @SO_SUFFIX@ DLLIMP_SUFFIX = @DLLIMP_SUFFIX@ EXEEXT = @EXEEXT@ LN_S = @LN_S@ PIC_FLAG = @PIC_FLAG@ SONAME_FLAG = @SONAME_FLAG@ STRIP = @STRIP@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_DIR = @INSTALL_DIR@ BK_DEPS = @BK_DEPS@ srcdir = @srcdir@ libdir = @libdir@ DLLPREFIX = @DLLPREFIX@ LIBS = @LIBS@ AR = @AR@ AROPTIONS = @AROPTIONS@ RANLIB = @RANLIB@ CXX = @CXX@ CXXFLAGS = @CXXFLAGS@ CPPFLAGS = @CPPFLAGS@ LDFLAGS = @LDFLAGS@ ### Variables: ### DESTDIR = MYSQLPP_CXXFLAGS = -I. -I@MYSQL_C_INC_DIR@ $(PIC_FLAG) @PTHREAD_CFLAGS@ \ $(CPPFLAGS) $(CXXFLAGS) MYSQLPP_OBJECTS = \ mysqlpp_beemutex.o \ mysqlpp_cmdline.o \ mysqlpp_connection.o \ mysqlpp_cpool.o \ mysqlpp_datetime.o \ mysqlpp_dbdriver.o \ mysqlpp_field_names.o \ mysqlpp_field_types.o \ mysqlpp_manip.o \ mysqlpp_myset.o \ mysqlpp_mysql++.o \ mysqlpp_mystring.o \ mysqlpp_null.o \ mysqlpp_options.o \ mysqlpp_qparms.o \ mysqlpp_query.o \ mysqlpp_result.o \ mysqlpp_row.o \ mysqlpp_scopedconnection.o \ mysqlpp_sql_buffer.o \ mysqlpp_sqlstream.o \ mysqlpp_ssqls2.o \ mysqlpp_stadapter.o \ mysqlpp_tcp_connection.o \ mysqlpp_transaction.o \ mysqlpp_type_info.o \ mysqlpp_uds_connection.o \ mysqlpp_utility.o \ mysqlpp_vallist.o \ mysqlpp_wnp_connection.o SSQLS2PARSE_CXXFLAGS = -Ilib -I@MYSQL_C_INC_DIR@ -I. @PTHREAD_CFLAGS@ \ $(CPPFLAGS) $(CXXFLAGS) SSQLS2PARSE_OBJECTS = \ ssqls2parse_parsev2.o SSQLSXLAT_CXXFLAGS = -Ilib -I@MYSQL_C_INC_DIR@ @PTHREAD_CFLAGS@ $(CPPFLAGS) \ $(CXXFLAGS) SSQLSXLAT_OBJECTS = \ ssqlsxlat_genv2.o \ ssqlsxlat_main.o TEST_ARRAY_INDEX_CXXFLAGS = -Ilib -I@MYSQL_C_INC_DIR@ @PTHREAD_CFLAGS@ \ $(CPPFLAGS) $(CXXFLAGS) TEST_ARRAY_INDEX_OBJECTS = \ test_array_index_array_index.o TEST_CPOOL_CXXFLAGS = -Ilib -I@MYSQL_C_INC_DIR@ @PTHREAD_CFLAGS@ $(CPPFLAGS) \ $(CXXFLAGS) TEST_CPOOL_OBJECTS = \ test_cpool_cpool.o TEST_DATETIME_CXXFLAGS = -Ilib -I@MYSQL_C_INC_DIR@ @PTHREAD_CFLAGS@ $(CPPFLAGS) \ $(CXXFLAGS) TEST_DATETIME_OBJECTS = \ test_datetime_datetime.o TEST_INTTYPES_CXXFLAGS = -Ilib -I@MYSQL_C_INC_DIR@ @PTHREAD_CFLAGS@ $(CPPFLAGS) \ $(CXXFLAGS) TEST_INTTYPES_OBJECTS = \ test_inttypes_inttypes.o TEST_INSERTPOLICY_CXXFLAGS = -Ilib -I@MYSQL_C_INC_DIR@ @PTHREAD_CFLAGS@ \ $(CPPFLAGS) $(CXXFLAGS) TEST_INSERTPOLICY_OBJECTS = \ test_insertpolicy_insertpolicy.o TEST_MANIP_CXXFLAGS = -Ilib -I@MYSQL_C_INC_DIR@ @PTHREAD_CFLAGS@ $(CPPFLAGS) \ $(CXXFLAGS) TEST_MANIP_OBJECTS = \ test_manip_manip.o TEST_NULL_COMPARISON_CXXFLAGS = -Ilib -I@MYSQL_C_INC_DIR@ @PTHREAD_CFLAGS@ \ $(CPPFLAGS) $(CXXFLAGS) TEST_NULL_COMPARISON_OBJECTS = \ test_null_comparison_null_comparison.o TEST_QUERY_COPY_CXXFLAGS = -Ilib -I@MYSQL_C_INC_DIR@ @PTHREAD_CFLAGS@ \ $(CPPFLAGS) $(CXXFLAGS) TEST_QUERY_COPY_OBJECTS = \ test_query_copy_query_copy.o TEST_QSSQLS_CXXFLAGS = -Ilib -I@MYSQL_C_INC_DIR@ @PTHREAD_CFLAGS@ $(CPPFLAGS) \ $(CXXFLAGS) TEST_QSSQLS_OBJECTS = \ test_qssqls_qssqls.o TEST_QSTREAM_CXXFLAGS = -Ilib -I@MYSQL_C_INC_DIR@ @PTHREAD_CFLAGS@ $(CPPFLAGS) \ $(CXXFLAGS) TEST_QSTREAM_OBJECTS = \ test_qstream_qstream.o TEST_SQLSTREAM_CXXFLAGS = -Ilib -I@MYSQL_C_INC_DIR@ @PTHREAD_CFLAGS@ \ $(CPPFLAGS) $(CXXFLAGS) TEST_SQLSTREAM_OBJECTS = \ test_sqlstream_sqlstream.o TEST_SSQLS2_CXXFLAGS = -Ilib -I@MYSQL_C_INC_DIR@ @PTHREAD_CFLAGS@ $(CPPFLAGS) \ $(CXXFLAGS) TEST_SSQLS2_OBJECTS = \ test_ssqls2_ssqls2.o TEST_STRING_CXXFLAGS = -Ilib -I@MYSQL_C_INC_DIR@ @PTHREAD_CFLAGS@ $(CPPFLAGS) \ $(CXXFLAGS) TEST_STRING_OBJECTS = \ test_string_string.o TEST_TCP_CXXFLAGS = -Ilib -I@MYSQL_C_INC_DIR@ @PTHREAD_CFLAGS@ $(CPPFLAGS) \ $(CXXFLAGS) TEST_TCP_OBJECTS = \ test_tcp_tcp.o TEST_UDS_CXXFLAGS = -Ilib -I@MYSQL_C_INC_DIR@ @PTHREAD_CFLAGS@ $(CPPFLAGS) \ $(CXXFLAGS) TEST_UDS_OBJECTS = \ test_uds_uds.o TEST_WNP_CXXFLAGS = -Ilib -I@MYSQL_C_INC_DIR@ @PTHREAD_CFLAGS@ $(CPPFLAGS) \ $(CXXFLAGS) TEST_WNP_OBJECTS = \ test_wnp_wnp.o EXCOMMON_CXXFLAGS = -Ilib -I@MYSQL_C_INC_DIR@ @PTHREAD_CFLAGS@ $(CPPFLAGS) \ $(CXXFLAGS) EXCOMMON_OBJECTS = \ excommon_printdata.o CGI_JPEG_CXXFLAGS = -Ilib -I@MYSQL_C_INC_DIR@ @PTHREAD_CFLAGS@ $(CPPFLAGS) \ $(CXXFLAGS) CGI_JPEG_OBJECTS = \ cgi_jpeg_cgi_jpeg.o CPOOL_CXXFLAGS = -Ilib -I@MYSQL_C_INC_DIR@ @PTHREAD_CFLAGS@ $(CPPFLAGS) \ $(CXXFLAGS) CPOOL_OBJECTS = \ cpool_cpool.o DBINFO_CXXFLAGS = -Ilib -I@MYSQL_C_INC_DIR@ @PTHREAD_CFLAGS@ $(CPPFLAGS) \ $(CXXFLAGS) DBINFO_OBJECTS = \ dbinfo_dbinfo.o DEADLOCK_CXXFLAGS = -Ilib -I@MYSQL_C_INC_DIR@ @PTHREAD_CFLAGS@ $(CPPFLAGS) \ $(CXXFLAGS) DEADLOCK_OBJECTS = \ deadlock_deadlock.o FIELDINF_CXXFLAGS = -Ilib -I@MYSQL_C_INC_DIR@ @PTHREAD_CFLAGS@ $(CPPFLAGS) \ $(CXXFLAGS) FIELDINF_OBJECTS = \ fieldinf_fieldinf.o FOR_EACH_CXXFLAGS = -Ilib -I@MYSQL_C_INC_DIR@ @PTHREAD_CFLAGS@ $(CPPFLAGS) \ $(CXXFLAGS) FOR_EACH_OBJECTS = \ for_each_for_each.o LOAD_JPEG_CXXFLAGS = -Ilib -I@MYSQL_C_INC_DIR@ @PTHREAD_CFLAGS@ $(CPPFLAGS) \ $(CXXFLAGS) LOAD_JPEG_OBJECTS = \ load_jpeg_load_jpeg.o MULTIQUERY_CXXFLAGS = -Ilib -I@MYSQL_C_INC_DIR@ @PTHREAD_CFLAGS@ $(CPPFLAGS) \ $(CXXFLAGS) MULTIQUERY_OBJECTS = \ multiquery_multiquery.o RESETDB_CXXFLAGS = -Ilib -I@MYSQL_C_INC_DIR@ @PTHREAD_CFLAGS@ $(CPPFLAGS) \ $(CXXFLAGS) RESETDB_OBJECTS = \ resetdb_resetdb.o SIMPLE1_CXXFLAGS = -Ilib -I@MYSQL_C_INC_DIR@ @PTHREAD_CFLAGS@ $(CPPFLAGS) \ $(CXXFLAGS) SIMPLE1_OBJECTS = \ simple1_simple1.o SIMPLE2_CXXFLAGS = -Ilib -I@MYSQL_C_INC_DIR@ @PTHREAD_CFLAGS@ $(CPPFLAGS) \ $(CXXFLAGS) SIMPLE2_OBJECTS = \ simple2_simple2.o SIMPLE3_CXXFLAGS = -Ilib -I@MYSQL_C_INC_DIR@ @PTHREAD_CFLAGS@ $(CPPFLAGS) \ $(CXXFLAGS) SIMPLE3_OBJECTS = \ simple3_simple3.o SSQLS1_CXXFLAGS = -Ilib -I@MYSQL_C_INC_DIR@ @PTHREAD_CFLAGS@ $(CPPFLAGS) \ $(CXXFLAGS) SSQLS1_OBJECTS = \ ssqls1_ssqls1.o SSQLS2_CXXFLAGS = -Ilib -I@MYSQL_C_INC_DIR@ @PTHREAD_CFLAGS@ $(CPPFLAGS) \ $(CXXFLAGS) SSQLS2_OBJECTS = \ ssqls2_ssqls2.o SSQLS3_CXXFLAGS = -Ilib -I@MYSQL_C_INC_DIR@ @PTHREAD_CFLAGS@ $(CPPFLAGS) \ $(CXXFLAGS) SSQLS3_OBJECTS = \ ssqls3_ssqls3.o SSQLS4_CXXFLAGS = -Ilib -I@MYSQL_C_INC_DIR@ @PTHREAD_CFLAGS@ $(CPPFLAGS) \ $(CXXFLAGS) SSQLS4_OBJECTS = \ ssqls4_ssqls4.o SSQLS5_CXXFLAGS = -Ilib -I@MYSQL_C_INC_DIR@ @PTHREAD_CFLAGS@ $(CPPFLAGS) \ $(CXXFLAGS) SSQLS5_OBJECTS = \ ssqls5_ssqls5.o SSQLS6_CXXFLAGS = -Ilib -I@MYSQL_C_INC_DIR@ @PTHREAD_CFLAGS@ $(CPPFLAGS) \ $(CXXFLAGS) SSQLS6_OBJECTS = \ ssqls6_ssqls6.o STORE_IF_CXXFLAGS = -Ilib -I@MYSQL_C_INC_DIR@ @PTHREAD_CFLAGS@ $(CPPFLAGS) \ $(CXXFLAGS) STORE_IF_OBJECTS = \ store_if_store_if.o TQUERY1_CXXFLAGS = -Ilib -I@MYSQL_C_INC_DIR@ @PTHREAD_CFLAGS@ $(CPPFLAGS) \ $(CXXFLAGS) TQUERY1_OBJECTS = \ tquery1_tquery1.o TQUERY2_CXXFLAGS = -Ilib -I@MYSQL_C_INC_DIR@ @PTHREAD_CFLAGS@ $(CPPFLAGS) \ $(CXXFLAGS) TQUERY2_OBJECTS = \ tquery2_tquery2.o TQUERY3_CXXFLAGS = -Ilib -I@MYSQL_C_INC_DIR@ @PTHREAD_CFLAGS@ $(CPPFLAGS) \ $(CXXFLAGS) TQUERY3_OBJECTS = \ tquery3_tquery3.o TQUERY4_CXXFLAGS = -Ilib -I@MYSQL_C_INC_DIR@ @PTHREAD_CFLAGS@ $(CPPFLAGS) \ $(CXXFLAGS) TQUERY4_OBJECTS = \ tquery4_tquery4.o TRANSACTION_CXXFLAGS = -Ilib -I@MYSQL_C_INC_DIR@ @PTHREAD_CFLAGS@ $(CPPFLAGS) \ $(CXXFLAGS) TRANSACTION_OBJECTS = \ transaction_transaction.o ### Conditionally set variables: ### @COND_DEPS_TRACKING_0@CXXC = $(CXX) @COND_DEPS_TRACKING_1@CXXC = $(BK_DEPS) $(CXX) @COND_PLATFORM_OS2_1@__mysqlpp___importlib = -import \ @COND_PLATFORM_OS2_1@ $(LIBPREFIX)mysqlpp.$(DLLIMP_SUFFIX) @COND_WINDOWS_IMPLIB_1@__mysqlpp___importlib = \ @COND_WINDOWS_IMPLIB_1@ -Wl,--out-implib=$(LIBPREFIX)mysqlpp.$(DLLIMP_SUFFIX) @COND_PLATFORM_MACOSX_0_USE_SOVERSION_1@__mysqlpp___targetsuf2 \ @COND_PLATFORM_MACOSX_0_USE_SOVERSION_1@ = .$(SO_SUFFIX).3 @COND_PLATFORM_MACOSX_1_USE_SOVERSION_1@__mysqlpp___targetsuf2 \ @COND_PLATFORM_MACOSX_1_USE_SOVERSION_1@ = .3.$(SO_SUFFIX) @COND_USE_SOVERSION_0@__mysqlpp___targetsuf2 = .$(SO_SUFFIX) @COND_PLATFORM_MACOSX_0_USE_SOVERCYGWIN_0_USE_SOVERSION_1@__mysqlpp___targetsuf3 \ @COND_PLATFORM_MACOSX_0_USE_SOVERCYGWIN_0_USE_SOVERSION_1@ = \ @COND_PLATFORM_MACOSX_0_USE_SOVERCYGWIN_0_USE_SOVERSION_1@ .$(SO_SUFFIX).3.2.5 @COND_PLATFORM_MACOSX_1_USE_SOVERSION_1@__mysqlpp___targetsuf3 \ @COND_PLATFORM_MACOSX_1_USE_SOVERSION_1@ = .3.2.5.$(SO_SUFFIX) @COND_USE_SOVERSION_1_USE_SOVERSOLARIS_1@__mysqlpp___targetsuf3 \ @COND_USE_SOVERSION_1_USE_SOVERSOLARIS_1@ = .$(SO_SUFFIX).3 @COND_USE_SOVERCYGWIN_1_USE_SOVERSION_1@__mysqlpp___targetsuf3 \ @COND_USE_SOVERCYGWIN_1_USE_SOVERSION_1@ = -3.$(SO_SUFFIX) @COND_USE_SOVERSION_0@__mysqlpp___targetsuf3 = .$(SO_SUFFIX) @COND_USE_SOVERLINUX_1@__mysqlpp___soname_flags = \ @COND_USE_SOVERLINUX_1@ $(SONAME_FLAG)$(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf2) @COND_USE_SOVERSOLARIS_1@__mysqlpp___soname_flags \ @COND_USE_SOVERSOLARIS_1@ = \ @COND_USE_SOVERSOLARIS_1@ $(SONAME_FLAG)$(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) COND_USE_SOTWOSYMLINKS_1___mysqlpp___so_symlinks_cmd = (cd .; rm -f \ $(LIBPREFIX)mysqlpp.$(DLLIMP_SUFFIX) \ $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf2); $(LN_S) \ $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) \ $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf2); $(LN_S) \ $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf2) \ $(LIBPREFIX)mysqlpp.$(DLLIMP_SUFFIX)) @COND_USE_SOTWOSYMLINKS_1@__mysqlpp___so_symlinks_cmd = $(COND_USE_SOTWOSYMLINKS_1___mysqlpp___so_symlinks_cmd) COND_USE_SOVERSOLARIS_1___mysqlpp___so_symlinks_cmd = (cd .; rm -f \ $(LIBPREFIX)mysqlpp.$(DLLIMP_SUFFIX); $(LN_S) \ $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) \ $(LIBPREFIX)mysqlpp.$(DLLIMP_SUFFIX)) @COND_USE_SOVERSOLARIS_1@__mysqlpp___so_symlinks_cmd = $(COND_USE_SOVERSOLARIS_1___mysqlpp___so_symlinks_cmd) COND_USE_SOTWOSYMLINKS_1___mysqlpp___so_symlinks_inst_cmd = rm -f \ $(LIBPREFIX)mysqlpp.$(DLLIMP_SUFFIX) \ $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf2); $(LN_S) \ $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) \ $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf2); $(LN_S) \ $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf2) \ $(LIBPREFIX)mysqlpp.$(DLLIMP_SUFFIX) @COND_USE_SOTWOSYMLINKS_1@__mysqlpp___so_symlinks_inst_cmd = $(COND_USE_SOTWOSYMLINKS_1___mysqlpp___so_symlinks_inst_cmd) COND_USE_SOVERSOLARIS_1___mysqlpp___so_symlinks_inst_cmd = rm -f \ $(LIBPREFIX)mysqlpp.$(DLLIMP_SUFFIX); $(LN_S) \ $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) \ $(LIBPREFIX)mysqlpp.$(DLLIMP_SUFFIX); @COND_USE_SOVERSOLARIS_1@__mysqlpp___so_symlinks_inst_cmd = $(COND_USE_SOVERSOLARIS_1___mysqlpp___so_symlinks_inst_cmd) COND_USE_SOTWOSYMLINKS_1___mysqlpp___so_symlinks_uninst_cmd = rm -f \ $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf2) \ $(LIBPREFIX)mysqlpp.$(DLLIMP_SUFFIX) @COND_USE_SOTWOSYMLINKS_1@__mysqlpp___so_symlinks_uninst_cmd = $(COND_USE_SOTWOSYMLINKS_1___mysqlpp___so_symlinks_uninst_cmd) @COND_USE_SOVERSOLARIS_1@__mysqlpp___so_symlinks_uninst_cmd \ @COND_USE_SOVERSOLARIS_1@ = rm -f $(LIBPREFIX)mysqlpp.$(DLLIMP_SUFFIX) @COND_PLATFORM_MACOSX_1@__mysqlpp___macinstnamecmd \ @COND_PLATFORM_MACOSX_1@ = -install_name \ @COND_PLATFORM_MACOSX_1@ $(libdir)/$(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf2) ### Targets: ### all: $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(LIBPREFIX)mysqlpp_ssqls2parse$(LIBEXT) ssqlsxlat$(EXEEXT) test_array_index$(EXEEXT) test_cpool$(EXEEXT) test_datetime$(EXEEXT) test_inttypes$(EXEEXT) test_insertpolicy$(EXEEXT) test_manip$(EXEEXT) test_null_comparison$(EXEEXT) test_query_copy$(EXEEXT) test_qssqls$(EXEEXT) test_qstream$(EXEEXT) test_sqlstream$(EXEEXT) test_ssqls2$(EXEEXT) test_string$(EXEEXT) test_tcp$(EXEEXT) test_uds$(EXEEXT) test_wnp$(EXEEXT) $(LIBPREFIX)mysqlpp_excommon$(LIBEXT) cgi_jpeg$(EXEEXT) cpool$(EXEEXT) dbinfo$(EXEEXT) deadlock$(EXEEXT) fieldinf$(EXEEXT) for_each$(EXEEXT) load_jpeg$(EXEEXT) multiquery$(EXEEXT) resetdb$(EXEEXT) simple1$(EXEEXT) simple2$(EXEEXT) simple3$(EXEEXT) ssqls1$(EXEEXT) ssqls2$(EXEEXT) ssqls3$(EXEEXT) ssqls4$(EXEEXT) ssqls5$(EXEEXT) ssqls6$(EXEEXT) store_if$(EXEEXT) tquery1$(EXEEXT) tquery2$(EXEEXT) tquery3$(EXEEXT) tquery4$(EXEEXT) transaction$(EXEEXT) install: install_mysqlpp $(INSTALL_DIR) $(DESTDIR)$(prefix)/include/mysql++ (cd $(srcdir) ; $(INSTALL_DATA) lib/*.h $(DESTDIR)$(prefix)/include/mysql++) uninstall: uninstall_mysqlpp (cd $(DESTDIR)$(prefix)/include/mysql++ ; rm -f *.h) -rmdir $(prefix)/include/mysql++ rm -f $(DESTDIR)$(libdir)/$(DLLPREFIX)mysqlpp.$(SO_SUFFIX) install-strip: install $(STRIP) $(DESTDIR)$(libdir)/$(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) clean: rm -rf ./.deps ./.pch rm -f ./*.o rm -f $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) rm -f $(LIBPREFIX)mysqlpp.$(DLLIMP_SUFFIX) rm -f $(LIBPREFIX)mysqlpp.$(DLLIMP_SUFFIX) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf2) rm -f $(LIBPREFIX)mysqlpp_ssqls2parse$(LIBEXT) rm -f ssqlsxlat$(EXEEXT) rm -f test_array_index$(EXEEXT) rm -f test_cpool$(EXEEXT) rm -f test_datetime$(EXEEXT) rm -f test_inttypes$(EXEEXT) rm -f test_insertpolicy$(EXEEXT) rm -f test_manip$(EXEEXT) rm -f test_null_comparison$(EXEEXT) rm -f test_query_copy$(EXEEXT) rm -f test_qssqls$(EXEEXT) rm -f test_qstream$(EXEEXT) rm -f test_sqlstream$(EXEEXT) rm -f test_ssqls2$(EXEEXT) rm -f test_string$(EXEEXT) rm -f test_tcp$(EXEEXT) rm -f test_uds$(EXEEXT) rm -f test_wnp$(EXEEXT) rm -f $(LIBPREFIX)mysqlpp_excommon$(LIBEXT) rm -f cgi_jpeg$(EXEEXT) rm -f cpool$(EXEEXT) rm -f dbinfo$(EXEEXT) rm -f deadlock$(EXEEXT) rm -f fieldinf$(EXEEXT) rm -f for_each$(EXEEXT) rm -f load_jpeg$(EXEEXT) rm -f multiquery$(EXEEXT) rm -f resetdb$(EXEEXT) rm -f simple1$(EXEEXT) rm -f simple2$(EXEEXT) rm -f simple3$(EXEEXT) rm -f ssqls1$(EXEEXT) rm -f ssqls2$(EXEEXT) rm -f ssqls3$(EXEEXT) rm -f ssqls4$(EXEEXT) rm -f ssqls5$(EXEEXT) rm -f ssqls6$(EXEEXT) rm -f store_if$(EXEEXT) rm -f tquery1$(EXEEXT) rm -f tquery2$(EXEEXT) rm -f tquery3$(EXEEXT) rm -f tquery4$(EXEEXT) rm -f transaction$(EXEEXT) rm -rf doc/latex doc/pdf ; \ cd doc/html/refman ; \ for e in dot html map md5 png ; \ do \ rm -f doxygen.css [a-z]*.$$e ; \ done distclean: clean rm -f config.cache config.log config.status bk-deps bk-make-pch shared-ld-sh Makefile $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3): $(MYSQLPP_OBJECTS) lib/ssqls.h lib/querydef.h $(SHARED_LD_CXX) $@ $(MYSQLPP_OBJECTS) $(__mysqlpp___importlib) $(__mysqlpp___soname_flags) $(__mysqlpp___macinstnamecmd) -L@MYSQL_C_LIB_DIR@ -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) $(LIBS) $(__mysqlpp___so_symlinks_cmd) install_mysqlpp: $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(INSTALL_DIR) $(DESTDIR)$(libdir) $(INSTALL_DATA) $(LIBPREFIX)mysqlpp.$(DLLIMP_SUFFIX) $(DESTDIR)$(libdir) $(INSTALL_PROGRAM) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(DESTDIR)$(libdir) (cd $(DESTDIR)$(libdir) ; $(__mysqlpp___so_symlinks_inst_cmd)) uninstall_mysqlpp: rm -f $(DESTDIR)$(libdir)/$(LIBPREFIX)mysqlpp.$(DLLIMP_SUFFIX) rm -f $(DESTDIR)$(libdir)/$(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) (cd $(DESTDIR)$(libdir) ; $(__mysqlpp___so_symlinks_uninst_cmd)) $(LIBPREFIX)mysqlpp_ssqls2parse$(LIBEXT): $(SSQLS2PARSE_OBJECTS) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) rm -f $@ $(AR) $(AROPTIONS) $@ $(SSQLS2PARSE_OBJECTS) $(RANLIB) $@ ssqlsxlat$(EXEEXT): $(SSQLSXLAT_OBJECTS) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(LIBPREFIX)mysqlpp_ssqls2parse$(LIBEXT) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(SSQLSXLAT_OBJECTS) -L@MYSQL_C_LIB_DIR@ -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp -lmysqlpp_ssqls2parse -lmysqlpp $(LIBS) test_array_index$(EXEEXT): $(TEST_ARRAY_INDEX_OBJECTS) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(TEST_ARRAY_INDEX_OBJECTS) -L@MYSQL_C_LIB_DIR@ -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp $(LIBS) test_cpool$(EXEEXT): $(TEST_CPOOL_OBJECTS) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(TEST_CPOOL_OBJECTS) -L@MYSQL_C_LIB_DIR@ -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp $(LIBS) test_datetime$(EXEEXT): $(TEST_DATETIME_OBJECTS) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(TEST_DATETIME_OBJECTS) -L@MYSQL_C_LIB_DIR@ -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp $(LIBS) test_inttypes$(EXEEXT): $(TEST_INTTYPES_OBJECTS) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(TEST_INTTYPES_OBJECTS) -L@MYSQL_C_LIB_DIR@ -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp $(LIBS) test_insertpolicy$(EXEEXT): $(TEST_INSERTPOLICY_OBJECTS) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(TEST_INSERTPOLICY_OBJECTS) -L@MYSQL_C_LIB_DIR@ -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp $(LIBS) test_manip$(EXEEXT): $(TEST_MANIP_OBJECTS) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(TEST_MANIP_OBJECTS) -L@MYSQL_C_LIB_DIR@ -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp $(LIBS) test_null_comparison$(EXEEXT): $(TEST_NULL_COMPARISON_OBJECTS) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(TEST_NULL_COMPARISON_OBJECTS) -L@MYSQL_C_LIB_DIR@ -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp $(LIBS) test_query_copy$(EXEEXT): $(TEST_QUERY_COPY_OBJECTS) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(TEST_QUERY_COPY_OBJECTS) -L@MYSQL_C_LIB_DIR@ -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp $(LIBS) test_qssqls$(EXEEXT): $(TEST_QSSQLS_OBJECTS) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(TEST_QSSQLS_OBJECTS) -L@MYSQL_C_LIB_DIR@ -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp $(LIBS) test_qstream$(EXEEXT): $(TEST_QSTREAM_OBJECTS) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(TEST_QSTREAM_OBJECTS) -L@MYSQL_C_LIB_DIR@ -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp $(LIBS) test_sqlstream$(EXEEXT): $(TEST_SQLSTREAM_OBJECTS) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(TEST_SQLSTREAM_OBJECTS) -L@MYSQL_C_LIB_DIR@ -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp $(LIBS) test_ssqls2$(EXEEXT): $(TEST_SSQLS2_OBJECTS) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(LIBPREFIX)mysqlpp_ssqls2parse$(LIBEXT) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(LIBPREFIX)mysqlpp_ssqls2parse$(LIBEXT) $(CXX) -o $@ $(TEST_SSQLS2_OBJECTS) -L@MYSQL_C_LIB_DIR@ -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp -lmysqlpp_ssqls2parse -lmysqlpp -lmysqlpp_ssqls2parse $(LIBS) test_string$(EXEEXT): $(TEST_STRING_OBJECTS) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(TEST_STRING_OBJECTS) -L@MYSQL_C_LIB_DIR@ -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp $(LIBS) test_tcp$(EXEEXT): $(TEST_TCP_OBJECTS) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(TEST_TCP_OBJECTS) -L@MYSQL_C_LIB_DIR@ -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp $(LIBS) test_uds$(EXEEXT): $(TEST_UDS_OBJECTS) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(TEST_UDS_OBJECTS) -L@MYSQL_C_LIB_DIR@ -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp $(LIBS) test_wnp$(EXEEXT): $(TEST_WNP_OBJECTS) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(TEST_WNP_OBJECTS) -L@MYSQL_C_LIB_DIR@ -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp $(LIBS) $(LIBPREFIX)mysqlpp_excommon$(LIBEXT): $(EXCOMMON_OBJECTS) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) rm -f $@ $(AR) $(AROPTIONS) $@ $(EXCOMMON_OBJECTS) $(RANLIB) $@ cgi_jpeg$(EXEEXT): $(CGI_JPEG_OBJECTS) $(LIBPREFIX)mysqlpp_excommon$(LIBEXT) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(CGI_JPEG_OBJECTS) -L@MYSQL_C_LIB_DIR@ -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp $(LIBS) cpool$(EXEEXT): $(CPOOL_OBJECTS) $(LIBPREFIX)mysqlpp_excommon$(LIBEXT) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(CPOOL_OBJECTS) -L@MYSQL_C_LIB_DIR@ -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp $(LIBS) dbinfo$(EXEEXT): $(DBINFO_OBJECTS) $(LIBPREFIX)mysqlpp_excommon$(LIBEXT) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(DBINFO_OBJECTS) -L@MYSQL_C_LIB_DIR@ -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp $(LIBS) deadlock$(EXEEXT): $(DEADLOCK_OBJECTS) $(LIBPREFIX)mysqlpp_excommon$(LIBEXT) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(DEADLOCK_OBJECTS) -L@MYSQL_C_LIB_DIR@ -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp $(LIBS) fieldinf$(EXEEXT): $(FIELDINF_OBJECTS) $(LIBPREFIX)mysqlpp_excommon$(LIBEXT) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(FIELDINF_OBJECTS) -L@MYSQL_C_LIB_DIR@ -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp $(LIBS) for_each$(EXEEXT): $(FOR_EACH_OBJECTS) $(LIBPREFIX)mysqlpp_excommon$(LIBEXT) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(FOR_EACH_OBJECTS) -L@MYSQL_C_LIB_DIR@ -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp $(LIBS) load_jpeg$(EXEEXT): $(LOAD_JPEG_OBJECTS) $(LIBPREFIX)mysqlpp_excommon$(LIBEXT) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(LOAD_JPEG_OBJECTS) -L@MYSQL_C_LIB_DIR@ -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp $(LIBS) multiquery$(EXEEXT): $(MULTIQUERY_OBJECTS) $(LIBPREFIX)mysqlpp_excommon$(LIBEXT) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(MULTIQUERY_OBJECTS) -L@MYSQL_C_LIB_DIR@ -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp $(LIBS) resetdb$(EXEEXT): $(RESETDB_OBJECTS) $(LIBPREFIX)mysqlpp_excommon$(LIBEXT) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(RESETDB_OBJECTS) -L@MYSQL_C_LIB_DIR@ -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp $(LIBS) simple1$(EXEEXT): $(SIMPLE1_OBJECTS) $(LIBPREFIX)mysqlpp_excommon$(LIBEXT) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(SIMPLE1_OBJECTS) -L@MYSQL_C_LIB_DIR@ -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp $(LIBS) simple2$(EXEEXT): $(SIMPLE2_OBJECTS) $(LIBPREFIX)mysqlpp_excommon$(LIBEXT) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(SIMPLE2_OBJECTS) -L@MYSQL_C_LIB_DIR@ -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp $(LIBS) simple3$(EXEEXT): $(SIMPLE3_OBJECTS) $(LIBPREFIX)mysqlpp_excommon$(LIBEXT) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(SIMPLE3_OBJECTS) -L@MYSQL_C_LIB_DIR@ -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp $(LIBS) ssqls1$(EXEEXT): $(SSQLS1_OBJECTS) $(LIBPREFIX)mysqlpp_excommon$(LIBEXT) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(SSQLS1_OBJECTS) -L@MYSQL_C_LIB_DIR@ -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp $(LIBS) ssqls2$(EXEEXT): $(SSQLS2_OBJECTS) $(LIBPREFIX)mysqlpp_excommon$(LIBEXT) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(SSQLS2_OBJECTS) -L@MYSQL_C_LIB_DIR@ -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp $(LIBS) ssqls3$(EXEEXT): $(SSQLS3_OBJECTS) $(LIBPREFIX)mysqlpp_excommon$(LIBEXT) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(SSQLS3_OBJECTS) -L@MYSQL_C_LIB_DIR@ -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp $(LIBS) ssqls4$(EXEEXT): $(SSQLS4_OBJECTS) $(LIBPREFIX)mysqlpp_excommon$(LIBEXT) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(SSQLS4_OBJECTS) -L@MYSQL_C_LIB_DIR@ -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp $(LIBS) ssqls5$(EXEEXT): $(SSQLS5_OBJECTS) $(LIBPREFIX)mysqlpp_excommon$(LIBEXT) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(SSQLS5_OBJECTS) -L@MYSQL_C_LIB_DIR@ -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp $(LIBS) ssqls6$(EXEEXT): $(SSQLS6_OBJECTS) $(LIBPREFIX)mysqlpp_excommon$(LIBEXT) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(SSQLS6_OBJECTS) -L@MYSQL_C_LIB_DIR@ -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp $(LIBS) store_if$(EXEEXT): $(STORE_IF_OBJECTS) $(LIBPREFIX)mysqlpp_excommon$(LIBEXT) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(STORE_IF_OBJECTS) -L@MYSQL_C_LIB_DIR@ -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp $(LIBS) tquery1$(EXEEXT): $(TQUERY1_OBJECTS) $(LIBPREFIX)mysqlpp_excommon$(LIBEXT) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(TQUERY1_OBJECTS) -L@MYSQL_C_LIB_DIR@ -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp $(LIBS) tquery2$(EXEEXT): $(TQUERY2_OBJECTS) $(LIBPREFIX)mysqlpp_excommon$(LIBEXT) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(TQUERY2_OBJECTS) -L@MYSQL_C_LIB_DIR@ -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp $(LIBS) tquery3$(EXEEXT): $(TQUERY3_OBJECTS) $(LIBPREFIX)mysqlpp_excommon$(LIBEXT) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(TQUERY3_OBJECTS) -L@MYSQL_C_LIB_DIR@ -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp $(LIBS) tquery4$(EXEEXT): $(TQUERY4_OBJECTS) $(LIBPREFIX)mysqlpp_excommon$(LIBEXT) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(TQUERY4_OBJECTS) -L@MYSQL_C_LIB_DIR@ -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp $(LIBS) transaction$(EXEEXT): $(TRANSACTION_OBJECTS) $(LIBPREFIX)mysqlpp_excommon$(LIBEXT) $(DLLPREFIX)mysqlpp$(__mysqlpp___targetsuf3) $(CXX) -o $@ $(TRANSACTION_OBJECTS) -L@MYSQL_C_LIB_DIR@ -L. -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ $(LDFLAGS) -lmysqlpp_excommon -lmysqlpp $(LIBS) Makefile: configure.ac install.hta.in mysql++.bkl mysql++.spec.in doc/userman/userman.dbx.in lib/Doxyfile.in lib/mysql++.h.in ssx/Doxyfile.in bakefile_gen ./config.status lib/ssqls.h: lib/ssqls.pl cd lib ; ./ssqls.pl lib/querydef.h: lib/querydef.pl cd lib ; ./querydef.pl tags: ctags --recurse=yes . ctags: tags doc/html/refman/index.html: lib/Doxyfile lib/*.cpp lib/*.h cd lib ; doxygen > /dev/null doc/html/refman/ssx/index.html: ssx/Doxyfile ssx/*.cpp ssx/*.h cd ssx ; doxygen > /dev/null doc/html/userman/index.html: doc/userman/*.dbx doc/userman/userman.dbx.in cd doc/userman ; make html pdf doc: doc/html/refman/index.html doc/html/refman/ssx/index.html doc/html/userman/index.html @PACKAGE_NAME@-@PACKAGE_VERSION@: for d in config doc/html/refman/ssx doc/html/userman \ doc/refman doc/userman examples lib ssx test ; \ do \ mkdir -p @PACKAGE_NAME@-@PACKAGE_VERSION@/$$d ; \ done cp -RL *.bat *.in *.md *.txt abi.xml aclocal.m4 \ Bakefiles.bkgen bootstrap cleanmf config.guess config.h \ config.sub configure* dtest exrun install* Makefile.* \ mysql++.* osver @PACKAGE_NAME@-@PACKAGE_VERSION@ for d in vc200? ; do \ mkdir -p @PACKAGE_NAME@-@PACKAGE_VERSION@/$$d ; \ cp $$d/*.sln $$d/*.vcproj @PACKAGE_NAME@-@PACKAGE_VERSION@/$$d ; \ done cp config/*.m4 @PACKAGE_NAME@-@PACKAGE_VERSION@/config cp doc/userman/userman.dbx.in @PACKAGE_NAME@-@PACKAGE_VERSION@/doc/userman for e in cpp h jpg txt ; \ do \ cp examples/*.$$e @PACKAGE_NAME@-@PACKAGE_VERSION@/examples ; \ done for d in mfc wforms ; \ do \ mkdir -p @PACKAGE_NAME@-@PACKAGE_VERSION@/examples/vstudio/$$d ; \ cp examples/vstudio/$$d/* @PACKAGE_NAME@-@PACKAGE_VERSION@/examples/vstudio/$$d ; \ done cp lib/*.cpp lib/*.h lib/*.in lib/*.pl @PACKAGE_NAME@-@PACKAGE_VERSION@/lib cp test/*.cpp @PACKAGE_NAME@-@PACKAGE_VERSION@/test cp ssx/*.cpp ssx/*.h ssx/*.in @PACKAGE_NAME@-@PACKAGE_VERSION@/ssx cd @PACKAGE_NAME@-@PACKAGE_VERSION@ ; ./bootstrap nodoc nomaint rm -f @PACKAGE_NAME@-@PACKAGE_VERSION@/Makefile rm -f @PACKAGE_NAME@-@PACKAGE_VERSION@/config.log rm -f @PACKAGE_NAME@-@PACKAGE_VERSION@/config.status rm -fr @PACKAGE_NAME@-@PACKAGE_VERSION@/autom4te.cache abicheck: abi-compliance-checker -lib mysqlpp -dump abi.xml abi-compliance-checker -lib mysqlpp \ -old ../3.1.0/abi_dumps/mysqlpp/mysqlpp_3.1.0.abi.tar.gz \ -new ./abi_dumps/mysqlpp/mysqlpp_@PACKAGE_VERSION@.abi.tar.gz mv compat_reports/mysqlpp/*/compat_report.html ~/Desktop find compat_reports -empty -delete dist: doc @PACKAGE_NAME@-@PACKAGE_VERSION@ tar -chz -f @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz @PACKAGE_NAME@-@PACKAGE_VERSION@ rm -rf @PACKAGE_NAME@-@PACKAGE_VERSION@ rpm-prep: dist cp @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz ~/rpmbuild/SOURCES cd ~/rpmbuild/SPECS rpm: rpm-prep rpmbuild -ba mysql++.spec srpm: rpm-prep rpmbuild -bs mysql++.spec ebuild: dist cp @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz /usr/portage/distfiles cp mysql++.ebuild /usr/portage/dev-db/mysql++/@PACKAGE_NAME@-@PACKAGE_VERSION@.ebuild ebuild /usr/portage/dev-db/mysql++/@PACKAGE_NAME@-@PACKAGE_VERSION@.ebuild digest mysqlpp_beemutex.o: $(srcdir)/lib/beemutex.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/beemutex.cpp mysqlpp_cmdline.o: $(srcdir)/lib/cmdline.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/cmdline.cpp mysqlpp_connection.o: $(srcdir)/lib/connection.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/connection.cpp mysqlpp_cpool.o: $(srcdir)/lib/cpool.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/cpool.cpp mysqlpp_datetime.o: $(srcdir)/lib/datetime.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/datetime.cpp mysqlpp_dbdriver.o: $(srcdir)/lib/dbdriver.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/dbdriver.cpp mysqlpp_field_names.o: $(srcdir)/lib/field_names.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/field_names.cpp mysqlpp_field_types.o: $(srcdir)/lib/field_types.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/field_types.cpp mysqlpp_manip.o: $(srcdir)/lib/manip.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/manip.cpp mysqlpp_myset.o: $(srcdir)/lib/myset.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/myset.cpp mysqlpp_mysql++.o: $(srcdir)/lib/mysql++.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/mysql++.cpp mysqlpp_mystring.o: $(srcdir)/lib/mystring.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/mystring.cpp mysqlpp_null.o: $(srcdir)/lib/null.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/null.cpp mysqlpp_options.o: $(srcdir)/lib/options.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/options.cpp mysqlpp_qparms.o: $(srcdir)/lib/qparms.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/qparms.cpp mysqlpp_query.o: $(srcdir)/lib/query.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/query.cpp mysqlpp_result.o: $(srcdir)/lib/result.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/result.cpp mysqlpp_row.o: $(srcdir)/lib/row.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/row.cpp mysqlpp_scopedconnection.o: $(srcdir)/lib/scopedconnection.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/scopedconnection.cpp mysqlpp_sql_buffer.o: $(srcdir)/lib/sql_buffer.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/sql_buffer.cpp mysqlpp_sqlstream.o: $(srcdir)/lib/sqlstream.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/sqlstream.cpp mysqlpp_ssqls2.o: $(srcdir)/lib/ssqls2.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/ssqls2.cpp mysqlpp_stadapter.o: $(srcdir)/lib/stadapter.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/stadapter.cpp mysqlpp_tcp_connection.o: $(srcdir)/lib/tcp_connection.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/tcp_connection.cpp mysqlpp_transaction.o: $(srcdir)/lib/transaction.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/transaction.cpp mysqlpp_type_info.o: $(srcdir)/lib/type_info.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/type_info.cpp mysqlpp_uds_connection.o: $(srcdir)/lib/uds_connection.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/uds_connection.cpp mysqlpp_utility.o: $(srcdir)/lib/utility.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/utility.cpp mysqlpp_vallist.o: $(srcdir)/lib/vallist.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/vallist.cpp mysqlpp_wnp_connection.o: $(srcdir)/lib/wnp_connection.cpp $(CXXC) -c -o $@ $(MYSQLPP_CXXFLAGS) $(srcdir)/lib/wnp_connection.cpp ssqls2parse_parsev2.o: $(srcdir)/ssx/parsev2.cpp $(CXXC) -c -o $@ $(SSQLS2PARSE_CXXFLAGS) $(srcdir)/ssx/parsev2.cpp ssqlsxlat_genv2.o: $(srcdir)/ssx/genv2.cpp $(CXXC) -c -o $@ $(SSQLSXLAT_CXXFLAGS) $(srcdir)/ssx/genv2.cpp ssqlsxlat_main.o: $(srcdir)/ssx/main.cpp $(CXXC) -c -o $@ $(SSQLSXLAT_CXXFLAGS) $(srcdir)/ssx/main.cpp test_array_index_array_index.o: $(srcdir)/test/array_index.cpp $(CXXC) -c -o $@ $(TEST_ARRAY_INDEX_CXXFLAGS) $(srcdir)/test/array_index.cpp test_cpool_cpool.o: $(srcdir)/test/cpool.cpp $(CXXC) -c -o $@ $(TEST_CPOOL_CXXFLAGS) $(srcdir)/test/cpool.cpp test_datetime_datetime.o: $(srcdir)/test/datetime.cpp $(CXXC) -c -o $@ $(TEST_DATETIME_CXXFLAGS) $(srcdir)/test/datetime.cpp test_inttypes_inttypes.o: $(srcdir)/test/inttypes.cpp $(CXXC) -c -o $@ $(TEST_INTTYPES_CXXFLAGS) $(srcdir)/test/inttypes.cpp test_insertpolicy_insertpolicy.o: $(srcdir)/test/insertpolicy.cpp $(CXXC) -c -o $@ $(TEST_INSERTPOLICY_CXXFLAGS) $(srcdir)/test/insertpolicy.cpp test_manip_manip.o: $(srcdir)/test/manip.cpp $(CXXC) -c -o $@ $(TEST_MANIP_CXXFLAGS) $(srcdir)/test/manip.cpp test_null_comparison_null_comparison.o: $(srcdir)/test/null_comparison.cpp $(CXXC) -c -o $@ $(TEST_NULL_COMPARISON_CXXFLAGS) $(srcdir)/test/null_comparison.cpp test_query_copy_query_copy.o: $(srcdir)/test/query_copy.cpp $(CXXC) -c -o $@ $(TEST_QUERY_COPY_CXXFLAGS) $(srcdir)/test/query_copy.cpp test_qssqls_qssqls.o: $(srcdir)/test/qssqls.cpp $(CXXC) -c -o $@ $(TEST_QSSQLS_CXXFLAGS) $(srcdir)/test/qssqls.cpp test_qstream_qstream.o: $(srcdir)/test/qstream.cpp $(CXXC) -c -o $@ $(TEST_QSTREAM_CXXFLAGS) $(srcdir)/test/qstream.cpp test_sqlstream_sqlstream.o: $(srcdir)/test/sqlstream.cpp $(CXXC) -c -o $@ $(TEST_SQLSTREAM_CXXFLAGS) $(srcdir)/test/sqlstream.cpp test_ssqls2_ssqls2.o: $(srcdir)/test/ssqls2.cpp $(CXXC) -c -o $@ $(TEST_SSQLS2_CXXFLAGS) $(srcdir)/test/ssqls2.cpp test_string_string.o: $(srcdir)/test/string.cpp $(CXXC) -c -o $@ $(TEST_STRING_CXXFLAGS) $(srcdir)/test/string.cpp test_tcp_tcp.o: $(srcdir)/test/tcp.cpp $(CXXC) -c -o $@ $(TEST_TCP_CXXFLAGS) $(srcdir)/test/tcp.cpp test_uds_uds.o: $(srcdir)/test/uds.cpp $(CXXC) -c -o $@ $(TEST_UDS_CXXFLAGS) $(srcdir)/test/uds.cpp test_wnp_wnp.o: $(srcdir)/test/wnp.cpp $(CXXC) -c -o $@ $(TEST_WNP_CXXFLAGS) $(srcdir)/test/wnp.cpp excommon_printdata.o: $(srcdir)/examples/printdata.cpp $(CXXC) -c -o $@ $(EXCOMMON_CXXFLAGS) $(srcdir)/examples/printdata.cpp cgi_jpeg_cgi_jpeg.o: $(srcdir)/examples/cgi_jpeg.cpp $(CXXC) -c -o $@ $(CGI_JPEG_CXXFLAGS) $(srcdir)/examples/cgi_jpeg.cpp cpool_cpool.o: $(srcdir)/examples/cpool.cpp $(CXXC) -c -o $@ $(CPOOL_CXXFLAGS) $(srcdir)/examples/cpool.cpp dbinfo_dbinfo.o: $(srcdir)/examples/dbinfo.cpp $(CXXC) -c -o $@ $(DBINFO_CXXFLAGS) $(srcdir)/examples/dbinfo.cpp deadlock_deadlock.o: $(srcdir)/examples/deadlock.cpp $(CXXC) -c -o $@ $(DEADLOCK_CXXFLAGS) $(srcdir)/examples/deadlock.cpp fieldinf_fieldinf.o: $(srcdir)/examples/fieldinf.cpp $(CXXC) -c -o $@ $(FIELDINF_CXXFLAGS) $(srcdir)/examples/fieldinf.cpp for_each_for_each.o: $(srcdir)/examples/for_each.cpp $(CXXC) -c -o $@ $(FOR_EACH_CXXFLAGS) $(srcdir)/examples/for_each.cpp load_jpeg_load_jpeg.o: $(srcdir)/examples/load_jpeg.cpp $(CXXC) -c -o $@ $(LOAD_JPEG_CXXFLAGS) $(srcdir)/examples/load_jpeg.cpp multiquery_multiquery.o: $(srcdir)/examples/multiquery.cpp $(CXXC) -c -o $@ $(MULTIQUERY_CXXFLAGS) $(srcdir)/examples/multiquery.cpp resetdb_resetdb.o: $(srcdir)/examples/resetdb.cpp $(CXXC) -c -o $@ $(RESETDB_CXXFLAGS) $(srcdir)/examples/resetdb.cpp simple1_simple1.o: $(srcdir)/examples/simple1.cpp $(CXXC) -c -o $@ $(SIMPLE1_CXXFLAGS) $(srcdir)/examples/simple1.cpp simple2_simple2.o: $(srcdir)/examples/simple2.cpp $(CXXC) -c -o $@ $(SIMPLE2_CXXFLAGS) $(srcdir)/examples/simple2.cpp simple3_simple3.o: $(srcdir)/examples/simple3.cpp $(CXXC) -c -o $@ $(SIMPLE3_CXXFLAGS) $(srcdir)/examples/simple3.cpp ssqls1_ssqls1.o: $(srcdir)/examples/ssqls1.cpp $(CXXC) -c -o $@ $(SSQLS1_CXXFLAGS) $(srcdir)/examples/ssqls1.cpp ssqls2_ssqls2.o: $(srcdir)/examples/ssqls2.cpp $(CXXC) -c -o $@ $(SSQLS2_CXXFLAGS) $(srcdir)/examples/ssqls2.cpp ssqls3_ssqls3.o: $(srcdir)/examples/ssqls3.cpp $(CXXC) -c -o $@ $(SSQLS3_CXXFLAGS) $(srcdir)/examples/ssqls3.cpp ssqls4_ssqls4.o: $(srcdir)/examples/ssqls4.cpp $(CXXC) -c -o $@ $(SSQLS4_CXXFLAGS) $(srcdir)/examples/ssqls4.cpp ssqls5_ssqls5.o: $(srcdir)/examples/ssqls5.cpp $(CXXC) -c -o $@ $(SSQLS5_CXXFLAGS) $(srcdir)/examples/ssqls5.cpp ssqls6_ssqls6.o: $(srcdir)/examples/ssqls6.cpp $(CXXC) -c -o $@ $(SSQLS6_CXXFLAGS) $(srcdir)/examples/ssqls6.cpp store_if_store_if.o: $(srcdir)/examples/store_if.cpp $(CXXC) -c -o $@ $(STORE_IF_CXXFLAGS) $(srcdir)/examples/store_if.cpp tquery1_tquery1.o: $(srcdir)/examples/tquery1.cpp $(CXXC) -c -o $@ $(TQUERY1_CXXFLAGS) $(srcdir)/examples/tquery1.cpp tquery2_tquery2.o: $(srcdir)/examples/tquery2.cpp $(CXXC) -c -o $@ $(TQUERY2_CXXFLAGS) $(srcdir)/examples/tquery2.cpp tquery3_tquery3.o: $(srcdir)/examples/tquery3.cpp $(CXXC) -c -o $@ $(TQUERY3_CXXFLAGS) $(srcdir)/examples/tquery3.cpp tquery4_tquery4.o: $(srcdir)/examples/tquery4.cpp $(CXXC) -c -o $@ $(TQUERY4_CXXFLAGS) $(srcdir)/examples/tquery4.cpp transaction_transaction.o: $(srcdir)/examples/transaction.cpp $(CXXC) -c -o $@ $(TRANSACTION_CXXFLAGS) $(srcdir)/examples/transaction.cpp # Include dependency info, if present: @IF_GNU_MAKE@-include ./.deps/*.d .PHONY: all install uninstall clean distclean install_mysqlpp uninstall_mysqlpp \ tags mysql++-3.2.5/aclocal.m4000644 000765 000024 00001325041 13515046524 015472 0ustar00tangentstaff000000 000000 # generated automatically by aclocal 1.16.1 -*- Autoconf -*- # Copyright (C) 1996-2018 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) m4_include([config/acx_pthread.m4]) m4_include([config/libm.m4]) m4_include([config/localtime_r.m4]) m4_include([config/mysql_loc.m4]) m4_include([config/mysql_ssl.m4]) m4_include([config/socket_nsl.m4]) m4_include([config/stl_slist.m4]) dnl dnl This file is part of Bakefile (http://www.bakefile.org) dnl dnl Copyright (C) 2003-2007 Vaclav Slavik, David Elliott and others dnl dnl Permission is hereby granted, free of charge, to any person obtaining a dnl copy of this software and associated documentation files (the "Software"), dnl to deal in the Software without restriction, including without limitation dnl the rights to use, copy, modify, merge, publish, distribute, sublicense, dnl and/or sell copies of the Software, and to permit persons to whom the dnl Software is furnished to do so, subject to the following conditions: dnl dnl The above copyright notice and this permission notice shall be included in dnl all copies or substantial portions of the Software. dnl dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR dnl IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, dnl FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL dnl THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER dnl LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING dnl FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER dnl DEALINGS IN THE SOFTWARE. dnl dnl Compiler detection macros by David Elliott and Vadim Zeitlin dnl dnl =========================================================================== dnl Macros to detect different C/C++ compilers dnl =========================================================================== dnl Based on autoconf _AC_LANG_COMPILER_GNU dnl _AC_BAKEFILE_LANG_COMPILER(NAME, LANG, SYMBOL, IF-YES, IF-NO) AC_DEFUN([_AC_BAKEFILE_LANG_COMPILER], [ AC_LANG_PUSH($2) AC_CACHE_CHECK( [whether we are using the $1 $2 compiler], [bakefile_cv_[]_AC_LANG_ABBREV[]_compiler_[]$3], [AC_TRY_COMPILE( [], [ #ifndef $3 choke me #endif ], [bakefile_cv_[]_AC_LANG_ABBREV[]_compiler_[]$3=yes], [bakefile_cv_[]_AC_LANG_ABBREV[]_compiler_[]$3=no] ) ] ) if test "x$bakefile_cv_[]_AC_LANG_ABBREV[]_compiler_[]$3" = "xyes"; then :; $4 else :; $5 fi AC_LANG_POP($2) ]) dnl More specific version of the above macro checking whether the compiler dnl version is at least the given one (assumes that we do use this compiler) dnl dnl _AC_BAKEFILE_LANG_COMPILER_LATER_THAN(NAME, LANG, SYMBOL, VER, VERMSG, IF-YES, IF-NO) AC_DEFUN([_AC_BAKEFILE_LANG_COMPILER_LATER_THAN], [ AC_LANG_PUSH($2) AC_CACHE_CHECK( [whether we are using $1 $2 compiler v$5 or later], [bakefile_cv_[]_AC_LANG_ABBREV[]_compiler_[]$3[]_lt_[]$4], [AC_TRY_COMPILE( [], [ #ifndef $3 || $3 < $4 choke me #endif ], [bakefile_cv_[]_AC_LANG_ABBREV[]_compiler_[]$3[]_lt_[]$4=yes], [bakefile_cv_[]_AC_LANG_ABBREV[]_compiler_[]$3[]_lt_[]$4=no] ) ] ) if test "x$bakefile_cv_[]_AC_LANG_ABBREV[]_compiler_[]$3[]_lt_[]$4" = "xyes"; then :; $6 else :; $7 fi AC_LANG_POP($2) ]) dnl IBM xlC compiler defines __xlC__ for both C and C++ AC_DEFUN([AC_BAKEFILE_PROG_XLCC], [ _AC_BAKEFILE_LANG_COMPILER([IBM xlC], C, __xlC__, XLCC=yes) ]) AC_DEFUN([AC_BAKEFILE_PROG_XLCXX], [ _AC_BAKEFILE_LANG_COMPILER([IBM xlC], C++, __xlC__, XLCXX=yes) ]) dnl recent versions of SGI mipsPro compiler define _SGI_COMPILER_VERSION dnl dnl NB: old versions define _COMPILER_VERSION but this could probably be dnl defined by other compilers too so don't test for it to be safe AC_DEFUN([AC_BAKEFILE_PROG_SGICC], [ _AC_BAKEFILE_LANG_COMPILER(SGI, C, _SGI_COMPILER_VERSION, SGICC=yes) ]) AC_DEFUN([AC_BAKEFILE_PROG_SGICXX], [ _AC_BAKEFILE_LANG_COMPILER(SGI, C++, _SGI_COMPILER_VERSION, SGICXX=yes) ]) dnl Sun compiler defines __SUNPRO_C/__SUNPRO_CC AC_DEFUN([AC_BAKEFILE_PROG_SUNCC], [ _AC_BAKEFILE_LANG_COMPILER(Sun, C, __SUNPRO_C, SUNCC=yes) ]) AC_DEFUN([AC_BAKEFILE_PROG_SUNCXX], [ _AC_BAKEFILE_LANG_COMPILER(Sun, C++, __SUNPRO_CC, SUNCXX=yes) ]) dnl Intel icc compiler defines __INTEL_COMPILER for both C and C++ AC_DEFUN([AC_BAKEFILE_PROG_INTELCC], [ _AC_BAKEFILE_LANG_COMPILER(Intel, C, __INTEL_COMPILER, INTELCC=yes) ]) AC_DEFUN([AC_BAKEFILE_PROG_INTELCXX], [ _AC_BAKEFILE_LANG_COMPILER(Intel, C++, __INTEL_COMPILER, INTELCXX=yes) ]) dnl Intel compiler command line options changed in incompatible ways sometimes dnl before v8 (-KPIC was replaced with gcc-compatible -fPIC) and again in v10 dnl (-create-pch deprecated in favour of -pch-create) so we need to test for dnl its exact version too AC_DEFUN([AC_BAKEFILE_PROG_INTELCC_8], [ _AC_BAKEFILE_LANG_COMPILER_LATER_THAN(Intel, C, __INTEL_COMPILER, 800, 8, INTELCC8=yes) ]) AC_DEFUN([AC_BAKEFILE_PROG_INTELCXX_8], [ _AC_BAKEFILE_LANG_COMPILER_LATER_THAN(Intel, C++, __INTEL_COMPILER, 800, 8, INTELCXX8=yes) ]) AC_DEFUN([AC_BAKEFILE_PROG_INTELCC_10], [ _AC_BAKEFILE_LANG_COMPILER_LATER_THAN(Intel, C, __INTEL_COMPILER, 1000, 10, INTELCC10=yes) ]) AC_DEFUN([AC_BAKEFILE_PROG_INTELCXX_10], [ _AC_BAKEFILE_LANG_COMPILER_LATER_THAN(Intel, C++, __INTEL_COMPILER, 1000, 10, INTELCXX10=yes) ]) dnl HP-UX aCC: see http://docs.hp.com/en/6162/preprocess.htm#macropredef AC_DEFUN([AC_BAKEFILE_PROG_HPCC], [ _AC_BAKEFILE_LANG_COMPILER(HP, C, __HP_cc, HPCC=yes) ]) AC_DEFUN([AC_BAKEFILE_PROG_HPCXX], [ _AC_BAKEFILE_LANG_COMPILER(HP, C++, __HP_aCC, HPCXX=yes) ]) dnl Tru64 cc and cxx AC_DEFUN([AC_BAKEFILE_PROG_COMPAQCC], [ _AC_BAKEFILE_LANG_COMPILER(Compaq, C, __DECC, COMPAQCC=yes) ]) AC_DEFUN([AC_BAKEFILE_PROG_COMPAQCXX], [ _AC_BAKEFILE_LANG_COMPILER(Compaq, C++, __DECCXX, COMPAQCXX=yes) ]) dnl =========================================================================== dnl Macros to do all of the compiler detections as one macro dnl =========================================================================== dnl check for different proprietary compilers depending on target platform dnl _AC_BAKEFILE_PROG_COMPILER(LANG) AC_DEFUN([_AC_BAKEFILE_PROG_COMPILER], [ AC_REQUIRE([AC_PROG_$1]) dnl Intel compiler can be used under several different OS and even dnl different architectures (x86, amd64 and Itanium) so it's easier to just dnl always test for it AC_BAKEFILE_PROG_INTEL$1 dnl If we use Intel compiler we also need to know its version if test "$INTEL$1" = "yes"; then AC_BAKEFILE_PROG_INTEL$1_8 AC_BAKEFILE_PROG_INTEL$1_10 fi dnl if we're using gcc, we can't be using any of incompatible compilers if test "x$G$1" != "xyes"; then dnl most of these compilers are only used under well-defined OS so dnl don't waste time checking for them on other ones case `uname -s` in AIX*) AC_BAKEFILE_PROG_XL$1 ;; Darwin) AC_BAKEFILE_PROG_XL$1 ;; IRIX*) AC_BAKEFILE_PROG_SGI$1 ;; Linux*) dnl Sun CC is now available under Linux too, test for it unless dnl we already found that we were using a different compiler if test "$INTEL$1" != "yes"; then AC_BAKEFILE_PROG_SUN$1 fi ;; HP-UX*) AC_BAKEFILE_PROG_HP$1 ;; OSF1) AC_BAKEFILE_PROG_COMPAQ$1 ;; SunOS) AC_BAKEFILE_PROG_SUN$1 ;; esac fi ]) AC_DEFUN([AC_BAKEFILE_PROG_CC], [ _AC_BAKEFILE_PROG_COMPILER(CC) ]) AC_DEFUN([AC_BAKEFILE_PROG_CXX], [ _AC_BAKEFILE_PROG_COMPILER(CXX) ]) dnl dnl This file is part of Bakefile (http://www.bakefile.org) dnl dnl Copyright (C) 2003-2007 Vaclav Slavik and others dnl dnl Permission is hereby granted, free of charge, to any person obtaining a dnl copy of this software and associated documentation files (the "Software"), dnl to deal in the Software without restriction, including without limitation dnl the rights to use, copy, modify, merge, publish, distribute, sublicense, dnl and/or sell copies of the Software, and to permit persons to whom the dnl Software is furnished to do so, subject to the following conditions: dnl dnl The above copyright notice and this permission notice shall be included in dnl all copies or substantial portions of the Software. dnl dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR dnl IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, dnl FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL dnl THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER dnl LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING dnl FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER dnl DEALINGS IN THE SOFTWARE. dnl dnl Support macros for makefiles generated by BAKEFILE. dnl dnl --------------------------------------------------------------------------- dnl Lots of compiler & linker detection code contained here was taken from dnl wxWidgets configure.in script (see https://www.wxwidgets.org) dnl --------------------------------------------------------------------------- dnl --------------------------------------------------------------------------- dnl AC_BAKEFILE_GNUMAKE dnl dnl Detects GNU make dnl --------------------------------------------------------------------------- AC_DEFUN([AC_BAKEFILE_GNUMAKE], [ dnl does make support "-include" (only GNU make does AFAIK)? AC_CACHE_CHECK([if make is GNU make], bakefile_cv_prog_makeisgnu, [ if ( ${SHELL-sh} -c "${MAKE-make} --version" 2> /dev/null | egrep -s GNU > /dev/null); then bakefile_cv_prog_makeisgnu="yes" else bakefile_cv_prog_makeisgnu="no" fi ]) if test "x$bakefile_cv_prog_makeisgnu" = "xyes"; then IF_GNU_MAKE="" else IF_GNU_MAKE="#" fi AC_SUBST(IF_GNU_MAKE) ]) dnl --------------------------------------------------------------------------- dnl AC_BAKEFILE_PLATFORM dnl dnl Detects platform and sets PLATFORM_XXX variables accordingly dnl --------------------------------------------------------------------------- AC_DEFUN([AC_BAKEFILE_PLATFORM], [ PLATFORM_UNIX=0 PLATFORM_WIN32=0 PLATFORM_MAC=0 PLATFORM_MACOS=0 PLATFORM_MACOSX=0 PLATFORM_BEOS=0 if test "x$BAKEFILE_FORCE_PLATFORM" = "x"; then case "${BAKEFILE_HOST}" in *-*-mingw32* ) PLATFORM_WIN32=1 ;; *-*-darwin* ) PLATFORM_MAC=1 PLATFORM_MACOSX=1 ;; *-*-beos* ) PLATFORM_BEOS=1 ;; powerpc-apple-macos* ) PLATFORM_MAC=1 PLATFORM_MACOS=1 ;; * ) PLATFORM_UNIX=1 ;; esac else case "$BAKEFILE_FORCE_PLATFORM" in win32 ) PLATFORM_WIN32=1 ;; darwin ) PLATFORM_MAC=1 PLATFORM_MACOSX=1 ;; unix ) PLATFORM_UNIX=1 ;; beos ) PLATFORM_BEOS=1 ;; * ) AC_MSG_ERROR([Unknown platform: $BAKEFILE_FORCE_PLATFORM]) ;; esac fi AC_SUBST(PLATFORM_UNIX) AC_SUBST(PLATFORM_WIN32) AC_SUBST(PLATFORM_MAC) AC_SUBST(PLATFORM_MACOS) AC_SUBST(PLATFORM_MACOSX) AC_SUBST(PLATFORM_BEOS) ]) dnl --------------------------------------------------------------------------- dnl AC_BAKEFILE_PLATFORM_SPECIFICS dnl dnl Sets misc platform-specific settings dnl --------------------------------------------------------------------------- AC_DEFUN([AC_BAKEFILE_PLATFORM_SPECIFICS], [ case "${BAKEFILE_HOST}" in *-*-darwin* ) dnl For Unix to MacOS X porting instructions, see: dnl http://fink.sourceforge.net/doc/porting/porting.html if test "x$GCC" = "xyes"; then CFLAGS="$CFLAGS -fno-common" CXXFLAGS="$CXXFLAGS -fno-common" fi if test "x$XLCC" = "xyes"; then CFLAGS="$CFLAGS -qnocommon" CXXFLAGS="$CXXFLAGS -qnocommon" fi ;; i*86-*-beos* ) LDFLAGS="-L/boot/develop/lib/x86 $LDFLAGS" ;; esac ]) dnl --------------------------------------------------------------------------- dnl AC_BAKEFILE_SUFFIXES dnl dnl Detects shared various suffixes for shared libraries, libraries, programs, dnl plugins etc. dnl --------------------------------------------------------------------------- AC_DEFUN([AC_BAKEFILE_SUFFIXES], [ SO_SUFFIX="so" SO_SUFFIX_MODULE="so" EXEEXT="" LIBPREFIX="lib" LIBEXT=".a" DLLPREFIX="lib" DLLPREFIX_MODULE="" DLLIMP_SUFFIX="" dlldir="$libdir" case "${BAKEFILE_HOST}" in dnl PA-RISC HP systems used .sl but IA64 use ELF-64 and so use the dnl standard .so extension ia64-hp-hpux* ) ;; *-hp-hpux* ) SO_SUFFIX="sl" SO_SUFFIX_MODULE="sl" ;; *-*-aix* ) dnl quoting from dnl http://www-1.ibm.com/servers/esdd/articles/gnu.html: dnl Both archive libraries and shared libraries on AIX have an dnl .a extension. This will explain why you can't link with an dnl .so and why it works with the name changed to .a. SO_SUFFIX="a" SO_SUFFIX_MODULE="a" ;; *-*-cygwin* ) SO_SUFFIX="dll" SO_SUFFIX_MODULE="dll" DLLIMP_SUFFIX="dll.a" EXEEXT=".exe" DLLPREFIX="cyg" dlldir="$bindir" ;; *-*-mingw32* ) SO_SUFFIX="dll" SO_SUFFIX_MODULE="dll" DLLIMP_SUFFIX="dll.a" EXEEXT=".exe" DLLPREFIX="" dlldir="$bindir" ;; *-*-darwin* ) SO_SUFFIX="dylib" SO_SUFFIX_MODULE="bundle" ;; esac if test "x$DLLIMP_SUFFIX" = "x" ; then DLLIMP_SUFFIX="$SO_SUFFIX" fi AC_SUBST(SO_SUFFIX) AC_SUBST(SO_SUFFIX_MODULE) AC_SUBST(DLLIMP_SUFFIX) AC_SUBST(EXEEXT) AC_SUBST(LIBPREFIX) AC_SUBST(LIBEXT) AC_SUBST(DLLPREFIX) AC_SUBST(DLLPREFIX_MODULE) AC_SUBST(dlldir) ]) dnl --------------------------------------------------------------------------- dnl AC_BAKEFILE_SHARED_LD dnl dnl Detects command for making shared libraries, substitutes SHARED_LD_CC dnl and SHARED_LD_CXX. dnl --------------------------------------------------------------------------- AC_DEFUN([AC_BAKEFILE_SHARED_LD], [ dnl the extra compiler flags needed for compilation of shared library PIC_FLAG="" if test "x$GCC" = "xyes"; then dnl the switch for gcc is the same under all platforms PIC_FLAG="-fPIC" fi dnl Defaults for GCC and ELF .so shared libs: SHARED_LD_CC="\$(CC) -shared ${PIC_FLAG} -o" SHARED_LD_CXX="\$(CXX) -shared ${PIC_FLAG} -o" WINDOWS_IMPLIB=0 case "${BAKEFILE_HOST}" in *-hp-hpux* ) dnl default settings are good for gcc but not for the native HP-UX if test "x$GCC" != "xyes"; then dnl no idea why it wants it, but it does LDFLAGS="$LDFLAGS -L/usr/lib" SHARED_LD_CC="${CC} -b -o" SHARED_LD_CXX="${CXX} -b -o" PIC_FLAG="+Z" fi ;; *-*-linux* ) dnl newer icc versions use -fPIC just as gcc does and, in fact, the dnl newest (v10+) ones don't even understand -KPIC any longer if test "$INTELCC" = "yes" -a "$INTELCC8" != "yes"; then PIC_FLAG="-KPIC" elif test "x$SUNCXX" = "xyes"; then SHARED_LD_CC="${CC} -G -o" SHARED_LD_CXX="${CXX} -G -o" PIC_FLAG="-KPIC" fi ;; *-*-solaris2* ) if test "x$SUNCXX" = xyes ; then SHARED_LD_CC="${CC} -G -o" SHARED_LD_CXX="${CXX} -G -o" PIC_FLAG="-KPIC" fi ;; *-*-darwin* ) AC_BAKEFILE_CREATE_FILE_SHARED_LD_SH chmod +x shared-ld-sh SHARED_LD_MODULE_CC="`pwd`/shared-ld-sh -bundle -headerpad_max_install_names -o" SHARED_LD_MODULE_CXX="CXX=\"\$(CXX)\" $SHARED_LD_MODULE_CC" dnl Most apps benefit from being fully binded (its faster and static dnl variables initialized at startup work). dnl This can be done either with the exe linker flag -Wl,-bind_at_load dnl or with a double stage link in order to create a single module dnl "-init _wxWindowsDylibInit" not useful with lazy linking solved dnl If using newer dev tools then there is a -single_module flag that dnl we can use to do this for dylibs, otherwise we'll need to use a helper dnl script. Check the version of gcc to see which way we can go: AC_CACHE_CHECK([for gcc 3.1 or later], bakefile_cv_gcc31, [ AC_TRY_COMPILE([], [ #if (__GNUC__ < 3) || \ ((__GNUC__ == 3) && (__GNUC_MINOR__ < 1)) This is old gcc #endif ], [ bakefile_cv_gcc31=yes ], [ bakefile_cv_gcc31=no ] ) ]) if test "$bakefile_cv_gcc31" = "no"; then dnl Use the shared-ld-sh helper script SHARED_LD_CC="`pwd`/shared-ld-sh -dynamiclib -headerpad_max_install_names -o" SHARED_LD_CXX="$SHARED_LD_CC" else dnl Use the -single_module flag and let the linker do it for us SHARED_LD_CC="\${CC} -dynamiclib -single_module -headerpad_max_install_names -o" SHARED_LD_CXX="\${CXX} -dynamiclib -single_module -headerpad_max_install_names -o" fi if test "x$GCC" = "xyes"; then PIC_FLAG="-dynamic -fPIC" fi if test "x$XLCC" = "xyes"; then PIC_FLAG="-dynamic -DPIC" fi ;; *-*-aix* ) if test "x$GCC" = "xyes"; then dnl at least gcc 2.95 warns that -fPIC is ignored when dnl compiling each and every file under AIX which is annoying, dnl so don't use it there (it's useless as AIX runs on dnl position-independent architectures only anyhow) PIC_FLAG="" dnl -bexpfull is needed by AIX linker to export all symbols (by dnl default it doesn't export any and even with -bexpall it dnl doesn't export all C++ support symbols, e.g. vtable dnl pointers) but it's only available starting from 5.1 (with dnl maintenance pack 2, whatever this is), see dnl http://www-128.ibm.com/developerworks/eserver/articles/gnu.html case "${BAKEFILE_HOST}" in *-*-aix5* ) LD_EXPFULL="-Wl,-bexpfull" ;; esac SHARED_LD_CC="\$(CC) -shared $LD_EXPFULL -o" SHARED_LD_CXX="\$(CXX) -shared $LD_EXPFULL -o" else dnl FIXME: makeC++SharedLib is obsolete, what should we do for dnl recent AIX versions? AC_CHECK_PROG(AIX_CXX_LD, makeC++SharedLib, makeC++SharedLib, /usr/lpp/xlC/bin/makeC++SharedLib) SHARED_LD_CC="$AIX_CC_LD -p 0 -o" SHARED_LD_CXX="$AIX_CXX_LD -p 0 -o" fi ;; *-*-beos* ) dnl can't use gcc under BeOS for shared library creation because it dnl complains about missing 'main' SHARED_LD_CC="${LD} -nostart -o" SHARED_LD_CXX="${LD} -nostart -o" ;; *-*-irix* ) dnl default settings are ok for gcc if test "x$GCC" != "xyes"; then PIC_FLAG="-KPIC" fi ;; *-*-cygwin* | *-*-mingw32* | *-*-mingw64* ) PIC_FLAG="" SHARED_LD_CC="\$(CC) -shared -o" SHARED_LD_CXX="\$(CXX) -shared -o" WINDOWS_IMPLIB=1 ;; powerpc-apple-macos* | \ *-*-freebsd* | *-*-openbsd* | *-*-haiku* | *-*-netbsd* | *-*-gnu* | *-*-k*bsd*-gnu | \ *-*-mirbsd* | \ *-*-sunos4* | \ *-*-osf* | \ *-*-dgux5* | \ *-*-sysv5* ) dnl defaults are ok ;; *) AC_MSG_ERROR(unknown system type $BAKEFILE_HOST.) esac if test "x$PIC_FLAG" != "x" ; then PIC_FLAG="$PIC_FLAG -DPIC" fi if test "x$SHARED_LD_MODULE_CC" = "x" ; then SHARED_LD_MODULE_CC="$SHARED_LD_CC" fi if test "x$SHARED_LD_MODULE_CXX" = "x" ; then SHARED_LD_MODULE_CXX="$SHARED_LD_CXX" fi AC_SUBST(SHARED_LD_CC) AC_SUBST(SHARED_LD_CXX) AC_SUBST(SHARED_LD_MODULE_CC) AC_SUBST(SHARED_LD_MODULE_CXX) AC_SUBST(PIC_FLAG) AC_SUBST(WINDOWS_IMPLIB) ]) dnl --------------------------------------------------------------------------- dnl AC_BAKEFILE_SHARED_VERSIONS dnl dnl Detects linker options for attaching versions (sonames) to shared libs. dnl --------------------------------------------------------------------------- AC_DEFUN([AC_BAKEFILE_SHARED_VERSIONS], [ USE_SOVERSION=0 USE_SOVERLINUX=0 USE_SOVERSOLARIS=0 USE_SOVERCYGWIN=0 USE_SOTWOSYMLINKS=0 USE_MACVERSION=0 SONAME_FLAG= case "${BAKEFILE_HOST}" in *-*-linux* | *-*-freebsd* | *-*-openbsd* | *-*-haiku* | *-*-netbsd* | \ *-*-k*bsd*-gnu | *-*-mirbsd* | *-*-gnu* ) if test "x$SUNCXX" = "xyes"; then SONAME_FLAG="-h " else SONAME_FLAG="-Wl,-soname," fi USE_SOVERSION=1 USE_SOVERLINUX=1 USE_SOTWOSYMLINKS=1 ;; *-*-solaris2* ) SONAME_FLAG="-h " USE_SOVERSION=1 USE_SOVERSOLARIS=1 ;; *-*-darwin* ) USE_MACVERSION=1 USE_SOVERSION=1 USE_SOTWOSYMLINKS=1 ;; *-*-cygwin* ) USE_SOVERSION=1 USE_SOVERCYGWIN=1 ;; esac AC_SUBST(USE_SOVERSION) AC_SUBST(USE_SOVERLINUX) AC_SUBST(USE_SOVERSOLARIS) AC_SUBST(USE_SOVERCYGWIN) AC_SUBST(USE_MACVERSION) AC_SUBST(USE_SOTWOSYMLINKS) AC_SUBST(SONAME_FLAG) ]) dnl --------------------------------------------------------------------------- dnl AC_BAKEFILE_DEPS dnl dnl Detects available C/C++ dependency tracking options dnl --------------------------------------------------------------------------- AC_DEFUN([AC_BAKEFILE_DEPS], [ AC_ARG_ENABLE([dependency-tracking], AS_HELP_STRING([--disable-dependency-tracking], [don't use dependency tracking even if the compiler can]), [bk_use_trackdeps="$enableval"]) AC_MSG_CHECKING([for dependency tracking method]) BK_DEPS="" if test "x$bk_use_trackdeps" = "xno" ; then DEPS_TRACKING=0 AC_MSG_RESULT([disabled]) else DEPS_TRACKING=1 if test "x$GCC" = "xyes"; then DEPSMODE=gcc DEPSFLAG="-MMD" AC_MSG_RESULT([gcc]) elif test "x$SUNCC" = "xyes"; then DEPSMODE=unixcc DEPSFLAG="-xM1" AC_MSG_RESULT([Sun cc]) elif test "x$SGICC" = "xyes"; then DEPSMODE=unixcc DEPSFLAG="-M" AC_MSG_RESULT([SGI cc]) elif test "x$HPCC" = "xyes"; then DEPSMODE=unixcc DEPSFLAG="+make" AC_MSG_RESULT([HP cc]) elif test "x$COMPAQCC" = "xyes"; then DEPSMODE=gcc DEPSFLAG="-MD" AC_MSG_RESULT([Compaq cc]) else DEPS_TRACKING=0 AC_MSG_RESULT([none]) fi if test $DEPS_TRACKING = 1 ; then AC_BAKEFILE_CREATE_FILE_BK_DEPS chmod +x bk-deps dnl FIXME: make this $(top_builddir)/bk-deps once autoconf-2.60 dnl is required (and so top_builddir is never empty): BK_DEPS="`pwd`/bk-deps" fi fi AC_SUBST(DEPS_TRACKING) AC_SUBST(BK_DEPS) ]) dnl --------------------------------------------------------------------------- dnl AC_BAKEFILE_CHECK_BASIC_STUFF dnl dnl Checks for presence of basic programs, such as C and C++ compiler, "ranlib" dnl or "install" dnl --------------------------------------------------------------------------- AC_DEFUN([AC_BAKEFILE_CHECK_BASIC_STUFF], [ AC_PROG_RANLIB AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_MAKE_SET AC_SUBST(MAKE_SET) if test "x$SUNCXX" = "xyes"; then dnl Sun C++ compiler requires special way of creating static libs; dnl see here for more details: dnl https://sourceforge.net/tracker/?func=detail&atid=109863&aid=1229751&group_id=9863 AR=$CXX AROPTIONS="-xar -o" AC_SUBST(AR) elif test "x$SGICC" = "xyes"; then dnl Almost the same as above for SGI mipsPro compiler AR=$CXX AROPTIONS="-ar -o" AC_SUBST(AR) else AC_CHECK_TOOL(AR, ar, ar) AROPTIONS=rc fi AC_SUBST(AROPTIONS) AC_CHECK_TOOL(STRIP, strip, :) AC_CHECK_TOOL(NM, nm, :) dnl Don't use `install -d`, see https://trac.wxwidgets.org/ticket/13452 INSTALL_DIR="mkdir -p" AC_SUBST(INSTALL_DIR) LDFLAGS_GUI= case ${BAKEFILE_HOST} in *-*-cygwin* | *-*-mingw32* | *-*-mingw64* ) LDFLAGS_GUI="-mwindows" esac AC_SUBST(LDFLAGS_GUI) ]) dnl --------------------------------------------------------------------------- dnl AC_BAKEFILE_RES_COMPILERS dnl dnl Checks for presence of resource compilers for win32 or mac dnl --------------------------------------------------------------------------- AC_DEFUN([AC_BAKEFILE_RES_COMPILERS], [ case ${BAKEFILE_HOST} in *-*-cygwin* | *-*-mingw32* | *-*-mingw64* ) dnl Check for win32 resources compiler: AC_CHECK_TOOL(WINDRES, windres) ;; esac AC_SUBST(WINDRES) ]) dnl --------------------------------------------------------------------------- dnl AC_BAKEFILE_PRECOMP_HEADERS dnl dnl Check for precompiled headers support (GCC >= 3.4) dnl --------------------------------------------------------------------------- AC_DEFUN([AC_BAKEFILE_PRECOMP_HEADERS], [ AC_ARG_ENABLE([precomp-headers], AS_HELP_STRING([--disable-precomp-headers], [don't use precompiled headers even if compiler can]), [bk_use_pch="$enableval"]) GCC_PCH=0 ICC_PCH=0 USE_PCH=0 BK_MAKE_PCH="" case ${BAKEFILE_HOST} in *-*-cygwin* ) dnl PCH support is broken in cygwin gcc because of unportable dnl assumptions about mmap() in gcc code which make PCH generation dnl fail erratically; disable PCH completely until this is fixed bk_use_pch="no" ;; esac if test "x$bk_use_pch" = "x" -o "x$bk_use_pch" = "xyes" ; then if test "x$GCC" = "xyes"; then dnl test if we have gcc-3.4: AC_MSG_CHECKING([if the compiler supports precompiled headers]) AC_TRY_COMPILE([], [ #if !defined(__GNUC__) || !defined(__GNUC_MINOR__) There is no PCH support #endif #if (__GNUC__ < 3) There is no PCH support #endif #if (__GNUC__ == 3) && \ ((!defined(__APPLE_CC__) && (__GNUC_MINOR__ < 4)) || \ ( defined(__APPLE_CC__) && (__GNUC_MINOR__ < 3))) || \ ( defined(__INTEL_COMPILER) ) There is no PCH support #endif ], [ AC_MSG_RESULT([yes]) GCC_PCH=1 ], [ if test "$INTELCXX8" = "yes"; then AC_MSG_RESULT([yes]) ICC_PCH=1 if test "$INTELCXX10" = "yes"; then ICC_PCH_CREATE_SWITCH="-pch-create" ICC_PCH_USE_SWITCH="-pch-use" else ICC_PCH_CREATE_SWITCH="-create-pch" ICC_PCH_USE_SWITCH="-use-pch" fi else AC_MSG_RESULT([no]) fi ]) if test $GCC_PCH = 1 -o $ICC_PCH = 1 ; then USE_PCH=1 AC_BAKEFILE_CREATE_FILE_BK_MAKE_PCH chmod +x bk-make-pch dnl FIXME: make this $(top_builddir)/bk-make-pch once dnl autoconf-2.60 is required (and so top_builddir is dnl never empty): BK_MAKE_PCH="`pwd`/bk-make-pch" fi fi fi AC_SUBST(GCC_PCH) AC_SUBST(ICC_PCH) AC_SUBST(ICC_PCH_CREATE_SWITCH) AC_SUBST(ICC_PCH_USE_SWITCH) AC_SUBST(BK_MAKE_PCH) ]) dnl --------------------------------------------------------------------------- dnl AC_BAKEFILE([autoconf_inc.m4 inclusion]) dnl dnl To be used in configure.in of any project using Bakefile-generated mks dnl dnl Behaviour can be modified by setting following variables: dnl BAKEFILE_CHECK_BASICS set to "no" if you don't want bakefile to dnl to perform check for basic tools like ranlib dnl BAKEFILE_HOST set this to override host detection, defaults dnl to ${host} dnl BAKEFILE_FORCE_PLATFORM set to override platform detection dnl dnl Example usage: dnl dnl AC_BAKEFILE([FOO(autoconf_inc.m4)]) dnl dnl (replace FOO with m4_include above, aclocal would die otherwise) dnl (yes, it's ugly, but thanks to a bug in aclocal, it's the only thing dnl we can do...) dnl --------------------------------------------------------------------------- AC_DEFUN([AC_BAKEFILE], [ AC_PREREQ([2.58]) dnl We need to always run C/C++ compiler tests, but it's also possible dnl for the user to call these macros manually, hence this instead of dnl simply calling these macros. See http://www.bakefile.org/ticket/64 AC_REQUIRE([AC_BAKEFILE_PROG_CC]) AC_REQUIRE([AC_BAKEFILE_PROG_CXX]) if test "x$BAKEFILE_HOST" = "x"; then if test "x${host}" = "x" ; then AC_MSG_ERROR([You must call the autoconf "CANONICAL_HOST" macro in your configure.ac (or .in) file.]) fi BAKEFILE_HOST="${host}" fi if test "x$BAKEFILE_CHECK_BASICS" != "xno"; then AC_BAKEFILE_CHECK_BASIC_STUFF fi AC_BAKEFILE_GNUMAKE AC_BAKEFILE_PLATFORM AC_BAKEFILE_PLATFORM_SPECIFICS AC_BAKEFILE_SUFFIXES AC_BAKEFILE_SHARED_LD AC_BAKEFILE_SHARED_VERSIONS AC_BAKEFILE_DEPS AC_BAKEFILE_RES_COMPILERS dnl OBJCFLAGS is set by Autoconf, but OBJCXXFLAGS is not: AC_SUBST(OBJCXXFLAGS) BAKEFILE_BAKEFILE_M4_VERSION="0.2.11" dnl includes autoconf_inc.m4: $1 if test "$BAKEFILE_AUTOCONF_INC_M4_VERSION" = "" ; then AC_MSG_ERROR([No version found in autoconf_inc.m4 - bakefile macro was changed to take additional argument, perhaps configure.in wasn't updated (see the documentation)?]) fi if test "$BAKEFILE_BAKEFILE_M4_VERSION" != "$BAKEFILE_AUTOCONF_INC_M4_VERSION" ; then AC_MSG_ERROR([Versions of Bakefile used to generate makefiles ($BAKEFILE_AUTOCONF_INC_M4_VERSION) and configure ($BAKEFILE_BAKEFILE_M4_VERSION) do not match.]) fi ]) dnl --------------------------------------------------------------------------- dnl Embedded copies of helper scripts follow: dnl --------------------------------------------------------------------------- AC_DEFUN([AC_BAKEFILE_CREATE_FILE_BK_DEPS], [ dnl ===================== bk-deps begins here ===================== dnl (Created by merge-scripts.py from bk-deps dnl file do not edit here!) D='$' cat <bk-deps #!/bin/sh # This script is part of Bakefile (http://www.bakefile.org) autoconf # script. It is used to track C/C++ files dependencies in portable way. # # Permission is given to use this file in any way. DEPSMODE=${DEPSMODE} DEPSFLAG="${DEPSFLAG}" DEPSDIRBASE=.deps if test ${D}DEPSMODE = gcc ; then ${D}* ${D}{DEPSFLAG} status=${D}? # determine location of created files: while test ${D}# -gt 0; do case "${D}1" in -o ) shift objfile=${D}1 ;; -* ) ;; * ) srcfile=${D}1 ;; esac shift done objfilebase=\`basename ${D}objfile\` builddir=\`dirname ${D}objfile\` depfile=\`basename ${D}srcfile | sed -e 's/\\..*${D}/.d/g'\` depobjname=\`echo ${D}depfile |sed -e 's/\\.d/.o/g'\` depsdir=${D}builddir/${D}DEPSDIRBASE mkdir -p ${D}depsdir # if the compiler failed, we're done: if test ${D}{status} != 0 ; then rm -f ${D}depfile exit ${D}{status} fi # move created file to the location we want it in: if test -f ${D}depfile ; then sed -e "s,${D}depobjname:,${D}objfile:,g" ${D}depfile >${D}{depsdir}/${D}{objfilebase}.d rm -f ${D}depfile else # "g++ -MMD -o fooobj.o foosrc.cpp" produces fooobj.d depfile=\`echo "${D}objfile" | sed -e 's/\\..*${D}/.d/g'\` if test ! -f ${D}depfile ; then # "cxx -MD -o fooobj.o foosrc.cpp" creates fooobj.o.d (Compaq C++) depfile="${D}objfile.d" fi if test -f ${D}depfile ; then sed -e "\\,^${D}objfile,!s,${D}depobjname:,${D}objfile:,g" ${D}depfile >${D}{depsdir}/${D}{objfilebase}.d rm -f ${D}depfile fi fi exit 0 elif test ${D}DEPSMODE = unixcc; then ${D}* || exit ${D}? # Run compiler again with deps flag and redirect into the dep file. # It doesn't work if the '-o FILE' option is used, but without it the # dependency file will contain the wrong name for the object. So it is # removed from the command line, and the dep file is fixed with sed. cmd="" while test ${D}# -gt 0; do case "${D}1" in -o ) shift objfile=${D}1 ;; * ) eval arg${D}#=\\${D}1 cmd="${D}cmd \\${D}arg${D}#" ;; esac shift done objfilebase=\`basename ${D}objfile\` builddir=\`dirname ${D}objfile\` depsdir=${D}builddir/${D}DEPSDIRBASE mkdir -p ${D}depsdir eval "${D}cmd ${D}DEPSFLAG" | sed "s|.*:|${D}objfile:|" >${D}{depsdir}/${D}{objfilebase}.d exit 0 else ${D}* exit ${D}? fi EOF dnl ===================== bk-deps ends here ===================== ]) AC_DEFUN([AC_BAKEFILE_CREATE_FILE_SHARED_LD_SH], [ dnl ===================== shared-ld-sh begins here ===================== dnl (Created by merge-scripts.py from shared-ld-sh dnl file do not edit here!) D='$' cat <shared-ld-sh #!/bin/sh #----------------------------------------------------------------------------- #-- Name: distrib/mac/shared-ld-sh #-- Purpose: Link a mach-o dynamic shared library for Darwin / Mac OS X #-- Author: Gilles Depeyrot #-- Copyright: (c) 2002 Gilles Depeyrot #-- Licence: any use permitted #----------------------------------------------------------------------------- verbose=0 args="" objects="" linking_flag="-dynamiclib" ldargs="-r -keep_private_externs -nostdlib" if test "x${D}CXX" = "x"; then CXX="c++" fi while test ${D}# -gt 0; do case ${D}1 in -v) verbose=1 ;; -o|-compatibility_version|-current_version|-framework|-undefined|-install_name) # collect these options and values args="${D}{args} ${D}1 ${D}2" shift ;; -arch|-isysroot) # collect these options and values ldargs="${D}{ldargs} ${D}1 ${D}2" shift ;; -s|-Wl,*) # collect these load args ldargs="${D}{ldargs} ${D}1" ;; -l*|-L*|-flat_namespace|-headerpad_max_install_names) # collect these options args="${D}{args} ${D}1" ;; -dynamiclib|-bundle) linking_flag="${D}1" ;; -*) echo "shared-ld: unhandled option '${D}1'" exit 1 ;; *.o | *.a | *.dylib) # collect object files objects="${D}{objects} ${D}1" ;; *) echo "shared-ld: unhandled argument '${D}1'" exit 1 ;; esac shift done status=0 # # Link one module containing all the others # if test ${D}{verbose} = 1; then echo "${D}CXX ${D}{ldargs} ${D}{objects} -o master.${D}${D}.o" fi ${D}CXX ${D}{ldargs} ${D}{objects} -o master.${D}${D}.o status=${D}? # # Link the shared library from the single module created, but only if the # previous command didn't fail: # if test ${D}{status} = 0; then if test ${D}{verbose} = 1; then echo "${D}CXX ${D}{linking_flag} master.${D}${D}.o ${D}{args}" fi ${D}CXX ${D}{linking_flag} master.${D}${D}.o ${D}{args} status=${D}? fi # # Remove intermediate module # rm -f master.${D}${D}.o exit ${D}status EOF dnl ===================== shared-ld-sh ends here ===================== ]) AC_DEFUN([AC_BAKEFILE_CREATE_FILE_BK_MAKE_PCH], [ dnl ===================== bk-make-pch begins here ===================== dnl (Created by merge-scripts.py from bk-make-pch dnl file do not edit here!) D='$' cat <bk-make-pch #!/bin/sh # This script is part of Bakefile (http://www.bakefile.org) autoconf # script. It is used to generated precompiled headers. # # Permission is given to use this file in any way. outfile="${D}{1}" header="${D}{2}" shift shift builddir=\`echo ${D}outfile | sed -e 's,/\\.pch/.*${D},,g'\` compiler="" headerfile="" while test ${D}{#} -gt 0; do add_to_cmdline=1 case "${D}{1}" in -I* ) incdir=\`echo ${D}{1} | sed -e 's/-I\\(.*\\)/\\1/g'\` if test "x${D}{headerfile}" = "x" -a -f "${D}{incdir}/${D}{header}" ; then headerfile="${D}{incdir}/${D}{header}" fi ;; -use-pch|-use_pch|-pch-use ) shift add_to_cmdline=0 ;; esac if test ${D}add_to_cmdline = 1 ; then compiler="${D}{compiler} ${D}{1}" fi shift done if test "x${D}{headerfile}" = "x" ; then echo "error: can't find header ${D}{header} in include paths" >&2 else if test -f ${D}{outfile} ; then rm -f ${D}{outfile} else mkdir -p \`dirname ${D}{outfile}\` fi depsfile="${D}{builddir}/.deps/\`echo ${D}{outfile} | tr '/.' '__'\`.d" mkdir -p ${D}{builddir}/.deps if test "x${GCC_PCH}" = "x1" ; then # can do this because gcc is >= 3.4: ${D}{compiler} -o ${D}{outfile} -MMD -MF "${D}{depsfile}" "${D}{headerfile}" elif test "x${ICC_PCH}" = "x1" ; then filename=pch_gen-${D}${D} file=${D}{filename}.c dfile=${D}{filename}.d cat > ${D}file < ${D}depsfile && \\ rm -f ${D}file ${D}dfile ${D}{filename}.o fi exit ${D}{?} fi EOF dnl ===================== bk-make-pch ends here ===================== ]) # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # # Copyright (C) 1996-2001, 2003-2015 Free Software Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. m4_define([_LT_COPYING], [dnl # Copyright (C) 2014 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # GNU Libtool is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of of the License, or # (at your option) any later version. # # As a special exception to the GNU General Public License, if you # distribute this file as part of a program or library that is built # using GNU Libtool, you may include this file under the same # distribution terms that you use for the rest of that program. # # GNU Libtool is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . ]) # serial 58 LT_INIT # LT_PREREQ(VERSION) # ------------------ # Complain and exit if this libtool version is less that VERSION. m4_defun([LT_PREREQ], [m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, [m4_default([$3], [m4_fatal([Libtool version $1 or higher is required], 63)])], [$2])]) # _LT_CHECK_BUILDDIR # ------------------ # Complain if the absolute build directory name contains unusual characters m4_defun([_LT_CHECK_BUILDDIR], [case `pwd` in *\ * | *\ *) AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; esac ]) # LT_INIT([OPTIONS]) # ------------------ AC_DEFUN([LT_INIT], [AC_PREREQ([2.62])dnl We use AC_PATH_PROGS_FEATURE_CHECK AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl AC_BEFORE([$0], [LT_LANG])dnl AC_BEFORE([$0], [LT_OUTPUT])dnl AC_BEFORE([$0], [LTDL_INIT])dnl m4_require([_LT_CHECK_BUILDDIR])dnl dnl Autoconf doesn't catch unexpanded LT_ macros by default: m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 dnl unless we require an AC_DEFUNed macro: AC_REQUIRE([LTOPTIONS_VERSION])dnl AC_REQUIRE([LTSUGAR_VERSION])dnl AC_REQUIRE([LTVERSION_VERSION])dnl AC_REQUIRE([LTOBSOLETE_VERSION])dnl m4_require([_LT_PROG_LTMAIN])dnl _LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) dnl Parse OPTIONS _LT_SET_OPTIONS([$0], [$1]) # This can be used to rebuild libtool when needed LIBTOOL_DEPS=$ltmain # Always use our own libtool. LIBTOOL='$(SHELL) $(top_builddir)/libtool' AC_SUBST(LIBTOOL)dnl _LT_SETUP # Only expand once: m4_define([LT_INIT]) ])# LT_INIT # Old names: AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PROG_LIBTOOL], []) dnl AC_DEFUN([AM_PROG_LIBTOOL], []) # _LT_PREPARE_CC_BASENAME # ----------------------- m4_defun([_LT_PREPARE_CC_BASENAME], [ # Calculate cc_basename. Skip known compiler wrappers and cross-prefix. func_cc_basename () { for cc_temp in @S|@*""; do case $cc_temp in compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; \-*) ;; *) break;; esac done func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` } ])# _LT_PREPARE_CC_BASENAME # _LT_CC_BASENAME(CC) # ------------------- # It would be clearer to call AC_REQUIREs from _LT_PREPARE_CC_BASENAME, # but that macro is also expanded into generated libtool script, which # arranges for $SED and $ECHO to be set by different means. m4_defun([_LT_CC_BASENAME], [m4_require([_LT_PREPARE_CC_BASENAME])dnl AC_REQUIRE([_LT_DECL_SED])dnl AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl func_cc_basename $1 cc_basename=$func_cc_basename_result ]) # _LT_FILEUTILS_DEFAULTS # ---------------------- # It is okay to use these file commands and assume they have been set # sensibly after 'm4_require([_LT_FILEUTILS_DEFAULTS])'. m4_defun([_LT_FILEUTILS_DEFAULTS], [: ${CP="cp -f"} : ${MV="mv -f"} : ${RM="rm -f"} ])# _LT_FILEUTILS_DEFAULTS # _LT_SETUP # --------- m4_defun([_LT_SETUP], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl _LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl dnl _LT_DECL([], [host_alias], [0], [The host system])dnl _LT_DECL([], [host], [0])dnl _LT_DECL([], [host_os], [0])dnl dnl _LT_DECL([], [build_alias], [0], [The build system])dnl _LT_DECL([], [build], [0])dnl _LT_DECL([], [build_os], [0])dnl dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl dnl AC_REQUIRE([AC_PROG_LN_S])dnl test -z "$LN_S" && LN_S="ln -s" _LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl dnl AC_REQUIRE([LT_CMD_MAX_LEN])dnl _LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl _LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl m4_require([_LT_CMD_RELOAD])dnl m4_require([_LT_CHECK_MAGIC_METHOD])dnl m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl m4_require([_LT_CMD_OLD_ARCHIVE])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_WITH_SYSROOT])dnl m4_require([_LT_CMD_TRUNCATE])dnl _LT_CONFIG_LIBTOOL_INIT([ # See if we are running on zsh, and set the options that allow our # commands through without removal of \ escapes INIT. if test -n "\${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi ]) if test -n "${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi _LT_CHECK_OBJDIR m4_require([_LT_TAG_COMPILER])dnl case $host_os in aix3*) # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test set != "${COLLECT_NAMES+set}"; then COLLECT_NAMES= export COLLECT_NAMES fi ;; esac # Global variables: ofile=libtool can_build_shared=yes # All known linkers require a '.a' archive for static linking (except MSVC, # which needs '.lib'). libext=a with_gnu_ld=$lt_cv_prog_gnu_ld old_CC=$CC old_CFLAGS=$CFLAGS # Set sane defaults for various variables test -z "$CC" && CC=cc test -z "$LTCC" && LTCC=$CC test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS test -z "$LD" && LD=ld test -z "$ac_objext" && ac_objext=o _LT_CC_BASENAME([$compiler]) # Only perform the check for file, if the check method requires it test -z "$MAGIC_CMD" && MAGIC_CMD=file case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then _LT_PATH_MAGIC fi ;; esac # Use C for the default configuration in the libtool script LT_SUPPORTED_TAG([CC]) _LT_LANG_C_CONFIG _LT_LANG_DEFAULT_CONFIG _LT_CONFIG_COMMANDS ])# _LT_SETUP # _LT_PREPARE_SED_QUOTE_VARS # -------------------------- # Define a few sed substitution that help us do robust quoting. m4_defun([_LT_PREPARE_SED_QUOTE_VARS], [# Backslashify metacharacters that are still active within # double-quoted strings. sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' # Same as above, but do not quote variable references. double_quote_subst='s/\([["`\\]]\)/\\\1/g' # Sed substitution to delay expansion of an escaped shell variable in a # double_quote_subst'ed string. delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' # Sed substitution to delay expansion of an escaped single quote. delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' # Sed substitution to avoid accidental globbing in evaled expressions no_glob_subst='s/\*/\\\*/g' ]) # _LT_PROG_LTMAIN # --------------- # Note that this code is called both from 'configure', and 'config.status' # now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, # 'config.status' has no value for ac_aux_dir unless we are using Automake, # so we pass a copy along to make sure it has a sensible value anyway. m4_defun([_LT_PROG_LTMAIN], [m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl _LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) ltmain=$ac_aux_dir/ltmain.sh ])# _LT_PROG_LTMAIN # So that we can recreate a full libtool script including additional # tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS # in macros and then make a single call at the end using the 'libtool' # label. # _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) # ---------------------------------------- # Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL_INIT], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_INIT], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_INIT]) # _LT_CONFIG_LIBTOOL([COMMANDS]) # ------------------------------ # Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. m4_define([_LT_CONFIG_LIBTOOL], [m4_ifval([$1], [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], [$1 ])])]) # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) # _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) # ----------------------------------------------------- m4_defun([_LT_CONFIG_SAVE_COMMANDS], [_LT_CONFIG_LIBTOOL([$1]) _LT_CONFIG_LIBTOOL_INIT([$2]) ]) # _LT_FORMAT_COMMENT([COMMENT]) # ----------------------------- # Add leading comment marks to the start of each line, and a trailing # full-stop to the whole comment if one is not present already. m4_define([_LT_FORMAT_COMMENT], [m4_ifval([$1], [ m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) )]) # _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) # ------------------------------------------------------------------- # CONFIGNAME is the name given to the value in the libtool script. # VARNAME is the (base) name used in the configure script. # VALUE may be 0, 1 or 2 for a computed quote escaped value based on # VARNAME. Any other value will be used directly. m4_define([_LT_DECL], [lt_if_append_uniq([lt_decl_varnames], [$2], [, ], [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], [m4_ifval([$1], [$1], [$2])]) lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) m4_ifval([$4], [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) lt_dict_add_subkey([lt_decl_dict], [$2], [tagged?], [m4_ifval([$5], [yes], [no])])]) ]) # _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) # -------------------------------------------------------- m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) # lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_tag_varnames], [_lt_decl_filter([tagged?], [yes], $@)]) # _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) # --------------------------------------------------------- m4_define([_lt_decl_filter], [m4_case([$#], [0], [m4_fatal([$0: too few arguments: $#])], [1], [m4_fatal([$0: too few arguments: $#: $1])], [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], [lt_dict_filter([lt_decl_dict], $@)])[]dnl ]) # lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) # -------------------------------------------------- m4_define([lt_decl_quote_varnames], [_lt_decl_filter([value], [1], $@)]) # lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_dquote_varnames], [_lt_decl_filter([value], [2], $@)]) # lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) # --------------------------------------------------- m4_define([lt_decl_varnames_tagged], [m4_assert([$# <= 2])dnl _$0(m4_quote(m4_default([$1], [[, ]])), m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) m4_define([_lt_decl_varnames_tagged], [m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) # lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) # ------------------------------------------------ m4_define([lt_decl_all_varnames], [_$0(m4_quote(m4_default([$1], [[, ]])), m4_if([$2], [], m4_quote(lt_decl_varnames), m4_quote(m4_shift($@))))[]dnl ]) m4_define([_lt_decl_all_varnames], [lt_join($@, lt_decl_varnames_tagged([$1], lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl ]) # _LT_CONFIG_STATUS_DECLARE([VARNAME]) # ------------------------------------ # Quote a variable value, and forward it to 'config.status' so that its # declaration there will have the same value as in 'configure'. VARNAME # must have a single quote delimited value for this to work. m4_define([_LT_CONFIG_STATUS_DECLARE], [$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) # _LT_CONFIG_STATUS_DECLARATIONS # ------------------------------ # We delimit libtool config variables with single quotes, so when # we write them to config.status, we have to be sure to quote all # embedded single quotes properly. In configure, this macro expands # each variable declared with _LT_DECL (and _LT_TAGDECL) into: # # ='`$ECHO "$" | $SED "$delay_single_quote_subst"`' m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], [m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAGS # ---------------- # Output comment and list of tags supported by the script m4_defun([_LT_LIBTOOL_TAGS], [_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl available_tags='_LT_TAGS'dnl ]) # _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) # ----------------------------------- # Extract the dictionary values for VARNAME (optionally with TAG) and # expand to a commented shell variable setting: # # # Some comment about what VAR is for. # visible_name=$lt_internal_name m4_define([_LT_LIBTOOL_DECLARE], [_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [description])))[]dnl m4_pushdef([_libtool_name], m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), [0], [_libtool_name=[$]$1], [1], [_libtool_name=$lt_[]$1], [2], [_libtool_name=$lt_[]$1], [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl ]) # _LT_LIBTOOL_CONFIG_VARS # ----------------------- # Produce commented declarations of non-tagged libtool config variables # suitable for insertion in the LIBTOOL CONFIG section of the 'libtool' # script. Tagged libtool config variables (even for the LIBTOOL CONFIG # section) are produced by _LT_LIBTOOL_TAG_VARS. m4_defun([_LT_LIBTOOL_CONFIG_VARS], [m4_foreach([_lt_var], m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) # _LT_LIBTOOL_TAG_VARS(TAG) # ------------------------- m4_define([_LT_LIBTOOL_TAG_VARS], [m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) # _LT_TAGVAR(VARNAME, [TAGNAME]) # ------------------------------ m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) # _LT_CONFIG_COMMANDS # ------------------- # Send accumulated output to $CONFIG_STATUS. Thanks to the lists of # variables for single and double quote escaping we saved from calls # to _LT_DECL, we can put quote escaped variables declarations # into 'config.status', and then the shell code to quote escape them in # for loops in 'config.status'. Finally, any additional code accumulated # from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. m4_defun([_LT_CONFIG_COMMANDS], [AC_PROVIDE_IFELSE([LT_OUTPUT], dnl If the libtool generation code has been placed in $CONFIG_LT, dnl instead of duplicating it all over again into config.status, dnl then we will have config.status run $CONFIG_LT later, so it dnl needs to know what name is stored there: [AC_CONFIG_COMMANDS([libtool], [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], dnl If the libtool generation code is destined for config.status, dnl expand the accumulated commands and init code now: [AC_CONFIG_COMMANDS([libtool], [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) ])#_LT_CONFIG_COMMANDS # Initialize. m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], [ # The HP-UX ksh and POSIX shell print the target directory to stdout # if CDPATH is set. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH sed_quote_subst='$sed_quote_subst' double_quote_subst='$double_quote_subst' delay_variable_subst='$delay_variable_subst' _LT_CONFIG_STATUS_DECLARATIONS LTCC='$LTCC' LTCFLAGS='$LTCFLAGS' compiler='$compiler_DEFAULT' # A function that is used when there is no print builtin or printf. func_fallback_echo () { eval 'cat <<_LTECHO_EOF \$[]1 _LTECHO_EOF' } # Quote evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_quote_varnames); do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done # Double-quote double-evaled strings. for var in lt_decl_all_varnames([[ \ ]], lt_decl_dquote_varnames); do case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in *[[\\\\\\\`\\"\\\$]]*) eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes ;; *) eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" ;; esac done _LT_OUTPUT_LIBTOOL_INIT ]) # _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) # ------------------------------------ # Generate a child script FILE with all initialization necessary to # reuse the environment learned by the parent script, and make the # file executable. If COMMENT is supplied, it is inserted after the # '#!' sequence but before initialization text begins. After this # macro, additional text can be appended to FILE to form the body of # the child script. The macro ends with non-zero status if the # file could not be fully written (such as if the disk is full). m4_ifdef([AS_INIT_GENERATED], [m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], [m4_defun([_LT_GENERATED_FILE_INIT], [m4_require([AS_PREPARE])]dnl [m4_pushdef([AS_MESSAGE_LOG_FD])]dnl [lt_write_fail=0 cat >$1 <<_ASEOF || lt_write_fail=1 #! $SHELL # Generated by $as_me. $2 SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$1 <<\_ASEOF || lt_write_fail=1 AS_SHELL_SANITIZE _AS_PREPARE exec AS_MESSAGE_FD>&1 _ASEOF test 0 = "$lt_write_fail" && chmod +x $1[]dnl m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT # LT_OUTPUT # --------- # This macro allows early generation of the libtool script (before # AC_OUTPUT is called), incase it is used in configure for compilation # tests. AC_DEFUN([LT_OUTPUT], [: ${CONFIG_LT=./config.lt} AC_MSG_NOTICE([creating $CONFIG_LT]) _LT_GENERATED_FILE_INIT(["$CONFIG_LT"], [# Run this file to recreate a libtool stub with the current configuration.]) cat >>"$CONFIG_LT" <<\_LTEOF lt_cl_silent=false exec AS_MESSAGE_LOG_FD>>config.log { echo AS_BOX([Running $as_me.]) } >&AS_MESSAGE_LOG_FD lt_cl_help="\ '$as_me' creates a local libtool stub from the current configuration, for use in further configure time tests before the real libtool is generated. Usage: $[0] [[OPTIONS]] -h, --help print this help, then exit -V, --version print version number, then exit -q, --quiet do not print progress messages -d, --debug don't remove temporary files Report bugs to ." lt_cl_version="\ m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) configured by $[0], generated by m4_PACKAGE_STRING. Copyright (C) 2011 Free Software Foundation, Inc. This config.lt script is free software; the Free Software Foundation gives unlimited permision to copy, distribute and modify it." while test 0 != $[#] do case $[1] in --version | --v* | -V ) echo "$lt_cl_version"; exit 0 ;; --help | --h* | -h ) echo "$lt_cl_help"; exit 0 ;; --debug | --d* | -d ) debug=: ;; --quiet | --q* | --silent | --s* | -q ) lt_cl_silent=: ;; -*) AC_MSG_ERROR([unrecognized option: $[1] Try '$[0] --help' for more information.]) ;; *) AC_MSG_ERROR([unrecognized argument: $[1] Try '$[0] --help' for more information.]) ;; esac shift done if $lt_cl_silent; then exec AS_MESSAGE_FD>/dev/null fi _LTEOF cat >>"$CONFIG_LT" <<_LTEOF _LT_OUTPUT_LIBTOOL_COMMANDS_INIT _LTEOF cat >>"$CONFIG_LT" <<\_LTEOF AC_MSG_NOTICE([creating $ofile]) _LT_OUTPUT_LIBTOOL_COMMANDS AS_EXIT(0) _LTEOF chmod +x "$CONFIG_LT" # configure is writing to config.log, but config.lt does its own redirection, # appending to config.log, which fails on DOS, as config.log is still kept # open by configure. Here we exec the FD to /dev/null, effectively closing # config.log, so it can be properly (re)opened and appended to by config.lt. lt_cl_success=: test yes = "$silent" && lt_config_lt_args="$lt_config_lt_args --quiet" exec AS_MESSAGE_LOG_FD>/dev/null $SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false exec AS_MESSAGE_LOG_FD>>config.log $lt_cl_success || AS_EXIT(1) ])# LT_OUTPUT # _LT_CONFIG(TAG) # --------------- # If TAG is the built-in tag, create an initial libtool script with a # default configuration from the untagged config vars. Otherwise add code # to config.status for appending the configuration named by TAG from the # matching tagged config vars. m4_defun([_LT_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_CONFIG_SAVE_COMMANDS([ m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl m4_if(_LT_TAG, [C], [ # See if we are running on zsh, and set the options that allow our # commands through without removal of \ escapes. if test -n "${ZSH_VERSION+set}"; then setopt NO_GLOB_SUBST fi cfgfile=${ofile}T trap "$RM \"$cfgfile\"; exit 1" 1 2 15 $RM "$cfgfile" cat <<_LT_EOF >> "$cfgfile" #! $SHELL # Generated automatically by $as_me ($PACKAGE) $VERSION # Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # Provide generalized library-building support services. # Written by Gordon Matzigkeit, 1996 _LT_COPYING _LT_LIBTOOL_TAGS # Configured defaults for sys_lib_dlsearch_path munging. : \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} # ### BEGIN LIBTOOL CONFIG _LT_LIBTOOL_CONFIG_VARS _LT_LIBTOOL_TAG_VARS # ### END LIBTOOL CONFIG _LT_EOF cat <<'_LT_EOF' >> "$cfgfile" # ### BEGIN FUNCTIONS SHARED WITH CONFIGURE _LT_PREPARE_MUNGE_PATH_LIST _LT_PREPARE_CC_BASENAME # ### END FUNCTIONS SHARED WITH CONFIGURE _LT_EOF case $host_os in aix3*) cat <<\_LT_EOF >> "$cfgfile" # AIX sometimes has problems with the GCC collect2 program. For some # reason, if we set the COLLECT_NAMES environment variable, the problems # vanish in a puff of smoke. if test set != "${COLLECT_NAMES+set}"; then COLLECT_NAMES= export COLLECT_NAMES fi _LT_EOF ;; esac _LT_PROG_LTMAIN # We use sed instead of cat because bash on DJGPP gets confused if # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? sed '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") chmod +x "$ofile" ], [cat <<_LT_EOF >> "$ofile" dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded dnl in a comment (ie after a #). # ### BEGIN LIBTOOL TAG CONFIG: $1 _LT_LIBTOOL_TAG_VARS(_LT_TAG) # ### END LIBTOOL TAG CONFIG: $1 _LT_EOF ])dnl /m4_if ], [m4_if([$1], [], [ PACKAGE='$PACKAGE' VERSION='$VERSION' RM='$RM' ofile='$ofile'], []) ])dnl /_LT_CONFIG_SAVE_COMMANDS ])# _LT_CONFIG # LT_SUPPORTED_TAG(TAG) # --------------------- # Trace this macro to discover what tags are supported by the libtool # --tag option, using: # autoconf --trace 'LT_SUPPORTED_TAG:$1' AC_DEFUN([LT_SUPPORTED_TAG], []) # C support is built-in for now m4_define([_LT_LANG_C_enabled], []) m4_define([_LT_TAGS], []) # LT_LANG(LANG) # ------------- # Enable libtool support for the given language if not already enabled. AC_DEFUN([LT_LANG], [AC_BEFORE([$0], [LT_OUTPUT])dnl m4_case([$1], [C], [_LT_LANG(C)], [C++], [_LT_LANG(CXX)], [Go], [_LT_LANG(GO)], [Java], [_LT_LANG(GCJ)], [Fortran 77], [_LT_LANG(F77)], [Fortran], [_LT_LANG(FC)], [Windows Resource], [_LT_LANG(RC)], [m4_ifdef([_LT_LANG_]$1[_CONFIG], [_LT_LANG($1)], [m4_fatal([$0: unsupported language: "$1"])])])dnl ])# LT_LANG # _LT_LANG(LANGNAME) # ------------------ m4_defun([_LT_LANG], [m4_ifdef([_LT_LANG_]$1[_enabled], [], [LT_SUPPORTED_TAG([$1])dnl m4_append([_LT_TAGS], [$1 ])dnl m4_define([_LT_LANG_]$1[_enabled], [])dnl _LT_LANG_$1_CONFIG($1)])dnl ])# _LT_LANG m4_ifndef([AC_PROG_GO], [ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_GO. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # m4_defun([AC_PROG_GO], [AC_LANG_PUSH(Go)dnl AC_ARG_VAR([GOC], [Go compiler command])dnl AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl _AC_ARG_VAR_LDFLAGS()dnl AC_CHECK_TOOL(GOC, gccgo) if test -z "$GOC"; then if test -n "$ac_tool_prefix"; then AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo]) fi fi if test -z "$GOC"; then AC_CHECK_PROG(GOC, gccgo, gccgo, false) fi ])#m4_defun ])#m4_ifndef # _LT_LANG_DEFAULT_CONFIG # ----------------------- m4_defun([_LT_LANG_DEFAULT_CONFIG], [AC_PROVIDE_IFELSE([AC_PROG_CXX], [LT_LANG(CXX)], [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) AC_PROVIDE_IFELSE([AC_PROG_F77], [LT_LANG(F77)], [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) AC_PROVIDE_IFELSE([AC_PROG_FC], [LT_LANG(FC)], [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal dnl pulling things in needlessly. AC_PROVIDE_IFELSE([AC_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], [LT_LANG(GCJ)], [AC_PROVIDE_IFELSE([LT_PROG_GCJ], [LT_LANG(GCJ)], [m4_ifdef([AC_PROG_GCJ], [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([A][M_PROG_GCJ], [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) m4_ifdef([LT_PROG_GCJ], [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) AC_PROVIDE_IFELSE([AC_PROG_GO], [LT_LANG(GO)], [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])]) AC_PROVIDE_IFELSE([LT_PROG_RC], [LT_LANG(RC)], [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) ])# _LT_LANG_DEFAULT_CONFIG # Obsolete macros: AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_CXX], []) dnl AC_DEFUN([AC_LIBTOOL_F77], []) dnl AC_DEFUN([AC_LIBTOOL_FC], []) dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) dnl AC_DEFUN([AC_LIBTOOL_RC], []) # _LT_TAG_COMPILER # ---------------- m4_defun([_LT_TAG_COMPILER], [AC_REQUIRE([AC_PROG_CC])dnl _LT_DECL([LTCC], [CC], [1], [A C compiler])dnl _LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl _LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl _LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl # If no C compiler was specified, use CC. LTCC=${LTCC-"$CC"} # If no C compiler flags were specified, use CFLAGS. LTCFLAGS=${LTCFLAGS-"$CFLAGS"} # Allow CC to be a program name with arguments. compiler=$CC ])# _LT_TAG_COMPILER # _LT_COMPILER_BOILERPLATE # ------------------------ # Check for compiler boilerplate output or warnings with # the simple compiler test code. m4_defun([_LT_COMPILER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_compile_test_code" >conftest.$ac_ext eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_compiler_boilerplate=`cat conftest.err` $RM conftest* ])# _LT_COMPILER_BOILERPLATE # _LT_LINKER_BOILERPLATE # ---------------------- # Check for linker boilerplate output or warnings with # the simple link test code. m4_defun([_LT_LINKER_BOILERPLATE], [m4_require([_LT_DECL_SED])dnl ac_outfile=conftest.$ac_objext echo "$lt_simple_link_test_code" >conftest.$ac_ext eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err _lt_linker_boilerplate=`cat conftest.err` $RM -r conftest* ])# _LT_LINKER_BOILERPLATE # _LT_REQUIRED_DARWIN_CHECKS # ------------------------- m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ case $host_os in rhapsody* | darwin*) AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) AC_CHECK_TOOL([LIPO], [lipo], [:]) AC_CHECK_TOOL([OTOOL], [otool], [:]) AC_CHECK_TOOL([OTOOL64], [otool64], [:]) _LT_DECL([], [DSYMUTIL], [1], [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) _LT_DECL([], [NMEDIT], [1], [Tool to change global to local symbols on Mac OS X]) _LT_DECL([], [LIPO], [1], [Tool to manipulate fat objects and archives on Mac OS X]) _LT_DECL([], [OTOOL], [1], [ldd/readelf like tool for Mach-O binaries on Mac OS X]) _LT_DECL([], [OTOOL64], [1], [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], [lt_cv_apple_cc_single_mod=no if test -z "$LT_MULTI_MODULE"; then # By default we will add the -single_module flag. You can override # by either setting the environment variable LT_MULTI_MODULE # non-empty at configure time, or by adding -multi_module to the # link flags. rm -rf libconftest.dylib* echo "int foo(void){return 1;}" > conftest.c echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err _lt_result=$? # If there is a non-empty error log, and "single_module" # appears in it, assume the flag caused a linker warning if test -s conftest.err && $GREP single_module conftest.err; then cat conftest.err >&AS_MESSAGE_LOG_FD # Otherwise, if the output was created with a 0 exit code from # the compiler, it worked. elif test -f libconftest.dylib && test 0 = "$_lt_result"; then lt_cv_apple_cc_single_mod=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -rf libconftest.dylib* rm -f conftest.* fi]) AC_CACHE_CHECK([for -exported_symbols_list linker flag], [lt_cv_ld_exported_symbols_list], [lt_cv_ld_exported_symbols_list=no save_LDFLAGS=$LDFLAGS echo "_main" > conftest.sym LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [lt_cv_ld_exported_symbols_list=yes], [lt_cv_ld_exported_symbols_list=no]) LDFLAGS=$save_LDFLAGS ]) AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], [lt_cv_ld_force_load=no cat > conftest.c << _LT_EOF int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD cat > conftest.c << _LT_EOF int main() { return 0;} _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err _lt_result=$? if test -s conftest.err && $GREP force_load conftest.err; then cat conftest.err >&AS_MESSAGE_LOG_FD elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then lt_cv_ld_force_load=yes else cat conftest.err >&AS_MESSAGE_LOG_FD fi rm -f conftest.err libconftest.a conftest conftest.c rm -rf conftest.dSYM ]) case $host_os in rhapsody* | darwin1.[[012]]) _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; darwin*) # darwin 5.x on # if running on 10.5 or later, the deployment target defaults # to the OS version, if on x86, and 10.4, the deployment # target defaults to 10.4. Don't you love it? case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; 10.[[012]][[,.]]*) _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; 10.*) _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test yes = "$lt_cv_apple_cc_single_mod"; then _lt_dar_single_mod='$single_module' fi if test yes = "$lt_cv_ld_exported_symbols_list"; then _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym' else _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib' fi if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then _lt_dsymutil='~$DSYMUTIL $lib || :' else _lt_dsymutil= fi ;; esac ]) # _LT_DARWIN_LINKER_FEATURES([TAG]) # --------------------------------- # Checks for linker and compiler features on darwin m4_defun([_LT_DARWIN_LINKER_FEATURES], [ m4_require([_LT_REQUIRED_DARWIN_CHECKS]) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported if test yes = "$lt_cv_ld_force_load"; then _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes], [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes]) else _LT_TAGVAR(whole_archive_flag_spec, $1)='' fi _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=$_lt_dar_allow_undefined case $cc_basename in ifort*|nagfor*) _lt_dar_can_shared=yes ;; *) _lt_dar_can_shared=$GCC ;; esac if test yes = "$_lt_dar_can_shared"; then output_verbose_link_cmd=func_echo_all _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" m4_if([$1], [CXX], [ if test yes != "$lt_cv_apple_cc_single_mod"; then _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil" _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil" fi ],[]) else _LT_TAGVAR(ld_shlibs, $1)=no fi ]) # _LT_SYS_MODULE_PATH_AIX([TAGNAME]) # ---------------------------------- # Links a minimal program and checks the executable # for the system default hardcoded library path. In most cases, # this is /usr/lib:/lib, but when the MPI compilers are used # the location of the communication and MPI libs are included too. # If we don't find anything, use the default library path according # to the aix ld manual. # Store the results from the different compilers for each TAGNAME. # Allow to override them for all tags through lt_cv_aix_libpath. m4_defun([_LT_SYS_MODULE_PATH_AIX], [m4_require([_LT_DECL_SED])dnl if test set = "${lt_cv_aix_libpath+set}"; then aix_libpath=$lt_cv_aix_libpath else AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ lt_aix_libpath_sed='[ /Import File Strings/,/^$/ { /^0/ { s/^0 *\([^ ]*\) *$/\1/ p } }]' _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` # Check for a 64-bit object if we didn't find anything. if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` fi],[]) if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=/usr/lib:/lib fi ]) aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) fi ])# _LT_SYS_MODULE_PATH_AIX # _LT_SHELL_INIT(ARG) # ------------------- m4_define([_LT_SHELL_INIT], [m4_divert_text([M4SH-INIT], [$1 ])])# _LT_SHELL_INIT # _LT_PROG_ECHO_BACKSLASH # ----------------------- # Find how we can fake an echo command that does not interpret backslash. # In particular, with Autoconf 2.60 or later we add some code to the start # of the generated configure script that will find a shell with a builtin # printf (that we can use as an echo command). m4_defun([_LT_PROG_ECHO_BACKSLASH], [ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO AC_MSG_CHECKING([how to print strings]) # Test print first, because it will be a builtin if present. if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='print -r --' elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then ECHO='printf %s\n' else # Use this function as a fallback that always works. func_fallback_echo () { eval 'cat <<_LTECHO_EOF $[]1 _LTECHO_EOF' } ECHO='func_fallback_echo' fi # func_echo_all arg... # Invoke $ECHO with all args, space-separated. func_echo_all () { $ECHO "$*" } case $ECHO in printf*) AC_MSG_RESULT([printf]) ;; print*) AC_MSG_RESULT([print -r]) ;; *) AC_MSG_RESULT([cat]) ;; esac m4_ifdef([_AS_DETECT_SUGGESTED], [_AS_DETECT_SUGGESTED([ test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO PATH=/empty FPATH=/empty; export PATH FPATH test "X`printf %s $ECHO`" = "X$ECHO" \ || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) _LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) _LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) ])# _LT_PROG_ECHO_BACKSLASH # _LT_WITH_SYSROOT # ---------------- AC_DEFUN([_LT_WITH_SYSROOT], [AC_MSG_CHECKING([for sysroot]) AC_ARG_WITH([sysroot], [AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@], [Search for dependent libraries within DIR (or the compiler's sysroot if not specified).])], [], [with_sysroot=no]) dnl lt_sysroot will always be passed unquoted. We quote it here dnl in case the user passed a directory name. lt_sysroot= case $with_sysroot in #( yes) if test yes = "$GCC"; then lt_sysroot=`$CC --print-sysroot 2>/dev/null` fi ;; #( /*) lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` ;; #( no|'') ;; #( *) AC_MSG_RESULT([$with_sysroot]) AC_MSG_ERROR([The sysroot must be an absolute path.]) ;; esac AC_MSG_RESULT([${lt_sysroot:-no}]) _LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl [dependent libraries, and where our libraries should be installed.])]) # _LT_ENABLE_LOCK # --------------- m4_defun([_LT_ENABLE_LOCK], [AC_ARG_ENABLE([libtool-lock], [AS_HELP_STRING([--disable-libtool-lock], [avoid locking (might break parallel builds)])]) test no = "$enable_libtool_lock" || enable_libtool_lock=yes # Some flags need to be propagated to the compiler or linker for good # libtool support. case $host in ia64-*-hpux*) # Find out what ABI is being produced by ac_compile, and set mode # options accordingly. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE=32 ;; *ELF-64*) HPUX_IA64_MODE=64 ;; esac fi rm -rf conftest* ;; *-*-irix6*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then if test yes = "$lt_cv_prog_gnu_ld"; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; *N32*) LD="${LD-ld} -melf32bmipn32" ;; *64-bit*) LD="${LD-ld} -melf64bmip" ;; esac else case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; *N32*) LD="${LD-ld} -n32" ;; *64-bit*) LD="${LD-ld} -64" ;; esac fi fi rm -rf conftest* ;; mips64*-*linux*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then emul=elf case `/usr/bin/file conftest.$ac_objext` in *32-bit*) emul="${emul}32" ;; *64-bit*) emul="${emul}64" ;; esac case `/usr/bin/file conftest.$ac_objext` in *MSB*) emul="${emul}btsmip" ;; *LSB*) emul="${emul}ltsmip" ;; esac case `/usr/bin/file conftest.$ac_objext` in *N32*) emul="${emul}n32" ;; esac LD="${LD-ld} -m $emul" fi rm -rf conftest* ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. Note that the listed cases only cover the # situations where additional linker options are needed (such as when # doing 32-bit compilation for a host where ld defaults to 64-bit, or # vice versa); the common cases where no linker options are needed do # not appear in the list. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) case `/usr/bin/file conftest.o` in *x86-64*) LD="${LD-ld} -m elf32_x86_64" ;; *) LD="${LD-ld} -m elf_i386" ;; esac ;; powerpc64le-*linux*) LD="${LD-ld} -m elf32lppclinux" ;; powerpc64-*linux*) LD="${LD-ld} -m elf32ppclinux" ;; s390x-*linux*) LD="${LD-ld} -m elf_s390" ;; sparc64-*linux*) LD="${LD-ld} -m elf32_sparc" ;; esac ;; *64-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;; x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; powerpcle-*linux*) LD="${LD-ld} -m elf64lppc" ;; powerpc-*linux*) LD="${LD-ld} -m elf64ppc" ;; s390*-*linux*|s390*-*tpf*) LD="${LD-ld} -m elf64_s390" ;; sparc*-*linux*) LD="${LD-ld} -m elf64_sparc" ;; esac ;; esac fi rm -rf conftest* ;; *-*-sco3.2v5*) # On SCO OpenServer 5, we need -belf to get full-featured binaries. SAVE_CFLAGS=$CFLAGS CFLAGS="$CFLAGS -belf" AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, [AC_LANG_PUSH(C) AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) AC_LANG_POP]) if test yes != "$lt_cv_cc_needs_belf"; then # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf CFLAGS=$SAVE_CFLAGS fi ;; *-*solaris*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then case `/usr/bin/file conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) case $host in i?86-*-solaris*|x86_64-*-solaris*) LD="${LD-ld} -m elf_x86_64" ;; sparc*-*-solaris*) LD="${LD-ld} -m elf64_sparc" ;; esac # GNU ld 2.21 introduced _sol2 emulations. Use them if available. if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then LD=${LD-ld}_sol2 fi ;; *) if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then LD="${LD-ld} -64" fi ;; esac ;; esac fi rm -rf conftest* ;; esac need_locks=$enable_libtool_lock ])# _LT_ENABLE_LOCK # _LT_PROG_AR # ----------- m4_defun([_LT_PROG_AR], [AC_CHECK_TOOLS(AR, [ar], false) : ${AR=ar} : ${AR_FLAGS=cru} _LT_DECL([], [AR], [1], [The archiver]) _LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], [lt_cv_ar_at_file=no AC_COMPILE_IFELSE([AC_LANG_PROGRAM], [echo conftest.$ac_objext > conftest.lst lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' AC_TRY_EVAL([lt_ar_try]) if test 0 -eq "$ac_status"; then # Ensure the archiver fails upon bogus file names. rm -f conftest.$ac_objext libconftest.a AC_TRY_EVAL([lt_ar_try]) if test 0 -ne "$ac_status"; then lt_cv_ar_at_file=@ fi fi rm -f conftest.* libconftest.a ]) ]) if test no = "$lt_cv_ar_at_file"; then archiver_list_spec= else archiver_list_spec=$lt_cv_ar_at_file fi _LT_DECL([], [archiver_list_spec], [1], [How to feed a file listing to the archiver]) ])# _LT_PROG_AR # _LT_CMD_OLD_ARCHIVE # ------------------- m4_defun([_LT_CMD_OLD_ARCHIVE], [_LT_PROG_AR AC_CHECK_TOOL(STRIP, strip, :) test -z "$STRIP" && STRIP=: _LT_DECL([], [STRIP], [1], [A symbol stripping program]) AC_CHECK_TOOL(RANLIB, ranlib, :) test -z "$RANLIB" && RANLIB=: _LT_DECL([], [RANLIB], [1], [Commands used to install an old-style archive]) # Determine commands to create old-style static archives. old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' old_postinstall_cmds='chmod 644 $oldlib' old_postuninstall_cmds= if test -n "$RANLIB"; then case $host_os in bitrig* | openbsd*) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" ;; *) old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" ;; esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" fi case $host_os in darwin*) lock_old_archive_extraction=yes ;; *) lock_old_archive_extraction=no ;; esac _LT_DECL([], [old_postinstall_cmds], [2]) _LT_DECL([], [old_postuninstall_cmds], [2]) _LT_TAGDECL([], [old_archive_cmds], [2], [Commands used to build an old-style archive]) _LT_DECL([], [lock_old_archive_extraction], [0], [Whether to use a lock for old archive extraction]) ])# _LT_CMD_OLD_ARCHIVE # _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------------------- # Check whether the given compiler option works AC_DEFUN([_LT_COMPILER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="$3" ## exclude from sc_useless_quotes_in_assignment # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. # The option is referenced via a variable to avoid confusing sed. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi fi $RM conftest* ]) if test yes = "[$]$2"; then m4_if([$5], , :, [$5]) else m4_if([$6], , :, [$6]) fi ])# _LT_COMPILER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) # _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, # [ACTION-SUCCESS], [ACTION-FAILURE]) # ---------------------------------------------------- # Check whether the given linker option works AC_DEFUN([_LT_LINKER_OPTION], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_SED])dnl AC_CACHE_CHECK([$1], [$2], [$2=no save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS $3" echo "$lt_simple_link_test_code" > conftest.$ac_ext if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then # The linker can only warn and ignore the option if not recognized # So say no if there are warnings if test -s conftest.err; then # Append any errors to the config.log. cat conftest.err 1>&AS_MESSAGE_LOG_FD $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 if diff conftest.exp conftest.er2 >/dev/null; then $2=yes fi else $2=yes fi fi $RM -r conftest* LDFLAGS=$save_LDFLAGS ]) if test yes = "[$]$2"; then m4_if([$4], , :, [$4]) else m4_if([$5], , :, [$5]) fi ])# _LT_LINKER_OPTION # Old name: AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) # LT_CMD_MAX_LEN #--------------- AC_DEFUN([LT_CMD_MAX_LEN], [AC_REQUIRE([AC_CANONICAL_HOST])dnl # find the maximum length of command line arguments AC_MSG_CHECKING([the maximum length of command line arguments]) AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl i=0 teststring=ABCD case $build_os in msdosdjgpp*) # On DJGPP, this test can blow up pretty badly due to problems in libc # (any single argument exceeding 2000 bytes causes a buffer overrun # during glob expansion). Even if it were fixed, the result of this # check would be larger than it should be. lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; gnu*) # Under GNU Hurd, this test is not required because there is # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking, # you end up with a "frozen" computer, even though with patience # the test eventually succeeds (with a max line length of 256k). # Instead, let's just punt: use the minimum linelength reported by # all of the supported platforms: 8192 (on NT/2K/XP). lt_cv_sys_max_cmd_len=8192; ;; mint*) # On MiNT this can take a long time and run out of memory. lt_cv_sys_max_cmd_len=8192; ;; amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` elif test -x /usr/sbin/sysctl; then lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` else lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs fi # And add a safety zone lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` ;; interix*) # We know the value 262144 and hardcode it with a safety zone (like BSD) lt_cv_sys_max_cmd_len=196608 ;; os2*) # The test takes a long time on OS/2. lt_cv_sys_max_cmd_len=8192 ;; osf*) # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not # nice to cause kernel panics so lets avoid the loop below. # First set a reasonable default. lt_cv_sys_max_cmd_len=16384 # if test -x /sbin/sysconfig; then case `/sbin/sysconfig -q proc exec_disable_arg_limit` in *1*) lt_cv_sys_max_cmd_len=-1 ;; esac fi ;; sco3.2v5*) lt_cv_sys_max_cmd_len=102400 ;; sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` else lt_cv_sys_max_cmd_len=32768 fi ;; *) lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` if test -n "$lt_cv_sys_max_cmd_len" && \ test undefined != "$lt_cv_sys_max_cmd_len"; then lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` else # Make teststring a little bigger before we do anything with it. # a 1K string should be a reasonable start. for i in 1 2 3 4 5 6 7 8; do teststring=$teststring$teststring done SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} # If test is not a shell built-in, we'll probably end up computing a # maximum length that is only half of the actual maximum length, but # we can't tell. while { test X`env echo "$teststring$teststring" 2>/dev/null` \ = "X$teststring$teststring"; } >/dev/null 2>&1 && test 17 != "$i" # 1/2 MB should be enough do i=`expr $i + 1` teststring=$teststring$teststring done # Only check the string length outside the loop. lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` teststring= # Add a significant safety factor because C++ compilers can tack on # massive amounts of additional arguments before passing them to the # linker. It appears as though 1/2 is a usable value. lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` fi ;; esac ]) if test -n "$lt_cv_sys_max_cmd_len"; then AC_MSG_RESULT($lt_cv_sys_max_cmd_len) else AC_MSG_RESULT(none) fi max_cmd_len=$lt_cv_sys_max_cmd_len _LT_DECL([], [max_cmd_len], [0], [What is the maximum length of a command?]) ])# LT_CMD_MAX_LEN # Old name: AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) # _LT_HEADER_DLFCN # ---------------- m4_defun([_LT_HEADER_DLFCN], [AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl ])# _LT_HEADER_DLFCN # _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, # ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) # ---------------------------------------------------------------- m4_defun([_LT_TRY_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test yes = "$cross_compiling"; then : [$4] else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF [#line $LINENO "configure" #include "confdefs.h" #if HAVE_DLFCN_H #include #endif #include #ifdef RTLD_GLOBAL # define LT_DLGLOBAL RTLD_GLOBAL #else # ifdef DL_GLOBAL # define LT_DLGLOBAL DL_GLOBAL # else # define LT_DLGLOBAL 0 # endif #endif /* We may have to define LT_DLLAZY_OR_NOW in the command line if we find out it does not work in some platform. */ #ifndef LT_DLLAZY_OR_NOW # ifdef RTLD_LAZY # define LT_DLLAZY_OR_NOW RTLD_LAZY # else # ifdef DL_LAZY # define LT_DLLAZY_OR_NOW DL_LAZY # else # ifdef RTLD_NOW # define LT_DLLAZY_OR_NOW RTLD_NOW # else # ifdef DL_NOW # define LT_DLLAZY_OR_NOW DL_NOW # else # define LT_DLLAZY_OR_NOW 0 # endif # endif # endif # endif #endif /* When -fvisibility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) int fnord () __attribute__((visibility("default"))); #endif int fnord () { return 42; } int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown; if (self) { if (dlsym (self,"fnord")) status = $lt_dlno_uscore; else { if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; else puts (dlerror ()); } /* dlclose (self); */ } else puts (dlerror ()); return status; }] _LT_EOF if AC_TRY_EVAL(ac_link) && test -s "conftest$ac_exeext" 2>/dev/null; then (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null lt_status=$? case x$lt_status in x$lt_dlno_uscore) $1 ;; x$lt_dlneed_uscore) $2 ;; x$lt_dlunknown|x*) $3 ;; esac else : # compilation failed $3 fi fi rm -fr conftest* ])# _LT_TRY_DLOPEN_SELF # LT_SYS_DLOPEN_SELF # ------------------ AC_DEFUN([LT_SYS_DLOPEN_SELF], [m4_require([_LT_HEADER_DLFCN])dnl if test yes != "$enable_dlopen"; then enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown else lt_cv_dlopen=no lt_cv_dlopen_libs= case $host_os in beos*) lt_cv_dlopen=load_add_on lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ;; mingw* | pw32* | cegcc*) lt_cv_dlopen=LoadLibrary lt_cv_dlopen_libs= ;; cygwin*) lt_cv_dlopen=dlopen lt_cv_dlopen_libs= ;; darwin*) # if libdl is installed we need to link against it AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl],[ lt_cv_dlopen=dyld lt_cv_dlopen_libs= lt_cv_dlopen_self=yes ]) ;; tpf*) # Don't try to run any link tests for TPF. We know it's impossible # because TPF is a cross-compiler, and we know how we open DSOs. lt_cv_dlopen=dlopen lt_cv_dlopen_libs= lt_cv_dlopen_self=no ;; *) AC_CHECK_FUNC([shl_load], [lt_cv_dlopen=shl_load], [AC_CHECK_LIB([dld], [shl_load], [lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld], [AC_CHECK_FUNC([dlopen], [lt_cv_dlopen=dlopen], [AC_CHECK_LIB([dl], [dlopen], [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl], [AC_CHECK_LIB([svld], [dlopen], [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld], [AC_CHECK_LIB([dld], [dld_link], [lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld]) ]) ]) ]) ]) ]) ;; esac if test no = "$lt_cv_dlopen"; then enable_dlopen=no else enable_dlopen=yes fi case $lt_cv_dlopen in dlopen) save_CPPFLAGS=$CPPFLAGS test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" save_LDFLAGS=$LDFLAGS wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" save_LIBS=$LIBS LIBS="$lt_cv_dlopen_libs $LIBS" AC_CACHE_CHECK([whether a program can dlopen itself], lt_cv_dlopen_self, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) ]) if test yes = "$lt_cv_dlopen_self"; then wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" AC_CACHE_CHECK([whether a statically linked program can dlopen itself], lt_cv_dlopen_self_static, [dnl _LT_TRY_DLOPEN_SELF( lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) ]) fi CPPFLAGS=$save_CPPFLAGS LDFLAGS=$save_LDFLAGS LIBS=$save_LIBS ;; esac case $lt_cv_dlopen_self in yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; *) enable_dlopen_self=unknown ;; esac case $lt_cv_dlopen_self_static in yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; *) enable_dlopen_self_static=unknown ;; esac fi _LT_DECL([dlopen_support], [enable_dlopen], [0], [Whether dlopen is supported]) _LT_DECL([dlopen_self], [enable_dlopen_self], [0], [Whether dlopen of programs is supported]) _LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], [Whether dlopen of statically linked programs is supported]) ])# LT_SYS_DLOPEN_SELF # Old name: AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) # _LT_COMPILER_C_O([TAGNAME]) # --------------------------- # Check to see if options -c and -o are simultaneously supported by compiler. # This macro does not hard code the compiler like AC_PROG_CC_C_O. m4_defun([_LT_COMPILER_C_O], [m4_require([_LT_DECL_SED])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no $RM -r conftest 2>/dev/null mkdir conftest cd conftest mkdir out echo "$lt_simple_compile_test_code" > conftest.$ac_ext lt_compiler_flag="-o out/conftest2.$ac_objext" # Insert the option either (1) after the last *FLAGS variable, or # (2) before a word containing "conftest.", or (3) at the end. # Note that $ac_compile itself does not contain backslashes and begins # with a dollar sign (not a hyphen), so the echo should work correctly. lt_compile=`echo "$ac_compile" | $SED \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&AS_MESSAGE_LOG_FD echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes fi fi chmod u+w . 2>&AS_MESSAGE_LOG_FD $RM conftest* # SGI C++ compiler will create directory out/ii_files/ for # template instantiation test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files $RM out/* && rmdir out cd .. $RM -r conftest $RM conftest* ]) _LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], [Does compiler simultaneously support -c and -o options?]) ])# _LT_COMPILER_C_O # _LT_COMPILER_FILE_LOCKS([TAGNAME]) # ---------------------------------- # Check to see if we can do hard links to lock some files if needed m4_defun([_LT_COMPILER_FILE_LOCKS], [m4_require([_LT_ENABLE_LOCK])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl _LT_COMPILER_C_O([$1]) hard_links=nottested if test no = "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" && test no != "$need_locks"; then # do not overwrite the value of need_locks provided by the user AC_MSG_CHECKING([if we can lock with hard links]) hard_links=yes $RM conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no touch conftest.a ln conftest.a conftest.b 2>&5 || hard_links=no ln conftest.a conftest.b 2>/dev/null && hard_links=no AC_MSG_RESULT([$hard_links]) if test no = "$hard_links"; then AC_MSG_WARN(['$CC' does not support '-c -o', so 'make -j' may be unsafe]) need_locks=warn fi else need_locks=no fi _LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) ])# _LT_COMPILER_FILE_LOCKS # _LT_CHECK_OBJDIR # ---------------- m4_defun([_LT_CHECK_OBJDIR], [AC_CACHE_CHECK([for objdir], [lt_cv_objdir], [rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then lt_cv_objdir=.libs else # MS-DOS does not allow filenames that begin with a dot. lt_cv_objdir=_libs fi rmdir .libs 2>/dev/null]) objdir=$lt_cv_objdir _LT_DECL([], [objdir], [0], [The name of the directory that contains temporary libtool files])dnl m4_pattern_allow([LT_OBJDIR])dnl AC_DEFINE_UNQUOTED([LT_OBJDIR], "$lt_cv_objdir/", [Define to the sub-directory where libtool stores uninstalled libraries.]) ])# _LT_CHECK_OBJDIR # _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) # -------------------------------------- # Check hardcoding attributes. m4_defun([_LT_LINKER_HARDCODE_LIBPATH], [AC_MSG_CHECKING([how to hardcode library paths into programs]) _LT_TAGVAR(hardcode_action, $1)= if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || test -n "$_LT_TAGVAR(runpath_var, $1)" || test yes = "$_LT_TAGVAR(hardcode_automatic, $1)"; then # We can hardcode non-existent directories. if test no != "$_LT_TAGVAR(hardcode_direct, $1)" && # If the only mechanism to avoid hardcoding is shlibpath_var, we # have to relink, otherwise we might link with an installed library # when we should be linking with a yet-to-be-installed one ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" && test no != "$_LT_TAGVAR(hardcode_minus_L, $1)"; then # Linking always hardcodes the temporary library directory. _LT_TAGVAR(hardcode_action, $1)=relink else # We can link without hardcoding, and we can hardcode nonexisting dirs. _LT_TAGVAR(hardcode_action, $1)=immediate fi else # We cannot hardcode anything, or else we can only hardcode existing # directories. _LT_TAGVAR(hardcode_action, $1)=unsupported fi AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) if test relink = "$_LT_TAGVAR(hardcode_action, $1)" || test yes = "$_LT_TAGVAR(inherit_rpath, $1)"; then # Fast installation is not supported enable_fast_install=no elif test yes = "$shlibpath_overrides_runpath" || test no = "$enable_shared"; then # Fast installation is not necessary enable_fast_install=needless fi _LT_TAGDECL([], [hardcode_action], [0], [How to hardcode a shared library path into an executable]) ])# _LT_LINKER_HARDCODE_LIBPATH # _LT_CMD_STRIPLIB # ---------------- m4_defun([_LT_CMD_STRIPLIB], [m4_require([_LT_DECL_EGREP]) striplib= old_striplib= AC_MSG_CHECKING([whether stripping libraries is possible]) if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" AC_MSG_RESULT([yes]) else # FIXME - insert some real tests, host_os isn't really good enough case $host_os in darwin*) if test -n "$STRIP"; then striplib="$STRIP -x" old_striplib="$STRIP -S" AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi ;; *) AC_MSG_RESULT([no]) ;; esac fi _LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) _LT_DECL([], [striplib], [1]) ])# _LT_CMD_STRIPLIB # _LT_PREPARE_MUNGE_PATH_LIST # --------------------------- # Make sure func_munge_path_list() is defined correctly. m4_defun([_LT_PREPARE_MUNGE_PATH_LIST], [[# func_munge_path_list VARIABLE PATH # ----------------------------------- # VARIABLE is name of variable containing _space_ separated list of # directories to be munged by the contents of PATH, which is string # having a format: # "DIR[:DIR]:" # string "DIR[ DIR]" will be prepended to VARIABLE # ":DIR[:DIR]" # string "DIR[ DIR]" will be appended to VARIABLE # "DIRP[:DIRP]::[DIRA:]DIRA" # string "DIRP[ DIRP]" will be prepended to VARIABLE and string # "DIRA[ DIRA]" will be appended to VARIABLE # "DIR[:DIR]" # VARIABLE will be replaced by "DIR[ DIR]" func_munge_path_list () { case x@S|@2 in x) ;; *:) eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'` \@S|@@S|@1\" ;; x:*) eval @S|@1=\"\@S|@@S|@1 `$ECHO @S|@2 | $SED 's/:/ /g'`\" ;; *::*) eval @S|@1=\"\@S|@@S|@1\ `$ECHO @S|@2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" eval @S|@1=\"`$ECHO @S|@2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \@S|@@S|@1\" ;; *) eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'`\" ;; esac } ]])# _LT_PREPARE_PATH_LIST # _LT_SYS_DYNAMIC_LINKER([TAG]) # ----------------------------- # PORTME Fill in your ld.so characteristics m4_defun([_LT_SYS_DYNAMIC_LINKER], [AC_REQUIRE([AC_CANONICAL_HOST])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_OBJDUMP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl m4_require([_LT_PREPARE_MUNGE_PATH_LIST])dnl AC_MSG_CHECKING([dynamic linker characteristics]) m4_if([$1], [], [ if test yes = "$GCC"; then case $host_os in darwin*) lt_awk_arg='/^libraries:/,/LR/' ;; *) lt_awk_arg='/^libraries:/' ;; esac case $host_os in mingw* | cegcc*) lt_sed_strip_eq='s|=\([[A-Za-z]]:\)|\1|g' ;; *) lt_sed_strip_eq='s|=/|/|g' ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` case $lt_search_path_spec in *\;*) # if the path contains ";" then we assume it to be the separator # otherwise default to the standard path separator (i.e. ":") - it is # assumed that no part of a normal pathname contains ";" but that should # okay in the real world where ";" in dirpaths is itself problematic. lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` ;; *) lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` ;; esac # Ok, now we have the path, separated by spaces, we can step through it # and add multilib dir if necessary... lt_tmp_lt_search_path_spec= lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` # ...but if some path component already ends with the multilib dir we assume # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer). case "$lt_multi_os_dir; $lt_search_path_spec " in "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*) lt_multi_os_dir= ;; esac for lt_sys_path in $lt_search_path_spec; do if test -d "$lt_sys_path$lt_multi_os_dir"; then lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir" elif test -n "$lt_multi_os_dir"; then test -d "$lt_sys_path" && \ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" fi done lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' BEGIN {RS = " "; FS = "/|\n";} { lt_foo = ""; lt_count = 0; for (lt_i = NF; lt_i > 0; lt_i--) { if ($lt_i != "" && $lt_i != ".") { if ($lt_i == "..") { lt_count++; } else { if (lt_count == 0) { lt_foo = "/" $lt_i lt_foo; } else { lt_count--; } } } } if (lt_foo != "") { lt_freq[[lt_foo]]++; } if (lt_freq[[lt_foo]] == 1) { print lt_foo; } }'` # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's|/\([[A-Za-z]]:\)|\1|g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` else sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" fi]) library_names_spec= libname_spec='lib$name' soname_spec= shrext_cmds=.so postinstall_cmds= postuninstall_cmds= finish_cmds= finish_eval= shlibpath_var= shlibpath_overrides_runpath=unknown version_type=none dynamic_linker="$host_os ld.so" sys_lib_dlsearch_path_spec="/lib /usr/lib" need_lib_prefix=unknown hardcode_into_libs=no # when you set need_version to no, make sure it does not cause -set_version # flags to be left without arguments need_version=unknown AC_ARG_VAR([LT_SYS_LIBRARY_PATH], [User-defined run-time library search path.]) case $host_os in aix3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname.a' shlibpath_var=LIBPATH # AIX 3 has no versioning support, so we append a major version to the name. soname_spec='$libname$release$shared_ext$major' ;; aix[[4-9]]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no hardcode_into_libs=yes if test ia64 = "$host_cpu"; then # AIX 5 supports IA64 library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH else # With GCC up to 2.95.x, collect2 would create an import file # for dependence libraries. The import file would start with # the line '#! .'. This would cause the generated library to # depend on '.', always an invalid library. This was fixed in # development snapshots of GCC prior to 3.0. case $host_os in aix4 | aix4.[[01]] | aix4.[[01]].*) if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' echo ' yes ' echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then : else can_build_shared=no fi ;; esac # Using Import Files as archive members, it is possible to support # filename-based versioning of shared library archives on AIX. While # this would work for both with and without runtime linking, it will # prevent static linking of such archives. So we do filename-based # shared library versioning with .so extension only, which is used # when both runtime linking and shared linking is enabled. # Unfortunately, runtime linking may impact performance, so we do # not want this to be the default eventually. Also, we use the # versioned .so libs for executables only if there is the -brtl # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. # To allow for filename-based versioning support, we need to create # libNAME.so.V as an archive file, containing: # *) an Import File, referring to the versioned filename of the # archive as well as the shared archive member, telling the # bitwidth (32 or 64) of that shared object, and providing the # list of exported symbols of that shared object, eventually # decorated with the 'weak' keyword # *) the shared object with the F_LOADONLY flag set, to really avoid # it being seen by the linker. # At run time we better use the real file rather than another symlink, # but for link time we create the symlink libNAME.so -> libNAME.so.V case $with_aix_soname,$aix_use_runtimelinking in # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct # soname into executable. Probably we can add versioning support to # collect2, so additional links can be useful in future. aix,yes) # traditional libtool dynamic_linker='AIX unversionable lib.so' # If using run time linking (on AIX 4.2 or later) use lib.so # instead of lib.a to let people know that these are not # typical AIX shared libraries. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ;; aix,no) # traditional AIX only dynamic_linker='AIX lib.a[(]lib.so.V[)]' # We preserve .a as extension for shared libraries through AIX4.2 # and later when we are not doing run time linking. library_names_spec='$libname$release.a $libname.a' soname_spec='$libname$release$shared_ext$major' ;; svr4,*) # full svr4 only dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)]" library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' # We do not specify a path in Import Files, so LIBPATH fires. shlibpath_overrides_runpath=yes ;; *,yes) # both, prefer svr4 dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)], lib.a[(]lib.so.V[)]" library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' # unpreferred sharedlib libNAME.a needs extra handling postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' # We do not specify a path in Import Files, so LIBPATH fires. shlibpath_overrides_runpath=yes ;; *,no) # both, prefer aix dynamic_linker="AIX lib.a[(]lib.so.V[)], lib.so.V[(]$shared_archive_member_spec.o[)]" library_names_spec='$libname$release.a $libname.a' soname_spec='$libname$release$shared_ext$major' # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' ;; esac shlibpath_var=LIBPATH fi ;; amigaos*) case $host_cpu in powerpc) # Since July 2007 AmigaOS4 officially supports .so libraries. # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ;; m68k) library_names_spec='$libname.ixlibrary $libname.a' # Create ${libname}_ixlibrary.a entries in /sys/libs. finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' ;; esac ;; beos*) library_names_spec='$libname$shared_ext' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH ;; bsdi[[45]]*) version_type=linux # correct to gnu/linux during the next big refactor need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" # the default ld.so.conf also contains /usr/contrib/lib and # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow # libtool to hard-code these into programs ;; cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=.dll need_version=no need_lib_prefix=no case $GCC,$cc_basename in yes,*) # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) ;; mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' ;; esac dynamic_linker='Win32 ld.exe' ;; *,cl*) # Native MSVC libname_spec='$name' soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' library_names_spec='$libname.dll.lib' case $build_os in mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';' for lt_path in $LIB do IFS=$lt_save_ifs # Let DOS variable expansion print the short 8.3 style file name. lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" done IFS=$lt_save_ifs # Convert to MSYS style. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form # but this time dos style (no spaces!) so that the unix form looks # like /cygdrive/c/PROGRA~1:/cygdr... sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` ;; *) sys_lib_search_path_spec=$LIB if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then # It is most probably a Windows format PATH. sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` else sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` fi # FIXME: find the short name or the path components, as spaces are # common. (e.g. "Program Files" -> "PROGRA~1") ;; esac # DLL is installed to $(libdir)/../bin by postinstall_cmds postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' shlibpath_overrides_runpath=yes dynamic_linker='Win32 link.exe' ;; *) # Assume MSVC wrapper library_names_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext $libname.lib' dynamic_linker='Win32 ld.exe' ;; esac # FIXME: first we should search . and the directory the executable is in shlibpath_var=PATH ;; darwin* | rhapsody*) dynamic_linker="$host_os dyld" version_type=darwin need_lib_prefix=no need_version=no library_names_spec='$libname$release$major$shared_ext $libname$shared_ext' soname_spec='$libname$release$major$shared_ext' shlibpath_overrides_runpath=yes shlibpath_var=DYLD_LIBRARY_PATH shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' ;; dgux*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH ;; freebsd* | dragonfly*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then objformat=`/usr/bin/objformat` else case $host_os in freebsd[[23]].*) objformat=aout ;; *) objformat=elf ;; esac fi version_type=freebsd-$objformat case $version_type in freebsd-elf*) library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' need_version=no need_lib_prefix=no ;; freebsd-*) library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' need_version=yes ;; esac shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2.*) shlibpath_overrides_runpath=yes ;; freebsd3.[[01]]* | freebsdelf3.[[01]]*) shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; *) # from 4.6 on, and DragonFly shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; esac ;; haiku*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no dynamic_linker="$host_os runtime_loader" library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LIBRARY_PATH shlibpath_overrides_runpath=no sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. version_type=sunos need_lib_prefix=no need_version=no case $host_cpu in ia64*) shrext_cmds='.so' hardcode_into_libs=yes dynamic_linker="$host_os dld.so" shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' if test 32 = "$HPUX_IA64_MODE"; then sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" sys_lib_dlsearch_path_spec=/usr/lib/hpux32 else sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" sys_lib_dlsearch_path_spec=/usr/lib/hpux64 fi ;; hppa*64*) shrext_cmds='.sl' hardcode_into_libs=yes dynamic_linker="$host_os dld.sl" shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; *) shrext_cmds='.sl' dynamic_linker="$host_os dld.sl" shlibpath_var=SHLIB_PATH shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' ;; esac # HP-UX runs *really* slowly unless shared libraries are mode 555, ... postinstall_cmds='chmod 555 $lib' # or fails outright, so override atomically: install_override_mode=555 ;; interix[[3-9]]*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; irix5* | irix6* | nonstopux*) case $host_os in nonstopux*) version_type=nonstopux ;; *) if test yes = "$lt_cv_prog_gnu_ld"; then version_type=linux # correct to gnu/linux during the next big refactor else version_type=irix fi ;; esac need_lib_prefix=no need_version=no soname_spec='$libname$release$shared_ext$major' library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext' case $host_os in irix5* | nonstopux*) libsuff= shlibsuff= ;; *) case $LD in # libtool.m4 will add one of these switches to LD *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= libmagic=32-bit;; *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 libmagic=N32;; *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 libmagic=64-bit;; *) libsuff= shlibsuff= libmagic=never-match;; esac ;; esac shlibpath_var=LD_LIBRARY${shlibsuff}_PATH shlibpath_overrides_runpath=no sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff" sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff" hardcode_into_libs=yes ;; # No shared lib support for Linux oldld, aout, or coff. linux*oldld* | linux*aout* | linux*coff*) dynamic_linker=no ;; linux*android*) version_type=none # Android doesn't support versioned libraries. need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext' soname_spec='$libname$release$shared_ext' finish_cmds= shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes dynamic_linker='Android linker' # Don't embed -rpath directories since the linker doesn't support them. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no # Some binutils ld are patched to set DT_RUNPATH AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], [lt_cv_shlibpath_overrides_runpath=no save_LDFLAGS=$LDFLAGS save_libdir=$libdir eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], [lt_cv_shlibpath_overrides_runpath=yes])]) LDFLAGS=$save_LDFLAGS libdir=$save_libdir ]) shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath # This implies no fast_install, which is unacceptable. # Some rework will be needed to allow for fast_install # before this can be enabled. hardcode_into_libs=yes # Ideally, we could use ldconfig to report *all* directores which are # searched for libraries, however this is still not possible. Aside from not # being certain /sbin/ldconfig is available, command # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, # even though it is searched at run-time. Try to do the best guess by # appending ld.so.conf contents (and includes) to the search path. if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on # powerpc, because MkLinux only supported shared libraries with the # GNU dynamic linker. Since this was broken with cross compilers, # most powerpc-linux boxes support dynamic linking these days and # people can always --disable-shared, the test was removed, and we # assume the GNU/Linux dynamic linker is in use. dynamic_linker='GNU/Linux ld.so' ;; netbsd*) version_type=sunos need_lib_prefix=no need_version=no if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' dynamic_linker='NetBSD (a.out) ld.so' else library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' dynamic_linker='NetBSD ld.elf_so' fi shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes ;; newsos6) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; *nto* | *qnx*) version_type=qnx need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes dynamic_linker='ldqnx.so' ;; openbsd* | bitrig*) version_type=sunos sys_lib_dlsearch_path_spec=/usr/lib need_lib_prefix=no if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then need_version=no else need_version=yes fi library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes ;; os2*) libname_spec='$name' version_type=windows shrext_cmds=.dll need_version=no need_lib_prefix=no # OS/2 can only load a DLL with a base name of 8 characters or less. soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; v=$($ECHO $release$versuffix | tr -d .-); n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); $ECHO $n$v`$shared_ext' library_names_spec='${libname}_dll.$libext' dynamic_linker='OS/2 ld.exe' shlibpath_var=BEGINLIBPATH sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec postinstall_cmds='base_file=`basename \$file`~ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~ dldir=$destdir/`dirname \$dlpath`~ test -d \$dldir || mkdir -p \$dldir~ $install_prog $dir/$dlname \$dldir/$dlname~ chmod a+x \$dldir/$dlname~ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath' ;; osf3* | osf4* | osf5*) version_type=osf need_lib_prefix=no need_version=no soname_spec='$libname$release$shared_ext$major' library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec ;; rdos*) dynamic_linker=no ;; solaris*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes # ldd complains unless libraries are executable postinstall_cmds='chmod +x $lib' ;; sunos4*) version_type=sunos library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes if test yes = "$with_gnu_ld"; then need_lib_prefix=no fi need_version=yes ;; sysv4 | sysv4.3*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH case $host_vendor in sni) shlibpath_overrides_runpath=no need_lib_prefix=no runpath_var=LD_RUN_PATH ;; siemens) need_lib_prefix=no ;; motorola) need_lib_prefix=no need_version=no shlibpath_overrides_runpath=no sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' ;; esac ;; sysv4*MP*) if test -d /usr/nec; then version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext' soname_spec='$libname$shared_ext.$major' shlibpath_var=LD_LIBRARY_PATH fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) version_type=sco need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=yes hardcode_into_libs=yes if test yes = "$with_gnu_ld"; then sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' else sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' case $host_os in sco3.2v5*) sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" ;; esac fi sys_lib_dlsearch_path_spec='/usr/lib' ;; tpf*) # TPF is a cross-target only. Preferred cross-host = GNU/Linux. version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes ;; uts4*) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' shlibpath_var=LD_LIBRARY_PATH ;; *) dynamic_linker=no ;; esac AC_MSG_RESULT([$dynamic_linker]) test no = "$dynamic_linker" && can_build_shared=no variables_saved_for_relink="PATH $shlibpath_var $runpath_var" if test yes = "$GCC"; then variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" fi if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec fi if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec fi # remember unaugmented sys_lib_dlsearch_path content for libtool script decls... configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec # ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" # to be used as default LT_SYS_LIBRARY_PATH value in generated libtool configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH _LT_DECL([], [variables_saved_for_relink], [1], [Variables whose values should be saved in libtool wrapper scripts and restored at link time]) _LT_DECL([], [need_lib_prefix], [0], [Do we need the "lib" prefix for modules?]) _LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) _LT_DECL([], [version_type], [0], [Library versioning type]) _LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) _LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) _LT_DECL([], [shlibpath_overrides_runpath], [0], [Is shlibpath searched before the hard-coded library search path?]) _LT_DECL([], [libname_spec], [1], [Format of library name prefix]) _LT_DECL([], [library_names_spec], [1], [[List of archive names. First name is the real one, the rest are links. The last name is the one that the linker finds with -lNAME]]) _LT_DECL([], [soname_spec], [1], [[The coded name of the library, if different from the real name]]) _LT_DECL([], [install_override_mode], [1], [Permission mode override for installation of shared libraries]) _LT_DECL([], [postinstall_cmds], [2], [Command to use after installation of a shared archive]) _LT_DECL([], [postuninstall_cmds], [2], [Command to use after uninstallation of a shared archive]) _LT_DECL([], [finish_cmds], [2], [Commands used to finish a libtool library installation in a directory]) _LT_DECL([], [finish_eval], [1], [[As "finish_cmds", except a single script fragment to be evaled but not shown]]) _LT_DECL([], [hardcode_into_libs], [0], [Whether we should hardcode library paths into libraries]) _LT_DECL([], [sys_lib_search_path_spec], [2], [Compile-time system search path for libraries]) _LT_DECL([sys_lib_dlsearch_path_spec], [configure_time_dlsearch_path], [2], [Detected run-time system search path for libraries]) _LT_DECL([], [configure_time_lt_sys_library_path], [2], [Explicit LT_SYS_LIBRARY_PATH set during ./configure time]) ])# _LT_SYS_DYNAMIC_LINKER # _LT_PATH_TOOL_PREFIX(TOOL) # -------------------------- # find a file program that can recognize shared library AC_DEFUN([_LT_PATH_TOOL_PREFIX], [m4_require([_LT_DECL_EGREP])dnl AC_MSG_CHECKING([for $1]) AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, [case $MAGIC_CMD in [[\\/*] | ?:[\\/]*]) lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. ;; *) lt_save_MAGIC_CMD=$MAGIC_CMD lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR dnl $ac_dummy forces splitting on constant user-supplied paths. dnl POSIX.2 word splitting is done only on the output of word expansions, dnl not every word. This closes a longstanding sh security hole. ac_dummy="m4_if([$2], , $PATH, [$2])" for ac_dir in $ac_dummy; do IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$1"; then lt_cv_path_MAGIC_CMD=$ac_dir/"$1" if test -n "$file_magic_test_file"; then case $deplibs_check_method in "file_magic "*) file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` MAGIC_CMD=$lt_cv_path_MAGIC_CMD if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | $EGREP "$file_magic_regex" > /dev/null; then : else cat <<_LT_EOF 1>&2 *** Warning: the command libtool uses to detect shared libraries, *** $file_magic_cmd, produces output that libtool cannot recognize. *** The result is that libtool may fail to recognize shared libraries *** as such. This will affect the creation of libtool libraries that *** depend on shared libraries, but programs linked with such libtool *** libraries will work regardless of this problem. Nevertheless, you *** may want to report the problem to your system manager and/or to *** bug-libtool@gnu.org _LT_EOF fi ;; esac fi break fi done IFS=$lt_save_ifs MAGIC_CMD=$lt_save_MAGIC_CMD ;; esac]) MAGIC_CMD=$lt_cv_path_MAGIC_CMD if test -n "$MAGIC_CMD"; then AC_MSG_RESULT($MAGIC_CMD) else AC_MSG_RESULT(no) fi _LT_DECL([], [MAGIC_CMD], [0], [Used to examine libraries when file_magic_cmd begins with "file"])dnl ])# _LT_PATH_TOOL_PREFIX # Old name: AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) # _LT_PATH_MAGIC # -------------- # find a file program that can recognize a shared library m4_defun([_LT_PATH_MAGIC], [_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) else MAGIC_CMD=: fi fi ])# _LT_PATH_MAGIC # LT_PATH_LD # ---------- # find the pathname to the GNU or non-GNU linker AC_DEFUN([LT_PATH_LD], [AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_PROG_ECHO_BACKSLASH])dnl AC_ARG_WITH([gnu-ld], [AS_HELP_STRING([--with-gnu-ld], [assume the C compiler uses GNU ld @<:@default=no@:>@])], [test no = "$withval" || with_gnu_ld=yes], [with_gnu_ld=no])dnl ac_prog=ld if test yes = "$GCC"; then # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by $CC]) case $host in *-*-mingw*) # gcc leaves a trailing carriage return, which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *) ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; esac case $ac_prog in # Accept absolute paths. [[\\/]]* | ?:[[\\/]]*) re_direlt='/[[^/]][[^/]]*/\.\./' # Canonicalize the pathname of ld ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` done test -z "$LD" && LD=$ac_prog ;; "") # If it fails, then pretend we aren't using GCC. ac_prog=ld ;; *) # If it is relative, then search for the first ld in PATH. with_gnu_ld=unknown ;; esac elif test yes = "$with_gnu_ld"; then AC_MSG_CHECKING([for GNU ld]) else AC_MSG_CHECKING([for non-GNU ld]) fi AC_CACHE_VAL(lt_cv_path_LD, [if test -z "$LD"; then lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR for ac_dir in $PATH; do IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then lt_cv_path_LD=$ac_dir/$ac_prog # Check to see if the program is GNU ld. I'd rather use --version, # but apparently some variants of GNU ld only accept -v. # Break only if it was the GNU/non-GNU ld that we prefer. case `"$lt_cv_path_LD" -v 2>&1 &1 conftest.i cat conftest.i conftest.i >conftest2.i : ${lt_DD:=$DD} AC_PATH_PROGS_FEATURE_CHECK([lt_DD], [dd], [if "$ac_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then cmp -s conftest.i conftest.out \ && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=: fi]) rm -f conftest.i conftest2.i conftest.out]) ])# _LT_PATH_DD # _LT_CMD_TRUNCATE # ---------------- # find command to truncate a binary pipe m4_defun([_LT_CMD_TRUNCATE], [m4_require([_LT_PATH_DD]) AC_CACHE_CHECK([how to truncate binary pipes], [lt_cv_truncate_bin], [printf 0123456789abcdef0123456789abcdef >conftest.i cat conftest.i conftest.i >conftest2.i lt_cv_truncate_bin= if "$ac_cv_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then cmp -s conftest.i conftest.out \ && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" fi rm -f conftest.i conftest2.i conftest.out test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"]) _LT_DECL([lt_truncate_bin], [lt_cv_truncate_bin], [1], [Command to truncate a binary pipe]) ])# _LT_CMD_TRUNCATE # _LT_CHECK_MAGIC_METHOD # ---------------------- # how to check for library dependencies # -- PORTME fill in with the dynamic library characteristics m4_defun([_LT_CHECK_MAGIC_METHOD], [m4_require([_LT_DECL_EGREP]) m4_require([_LT_DECL_OBJDUMP]) AC_CACHE_CHECK([how to recognize dependent libraries], lt_cv_deplibs_check_method, [lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_deplibs_check_method='unknown' # Need to set the preceding variable on all platforms that support # interlibrary dependencies. # 'none' -- dependencies not supported. # 'unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks. # 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # that responds to the $file_magic_cmd with a given extended regex. # If you have 'file' or equivalent on your system and you're not sure # whether 'pass_all' will *always* work, you probably want this one. case $host_os in aix[[4-9]]*) lt_cv_deplibs_check_method=pass_all ;; beos*) lt_cv_deplibs_check_method=pass_all ;; bsdi[[45]]*) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)' lt_cv_file_magic_cmd='/usr/bin/file -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; cygwin*) # func_win32_libid is a shell function defined in ltmain.sh lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' ;; mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling. if ( file / ) >/dev/null 2>&1; then lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' lt_cv_file_magic_cmd='func_win32_libid' else # Keep this pattern in sync with the one in func_win32_libid. lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;; cegcc*) # use the weaker test based on 'objdump'. See mingw*. lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' lt_cv_file_magic_cmd='$OBJDUMP -f' ;; darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; freebsd* | dragonfly*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac else lt_cv_deplibs_check_method=pass_all fi ;; haiku*) lt_cv_deplibs_check_method=pass_all ;; hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so ;; hppa*64*) [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'] lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl ;; *) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library' lt_cv_file_magic_test_file=/usr/lib/libc.sl ;; esac ;; interix[[3-9]]*) # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' ;; irix5* | irix6* | nonstopux*) case $LD in *-32|*"-32 ") libmagic=32-bit;; *-n32|*"-n32 ") libmagic=N32;; *-64|*"-64 ") libmagic=64-bit;; *) libmagic=never-match;; esac lt_cv_deplibs_check_method=pass_all ;; # This must be glibc/ELF. linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) lt_cv_deplibs_check_method=pass_all ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' fi ;; newos6*) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' lt_cv_file_magic_cmd=/usr/bin/file lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; *nto* | *qnx*) lt_cv_deplibs_check_method=pass_all ;; openbsd* | bitrig*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' else lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' fi ;; osf3* | osf4* | osf5*) lt_cv_deplibs_check_method=pass_all ;; rdos*) lt_cv_deplibs_check_method=pass_all ;; solaris*) lt_cv_deplibs_check_method=pass_all ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) lt_cv_deplibs_check_method=pass_all ;; sysv4 | sysv4.3*) case $host_vendor in motorola) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` ;; ncr) lt_cv_deplibs_check_method=pass_all ;; sequent) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;; sni) lt_cv_file_magic_cmd='/bin/file' lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" lt_cv_file_magic_test_file=/lib/libc.so ;; siemens) lt_cv_deplibs_check_method=pass_all ;; pc) lt_cv_deplibs_check_method=pass_all ;; esac ;; tpf*) lt_cv_deplibs_check_method=pass_all ;; os2*) lt_cv_deplibs_check_method=pass_all ;; esac ]) file_magic_glob= want_nocaseglob=no if test "$build" = "$host"; then case $host_os in mingw* | pw32*) if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then want_nocaseglob=yes else file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` fi ;; esac fi file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method test -z "$deplibs_check_method" && deplibs_check_method=unknown _LT_DECL([], [deplibs_check_method], [1], [Method to check whether dependent libraries are shared objects]) _LT_DECL([], [file_magic_cmd], [1], [Command to use when deplibs_check_method = "file_magic"]) _LT_DECL([], [file_magic_glob], [1], [How to find potential files when deplibs_check_method = "file_magic"]) _LT_DECL([], [want_nocaseglob], [1], [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) ])# _LT_CHECK_MAGIC_METHOD # LT_PATH_NM # ---------- # find the pathname to a BSD- or MS-compatible name lister AC_DEFUN([LT_PATH_NM], [AC_REQUIRE([AC_PROG_CC])dnl AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, [if test -n "$NM"; then # Let the user override the test. lt_cv_path_NM=$NM else lt_nm_to_check=${ac_tool_prefix}nm if test -n "$ac_tool_prefix" && test "$build" = "$host"; then lt_nm_to_check="$lt_nm_to_check nm" fi for lt_tmp_nm in $lt_nm_to_check; do lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do IFS=$lt_save_ifs test -z "$ac_dir" && ac_dir=. tmp_nm=$ac_dir/$lt_tmp_nm if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then # Check to see if the nm accepts a BSD-compat flag. # Adding the 'sed 1q' prevents false positives on HP-UX, which says: # nm: unknown option "B" ignored # Tru64's nm complains that /dev/null is an invalid object file # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty case $build_os in mingw*) lt_bad_file=conftest.nm/nofile ;; *) lt_bad_file=/dev/null ;; esac case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in *$lt_bad_file* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break 2 ;; *) case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break 2 ;; *) lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but continue # so that we can try to find one that supports BSD flags ;; esac ;; esac fi done IFS=$lt_save_ifs done : ${lt_cv_path_NM=no} fi]) if test no != "$lt_cv_path_NM"; then NM=$lt_cv_path_NM else # Didn't find any BSD compatible name lister, look for dumpbin. if test -n "$DUMPBIN"; then : # Let the user override the test. else AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols -headers" ;; *) DUMPBIN=: ;; esac fi AC_SUBST([DUMPBIN]) if test : != "$DUMPBIN"; then NM=$DUMPBIN fi fi test -z "$NM" && NM=nm AC_SUBST([NM]) _LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], [lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&AS_MESSAGE_LOG_FD (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) cat conftest.out >&AS_MESSAGE_LOG_FD if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" fi rm -f conftest*]) ])# LT_PATH_NM # Old names: AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_PROG_NM], []) dnl AC_DEFUN([AC_PROG_NM], []) # _LT_CHECK_SHAREDLIB_FROM_LINKLIB # -------------------------------- # how to determine the name of the shared library # associated with a specific link library. # -- PORTME fill in with the dynamic library characteristics m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], [m4_require([_LT_DECL_EGREP]) m4_require([_LT_DECL_OBJDUMP]) m4_require([_LT_DECL_DLLTOOL]) AC_CACHE_CHECK([how to associate runtime and link libraries], lt_cv_sharedlib_from_linklib_cmd, [lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in cygwin* | mingw* | pw32* | cegcc*) # two different shell functions defined in ltmain.sh; # decide which one to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in *--identify-strict*) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib ;; *) lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback ;; esac ;; *) # fallback: assume linklib IS sharedlib lt_cv_sharedlib_from_linklib_cmd=$ECHO ;; esac ]) sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO _LT_DECL([], [sharedlib_from_linklib_cmd], [1], [Command to associate shared and link libraries]) ])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB # _LT_PATH_MANIFEST_TOOL # ---------------------- # locate the manifest tool m4_defun([_LT_PATH_MANIFEST_TOOL], [AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], [lt_cv_path_mainfest_tool=no echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out cat conftest.err >&AS_MESSAGE_LOG_FD if $GREP 'Manifest Tool' conftest.out > /dev/null; then lt_cv_path_mainfest_tool=yes fi rm -f conftest*]) if test yes != "$lt_cv_path_mainfest_tool"; then MANIFEST_TOOL=: fi _LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl ])# _LT_PATH_MANIFEST_TOOL # _LT_DLL_DEF_P([FILE]) # --------------------- # True iff FILE is a Windows DLL '.def' file. # Keep in sync with func_dll_def_p in the libtool script AC_DEFUN([_LT_DLL_DEF_P], [dnl test DEF = "`$SED -n dnl -e '\''s/^[[ ]]*//'\'' dnl Strip leading whitespace -e '\''/^\(;.*\)*$/d'\'' dnl Delete empty lines and comments -e '\''s/^\(EXPORTS\|LIBRARY\)\([[ ]].*\)*$/DEF/p'\'' dnl -e q dnl Only consider the first "real" line $1`" dnl ])# _LT_DLL_DEF_P # LT_LIB_M # -------- # check for math library AC_DEFUN([LT_LIB_M], [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in *-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) # These system don't have libm, or don't need it ;; *-ncr-sysv4.3*) AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM=-lmw) AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") ;; *) AC_CHECK_LIB(m, cos, LIBM=-lm) ;; esac AC_SUBST([LIBM]) ])# LT_LIB_M # Old name: AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_CHECK_LIBM], []) # _LT_COMPILER_NO_RTTI([TAGNAME]) # ------------------------------- m4_defun([_LT_COMPILER_NO_RTTI], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= if test yes = "$GCC"; then case $cc_basename in nvcc*) _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; *) _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; esac _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], lt_cv_prog_compiler_rtti_exceptions, [-fno-rtti -fno-exceptions], [], [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) fi _LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], [Compiler flag to turn off builtin functions]) ])# _LT_COMPILER_NO_RTTI # _LT_CMD_GLOBAL_SYMBOLS # ---------------------- m4_defun([_LT_CMD_GLOBAL_SYMBOLS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_PROG_CC])dnl AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([LT_PATH_NM])dnl AC_REQUIRE([LT_PATH_LD])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_TAG_COMPILER])dnl # Check for command to grab the raw symbol name followed by C symbol from nm. AC_MSG_CHECKING([command to parse $NM output from $compiler object]) AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], [ # These are sane defaults that work on at least a few old systems. # [They come from Ultrix. What could be older than Ultrix?!! ;)] # Character class describing NM global symbol codes. symcode='[[BCDEGRST]]' # Regexp to match symbols that can be accessed directly from C. sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' # Define system-specific variables. case $host_os in aix*) symcode='[[BCDT]]' ;; cygwin* | mingw* | pw32* | cegcc*) symcode='[[ABCDGISTW]]' ;; hpux*) if test ia64 = "$host_cpu"; then symcode='[[ABCDEGRST]]' fi ;; irix* | nonstopux*) symcode='[[BCDEGRST]]' ;; osf*) symcode='[[BCDEGQRST]]' ;; solaris*) symcode='[[BDRT]]' ;; sco3.2v5*) symcode='[[DT]]' ;; sysv4.2uw2*) symcode='[[DT]]' ;; sysv5* | sco5v6* | unixware* | OpenUNIX*) symcode='[[ABDT]]' ;; sysv4) symcode='[[DFNSTU]]' ;; esac # If we're using GNU nm, then use its standard symbol codes. case `$NM -V 2>&1` in *GNU* | *'with BFD'*) symcode='[[ABCDGIRSTW]]' ;; esac if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Gets list of data symbols to import. lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'" # Adjust the below global symbol transforms to fixup imported variables. lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" lt_c_name_lib_hook="\ -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\ -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'" else # Disable hooks by default. lt_cv_sys_global_symbol_to_import= lt_cdecl_hook= lt_c_name_hook= lt_c_name_lib_hook= fi # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. lt_cv_sys_global_symbol_to_cdecl="sed -n"\ $lt_cdecl_hook\ " -e 's/^T .* \(.*\)$/extern int \1();/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address lt_cv_sys_global_symbol_to_c_name_address="sed -n"\ $lt_c_name_hook\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" # Transform an extracted symbol line into symbol name with lib prefix and # symbol address. lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\ $lt_c_name_lib_hook\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'" # Handle CRLF in mingw tool chain opt_cr= case $build_os in mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac # Try without a prefix underscore, then with it. for ac_symprfx in "" "_"; do # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. symxfrm="\\1 $ac_symprfx\\2 \\2" # Write the raw and C identifiers. if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function, # D for any global variable and I for any imported variable. # Also find C++ and __fastcall symbols from MSVC++, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK ['"\ " {last_section=section; section=\$ 3};"\ " /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ " /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ " /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\ " /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\ " /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\ " \$ 0!~/External *\|/{next};"\ " / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ " {if(hide[section]) next};"\ " {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\ " {split(\$ 0,a,/\||\r/); split(a[2],s)};"\ " s[1]~/^[@?]/{print f,s[1],s[1]; next};"\ " s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx]" else lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no rm -f conftest* cat > conftest.$ac_ext <<_LT_EOF #ifdef __cplusplus extern "C" { #endif char nm_test_var; void nm_test_func(void); void nm_test_func(void){} #ifdef __cplusplus } #endif int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if AC_TRY_EVAL(ac_compile); then # Now try to grab the symbols. nlist=conftest.nm if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" else rm -f "$nlist"T fi # Make sure that we snagged all the symbols we need. if $GREP ' nm_test_var$' "$nlist" >/dev/null; then if $GREP ' nm_test_func$' "$nlist" >/dev/null; then cat <<_LT_EOF > conftest.$ac_ext /* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ #if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE /* DATA imports from DLLs on WIN32 can't be const, because runtime relocations are performed -- see ld's documentation on pseudo-relocs. */ # define LT@&t@_DLSYM_CONST #elif defined __osf__ /* This system does not cope well with relocations in const data. */ # define LT@&t@_DLSYM_CONST #else # define LT@&t@_DLSYM_CONST const #endif #ifdef __cplusplus extern "C" { #endif _LT_EOF # Now generate the symbol file. eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' cat <<_LT_EOF >> conftest.$ac_ext /* The mapping between symbol names and symbols. */ LT@&t@_DLSYM_CONST struct { const char *name; void *address; } lt__PROGRAM__LTX_preloaded_symbols[[]] = { { "@PROGRAM@", (void *) 0 }, _LT_EOF $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext cat <<\_LT_EOF >> conftest.$ac_ext {0, (void *) 0} }; /* This works around a problem in FreeBSD linker */ #ifdef FREEBSD_WORKAROUND static const void *lt_preloaded_setup() { return lt__PROGRAM__LTX_preloaded_symbols; } #endif #ifdef __cplusplus } #endif _LT_EOF # Now try linking the two files. mv conftest.$ac_objext conftstm.$ac_objext lt_globsym_save_LIBS=$LIBS lt_globsym_save_CFLAGS=$CFLAGS LIBS=conftstm.$ac_objext CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" if AC_TRY_EVAL(ac_link) && test -s conftest$ac_exeext; then pipe_works=yes fi LIBS=$lt_globsym_save_LIBS CFLAGS=$lt_globsym_save_CFLAGS else echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD fi else echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD fi else echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD cat conftest.$ac_ext >&5 fi rm -rf conftest* conftst* # Do not use the global_symbol_pipe unless it works. if test yes = "$pipe_works"; then break else lt_cv_sys_global_symbol_pipe= fi done ]) if test -z "$lt_cv_sys_global_symbol_pipe"; then lt_cv_sys_global_symbol_to_cdecl= fi if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then AC_MSG_RESULT(failed) else AC_MSG_RESULT(ok) fi # Response file support. if test "$lt_cv_nm_interface" = "MS dumpbin"; then nm_file_list_spec='@' elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then nm_file_list_spec='@' fi _LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], [Take the output of nm and produce a listing of raw symbols and C names]) _LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], [Transform the output of nm in a proper C declaration]) _LT_DECL([global_symbol_to_import], [lt_cv_sys_global_symbol_to_import], [1], [Transform the output of nm into a list of symbols to manually relocate]) _LT_DECL([global_symbol_to_c_name_address], [lt_cv_sys_global_symbol_to_c_name_address], [1], [Transform the output of nm in a C name address pair]) _LT_DECL([global_symbol_to_c_name_address_lib_prefix], [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], [Transform the output of nm in a C name address pair when lib prefix is needed]) _LT_DECL([nm_interface], [lt_cv_nm_interface], [1], [The name lister interface]) _LT_DECL([], [nm_file_list_spec], [1], [Specify filename containing input files for $NM]) ]) # _LT_CMD_GLOBAL_SYMBOLS # _LT_COMPILER_PIC([TAGNAME]) # --------------------------- m4_defun([_LT_COMPILER_PIC], [m4_require([_LT_TAG_COMPILER])dnl _LT_TAGVAR(lt_prog_compiler_wl, $1)= _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)= m4_if([$1], [CXX], [ # C++ specific cases for pic, static, wl, etc. if test yes = "$GXX"; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the '-m68020' flag to GCC prevents building anything better, # like '-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) case $host_os in os2*) _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' ;; esac ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; *djgpp*) # DJGPP does not support shared libraries at all _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. _LT_TAGVAR(lt_prog_compiler_static, $1)= ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac else case $host_os in aix[[4-9]]*) # All AIX code is PIC. if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; chorus*) case $cc_basename in cxch68*) # Green Hills C++ Compiler # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" ;; esac ;; mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) ;; dgux*) case $cc_basename in ec++*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; ghcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; freebsd* | dragonfly*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' if test ia64 != "$host_cpu"; then _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' fi ;; aCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac ;; *) ;; esac ;; interix*) # This is c89, which is MS Visual C++ (no shared libs) # Anyone wants to do a port? ;; irix5* | irix6* | nonstopux*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' # CC pic flag -KPIC is the default. ;; *) ;; esac ;; linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in KCC*) # KAI C++ Compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; ecpc* ) # old Intel C++ for x86_64, which still supported -KPIC. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; icpc* ) # Intel C++, used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; pgCC* | pgcpp*) # Portland Group C++ compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; cxx*) # Compaq C++ # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL 8.0, 9.0 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; esac ;; esac ;; lynxos*) ;; m88k*) ;; mvs*) case $cc_basename in cxx*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' ;; *) ;; esac ;; netbsd*) ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' ;; RCC*) # Rational C++ 2.4.1 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; cxx*) # Digital/Compaq C++ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # Make sure the PIC flag is empty. It appears that all Alpha # Linux and Compaq Tru64 Unix objects are PIC. _LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; *) ;; esac ;; psos*) ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' ;; *) ;; esac ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; lcc*) # Lucid _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' ;; *) ;; esac ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) case $cc_basename in CC*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' ;; *) ;; esac ;; vxworks*) ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ], [ if test yes = "$GCC"; then _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' case $host_os in aix*) # All AIX code is PIC. if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; m68k) # FIXME: we need at least 68020 code to build shared libraries, but # adding the '-m68020' flag to GCC prevents building anything better, # like '-m68040'. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' ;; esac ;; beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style # (--disable-auto-import) libraries m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) case $host_os in os2*) _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' ;; esac ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' ;; haiku*) # PIC is the default for Haiku. # The "-static" flag exists, but is broken. _LT_TAGVAR(lt_prog_compiler_static, $1)= ;; hpux*) # PIC is the default for 64-bit PA HP-UX, but not for 32-bit # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag # sets the default TLS model and affects inlining. case $host_cpu in hppa*64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac ;; interix[[3-9]]*) # Interix 3.x gcc -fpic/-fPIC options generate broken code. # Instead, we relocate shared libraries at runtime. ;; msdosdjgpp*) # Just because we use GCC doesn't mean we suddenly get shared libraries # on systems that don't support them. _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no enable_shared=no ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic fi ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' ;; esac case $cc_basename in nvcc*) # Cuda Compiler Driver 2.2 _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)" fi ;; esac else # PORTME Check for flag to pass linker flags through the system compiler. case $host_os in aix*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' if test ia64 = "$host_cpu"; then # AIX 5 now supports IA64 processor _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' else _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' fi ;; darwin* | rhapsody*) # PIC is the default on this platform # Common symbols not allowed in MH_DYLIB files _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' case $cc_basename in nagfor*) # NAG Fortran compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [], [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) case $host_os in os2*) _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' ;; esac ;; hpux9* | hpux10* | hpux11*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but # not for PA HP-UX. case $host_cpu in hppa*64*|ia64*) # +Z the default ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' ;; esac # Is there a better lt_prog_compiler_static that works with the bundled CC? _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' ;; irix5* | irix6* | nonstopux*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # PIC (with -KPIC) is the default. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in # old Intel for x86_64, which still supported -KPIC. ecc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # icc used to be incompatible with GCC. # ICC 10 doesn't accept -KPIC any more. icc* | ifort*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; # Lahey Fortran 8.1. lf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' ;; nagfor*) # NAG Fortran compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; tcc*) # Fabrice Bellard et al's Tiny C Compiler _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group compilers (*not* the Pentium gcc compiler, # which looks to be a dead project) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; ccc*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All Alpha code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; xl* | bgxl* | bgf* | mpixl*) # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*) # Sun Fortran 8.3 passes all unrecognized flags to the linker _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='' ;; *Sun\ F* | *Sun*Fortran*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' ;; *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' ;; *Intel*\ [[CF]]*Compiler*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;; *Portland\ Group*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; esac ;; esac ;; newsos6) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump. _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' ;; osf3* | osf4* | osf5*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' # All OSF/1 code is PIC. _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; rdos*) _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; solaris*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' case $cc_basename in f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; *) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; esac ;; sunos4*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4 | sysv4.2uw2* | sysv4.3*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' fi ;; sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; unicos*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; uts4*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; *) _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no ;; esac fi ]) case $host_os in # For platforms that do not support PIC, -DPIC is meaningless: *djgpp*) _LT_TAGVAR(lt_prog_compiler_pic, $1)= ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" ;; esac AC_CACHE_CHECK([for $compiler option to produce PIC], [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) _LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) # # Check to make sure the PIC flag actually works. # if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in "" | " "*) ;; *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; esac], [_LT_TAGVAR(lt_prog_compiler_pic, $1)= _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) fi _LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], [Additional compiler flags for building library objects]) _LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], [How to pass a linker flag through the compiler]) # # Check to make sure the static flag actually works. # wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" _LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), $lt_tmp_static_flag, [], [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) _LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], [Compiler flag to prevent dynamic linking]) ])# _LT_COMPILER_PIC # _LT_LINKER_SHLIBS([TAGNAME]) # ---------------------------- # See if the linker supports building shared libraries. m4_defun([_LT_LINKER_SHLIBS], [AC_REQUIRE([LT_PATH_LD])dnl AC_REQUIRE([LT_PATH_NM])dnl m4_require([_LT_PATH_MANIFEST_TOOL])dnl m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_DECL_SED])dnl m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl m4_require([_LT_TAG_COMPILER])dnl AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) m4_if([$1], [CXX], [ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] case $host_os in aix[[4-9]]*) # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to GNU nm, but means don't demangle to AIX nm. # Without the "-l" option, or with the "-B" option, AIX nm treats # weak defined symbols like other global defined symbols, whereas # GNU nm marks them as "W". # While the 'weak' keyword is ignored in the Export File, we need # it in the Import File for the 'aix-soname' feature, so we have # to replace the "-B" option with "-P" for AIX nm. if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' fi ;; pw32*) _LT_TAGVAR(export_symbols_cmds, $1)=$ltdll_cmds ;; cygwin* | mingw* | cegcc*) case $cc_basename in cl*) _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] ;; esac ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;; esac ], [ runpath_var= _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_cmds, $1)= _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(old_archive_from_new_cmds, $1)= _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= _LT_TAGVAR(thread_safe_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= # include_expsyms should be a list of space-separated symbols to be *always* # included in the symbol list _LT_TAGVAR(include_expsyms, $1)= # exclude_expsyms can be an extended regexp of symbols to exclude # it will be wrapped by ' (' and ')$', so one must not match beginning or # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc', # as well as any symbol that contains 'd'. _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out # platforms (ab)use it in PIC code, but their linkers get confused if # the symbol is explicitly referenced. Since portable code cannot # rely on this symbol name, it's probably fine to never include it in # preloaded symbol tables. # Exclude shared library initialization/finalization symbols. dnl Note also adjust exclude_expsyms for C++ above. extract_expsyms_cmds= case $host_os in cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++. if test yes != "$GCC"; then with_gnu_ld=no fi ;; interix*) # we just hope/assume this is gcc and not c89 (= MSVC++) with_gnu_ld=yes ;; openbsd* | bitrig*) with_gnu_ld=no ;; esac _LT_TAGVAR(ld_shlibs, $1)=yes # On some targets, GNU ld is compatible enough with the native linker # that we're better off using the native interface for both. lt_use_gnu_ld_interface=no if test yes = "$with_gnu_ld"; then case $host_os in aix*) # The AIX port of GNU ld has always aspired to compatibility # with the native linker. However, as the warning in the GNU ld # block says, versions before 2.19.5* couldn't really create working # shared libraries, regardless of the interface used. case `$LD -v 2>&1` in *\ \(GNU\ Binutils\)\ 2.19.5*) ;; *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; *) lt_use_gnu_ld_interface=yes ;; esac ;; *) lt_use_gnu_ld_interface=yes ;; esac fi if test yes = "$lt_use_gnu_ld_interface"; then # If archive_cmds runs LD, not CC, wlarc should be empty wlarc='$wl' # Set some defaults for GNU ld with shared library support. These # are reset later if shared libraries are not supported. Putting them # here allows them to be overridden if necessary. runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' # ancient GNU ld didn't support --whole-archive et. al. if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi supports_anon_versioning=no case `$LD -v | $SED -e 's/([^)]\+)\s\+//' 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... *\ 2.11.*) ;; # other 2.11 versions *) supports_anon_versioning=yes ;; esac # See if GNU ld supports shared libraries. case $host_os in aix[[3-9]]*) # On AIX/PPC, the GNU linker is very broken if test ia64 != "$host_cpu"; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: the GNU linker, at least up to release 2.19, is reported *** to be unable to reliably create shared libraries on AIX. *** Therefore, libtool is disabling shared libraries support. If you *** really care for shared libraries, you may want to install binutils *** 2.20 or above, or modify your PATH so that a non-GNU linker is found. *** You will then need to restart the configuration process. _LT_EOF fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file, use it as # is; otherwise, prepend EXPORTS... _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; haiku*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(link_all_deplibs, $1)=yes ;; os2*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported shrext_cmds=.dll _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; fi~ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) tmp_diet=no if test linux-dietlibc = "$host_os"; then case $cc_basename in diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) esac fi if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ && test no = "$tmp_diet" then tmp_addflag=' $pic_flag' tmp_sharedflag='-shared' case $cc_basename,$host_cpu in pgcc*) # Portland Group C compiler _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' tmp_addflag=' $pic_flag' ;; pgf77* | pgf90* | pgf95* | pgfortran*) # Portland Group f77 and f90 compilers _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' tmp_addflag=' $pic_flag -Mnomain' ;; ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 tmp_addflag=' -i_dynamic' ;; efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 tmp_addflag=' -i_dynamic -nofor_main' ;; ifc* | ifort*) # Intel Fortran compiler tmp_addflag=' -nofor_main' ;; lf95*) # Lahey Fortran 8.1 _LT_TAGVAR(whole_archive_flag_spec, $1)= tmp_sharedflag='--shared' ;; nagfor*) # NAGFOR 5.3 tmp_sharedflag='-Wl,-shared' ;; xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) tmp_sharedflag='-qmkshrobj' tmp_addflag= ;; nvcc*) # Cuda Compiler Driver 2.2 _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes ;; esac case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes tmp_sharedflag='-G' ;; *Sun\ F*) # Sun Fortran 8.3 tmp_sharedflag='-G' ;; esac _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' if test yes = "$supports_anon_versioning"; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' fi case $cc_basename in tcc*) _LT_TAGVAR(export_dynamic_flag_spec, $1)='-rdynamic' ;; xlf* | bgf* | bgxlf* | mpixlf*) # IBM XL Fortran 10.1 on PPC cannot create shared libs itself _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test yes = "$supports_anon_versioning"; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi ;; esac else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' wlarc= else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' fi ;; solaris*) if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: The releases 2.8.* of the GNU linker cannot reliably *** create shared libraries on Solaris systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.9.1 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) case `$LD -v 2>&1` in *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) _LT_TAGVAR(ld_shlibs, $1)=no cat <<_LT_EOF 1>&2 *** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot *** reliably create shared libraries on SCO systems. Therefore, libtool *** is disabling shared libraries support. We urge you to upgrade GNU *** binutils to release 2.16.91.0.3 or newer. Another option is to modify *** your PATH or compiler configuration so that the native linker is *** used, and then restart. _LT_EOF ;; *) # For security reasons, it is highly recommended that you always # use absolute paths for naming shared libraries, and exclude the # DT_RUNPATH tag from executables and libraries. But doing so # requires that you compile everything twice, which is a pain. if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; sunos4*) _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' wlarc= _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac if test no = "$_LT_TAGVAR(ld_shlibs, $1)"; then runpath_var= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else # PORTME fill in a description of your system's linker (not GNU ld) case $host_os in aix3*) _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' # Note: this linker hardcodes the directories in LIBPATH if there # are no directories specified by -L. _LT_TAGVAR(hardcode_minus_L, $1)=yes if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then # Neither direct hardcoding nor static linking is supported with a # broken collect2. _LT_TAGVAR(hardcode_direct, $1)=unsupported fi ;; aix[[4-9]]*) if test ia64 = "$host_cpu"; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag= else # If we're using GNU nm, then we don't want the "-C" option. # -C means demangle to GNU nm, but means don't demangle to AIX nm. # Without the "-l" option, or with the "-B" option, AIX nm treats # weak defined symbols like other global defined symbols, whereas # GNU nm marks them as "W". # While the 'weak' keyword is ignored in the Export File, we need # it in the Import File for the 'aix-soname' feature, so we have # to replace the "-B" option with "-P" for AIX nm. if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # have runtime linking enabled, and use it for executables. # For shared libraries, we enable/disable runtime linking # depending on the kind of the shared library created - # when "with_aix_soname,aix_use_runtimelinking" is: # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables # "aix,yes" lib.so shared, rtl:yes, for executables # lib.a static archive # "both,no" lib.so.V(shr.o) shared, rtl:yes # lib.a(lib.so.V) shared, rtl:no, for executables # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a(lib.so.V) shared, rtl:no # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a static archive case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then aix_use_runtimelinking=yes break fi done if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then # With aix-soname=svr4, we create the lib.so.V shared archives only, # so we don't have lib.a shared libs to link our executables. # We have to force runtime linking in this case. aix_use_runtimelinking=yes LDFLAGS="$LDFLAGS -Wl,-brtl" fi ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='$wl-f,' case $with_aix_soname,$aix_use_runtimelinking in aix,*) ;; # traditional, no import file svr4,* | *,yes) # use import file # The Import File defines what to hardcode. _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no ;; esac if test yes = "$GCC"; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`$CC -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi ;; esac shared_flag='-shared' if test yes = "$aix_use_runtimelinking"; then shared_flag="$shared_flag "'$wl-G' fi # Need to ensure runtime linking is disabled for the traditional # shared library, or the linker may eventually find shared libraries # /with/ Import File - we do not want to mix them. shared_flag_aix='-shared' shared_flag_svr4='-shared $wl-G' else # not using gcc if test ia64 = "$host_cpu"; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test yes = "$aix_use_runtimelinking"; then shared_flag='$wl-G' else shared_flag='$wl-bM:SRE' fi shared_flag_aix='$wl-bM:SRE' shared_flag_svr4='$wl-G' fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to export. _LT_TAGVAR(always_export_symbols, $1)=yes if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. _LT_TAGVAR(allow_undefined_flag, $1)='-berok' # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag else if test ia64 = "$host_cpu"; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok' if test yes = "$with_gnu_ld"; then # We only use this code for GNU lds that support --whole-archive. _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' # -brtl affects multiple linker settings, -berok does not and is overridden later compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`' if test svr4 != "$with_aix_soname"; then # This is similar to how AIX traditionally builds its shared libraries. _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' fi if test aix != "$with_aix_soname"; then _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' else # used by -dlpreopen to get the symbols _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir' fi _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d' fi fi ;; amigaos*) case $host_cpu in powerpc) # see comment about AmigaOS4 .so support _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='' ;; m68k) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac ;; bsdi[[45]]*) _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic ;; cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. case $cc_basename in cl*) # Native MSVC _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=.dll # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then cp "$export_symbols" "$output_objdir/$soname.def"; echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; else $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' # Don't use ranlib _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile=$lt_outputfile.exe lt_tool_outputfile=$lt_tool_outputfile.exe ;; esac~ if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # Assume MSVC wrapper _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=.dll # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' # The linker will automatically build a .lib file if we build a DLL. _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' # FIXME: Should let the user specify the lib program. _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; esac ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; dgux*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor # support. Future versions do this automatically, but an explicit c++rt0.o # does not break anything, and helps significantly (at the cost of a little # extra space). freebsd2.2*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # Unfortunately, older versions of FreeBSD 2 do not have this feature. freebsd2.*) _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. freebsd* | dragonfly*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; hpux9*) if test yes = "$GCC"; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' else _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' ;; hpux10*) if test yes,no = "$GCC,$with_gnu_ld"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' fi if test no = "$with_gnu_ld"; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes fi ;; hpux11*) if test yes,no = "$GCC,$with_gnu_ld"; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' ;; esac else case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' ;; *) m4_if($1, [], [ # Older versions of the 11.00 compiler do not understand -b yet # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) _LT_LINKER_OPTION([if $CC understands -b], _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) ;; esac fi if test no = "$with_gnu_ld"; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' # hardcode_minus_L: Not really in the search PATH, # but as the default location of the library. _LT_TAGVAR(hardcode_minus_L, $1)=yes ;; esac fi ;; irix5* | irix6* | nonstopux*) if test yes = "$GCC"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' # Try to use the -exported_symbol ld option, if it does not # work, assume that -exports_file does not work either and # implicitly export all symbols. # This should be the same for all languages, so no per-tag cache variable. AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], [lt_cv_irix_exported_symbol], [save_LDFLAGS=$LDFLAGS LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null" AC_LINK_IFELSE( [AC_LANG_SOURCE( [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], [C++], [[int foo (void) { return 0; }]], [Fortran 77], [[ subroutine foo end]], [Fortran], [[ subroutine foo end]])])], [lt_cv_irix_exported_symbol=yes], [lt_cv_irix_exported_symbol=no]) LDFLAGS=$save_LDFLAGS]) if test yes = "$lt_cv_irix_exported_symbol"; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' fi else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes _LT_TAGVAR(link_all_deplibs, $1)=yes ;; linux*) case $cc_basename in tcc*) # Fabrice Bellard et al's Tiny C Compiler _LT_TAGVAR(ld_shlibs, $1)=yes _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out else _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; newsos6) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *nto* | *qnx*) ;; openbsd* | bitrig*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' fi else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; os2*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported shrext_cmds=.dll _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; fi~ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; osf3*) if test yes = "$GCC"; then _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; osf4* | osf5*) # as osf3* with the addition of -msym flag if test yes = "$GCC"; then _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' else _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp' # Both c and cxx compiler support -rpath directly _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' fi _LT_TAGVAR(archive_cmds_need_lc, $1)='no' _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; solaris*) _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' if test yes = "$GCC"; then wlarc='$wl' _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' else case `$CC -V 2>&1` in *"Compilers 5.0"*) wlarc='' _LT_TAGVAR(archive_cmds, $1)='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' ;; *) wlarc='$wl' _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' ;; esac fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands '-z linker_flag'. GCC discards it without '$wl', # but is careful enough not to reorder. # Supported since Solaris 2.6 (maybe 2.5.1?) if test yes = "$GCC"; then _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' else _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' fi ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes ;; sunos4*) if test sequent = "$host_vendor"; then # Use $CC to link under sequent, because it throws in some extra .o # files that make .init and .fini sections work. _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4) case $host_vendor in sni) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? ;; siemens) ## LD is ld it makes a PLAMLIB ## CC just makes a GrossModule. _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' _LT_TAGVAR(hardcode_direct, $1)=no ;; motorola) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie ;; esac runpath_var='LD_RUN_PATH' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; sysv4.3*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' ;; sysv4*MP*) if test -d /usr/nec; then _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var=LD_RUN_PATH hardcode_runpath_var=yes _LT_TAGVAR(ld_shlibs, $1)=yes fi ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' if test yes = "$GCC"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We CANNOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport' runpath_var='LD_RUN_PATH' if test yes = "$GCC"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' else _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' fi ;; uts4*) _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(ld_shlibs, $1)=no ;; esac if test sni = "$host_vendor"; then case $host in sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Blargedynsym' ;; esac fi fi ]) AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no _LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld _LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl _LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl _LT_DECL([], [extract_expsyms_cmds], [2], [The commands to extract the exported symbol list from a shared archive]) # # Do we need to explicitly link libc? # case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in x|xyes) # Assume -lc should be added _LT_TAGVAR(archive_cmds_need_lc, $1)=yes if test yes,yes = "$GCC,$enable_shared"; then case $_LT_TAGVAR(archive_cmds, $1) in *'~'*) # FIXME: we may have to deal with multi-command sequences. ;; '$CC '*) # Test whether the compiler implicitly links with -lc since on some # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. AC_CACHE_CHECK([whether -lc should be explicitly linked in], [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), [$RM conftest* echo "$lt_simple_compile_test_code" > conftest.$ac_ext if AC_TRY_EVAL(ac_compile) 2>conftest.err; then soname=conftest lib=conftest libobjs=conftest.$ac_objext deplibs= wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) compiler_flags=-v linker_flags=-v verstring= output_objdir=. libname=conftest lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) _LT_TAGVAR(allow_undefined_flag, $1)= if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) then lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no else lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes fi _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag else cat conftest.err 1>&5 fi $RM conftest* ]) _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) ;; esac fi ;; esac _LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], [Whether or not to add -lc for building shared libraries]) _LT_TAGDECL([allow_libtool_libs_with_static_runtimes], [enable_shared_with_static_runtimes], [0], [Whether or not to disallow shared libs when runtime libs are static]) _LT_TAGDECL([], [export_dynamic_flag_spec], [1], [Compiler flag to allow reflexive dlopens]) _LT_TAGDECL([], [whole_archive_flag_spec], [1], [Compiler flag to generate shared objects directly from archives]) _LT_TAGDECL([], [compiler_needs_object], [1], [Whether the compiler copes with passing no objects directly]) _LT_TAGDECL([], [old_archive_from_new_cmds], [2], [Create an old-style archive from a shared archive]) _LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], [Create a temporary old-style archive to link instead of a shared archive]) _LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) _LT_TAGDECL([], [archive_expsym_cmds], [2]) _LT_TAGDECL([], [module_cmds], [2], [Commands used to build a loadable module if different from building a shared archive.]) _LT_TAGDECL([], [module_expsym_cmds], [2]) _LT_TAGDECL([], [with_gnu_ld], [1], [Whether we are building with GNU ld or not]) _LT_TAGDECL([], [allow_undefined_flag], [1], [Flag that allows shared libraries with undefined symbols to be built]) _LT_TAGDECL([], [no_undefined_flag], [1], [Flag that enforces no undefined symbols]) _LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], [Flag to hardcode $libdir into a binary during linking. This must work even if $libdir does not exist]) _LT_TAGDECL([], [hardcode_libdir_separator], [1], [Whether we need a single "-rpath" flag with a separated argument]) _LT_TAGDECL([], [hardcode_direct], [0], [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_direct_absolute], [0], [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes DIR into the resulting binary and the resulting library dependency is "absolute", i.e impossible to change by setting $shlibpath_var if the library is relocated]) _LT_TAGDECL([], [hardcode_minus_L], [0], [Set to "yes" if using the -LDIR flag during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_shlibpath_var], [0], [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into the resulting binary]) _LT_TAGDECL([], [hardcode_automatic], [0], [Set to "yes" if building a shared library automatically hardcodes DIR into the library and all subsequent libraries and executables linked against it]) _LT_TAGDECL([], [inherit_rpath], [0], [Set to yes if linker adds runtime paths of dependent libraries to runtime path list]) _LT_TAGDECL([], [link_all_deplibs], [0], [Whether libtool must link a program against all its dependency libraries]) _LT_TAGDECL([], [always_export_symbols], [0], [Set to "yes" if exported symbols are required]) _LT_TAGDECL([], [export_symbols_cmds], [2], [The commands to list exported symbols]) _LT_TAGDECL([], [exclude_expsyms], [1], [Symbols that should not be listed in the preloaded symbols]) _LT_TAGDECL([], [include_expsyms], [1], [Symbols that must always be exported]) _LT_TAGDECL([], [prelink_cmds], [2], [Commands necessary for linking programs (against libraries) with templates]) _LT_TAGDECL([], [postlink_cmds], [2], [Commands necessary for finishing linking programs]) _LT_TAGDECL([], [file_list_spec], [1], [Specify filename containing input files]) dnl FIXME: Not yet implemented dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], dnl [Compiler flag to generate thread safe objects]) ])# _LT_LINKER_SHLIBS # _LT_LANG_C_CONFIG([TAG]) # ------------------------ # Ensure that the configuration variables for a C compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to 'libtool'. m4_defun([_LT_LANG_C_CONFIG], [m4_require([_LT_DECL_EGREP])dnl lt_save_CC=$CC AC_LANG_PUSH(C) # Source file extension for C test sources. ac_ext=c # Object file extension for compiled C test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(){return(0);}' _LT_TAG_COMPILER # Save the default compiler, since it gets overwritten when the other # tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. compiler_DEFAULT=$CC # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) LT_SYS_DLOPEN_SELF _LT_CMD_STRIPLIB # Report what library types will actually be built AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test no = "$can_build_shared" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test yes = "$enable_shared" && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test ia64 != "$host_cpu"; then case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in yes,aix,yes) ;; # shared object as lib.so file only yes,svr4,*) ;; # shared object as lib.so archive member only yes,*) enable_static=no ;; # shared object in lib.a archive as well esac fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test yes = "$enable_shared" || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_CONFIG($1) fi AC_LANG_POP CC=$lt_save_CC ])# _LT_LANG_C_CONFIG # _LT_LANG_CXX_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a C++ compiler are suitably # defined. These variables are subsequently used by _LT_CONFIG to write # the compiler configuration to 'libtool'. m4_defun([_LT_LANG_CXX_CONFIG], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_DECL_EGREP])dnl m4_require([_LT_PATH_MANIFEST_TOOL])dnl if test -n "$CXX" && ( test no != "$CXX" && ( (test g++ = "$CXX" && `g++ -v >/dev/null 2>&1` ) || (test g++ != "$CXX"))); then AC_PROG_CXXCPP else _lt_caught_CXX_error=yes fi AC_LANG_PUSH(C++) _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(compiler_needs_object, $1)=no _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for C++ test sources. ac_ext=cpp # Object file extension for compiled C++ test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the CXX compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test yes != "$_lt_caught_CXX_error"; then # Code to be used in simple compile tests lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_LD=$LD lt_save_GCC=$GCC GCC=$GXX lt_save_with_gnu_ld=$with_gnu_ld lt_save_path_LD=$lt_cv_path_LD if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx else $as_unset lt_cv_prog_gnu_ld fi if test -n "${lt_cv_path_LDCXX+set}"; then lt_cv_path_LD=$lt_cv_path_LDCXX else $as_unset lt_cv_path_LD fi test -z "${LDCXX+set}" || LD=$LDCXX CC=${CXX-"c++"} CFLAGS=$CXXFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then # We don't want -fno-exception when compiling C++ code, so set the # no_builtin_flag separately if test yes = "$GXX"; then _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' else _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= fi if test yes = "$GXX"; then # Set up default GNU C++ configuration LT_PATH_LD # Check if GNU C++ uses GNU ld as the underlying linker, since the # archiving commands below assume that GNU ld is being used. if test yes = "$with_gnu_ld"; then _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' # If archive_cmds runs LD, not CC, wlarc should be empty # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to # investigate it a little bit more. (MM) wlarc='$wl' # ancient GNU ld didn't support --whole-archive et. al. if eval "`$CC -print-prog-name=ld` --help 2>&1" | $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)= fi else with_gnu_ld=no wlarc= # A generic and very simple default shared library creation # command for GNU C++ for the case where it uses the native # linker, instead of GNU ld. If possible, this setting should # overridden to take advantage of the native linker features on # the platform it is being used on. _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' fi # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else GXX=no with_gnu_ld=no wlarc= fi # PORTME: fill in a description of your system's C++ link characteristics AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) _LT_TAGVAR(ld_shlibs, $1)=yes case $host_os in aix3*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aix[[4-9]]*) if test ia64 = "$host_cpu"; then # On IA64, the linker does run time linking by default, so we don't # have to do anything special. aix_use_runtimelinking=no exp_sym_flag='-Bexport' no_entry_flag= else aix_use_runtimelinking=no # Test if we are trying to use run time linking or normal # AIX style linking. If -brtl is somewhere in LDFLAGS, we # have runtime linking enabled, and use it for executables. # For shared libraries, we enable/disable runtime linking # depending on the kind of the shared library created - # when "with_aix_soname,aix_use_runtimelinking" is: # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables # "aix,yes" lib.so shared, rtl:yes, for executables # lib.a static archive # "both,no" lib.so.V(shr.o) shared, rtl:yes # lib.a(lib.so.V) shared, rtl:no, for executables # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a(lib.so.V) shared, rtl:no # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables # lib.a static archive case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) for ld_flag in $LDFLAGS; do case $ld_flag in *-brtl*) aix_use_runtimelinking=yes break ;; esac done if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then # With aix-soname=svr4, we create the lib.so.V shared archives only, # so we don't have lib.a shared libs to link our executables. # We have to force runtime linking in this case. aix_use_runtimelinking=yes LDFLAGS="$LDFLAGS -Wl,-brtl" fi ;; esac exp_sym_flag='-bexport' no_entry_flag='-bnoentry' fi # When large executables or shared objects are built, AIX ld can # have problems creating the table of contents. If linking a library # or program results in "error TOC overflow" add -mminimal-toc to # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. _LT_TAGVAR(archive_cmds, $1)='' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(file_list_spec, $1)='$wl-f,' case $with_aix_soname,$aix_use_runtimelinking in aix,*) ;; # no import file svr4,* | *,yes) # use import file # The Import File defines what to hardcode. _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no ;; esac if test yes = "$GXX"; then case $host_os in aix4.[[012]]|aix4.[[012]].*) # We only want to do this on AIX 4.2 and lower, the check # below for broken collect2 doesn't work under 4.3+ collect2name=`$CC -print-prog-name=collect2` if test -f "$collect2name" && strings "$collect2name" | $GREP resolve_lib_name >/dev/null then # We have reworked collect2 : else # We have old collect2 _LT_TAGVAR(hardcode_direct, $1)=unsupported # It fails to find uninstalled libraries when the uninstalled # path is not listed in the libpath. Setting hardcode_minus_L # to unsupported forces relinking _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)= fi esac shared_flag='-shared' if test yes = "$aix_use_runtimelinking"; then shared_flag=$shared_flag' $wl-G' fi # Need to ensure runtime linking is disabled for the traditional # shared library, or the linker may eventually find shared libraries # /with/ Import File - we do not want to mix them. shared_flag_aix='-shared' shared_flag_svr4='-shared $wl-G' else # not using gcc if test ia64 = "$host_cpu"; then # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release # chokes on -Wl,-G. The following line is correct: shared_flag='-G' else if test yes = "$aix_use_runtimelinking"; then shared_flag='$wl-G' else shared_flag='$wl-bM:SRE' fi shared_flag_aix='$wl-bM:SRE' shared_flag_svr4='$wl-G' fi fi _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall' # It seems that -bexpall does not export symbols beginning with # underscore (_), so it is better to generate a list of symbols to # export. _LT_TAGVAR(always_export_symbols, $1)=yes if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then # Warning - without using the other runtime loading flags (-brtl), # -berok will link without error, but may produce a broken library. # The "-G" linker flag allows undefined symbols. _LT_TAGVAR(no_undefined_flag, $1)='-bernotok' # Determine the default libpath from the value encoded in an empty # executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag else if test ia64 = "$host_cpu"; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib' _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" else # Determine the default libpath from the value encoded in an # empty executable. _LT_SYS_MODULE_PATH_AIX([$1]) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" # Warning - without using the other run time loading flags, # -berok will link without error, but may produce a broken library. _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok' _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok' if test yes = "$with_gnu_ld"; then # We only use this code for GNU lds that support --whole-archive. _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' else # Exported symbols can be pulled into shared objects from archives _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' fi _LT_TAGVAR(archive_cmds_need_lc, $1)=yes _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' # -brtl affects multiple linker settings, -berok does not and is overridden later compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`' if test svr4 != "$with_aix_soname"; then # This is similar to how AIX traditionally builds its shared # libraries. Need -bnortl late, we may have -brtl in LDFLAGS. _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' fi if test aix != "$with_aix_soname"; then _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' else # used by -dlpreopen to get the symbols _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir' fi _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d' fi fi ;; beos*) if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Joseph Beckenbach says some releases of gcc # support --undefined. This deserves some investigation. FIXME _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; chorus*) case $cc_basename in *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; cygwin* | mingw* | pw32* | cegcc*) case $GXX,$cc_basename in ,cl* | no,cl*) # Native MSVC # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' # Tell ltmain to make .lib files, not .a files. libext=lib # Tell ltmain to make .dll files, not .so files. shrext_cmds=.dll # FIXME: Setting linknames here is a bad hack. _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then cp "$export_symbols" "$output_objdir/$soname.def"; echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; else $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; fi~ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes # Don't use ranlib _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ lt_tool_outputfile="@TOOL_OUTPUT@"~ case $lt_outputfile in *.exe|*.EXE) ;; *) lt_outputfile=$lt_outputfile.exe lt_tool_outputfile=$lt_tool_outputfile.exe ;; esac~ func_to_tool_file "$lt_outputfile"~ if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; $RM "$lt_outputfile.manifest"; fi' ;; *) # g++ # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' # If the export-symbols file already is a .def file, use it as # is; otherwise, prepend EXPORTS... _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then cp $export_symbols $output_objdir/$soname.def; else echo EXPORTS > $output_objdir/$soname.def; cat $export_symbols >> $output_objdir/$soname.def; fi~ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; darwin* | rhapsody*) _LT_DARWIN_LINKER_FEATURES($1) ;; os2*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' _LT_TAGVAR(hardcode_minus_L, $1)=yes _LT_TAGVAR(allow_undefined_flag, $1)=unsupported shrext_cmds=.dll _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ $ECHO EXPORTS >> $output_objdir/$libname.def~ prefix_cmds="$SED"~ if test EXPORTS = "`$SED 1q $export_symbols`"; then prefix_cmds="$prefix_cmds -e 1d"; fi~ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes ;; dgux*) case $cc_basename in ec++*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; ghcx*) # Green Hills C++ Compiler # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; freebsd2.*) # C++ shared libraries reported to be fairly broken before # switch to ELF _LT_TAGVAR(ld_shlibs, $1)=no ;; freebsd-elf*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; freebsd* | dragonfly*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions _LT_TAGVAR(ld_shlibs, $1)=yes ;; haiku*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(link_all_deplibs, $1)=yes ;; hpux9*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test yes = "$GXX"; then _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; hpux10*|hpux11*) if test no = "$with_gnu_ld"; then _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: case $host_cpu in hppa*64*|ia64*) ;; *) _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' ;; esac fi case $host_cpu in hppa*64*|ia64*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no ;; *) _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, # but as the default # location of the library. ;; esac case $cc_basename in CC*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; aCC*) case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test yes = "$GXX"; then if test no = "$with_gnu_ld"; then case $host_cpu in hppa*64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; ia64*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' ;; esac fi else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. # Instead, shared libraries are loaded at an image base (0x10000000 by # default) and relocated if they conflict, which is a slow very memory # consuming and fragmenting process. To avoid this, we pick a random, # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in CC*) # SGI C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' # Archives containing C++ object files must be created using # "CC -ar", where "CC" is the IRIX C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' ;; *) if test yes = "$GXX"; then if test no = "$with_gnu_ld"; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` -o $lib' fi fi _LT_TAGVAR(link_all_deplibs, $1)=yes ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: _LT_TAGVAR(inherit_rpath, $1)=yes ;; linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib $wl-retain-symbols-file,$export_symbols; mv \$templib $lib' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' # Archives containing C++ object files must be created using # "CC -Bstatic", where "CC" is the KAI C++ compiler. _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; icpc* | ecpc* ) # Intel C++ with_gnu_ld=yes # version 8.0 and above of icpc choke on multiply defined symbols # if we add $predep_objects and $postdep_objects, however 7.1 and # earlier do not add the objects themselves. case `$CC -V 2>&1` in *"Version 7."*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 8.0 or newer tmp_idyn= case $host_cpu in ia64*) tmp_idyn=' -i_dynamic';; esac _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ;; esac _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' ;; pgCC* | pgcpp*) # Portland Group C++ compiler case `$CC -V` in *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ $RANLIB $oldlib' _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ rm -rf $tpldir~ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ;; *) # Version 6 and above use weak symbols _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl--rpath $wl$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' ;; cxx*) # Compaq C++ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib $wl-retain-symbols-file $wl$export_symbols' runpath_var=LD_RUN_PATH _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' ;; xl* | mpixl* | bgxl*) # IBM XL 8.0 on PPC, with GNU ld _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' if test yes = "$supports_anon_versioning"; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' fi ;; *) case `$CC -V 2>&1 | sed 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file $wl$export_symbols' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes # Not sure whether something based on # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 # would be better. output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; esac ;; esac ;; lynxos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; m88k*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; mvs*) case $cc_basename in cxx*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' wlarc= _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no fi # Workaround some broken pre-1.5 toolchains output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' ;; *nto* | *qnx*) _LT_TAGVAR(ld_shlibs, $1)=yes ;; openbsd* | bitrig*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=yes _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`"; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file,$export_symbols -o $lib' _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' fi output_verbose_link_cmd=func_echo_all else _LT_TAGVAR(ld_shlibs, $1)=no fi ;; osf3* | osf4* | osf5*) case $cc_basename in KCC*) # Kuck and Associates, Inc. (KAI) C++ Compiler # KCC will only create a shared library if the output file # ends with ".so" (or ".sl" for HP-UX), so rename the library # to its proper name (with version) after linking. _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Archives containing C++ object files must be created using # the KAI C++ compiler. case $host in osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; esac ;; RCC*) # Rational C++ 2.4.1 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; cxx*) case $host in osf3*) _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $soname `test -n "$verstring" && func_echo_all "$wl-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' ;; *) _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ echo "-hidden">> $lib.exp~ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname $wl-input $wl$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~ $RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' ;; esac _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. # # There doesn't appear to be a way to prevent this compiler from # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies. output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test yes,no = "$GXX,$with_gnu_ld"; then _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' case $host in osf3*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' ;; esac _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no fi ;; esac ;; psos*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; sunos4*) case $cc_basename in CC*) # Sun C++ 4.x # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; lcc*) # Lucid # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; solaris*) case $cc_basename in CC* | sunCC*) # Sun C++ 4.2, 5.x and Centerline C++ _LT_TAGVAR(archive_cmds_need_lc,$1)=yes _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G$allow_undefined_flag $wl-M $wl$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_shlibpath_var, $1)=no case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) # The compiler driver will combine and reorder linker options, # but understands '-z linker_flag'. # Supported since Solaris 2.6 (maybe 2.5.1?) _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; esac _LT_TAGVAR(link_all_deplibs, $1)=yes output_verbose_link_cmd='func_echo_all' # Archives containing C++ object files must be created using # "CC -xar", where "CC" is the Sun C++ compiler. This is # necessary to make sure instantiated templates are included # in the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' ;; gcx*) # Green Hills C++ Compiler _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' # The C++ compiler must be used to create the archive. _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' ;; *) # GNU C++ compiler with Solaris linker if test yes,no = "$GXX,$with_gnu_ld"; then _LT_TAGVAR(no_undefined_flag, $1)=' $wl-z ${wl}defs' if $CC --version | $GREP -v '^2\.7' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -shared $pic_flag -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' else # g++ 2.7 appears to require '-G' NOT '-shared' on this # platform. _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ $CC -G -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library. output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $wl$libdir' case $host_os in solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; *) _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' ;; esac fi ;; esac ;; sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; sysv5* | sco3.2v5* | sco5v6*) # Note: We CANNOT use -z defs as we might desire, because we do not # link with -lc, and that would cause any symbols used from libc to # always be unresolved, which means just about no library would # ever link correctly. If we're not using GNU ld we use -z text # though, which does catch some bad symbols but isn't as heavy-handed # as -z defs. _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs' _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=':' _LT_TAGVAR(link_all_deplibs, $1)=yes _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport' runpath_var='LD_RUN_PATH' case $cc_basename in CC*) _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ '"$_LT_TAGVAR(old_archive_cmds, $1)" _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ '"$_LT_TAGVAR(reload_cmds, $1)" ;; *) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' ;; esac ;; tandem*) case $cc_basename in NCC*) # NonStop-UX NCC 3.20 # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac ;; vxworks*) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; *) # FIXME: insert proper C++ library support _LT_TAGVAR(ld_shlibs, $1)=no ;; esac AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no _LT_TAGVAR(GCC, $1)=$GXX _LT_TAGVAR(LD, $1)=$LD ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS LDCXX=$LD LD=$lt_save_LD GCC=$lt_save_GCC with_gnu_ld=$lt_save_with_gnu_ld lt_cv_path_LDCXX=$lt_cv_path_LD lt_cv_path_LD=$lt_save_path_LD lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld fi # test yes != "$_lt_caught_CXX_error" AC_LANG_POP ])# _LT_LANG_CXX_CONFIG # _LT_FUNC_STRIPNAME_CNF # ---------------------- # func_stripname_cnf prefix suffix name # strip PREFIX and SUFFIX off of NAME. # PREFIX and SUFFIX must not contain globbing or regex special # characters, hashes, percent signs, but SUFFIX may contain a leading # dot (in which case that matches only a dot). # # This function is identical to the (non-XSI) version of func_stripname, # except this one can be used by m4 code that may be executed by configure, # rather than the libtool script. m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl AC_REQUIRE([_LT_DECL_SED]) AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) func_stripname_cnf () { case @S|@2 in .*) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%\\\\@S|@2\$%%"`;; *) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%@S|@2\$%%"`;; esac } # func_stripname_cnf ])# _LT_FUNC_STRIPNAME_CNF # _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) # --------------------------------- # Figure out "hidden" library dependencies from verbose # compiler output when linking a shared library. # Parse the compiler output and extract the necessary # objects, libraries and library flags. m4_defun([_LT_SYS_HIDDEN_LIBDEPS], [m4_require([_LT_FILEUTILS_DEFAULTS])dnl AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl # Dependencies to place before and after the object being linked: _LT_TAGVAR(predep_objects, $1)= _LT_TAGVAR(postdep_objects, $1)= _LT_TAGVAR(predeps, $1)= _LT_TAGVAR(postdeps, $1)= _LT_TAGVAR(compiler_lib_search_path, $1)= dnl we can't use the lt_simple_compile_test_code here, dnl because it contains code intended for an executable, dnl not a library. It's possible we should let each dnl tag define a new lt_????_link_test_code variable, dnl but it's only used here... m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF int a; void foo (void) { a = 0; } _LT_EOF ], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF class Foo { public: Foo (void) { a = 0; } private: int a; }; _LT_EOF ], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer*4 a a=0 return end _LT_EOF ], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF subroutine foo implicit none integer a a=0 return end _LT_EOF ], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF public class foo { private int a; public void bar (void) { a = 0; } }; _LT_EOF ], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF package foo func foo() { } _LT_EOF ]) _lt_libdeps_save_CFLAGS=$CFLAGS case "$CC $CFLAGS " in #( *\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; *\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; *\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; esac dnl Parse the compiler output and extract the necessary dnl objects, libraries and library flags. if AC_TRY_EVAL(ac_compile); then # Parse the compiler output and extract the necessary # objects, libraries and library flags. # Sentinel used to keep track of whether or not we are before # the conftest object file. pre_test_object_deps_done=no for p in `eval "$output_verbose_link_cmd"`; do case $prev$p in -L* | -R* | -l*) # Some compilers place space between "-{L,R}" and the path. # Remove the space. if test x-L = "$p" || test x-R = "$p"; then prev=$p continue fi # Expand the sysroot to ease extracting the directories later. if test -z "$prev"; then case $p in -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; esac fi case $p in =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; esac if test no = "$pre_test_object_deps_done"; then case $prev in -L | -R) # Internal compiler library paths should come after those # provided the user. The postdeps already come after the # user supplied libs so there is no need to process them. if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then _LT_TAGVAR(compiler_lib_search_path, $1)=$prev$p else _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} $prev$p" fi ;; # The "-l" case would never come before the object being # linked, so don't bother handling this case. esac else if test -z "$_LT_TAGVAR(postdeps, $1)"; then _LT_TAGVAR(postdeps, $1)=$prev$p else _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} $prev$p" fi fi prev= ;; *.lto.$objext) ;; # Ignore GCC LTO objects *.$objext) # This assumes that the test object file only shows up # once in the compiler output. if test "$p" = "conftest.$objext"; then pre_test_object_deps_done=yes continue fi if test no = "$pre_test_object_deps_done"; then if test -z "$_LT_TAGVAR(predep_objects, $1)"; then _LT_TAGVAR(predep_objects, $1)=$p else _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" fi else if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then _LT_TAGVAR(postdep_objects, $1)=$p else _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" fi fi ;; *) ;; # Ignore the rest. esac done # Clean up. rm -f a.out a.exe else echo "libtool.m4: error: problem compiling $1 test program" fi $RM -f confest.$objext CFLAGS=$_lt_libdeps_save_CFLAGS # PORTME: override above test on systems where it is broken m4_if([$1], [CXX], [case $host_os in interix[[3-9]]*) # Interix 3.5 installs completely hosed .la files for C++, so rather than # hack all around it, let's just trust "g++" to DTRT. _LT_TAGVAR(predep_objects,$1)= _LT_TAGVAR(postdep_objects,$1)= _LT_TAGVAR(postdeps,$1)= ;; esac ]) case " $_LT_TAGVAR(postdeps, $1) " in *" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; esac _LT_TAGVAR(compiler_lib_search_dirs, $1)= if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | $SED -e 's! -L! !g' -e 's!^ !!'` fi _LT_TAGDECL([], [compiler_lib_search_dirs], [1], [The directories searched by this compiler when creating a shared library]) _LT_TAGDECL([], [predep_objects], [1], [Dependencies to place before and after the objects being linked to create a shared library]) _LT_TAGDECL([], [postdep_objects], [1]) _LT_TAGDECL([], [predeps], [1]) _LT_TAGDECL([], [postdeps], [1]) _LT_TAGDECL([], [compiler_lib_search_path], [1], [The library search path used internally by the compiler when linking a shared library]) ])# _LT_SYS_HIDDEN_LIBDEPS # _LT_LANG_F77_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for a Fortran 77 compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to 'libtool'. m4_defun([_LT_LANG_F77_CONFIG], [AC_LANG_PUSH(Fortran 77) if test -z "$F77" || test no = "$F77"; then _lt_disable_F77=yes fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for f77 test sources. ac_ext=f # Object file extension for compiled f77 test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the F77 compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test yes != "$_lt_disable_F77"; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_GCC=$GCC lt_save_CFLAGS=$CFLAGS CC=${F77-"f77"} CFLAGS=$FFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) GCC=$G77 if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test no = "$can_build_shared" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test yes = "$enable_shared" && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test ia64 != "$host_cpu"; then case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in yes,aix,yes) ;; # shared object as lib.so file only yes,svr4,*) ;; # shared object as lib.so archive member only yes,*) enable_static=no ;; # shared object in lib.a archive as well esac fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test yes = "$enable_shared" || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)=$G77 _LT_TAGVAR(LD, $1)=$LD ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS fi # test yes != "$_lt_disable_F77" AC_LANG_POP ])# _LT_LANG_F77_CONFIG # _LT_LANG_FC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for a Fortran compiler are # suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to 'libtool'. m4_defun([_LT_LANG_FC_CONFIG], [AC_LANG_PUSH(Fortran) if test -z "$FC" || test no = "$FC"; then _lt_disable_FC=yes fi _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(allow_undefined_flag, $1)= _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(archive_expsym_cmds, $1)= _LT_TAGVAR(export_dynamic_flag_spec, $1)= _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_direct_absolute, $1)=no _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= _LT_TAGVAR(hardcode_libdir_separator, $1)= _LT_TAGVAR(hardcode_minus_L, $1)=no _LT_TAGVAR(hardcode_automatic, $1)=no _LT_TAGVAR(inherit_rpath, $1)=no _LT_TAGVAR(module_cmds, $1)= _LT_TAGVAR(module_expsym_cmds, $1)= _LT_TAGVAR(link_all_deplibs, $1)=unknown _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds _LT_TAGVAR(no_undefined_flag, $1)= _LT_TAGVAR(whole_archive_flag_spec, $1)= _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no # Source file extension for fc test sources. ac_ext=${ac_fc_srcext-f} # Object file extension for compiled fc test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # No sense in running all these tests if we already determined that # the FC compiler isn't working. Some variables (like enable_shared) # are currently assumed to apply to all compilers on this platform, # and will be corrupted by setting them based on a non-working compiler. if test yes != "$_lt_disable_FC"; then # Code to be used in simple compile tests lt_simple_compile_test_code="\ subroutine t return end " # Code to be used in simple link tests lt_simple_link_test_code="\ program t end " # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_GCC=$GCC lt_save_CFLAGS=$CFLAGS CC=${FC-"f95"} CFLAGS=$FCFLAGS compiler=$CC GCC=$ac_cv_fc_compiler_gnu _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) if test -n "$compiler"; then AC_MSG_CHECKING([if libtool supports shared libraries]) AC_MSG_RESULT([$can_build_shared]) AC_MSG_CHECKING([whether to build shared libraries]) test no = "$can_build_shared" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and # are all built from PIC. case $host_os in aix3*) test yes = "$enable_shared" && enable_static=no if test -n "$RANLIB"; then archive_cmds="$archive_cmds~\$RANLIB \$lib" postinstall_cmds='$RANLIB $lib' fi ;; aix[[4-9]]*) if test ia64 != "$host_cpu"; then case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in yes,aix,yes) ;; # shared object as lib.so file only yes,svr4,*) ;; # shared object as lib.so archive member only yes,*) enable_static=no ;; # shared object in lib.a archive as well esac fi ;; esac AC_MSG_RESULT([$enable_shared]) AC_MSG_CHECKING([whether to build static libraries]) # Make sure either enable_shared or enable_static is yes. test yes = "$enable_shared" || enable_static=yes AC_MSG_RESULT([$enable_static]) _LT_TAGVAR(GCC, $1)=$ac_cv_fc_compiler_gnu _LT_TAGVAR(LD, $1)=$LD ## CAVEAT EMPTOR: ## There is no encapsulation within the following macros, do not change ## the running order or otherwise move them around unless you know exactly ## what you are doing... _LT_SYS_HIDDEN_LIBDEPS($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_SYS_DYNAMIC_LINKER($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi # test -n "$compiler" GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS fi # test yes != "$_lt_disable_FC" AC_LANG_POP ])# _LT_LANG_FC_CONFIG # _LT_LANG_GCJ_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for the GNU Java Compiler compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to 'libtool'. m4_defun([_LT_LANG_GCJ_CONFIG], [AC_REQUIRE([LT_PROG_GCJ])dnl AC_LANG_SAVE # Source file extension for Java test sources. ac_ext=java # Object file extension for compiled Java test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="class foo {}" # Code to be used in simple link tests lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC=yes CC=${GCJ-"gcj"} CFLAGS=$GCJFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)=$LD _LT_CC_BASENAME([$compiler]) # GCJ did not exist at the time GCC didn't implicitly link libc in. _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi AC_LANG_RESTORE GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_GCJ_CONFIG # _LT_LANG_GO_CONFIG([TAG]) # -------------------------- # Ensure that the configuration variables for the GNU Go compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to 'libtool'. m4_defun([_LT_LANG_GO_CONFIG], [AC_REQUIRE([LT_PROG_GO])dnl AC_LANG_SAVE # Source file extension for Go test sources. ac_ext=go # Object file extension for compiled Go test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code="package main; func main() { }" # Code to be used in simple link tests lt_simple_link_test_code='package main; func main() { }' # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC=yes CC=${GOC-"gccgo"} CFLAGS=$GOFLAGS compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_TAGVAR(LD, $1)=$LD _LT_CC_BASENAME([$compiler]) # Go did not exist at the time GCC didn't implicitly link libc in. _LT_TAGVAR(archive_cmds_need_lc, $1)=no _LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds _LT_TAGVAR(reload_flag, $1)=$reload_flag _LT_TAGVAR(reload_cmds, $1)=$reload_cmds if test -n "$compiler"; then _LT_COMPILER_NO_RTTI($1) _LT_COMPILER_PIC($1) _LT_COMPILER_C_O($1) _LT_COMPILER_FILE_LOCKS($1) _LT_LINKER_SHLIBS($1) _LT_LINKER_HARDCODE_LIBPATH($1) _LT_CONFIG($1) fi AC_LANG_RESTORE GCC=$lt_save_GCC CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_GO_CONFIG # _LT_LANG_RC_CONFIG([TAG]) # ------------------------- # Ensure that the configuration variables for the Windows resource compiler # are suitably defined. These variables are subsequently used by _LT_CONFIG # to write the compiler configuration to 'libtool'. m4_defun([_LT_LANG_RC_CONFIG], [AC_REQUIRE([LT_PROG_RC])dnl AC_LANG_SAVE # Source file extension for RC test sources. ac_ext=rc # Object file extension for compiled RC test sources. objext=o _LT_TAGVAR(objext, $1)=$objext # Code to be used in simple compile tests lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' # Code to be used in simple link tests lt_simple_link_test_code=$lt_simple_compile_test_code # ltmain only uses $CC for tagged configurations so make sure $CC is set. _LT_TAG_COMPILER # save warnings/boilerplate of simple test code _LT_COMPILER_BOILERPLATE _LT_LINKER_BOILERPLATE # Allow CC to be a program name with arguments. lt_save_CC=$CC lt_save_CFLAGS=$CFLAGS lt_save_GCC=$GCC GCC= CC=${RC-"windres"} CFLAGS= compiler=$CC _LT_TAGVAR(compiler, $1)=$CC _LT_CC_BASENAME([$compiler]) _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes if test -n "$compiler"; then : _LT_CONFIG($1) fi GCC=$lt_save_GCC AC_LANG_RESTORE CC=$lt_save_CC CFLAGS=$lt_save_CFLAGS ])# _LT_LANG_RC_CONFIG # LT_PROG_GCJ # ----------- AC_DEFUN([LT_PROG_GCJ], [m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], [AC_CHECK_TOOL(GCJ, gcj,) test set = "${GCJFLAGS+set}" || GCJFLAGS="-g -O2" AC_SUBST(GCJFLAGS)])])[]dnl ]) # Old name: AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_GCJ], []) # LT_PROG_GO # ---------- AC_DEFUN([LT_PROG_GO], [AC_CHECK_TOOL(GOC, gccgo,) ]) # LT_PROG_RC # ---------- AC_DEFUN([LT_PROG_RC], [AC_CHECK_TOOL(RC, windres,) ]) # Old name: AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_RC], []) # _LT_DECL_EGREP # -------------- # If we don't have a new enough Autoconf to choose the best grep # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_EGREP], [AC_REQUIRE([AC_PROG_EGREP])dnl AC_REQUIRE([AC_PROG_FGREP])dnl test -z "$GREP" && GREP=grep _LT_DECL([], [GREP], [1], [A grep program that handles long lines]) _LT_DECL([], [EGREP], [1], [An ERE matcher]) _LT_DECL([], [FGREP], [1], [A literal string matcher]) dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too AC_SUBST([GREP]) ]) # _LT_DECL_OBJDUMP # -------------- # If we don't have a new enough Autoconf to choose the best objdump # available, choose the one first in the user's PATH. m4_defun([_LT_DECL_OBJDUMP], [AC_CHECK_TOOL(OBJDUMP, objdump, false) test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) AC_SUBST([OBJDUMP]) ]) # _LT_DECL_DLLTOOL # ---------------- # Ensure DLLTOOL variable is set. m4_defun([_LT_DECL_DLLTOOL], [AC_CHECK_TOOL(DLLTOOL, dlltool, false) test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [1], [DLL creation program]) AC_SUBST([DLLTOOL]) ]) # _LT_DECL_SED # ------------ # Check for a fully-functional sed program, that truncates # as few characters as possible. Prefer GNU sed if found. m4_defun([_LT_DECL_SED], [AC_PROG_SED test -z "$SED" && SED=sed Xsed="$SED -e 1s/^X//" _LT_DECL([], [SED], [1], [A sed program that does not truncate output]) _LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], [Sed that helps us avoid accidentally triggering echo(1) options like -n]) ])# _LT_DECL_SED m4_ifndef([AC_PROG_SED], [ # NOTE: This macro has been submitted for inclusion into # # GNU Autoconf as AC_PROG_SED. When it is available in # # a released version of Autoconf we should remove this # # macro and use it instead. # m4_defun([AC_PROG_SED], [AC_MSG_CHECKING([for a sed that does not truncate output]) AC_CACHE_VAL(lt_cv_path_SED, [# Loop through the user's path and test for sed and gsed. # Then use that list of sed's as ones to test for truncation. as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for lt_ac_prog in sed gsed; do for ac_exec_ext in '' $ac_executable_extensions; do if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" fi done done done IFS=$as_save_IFS lt_ac_max=0 lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris # along with /bin/sed that truncates output. for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do test ! -f "$lt_ac_sed" && continue cat /dev/null > conftest.in lt_ac_count=0 echo $ECHO_N "0123456789$ECHO_C" >conftest.in # Check for GNU sed and select it if it is found. if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then lt_cv_path_SED=$lt_ac_sed break fi while true; do cat conftest.in conftest.in >conftest.tmp mv conftest.tmp conftest.in cp conftest.in conftest.nl echo >>conftest.nl $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break cmp -s conftest.out conftest.nl || break # 10000 chars as input seems more than enough test 10 -lt "$lt_ac_count" && break lt_ac_count=`expr $lt_ac_count + 1` if test "$lt_ac_count" -gt "$lt_ac_max"; then lt_ac_max=$lt_ac_count lt_cv_path_SED=$lt_ac_sed fi done done ]) SED=$lt_cv_path_SED AC_SUBST([SED]) AC_MSG_RESULT([$SED]) ])#AC_PROG_SED ])#m4_ifndef # Old name: AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_SED], []) # _LT_CHECK_SHELL_FEATURES # ------------------------ # Find out whether the shell is Bourne or XSI compatible, # or has some other useful features. m4_defun([_LT_CHECK_SHELL_FEATURES], [if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then lt_unset=unset else lt_unset=false fi _LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl # test EBCDIC or ASCII case `echo X|tr X '\101'` in A) # ASCII based system # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr lt_SP2NL='tr \040 \012' lt_NL2SP='tr \015\012 \040\040' ;; *) # EBCDIC based system lt_SP2NL='tr \100 \n' lt_NL2SP='tr \r\n \100\100' ;; esac _LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl _LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl ])# _LT_CHECK_SHELL_FEATURES # _LT_PATH_CONVERSION_FUNCTIONS # ----------------------------- # Determine what file name conversion functions should be used by # func_to_host_file (and, implicitly, by func_to_host_path). These are needed # for certain cross-compile configurations and native mingw. m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], [AC_REQUIRE([AC_CANONICAL_HOST])dnl AC_REQUIRE([AC_CANONICAL_BUILD])dnl AC_MSG_CHECKING([how to convert $build file names to $host format]) AC_CACHE_VAL(lt_cv_to_host_file_cmd, [case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 ;; esac ;; *-*-cygwin* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ;; *-*-cygwin* ) lt_cv_to_host_file_cmd=func_convert_file_noop ;; * ) # otherwise, assume *nix lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin ;; esac ;; * ) # unhandled hosts (and "normal" native builds) lt_cv_to_host_file_cmd=func_convert_file_noop ;; esac ]) to_host_file_cmd=$lt_cv_to_host_file_cmd AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) _LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], [0], [convert $build file names to $host format])dnl AC_MSG_CHECKING([how to convert $build file names to toolchain format]) AC_CACHE_VAL(lt_cv_to_tool_file_cmd, [#assume ordinary cross tools, or native build. lt_cv_to_tool_file_cmd=func_convert_file_noop case $host in *-*-mingw* ) case $build in *-*-mingw* ) # actually msys lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ;; esac ;; esac ]) to_tool_file_cmd=$lt_cv_to_tool_file_cmd AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) _LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], [0], [convert $build files to toolchain format])dnl ])# _LT_PATH_CONVERSION_FUNCTIONS # Helper functions for option handling. -*- Autoconf -*- # # Copyright (C) 2004-2005, 2007-2009, 2011-2015 Free Software # Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 8 ltoptions.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) # _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) # ------------------------------------------ m4_define([_LT_MANGLE_OPTION], [[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) # _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) # --------------------------------------- # Set option OPTION-NAME for macro MACRO-NAME, and if there is a # matching handler defined, dispatch to it. Other OPTION-NAMEs are # saved as a flag. m4_define([_LT_SET_OPTION], [m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), _LT_MANGLE_DEFUN([$1], [$2]), [m4_warning([Unknown $1 option '$2'])])[]dnl ]) # _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) # ------------------------------------------------------------ # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. m4_define([_LT_IF_OPTION], [m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) # _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) # ------------------------------------------------------- # Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME # are set. m4_define([_LT_UNLESS_OPTIONS], [m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), [m4_define([$0_found])])])[]dnl m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 ])[]dnl ]) # _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) # ---------------------------------------- # OPTION-LIST is a space-separated list of Libtool options associated # with MACRO-NAME. If any OPTION has a matching handler declared with # LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about # the unknown option and exit. m4_defun([_LT_SET_OPTIONS], [# Set options m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), [_LT_SET_OPTION([$1], _LT_Option)]) m4_if([$1],[LT_INIT],[ dnl dnl Simply set some default values (i.e off) if boolean options were not dnl specified: _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no ]) _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no ]) dnl dnl If no reference was made to various pairs of opposing options, then dnl we run the default mode handler for the pair. For example, if neither dnl 'shared' nor 'disable-shared' was passed, we enable building of shared dnl archives by default: _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], [_LT_ENABLE_FAST_INSTALL]) _LT_UNLESS_OPTIONS([LT_INIT], [aix-soname=aix aix-soname=both aix-soname=svr4], [_LT_WITH_AIX_SONAME([aix])]) ]) ])# _LT_SET_OPTIONS # _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) # ----------------------------------------- m4_define([_LT_MANGLE_DEFUN], [[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) # LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) # ----------------------------------------------- m4_define([LT_OPTION_DEFINE], [m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl ])# LT_OPTION_DEFINE # dlopen # ------ LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes ]) AU_DEFUN([AC_LIBTOOL_DLOPEN], [_LT_SET_OPTION([LT_INIT], [dlopen]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the 'dlopen' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) # win32-dll # --------- # Declare package support for building win32 dll's. LT_OPTION_DEFINE([LT_INIT], [win32-dll], [enable_win32_dll=yes case $host in *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(OBJDUMP, objdump, false) ;; esac test -z "$AS" && AS=as _LT_DECL([], [AS], [1], [Assembler program])dnl test -z "$DLLTOOL" && DLLTOOL=dlltool _LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl test -z "$OBJDUMP" && OBJDUMP=objdump _LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl ])# win32-dll AU_DEFUN([AC_LIBTOOL_WIN32_DLL], [AC_REQUIRE([AC_CANONICAL_HOST])dnl _LT_SET_OPTION([LT_INIT], [win32-dll]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the 'win32-dll' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) # _LT_ENABLE_SHARED([DEFAULT]) # ---------------------------- # implement the --enable-shared flag, and supports the 'shared' and # 'disable-shared' LT_INIT options. # DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. m4_define([_LT_ENABLE_SHARED], [m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([shared], [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_shared=yes ;; no) enable_shared=no ;; *) enable_shared=no # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_shared=yes fi done IFS=$lt_save_ifs ;; esac], [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) _LT_DECL([build_libtool_libs], [enable_shared], [0], [Whether or not to build shared libraries]) ])# _LT_ENABLE_SHARED LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) # Old names: AC_DEFUN([AC_ENABLE_SHARED], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) ]) AC_DEFUN([AC_DISABLE_SHARED], [_LT_SET_OPTION([LT_INIT], [disable-shared]) ]) AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_SHARED], []) dnl AC_DEFUN([AM_DISABLE_SHARED], []) # _LT_ENABLE_STATIC([DEFAULT]) # ---------------------------- # implement the --enable-static flag, and support the 'static' and # 'disable-static' LT_INIT options. # DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. m4_define([_LT_ENABLE_STATIC], [m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([static], [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_static=yes ;; no) enable_static=no ;; *) enable_static=no # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_static=yes fi done IFS=$lt_save_ifs ;; esac], [enable_static=]_LT_ENABLE_STATIC_DEFAULT) _LT_DECL([build_old_libs], [enable_static], [0], [Whether or not to build static libraries]) ])# _LT_ENABLE_STATIC LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) # Old names: AC_DEFUN([AC_ENABLE_STATIC], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) ]) AC_DEFUN([AC_DISABLE_STATIC], [_LT_SET_OPTION([LT_INIT], [disable-static]) ]) AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AM_ENABLE_STATIC], []) dnl AC_DEFUN([AM_DISABLE_STATIC], []) # _LT_ENABLE_FAST_INSTALL([DEFAULT]) # ---------------------------------- # implement the --enable-fast-install flag, and support the 'fast-install' # and 'disable-fast-install' LT_INIT options. # DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. m4_define([_LT_ENABLE_FAST_INSTALL], [m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl AC_ARG_ENABLE([fast-install], [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], [p=${PACKAGE-default} case $enableval in yes) enable_fast_install=yes ;; no) enable_fast_install=no ;; *) enable_fast_install=no # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for pkg in $enableval; do IFS=$lt_save_ifs if test "X$pkg" = "X$p"; then enable_fast_install=yes fi done IFS=$lt_save_ifs ;; esac], [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) _LT_DECL([fast_install], [enable_fast_install], [0], [Whether or not to optimize for fast installation])dnl ])# _LT_ENABLE_FAST_INSTALL LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) # Old names: AU_DEFUN([AC_ENABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the 'fast-install' option into LT_INIT's first parameter.]) ]) AU_DEFUN([AC_DISABLE_FAST_INSTALL], [_LT_SET_OPTION([LT_INIT], [disable-fast-install]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the 'disable-fast-install' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) # _LT_WITH_AIX_SONAME([DEFAULT]) # ---------------------------------- # implement the --with-aix-soname flag, and support the `aix-soname=aix' # and `aix-soname=both' and `aix-soname=svr4' LT_INIT options. DEFAULT # is either `aix', `both' or `svr4'. If omitted, it defaults to `aix'. m4_define([_LT_WITH_AIX_SONAME], [m4_define([_LT_WITH_AIX_SONAME_DEFAULT], [m4_if($1, svr4, svr4, m4_if($1, both, both, aix))])dnl shared_archive_member_spec= case $host,$enable_shared in power*-*-aix[[5-9]]*,yes) AC_MSG_CHECKING([which variant of shared library versioning to provide]) AC_ARG_WITH([aix-soname], [AS_HELP_STRING([--with-aix-soname=aix|svr4|both], [shared library versioning (aka "SONAME") variant to provide on AIX, @<:@default=]_LT_WITH_AIX_SONAME_DEFAULT[@:>@.])], [case $withval in aix|svr4|both) ;; *) AC_MSG_ERROR([Unknown argument to --with-aix-soname]) ;; esac lt_cv_with_aix_soname=$with_aix_soname], [AC_CACHE_VAL([lt_cv_with_aix_soname], [lt_cv_with_aix_soname=]_LT_WITH_AIX_SONAME_DEFAULT) with_aix_soname=$lt_cv_with_aix_soname]) AC_MSG_RESULT([$with_aix_soname]) if test aix != "$with_aix_soname"; then # For the AIX way of multilib, we name the shared archive member # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File. # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag, # the AIX toolchain works better with OBJECT_MODE set (default 32). if test 64 = "${OBJECT_MODE-32}"; then shared_archive_member_spec=shr_64 else shared_archive_member_spec=shr fi fi ;; *) with_aix_soname=aix ;; esac _LT_DECL([], [shared_archive_member_spec], [0], [Shared archive member basename, for filename based shared library versioning on AIX])dnl ])# _LT_WITH_AIX_SONAME LT_OPTION_DEFINE([LT_INIT], [aix-soname=aix], [_LT_WITH_AIX_SONAME([aix])]) LT_OPTION_DEFINE([LT_INIT], [aix-soname=both], [_LT_WITH_AIX_SONAME([both])]) LT_OPTION_DEFINE([LT_INIT], [aix-soname=svr4], [_LT_WITH_AIX_SONAME([svr4])]) # _LT_WITH_PIC([MODE]) # -------------------- # implement the --with-pic flag, and support the 'pic-only' and 'no-pic' # LT_INIT options. # MODE is either 'yes' or 'no'. If omitted, it defaults to 'both'. m4_define([_LT_WITH_PIC], [AC_ARG_WITH([pic], [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@], [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], [lt_p=${PACKAGE-default} case $withval in yes|no) pic_mode=$withval ;; *) pic_mode=default # Look at the argument we got. We use all the common list separators. lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, for lt_pkg in $withval; do IFS=$lt_save_ifs if test "X$lt_pkg" = "X$lt_p"; then pic_mode=yes fi done IFS=$lt_save_ifs ;; esac], [pic_mode=m4_default([$1], [default])]) _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl ])# _LT_WITH_PIC LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) # Old name: AU_DEFUN([AC_LIBTOOL_PICMODE], [_LT_SET_OPTION([LT_INIT], [pic-only]) AC_DIAGNOSE([obsolete], [$0: Remove this warning and the call to _LT_SET_OPTION when you put the 'pic-only' option into LT_INIT's first parameter.]) ]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) m4_define([_LTDL_MODE], []) LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], [m4_define([_LTDL_MODE], [nonrecursive])]) LT_OPTION_DEFINE([LTDL_INIT], [recursive], [m4_define([_LTDL_MODE], [recursive])]) LT_OPTION_DEFINE([LTDL_INIT], [subproject], [m4_define([_LTDL_MODE], [subproject])]) m4_define([_LTDL_TYPE], []) LT_OPTION_DEFINE([LTDL_INIT], [installable], [m4_define([_LTDL_TYPE], [installable])]) LT_OPTION_DEFINE([LTDL_INIT], [convenience], [m4_define([_LTDL_TYPE], [convenience])]) # ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- # # Copyright (C) 2004-2005, 2007-2008, 2011-2015 Free Software # Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 6 ltsugar.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) # lt_join(SEP, ARG1, [ARG2...]) # ----------------------------- # Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their # associated separator. # Needed until we can rely on m4_join from Autoconf 2.62, since all earlier # versions in m4sugar had bugs. m4_define([lt_join], [m4_if([$#], [1], [], [$#], [2], [[$2]], [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) m4_define([_lt_join], [m4_if([$#$2], [2], [], [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) # lt_car(LIST) # lt_cdr(LIST) # ------------ # Manipulate m4 lists. # These macros are necessary as long as will still need to support # Autoconf-2.59, which quotes differently. m4_define([lt_car], [[$1]]) m4_define([lt_cdr], [m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], [$#], 1, [], [m4_dquote(m4_shift($@))])]) m4_define([lt_unquote], $1) # lt_append(MACRO-NAME, STRING, [SEPARATOR]) # ------------------------------------------ # Redefine MACRO-NAME to hold its former content plus 'SEPARATOR''STRING'. # Note that neither SEPARATOR nor STRING are expanded; they are appended # to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). # No SEPARATOR is output if MACRO-NAME was previously undefined (different # than defined and empty). # # This macro is needed until we can rely on Autoconf 2.62, since earlier # versions of m4sugar mistakenly expanded SEPARATOR but not STRING. m4_define([lt_append], [m4_define([$1], m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) # lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) # ---------------------------------------------------------- # Produce a SEP delimited list of all paired combinations of elements of # PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list # has the form PREFIXmINFIXSUFFIXn. # Needed until we can rely on m4_combine added in Autoconf 2.62. m4_define([lt_combine], [m4_if(m4_eval([$# > 3]), [1], [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl [[m4_foreach([_Lt_prefix], [$2], [m4_foreach([_Lt_suffix], ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) # lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) # ----------------------------------------------------------------------- # Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited # by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. m4_define([lt_if_append_uniq], [m4_ifdef([$1], [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], [lt_append([$1], [$2], [$3])$4], [$5])], [lt_append([$1], [$2], [$3])$4])]) # lt_dict_add(DICT, KEY, VALUE) # ----------------------------- m4_define([lt_dict_add], [m4_define([$1($2)], [$3])]) # lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) # -------------------------------------------- m4_define([lt_dict_add_subkey], [m4_define([$1($2:$3)], [$4])]) # lt_dict_fetch(DICT, KEY, [SUBKEY]) # ---------------------------------- m4_define([lt_dict_fetch], [m4_ifval([$3], m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) # lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) # ----------------------------------------------------------------- m4_define([lt_if_dict_fetch], [m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], [$5], [$6])]) # lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) # -------------------------------------------------------------- m4_define([lt_dict_filter], [m4_if([$5], [], [], [lt_join(m4_quote(m4_default([$4], [[, ]])), lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl ]) # ltversion.m4 -- version numbers -*- Autoconf -*- # # Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc. # Written by Scott James Remnant, 2004 # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # @configure_input@ # serial 4179 ltversion.m4 # This file is part of GNU Libtool m4_define([LT_PACKAGE_VERSION], [2.4.6]) m4_define([LT_PACKAGE_REVISION], [2.4.6]) AC_DEFUN([LTVERSION_VERSION], [macro_version='2.4.6' macro_revision='2.4.6' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) # lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # # Copyright (C) 2004-2005, 2007, 2009, 2011-2015 Free Software # Foundation, Inc. # Written by Scott James Remnant, 2004. # # This file is free software; the Free Software Foundation gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # serial 5 lt~obsolete.m4 # These exist entirely to fool aclocal when bootstrapping libtool. # # In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN), # which have later been changed to m4_define as they aren't part of the # exported API, or moved to Autoconf or Automake where they belong. # # The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN # in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us # using a macro with the same name in our local m4/libtool.m4 it'll # pull the old libtool.m4 in (it doesn't see our shiny new m4_define # and doesn't know about Autoconf macros at all.) # # So we provide this file, which has a silly filename so it's always # included after everything else. This provides aclocal with the # AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything # because those macros already exist, or will be overwritten later. # We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. # # Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. # Yes, that means every name once taken will need to remain here until # we give up compatibility with versions before 1.7, at which point # we need to keep only those names which we still refer to. # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) mysql++-3.2.5/mysql++.bkl000644 000765 000024 00000051552 13515046514 015620 0ustar00tangentstaff000000 000000 $(DOLLAR)$(DOLLAR)d $(DOLLAR)$(DOLLAR)e $(DOLLAR)$(DOLLAR)f 3.1.0 ../$(STABLEABI)/abi_dumps/mysqlpp ./abi_dumps/mysqlpp no single yes multi C:\Program Files\MySQL\MySQL Connector C 6.1 on off off speed _d yes yes yes yes $(PREFIX)/include/mysql++ .. mysqlpp$(DEBUG_SUFFIX) mysqlpp$(DEBUG_SUFFIX) 3.2.5 lib/beemutex.cpp lib/cmdline.cpp lib/connection.cpp lib/cpool.cpp lib/datetime.cpp lib/dbdriver.cpp lib/field_names.cpp lib/field_types.cpp lib/manip.cpp lib/myset.cpp lib/mysql++.cpp lib/mystring.cpp lib/null.cpp lib/options.cpp lib/qparms.cpp lib/query.cpp lib/result.cpp lib/row.cpp lib/scopedconnection.cpp lib/sql_buffer.cpp lib/sqlstream.cpp lib/ssqls2.cpp lib/stadapter.cpp lib/tcp_connection.cpp lib/transaction.cpp lib/type_info.cpp lib/uds_connection.cpp lib/utility.cpp lib/vallist.cpp lib/wnp_connection.cpp $(DEBUGINFO) $(OPTIMIZE_FLAG) $(THREAD_TYPE) on on $(LIBDIR) UNICODE _UNICODE wsock32 MYSQLPP_MAKING_DLL HAVE_MYSQL_SSL_SET $(MYSQL_WIN_DIR)\include $(MYSQL_WIN_DIR)\lib libmysql MYSQLPP_NO_DLL HAVE_MYSQL_SSL_SET "$(MYSQL_WIN_DIR)\include" -Wl,--enable-stdcall-fixup "$(MYSQL_WIN_DIR)\lib" mysql lib/ssqls.h lib/querydef.h @PTHREAD_CFLAGS@ . @MYSQL_C_INC_DIR@ -L@MYSQL_C_LIB_DIR@ -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ HAVE_POSIX_GETOPT MYSQLPP_XCODE /usr/local/mysql/include -lmysqlclient /usr/local/mysql/lib lib/*.h $(HEADER_DIR) mysqlpp_ssqls2parse ssx/parsev2.cpp . mysqlpp mysqlpp ssx/genv2.cpp ssx/main.cpp test/array_index.cpp test/cpool.cpp test/datetime.cpp test/inttypes.cpp test/insertpolicy.cpp test/manip.cpp test/null_comparison.cpp test/query_copy.cpp test/qssqls.cpp test/qstream.cpp test/sqlstream.cpp test/ssqls2.cpp ssqls2parse mysqlpp_ssqls2parse test/string.cpp test/tcp.cpp test/uds.cpp test/wnp.cpp mysqlpp_excommon examples/printdata.cpp examples/cgi_jpeg.cpp examples/cpool.cpp examples/dbinfo.cpp examples/deadlock.cpp examples/fieldinf.cpp examples/for_each.cpp examples/load_jpeg.cpp examples/multiquery.cpp examples/resetdb.cpp examples/simple1.cpp examples/simple2.cpp examples/simple3.cpp examples/ssqls1.cpp examples/ssqls2.cpp examples/ssqls3.cpp examples/ssqls4.cpp examples/ssqls5.cpp $ examples/ssqls6.cpp $ examples/store_if.cpp examples/tquery1.cpp examples/tquery2.cpp examples/tquery3.cpp examples/tquery4.cpp examples/transaction.cpp @PACKAGE_NAME@-@PACKAGE_VERSION@ rm -rf doc/latex doc/pdf ; \ cd doc/html/refman ; \ for e in dot html map md5 png ; \ do \ rm -f doxygen.css [a-z]*.$(DDE) ; \ done -rmdir $(HEADER_DIR) rm -f $(DESTDIR)$(libdir)/$(DLLPREFIX)mysqlpp.$(SO_SUFFIX) configure.ac install.hta.in mysql++.bkl mysql++.spec.in doc/userman/userman.dbx.in lib/Doxyfile.in lib/mysql++.h.in ssx/Doxyfile.in bakefile_gen ./config.status cd lib ; ./ssqls.pl lib/ssqls.pl cd lib ; ./querydef.pl lib/querydef.pl ctags --recurse=yes . tags lib/Doxyfile lib/*.cpp lib/*.h cd lib ; doxygen > /dev/null ssx/Doxyfile ssx/*.cpp ssx/*.h cd ssx ; doxygen > /dev/null doc/userman/*.dbx doc/userman/userman.dbx.in cd doc/userman ; make html pdf doc/html/refman/index.html doc/html/refman/ssx/index.html doc/html/userman/index.html for d in config doc/html/refman/ssx doc/html/userman \ doc/refman doc/userman examples lib ssx test ; \ do \ mkdir -p $(PKGNAME)/$(DDD) ; \ done cp -RL *.bat *.in *.md *.txt abi.xml aclocal.m4 \ Bakefiles.bkgen bootstrap cleanmf config.guess config.h \ config.sub configure* dtest exrun install* Makefile.* \ mysql++.* osver $(PKGNAME) for d in vc200? ; do \ mkdir -p $(PKGNAME)/$(DDD) ; \ cp $(DDD)/*.sln $(DDD)/*.vcproj $(PKGNAME)/$(DDD) ; \ done cp config/*.m4 $(PKGNAME)/config cp -RL doc/README* doc/pdf doc/ssqls-pretty $(PKGNAME)/doc for f in fo2pdf LICENSE.txt Makefile Makefile.hello.* mktxt README.txt \*.dbx \*.in \*.mod \*.txt \*.xsl ; \ do \ cp doc/userman/$(DDF) $(PKGNAME)/doc/userman ; \ done find doc \( -name *.css -o -name *.html \) -exec install {} $(PKGNAME)/{} \; cp doc/html/refman/*.png $(PKGNAME)/doc/html/refman cp doc/userman/userman.dbx.in $(PKGNAME)/doc/userman for e in cpp h jpg txt ; \ do \ cp examples/*.$(DDE) $(PKGNAME)/examples ; \ done for d in mfc wforms ; \ do \ mkdir -p $(PKGNAME)/examples/vstudio/$(DDD) ; \ cp examples/vstudio/$(DDD)/* $(PKGNAME)/examples/vstudio/$(DDD) ; \ done cp lib/*.cpp lib/*.h lib/*.in lib/*.pl $(PKGNAME)/lib cp test/*.cpp $(PKGNAME)/test cp ssx/*.cpp ssx/*.h ssx/*.in $(PKGNAME)/ssx cd $(PKGNAME) ; ./bootstrap nodoc nomaint rm -f $(PKGNAME)/Makefile rm -f $(PKGNAME)/config.log rm -f $(PKGNAME)/config.status rm -fr $(PKGNAME)/autom4te.cache doc $(PKGNAME) tar -chz -f $(PKGNAME).tar.gz $(PKGNAME) rm -rf $(PKGNAME) doc dist cp $(PKGNAME).tar.gz ~/rpmbuild/SOURCES cd ~/rpmbuild/SPECS rpm-prep rpmbuild -ba mysql++.spec rpm-prep rpmbuild -bs mysql++.spec dist cp $(PKGNAME).tar.gz /usr/portage/distfiles cp mysql++.ebuild /usr/portage/dev-db/mysql++/$(PKGNAME).ebuild ebuild /usr/portage/dev-db/mysql++/$(PKGNAME).ebuild digest mysql++-3.2.5/mysql++.bkl-merge000644 000765 000024 00000051602 13515046514 016711 0ustar00tangentstaff000000 000000 $(DOLLAR)$(DOLLAR)d $(DOLLAR)$(DOLLAR)e $(DOLLAR)$(DOLLAR)f 3.1.0 ../$(STABLEABI)/abi_dumps/mysqlpp ./abi_dumps/mysqlpp no single yes multi C:\Program Files\MySQL\MySQL Connector C 6.1 on off off speed _d yes yes yes yes $(PREFIX)/include/mysql++ .. mysqlpp$(DEBUG_SUFFIX) mysqlpp$(DEBUG_SUFFIX) 3.2.5 lib/beemutex.cpp lib/cmdline.cpp lib/connection.cpp lib/cpool.cpp lib/datetime.cpp lib/dbdriver.cpp lib/field_names.cpp lib/field_types.cpp lib/manip.cpp lib/myset.cpp lib/mysql++.cpp lib/mystring.cpp lib/null.cpp lib/options.cpp lib/qparms.cpp lib/query.cpp lib/result.cpp lib/row.cpp lib/scopedconnection.cpp lib/sql_buffer.cpp lib/sqlstream.cpp lib/ssqls2.cpp lib/stadapter.cpp lib/tcp_connection.cpp lib/transaction.cpp lib/type_info.cpp lib/uds_connection.cpp lib/utility.cpp lib/vallist.cpp lib/wnp_connection.cpp $(DEBUGINFO) $(OPTIMIZE_FLAG) $(THREAD_TYPE) on on $(LIBDIR) UNICODE _UNICODE wsock32 MYSQLPP_MAKING_DLL HAVE_MYSQL_SSL_SET $(MYSQL_WIN_DIR)\include $(MYSQL_WIN_DIR)\lib libmysql MYSQLPP_NO_DLL HAVE_MYSQL_SSL_SET "$(MYSQL_WIN_DIR)\include" -Wl,--enable-stdcall-fixup "$(MYSQL_WIN_DIR)\lib" mysql lib/ssqls.h lib/querydef.h @PTHREAD_CFLAGS@ . @MYSQL_C_INC_DIR@ -L@MYSQL_C_LIB_DIR@ -l@MYSQL_C_LIB_NAME@ @PTHREAD_LIBS@ @MYSQLPP_EXTRA_LIBS@ HAVE_POSIX_GETOPT MYSQLPP_XCODE /usr/local/mysql/include -lmysqlclient /usr/local/mysql/lib lib/*.h $(HEADER_DIR) mysqlpp_ssqls2parse ssx/parsev2.cpp . mysqlpp mysqlpp ssx/genv2.cpp ssx/main.cpp test/array_index.cpp test/cpool.cpp test/datetime.cpp test/inttypes.cpp test/insertpolicy.cpp test/manip.cpp test/null_comparison.cpp test/query_copy.cpp test/qssqls.cpp test/qstream.cpp test/sqlstream.cpp test/ssqls2.cpp ssqls2parse mysqlpp_ssqls2parse test/string.cpp test/tcp.cpp test/uds.cpp test/wnp.cpp mysqlpp_excommon examples/printdata.cpp examples/cgi_jpeg.cpp examples/cpool.cpp examples/dbinfo.cpp examples/deadlock.cpp examples/fieldinf.cpp examples/for_each.cpp examples/load_jpeg.cpp examples/multiquery.cpp examples/resetdb.cpp examples/simple1.cpp examples/simple2.cpp examples/simple3.cpp examples/ssqls1.cpp examples/ssqls2.cpp examples/ssqls3.cpp examples/ssqls4.cpp examples/ssqls5.cpp $ examples/ssqls6.cpp $ examples/store_if.cpp examples/tquery1.cpp examples/tquery2.cpp examples/tquery3.cpp examples/tquery4.cpp examples/transaction.cpp @PACKAGE_NAME@-@PACKAGE_VERSION@ rm -rf doc/latex doc/pdf ; \ cd doc/html/refman ; \ for e in dot html map md5 png ; \ do \ rm -f doxygen.css [a-z]*.$(DDE) ; \ done -rmdir $(HEADER_DIR) rm -f $(DESTDIR)$(libdir)/$(DLLPREFIX)mysqlpp.$(SO_SUFFIX) configure.ac install.hta.in mysql++.bkl mysql++.spec.in doc/userman/userman.dbx.in lib/Doxyfile.in lib/mysql++.h.in ssx/Doxyfile.in bakefile_gen ./config.status cd lib ; ./ssqls.pl lib/ssqls.pl cd lib ; ./querydef.pl lib/querydef.pl ctags --recurse=yes . tags lib/Doxyfile lib/*.cpp lib/*.h cd lib ; doxygen > /dev/null ssx/Doxyfile ssx/*.cpp ssx/*.h cd ssx ; doxygen > /dev/null doc/userman/*.dbx doc/userman/userman.dbx.in cd doc/userman ; make html pdf doc/html/refman/index.html doc/html/refman/ssx/index.html doc/html/userman/index.html for d in config doc/html/refman/ssx doc/html/userman \ doc/refman doc/userman examples lib ssx test ; \ do \ mkdir -p $(PKGNAME)/$(DDD) ; \ done cp -RL *.bat *.in *.md *.txt abi.xml aclocal.m4 Bakefiles.bkgen \ bootstrap ChangeLog.md cleanmf config.guess config.h \ config.sub configure* dtest exrun HACKERS.md install* \ Makefile.* mysql++.* osver $(PKGNAME) for d in vc200? ; do \ mkdir -p $(PKGNAME)/$(DDD) ; \ cp $(DDD)/*.sln $(DDD)/*.vcproj $(PKGNAME)/$(DDD) ; \ done cp config/*.m4 $(PKGNAME)/config cp -RL doc/README* doc/pdf doc/ssqls-pretty $(PKGNAME)/doc for f in fo2pdf LICENSE.txt Makefile Makefile.hello.* mktxt README.txt \*.dbx \*.in \*.mod \*.txt \*.xsl ; \ do \ cp doc/userman/$(DDF) $(PKGNAME)/doc/userman ; \ done find doc \( -name *.css -o -name *.html \) -exec install {} $(PKGNAME)/{} \; cp doc/html/refman/*.png $(PKGNAME)/doc/html/refman cp doc/userman/userman.dbx.in $(PKGNAME)/doc/userman for e in cpp h jpg txt ; \ do \ cp examples/*.$(DDE) $(PKGNAME)/examples ; \ done for d in mfc wforms ; \ do \ mkdir -p $(PKGNAME)/examples/vstudio/$(DDD) ; \ cp examples/vstudio/$(DDD)/* $(PKGNAME)/examples/vstudio/$(DDD) ; \ done cp lib/*.cpp lib/*.h lib/*.in lib/*.pl $(PKGNAME)/lib cp test/*.cpp $(PKGNAME)/test cp ssx/*.cpp ssx/*.h ssx/*.in $(PKGNAME)/ssx cd $(PKGNAME) ; ./bootstrap nodoc nomaint rm -f $(PKGNAME)/Makefile rm -f $(PKGNAME)/config.log rm -f $(PKGNAME)/config.status rm -fr $(PKGNAME)/autom4te.cache doc $(PKGNAME) tar -chz -f $(PKGNAME).tar.gz $(PKGNAME) rm -rf $(PKGNAME) doc dist cp $(PKGNAME).tar.gz ~/rpmbuild/SOURCES cd ~/rpmbuild/SPECS rpm-prep rpmbuild -ba mysql++.spec rpm-prep rpmbuild -bs mysql++.spec dist cp $(PKGNAME).tar.gz /usr/portage/distfiles cp mysql++.ebuild /usr/portage/dev-db/mysql++/$(PKGNAME).ebuild ebuild /usr/portage/dev-db/mysql++/$(PKGNAME).ebuild digest mysql++-3.2.5/vc2008/mysql++_cpool.vcproj000644 000765 000024 00000013555 13515046514 020472 0ustar00tangentstaff000000 000000 mysql++-3.2.5/vc2008/mysql++_ssqls2.vcproj000644 000765 000024 00000013573 13515046514 020605 0ustar00tangentstaff000000 000000 mysql++-3.2.5/vc2008/mysql++_simple2.vcproj000644 000765 000024 00000013611 13515046514 020722 0ustar00tangentstaff000000 000000 mysql++-3.2.5/vc2008/mysql++_load_jpeg.vcproj000644 000765 000024 00000013645 13515046514 021302 0ustar00tangentstaff000000 000000 mysql++-3.2.5/vc2008/mysql++_tquery2.vcproj000644 000765 000024 00000013611 13515046514 020762 0ustar00tangentstaff000000 000000 mysql++-3.2.5/vc2008/mysql++_fieldinf.vcproj000644 000765 000024 00000013627 13515046514 021136 0ustar00tangentstaff000000 000000 mysql++-3.2.5/vc2008/mysql++_test_datetime.vcproj000644 000765 000024 00000013652 13515046514 022207 0ustar00tangentstaff000000 000000 mysql++-3.2.5/vc2008/mysql++_excommon.vcproj000644 000765 000024 00000012067 13515046514 021200 0ustar00tangentstaff000000 000000 mysql++-3.2.5/vc2008/mysql++_ssqls4.vcproj000644 000765 000024 00000013573 13515046514 020607 0ustar00tangentstaff000000 000000 mysql++-3.2.5/vc2008/mysql++_multiquery.vcproj000644 000765 000024 00000013663 13515046514 021576 0ustar00tangentstaff000000 000000 mysql++-3.2.5/vc2008/mysql++_test_sqlstream.vcproj000644 000765 000024 00000013670 13515046514 022426 0ustar00tangentstaff000000 000000 mysql++-3.2.5/vc2008/mysql++_resetdb.vcproj000644 000765 000024 00000013611 13515046514 020777 0ustar00tangentstaff000000 000000 mysql++-3.2.5/vc2008/mysql++_cgi_jpeg.vcproj000644 000765 000024 00000013627 13515046514 021125 0ustar00tangentstaff000000 000000 mysql++-3.2.5/vc2008/mysql++_test_qstream.vcproj000644 000765 000024 00000013634 13515046514 022067 0ustar00tangentstaff000000 000000 mysql++-3.2.5/vc2008/mysql++_test_null_comparison.vcproj000644 000765 000024 00000014014 13515046514 023610 0ustar00tangentstaff000000 000000 mysql++-3.2.5/vc2008/mysql++.sln000644 000765 000024 00000071112 13515046514 016560 0ustar00tangentstaff000000 000000 Microsoft Visual Studio Solution File, Format Version 10.00 # Visual Studio 2008 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mysqlpp", "mysql++_mysqlpp.vcproj", "{2DAE6437-6594-5B8A-B969-BBF287043EE4}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssqls2parse", "mysql++_ssqls2parse.vcproj", "{3F335D9A-C386-53A3-9294-B563821A54E7}" ProjectSection(ProjectDependencies) = postProject {2DAE6437-6594-5B8A-B969-BBF287043EE4} = {2DAE6437-6594-5B8A-B969-BBF287043EE4} {2DAE6437-6594-5B8A-B969-BBF287043EE4} = {2DAE6437-6594-5B8A-B969-BBF287043EE4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssqlsxlat", "mysql++_ssqlsxlat.vcproj", "{DF066212-36AA-5EC6-B7D0-5ED156C98E4D}" ProjectSection(ProjectDependencies) = postProject {2DAE6437-6594-5B8A-B969-BBF287043EE4} = {2DAE6437-6594-5B8A-B969-BBF287043EE4} {3F335D9A-C386-53A3-9294-B563821A54E7} = {3F335D9A-C386-53A3-9294-B563821A54E7} {2DAE6437-6594-5B8A-B969-BBF287043EE4} = {2DAE6437-6594-5B8A-B969-BBF287043EE4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_array_index", "mysql++_test_array_index.vcproj", "{0801DB51-9DA6-5A2F-ACC2-7FDA54B2DC9C}" ProjectSection(ProjectDependencies) = postProject {2DAE6437-6594-5B8A-B969-BBF287043EE4} = {2DAE6437-6594-5B8A-B969-BBF287043EE4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_cpool", "mysql++_test_cpool.vcproj", "{3326BAB6-0ECE-59BF-A906-88B8594026E8}" ProjectSection(ProjectDependencies) = postProject {2DAE6437-6594-5B8A-B969-BBF287043EE4} = {2DAE6437-6594-5B8A-B969-BBF287043EE4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_datetime", "mysql++_test_datetime.vcproj", "{B06A9EDD-0359-58E0-A75F-9E2E20A9594B}" ProjectSection(ProjectDependencies) = postProject {2DAE6437-6594-5B8A-B969-BBF287043EE4} = {2DAE6437-6594-5B8A-B969-BBF287043EE4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_inttypes", "mysql++_test_inttypes.vcproj", "{B289676A-C942-5AF4-BF54-BBC1165C43E9}" ProjectSection(ProjectDependencies) = postProject {2DAE6437-6594-5B8A-B969-BBF287043EE4} = {2DAE6437-6594-5B8A-B969-BBF287043EE4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_insertpolicy", "mysql++_test_insertpolicy.vcproj", "{2EC28D38-EE44-580F-90E4-6B8826B9F576}" ProjectSection(ProjectDependencies) = postProject {2DAE6437-6594-5B8A-B969-BBF287043EE4} = {2DAE6437-6594-5B8A-B969-BBF287043EE4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_manip", "mysql++_test_manip.vcproj", "{018E5F11-D3F8-5CCD-BB80-CE39FCB6D6B1}" ProjectSection(ProjectDependencies) = postProject {2DAE6437-6594-5B8A-B969-BBF287043EE4} = {2DAE6437-6594-5B8A-B969-BBF287043EE4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_null_comparison", "mysql++_test_null_comparison.vcproj", "{CC659BFE-6389-5177-BDBE-B90BD7DF37B4}" ProjectSection(ProjectDependencies) = postProject {2DAE6437-6594-5B8A-B969-BBF287043EE4} = {2DAE6437-6594-5B8A-B969-BBF287043EE4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_query_copy", "mysql++_test_query_copy.vcproj", "{909DDC42-823D-5AD6-97FA-851530837BFC}" ProjectSection(ProjectDependencies) = postProject {2DAE6437-6594-5B8A-B969-BBF287043EE4} = {2DAE6437-6594-5B8A-B969-BBF287043EE4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_qssqls", "mysql++_test_qssqls.vcproj", "{86E0B232-5D5F-5094-9AB9-933599772625}" ProjectSection(ProjectDependencies) = postProject {2DAE6437-6594-5B8A-B969-BBF287043EE4} = {2DAE6437-6594-5B8A-B969-BBF287043EE4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_qstream", "mysql++_test_qstream.vcproj", "{16DAFA3B-3B92-55EE-A8E6-EC79FAFC0C4E}" ProjectSection(ProjectDependencies) = postProject {2DAE6437-6594-5B8A-B969-BBF287043EE4} = {2DAE6437-6594-5B8A-B969-BBF287043EE4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_sqlstream", "mysql++_test_sqlstream.vcproj", "{FD3716DB-7D45-533E-BD42-1A9D2CB596A2}" ProjectSection(ProjectDependencies) = postProject {2DAE6437-6594-5B8A-B969-BBF287043EE4} = {2DAE6437-6594-5B8A-B969-BBF287043EE4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_ssqls2", "mysql++_test_ssqls2.vcproj", "{0A03AD93-69A4-5741-99B1-D4230CDD90CC}" ProjectSection(ProjectDependencies) = postProject {2DAE6437-6594-5B8A-B969-BBF287043EE4} = {2DAE6437-6594-5B8A-B969-BBF287043EE4} {3F335D9A-C386-53A3-9294-B563821A54E7} = {3F335D9A-C386-53A3-9294-B563821A54E7} {2DAE6437-6594-5B8A-B969-BBF287043EE4} = {2DAE6437-6594-5B8A-B969-BBF287043EE4} {3F335D9A-C386-53A3-9294-B563821A54E7} = {3F335D9A-C386-53A3-9294-B563821A54E7} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_string", "mysql++_test_string.vcproj", "{365E5370-8E8C-555C-A7DB-80541B4590E7}" ProjectSection(ProjectDependencies) = postProject {2DAE6437-6594-5B8A-B969-BBF287043EE4} = {2DAE6437-6594-5B8A-B969-BBF287043EE4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_tcp", "mysql++_test_tcp.vcproj", "{C0406F25-3F72-5CD4-ADBE-76E6F28B499D}" ProjectSection(ProjectDependencies) = postProject {2DAE6437-6594-5B8A-B969-BBF287043EE4} = {2DAE6437-6594-5B8A-B969-BBF287043EE4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_uds", "mysql++_test_uds.vcproj", "{E53E4EF0-816F-5B91-B084-5C10E1173814}" ProjectSection(ProjectDependencies) = postProject {2DAE6437-6594-5B8A-B969-BBF287043EE4} = {2DAE6437-6594-5B8A-B969-BBF287043EE4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "test_wnp", "mysql++_test_wnp.vcproj", "{DE19B7FF-C8A1-5944-8482-4F8059F0901F}" ProjectSection(ProjectDependencies) = postProject {2DAE6437-6594-5B8A-B969-BBF287043EE4} = {2DAE6437-6594-5B8A-B969-BBF287043EE4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "excommon", "mysql++_excommon.vcproj", "{7AFF80FE-F36B-5F8F-BB52-3568D7E03AAF}" ProjectSection(ProjectDependencies) = postProject {2DAE6437-6594-5B8A-B969-BBF287043EE4} = {2DAE6437-6594-5B8A-B969-BBF287043EE4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cgi_jpeg", "mysql++_cgi_jpeg.vcproj", "{C59EBA80-FF8B-5D56-BE89-CDEA0744516A}" ProjectSection(ProjectDependencies) = postProject {7AFF80FE-F36B-5F8F-BB52-3568D7E03AAF} = {7AFF80FE-F36B-5F8F-BB52-3568D7E03AAF} {2DAE6437-6594-5B8A-B969-BBF287043EE4} = {2DAE6437-6594-5B8A-B969-BBF287043EE4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cpool", "mysql++_cpool.vcproj", "{5D6870A5-F52B-544D-8502-BA5D90A59262}" ProjectSection(ProjectDependencies) = postProject {7AFF80FE-F36B-5F8F-BB52-3568D7E03AAF} = {7AFF80FE-F36B-5F8F-BB52-3568D7E03AAF} {2DAE6437-6594-5B8A-B969-BBF287043EE4} = {2DAE6437-6594-5B8A-B969-BBF287043EE4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dbinfo", "mysql++_dbinfo.vcproj", "{9E60B7F5-27E4-54E1-B1E4-8D48BCCA3112}" ProjectSection(ProjectDependencies) = postProject {7AFF80FE-F36B-5F8F-BB52-3568D7E03AAF} = {7AFF80FE-F36B-5F8F-BB52-3568D7E03AAF} {2DAE6437-6594-5B8A-B969-BBF287043EE4} = {2DAE6437-6594-5B8A-B969-BBF287043EE4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "deadlock", "mysql++_deadlock.vcproj", "{AD9BBB2D-EBDF-578A-8E93-690633102134}" ProjectSection(ProjectDependencies) = postProject {7AFF80FE-F36B-5F8F-BB52-3568D7E03AAF} = {7AFF80FE-F36B-5F8F-BB52-3568D7E03AAF} {2DAE6437-6594-5B8A-B969-BBF287043EE4} = {2DAE6437-6594-5B8A-B969-BBF287043EE4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "fieldinf", "mysql++_fieldinf.vcproj", "{BFD32EF9-C341-55A7-877C-ACA2E12D758D}" ProjectSection(ProjectDependencies) = postProject {7AFF80FE-F36B-5F8F-BB52-3568D7E03AAF} = {7AFF80FE-F36B-5F8F-BB52-3568D7E03AAF} {2DAE6437-6594-5B8A-B969-BBF287043EE4} = {2DAE6437-6594-5B8A-B969-BBF287043EE4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "for_each", "mysql++_for_each.vcproj", "{31312F99-64B9-55A3-98CD-9C6716F94F4D}" ProjectSection(ProjectDependencies) = postProject {7AFF80FE-F36B-5F8F-BB52-3568D7E03AAF} = {7AFF80FE-F36B-5F8F-BB52-3568D7E03AAF} {2DAE6437-6594-5B8A-B969-BBF287043EE4} = {2DAE6437-6594-5B8A-B969-BBF287043EE4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "load_jpeg", "mysql++_load_jpeg.vcproj", "{7845BFF5-8676-5038-9B8F-56125A7CD668}" ProjectSection(ProjectDependencies) = postProject {7AFF80FE-F36B-5F8F-BB52-3568D7E03AAF} = {7AFF80FE-F36B-5F8F-BB52-3568D7E03AAF} {2DAE6437-6594-5B8A-B969-BBF287043EE4} = {2DAE6437-6594-5B8A-B969-BBF287043EE4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "multiquery", "mysql++_multiquery.vcproj", "{C265E5A2-2BC5-5369-9224-F0686847A25A}" ProjectSection(ProjectDependencies) = postProject {7AFF80FE-F36B-5F8F-BB52-3568D7E03AAF} = {7AFF80FE-F36B-5F8F-BB52-3568D7E03AAF} {2DAE6437-6594-5B8A-B969-BBF287043EE4} = {2DAE6437-6594-5B8A-B969-BBF287043EE4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "resetdb", "mysql++_resetdb.vcproj", "{D3A0178F-3F8C-5383-BDA2-A1C435F8A624}" ProjectSection(ProjectDependencies) = postProject {7AFF80FE-F36B-5F8F-BB52-3568D7E03AAF} = {7AFF80FE-F36B-5F8F-BB52-3568D7E03AAF} {2DAE6437-6594-5B8A-B969-BBF287043EE4} = {2DAE6437-6594-5B8A-B969-BBF287043EE4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "simple1", "mysql++_simple1.vcproj", "{41C15B4A-390C-5E7B-9281-DEDBC41FEABC}" ProjectSection(ProjectDependencies) = postProject {7AFF80FE-F36B-5F8F-BB52-3568D7E03AAF} = {7AFF80FE-F36B-5F8F-BB52-3568D7E03AAF} {2DAE6437-6594-5B8A-B969-BBF287043EE4} = {2DAE6437-6594-5B8A-B969-BBF287043EE4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "simple2", "mysql++_simple2.vcproj", "{65D8E850-75E9-5A2D-B6FC-66D749EBFC03}" ProjectSection(ProjectDependencies) = postProject {7AFF80FE-F36B-5F8F-BB52-3568D7E03AAF} = {7AFF80FE-F36B-5F8F-BB52-3568D7E03AAF} {2DAE6437-6594-5B8A-B969-BBF287043EE4} = {2DAE6437-6594-5B8A-B969-BBF287043EE4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "simple3", "mysql++_simple3.vcproj", "{412C93B3-32D8-590D-84AD-A74BDE903E3D}" ProjectSection(ProjectDependencies) = postProject {7AFF80FE-F36B-5F8F-BB52-3568D7E03AAF} = {7AFF80FE-F36B-5F8F-BB52-3568D7E03AAF} {2DAE6437-6594-5B8A-B969-BBF287043EE4} = {2DAE6437-6594-5B8A-B969-BBF287043EE4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssqls1", "mysql++_ssqls1.vcproj", "{735CF9E3-42AE-52A6-B8E2-B14204F835F6}" ProjectSection(ProjectDependencies) = postProject {7AFF80FE-F36B-5F8F-BB52-3568D7E03AAF} = {7AFF80FE-F36B-5F8F-BB52-3568D7E03AAF} {2DAE6437-6594-5B8A-B969-BBF287043EE4} = {2DAE6437-6594-5B8A-B969-BBF287043EE4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssqls2", "mysql++_ssqls2.vcproj", "{3602F0B4-8828-5CAC-B704-FD8DEA79B138}" ProjectSection(ProjectDependencies) = postProject {7AFF80FE-F36B-5F8F-BB52-3568D7E03AAF} = {7AFF80FE-F36B-5F8F-BB52-3568D7E03AAF} {2DAE6437-6594-5B8A-B969-BBF287043EE4} = {2DAE6437-6594-5B8A-B969-BBF287043EE4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssqls3", "mysql++_ssqls3.vcproj", "{53B1D2B1-620F-561A-8DE4-85F55E4D564B}" ProjectSection(ProjectDependencies) = postProject {7AFF80FE-F36B-5F8F-BB52-3568D7E03AAF} = {7AFF80FE-F36B-5F8F-BB52-3568D7E03AAF} {2DAE6437-6594-5B8A-B969-BBF287043EE4} = {2DAE6437-6594-5B8A-B969-BBF287043EE4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssqls4", "mysql++_ssqls4.vcproj", "{32C814A1-0D7D-56E3-B63D-D4A096D0E7E7}" ProjectSection(ProjectDependencies) = postProject {7AFF80FE-F36B-5F8F-BB52-3568D7E03AAF} = {7AFF80FE-F36B-5F8F-BB52-3568D7E03AAF} {2DAE6437-6594-5B8A-B969-BBF287043EE4} = {2DAE6437-6594-5B8A-B969-BBF287043EE4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssqls5", "mysql++_ssqls5.vcproj", "{F72023A7-259D-5CCE-8EBB-C796CF0CFD0F}" ProjectSection(ProjectDependencies) = postProject {7AFF80FE-F36B-5F8F-BB52-3568D7E03AAF} = {7AFF80FE-F36B-5F8F-BB52-3568D7E03AAF} {2DAE6437-6594-5B8A-B969-BBF287043EE4} = {2DAE6437-6594-5B8A-B969-BBF287043EE4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ssqls6", "mysql++_ssqls6.vcproj", "{28C337E6-DC50-590C-8506-833192B80273}" ProjectSection(ProjectDependencies) = postProject {7AFF80FE-F36B-5F8F-BB52-3568D7E03AAF} = {7AFF80FE-F36B-5F8F-BB52-3568D7E03AAF} {2DAE6437-6594-5B8A-B969-BBF287043EE4} = {2DAE6437-6594-5B8A-B969-BBF287043EE4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "store_if", "mysql++_store_if.vcproj", "{FFCEE0E9-435F-593F-B2B8-FDDC0B95A47E}" ProjectSection(ProjectDependencies) = postProject {7AFF80FE-F36B-5F8F-BB52-3568D7E03AAF} = {7AFF80FE-F36B-5F8F-BB52-3568D7E03AAF} {2DAE6437-6594-5B8A-B969-BBF287043EE4} = {2DAE6437-6594-5B8A-B969-BBF287043EE4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tquery1", "mysql++_tquery1.vcproj", "{76AF7D4B-B9A1-5E76-83CB-9F9EFDE10E3A}" ProjectSection(ProjectDependencies) = postProject {7AFF80FE-F36B-5F8F-BB52-3568D7E03AAF} = {7AFF80FE-F36B-5F8F-BB52-3568D7E03AAF} {2DAE6437-6594-5B8A-B969-BBF287043EE4} = {2DAE6437-6594-5B8A-B969-BBF287043EE4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tquery2", "mysql++_tquery2.vcproj", "{1BE11466-4CE8-52BA-A317-FDCDAE8FC884}" ProjectSection(ProjectDependencies) = postProject {7AFF80FE-F36B-5F8F-BB52-3568D7E03AAF} = {7AFF80FE-F36B-5F8F-BB52-3568D7E03AAF} {2DAE6437-6594-5B8A-B969-BBF287043EE4} = {2DAE6437-6594-5B8A-B969-BBF287043EE4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tquery3", "mysql++_tquery3.vcproj", "{D6B04B3F-8326-55E5-B4E6-FB11D6784BCD}" ProjectSection(ProjectDependencies) = postProject {7AFF80FE-F36B-5F8F-BB52-3568D7E03AAF} = {7AFF80FE-F36B-5F8F-BB52-3568D7E03AAF} {2DAE6437-6594-5B8A-B969-BBF287043EE4} = {2DAE6437-6594-5B8A-B969-BBF287043EE4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tquery4", "mysql++_tquery4.vcproj", "{2682F384-189A-5897-B38E-4C0E5749404D}" ProjectSection(ProjectDependencies) = postProject {7AFF80FE-F36B-5F8F-BB52-3568D7E03AAF} = {7AFF80FE-F36B-5F8F-BB52-3568D7E03AAF} {2DAE6437-6594-5B8A-B969-BBF287043EE4} = {2DAE6437-6594-5B8A-B969-BBF287043EE4} EndProjectSection EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "transaction", "mysql++_transaction.vcproj", "{FF09D392-E501-5DAB-B5A9-B1B97E246D37}" ProjectSection(ProjectDependencies) = postProject {7AFF80FE-F36B-5F8F-BB52-3568D7E03AAF} = {7AFF80FE-F36B-5F8F-BB52-3568D7E03AAF} {2DAE6437-6594-5B8A-B969-BBF287043EE4} = {2DAE6437-6594-5B8A-B969-BBF287043EE4} EndProjectSection EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|x64 = Debug|x64 Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {2DAE6437-6594-5B8A-B969-BBF287043EE4}.Debug|x64.ActiveCfg = Debug|x64 {2DAE6437-6594-5B8A-B969-BBF287043EE4}.Debug|x64.Build.0 = Debug|x64 {2DAE6437-6594-5B8A-B969-BBF287043EE4}.Release|x64.ActiveCfg = Release|x64 {2DAE6437-6594-5B8A-B969-BBF287043EE4}.Release|x64.Build.0 = Release|x64 {3F335D9A-C386-53A3-9294-B563821A54E7}.Debug|x64.ActiveCfg = Debug|x64 {3F335D9A-C386-53A3-9294-B563821A54E7}.Debug|x64.Build.0 = Debug|x64 {3F335D9A-C386-53A3-9294-B563821A54E7}.Release|x64.ActiveCfg = Release|x64 {3F335D9A-C386-53A3-9294-B563821A54E7}.Release|x64.Build.0 = Release|x64 {DF066212-36AA-5EC6-B7D0-5ED156C98E4D}.Debug|x64.ActiveCfg = Debug|x64 {DF066212-36AA-5EC6-B7D0-5ED156C98E4D}.Debug|x64.Build.0 = Debug|x64 {DF066212-36AA-5EC6-B7D0-5ED156C98E4D}.Release|x64.ActiveCfg = Release|x64 {DF066212-36AA-5EC6-B7D0-5ED156C98E4D}.Release|x64.Build.0 = Release|x64 {0801DB51-9DA6-5A2F-ACC2-7FDA54B2DC9C}.Debug|x64.ActiveCfg = Debug|x64 {0801DB51-9DA6-5A2F-ACC2-7FDA54B2DC9C}.Debug|x64.Build.0 = Debug|x64 {0801DB51-9DA6-5A2F-ACC2-7FDA54B2DC9C}.Release|x64.ActiveCfg = Release|x64 {0801DB51-9DA6-5A2F-ACC2-7FDA54B2DC9C}.Release|x64.Build.0 = Release|x64 {3326BAB6-0ECE-59BF-A906-88B8594026E8}.Debug|x64.ActiveCfg = Debug|x64 {3326BAB6-0ECE-59BF-A906-88B8594026E8}.Debug|x64.Build.0 = Debug|x64 {3326BAB6-0ECE-59BF-A906-88B8594026E8}.Release|x64.ActiveCfg = Release|x64 {3326BAB6-0ECE-59BF-A906-88B8594026E8}.Release|x64.Build.0 = Release|x64 {B06A9EDD-0359-58E0-A75F-9E2E20A9594B}.Debug|x64.ActiveCfg = Debug|x64 {B06A9EDD-0359-58E0-A75F-9E2E20A9594B}.Debug|x64.Build.0 = Debug|x64 {B06A9EDD-0359-58E0-A75F-9E2E20A9594B}.Release|x64.ActiveCfg = Release|x64 {B06A9EDD-0359-58E0-A75F-9E2E20A9594B}.Release|x64.Build.0 = Release|x64 {B289676A-C942-5AF4-BF54-BBC1165C43E9}.Debug|x64.ActiveCfg = Debug|x64 {B289676A-C942-5AF4-BF54-BBC1165C43E9}.Debug|x64.Build.0 = Debug|x64 {B289676A-C942-5AF4-BF54-BBC1165C43E9}.Release|x64.ActiveCfg = Release|x64 {B289676A-C942-5AF4-BF54-BBC1165C43E9}.Release|x64.Build.0 = Release|x64 {2EC28D38-EE44-580F-90E4-6B8826B9F576}.Debug|x64.ActiveCfg = Debug|x64 {2EC28D38-EE44-580F-90E4-6B8826B9F576}.Debug|x64.Build.0 = Debug|x64 {2EC28D38-EE44-580F-90E4-6B8826B9F576}.Release|x64.ActiveCfg = Release|x64 {2EC28D38-EE44-580F-90E4-6B8826B9F576}.Release|x64.Build.0 = Release|x64 {018E5F11-D3F8-5CCD-BB80-CE39FCB6D6B1}.Debug|x64.ActiveCfg = Debug|x64 {018E5F11-D3F8-5CCD-BB80-CE39FCB6D6B1}.Debug|x64.Build.0 = Debug|x64 {018E5F11-D3F8-5CCD-BB80-CE39FCB6D6B1}.Release|x64.ActiveCfg = Release|x64 {018E5F11-D3F8-5CCD-BB80-CE39FCB6D6B1}.Release|x64.Build.0 = Release|x64 {CC659BFE-6389-5177-BDBE-B90BD7DF37B4}.Debug|x64.ActiveCfg = Debug|x64 {CC659BFE-6389-5177-BDBE-B90BD7DF37B4}.Debug|x64.Build.0 = Debug|x64 {CC659BFE-6389-5177-BDBE-B90BD7DF37B4}.Release|x64.ActiveCfg = Release|x64 {CC659BFE-6389-5177-BDBE-B90BD7DF37B4}.Release|x64.Build.0 = Release|x64 {909DDC42-823D-5AD6-97FA-851530837BFC}.Debug|x64.ActiveCfg = Debug|x64 {909DDC42-823D-5AD6-97FA-851530837BFC}.Debug|x64.Build.0 = Debug|x64 {909DDC42-823D-5AD6-97FA-851530837BFC}.Release|x64.ActiveCfg = Release|x64 {909DDC42-823D-5AD6-97FA-851530837BFC}.Release|x64.Build.0 = Release|x64 {86E0B232-5D5F-5094-9AB9-933599772625}.Debug|x64.ActiveCfg = Debug|x64 {86E0B232-5D5F-5094-9AB9-933599772625}.Debug|x64.Build.0 = Debug|x64 {86E0B232-5D5F-5094-9AB9-933599772625}.Release|x64.ActiveCfg = Release|x64 {86E0B232-5D5F-5094-9AB9-933599772625}.Release|x64.Build.0 = Release|x64 {16DAFA3B-3B92-55EE-A8E6-EC79FAFC0C4E}.Debug|x64.ActiveCfg = Debug|x64 {16DAFA3B-3B92-55EE-A8E6-EC79FAFC0C4E}.Debug|x64.Build.0 = Debug|x64 {16DAFA3B-3B92-55EE-A8E6-EC79FAFC0C4E}.Release|x64.ActiveCfg = Release|x64 {16DAFA3B-3B92-55EE-A8E6-EC79FAFC0C4E}.Release|x64.Build.0 = Release|x64 {FD3716DB-7D45-533E-BD42-1A9D2CB596A2}.Debug|x64.ActiveCfg = Debug|x64 {FD3716DB-7D45-533E-BD42-1A9D2CB596A2}.Debug|x64.Build.0 = Debug|x64 {FD3716DB-7D45-533E-BD42-1A9D2CB596A2}.Release|x64.ActiveCfg = Release|x64 {FD3716DB-7D45-533E-BD42-1A9D2CB596A2}.Release|x64.Build.0 = Release|x64 {0A03AD93-69A4-5741-99B1-D4230CDD90CC}.Debug|x64.ActiveCfg = Debug|x64 {0A03AD93-69A4-5741-99B1-D4230CDD90CC}.Debug|x64.Build.0 = Debug|x64 {0A03AD93-69A4-5741-99B1-D4230CDD90CC}.Release|x64.ActiveCfg = Release|x64 {0A03AD93-69A4-5741-99B1-D4230CDD90CC}.Release|x64.Build.0 = Release|x64 {365E5370-8E8C-555C-A7DB-80541B4590E7}.Debug|x64.ActiveCfg = Debug|x64 {365E5370-8E8C-555C-A7DB-80541B4590E7}.Debug|x64.Build.0 = Debug|x64 {365E5370-8E8C-555C-A7DB-80541B4590E7}.Release|x64.ActiveCfg = Release|x64 {365E5370-8E8C-555C-A7DB-80541B4590E7}.Release|x64.Build.0 = Release|x64 {C0406F25-3F72-5CD4-ADBE-76E6F28B499D}.Debug|x64.ActiveCfg = Debug|x64 {C0406F25-3F72-5CD4-ADBE-76E6F28B499D}.Debug|x64.Build.0 = Debug|x64 {C0406F25-3F72-5CD4-ADBE-76E6F28B499D}.Release|x64.ActiveCfg = Release|x64 {C0406F25-3F72-5CD4-ADBE-76E6F28B499D}.Release|x64.Build.0 = Release|x64 {E53E4EF0-816F-5B91-B084-5C10E1173814}.Debug|x64.ActiveCfg = Debug|x64 {E53E4EF0-816F-5B91-B084-5C10E1173814}.Debug|x64.Build.0 = Debug|x64 {E53E4EF0-816F-5B91-B084-5C10E1173814}.Release|x64.ActiveCfg = Release|x64 {E53E4EF0-816F-5B91-B084-5C10E1173814}.Release|x64.Build.0 = Release|x64 {DE19B7FF-C8A1-5944-8482-4F8059F0901F}.Debug|x64.ActiveCfg = Debug|x64 {DE19B7FF-C8A1-5944-8482-4F8059F0901F}.Debug|x64.Build.0 = Debug|x64 {DE19B7FF-C8A1-5944-8482-4F8059F0901F}.Release|x64.ActiveCfg = Release|x64 {DE19B7FF-C8A1-5944-8482-4F8059F0901F}.Release|x64.Build.0 = Release|x64 {7AFF80FE-F36B-5F8F-BB52-3568D7E03AAF}.Debug|x64.ActiveCfg = Debug|x64 {7AFF80FE-F36B-5F8F-BB52-3568D7E03AAF}.Debug|x64.Build.0 = Debug|x64 {7AFF80FE-F36B-5F8F-BB52-3568D7E03AAF}.Release|x64.ActiveCfg = Release|x64 {7AFF80FE-F36B-5F8F-BB52-3568D7E03AAF}.Release|x64.Build.0 = Release|x64 {C59EBA80-FF8B-5D56-BE89-CDEA0744516A}.Debug|x64.ActiveCfg = Debug|x64 {C59EBA80-FF8B-5D56-BE89-CDEA0744516A}.Debug|x64.Build.0 = Debug|x64 {C59EBA80-FF8B-5D56-BE89-CDEA0744516A}.Release|x64.ActiveCfg = Release|x64 {C59EBA80-FF8B-5D56-BE89-CDEA0744516A}.Release|x64.Build.0 = Release|x64 {5D6870A5-F52B-544D-8502-BA5D90A59262}.Debug|x64.ActiveCfg = Debug|x64 {5D6870A5-F52B-544D-8502-BA5D90A59262}.Debug|x64.Build.0 = Debug|x64 {5D6870A5-F52B-544D-8502-BA5D90A59262}.Release|x64.ActiveCfg = Release|x64 {5D6870A5-F52B-544D-8502-BA5D90A59262}.Release|x64.Build.0 = Release|x64 {9E60B7F5-27E4-54E1-B1E4-8D48BCCA3112}.Debug|x64.ActiveCfg = Debug|x64 {9E60B7F5-27E4-54E1-B1E4-8D48BCCA3112}.Debug|x64.Build.0 = Debug|x64 {9E60B7F5-27E4-54E1-B1E4-8D48BCCA3112}.Release|x64.ActiveCfg = Release|x64 {9E60B7F5-27E4-54E1-B1E4-8D48BCCA3112}.Release|x64.Build.0 = Release|x64 {AD9BBB2D-EBDF-578A-8E93-690633102134}.Debug|x64.ActiveCfg = Debug|x64 {AD9BBB2D-EBDF-578A-8E93-690633102134}.Debug|x64.Build.0 = Debug|x64 {AD9BBB2D-EBDF-578A-8E93-690633102134}.Release|x64.ActiveCfg = Release|x64 {AD9BBB2D-EBDF-578A-8E93-690633102134}.Release|x64.Build.0 = Release|x64 {BFD32EF9-C341-55A7-877C-ACA2E12D758D}.Debug|x64.ActiveCfg = Debug|x64 {BFD32EF9-C341-55A7-877C-ACA2E12D758D}.Debug|x64.Build.0 = Debug|x64 {BFD32EF9-C341-55A7-877C-ACA2E12D758D}.Release|x64.ActiveCfg = Release|x64 {BFD32EF9-C341-55A7-877C-ACA2E12D758D}.Release|x64.Build.0 = Release|x64 {31312F99-64B9-55A3-98CD-9C6716F94F4D}.Debug|x64.ActiveCfg = Debug|x64 {31312F99-64B9-55A3-98CD-9C6716F94F4D}.Debug|x64.Build.0 = Debug|x64 {31312F99-64B9-55A3-98CD-9C6716F94F4D}.Release|x64.ActiveCfg = Release|x64 {31312F99-64B9-55A3-98CD-9C6716F94F4D}.Release|x64.Build.0 = Release|x64 {7845BFF5-8676-5038-9B8F-56125A7CD668}.Debug|x64.ActiveCfg = Debug|x64 {7845BFF5-8676-5038-9B8F-56125A7CD668}.Debug|x64.Build.0 = Debug|x64 {7845BFF5-8676-5038-9B8F-56125A7CD668}.Release|x64.ActiveCfg = Release|x64 {7845BFF5-8676-5038-9B8F-56125A7CD668}.Release|x64.Build.0 = Release|x64 {C265E5A2-2BC5-5369-9224-F0686847A25A}.Debug|x64.ActiveCfg = Debug|x64 {C265E5A2-2BC5-5369-9224-F0686847A25A}.Debug|x64.Build.0 = Debug|x64 {C265E5A2-2BC5-5369-9224-F0686847A25A}.Release|x64.ActiveCfg = Release|x64 {C265E5A2-2BC5-5369-9224-F0686847A25A}.Release|x64.Build.0 = Release|x64 {D3A0178F-3F8C-5383-BDA2-A1C435F8A624}.Debug|x64.ActiveCfg = Debug|x64 {D3A0178F-3F8C-5383-BDA2-A1C435F8A624}.Debug|x64.Build.0 = Debug|x64 {D3A0178F-3F8C-5383-BDA2-A1C435F8A624}.Release|x64.ActiveCfg = Release|x64 {D3A0178F-3F8C-5383-BDA2-A1C435F8A624}.Release|x64.Build.0 = Release|x64 {41C15B4A-390C-5E7B-9281-DEDBC41FEABC}.Debug|x64.ActiveCfg = Debug|x64 {41C15B4A-390C-5E7B-9281-DEDBC41FEABC}.Debug|x64.Build.0 = Debug|x64 {41C15B4A-390C-5E7B-9281-DEDBC41FEABC}.Release|x64.ActiveCfg = Release|x64 {41C15B4A-390C-5E7B-9281-DEDBC41FEABC}.Release|x64.Build.0 = Release|x64 {65D8E850-75E9-5A2D-B6FC-66D749EBFC03}.Debug|x64.ActiveCfg = Debug|x64 {65D8E850-75E9-5A2D-B6FC-66D749EBFC03}.Debug|x64.Build.0 = Debug|x64 {65D8E850-75E9-5A2D-B6FC-66D749EBFC03}.Release|x64.ActiveCfg = Release|x64 {65D8E850-75E9-5A2D-B6FC-66D749EBFC03}.Release|x64.Build.0 = Release|x64 {412C93B3-32D8-590D-84AD-A74BDE903E3D}.Debug|x64.ActiveCfg = Debug|x64 {412C93B3-32D8-590D-84AD-A74BDE903E3D}.Debug|x64.Build.0 = Debug|x64 {412C93B3-32D8-590D-84AD-A74BDE903E3D}.Release|x64.ActiveCfg = Release|x64 {412C93B3-32D8-590D-84AD-A74BDE903E3D}.Release|x64.Build.0 = Release|x64 {735CF9E3-42AE-52A6-B8E2-B14204F835F6}.Debug|x64.ActiveCfg = Debug|x64 {735CF9E3-42AE-52A6-B8E2-B14204F835F6}.Debug|x64.Build.0 = Debug|x64 {735CF9E3-42AE-52A6-B8E2-B14204F835F6}.Release|x64.ActiveCfg = Release|x64 {735CF9E3-42AE-52A6-B8E2-B14204F835F6}.Release|x64.Build.0 = Release|x64 {3602F0B4-8828-5CAC-B704-FD8DEA79B138}.Debug|x64.ActiveCfg = Debug|x64 {3602F0B4-8828-5CAC-B704-FD8DEA79B138}.Debug|x64.Build.0 = Debug|x64 {3602F0B4-8828-5CAC-B704-FD8DEA79B138}.Release|x64.ActiveCfg = Release|x64 {3602F0B4-8828-5CAC-B704-FD8DEA79B138}.Release|x64.Build.0 = Release|x64 {53B1D2B1-620F-561A-8DE4-85F55E4D564B}.Debug|x64.ActiveCfg = Debug|x64 {53B1D2B1-620F-561A-8DE4-85F55E4D564B}.Debug|x64.Build.0 = Debug|x64 {53B1D2B1-620F-561A-8DE4-85F55E4D564B}.Release|x64.ActiveCfg = Release|x64 {53B1D2B1-620F-561A-8DE4-85F55E4D564B}.Release|x64.Build.0 = Release|x64 {32C814A1-0D7D-56E3-B63D-D4A096D0E7E7}.Debug|x64.ActiveCfg = Debug|x64 {32C814A1-0D7D-56E3-B63D-D4A096D0E7E7}.Debug|x64.Build.0 = Debug|x64 {32C814A1-0D7D-56E3-B63D-D4A096D0E7E7}.Release|x64.ActiveCfg = Release|x64 {32C814A1-0D7D-56E3-B63D-D4A096D0E7E7}.Release|x64.Build.0 = Release|x64 {F72023A7-259D-5CCE-8EBB-C796CF0CFD0F}.Debug|x64.ActiveCfg = Debug|x64 {F72023A7-259D-5CCE-8EBB-C796CF0CFD0F}.Debug|x64.Build.0 = Debug|x64 {F72023A7-259D-5CCE-8EBB-C796CF0CFD0F}.Release|x64.ActiveCfg = Release|x64 {F72023A7-259D-5CCE-8EBB-C796CF0CFD0F}.Release|x64.Build.0 = Release|x64 {28C337E6-DC50-590C-8506-833192B80273}.Debug|x64.ActiveCfg = Debug|x64 {28C337E6-DC50-590C-8506-833192B80273}.Debug|x64.Build.0 = Debug|x64 {28C337E6-DC50-590C-8506-833192B80273}.Release|x64.ActiveCfg = Release|x64 {28C337E6-DC50-590C-8506-833192B80273}.Release|x64.Build.0 = Release|x64 {FFCEE0E9-435F-593F-B2B8-FDDC0B95A47E}.Debug|x64.ActiveCfg = Debug|x64 {FFCEE0E9-435F-593F-B2B8-FDDC0B95A47E}.Debug|x64.Build.0 = Debug|x64 {FFCEE0E9-435F-593F-B2B8-FDDC0B95A47E}.Release|x64.ActiveCfg = Release|x64 {FFCEE0E9-435F-593F-B2B8-FDDC0B95A47E}.Release|x64.Build.0 = Release|x64 {76AF7D4B-B9A1-5E76-83CB-9F9EFDE10E3A}.Debug|x64.ActiveCfg = Debug|x64 {76AF7D4B-B9A1-5E76-83CB-9F9EFDE10E3A}.Debug|x64.Build.0 = Debug|x64 {76AF7D4B-B9A1-5E76-83CB-9F9EFDE10E3A}.Release|x64.ActiveCfg = Release|x64 {76AF7D4B-B9A1-5E76-83CB-9F9EFDE10E3A}.Release|x64.Build.0 = Release|x64 {1BE11466-4CE8-52BA-A317-FDCDAE8FC884}.Debug|x64.ActiveCfg = Debug|x64 {1BE11466-4CE8-52BA-A317-FDCDAE8FC884}.Debug|x64.Build.0 = Debug|x64 {1BE11466-4CE8-52BA-A317-FDCDAE8FC884}.Release|x64.ActiveCfg = Release|x64 {1BE11466-4CE8-52BA-A317-FDCDAE8FC884}.Release|x64.Build.0 = Release|x64 {D6B04B3F-8326-55E5-B4E6-FB11D6784BCD}.Debug|x64.ActiveCfg = Debug|x64 {D6B04B3F-8326-55E5-B4E6-FB11D6784BCD}.Debug|x64.Build.0 = Debug|x64 {D6B04B3F-8326-55E5-B4E6-FB11D6784BCD}.Release|x64.ActiveCfg = Release|x64 {D6B04B3F-8326-55E5-B4E6-FB11D6784BCD}.Release|x64.Build.0 = Release|x64 {2682F384-189A-5897-B38E-4C0E5749404D}.Debug|x64.ActiveCfg = Debug|x64 {2682F384-189A-5897-B38E-4C0E5749404D}.Debug|x64.Build.0 = Debug|x64 {2682F384-189A-5897-B38E-4C0E5749404D}.Release|x64.ActiveCfg = Release|x64 {2682F384-189A-5897-B38E-4C0E5749404D}.Release|x64.Build.0 = Release|x64 {FF09D392-E501-5DAB-B5A9-B1B97E246D37}.Debug|x64.ActiveCfg = Debug|x64 {FF09D392-E501-5DAB-B5A9-B1B97E246D37}.Debug|x64.Build.0 = Debug|x64 {FF09D392-E501-5DAB-B5A9-B1B97E246D37}.Release|x64.ActiveCfg = Release|x64 {FF09D392-E501-5DAB-B5A9-B1B97E246D37}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal mysql++-3.2.5/vc2008/mysql++_ssqls6.vcproj000644 000765 000024 00000013573 13515046514 020611 0ustar00tangentstaff000000 000000 mysql++-3.2.5/vc2008/mysql++_test_string.vcproj000644 000765 000024 00000013616 13515046514 021721 0ustar00tangentstaff000000 000000 mysql++-3.2.5/vc2008/mysql++_test_cpool.vcproj000644 000765 000024 00000013600 13515046514 021520 0ustar00tangentstaff000000 000000 mysql++-3.2.5/vc2008/mysql++_tquery4.vcproj000644 000765 000024 00000013611 13515046514 020764 0ustar00tangentstaff000000 000000 mysql++-3.2.5/vc2008/mysql++_mysqlpp.vcproj000644 000765 000024 00000020012 13515046514 021045 0ustar00tangentstaff000000 000000 mysql++-3.2.5/vc2008/mysql++_tquery1.vcproj000644 000765 000024 00000013611 13515046514 020761 0ustar00tangentstaff000000 000000 mysql++-3.2.5/vc2008/mysql++_ssqls3.vcproj000644 000765 000024 00000013573 13515046514 020606 0ustar00tangentstaff000000 000000 mysql++-3.2.5/vc2008/mysql++_test_wnp.vcproj000644 000765 000024 00000013544 13515046514 021217 0ustar00tangentstaff000000 000000 mysql++-3.2.5/vc2008/mysql++_simple1.vcproj000644 000765 000024 00000013611 13515046514 020721 0ustar00tangentstaff000000 000000 mysql++-3.2.5/vc2008/mysql++_test_query_copy.vcproj000644 000765 000024 00000013706 13515046514 022612 0ustar00tangentstaff000000 000000 mysql++-3.2.5/vc2008/mysql++_ssqls1.vcproj000644 000765 000024 00000013573 13515046514 020604 0ustar00tangentstaff000000 000000 mysql++-3.2.5/vc2008/mysql++_test_insertpolicy.vcproj000644 000765 000024 00000013742 13515046514 023137 0ustar00tangentstaff000000 000000 mysql++-3.2.5/vc2008/mysql++_store_if.vcproj000644 000765 000024 00000013627 13515046514 021170 0ustar00tangentstaff000000 000000 mysql++-3.2.5/vc2008/mysql++_tquery3.vcproj000644 000765 000024 00000013611 13515046514 020763 0ustar00tangentstaff000000 000000 mysql++-3.2.5/vc2008/mysql++_test_qssqls.vcproj000644 000765 000024 00000013616 13515046514 021741 0ustar00tangentstaff000000 000000 mysql++-3.2.5/vc2008/mysql++_simple3.vcproj000644 000765 000024 00000013611 13515046514 020723 0ustar00tangentstaff000000 000000 mysql++-3.2.5/vc2008/mysql++_deadlock.vcproj000644 000765 000024 00000013627 13515046514 021124 0ustar00tangentstaff000000 000000 mysql++-3.2.5/vc2008/mysql++_test_array_index.vcproj000644 000765 000024 00000013724 13515046514 022720 0ustar00tangentstaff000000 000000 mysql++-3.2.5/vc2008/mysql++_test_uds.vcproj000644 000765 000024 00000013544 13515046514 021206 0ustar00tangentstaff000000 000000 mysql++-3.2.5/vc2008/mysql++_ssqls5.vcproj000644 000765 000024 00000013573 13515046514 020610 0ustar00tangentstaff000000 000000 mysql++-3.2.5/vc2008/mysql++_ssqls2parse.vcproj000644 000765 000024 00000012135 13515046514 021631 0ustar00tangentstaff000000 000000 mysql++-3.2.5/vc2008/mysql++_test_inttypes.vcproj000644 000765 000024 00000013652 13515046514 022272 0ustar00tangentstaff000000 000000 mysql++-3.2.5/vc2008/mysql++_ssqlsxlat.vcproj000644 000765 000024 00000013773 13515046514 021416 0ustar00tangentstaff000000 000000 mysql++-3.2.5/vc2008/mysql++_test_ssqls2.vcproj000644 000765 000024 00000014006 13515046514 021634 0ustar00tangentstaff000000 000000 mysql++-3.2.5/vc2008/mysql++_test_tcp.vcproj000644 000765 000024 00000013544 13515046514 021201 0ustar00tangentstaff000000 000000 mysql++-3.2.5/vc2008/mysql++_test_manip.vcproj000644 000765 000024 00000013600 13515046514 021510 0ustar00tangentstaff000000 000000 mysql++-3.2.5/vc2008/mysql++_transaction.vcproj000644 000765 000024 00000013701 13515046514 021674 0ustar00tangentstaff000000 000000 mysql++-3.2.5/vc2008/mysql++_dbinfo.vcproj000644 000765 000024 00000013573 13515046514 020617 0ustar00tangentstaff000000 000000 mysql++-3.2.5/vc2008/mysql++_for_each.vcproj000644 000765 000024 00000013627 13515046514 021124 0ustar00tangentstaff000000 000000 mysql++-3.2.5/doc/ssqls-pretty000755 000765 000024 00000002370 13515046514 017012 0ustar00tangentstaff000000 000000 #!/usr/bin/perl use FileHandle; use IPC::Open2; if ($ARGV[0] =~ /^--command\=(.+)/) { $command = $1; } else { $command = "g++ -E -I /usr/include/mysql"; } if (-e 'lib/mysql++.h') { $command .= " -I lib"; } else { $command .= " -I /usr/include/mysql++/"; } $/ = undef; $orgcode = ; ($macro) = $orgcode =~ /(sql_create_.+? *\(.+?\))/s; $out = << "---"; #include $macro --- $/ = "\n"; $temp_dir = -d '/tmp' ? '/tmp' : $ENV{TMP} || $ENV{TEMP}; #print $out; open OUT, ">$temp_dir/${$}.cc"; print OUT $out; close OUT; system "$command $temp_dir/${$}.cc > $temp_dir/${$}.ii"; open IN, "$temp_dir/${$}.ii"; while () { next if /^\#/; $code .= $_; } close IN; unlink "$temp_dir/${$}.cc","$temp_dir/${$}.ii"; $_ = $code; s/\s+/ /g; s/ *public: */public:\n/g; s/ *private: */public:\n/g; s/ *\; */\;\n/g; s/ *\{ */ \{\n/g; s/ *\} */ \}\n\n/g; s/ *\n */\n/g; s/\{\s+}/\{\}/g; s/\}\s+\;/\}\;\n/g; $code = ""; foreach (split /\n/) { if (/\}/ && !/\{\}/ ) { $indent -= 2; $ind = ' 'x$indent; } $code .= "$ind$_\n" unless /\:$/; $code .= "$_\n" if /\:$/; if (/\{/ && !/\{\}/ ) { $indent += 2; $ind = ' 'x$indent; } } $orgcode =~ s/(sql_create_.+? *\(.+?\))/\n$code\n/s; print $orgcode; mysql++-3.2.5/doc/README-devel-RPM.txt000644 000765 000024 00000000716 13515046514 017623 0ustar00tangentstaff000000 000000 mysql++-devel RPM installs the files you need when building your own MySQL++ based programs, as well as documentation and examples that can help you learn how to use the library. The MySQL++ header files are in /usr/include/mysql++, the library is in /usr/lib, and the example programs' source code is in /usr/share/doc/mysql++-devel-*/examples. For more information on the examples, see the README-examples.txt file in the directory containing the examples. mysql++-3.2.5/doc/pdf/000755 000765 000024 00000000000 13515046514 015141 5ustar00tangentstaff000000 000000 mysql++-3.2.5/doc/html/000755 000765 000024 00000000000 13515046514 015334 5ustar00tangentstaff000000 000000 mysql++-3.2.5/doc/userman/000755 000765 000024 00000000000 13515046540 016041 5ustar00tangentstaff000000 000000 mysql++-3.2.5/doc/README-manuals-RPM.txt000644 000765 000024 00000000234 13515046514 020157 0ustar00tangentstaff000000 000000 For more information about MySQL++, see its home page: http://tangentsoft.net/mysql++/ See the LICENSE file in this directory for the library's license. mysql++-3.2.5/doc/refman/000755 000765 000024 00000000000 13515046514 015640 5ustar00tangentstaff000000 000000 mysql++-3.2.5/doc/userman/html.xsl000644 000765 000024 00000006323 13515046514 017542 0ustar00tangentstaff000000 000000 http://dev.mysql.com/doc/mysql/en/ .html () ../refman/classmysqlpp_1_1 .html ../refman/structmysqlpp_1_1 .html mysql++-3.2.5/doc/userman/cgi_jpeg.txt000644 000765 000024 00000006132 13515046514 020354 0ustar00tangentstaff000000 000000 #include "cmdline.h" #include "images.h" #define CRLF "\r\n" #define CRLF2 "\r\n\r\n" int main(int argc, char* argv[]) { // Get database access parameters from command line if present, else // use hard-coded values for true CGI case. mysqlpp::examples::CommandLine cmdline(argc, argv, "root", "nunyabinness"); if (!cmdline) { return 1; } // Parse CGI query string environment variable to get image ID unsigned int img_id = 0; char* cgi_query = getenv("QUERY_STRING"); if (cgi_query) { if ((strlen(cgi_query) < 4) || memcmp(cgi_query, "id=", 3)) { std::cout << "Content-type: text/plain" << std::endl << std::endl; std::cout << "ERROR: Bad query string" << std::endl; return 1; } else { img_id = atoi(cgi_query + 3); } } else { std::cerr << "Put this program into a web server's cgi-bin " "directory, then" << std::endl; std::cerr << "invoke it with a URL like this:" << std::endl; std::cerr << std::endl; std::cerr << " http://server.name.com/cgi-bin/cgi_jpeg?id=2" << std::endl; std::cerr << std::endl; std::cerr << "This will retrieve the image with ID 2." << std::endl; std::cerr << std::endl; std::cerr << "You will probably have to change some of the #defines " "at the top of" << std::endl; std::cerr << "examples/cgi_jpeg.cpp to allow the lookup to work." << std::endl; return 1; } // Retrieve image from DB by ID try { mysqlpp::Connection con(mysqlpp::examples::db_name, cmdline.server(), cmdline.user(), cmdline.pass()); mysqlpp::Query query = con.query(); query << "SELECT * FROM images WHERE id = " << img_id; mysqlpp::StoreQueryResult res = query.store(); if (res && res.num_rows()) { images img = res[0]; if (img.data.is_null) { std::cout << "Content-type: text/plain" << CRLF2; std::cout << "No image content!" << CRLF; } else { std::cout << "X-Image-Id: " << img_id << CRLF; // for debugging std::cout << "Content-type: image/jpeg" << CRLF; std::cout << "Content-length: " << img.data.data.length() << CRLF2; std::cout << img.data; } } else { std::cout << "Content-type: text/plain" << CRLF2; std::cout << "ERROR: No image with ID " << img_id << CRLF; } } catch (const mysqlpp::BadQuery& er) { // Handle any query errors std::cout << "Content-type: text/plain" << CRLF2; std::cout << "QUERY ERROR: " << er.what() << CRLF; return 1; } catch (const mysqlpp::Exception& er) { // Catch-all for any other MySQL++ exceptions std::cout << "Content-type: text/plain" << CRLF2; std::cout << "GENERAL ERROR: " << er.what() << CRLF; return 1; } return 0; } mysql++-3.2.5/doc/userman/stock.txt000644 000765 000024 00000001273 13515046514 017731 0ustar00tangentstaff000000 000000 #include #include // The following is calling a very complex macro which will create // "struct stock", which has the member variables: // // sql_char item; // ... // sql_mediumtext_null description; // // plus methods to help populate the class from a MySQL row. See the // SSQLS sections in the user manual for further details. sql_create_6(stock, 1, 6, // The meaning of these values is covered in the user manual mysqlpp::sql_char, item, mysqlpp::sql_bigint, num, mysqlpp::sql_double, weight, mysqlpp::sql_double_null, price, mysqlpp::sql_date, sDate, // SSQLS isn't case-sensitive! mysqlpp::sql_mediumtext_null, description) mysql++-3.2.5/doc/userman/licenses.dbx000644 000765 000024 00000104764 13515046514 020362 0ustar00tangentstaff000000 000000 Licensing The primary copyright holders on the MySQL++ library and its documentation are Kevin Atkinson (1998), MySQL AB (1999 through 2001) and Educational Technology Resources, Inc. (2004 through the date of this writing). There are other contributors, who also retain copyrights on their additions; see the ChangeLog.md file in the MySQL++ distribution tarball for details. The MySQL++ library and its Reference Manual are released under the GNU Lesser General Public License (LGPL), reproduced below. The MySQL++ User Manual — excepting some example code from the library reproduced within it — is offered under a license closely based on the Linux Documentation Project License (LDPL) v2.0, included below. (The MySQL++ documentation isn’t actually part of the Linux Documentation Project, so the main changes are to LDP-related language. Also, generic language such as “author’s (or authors’)” has been replaced with specific language, because the license applies to only this one document.) These licenses basically state that you are free to use, distribute and modify these works, whether for personal or commercial purposes, as long as you grant the same rights to those you distribute the works to, whether you changed them or not. See the licenses below for full details. GNU Lesser General Public License Version 2.1, February 1999 Copyright (C) 1991, 1999 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. [This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.] Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below. When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things. To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it. For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights. We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library. To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author’s reputation will not be affected by problems that might be introduced by others. Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license. Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs. When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library. We call this license the “Lesser” General Public License because it does Less to protect the user’s freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances. For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License. In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system. Although the Lesser General Public License is Less protective of the users’ freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library. The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a “work based on the library” and a “work that uses the library”. The former contains code derived from the library, whereas the latter must be combined with the library in order to run. GNU LESSER GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called “this License”). Each licensee is addressed as “you”. A “library” means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables. The “Library”, below, refers to any such software library or work which has been distributed under these terms. A “work based on the Library” means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term “modification”.) “Source code” for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library. Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does. 1. You may copy and distribute verbatim copies of the Library’s complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:

a) The modified work must itself be a software library. b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful. (For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.)
These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library. In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices. Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy. This option is useful when you wish to copy part of the code of the Library into a program that is not a library. 4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange. If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code. 5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a “work that uses the Library”. Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License. However, linking a “work that uses the Library” with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a “work that uses the library”. The executable is therefore covered by this License. Section 6 states terms for distribution of such executables. When a “work that uses the Library” uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law. If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.) Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself. 6. As an exception to the Sections above, you may also combine or link a “work that uses the Library” with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer’s own use and reverse engineering for debugging such modifications. You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things:
a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable “work that uses the Library”, as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.) b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user’s computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with. c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution. d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place. e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy.
For an executable, the required form of the “work that uses the Library” must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute. 7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things:
a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above. b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work.
8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it. 10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients’ exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License. 11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 13. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and “any later version”, you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation. 14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Libraries If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License). To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the “copyright” line and a pointer to where the full notice is found.
<one line to give the library’s name and a brief idea of what it does.> Copyright © <year> <name of author> This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Also add information on how to contact you by electronic and paper mail. You should also get your employer (if you work as a programmer) or your school, if any, to sign a “copyright disclaimer” for the library, if necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker. <signature of Ty Coon>, 1 April 1990 Ty Coon, President of Vice
That’s all there is to it!
MySQL++ User Manual License I. COPYRIGHT The copyright to the MySQL++ User Manual is owned by its authors. II. LICENSE The MySQL++ User Manual may be reproduced and distributed in whole or in part, in any medium physical or electronic, provided that this license notice is displayed in the reproduction. Commercial redistribution is permitted and encouraged. Thirty days advance notice via email to the authors of redistribution is appreciated, to give the authors time to provide updated documents. A. REQUIREMENTS OF MODIFIED WORKS All modified documents, including translations, anthologies, and partial documents, must meet the following requirements: The modified version must be labeled as such. The person making the modifications must be identified. Acknowledgement of the original author must be retained. The location of the original unmodified document be identified. The original authors’ names may not be used to assert or imply endorsement of the resulting document without the original authors’ permission. In addition it is requested that: The modifications (including deletions) be noted. The authors be notified by email of the modification in advance of redistribution, if an email address is provided in the document. Mere aggregation of the MySQL++ User Manual with other documents or programs on the same media shall not cause this license to apply to those other works. All translations, derivative documents, or modified documents that incorporate the MySQL++ User Manual may not have more restrictive license terms than these, except that you may require distributors to make the resulting document available in source format. mysql++-3.2.5/doc/userman/ssqls6.txt000644 000765 000024 00000006632 13515046514 020045 0ustar00tangentstaff000000 000000 #include "cmdline.h" #include "printdata.h" #include "stock.h" #include using namespace std; // Breaks a given text line of tab-separated fields up into a list of // strings. static size_t tokenize_line(const string& line, vector& strings) { string field; strings.clear(); istringstream iss(line); while (getline(iss, field, '\t')) { strings.push_back(mysqlpp::String(field)); } return strings.size(); } // Reads a tab-delimited text file, returning the data found therein // as a vector of stock SSQLS objects. static bool read_stock_items(const char* filename, vector& stock_vector) { ifstream input(filename); if (!input) { cerr << "Error opening input file '" << filename << "'" << endl; return false; } string line; vector strings; while (getline(input, line)) { if (tokenize_line(line, strings) == 6) { stock_vector.push_back(stock(string(strings[0]), strings[1], strings[2], strings[3], strings[4], strings[5])); } else { cerr << "Error parsing input line (doesn't have 6 fields) " << "in file '" << filename << "'" << endl; cerr << "invalid line: '" << line << "'" << endl; } } return true; } int main(int argc, char *argv[]) { // Get database access parameters from command line mysqlpp::examples::CommandLine cmdline(argc, argv); if (!cmdline) { return 1; } // Read in a tab-delimited file of stock data vector stock_vector; if (!read_stock_items("examples/stock.txt", stock_vector)) { return 1; } try { // Establish the connection to the database server. mysqlpp::Connection con(mysqlpp::examples::db_name, cmdline.server(), cmdline.user(), cmdline.pass()); // Clear all existing rows from stock table, as we're about to // insert a bunch of new ones, and we want a clean slate. mysqlpp::Query query = con.query(); query.exec("DELETE FROM stock"); // Insert data read from the CSV file, allowing up to 1000 // characters per packet. We're using a small size in this // example just to force multiple inserts. In a real program, // you'd want to use larger packets, for greater efficiency. mysqlpp::Query::MaxPacketInsertPolicy<> insert_policy(1000); query.insertfrom(stock_vector.begin(), stock_vector.end(), insert_policy); // Retrieve and print out the new table contents. print_stock_table(query); } catch (const mysqlpp::BadQuery& er) { // Handle any query errors cerr << "Query error: " << er.what() << endl; return -1; } catch (const mysqlpp::BadConversion& er) { // Handle bad conversions cerr << "Conversion error: " << er.what() << endl << "\tretrieved data size: " << er.retrieved << ", actual size: " << er.actual_size << endl; return -1; } catch (const mysqlpp::BadInsertPolicy& er) { // Handle bad conversions cerr << "InsertPolicy error: " << er.what() << endl; return -1; } catch (const mysqlpp::Exception& er) { // Catch-all for any other MySQL++ exceptions cerr << "Error: " << er.what() << endl; return -1; } return 0; } mysql++-3.2.5/doc/userman/fo.xsl000644 000765 000024 00000005310 13515046514 017175 0ustar00tangentstaff000000 000000 page false left 85% mysql++-3.2.5/doc/userman/ssqls4.txt000644 000765 000024 00000004520 13515046514 020035 0ustar00tangentstaff000000 000000 #include "cmdline.h" #include "printdata.h" #include "stock.h" #include using namespace std; int main(int argc, char *argv[]) { // Get database access parameters from command line mysqlpp::examples::CommandLine cmdline(argc, argv); if (!cmdline) { return 1; } try { // Establish the connection to the database server. mysqlpp::Connection con(mysqlpp::examples::db_name, cmdline.server(), cmdline.user(), cmdline.pass()); // Retrieve all rows from the stock table and put them in an // STL set. Notice that this works just as well as storing them // in a vector, which we did in ssqls1.cpp. It works because // SSQLS objects are less-than comparable. mysqlpp::Query query = con.query("select * from stock"); set res; query.storein(res); // Display the result set. Since it is an STL set and we set up // the SSQLS to compare based on the item column, the rows will // be sorted by item. print_stock_header(res.size()); set::iterator it; cout.precision(3); for (it = res.begin(); it != res.end(); ++it) { print_stock_row(it->item.c_str(), it->num, it->weight, it->price, it->sDate); } // Use set's find method to look up a stock item by item name. // This also uses the SSQLS comparison setup. it = res.find(stock("Hotdog Buns")); if (it != res.end()) { cout << endl << "Currently " << it->num << " hotdog buns in stock." << endl; } else { cout << endl << "Sorry, no hotdog buns in stock." << endl; } } catch (const mysqlpp::BadQuery& er) { // Handle any query errors cerr << "Query error: " << er.what() << endl; return -1; } catch (const mysqlpp::BadConversion& er) { // Handle bad conversions cerr << "Conversion error: " << er.what() << endl << "\tretrieved data size: " << er.retrieved << ", actual size: " << er.actual_size << endl; return -1; } catch (const mysqlpp::Exception& er) { // Catch-all for any other MySQL++ exceptions cerr << "Error: " << er.what() << endl; return -1; } return 0; } mysql++-3.2.5/doc/userman/multiquery.txt000644 000765 000024 00000012011 13515046514 021016 0ustar00tangentstaff000000 000000 #include "cmdline.h" #include "printdata.h" #include #include #include #include #include using namespace std; using namespace mysqlpp; typedef vector IntVectorType; static void print_header(IntVectorType& widths, StoreQueryResult& res) { cout << " |" << setfill(' '); for (size_t i = 0; i < res.field_names()->size(); i++) { cout << " " << setw(widths.at(i)) << res.field_name(int(i)) << " |"; } cout << endl; } static void print_row(IntVectorType& widths, Row& row) { cout << " |" << setfill(' '); for (size_t i = 0; i < row.size(); ++i) { cout << " " << setw(widths.at(i)) << row[int(i)] << " |"; } cout << endl; } static void print_row_separator(IntVectorType& widths) { cout << " +" << setfill('-'); for (size_t i = 0; i < widths.size(); i++) { cout << "-" << setw(widths.at(i)) << '-' << "-+"; } cout << endl; } static void print_result(StoreQueryResult& res, int index) { // Show how many rows are in result, if any StoreQueryResult::size_type num_results = res.size(); if (res && (num_results > 0)) { cout << "Result set " << index << " has " << num_results << " row" << (num_results == 1 ? "" : "s") << ':' << endl; } else { cout << "Result set " << index << " is empty." << endl; return; } // Figure out the widths of the result set's columns IntVectorType widths; size_t size = res.num_fields(); for (size_t i = 0; i < size; i++) { widths.push_back(max( res.field(i).max_length(), res.field_name(i).size())); } // Print result set header print_row_separator(widths); print_header(widths, res); print_row_separator(widths); // Display the result set contents for (StoreQueryResult::size_type i = 0; i < num_results; ++i) { print_row(widths, res[i]); } // Print result set footer print_row_separator(widths); } static void print_multiple_results(Query& query) { // Execute query and print all result sets StoreQueryResult res = query.store(); print_result(res, 0); for (int i = 1; query.more_results(); ++i) { res = query.store_next(); print_result(res, i); } } int main(int argc, char *argv[]) { // Get connection parameters from command line mysqlpp::examples::CommandLine cmdline(argc, argv); if (!cmdline) { return 1; } try { // Enable multi-queries. Notice that you almost always set // MySQL++ connection options before establishing the server // connection, and options are always set using this one // interface. If you're familiar with the underlying C API, // you know that there is poor consistency on these matters; // MySQL++ abstracts these differences away. Connection con; con.set_option(new MultiStatementsOption(true)); // Connect to the database if (!con.connect(mysqlpp::examples::db_name, cmdline.server(), cmdline.user(), cmdline.pass())) { return 1; } // Set up query with multiple queries. Query query = con.query(); query << "DROP TABLE IF EXISTS test_table; " << "CREATE TABLE test_table(id INT); " << "INSERT INTO test_table VALUES(10); " << "UPDATE test_table SET id=20 WHERE id=10; " << "SELECT * FROM test_table; " << "DROP TABLE test_table"; cout << "Multi-query: " << endl << query << endl; // Execute statement and display all result sets. print_multiple_results(query); #if MYSQL_VERSION_ID >= 50000 // If it's MySQL v5.0 or higher, also test stored procedures, which // return their results the same way multi-queries do. query << "DROP PROCEDURE IF EXISTS get_stock; " << "CREATE PROCEDURE get_stock" << "( i_item varchar(20) ) " << "BEGIN " << "SET i_item = concat('%', i_item, '%'); " << "SELECT * FROM stock WHERE lower(item) like lower(i_item); " << "END;"; cout << "Stored procedure query: " << endl << query << endl; // Create the stored procedure. print_multiple_results(query); // Call the stored procedure and display its results. query << "CALL get_stock('relish')"; cout << "Query: " << query << endl; print_multiple_results(query); #endif return 0; } catch (const BadOption& err) { cerr << err.what() << endl; cerr << "This example requires MySQL 4.1.1 or later." << endl; return 1; } catch (const ConnectionFailed& err) { cerr << "Failed to connect to database server: " << err.what() << endl; return 1; } catch (const Exception& er) { // Catch-all for any other MySQL++ exceptions cerr << "Error: " << er.what() << endl; return 1; } } mysql++-3.2.5/doc/userman/ssqls5.txt000644 000765 000024 00000003253 13515046514 020040 0ustar00tangentstaff000000 000000 #include "cmdline.h" #include "printdata.h" #include "stock.h" #include #include using namespace std; int main(int argc, char *argv[]) { // Get database access parameters from command line mysqlpp::examples::CommandLine cmdline(argc, argv); if (!cmdline) { return 1; } try { // Establish the connection to the database server. mysqlpp::Connection con(mysqlpp::examples::db_name, cmdline.server(), cmdline.user(), cmdline.pass()); // Get all the rows in the stock table. mysqlpp::Query query = con.query("select * from stock"); vector res; query.storein(res); if (res.size() > 0) { // Build a select query using the data from the first row // returned by our previous query. query << "select * from stock where " << res[0].equal_list(" and ", stock_weight, stock_price); // Display the finished query. cout << "Custom query:\n" << query << endl; } } catch (const mysqlpp::BadQuery& er) { // Handle any query errors cerr << "Query error: " << er.what() << endl; return -1; } catch (const mysqlpp::BadConversion& er) { // Handle bad conversions cerr << "Conversion error: " << er.what() << endl << "\tretrieved data size: " << er.retrieved << ", actual size: " << er.actual_size << endl; return -1; } catch (const mysqlpp::Exception& er) { // Catch-all for any other MySQL++ exceptions cerr << "Error: " << er.what() << endl; return -1; } return 0; } mysql++-3.2.5/doc/userman/ssqls1.txt000644 000765 000024 00000003675 13515046514 020044 0ustar00tangentstaff000000 000000 #include "cmdline.h" #include "printdata.h" #include "stock.h" #include #include using namespace std; int main(int argc, char *argv[]) { // Get database access parameters from command line mysqlpp::examples::CommandLine cmdline(argc, argv); if (!cmdline) { return 1; } try { // Establish the connection to the database server. mysqlpp::Connection con(mysqlpp::examples::db_name, cmdline.server(), cmdline.user(), cmdline.pass()); // Retrieve a subset of the stock table's columns, and store // the data in a vector of 'stock' SSQLS structures. See the // user manual for the consequences arising from this quiet // ability to store a subset of the table in the stock SSQLS. mysqlpp::Query query = con.query("select item,description from stock"); vector res; query.storein(res); // Display the items cout << "We have:" << endl; vector::iterator it; for (it = res.begin(); it != res.end(); ++it) { cout << '\t' << it->item; if (it->description != mysqlpp::null) { cout << " (" << it->description << ")"; } cout << endl; } } catch (const mysqlpp::BadQuery& er) { // Handle any query errors cerr << "Query error: " << er.what() << endl; return -1; } catch (const mysqlpp::BadConversion& er) { // Handle bad conversions; e.g. type mismatch populating 'stock' cerr << "Conversion error: " << er.what() << endl << "\tretrieved data size: " << er.retrieved << ", actual size: " << er.actual_size << endl; return -1; } catch (const mysqlpp::Exception& er) { // Catch-all for any other MySQL++ exceptions cerr << "Error: " << er.what() << endl; return -1; } return 0; } mysql++-3.2.5/doc/userman/Makefile.hello.posix000644 000765 000024 00000000311 13515046514 021740 0ustar00tangentstaff000000 000000 CXXFLAGS := -I/usr/include/mysql -I/usr/local/include/mysql++ LDFLAGS := -L/usr/local/lib LDLIBS := -lmysqlpp -lmysqlclient EXECUTABLE := hello all: $(EXECUTABLE) clean: rm -f $(EXECUTABLE) *.o mysql++-3.2.5/doc/userman/mktxt000755 000765 000024 00000001151 13515046514 017135 0ustar00tangentstaff000000 000000 #!/bin/sh # Script to convert C++ source files to a text format, with 4 spaces for # every tab, and with the leading block comment removed. Used to # reformat the example programs so they can be xincluded directly into # the DocBook during XSLT processing. TXTFILE=$1 SRCFILE=`echo ../../examples/$TXTFILE | sed -e s/\\\\.txt/.cpp/` if [ ! -e $SRCFILE ] then SRCFILE=`echo ../../examples/$TXTFILE | sed -e s/\\\\.txt/.h/` fi CLINE=`grep -n '\*\*/' $SRCFILE |cut -f1 -d:` LINE=`echo $CLINE + 2 |bc` #echo Converting $SRCFILE to $TXTFILE, starting at line $LINE... expand -t4 $SRCFILE | tail -n +$LINE > $TXTFILE mysql++-3.2.5/doc/userman/ssqls2.txt000644 000765 000024 00000003636 13515046514 020042 0ustar00tangentstaff000000 000000 #include "cmdline.h" #include "printdata.h" #include "stock.h" #include #include using namespace std; int main(int argc, char *argv[]) { // Get database access parameters from command line mysqlpp::examples::CommandLine cmdline(argc, argv); if (!cmdline) { return 1; } try { // Establish the connection to the database server. mysqlpp::Connection con(mysqlpp::examples::db_name, cmdline.server(), cmdline.user(), cmdline.pass()); // Create and populate a stock object. We could also have used // the set() member, which takes the same parameters as this // constructor. stock row("Hot Dogs", 100, 1.5, numeric_limits::infinity(), // "priceless," ha! mysqlpp::sql_date("1998-09-25"), mysqlpp::null); // Form the query to insert the row into the stock table. mysqlpp::Query query = con.query(); query.insert(row); // Show the query about to be executed. cout << "Query: " << query << endl; // Execute the query. We use execute() because INSERT doesn't // return a result set. query.execute(); // Retrieve and print out the new table contents. print_stock_table(query); } catch (const mysqlpp::BadQuery& er) { // Handle any query errors cerr << "Query error: " << er.what() << endl; return -1; } catch (const mysqlpp::BadConversion& er) { // Handle bad conversions cerr << "Conversion error: " << er.what() << endl << "\tretrieved data size: " << er.retrieved << ", actual size: " << er.actual_size << endl; return -1; } catch (const mysqlpp::Exception& er) { // Catch-all for any other MySQL++ exceptions cerr << "Error: " << er.what() << endl; return -1; } return 0; } mysql++-3.2.5/doc/userman/section-template.dbx000644 000765 000024 00000000404 13515046514 022014 0ustar00tangentstaff000000 000000 SECTION TITLE FIRST PARAGRAPH mysql++-3.2.5/doc/userman/load_jpeg.txt000644 000765 000024 00000010717 13515046514 020535 0ustar00tangentstaff000000 000000 #include "cmdline.h" #include "images.h" #include "printdata.h" #include using namespace std; using namespace mysqlpp; // This is just an implementation detail for the example. Skip down to // main() for the concept this example is trying to demonstrate. You // can simply assume that, given a BLOB containing a valid JPEG, it // returns true. static bool is_jpeg(const mysqlpp::sql_blob& img, const char** whynot) { // See http://stackoverflow.com/questions/2253404/ for // justification for the various tests. const unsigned char* idp = reinterpret_cast(img.data()); if (img.size() < 125) { *whynot = "a valid JPEG must be at least 125 bytes"; } else if ((idp[0] != 0xFF) || (idp[1] != 0xD8)) { *whynot = "file does not begin with JPEG sigil bytes"; } else if ((memcmp(idp + 6, "JFIF", 4) != 0) && (memcmp(idp + 6, "Exif", 4) != 0)) { *whynot = "file does not contain JPEG type word"; } else { *whynot = 0; return true; } return false; } // Skip to main() before studying this. This is a little too // low-level to bother with on your first pass thru the code. static bool load_jpeg_file(const mysqlpp::examples::CommandLine& cmdline, images& img, string& img_name) { if (cmdline.extra_args().size() == 0) { // Nothing for us to do here. Caller will insert NULL BLOB. return true; } // Got a file's name on the command line, so open it. img_name = cmdline.extra_args()[0]; ifstream img_file(img_name.c_str(), ios::binary); if (img_file) { // Slurp file contents into RAM with minimum copying. (Idiom // explained here: http://stackoverflow.com/questions/116038/) // // By loading the file into a C++ string (stringstream::str()) // and assigning that directly to a mysqlpp::sql_blob, we avoid // truncating the binary data at the first null character. img.data.data = static_cast( &(stringstream() << img_file.rdbuf()))->str(); // Check JPEG data for sanity. const char* error; if (is_jpeg(img.data.data, &error)) { return true; } else { cerr << '"' << img_name << "\" isn't a JPEG: " << error << '!' << endl; } } cmdline.print_usage("[jpeg_file]"); return false; } int main(int argc, char *argv[]) { // Get database access parameters from command line mysqlpp::examples::CommandLine cmdline(argc, argv); if (!cmdline) { return 1; } try { // Establish the connection to the database server. mysqlpp::Connection con(mysqlpp::examples::db_name, cmdline.server(), cmdline.user(), cmdline.pass()); // Load the file named on the command line images img(mysqlpp::null, mysqlpp::null); string img_name("NULL"); if (load_jpeg_file(cmdline, img, img_name)) { // Insert image data or SQL NULL into the images.data BLOB // column. The key here is that we're holding the raw // binary data in a mysqlpp::sql_blob, which avoids data // conversion problems that can lead to treating BLOB data // as C strings, thus causing null-truncation. The fact // that we're using SSQLS here is a side issue, simply // demonstrating that mysqlpp::Null is // now legal in SSQLS, as of MySQL++ 3.0.7. Query query = con.query(); query.insert(img); SimpleResult res = query.execute(); // Report successful insertion cout << "Inserted \"" << img_name << "\" into images table, " << img.data.data.size() << " bytes, ID " << res.insert_id() << endl; } } catch (const BadQuery& er) { // Handle any query errors cerr << "Query error: " << er.what() << endl; return -1; } catch (const BadConversion& er) { // Handle bad conversions cerr << "Conversion error: " << er.what() << endl << "\tretrieved data size: " << er.retrieved << ", actual size: " << er.actual_size << endl; return -1; } catch (const Exception& er) { // Catch-all for any other MySQL++ exceptions cerr << "Error: " << er.what() << endl; return -1; } return 0; } mysql++-3.2.5/doc/userman/ssqls3.txt000644 000765 000024 00000005252 13515046514 020037 0ustar00tangentstaff000000 000000 #include "cmdline.h" #include "printdata.h" #include "stock.h" #include using namespace std; int main(int argc, char *argv[]) { // Get database access parameters from command line mysqlpp::examples::CommandLine cmdline(argc, argv); if (!cmdline) { return 1; } try { // Establish the connection to the database server. mysqlpp::Connection con(mysqlpp::examples::db_name, cmdline.server(), cmdline.user(), cmdline.pass()); // Build a query to retrieve the stock item that has Unicode // characters encoded in UTF-8 form. mysqlpp::Query query = con.query("select * from stock "); query << "where item = " << mysqlpp::quote << "Nürnberger Brats"; // Retrieve the row, throwing an exception if it fails. mysqlpp::StoreQueryResult res = query.store(); if (res.empty()) { throw mysqlpp::BadQuery("UTF-8 bratwurst item not found in " "table, run resetdb"); } // Because there should only be one row in the result set, // there's no point in storing the result in an STL container. // We can store the first row directly into a stock structure // because one of an SSQLS's constructors takes a Row object. stock row = res[0]; // Create a copy so that the replace query knows what the // original values are. stock orig_row = row; // Change the stock object's item to use only 7-bit ASCII, and // to deliberately be wider than normal column widths printed // by print_stock_table(). row.item = "Nuerenberger Bratwurst"; // Form the query to replace the row in the stock table. query.update(orig_row, row); // Show the query about to be executed. cout << "Query: " << query << endl; // Run the query with execute(), since UPDATE doesn't return a // result set. query.execute(); // Retrieve and print out the new table contents. print_stock_table(query); } catch (const mysqlpp::BadQuery& er) { // Handle any query errors cerr << "Query error: " << er.what() << endl; return -1; } catch (const mysqlpp::BadConversion& er) { // Handle bad conversions cerr << "Conversion error: " << er.what() << endl << "\tretrieved data size: " << er.retrieved << ", actual size: " << er.actual_size << endl; return -1; } catch (const mysqlpp::Exception& er) { // Catch-all for any other MySQL++ exceptions cerr << "Error: " << er.what() << endl; return -1; } return 0; } mysql++-3.2.5/doc/userman/ssqls.dbx000644 000765 000024 00000136063 13515046514 017717 0ustar00tangentstaff000000 000000 Specialized SQL Structures The Specialized SQL Structure (SSQLS) feature lets you easily define C++ structures that match the form of your SQL tables. At the most superficial level, an SSQLS has a member variable corresponding to each field in the SQL table. But, an SSQLS also has several methods, operators, and data members used by MySQL++’s internals to provide neat functionality, which we cover in this chapter. You define SSQLSes using the macros defined in ssqls.h. This is the only MySQL++ header not automatically included for you by mysql++.h. You have to include it in code modules that use the SSQLS feature. sql_create Let’s say you have the following SQL table: CREATE TABLE stock ( item CHAR(30) NOT NULL, num BIGINT NOT NULL, weight DOUBLE NOT NULL, price DECIMAL(6,2) NOT NULL, sdate DATE NOT NULL, description MEDIUMTEXT NULL) You can create a C++ structure corresponding to this table like so: sql_create_6(stock, 1, 6, mysqlpp::sql_char, item, mysqlpp::sql_bigint, num, mysqlpp::sql_double, weight, mysqlpp::sql_decimal, price, mysqlpp::sql_date, sdate, mysqlpp::Null<mysqlpp::sql_mediumtext>, description) This declares the stock structure, which has a data member for each SQL column, using the same names. The structure also has a number of member functions, operators and hidden data members, but we won’t go into that just now. The parameter before each field name in the sql_create_# call is the C++ data type that will be used to hold that value in the SSQLS. While you could use plain old C++ data types for most of these columns (long int instead of mysqlpp::sql_bigint, for example) it’s best to use the MySQL++ typedefs. Sometimes you have no choice but to use special MySQL++ data types to fully express the database schema. Consider the description field. MySQL++’s sql_mediumtext type is just an alias for std::string, since we don’t need anything fancier to hold a SQL MEDIUMTEXT value. It’s the SQL NULL attribute that causes trouble: it has no equivalent in the C++ type system. MySQL++ offers the template, which bridges this difference between the two type systems. The general format of this macro is: sql_create_#(NAME, COMPCOUNT, SETCOUNT, TYPE1, ITEM1, ... TYPE#, ITEM#) where # is the number of member variables, NAME is the name of the structure you wish to create, TYPEx is the type of a member variable, and ITEMx is that variable’s name. The COMPCOUNT and SETCOUNT arguments are described in the next section. SSQLS Comparison and Initialization The sql_create_# macro adds member functions and operators to each SSQLS that allow you to compare one SSQLS instance to another. These functions compare the first COMPCOUNT fields in the structure. In the example above, COMPCOUNT is 1, so only the item field will be checked when comparing two stock structures. This feature works best when your table’s “key” fields are the first ones in the SSQLS and you set COMPCOUNT equal to the number of key fields. That way, a check for equality between two SSQLS structures in your C++ code will give the same results as a check for equality in SQL. COMPCOUNT must be at least 1. The current implementation of sql_create_# cannot create an SSQLS without comparison member functions. Because our stock structure is less-than-comparable, you can use it in STL algorithms and containers that require this, such as STL’s associative containers: std::set<stock> result; query.storein(result); cout << result.lower_bound(stock("Hamburger"))->item << endl; This will print the first item in the result set that begins with “Hamburger.” The third parameter to sql_create_# is SETCOUNT. If this is nonzero, it adds an initialization constructor and a set() member function taking the given number of arguments, for setting the first N fields of the structure. For example, you could change the above example like so: sql_create_6(stock, 1, 2, mysqlpp::sql_char, item, mysqlpp::sql_bigint, num, mysqlpp::sql_double, weight, mysqlpp::sql_decimal, price, mysqlpp::sql_date, sdate, mysqlpp::Null<mysqlpp::sql_mediumtext>, description) stock foo("Hotdog", 52); In addition to this 2-parameter constructor, this version of the stock SSQLS will have a similar 2-parameter set() member function. The COMPCOUNT and SETCOUNT values cannot be equal. If they are, the macro will generate two initialization constructors with identical parameter lists, which is illegal in C++. You might be asking, why does there need to be a constructor for comparison to begin with? It’s often convenient to be able to say something like x == stock("Hotdog"). This requires that there be a constructor taking COMPCOUNT arguments to create the temporary stock instance used in the comparison. This limitation is not a problem in practice. If you want the same number of parameters in the initialization constructor as the number of fields used in comparisons, pass 0 for SETCOUNT. This suppresses the duplicate constructor you’d get if you used the COMPCOUNT value instead. This is most useful in very small SSQLSes, since it’s easier for the number of key fields to equal the number of fields you want to compare on: sql_create_1(stock_item, 1, 0, mysqlpp::sql_char, item) Retrieving data Let’s put SSQLS to use. This is examples/ssqls1.cpp: Here is the stock.h header used by that example, and by several others below: This example produces the same output as simple1.cpp (see ), but it uses higher-level data structures paralleling the database schema instead of MySQL++’s lower-level generic data structures. It also uses MySQL++’s for error handling instead of doing everything inline. For small example programs like these, the overhead of SSQLS and exceptions doesn’t pay off very well, but in a real program, they end up working much better than hand-rolled code. Notice that we are only pulling a single column from the stock table, but we are storing the rows in a std::vector<stock>. It may strike you as inefficient to have five unused fields per record. It’s easily remedied by defining a subset SSQLS: sql_create_1(stock_subset, 1, 0, string, item) vector<stock_subset> res; query.storein(res); // ...etc... MySQL++ is flexible about populating SSQLSes.Programs built against versions of MySQL++ prior to 3.0 would crash at almost any mismatch between the database schema and the SSQLS definition. It’s no longer necessary to keep the data design in lock-step between the client and database server. A mismatch can result in data loss, but not a crash. It works much like the Web, a design that’s enabled the development of the largest distributed system in the world. Just as a browser ignores tags and attributes it doesn’t understand, you can populate an SSQLS from a query result set containing columns that don’t exist in the SSQLS. And as a browser uses sensible defaults when the page doesn’t give explicit values, you can have an SSQLS with more fields defined than are in the query result set, and these SSQLS fields will get default values. (Zero for numeric types, false for bool, and a type-specific default for anything more complex, like mysqlpp::DateTime.) In more concrete terms, the example above is able to populate the stock objects using as much information as it has, and leave the remaining fields at their defaults. Conversely, you could also stuff the results of SELECT * FROM stock into the stock_subset SSQLS declared above; the extra fields would just be ignored. We’re trading run-time efficiency for flexibility here, usually the right thing in a distributed system. Since MySQL is a networked database server, many uses of it will qualify as distributed systems. You can’t count on being able to update both the server(s) and all the clients at the same time, so you have to make them flexible enough to cope with differences while the changes propagate. As long as the new database schema isn’t too grossly different from the old, your programs should continue to run until you get around to updating them to use the new schema. There’s a danger that this quiet coping behavior may mask problems, but considering that the previous behavior was for the program to crash when the database schema got out of synch with the SSQLS definition, it’s likely to be taken as an improvement. Adding data MySQL++ offers several ways to insert data in SSQLS form into a database table. Inserting a Single Row The simplest option is to insert a single row at a time. This is examples/ssqls2.cpp: That’s all there is to it! MySQL++ even takes care of quoting and escaping the data when building queries from SSQLS structures. It’s efficient, too: MySQL++ is smart enough to quote and escape data only for those data types that actually require it. Inserting Many Rows Inserting a single row is useful, to be sure, but you might want to be able to insert many SSQLSes or Row objects at once. MySQL++ knows how to do that, too, sparing you the necessity of writing the loop. Plus, MySQL++ uses an optimized implementation of this algorithm, packing everything into a single SQL query, eliminating the overhead of multiple calls between the client and server. It’s just a different overload of insert(), which accepts a pair of iterators into an STL container, inserting every row in that range: vector<stock> lots_of_stuff; ...populate the vector somehow... query.insert(lots_of_stuff.begin(), lots_of_stuff.end()).execute(); By the way, notice that you can chain Query operations like in the last line above, because its methods return *this where that makes sense. Working Around MySQL’s Packet Size Limit The two-iterator form of insert() has an associated risk: MySQL has a limit on the size of the SQL query it will process. The default limit is 1 MB. You can raise the limit, but the reason the limit is configurable is not to allow huge numbers of inserts in a single query. They made the limit configurable because a single row might be bigger than 1 MB, so the default would prevent you from inserting anything at all. If you raise the limit simply to be able to insert more rows at once, you’re courting disaster with no compensating benefit: the more data you send at a time, the greater the chance and cost of something going wrong. Worse, this is pure risk, because by the time you hit 1 MB, the per-packet overhead is such a small fraction of the data being transferred that increasing the packet size buys you essentially nothing. Let’s say you have a vector containing several megabytes of data; it will get even bigger when expressed in SQL form, so there’s no way you can insert it all in a single query without raising the MySQL packet limit. One way to cope would be to write your own naïve loop, inserting just one row at a time. This is slow, because you’re paying the per-query cost for every row in the container. Then you might realize that you could use the two iterator form of insert(), passing iterators expressing sub-ranges of the container instead of trying to insert the whole container in one go. Now you’ve just got to figure out how to calculate those sub-ranges to get efficient operation without exceeding the packet size limit. MySQL++ already knows how to do that, too, with Query::insertfrom(). We gave it a different name instead of adding yet another insert() overload because it doesn’t merely build the INSERT query, which you then execute(). It’s more like storein(), in that it wraps the entire operation up in a single call. This feature is demonstrated in examples/ssqls6.cpp: Most of the complexity in this example goes to just reading in the data from a file; we have to get our test data from somewhere. There are only two key lines of code: create an insertion policy object, and pass it along with an STL container full of row data to Query::insertfrom(). This policy object is the main thing that differentiates insertfrom() from the two-iterator form of insert(). It controls how insertfrom() builds the query strings, primarily controlling how large each query gets before insertfrom() executes it and starts building a new query. We designed it to use policy objects because there is no single “right” choice for the decisions it makes. MySQL++ ships with three different insertion policy classes, which should cover most situations. MaxPacketInsertPolicy, demonstrated in the example above, does things the most obvious way: when you create it, you pass the maximum packet size, which it uses to prevent queries from going over the size limit. It builds up a query string row by row, checking each time through the loop whether adding another insert statement to the query string would make the packet size go over the limit. When that happens, or it gets to the end of the iteration range, it executes the query and starts over if it’s not yet at the end. This is robust, but it has a downside: it has to build each insert query in advance of knowing that it can append it to the larger query. Any time an insert query would push the packet over the limit, it has to throw it away, causing the library to do more work than is strictly necessary. Imagine you’ve done some benchmarking and have found that the point of diminishing returns is at about 20 KB per query in your environment; beyond that point, the per-query overhead ceases to be an issue. Let’s also say you know for a fact that your largest row will always be less than 1 MB — less 20 KB — when expressed as a SQL insert statement. In that case, you can use the more efficient SizeThresholdInsertPolicy. It differs from MaxPacketInsertPolicy in that it allows insertfrom() to insert rows blindly into the query string until the built query exceeds the threshold, 20 KB in this example. Then it ships the packet off, and if successful, starts a new query. Thus, each query (except possibly the last) will be at least 20 KB, exceeding that only by as much as one row’s worth of data, minus one byte. This is quite appropriate behavior when your rows are relatively small, as is typical for tables not containing BLOB data. It is more efficient than MaxPacketInsertPolicy because it never has to throw away any SQL fragments. The simplest policy object type is RowCountInsertPolicy. This lets you simply say how many rows at a time to insert into the database. This works well when you have a good handle on how big each row will be, so you can calculate in advance how many rows you can insert at once without exceeding some given limit. Say you know your rows can’t be any bigger than about 1 KB. If we stick with that 20 KB target, passing RowCountInsertPolicy<>(20) for the policy object would ensure we never exceed the size threshold. Or, say that maximum size value above is still true, but we also know the average row size is only 200 bytes. You could pass RowCountInsertPolicy<>(100) for the policy, knowing that the average packet size will be around 20 KB, and the worst case packet size 100 KB, still nowhere near the default 1 MB packet size limit. The code for this policy is very simple, so it makes your program a little smaller than if you used either of the above policies. Obviously it’s a bad choice if you aren’t able to predict the size of your rows accurately. If one of the provided insert policy classes doesn’t suit your needs, you can easily create a custom one. Just study the implementation in lib/insertpolicy.*. Interaction with Transactions These policy classes are all templates, taking a parameter that defaults to . This means that, by default, insertfrom() wraps the entire operation in a SQL transaction, so that if any of the insertions fail, the database server rolls them all back. This prevents an error in the middle of the operation from leaving just part of the container’s data inserted in the database, which you usually don’t want any more than you’d want half a single row to be inserted. There are good reasons why you might not want this. Perhaps the best reason is if the insertfrom() call is to be part of a larger transaction. MySQL doesn’t support nested transactions, so the insertfrom() call will fail if it tries to start one of its own. You can pass NoTransactions for the insert policy’s template parameter to make it suppress the transaction code. Modifying data It almost as easy to modify data with SSQLS as to add it. This is examples/ssqls3.cpp: Don’t forget to run resetdb after running the example. Storing SSQLSes in Associative Containers One of the requirements of STL’s associative containers on data stored in them is that the data type has to be less-than comparable. That is, it has to have an operator < defined. SSQLS does optionally give you this, as demonstrated in examples/ssqls4.cpp: The find() call works because of the way the SSQLS was declared. It’s properly covered elsewhere, but suffice it to say, the “1” in the declaration of stock above tells it that only the first field needs to be checked in comparing two SSQLSes. In database terms, this makes it the primary key. Therefore, when searching for a match, our exemplar only had to have its first field populated. Changing the Table Name Another feature you might find a use for is changing the table name MySQL++ uses to build queries involving SSQLSes. By default, the database server table is assumed to have the same name as the SSQLS structure type. But if this is inconvenient, you can globally change the table name used in queries like this: stock::table("MyStockData"); It’s also possible to change the name of a table on a per-instance basis: stock s; s.instance_table("AlternateTable"); This is useful when you have an SSQLS definition that is compatible with multiple tables, so the table name to use for each instance is different. This feature saves you from having to define a separate SSQLS for each table. It is also useful for mapping a class hierarchy onto a set of table definitions. The common SSQLS definition is the “superclass” for a given set of tables. Strictly speaking, you only need to use this feature in multithreaded programs. Changing the static table name before using each instance is safe if all changes happen within a single thread. That said, it may still be convenient to change the name of the table for an SSQLS instance in a single-threaded program if it gets used for many operations over an extended span of code. Using an SSQLS in Multiple Modules It’s convenient to define an SSQLS in a header file so you can use it in multiple modules. You run into a bit of a problem, though, because each SSQLS includes a few static data members to hold information common to all structures of that type. (The table name and the list of field names.) When you #include that header in more than one module, you get a multiply-defined symbol error at link time. The way around this is to define the preprocessor macro MYSQLPP_SSQLS_NO_STATICS in all but one of the modules that use the header definining the SSQLS. When this macro is defined, it suppresses the static data members in any SSQLS defined thereafter. Imagine we have a file my_ssqls.h which includes a sql_create_N macro call to define an SSQLS, and that that SSQLS is used in at least two modules. One we’ll call foo.cpp, and we’ll say it’s just a user of the SSQLS; it doesn’t “own” it. Another of the modules, my_ssqls.cpp uses the SSQLS more heavily, so we’ve called it the owner of the SSQLS. If there aren’t very many modules, this works nicely: // File foo.cpp, which just uses the SSQLS, but doesn’t "own" it: #define MYSQLPP_SSQLS_NO_STATICS #include "my_ssqls.h" // File my_ssqls.cpp, which owns the SSQLS, so we just #include it directly #include "my_ssqls.h" If there are many modules that need the SSQLS, adding all those #defines can be a pain. In that case, it’s easier if you flip the above pattern on its head: // File my_ssqls.h: #if !defined(EXPAND_MY_SSQLS_STATICS) # define MYSQLPP_SSQLS_NO_STATICS #endif sql_create_X(Y, Z....) // the SSQLS definition // File foo.cpp, a mere user of the SSQLS: #include "my_ssqls.h" // File my_ssqls.cpp, which owns the SSQLS: #define EXPAND_MY_SSQLS_STATICS #include "my_ssqls.h" Harnessing SSQLS Internals The sql_create macros define several methods for each SSQLS. These methods are mostly for use within the library, but some of them are useful enough that you might want to harness them for your own ends. Here is some pseudocode showing how the most useful of these methods would be defined for the stock structure used in all the ssqls*.cpp examples: // Basic form template <class Manip> stock_value_list<Manip> value_list(cchar *d = ",", Manip m = mysqlpp::quote) const; template <class Manip> stock_field_list<Manip> field_list(cchar *d = ",", Manip m = mysqlpp::do_nothing) const; template <class Manip> stock_equal_list<Manip> equal_list(cchar *d = ",", cchar *e = " = ", Manip m = mysqlpp::quote) const; // Boolean argument form template <class Manip> stock_cus_value_list<Manip> value_list([cchar *d, [Manip m,] ] bool i1, bool i2 = false, ... , bool i5 = false) const; // List form template <class Manip> stock_cus_value_list<Manip> value_list([cchar *d, [Manip m,] ] stock_enum i1, stock_enum i2 = stock_NULL, ..., stock_enum i5 = stock_NULL) const; // Vector form template <class Manip> stock_cus_value_list<Manip> value_list([cchar *d, [Manip m,] ] vector<bool> *i) const; ...Plus the obvious equivalents for field_list() and equal_list() Rather than try to learn what all of these methods do at once, let’s ease into the subject. Consider this code: stock s("Dinner Rolls", 75, 0.95, 0.97, sql_date("1998-05-25")); cout << "Value list: " << s.value_list() << endl; cout << "Field list: " << s.field_list() << endl; cout << "Equal list: " << s.equal_list() << endl; That would produce something like: Value list: 'Dinner Rolls’,75,0.95,0.97,'1998-05-25' Field list: item,num,weight,price,sdate Equal list: item = 'Dinner Rolls’,num = 75,weight = 0.95, price = 0.97,sdate = '1998-05-25' That is, a “value list” is a list of data member values within a particular SSQLS instance, a “field list” is a list of the fields (columns) within that SSQLS, and an “equal list” is a list in the form of an SQL equals clause. Just knowing that much, it shouldn’t surprise you to learn that Query::insert() is implemented more or less like this: *this << "INSERT INTO " << v.table() << " (" << v.field_list() << ") VALUES (" << v.value_list() << ")"; where ‘v’ is the SSQLS you’re asking the Query object to insert into the database. Now let’s look at a complete example, which uses one of the more complicated forms of equal_list(). This example builds a query with fewer hard-coded strings than the most obvious technique requires, which makes it more robust in the face of change. Here is examples/ssqls5.cpp: This example uses the list form of equal_list(). The arguments stock_weight and stock_price are enum values equal to the position of these columns within the stock table. sql_create_# generates this enum for you automatically. The boolean argument form of that equal_list() call would look like this: query << "select * from stock where " << res[0].equal_list(" and ", false, false, true, true, false); It’s a little more verbose, as you can see. And if you want to get really complicated, use the vector form: vector<bool> v(5, false); v[stock_weight] = true; v[stock_price] = true; query << "select * from stock where " << res[0].equal_list(" and ", v); This form makes the most sense if you are building many other queries, and so can re-use that vector object. Many of these methods accept manipulators and custom delimiters. The defaults are suitable for building SQL queries, but if you’re using these methods in a different context, you may need to override these defaults. For instance, you could use these methods to dump data to a text file using different delimiters and quoting rules than SQL. At this point, we’ve seen all the major aspects of the SSQLS feature. The final sections of this chapter look at some of the peripheral aspects. Having Different Field Names in C++ and SQL There’s a more advanced SSQLS creation macro, which all the others are built on top of. Currently, the only feature it adds over what’s described above is that it lets you name your SSQLS fields differently from the names used by the database server. Perhaps you want to use Hungarian notation in your C++ program without changing the SQL database schema: sql_create_complete_5(stock, 1, 5, mysqlpp::sql_char, m_sItem, "item", mysqlpp::sql_bigint, m_nNum, "num", mysqlpp::sql_double, m_fWeight, "weight", mysqlpp::sql_decimal, m_fPrice, "price", mysqlpp::sql_date, m_Date, "sdate") Note that you don’t have to use this mechanism if the only difference in your SQL and C++ field names is case. SSQLS field name lookups are case-insensitive as of MySQL++ 3.1. You can see this in the examples: some parts of the code deliberately refer to the stock.sdate sample table field as stock.sDate to exercise this feature. Expanding SSQLS Macros If you ever need to see the code that a given SSQLS declaration expands out to, use the utility doc/ssqls-pretty, like so: doc/ssqls-pretty < myprog.cpp | less This Perl script locates the first SSQLS declaration in that file, then uses the C++ preprocessor to expand that macro. (The script assumes that your system’s preprocessor is called cpp, and that its command line interface follows Unix conventions.) If you run it from the top MySQL++ directory, as shown above, it will use the header files in the distribution’s lib subdirectory. Otherwise, it assumes the MySQL++ headers are in their default location, /usr/include/mysql++. If you want to use headers in some other location, you’ll need to change the directory name in the -I flag at the top of the script. Customizing the SSQLS Mechanism The SSQLS header ssqls.h is automatically generated by the Perl script ssqls.pl. Although it is possible to change this script to get additional functionality, most of the time it’s better to just derive a custom class from the generated SSQLS to add functionality to it. (See the next section to see how to do this correctly.) That said, ssqls.pl does have a few configurables you might want to tweak. The first configurable value sets the maximum number of data members allowed in an SSQLS. This is discussed elsewhere, in . Beware the warnings there about increasing this value too much. The second configurable is the default floating point precision used for comparison. As described above () SSQLSes can be compared for equality. The only place this is tricky is with floating-point numbers, since rounding errors can make two “equal” values compare as distinct. This property of floating-point numbers means we almost never want to do exact comparison. MySQL++ lets you specify the precision you want it to use. If the difference between two values is under a given threshold, MySQL++ considers the values equal. The default threshold is 0.00001. This threshold works well for “human” scale values, but because of the way floating-point numbers work, it can be wildly inappropriate for very large or very small quantities like those used in scientific applications. There are actually two ways to change this threshold. If you need a different system-wide default, edit ssqls.pl and change the $fp_min_delta variable at the top of the file, then rebuild ssqls.h as described below. If you need different thresholds per file or per project, it’s better to set the C macro MYSQLPP_FP_MIN_DELTA instead. The Perl variable sets this macro’s default; if you give a different value before #including ssqls.h, it will use that instead. To rebuild ssqls.h after changing ssqls.pl, you’ll need a Perl interpreter. The only modern Unixy system I’m aware of where Perl isn’t installed by default is Cygwin, and it’s just a setup.exe choice away there. You’ll probably only have to download and install a Perl interpreter if you’re on Windows and don’t want to use Cygwin. If you’re on a system that uses autoconf, building MySQL++ automatically updates ssqls.h any time ssqls.pl changes. Otherwise, you’ll need to run the Perl interpreter by hand: c:\mysql++> cd lib c:\lib> perl ssqls.pl Deriving from an SSQLS Specialized SQL Structures make good base classes. They’re simple, and have few requirements on any class that derives from them. There are some gotchas to look out for, however. Consider this: sql_create_2( Base, 1, 2, mysqlpp::sql_varchar, a, mysqlpp::sql_int, b ); class Derived : public Base { public: // constructor Derived(mysqlpp::sql_varchar _a, mysqlpp::sql_int _b) : Base(_a, _b) { } // functionality added to the SSQLS through inheritance bool do_something_interesting(int data); }; We’ve derived a class from an SSQLS in order to add a method to it. Easy, right? Sadly, too easy. The code has a rather large flaw which makes our derived class unusable as an SSQLS. In C++, if a derived class has a function of the same name as one in the base class, the base class versions of that function are all hidden by those in the derived class. This applies to constructors, too: an SSQLS defines several constructors, but our derived class defines only one, causing that one to hide all of the ones in the base class. Many of the MySQL++ mechanisms that use SSQLSes rely on having these contructors, so our Derived above is-not-a Base, and so it isn’t an SSQLS. If you try to use Derived as an SSQLS, you’ll get compiler errors wherever MySQL++ tries to access one of these other constructors. There’s another minor flaw, as well. Our lone constructor above takes its parameters by value, but the corresponding constructor in the SSQLS takes them by const reference. Our derived class has technically hidden a fourth base class constructor this way, but this particular case is more a matter of efficiency than correctness. Code that needs the full-creation constructor will still work with our code above, but passing stringish types like sql_varchar by value instead of by const reference is inefficient. This is the corrected version of the above code: sql_create_2( Base, 1, 2, mysqlpp::sql_varchar, a, mysqlpp::sql_int, b ); class Derived : public Base { public: // default constructorneeded by mechanisms like Query::storein(); anything using an STL container, which usually require default ctors for contained data structures Derived() : Base() { } // for-comparison constructortakes the COMPCOUNT subset of the SSQLS’s data members, used for making comparison exemplars, used with Query::update() and similar mechanisms; see for more on COMPCOUNT Derived(const mysqlpp::sql_varchar& _a) : Base(_a) { } // full creation constructor Derived(const mysqlpp::sql_varchar& _a, const mysqlpp::sql_int& _b) : Base(_a, _b) { } // population constructorused in taking raw row data from a SQL result set and converting it to SSQLS form Derived(const mysqlpp::Row& row) : Base(row) { } // functionality added to the SSQLS through inheritance bool do_something_interesting(int data); }; Now Derived is-an SSQLS. You might wonder if you can use protected inheritance above to redefine the SSQLS’s public interface. For instance, OO purists might object to the public data members in an SSQLS. You could encapsulate these public data members in the derived class by using protected inheritance, exposing access to the base class’s data members with public accessor methods. The problem with this is that each SSQLS has dozens of public member functions. These are needed by MySQL++ internals, so unless you re-exposed all of them as we did with the constructors above, you’d again have an SSQLS derivative that is-not-an SSQLS. Simply put, only public inheritance is practical with SSQLSes. SSQLS and BLOB Columns It takes special care to use SSQLS with BLOB columns. It’s safest to declare the SSQLS field as of type mysqlpp::sql_blob. This is currently a typedef alias for String, which is the form the data is in just before the SSQLS mechanism populates the structure. Thus, when the data is copied from the internal MySQL++ data structures into your SSQLS, you get a direct copy of the String object’s contents, without interference. Because C++ strings handle binary data just fine, you might think you can use std::string instead of sql_blob, but the current design of String converts to std::string via a C string. As a result, the BLOB data is truncated at the first embedded null character during population of the SSQLS. There’s no way to fix that without completely redesigning either String or the SSQLS mechanism. The sql_blob typedef may be changed to alias a different type in the future, so using it instead of String ensures that your code tracks these library changes automatically. Besides, String is only intended to be an internal mechanism within MySQL++. The only reason the layering is so thin here is because it’s the only way to prevent BLOB data from being corrupted while avoiding that looming redesign effort. You can see this technique in action in the cgi_jpeg example: SSQLS and Visual C++ 2003 SSQLS works on all platforms supported by MySQL++ except for Visual C++ 2003. (Because the rest of MySQL++ works just fine with Visual C++ 2003, we haven’t removed this platform from the supported list entirely.) If you do need SSQLS and are currently on Visual C++ 2003, you have these options: The simplest option is to upgrade to a newer version of Visual C++. The compiler limitations that break SSQLS are all fixed in Visual C++ 2005 and newer. Visual C++ Express is free and is apparently here to stay; coupled with the free wxWidgets library, it lacks little compared to Visual C++ Professional. A bonus of using wxWidgets is that it’s cross-platform and better-supported than MFC. If you can’t upgrade your compiler, you may be able to downgrade to MySQL++ v2.x. The SSQLS feature in these older versions worked with Visual C++ 2003, but didn’t let you use a given SSQLS in more than one module in a program. If you can live with that limitation and have a Perl interpreter on your system, you can re-generate lib/ssqls.h to remove the multiple-module SSQLS support. To do this, you run the command perl ssqls.pl -v from within MySQL++’s lib subdirectory before you build and install the library. There’s a plan to replace the current SSQLS mechanism with an entirely new code base. Although this is being done primarily to get new features that are too difficult to add within the current design, it also means we’ll have the chance to test step-by-step along the way that we don’t reintroduce code that Visual C++ 2003 doesn’t support. This may happen without you doing anything, but if there’s someone on the team who cares about this, that will naturally increase the chances that it does happen. mysql++-3.2.5/doc/userman/simple1.txt000644 000765 000024 00000002354 13515046514 020161 0ustar00tangentstaff000000 000000 #include "cmdline.h" #include "printdata.h" #include #include #include using namespace std; int main(int argc, char *argv[]) { // Get database access parameters from command line mysqlpp::examples::CommandLine cmdline(argc, argv); if (!cmdline) { return 1; } // Connect to the sample database. mysqlpp::Connection conn(false); if (conn.connect(mysqlpp::examples::db_name, cmdline.server(), cmdline.user(), cmdline.pass())) { // Retrieve a subset of the sample stock table set up by resetdb // and display it. mysqlpp::Query query = conn.query("select item from stock"); if (mysqlpp::StoreQueryResult res = query.store()) { cout << "We have:" << endl; mysqlpp::StoreQueryResult::const_iterator it; for (it = res.begin(); it != res.end(); ++it) { mysqlpp::Row row = *it; cout << '\t' << row[0] << endl; } } else { cerr << "Failed to get item list: " << query.error() << endl; return 1; } return 0; } else { cerr << "DB connection failed: " << conn.error() << endl; return 1; } } mysql++-3.2.5/doc/userman/Makefile000644 000765 000024 00000003357 13515046514 017512 0ustar00tangentstaff000000 000000 ## ------------------------ ## Input files ## ------------------------ HTML_DIR=../html/userman BASENAME=userman DOCFILE=$(BASENAME).dbx PDFFILE=../pdf/$(BASENAME).pdf FOFILE=$(BASENAME).fo COMMON_SS=common.xsl FO_SS=fo.xsl HTML_SS=html.xsl EX_TXT=cgi_jpeg.txt cpool.txt deadlock.txt fieldinf.txt for_each.txt \ load_jpeg.txt multiquery.txt resetdb.txt simple1.txt \ simple2.txt simple3.txt ssqls1.txt ssqls2.txt ssqls3.txt \ ssqls4.txt ssqls5.txt ssqls6.txt stock.txt store_if.txt \ tquery1.txt transaction.txt ## ------------------------ ## Major output rules ## ------------------------ html: $(EX_TXT) $(HTML_DIR)/index.html pdf: $(EX_TXT) $(PDFFILE) ## ------------------------ ## Standard Makefile targets ## ------------------------ # Notice that this is not the first target in the file, as is standard. # PDF generation takes longer than HTML generation, so to keep the code- # test-debug-rebuild cycle short, we generate only the HTML manual by # default. You can explicitly say "make pdf" or "make all" when you're # sure the DocBook file's contents are correct. all: html pdf clean: @rm -f tags *.fo $(HTML_DIR)/*.html *.log *.out *.pdf $(EX_TXT) $(PDFFILE) ## ------------------------ ## How to make output files ## ------------------------ $(PDFFILE): *.dbx *.in $(FO_SS) $(COMMON_SS) xsltproc --xinclude $(FO_SS) $(DOCFILE) > $(FOFILE) mkdir -p ../pdf ./fo2pdf $(FOFILE) $(PDFFILE) $(HTML_DIR)/index.html: *.dbx *.in *.mod *.txt *.xsl @xmllint --xinclude --nonet --postvalid --noent --noout $(DOCFILE) xsltproc --xinclude --nonet -o $(HTML_DIR)/ $(HTML_SS) $(DOCFILE) ## ------------------------ ## Dependency rules ## ------------------------ $(EX_TXT): @./mktxt $@ userman.dbx: userman.dbx.in ( cd ../.. ; ./config.status ) mysql++-3.2.5/doc/userman/breakages.dbx000644 000765 000024 00000153215 13515046514 020474 0ustar00tangentstaff000000 000000 Incompatible Library Changes This chapter documents those library changes since the epochal 1.7.9 release that break end-user programs. You can dig this stuff out of the ChangeLog.md file, but the change log focuses more on explaining and justifying the facets of each change, while this section focuses on how to migrate your code between these library versions. Since pure additions do not break programs, those changes are still documented only in the change log. API Changes This section documents files, functions, methods and classes that were removed or changed in an incompatible way. If your program uses the changed item, you will have to change something in your program to get it to compile after upgrading to each of these versions. v1.7.10 Removed Row::operator[]() overloads except the one for size_type, and added Row::lookup_by_name() to provide the “subscript by string” functionality. In practical terms, this change means that the row["field"] syntax no longer works; you must use the new lookup_by_name method instead. Renamed the generated library on POSIX systems from libsqlplus to libmysqlpp. v1.7.19 Removed SQLQuery::operator=(), and the same for its Query subclass. Use the copy constructor instead, if you need to copy one query to another query object. v1.7.20 The library used to have two names for many core classes: a short one, such as Row and a longer one, MysqlRow. The library now uses the shorter names exclusively. All symbols within MySQL++ are in the mysqlpp namespace now if you use the new mysql++.h header. If you use the older sqlplus.hh or mysql++.hh headers, these symbols are hoist up into the global namespace. The older headers cause the compiler to emit warnings if you use them, and they will go away someday. v2.0.0 Connection class changes Connection::create_db() and drop_db() return true on success. They returned false in v1.7.x! This change will only affect your code if you have exceptions disabled. Renamed Connection::real_connect() to connect(), made several more of its parameters default, and removed the old connect() method, as it’s now a strict subset of the new one. The only practical consequence is that if your program was using real_connect(), you will have to change it to connect(). Replaced Connection::read_option() with new set_option() mechanism. In addition to changing the name, programs using this function will have to use the new Connection::Option enumerated values, accept a true return value as meaning success instead of 0, and use the proper argument type. Regarding the latter, read_option() took a const char* argument, but because it was just a thin wrapper over the MySQL C API function , the actual value being pointed to could be any of several types. This new mechanism is properly type-safe. Exception-related changes Classes Connection, Query, Result, ResUse, and Row now derive from which gives these classes a common interface for disabling exceptions. In addition, almost all of the per-method exception-disabling flags were removed. The preferred method for disabling exceptions on these objects is to create an instance of the new class on the stack, which disables exceptions on an OptionalExceptions subclass as long as the NoExceptions instance is in scope. You can instead call disable_exceptions() on any of these objects, but if you only want them disabled temporarily, it’s easy to forget to re-enable them later. In the previous version of MySQL++, those classes that supported optional exceptions that could create instances of other such classes were supposed to pass this flag on to their children. That is, if you created a Connection object with exceptions enabled, and then asked it to create a Query object, the Query object also had exceptions disabled. The problem is, this didn’t happen in all cases where it should have in v1.7. This bug is fixed in v2.0. If your program begins crashing due to uncaught exceptions after upgrading to v2.0, this is the most likely cause. The most expeditious fix in this situation is to use the new NoExceptions feature to return these code paths to the v1.7 behavior. A better fix is to rework your program to avoid or deal with the new exceptions. All custom MySQL++ exceptions now derive from the new interface. The practical upshot of this is that the variability between the various exception types has been eliminated. For instance, to get the error string, the BadQuery exception had a string member called error plus a method called what(). Both did the same thing, and the what() method is more common, so the error string was dropped from the interface. None of the example programs had to be changed to work with the new exceptions, so if your program handles MySQL++ exceptions the same way they do, your program won’t need to change, either. Renamed SQLQueryNEParams exception to BadParamCount to match style of other exception names. Added , , , , , , and exception types, to fix overuse of BadQuery. Now the latter is used only for errors on query execution. If your program has a “catch-all” block taking a std::exception for each try block containing MySQL++ statements, you probably won’t need to change your program. Otherwise, the new exceptions will likely show up as program crashes due to unhandled exceptions. Query class changes In previous versions, Connection had a querying interface similar to class Query’s. These methods were intended only for Query’s use; no example ever used this interface directly, so no end-user code is likely to be affected by this change. A more likely problem arising from the above change is code that tests for query success by calling the Connection object’s success() method or by casting it to bool. This will now give misleading results, because queries no longer go through the Connection object. Class Query has the same success-testing interface, so use it instead. Query now derives from std::ostream instead of std::stringstream. Result/ResUse class changes Renamed ResUse::mysql_result() to raw_result() so it’s database server neutral. Removed ResUse::eof(), as it wrapped the deprecated and unnecessary MySQL C API function . See the simple3 and usequery examples to see the proper way to test for the end of a result set. Row class changes Removed “field name” form of Row::field_list(). It was pointless. Row subscripting works more like v1.7.9: one can subscript a Row with a string (e.g. row["myfield"]), or with an integer (e.g. row[5]). lookup_by_name() was removed. Because row[0] is ambiguous (0 could mean the first field, or be a null pointer to const char*), there is now Row::at(), which can look up any field by index. Miscellaneous changes Where possible, all distributed Makefiles only build dynamic libraries. (Shared objects on most Unices, DLLs on Windows, etc.) Unless your program is licensed under the GPL or LGPL, you shouldn’t have been using the static libraries from previous versions anyway. Removed the backwards-compatibility headers sqlplus.hh and mysql++.hh. If you were still using these, you will have to change to mysql++.h, which will put all symbols in namespace mysqlpp. Can no longer use arrow operator (->) on the iterators into the Fields, Result and Row containers. v2.2.0 Code like this will have to change: query << "delete from mytable where myfield=%0:myvalue"; query.parse(); query.def["myvalue"] = some_value; query.execute(); ...to something more like this: query << "delete from mytable where myfield=%0"; query.parse(); query.execute(some_value); The first code snippet abuses the default template query parameter mechanism (Query::def) to fill out the template instead of using one of the overloaded forms of execute(), store() or use() taking one or more SQLString parameters. The purpose of Query::def is to allow for default template parameters over multiple queries. In the first snippet above, there is only one parameter, so in order to justify the use of template queries in the first place, it must be changing with each query. Therefore, it isn’t really a “default” parameter at all. We did not make this change maliciously, but you can understand why we are not in any hurry to restore this “feature”. (Incidentally, this change was made to allow better support for BLOB columns.) v2.3.0 Connection::set_option() calls now set the connection option immediately, instead of waiting until just before the connnection is actually established. Code that relied on the old behavior could see unhandled exceptions, since option setting errors are now thrown from a different part of the code. You want to wrap the actual set_option() call now, not Connection::connect() FieldNames and FieldTypes are no longer exported from the library. If you are using these classes directly from Visual C++ or MinGW, your code won’t be able to dynamically link to a DLL version of the library any more. These are internal classes, however, so no one should be using them directly. v3.0.0 Class name changes Several classes changed names in this release: ColData is now String. NullisBlank is now NullIsBlank. (Note the capital I.) Similar changes for NullisNull and NullisZero. ResNSel is now SimpleResult. Result is now StoreQueryResult. ResUse is now UseQueryResult. SQLString is now SQLTypeAdapter. When first building existing code against this version, you may find it helpful to define the macro MYSQLPP_OLD_CLASS_NAMES in your program’s build options. This will turn on some macros that set up aliases for the new class names matching their corresponding old names. Then, when you’ve fixed up any other issues that may prevent your program from building with the new MySQL++, you can turn it back off and fix up any class name differences. If you were only using ColData in a BLOB context, you should use sql_blob or one of the related typedefs defined in lib/sql_types.h instead, to insulate your code from changes like these. The SQLString change shouldn’t affect you, as this class was not designed to be used by end user code. But, due to the old name and the fact that it used to derive from std::string, some might have been tempted to use it as an enhanced std::string. Such code will undoubtedly break, but can probably be fixed by just changing it to use std::string instead. Connection class changes The option setting mechanism has been redesigned. (Yes, again.) There used to be an enum in Connection with a value for each option we understood, and an overload of Connection::set_option() for each argument type we understood. It was possible to pass any option value to any set_option() overload, and the problem would only be detected at run time. Now each option is represented by a class derived from the new Option abstract base class, and set_option() simply takes a pointer to one of these objects. See examples/multiquery.cpp for the syntax. Since each Option subclass takes only the parameter types it actually understands, it’s now completely type-safe at compile time. The new option setting mechanism also has the virtue of being more powerful so it let us replace several existing things within Connection with new options: Replaced enable_ssl() with SslOption. Replaced the compress parameter to the Connection create-and-connect constructor and Connection::connect() method with CompressOption. Replaced the connect_timeout parameter with ConnectTimeoutOption. Defined Option subclasses for each of the flags you would previously set using the client_flag parameter. There are about a dozen of these, so instead of listing them, look in lib/options.h for something with a similar name. Collapsed Connection’s host, port, and socket_name parameters down into a new combined server parameter which is parsed to determine what kind of connection you mean. These interfaces are still compatible with v2.3 and earlier up through the port parameter. Moved Connection::affected_rows(), info() and insert_id() methods to class Query, as they relate to the most recently-executed query. Changed the return type of Connection::ping() from int to bool. If you were calling ping() in bool context or using its return value in bool context, you will need to reverse the sense of the test because the previous return code used zero to mean success. Now it returns true to indicate success. Renamed several methods: Use client_version() instead of api_version() or client_info(). Use ipc_version() instead of host_info(). Use protocol_version() instead of proto_info(). Use server_version() instead of server_info(). Use status() instead of stat(). Also, removed close() in favor of disconnect(), which has always done the same thing. Date and Time class changes The sql_timestamp typedef is now an alias for DateTime, not Time. There used to be implicit conversion constructors from ColData (now String), std::string and const char* for the Date, DateTime, and Time classes. It’s still possible to do these conversions, but only explicitly. (This had to be done to make Null<T> work in SSQLSes.) The most likely place to run into problems as a result of this change is in code like this: void some_function(const mysqlpp::DateTime& dt); some_function("2007-12-22"); The function call needs to be changed to: some_function(mysqlpp::DateTime("2007-12-22")); Exception changes If an error occurs during the processing of a “use” query (as opposed to the initial execution) we throw the new UseQueryError exception instead of BadQuery. If you pass bad values to the Row ctor so that it can’t initialize itself properly, it throws the ObjectNotInitialized exception instead of BadQuery. Together, these two changes mean that BadQuery is now used solely to indicate a problem executing the actual SQL query statement. Field and Fields class changes Field is now a real C++ class, not just a typedef for the corresponding C API class. Major portability impacts are: It has no public data members. Where sensible, there is a public accessor function of the same name as the corresponding field in the C API structure. The main exception to this is the flags data member. This is a bitfield in the C API data structure and you had to use MySQL-specific constants to break values out of it. MySQL++’s new Field class provides a public member function returning bool for each of these flags. The new class doesn’t include all of the data members from the C API version. We left out those that aren’t used within MySQL++ or its examples, or whose function we couldn’t understand. Basically, if we couldn’t document a reason to use it, we left it out. Fields used to be a std::vector work-alike which worked with the C API to access fields and return them as though they were simply contained directly within the Fields object. Now that we have a real MySQL++ class to hold information about each field without reference to the C API, we were able to replace the Fields class with: typedef std::vector<Field> Fields; If anything, this should give a pure superset of the old functionality, but it’s possible it could break end user code. Query class changes If you were using char as an 8-bit integer in query building, there are several places in MySQL++ v3 where it will now be treated as a single-character string. MySQL++ has had the tiny_int class for many years now specifically to provide a true 8-bit integer without the semantic confusion surrounding the old C char type. Either use tiny_int, or use the SQL type aliases sql_tinyint and sql_tinyint_unsigned instead. The ‘r’ and ‘R’ template query parameter modifiers were removed. They made the library do quoting and both quoting and escaping (respectively) regardless of the data type of the parameter. There are no corresponding Query stream manipulators, so for symmetery we had to decide whether to add such manipulators or remove the tquery modifiers. There should never be a reason to force quoting or escaping other than to work around a MySQL++ bug, and it’s better to just fix the bug than work around it, so removed the tquery modifiers. Query::store_next() and Result::fetch_row() no longer throw the EndOfResults and EndOfResultSets exceptions; these are not exceptional conditions! These methods simply return false when you hit the end of the result set now. Renamed Query::def to Query::template_defaults to make its purpose clearer. Removed Query::preview(). The most direct replacement for this set of overloaded methods is the parallel set of str() methods, which were just aliases before. (Chose str() over preview() because it’s standard C++ nomenclature.) But if you’re just looking to get a copy of a built query string and you aren’t using template queries, you can now insert the Query into a stream and get the same result. For example, a lot of code in the examples that used to say things like: cout << query.preview() << endl; now looks like this: cout << query << endl; Result, ResUse, and ResNSel class changes In addition to the class name changes described above, UseQueryResult is no longer StoreQueryResult’s base class. There is a new abstract class called ResultBase containing much of what used to be in ResUse, and it is the base of both of these concrete result set types. This should only affect your code if you were using ResUse references to refer to Result objects. Removed a bunch of duplicate methods: Use num_fields() instead of columns(). Use field_names() instead of names(). Use num_rows() instead of rows(). Use field_types() instead of types(). Renamed several methods for “grammar” reasons. For example, some methods returned a single object but had a “plural” name, implying that it returned a container of objects. In cases like this, we changed the name to agree with the return value. Some of these also fall into the duplicate method category above: Use field(unsigned int) instead of fields(unsigned int). Use field_num(const std::string&) instead of names(const std::string&). Use field_name(int) instead of names(int). Use field_type(int) instead of types(int). Removed several “smelly” methods: purge(): was an internal implementation detail, not something for end user code to call raw_result(): end user code shouldn’t be digging down to the C API data structures, but if you really need something like this, look at the implementation of Query::storein(). Its workings will probably be educational. reset_names(): no reason to call this, especially now that the field name list is initialized once at startup and then never changed reset_field_names(): just an alias for previous reset_types(): same argument as for reset_names() reset_field_types(): just an alias for previous ResUse::field_num() would unconditionally throw a BadFieldName exception when you asked for a field that doesn’t exist. Now, if exceptions are disabled on the object, it just returns -1. SimpleResult’s member variables are all now private, and have read-only accessor functions of the same name. Code like this used to work: mysqlpp::Row row; mysqlpp::Result::size_type i; for (i = 0; row = res[i]; ++i) { // Do something with row here } That is, indexing past the end of a “store” result set would just return an empty row object, which tests as false in bool context, so it ends the loop. Now that StoreQueryResult is a std::vector derivative, this either crashes your program or causes the standard library to throw an exception, depending on what debugging features your version of STL has. The proper technique is: mysqlpp::Row row; mysqlpp::StoreQueryResult::size_type i; for (i = 0; i < res.num_rows(); ++i) { row = res[i]; // Do something with row here } ...or, in a more C++ish idiom: mysqlpp::Row row; mysqlpp::StoreQueryResult::const_iterator it; for (it = res.begin(); it != res.end(); ++it) { row = *it; // Do something with row here } Row class changes Removed Row::raw_data(), raw_size() and raw_string(). These were useful with BLOB data back when MySQL++ didn’t handle embedded null characters very well, and when copies of ColData objects were expensive. Neither is true now, so they have no value any more. Equivalent calls are: mysqlpp::String s = row[0]; s.data(); // raw_data() equivalent s.length(); // raw_size() equivalent std::string(s.data(), s.length()); // raw_string() equivalent Row::operator[](const char*) would unconditionally throw a BadFieldName exception when you asked for a field that doesn’t exist. Now, if exceptions are disabled on the Row object, it just returns a reference to an empty String object. You can tell when this happens because such an object tests as false in bool context. Specialized SQL Structure (SSQLS) changes Renamed custom* to ssqls*. There is a backwards-compatibility header custom.h which includes ssqls.h for you, but it will go away in a future version of MySQL++. SSQLSes get populated by field name now, not by field order. In v2, it was absolutely required that your SSQLS had its fields declared in exactly the same order as the fields in the database server, and there could be no gaps. An ALTER TABLE command would almost always necessitate redefining the corresponding SSQLS and rebuilding your program. Some alterations actually made using SSQLS impossible. For the most part, this change just gives your program additional flexibility in the face of future changes. However, code that was taking advantage of this low-level fact will break when moving to v3. Before I explain how, let’s go over the high-level functional changes you’ll find in v3’s SSQLS mechanism. Because MySQL++ no longer needs the SSQLS field order to match the SQL field order, the sql_create_c_order_* SSQLS creation macro was dropped in v3. We were also able to drop the ordering parameters from sql_create_complete_*. That in turn means there is no longer a difference between the way it and sql_create_c_names_* work, so the latter was also dropped. Thus, there are now only two groups of SSQLS creation macros left: sql_create_*, which works pretty much as it always has, and sql_create_complete_*, which is the same except for the lack of ordering parameters. In general, you should be using sql_create_* for all SSQLSes unless you need to use different names for data members in C++ than you use for the corresponding columns in SQL. In that case, use sql_create_complete_* instead. In v2, it was possible to have different SQL column names than SSQLS data member names while still using sql_create_* if you only used SSQLS for data retrieval.In MySQL++ v2, data retreival (Query::storein(), SSQLS(const Row& other), etc.) worked fine regardless of whether your SSQLS field names matched those in the corresponding SQL table, because the SSQLS was populated by position, not by field name. Thus, if all you used SSQLS for was data retrieval, you could define your structures with sql_create_* in v2. This was never recommended, because such an SSQLS wouldn’t work with other features of MySQL++ like Query::insert() because they depend on being able to map names from C++ to SQL and back. You needed to use sql_create_c_names_* to make these features work in v2 in the face of a naming scheme difference between C++ and SQL. In v3, you must use sql_create_complete_* for absolutely all uses of SSQLS when you want the C++ field names to differ from the SQL column names. The new Null<T> support in SSQLSes causes an internal compiler error in Visual C++ 2003. (VC++ 2005 and newer have no trobule with it.) A poll on the mailing list says there aren’t many people still stuck on this version, so we just ifdef’d out the SSQLS mechanism and all the examples that use it when built with VC++ 2003. If this affects you, see for suggestions on ways to cope. If you are using types other than MySQL++’s sql_* ones These typedefs have been available since MySQL++ v2.1. in your SSQLSes, code that previously worked may now see TypeLookupFailed exceptions. (This can be thrown even if exceptions are otherwise disabled in MySQL++.) This version of MySQL++ is stricter about mapping SQL to C++ type information, and vice versa. If the library can’t find a suitable mapping from one type system to the other, it throws this exception, because its only other option would be to crash or raise an assertion. This typically happens when building SQL queries, so you can probably handle it the same way as if the subsequent query excecution failed. If you’re catching the generic mysqlpp::Exception, your error handling code might not need to change. If you see this exception, it does mean you need to look into your use of data types, though. The table that controls this is mysql_type_info::types, defined at the top of lib/type_info.cpp. Every data type in lib/sql_types.h has a corresponding record in this table, so if you stick to those types, you’ll be fine. It’s also okay to use types your C++ compiler can convert directly to these predefined types. The _table static member variable for each SSQLS is now private. The recommended way to access this remains unchanged: the table() static member function. table() used to return a modifiable reference to the table name. Now there are two overloads, one which returns an unmodifiable pointer to the table name, and the other which takes const char* so you can override the default table name. So, the code we used to recommend for changing the SSQLS’s table name: my_ssqls_type::table() = "MyTableName"; now needs to be: my_ssqls_type::table("MyTableName"); Miscellaneous changes MySQL++ does quoting and escaping much more selectively now. Basically, if the library can tell you’re not building a SQL query using one of the standard methods, it assumes you’re outputting values for human consumption, so it disables quoting and SQL escaping. If you need to build your own mechanism to replace this, quoting is easy to do, and Query::escape_string() can do SQL escaping for you. Removed success() in Connection, Query and SimpleResult (neé ResNSel) and simply made these classes testable in bool context to get the same information. An additional change in Connection is that it used to be considered “unsuccessful” when the connection was down. Since the sense of this test is now whether the object is in a good state, it only returns false when the connection attempt fails. Call Connection::is_connected() if you just want to test whether the connection is up. The debug mode build of the library now has a "_d" suffix for Visual C++, and Xcode. This lets you have both versions installed without conflict. The release build uses the current naming scheme. If you have an existing program building against MySQL++ on these platforms, you’ll need to change your build options to use the new name in debug mode. Renamed NO_LONG_LONGS to MYSQLPP_NO_LONG_LONGS to avoid a risk of collision in the global macro namespace. v3.0.7 Most MySQL++ classes with at() or operator []() methods now throw the new exception when you pass an out-of-range index. These methods variously either did not check their indices, or threw std::out_of_range when passed a bad index. I say “most” because there is at least one MySQL++ class that doesn’t follow this rule. Fields is just a typedef for a specialization of std::vector, and the Standard has its own rules for index checking. ABI Changes This section documents those library changes that require you to rebuild your program so that it will link with the new library. Most of the items in the previous section are also ABI changes, but this section is only for those items that shouldn’t require any code changes in your program. If you were going to rebuild your program after installing the new library anyway, you can probably ignore this section. v1.7.18 The Query classes now subclass from stringstream instead of the deprecated strstream. v1.7.19 Fixed several const-incorrectnesses in the Query classes. v1.7.22 Removed “reset query” parameters from several Query class members. This is not an API change, because the parameters were given default values, and the library would ignore any value other than the default. So, any program that tried to make them take another value wouldn’t have worked anyway. v1.7.24 Some freestanding functions didn’t get moved into namespace mysqlpp when that namespace was created. This release fixed that. It doesn’t affect the API if your program’s C++ source files say using namespace mysqlpp within them. v2.0.0 Removed Connection::infoo(). (I’d call this an API change if I thought there were any programs out there actually using this...) Collapsed the Connection constructor taking a bool (for setting the throw_exceptions flag) and the default constructor into a single constructor using a default for the parameter. Classes Connection and Query are now derived from the Lockable interface, instead of implementing their own lock/unlock functions. In several instances, functions that took objects by value now take them by const reference, for efficiency. Merged SQLQuery class’s members into class Query. Merged RowTemplate class’s members into class Row. Reordered member variable declarations in some classes. The most common instance is when the private section was declared before the public section; it is now the opposite way. This can change the object’s layout in memory, so a program linking to the library must be rebuilt. Simplified the date and time class hierarchy. used to derive from mysql_date, used to derive from mysql_time, and used to derive from both of those. All three of these classes used to derive from mysql_dt_base. All of the mysql_* classes’ functionality and data has been folded into the leaf classes, and now the only thing shared between them is their dependence on the template. Since the leaf classes’ interface has not changed and end-user code shouldn’t have been using the other classes, this shouldn’t affect the API in any practical way. mysql_type_info now always initializes its private num member. Previously, this would go uninitialized if you used the default constructor. Now there is no default ctor, but the ctor taking one argument (which sets num) has a default. v3.0.0 Removed reset_query parameters from Query member functions. None of these have been honored at least going back to v1.7.9, so this is not an API change. As of this version, Query now automatically detects when it can safely reset itself after executing a query, so it’s not necessary to ask for a reset except when using template queries. Removed overloads of Query::execute(), store(), and use() that take only a const char*. This is not an API change because there was an equivalent call chain for this already. This change just snaps a layer of indirection. Query::error() is now const and returns const char* instead of a std::string by value. Removed Lockable mechanism as it was conceptually flawed. Connection and Query consequently no longer derive from Lockable. Since it was basically useless in prior versions, it can’t be construed as an API change. v3.0.1 Connection::thread_aware(), thread_start() and thread_end() are now static methods, so a program can call them before creating a connection. Ditto for DBDriver methods of the same name. ConnectionPool::release() is now virtual, so a subclass can override it. v3.0.2 ConnectionPool::grab() is now virtual; same reason as above. Query can now be tested in bool context, as was intended for v3.0.0. Had to change the “safe bool” method signature to make it happen, so technically it’s an API change, but it’s still used the same way. v3.1.0 The addition of a few new virtual methods to ConnectionPool inadvertently changed the library ABI. I knew adding fields changed the ABI, but erroneously assumed that the inverse of that truth — that adding methods was always safe — was also true. Adding normal methods is safe, but adding virtual methods breaks the ABI because it changes the class’s vtable size. That left us with two bad choices: either we could come out with a 3.1.1 that removed these methods to restore the prior ABI, or we could just declare this the “new ABI” and move on, resolving not to fall into this trap again. We’ve chosen the latter path. mysql++-3.2.5/doc/userman/simple2.txt000644 000765 000024 00000003321 13515046514 020155 0ustar00tangentstaff000000 000000 #include "cmdline.h" #include "printdata.h" #include #include #include using namespace std; int main(int argc, char *argv[]) { // Get database access parameters from command line mysqlpp::examples::CommandLine cmdline(argc, argv); if (!cmdline) { return 1; } // Connect to the sample database. mysqlpp::Connection conn(false); if (conn.connect(mysqlpp::examples::db_name, cmdline.server(), cmdline.user(), cmdline.pass())) { // Retrieve the sample stock table set up by resetdb mysqlpp::Query query = conn.query("select * from stock"); mysqlpp::StoreQueryResult res = query.store(); // Display results if (res) { // Display header cout.setf(ios::left); cout << setw(31) << "Item" << setw(10) << "Num" << setw(10) << "Weight" << setw(10) << "Price" << "Date" << endl << endl; // Get each row in result set, and print its contents for (size_t i = 0; i < res.num_rows(); ++i) { cout << setw(30) << res[i]["item"] << ' ' << setw(9) << res[i]["num"] << ' ' << setw(9) << res[i]["weight"] << ' ' << setw(9) << res[i]["price"] << ' ' << setw(9) << res[i]["sdate"] << endl; } } else { cerr << "Failed to get stock table: " << query.error() << endl; return 1; } return 0; } else { cerr << "DB connection failed: " << conn.error() << endl; return 1; } } mysql++-3.2.5/doc/userman/simple3.txt000644 000765 000024 00000004217 13515046514 020163 0ustar00tangentstaff000000 000000 #include "cmdline.h" #include "printdata.h" #include #include #include using namespace std; int main(int argc, char *argv[]) { // Get database access parameters from command line mysqlpp::examples::CommandLine cmdline(argc, argv); if (!cmdline) { return 1; } // Connect to the sample database. mysqlpp::Connection conn(false); if (conn.connect(mysqlpp::examples::db_name, cmdline.server(), cmdline.user(), cmdline.pass())) { // Ask for all rows from the sample stock table and display // them. Unlike simple2 example, we retreive each row one at // a time instead of storing the entire result set in memory // and then iterating over it. mysqlpp::Query query = conn.query("select * from stock"); if (mysqlpp::UseQueryResult res = query.use()) { // Display header cout.setf(ios::left); cout << setw(31) << "Item" << setw(10) << "Num" << setw(10) << "Weight" << setw(10) << "Price" << "Date" << endl << endl; // Get each row in result set, and print its contents while (mysqlpp::Row row = res.fetch_row()) { cout << setw(30) << row["item"] << ' ' << setw(9) << row["num"] << ' ' << setw(9) << row["weight"] << ' ' << setw(9) << row["price"] << ' ' << setw(9) << row["sdate"] << endl; } // Check for error: can't distinguish "end of results" and // error cases in return from fetch_row() otherwise. if (conn.errnum()) { cerr << "Error received in fetching a row: " << conn.error() << endl; return 1; } return 0; } else { cerr << "Failed to get stock item: " << query.error() << endl; return 1; } } else { cerr << "DB connection failed: " << conn.error() << endl; return 1; } } mysql++-3.2.5/doc/userman/transaction.txt000644 000765 000024 00000006024 13515046514 021132 0ustar00tangentstaff000000 000000 #include "cmdline.h" #include "printdata.h" #include "stock.h" #include #include using namespace std; int main(int argc, char *argv[]) { // Get database access parameters from command line mysqlpp::examples::CommandLine cmdline(argc, argv); if (!cmdline) { return 1; } try { // Establish the connection to the database server. mysqlpp::Connection con(mysqlpp::examples::db_name, cmdline.server(), cmdline.user(), cmdline.pass()); // Show initial state mysqlpp::Query query = con.query(); cout << "Initial state of stock table:" << endl; print_stock_table(query); // Insert a few rows in a single transaction set { // Use a higher level of transaction isolation than MySQL // offers by default. This trades some speed for more // predictable behavior. We've set it to affect all // transactions started through this DB server connection, // so it affects the next block, too, even if we don't // commit this one. mysqlpp::Transaction trans(con, mysqlpp::Transaction::serializable, mysqlpp::Transaction::session); stock row("Sauerkraut", 42, 1.2, 0.75, mysqlpp::sql_date("2006-03-06"), mysqlpp::null); query.insert(row); query.execute(); cout << "\nRow inserted, but not committed." << endl; cout << "Verify this with another program (e.g. simple1), " "then hit Enter." << endl; getchar(); cout << "\nCommitting transaction gives us:" << endl; trans.commit(); print_stock_table(query); } // Now let's test auto-rollback { // Start a new transaction, keeping the same isolation level // we set above, since it was set to affect the session. mysqlpp::Transaction trans(con); cout << "\nNow adding catsup to the database..." << endl; stock row("Catsup", 3, 3.9, 2.99, mysqlpp::sql_date("2006-03-06"), mysqlpp::null); query.insert(row); query.execute(); } cout << "\nNo, yuck! We don't like catsup. Rolling it back:" << endl; print_stock_table(query); } catch (const mysqlpp::BadQuery& er) { // Handle any query errors cerr << "Query error: " << er.what() << endl; return -1; } catch (const mysqlpp::BadConversion& er) { // Handle bad conversions cerr << "Conversion error: " << er.what() << endl << "\tretrieved data size: " << er.retrieved << ", actual size: " << er.actual_size << endl; return -1; } catch (const mysqlpp::Exception& er) { // Catch-all for any other MySQL++ exceptions cerr << "Error: " << er.what() << endl; return -1; } return 0; } mysql++-3.2.5/doc/userman/common.xsl000644 000765 000024 00000001177 13515046514 020070 0ustar00tangentstaff000000 000000 mysql++-3.2.5/doc/userman/userman.dbx000644 000765 000024 00000003462 13515046540 020217 0ustar00tangentstaff000000 000000 %xinclude; ]>
MySQL++ v3.2.5 User Manual Kevin Atkinson Sinisa Milivojevic Monty Widenius Warren Young 1998-2001, 2005-2019 Kevin Atkinson (original author) MySQL AB Educational Technology Resources
mysql++-3.2.5/doc/userman/store_if.txt000644 000765 000024 00000004073 13515046514 020421 0ustar00tangentstaff000000 000000 #include "cmdline.h" #include "printdata.h" #include "stock.h" #include #include #include // Define a functor for testing primality. struct is_prime { bool operator()(const stock& s) { if ((s.num == 2) || (s.num == 3)) { return true; // 2 and 3 are trivial cases } else if ((s.num < 2) || ((s.num % 2) == 0)) { return false; // can't be prime if < 2 or even } else { // The only possibility left is that it's divisible by an // odd number that's less than or equal to its square root. for (int i = 3; i <= sqrt(double(s.num)); i += 2) { if ((s.num % i) == 0) { return false; } } return true; } } }; int main(int argc, char *argv[]) { // Get database access parameters from command line mysqlpp::examples::CommandLine cmdline(argc, argv); if (!cmdline) { return 1; } try { // Establish the connection to the database server. mysqlpp::Connection con(mysqlpp::examples::db_name, cmdline.server(), cmdline.user(), cmdline.pass()); // Collect the stock items with prime quantities std::vector results; mysqlpp::Query query = con.query(); query.store_if(results, stock(), is_prime()); // Show the results print_stock_header(results.size()); std::vector::const_iterator it; for (it = results.begin(); it != results.end(); ++it) { print_stock_row(it->item.c_str(), it->num, it->weight, it->price, it->sDate); } } catch (const mysqlpp::BadQuery& e) { // Something went wrong with the SQL query. std::cerr << "Query failed: " << e.what() << std::endl; return 1; } catch (const mysqlpp::Exception& er) { // Catch-all for any other MySQL++ exceptions std::cerr << "Error: " << er.what() << std::endl; return 1; } return 0; } mysql++-3.2.5/doc/userman/unicode.dbx000644 000765 000024 00000026414 13515046514 020176 0ustar00tangentstaff000000 000000 Using Unicode with MySQL++ A Short History of Unicode ...with a focus on relevance to MySQL++ In the old days, computer operating systems only dealt with 8-bit character sets. That only allows for 256 possible characters, but the modern Western languages have more characters combined than that alone. Add in all the other languages of the world plus the various symbols people use in writing, and you have a real mess! Since no standards body held sway over things like international character encoding in the early days of computing, many different character sets were invented. These character sets weren’t even standardized between operating systems, so heaven help you if you needed to move localized Greek text on a DOS box to a Russian Macintosh! The only way we got any international communication done at all was to build standards on top of the common 7-bit ASCII subset. Either people used approximations like a plain “c” instead of the French “ç”, or they invented things like HTML entities (“&ccedil;” in this case) to encode these additional characters using only 7-bit ASCII. Unicode solves this problem. It encodes every character used for writing in the world, using up to 4 bytes per character. Before emoji became popular, the subset covering the most economically valuable cases fit into the lower 65536 code points, so you could encode most texts using only two bytes per character. Many nominally Unicode-aware programs only support this subset, called the Basic Multilingual Plane, or BMP. Unfortunately, Unicode was invented about two decades too late for Unix and C. Those decades of legacy created an immense inertia preventing a widespread move away from 8-bit characters. MySQL and C++ come out of these older traditions, and so they share the same practical limitations. MySQL++ doesn’t have any code in it for Unicode conversions, and it likely never will; it just passes data along unchanged from the underlying MySQL C API, so you still need to be aware of these underlying issues. During the development of the Plan 9 operating system (a kind of successor to Unix) Ken Thompson invented the UTF-8 encoding. UTF-8 is a superset of 7-bit ASCII and is compatible with C strings, since it doesn’t use 0 bytes anywhere as multi-byte Unicode encodings do. As a result, many programs that deal in text will cope with UTF-8 data even though they have no explicit support for UTF-8. Follow the last link above to see how the design of UTF-8 allows this. Unicode in MySQL Since MySQL comes out of the Unix world, and it predates the widespread use of UTF-8 in Unix, the early versinos of MySQL had no explicit support for Unicode. From the start, you could store raw UTF-8 strings, but it wouldn’t know how to do things like sort a column of UTF-8 strings. MySQL 4.1 added the first explicit support for Unicode. This version of MySQL supported only the BMP, meaning that if you told it to expect strings to be in UTF-8, it could only use up to 3 bytes per character. MySQL 5.5 was the first release to completely support Unicode. Because the BMP-only Unicode support had been in the wild for about 6 years by that point, and changing to the new character set requires a table rebuild, the new one was called “utf8mb4” rather than change the longstanding meaning of “utf8” in MySQL. This release also added a new alias for the old UTF-8 subset character set, “utf8mb3.” Finally, in MySQL 8.0, “utf8mb4” became the default character set. For backwards compatibility, “utf8” remains an alias for “utf8mb3.” As of MySQL++ 3.2.4, we’ve defined the MYSQLPP_UTF8_CS and MYSQLPP_UTF8_COL macros which expand to “utf8mb4” and “utf8mb4_general_ci” when you build MySQL++ against MySQL 5.5 and newer and to “utf8” and “utf8_general_ci” otherwise. We use these macros in our resetdb example; you're welcome to use them in your code as well. Unicode on Unixy Systems Linux and Unix have system-wide UTF-8 support these days. If your operating system is of 2001 or newer vintage, it probably has such support. On such a system, the terminal I/O code understands UTF-8 encoded data, so your program doesn’t require any special code to correctly display a UTF-8 string. If you aren’t sure whether your system supports UTF-8 natively, just run the simple1 example: if the first item has two high-ASCII characters in place of the “ü” in “Nürnberger Brats”, you know it’s not handling UTF-8. If your Unix doesn’t support UTF-8 natively, it likely doesn’t support any form of Unicode at all, for the historical reasons I gave above. Therefore, you will have to convert the UTF-8 data to the local 8-bit character set. The standard Unix function iconv() can help here. If your system doesn’t have the iconv() facility, there is a free implementation available from the GNU Project. Another library you might check out is IBM’s ICU. This is rather heavy-weight, so if you just need basic conversions, iconv() should suffice. Unicode on Windows Each Windows API function that takes a string actually comes in two versions. One version supports only 1-byte “ANSI” characters (a superset of ASCII), so they end in 'A'. Windows also supports the 2-byte subset of Unicode called UCS-2Since Windows XP, Windows actually uses the UTF-16 encoding, not UCS-2. This means that if you use characters beyond the 16-bit BMP range, they get encoded as 4-byte characters. But again, since the most economically valuable subset of Unicode is the BMP if you ignore emoji, many programs ignore this distinction and assume Unicode strings on Windows are always 2 bytes per character.. Some call these “wide” characters, so the other set of functions end in 'W'. The MessageBox() API, for instance, is actually a macro, not a real function. If you define the UNICODE macro when building your program, the MessageBox() macro evaluates to MessageBoxW(); otherwise, to MessageBoxA(). Since MySQL uses the UTF-8 Unicode encoding and Windows uses UCS-2, you must convert data when passing text between MySQL++ and the Windows API. Since there’s no point in trying for portability — no other OS I’m aware of uses UCS-2 — you might as well use platform-specific functions to do this translation. Since version 2.2.2, MySQL++ ships with two Visual C++ specific examples showing how to do this in a GUI program. (In earlier versions of MySQL++, we did Unicode conversion in the console mode programs, but this was unrealistic.) How you handle Unicode data depends on whether you’re using the native Windows API, or the newer .NET API. First, the native case: // Convert a C string in UTF-8 format to UCS-2 format. void ToUCS2(LPTSTR pcOut, int nOutLen, const char* kpcIn) { MultiByteToWideChar(CP_UTF8, 0, kpcIn, -1, pcOut, nOutLen); } // Convert a UCS-2 string to C string in UTF-8 format. void ToUTF8(char* pcOut, int nOutLen, LPCWSTR kpcIn) { WideCharToMultiByte(CP_UTF8, 0, kpcIn, -1, pcOut, nOutLen, 0, 0); } These functions leave out some important error checking, so see examples/vstudio/mfc/mfc_dlg.cpp for the complete version. If you’re building a .NET application (such as, perhaps, because you’re using Windows Forms), it’s better to use the .NET libraries for this: // Convert a C string in UTF-8 format to a .NET String in UCS-2 format. String^ ToUCS2(const char* utf8) { return gcnew String(utf8, 0, strlen(utf8), System::Text::Encoding::UTF8); } // Convert a .NET String in UCS-2 format to a C string in UTF-8 format. System::Void ToUTF8(char* pcOut, int nOutLen, String^ sIn) { array<Byte>^ bytes = System::Text::Encoding::UTF8->GetBytes(sIn); nOutLen = Math::Min(nOutLen - 1, bytes->Length); System::Runtime::InteropServices::Marshal::Copy(bytes, 0, IntPtr(pcOut), nOutLen); pcOut[nOutLen] = '\0'; } Unlike the native API versions, these examples are complete, since the .NET platform handles a lot of things behind the scenes for us. We don’t need any error-checking code for such simple routines. All of this assumes you’re using Windows NT or one of its direct descendants: Windows 2000, Windows XP, Windows Vista, Windows 7, or any “Server” variant of Windows. Windows 95 and its descendants (98, ME, and CE) do not support Unicode. They still have the 'W' APIs for compatibility, but they just smash the data down to 8-bit and call the 'A' version for you. For More Information The Unicode FAQs page has copious information on this complex topic. When it comes to Unix and UTF-8 specific items, the UTF-8 and Unicode FAQ for Unix/Linux is a quicker way to find basic information. mysql++-3.2.5/doc/userman/threads.dbx000644 000765 000024 00000042074 13515046514 020202 0ustar00tangentstaff000000 000000 Using MySQL++ in a Multithreaded Program MySQL++ is not “thread safe” in any meaningful sense. MySQL++ contains very little code that actively prevents trouble with threads, and all of it is optional. We have done some work in MySQL++ to make thread safety achievable, but it doesn’t come for free. The main reason for this is that MySQL++ is generally I/O-bound, not processor-bound. That is, if your program’s bottleneck is MySQL++, the ultimate cause is usually the I/O overhead of using a client-server database. Doubling the number of threads will just let your program get back to waiting for I/O twice as fast. Since threads are evil and generally can’t help MySQL++, the only optional thread awareness features we turn on in the shipping version of MySQL++ are those few that have no practical negative consequences. Everything else is up to you, the programmer, to evaluate and enable as and when you need it. We’re going to assume that you are reading this chapter because you find yourself needing to use threads for some other reason than to speed up MySQL access. Our purpose here is limited to setting down the rules for avoiding problems with MySQL++ in a multi-threaded program. We won’t go into the broader issues of thread safety outside the scope of MySQL++. You will need a grounding in threads in general to get the full value of this advice. Build Issues Before you can safely use MySQL++ with threads, there are several things you must do to get a thread-aware build: Build MySQL++ itself with thread awareness turned on. On Linux, Cygwin and Unix (OS X, *BSD, Solaris...), pass the --enable-thread-check flag to the configure script. Beware, this is only a request to the configure script to look for thread support on your system, not a requirement to do or die: if the script doesn’t find what it needs to do threading, MySQL++ will just get built without thread support. See README-Unix.txt for more details. On Windows, if you use the Visual C++ project files or the MinGW Makefile that comes with the MySQL++ distribution, threading is always turned on, due to the nature of Windows. If you build MySQL++ in some other way, such as with Dev-Cpp (based on MinGW) you’re on your own to enable thread awareness. Link your program to a thread-aware build of the MySQL C API library. If you use a binary distribution of MySQL on Unixy systems (including Cygwin) you usually get two different versions of the MySQL C API library, one with thread support and one without. These are typically called libmysqlclient and libmysqlclient_r, the latter being the thread-safe one. (The “_r” means reentrant.) If you’re using the Windows binary distribution of MySQL, you should have only one version of the C API library, which should be thread-aware. If you have two, you probably just have separate debug and optimized builds. See README-Visual-C++.txt or README-MinGW.txt for details. If you build MySQL from source, you might only get one version of the MySQL C API library, and it can have thread awareness or not, depending on your configuration choices. Enable threading in your program’s build options. This is different for every platform, but it’s usually the case that you don’t get thread-aware builds by default. Depending on the platform, you might need to change compiler options, linker options, or both. See your development environment’s documentation, or study how MySQL++ itself turns on thread-aware build options when requested. Connection Management The MySQL C API underpinning MySQL++ does not allow multiple concurrent queries on a single connection. You can run into this problem in a single-threaded program, too, which is why we cover the details elsewhere, in . It’s a thornier problem when using threads, though. The simple fix is to just create a separarate object for each thread that needs to make database queries. This works well if you have a small number of threads that need to make queries, and each thread uses its connection often enough that the server doesn’t time out waiting for queries. If you have lots of threads or the frequency of queries is low, the connection management overhead will be excessive. To avoid that, we created the class. It manages a pool of Connection objects like library books: a thread checks one out, uses it, and then returns it to the pool as soon as it’s done with it. This keeps the number of active connections low. We suggest that you keep each connection’s use limited to a single variable scope for RAII reasons; we created a little helper called to make that easy. ConnectionPool has three methods that you need to override in a subclass to make it concrete: create(), destroy(), and max_idle_time(). These overrides let the base class delegate operations it can’t successfully do itself to its subclass. The ConnectionPool can’t know how to create() the Connection objects, because that depends on how your program gets login parameters, server information, etc. ConnectionPool also makes the subclass destroy() the Connection objects it created; it could assume that they’re simply allocated on the heap with new, but it can’t be sure, so the base class delegates destruction, too. Finally, the base class can’t know which connection idle timeout policy would make the most sense to the client, so it asks its subclass via the max_idle_time() method. ConnectionPool also allows you to override release(), if needed. For simple uses, it’s not necessary to override this. In designing your ConnectionPool derivative, you might consider making it a Singleton, since there should only be one pool in a program. Another thing you might consider doing is passing a object to Connection::set_option() in your create() override before returning the new Connection pointer. This will cause the underlying MySQL C API to try to reconnect to the database server if a query fails because the connection was dropped by the server. This can happen if the DB server is allowed to restart out from under your application. In many applications, this isn’t allowed, or if it does happen, you might want your code to be able to detect it, so MySQL++ doesn’t set this option for you automatically. Here is an example showing how to use connection pools with threads: The example works with both Windows native threads and with POSIX threads.The file examples/threads.h contains a few macros and such to abstract away the differences between the two threading models. Because thread-enabled builds are only the default on Windows, it’s quite possible for this program to do nothing on other platforms. See above for instructions on enabling a thread-aware build. If you write your code without checks for thread support like you see in the code above and link it to a build of MySQL++ that isn’t thread-aware, it will still try to run. The threading mechanisms fall back to a single-threaded mode when threads aren’t available. A particular danger is that the mutex lock mechanism used to keep the pool’s internal data consistent while multiple threads access it will just quietly become a no-op if MySQL++ is built without thread support. We do it this way because we don’t want to make thread support a MySQL++ prerequisite. And, although it would be of limited value, this lets you use ConnectionPool in single-threaded programs. You might wonder why we don’t just work around this weakness in the C API transparently in MySQL++ instead of suggesting design guidelines to avoid it. We’d like to do just that, but how? If you consider just the threaded case, you could argue for the use of mutexes to protect a connection from trying to execute two queries at once. The cure is worse than the disease: it turns a design error into a performance sap, as the second thread is blocked indefinitely waiting for the connection to free up. Much better to let the program get the “Commands out of sync” error, which will guide you to this section of the manual, which tells you how to avoid the error with a better design. Another option would be to bury ConnectionPool functionality within MySQL++ itself, so the library could create new connections at need. That’s no good because the above example is the most complex in MySQL++, so if it were mandatory to use connection pools, the whole library would be that much more complex to use. The whole point of MySQL++ is to make using the database easier. MySQL++ offers the connection pool mechanism for those that really need it, but an option it must remain. Helper Functions Connection has several thread-related static methods you might care about when using MySQL++ with threads. You can call Connection::thread_aware() to determine whether MySQL++ and the underlying C API library were both built to be thread-aware. I want to stress that thread awareness is not the same thing as thread safety: it’s still up to you to make your code thread-safe. If this method returns true, it just means it’s possible to achieve thread-safety, not that you actually have it. If your program’s connection-management strategy allows a thread to use a Connection object that another thread created, you need to know about Connection::thread_start(). This function sets up per-thread resources needed to make MySQL server calls. You don’t need to call it when you use the simple Connection-per-thread strategy, because this function is implicitly called the first time you create a Connection in a thread. It’s not harmful to call this function from a thread that previously created a Connection, just unnecessary. The only time it’s necessary is when a thread can make calls to the database server on a Connection that another thread created and that thread hasn’t already created a Connection itself. If you use ConnectionPool, you should call thread_start() at the start of each worker thread because you probably can’t reliably predict whether your grab() call will create a new Connection or will return one previously returned to the pool from another thread. It’s possible to conceive of situations where you can guarantee that each pool user always creates a fresh Connection the first time it calls grab(), but thread programming is complex enough that it’s best to take the safe path and always call thread_start() early in each worker thread. Finally, there’s the complementary method, Connection::thread_end(). Strictly speaking, it’s not necessary to call this. The per-thread memory allocated by the C API is small, it doesn’t grow over time, and a typical thread is going to need this memory for its entire run time. Memory debuggers aren’t smart enough to know all this, though, so they will gripe about a memory leak unless you call this from each thread that uses MySQL++ before that thread exits. Although its name suggests otherwise, Connection::thread_id() has nothing to do with anything in this chapter. Sharing MySQL++ Data Structures We’re in the process of making it safer to share MySQL++’s data structures across threads. Although things are getting better, it’s highly doubtful that all problems with this are now fixed. By way of illustration, allow me explain one aspect of this problem and how we solved it in MySQL++ 3.0.0. When you issue a database query that returns rows, you also get information about the columns in each row. Since the column information is the same for each row in the result set, older versions of MySQL++ kept this information in the result set object, and each kept a pointer back to the result set object that created it so it could access this common data at need. This was fine as long as each result set object outlived the Row objects it returned. It required uncommon usage patterns to run into trouble in this area in a single-threaded program, but in a multi-threaded program it was easy. For example, there’s frequently a desire to let one connection do the queries, and other threads process the results. You can see how avoiding lifetime problems here would require a careful locking strategy. We got around this in MySQL++ v3.0 by giving these shared data structures a lifetime independent of the result set object that intitially creates it. These shared data structures stick around until the last object needing them gets destroyed. Although this is now a solved problem, I bring it up because there are likely other similar lifetime and sequencing problems waiting to be discovered inside MySQL++. If you would like to help us find these, by all means, share data between threads willy-nilly. We welcome your crash reports on the MySQL++ mailing list. But if you’d prefer to avoid problems, it’s better to keep all data about a query within a single thread. Between this and the advice in prior sections, you should be able to use threads with MySQL++ without trouble. mysql++-3.2.5/doc/userman/incorporating.dbx000644 000765 000024 00000036321 13515046514 021424 0ustar00tangentstaff000000 000000 Using MySQL++ in Your Own Project Up to now, this manual has only discussed MySQL++ in conjunction with the example programs that come with the library. This chapter covers the steps you need to take to incorporate MySQL++ into your own projects. The first thing you have to do is include mysql++.h in each module that uses MySQL++. In modules that use SSQLS v1, you also need to include ssqls.h.MySQL++ has many header files, but the only one that isn’t intertwined with the rest is ssqls.h. mysql++.h brings in all of the others in the correct order. Some have tried to speed their build times by finding a subset of MySQL++ headers to include, but mysql++.h already does as much of this as is practical. MySQL++’s monolithic nature rules out finding a true subset of the library headers. At this point, your project probably still won’t compile, and it certainly won’t link. The remaining steps are dependent on the operating system and tools you are using. The rest of this chapter is broken up into several sections, one for each major platform type. You can skip over the sections for platforms you don’t use. Visual C++ Using MySQL++ in an MFC Project If you don’t already have a project set up, open Visual Studio, say File | New | Project, then choose Visual C++ | MFC | MFC Application. Go through the wizard setting up the project as you see fit. Once you have your project open, right click on your top-level executable in the Solution Explorer, choose Properties, and make the following changes. (Where it doesn’t specify Debug or Release, make the same change to both configurations.) Append the following to C/C++ | General | Additional Include Directories: C:\Program Files\MySQL\MySQL Connector C 6.1\include, C:\mysql++\include Under C/C++ | Code Generation change “Runtime Library” to “Multi-threaded Debug DLL (/MDd)” for the Debug configuration. For the Release configuration, make it “Multi-threaded DLL (/MD)”. For both Release and Debug builds, append the following to Linker | General | Additional Library Directories: C:\Program Files\MySQL\MySQL Connector C 6.1\lib, C:\mysql++\lib Connector/C does include debug libraries, but you will probably not need to use them. Under Linker | Input add the following to “Additional Dependencies” for the Debug configuration: libmysql.lib wsock32.lib mysqlpp_d.lib ...and then for the Release configuration: libmysql.lib wsock32.lib mysqlpp.lib This difference is because MySQL++’s Debug DLL and import library have a _d suffix so you can have both in the same directory without conflicts. You may want to study examples\vstudio\mfc\mfc.vcproj to see this in action. Note that some of the paths will be different, because it can use relative paths for mysqlpp.dll. Using MySQL++ in a Windows Forms C++/CLI Project Before you start work on getting MySQL++ working with your own program, you need to make some changes to the MySQL++ build settings. Open mysqlpp.sln, then right-click on the mysqlpp target and select Properties. Make the following changes for both the Debug and Release configurations: Under Configuration Properties | General, change “Common Language Runtime support” to the /clr setting. Under C/C++ | Code Generation, change “Enable C++ Exceptions” from “Yes (/EHsc)” to “Yes With SEH Exceptions (/EHa)” If you have already built MySQL++, be sure to perform a complete rebuild after changing these options. The compiler will emit several C4835 warnings after making those changes, which are harmless when using the DLL with a C++/CLI program, but which warn of real problems when using it with unmanaged C++. This is why MySQL++’s Windows installer (install.hta) offers the option to install the CLR version into a separate directory; use it if you need both managed and unmanaged versions installed! For the same reason, you might give some thought about where you install mysqlpp.dll on your end user’s machines when distributing your program. My recommendation is to install it in the same directory as the .exe file that uses it, rather than installing into a system directory where it could conflict with a mysqlpp.dll built with different settings. Once you have MySQL++ built with CLR support, open your program’s project. If you don’t already have a project set up, open Visual Studio, say File | New | Project, then choose Visual C++ | CLR | Windows Forms Application. Go through the wizard setting up the project as you see fit. The configuration process isn’t much different from that for an MFC project, so go through the list above first. Then, make the following changes particular to .NET and C++/CLI: Under Configuration Properties | General change the setting from /clr:pure to /clr. (You need mixed assembly support to allow a C++/CLI program to use a plain C++ library like MySQL++.) For the Linker | Input settings, you don’t need wsock32.lib. The mere fact that you’re using .NET takes care of that dependency for you. In the MFC instructions above, it said that you need to build it using the Multi-threaded DLL version of the C++ Runtime Library. That’s not strictly true for MFC, but it’s an absolute requirement for C++/CLI. See the Remarks in the MSDN article on the /clr switch for details. You may want to study examples\vstudio\wforms\wforms.vcproj to see all this in action. Note that some of the paths will be different, because it can use relative paths for mysqlpp_d.dll and mysqlpp.dll. Unixy Platforms: Linux, *BSD, OS X, Cygwin, Solaris... There are lots of ways to build programs on Unixy platforms. We’ll cover just the most generic way here, Makefiles. We’ll use a very simple example so it’s clear how to translate this to more sophisticated build systems such as GNU Autotools or Bakefile. “Hello, world!” for MySQL++ might look something like this: Here’s a Makefile for building that program: The *FLAGS lines are where all of the assumptions about file and path names are laid out. Probably at least one of these assumptions isn’t true for your system, and so will require changing. The trickiest line is the LDLIBS one. MySQL++ programs need to get built against both the MySQL and MySQL++ libraries, because MySQL++ is built on top of the MySQL C API libraryThe MySQL C API library is most commonly called libmysqlclient on Unixy systems, though it is also known as Connector/C. If you’re building a threaded program, use -lmysqlclient_r instead of -lmysqlclient here. (See for more details on building thread-aware programs.) On some systems, the order of libraries in the LDLIBS line is important: these linkers collect symbols from right to left, so the rightmost library needs to be the most generic. In this example, MySQL++ depends on MySQL, so the MySQL C API library is rightmost. You might need to add more libraries to the LDLIBS line. -lnsl, -lz and -lm are common. If you study how MySQL++ itself gets built on your system, you can see what it uses, and emulate that. You may be wondering why we have used both LDLIBS and LDFLAGS here. Some Makefiles you have seen collect both types of flags in a single variable. That can work if the variable is used in the right place in the link command. However, this particular Makefile is made with GNU make in mind, and uses its standard rules implicitly. Those rules are designed to use these two variables separately like this. If you were writing your own compilation rules, you could write them in such a way that you didn’t have to do this. Beyond that, we have a pretty vanilla Makefile, thanks in large part to the fact that the default make rules are fine for such a simple program. OS X Makefiles The generic Makefile instructions above cover most of what you need to know about using Makefiles on OS X. One thing that may trip you up on OS X is that it uses an uncommon dynamic linkage system. The easiest way to cope with this is to link your executables with the compiler, rather than call ld directly. Another tricky bit on OS X is the concept of Universal binaries. See README-Mac-OS-X.txt for details on building a Universal version of the MySQL++ library, if you need one. By default, you only get a version tuned for the system type you build it on. Xcode I have no information on how to incorporate MySQL++ in an Xcode project. Send a message to the MySQL++ mailing list if you can help out here. MinGW Makefiles The generic Makefile instructions above apply to MinGW’s version of GNU make as well. You will have some differences due to the platform, so here’s the adjusted Makefile: Note that I’ve used del instead of rm in the clean target. In the past, at least, MinGW make had some funny rules about whether commands in target rules would get run with sh.exe or with cmd.exe. I can’t currently get my installation of MinGW to do anything but use sh.exe by default, but that may be because I have Cygwin installed, which provides sh.exe. This explains the first line in the file, which overrides the default shell with cmd.exe, purely to get consistent behavior across platforms. If you knew all your platforms would have a better shell, you’d probably want to use that instead. Note the use of forward slashes in the path to the MySQL Connector/C development files. GNU make uses the backslash as an escape character, so you’d have to double them if you’re unwilling to use forward slashes. Third-Party MinGW IDEs (Dev-C++, Code::Blocks...) I have no information on how to do this. We’ve received reports on the mailing list from people that have made it work, but no specifics on what all needs to be done. The Makefile discussion above should give you some hints. Eclipse As far as I can tell, the simplest way to build a C++ project with Eclipse is to set up a Makefile for it as described above, then add an external run configuration for your local make tool. Get the project building from the command line with make, then go to Run | External Tools | Open External Tools Dialog and add a new launch configuration. For example, on my OS X system I use /usr/bin/gnumake for the program location and pick the project root with the Browse Workspace button to set the working directory. mysql++-3.2.5/doc/userman/fieldinf.txt000644 000765 000024 00000006043 13515046514 020366 0ustar00tangentstaff000000 000000 #include "cmdline.h" #include "printdata.h" #include #include using namespace std; int main(int argc, char *argv[]) { // Get database access parameters from command line mysqlpp::examples::CommandLine cmdline(argc, argv); if (!cmdline) { return 1; } try { // Establish the connection to the database server. mysqlpp::Connection con(mysqlpp::examples::db_name, cmdline.server(), cmdline.user(), cmdline.pass()); // Get contents of main example table mysqlpp::Query query = con.query("select * from stock"); mysqlpp::StoreQueryResult res = query.store(); // Show info about each field in that table char widths[] = { 12, 22, 46 }; cout.setf(ios::left); cout << setw(widths[0]) << "Field" << setw(widths[1]) << "SQL Type" << setw(widths[2]) << "Equivalent C++ Type" << endl; for (size_t i = 0; i < sizeof(widths) / sizeof(widths[0]); ++i) { cout << string(widths[i] - 1, '=') << ' '; } cout << endl; for (size_t i = 0; i < res.field_names()->size(); i++) { // Suppress C++ type name outputs when run under dtest, // as they're system-specific. const char* cname = res.field_type(int(i)).name(); mysqlpp::FieldTypes::value_type ft = res.field_type(int(i)); ostringstream os; os << ft.sql_name() << " (" << ft.id() << ')'; cout << setw(widths[0]) << res.field_name(int(i)).c_str() << setw(widths[1]) << os.str() << setw(widths[2]) << cname << endl; } cout << endl; // Simple type check if (res.field_type(0) == typeid(string)) { cout << "SQL type of 'item' field most closely resembles " "the C++ string type." << endl; } // Tricky type check: the 'if' path shouldn't happen because the // description field has the NULL attribute. We need to dig a // little deeper if we want to ignore this in our type checks. if (res.field_type(5) == typeid(string)) { cout << "Should not happen! Type check failure." << endl; } else if (res.field_type(5) == typeid(mysqlpp::sql_blob_null)) { cout << "SQL type of 'description' field resembles " "a nullable variant of the C++ string type." << endl; } else { cout << "Weird: fifth field's type is now " << res.field_type(5).name() << endl; cout << "Did something recently change in resetdb?" << endl; } } catch (const mysqlpp::BadQuery& er) { // Handle any query errors cerr << "Query error: " << er.what() << endl; return -1; } catch (const mysqlpp::Exception& er) { // Catch-all for any other MySQL++ exceptions cerr << "Error: " << er.what() << endl; return -1; } return 0; } mysql++-3.2.5/doc/userman/cpool.txt000644 000765 000024 00000017050 13515046514 017722 0ustar00tangentstaff000000 000000 #include "cmdline.h" #include "threads.h" #include using namespace std; #if defined(HAVE_THREADS) // Define a concrete ConnectionPool derivative. Takes connection // parameters as inputs to its ctor, which it uses to create the // connections we're called upon to make. Note that we also declare // a global pointer to an object of this type, which we create soon // after startup; this should be a common usage pattern, as what use // are multiple pools? class SimpleConnectionPool : public mysqlpp::ConnectionPool { public: // The object's only constructor SimpleConnectionPool(mysqlpp::examples::CommandLine& cl) : conns_in_use_(0), db_(mysqlpp::examples::db_name), server_(cl.server()), user_(cl.user()), password_(cl.pass()) { } // The destructor. We _must_ call ConnectionPool::clear() here, // because our superclass can't do it for us. ~SimpleConnectionPool() { clear(); } // Do a simple form of in-use connection limiting: wait to return // a connection until there are a reasonably low number in use // already. Can't do this in create() because we're interested in // connections actually in use, not those created. Also note that // we keep our own count; ConnectionPool::size() isn't the same! mysqlpp::Connection* grab() { while (conns_in_use_ > 8) { cout.put('R'); cout.flush(); // indicate waiting for release sleep(1); } ++conns_in_use_; return mysqlpp::ConnectionPool::grab(); } // Other half of in-use conn count limit void release(const mysqlpp::Connection* pc) { mysqlpp::ConnectionPool::release(pc); --conns_in_use_; } protected: // Superclass overrides mysqlpp::Connection* create() { // Create connection using the parameters we were passed upon // creation. This could be something much more complex, but for // the purposes of the example, this suffices. cout.put('C'); cout.flush(); // indicate connection creation return new mysqlpp::Connection( db_.empty() ? 0 : db_.c_str(), server_.empty() ? 0 : server_.c_str(), user_.empty() ? 0 : user_.c_str(), password_.empty() ? "" : password_.c_str()); } void destroy(mysqlpp::Connection* cp) { // Our superclass can't know how we created the Connection, so // it delegates destruction to us, to be safe. cout.put('D'); cout.flush(); // indicate connection destruction delete cp; } unsigned int max_idle_time() { // Set our idle time at an example-friendly 3 seconds. A real // pool would return some fraction of the server's connection // idle timeout instead. return 3; } private: // Number of connections currently in use unsigned int conns_in_use_; // Our connection parameters std::string db_, server_, user_, password_; }; SimpleConnectionPool* poolptr = 0; static thread_return_t CALLBACK_SPECIFIER worker_thread(thread_arg_t running_flag) { // Ask the underlying C API to allocate any per-thread resources it // needs, in case it hasn't happened already. In this particular // program, it's almost guaranteed that the safe_grab() call below // will create a new connection the first time through, and thus // allocate these resources implicitly, but there's a nonzero chance // that this won't happen. Anyway, this is an example program, // meant to show good style, so we take the high road and ensure the // resources are allocated before we do any queries. mysqlpp::Connection::thread_start(); cout.put('S'); cout.flush(); // indicate thread started // Pull data from the sample table a bunch of times, releasing the // connection we use each time. for (size_t i = 0; i < 6; ++i) { // Go get a free connection from the pool, or create a new one // if there are no free conns yet. Uses safe_grab() to get a // connection from the pool that will be automatically returned // to the pool when this loop iteration finishes. mysqlpp::ScopedConnection cp(*poolptr, true); if (!cp) { cerr << "Failed to get a connection from the pool!" << endl; break; } // Pull a copy of the sample stock table and print a dot for // each row in the result set. mysqlpp::Query query(cp->query("select * from stock")); mysqlpp::StoreQueryResult res = query.store(); for (size_t j = 0; j < res.num_rows(); ++j) { cout.put('.'); } // Delay 1-4 seconds before doing it again. Because this can // delay longer than the idle timeout, we'll occasionally force // the creation of a new connection on the next loop. sleep(rand() % 4 + 1); } // Tell main() that this thread is no longer running *reinterpret_cast(running_flag) = false; cout.put('E'); cout.flush(); // indicate thread ended // Release the per-thread resources before we exit mysqlpp::Connection::thread_end(); return 0; } #endif int main(int argc, char *argv[]) { #if defined(HAVE_THREADS) // Get database access parameters from command line mysqlpp::examples::CommandLine cmdline(argc, argv); if (!cmdline) { return 1; } // Create the pool and grab a connection. We do it partly to test // that the parameters are good before we start doing real work, and // partly because we need a Connection object to call thread_aware() // on to check that it's okay to start doing that real work. This // latter check should never fail on Windows, but will fail on most // other systems unless you take positive steps to build with thread // awareness turned on. See README-*.txt for your platform. poolptr = new SimpleConnectionPool(cmdline); try { mysqlpp::ScopedConnection cp(*poolptr, true); if (!cp->thread_aware()) { cerr << "MySQL++ wasn't built with thread awareness! " << argv[0] << " can't run without it." << endl; return 1; } } catch (mysqlpp::Exception& e) { cerr << "Failed to set up initial pooled connection: " << e.what() << endl; return 1; } // Setup complete. Now let's spin some threads... cout << endl << "Pool created and working correctly. Now to do " "some real work..." << endl; srand((unsigned int)time(0)); bool running[] = { true, true, true, true, true, true, true, true, true, true, true, true, true, true }; const size_t num_threads = sizeof(running) / sizeof(running[0]); size_t i; for (i = 0; i < num_threads; ++i) { if (int err = create_thread(worker_thread, running + i)) { cerr << "Failed to create thread " << i << ": error code " << err << endl; return 1; } } // Test the 'running' flags every second until we find that they're // all turned off, indicating that all threads are stopped. cout.put('W'); cout.flush(); // indicate waiting for completion do { sleep(1); i = 0; while (i < num_threads && !running[i]) ++i; } while (i < num_threads); cout << endl << "All threads stopped!" << endl; // Shut it all down... delete poolptr; cout << endl; #else (void)argc; // warning squisher cout << argv[0] << " requires that threads be enabled!" << endl; #endif return 0; } mysql++-3.2.5/doc/userman/Makefile.hello.mingw000755 000765 000024 00000000435 13515046514 021731 0ustar00tangentstaff000000 000000 SHELL := $(COMSPEC) MYSQL_DIR := "c:/Program Files/MySQL/MySQL Connector C 6.1" CXXFLAGS := -I$(MYSQL_DIR)/include -Ic:/MySQL++/include LDFLAGS := -L$(MYSQL_DIR)/lib -Lc:/MySQL++/lib/MinGW LDLIBS := -lmysql -lmysqlpp EXECUTABLE := hello all: $(EXECUTABLE) clean: del $(EXECUTABLE) mysql++-3.2.5/doc/userman/fo2pdf000755 000765 000024 00000001661 13515046514 017154 0ustar00tangentstaff000000 000000 #!/bin/bash AHCMD=/usr/XSLFormatterV42/run.sh FOPCMD=$(type -p fop) XEPCMD=/usr/local/xep/xep FOFILE=$1 PDFFILE=$2 if [ -n "$FOFILE" -a -r "$FOFILE" -a -n "$PDFFILE" ] then if [ -x "$XEPCMD" ] then echo Rendering $FOFILE to $PDFFILE with RenderX XEP... $XEPCMD -quiet -fo $FOFILE -pdf $PDFFILE elif [ -x "$AHCMD" ] then echo Rendering $FOFILE to $PDFFILE with Antenna House XSL Formatter... $AHCMD -silent -d $FOFILE -o $PDFFILE elif [ -x "$FOPCMD" ] then echo "Rendering $FOFILE to $PDFFILE with Apache FOP ($FOPCMD)..." $FOPCMD -q -fo $FOFILE $PDFFILE else echo 'Cannot find a working XSL-FO processor on your system! See' echo 'doc/usrman/README.txt for instructions on installing one.' echo exit 1 fi else if [ -n "$FOFILE" ] then echo "XSL-FO file $FOFILE does not exist." echo fi echo "usage: $0 fofile pdffile" echo echo ' Translates XSL-FO in fofile to PDF output in pdffile.' echo exit 1 fi mysql++-3.2.5/doc/userman/xinclude.mod000644 000765 000024 00000001141 13515046514 020353 0ustar00tangentstaff000000 000000 mysql++-3.2.5/doc/userman/intro.dbx000644 000765 000024 00000014276 13515046514 017706 0ustar00tangentstaff000000 000000 Introduction MySQL++ is a powerful C++ wrapper for MySQL’s C APIThe MySQL C API is also known as Connector/C.. Its purpose is to make working with queries as easy as working with STL containers. The latest version of MySQL++ can be found at the official web site. Support for MySQL++ can be had on the mailing list. That page hosts the mailing list archives, and tells you how you can subscribe. A Brief History of MySQL++ MySQL++ was created in 1998 by Kevin Atkinson. It started out MySQL-specific, but there were early efforts to try and make it database-independent, and call it SQL++. This is where the old library name “sqlplus” came from. This is also why the old versions prefixed some class names with “Mysql” but not others: the others were supposed to be the database-independent parts. All of Kevin’s releases had pre-1.0 version numbers. Then in 1999, MySQL AB took over development of the library. In the beginning, Monty Widenius himself did some of the work, but later gave it over to another MySQL employee, Sinisa Milivojevic. MySQL released versions 1.0 and 1.1, and then Kevin gave over maintenance to Sinisa officially with 1.2, and ceased to have any involvement with the library’s maintenance. Sinisa went on to maintain the library through 1.7.9, released in mid-2001. It seems to be during this time that the dream of multiple-database compatibility died, for obvious reasons. With version 1.7.9, MySQL++ went into a period of stasis, lasting over three years. (Perhaps it was the ennui and retrenchment following the collapse of the bubble that caused them to lose interest.) During this time, Sinisa ran the MySQL++ mailing list and supported its users, but made no new releases. Contributed patches were either ignored or put up on the MySQL++ web site for users to try, without any official blessing. The biggest barrier to using MySQL++ during this period is that the popular C++ compilers of 2001 weren’t all that compatible with the C++ Standard. As a result, MySQL++ used many nonstandard constructs, to allow for compatibility with older compilers. Each new compiler released in the following years increased compliance, either warning about or rejecting code using pre-Standard constructs. In particular, GCC was emerging from the mess following the EGCS fork during this time. The fork was healed officially in 1999, but there’s always a delay of a few years between the release of a new GCC and widespread adoption. The post-EGCS versions of GCC were only beginning to become popular by 2001, when development on MySQL++ halted. As a result, it became increasingly difficult to get MySQL++ to build cleanly as newer compilers came out. Since MySQL++ uses templates heavily, this affected end user programs as well: MySQL++ code got included directly in your program, so any warnings or errors it caused became your program’s problem. As a result, most of the patches contributed to the MySQL++ project during this period were to fix up standards compliance issues. Because no one was bothering to officially test and bless these patches, you ended up with the worst aspects of a bazaar development model: complete freedom of development, but no guiding hand to select from the good stuff and reject the rest. Many of the patches were mutually incompatible. Some would build upon other patches, so you had to apply them in the proper sequence. Others did useful things, but didn’t give a fully functional copy of MySQL++. Figuring out which patch(es) to use was an increasingly frustrating exercise as the years wore on, and newer GCCs became popular. In early August of 2004, Warren Young got fed up with this situation and took over. He released 1.7.10 later that month, which did little more than make the code build with GCC 3.3 without warnings. Since then, with a little help from his friends on the Net, MySQL++ has lost a lot of bugs, gained a lot of features, gained a few more bugs, lost them again... MySQL++ is alive and healthy now. If You Have Questions... If you want to email someone to ask questions about this library, we greatly prefer that you send mail to the MySQL++ mailing list. The mailing list is archived, so if you have questions, do a search to see if the question has been asked before. You may find people’s individual email addresses in various files within the MySQL++ distribution. Please do not send mail to them unless you are sending something that is inherently personal. Not all of the principal developers of MySQL++ are still active in its development; those who have dropped out have no wish to be bugged about MySQL++. Those of us still active in MySQL++ development monitor the mailing list, so you aren’t getting any extra “coverage” by sending messages to additional email addresses. mysql++-3.2.5/doc/userman/tquery.dbx000644 000765 000024 00000021243 13515046514 020074 0ustar00tangentstaff000000 000000 Template Queries Another powerful feature of MySQL++ is being able to set up template queries. These are kind of like C’s printf() facility: you give MySQL++ a string containing the fixed parts of the query and placeholders for the variable parts, and you can later substitute in values into those placeholders. The following program demonstrates how to use this feature. This is examples/tquery1.cpp: The line just before the call to query.parse() sets the template, and the parse call puts it into effect. From that point on, you can re-use this query by calling any of several Query member functions that accept query template parameters. In this example, we’re using Query::execute(). Let’s dig into this feature a little deeper. Setting up Template Queries To set up a template query, you simply insert it into the Query object, using numbered placeholders wherever you want to be able to change the query. Then, you call the parse() function to tell the Query object that the query string is a template query, and it needs to parse it: query << "select (%2:field1, %3:field2) from stock where %1:wheref = %0q:what"; query.parse(); The format of the placeholder is: %###(modifier)(:name)(:) Where “###” is a number up to three digits. It is the order of parameters given to a object, starting from 0. “modifier” can be any one of the following:
% Print an actual “%” "" Don’t quote or escape no matter what. q This will escape the item using the MySQL C API function and add single quotes around it as necessary, depending on the type of the value you use. Q Quote but don’t escape based on the same rules as for “q”. This can save a bit of processing time if you know the strings will never need quoting
“:name” is for an optional name which aids in filling SQLQueryParms. Name can contain any alpha-numeric characters or the underscore. You can have a trailing colon, which will be ignored. If you need to represent an actual colon after the name, follow the name with two colons. The first one will end the name and the second one won’t be processed.
Setting the Parameters at Execution Time To specify the parameters when you want to execute a query simply use Query::store(const SQLString &parm0, [..., const SQLString &parm11]). This type of multiple overload also exists for Query::storein(), Query::use() and Query::execute(). “parm0” corresponds to the first parameter, etc. You may specify up to 25 parameters. For example: StoreQueryResult res = query.store("Dinner Rolls", "item", "item", "price") with the template query provided above would produce: select (item, price) from stock where item = "Dinner Rolls" The reason we didn’t put the template parameters in numeric order... select (%0:field1, %1:field2) from stock where %2:wheref = %3q:what ...will become apparent shortly. Default Parameters The template query mechanism allows you to set default parameter values. You simply assign a value for the parameter to the appropriate position in the Query::template_defaults array. You can refer to the parameters either by position or by name: query.template_defaults[1] = "item"; query.template_defaults["wheref"] = "item"; Both do the same thing. This mechanism works much like C++’s default function parameter mechanism: if you set defaults for the parameters at the end of the list, you can call one of Query’s query execution methods without passing all of the values. If the query takes four parameters and you’ve set defaults for the last three, you can execute the query using as little as just one explicit parameter. Now you can see why we numbered the template query parameters the way we did a few sections earlier. We ordered them so that the ones less likely to change have higher numbers, so we don’t always have to pass them. We can just give them defaults and take those defaults when applicable. This is most useful when some parameters in a template query vary less often than other parameters. For example: query.template_defaults["field1"] = "item"; query.template_defaults["field2"] = "price"; StoreQueryResult res1 = query.store("Hamburger Buns", "item"); StoreQueryResult res2 = query.store(1.25, "price"); This stores the result of the following queries in res1 and res2, respectively: select (item, price) from stock where item = "Hamburger Buns" select (item, price) from stock where price = 1.25 Default parameters are useful in this example because we have two queries to issue, and parameters 2 and 3 remain the same for both, while parameters 0 and 1 vary. Some have been tempted into using this mechanism as a way to set all of the template parameters in a query: query.template_defaults["what"] = "Hamburger Buns"; query.template_defaults["wheref"] = "item"; query.template_defaults["field1"] = "item"; query.template_defaults["field2"] = "price"; StoreQueryResult res1 = query.store(); This can work, but it is not designed to. In fact, it’s known to fail horribly in one common case. You will not get sympathy if you complain on the mailing list about it not working. If your code doesn’t actively reuse at least one of the parameters in subsequent queries, you’re abusing MySQL++, and it is likely to take its revenge on you. Error Handling If for some reason you did not specify all the parameters when executing the query and the remaining parameters do not have their values set via Query::template_defaults, the query object will throw a object. If this happens, you can get an explanation of what happened by calling BadParamCount::what(), like so: query.template_defaults["field1"] = "item"; query.template_defaults["field2"] = "price"; StoreQueryResult res = query.store(1.25); This would throw BadParamCount because the wheref is not specified. In theory, this exception should never be thrown. If the exception is thrown it probably a logic error in your program.
mysql++-3.2.5/doc/userman/resetdb.txt000644 000765 000024 00000015561 13515046514 020243 0ustar00tangentstaff000000 000000 #include "cmdline.h" #include "printdata.h" #include #include #include using namespace std; // Pull in the sample database name from the cmdline module. extern const char* kpcSampleDatabase; // Convert a packed version number in the format used within MySQL++ // to a printable string. static string version_str(int packed) { char buf[9]; snprintf(buf, sizeof(buf), "%d.%d.%d", (packed & 0xFF0000) >> 16, (packed & 0x00FF00) >> 8, (packed & 0x0000FF)); return buf; } int main(int argc, char *argv[]) { // Ensure that we're not mixing library and header file versions. // This is really easy to do if you have MySQL++ on your system and // are trying to build a new version, and run the examples directly // instead of through exrun. if (mysqlpp::get_library_version() != MYSQLPP_HEADER_VERSION) { cerr << "Version mismatch: library is v" << version_str(mysqlpp::get_library_version()) << ", headers are v" << version_str(MYSQLPP_HEADER_VERSION) << ". Are you running this" << endl << "with exrun? See README.examples." << endl; return 1; } // Get connection parameters from command line mysqlpp::examples::CommandLine cmdline(argc, argv); if (!cmdline) { return 1; } // Connect to database server mysqlpp::Connection con; try { if (cmdline.dtest_mode()) { cout << "Connecting to database server..." << endl; } else { const char* u = cmdline.user() ? cmdline.user() : ""; const char* s = cmdline.server() ? cmdline.server() : "localhost"; cout << "Connecting to '" << u << "'@'" << s << "', with" << (cmdline.pass() && cmdline.pass()[0] ? "" : "out") << " password..." << endl; } con.connect(0, cmdline.server(), cmdline.user(), cmdline.pass()); } catch (exception& er) { cerr << "Connection failed: " << er.what() << endl; return 1; } // Create new sample database, or re-create it. We suppress // exceptions, because it's not an error if DB doesn't yet exist. bool new_db = false; { mysqlpp::NoExceptions ne(con); mysqlpp::Query query = con.query(); if (con.select_db(mysqlpp::examples::db_name)) { // Toss old tables, ignoring errors because it would just // mean the table doesn't exist, which doesn't matter. cout << "Dropping existing sample data tables..." << endl; query.exec("drop table stock"); query.exec("drop table images"); query.exec("drop table deadlock_test1"); query.exec("drop table deadlock_test2"); } else { // Database doesn't exist yet, so create and select it. if (con.create_db(mysqlpp::examples::db_name) && con.select_db(mysqlpp::examples::db_name)) { new_db = true; } else { cerr << "Error creating DB: " << con.error() << endl; return 1; } } } // Create sample data table within sample database. try { // Send the query to create the stock table and execute it. cout << "Creating stock table..." << endl; mysqlpp::Query query = con.query(); query << "CREATE TABLE stock (" << " item CHAR(30) NOT NULL, " << " num BIGINT NOT NULL, " << " weight DOUBLE NOT NULL, " << " price DECIMAL(6,2) NULL, " << // NaN & inf. == NULL " sdate DATE NOT NULL, " << " description MEDIUMTEXT NULL) " << "ENGINE = InnoDB" << " CHARACTER SET " MYSQLPP_UTF8_CS " COLLATE " MYSQLPP_UTF8_COL; query.execute(); // Set up the template query to insert the data. The parse() // call tells the query object that this is a template and // not a literal query string. query << "insert into %6:table values " << "(%0q, %1q, %2, %3, %4q, %5q:desc)"; query.parse(); // Set a default for template query parameters "table" and "desc". query.template_defaults["table"] = "stock"; query.template_defaults["desc"] = mysqlpp::null; // Notice that we don't give a sixth parameter in these calls, // so the default value of "stock" is used. Also notice that // the first row is a UTF-8 encoded Unicode string! All you // have to do to store Unicode data in recent versions of MySQL // is use UTF-8 encoding. cout << "Populating stock table..." << flush; query.execute("Nürnberger Brats", 97, 1.5, 8.79, "2005-03-10"); query.execute("Pickle Relish", 87, 1.5, 1.75, "1998-09-04"); query.execute("Hot Mustard", 73, .95, .97, "1998-05-25", "good American yellow mustard, not that European stuff"); query.execute("Hotdog Buns", 65, 1.1, 1.1, "1998-04-23"); // Test that above did what we wanted. cout << "inserted " << con.count_rows("stock") << " rows." << endl; // Now create empty images table, for testing BLOB and auto- // increment column features. cout << "Creating empty images table..." << endl; query.reset(); // forget template query info query << "CREATE TABLE images (" << " id INT UNSIGNED AUTO_INCREMENT, " << " data BLOB, " << " PRIMARY KEY (id)" << ")"; query.execute(); // Create the tables used by examples/deadlock.cpp cout << "Creating deadlock testing tables..." << endl; query.execute("CREATE TABLE deadlock_test1 (x INT) ENGINE=innodb"); query.execute("CREATE TABLE deadlock_test2 (x INT) ENGINE=innodb"); query.execute("INSERT INTO deadlock_test1 VALUES (1);"); query.execute("INSERT INTO deadlock_test2 VALUES (2);"); // Report success cout << (new_db ? "Created" : "Reinitialized") << " sample database successfully." << endl; } catch (const mysqlpp::BadQuery& er) { // Handle any query errors cerr << endl << "Query error: " << er.what() << endl; return 1; } catch (const mysqlpp::BadConversion& er) { // Handle bad conversions cerr << endl << "Conversion error: " << er.what() << endl << "\tretrieved data size: " << er.retrieved << ", actual size: " << er.actual_size << endl; return 1; } catch (const mysqlpp::Exception& er) { // Catch-all for any other MySQL++ exceptions cerr << endl << "Error: " << er.what() << endl; return 1; } return 0; } mysql++-3.2.5/doc/userman/configuration.dbx000644 000765 000024 00000022225 13515046514 021413 0ustar00tangentstaff000000 000000 Configuring MySQL++ The default configuration of MySQL++ is suitable for most purposes, but there are a few things you can change to make it meet special needs. The Location of the MySQL Development Files MySQL++ is built on top of the MySQL C API. (Now called Connector/C.) MySQL++ relies on this low-level library for all communication with the database server. Consequently, the build process for MySQL++ may fail if it can’t find the C API headers and library. On platforms that use AutoconfLinux, Solaris, the BSDs, Mac OS X command line (as opposed to the Xcode IDE), Cygwin... Basically, Unix or anything that works like it., the configure script can usually figure out the location of the C API development files by itselfI don’t say “Connector/C” here because the name change generally hasn’t percolated out to Unixy systems. It’s more commonly used on Windows systems, since the separate Connector/C download lets them avoid installing a MySQL server just to get development headers and libraries. It simply tries a bunch of common installation locations until it finds one that works. If your MySQL server was installed in a nonstandard location, you will have to tell the configure script where these files are with some combination of the --with-mysql, --with-mysql-include, and --with-mysql-lib flags. See README-Unix.txt for details. No other platform allows this sort of auto-discovery, so the build files for these platforms simply hard-code the default installation location for the current GA version of Connector/C at the time that version of MySQL++ was released. For example, the Visual C++ project files currently assume MySQL is in c:\Program Files\MySQL\MySQL Server 5.1. If you’re using some other release of MySQL or you installed it somewhere else, you will have to modify the build files. How you do this, exactly, varies based on platform and what tools you have on hand. See README-Visual-C++.txt, README-MinGW.txt, or README-Mac-OS-X.txt, as appropriate. The Maximum Number of Fields Allowed MySQL++ offers two ways to automatically build SQL queries at run time: and SSQLS. There’s a limit on the number of fields these mechanisms support, defaulting to 25 fields in the official MySQL++ packages.If you’re using a third-party MySQL++ package, its maintainer may have increased these field counts so the resulting headers more closely approach the size limit of the compiler the package was built with. In that case, you can look at the top of each generated header file to find out how many fields each supports. The files embodying these limits are lib/querydef.h and lib/ssqls.h, each generated by Perl scripts of the same name but with a .pl extension. The default querydef.h is small and its size only increases linearly with respect to maximum field count. ssqls.h is a totally different story. The default 25 field limit makes ssqls.pl generate an ssqls.h over 1 MB. Worse, the field limit to file size relation is quadratic.The file size equation, for you amateur mathematicians out there, is Nlines = 18.5f2 + 454.5f + 196.4, where f is the field count. This has a number of bad effects: Generating header files to support more fields than you actually require is a waste of space and bandwidth. Some compilers have arbitrary limits on the size of macros they’re able to parse. Exceeding these limits usually causes the compiler to misbehave badly, rather than fail gracefully. Because it increases the size of two key files used in building MySQL++ itself and programs built on it, it increases compile times significantly. One test I did here showed a tripling of compile time from quadrupling the field limit. More than 25 fields in a table is a good sign of a bad database design, most likely a denormalization problem. The default limits try to mitigate against all of these factors while still being high enough to be useful with most DB designs. If you’re building MySQL++ from source on a platform that uses Autoconf, the easiest way to change these limits is at configuration time: ./configure --with-field-limit=50 That causes the configuration script to pass the -f flag to the two Perl scripts named above, overriding the default of 25 fields. Obviously you need a Perl interpreter on the system for this to work, but Perl is usually installed by default on systems MySQL++ supports via Autoconf. On all other platforms, you’ll have to give the -f flag to these scripts yourself. This may require installing Perl and putting it in the command path first. Having done that, you can do something like this to raise the limits: cd lib perl ssqls.pl -f 50 perl querydef.pl -f 50 Note the need to run these commands within the lib subdirectory of the MySQL++ source tree. (This is done for you automatically on systems where you are able to use the Autoconf method.) Buried MySQL C API Headers It’s common these days on Unixy systems to install the MySQL C API headers in a mysql directory under some common include directory. If the C API headers are in /usr/include/mysql, we say they are “buried” underneath the system’s main include directory, /usr/include. Since the MySQL++ headers depend on these C API headers, it can be useful for MySQL++ to know this fact. When MySQL++ includes one of the C API headers, it normally does so in the obvious way: #include <mysql.h> But, if you define the MYSQLPP_MYSQL_HEADERS_BURIED macro, it switches to this style: #include <mysql/mysql.h> In common situations like the /usr/include/mysql one, this simplifies the include path options you pass to your compiler. Building MySQL++ on Systems Without Complete C99 Support MySQL++ uses the C99 header stdint.h for portable fixed-size integer typedefs where possible. The C99 extensions aren’t yet officially part of the C++ Standard, so there are still some C++ compilers that don’t offer this header. MySQL++ works around the lack of this header where it knows it needs to, but your platform might not be recognized, causing the build to break. If this happens, you can define the MYSQLPP_NO_STDINT_H macro to make MySQL++ use its best guess for suitable integer types instead of relying on stdint.h. MySQL++ also uses C99’s long long data type where available. MySQL++ has workarounds for platforms where this is known not to be available, but if you get errors in common.h about this type, you can define the macro MYSQLPP_NO_LONG_LONGS to make MySQL++ fall back to portable constructs. mysql++-3.2.5/doc/userman/LICENSE.txt000644 000765 000024 00000004062 13515046514 017667 0ustar00tangentstaff000000 000000 MySQL++ User Manual License ~~~~~~~~~~~~~~~~~~~~~~~~~~~ I. COPYRIGHT The copyright to the MySQL++ User Manual is owned by its authors. II. LICENSE The MySQL++ User Manual may be reproduced and distributed in whole or in part, in any medium physical or electronic, provided that this license notice is displayed in the reproduction. Commercial redistribution is permitted and encouraged. Thirty days advance notice via email to the authors of redistribution is appreciated, to give the authors time to provide updated documents. A. REQUIREMENTS OF MODIFIED WORKS All modified documents, including translations, anthologies, and partial documents, must meet the following requirements: 1. The modified version must be labeled as such. 2. The person making the modifications must be identified. 3. Acknowledgement of the original author must be retained. 4. The location of the original unmodified document be identified. 5. The original authors' names may not be used to assert or imply endorsement of the resulting document without the original authors' permission. In addition it is requested that: 1. The modifications (including deletions) be noted. 2. The authors be notified by email of the modification in advance of redistribution, if an email address is provided in the document. Mere aggregation of the MySQL++ User Manual with other documents or programs on the same media shall not cause this license to apply to those other works. All translations, derivative documents, or modified documents that incorporate the MySQL++ User Manual may not have more restrictive license terms than these, except that you may require distributors to make the resulting document available in source format. mysql++-3.2.5/doc/userman/tutorial.dbx000644 000765 000024 00000214677 13515046514 020425 0ustar00tangentstaff000000 000000 Tutorial The previous chapter introduced the major top-level mechanisms in MySQL++. Now we’ll dig down a little deeper and get into real examples. We start off with the basics that every MySQL++ program will have to deal with, then work up to more complex topics that are still widely interesting. You can stop reading the manual after this chapter and still get a lot out of MySQL++, ignoring the more advanced parts we present in later chapters. Running the Examples All of the examples are complete running programs. If you built the library from source, the examples should have been built as well. If you use RPMs instead, the example programs’ source code and a simplified Makefile are in the mysql++-devel package. They are typically installed in /usr/share/doc/mysql++-devel-*/examples, but it can vary on different Linuxes. Before you get started, please read through any of the README*.txt files included with the MySQL++ distribution that are relevant to your platform. We won’t repeat all of that here. Most of the examples require a test database, created by resetdb. You can run it like so: resetdb [-s server_addr] [-u user] [-p password] Actually, there’s a problem with that. It assumes that the MySQL++ library is already installed in a directory that the operating system’s dynamic linker can find. (MySQL++ is almost never built statically.) Unless you’re installing from RPMs, you’ve had to build the library from source, and you should run at least a few of the examples before installing the library to be sure it’s working correctly. Since your operating system’s dynamic linkage system can’t find the MySQL++ libraries without help until they’re installed, we’ve created a few helper scripts to help run the examples. MySQL++ comes with the exrun shell script for Unixy systems, and the exrun.bat batch file for Windows. You pass the example program and its arguments to the exrun helper, which sets up the library search path so that it will use the as-yet uninstalled version of the MySQL++ library in preference to any other on your system: ./exrun resetdb [-s server_addr] [-u user] [-p password] That’s the typical form for a Unixy system. You leave off the ./ bit on Windows. You can leave it off on a Unixy system, too, if you have . in your PATH. (Not a recommendation, just an observation.) All of the program arguments are optional. If you don’t give , the underlying MySQL C API (a.k.a. Connector/C) assumes the server is on the local machine. It chooses one of several different IPC options based on the platform configuration. There are many different forms you can give as server_addr with to override this default behavior: localhost — this is the default; it doesn’t buy you anything On Windows, a simple period tells the underlying MySQL C API to use named pipes, if it’s available. 172.20.0.252:12345 — this would connect to IP address 172.20.0.252 on TCP port 12345. my.server.name:svc_name — this would first look up TCP service name svc_name in your system’s network services database (/etc/services on Unixy systems, and something like c:\windows\system32\drivers\etc\services on modern Windows variants). If it finds an entry for the service, it then tries to connect to that port on the domain name given. For the TCP forms, you can mix names and numbers for the host and port/service parts in any combination. If the server name doesn’t contain a colon, it uses the default port, 3306. If you don’t give , it assumes your user name on the database server is the same as your login name on the local machine. If you don’t give , it will assume the MySQL user doesn’t have a password. (One hopes this isn’t the case...) When running resetdb, the user name needs to be for an account with permission to create the test database. Once the database is created, you can use any account when running the other examples that has DELETE, INSERT, SELECT and UPDATE permissions for the test database. The MySQL root user can do all this, of course, but you might want to set up a separate user, having only the permissions necessary to work with the test database: CREATE USER mysqlpp_test@'%' IDENTIFIED BY ’nunyabinness'; GRANT ALL PRIVILEGES ON mysql_cpp_data.* TO mysqlpp_test@'%'; You could then create the sample database with the following command: ./exrun resetdb -u mysqlpp_test -p nunyabinness (Again, leave off the ./ bit on Windows.) You may have to re-run resetdb after running some of the other examples, as they change the database. See README-examples.txt for more details on running the examples. A Simple Example The following example demonstrates how to open a connection, execute a simple query, and display the results. This is examples/simple1.cpp: This example simply gets the entire "item" column from the example table, and prints those values out. Notice that MySQL++’s derives from std::vector, and provides an interface that makes it a vector work-alike. This means you can access elements with subscript notation, walk through them with iterators, run STL algorithms on them, etc. Row provides a little more in this area than a plain old vector: you can also access fields by name using subscript notation. The only thing that isn’t explicit in the code above is that we delegate command line argument parsing to parse_command_line() in the excommon module. This function exists to give the examples a consistent interface, not to hide important details. You can treat it like a black box: it takes argc and argv as inputs and sends back database connection parameters. A More Complicated Example The simple1 example above was pretty trivial. Let’s get a little deeper. Here is examples/simple2.cpp: The main point of this example is that we’re accessing fields in the row objects by name, instead of index. This is slower, but obviously clearer. We’re also printing out the entire table, not just one column. Exceptions By default, MySQL++ uses exceptions to signal errors. We’ve been suppressing this in all the examples so far by passing false to Connection’s constructor. This kept these early examples simple at the cost of some flexibility and power in error handling. In a real program, we recommend that you leave exceptions enabled. You do this by either using the default Connection constructor, or by using the create-and-connect constructor. All of MySQL++’s custom exceptions derive from a common base class, . That in turn derives from Standard C++’s std::exception class. Since the library can indirectly cause exceptions to come from the Standard C++ Library, it’s possible to catch all exceptions from MySQL++ by just catching std::exception. However, it’s better to have individual catch blocks for each of the concrete exception types that you expect, and add a handler for either Exception or std::exception to act as a “catch-all” for unexpected exceptions. When exceptions are suppressed, MySQL++ signals errors by returning either an error code or an object that tests as false, or by setting an error flag on the object. Classes that allow you to suppress exceptions derive from the interface. When an OptionalExceptions derivative creates another object that also derives from this interface, it passes on its exception flag. Since everything flows from the object, disabling exceptions on it at the start of the program disables all optional exceptions. This is why passing false for the Connection constructor’s “throw exceptions” parameter suppresses all optional exceptions in the simple[1-3] examples. It keeps them, well, simple. This exception suppression mechanism is quite granular. It’s possible to leave exceptions enabled most of the time, but suppress them in sections of the code where they aren’t helpful. To do this, put the section of code that you want to not throw exceptions inside a block, and create a object at the top of that block. When created, it saves the exception flag of the OptionalExceptions derivative you pass to it, and then disables exceptions on it. When the NoExceptions object goes out of scope at the end of the block, it restores the exceptions flag to its previous state: mysqlpp::Connection con; // default ctor, so exceptions enabled { mysqlpp::NoExceptions ne(con); if (!con.select_db("a_db_that_might_not_exist_yet")) { // Our DB doesn’t exist yet, so create and select it here; no need // to push handling of this case way off in an exception handler. } } When one OptionalExceptions derivative passes its exceptions flag to another such object, it is only passing a copy; the two objects’ flags operate independently. There’s no way to globally enable or disable this flag on existing objects in a single call. If you’re using the NoExceptions feature and you’re still seeing optional exceptions thrown, you disabled exceptions on the wrong object. The exception thrower could be unrelated to the object you disabled exceptions on, it could be its parent, or it could be a child created before you disabled optional exceptions. MySQL++ throws some exceptions unconditionally: MySQL++ checks array indices, always. For instance, if your code said “row[21]” on a row containing only 5 fields, you’d get a BadIndex exception. If you say “row["fred"]” on a row without a “fred” field, you get a BadFieldName exception. In the past, MySQL++ delegated some of its index checking to the STL containers underpinning it, so you could get std::range_error instead. As of MySQL++ v3.0.7, this should no longer happen, but there may be instances where it still does. will always throw when you ask it to do an improper type conversion. For example, you’ll get an exception if you try to convert “1.25” to int, but not when you convert “1.00” to int. In the latter case, MySQL++ knows that it can safely throw away the fractional part. If you use template queries and don’t pass enough parameters when instantiating the template, Query will throw a exception. If you use a C++ data type in a query that MySQL++ doesn’t know to convert to SQL, MySQL++ will throw a exception. It typically happens with , especially when using data types other than the ones defined in lib/sql_types.h. It’s educational to modify the examples to force exceptions. For instance, misspell a field name, use an out-of-range index, or change a type to force a String conversion error. Quoting and Escaping SQL syntax often requires certain data to be quoted. Consider this query: SELECT * FROM stock WHERE item = 'Hotdog Buns' Because the string “Hotdog Buns” contains a space, it must be quoted. With MySQL++, you don’t have to add these quote marks manually: string s = "Hotdog Buns"; query << "SELECT * FROM stock WHERE item = " << quote_only << s; That code produces the same query string as in the previous example. We used the MySQL++ quote_only manipulator, which causes single quotes to be added around the next item inserted into the stream. This works for any type of data that can be converted to MySQL++’s SQLTypeAdapter type, plus the template. SSQLS also uses these manipulators internally. Quoting is pretty simple, but SQL syntax also often requires that certain characters be “escaped”. Imagine if the string in the previous example was “Frank’s Brand Hotdog Buns” instead. The resulting query would be: SELECT * FROM stock WHERE item = 'Frank's Brand Hotdog Buns' That’s not valid SQL syntax. The correct syntax is: SELECT * FROM stock WHERE item = 'Frank''s Brand Hotdog Buns' As you might expect, MySQL++ provides that feature, too, through its escape manipulator. But here, we want both quoting and escaping. That brings us to the most widely useful manipulator: string s = "Frank’s Brand Hotdog Buns"; query << "SELECT * FROM stock WHERE item = " << quote << s; The quote manipulator both quotes strings and escapes any characters that are special in SQL. MySQL++ provides other manipulators as well. See the manip.h page in the reference manual. It’s important to realize that MySQL++’s quoting and escaping mechanism is type-aware. Manipulators have no effect unless you insert the manipulator into a Query or SQLQueryParms stream. SQLQueryParms is used as a stream only as an implementation detail within the library. End user code simply sees it as a std::vector derivative. Also, values are only quoted and/or escaped if they are of a data type that may need it. For example, Date must be quoted but never needs to be escaped, and integer types need neither quoting nor escaping. Manipulators are suggestions to the library, not commands: MySQL++ will ignore these suggestions if it knows it won’t result in syntactically-incorrect SQL. It’s also important to realize that quoting and escaping in Query streams and template queries is never implicit.By contrast, the Query methods that take an SSQLS do add quotes and escape strings implicitly. It can do this because SSQLS knows all the SQL code and data types, so it never has to guess whether quoting or escaping is appropriate. You must use manipulators and template query flags as necessary to tell MySQL++ where quoting and escaping is necessary. It would be nice if MySQL++ could do quoting and escaping implicitly based on data type, but this isn’t possible in all cases.Unless you’re smarter than I am, you don’t immediately see why explicit manipulators are necessary. We can tell when quoting and escaping is not appropriate based on type, so doesn’t that mean we know when it is appropriate? Alas, no. For most data types, it is possible to know, or at least make an awfully good guess, but it’s a complete toss-up for C strings, const char*. A C string could be either a literal string of SQL code, or it can be a value used in a query. Since there’s no easy way to know and it would damage the library’s usability to mandate that C strings only be used for one purpose or the other, the library requires you to be explicit. Since MySQL++ can’t reliably guess when quoting and escaping is appropriate, and the programmer doesn’t need toOne hopes the programmer knows., MySQL++ makes you tell it. C++ vs. SQL Data Types The C++ and SQL data type systems have several differences that can cause problems when using MySQL++, or any other SQL based system, for that matter. Most of the data types you can store in a SQL database are either numbers or text strings. If you’re only looking at the data going between the database server and your application, there aren’t even numbers: SQL is a textual language, so numbers and everything else gets transferred between the client and the database server in text string form.Yes, we’re aware that there is a feature in MySQL that lets you transfer row data in a binary form, but we don’t support this yet. We may, someday, probably as an extension to SSQLS. The only real reason to do so is to shave off some of the data translation overhead, which is typically neglibible in practice, swamped by the far greater disk and network I/O overheads inherent in use of a client-server database system like MySQL. Consequently, MySQL++ has a lot of special support for text strings, and can translate to several C++ numeric data types transparently. Some people worry that this translation via an intermediate string form will cause data loss. Obviously the text string data types are immune from problems in this regard. We’re also confident that MySQL++ translates BLOB and integer data types losslessly. The biggest worry is with floating-point numbers. (The FLOAT and DOUBLE SQL data types.) We did have a problem with this in older versions of MySQL++, but we believe we fixed it completely in v3.0.2. No one has since proven data loss via this path. There is still a known problem SQL’s DECIMAL data type is a configurable-precision fixed-point number format. MySQL++ currently translates these to double, a floating-point data format, the closest thing available in the C++ type system. Since the main reason to use DECIMAL is to get away from the weird roundoff behavior of floating-point numbers, this could be viewed as a serious problem. The thing is, though, in all the years MySQL++ has been around, I don’t remember anyone actually complaining about it. Apparently there’s either no one using DECIMAL with MySQL++, or they’re ignoring any roundoff errors they get as a result. Until this wheel squeaks, it’s not likely to be greased. To fix this, we’ll have to create a new custom data type to hold such column values, which will be a lot of work for apparently little return. with the SQL DECIMAL type, which is somewhat related to the floating-point issue, but it’s apparently rarely encountered, which is why it hasn’t been fixed yet. The best way to avoid problems with data translation is to always use the special MySQL++ data types defined in lib/sql_types.h corresponding to your SQL schema. These typedefs begin with sql_ and end with a lowercase version of the standard SQL type name, with spaces replaced by underscores. There are variants ending in _null that wrap these base types so they’re compatible with SQL null. For instance, the SQL type TINYINT UNSIGNED NOT NULL is represented in MySQL++ by mysqlpp::sql_tinyint_unsigned. If you drop the NOT NULL part, the corresponding C++ type is mysqlpp::sql_tinyint_unsigned_null. MySQL++ doesn’t force you to use these typedefs. It tries to be flexible with regard to data conversions, so you could probably use int anywhere you use mysqlpp::sql_tinyint_unsigned, for example. That said, the MySQL++ typedefs give several advantages: Space efficiency: the MySQL++ types are no larger than necessary to hold the MySQL data. Portability: if your program has to run on multiple different system types (even just 32- and 64-bit versions of the same operating system and processor type) using the MySQL++ typedefs insulates your code from platform changes. Clarity: using C++ types named similarly to the SQL types reduces the risk of confusion when working with code in both languages at the same time. Compatibility: using the MySQL++ types ensures that data conversions between SQL and C++ forms are compatible. Naïve use of plain old C++ types can result in data truncation, exceptions, and worse. Type compatibility is important not just at the time you write your program, it also helps forward compatibility: we occasionally change the definitions of the MySQL++ typedefs to reduce the differences between the C++ and SQL type systems. We’ll be fixing the DECIMAL issue brought up above this way, for instance; if your program uses sql_decimal instead of the current underlying type, double, your program will pick up this improvement automatically with just a recompile. Most of these typedefs use standard C++ data types, but a few are aliases for a MySQL++ specific type. For instance, the SQL type DATETIME is mirrored in MySQL++ by mysqlpp::DateTime. For consistency, sql_types.h includes a typedef alias for DateTime called mysqlpp::sql_datetime. MySQL++ doesn’t have typedefs for the most exotic data types, like those for the geospatial types. Patches to correct this will be thoughtfully considered. Handling SQL Nulls Both C++ and SQL have things in them called NULL, but they differ in several ways. Consequently, MySQL++ has to provide special support for this, rather than just wrap native C++ facilities as it can with most data type issues. SQL NULL is a type modifier The primary distinction is one of type. In SQL, “NULL” is a type modifier, which affects whether you can legally store a null value in that column. There’s simply nothing like it in C++. To emulate SQL NULL, MySQL++ provides the Null template to allow the creation of distinct “nullable” versions of existing C++ types. So for example, if you have a TINYINT UNSIGNED column that can have nulls, the proper declaration for MySQL++ would be: mysqlpp::Null<mysqlpp::sql_tinyint_unsigned> myfield; As of MySQL++ 3.1, we also provide shorter aliases for such types: mysqlpp::sql_tinyint_unsigned_null myfield; These types are declared in lib/sql_types.h. You might want to scan through that to see what all is available. Template instantiations are first-class types in the C++ language, so there’s no possible confusion between this feature of MySQL++ and C++’s native NULL concept. SQL NULL is a unique value There’s a secondary distinction between SQL null and anything available in the standard C++ type system: SQL null is a distinct value, equal to nothing else. We can’t use C++’s NULL for this because it is ambiguous, being equal to 0 in integer context. MySQL++ provides the global null object, which you can assign to a Null template instance to make it equal to SQL null: myfield = mysqlpp::null; If you insert a MySQL++ field holding a SQL null into a C++ IOstream, you get “(NULL)”, something fairly unlikely to be in a normal output string, thus reasonably preserving the uniqueness of the SQL null value. MySQL++ also tries to enforce the uniqueness of the SQL null value at compile time in assignments and data conversions. If you try to store a SQL null in a field type that isn’t wrapped by Null or try to assign a Null-wrapped field value to a variable of the inner non-wrapped type, the compiler will emit some ugly error message, yelling about CannotConvertNullToAnyOtherDataType. (The exact message is compiler-dependent.) If you don’t like these behaviors, you can change them by passing a different value for the second parameter to template Null. By default, this parameter is , meaning that we should enforce the uniqueness of SQL null. To relax the distinctions, you can instantiate the Null template with a different behavior type: or . Consider this code: mysqlpp::Null<unsigned char, mysqlpp::NullIsZero> myfield(mysqlpp::null); cout << myfield << endl; cout << int(myfield) << endl; This will print “0” twice. If you had used the default for the second Null template parameter, the first output statement would have printed “(NULL)”, and the second wouldn’t even compile. MySQL++’s Special String Types MySQL++ has two classes that work like std::string to some degree: and . These classes exist to provide functionality that std::string doesn’t provide, but they are neither derivatives of nor complete supersets of std::string. As a result, end-user code generally doesn’t deal with these classes directly, because std::string is a better general-purpose string type. In fact, MySQL++ itself uses std::string most of the time, too. But, the places these specialized stringish types do get used are so important to the way MySQL++ works that it’s well worth taking the time to understand them. SQLTypeAdapter The simpler of the two is SQLTypeAdapter, or STA for short.In version 2 of MySQL++ and earlier, SQLTypeAdapter was called SQLString, but it was confusing because its name and the fact that it derived from std::string suggested that it was a general-purpose string type. MySQL++ even used it this way in a few places internally. In v3, we made it a simple base class and renamed it to reflect its proper limited function. As its name suggests, its only purpose is to adapt other data types to be used with SQL. It has a whole bunch of conversion constructors, one for all data types we expect to be used with MySQL++ for values in queries. SQL queries are strings, so constructors that take stringish types just make a copy of that string, and all the others “stringize” the value in the format needed by SQL.SQLTypeAdapter doesn’t do itself. That happens elsewhere, right at the point that the STA gets used to build a query. The conversion constructors preserve type information, so this stringization process doesn’t throw away any essential information. STA is used anywhere MySQL++ needs to be able to accept any of several data types for use in a SQL query. Major users are Query’s template query mechanism and the Query stream quoting and escaping mechanism. You care about STA because any time you pass a data value to MySQL++ to be used in building a SQL query, it goes through STA. STA is one of the key pieces in MySQL++ that makes it easy to generate syntactically-correct SQL queries. String If MySQL++ can be said to have its own generic string type, it’s String, but it’s not really functional enough for general use. It’s possible that in future versions of MySQL++ we’ll expand its interface to include everything std::string does, so that’s why it’s called that.If you used MySQL++ before v3, String used to be called ColData. It was renamed because starting in v2.3, we began using it for holding more than just column data. I considered renaming it SQLString instead, but that would have confused old MySQL++ users to no end. Instead, I followed the example of Set, MySQL++’s specialized std::set variant. The key thing String provides over std::string is conversion of strings in SQL value formats to their plain old C++ data types. For example, if you initialize it with the string “2007-11-19”, you can assign the String to a Date, not because Date knows how to initialize itself from String, but the reverse: String has a bunch of implicit conversion operators defined for it, so you can use it in any type context that makes sense in your application. Because Row::operator[] returns String, you can say things like this: int x = row["x"]; In a very real sense, String is the inverse of STA: String converts SQL value strings to C++ data types, and STA converts C++ data types to SQL value strings.During the development of MySQL++ v3.0, I tried merging SQLTypeAdapter and String into a single class to take advantage of this. The resulting class gave the C++ compiler the freedom to tie itself up in knots, because it was then allowed to convert almost any data type to almost any other. You’d get a tangle of ambiguous data type conversion errors from the most innocent code. String has two main uses. By far the most common use is as the field value type of Row, as exemplified above. It’s not just the return type of Row::operator[], though: it’s actually the value type used within Row’s internal array. As a result, any time MySQL++ pulls data from the database, it goes through String when converting it from the string form used in SQL result sets to the C++ data type you actually want the data in. It’s the core of the structure population mechanism in the SSQLS feature, for example. Because String is the last pristine form of data in a result set before it gets out of MySQL++’s internals where end-user code can see it, MySQL++’s sql_blob and related typedefs are aliases for String. Using anything else would require copies; while the whole “networked database server” thing means most of MySQL++ can be quite inefficient and still not affect benchmark results meaningfully, BLOBs tend to be big, so making unnecessary copies can really make a difference. Which brings us to... Reference Counting To avoid unnecessary buffer copies, both STA and String are implemented in terms of a reference-counted copy-on-write buffer scheme. Both classes share the same underlying mechanism, and so are interoperable. This means that if you construct one of these objects from another, it doesn’t actually copy the string data, it only copies a pointer to the data buffer, and increments its reference count. If the object has new data assigned to it or it’s otherwise modified, it decrements its reference count and creates its own copy of the buffer. This has a lot of practical import, such as the fact that even though Row::operator[] returns Strings by value, it’s still efficient. Dealing with Binary Data Historically, there was no way to hold arbitrary-sized blocks of raw binary data in an SQL database. There was resistance to adding such a feature to SQL for a long time because it’s better, where possible, to decompose blocks of raw binary data into a series of numbers and text strings that can be stored in the database. This lets you query, address and manipulate elements of the data block individually. A classic SQL newbie mistake is trying to treat the database server as a file system. Some embedded platforms use a database engine as a file system, but MySQL doesn’t typically live in that world. When your platform already has a perfectly good file system, you should use it for big, nondecomposable blocks of binary data in most cases. A common example people use when discussing this is images in database-backed web applications. If you store the image in the database, you have to write code to retrieve the image from the database and send it to the client; there’s more overhead, and less efficient use of the system’s I/O caching system. If you store the image in the filesystem, all you have to do is point the web server to the directory where the images live, and put a URL for that image in your generated HTML. Because you’re giving the web server a direct path to a file on disk, operation is far more efficient. Web servers are very good at slurping whole files off of disk and sending them out to the network, and operating systems are very good at caching file accesses. Plus, you avoid the overhead of pushing the data through the high-level language your web app is written in, which is typically an interpreted language, not C++. Some people still hold out on this, claiming that database engines have superior security features, but I call bunk on that, too. Operating systems and web servers are capable of building access control systems every bit as granular and secure as a database system. Occasionally you really do need to store a nondecomposable block of binary data in the database. For such cases, modern SQL database servers support BLOB data types, for Binary Large OBject. This is often just called binary data, though of course all data in a modern computer is binary at some level. The tricky part about dealing with binary data in MySQL++ is to ensure that you don’t ever treat the data as a C string, which is really easy to do accidentally. C strings treat zero bytes as special end-of-string characters, but they’re not special at all in binary data. We’ve made a lot of improvements to the way MySQL++ handles string data to avoid this problem, but it’s still possible to bypass these features, wrecking your BLOBs. These examples demonstrate correct techniques. Loading a binary file into a BLOB column Above, I opined that it’s usually incorrect to store image data in a database, particularly with web apps, of which CGI is a primitive form. Still, it makes a nice, simple example. Instead of a single example program, we have here a matched pair. The first example takes the name of a JPEG file on the command line along with all the other common example program parameters, loads that file into memory, and stores it in a BLOB column in the database. This example also demonstrates how to retrieve the value assigned to an auto-increment column in the previous insertion. This example uses that feature in the typical way, to create unique IDs for rows as they’re inserted. Here is examples/load_jpeg.cpp: Notice that we used the escape manipulator when building the INSERT query above. This is because mysqlpp::sql_blob is just an alias for one of the special MySQL++ string types, which don’t do automatic quoting and escaping. They can’t, because MySQL++ also uses these data types to hold raw SQL query strings, which would break due to doubled quoting and/or escaping if it were automatic. Serving images from BLOB column via CGI The other example in this pair is rather short, considering how much it does. It parses a CGI query string giving the image ID, uses that to retreive data loaded into the database by load_jpeg, and writes it out in the form a web server wants when processing a CGI call, all with adequate real-world error handling. This is examples/cgi_jpeg.cpp: While you can run it by hand, it’s best to install this in a web server’s CGI program directory, then call it with a URL like http://my.server.com/cgi-bin/cgi_jpeg?id=1. That retrieves the JPEG with ID 1 from the database and returns it to the web server, which will send it on to the browser. We’ve included an image with MySQL++ that you can use with this example pair, examples/logo.jpg. Using Transactions The class makes it easier to use SQL transactions in an exception-safe manner. Normally you create the Transaction object on the stack before you issue the queries in your transaction set. Then, when all the queries in the transaction set have been issued, you call Transaction::commit(), which commits the transaction set. If the Transaction object goes out of scope before you call commit(), the transaction set is rolled back. This ensures that if some code throws an exception after the transaction is started but before it is committed, the transaction isn’t left unresolved. examples/transaction.cpp illustrates this: One of the downsides of transactions is that the locking it requires in the database server is prone to deadlocks. The classic case where this happens is when two programs both want access to the same two rows within a single transaction each, but they modify them in opposite orders. If the timing is such that the programs interleave their lock acquisitions, the two come to an impasse: neither can get access to the other row they want to modify until the other program commits its transaction and thus release the row locks, but neither can finish the transaction because they’re waiting on row locks the database server is holding on behalf of the other program. The MySQL server is smart enough to detect this condition, but the best it can do is abort the second transaction. This breaks the impasse, allowing the first program to complete its transaction. The second program now has to deal with the fact that its transaction just got aborted. There’s a subtlety in detecting this situation when using MySQL++. By default, MySQL++ signals errors like these with exceptions. In the exception handler, you might expect to get ER_LOCK_DEADLOCK from Query::errnum() (or Connection::errnum(), same thing), but what you’ll almost certainly get instead is 0, meaning “no error.” Why? It’s because you’re probably using a Transaction object to get automatic roll-backs in the face of exceptions. In this case, the roll-back happens before your exception handler is called by issuing a ROLLBACK query to the database server. Thus, Query::errnum() returns the error code associated with this roll-back query, not the deadlocked transaction that caused the exception. To avoid this problem, a few of the exception objects as of MySQL++ v3.0 include this last error number in the exception object itself. It’s populated at the point of the exception, so it can differ from the value you would get from Query::errnum() later on when the exception handler runs. The example examples/deadlock.cpp demonstrates the problem: This example works a little differently than the others. You run one copy of the example, then when it pauses waiting for you to press Enter, you run another copy. Then, depending on which one you press Enter in, one of the two will abort with the deadlock exception. You can see from the error message you get that it matters which method you call to get the error number. What you do about it is up to you as it depends on your program’s design and system architecture. Which Query Type to Use? There are three major ways to execute a query in MySQL++: Query::execute(), Query::store(), and Query::use(). Which should you use, and why? execute() is for queries that do not return data per se. For instance, CREATE INDEX. You do get back some information from the MySQL server, which execute() returns to its caller in a object. In addition to the obvious — a flag stating whether the query succeeded or not — this object also contains things like the number of rows that the query affected. If you only need the success status, it’s a little more efficient to call Query::exec() instead, as it simply returns bool. If your query does pull data from the database, the simplest option is store(). (All of the examples up to this point have used this method.) This returns a object, which contains the entire result set. It’s especially convenient because StoreQueryResult derives from std::vector<mysqlpp::Row>, so it opens the whole panoply of STL operations for accessing the rows in the result set. Access rows randomly with subscript notation, iterate forwards and backwards over the result set, run STL algorithms on the set...it all works naturally. If you like the idea of storing your results in an STL container but don’t want to use std::vector, you can call Query::storein() instead. It lets you store the results in any standard STL container (yes, both sequential and set-associative types) instead of using StoreQueryResult. You do miss out on some of the additional database information held by StoreQueryResult’s other base class, , however. store*() queries are convenient, but the cost of keeping the entire result set in main memory can sometimes be too high. It can be surprisingly costly, in fact. A MySQL database server stores data compactly on disk, but it returns query data to the client in a textual form. This results in a kind of data bloat that affects numeric and BLOB types the most. MySQL++ and the underlying C API library also have their own memory overheads in addition to this. So, if you happen to know that the database server stores every record of a particular table in 1 KB, pulling a million records from that table could easily take several GB of memory with a store() query, depending on what’s actually stored in that table. For these large result sets, the superior option is a use() query. This returns a object, which is similar to StoreQueryResult, but without all of the random-access features. This is because a “use” query tells the database server to send the results back one row at a time, to be processed linearly. It’s analogous to a C++ stream’s input iterator, as opposed to a random-access iterator that a container like vector offers. By accepting this limitation, you can process arbitrarily large result sets. This technique is demonstrated in examples/simple3.cpp: This example does the same thing as simple2, only with a “use” query instead of a “store” query. Valuable as use() queries are, they should not be the first resort in solving problems of excessive memory use. It’s better if you can find a way to simply not pull as much data from the database in the first place. Maybe you’re saying SELECT * even though you don’t immedidately need all the columns from the table. Or, maybe you’re filtering the result set with C++ code after you get it from the database server. If you can do that filtering with a more restrictive WHERE clause on the SELECT, it’ll not only save memory, it’ll save bandwidth between the database server and client, and can even save CPU time. If the filtering criteria can’t be expressed in a WHERE clause, however, read on to the next section. Conditional Result Row Handling Sometimes you must pull more data from the database server than you actually need and filter it in memory. SQL’s WHERE clause is powerful, but not as powerful as C++. Instead of storing the full result set and then picking over it to find the rows you want to keep, use Query::store_if(). This is examples/store_if.cpp: I doubt anyone really needs to select rows from a table that have a prime number in a given field. This example is meant to be just barely more complex than SQL can manage, to avoid obscuring the point. That point being, the Query::store_if() call here gives you a container full of results meeting a criterion that you probably can’t express in SQL. You will no doubt have much more useful criteria in your own programs. If you need a more complex query than the one store_if() knows how to build when given an SSQLS examplar, there are two overloads that let you use your own query string. One overload takes the query string directly, and the other uses the query string built with Query’s stream interface. Executing Code for Each Row In a Result Set SQL is more than just a database query language. Modern database engines can actually do some calculations on the data on the server side. But, this isn’t always the best way to get something done. When you need to mix code and a query, MySQL++’s Query::for_each() facility might be just what you need. This is examples/for_each.cpp: You only need to read the main() function to get a good idea of what the program does. The key line of code passes an SSQLS examplar and a functor to Query::for_each(). for_each() uses the SSQLS instance to build a select * from TABLE query, stock in this case. It runs that query internally, calling gather_stock_stats on each row. This is a pretty contrived example; you could actually do this in SQL, but we’re trying to prevent the complexity of the code from getting in the way of the demonstration here. Just as with store_if(), described above, there are two other overloads for for_each() that let you use your own query string. Connection Options MySQL has a large number of options that control how it makes the connection to the database server, and how that connection behaves. The defaults are sufficient for most programs, so only one of the MySQL++ example programs make any connection option changes. Here is examples/multiquery.cpp: This is a fairly complex example demonstrating the multi-query and stored procedure features in newer versions of MySQL. Because these are new features, and they change the communication between the client and server, you have to enable these features in a connection option. The key line is right up at the top of main(), where it creates a object and passes it to Connection::set_option(). That method will take a pointer to any derivative of : you just create such an object on the heap and pass it in, which gives Connection the data values it needs to set the option. You don’t need to worry about releasing the memory used by the Option objects; it’s done automatically. The only tricky thing about setting options is that only a few of them can be set after the connection is up. Most need to be set just as shown in the example above: create an unconnected Connection object, set your connection options, and only then establish the connection. The option setting mechanism takes care of applying the options at the correct time in the connection establishment sequence. If you’re familiar with setting connection options in the MySQL C API, you’ll have to get your head around the fact that MySQL++’s connection option mechanism is a much simpler, higher-level design that doesn’t resemble the C API in any way. The C API has something like half a dozen different mechanisms for setting options that control the connection. The flexibility of the C++ type system allows us to wrap all of these up into a single high-level mechanism while actually getting greater type safety than the C API allows. Dealing with Connection Timeouts By default, current MySQL servers have an 8 hour idle timeout on connections. This is not a problem if your program never has to run for more than 8 hours or reliably queries the database more often than that. And, it’s a good thing for the database server, because even an idle connection takes up server resources. Many programs must run continually, however, and may experience long idle periods, such as nights and weekends when no one is around to make the program issue database queries. It’s therefore common for people writing such programs to get a bug report from the field complaining that the program died overnight or over a long weekend, usually with some error message about the database server going away. They then check the DB server, find that it’s still running and never did restart and scratch their heads wondering what happened. What happened is that the server’s connection idle timeout expired, so it closed the connection to the client. You cannot detect this condition by calling Connection::connected(). When that returns true, it just means that either the connect-on-create constructor or the connect() call succeeded and that we haven’t observed the connection to be down since then. When the database server closes an idle connection, you won’t know it until after you try to issue a query. This is simply due to the nature of network programming. One way around this problem is to configure MySQL to have a longer idle timeout. This timeout is in seconds, so the default of 8 hours is 28,800 seconds. You would want to figure out the longest possible time that your program could be left idle, then pick a value somewhat longer than that. For instance, you might decide that the longest reasonable idle time is a long 4-day weekend — 345,600 seconds — which you could round up to 350,000 or 400,000 to allow for a little bit of additional idle time on either end of that period. Another way around this, on a per-connection basis from the client side, would be to set the connection option. This will cause MySQL++ to reconnect to the server automatically if it drops the connection. Beware that unless you’re using MySQL 5.1.6 or higher, you have to set this only after the connection is established, or it won’t take effect. This means there’s a potential race condition: it’s possible the connection could drop shortly enough after being established that you don’t have time to apply the option, so it won’t come back up automatically. MySQL 5.1.6+ fixes this by allowing this option to be set before the connection is established. A completely different way to tackle this, if your program doesn’t block forever waiting on I/O while idle, is to periodically call Connection::ping(). Don’t ping the server too often! It takes a tiny amount of processing capability to handle a ping, which can add up to a significant amount if done often enough by a client, or even just rarely by enough clients. Also, a lower ping frequency can let your program ride through some types of network faults — a switch reboot, for instance — without needing a reconnect. I like to ping the DB server no more often than half the connection timeout. With the default of 8 hours, then, I’d ping between every 4 and 7 hours. This sends the smallest possible amount of data to the database server, which will reset its idle timer and cause it to respond, so ping() returns true. If it returns false instead, you know you need to reconnect to the server. Periodic pinging is easiest to do if your program uses asynchronous I/O, threads, or some kind of event loop to ensure that you can call something periodically even while the rest of the program has nothing to do. An interesting variant on this strategy is to ping the server before each query, or, better, before each group of queries within a larger operation. It has an advantage over pinging during idle time in that the client is about to use far more server resources to handle the query than it will take to handle the ping, so the ping time gets lost in the overhead. On the other hand, if the client issues queries frequently when not idle, it can result in a lot more pings than would happen if you just pinged every N hours while idle. Finally, some programmers prefer to wrap the querying mechanism in an error handler that catches the “server has gone away” error and tries to reestablish the connection and reissue the query. This adds some complexity, but it makes your program more robust without taking up unnecessary resources. If you did this, you could even change the server to drop idle connections more often, thus tying up fewer TCP/IP stack resources. Concurrent Queries on a Connection An important limitation of the MySQL C API library — which MySQL++ is built atop, so it shares this limitation — is that you can only have one query in progress on each connection to the database server. If you try to issue a second query while one is still in progress, you get an obscure error message about “Commands out of sync” from the underlying C API library. (You normally get this message in a MySQL++ exception unless you have exceptions disabled, in which case you get a failure code and Connection::error() returns this message.) There are lots of ways to run into this limitation: The easiest way is to try to use a single object in a multithreaded program, with more than one thread attempting to use it to issue queries. Unless you put in a lot of work to synchronize access, this is almost guaranteed to fail at some point, giving the dread “Commands out of sync” error. You might then think to give each thread that issues queries its own Connection object. You can still run into trouble if you pass the data you get from queries around to other threads. What can happen is that one of these child objects indirectly calls back to the Connection at a time where it’s involved with another query. This is properly covered elsewhere, in .) One way to run into this problem without using threads is with “use” queries, discussed above. If you don’t consume all rows from a query before you issue another on that connection, you are effectively trying to have multiple concurrent queries on a single connection. Here’s a recipie for this particular disaster: UseQueryResult r1 = query.use("select garbage from plink where foobie='tamagotchi'"); UseQueryResult r2 = query.use("select blah from bonk where bletch='smurf'"); The second use() call fails because the first result set hasn’t been consumed yet. Still another way to run into this limitation is if you use MySQL’s multi-query feature. This lets you give multiple queries in a single call, separated by semicolons, and get back the results for each query separately. If you issue three queries using Query::store(), you only get back the first query’s results with that call, and then have to call store_next() to get the subsequent query results. MySQL++ provides Query::more_results() so you know whether you’re done, or need to call store_next() again. Until you reach the last result set, you can’t issue another query on that connection. Finally, there’s a way to run into this that surprises almost everyone sooner or later: stored procedures. MySQL normally returns at least two result sets for a stored procedure call. The simple case is that the stored procedure contains a single SQL query, and it succeeds: you get two results, first the results of the embedded SQL query, and then the result of the call itself. If there are multiple SQL queries within the stored procedure, you get more than two result sets. Until you consume them all, you can’t start a new query on the connection. As above, you want to have a loop calling more_results() and store_next() to work your way through all of the result sets produced by the stored procedure call. Getting Field Meta-Information The following example demonstrates how to get information about the fields in a result set, such as the name of the field and the SQL type. This is examples/fieldinf.cpp: mysql++-3.2.5/doc/userman/deadlock.txt000644 000765 000024 00000006137 13515046514 020360 0ustar00tangentstaff000000 000000 #include "cmdline.h" #include #include #include using namespace std; // Bring in global holding the value given to the -m switch extern int run_mode; int main(int argc, char *argv[]) { // Get database access parameters from command line mysqlpp::examples::CommandLine cmdline(argc, argv); if (!cmdline) { return 1; } // Check that the mode parameter was also given and it makes sense const int run_mode = cmdline.run_mode(); if ((run_mode != 1) && (run_mode != 2)) { cerr << argv[0] << " must be run with -m1 or -m2 as one of " "its command-line arguments." << endl; return 1; } mysqlpp::Connection con; try { // Establish the connection to the database server mysqlpp::Connection con(mysqlpp::examples::db_name, cmdline.server(), cmdline.user(), cmdline.pass()); // Start a transaction set. Transactions create mutex locks on // modified rows, so if two programs both touch the same pair of // rows but in opposite orders at the wrong time, one of the two // programs will deadlock. The MySQL server knows how to detect // this situation, and its error return causes MySQL++ to throw // a BadQuery exception. The point of this example is that if // you want to detect this problem, you would check the value of // BadQuery::errnum(), not Connection::errnum(), because the // transaction rollback process executes a query which succeeds, // setting the MySQL C API's "last error number" value to 0. // The exception object carries its own copy of the error number // at the point the exception was thrown for this very reason. mysqlpp::Query query = con.query(); mysqlpp::Transaction trans(con); // Build and run the queries, with the order depending on the -m // flag, so that a second copy of the program will deadlock if // run while the first is waiting for Enter. char dummy[100]; for (int i = 0; i < 2; ++i) { int lock = run_mode + (run_mode == 1 ? i : -i); cout << "Trying lock " << lock << "..." << endl; query << "select * from deadlock_test" << lock << " where x = " << lock << " for update"; query.store(); cout << "Acquired lock " << lock << ". Press Enter to "; cout << (i == 0 ? "try next lock" : "exit"); cout << ": " << flush; cin.getline(dummy, sizeof(dummy)); } } catch (mysqlpp::BadQuery e) { if (e.errnum() == ER_LOCK_DEADLOCK) { cerr << "Transaction deadlock detected!" << endl; cerr << "Connection::errnum = " << con.errnum() << ", BadQuery::errnum = " << e.errnum() << endl; } else { cerr << "Unexpected query error: " << e.what() << endl; } return 1; } catch (mysqlpp::Exception e) { cerr << "General error: " << e.what() << endl; return 1; } return 0; } mysql++-3.2.5/doc/userman/hello.txt000644 000765 000024 00000000212 13515046514 017701 0ustar00tangentstaff000000 000000 #include int main() { mysqlpp::String greeting("Hello, world!"); std::cout << greeting << std::endl; return 0; } mysql++-3.2.5/doc/userman/userman.dbx.in000644 000765 000024 00000003565 13515046514 020631 0ustar00tangentstaff000000 000000 %xinclude; ]>
MySQL++ v@MYSQLPP_VERSION_MAJOR@.@MYSQLPP_VERSION_MINOR@.@MYSQLPP_VERSION_BUGFIX@ User Manual Kevin Atkinson Sinisa Milivojevic Monty Widenius Warren Young 1998-2001, 2005-2019 Kevin Atkinson (original author) MySQL AB Educational Technology Resources
mysql++-3.2.5/doc/userman/tquery1.txt000644 000765 000024 00000004136 13515046514 020221 0ustar00tangentstaff000000 000000 #include "cmdline.h" #include "printdata.h" #include using namespace std; int main(int argc, char *argv[]) { // Get database access parameters from command line mysqlpp::examples::CommandLine cmdline(argc, argv); if (!cmdline) { return 1; } try { // Establish the connection to the database server. mysqlpp::Connection con(mysqlpp::examples::db_name, cmdline.server(), cmdline.user(), cmdline.pass()); // Build a template query to retrieve a stock item given by // item name. mysqlpp::Query query = con.query( "select * from stock where item = %0q"); query.parse(); // Retrieve an item added by resetdb; it won't be there if // tquery* or ssqls3 is run since resetdb. mysqlpp::StoreQueryResult res1 = query.store("Nürnberger Brats"); if (res1.empty()) { throw mysqlpp::BadQuery("UTF-8 bratwurst item not found in " "table, run resetdb"); } // Replace the proper German name with a 7-bit ASCII // approximation using a different template query. query.reset(); // forget previous template query data query << "update stock set item = %0q where item = %1q"; query.parse(); mysqlpp::SimpleResult res2 = query.execute("Nuerenberger Bratwurst", res1[0][0].c_str()); // Print the new table contents. print_stock_table(query); } catch (const mysqlpp::BadQuery& er) { // Handle any query errors cerr << "Query error: " << er.what() << endl; return -1; } catch (const mysqlpp::BadConversion& er) { // Handle bad conversions cerr << "Conversion error: " << er.what() << endl << "\tretrieved data size: " << er.retrieved << ", actual size: " << er.actual_size << endl; return -1; } catch (const mysqlpp::Exception& er) { // Catch-all for any other MySQL++ exceptions cerr << "Error: " << er.what() << endl; return -1; } return 0; } mysql++-3.2.5/doc/userman/for_each.txt000644 000765 000024 00000003701 13515046514 020352 0ustar00tangentstaff000000 000000 #include "cmdline.h" #include "printdata.h" #include "stock.h" #include #include #include // Define a functor to collect statistics about the stock table class gather_stock_stats { public: gather_stock_stats() : items_(0), weight_(0), cost_(0) { } void operator()(const stock& s) { items_ += s.num; weight_ += (s.num * s.weight); cost_ += (s.num * s.price.data); } private: mysqlpp::sql_bigint items_; mysqlpp::sql_double weight_, cost_; friend std::ostream& operator<<(std::ostream& os, const gather_stock_stats& ss); }; // Dump the contents of gather_stock_stats to a stream in human-readable // form. std::ostream& operator<<(std::ostream& os, const gather_stock_stats& ss) { os << ss.items_ << " items " << "weighing " << ss.weight_ << " stone and " << "costing " << ss.cost_ << " cowrie shells"; return os; } int main(int argc, char *argv[]) { // Get database access parameters from command line mysqlpp::examples::CommandLine cmdline(argc, argv); if (!cmdline) { return 1; } try { // Establish the connection to the database server. mysqlpp::Connection con(mysqlpp::examples::db_name, cmdline.server(), cmdline.user(), cmdline.pass()); // Gather and display the stats for the entire stock table mysqlpp::Query query = con.query(); std::cout << "There are " << query.for_each(stock(), gather_stock_stats()) << '.' << std::endl; } catch (const mysqlpp::BadQuery& e) { // Something went wrong with the SQL query. std::cerr << "Query failed: " << e.what() << std::endl; return 1; } catch (const mysqlpp::Exception& er) { // Catch-all for any other MySQL++ exceptions std::cerr << "Error: " << er.what() << std::endl; return 1; } return 0; } mysql++-3.2.5/doc/userman/overview.dbx000644 000765 000024 00000022560 13515046514 020414 0ustar00tangentstaff000000 000000 Overview MySQL++ has a lot of complexity and power to cope with the variety of ways people use databases, but at bottom it doesn’t work all that differently than other database access APIs. The usage pattern looks like this: Open the connection Form and execute the query If successful, iterate through the result set Else, deal with errors Each of these steps corresponds to a MySQL++ class or class hierarchy. An overview of each follows. The Connection Object A object manages the connection to the MySQL server. You need at least one of these objects to do anything. Because the other MySQL++ objects your program will use often depend (at least indirectly) on the Connection instance, the Connection object needs to live at least as long as all other MySQL++ objects in your program. MySQL supports many different types of data connection between the client and the server: TCP/IP, Unix domain sockets, and Windows named pipes. The generic Connection class supports all of these, figuring out which one you mean based on the parameters you pass to Connection::connect(). But if you know in advance that your program only needs one particular connection type, there are subclasses with simpler interfaces. For example, there’s if you know your program will always use a networked database server. The Query Object Most often, you create SQL queries using a object created by the Connection object. Query acts as a standard C++ output stream, so you can write data to it like you would to std::cout or std::ostringstream. This is the most C++ish way MySQL++ provides for building up a query string. The library includes stream manipulators that are type-aware so it’s easy to build up syntactically-correct SQL. Query also has a feature called which work something like C’s printf() function: you set up a fixed query string with tags inside that indicate where to insert the variable parts. If you have multiple queries that are structurally similar, you simply set up one template query, and use that in the various locations of your program. A third method for building queries is to use Query with SSQLS. This feature lets you create C++ structures that mirror your database schemas. These in turn give Query the information it needs to build many common SQL queries for you. It can INSERT, REPLACE and UPDATE rows in a table given the data in SSQLS form. It can also generate SELECT * FROM SomeTable queries and store the results as an STL collection of SSQLSes. Result Sets The field data in a result set are stored in a special std::string-like class called . This class has conversion operators that let you automatically convert these objects to any of the basic C data types. Additionally, MySQL++ defines classes like , which you can initialize from a MySQL DATETIME string. These automatic conversions are protected against bad conversions, and can either set a warning flag or throw an exception, depending on how you set the library up. As for the result sets as a whole, MySQL++ has a number of different ways of representing them: Queries That Do Not Return Data Not all SQL queries return data. An example is CREATE TABLE. For these types of queries, there is a special result type () that simply reports the state resulting from the query: whether the query was successful, how many rows it impacted (if any), etc. Queries That Return Data: MySQL++ Data Structures The most direct way to retrieve a result set is to use Query::store(). This returns a object, which derives from std::vector<mysqlpp::Row>, making it a random-access container of s. In turn, each Row object is like a std::vector of String objects, one for each field in the result set. Therefore, you can treat StoreQueryResult as a two-dimensional array: you can get the 5th field on the 2nd row by simply saying result[1][4]. You can also access row elements by field name, like this: result[2]["price"]. A less direct way of working with query results is to use Query::use(), which returns a object. This class acts like an STL input iterator rather than a std::vector: you walk through your result set processing one row at a time, always going forward. You can’t seek around in the result set, and you can’t know how many results are in the set until you find the end. In payment for that inconvenience, you get better memory efficiency, because the entire result set doesn’t need to be stored in RAM. This is very useful when you need large result sets. Queries That Return Data: Specialized SQL Structures Accessing results through MySQL++’s data structures is a pretty low level of abstraction. It’s better than using the MySQL C API, but not by much. You can elevate things a little closer to the level of the problem space by using the SSQLS feature. This lets you define C++ structures that match the table structures in your database schema. In addition, it’s easy to use SSQLSes with regular STL containers (and thus, algorithms) so you don’t have to deal with the quirks of MySQL++’s data structures. The advantage of this method is that your program will require very little embedded SQL code. You can simply execute a query, and receive your results as C++ data structures, which can be accessed just as you would any other structure. The results can be accessed through the Row object, or you can ask the library to dump the results into an STL container — sequential or set-associative, it doesn’t matter — for you. Consider this: vector<stock> v; query << "SELECT * FROM stock"; query.storein(v); for (vector<stock>::iterator it = v.begin(); it != v.end(); ++it) { cout << "Price: " << it->price << endl; } Isn’t that slick? If you don’t want to create SSQLSes to match your table structures, as of MySQL++ v3 you can now use Row here instead: vector<mysqlpp::Row> v; query << "SELECT * FROM stock"; query.storein(v); for (vector<mysqlpp::Row>::iterator it = v.begin(); it != v.end(); ++it) { cout << "Price: " << it->at("price") << endl; } It lacks a certain syntactic elegance, but it has its uses. Exceptions By default, the library throws whenever it encounters an error. You can ask the library to set an error flag instead, if you like, but the exceptions carry more information. Not only do they include a string member telling you why the exception was thrown, there are several exception types, so you can distinguish between different error types within a single try block. mysql++-3.2.5/doc/html/userman/000755 000765 000024 00000000000 13515046514 017006 5ustar00tangentstaff000000 000000 mysql++-3.2.5/doc/html/refman/000755 000765 000024 00000000000 13515046516 016606 5ustar00tangentstaff000000 000000 mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1SelfTestFailed__coll__graph.png000644 000765 000024 00000026214 13515046516 027763 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÂÅä-‰sRGB®Îé,FIDATxí]Ü”ÕÒº»»¤$ A‹Ò‚ —”‹*¨ ¡ˆ(!! xUÀñCx iADB:¤¥SÉó͸gÙ]žÝwûÝ8óûí>qræÌœ33ÏyžI¤È€¡@ŒS qŒãoÐ7 A0Œ`(À0‚`ØÀPÀ‚áC»HêLˆÓ§OÓüá|Û\‡rçÎMÅŠ JÖ­[GW®\ JÝ ]é<@yóæµìÆ}‚ s•*UJŸšcQàСCAïMöìÙ)[¶lAo'” ìÙ³Çms.!Úá– ”xâĉ ÷6uêÔQ'ûöísK7c,»%IŒ Aˆ•‘6xº¥€·ä1‰±B#±2ÒO·ª ܺu‹Îž=벿üò Õ¯_ßez¸&8ãÕ¡Cš1cF¸v7ÁúuîÜ9ºqã†eûðâ`ìO:e™ê›A„¹sçR–,YèæÍ›–x9s†~ýõWË´p¾éŒ×Õ«W]x8ãì¾Á ;}útËfnß¾M—/_¦;wîX¦‡úfÀn½%K–vïýóÏ?ô×_ >´!|ýúuÚ¸q#ýý÷ß÷áŠ4-4Ø{íÚ5[9d¾xñ"­ZµŠì}é˜uP¿.‡|Ç'™äŸ?¾Ã=väÈZ¹r¥Ô­ïሾ£?èç²eËlýµÂë¿ÿý/=õÔS¶â`¬vË—/§K—.ÙîcuÄ ˆY®¶mÛF`ˆHÐä矖±z3óáÇ ç'Ož†Ç8áŒ1,Z´¨ „tÖ<òçŸÒo¿ý&eì邺víÚ%ùpÿÂ… „•9`À 83€âw¸çî‚RÕ­[W%K–L±ÿY%MšT}þùçŠ £'NŒ-Þ*I’$êÀŠ™Ce̘Qî%J”H•/_^¥I“ÆV}¦L™T×®]åš…Jò13ÉõäÉ“¥~´ƒ:Ÿ|òIuþüyÅ+Š´Ó»woÉÇL-ׯ “ë~ýú)´•"E ¹ß²eK…>3ñUûöí¥.Ô‰>:TÊà/yòäªZµjr_ãg‰W¾|ù”noÅŠŠWðJ™2¥âç1Ru¾ñƪdÉ’Š™@êÕx0s Ù#زe‹Ú½{·Gy}Éôûï¿ËXyZö£>\Ó§O/´lذ¡> ð€6o¿ý¶*]º´àû Ž˜/Ö¬Y#çM›6µÑtcõIºÁ“‘ª^½ºäA™Ç{LÎÁcž ŸâIÏevH­x+Ó¦M“N¡žÁ2OžräHÚ~øAñÌ¢¾øâ I# ¼•AñL¥xËzúé§«yŠgx北WÁ‚¯ 8ãç Ïš"ÈQ£FI:ðÅõþýû¥MOþÂIx…ViÓ¦|ÐwЌɀIqÊ”)rA®mÚ´Q6l°1¿½ Ô«WOñÊ!&KOL¯¼òŠÐ~óæÍ 4ºÂJx‰—÷ÙgŸU‹-¦@솗Eɧé`lû÷¬`øðá‚8DijG™2e$;˜ ³ ‚y=zôP™3g–sýaÀŒZ±bEÁÔõ­_¿^õý÷ß—¬}Žȇ\½zµ^HÓ‚ g6VÃp[@¯lD¬… ÖI 4A .´Ý‹ï$œÂ^¼xqÅÛqÔ7ß|£X-ÇÄp„téÒ)¶§$MÓÊ^00ëwîÜY.óçϯúô飓d…Ý)~ÛÌPÄ3®è»¬®È£y–dî§#ðl!:#3Ÿ-U#Û¹»m´k×NtqèãL4b!’b¬öÒ 3²šF ûÐS¡‹ÚCëÖ­eÃê„ŽŽºðcÁ"VÛˆÕ([öB… ÙÎõ–m÷ØìNРB… ¶»¹rå’sm³@'ÖÀª“œFªÀ*#±ÊJØøüóÏ˱N:¢ókíØô–*U*û[çö´A>M—cÇŽÙÆìéëP~ Œ>ž™iûöíb¤²ŽOƒ&¡ö5kV¹ói@YOÌÄ34íØ±CêEݳgϦJq0 ÚäÙIܘ‹/–û¬>Ïþ6ƒFÙ /¼ B„Áà¡.ýûä“Oè™gž±u F·p-dú¾ý1gΜr¹uëVÛm^IäœU&9Ú š-S„žÀøeµŽ,X@0†Ù†ÚN˜0Á'ŒX­²,‡qäÕ–£9Ð`ݲ­`Ëv‹-ÄÒG‡1ó’H˜¥Á¼t+ÒÁ°¼¼‹‡ÉÙ÷Îö±:%eÀÀݺu#x5j$³}ÿþý ÛÄçÍ›Gl”‰'ˆ×KêØ±£Ìæ¬ßUÔ©S'bCšš5k&G6˜Å›5`ÀbÕŒØ`¥&MšØúÏú…üP Xéàï†3†x‰¦²eË:à…ö5`¦‚Т.”AàQªT©)RDg‹š#ÆÏP0€Xá±J`eà‚/™?€Uã†èúꫯúSuY›âõ¿oe’0N¹v/ ¼#FŒÚ˜imÞfh±!´×FϾ z£w^£ñãÇ‹çíàdz¹®cÇŽ•ëŸ~úIª§—UÅÂ!×ï½÷žp(ýº,º* `]ú>dÈIÃlxµ`„#¼=ð<œñ‚«½F° xõ“2À‘Õç6 ~‡$ k0+psg¼ìÓá,€q £Ü™öù|97A_xŒàEr8´×Ð9ÍÓëµk×*V7Å+ÉÏ‹«×"O!>Apù>KœWP¢D ËüP‘ðÓ€½îP“|öÑ#<âuQvñÝg4ëJØãCø¹‚ 2~ÎàŒ—}:Œ`žýìoEõ9v°—ÇG¨Ãþ-ìî¦>ø€`Pó*DUªT±_Û ˜ øÚp-Bc€ $<`ÀsaÀvŒ l¶@‚ÔÄ áA¬¾ü;¨ñÛkÔÞ™Ê BD#!"´i&¼)Ó‚ðé§Ëx—ãõð¡ïÝ…C×ißü{Ïf—6ïú ×>¬_›6í I“–QïÞU)kV×þÖ`€*ÂSñ`ÂAÞÖŽŸ¿puwR:ñMjÊÙæ]nýNŠ¿mª|"øaí+Ã6ìûX¸p'õê5‹Ò§OEãÇ·â­"Áe°@ÑûpààÉz öùÿ9çmÿïy~âLTï»Ü”2S’`t׫:A3ÐÎ î«LÑzoÿþÓ¼%cˆl´Kš41Û–7.­è†/Åï­z„vÍ<-í¥Ê’”Ú.*’¶ýi$¦m„Â…³QÊ”ÉeŸÌ­[wèÅ¿¦?^â=cºìõ‹·éÇ÷ÐîÙwßLÄÜ•£LpV®@:¦Ä,Uê®:¤5ÄaÃæñ¦®oùÕÏÈ…2ÐÌ⮾ ¯Ó¬¶]!uç®¶(q"Ê^æîVyweÃ!-æáᇠð.É{>è´³go¤æÍÇñîÑ«á0Fa߇£«/ÒÌv;éÊ_7èέ{&'γ•JöýGc^Ê”Ék{DØíÛwxÿûa~Ég$o#¾«ëê4st¤ÀߦÝöÑíîÐÛ÷„@çÊZÒ‚¦EXK—ÎÃ/îÜ?€·nÝæw.ð·wFÑêÕ†5 Ñ9ÅøuÐaZ5ò«B¼'Úâ«,ér%§äiÞ[ä }b~E(Z4«FÖƒa¸rå:µl9ž¾ÿÞ³·ézöÙÊ4hÐÅÇ¿ïxzÐ\Øg)Ú(3Uí‘/ìûéM xH­¾}Ê‹þ±þâž&—ë”S¼D’."²Aðp˜²dIK=zÔã¯[/£Ã‡y³™¨¢€ñy1œØ|W«Öpyæ0iR'/Jš¬áN³"x1BØ|7pàÓc­X±Ç‹’&k¸SÀ¬>ŒP§N“8€É_Rµ—mk†Õ˜"aD³"ø0<%v¤I¿úPÚ G AðaTòçÏB/½ô8¦|!"¿ìC ‘SdiŸ´yÒ)¯:ŒXw5kÖ´i÷¦0>.†Àì¡#>R¼[·Úüµ¹¼"zßZÃäý‹Ï‘·/às„"Âgõ9ª×Ô;w®Ä¥àÈ8^—õ§€©—*UrÞvÑ„þïÿ~§­[øXKø³z‚Œ ‹Ø¡í¯1“;‡ßE0AÏÏ`WÎ;wîÐÆ™v[mQO!8º<¾½ŠÅ±ÅzãIJÅïhhРAíÁLŽEoÚ´IB9!¬/t{¨CÈ£ñÓØé˜íu8á¾}ûòööjüþÇI©§T©R’÷ñÇ·åဌ¤cSëú‚y4/æøI]|2²M›*¼éG~§¹,¥N9{ð]¡¾zÔQJ“-9•mŸÝ! $‚¹Ü* ÎóæÍK!€ØÚPêÕ«'±•Qñ­u°F0ûÞ½{¥¾)S¦ð‹O‰åªâQã:!!a[OHÌØvïÞ èúõ›4zô¢Öš0UýµíªË-Ö¬æ£cæÇ3xíÚµE–.]*Õ³eËfë8‚¯k@¤Qµ+—qqqT¼xq);zôè€|†^·ãëÑ‚¯”³+‡×8ñ¥‹Ï?ÿ…lœ±K‰¼ÓìeRSã Å]n±†ê³råJZ¶l™ÂO<Á_øXEóçÏwP‹€¹Õ,•„ƒS—.]ÄMºzõjb["Á e!@Cбcu~é?õï?;@5&\59Ë»~?ûÉ'Ÿ;aýúõ"ÐõÙ˜¥ß~ûí>Ap…¼AP«p„»tΜ9ÄAÉ%;z—ã®]»¤^Wuü~(,òXicåÊ=*W®×Øû±3ªQæàâŠu޼*ˆWˆ[îi¯ÑÑ£GmyjÕª¥:uê$×½zõRÌðâ!*P €bãY±¡úô飨%«8¨¸xŽ´—ÉVIOÌ^£O-Ï?ÿíÚu‚U‡Þl@š×yñL¿bÅŠI<“Ð!±¾ †7 pý\Áª"þÉÝÄ*Ý›{F¼¡–y;G5j ›¡K—Ç=(a²¸¢À’%KØîúÜU2;'FS +ApIfß°é³Ï–³ÞüeË=ïõúN‘ð/iÖî ŒÑË/×¢ŒSñC¢ƒP{`«¼xÄÄ™E –¯¤¶”)“±÷è)š>}?}=„S%ž ǵÞÁƒ±ëZŒ ¸¦_)=DU«á§«3ýª'˜…õäÂuÌGŽ ‘Óð=$ìL6í÷ ¶â[ÕÑø‘.ß(q·”¨OY|e»}ûj4dÈò)˜x²‡,Ùj‹uÈÓ†Œ y`Þ|³ž„ž5ja[ò¼zýëhûH—ç¸?§„ûiÐ;3¦¦^½Ðĉ+ø…ÿÓ­Û—Ê\m±ö¥®h*c!£Ù¶mU XØ¿ÿ¬´æ¾‰#«.PÚ÷o±v_*úS͵ñÚµû©Y³Oèë¯;S:¥BÔªu3·ÿQÖÉ‹ÀÞ5‚Xzº­­K—ohË–#¼¿Déq›Ù$†”F5 !¹ßy§ o"»Èûg–‡°UÓ”'0‚à •”'wîŒôꫵi̘ÅtêÔÅÕjª Œ ‚Š^ÔƒáËÚƒÍõ¢”Él A6…êGówß}J¾z±~ýA§Ts™P0‚”¯_¿ ¿³P\ö!ñKWAëž ïœ~†Ô­ 55AH ¡8°!ŽóÔ©kƒÖ½î®Ûf‹µ;êX§™'ËÖt Ù]Ëõëįv¦æ/k¿äw»0ãZî¤LERRí…ý®/V*0+B4>£ˆxV¬ØÍ_‹ÛæwoÌkßHhÁ7º´TÅŠ©yóŠôÞ{søªþù:“¦JL•ºæŽº8È%¸EeF5² JBÜ–‹êÕ‡Ð+¯‚¦ÿ¡€„€ÑTé{¯Q¤xòäÉ´víZ;vlP»üÌ3ÏÜÅ^78nÜ8ŽãVX_†ìxîÜ9J“&D¯™8q"©c }üñÇ!k? ™!Tä:vïÞ-Ñ%TËj/^LgΜ‘øÆˆqlÿÃÃ¥„ŽyƧKÓû„`á‘Q³"œ={VâøfÉ’…6lØ@ˆ¯…ºzõªDˆGˆ¡B… Éø>|˜Ò¦MK™3g¶ždã^ÆŒw?‘ŽèòÔ²eËÊl§3"¶×Ö­[%N0b~!öÚ²D¥ÇóÔ©SKÔyÄÖ±Â=3(¢J"r$‚m#·Ž†rˆRŸ"E Ïê|vš5kFo½õ–}“rŽþ|t>}„mÀ+ªØ?úŽ9sæc_ßî`sñJ¬/CzŒ*¯˜ÝS`U„?Æ»œxV†iÒ¤‰…W†õXþ$ã)1ºÁ 0Lõ€ÁÀÓÀK¾>½ïxüøqÛ=m°Û Ž}úÊ•+Ý •­"N ì/½ô’x“ÀŒzSŒsÀŽ;lµÀÕË«¢L 0֑ƶŠüxå¢ÚòÚ÷× [ÆÿðjÄ¡u³‰cA§Áh‡w͞ȽHJ°*$Þ wÞy‡à›guHz?x·nÝÄ˯ VxÊ•+' æ€'¾rV;\öž+¬2ˆ.Á‚·¨aƶü¬VI=p;"°v£F$ Œ‚öÙˆµ¼ÆMä™7oÞ}?¬*`lVw諯¾’U»çÏŸO•*Uo«PÂðh“mñâ m6¦9hY™P7úŠrÜá·-&àh¨wÖ¬YüU¿8IÃ* ½ÃâÓÃ*Ý[c™g>U­Z5[wGŒ¡xæ±]ÃPƒ§Ç ¿ò€¨U«VÙn¯X±BŒ`xU`@²ûTÁ,X°@t\”þÍj’ƒÝèÃÈ ‰6µ€²Hƒ~ û„ݲR6>¯»E¥Ê:ÿ˜ùÅóÓ±cG© ?h®S1‚Œ`”c•ÑA‡6•®³N:êÒ¥KR;|ß‘rÀãP¹re)§¨ôBý<ÑHš¶Ø­*×ø«[·®CŸl .Ni#D×È­ÜÞ~ýõ×m¡}Æ›7o*’ÚÛaŸÆ‹ÄÅ #Â¥½FöyÀ806Q?sPì3·%kA@\—ÚseËä¸Qùù…x‘œ›‚Ç ꌷ;|tüA úZY=¯Œb¸s „¨2–yæñ v,]º”ãšM¤Ñ£GßW†¶6$¡Bá!›'€zðÉ8 ®òò>¯Šò0ЪN¼íÅϬ’äž;|´ â\v¯ŽÎ·Ãî:&O9Y ¾}ûrø×ö> hVî+Ï J+€ÍÏ“7†½U=¡¼çŸPö#˜m…ý;˼”SwS@¿ªˆw–cÖkÁãoº AQƒUåµkŽîÉ`µ‹õ†½ ·÷Æâà8ã¼pá6fsðîÒäÎI1yÍž¨€áö‚À›å†l¤W”={š6m;owÞ騬ÿðtÂÖXrÑTǶmG©nÝ‘T²dnvý¾M¨….ÆF‹aˆ¿³fmäkÑÎÇyû…çôâ¯ÙäŒ DÄÅ­'~HË»j“ÐìÙ#¤×‘ÓM#0VkÖüÉ›á.IOoݺÍ﯋€^GV DÀxA-J–,‰­§‡ÿÍۛخ͉ÿ0‚à? ƒZí[wDºyóÞ + ‡ÀQÀBàh”š–/ßE—.9†Ÿ…PÄÅm°½q”†c¬R#a>à3gnpP‹twÏœ¹DkÖ¸~CNç3GÏ(`Á3:%H®k×nJ€A{µHwä®zd¬izø{4‚à/ƒX~Ñ¢íüŠ£upAÇœ9›øË;AìAìTm!ŒÇzÆŒõòÍUa;,[¶ÓU²¹ïŒ xA¬Pf½páýòË.þ¼‰ëêlþSÀ‚ÿ4 J ?þ¸%^µêÑ‚Ûø£»f{¶¿ƒö»OýE0RË_ºtš4)ïÐ}¸RóåËÌïgw¸½G¥Kçq¸g.¼£€Ù}ê½4wÕªƒ©M›*”Nœ8A  Gy„žxâ Ê™3g¼í.Z´ˆvîÜIÝ»w§;wîÐŒ3è矦G}”¶oßî²ü3ÏÿüsˬµjÕ¢zõêY¦é›|ðôó_ÿú1‚*T¨@(ç-¼öÚkâ*^¼¸·Eò›Áw/ð¼cݺutýúu‹ÔÀÝúóÏ?iРA”%KÂs–ªU«R\\ap=yæräÈÃ8p€>ýôS*]º4?gÈEyòä‘_’$I—´iÓÚî¥I“Æ'$š6mJË—/—²çÏŸ—z!Ù²esø¡­øàŸþ¡›7oJ¶-[¶ÈD_«t”E_ü…°]NŸ>M ¨RŠöïßOÅŠ£äÉ“ÓßÿMÇŽ£Â… Kú… „añŒBÃÅ‹å€2¤‚ Óé|˜EÁ@˜áòçÏOX À”ö€ÁÂL˜9sf:|ø°0hÑ¢E¥ ò;wŽÀX×®]“~¢_2d°UqûömÂ}ܸqƒ'NLI“&¥ï¿ÿžŠ)Bƒ¶å#wëÖþøãY€òè?ŽÈæ¶à¡4lØòåËGuêÔ‘ëß~ûÖ¬YC:tGnòß•+Ww¬xΫúˆ%S¦LB³D‰Ñ©S§¤èÙ³gW]OÇŽe,ôµótÙ½{7åÍ›×au}ã7l4q.ã_ðÃÑ£G }B‚°„—_~Yf™={öЭ[·„Ù4h jO:5}üñÇ´iÓ&?~¼¨`VÀ{ï½'Lõ¦OŸ>„‡(`<0õ믿NxžæîÛ·¯0ˆZ¢D Q3†ê k×®¥wÞy‡Ê–-K;vì¾@h>üðCé_Ë–-¥,ÒPÚyë­·¨FÒ—Ñ£GÓ¯¿þJ³gÏ–ëæÍ›‹êƒY áƒZ„YA3fŒ&®Áàýúõ!„AȰŠ<øàƒH€zôþûïËyçÎiìØ±T²dÉÿ¥ÞX¼x19RpÓU¬X‘Þ}÷]™X ^Mœ8Q„õêÕ«T¥J2d½ôÒK¢~}öÙgrÄdL˜0¦M›& ºÐçO>ùDê~þùç©Y³fÔºuk‡jÜá zaÌ@k€¿ê}Ãa­AÀ_}õ•06˜ „œ9s¦sÙ²e¢W‚Ál,“›7o–ñ—_~‘åû»ï¾£~øZµjE_ýµ¬2ß|ó :tHzÞ¼yñ>ñÆÌùã?Ò”)S„íõcôóÛo¿•ôÊ•+ “a&@ókÀ9€s¨_xÜÿâ‹/Ò¸qãhõêÕTªT)“x3EŠÒïŸ~úI|àÀ‚ƒdà?ä‡`€§;!Àj:|øp™ æÌ™#õBE›Ù¯>ÎÍ`Ej¦¨AƤƒ¾ƒö(¬hÀË/wøb’À õØcÉvgŸ}ÖUU^ß[Õ˜Øëë`n{Ì }ÁL‚Õ`9s0:a_`é„ ‚•äÍ7ßFñÀÔûΑ#‡ÔåêÏ^Æ Ã6Ñ Õ\ë™¶ƒ;Á€·hÑB~PÝàõ.PQ0èÌò`H ˜ ¡ÇûZ×··KP@«uPi°Â ?eÊ”‘ÄÙ.ÑmcËì"gÀØ@Eƒ€¡¿Èãª]‚°Â+ì¶mÛÄC¤ó?ðÀúÔïcX ˜ÝÀì†Ù ª Ô"­/c)Æ|ùå—b0Ã8… [º6 ? Ç×§–GÜšá1 ö‚c?Ëi·¥}ºU…`ŒJ½bÀh¯[·®Ì¤hO/ýP/´ñ ƒ]ƒØÀ †Çl ; c^*Ðt€ê!øý÷ßÅšd¯ÞyÒ.ìÔ+ØW|ØfîÀ¾ÙÑÉ Ž èw  ¬U#O‘„jaÃXXŽð´ÀãBŠ‚Y :'Ta“&MrÛÒÁ,Xq6lØ «Ž.€ª êÂL¼;Ìð_|ñ…ÎJ06¡–aO ?<;˜ñ°¢á6GùòåEðÀ°‰à·‡× þwèåÀÁÀj ¦>hêô~¨.èV#´A…AŒ{ )çè„$>€ªU+$è†Uj˜V¬Êc¢q‡/ž€Vxö‚~L:ÕªŸî…íŠà¼8_;c‹sÉ’%2sbÀ5kÖf‡;Œ7çþó xAà†ƒa€í¡Áª-èÓ7–Á… =÷Üs:;¥OŸ^t >¨xÃÏ,°“€¶• hÚ`ÿ «Zµj2Ù€¾Úc£ëun¯víÚ‚+p@@èQA¹råú:ðÃ$åß^xA&7xÍPa—Bú>˜.XÛ°¡oC…À’f´̤ðˆàYEf=Ì,ØtéÒ óaFÔ+ ò‰á>…A¿³`uÑ„‹e Z8·­ó¹;ÂÕB Ÿ}ØçÇ CGOtmû²®Îñu­òé¼°¡Ñê“NŽ|=Ùèû®ŽX)‘_?[ÝÙ îðÅdƒ¾Aœûíªö÷aÓ€ô}ûò*<˜u¬ÑêÚÇ,¤=KÚÝé®_:¯U¨Z…°JwwŒa%º ˜ÆÊ Õé¾±:Ú; ìëÓB¯·ý¬Æ*Íêž³-cït°Ê{îðÅDV¨P!WE}¾¶ª‘7a‰ÇR­NoÊê¼ >Ù™Áîüò(ƒÏ@dS *†˜¿¯ôfg€ûO®]¼""Ÿ÷æÈÇÅ``(à3Œ øL:S0š(`!šFÓàâ3Bj#À‡Ž  Šxd!„§Ÿ~Zž0ZuÂÜ3ðæœ•k8dÔB…¨iÇPÀ Áª™2QG#Q7¤!_(`Áª™2QG#Q7¤!_(ðÿ¬×=›ûö’IEND®B`‚mysql++-3.2.5/doc/html/refman/insertpolicy_8h_source.html000755 000765 000024 00000053504 13515046515 024210 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: insertpolicy.h Source File
MySQL++  3.2.5
insertpolicy.h
Go to the documentation of this file.
1 
32 /***********************************************************************
33  Copyright © 2008-2009 by AboveNet, Inc., and © 2009 by Educational
34  Technology Resources, Inc. Others may also hold copyrights on code
35  in this file. See the CREDITS file in the top directory of the
36  distribution for details.
37 
38  This file is part of MySQL++.
39 
40  MySQL++ is free software; you can redistribute it and/or modify it
41  under the terms of the GNU Lesser General Public License as published
42  by the Free Software Foundation; either version 2.1 of the License, or
43  (at your option) any later version.
44 
45  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
46  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
47  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
48  License for more details.
49 
50  You should have received a copy of the GNU Lesser General Public
51  License along with MySQL++; if not, write to the Free Software
52  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
53  USA
54 ***********************************************************************/
55 
56 #if !defined(MYSQLPP_INSERTPOLICY_H)
57 #define MYSQLPP_INSERTPOLICY_H
58 
59 // Only allow these templates to be defined if they're being bodily
60 // included into class Query's definition. They're in this separate
61 // file only for claity, so they don't get lost among the other
62 // definitions in class Query. Without this, Doxygen will pick them
63 // up and treat them as a) outside namespace mysqlpp; and b) not member
64 // templates of class Query. We also don't want end-users of the
65 // library to #include this file in their own code; these templates
66 // should only be used as mysqlpp::Query::*.
67 #if defined(MYSQLPP_DEFINE_INSERT_POLICY_TEMPLATES)
68 
69 
76 template <class AccessController = Transaction>
77 class MYSQLPP_EXPORT RowCountInsertPolicy
78 {
79 public:
81  RowCountInsertPolicy(unsigned int rows) :
82  cur_rows_(0),
83  max_rows_(rows)
84  {
85  }
86 
88  ~RowCountInsertPolicy() { }
89 
94  template <class RowT>
95  bool can_add(int, const RowT&)
96  {
97  if (++cur_rows_ > max_rows_) {
98  cur_rows_ = 0;
99  return false;
100  }
101  else {
102  return true;
103  }
104  }
105 
107  typedef AccessController access_controller;
108 
109 private:
110  unsigned int cur_rows_;
111  unsigned const int max_rows_;
112 };
113 
114 
122 template <class AccessController = Transaction>
123 class MYSQLPP_EXPORT SizeThresholdInsertPolicy
124 {
125 public:
127  SizeThresholdInsertPolicy(int size) :
128  size_(size)
129  {
130  }
131 
133  ~SizeThresholdInsertPolicy() { }
134 
142  template <class RowT>
143  bool can_add(int size, const RowT& object) const
144  {
145  (void)object; // we don't use this, but other policies do
146  return (size < size_);
147  }
148 
150  typedef AccessController access_controller;
151 
152 private:
153  int size_;
154 };
155 
156 
164 template <class AccessController = Transaction>
165 class MYSQLPP_EXPORT MaxPacketInsertPolicy
166 {
167 public:
173  MaxPacketInsertPolicy(Connection* con, int size) :
174  conn_(con), size_(size)
175  {
176  }
177 
186  MaxPacketInsertPolicy(int size) :
187  conn_(0), size_(size)
188  {
189  }
190 
192  ~MaxPacketInsertPolicy() { }
193 
201  template <class RowT>
202  bool can_add(int size, const RowT& object) const
203  {
204  if (size < size_) {
205  // Haven't hit size threshold yet, so see if this next
206  // item pushes it over the line.
207  SQLStream s(conn_);
208  s << ",(" << object.value_list() << ")";
209  return (size_ - size) >= static_cast<int>(s.str().size());
210  }
211  else {
212  // Already too much in query buffer!
213  return false;
214  }
215  }
216 
218  typedef AccessController access_controller;
219 
220 private:
221  Connection* conn_;
222  int size_;
223 };
224 
225 #endif // defined(MYSQLPP_DEFINE_INSERT_POLICY_TEMPLATES)
226 
227 #endif // !defined(MYSQLPP_INSERTPOLICY_H)
228 
mysql++-3.2.5/doc/html/refman/dbdriver_8h_source.html000755 000765 000024 00000230633 13515046515 023265 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: dbdriver.h Source File
MySQL++  3.2.5
dbdriver.h
Go to the documentation of this file.
1 
4 /***********************************************************************
5  Copyright (c) 1998 by Kevin Atkinson, (c) 1999-2001 by MySQL AB, and
6  (c) 2004-2009 by Educational Technology Resources, Inc. Others may
7  also hold copyrights on code in this file. See the CREDITS.txt file
8  in the top directory of the distribution for details.
9 
10  This file is part of MySQL++.
11 
12  MySQL++ is free software; you can redistribute it and/or modify it
13  under the terms of the GNU Lesser General Public License as published
14  by the Free Software Foundation; either version 2.1 of the License, or
15  (at your option) any later version.
16 
17  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
18  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
19  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
20  License for more details.
21 
22  You should have received a copy of the GNU Lesser General Public
23  License along with MySQL++; if not, write to the Free Software
24  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
25  USA
26 ***********************************************************************/
27 
28 #if !defined(MYSQLPP_DBDRIVER_H)
29 #define MYSQLPP_DBDRIVER_H
30 
31 #include "common.h"
32 
33 #include "options.h"
34 
35 #include <typeinfo>
36 
37 #include <limits.h>
38 
39 namespace mysqlpp {
40 
56 
57 class MYSQLPP_EXPORT DBDriver
58 {
59 public:
61  enum nr_code {
65  nr_not_supported
66  };
67 
69  DBDriver();
70 
77  DBDriver(const DBDriver& other);
78 
80  virtual ~DBDriver();
81 
85  ulonglong affected_rows()
86  {
87  error_message_.clear();
88  return mysql_affected_rows(&mysql_);
89  }
90 
94  std::string client_version() const
95  {
96  error_message_.clear();
97  return mysql_get_client_info();
98  }
99 
104  bool connect(const MYSQL& mysql);
105 
111  virtual bool connect(const char* host, const char* socket_name,
112  unsigned int port, const char* db, const char* user,
113  const char* password);
114 
122  bool connected() const { return is_connected_; }
123 
127  void copy(const DBDriver& other);
128 
134  bool create_db(const char* db) const;
135 
139  void data_seek(MYSQL_RES* res, ulonglong offset) const
140  {
141  error_message_.clear();
142  mysql_data_seek(res, offset);
143  }
144 
150  void disconnect();
151 
157  bool drop_db(const std::string& db) const;
158 
174  bool enable_ssl(const char* key = 0, const char* cert = 0,
175  const char* ca = 0, const char* capath = 0,
176  const char* cipher = 0);
177 
183  const char* error()
184  {
185  return error_message_.length() ? error_message_.c_str() : mysql_error(&mysql_);
186  }
187 
192  int errnum() { return mysql_errno(&mysql_); }
193 
211  size_t escape_string(char* to, const char* from, size_t length)
212  {
213  error_message_.clear();
214  return mysql_real_escape_string(&mysql_, to, from,
215  static_cast<unsigned long>(length));
216  }
217 
257  size_t escape_string(std::string* ps, const char* original,
258  size_t length);
259 
266  static size_t escape_string_no_conn(char* to, const char* from,
267  size_t length)
268  {
269  return mysql_escape_string(to, from,
270  static_cast<unsigned long>(length));
271  }
272 
278  static size_t escape_string_no_conn(std::string* ps,
279  const char* original = 0, size_t length = 0);
280 
284  bool execute(const char* qstr, size_t length)
285  {
286  error_message_.clear();
287  return !mysql_real_query(&mysql_, qstr,
288  static_cast<unsigned long>(length));
289  }
290 
298  MYSQL_ROW fetch_row(MYSQL_RES* res) const
299  {
300  error_message_.clear();
301  return mysql_fetch_row(res);
302  }
303 
308  const unsigned long* fetch_lengths(MYSQL_RES* res) const
309  {
310  error_message_.clear();
311  return mysql_fetch_lengths(res);
312  }
313 
327  MYSQL_FIELD* fetch_field(MYSQL_RES* res, size_t i = UINT_MAX) const
328  {
329  error_message_.clear();
330  return i == UINT_MAX ? mysql_fetch_field(res) :
331  mysql_fetch_field_direct(res,
332  static_cast<unsigned int>(i));
333  }
334 
338  void field_seek(MYSQL_RES* res, size_t field) const
339  {
340  error_message_.clear();
341  mysql_field_seek(res, MYSQL_FIELD_OFFSET(field));
342  }
343 
347  void free_result(MYSQL_RES* res) const
348  {
349  error_message_.clear();
350  mysql_free_result(res);
351  }
352 
354  st_mysql_options get_options() const { return mysql_.options; }
355 
363  std::string ipc_info()
364  {
365  error_message_.clear();
366  return mysql_get_host_info(&mysql_);
367  }
368 
379  ulonglong insert_id()
380  {
381  error_message_.clear();
382  return mysql_insert_id(&mysql_);
383  }
384 
392  bool kill(unsigned long tid)
393  {
394  error_message_.clear();
395  return !mysql_kill(&mysql_, tid);
396  }
397 
403  {
404  error_message_.clear();
405  #if MYSQL_VERSION_ID > 41000 // only in MySQL v4.1 +
406  return mysql_more_results(&mysql_);
407  #else
408  return false;
409  #endif
410  }
411 
422  {
423  error_message_.clear();
424  #if MYSQL_VERSION_ID > 41000 // only in MySQL v4.1 +
425  switch (mysql_next_result(&mysql_)) {
426  case 0: return nr_more_results;
427  case -1: return nr_last_result;
428  default: return nr_error;
429  }
430  #else
431  return nr_not_supported;
432  #endif
433  }
434 
438  int num_fields(MYSQL_RES* res) const
439  {
440  error_message_.clear();
441  return mysql_num_fields(res);
442  }
443 
447  ulonglong num_rows(MYSQL_RES* res) const
448  {
449  error_message_.clear();
450  return mysql_num_rows(res);
451  }
452 
463  bool ping()
464  {
465  error_message_.clear();
466  return !mysql_ping(&mysql_);
467  }
468 
474  {
475  error_message_.clear();
476  return mysql_get_proto_info(&mysql_);
477  }
478 
482  std::string query_info();
483 
492  bool refresh(unsigned options)
493  {
494  error_message_.clear();
495  return !mysql_refresh(&mysql_, options);
496  }
497 
503  {
504  error_message_.clear();
505  return mysql_field_count(&mysql_) == 0;
506  }
507 
509  bool select_db(const char* db)
510  {
511  error_message_.clear();
512  return !mysql_select_db(&mysql_, db);
513  }
514 
518  std::string server_version()
519  {
520  error_message_.clear();
521  return mysql_get_server_info(&mysql_);
522  }
523 
532  bool set_option(Option* o);
533 
537  bool set_option(mysql_option moption, const void* arg = 0)
538  {
539  error_message_.clear();
540  return !mysql_options(&mysql_, moption,
541  static_cast<const char*>(arg));
542  }
543 
544  #if MYSQL_VERSION_ID >= 40101
545  bool set_option(enum_mysql_set_option msoption)
549  {
550  error_message_.clear();
551  return !mysql_set_server_option(&mysql_, msoption);
552  }
553  #endif
554 
560  bool set_option(unsigned int option, bool arg);
561 
565  {
566  const std::type_info& ti = typeid(o);
567  for (OptionList::const_iterator it = applied_options_.begin();
568  it != applied_options_.end();
569  ++it) {
570  if (typeid(*it) == ti) {
571  delete o;
572  return ""; // option of this type already set
573  }
574  }
575 
576  return set_option(o);
577  }
578 
584  bool shutdown();
585 
594  std::string server_status()
595  {
596  error_message_.clear();
597  return mysql_stat(&mysql_);
598  }
599 
607  MYSQL_RES* store_result()
608  {
609  error_message_.clear();
610  return mysql_store_result(&mysql_);
611  }
612 
623  static bool thread_aware();
624 
630  static void thread_end()
631  {
632  #if MYSQL_VERSION_ID > 40000 // only in MySQL v4.0 +
633  mysql_thread_end();
634  #endif
635  }
636 
641  unsigned long thread_id()
642  {
643  error_message_.clear();
644  return mysql_thread_id(&mysql_);
645  }
646 
665  static bool thread_start()
666  {
667  #if MYSQL_VERSION_ID > 40000 // only in MySQL v4.0 +
668  return !mysql_thread_init();
669  #else
670  return false;
671  #endif
672  }
673 
681  MYSQL_RES* use_result()
682  {
683  error_message_.clear();
684  return mysql_use_result(&mysql_);
685  }
686 
687 protected:
690  bool connect_prepare();
691 
694  bool set_option_impl(Option* o);
695 
696 private:
698  typedef std::deque<Option*> OptionList;
699 
701  typedef OptionList::iterator OptionListIt;
702 
705  DBDriver& operator=(const DBDriver&);
706 
707  MYSQL mysql_;
708  bool is_connected_;
709  OptionList applied_options_;
710  OptionList pending_options_;
711  mutable std::string error_message_;
712 };
713 
714 
715 } // end namespace mysqlpp
716 
717 #endif // !defined(MYSQLPP_DBDRIVER_H)
718 
ulonglong insert_id()
Get ID generated for an AUTO_INCREMENT column in the previous INSERT query.
Definition: dbdriver.h:379
st_mysql_options get_options() const
Return the connection options object.
Definition: dbdriver.h:354
bool ping()
"Pings" the MySQL database
Definition: dbdriver.h:463
const unsigned long * fetch_lengths(MYSQL_RES *res) const
Returns the lengths of the fields in the current row from a "use" query.
Definition: dbdriver.h:308
MYSQL_ROW fetch_row(MYSQL_RES *res) const
Returns the next raw C API row structure from the given result set.
Definition: dbdriver.h:298
bool set_option(mysql_option moption, const void *arg=0)
Set MySQL C API connection option.
Definition: dbdriver.h:537
static bool thread_start()
Tells the underlying C API library that the current thread will be using the library's services.
Definition: dbdriver.h:665
success, with more results to come
Definition: dbdriver.h:62
static void thread_end()
Tells the underlying MySQL C API library that this thread is done using the library.
Definition: dbdriver.h:630
ulonglong affected_rows()
Return the number of rows affected by the last query.
Definition: dbdriver.h:85
void free_result(MYSQL_RES *res) const
Releases memory used by a result set.
Definition: dbdriver.h:347
bool set_option_default(Option *o)
Same as set_option(), except that it won't override a previously-set option.
Definition: dbdriver.h:564
int protocol_version()
Returns version number of MySQL protocol this connection is using.
Definition: dbdriver.h:473
static size_t escape_string_no_conn(char *to, const char *from, size_t length)
SQL-escapes the given string without reference to the character set of a database server.
Definition: dbdriver.h:266
const char * error()
Return error message for last MySQL error associated with this connection.
Definition: dbdriver.h:183
nr_code
Result code returned by next_result()
Definition: dbdriver.h:61
nr_code next_result()
Moves to the next result set from a multi-query.
Definition: dbdriver.h:421
std::deque< Option * > OptionList
The data type of the list of connection options.
Definition: options.h:490
Define abstract interface for all *Option subclasses.
Definition: options.h:57
ulonglong num_rows(MYSQL_RES *res) const
Returns the number of rows in the given result set.
Definition: dbdriver.h:447
std::string server_status()
Returns the database server's status.
Definition: dbdriver.h:594
std::string server_version()
Get the database server's version number.
Definition: dbdriver.h:518
MYSQL_RES * store_result()
Saves the results of the query just execute()d in memory and returns a pointer to the MySQL C API dat...
Definition: dbdriver.h:607
bool result_empty()
Returns true if the most recent result set was empty.
Definition: dbdriver.h:502
bool more_results()
Returns true if there are unconsumed results from the most recent query.
Definition: dbdriver.h:402
problem retrieving next result
Definition: dbdriver.h:64
success, last result received
Definition: dbdriver.h:63
void data_seek(MYSQL_RES *res, ulonglong offset) const
Seeks to a particualr row within the result set.
Definition: dbdriver.h:139
bool kill(unsigned long tid)
Kill a MySQL server thread.
Definition: dbdriver.h:392
std::string client_version() const
Get database client library version.
Definition: dbdriver.h:94
bool select_db(const char *db)
Asks the database server to switch to a different database.
Definition: dbdriver.h:509
std::string ipc_info()
Get information about the IPC connection to the database server.
Definition: dbdriver.h:363
unsigned long thread_id()
Returns the MySQL server thread ID for this connection.
Definition: dbdriver.h:641
OptionList::const_iterator OptionListIt
Primary iterator type into List.
Definition: options.h:493
MYSQL_FIELD * fetch_field(MYSQL_RES *res, size_t i=UINT_MAX) const
Returns information about a particular field in a result set.
Definition: dbdriver.h:327
bool refresh(unsigned options)
Asks the database server to refresh certain internal data structures.
Definition: dbdriver.h:492
This file includes top-level definitions for use both internal to the library, and outside it....
int errnum()
Return last MySQL error number associated with this connection.
Definition: dbdriver.h:192
Declares the Option class hierarchy, used to implement connection options in Connection and DBDriver ...
int num_fields(MYSQL_RES *res) const
Returns the number of fields in the given result set.
Definition: dbdriver.h:438
bool connected() const
Return true if we have an active connection to the database server.
Definition: dbdriver.h:122
MYSQL_RES * use_result()
Returns a result set from the last-executed query which we can walk through in linear fashion,...
Definition: dbdriver.h:681
bool execute(const char *qstr, size_t length)
Executes the given query string.
Definition: dbdriver.h:284
size_t escape_string(char *to, const char *from, size_t length)
Return a SQL-escaped version of the given character buffer.
Definition: dbdriver.h:211
Provides a thin abstraction layer over the underlying database client library.
Definition: dbdriver.h:57
void field_seek(MYSQL_RES *res, size_t field) const
Jumps to the given field within the result set.
Definition: dbdriver.h:338
mysql++-3.2.5/doc/html/refman/structmysqlpp_1_1RefCountedPointerDestroyer-members.html000755 000765 000024 00000007606 13515046515 031772 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::RefCountedPointerDestroyer< T > Member List

This is the complete list of members for mysqlpp::RefCountedPointerDestroyer< T >, including all inherited members.

operator()(T *doomed) constmysqlpp::RefCountedPointerDestroyer< T >inline
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1Comparable__inherit__graph.png000644 000765 000024 00000061172 13515046516 027705 0ustar00tangentstaff000000 000000 ‰PNG  IHDR”¯CíN{sRGB®Îé@IDATxí¼ÕÇRbvb¢¨ˆ-*v·bwû·PìÀnL @EìVÄ¥TTÄÂ.ºóÍÿ|ïó.óöíl¼·ûÞÆ9ŸÏîNܹ÷Îofg~÷Ô­Á 11 CÀ0 CÀ0ªˆ@%”AµÃ CÀ0 CÀ0 ©k†€!`†€!`ÕAÀeuгc CÀ0 CÀ0LCi÷€!`†€!`†@õ¨_½ÃíhCÀ0 áÇ˯¿þZx·:t­¶Úª új4²…€åd I«Ç0 ø aõýû÷—ÓN;-á¾RÝøûï¿» eee¥ w>ûì36lX¥¦¡¬‰m0 C ¿xÿý÷eÕUWÍy§Ž;î8yøá‡åÈ#”£>ZÆ'ƒ ’.]ºÈ˜1c¤]»v9ïC.àå7iÒ¤„Uûí·òñÇ'ÜWêŸzê)iذa©Ã`ç‡Ï ñbÊxDlÝ0 8¦L™"ÿþû¯ ±atþÏ?ÿ¸sæÌ‘>úH~úé'·>oÞ<™8q¢ÌŸ??VËl[¸pa¬Ì»ï¾+_}õ•A+ÇÂo¿ý&ÌâCYÚKD‚h›:'Ož,ï½÷žûõ•̘1C¦OŸîާ_&Lð»Üï¢E‹„>z ¯:Ô‘É›o¾Y{ì19öØc¥oß¾òꫯº~Ü~ûíþ0—g’Ë13gÎŒmO'HÕWÊÌž=[hç?þ`5&S§N•¿þúË]È Ç1ª¼?ð‡~·ß~;výüöø_fQúðÃ]ã÷Ùº!`D  DCÀ0J 8 ÐÄæiŸó9眬¸âŠAÇŽa€AݺuƒSN9%XvÙeÝ:ÛÔç,P"âöÝ}÷ݱºï»ï¾ ^½zÁŸþÜzë­A³fÍ‚-Z¸ãzôè(Iue/»ì²XÝ­Zµ ÖZk­à˜cŽqûÖXcàÚk¯u˪1 ºvíêêlРAдiÓà¹çžsûÔ<¬³Î:š«ÊÑ/%†n_'œpB°Ì2Ë$\W­ƒ;Ÿ ÄöûÕðJ¤Ý*Ëœ7çѸqcWŸd·/]œ(œª¯êŸåÎÁcµå–[‹/ví\rÉ%Áúë¯ïΕsT’$+›l²‰Ã£N:®ßª}‹ÕµñÆ»e%êjg]9°åº]ýõn_º_œ—Δ“nñ¼,§³ü8 ÀÃĈG€gÊ.»ì¿90 ¥>L CÀH…Z«³Ï>Ûi·vÜqG¹çž{DI¥Ó2•ãƒ>(+¬°‚l·Ývòì³ÏƪcŠGÊ+%Ò§Ow fØ×^{Í™[ÑJ²½wïÞNã§„´’v1V¡. EÛ6mÚ4Ùu×]E‰blv–o¾ùFîºë.™;w®Ó8bÂ~ñÅÝáú3Ï<3VUxý»ï¾%£¢D*¶ß/l³Í6Ò¹sgQ²éÌáJî-!ÚPæ¬>âˆ#bZÙtpòõFõsÚu×]'·Ýv›k³4šáçŸÞêÌñJeÔ¨QNƒšª<ÚÞ#F8ì8®]X»JÅà†™¼ÀOrÑE¹¶c Û‚!`$DÀeBXl£!`Xyå•åŒ3ÎÕð9ÒØ¨Q#Qœ¨Múðfo¦Þƒ,bš†Ä`&°EµyÒ¡Cy衇„@Õ: &ó-¶ØBTÃ(ªi”‹/¾Øýz衲öÚkWì@hí¤“NúÃ1ª­sfoüÕÜÉ!‡"ªEÕp:ßKÌÆÈ¾ûîëÊ»•¸uÌùªrð»þâG‰ùžö!žø×~úéΟjüøñî˜tq¢pT_Áøë¯¿–ÝwßÝa ñæ|Â~[K-µ”#ñÊtÊtÐA²ùæ›;ÜÎ=÷\GÆq;ËÓO?-ÔÇuúüóÏE5—Ò¼ysyýõ×ÃÅlÙ0 `A9 @±M†€!`Ä#H©_¿¾¨ÙW 5ˆšQcdl¿ýö“SO=ÕiÓ AÉ}öÙÇ0ˆ$¨m´}[o½µ#+¿üò‹†‚æe¥•Vò‹•~‰¾ö™B¼_g|ðûý>L¢_5±Ëã?î´vþ¼|¹«®ºÊõõÕWw›6ÝtS¿+¨ãý=Óʼn ¢ú ±=묳ä7ÞpZßN: ˜‡…¾4iÒÄmJ§<ÄÝ šXŸÏ°ÍÎ<Üj²ŽmV÷w}cr°0cÆcšvþK/½´ó)þ;~@É@)lÕ ŽDmúº«ü«'gb†@I!i”·úܹÈjÒM7ÝèCÛ¯øâ"‚ý})¹Hk%z±Èdö]yå•.ÂX_P}9”Eô%¨ÎE×êËÀE”û(o}!Æ¢õå•L²>ø]¤³¦Îqua¬Äε;֭[ÇŽ£€’Å@_¦®l¢uÕŠ;ì°ƒ«—ãùЖ¾ÄcÇhÚ@ ¦Û§/Ù@µ%ú"ºý™à”¬¯,è‹ØµÁy‚“hAO´9QÞJb}JU̺uë(Ipu*ÆŽëŽ×¥/à@ýL]Î(v]k,ÅB¢(ïáÃ.ºèÜ¿8h×î¬`¥•Îu¿,‡?¿ÿ>5Eí5³;Ó(o *s˜) a§OøØ:QúJè ârן‰ºc¸{™Ìê·êþWJ´Üë¤[®¨ú»û™{Ž{BƒÄ\¦vr ¹OðÊtàÏK÷Dz PVÉ•;–/þ3dp@¸×¹ÔÚ­³Ì?^øŸó¿C”(ê«ëŽ#Cºj0æöñ¿¦Îá†npÿýt² è5P­¨«Ã‘Q L²+ð¼I§MßN¢ß¨(oز‰!`%…@¦„2SpHoÃKF}+ª¾†©wT“RiŸj\Ü TóC»í¶[,mP¸ 䈔7ª]‰½lý~^¦/Õä9èɪߟòH‚jR¢¦¶@µ‹š+æ„…#6¦ÓWê//ª1 À&JR•Wmg š©”}VMR ZÉ@5?QMEn÷„rܸ߃>}^ 6Üðò¤$²˜%é’4pʥǂ8AÜTSçîWÖ!ñšÁ*î1DµòŽèsIå¥Zyw}¨‡A…f%pDT5lA÷îÝÕäßÿ½KãEê*$žPÒÿþ‡ öXá…O(5h-`ð V— ÂæE5ƒfp«ì¿à‚ Õ4ºuêID(uGùßifGJ=†8ªO²#šTÁT WŸjÃݺºt¸ûZ3E¸¾ªfÕí÷_éJú¦ÖŠ‚¾óÎ;»z4kDÀ=¯Y(R!é¶éÛNôE(Íä­WÁÄ0 l!ðÎ;ïÄ’c>ŽÌR¤­I$˜–ù¤#øjòI$°`r¬ª`.ã%a*̆$ë«7Uúv0å%“Tå1'z“b²z0ÝòÉT&Nœ¤nMÕ7´µš×oR³i=5Ó/vÕøßduªSM¹K³’•Íå>¢é6lŸqJìó*.¤ØÂµƒˆyïr ˜[¤®é¶ó¥$,¶Ì~ú’JÈÈàÍ⸻àC9ú•W^qž S|Ø|Oɲ àF’‰ðß Bê2Η,ØáêÞH6Ût†¾ŒP†À°ECÀ0ª‹3±àçEÐM2R–ªÿ½OY¸,Ñʼ| „ ¿©BBêk!à™}ôA[ Rc!> Jµ]îÞUí»óSU¤›í Ÿ_BÊ Pø#j¢zGê!{>KA8R?Ùà"*{€kD¿Âþ„üGñŬލæÕ °ð³$˜Ž .H9÷x²b6³ ¤›]!›mÆcf„2[7 C `;¢¦µ„Õ y`Z@^Ê^x‘¨@Z’¨§#L»ˆÖ$u\.R˜ %*6騱­F»ÏQñFÆß-C†ŒVâ4R ÑŒ Úʨó¾þúTÃW˜U¦&¶«yXµkdÜ÷a:‚\©L@` ÁP‚"8 ­äi§æˆ¥"#ð (’n˜þ_]À“JþKÉÈ©k,ÉMMé.xbôŸ€!ÒhaAx饗\¶‚DUp.´ Þ^¨Ë§µòÛÒùõ¤=UÙl¶ßVzW?þ([7 CÀ¨5x!=ŽYM&ÑÖÌŽi‹wÒ^th:£"§ÃuðÒÃüÇÓc!¤0 ÷¿6–×_¿ƒ’‹=eìØ+5'ééJ ¶Ps{yŽILá¥,˜„1ÿ2sÚ<\(’þc¶%Bš|îO"¤ÉÑJ´6÷6‘Ù$'#B”øìh;!xDw{³;Ç0˜¡ÌíXˆÜörá…ÆÌä#¢?ÌJåe„ î¿Ft7}`)ÌðLJ€ÙŽV’(q25`nGüÿŒíaú‘¦}fÖ¢¯dO ͑蹒\¶iÊ\]5«×0 , €™I¤àeé}Ê(‡Ï&éFx)áG†ð‚Ã$‡’mh‘ðïòfDRá»Æv´–¤yáwà 7Ô”6åć:½¤JaÀTOHÿCÚüËÐ.i0…óíŒ7å§JaÂ9¤«ýòý̧ß.]VÕØ«*aØ·(Ó¥‹µ¿†HÌÝL ŠöÛ Ó\jP“ÓÚA¼ðM„´áHòrfÒ(lw/0ë÷——ðÿ“7é®H§CyÒD‘Ëk¹ÙÎM?‰û½ 5%¥³Jq/“ª‡É ø ìçƒ{‚†yžú)ç@ŸIG¤A=.%ƒ=*å!´ìƒ„2[¤´±aÓ>ÛÃçÆ:Â6gx™}l÷ûü:¿Hºm–—Îð[ÿô&†€!`”¹ŽòΘª…t)kHG¢‰¸+T9pà@ÅIÄkXt¶·]_Ìn3Ñäªåq)ŠHS¤&8—šEµ™.ÒV_. Q¬DH“B…mú¢ ÔÎEz‡ëg9UÄ©jMRÄN]J]Z}é¹uR©I7… i‘ˆRUbyî*̃/åª+sæ,ÐÈã1šÂåAX>ÇE‚jÚ Tçšh¿í8Vi‘Òš¬? …U¼]€{‡ Doû(ïp9ðÊtࣼiCµŽ4Ÿeê§Ÿ>ËåüŸ½=J^ª“UÀבéouÚŒŠò6“w†ÜІ€!+HNL”+IËÑ<’X­ŒnHÕ.Ú@¢˜½‰mD×®]]"eü%1cV#i7f6„Ù6дhêçû¥éNœo% üÜôE•ªÙJû1‹ãë鵚*Æù}ê Üi=•»c˜*€ f¡œ/Z*Í5Y¡N|ÊÐâPó>Ú£W_}Õi_+, •&M¨¶j#yì±ãeܸk4bù`57* 3¨ZW¹7ñ‘ļM$x¼ 5Ô\•1Çð~4x$ÿFû—J¨‡Lh ZÌêÍ%ªÓo£múéÛÆ§24Cbu4°^p]A+鵜~{.sѦÊ\^1«Û0 4` Ì×ø*’V…@¦yƒ˜aŽK'Õ Í`¢ÆÏÑÏqÍ”„˜ìðåÒÜzÎo ÿËxÁìMŠÌ1@*5—k3]¦BÐ/Hˆ ¦Bê‚$ð' í!ÉR˜¸ÿ}a"‡A*Lè˜!Á s<¦ÉB–-+yïRóxs­`0ØÑÛU¾lÜK zâ…ÈjÔ >™Ü—‰LȉÊÛ¶Ì0ÊÌð²Ò†€!`dÒ¤hBd—Ÿí\X›‘IcAÈ#¹õRATÑ”ä€od"¨!h{ì±X´~z·ØÆ4ÂýGÖ°ò2÷ZOÚÅ_MbÇj…·¥/o¿ÙCÀeö°´š CÀ¨¤G,=þøã.á ƒr&h´z™s€“D¹K—..膼~:œ‚í%5^;®×§bÔ¢]DÚyï½÷"µ=áãã—£a|¹ª¤0!Í ç9hÐ Ä@òæD äãÛ²uCÀÈ-fòÎ-¾V»!`)À,̬$C&‚S7Ú¢\‰PE‹—H4xÁ¥0Á ¬óh»ÈÖSO=Õ™•)Ot4þZü’&ˆ(WÒ• Þ¿K§"tþjøWb'% ÛŽ:ê(±Šy9W’n ü?‰~ÅœÉl'D…! ^àŸÈ:Wýµz C ÓPFcc{ E€¤ÔÞHÃÌ:¦é¸ãŽ«àÀ¬Sä/#¿›' Qe1k0 j· € GÛ£>êIdAÛ‘U¸nøPòT¸@ I™ÉwçÅk ØAÐ>C^?oòÃÇŒ Öý¬#hBÑVâ¿¥ ÁJ0# Á.äüCpÚG N?Âvß6Ë^ØæËÅïg=~›?.Ý&ãÆ“{ï½×™òI3ÓQƒˆL C ¿¨C¨y~uÉzc”&¼tñ/‚8àëF]fŽ€TÑšN`þj@ò %´U$æE .h¸0³’<!2øî»ïv„"ìçvÁ„G¤9ß…Èo>© QçAÂd>h÷¦™#h‡ÀMkâ´Ÿ+ ÜwäðK„,Ѫ5!hÑ6L‘(Ò•~ro{ÒZ}ªj¸  QfÆ“B4Ùd ð©0/Tœ µßøyó_er…°ÔÌÓ"Ü¢-†€›5!œ6ÂCÂŒ çwž_u¤o—]vqsÛÍê…€ˆ Z)f’@ˆ†$iŽ3÷Bƒ0 ‰’F3S„”-Jê÷S~A`ºuëæ&ÉY‡t0‘µh¶ü”føÁ­²Ê*®.ÿ…‰­R‡\y¿=üË̉0—±årí£O0^<¸nž0r¼4°Œ9;lÒö©VØW“‚6”O”„ûUƶgþ·>ÙvöjµšŠ25xKF…sBCib¹G@#QM“ì°ÃO<nUÿ˜š#Ûܲæ# Hn¨æ#ÐT±ÑJ;ÚíS’ç¶«F!Ј״“F«6§9]=| >ÜmSÒê’RëË>P3c¬~ ô|{ôûÆoŒ«3ZJr%‹®¼Fä:ÍYl¿_PÿÀ@ƒ)íúM5ö[‰Ík k(«¤›Ø<«Ze†@ `A9èµ­ÙG€©µðecÔ?$½ƒ>8톺wïîòïa†ìׯŸK ƒYrúôé.7Á ³gÏ’F£a"R˜é¾ÒMNGÐrrDþâÏG9¢‡éæc?¾xœc¯^½dÒ¤IÎ|J‡ŸÏ6ÜþsLÆhwã7v&væ×51 CÀ(<ŒPÞ5³äÅ# •´/ÌŸŒÏ ѺÌg ácžät…H_L~ø2៥Óð¹¨]ÌÔUÒÄ`bŽ—t“FÇ—h3÷gœáÌ¥øyÒÒµà×ɵ˜ß‘Áƒ»(bü¯˜/³8sè¾ñÆ•ª%©1QÊDïºë®¢šVG¶ImCjCÀ0 ÂAÀ|( çZYO Ñ£G;M]›6m\` Z½ª I€7ÙdG(u~[çÛDAmÛ¶¬6ӤёéŽp`ZP|(ýôg©µÅîdC ÃB‚ì(Á¹2Ù§O—„›ÕMεʲx¶È”Q"“?™¤Ÿ):•ßÖ:Õ`›M«\¥h†€!€Êhll!PepXÆäŒ)˜ ÌÖÌ^²Ï>ûĦÅK§rÑ¢§Ÿ~º+ά'DèbNnÙ²¥Ë-8lذ„UU%itŠtcTÚ—øòO¢‘™ÃÙNyHg%‘ƈèt–ÑnžtÒIQÅ£·ÿþ’ÈoY ‰œñ&a\,Òd9‘¥uz¶ÕŽi\Á]í1 CÀ¨*fò®*rvœ!"¯I0vqĈ.ñ2$ ÂÅ/„+‘*èÝwßuÑÝ÷ß¿K!¤A9.o åIPV’èh¦Øó¾‰DL#lG³Gòêt“F»³ôE”:¾žä>$= fy¦Gc^êx!eær"Ä5GN8á7sNCÂ3–)#Ef©V³ýîš÷Hslî­Ó îó—ȶ/Ьw©HÓ•*Tùì³Ï:¢ Y¶a­{€|ž&†@)"`ÊR¼êvÎ5Šy%ùôíÛWè´–häÍ=ŒFÓ¸hTµ#…$¥ö¹ù.¼ðB—cíš@‚oÐbB̾ýö[W2Ǿt“F{0¢´lç¢c9~Ý×o(šYx˜Æ¡oW^y¥/û¥øWB ñËL(óþ.×8¢ul¹žÈÊI‚™:Un#aºÿOK‹…Žm¯.à™¥†€%6/µ+n盨¹ª¹õТá$Xâ8wî\!:Úû9íï¦Ïñ˜*it.!HˆHt|-ãsTúö*a°xÎòä3ûWìí"K­!²ÆÉ"kå·_CÀ0 sB¹c»Ý¢Ï¦lžÈüIJ(£#£¶=†€!`µ‰€ÊÚDßÚ6й”›«IÕãSö,˜.ÒPµŒûOÖ3¶XÀb¼ìvN†€!PÚ¡,íëogodÕD¾¤¾Ž3(÷{l±¶š¬7[b¾n¥ÉÜë6Ìb{V•!`†@¾ `„2_®„õÃÈwÊ(QTíb$É!~zLÓó¬¨$Rýë·È÷3²þ†€!`d #”YÒª1Š Õ6Îÿ_Ôµš®‰¸žö¹Èö¯‹,»}qª!`†@µ0BYm­C ˆ@ÃøÓãJ 5IøB¼^#‘Ö/1]·ÛU¤QôtE„„Š!`†@$±]eP‹5 â@`±FZ7[YdÅýË}[o &îÅqnv†€!`9CÀ4”9ƒÖ*6òRñLûŸéZÍÖm6ÕäàgçAǬ †€!`Å„€i(‹éjÚ¹óÿùýå%rÚ—:¸ÎóݨM¹ÙºakÃÈ0 CÀÈ:¦¡Ì:¤V¡!P‹L!òŽÍ8¿G?ÓŒ¦îi¾z-vÊš6 CÀ(vŒPû¶ó+LQ­£F[ÏþIdõ“’œS™H Ÿd©}’m» CÀ0 ª `„²*¨Ù1†@.X)ès°Îç/›m¶™œþùùÛAë™!ŒPæT«2Cæþ!2êL‘_žÕ)ëêÁuÊs7V‡P¾Ó]dþ?ê÷¸A¹éz ÿšˆëkký´aRÊ@&ùl¹å–¥ ƒ{1b„,X°Àe°µ*ó#”ù}}Š»wÁ"‘o5gãç—ªÆP—‘ ¬<Óôʇ–o /š¡ds”HËõ“OC¸£Î6ÓtE­«Qøh[6bl±Å2hРغ-Ù@àð×Y³fe£*«Ã((ŒPÔå*¢ÎþûȈ^jÞVÓ4$2,eêïøï‡åféi_T4]Ïø¶¼üÖDV:(|TÅåæ«W\·5CÀ0 CÀÈF(s­Uœy‹Œ>Wdâ“jÙ®W™Lúƒ¦ŒyFý«¯cÖå~+üyÍl3MÚû’ök†€!`µŒ€ÊZ¾%Ó|°Xä»{EÆ^¤šÇùå§Í¶(Ak¹¾šÂW:PƒsÖÔRêWib†€!`y‰€ʼ¼,EÖ©ÉÃËÍÛÓ5¿c¼y;êTÑ^6ZVÉäZQ%l»!`†€!`ä •Â]Ÿyæ©S§Ž} ƒjßË´¨#PG‚74’vÚ8Y\ç+™äO°pÑbyø¦“ªÝ‡ð½¼ß~û%i±0w{ì±²Ûn»E~î»ï>9ãŒ3 óä¬×1zõê%Œ­çráÞ{ï•m·ÝVÚ´i#«¬²ŠvØaòóÏ?ç²Éœ×½ÓN;ɨßvéß¿¿œvÚi öئLøøã³úÌ?¿m97¼ìˆ#ŽÈô2G–ÔP^qÅ‘ÙC ×+A£É2ø¯©ÒºÁTiUª,ÝpŠ´i0EšÕŸKÞS¦æì² ®®/–ºÿY¶¨‚²ç–mä—v§§ÓTÊ2Ï>«)‰ŠPV^yeiÖ¬™;³·ÞzKþý÷_9ôÐ%ÑñóçÏ—¹sçá™—Ö)½ÿþû²êª«æü¤;î8yøá‡åÈ#”£>ZÆç"á»té"cÆŒ‘víÚå¼¹h`ذa2iÒ¤„Uûí·2É d˜ä77ÜpCV;I(»uë–Õ†¬2C@þŸŸôSGÉc£EKãÅJý4^¤ýmºèýýK”Í–6 §J÷íºHY&ÕJ1ÈÂ… ¥AWü? üiòÒ¿óÎ;ýn™={¶Ì›§ ÝU¦L™"‹/–¥—^ZF%Ñe—]VæÌ™ãŽkß¾½ÓHÅÖ…_ýÕi§6Ø`iÑ¢ExWl9¾O±E´.v`ý×_9âÕ¨QyÊ*HýŸþ):tp׎2˜å–[NÖ]w]§ÑñPýöÛoÂgÓM7•iÓ¦¹}mÛ¶õ»Ýï?ÿü#-[¶t©i¾øâ áÚpM‘3fHÒ´iSùôÓOe™e–‘5×Ĺ\-Z$|7nì6„ׇêÈäÍ7ß,çž«sÿ Är“M6‘Ûo¿]®¿þz·•´8ÜC´E_—ZJèTÒʼn²©úJîß‘#GÊk¬!ÜŸ^¦N*àÊý;|øp—O VTyÜ?ü ?ýô“ÃŒc£$û>êXÛ.²Ç{¸ûݰÈoÐÎgS*™¼³Y¹ÕeD!H=™W¿½Lk´©üÙtù©E/ù¦õå2j™~òÑò/Ëí^•‘ËöÓÃ-‡ç€dÇw”Ë/¿< Ò„Û)¿ë®»º}×\s{ù¯¶Új²ùæ›;Òsê©§:¹õÖ[; ØM7ÝäÊ’˜ù¨£Ž’•VZIºwïî´ Q£YÍI'ä^ü ;QÓÅ-ø>ôÐC±³~ôÑGeõÕW—É“'Ëm·Ý&Ä}öÙGÖ_}ÙsÏ=)£0×jÅW”®]»:¢´Í6ÛÈ\«Ç/Pf‡vp„t—]vq×hðàÁn÷)§œâÈÕòË/ï®ÛZk­%h½p½¹¦^ÂëO<ñ„k7ÞE‚ëûÞ{ïÉþûïïÃtÌ9öèÑùZ°Ì~$]œ(›ª¯—\r‰»ïöÚk/GN¶Új+)ûÏmæ–[nÌØ`^ܯÉÊÓÞÕW_í®ÃÎ;ïìSO?ý4›+H&÷}…mÅ0bVGƒÂÈ+«VrvýUU;Y®IÉ«ÎÕPg¾úê+9ûì³ÝËR€†æàƒ®Vëh^¨-õž{îq/öéÓ§Ë(>ø «ÿ®»î’§žzJ^|ñEg2Ç„uÑEÉgŸ}V©ý‹/¾X¾üòKaº¹7ÞXî¾ûn§]«T°À7¤ƒÝ +¬ Ûm·„],ðKk\.»ì2éÓ§€7Zó×^{Íi+Ѳ±½wïÞ2sæL‡á„ "Cˆ¶ -&†N8!–Lû›o¾®®˜¯ùpè™gê¬TÿIxý»ï¾“uÖY§‚Ü—ƒÜvîÜÙ7ÌáÌ0„–ó€è¡gàƒ¤ƒ“¯7ª¯¿ÿþ»\wÝuŽ€Ófiî½çŸÞêÌñhNÑ”BäS•§ ³Ø€ç¡ë°dr߇³eCÀ°9èì0ò Ì¡^Òh_x‰bfÄdúøãˆnX­þbæF…)âƒYöœsÎqæl4>¼l´7¼¬1Ó~þùçŽ(6oÞ\^ýõJíC0>úè#?~¼#7¼Ø!¿Œ?ü°RùBÝ.vÌ”Y„´Cb0%Ø‚™<Ñ^bjÂŒ‹»3ö<÷ÜsÎL 9Ç\ìÚk¯ aúCY4sh?ñwD¸o9ä©[·®sÌ1NóŒ&²ï¾ûºòn%ní&ìd‚KÅĉF׋† Êé§Ÿ.@®?’.N”ê+÷ç×_-»ï¾{Œxs>´ã3; îÓtÊtÐAN3Oÿ0éCÆ´…%“û>|œ-†€H¤¥c5ÀèÑ£‰‡v‚lÐleSÂAõë×w&Nïÿ†š'Dõâ'׳gÏXó­ZµªàïÛñßæUÈ$š¶K/½T0‘C4üñÇø¢¹ž.vdÀ”Œ6 ‘ÄÄ ƒHB‰ÚÆ¼Š«$ý—_~‘6ÚÈ4NØ4í·ù_¢¯½@¦,¼Ã~¿Ïˆøâú1hAkçï _ôª«®rýÇtà7éÅãyFü:ËÉî1öGõ•ûð¬³Î’7ÞxCÐúvêÔÉÕÅ1^èK“&åþÕ锇¸{A‹àó–ªÜ÷áãmÙ(e žP¾ù曂Ù$lÆÉÕÅìÂS<ðÑFàV¨âr¥ ¸ oß¾Î+>0 ªç‹†çþ(A+C*œZ—²"ª6nâS"«©Úò;ÕH— ˜Ýм`ŽÄ-„Ä¿<«ÓHc:‚†MÎ /¼+>dÈgmˆ[€=öØc‚Ï Ë{ï½·ÓdÅ+ØÕt±#`ßHÌÞõC»Ëÿ r Ä<Ì/šË~ýú9ÈxwʆQÂÀýñDZUH;ÂõBÂû|ÀU:\О2A“éåï¿ÿvþ‡ìÃ7!?N“3Ò±cG÷›.NŽê+þœ<ÛÑôbž&xˆM”¤Sͪ}0 GxWå¾÷uVõwÖ¬ùêúð…@Fëóö`ŸeU«²ã2D€÷n"•ÑÐAŠKQh¾óÎ;C?XãÞ'Љ(|4jø›¢µ„(ywƒûï¿ßù>âÛŠOc”à§ÊÀ–g4·Ï <ü_¹nhŠÑ„@ƒÜõ¿ÿýÏ-ǯ㧋ùøÄOt9/y6@èba@‰ÿ.šIîEîÚÆlŒ-d”àœL%ª¯d#@»K$6Ï´ºDp3O$é”gpŒ¯/mâF^DÙ‡%“û>|\¦Ëóç/Rù¥Z#‘õÖ»D"OÉСã5è(¹ËA¦íXùäÔDÊ(-hÓùàRDö¿Î/ï×bIíVm %+ÌÞ¬0¼ñÇÁ|À~4˜>é¢e §!oÛÁ#^ûGa õâ„N„#~_<ÈühÙß29˜®Ð0 IB8on΋sð©)2Á)U_};ßÿ½Ô«WϽÈé3±¼HÀ†—:…s¦_‰Ê»ƒô lÀž‡×tø}á_0æü(¸\xü¸þ÷IX›üòË/;R“$^œcNeŠj+ÐDNì/2OÍvuè…LüâÊi?â*'‚/B’Z£µDmH3Ä6o„—iŠí~Ÿ_÷]À—ÿ²8Àmâ?uíµ×:?_ÆÿR– Vøe£d‚çO LëÖ­ÝsÍkùBænb Š@$!jÍóÎ;ON>ùd7pà¹á5~”‹oŸdˆÿæ[ˆ"ež; ~y.ÓÈתþœhš¹–ñëüGѪòL A|1=óÜãàý˜¡¹hÏk²ãû™ì£ý¨¾R÷<àž¹üÿIÞÆ›¨wùó¥|NS•çy!æ‰g¯ÃÿfrßÓn&YüðÃïdðà‘òÒKc•Dð\¬«Š‰$SÐfÒ@–…L¡½ã=íßË\{ÞW žÙñç¾c?<ÿ‘ÞqlóÚk\†ü1>?/eyߣUÇ­^Áû9þ=—*n#Qéºhƒv¹ßé+üx¸J>¤v£5!uôÄ+ ‰Ð6 }ói Ru‚‹ŽFSZ„‚¤7…ðàcO -Rg Büxøq £PF£\ ä‘7AŒ´!3üñaõÜ\DHb†!B’—-£fHZ(D†!4ŒDXrsÒgöQ79× 9ô•ú­·ÞêÎ%¼ä@Ù°ïç€ âÌ››–6¸q¹™é/&-Fþ™àÄù$ë+õ³ßjÀ|!îF^dºg>žw¹^ˆhl?þx÷ß ·Á€ÿÏÌx_E, | ?˜Í´¤®ÿ£êV@À /ãpðšQž;œƒj®χL…—'GH-ÏxáÍ9ðßçy˜Ä—ZO§¯<Ï!ÏÞrÁ³25ÈLUÒfà›¬ÏéÜ÷É΋wÄ5êg]­Ïž‘úΛ£ïÀz‘$räÈ+ÔÍ!Ú´Õf¾lÇ}€ç4DwF*ÁÜŒoëöÛoã¸80€å}ƒðnå]Ö­[7w/{n)D[޲_d´Ëü·¸ÿýûŠÿZv#p ø$þ\#xÅ«¯¾*QîG~Q|±wæj8ÂÿM<ïgO\y÷ˆ.ÖK¬X'HÕœQÖ ÛÂVUÄè#Ö@–ùïrOT ÚÁ2Å@ÏûAßxãrþùç»þñ~Æ ÷"ÏÞç~°J{©Ì ÉœG6¤\­•…š P¹Ä¬À(pРAî‚ñàÈdÈ›ÍÈgÆæfˆ„z¸8¤º€¼0Âæ@åüñ‰º ÑDƈ" éô>F”‡¨22…$ñpaT‹ðàfÔíµnáuYÈh:^¸q‰Èå<ÐñÀ{òÉ'uú’»è´Ã ä%œ|Ù¨¾Bž‰Ž$÷xuÔ‡>í„Fp´Tåñcâ¦þ@ü¸6andˆÚÎÂ#òÂÍåytÿO{®/Ýeþ”Œ> ö Œ«"K7™#òæY|u}‘—Õ)ÿ«ëÊÉ$•åF2sªI2IÐðÀ"“”©é>Ñf> ÿøCÌÇñ‚—f<™¤ÿy^‚Q„)\/‚0™ ïcàîöáíé.£!evœDd’:xác'iz2b–N{ÉúJýžLRZ¥dؤ*u ’ªÏéÜ÷ÉÎmî܆úÞzEWêÀà6}o}äÈ$Ç”²F2 3® ï:¼{¤BJqÝøä“OÜàÂñòÄʽa)ä]Ç5ƒ4r÷-®ð”HÞM˜¸!ŒQÑäý…²&>åÇPï=”añéºÈžÇA¸OáñZP·3Ń™l§vKÑdÖvWÛäí{ÂÅæaȈñ€ úÈ:Òaà?Ä 3†½ЃbÆiäAF~D‹)È?ÜÐ:BV äÊ;‹Sƒ†ÓûáÃÄ öØïGA¬‡þáu˜:ÂÍÎhÊG9R?óâ2êñ&§tpòmEõí!–?dÑëaaä™DR•W®‚¶l„¸f{êôÍ3£*4°øÛAn<@vÑHr½Ãf×@†_¼ ErŽ˜T d`ÀAø…AVSi`š-úQúö#¶›&2Fm¼¤K"ñ¥Œ’櫈ìõcÔ^µµè¾W‹Þß\){ý½?åñ)ÚŸý“È •B±sÝÿ”íwÔó×>FIÊã«vþOõ¬+‡ YxÕ|U¶ó_`àŒ6Ü»¼T¥žõÖ[/fÊ Ï35L²Âûø¿ˆSRH}MOü ?ý´>¯êé3ôíØa ¦gÖîÜùÊØ1…ºÐ¨Ñ wwïžé)Þ_¼ƒ½ï/D«Ê")(@x@êø/`C!‚;š{¸‚2‡c±.b‘DrÄÒ–H|+_ŽdøhGýû‘v=I¤Ïôm#ÿÉÞ½{ǪDkåš+±@ý~roi$µP«ŸÄ YŠ+4©µ!Y#”Þ¯Á¹Ot0/A!‹\ €ÂDY@ ZŒ.¸IðI„Œ²Ïk#ÃÎÓžXºã¾Â$ˆ]h·|¬{ ¤ßG›©„‘yÂA=,•@¤P3{SUx?¸„ÛH'YT_Á5ÌÏñÖ¦¦*Æ–‘;&¥ø„¿~T‡J=,\'ÌL̰ ŸÈ- \¾ªË˜ÖøSóÁLˆ”?,fE4É„éw½·®ôX¦³]=‘©cÕÄ­·~Ù¢d‡-Ù·î"m:/Y/Õo^«¼ÜDÍ…['ü¸Â Ê}‡+øß–Tǧj¿ñ²ÉÛOu|ªöSõ¿ºíçèøÛûÞ yuw MφøY‹âëâÿ%™Î¤UOMl/¤¾¦‹G·nkkÍtMîŽòª:蟢Ïézª)«üŒNTçõנֹϔDæÉ64€^XnõˤKþ]‡¶Á"‰øw!ü−ó/Ö*Lßh0Èæn4œ¸yñÎÆRèµ™^±EYOYŽ—ð{“}¼ß|¬ó¾ñÂ>$¼ßï«Î¯WHQx0(õÖ ðð^ŠXêP´d’Ú­:ýJçØ¬JáS5 Æ 0šÀ9 b†~Œh%ñ ÄTËHáfAŠà%:/øùPWØï‘züC —Œœúz|P¾ñ„’QOL@WLÍ^P›£¾öjp¶§‹eõr ™ä&b´‡ä¡ÅM$锋‰€s€ø‡"ÌÍ©›@„‡74£1FTkL}˜øãcÖË–9”k‰"\F¯;vt}Iõ5eN#yù»åå˜ëÕ‡rÖ÷â‚p~zL£‘ôzÕmÜ佌ޣUõ¡¬§/‡•Ê[Rõ1á~;>'øøã…»‚ûxBø‹i#þÕø«G Z ^Rønúi£ÊÚöhš5[¬ƒòéê7y™ZÇ~ué€ðŸœDßbÎö‘°Ô…i ÄŒ‘‚é·*ÕWLðø´1RÁ š›óŒ’TåñÈ8>Š8#ã×Î M(}“‘h ¹N¤”A³Œ‰Ÿl¸â¬ª*Þ\A] 2yâC[´Y%ÂÚ|u¢ãr‘=Ùm´ÈÚg‰ ‰C —&†@"àŸ§á?eð_áå#¥Ñüzü|{˜Ÿù0O.M4RaÿT_Öÿ&¢õDk‚fbî þØjÿ¶ÖkÇg£ô&øP5—OêçiÍ¿4#3³xµ;bÙEÀ›Æü3Wí^x^ð, §5ÁOÍÿÇx9cu¡¬9üßÀ¡ía`OÐû½0¨Å‡š_¦õîO~?¿ n“ýßÃe‹i™kеëîsÝu˜kÇ»¨ï7ß3‡—••–Æ<“ëëïîM´ç(6Â`Š ÿÞ[¸‚Áx§a*&Ž‚÷7ïBê!nƒûÙ‹ÿ°•ÆÊ—…¨BX¥ëBÙ„²Š¨oþ;ü×P„`Món+¼ÍŸûý2ûYŽ_÷Çå2Å•o#Óßj§ Ê´AÊCJ pS„…‹„¶Œ‹æÍÒ~?£fÌÇlGi„”†Ó/fæ+¯¼Ò‘´Y>ÍŒO£÷ù0“E®†ë /cz¥ÜØÅðŦ_(ƒ¦µ*´tú A%JÝûw2ú¢­pîÎp¿S•{È0¾,QuP) x`Âí…—¹v^ÞžÎruŽ ×_)mPxgür ÚÞ?ßTbù„Èo/ˆtU‚YU“w|ݶžä:mPmž$„ïÑGuZÀa—Ÿp¿x^0XJò˜ (³ åYÍÿòÈK?5žsX‘°ÈðˆeˆÔ,<¿Hãž„ù-ÞuËÁ†ò}›ŽËQ¸Ï…°ŒYbáÓ%ëóœ9 4ÐðKµfT¥ÇMIsYA›¼3M” ›¨}¨øÀ·p2$ ç½öu¤ ïmîQ¶c9DAÁ5 ×-YÊ-þ/ü¯¥ë ×SÓËð”O(r2å4h9½8ý®1 %å¤1c^å¡/Œh‰²J$’0ÓOTÆo£žxçZ¿_ïKÞ–î2DÒ; ':††HJ´?ÓmQ}å&àã%¬)ðÛ¿©ÊƒYüŸ0|¼_F+âñÛ“ýV•LRguŽMÖ§¤ûêèߢ½jÏùà´x~Òâ¶Ó¨m2ÀÆ­>Ï ˆ[²gU:}ÆÄžçš\bðb±@ a…P­ä(„-)ØðuÃÊÖÊ„‹ ©YðyCCJ®N¢uãçéô¯ÐË4mÚP5Z›ºÏÔ©sÔœ[n/ôóÊEÿ¹—HÉ…yÛç²·Ã@—ºDÂ{ÛgzI´?¼zоGIü»4ª\MmG©äK5ÕfT;5êÄRTÓñÁ-QL´ò”(ÿ£iŸ þ8nf… …Ô×BÀ³Z}¬§H [W« ;ØÈX f8´®¸ù@,!‚håÑ"VGÐÚàƒÎ³“=Ïm^Ú¸ÚÄ3qâD÷AóH nAJÊÑ|ɳKVˆ/ZÌ‚ôM)¦ÂR•Ö­›þUÖÔ"(IDATêZ³P˜$D€{ƒ ¦^bª*Ü» Žâ…4VÉ2†ð?Àzj@j(qe]]!@ÄÓ„ëbD%Œ8¸ A ©¯…€§õÑ(V0?£­!£iÍÒuCIp}¸…5žh1}C‚åÈá…>¦ÆD‚6ÒÉ¢€_˜òUÍß—¨ÛV<øTƒÕ=#²ƒøü–áºR¥±J–®+\O)/×(¡,e íÜ CÀÈ6¸AΘA « A˜Ÿ£L™¶6WGëÝr ¶h4ró”—LãƒéœàB&RÀ$‰o\²à½¨öm»!`ä5jòÎS¶^äõÊfIóEßKÛyÈ ³ÉÓo— ¦\ ›ÿs„4(›šoݵþyƒfhfýÀ?(SÌÌÌf¹dÊÚøÀƒ\tu2iÕJZ–ñãÇ;ÿMÒ¨`Ò „äļHF  ΤÿœG2ß÷p=¶lù‡€i(óïš]ê ¥ñâ¿¥ñ¢?¤IÙ_úû§~~—¦‹~“ÆeKý²òD¸$͈Q3Z]Y, ê¶”…uͱèn;¡¬#@ð>”| •.ø²ãŽ;Jçγ³ÆjëlµB†…lI%BÉK—ñg#‚h[¬ ï¾û®ì´ÓNÒ§OŸ´N㥗^rI{.\˜Vy+d†€!`„ˆx›‡‹Ø²!e蔑›Þ)²Úq"#z‰Lå"»c­ÔU¿¯å¶ÓPÑýË?n‡ú^NÿFd²ðiÐ*V¼” |~~úøófÆ?S §ÉéÇì#ûì³OlJÓ²²2;v¬ ˜`šS´™$“&o 2Qg>! ÛÑZ~ýõ×î— ‹Dþx”I|ß7[7 CÀ(nŒP÷õÍï³k¥)FvQrøã#"£ÏY4[Ã»Õ ¨æré.q}WezK5óYõ˜¸} V‡î.R¿™Ö£frÌåm6Õõ¥,ŒMDØ’g_rý¥Ò»0G2ÇÒåºë®“>øÀ‘KŸ›dÒÆ “É“'Ë)§œâªdнï¿ÿ^,X {ï½·‹Ú…0¶mÛV† "]ºT¼.äüòË/¥W¯^Ò³gÏÚ™{=û™¡å™gž‰Øk› ª!@»MÑW5ìì¨ÂFÀea_¿"è½’ÇUYao‘Ï/ùîA%”J*!Õ‘eUÃ9é‘ñ·‰ÌýSÍëRËÝ‘K%™«¯ÛT§…œ;eÊyâ‰'Üt¥6V_pÁi·KŠærþá‡Ü1ÌÛµkW7=^Ó¦M…Ô`ø^8Pž}öY—GpîܹNÊL+Mš4q„’(Àƒ>X9äWW8áa‡æR3íi³fÍÜ»Yˆi¾ËðáÃ]ÞÆ|ï§õ¯ð`peb”F(KíŠçëù6Ô`ÍîW3¸½Qg‰´Þ°z=]÷Â%ÇÏý­ÜL>Iµ¡S>ùëÝrÎ%%òj‰9cxà}º 0@}ôQéÛ·¯#®KHh>¦Š±Ô&þ Ú¯!`ÙAÀevp´Z²…@ÕîôQ¶j+¯§É ªå³ozõÎÿGäÛÛ˵™h4·Kï¸,•:ôÐC…@›Ë.»Ìù@&ò]L§)È ä‘YIçž{Nð³dV•u×]×ùF&ªÇ'´¾ï¾ûœ6Ó—!ØËDÒ²eKç³‰ßæk¯½æˆ$íâ§™l¦–DuÙ6CÀ0 ÂC@í€&†€!P9ªÑüu°È0Mª>¸½È8ÿ@Éè×׋ü­ÚÍE3*Ïö sHƒß#¦cæ>Æß/Syä‘GdæÌ™Îï‘ 4Ž'Ÿ|²`JG¹ùæ‰Ý Ú·×sV¹í¶ÛÜ\ËÌ·såô`CÀ0 ÒCÀeé]s;ã\#0ò4ÕfÞ­¹25 ûÒ—øb’ÂÎjÈüùó«äBŠ >k®¹¦ëÅ¿ÿþë‚vš7o.ÔMJ!ŸòâùÍ7ß8Ú©S§„ù&ñ©$ý‰!`†@i#`„²´¯¿}.T;9õ‹r3¹OÄ>c¼¦CÒäìM4Àg«þš¸}‡\´lu†€!`µ‚€ÊZÝ-9Í,Ÿ‚‰fÓ•“@ ÄS,^. @¶Ë0 C Ï0B™gĺcÈËê{ɬ>m5 Û'b')»‘L»9 CÀ0ò#”yza¬[%ŒÀÏO-1—OSÔ@ &ÓGB07¼Vc}t¾sCÀ0 C O0B™'ºa$D€i(§}¹„`ÎùUdû7µ†€!`†@m!`„²¶·v \ 0û'ýRÕdjD9ÚÌÖ‹Ô+Ÿz1ÍY†€!`†Xbs» bB`Ñ,‘SEÆ]-2²º]ê_¼U'5—+ÁÄ's™mD–*OTL§mçb†€!P»˜†²vñ·Ö Ü!0K“’û´ESt¶Ÿ)£E:*²ùƒ¹kÓj6 CÀ(IŒP–äe·“.I‚Å:¹¦/jÐ*úô!  T³‰F³QÛèr¶Ç0 CÀ!`&ï¶h5D†'#“œ<æão/‡é%½/¦K_¤sœ×³©‹ú±“3 C Š˜†²ŠÀÙa†@Ñ"€†Ò™ÊÕLîMæóþUL%¤Ý^Y~ç¢=u;1CÀ0 ª!`„²j¸ÙQ†@i!0{¢’K%˜ËmŸÜ>ïo‘ÆË•6v¶†€!`b„ÒnCÀȃ—-Ÿ³Ãi‹ˆ,_ju=%%ª&†€!`y€i(óúòXç B€)"[o$òχ"î)[(Ò°õ’ÔEíwUíg×ÄNÕ0 ÂAÀ4”…s­¬§†@é P6_dªj,}Ú""Ì;ì!²ñÍ¥ƒ©!`„€ÊºXÖUC ´РŸdæï?^™ýK¹©¼Õê®Ù0®§/ZjMnI[l±…œsÎ9¥ ¦wޏã½M DÀe ^t;eC (èt•H§+Ef|[n*÷Ñåß?(²XMèÝßÔY~vŠú +¬ p@lÝ l ð /ȬY³²Q•ÕaF( êrYg C 9ªl±vùg•#Ë‹–-™ö¹HËu“j{ CÀ0ªŒ€Ê*Cg†@A €/%iˆL CÀ0r†€eδV±!`†€!`¥€i(Kã:ÛY†€!`9Gàý÷ß—þù'çíXÙA`·Ýv“æÍ›g¥2#”YÑ*1 C wôêÕKvÜqG9è ƒr×È5ß{ï½òôÓO˸qã¤eË–²ÕV[ɵ×^++¯¬ó±¨ì´ÓNrùå—Ë6ÛlSé ú÷ï/#FŒ»îº«Ò>Û9W]u•¼ûî»™hGÔ ß~û­¬¹&0ª/fò®>†Vƒ!`9E­Ï?þ˜Ó6¨ü¸ãŽ“SN9EVYe¹ùæ›eŸ}öÚîÒ¥‹üùçŸ9o?W 6L&Mš”°z^¨üqÂ}¶±jœxâ‰}òƒ±cuâˆ,‹Ê,jÕ†@ñ!0eÊù÷ߥ¬¬L>û쳘IoΜ9òÑGÉO?ýäNzÞ¼y2qâD™?_Óý',³máBJR…2hp¾úê+÷Âý¯˜ûùí·ßdøðá®,í%"A˜©sòäÉòÞ{ï¹__ÇŒ3dúôéîxú5a¿Ëý.Z´Èµï7†×‡*?ü°#’=ö˜{ì±Ò·o_yõÕW]?n¿ýv˜K‹Ñ䘙3gƶ§‹¤ê+efÏžííüÁjL¦N*ýõ—»AÈ UÞøÃ?ÈÛo¿»~~{üﯿþ*~ø¡ëcü>[7 ôhb†@I! ù'ƒý÷ß?ísÖèÁŠ+®tìØæÔ­[7PM^°ì²Ëºu¶Ýxã·ïî»ïŽÕ}ß}÷õêÕ TÃÜzë­A³fÍ‚-Z¸ãzôè(Iue/»ì²XÝ­Zµ ÖZk­à˜cŽqûÖXc@ÍÎn¹aÆA×®]] 4š6m<÷Üsnßa‡¬³Î:A›6mÊÑ/%†n_'œpB°Ì2Ë$\Wí¤;Ÿ ÄöûÕðJ¤Ý*Ëœ7çѸqcWŸd·/]œ(œª¯ÿûßÿÜ9x¬¶ÜrË`ñâÅ®K.¹$XýõݹrŽJÒƒdåÁb“M6qxÔ©SÇõû©§žŠÕµñÆ»e%êÁ‘GéÊ-×íúë¯wûÒýâ¼t¦œt‹]¹îÝ»ª¡,ºó*¶R ¥»ÏUCŸµS3 ¥>L CÀH…Z«³Ï>Ûi·ðg¼çž{œy S9>øàƒB²ôí¶ÛNž}öÙXuLñHy%`¢¤Qúôéã´ˆ˜a_{í5gnE+ÉöÞ½{;ŸÒJÚÅX…º€FmÛ´iÓd×]w%бdÚß|óóœ;w®Ó8¢u|ñÅÝá»ì²‹œyæ™±ªÂëß}÷(%R±ý~ßÃÎ;‹’MQÂ%Jî-!çŽåGÓʦƒ“¯7ª¯¿ÿþ»\wÝurÛm·¹v0K£~þùçý¡ÎÇSI¢Œ5ÊiPS•GÛ‹¯$Øq>˜öÃÚU*ÆR‰¦Ã üt0 ]t‘k;Ö°-†@BŒP&„Å6†€!P‚RÎ8ã Q Ÿ#5rS7ªMúðfïÃ?\ ‹˜¦!1˜…Uk%ªÍ“:ÈC=$‚¨ÖQ0™3¤jE5rñÅ»ßC=TÖ^[´GÈI'ä‚d8FµuÎìM ¢š;9äCDµ¨¢NYuÕUÙ˜}û+Ï2^Çœ¯ªŠòßcÆŒqæ{Ú‡xªæON?ýtŽ?Þ•.NŽê+ýõײûî»;,!ÞœíxYj©¥‰‡T¦Sž€¦Í7ßÜávî¹ç:2ŽÛAXF¢>®ÓçŸ.ª¹t°¯¿þz¸˜-†@,Ê;(¶É0 xÚµkÛT¿~}Q³¯@j5£ÆÈØ~ûí'§žzªÓ¦A‚ ’·@À ’@¢¶Ñöm½õÖYùå—_d£6rÍ7²ÒJ+ùÅJ¿ÍxL!>U 2,ì÷ûÂÛã—ÕÄ.?þ¸ÓÚùóòeˆÜ¥ÿ«¯¾ºÛ´é¦›ú]âqñþž~ÉpbT_!¶gu–¼ñÆNëÛ©S'WÇx¡/Mš4q«é”‡¸{A‹àó–ŸþÙizÕdÛ¬îîúÆ6ähaêÔ9ªÅn¤÷@½µ`Õ¹EÀ4”¹Å×j7 "AÒ˜ŽjgÏ=÷tfoÌÝIò¼DB¤6s1ZÉ‘#GJ¿~ýd¹å–«E,ª;¤Bð âÓú„÷¡E«è÷%ëÿf›mæ‚yÞzë­ Åþþûo¹ú꫱[~ùåݾ/¾ø"V“3¢þ¥î7]œ(Õ×'žxBÞ|óM§Ä„ŽÉ>Y½é”'0Ê ¸#ñ¸´oßÞi›iÓî¼óΜÍù>gÎR>¾þtʱþå—_:ŸK ´qx­»nÅùÝ÷Úk/wÍð?Γ€lÉÂ…‹•,¥8?&ë­w‰ºQ<©. ãeÑ¢²l5aõd€@M¤ä=z´¦g½õÖsžü‡ñKN7eÕK/½$K/½tä ƒSÎYQ3yç Z«Ø0Š´c˜¯½°¿î÷ñK LëÖ­f’€D#¯™#Èã /tÛ ’5^0çwžœ|òÉ‚"DÊkü(ß>/ÈD ó-ÄÐkð0#ã׈6ƒ>@ž¢A†ª?ç!C\¢òøuÌÓ)46ôÉ ÄÓ3ä×›íÙ hï…^pÅãû™ §¨¾R÷<àüH5ÒÚivöÞ{o¹à‚ œÿ*ùóeŸÓTåñY…CJ žzùå—cuøºðaůR³P­sW ©{Ø\îvdøÅâ“O~pÚÈ_£fõùj¯k$Rq$Uƒ*0‚ðsðO&ïé÷ßïî3ö“n -?ö#¤Ï¢>¯Ü›” ¡ñçÿá¯+ei‡õ3b¥°à‚…aÖ¬Y‚žAÿ5„4Wô¿åO?ýÔù톂£A䃋 B߸ÿé ܮ^H F@8Úò}eà„û9Âyy·´š Þ¨›öð5æwà 7þ+µ* ‰!`%…@¦iƒ2‡ô6ú Ô÷°Ò¡êk¨æ/ÐT¥}ú’ 4ò9ÐD æ±XÚ pA%Ÿ)oô¥èʆ÷‘²F‰W ¤)ЗT@œªˆš¹<ôžðpÕ¢ª] H9¹VEÒé+õƒ—}™:lüzüoªòªí 4x(eŸU;|òÉ'’òø&R®‡Ó}þù/ÁW ÑG—íÚ¥÷Ĺî—åDŸßŸš²þ|/iÚ Òq‘ŠûZÉP ä1 ý”,·NÚ( *¸”\:˜s©Å¸^¤(Ó€°J—NƒÃÜ9ªÓí‹J}EZ.%®,©¬4Ðý÷Hf: ÔÅýg+5±!iƒLCY«tÞ7 bCS·OŽö!^Ðx$šrhLâµ&ñÇûu4)| ÚF´|U4¤|¢- æñlH²¾†5@´ïóß~ªòDäóI%Jr„OUdöìzÞZ#Êû¨FlŠj¨ê©Vt±«ÊÿFÕûöÛ_«&»YÔî‚Ø>kVy Z&%C¦gîg"ñqù ±8… …Ô×tñ:t¼šÌ1™bz, OE"Ãu_tÑ3áÕ‚\nØl(ÎÒžw+Àœ Aò„ÿ\̼å x˜1ùâÂñÈ#THÉÅ€ Wþ Vp1ñ)¹p-Á=‚ ³(ñ)¹ØïîàÁƒ¿0ë>Íˤ䢈0„²–Þ½{‡W.ûÔ`CŸúŠe|—I[Å9†SeùJÀC5讜'¤ÒKð9[}½¾|Mý¡¬)¤­CÀ( Ð2dCnºé¦„Õð‹’Ë/¿~Ó+h)“õ}äÈ+Ôo®ò "Ù1ù¶o‡vÐ.­‘Q·Â©¦Ð¾á?èm›ZmÝj¡¦äòçÿëçÓ†4sŽ©ReùãIo…‡¦Ô ¾Áø[Ö–,ñ2¯­X»†€!`5†@6"N?þxG@k¬ÓÖP“& T3ÖC#Ê{ËK/¥Xm¥æÜ¦î,êׯåÀ‰<Ä2]-&ñBLÉ•ri0í3ˆ#ˆ(ÔW¾¬ÃLR>½ú!Ÿlm‰ÊÚBÞÚ5 C ÇD¥Ùñ§¼€˜†èZ"ÂñÝòÚ ºFÄ)Ñp¾HÒé°-ex;Q°DØzíI¢S‹êO¢²Å²mÓMWVÓè¾j ¿Z±>IM£›¨ï‘¿uÔ$kä2Óë\()¹Èä€¹Ü ÿ ®qéÄðýD“Ë‹)[4þ˜¸q“I”* s=ÂŒTLl€K )È0³”d´é#à]áþ2BYÀ[s†€!`äÒ•FˆtEéš•ñß"¸€¼–Þ ‡ÿ©Žð#- >mLÏHäÄ#:&Hí fËnݺ9  ¼ã…4,ø¨ùÄâñû‹y½nÝ:T²–ÎO~¨¦z¹VÚ­¾~ë9sx1Ÿwªs‹×N²¿-\‡OÉEÐT¢”\ܳøn»í¶.P¦OÉ…{Ç•W^éîQ_'mAä¼ø”\µq'JÉ…Ÿæ£>Z)%×Ã?ì«qD‘=„6 }HúŒ†Ÿà0TD|;q=¡ïôt@>Uÿ—.]º8²Éˆ±O>ù¤›Ú•cHFº+ú>ê­Q‰ˆ(·Í†€!`-¹NTÀ) Ô+ЗQ /Î@}"RƒÄKT “W^yÅ¥ 4hP ùú\Ú5ɹ;¤ã!5‰Fšºê4š4Pê–5Õ¥|9óÌ3ÒòöHMx¾Äã›Ôß+PbêÚÑap×]wš4¼R¹BÞN”ÎyÌœ9/4èÓàCî þüsZ:‡äu™LÓez2…ž’+Õù&K}¥þ‘Òhùô`¤b9ÉEÚ %´¼Fi¬5f†€!P]pÀG+‚öÔÏ>ûÌiMHö̼Ü$;NW|dh8ât÷Ýww<¯½öZdÄ)f=æ%G›BªLá$R'z¼yä‘ÂT‘hkÐ4 „?A¤‰)EiÞ¼‘&RßLÓÑœ(Ë/Ÿ8 T)â’èœÑø‘ú‡yã“¥äJ,†V‘{<äßøjúÿC|?|š+o‚Žß_Ýu²„³8ñîûŒ9;¼Ï÷…ÉX®m©ýÔ6Ö¾!`Š6L™ˆ™´7Våt¼©»ª§Â°q%@&ÉÈô7Üpƒ#šÉæ/ªË¶—–’+¿¯µÊü¾>Ö;CÀ0"ÀJÍÆÎ_ ¿E%“ù§Ñ4¦+ñ§=ôÎ7ý¦ÓN’„ý‰rbR?¾“hkðùòš!"N“ÍéNðCcí&¾•&†@2ò=%W²¾—Â>3y—ÂU¶s4 ¢D€ ƒSO=ÕÒŒ1ÂÍ« 1ƒäñ ÉK$Õ8%W Þ̉¼Ç{8ÂI°ó«/¦ôèÑC0“Ç A$&Jµÿþ.I5ó+3„ØÄ0 #”…{í¬ç†€!`Äèܹ³ÜÿýšHûOéÛ·¯K'Nzì f#âßÊ1cƸ¨Uü4Ñ’Þ{ï½. ‚I$*Ñ´ñrñÅ«Ÿàò.}Ê„ \šrð™†@á#P‡¨ Â? ;CÀ0ÒGàÀtùј³B¨:yé }ø@rLâI&m¼™­'SÀ‘G d"©nÕ™oÛÈ“8kÖ,7gt¾õ­&úCjî^½zÕDsÖFà¿L€S5” 1Êl hu†€!‡T‡Lr:ñ/"N½=,äÕ#W^2©n’ÕmûòÄø˜”F(KëzÛÙ†€!`9CÀ'óÎYVqÞ"`>”y{i¬c†€!`†€!`F( ã:Y/ CÀ0 CÀÈ[ŒPæí¥±Ž†€!`†€!P¡,Œëd½4 CÀ0 C o° œ¼½4Ö1CÀÈ%ÇÒ™ÙD€óÌ­lb”F(KíŠÛù†€l¹å–†‚!HÄ|è&†@©!`‰ÍKíŠÛù†€!`†€!ė2Ë€Zu†€!`†€!`”F(KíŠÛù†€!`†€!eŒPfP«Î0 CÀ0 RCÀe©]q;_CÀ0 CÀ0²ŒÀÿˆ`MõÃíÊIEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1NoSchemaOption__coll__graph.png000644 000765 000024 00000021442 13515046516 030011 0ustar00tangentstaff000000 000000 ‰PNG  IHDR·@CsRGB®Îé"ÜIDATx혔ÕÕǰt®éÍŠÒ "‚ ‚AÅ‚Ñ`hŠŠÒ4 jÒl!b = bAzQ©Št¥ƒ€4éð~÷wÈggg¶°;;3»÷<ÏÎ[nÿßÓßwf³xž7A929YŒ x™·|‡€du8âÁ1CœEp|à0ÄE# Û¶m“o¿ý6§ææ”JÊ”)#7Þxc*{ Cs‚åh£>ø€Þýe@ Ú¶mmì¦ó‰J‹€¼gÏž]NŸ>Ñw]F »îº+RC'9®‹’„ÈUÈ 8AÈ »ìÖ˜$N’„ÈUÈ 8AÈ »ìÖ˜$N’„ÈUÈ 8AHƒ]?~¼téÒ% zJº‹ï¿ÿ^î»ï>©T©’\zé¥Ò¨Q#yõÕWåüùóI765Ξ=+ôÕmß¾½Lš4ÉwYOœ ¤Áί_¿^/^œ=%ÞÅÌ™3¥Aƒ²lÙ2騱£¼ð R¼xqéÙ³§´hÑBΜ9“x¦tÆŒR¤H_ÝãÇ»4µÁ%jŸ#$¹£~ÐpçÎÓ ^¾|¹”-[Vµ%›¼bÅ )Y²¤”/_^[ðÔ:_¾|R¸pa_;vìÐ{ Ô{hÝS§NIµjÕ$oÞ¼¾zÇŽ“Õ«WKÕªU%wîÜò믿êX¾ æäÈ‘#bžÐHžÝW¿T©Rj 6nÜ(^½zi– 7‡#tÛm·I÷îÝõ|Æ z öžŽZÕÞ[¶lÑ:|0ÏÍ›7ë8M›6#TR»vm_<ÀÜŒâðÕÇZµk×NêÖ­«V ܌҇zH­Y×ã?®ëêß¿¿|ùå—jY|ÄòIr¥9=ë]ŒE@“[4hgÜ Ï¸)z˧çû÷ïWk3zôh½6BãÝqÇzþì³Ïª&œ Dßž¸E'Ý }8Aˆ¾=q3ŠN"º2úp‚}{âfœ Dt7dô!à!úöÄÍ(8AˆènÈèCÀ Bô퉛Qp‚ÐÝч€„èÛ7£ à! »!£'Ñ·'nF@À B@wCFN¢oOÜŒ"€€„€î†Œ>œ Dßž¸E'Ý }8Aˆ¾=q3ŠN"º2 ðb€>ýôSþk†ü‹‹+ìåÈQ*C®=ëÔ©S p˜çÅÔ¿Ž?~¼äÌ™3 Õ‰›R0ìvTÞ‹)A¸ë®»$Ožù¤tëÖ-Õ{¿~ýzY¼xqªûIªæúè£J\\œôïß_LN^~þùgiÒ¤‰Œ5*©æZ>cÆ )R¤ˆœ9sF¯?.§OŸNVÛLU)žvØj†™“5ÝÝ»w몉'Æ«_¿~}¯xñâ¾{Æ:x«V­òèÛ¶m¾ûöäèÑ£Þܹs½9sæxGޱ·½>}úxÕ«W÷]sBû x‡ŽwŸ‹cÇŽi?;wîŒW¶}ûvÏ0¦g4¶7oÞºŽ‰ `Ë–-óvíÚå5hÐÀ3®œ–aqn»í6=ü@³#<Ï>û¬!%K–ôŒÛäa5MáwÈCÛO™2EçÃ: ÆD’Z#‚€½þúëŠqÍôÚâ¥%ñK‚!cëÛ7HªT©"W]u•Ô©SGŒV–gžyF‹ ƒH‹-¤|ùòzÝ¡C)\¸°|ýõײbÅ õÅñɆÃhÒµkW1®üôÓO¶{=~ôÑGR£F 1B"ÆÍÃÀ’/_>Q “Ë?þ(·ß~»”™3gŠÑÐÚí¤cÇŽBS¢D iÓ¦lÚ´I‹ˆi ,h«Å;7M‚éËs-[¶¬>y7‚*Ƶ‘µk×ÚâÇ䬱B… WÁã?®}lܸ1A_áFL½b‘RÀ|ðAe.ÛnÉ’%R¯^=1¾¼2# ìOŽñ¡Åøûzµ£B”ûÓ/¿ü"Æçc1|·a`c p;å‰'ž/¾øB.¿ür¹öÚk5ðõU4'dƒ,¿_œk2DƯ·EñŽ+Ù/êX²Í5íÛ·OÁ>’³Fÿ¹÷P»aÜŒH¨”Œ¸º€5a f1 ¯˜lZ€üË—/_®÷ŒË¤Gûa\1~¾˜À×÷7bĹûî»åý÷ß—/¿üR­åÆ}R±m9"0Á¨Q£Fj™‚e§>ùä1I[2®•=•E‹é9k EÉYc¨¹…ê3–ïghAX³fæÜMF,Í›7W÷W·hêÔ©b‚JM':T÷¶®Ê AƒÔ½à¹„ɾHíÚµãia´lÙRèŸÜ<îmZ·n-¿ýö›jmÜ4«É& . gS™‰1NçÎÅøóbâá¹… tÕÍêÕ«—Œ7Nzöì)¡¥‘#GªÁ>|¸”)SFÓÆ¸u.ÊRJÖhÛdècñNT§4X&­h6-Þ™!£e5]Ê¢ŒUðH§RÌ Áç;ï¼ã[/éË¢E‹úÊ+UªäýðÃZN°lÜ*='ýIpjÇ#Ãd„NËV ÃiY#|^«V­t¼¥K—z†Y5µƒ2~þüùí¥Ðdjlß)ã7|u8!X&¸f êí1–Dëüú믚àþæÍ›uL›5JlO=õ”f¢ì@Fhߟ}ö™½•ä1–‚å ™>Mr‡þWT  N5kCyxãyd{ÈÔ$F¬G{ò÷–Èî¤$'.\¸Ð3Z=húAøðÃ=ê­[·Îã;Úg ¾~')Y£_³dÆ’ dè`ÙhÁD Ø?à ¬ŒPֱ׸1ü#2Wþ”˜ïî_Ïž(P@Ìs{òH=þ‰/3ñŒR²Æ`í3ʽ #d”MJj¤†yÂÑÅ#©-ÂÅÃ]-ÍëÑ5¡œ³1¸inÊi€„´Ç4Å=ž={>Åm\ƒ´EÀ BÚâ™âÞví:$ümŠÛ¹i‹@LÅæMд]}ô–/_-󔸂<ôP½(˜MÚO¡jÕªißizŒ A …9a„0,?ò]¾ôÒ Ù³ç„Œ;^  žâŒü,/~‰¥§/¾×´o‚À{1¼úÑhÓ¦}F.|ÓíܹRf7g´%ÆÌz\ŒÁ­š2e¹yÍ;›yñNŒÅû.‚3qC;Aˆ Lš´Ì¼€wμæ"æÍ×=满_›Žà43ÅÐN"´Í+Wn“;þøu ,ÃÔ©ßGh6nX'âiÓ¾W·Èe˜8q©½tÇtFÀ B:ÎpæÕMóý…åêù…Xµj»ÿ-wžN8AH' ý‡Y¼x“ùÑ­cþ·ôü‚{tá›p ݰ"à!¬ðïÜf‹Kq°X Gé‹€„ôÅ[Ý¡éÓW$p‹ì4°X Gé‹€„ôÅÛ|‡zùÞrèŸ\Ìž=ÎeÒyOÎ B:ƒ>yò2ó“.ÙBŽzæÌYók¡-FȆ® U8AH|)k|üøióó.?˜ß.Jü·Ž;¥–#e½»Ú©A &Þ5JÍ£©íêÕÛåê«KšŸyùãûû÷3?vRÊ•+ê›*ߥæIóm·]ã»çN‹@~Ž ¼C¸ÞCàå—?3¿‹ô£|õÕÓ‰UseaFÀ¹FaØu8Aˆ}r³ 3N °ë>6p‚ûäffœ „`×}l à!6öÉÍ2Ì8A3À®ûØ@À Blì“›e˜p‚f€]÷±€„ØØ'7Ë0#à!Ì»îc'±±On–aFÀ B˜vÝÇNbcŸÜ,ÃŒ€„0ìº œ ÄÆ>¹Y†'aØu8Aˆ}r³ 3N °ë>6p‚ûäffœ „`×}l à!6öÉÍ2Ì8A3À®ûØ@À Blì“›e˜p‚f€]÷±€„ØØ'7Ë0#à!Ì»îc'±±On–aFÀ B˜vÝÇNbcŸÜ,ÃŒ€„0ìº œ ÄÆ>¹Y†'aØu$ø9ß|ó¼þúë±1û 0Ër›•]Ê–=’VKøÓŸþ$;wŽ7ÙÿCmûöí2qâD¡²£ôA wn‘}ûÒg¬Ì>ÊÚµk%·ÿüóxCÁ 0FrèÃ?Ô>jÔ¨!>ú¨*THþñÈ?ÿùÏ$›ÿøã²gÏž$녻·ß~«J‡u7kÖL:vì(… –±cÇJ¯^½¬’¢Å‹ËwÞé«‹¢9sæLRÍÂZžj‹púôi9xð +VÌäÂ÷ Z¯B… rþüyùå—_„òŠ+J\\œìÝ»Ws¸V°²_ýUïåË—O S }ïµD¿›7o–Ò¥KKΜ9åСCR¼xq[¬G´“çy’+W.µ ÔúÒ'Z˜MÛ¶m›yˆuL*W®ìÓÄ´c®hf4¼ÿµ„~ÇŒ£Ú«@öv¼#ëÞºu«®‹5`E S§NÉÿû_¹ï¾ûäðµÁº \=zôPKƒ¶Ü´i“âxÍ5×(n¾Êæ„yS^ªT)ÅÜ¿Œõ3vÑ¢EãaÆàËš¶lÙ"UªT‘9rÈdçΊµÅŸþXcdË–Mµ=x@àóÊ+¯H™2edذa¾ýiÙ²¥\{íµ2|øpùâ‹/¤yóæòÛo¿IÞ¼yuŒ `F”AvÉ’%uíÌÇ{ AÌ5Ož|XÐlæk¯½¦ ¯ZµJúöí«æÆ©T©’2óÌ™3µûA¿@&Ú ­Õ³gOA“õë×OªU«&hWÊØP42Büý÷ßËÓO?-C‡Õµø_3ô—¿üEþõ¯ɨQ£TûÙqíAcŒÕ«W+À˜0ý#<¢ÌÅ5Ö f°KuóÍ7k¬uRDy€ k€pDb]¶ì«¯¾R¼XÂT«V-éß¿¿ ûÃÁ†rôöÛo×§ô£a•PXÌ5€Ä}ºnÜ!CT{ôÑGZ϶¶X´=ñš FAX-Z䫊€}òÉ' *æÍ7ßÔ2¬ Bi­Là5•hûØc)C®X±Â×§=ù÷¿ÿ­VÍ1c†<óÌ3:ua4'¯°À4Ìmüøñª•Ql¤mÏëqÓM7©Ë&‡öï߯LÃÕ¬YS¦M›¦÷Ñê0C‹-´í±žôo ơǙF¢íˆ#”yÑøsæÌѪo½õ–`‰ƒ½(W®œ®Â;vh+¯¼RþÌí½k×.ßmÆ ð¾á†TPŽjöÈâÍ ¬öàÁƒåꫯVüŸ¹p屿àG[iÙ²eiâ2¦™ <øàƒÊ(uêÔÑ ³)h!{lذ¡º4wî\“‰©ÇÂìXŠ‘#GJ§NdãÆºÐV­ZÉe—]¦õ¬ÔN>Ø8‚J6—z%J”,Š%Àõb<Ê­ãú¯ý«oc¯mû;î¸C7‡÷±ìæØ²ùóçKݺuuLîÑ?ë! h^´¦ÄÊ èÐÂ… #,‚Ã|À-5iÒD-'±¸"xR§~ýúzmŠ&®±„â®k«]»¶®ƒ¾`N`•ÑÐ0=ýâŠ!€ý‚+.b0B±X7ŠrF§>üA9®[(b¯qŸi‡Á*‚ã#ûy÷Ýwk9õ + zq‘©vì¸hp¿lÈš,´ O–dÞ¼yš!€ q €Â5À¼ýöÛ*D”YíÏ&ZB B>§?'Ø>¸ï¯(cÌ”ë!sD°Kðk w… #îð'pa üq´%ÚŸ?7WíÆ¦ÒþòË/÷5Ç5mÚÔw]¤Hß9. š‚y AƒéÑ~ ˆ,ù·eüÇaMÖê°7ï¼óŽ2!BcÇ °ehz»¿¶” ‡L˜%˜ÖXCþ{aË쑲X²ó¶ûdû¡Üº—ÖU´m.æ˜fÁ2|R“@3!˜K´æÂÄ=ôÐC2uêTuØDÌ4 ‚‘,±¡Èj/ÊÑ`hæ÷ï.1¡ 5VçþûïWA k¡ Ù$CKh}ʃ±Ð´V³Q!iÓ¦V‡AhO‚Á.%1ŒeÆPÓ—EÂßßÿþwMl_¡ÚÚrŽÌ!ÀõÀ-%ÂZX"¾bìQ aõÿô®ÿ^ØÌ^bx[eŠ[gÉfäì&g¶mJŽi&É”|1¦òÝwßU«`¥ú³Ï>SŸ• ŒFf‰zªXü]›1a“BÀÍš5Kµ0›ŠË`Ý3Ú0.ýà–ÌãÊ@0(n‹u7¯µ’ßA0›cëSD_¸hUüÝI“&i‹†Æ%„‰ˆ£`lÜÊ1éÄF(„ªU«ªkƒ{„‹…õÀ=¤žµ²~ÃÇ;e\„…µáVÔ’Ê$ARB»¢|°¤9‰¯¬k†Àå MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::BadFieldName Member List

This is the complete list of members for mysqlpp::BadFieldName, including all inherited members.

BadFieldName(const char *bad_field)mysqlpp::BadFieldNameinlineexplicit
Exception(const Exception &e) MAY_THROW()mysqlpp::Exceptioninline
Exception(const char *w="")mysqlpp::Exceptioninlineprotected
Exception(const std::string &w)mysqlpp::Exceptioninlineprotected
operator=(const Exception &rhs)mysqlpp::Exceptioninline
what() constmysqlpp::Exceptioninlinevirtual
what_mysqlpp::Exceptionprotected
~BadFieldName()mysqlpp::BadFieldNameinline
~Exception()mysqlpp::Exceptioninline
mysql++-3.2.5/doc/html/refman/structmysqlpp_1_1equal__list__ba.html000755 000765 000024 00000027577 13515046515 026155 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::equal_list_ba< Seq1, Seq2, Manip > Struct Template Reference
MySQL++  3.2.5
mysqlpp::equal_list_ba< Seq1, Seq2, Manip > Struct Template Reference

Holds two lists of items, typically used to construct a SQL "equals clause". More...

#include <vallist.h>

Public Member Functions

 equal_list_ba (const Seq1 &s1, const Seq2 &s2, const char *d, const char *e, Manip m)
 Create object. More...
 

Public Attributes

const Seq1 * list1
 the list of objects on the left-hand side of the equals sign
 
const Seq2 * list2
 the list of objects on the right-hand side of the equals sign
 
const char * delim
 delimiter to use between each pair of elements
 
const char * equl
 "equal" sign to use between each item in each equal pair; doesn't have to actually be " = "
 
Manip manip
 manipulator to use when inserting the equal_list into a C++ stream
 

Detailed Description

template<class Seq1, class Seq2, class Manip>
struct mysqlpp::equal_list_ba< Seq1, Seq2, Manip >

Holds two lists of items, typically used to construct a SQL "equals clause".

The WHERE clause in a SQL SELECT statment is an example of an equals clause.

Imagine an object of this type contains the lists (a, b) (c, d), and that the object's delimiter and equals symbols are set to ", " and " = " respectively. When you insert that object into a C++ stream, you would get "a = c, b = d".

This class is never instantiated by hand. The equal_list() functions build instances of this structure template to do their work. MySQL++'s SSQLS mechanism calls those functions when building SQL queries; you can call them yourself to do similar work. The "Harnessing SSQLS Internals" section of the user manual has some examples of this.

See also
equal_list_b

Constructor & Destructor Documentation

◆ equal_list_ba()

template<class Seq1, class Seq2, class Manip>
mysqlpp::equal_list_ba< Seq1, Seq2, Manip >::equal_list_ba ( const Seq1 &  s1,
const Seq2 &  s2,
const char *  d,
const char *  e,
Manip  m 
)
inline

Create object.

Parameters
s1list of objects on left-hand side of equal sign
s2list of objects on right-hand side of equal sign
dwhat delimiter to use between each group in the list when inserting the list into a C++ stream
ethe "equals" sign between each pair of items in the equal list; doesn't actually have to be " = "!
mmanipulator to use when inserting the list into a C++ stream

The documentation for this struct was generated from the following file:
mysql++-3.2.5/doc/html/refman/functions_m.html000755 000765 000024 00000012676 13515046515 022036 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Class Members
MySQL++  3.2.5
Here is a list of all documented class members with links to the class documentation for each member:

- m -

mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1TCPConnection__inherit__graph.png000644 000765 000024 00000023071 13515046516 030302 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÌ·^DZðsRGB®Îé%óIDATxí]œTEÒ/rŽ’s(T$˜@ŽC¢Šˆ€ˆ (‚ §¢¨ÀNáà$P ‚r  ’ArN’û«ñõcv˜™]vgßÛÙ©úýfÞ{«ÿÝU]Uýf7…1f"))Š@\8—‚ÆÄ¥¤–Q:™RAP¸# w¬´¤"@*0º›@ µÙ½{÷Ò’%Kü“õYˆ:êÔ©Cyóæ9n8ý¾4qâDô£Dýøþûï}E÷'nØa¬8q¦½Õ«"Uœ§5^@†'Ý :ÔðB0,†…ǤH‘°47n”² .4¼X /d)_­Z5ÃÂ$y={ö4UªT‘ûÖ­[^Ô†Ò° Hÿ¼HÞôéÓå™w 'ey’%îܹ’ÿÓO?ÝðÌf“äýøã’çûÅ Õ°›|P’ÑoÍš5…OV†…×L™2ÅÌŸ?_øçÉ’¼;vV2æÃ?”z‹-2læÉ¸Xˆ »ÔA櫯¾*ãâE.uÑÆC=dÐ7uY( »|xq žÈóÅç‡~qlÙ²Y7ÐÏ?ÿ,(H`yäÓ¾}û+0P`ˆñ²Y%‚vºví*;7î-AhØG2Øñï¼óNƒ±âÃ~žX ·1Y¾|¹ì„=ö˜Á® ÅÁ‰+…˜û0,BÖid åÙÚÈl^É33+¶<¢4ˆ ñŽ"þƒ.ù<±tôèQâŠÞ|óMñ‰ÆçØýwß}·”Ûnνÿ /¬Iðc¬ï€ Þ œ|Dºà ÅFð7Íá…)¾‡oyø[¬}% `Ó}û@ÿ _l9{…ï‚ßbÉÚܬd$ ¼Z²~ °$±2!6—Ä×€o^CÑ|ЇAøpmÚ´!V&ÄŠÀÁ<Ú9µm#b‚ßÿ‹wE›%>©{$º‰ 0ñN(6]ŧ}ýõשOŸ>ñ½ [” Žr\ˆM b?xÛç™M ©ÆþL:›kâø"ŠÁ± œ%6Eìí W8©–…Z½zµ3éH÷Íg=Fž­çEt Š`ðàÁþY4oÞ ÝØ4%Lê)RD"GlšHDé°ãZÂ΂ uÁC ‘(ôacAãŠ0-ûl!ÃÕPXß}÷]Œ›wÂS»vídw@”@„ÐÁO³fÍä L¡¼ ­ÙÌ–È!”°„€wŒå•´ä&&ˆŒÁ‚².Ø¡ð°{&˜üíºø:ýpðApD™)»GÏð!,!r…4>?±IâT F„ 6/‡& ì~ŸˆýŒ:ˆÎ°yÇá𰔃Ë Ì)‹ÈšÖXuÑltøOlJH]ë3ðb ø gÎ6xC}ÛkQ£Tâ/ä#jÇe‰³ãdóO HgÁ4,HN” ýs˜Vê`Œð‰xâ¥Yøpì-Y{Ö¬Y’Gý¢ïdæ7ÞñõèÑC|‹¢|–wÿ+‚(C† ‘|Û.üQá"é§oß¾Òê§âPº¤#ˆ‚à†mÓú¢–_·1Ï‚`ø/ˆ>ò³e'Ö«Å×úˆ>N@«Ä ›˜•ãøðÊ+¯>«¹¡4Ÿ5Ö "tþ™pÚz†"úe£d¾å 0M›65h‡Í‰Ù|+0ÈÃbµ‘:›×+àŽ%Š?aqÀè¾[N5‚c„Ó G:X€!P=¤¡MÔ³„="sá&´,,Íæœ(9>7ŠÑ­W˜BnËP6§Ÿ¥9V‚¹›æ×Ào(m“C¢7¤#¦ÄâBh‡§ÁÈ?0¬\ tŽòʼnÔáãO0 ‚™#SãC0añ±dƒ ö9\W2û;ÿ¶m^ãŒÜƤlÙ²ÁX‰wº«ÿ„ÏbˆM⃮x3@@ ǧúpô"mÁœç@uⓆ>|n|ÚHnu’&7ü!?8Ã|è%`r›8"ìO”AXÚ‡ôùù€¡·Š@¬¸VŽ•#-ÀáÛs|¶ûÛÏ •ûõa`š)yƒÀâÅøìÔ¸ö†°7\Do¯Áü` T`àÇ(yƒ@®\ò!ä>¹Ÿî ÚkPnpúƒ–Ô WØ·ïU«Ö—ë’’~ûí]>uÏèJ¿ÚIœP§?N0¹XhÆŒÕüÇ5×ò»ï®¿[æ" ÚUÔéŽY“&-'þ„õ'MZæ ÚgT`B€ãvÖÖ­‡hÓ¦ý",W¯Z¾|'8pÒm6´¿¨À„Çí¬éÓWñoé¯ÿN?Uª4sæ·ÙÐþB  ·³`‚]ºtíGaèûÊ•«ü5ËÜž‡Pý©À„BÇżµkñã«ë¿A×øÉÌÆûø—ž×~ué";ÚUT`‚ãvò´i1Í1ÛêÔ©ø‡Z×~}iÓôê*0ÞaïôÌ?¡)SVÄ0ÇlæåËWH£e ï¯*0ÞÏÿ‹ÄmüÓÞ3A9Ùµëbî š¯î! ãÖA{š:ueŒè˜Á4iRÓôé«ý“õÙT`<Ý·KDÅfÎ\гå.]ºÌ`b¹}Ô«‡¨Àx>º^°`ÿM¯ ²Ã¤M›Šÿ¶X*¹ÇyLÚ´©åÇÿðáÓ´t鵿hã1ËQÝ}з•£Ÿ5kzêÛ·iŒÇ_Êà ÿ­³ëØ @JÞ" o+{‹ÀÞ۵Ź?=ÿáÀÖó5Ñ3ômeϠ׎#õa"rÚ”i¯Pñ yí7"P‰ÈiS¦½B@Æ+äµßˆD@&"§M™ö ¯×~#˜ˆœ6eÚ+T`¼B^ûHT`"rÚ”i¯Pñ yí7"P‰ÈiS¦½B@Æ+äµßˆD@&"§M™ö ¯×~#˜ˆœ6eÚ+T`¼B^ûHT`"rÚ”i¯Pñ yí7"P‰ÈiS¦½B@Æ+äµßˆD@&"§M™ö ¯×~#˜ˆœ6eÚ+T`¼B^ûHT`"rÚ”i¯Pñ yí7"P‰ÈiS¦½B@Æ+äµßˆD@&"§M™ö ¯×~#˜ˆœ6eÚ+T`¼B^ûLøÄ»JíÛ·7Œ”~B`6m^“&MnÅ(FXC/¿ü²«k—;;áÉ?M¬\¹2½ù曑©a”ë$À[o½å žLþüù©E‹ž X;M 0À“¨ã ìÚi¤" ©3§|{‚€ Œ'°k§‘Š€ L¤Îœòí *0±ÀÞ±cGš0aB,¥Â“ýÙgŸQ:u(gΜT¼xqjݺ5íÚµ+<'B+—/_¦cÇŽ9-·mÛ–&Ožì<'ǘXfuáÂ…´}ûöXJ%<»C‡Ô©S'”?þ˜š5kFèû®»î¢ýû÷'¼ƒDhá›o¾¡[n¹….]º$­Ÿ;wŽ.^¼˜=%&“¼À@ƒ>|˜®^½JË—/§C‡9“³xñbÚ±c‡<Ÿ?žvîÜI.\pÐÅ=Òì„¢ÌüùóiÆ ćPN9ÜìÝ»—–.]*eÑß‘#Gbäã}£Í£GÒ‚ äj :uŠNž<)õÁ×–-[l–\Ñß_ý%ã@´3øýôÓO4zôh‚ |õÕWôÔSOѧŸ~J³fÍ> $åðuæÌ$Ô9}ú´“œ<( 8ýöÛotåÊÉ·8ÃmÛ¶øC;¾~Ö­[G«V­rêùæc§›={¶ƒ x·sŒÑöðáéI“&NµøðêTNª7n•⤿AƒqîöÕW_5… 6ÅŠ““ï”)SÖÄ&Ož<ÎIøG}döìÙc7tèP§mž@“*U*ÃÚpÜÞdÊ”ÉdÍšUê5lØÐð$KÙ^½z9mgϞݔ)SÆ€OP©R¥Ìûï¿/÷iÓ¦55kÖ”6Ó¤Ic2fÌh¦L™"yl>™råÊ6§ Êñ|^ø’‡¯¹sçJ/tI{æ™gLîܹåžwkgyöýZ´h‘a$ÜcÜGúôé¥>+ÉNèübÌèÿ¡‡’1²"ç¦M›:yè›…ZênÞ¼Yê¢NêÔ©M¾|ù êXâCB“"E “.]:Á¸eË–2à:è—ÌÓ‡~(ÕâË«í3¶k5<9釦u•â#0˜Ö²†5š,<÷éÓǰF7˜<,Ðý÷ß/; |ÐÔ¯_ß°ö7™3g6¬µ% “‰Éþå—_Ì’%KdÒÑÞÙ³g͸qãdq˜ Ö¨R¶yóæ†MÚÞ@`À×øñã kvÃ;†<Ϙ1Cúüã?L·nÝda!‚öÏþSòØo1÷Þ{¯Üûâ]B”kpÁÂ3î ,hXÛ úÇ‘ÿöÛoË3›“²ø‘÷·¿ýÍ?~ܰ©'Š£_¿~ÒßwÜa6nÜhج276ìC‰°+Ô…"¸0><ók¦N*÷VÐ¡Ø 0 á5ØøýÓU`üùÿg,„¢E‹:¹ï½÷žh:häÈ‘¢q?jÔ(Ñvlš6«ä~̘1²€°kÜvÛmÏØq°ÈØ 1¯½öšì˜dKÐÔÁæwÞ±ÅÌÊ•+eÁ@è 0*TpòpS¢D YÈ1<ÔªUË@hB‘Ý%Ø,rŠÙ]kÍš5Òú³tàÀáíûï¿wfÅŠ6ÛÔ®]Û<ýôÓ"À€ž={Êx0¦!C†H]P×®]e×t*ò „»R0I¯¾ý„º÷J`h2ðáÝÄ VðNLì ~þmÙçpðjÛJj×LjÞ$?O<ñÍ›7Ø\¡6mÚHmì8#Õ«WO"m#FŒ(Ö°aÈý ½²-/°õë×¢WØ*V¬(å±ÐØ\‘èÞ¦ÅNÆÁÉâëÒ¥‹D©ðõ×_;ol#¤Ì>=ûì³ræ ;±ÓN¹rå¢Ç{L´5v6I }Ÿ8qB¢R¶’%KJñù®Ȧª`³víZÚ´i“`Õ½{wb'_”úÂxÞf_Ovp6[]uØ|rºÇÎ’¼:xx“äZÓW3âÞÿÙ?vl)GŽÄ(Õ­[W²pˆŸôèÑCË–-+„XˆØ‘ء矞8êE}ûö%«±QÙ¿œ;”/_žn¿ýv #cá[ÍŽÅ÷â‹/Ê"ÿòË/‰jb[[x@Ø‹+ˆ£eJÆ=ÌLøUªTI„;ˆ£OÄ>ˆ7xƒY‰p1ú0÷ÐÈŸOI ñ…òø tH¸¦)¦ÆœxàÁ„yÂn4qâD ys¤NΈ`æAap”ÌÁ!ܼ††ûY¡«ÄÈ»Ù(ÙÍò€Hk}ãëœÛ6ØÖ7ˆúØ€MÇA8¹ ìm~ß2Ãáe+e}óàô#lËg>†Í&‰ùæÇõ 8ÍpÚŸåˆs§c Y¾ùFÆàß."6 훇à p D‰Å+úR§? º¦˜=ìƒyãOÐÊòO–g˜>øÄ…à+ሰ[`ˆ/Acû:çþíÀ™‡ùnŠoø‚þÎ?x€Ù†O J,^õåVZj·:r£ø-pŠáÔ‡Zt±ñ›þ?Ý}÷Ýb ù§ã¹téÒG_)y#¬æƒ>Ëlõïß?`;x·+õîÝ;X–¦'#’¼ÓŸŒ°Ö¡$T`’à$^¹r5 r¥,˜$¸.Ü̃;“ gÊ’'> ^·g:7"#G>Y¿Àç<óoÌÔüVÈmJ˜¶›â•r)FàÒ¥«ôÆËø03%½ÿ~u><ŒÛkA[KÞ©ˆLâ°×E:éúS­Z5ÂG)03g®á—á‡lWù=®Štß}eÔTOPÆ؃w:eÊ ~]%¥ì0S§^{¹2xiÍq·Ñß©Sçù§Ïy‡¹*Ÿo¿]Ç?‰¾¢†f¹€ ŒÛˆ‡èïÛo×Äxë÷Â…‹üÖuàßœ„hF³˜D÷f›žù$?>jÀrk ûöeæÙg(_¾³nu5ýäÌ™“†ßñžLÀdΜ™ ,Hùóç/ZOp ½{÷Ò¹sçhß¾}ñíód‚ÿ)lÓ¦M©Aƒñe@ë)®!0yòdš:uj‚úS&AðiåhC@&Úf\Ç› T`ŸVŽ6T`¢mÆu¼ B ÁN‚zw±òèÓO?¥nݺQ®\¹¥ç9sæÐüùóƒ¶Ý¢E ª^½:9s†¾øâ Z·n}zºçž{¨víÚ”)S&'}óæÍ4fÌÚ²e ]ºt‰Š)BO<ñÝyçN™¤vsúôiÂxÒ¤ICß}÷mÛ¶ºté’ÔØ ÈOÔì0X¤Ë—/§ ."‰Y³f•0;Bí©R¥’þlèiXèÇŽ£gŸ}–æÎKuêÔ¡N:QñâÅeÑ¿÷Þ{+W®ÁB>¤AƒQ÷îÝ2¿üò ½øâ‹täÈjÕªµlÙ’._¾,eB ®Ó€G7ˆ¬þôÓOÒ;„<1ç$ÜCtu‡9|ø0achûöíTºtiYG¥?ÿü“J”(!ù'Ož¡y-:uJÒrçÎ-I¨³sçN*V¬ÝrË-¶]½z•vìØ!Ú Ú;‹o> b’ åpˆµ{÷nY˜¥J•’:È?~ü¸,nhxð ¾²eˆ,¡+W®>v7¸xñ"4¦”»hñâÅ´téRjÛ¶--ZTÒð5`À£G¦B… IzÆ éË/¿¤¯¾úаc”)SFÒ«V­J:t{|ýç?ÿ¡Q£F Ïùòå£ýë_T¶lYúä“OÞ±KuìØQv0ìZ ‹ úÅX,®àŒçýû÷Ëý­·ÞJ2dz(%€rÀ¡@dñ—üuèÐ!Ù%Ñ®ï·ü³gÏÒ¦M›Ì;*ýßúõëÓý÷ß/iøŠ/¯N‰|ãªÀtîÜY‡ùM€ÿþ÷¿Ó¤I“d˜3f”E°zõj6l!nŽE êÛ·¯,R˜U=zô U«VQêÔ©eñ¿òÊ+ôð˼ñÆ´aÃJ‘"…,¦7R¿~ýbͯ¿þJ½zõ¢Š+Òï¿ÿ.¼@¸>þøcáš yhý¼ù曲#€—ÒÏ?ÿLÓ§OÇ#=òÈ#ôàƒÒË/¿,Ï¡¾°³<ôÐCŽ°Ø²Ø! ´þÂmóqµ‚…E€¦%ìlï¾û.íÚµKvVŒæðÆ"nݺµâÖ­[ sR³fMZ²d‰,V(†!C†È.¨ ÅܵkWÁJxýðò›B B¸üqaeÍš5³…˜k[ÿþý¥?´3bÄiÊiíÚµò %_^íøûêºIMÓ“€E7xð`9P‚–^°`ØóX¨X” 'N& ^½z´páB1uþûßÿÒÌ™3Åî‡fÆ„Á–ÇBÁDÂ6Æ$…"ø2ß~û­hnì`Ÿþ¹S|Ž7Nòá@‹[Ÿ~„Äî«U«fƒ^¡U±€J–,yC™téÒÉÂõõ¯öìÙ#»v*(‘#GÊnP¡BÙ‘Ñ4»?ÁüÃN 0ÁX¾ùæzýõ×e¼PJ–°ƒÌ˜1CaÑ¢E6‹ T˜Ÿ‰'Š‚A iÓ¦‰Y 3òûï¿§W_}UøÃŽ‚ö ¤°S_ÌÒ&L˜ õ0ÏPlP¾”P^}ÛJ¬{׋¾|ùò¢-1±X|X9rä­͉]æ„Áæ¼÷Þ{!øì³ÏDóá}6,,L4ÚC]˜Ф¡æ*øÀÛ JK7æw¹ò‰s 'SߣM›6¶(µk׎jÕªå<»Pß ÁGÁΊ ÌÙž={ÊX¡¥ãBÀ¤FÎëKg–,Yd‡¶õ±3 íJ•*‰0Ã<¶ ;ð·yóæÍ“§¦ùeË–‰Áô‚y|#v,BQBy Õv¸ò\5ÉÀ´¯É!°v<ò°èí¢‚`AKawƒˆIǤbò`ú`g‚¶Ä„<öØcâ+Àù…0ZÊ›7¯½ xÅDZÊž=;ÁÔ±äû~ò@0B;ÌNš5k£)ì<}ôÁ!®\¹²äAûú0¾ .,h &ž/­X±BvX˜kÀ¦ž/A!ùŽÊÊðôF;vä#Vl óƒ9„_²<âJ1¡Ï„òªýpå¹¾Ãи46œjléÐüvQ`ˇòïÿ[Ì”&MšÐرcÅž‡ý ³ÇRl/Ù!p`é·ß~#_ÃäYZ¿~½ÜúæÛ¼›½BàaÁDñ%hl˜^L,ßröf|+Ôñ'˜@ˆ}úHàg( ”oó™›!D¤`ÊÁ™ÆâÎV©REžÁ#BçèýGDºà·ùšeR˜¿PÆòl¯òàB@Ñ.sñôÓO;&1„yÀʯnݺŽBBTм ì. „ð* ¸ð•àßà ô˜X¯÷#< Œè ­/a`±à,ÇŽ|ø@Ð^˜ 8·pZá Ù e°Ø1¡FhxL¨5#Eèu`âù÷2 %"ø„FF¸æS| ?âÃnˆ6 ¾x M`ó}+VL|‘øöå_þ ÌWø+ÀÛ—àï@)ÁW´gV6¸B)YEhÓ“Wì®x½?6SÝòàšðßÃh4,IØEfÍš%¯xZ°ÒÐ14– 'Û0p(†lÙ@e` â“„EÅ‚ ø;ö¾í“põåÛ.îafYSË?¦r°y²çkþu“Wÿ¾âóœ:>•ܨ3eʉˆù†oo¶_L¢fþ‹ÁråÊmuâêKmD3’%IÚ$K–ˆë L2™I†;¨À¸ƒ³ö’LPI&©ÃpwpÖ^’ ÿ¢òÓ?7T¯_IEND®B`‚mysql++-3.2.5/doc/html/refman/inherit_graph_15.png000644 000765 000024 00000005326 13515046516 022452 0ustar00tangentstaff000000 000000 ‰PNG  IHDR«$öÊsRGB®Îé IDATxíZe¨•Mžkw'¶¢bw*&vc úÇîBó‡ÝÅÅB Ԣ؊݊ØÝÝ]óÍ3¸/ïIϹ×{½—oÎywßÝ}vvvfΉ`!²dˆ$ˆ2Z-Š€UV«ñ«¬ñf«¬ VY­ÄyKzìØ1š1c†÷k[·Ä*U«V¥xÌécYïß¿O6lð`²‹@l"päÈ‚Ñô&ËjÖ¯_oŠöiˆUZ·níw>Ëê—˾´Ä¬²ÆM°"„†€UÖÐp²\q«¬q`¬¡!0À ­û¿çZµj?~œæÍ›cÂ|úô‰àôçÊ•‹/^LÎ\ãǧ„ ÒØ±cw mÛ¶¥>ømž?>åÏŸßo[L¾|ýú5¥L™’’$IBË—/§óçÏÓœ9sbrÊ(ï•õêÕ«„TGLÒ÷ïßiÇŽ:E•*U¨GÎt§OŸ¦D‰Bƒq×®]T°`A*]º´Óß'NlбúÌ’% EFFR§NèëׯôùóçX?œÉBC9ȈXàãÇÕêÜ»wO-G‰%èׯ_téÒ% dÉ’„Í@{ªT©(C† Έ<ÐwéÒ¥ÓwgΜqúàÄ‚Eºpá.\˜’'ONÏŸ?§…`YçÌ™“/_¾¬¼àôéÓ³(‘ò—/_žE‘µmôèÑ\¦L-‹uà"Eа–kMçïÙ³§¶mÙ²Eë5kÖtÚÀ+?‚hûîÝ»µ}ÿþý>uQm›={6§M›–»víª<øjÒ¤ ·hÑBë¯^½ÒõAN#ï˜1c^ô4i’SwD)Y–Ê/Íâz°Xa®T©ÿøñƒ÷íÛÇ3fTÙOøæÍ›:„¸B,”Å ¨œõë×gÈ †‰XU凼ӦMãAƒ1°[‹Ùs¬û‡=ÃÀ×®]Ó¾3gÎÔýI“&¶5nܘEñµ-”¯V­Z±V­Œª²6oÞœ>|ÈÂC)ĺðÚµkµ~îÜ9^°`*ÜÓ§OUñÿà/^p›6m¸zõêüóçO§\¹rÜ¿Uò|ùòq:uøîÝ»|ãÆ kPY17æÄ8+V¬Ð¹·nÝÊFY;tè ŠpýúuÆfuîÜYeA}ذa,–§n”U~ÙãE‹é˜{÷îU>·²B^ŒyëÖ-m3ó^(«X[U (‘ù>zô¨n> rAyóÈAnذ¡ÊÅ‚rß¾}LÌýöí[=àbÍxÈ!*æ„ Ä…áÕ«W+¯[Yƒ­Å(+ä‘ÛŠaL ˜S§Ne±äjpä'{óàÁƒºç‡Òz(_1®¬ríª8]§Qß¼y3C)qú.\¨muëÖe¹Rµ<|øpN–,Ož<™¡Ø°ÄøHð¤ý7mÚ¤|ø7n\@e-^¼¸Ã‡‚-ºñFYµFæ„ÿ¹•¢Zµjj¡DneÅ!2–ÜŒ +åAYÅõ`ñy=>S¦L1ì,.‚n.¬3È(¬¿¡Ã‡óÎ;yúôéŠ,¯øÏúÅáAYa‚ö@Êl-FžS§Na%ܦ½zõÒ=W‹+Æ+W®dqõ°áv•)k´}VQD¥lÙ²éÓ$@ÆWAI®1jÔ¨mܸ‘Ä’’Lb•O6”^¾|Ib™Õ§ƒ¯·fÍWAÛ+W®¬O|‰•qÊÞïˆ~«¼b¥..àû†CXÏ’%KH\%sºÂ¿“›Eý`祀‹Rç² þ|Và Nr`ÕÿëØ±£¾†o 2þ7Êø£Hn }véÒEŸæK¡)úd¼1qB] ð3„8Bn3M¡Á~öîÝ›+È©*b‰èÐ_˳Š%I¹vIüBZºt©nH³fÍ´"eñïH\B„ °±©q†äš5EŸç£GœwH9={ÖC¹Ýír5y´9ÿP@À0bÄ’kaýP†¡=Øá2¼xâ@÷éÓG×…&#áîÿ7ÊÀ±@ðôÓß$)’#Ö€Å{\²P"oì‚abÆ«[#S7Ïè¬Á4ö+\ ¤¬-À’ÓùG»gÏýYoÖ¬Y>üÎLààÝw?.„B ù@ä„â‹Ê{`bÝ£Òõ}ð³.~ñG’:"ÉÉúkÒwÁ01>±wçè¬nœd¼‡ŒV=V•¿êÈ•E#GŽ$I¬GYp]r]ùôG´ŒÂã<ÿ7$d ÙhÃIEND®B`‚mysql++-3.2.5/doc/html/refman/inherit_graph_29.png000644 000765 000024 00000010535 13515046516 022455 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÊ1›06rsRGB®ÎéIDATxíœ%5Çûàpwçww‡Â wçp(Üww/œÂ] ww÷ÃÝÝóý]d˜y²»ìǾ—®š}3IÇ:é´¤³ý‚À$ $ Ô¤ÀP5sSf¢@¢€S 1JZ‰ P 1JDJ(‰‰QÒHh„óy¸âŠ+0îÓ“hжk`Î9ç̳„¿÷¯b&1LUVJOhY \|ñÅöÑGu_%£¬±ÆSB¢@«SàÉ'Ÿ,e”d£´ú̧ñõ£ôS%­NÄ(­>Ãi|=BÄ(=BÆTI«S Ï3ÊE]dÛn»í¿>Oë­·ž-»ì²žÍ6ÛÌ®¿þú†Û¾ë®»lÅW´Ã?<+súé§Û /lcŽ9¦M6ÙdF;ï¾ûn–ÿo½üñÇöÕW_u¹úÅ[Ì0|?yÚ¬¶ÚjvþùçÛwß}×Pýƒ ²«®ºª.nwû\·}žQ^{í5{øá‡k ±g²î¾ûnûâ‹/l†fðgê©§¶çŸÞV^ye;ûì³jd›m¶±¯¿þÚ–Xb ÇßtÓMmë­·v9æ˜cl•UV±ûî»Ïæ™gûøãª³«H7Þx£5ÖXöûï¿w© úùùçŸ{Ù;î¸Ã¾ù曌6Ã?¼o^0O#ðÓO?Ùo¿ýVµ»}®Û@-„âÉJû„Ùf›Íß¿ýöÛ  óö|ðÁ &òtþüúë¯á“O>ñïW^y%<òÈ#žþú믠 ô(~?þøa×]wèþK{ZlañÅïþÞ{ï…x á³Ï> £6Z8ì°Ã‚vÚpÏ=÷øž$¢øïsÏ=†zè°Ç{déŒýÞ{ïõ2”-åóŸA‹>›‹8/ŒçÍ7ß Ðƒz€Ÿþ9œqÆÞþ믿ž™ò´Ï0Ÿy€Ð| _¿~á–[nñwƵï¾ûú{üs衇zýÐ:s}óÍ7‡§Ÿ~ÚéÓ™Ó8ßà0’vAÌ>øàGk¶ÏÌ÷­K€>kãñ÷zvß}÷PvàhÅ‚Í2Ê£>ê‘(ö_1eXh¡…Â’K.™}Ï7ß|¾xçŸþ°è¢‹fM²xX§žzªOЀÂÈ#ì“0ñćHd6Æc„¡†ÊñÈH#äõäEjK˜nºé‚Ô˜0ì°Ãzû›l²‰ã]wÝuþ-5'Ë—‰î¼óNÏgA–}—1 xSM5UXn¹å¼ “³á†z=à 3Œ÷õˆ#Žð¼I'ÔÓ¡Ïn»í$M¸㎛m"Žô÷Ÿûï¿?<ñÄþÅ;xŒW;ugœq‚¤›çIå Ð6 AýÏ<óLˆó"‰çý ²,ÊCKÒ ? &€¤õïß?0^ê`HÚ!g®¹æòßZŒrÍ5×8pàz›Ì L¶À d›æ$“LŽ<òHÇãµ3ÜpÃeý>묳šîó³Ï>ëíK-ôö¤¢{ýõþT1J©^£Ž:ª}øá‡vüñÇ›ˆcZ4¦ÝÀ.½ôRÓîm/¿ü²­¿þú¦‰71ˆèmvíµ×š&ÌÖZk-;øàƒMD2íÂ^n¼ñÆ3íz®l´ÑF&©ašPCÕúôÓO½|Ù1—rÊ)¦ÈÎ;ï<n¸á† u¢‰&r5á7Þ0-Ûk¯½_n‡¼ª:«Ò—Zj)›yæ™í­·ÞrI“~m¨ ñ9ùä“Ý}Z¬Cz¾«•Œ;ŒÿCññÇÍïZh .±$b–¡Ò¡‘y¡ß*Sì7íà‰ÃË' a¨0¢[8~×ûe/¾ø¢«q—ú«6¼¸È#nÙo­>³ õ4ô£4Ú1©Z&ñlûí·Ÿ/ \‰úëöÛoïöÉôÓOïÒGªŽïDHl\òÊ:k0Ø Ø0 IÆv†.µÍë¹òÊ+MjŒ-¿üòž‡ŽMûqÑ¿³ /c=¶ÛU$sFBHLÚGÊàòÅ%\ìšÙgŸÝ¤‚Øå—_îº?öÌGk¯½¶!IØy©‡…ÆøÙõa²)¦˜ÂÚ/½ô’·“ ‰9;õÕW_u) CÀÔЗ´A:Û@JȨöqq^tÙe—¹(E£Í8ô‡Ì9c:íÚclšés3õ6„[Ôߺj£D7.b5œyLpgòOi¸# Ï¢«j7q¯”vjwá’Ûm·¹'‹2Ú!ƒÔ°6ŠœWƒ×K (ÃÅŽˆ^§h£P–zðì`E·dÔýky½Ð_‹ G„÷÷#nÍUW]Õë§hsÅ2Ø(rÄOw§ãZ7>¸º£‹Dú%Æñ|Æ.u,ˆ9¼\ÃÚ==ûiã7ö÷¼×+Î ¤&†èÔˆ{ÓhW›ƒÛ…Øs±Ì.t@RÎm¯˜‡—Û+Ú(R/;¹‡½`î´Ÿ[¼lÔ#&q75(ØyÑëÅûqÇ—•Ô¤šúw3}ÆÍM;ršdu5òRe£ ;@³ŒÒ¡pƒ;í´SîØ ?>g%0[¤» Æc±a4FÁJ=,6ܵ"£ÇÂ`òÿ-à…EÆY@#@_0Üã9O± c—¤tnÞ ó è“6 œµp†!ÒsÞó@»’j¥s“Ç«õN[Ð¥;´o¦ÏµúR•WÅ(=fÌ‹{ëj a¨YèÃEÀ€û³ PѰê©eÄ þFêlGO£€m±²2Œ5­ ÐçóŠ2œª4Ô*žµè†­ƒzÖÀ=ÎÓh¦ÏÝi§X¶W…s•ÓN;ÍÏ.8è*°¨ðó° ø2`‚ðœ5b(–•OimN¢ê Õ«Øæõ›ÂV°ÄœS^Ô¾¼JGßQ‹Ð¹±°CˆRСbgþ8å-~q(ºÕV[™ÂÂ= †ÐÔ*"§åNxNÀfp FÉu[̪ü&¬‡‡Ó}N˜‹ý*+L8Î . û‰§ý\ÌÂéQ+à‘úPÕðªqX›÷‚´É¥,‚=‰”Б=j(ëFK§µ £h§ô(XÜÏÚA=¢—f>1W³Ì2K§‰fæÂ Jb²8àÇcáºc¸T‰ (\ªÍxÙ°Mxpƒ³À‰PˆyYÕ §aÿ½ £ã$ ˜Ó©v^?kÆå³¢ š856‘ &âöâEXV40^Ìv^uÿ?‰ªC4‡çÊ-;n¼eXÕ'ˆs¤¡â€ÊLwI MySQL++ Reference Manual MySQL++: wnp_connection.h Source File
MySQL++  3.2.5
wnp_connection.h
Go to the documentation of this file.
1 
4 /***********************************************************************
5  Copyright (c) 2007-2008 by Educational Technology Resources, Inc.
6  Others may also hold copyrights on code in this file. See the
7  CREDITS.txt file in the top directory of the distribution for details.
8 
9  This file is part of MySQL++.
10 
11  MySQL++ is free software; you can redistribute it and/or modify it
12  under the terms of the GNU Lesser General Public License as published
13  by the Free Software Foundation; either version 2.1 of the License, or
14  (at your option) any later version.
15 
16  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
17  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
19  License for more details.
20 
21  You should have received a copy of the GNU Lesser General Public
22  License along with MySQL++; if not, write to the Free Software
23  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
24  USA
25 ***********************************************************************/
26 
27 #if !defined(MYSQLPP_WNP_CONNECTION_H)
28 #define MYSQLPP_WNP_CONNECTION_H
29 
30 #include "connection.h"
31 
32 namespace mysqlpp {
33 
38 
39 class MYSQLPP_EXPORT WindowsNamedPipeConnection : public Connection
40 {
41 public:
44  Connection()
45  {
46  }
47 
55  WindowsNamedPipeConnection(const char* db, const char* user = 0,
56  const char* password = 0) :
57  Connection()
58  {
59  connect(db, user, password);
60  }
61 
67  Connection(other)
68  {
69  }
70 
73 
82  bool connect(const char* db = 0, const char* user = 0,
83  const char* password = 0);
84 
92  static bool is_wnp(const char* server);
93 
94 private:
99  WindowsNamedPipeConnection(const char*, const char*, const char*,
100  const char*, unsigned int) { }
101 
104  bool connect(const char*, const char*, const char*, const char*,
105  unsigned int) { return false; }
106 };
107 
108 
109 } // end namespace mysqlpp
110 
111 #endif // !defined(MYSQLPP_WNP_CONNECTION_H)
112 
Declares the Connection class.
Manages the connection to the database server.
Definition: connection.h:59
WindowsNamedPipeConnection(const char *db, const char *user=0, const char *password=0)
Create object and connect to database server over Windows named pipes in one step.
Definition: wnp_connection.h:55
Specialization of Connection for Windows named pipes.
Definition: wnp_connection.h:39
WindowsNamedPipeConnection(const WindowsNamedPipeConnection &other)
Establish a new connection using the same parameters as an existing connection.
Definition: wnp_connection.h:66
WindowsNamedPipeConnection()
Create object without connecting it to the MySQL server.
Definition: wnp_connection.h:43
~WindowsNamedPipeConnection()
Destroy object.
Definition: wnp_connection.h:72
mysql++-3.2.5/doc/html/refman/splitbar.png000644 000765 000024 00000000472 13515046516 021137 0ustar00tangentstaff000000 000000 ‰PNG  IHDRM¸¿IDATxíÝ¡JCa‡ñç(˜ ëƒ%±Ø4 b±È˜Í¶3˜v^Á±˜…ãó–ŽELƒõ…¥•³ ,ÿb;íç{Ã/¼ðÞÀaYÕ¯åóøq:¼º¹›\òIIIIIIIIIIIIIIIIII-Òçl¹›«õ抢è_t/Ï»ã£ÑíYQVõðêäíã÷´×ùY¬Úÿµ§¦ivók¾_íåýÛ£I@$I@$I@$I@$I@$I@$I@$I@$I@$I@$I@$I@$I@$I@$I@$I@$I@$I@$ýC[Vì=ü[„fÆIEND®B`‚mysql++-3.2.5/doc/html/refman/field_8h_source.html000755 000765 000024 00000100551 13515046515 022542 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: field.h Source File
MySQL++  3.2.5
field.h
Go to the documentation of this file.
1 
4 /***********************************************************************
5  Copyright (c) 2007 by Educational Technology Resources, Inc.
6  Others may also hold copyrights on code in this file. See the
7  CREDITS.txt file in the top directory of the distribution for details.
8 
9  This file is part of MySQL++.
10 
11  MySQL++ is free software; you can redistribute it and/or modify it
12  under the terms of the GNU Lesser General Public License as published
13  by the Free Software Foundation; either version 2.1 of the License, or
14  (at your option) any later version.
15 
16  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
17  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
19  License for more details.
20 
21  You should have received a copy of the GNU Lesser General Public
22  License along with MySQL++; if not, write to the Free Software
23  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
24  USA
25 ***********************************************************************/
26 
27 #if !defined(MYSQLPP_FIELD_H)
28 #define MYSQLPP_FIELD_H
29 
30 #include "common.h"
31 #include "type_info.h"
32 
33 #include <vector>
34 
35 namespace mysqlpp {
36 
45 
46 class Field
47 {
48 public:
50  Field() :
51  length_(0),
52  max_length_(0),
53  flags_(0)
54  {
55  }
56 
58  Field(const MYSQL_FIELD* pf) :
59  name_(pf->name),
60  table_(pf->table),
61 #if MYSQL_VERSION_ID > 40000 // only in 4.0 +
62  db_(pf->db),
63 #endif
64  type_(pf->type, (pf->flags & UNSIGNED_FLAG) != 0,
65  (pf->flags & NOT_NULL_FLAG) == 0),
66  length_(pf->length),
67  max_length_(pf->max_length),
68  flags_(pf->flags)
69  {
70  }
71 
73  Field(const Field& other) :
74  name_(other.name_),
75  table_(other.table_),
76  db_(other.db_),
77  type_(other.type_),
78  length_(other.length_),
79  max_length_(other.max_length_),
80  flags_(other.flags_)
81  {
82  }
83 
85  bool auto_increment() const { return flags_ & AUTO_INCREMENT_FLAG; }
86 
88  bool binary_type() const { return flags_ & BINARY_FLAG; }
89 
91  bool blob_type() const { return flags_ & BLOB_FLAG; }
92 
94  const char* db() const { return db_.c_str(); }
95 
97  bool enumeration() const { return flags_ & ENUM_FLAG; }
98 
103  size_t length() const { return length_; }
104 
107  size_t max_length() const { return max_length_; }
108 
110  bool multiple_key() const { return flags_ & MULTIPLE_KEY_FLAG; }
111 
113  const char* name() const { return name_.c_str(); }
114 
115 #if defined(NO_DEFAULT_VALUE_FLAG)
116  bool no_default() const { return flags_ & NO_DEFAULT_VALUE_FLAG; }
118 #endif
119 
121  bool primary_key() const { return flags_ & PRI_KEY_FLAG; }
122 
124  bool set_type() const { return flags_ & SET_FLAG; }
125 
127  const char* table() const { return table_.c_str(); }
128 
130  bool timestamp() const { return flags_ & TIMESTAMP_FLAG; }
131 
133  const mysql_type_info& type() const { return type_; }
134 
136  bool unique_key() const { return flags_ & UNIQUE_KEY_FLAG; }
137 
139  bool zerofill() const { return flags_ & ZEROFILL_FLAG; }
140 
141 private:
142  std::string name_;
143  std::string table_;
144  std::string db_;
145  mysql_type_info type_;
146  size_t length_;
147  size_t max_length_;
148  unsigned int flags_;
149 };
150 
151 
153 typedef std::vector<Field> Fields;
154 
155 } // end namespace mysqlpp
156 
157 #endif // !defined(MYSQLPP_FIELD_H)
bool enumeration() const
Returns true if field is of an enumerated value type.
Definition: field.h:97
bool primary_key() const
Returns true if field is part of a primary key.
Definition: field.h:121
bool blob_type() const
Returns true if field is of some BLOB type.
Definition: field.h:91
Field()
Create empty object.
Definition: field.h:50
Class to hold information about a SQL field.
Definition: field.h:46
bool timestamp() const
Returns true if field's type is timestamp.
Definition: field.h:130
SQL field type information.
Definition: type_info.h:148
const mysql_type_info & type() const
Return information about the field's type.
Definition: field.h:133
const char * db() const
Return the name of the database the field comes from.
Definition: field.h:94
bool multiple_key() const
Returns true if field is part of a key.
Definition: field.h:110
Declares classes that provide an interface between the SQL and C++ type systems.
bool binary_type() const
Returns true if field is of some binary type.
Definition: field.h:88
std::vector< Field > Fields
The list-of-Fields type.
Definition: field.h:153
size_t max_length() const
Return the maximum number of bytes stored in this field in any of the rows in the result set we were ...
Definition: field.h:107
const char * table() const
Return the name of the table the field comes from.
Definition: field.h:127
Field(const Field &other)
Create object as a copy of another Field.
Definition: field.h:73
This file includes top-level definitions for use both internal to the library, and outside it....
bool auto_increment() const
Returns true if field auto-increments.
Definition: field.h:85
bool set_type() const
Returns true if field is of some 'set' type.
Definition: field.h:124
size_t length() const
Return the creation size of the field.
Definition: field.h:103
Field(const MYSQL_FIELD *pf)
Create object from C API field structure.
Definition: field.h:58
bool unique_key() const
Returns true if field is part of a unique key.
Definition: field.h:136
bool zerofill() const
Returns true if field has the zerofill attribute.
Definition: field.h:139
const char * name() const
Return the field's name.
Definition: field.h:113
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1mysql__type__info-members.html000755 000765 000024 00000020422 13515046515 027761 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::mysql_type_info Member List

This is the complete list of members for mysqlpp::mysql_type_info, including all inherited members.

base_type() constmysqlpp::mysql_type_infoinline
before(mysql_type_info &b)mysqlpp::mysql_type_infoinline
c_type() constmysqlpp::mysql_type_infoinline
escape_q() constmysqlpp::mysql_type_info
id() constmysqlpp::mysql_type_infoinline
mysql_type_info()mysqlpp::mysql_type_infoinline
mysql_type_info(enum_field_types t, bool _unsigned=false, bool _null=false)mysqlpp::mysql_type_infoinline
mysql_type_info(const mysql_type_info &t)mysqlpp::mysql_type_infoinline
mysql_type_info(const std::type_info &t)mysqlpp::mysql_type_infoinline
name() constmysqlpp::mysql_type_infoinline
operator=(const mysql_type_info &t)mysqlpp::mysql_type_infoinline
operator=(const std::type_info &t)mysqlpp::mysql_type_infoinline
quote_q() constmysqlpp::mysql_type_info
sql_name() constmysqlpp::mysql_type_infoinline
string_typemysqlpp::mysql_type_infostatic
mysql++-3.2.5/doc/html/refman/ssx/000755 000765 000024 00000000000 13515046515 017422 5ustar00tangentstaff000000 000000 mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1NamedPipeOption.html000755 000765 000024 00000021663 13515046515 025655 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::NamedPipeOption Class Reference
MySQL++  3.2.5
mysqlpp::NamedPipeOption Class Reference

Suggest use of named pipes. More...

#include <options.h>

Inheritance diagram for mysqlpp::NamedPipeOption:
Collaboration diagram for mysqlpp::NamedPipeOption:

Additional Inherited Members

- Public Types inherited from mysqlpp::Option
enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 
- Public Member Functions inherited from mysqlpp::Option
virtual ~Option ()
 Destroy object.
 
virtual Error set (DBDriver *dbd)=0
 Apply option.
 

Detailed Description

Suggest use of named pipes.


The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1SQLQueryParms.html000755 000765 000024 00000064355 13515046515 025317 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::SQLQueryParms Class Reference
MySQL++  3.2.5
mysqlpp::SQLQueryParms Class Reference

This class holds the parameter values for filling template queries. More...

#include <qparms.h>

Inheritance diagram for mysqlpp::SQLQueryParms:
Collaboration diagram for mysqlpp::SQLQueryParms:

Public Types

typedef const SQLTypeAdaptersta
 Abbreviation so some of the declarations below don't span many lines.
 

Public Member Functions

 SQLQueryParms ()
 Default constructor.
 
 SQLQueryParms (Query *p)
 Create object. More...
 
bool bound ()
 Returns true if we are bound to a query object. More...
 
void clear ()
 Clears the list.
 
size_t escape_string (std::string *ps, const char *original=0, size_t length=0) const
 Indirect access to Query::escape_string()
 
size_t escape_string (char *escaped, const char *original, size_t length) const
 Indirect access to Query::escape_string() More...
 
SQLTypeAdapteroperator [] (size_type n)
 Access element number n.
 
const SQLTypeAdapteroperator [] (size_type n) const
 Access element number n.
 
SQLTypeAdapteroperator [] (const char *str)
 Access the value of the element with a key of str.
 
const SQLTypeAdapteroperator [] (const char *str) const
 Access the value of the element with a key of str.
 
SQLQueryParmsoperator<< (const SQLTypeAdapter &str)
 Adds an element to the list.
 
SQLQueryParmsoperator+= (const SQLTypeAdapter &str)
 Adds an element to the list.
 
SQLQueryParms operator+ (const SQLQueryParms &other) const
 Build a composite of two parameter lists. More...
 
void set (sta a, sta b, sta c, sta d, sta e, sta f, sta g, sta h, sta i, sta j, sta k, sta l)
 Set the template query parameters. More...
 

Friends

class Query
 

Detailed Description

This class holds the parameter values for filling template queries.

Constructor & Destructor Documentation

◆ SQLQueryParms()

mysqlpp::SQLQueryParms::SQLQueryParms ( Query p)
inline

Create object.

Parameters
ppointer to the query object these parameters are tied to

Member Function Documentation

◆ bound()

bool mysqlpp::SQLQueryParms::bound ( )
inline

Returns true if we are bound to a query object.

Basically, this tells you which of the two ctors were called.

◆ escape_string()

size_t mysqlpp::SQLQueryParms::escape_string ( char *  escaped,
const char *  original,
size_t  length 
) const

Indirect access to Query::escape_string()

See also
escape_string(std::string*, const char*, size_t)
Query::escape_string(const char*, const char*, size_t)

◆ operator+()

SQLQueryParms mysqlpp::SQLQueryParms::operator+ ( const SQLQueryParms other) const

Build a composite of two parameter lists.

If this list is (a, b) and other is (c, d, e, f, g), then the returned list will be (a, b, e, f, g). That is, all of this list's parameters are in the returned list, plus any from the other list that are in positions beyond what exist in this list.

If the two lists are the same length or this list is longer than the other list, a copy of this list is returned.

◆ set()

void mysqlpp::SQLQueryParms::set ( sta  a,
sta  b,
sta  c,
sta  d,
sta  e,
sta  f,
sta  g,
sta  h,
sta  i,
sta  j,
sta  k,
sta  l 
)
inline

Set the template query parameters.

Sets parameter 0 to a, parameter 1 to b, etc. There are overloaded versions of this function that take anywhere from one to a dozen parameters.


The documentation for this class was generated from the following files:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1AutoFlag-members.html000755 000765 000024 00000010025 13515046515 025742 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::AutoFlag< T > Member List

This is the complete list of members for mysqlpp::AutoFlag< T >, including all inherited members.

AutoFlag(T &ref)mysqlpp::AutoFlag< T >inline
~AutoFlag()mysqlpp::AutoFlag< T >inline
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1ObjectNotInitialized__coll__graph.png000644 000765 000024 00000027561 13515046516 031210 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÒÅ!J¬asRGB®Îé/+IDATxí]¼µóàÑ{ïˆ MŠ€TAlôŽ ‚Tþ6Ä"E"¨`DDAé J”Þ«ôÞ«ô^ö?ßy¿,{ÇÝq÷nï½»·™ÏçnK’IòMf2™ÍnL¤I# ¥ ƒI­Ój4ÑhAÒ=A#`ZlQ³ÐhAÒ}@#`Qîœ4h`&GÁh»hÑ"ºxñ¢y£340´4|nÞ¼™Ð¡"€É_ý%òÕË$œ?~\í„sÚ°@"d6à¬úÈž={héÒ¥’ÆŠ xmß¾]âáþùóç –AØÐ…¸Üq\îùºàŽ`Ô¨QÃHœ8±ÁÏŒ¨¨(cĈk$L˜¯h‰%2öíÛgpç2Ò¥K'÷$H`”*UÊH™2¥É>}úôÆk¯½&×,”;£\;Vø#ð¬^½ºqîÜ9ƒG4ɧK—.…B®(×Ý»w7WÒ¤Iå~Ó¦M ”™ÏhݺµðO”qÀ€’I’$1*Uª$÷UÝ&Ožì±^¹sç6T~ÿüóÁCê•,Y2ƒŸÇIð|çwŒ"EŠ܉„¯ªw.ûE7n4vìØáWܘDZµj•´•¿i¿øâ ©kš4iË:uê¨0@ýЀM·nÝŒbÅŠIýq8á¸ûÅŠ+ä¼aÆ&.ÀÍ?)+3£råÊiüq9Gó—Xx VšþF4Þh  T&L˜ •B!y1СsæÌ)`N™2EÂXKåÊ•x ’ÉË5\é£>2¦N*qwíÚetîÜY€æ‡iÒ±ß|óMƒ5‘±mÛ6#kÖ¬Æ{ï½'q‚¡â¥3F•*UDXTc :T®Ç/å¢4hýŒ3 ÖlÆ÷ß/aèH /Å1XS¼dÆxöÙg 6S a ÷z)A‚pæÍ›×àÑÉ@qsàÁZ[ aðàÁŽúâzïÞ½’§?á$Hl!©R¥’ú ìÀ‚e‚R7nœœCP×-Zk×®5…Ç*H5kÖ4xä… ÁTŠ­cÇŽ‚ý† ¤?Ô®][xÅ+AbE4~³fÍŒ¹sçJ§ƒ@¬އu‰§á 누{žèÓO?à hü ½Š/.ÑÑI¡íÐpht~лï¾kdÈAÎÕ„ ½L™2[ñ[³ftŠ?þX¢BÔ9n :ÂòåË]ê…0%HJ³²‰ÛBjdE'Àˆ”/_>dðœ3gŽyï~'á$HP… 2x9™ñÓO?l֋€b¹ RêÔ© žOJ˜ÂÊ*HhEuÚ·o/—yòä1>øà$#’y²v7ô¼yóä>›Ä£é°À¤öÿþïÿDÑøhtðR¿o¾ù†ž{î9³HpZ(¤„TÝ·³eË&—›6m2oóH&çlòÉÑ*¨f¤=ó€ÍRš={6Á™ÀsHÁväÈ‘1ª›…Ó¡yD7Ãàt7ò\òJ‰W.š4i"žT#é„Q„ŠcäB8:<›'âásöÂó+bsPÒ@:uêDðâÔ­[WF›ž={^ó˜5kñ¤Vûì3áÆÞôÞ°@ÈJyí0)eíoÀnVäËk7lØ0ñ¼!üx4‘‰ÿ!Cäú?þ6ðô°Y`°pÉuïÞ½eŒ4˜ŸÀ–ÁV‡AñCÙû÷ï/aøÃ ^E81Þ6x~@îõ‚ ¯¼v˜ñè+iPG6g 8W@˜³Á¨^GðVeW÷}ÃiŽ„r_`¯(~¬ôÄÉ‚°çŸ^ê§œ ¥K—Æm!Os¤Ã‡«`ñ³B”kà ¾h ´-ÀMµ‡™ÈÇIØ{íTÙáIƒÇ ®e+ÁÀóó xg%xìÐx¹!8$x¤ *xl—`óŠizÛ)¦×th(tMqæDðÜA˜° mƒ9k8‘$/­%>šÂŒþ¼‚"< ã¥A{í¼ðÕ·5ŽB@ ’£š[W6T8Z¾ýv!¯2¾*l5_Fàüë´ûÏ»Ïæâ+(^çH¼ê:¾ÖÙ¬×úõ[iôè…Ô¥KEÊ”ÉûÒ3A˜œ`UF(i?¿–‚_°teGû)ekq•/òüNZ°y„KúðÃ[ ƒe4xïÇ 4gÎ6êÜy*¥I“œ† {ž—:…¶ƒÚ…)Ö¡Á¥ ÂÊ;ÞóÙ3ý"m~ŽW<Õü%%KŸ(Å ˆ'0v! ¥÷R2 [–{÷žâ%Eýe¡jTTB2¤%Õ«W2lË 3ø=Å%Ñö)§¤¸É3FQ˹%"¡èÁ”q©£çHùòe¦dÉ’È:±[·îÐË/ÿH_=?@öú…ÛôûË;iÇ´è·“pïÊZ<4#g¸íhABc-mÎ) wàÀY¼(òg~u=ò_ÍÎv~ÿušúÂv:¹ù2w¢g & ,Å£_u‰Í²ÄE^Ž¤Ò¥àUÊw}.°é§M[GåÕÛWâ¢M".ÏÃË/ДVÛèòÉtçÖÝ)7Î3Mqõ‰I/HÅ‹ç2_ SÞ¾}‡ß9È/ â×¢m}¦®üûË)šÝi7ݾv‡îܾ+D*V¦"ZñúX¬XN~ñïÞpëÖm~‡é<{m0-_¾'^c“ÊüŸÅ}Ò²A‡Ø”ãw<|U+uö$”$UÜ{ëbR¿@Ó8~D*P +›vžÂtùòujÚtýö›oóÚ‘ÿúùÛ4N…üIµ{uT ó£¬8ÃÑ€ ;^%JÈßpˆ~EÜS§ÆhSï­·ÆÓ€³š×먄p[öìéè‘GòàÒÑs­ä‹Ù(1›l £î~(Æ'9Pw-H žæIQQ‰ø¥Ä(zzüuÐn<_*îÞ_œwͲSøÙLÔlF1*Xß×âë‰î(ŒH™ 9ÃÑ€Np×ïë¼.aÖ8Úsww¶ŒUx@›;wzž½N9sFÌÃL O(iÚDôx÷<”©prZ7ê8]=Íkéî$à)Sô¤)mîd”(Ù½_¡Ó#·láÂÙÅ|C#'äIr¾|Yxí]+~+óÍ™s÷óañµÄ´^0ß¶Œ?EY‹¥¤Ê]ó°¹—PÌ=8²•rŽ£øé‰AH’$.+ äýuëVZ´¨(µuëQúüóÙüñÈÒ”!ƒs&Îþ Öæ±'é?„­=¬¥Ì–˜|&=­úæmç%BNy«°rô¢UŽsæláoäçjÜ]|åÊ ªT©?U¯^”¼ûáHk:§ž_>~“~kò/•j—J¶sýÀÉé­WØô‹¢Ô9£¿k茜½hÕÚÀ5js"„¥H‘„ºw¯K?ÿ¼‚·,¹ûÕUk:§ž/|˜RfNB%Zßý³Â"ÓÃ)œ$DRm=GR­ï娏qþ´V¨É^b8ïö‘iß‚³ôXçÜ>]àNBF ’­Ý·ï³¼1Ø~^ÌºÞØñ;  Ë>=D>ŽrUL¿+@í´ ùV‰¹©Y³rÔ·ï ÞE0¸ïXû‘]ØG)P7U|7wØ—36 ¨ÉO´»v­#Jqú‹XÍP²]6ñÒù #¢iAò³™3fLEï¾[“w—XHòbMM Z,`Üï´]»Ê¼µKFêÕkúý¢êp‡! )€ÇâÕ>}žåµ6Ó?ÿì ¥ŽßЂ` W©RjÖ,N=zL‘×+L®£ÇS´ Å a{õj ó¤Ñ£Ç µNЂƒVÅ<é•WžâmFæÐ™3—bÀ!r’,ø`m}" c¯ß'Ÿ|’± Ü)ƒSò¦o呵 Ű:uªÊ_;MÊ›_Åß·f±‚aï¼³èLx‡D¶8¼«aÀèΜ9Sö¥âùN— ´ Åýäɱ¯>ýúë*Ú´éP ¹„o2O+0Â`Ã/EØÛz‘„÷ VÁrÄfÌ‹/ægp®#÷;whݺuŒÝ&s×yžJo#NÄ¿{pêxžhØðk£^½/=FðÝ ££+­7.»aÖâã?–ͳÙü’{¼‹»Á[™š›/׫WÏhÖ¬™ìóË`”+WÎH Þô3x Lrƒ°ß,ï†hnàÌ[‹Ø÷¯¿þ27ÎÆÆËûöí“øð·DHAª¼¾}³f=H“'¯ ’Sø$Ç+ëF“W$ðž‘¢ÚµkÌ6Œ$Øhaýúõ²%oÂ-Þ‡9‡8аìám&Mš$A]»vå×S*ñû_Ç…OÑ¢E©_¿~ôÔSO™qxCkÊ›7¯böGýb_M„O·hQ×áýÎßt(!¯^É2Γ{{ELC8°92L0œçÊ•‹°PTT”˜o5kÖäjî•:tïÞ]6ºÆf×–]»vÉýqãÆñ‹“ åqywr¹ŽóŠQ="žJÚ¥Kmº~ý&}ùå\u+b'7_ñúŠ›iü ­¦80ú`©ZµªÒ‚ ¨lÙ²”9sf³îÙ³g7ϱÓûíÛÑßSŸÔ§O#š?ÿ_ÖÖÛmâ~lÒ¥KG+V”¹Oþüùy©dâ8€`°ÏgafÉ’…Þ~ûmV8=%ío¼A;vœåË——8%J” öÚùäNúã'6·F‡chûöc,L]x®õ”7xñL ¿‚ J<“R[zbûUÂÞ­ü¼°uJˆrž­ZÁ¯šÞ$ X4µ ‹ ôøV†O˜°ÊG¬¸ Òy´w-Höâé »\´n]‰ú÷ÿ]>å凞^‘ˆÃâÄ‹¬µ …¸ß¿¦|Ûaðà9!ÎÉöj ý‘Gÿ1»_L-H÷C(ÈðtéRPçεiÔ¨hÏžSAr >¹·W$‚çìlZb¡ý[¶¬(>÷ì95róÅ¡eç)UVÏ»HøN©C}! —ùBÇÆ°•+÷R£FßÐ?¶§jÕŠÚÈ9pV·¯ŽÚ–2p„N¡È Y ”/Ÿ4(E}4W:G¿—CVA'sÒÞ®Aƒå'mÚù ”Ñzô¨Ï‹0/ðú±Ev°Ó<Â-H±Ø9r¤£7Þ¨J_}5Nœ¸‹9ë¬B€¤P#ìÆ–ÄÎ}ûÎt Ñ—‘Œ€¤Xn½¤I£xžÔ@¾:´fÍþXÎ]g*´ … Y|kÕ*Îï,’uxxM;T„ Û&ž&ãV¨rÐ|Z±|Äké[·¥ñãW†,g¬`XñÕaºr:²>ÿ2@BÈX RÁõź@¬ôâ‹•iÀ€Yü‘ÄÀ¿‘í‹7Â.Ÿðü‘Çû¥Óá1C@ RÌp³%¶Ò 4Û~V&˦”™õ +&¡<ׂJtïÃ;MšdôÁu臖ðWGÛ:ÅkýŠ„/tB¦)4¸úÍõ…ÊÓÃçàíY‡§_‘ðz[#jA²ÎÀ™á[oxðŸvð×J7ÎÀ-…~E XºÔ‚K@ûʦL™¼Ô¸qêÝ{:C<8_uTò„TöµdÝEÂWÞ:Ìôêo{p š – U®ÜŸ¿:ú ½ùfµ ùi±ŠÀÒ°ÝÖåðáĬ;‰ž~:yh ô𜓪T]'NL 6 Ї‰ÃV°ÃÁóÏ?oG#†G‚°´ñAúЭvˆ0ü,hš4ièüùó~Æ]´°$UåP.¡Qyècd"0räHz÷ÝwâðÚÙÍ  éhAŠôÔå ´ …E3èBD:Z"½uùÃ-HaÑ º‘Ž@Ø{í"à±cÇÒÊ•+iÈ!!-òsÏ='»ÙyÊdèС¼m>OA!½wöìYJ™2¥ìž7jÔ(Ú¸q#}ýõ×!Í3ܘëɦÙ±c‡ìîm;¯læÍ›G§OŸ¦\¹rÝóÃÃɸ ì ;qâDÉÛV^½z5.ЧyÆ›é¿ÿþãolßæ‹d¤µk×öE_¹r…÷(Z/[$>øàƒöÁƒ)UªT”!C|¬¤À=l6 Z·n¯{»NØÚVö6Ý´i*THö<ÅÞ§ÈËJ.\¹S¤HA«V­â]û2›{¥b÷nhpl^Œ»Ï;G¥K—6÷BÅs³k×®QÒ¤I)a„ÂÇz|5jD~ø¡5K9Gy÷ïß/uPõÿË—/SöìÙ…ʶzõj¹~øá‡]x lË–-”3gN—:ùª°D™?.#e›6m\¤cçrð¾Å‹—Mœ‘)ÊzìØ1Ê“'lºŒô<òˆ´K¡"å‚AKš0aïû]¶wÞyÇÈ;·‘7o^IÇÐxíµ× &¹¯O?ýTø=öØcÆ“O>iòæ D‰ll–, •Á+³ ÖüƶmÛ$îßÿm¤OŸÞoÄ/S¦ŒÁB&aݺu3J•*%ç-Z´0Š)b° ¼Y°äß®]; ›6mš\W©RÅ CÜC‡I8ï›*á‹-òx6mZ£_¿~æþÇcðæÆ’7 ŸÁJÄ(P €Á;…·nÝ2.\h°¢‘|Q7Þ•ÜØ³g°aÓÔ`Á7xT“ü«W¯n°J˜¯ú(|ÉÀ ´p±rœ¦pëÞ½»„­X±Bòáå=‚%Ú‡ޱsçN ÷çïûï¿7xeƒ?QCgI¼2í¸3ÊÖóØ »jÕª4lØ0ba’%$M›6%^ô[Ë–-ùµ…̳§N*ÚK’úôé#ZËN E1r >œnÞ¼ImÛ¶%Ñ 0åNœðþ2 ŸÌ—`æŒ=Z~3fÌüñ­Ñb×®]²»w×®]% £[çÎÍÁý‘~ýõWB¬¿þýûFÀü‘¸3J=¸ÓÒÑ£GiܸqÄ‚$å/[¶¬ä»wï^ù>ÿüsþ¸ÿz饗¨C‡b6¢ì˜çôíÛWÊ„?oõØ}ü§Ÿ~’r› ø¤wïÞü]Š­´{÷n‚Å€•àÉmFÃh S••”ŒRS¦„ïÆlf¡=œÄ+AB§ëÔ©“˜RO<ñ„˜G¬! 뱪U«& T<¢j4Ø÷5kÖ³µ4­Y³†X»Ì6,œýì³ÏÄ<Ü·o½þúëbŽ Þ‹/¾èÒè[ÅŠ£æÍ›‹€"œè,Šzöì)¦áC=$|x’ \#oY=^ã&æB<Ò¹üXëKü *P—.]è“O>!ìú=xð`Ï 6Ðx·õ÷$_ðÿí·ßÄL09±øæpÅŠiΜ»[Ñܯ>’¹ÛøÖ­[—”I `N/X°ÀŒ Á‚Ê#´˜vÈ?)ÞÌ‘>抠%1GJ:zWq¼@Çã»cU«V-š4i5iÒD4äøñã%ŒM4!¾øâ ™‡°¹H?ÿü³9z¡£*‚àz#wïæI)©Î…k”Bë/5nÜØãI¥oß¾=onÖ_æ/¼ð‚ÜÆ\ĦŸñÇ&®œOŸ>]Ž­Zµ’£úƒCCÑýê£â©#æFGŽ‘ùŸº‡c¶lÙdR÷PwEÉ“'—y®ºŽ¤c¼‘ ,þÌ"Œ0÷àd¨_¿¾$…W &L8-Й0±W Ž ²"˜GÞ&•"åð° ž5|É’%¦)§ÒÄôeñÊ+¯H¹Ñ™Õ¢N˜¨ ˜ZŠàªÿöÛoEa„CÌcüx.'桊k-¯§ú¨xêˆÊŽEpzÀ$¶â FR'RñJi„zõê‰7®G„g3É’%“äxóó#xµ0zaîQ²dIé˜Canƒ9Äwß}ç5K!F¹3gΈ`ÂtªS§Ž¦øÀ¬dƒ˜@DGCþ˜·xºV÷fÍšEî?ŒjŒ¹sçÒ˜1cdT1b¿Âþ'an„yL> ò„™‡ææP(x€/ÊŠtŠ|Õ¦&” êh%ðÅüsòäɆQ¼ã…ÚSþzíXó•*U2³ãyÁšÏ¼æ ¿x‡Ì|O7¨Áï>™·Ù !Þ?xµàqc÷·Áó$ Ÿ={¶xâž(6ó\¼vìÆ–xðrÁ#¯âÂc5`À S^;¤E›  µÁnu ¿Ÿ×Žç’iÝ,<âyc§ˆðâÇ‚ ›¼;O ÔG&IÇ&¯Ô_"ò;f v¹›lÚüÌÄ V‚„0¸žÙ„4Ãbãnp~~eÀ=îN6tp÷zûªâÁÏ ‘Ô¥ydóÒ`‚ÁqÇ›6œ„“ Å+gkh¿fL5j ¢"Er°ëþýp*š. ‘v6DJ/˜:u¯$OÀ¯3ååCþ/p”úEz9µ³!BZpòä5Ä‹øÝŸD¼ t]„”Ú9ÅÔ‚m½bÅ^LzQJzëÖm^èº:Jí¬"jAŠ€ö†Y—8q"³¤žá×™×ú$îЂ÷mà³·nÝSîæÍÛf<„KSø  )|ÚÂcI-ÚN/^s ƒPMž¼V/ŸrA%n/´ Å-þ÷Í}Ê”µ.fJpúôEZ±Âûº*ž>ÆZbçårõêMÙ ÙjÖ)FÑæ~0«ðˆë£¤¸nùÏ»…_Ñö¼93„kúôõüŠøtPl! )¶ŽA>“&­‘‡°Þ’bî´pá6oÁú~," )Á$«óç¯òwð¶ó穼80ï0‡Ò÷hAŠû6ðX‚ßßx_³ æÝìÙ›ù£õúõ ÆâͰ_ý‹X„UV/^åoí•r)\á¹sgào dq¹µwÅŠåt¹§/b½ú;vñ*·ŠûQ‹¨cÇg‚â£ÛŽ€^ým;¤š¡#Ðs$G6»®´ÝhA²QÍÏ‘hArd³ëJÛ€$»Õü‰€$G6»®´ÝhA²QÍÏ‘hArd³ëJÛ€$»Õü‰€$G6»®´ÝhA²QÍÏ‘hArd³ëJÛ€$»Õü‰€$G6»®´ÝhA²QÍÏ‘hArd³ëJÛ€$»Õü‰€$G6»®´ÝhA²QÍÏ‘hArd³ëJÛ€$»Õü‰€$G6»®´ÝhA²QÍÏ‘hArd³ëJÛ€$»Õü‰€$G6»®´ÝhA²QÍÏ‘hArd³ëJÛ€$»Õü‰€$G6»®´ÝhA²QÍÏ‘hArd³ëJÛ€$»Õü‰€$G6»®´Ýø½õå¤I“è·ß~³;Í/6nÌLY²\¥ìÙ/JGµï¾ûŽÒ§Ooe»Ôï͘·nÝJ³fÍ¢²eËZèóXD {ö“’ÛÉèC,欳çÏŸ§ 6ÐW_}u ~ RfÉ’…zõêu}C#à6oÞL:uòXU=Gò‹¾© -Há¥ck<" É#,ú¦F 0´ †—Ž­ðˆ@¼¤¹sçzô®xD!È›ðfvîÜ™6lH/¼ðõèу֭[grÅ$õwÞ1¯ÝOþøã:t¨û퀮oß¾M.\0ÓŒ5JÊtìØ1óNàuBYÿ~tíÚ5ºråŠíÛo¿¥1cƘ×ÞN:$yü÷ßåâÅ‹tóæM9V_ýµ·¤.÷?ûì3ú믿ȟK¤ .A°0“Æ[Aø[¶l1+ªtŠÏ?ÿœ%JDmÚ´¡úõëÓñãÇéý÷ß§iÓ¦I¶p›nܸÑkÐY­ÖkDË–-£ Э[·$Ö¶mÛhõêÕôÅ_¸¤:qâ„Üw¹éå¹ÿþf(ìڵ˼övrçκzõ*†!Q `-Z$ç¨ëׯ{Kêr˜A¸ós‰ÄÚJÎ ÈýH†ÐŽ Mš4´sçNÊš5«<Ä‚–CcdÊ”‰,f§7n4W† (I’$’…º‡8QQQB‡`yóæ¥ ˜E9uêáW°`Aºté’„¥M›Ö ÇÉÙ³g)eʔҸ{÷î¥|ùò‘Šƒ†…ÆDþ  Ä‰ t”× &Mm޲®]»–¦NJ­Zµ¢víÚ™y6nܘ>üðC‚¯R¥ŠyX€'òPõ­[·®ä¡"‚ÿþýû%¯üùó‹ª0!¨ Â… K=P>ÔQ…åÈ‘CΓ'O.B³páBzê©§äž§?à·gÏʘ1#=ôÐC‚!:Ú þôéÓÒ^Ö´h_Ô'uêÔ’uyब¹rå¢Þ½{KÙ ¸ ´1„«F÷”ùC`Іɒ%³f#çV~—/_–ör”9sf§“ü  ù¢ÑîVVÀýÑN ™ 7ޱBçC¥Ðù¡­ÿþûo:wîœÔáå—_¦gžyFÌ!øç¡¹@³gϳlâĉ2´ÃLhí *ˆ–¿Ñ£GÓØ±c…wŠ)DŠ-J]ºt>ê¯iÓ¦Òé Q‘Â‰ŽŽN¾råJ1ÅJ”(AGçÈ“'Œ2h˜hï½÷žhö’%KÒ—_~I‹/–Ñf „»eË–*+9BèP·:ÐÒ¥K%”Ê믿.‚„H9sæ$h|(“~øAFO˜wI»wï.B:CàûöíK?ü°ðÀy ¬O<ñAQ.FÅŸþYÎË—//ÂðÍ7ßȃôT©RÉ}ëß?þHø! ¥X±bÔ¯_?)F9PÏž=iذaÖdR`¡W£F™2eèÓO?¥;vH]ùåzõÕWE¡b50€Àc¤Á5 &ïöíÛ íÁ}饗¤?X3³òžC† ±Ë9ò‚"€u³–•òíÖ­AAPvQHM;hšçž{N´ö£>JÓ§Oóã÷ß§'Ÿ|’pDg}ä‘GDÀT¥ lˆ턎mN‹'Êh<ŒNèô"tÌ1Þzë-鄊‡û†<Ë•+Gƒ ’†Tñ0ú! ÚvĈ”-[6jÖ¬áÂÊŒ8 tz4†Yäæÿþ  ÑÙ‘¯"ÍäÉ“E€Ð˜ßÿ½)  ¤I“JçF½Š)B}úô‘N±iÓ&)ß›o¾)ÊÊ #hΜ9fYq \ÐaU^¸§fÍžó`Î4cÆ á}äÈÁéž~úiªT©Ò=B¤Òc‡9‰<ÑkÖ¬‘ÑR…㈠¡k×®Ô¼ysk´éáÇ¥®hßöíÛKP^oe “?”âc=&# òš?¾(” BŠzCPAÇ—Q Š }I)toyr?¤‚„á.]ºt",èX0ÜB{©NV­Z5B'¶RË0ªV­*‚†-ƒ!£´3„ ®E‹"pˆ‘Ä¡ NŒ –}ûö™ÑÑÀ#E­ZµdRŽ@\ctQ‚„Q ¦Ô“–GFOhk« „ ‰º£ñÝís˜lPj$ù†¸¸¡…6†)…‘£9F/hbo„6€Vž9s¦ð¶Æ[²d‰´EõêÕå6êZ¹reG‰5¾û9%:3ðA0ü%´»©–/_NûÙä‚ùš/¢a”†ò8p åÎ[0Î ,óJ¦*”Ú{ÕªUbZB ÐÿòòôFs»(d¦ ˆN£‡@aw'tNe2¡ƒ@Ã?þøã¦ 6räH²1Ÿ)^¼¸˜°ƒ€UäËîE£+B9@j^s%(8G8ú~„¹:¸'Âü ¦Œš¯ ^… 2£Bèᑲ„Ñ C:l{˜ÈP&V‚0Ð ½Q£FhÞ¼y4xð`zöÙgÍhà Q6Eh3êŽø Gœ«Quö— H{õê%s\„š·Þ/=F`”‚ˆ¹ õ b¤VE!ƒ¢a^©u·‹B*HVmì«À¨,44F¤V8˜ =zTBÍ‚ù‚š›¨![ñF\oÚfEÊ›ÁS÷Ì™32_AŒ¾„Rñ)]º´˜ à‡¹…• a!ä]PNt0”#,v¿{PÇŽ Úa_¿~½h^ÌÇ`>:?„ ^ÃzõêI\oPbð"bdÅ*~Eð†i©ÚJ9†T_G•ÆW_a0Û!€0ùÑ0'SÞW:8qPn(«~Às~JŒÒ˜[¡¢cŒ3Fè(À„òZç\Š?´/Ì0«9 Ç L\Uw˜•è ª\à á.Áø(C+A!`B8LBÌyAp¢x#(QÌ3k×®-¦8„?˜ƒPÆh;(dŒVà‡gz(?F"("Ì­Šç-Ÿ@ï‡lD‚¶²š 8w¿¶Øÿ‰àhÁuŽ9:¦šü# Ž{ÏIðƒ™á®á­¼Ú¶m+Úž(k8šeÄ(òâ‹/Jà0Á$æ'æxˆ-æT;:¼"Ô^H˜T äƒò‚—rT@PQ~+aä€Y‚²?‚Ú«W/)F@Ô^¶ñãÇË O òü`>§Šµn*¤E'S£00¾è\à‡Ž 7¹*#pÀä“v…¿â‹£µ=UžŽpX`‚±¦ÃÃkX „AñÀ<ƒ—TycU~Н2‡1çÃO¦¨ ðs80”Ç aÀ|ѦPhvß/ö}üñÇ ¡d:u¨uëÖ.Y@»`â ­ê>ÇB~èä æŠ»û£Ý| ‚‚¤B­…ƒFD§„æ ” õ í¡aaï»wÅs;„)÷áöÆh V7`€úâïÌJ˜`DrŸ/ÁÔC˜¿s ÅøA‘`Dt¯;\âÈßw•Öß#p‡2ƒÀX uDçG› ãú–ÞLtkZoçÀ#)ÚÊÙJp[ôX6L~(HL!¬snæ±ÔµVpµ1.†Y¸µÑ žì}t xY<Âüí8ÎxÊ1à)ŸûÝ_8BîG0)­´bÅ yhЇ™ŠÐq!@ÞÂî.Dˆ‹ù†šô{Këé¾/ Ý;¢§ôþܳ:ž¬ñQW«‰Q¿`»ã¬øÁ‹guú¨ûÁÃFà®Ä¨ç®©`^ž_x íІžÏjâŠ0¹†’hÒ¤I\AçkacÚÙPÍB#R|™vaãµ )š¹F ÄhA 1Àš½3ЂäŒvÖµ 19àV„^“FÀ‰À«ìü$x¾ðŒG“FÀ©À¥Ž÷ÈàBw'¿½vî õµF@#`"°TÏ‘L,ô‰F æhAŠ9v:¥FÀD@ ’ …>ÑÄ-H1ÇN§Ô˜ü?Œ{1<wÊIEND®B`‚mysql++-3.2.5/doc/html/refman/namespacemembers_vars.html000755 000765 000024 00000006064 13515046515 024046 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Namespace Members
MySQL++  3.2.5
 
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1StoreQueryResult.html000755 000765 000024 00000114277 13515046515 026147 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::StoreQueryResult Class Reference
MySQL++  3.2.5
mysqlpp::StoreQueryResult Class Reference

StoreQueryResult set type for "store" queries. More...

#include <result.h>

Inheritance diagram for mysqlpp::StoreQueryResult:
Collaboration diagram for mysqlpp::StoreQueryResult:

Public Types

typedef std::vector< Rowlist_type
 type of vector base class
 

Public Member Functions

 StoreQueryResult ()
 Default constructor.
 
 StoreQueryResult (MYSQL_RES *result, DBDriver *dbd, bool te=true)
 Fully initialize object.
 
 StoreQueryResult (const StoreQueryResult &other)
 Initialize object as a copy of another StoreQueryResult object.
 
 ~StoreQueryResult ()
 Destroy result set.
 
list_type::size_type num_rows () const
 Returns the number of rows in this result set.
 
StoreQueryResultoperator= (const StoreQueryResult &rhs)
 Copy another StoreQueryResult object's data into this object.
 
 operator private_bool_type () const
 Test whether the query that created this result succeeded. More...
 
- Public Member Functions inherited from mysqlpp::ResultBase
virtual ~ResultBase ()
 Destroy object.
 
const Fieldfetch_field () const
 Returns the next field in this result set.
 
const Fieldfetch_field (Fields::size_type i) const
 Returns the given field in this result set.
 
const Fieldfield (unsigned int i) const
 Get the underlying Field structure given its index.
 
const Fieldsfields () const
 Get the underlying Fields structure.
 
const std::string & field_name (int i) const
 Get the name of the field at the given index.
 
const RefCountedPointer< FieldNames > & field_names () const
 Get the names of the fields within this result set.
 
int field_num (const std::string &) const
 Get the index of the named field. More...
 
const FieldTypes::value_type & field_type (int i) const
 Get the type of a particular field within this result set.
 
const RefCountedPointer< FieldTypes > & field_types () const
 Get a list of the types of the fields within this result set.
 
size_t num_fields () const
 Returns the number of fields in this result set.
 
const char * table () const
 Return the name of the table the result set comes from.
 
- Public Member Functions inherited from mysqlpp::OptionalExceptions
 OptionalExceptions (bool e=true)
 Default constructor. More...
 
virtual ~OptionalExceptions ()
 Destroy object.
 
void enable_exceptions () const
 Enable exceptions from the object.
 
void disable_exceptions () const
 Disable exceptions from the object.
 
bool throw_exceptions () const
 Returns true if exceptions are enabled.
 

Additional Inherited Members

- Protected Member Functions inherited from mysqlpp::ResultBase
 ResultBase ()
 Create empty object.
 
 ResultBase (MYSQL_RES *result, DBDriver *dbd, bool te=true)
 Create the object, fully initialized.
 
 ResultBase (const ResultBase &other)
 Create object as a copy of another ResultBase.
 
ResultBasecopy (const ResultBase &other)
 Copy another ResultBase object's contents into this one.
 
- Protected Member Functions inherited from mysqlpp::OptionalExceptions
void set_exceptions (bool e) const
 Sets the exception state to a particular value. More...
 
- Protected Attributes inherited from mysqlpp::ResultBase
DBDriverdriver_
 Access to DB driver; fully initted if nonzero.
 
Fields fields_
 list of fields in result
 
RefCountedPointer< FieldNamesnames_
 list of field names in result
 
RefCountedPointer< FieldTypestypes_
 list of field types in result
 
Fields::size_type current_field_
 Default field index used by fetch_field() More...
 

Detailed Description

StoreQueryResult set type for "store" queries.

This is the obvious C++ implementation of a class to hold results from a SQL query that returns rows: a specialization of std::vector holding Row objects in memory so you get random-access semantics. MySQL++ also supports UseQueryResult which is less friendly, but has better memory performance. See the user manual for more details on the distinction and the usage patterns required.

Member Function Documentation

◆ operator private_bool_type()

mysqlpp::StoreQueryResult::operator private_bool_type ( ) const
inline

Test whether the query that created this result succeeded.

If you test this object in bool context and it's false, it's a signal that the query this was created from failed in some way. Call Query::error() or Query::errnum() to find out what exactly happened.


The documentation for this class was generated from the following files:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1SetClientIpOption__inherit__graph.png000644 000765 000024 00000021000 13515046516 031176 0ustar00tangentstaff000000 000000 ‰PNG  IHDR·@CsRGB®Îé!ºIDATxí]˜Õ>Ë.Uzï*‚(†òQA@0" MP"$$Ò¤ÀÄF4ˆ€D , ˆ©K¯Ò¥waéìÂäþï0ûv^YvßÛÙ7ç|ß{3sûýïýÏ=÷Üy»†aÌ$AÀÝ,ŽRýoín ¤÷‚J' ‚‘Af  "È4Ø#8NÖ¬YCgÏžu\»¤AÉG víÚT°`Áä”Ò%(¯‘ã¤Q£F†ê§|ƒo¾ùÆqóM5h¬#W½K—.4iÒ¤”æ½”—J\¿~²eË–Jµû¯Vöþ1’.@@ˆà‚A–.úG@ˆà#Iá„.d预þ1’.@@ˆƒÜ­[7š1cF ”ä¿xÒ~ûÛßRþüù©dÉ’ô»ßý޾ûî;ÿIqóæMºví?8p€š4iBçÎ 8¸&"¤ÀÈ®ZµŠŽ9’%ù.¢W¯^ÒEEEÑ»ï¾K=zô cÇŽ‘:w¡O>ùÄwæ_b»víJíÛ·ç§{÷îÜš÷ïß(o8' "œúˆL‹-¢ž={R¿~ý¸= 4 ¾}û²f¿{÷®©á÷ïßÏñƒ -7nÜ ¬ §OŸ¦2eÊЬY³xuÑu¢êЋ¶mÛ– ÿ¿uëýüóÏ´zõj:uê”ÎW'óádY¨Ü´bÅŠ5jÔ02dÈÀ§Ñ9sæ4úôécDDDðsöìÙ;v'Nœ0Ò¥Kg|üñÇfÙ&L0"## EcìØ±Æc=f ½]£iÓ¦†Ò–œVM@C~”_¶lY£S§NWºticäÈ‘|6ÔªU‹ËLŸ>½‘%KcöìÙ×®];£|ùòFîܹͶvîÜ™ãðõúë¯ùòå3ŸsåÊe¼ùæ›üüòË/êÕCÅŒ×7Û·oç¶}úé§Æ¼yóø¾N:f¨}GY“êÕ«ŠÔœöèÑ£\Ô°aôéÐEŽÆ 642fÌÈ}>'NÔMð{UJŠërêÉrX¬PIj0 &ÊÞ½{ š¦ÂÚµkY;ª‰Î6|Ñ¢E©nݺ,,ЈÏ?ÿ<)°¶1bkmh½%K–ð ƒUáC‡eûZ)‘6×å኶>|˜W"Øój‚óŠ…¸}ûöÑøñãY»N™2…ðY°`¢¨qãÆÔ»wo¾ÇL!5ùø«GåÊ•IMD3^ßTªT‰Ã­æY‘"E¸þƒòJðÎ;ïÚݦMjÑ¢­_¿^gç+V(˜[“'Oæô¨ïСC4hÐ 3"!")¢‘"ž—Öo†¯¾ú*)-GJûñ&vsÍš5yÙ¯V­›?,¤Ã$‡ Óæûï¿'¥©)S¦L„Ƀ‰0mÚ4RZžM”©4:)ÍN˜L¸¾òÊ+T®\9¯cÛýñÇç´䉵{÷nN_±bEjÛ¶-©•…ÔŠB%J”`#_¤×âµlÙ’aÒ¨•HG%¸ÂäùQ¦–!C†PæÌ™©T©R\úéKæÎK9rä :p2äCÝ0É´¨Õ‹žyæ*T¨µjÕŠ‰¢ãÒúõ!ri¼'-Ê$ቬŸÕ2oÚ»¿ÿýï ñx|@€—^z‰Ã@€Â… ó†WhcØéǧ*Uª2{t‘T¼xqóÞóæÉ'Ÿ4ƒ”©Ã÷ ß*ˆ×qÖpÏ{xˆ<÷: &+6¾H£ÅÚx˜°§ñ%ºV2Së>åhÉ@¾p‘°!&{ ­×¼ys6`Y³få×¾aZ,]º”7„XbbbøÅ¿ 6ÞV±š!ÖpÜc#ª¦+ćM+6¥:Žxùª_¿>§…3ÀS°y¡á Õb­&¢¿:ðj4V-eìë"hË–- òбY@º "$s˜GТ˗/7]‰Ðö;vdÏ &ÃÓO?̬ͫ °ûaÃs‚ýloo¢÷˜X~ø!¯O=õ'Çäš>}:›K°¿áÑQ›rŽûúë¯iÀ€f±ýû÷§9sæð3¼DjÃÊ$ÆÊ…ö`?smêÔ©ôöÛoój¦3Ã4‚· dG?›5kÆQX AíIÓéÑx•à•BÜÆÙë…=…+Äïv?$Õk¤Ìc̘1fKÕžÀPîDóYmB e—›ÏÊÜaÏ ò)“ ‡×DiVöŒÀ;¢&´”OŠš†2Œ'žxÂô)7¤1zôhN¯‘"‘éYÇFiqŽƒ×H™/\7ÊWHçC‚îÝ»jõá´ø²zð¬&°lWԫ͆Ú|#šE{àBuæ`¨ÐPç¯ÈÆaU«VMä5R$ä>‹†¼Š†">çóÄXí¥ Ô¨8Ýk„¥Ðq’T"$µ˜üØáÇ'ʪlbCm¦ µM§ìlCy} eÊ 1‰`M"(o(­Êi­q ‚Ú€êlÀعs§I2kš@îQ¶2w uN`ºwu>MÔ¡ö"øØ N†áò|TA¹ÊÇï7»çÆ\gP+¾MtEÿñq›¸Ž°—•6f—¨Õ ’Ô¯P¡‚­;îVo '¹Ø SP7ÚÎÛ`àU.'§L,ac(?ÕLŠÎÊ«ª‰ÕØêÝrH+ǹÒkäð¥B@ˆÊƒqúôƒS¹®¯Þ±{øÉáw™1ã0Õ«W˜ ÈÖ]µ¾UëÄŽ:–x:)?8q"¸þÚ©Ж-[¨^æK|bì/¿Ä§ŽÜ,§\÷œ]ÒŠ{ÕÉögT´hnÚ´i°³Þ­“ÍrjŽïìÙ[Ô£tòäeÚ±ãDj6ÅõuËf9•¦À­[qê÷»ÔÏ$ õNS¤zvK*µDªB„TšË–íV/Ü=x9.îž:àÛ’àÍÏTj–k«"¤ÒÐGGǰY¤«¿téºú5Ü!ý(×# D1à¨îêÕ[êWiûÕiþõˆô飔y´5Z#U!B*̃E‹v(3(aÅqqñê·ËÛÔ_­¸—0BžB‚€!$0'¬$:z³í~àúõ;êÇ0û&–§ D Ì+9w.VeoÑÃÐwQQéÔ¦9Æ3XžC€€! [«˜?EFÚÿ¾:>þ¾:eÞ­^Õ~ð¹¬ùä>¸‚‹o¢ÒgÎÜœ`“ì™{„¥KwyËs"`kñG^T?¸?•h£lM‘Ný… 1¬˜„âÞ±/Ý…¢ó¡®cÞ¼îQœ$ë¿>£½Gúe0Ö¬9 þ¤ÌMÊ•+K¨›èÚú„!ú2e аaþr®v̘o©F’êSJñ56ö–!"Á}"ߥ7mZ9Á3&N\¥~c\Jýu½º‰â$ tÈ!tXKMF@ˆààÁ‘¦…!Bè°–šŒ€ÁÁƒ#M B„Ða-59!‚ƒGš:„¡ÃZjr0BŽ4-tB‡µÔä`„iZè"„k©ÉÁ<8Ò´Ð! DÖR“ƒ"8xp¤i¡C@ˆ:¬¥&# DpðàHÓB‡€!tXKMF@ˆààÁ‘¦…!Bè°–šŒ€ÁÁƒ#M B„Ða-59!‚ƒGš:„¡ÃZjr0BŽ4-tB‡µÔä`„iZè"„k©ÉÁ<8Ò´Ð! DÖR“ƒ"8xp¤i¡C@ˆ:¬¥&# DpðàHÓB‡€!tXKMF ÂPâàöùmZ×®]iòäÉ~Ó95AÆŒÅÔÙŒ¥øø«Nm¢ßvíÚµ‹*V¬è7ƒŒ ‹U¹re8p ƒqϦ:uŠþüç?‡Eç‚  Ö­[‡Å€¤¥NìÛ·/-5×g[eà‰t B·Œ´ôÓ'BŸðH¤["¸e¤¥Ÿ>p%öîÝK-[¶¤¢E‹RÙ²e©wïÞ´jÕ*¨›7oÒµk×Ìgϸk{õêåüHϨž—çž{ŽræÌIÏ<ó ½þúëtîܹ€Ë³¶÷ÀÔ¤I“$帢0Nè:"àØ¤U«VtèÐ!êÑ£õéÓ‡vìØAõë×§eË–ñPãl¢}ûö^‡ýÎ;tëÖ-¯ñFœ={–j×®M&L š5kÒ|@7¦™3g2!vïÞPQÖöÞ»w®_¿N÷ïß(¯$ú¨¥eéÒ¥‹Ñ¨Q£€»°páB Šf5yŒ"EŠ:u2.^¼h¼øâ‹FÆ å'7Ô¤7Ž=Êi•¶5Μ9c¨‰ÆéxéÒ%CMhN·iÓ&cçÎF||<§×_J»Û¶mãð7n·oßæ¨îÝ»éÓ§7¶lÙ¢“òmË–-›Ù¯«W¯W®\1îÞ½k¬]»ÖøñÇÍôžíEÝh£µ 'Nœ0/^llݺÕP1ó"\­&ÆåË— µ"'Ož4ã¹Q++c©ÔIîä4cÉÉ­ ¤mI%Â_|Áƒ§´p‚â÷ìÙcàóæ›oœ¦zõêÆöíÛù^Spø´iÓ µŠÏ>û,çÇ}ùòåÒ¥K‘‘‘œÄÔnÈ!fyyóæå´¨“:cÆŒ†2ƒ´C?¨B. “´]»vœ/wîÜF† 8¼sçΜԳ½6làxMÞaÆéÒ¥3ýªU«“™‹+Æ„G;tÛ'Nœ¨›à÷*Dð Qè$•˜XåÊ•ãÉ‚‰ L ¤€fÕÒ¶m[£E‹ü¨‰€<óæÍ3”MŸˆXaÆŒÓûÝwßå²9ÂZqãÇgþþûïsÜo¼a{˜CY²dáByèË/¿dP^xáÖ¸ÐÈvaÚܰÞ{Î)l½÷Þ{4nÜ8>¸Ã$¬P¡ió åãìB¹1™ Ê…Ëç .\ uëÖQµjÕÌ"a½õÖ[¤"Þpi䊔Çç³Ï>c­Òê´ÿ~R'ÛT¦L™$U†ôx'J$x¸vE¤ KîØ±#á“ÁžF$¸ÈŠ\|¥ô4‚€!•*>^ÞMå!àê…©< “'¯¦«W“ÿJw*w#ÍW{øâ=}âiedòåë ~ñݼØoÒJ¿ÒZ;ÓüøRoN’zå8­áÎí=}ú&½ÿþvõb^vuÈ•vÿ@îàŽNÃ’öÿÀÎ|8ypFZÌÍ;räÕ©Ó˜ HÓ“ÉÉPûm›ìüB¼³fmâÂ###Ô+ÛÛ‚W‘”ì!‚_ˆ‚“ &æ=Ë…«7<Ôï”7§")5 „Á”ò‰æÎÝJéÓGrÁêýÚ³ç;öðw)_£”è !‚/t‚§~?Osæl¡¸¸{f QQéÔ»H[Íg¹ -B„Ðâ͵­^}@ÜLP3ÖÄ„îsé± BP$È}Ü7æÒc„6 Hû"¸oÌ¥Ç6l@‘ ÷! DpߘKm"Ø€"AîC@ˆà¾1—Û D°E‚܇€Á}c.=¶A@ˆ`й!‚ûÆ\zlƒ€Á rB÷¹ôØ!‚ (ä>„îsé± BP$È}Ü7æÒc„6 Hû"¸oÌ¥Ç6l@‘ ÷! DpߘKm"Ø€"AîC@ˆà¾1—Û D°E‚܇€Á}c.=¶A@ˆ`й!‚ûÆ\zlƒ€Á rB÷¹ôØ!‚ (ä>ýÇœ 6И1c܇D*õøÈ‘êßFÝQŸÛ©ÔwU›;wnš0a‚g§Ç%"¬Y³èøÕ­+ÿÊÈ-yNÛœL½zõòUmÐãkyЛñèœ8q‚vïÞýè˜súôé„A«Zµ*uëÖMùýsÑ|@ÿú׿*áÿø9ÒL»víZzë­·èâŋԶm[vYÇÇÇSÿþýé»ï¾ãtÖ¾aƒ,ÉÏvìÝ»—<P±7nd…4iÒ„:wîLðËúé§ôÎ;ïÚˆ´lÙ’¾ÿþ{NŠ>ݹs'lAM“ìáîÝ»tùòeÊ—/?ž 9K”(ÁÚï§Ÿ~"Ä—,Y’¢¢¢èܹs¬}²gÏnvêÂ… –5kVÓÚe@SiA¹ÐÅŠ£Œ3Ò•+W¨`Á‚:š¯ÐP†a°¶Á*‘3gNNHM„;~ü8]¿~J—.mjsäC[¡Ý¡Ù¬ÏÈ;þ|ž°íÚµ3댈ˆ ¥K—RŸ>}÷`€~¢ý=ö‡]½z•0‘1à˜øè?T®\9úç?ÿi¶áå—_f’Mš4‰êׯÏyõêÈ!ƒ~¤{÷îѱcÇø |###9NGþüùÙ_ޱ)UªcéÙŽ¼yóšåáÆ~(÷ïÿ;¯ZãÆ3ÇæÅ_¤J•*ч~Hß~û-5mÚ”~þùgî;ÆìÈ‘#ŒEŽ9¸.`A»߸qcúÍo~ÃaøÂªyôèQ¼†èÄW¿8A2¿’M„C‡QÏž=©J•*´}ûvn€Á mÙ²…Ÿõ«_1P#FŒ`BH&s›6mX3"ÏÀI “æÂŽ;hРA{ö,Õ«WA °4&lOLv¬ü1kØ¯È »²@œZÞ›<ñÄÔ A®é *ÄG§ïر#O"Ô‡x½Šá¹{÷î&<ŸA.˜3ÐÊPlœ»víÊ“e¯X±‚'0€ ‡U ÂM›6éªÍ+4ᣠ°€bÁFæ&γÏ>Ëa¥Ð- s›z˜Nš|:ÞÛÕ~¨ }²(Äkâ€2AzÌ ÄÃäñ% k5xÌã“-[6^­u¾Gí—ÎïíšlÓH Ѷ*&Dk6h+Lx àªU«ØûIˆ%°`a5€ŒÕqZûcÙ×Bx“Â… 'ˆÂ>A—­ñq8ÔéO ù¡í`¾á™€—·°ò€¤°}A˜wZ0uÿu®Øç@6oÞL5â{ýë"4¦€¬–ØŸh¡-µ`3¯«G äó†œ(š^­.õ¼é´@iÎë8è8}EÙØ?aßfÌ+ë=j¿¬eÚÝ?¤°]lÂìÜ.;Ì#æ L˜ L€öíÛóÒ {D€i¡;ŽÉ¨Åæ¥)Å`êh1¬(ÖÉo-&œ/Rérî=˜ Z0@­ZµâG”‰‰Í "ëV»—µó¦–§`EĦZïC<ãQäü£YÌ»7ÞxÃ$⤵ &£+~Ø[Aãôñì§@†Úµk›QÖr´WÏÖ(„ÁæZ  V9k¾Gí—.ÓÛ5ňà­ÏpøÂ±\N™2…'‰pغ}ô{ °<ó‚t01°’À&‡§›&hCo‚Í2luh‘É“'óC›gȃzQÌ2læ±C0ÉaúhÂúŒI€=6ÃXÞasÃfƾdÆfýByXíP7Ú‹ê‚`ÈÉçØœ ´g ƒuãm—aÖvØ¥ñ†V˜»xi g0ÿà!ƒ«û"Ûj²Î›7'1ðÂ&Þ¤Ñm€2ŽVÁXÀl†ˆC>H½zõø̯3ü5R3Z›Ø^xÁÌï <p!b°àÑùË_þÂPð8 ®yóæ¬éà‘°Ú›ºl†¥˜&ð¶T¨Pà·‡`¢£h ˜i:uâpxq íàÙÀ [Ÿá6lÁß9& Ú1|øp^ àÝÀd:t(ÇcRb¡M:Ô‚bI‹þÞ¼y“f̘A8£€€l؈?ýôÓüŒ/Ý7}E½0¿à}Bß X=Q¯ÕFçˆ_¾Wç÷l’è8Ü{ÃqX±Bc3 Gub%@»1nZ È^{í56§0–h¯®Vø2Bî5 X¥'á„€!œFSúòÈ:ÉNxÝ,×+"„úÅA»>%"üß¾N6í ‘0A - ·¶W·­:ÀHøâ{Zè‘´QHYÆÉ!e•ÒÒ(B„4:pÒì”E@ˆ²xJii!B8ivÊ"ð‡ŸáQÝIEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1OptionalExceptions__inherit__graph.png000644 000765 000024 00000116226 13515046516 031470 0ustar00tangentstaff000000 000000 ‰PNG  IHDR‰D®ºsRGB®Îé@IDATxì˜TÕûÇݤˆ J 6ülQQ0»EüÙ ¶ØÝ-X¨` ‚H# Ò!(Ýuÿïç]Ïpwvfw6fÙxßç™{Ï9÷Ä÷ÎìýÎ[§H âL CÀ0 CÀ0 ] ,ºëØŽ CÀ0 CÀ0 Œ$Ú'Á0 CÀ0 C FÓ@b†€!`†€!`Fí3`†€!`†€!âiJ¬À0 CÀ(ä<ñÄnÔ¨Q…[~~Cà±Çsµk×αi›&1Ç ´Ž CÀ0 ¿ýö›ãebäÖ®]ë>úè#·fÍš®isNëÌ0 C   pøá‡»”åØ: 03fÌptPޝÐ4‰9©uh†€!`†@þGÀHbþ¿‡¶CÀ0 CÀ0r#‰9©uh†€!`†@þGÀHbþ¿‡¶CÀ0 CÀ0r \ÉqH­CCÀ0 C w¸ôÒKÝñÇïºté’”ç̙㮽öÚ¸}·jÕÊÝ{ï½Zÿ /¸>øÀýñÇn=öpGq„{ðÁÝ~ûí§õÏ>û¬ûúë¯SõEP×®]]ýúõ#åDêÞ~ûínøðánþüùšÚåÜsÏu7Ýt“+UªT¤]^:ظq£Û±c‡«P¡‚›5k–»þúëÝ›o¾éªV­š—¦™ð\L“˜0TÖÐ0 CÀÈ›üüóÏþJÚäJ—.­ÇkèСnÅŠ‘²êÕ«ëØ_|±»êª«\ݺu9û:uêä˜[ëÖ­ÝÒ¥KµÍ”)SÜèÑ£]£Fôy|÷Ýw]Æ ÝÂ… µÍßÿíZ´háÞÿ}wæ™gºÇ\ÛBDÏ?ÿü¤­3»_rÉ%î‚ .Ðn ‹ëׯw;wîÌn·»ïúÀÄ0 CÀ0R!pÖYggŸ}vª²ôN„ÜëÖ­ $_]ð믿›7oÖæK–, ~ùå—`ÕªUz¾iÓ¦`îܹ‘z iKÙÖ­[#m~øá‡@4q -óGò7jÛåË—BÔ´ê€D[§ÇB°´Ïþù'øñÇÞ½ˆv.X½zµ^?bĈ`æÌ™¾Jß·mÛ0G/Ñç¾¼dÉ’Aß¾}ý©¾6,69LU>iÒ¤ X±bÁ-·Ü¢å¢õ „¦j3}útm#$P˯¼òÊ@´…hãRµëÓ§Ž1nܸH9˜|õÕWÁ„ RáE¹hö‚•+WBTƒE‹E®ù÷߃eË–[¶l ÆŒLž<9ؾ}{¤ž°â^Λ7/U9'´e¬Ùß7p>ýôÓƒöíÛ‹/Ö6BŒSõ›•¹¦ùdP®\¹€öôsÊ)§DˆÏ]wÝ¥e\Oÿ­=zh?a’ÈŽ<òHí³D‰AÙ²eƒO>ùDÛuëÖ-|zA•*U"síÙ³gd.—]vY°÷Þ{Ç=÷±H¢hƒ}öÙ'Bš|[Þ!ÊcÇŽÕ¢X$2'&Ú@LÚÚ†õÓ.Zh÷ùçŸ+ £îž{îQ­j¢ÐìU®\9ÿ:^»ví^^Ž;î¸à„NP-$×É–€Z±‚¢ñC{)A{·aÆà½÷ÞSB$Ö¨QC5`´sm°çž{ª¦’H?bÆ Äªä†sˆ™¼ÿþûõ8Ö¹¯ˆE9æ˜àØcõMâ¾CþjÕª¥Ú?4€²3Î8CçÅ:Ñð1§þýûÇíƒ p¡Ýo¼¡ífÏžˆï_€$BxÑø¡Ñe~bÂÖ:H"ׂ5š@¯¡“} þ—J ÅŸPµ‰0ú_H½" )¥\Ìɘ2ZßóÎ;/èØ±£¶ “ÄìÌU;ËàO²H¢ù$ʧÄÄ0 CÀÈ.øÊ‰Iw¾ØÿýhŸ4hC´kŽÀ1[ê´èÄ\ìD+å~úé''DÃá÷W³fM÷Úk¯9!NN´\Ž@úòæD#èn»í6}'ÈãÀŒ;å+®¸BE¸æŽ;îp¢]Ó@.hܸ±2ã„€:!™®^½zê7Hþ´÷}îËc½ã{'\&VUš21ýºsÎ9G_ÌUˆµ·°ÖD}ø>ûì3 Œ¹ð µ|%…l:1ÕGÆ-©ú6â3)Ä߀ã…u÷êÕˉ¶Ð ±Ôb!šîÓO?uBµ/Ús¬2dˆ¶4hWÅ_´¾î‘Gq>ú¨Ó¼ï:Í{v皦Ã\*0’˜K@Û0†€!`¼Á*!:Ø‘^4³˜W}3'ÁzìSЄëÐ’Mœ81’ž&rQЖ¢Mûî»ïR]M¤²˜°˜˜S•§wÒ²eK'A7N‚zR5#µŽ˜¨]Ó¦M˜÷U;Ö^Ž?>ÕZÒ»'ñê šq´›âCª/´‡÷ÝwŸj_!ÕÔy!R[|9•`ú²è÷ìÎ5º¿Ü:7’˜[HÛ8†€!`†À`rÆ,úý÷ßGR¦@LÐH‘GâÓ¬Y3Õ.JŠC£(^r}ìžþy‡i4žH`Œæé#WáÓO?­ZGˆ‘"µ &è;ï¼SM« £u~ø¡æ&Ôù}îËc½“þ¦yóæîòË/w PMfuÌî{íµ—#Ça¢òÔSOé¼ÄWÓ9RûßC5ƒ‘ø:æÌ$ ÇIP‰¦Õ‘hãLk>§žzªjï¾ûnMó)e¬o¾ùF›£õN5KCÔ1Y£í•½_pæ–dÍ5TÈAx<Ê‹/®ÚÑC9DçŒæRY”<áχ9ÝKôµ¾Ü¿3o´¬0‰$Ví 9ñ¥ìׯŸ6ƒ@‚‰ºY þŒ¼ë®»Nëýz}ŸŒéÇÆË·áùKÐŒ#)8&iú„`ƒ9òÀ(®¸ àɺ!ÛÈÉ'Ÿ¬šY FÒsÿ';sõ}ìŽ÷"ÌìŽmLCÀ0 C ¯"@`DbàÀI™"¾mø B|Є…íæL|Ù¹#,øÛñÂßâˆ3LêhËn$? &êp€ L‰xV&±šÀ:ìç+;Çø8¢ù„Èfg·p‚(Bt%eäèyZUÈoØÏ0º]fÏ%ç¥#ú ûxú~ðM„øF‰«Ä1úÞq]²æ:cÆ ÅGò$*õsÌæû@Û–/›Ú冀!`†@fÀÌ̶t=L³Ñ‚ð裎.Ös4f¼|yÅH Úºd Ä)šæ6¢!`†@>D`íÚͪ%>|–ÃYnöì¿•BÏ>»•;ê¨Ô|lšÂ|xsmÊ1°À•˜°X¡!`†@aG`ëÖnܸ¹RøË/³d¿å….œkܸ¦;úèîÈ#`“ºjR.ìXÙú $$Èûj‹2 CÀÈ 3g.B8ÓýôÓL7zôŸnãÆ­®nݽ•sLwÄõ]¥Je³Òµ]cä7Œ$æ·;fó5 CÀÈ9V­Úè~þR8Cßÿþ{«\¹œšŽ=¶¡ãU³fåœÐz2ò–'ÿÜ+›©!`†@vع3p&ÌWR8lØ 7iÒBW´h@îÑã(%…M›ÖJz"íì®Ã®7r37çÊ6†!`†ÀnC`åÊ nذé«¶pÕª ®V­*®]»]Û¶ª)¹|ùR»m~6°!G0ss½16-CÀ0 l 0uê÷ÝwÈkšj ‹/ª;šwÜÁîÿþï W¿þ>ÙèÝ.5 F Åm¶E†€!PÀزe»æ+:tªûþû©nÉ’Õ®Zµ=ÜñÇC v”-[²€£`Ë3róIÌQ8­3CÀ0 \C`ÅŠu¢)„NÓˆäM›¶¹&Mj¹óÎkãÚ·o${"×ʵ¹Ø@†@ADÀ| â]µ5†€!P@˜3g¹ûöÛ)úš8qîpBkH!¯ªU+Е۲ \GÀÌ͹¹ h†€!)ÆŸï† I!†Ä=÷,ï:thäN<±‰°ž‰!`ä8FsRëÐ0 C [lÛ¶C÷Dþæ›)nèÐ?{$ש³—’ÂNhì;¬®¥¨ÉÂv±!擘LÖÈ0 C ©àOHB믾š¤~†ëÖmŸÂ}¹ Ñ6lX-©ã[熀!óIL‹‰•†€!`äAO¾þz²ÄÍ›·«–ðä“›:^5jTÊ…Y؆€!37ÇÆŠ CÀ0’€‰­‡ ùC5†#FÌvAèx'ÔÔtRõ7L°֥!`d#‰™ÇÌ®0 CÀÈ Cü þ]rÎq$¶f§´…:4v+–ÎLwÖÖ0r#‰¹ƒ³b†@áBbˆùË/w#GÎq%K×NN;íPMpm‰­ ×çÁV›/0’˜/o›MÚ0 <ˆÀ¿ÿ®ÿNr¿ý6Ç•*1<ØvÚ!J Ë”±Oòàm³)ñ0’+7 CÀÈÕ«7*1üâ Lɳ•²?2CÞË”±†£h- <‰€‘ĆÅԔܱc³æ5V˜[¶lqìÒ©Y°`¡&Mš(B³D}Ó¦M]‰%´¾|ùò®J•*‘Î-Zä(«T©’–‘ÄØ_S®\¹H;ÖäÉ“UCEþÆ+VHðÐ~‘zÖ®]ë +eË–u·½÷Þ[‚hˆÎªU«D[\U|Mg¸Õ«W»æÍ›»’%wí—͸E‹Õ¹ÒÏæÍ›eÅRZ–j 8'h­ $ìØA*]º´;øàƒåóYLçñÑGéœXs‘"E\Íš5#sCÃÆåÎ;ïtµk×Özærùå—«6­S§N®qãÆZ&'ê[´há*T¨ åÌR A¢œöÙgá›8q¢«Q£†«[7µsš;w®ö~^Ðⱟ™í–-[&ߣCôÞÑö«¯¾’@¯éJ÷ß½üÒK/Õ5|øá‡®C‡ZoÎZ)æÏŸïøÜ´jÕÊíµ×^¾8Õ;÷ŽŸ9°EcÈ5¼3'ʸwË—/×ëæÍ›ç˜÷6ÇEÀ71 CÀÈCLŸ¾$hÖ¬O°ï¾½ƒêÕoÐWëÖ÷¥šá߯ ^zé§ }ûGµ¾U«{ƒ‡þ*˜=ûïTíì$5¢}‘½b\ „"uEœ³Q£FiûvíÚé;×}ôÑ‚{ûÈùá‡I Ž8∠mÛ¶‘žä!È=xî¹ç!U™@c *“e ¤CÛŠÉ2âÈC^Û·lÙ2©uwÜq‡|šéq·nÝ‚ƒ:(²ùÓñ{öì©uƒ ÒócŽ9&RGÛ… j=㪫®Òs1ïjûŸ~úIÏ…,}ûöÕãðŸc=68ñĵHÌÂ:þ ó !Gh“¬ W¯^Z?zôh½Žs!b`À€:®¥ð0méïÖ[oÕò_~ù%â§8p­â@4Ž‘y êÔ©£×€ë¢=}ðzä‘G´­¶à°ÃÓ²Š+Å‹zè¡ÈØôÓ¯_¿ÈüÅœYcŠ]Û¾ýöÛÚ‡ÊȵˆP_§7gê…ë½kæ,;ÿBvq'ÄìN“à?þ„è§vZ Ä5M²bΚ˜{µjÕt®`A”ó÷D|ýç)ö’@;eÊ&†€!`YB€­ïN>ùIÑ$­ÍÁŽH ü+fÇ9|‚ù¹E‹{ÜO Q­ágŸ]+š¥»Ü-·œìê×ß'räB0Ää¿Ø=ùä“’l|¸jžÐN½ÿþûî·ß~SMÏùçŸï„(D4<Ÿ}ö™jwºt颦T4CkÖ¬‘tC‹T㇠Í\÷îÝ%/e3Õ`a^NϯmVÿþýݦM›Ü믿®¯/¾ø"²P´wh¡fÏžíþý÷_Ç^®»î:5ërŽö CÞ3#Œå•WêøøÑajE“–|P5‹_|±láø“{úé§%HªŸÒn–êM!ÿùçŸjþ½ð %‰ûáª3!àî‚ .PܹPȯ¸UôR¬Ù‡øùçŸwB_¶]|å•W´ÿW_}U±`ÞôóÀ8æ·aÆTãû4tÿüóú¢]üôÓOµêÔSOux ÃÔŒ¶‘ù½ôÒKzѦ¢ÉMoÎ|fî¿ÿ~½wh<ß}÷]7pà@ý¼ø±§L™âäLj®õ“O>Q-0Ÿ 4ËÌM²^wÞyçÉ–˜m#¾”|„0ûnrôÝHbŽÂi†€!uú÷ÿÁõèñšzŽkݺ^Öµ+B@4zjÆ$ÐÁÔ!óç¢ÉÑ=¡1zbùU´pjňod S2ÄòÑGUó(×^}õÕJ>h×£G¸s I-’¶«W¯^ªà‰»ï¾[IEýúõµ’æE4…xÁ9õÌ%³ä‚ñ g˜×!‹„4,˜oEó¦fo| ;î8wíµ×†›¤97æ!Âd ñ„1&s®‡¤cJG ·^Lî¢íT³90MÆSâîøJb2ÆÿoݺuJ¸´AÔˆ®¢‘UÓ®÷ÓÄÄŽ«À| ¦eÑœêü þ¾d4çÏ?ÿ\ÍíYî÷˜ÆH ±zõêJY7ð9!ÈbIÌÚ¬¹!擘(Û†€!`¤ƒ‘È7Þø¡$µÆÿJìG‘¢„}“7oÞ.)lîvÕªÙ(Qð$ýTÌ|:†˜üô]L®úŽï"¦;%ƒ<Ð! 9 6L‰õL4{h"o¿ývõ7#šØû•µiÓ†f*éi÷ ia$ù>(ûâá§!MDð÷c~Ñâý}9}z "øF‹˜Ì%ªþP%hjSt; ‚lBñýDÐ.zúSöe—]‰Ç´.þˆ„™7¯e|ê©§Ô¼Ž‰{ì1 p Ï%Ylj}ê“5ºõk†@!F`òäEîøãÓOHw“‘/^DÌ]£3jfõ» 8pD-“[Ráµm¯½öššGñGćÈ\¢lѶ¡ „„àKHÔ0¾nñ’€™­_8oòæÌÍôƒ©›ÜƒøÒy¹å–["¦p æZ|üé0Ëâgˆ -YçΕŒ¡=ËŒ`Åô úúë¯U›yà 7¤êâ×_u¤¾ÁÜ»wo5'crGƒ†6M!þƒ'Öƒ6:Yœª³tN eh1ߢ©ÄœŒd6m ÷m"÷Bþá‡ÔüŒ¹;£9µÍ:¸g\éŸUï§Iä7šJÖÉš~øa‡Ö˜4AÏ>û¬~.0µ“בûHT:íʽæT rð‘ÄÓº2 C Q¾øâwÕ ®\¹^XiÍu±úHþôÓL!ëcU[ÙnDÀk  …h—0SJäqdFUÑúí±ÇjR½çž{ÔDJÂlð{C;…o^XÂZ3ˆþyŸ7ß|SÉZ(/øÐÑO×®]]Û¶mݽ÷Þë«T» ±A «ÞúdŽøI¢­ƒôŒ;Výã˜Â<ü:µ ÎLÆøâóÈZ {h !Œ~-Ì_ÅŽ;:4ž/\È3˜@ÊH7¡Æ¤Îz‘èy0§ð¼ÂÇ*}cŠ&U>¢hõð[ô}éAŒ?ŒãçKÐ ->æÈÌê¡d4gò)r¿Á„ë Zyâ‰'ôExht.¹ä%³x\ЂòcB‰6””;¬­+šhÖå}0Ã}åÄqB s¢#ëÃ0ò˜¸H´j’÷à¡S¾üáò:,““ÛñŸ9z‡˜î~Gö?2y}Öš£yÁŸ® ÈàÁƒeKÂÓ43d2Äï 6—2yîÈoˆ–,ì;H>fÊñi„´‘s/,˜²‰ÊEKˆ˜]?¼6‰ÀvAC†ÿ¦noÊ÷‘Ñ1s„ˆ@ª¢ý3º6§ëÁ„ü€¬²&™Ëç$:¼Ð¢Õ û5&ÚÆÜ'4“Øè9e4gî)šÄhÿÄôÆgþÜoÞÓûÅr fkú„H'"D»2D5Å ´X~Y4€äË¢s V‰%h’ˆöæÑXm¬ÌÈ,擘YĬ½!`†@LØðñLJˆ¦å1‰çNŠŽ˜ÙM…0üþûïêÛGÞ¿¬ (uD >q4Ä’£Ž:J£“—¤Ò‰ ]Ã?­$~ƒ˜.óª@ŽÉoˆ`î%ÕPzIÇóê:òÛ¼L“˜ßî˜Í×0 <„níÆ͠‚bj®š,"Jׯß,Á )yôòÐt ýT VGy¤FGãN@*¢  pàâ`ˆ¢l?¨AAøáùt2yq¾eNF Ê´u†€!‹°m éxÞxc„htÖˆßTQMÃác!7nÜš‹³I|("Ä‹)¼F4"l1‹9ì}ã `}ûöÕè[Rìø„Ð´#ø†¢k½)›rÌÛiÐiiØ}Y¹r¥ÏaM:|ôHùÖpú@Þñ ×YEk™%@„t?ìpBHÌîYRyÉÊ\ýµö#‰ñ±±CÀ0 (†Ÿ%»?Œ”É)J¶oOIßù ˆ Ù7]²5áúõ[„ l-ÒV}GC¹aCÊ1å»^[U{éÛQ¾ëÚ]Ǥ*UªNxª…ꘔ*øKz‚èOª‚D|Ä/šE%[Ô±ë 7ìM>?މfŸjˆÄîå—_Ö­ 1[óÍ7ZNRpêØJîÛo¿ÕÏ ¦b¢°‰Ö% ƒT>hIç$%9}@Òâ¿‘l ü!w#AAø_’ö¥Ž¤ëÉê\ýÚí=>Fãcc5†€!K°m×ñÇïºté’ô_xáM€KÂZü±xà=øàƒ©v•Hú$21&6´~Ë1’é’Â…\|¹%+Wn¼ncÜë¯-ÔJy¸“9¥&…Ñs™»sÕ ÛŸ¸IŒ U†@n!ðóÏ?çJN6¶»zýõ×U“Âà ¢HR[´loæµ(¹µîDÆ ûbÑž%»lä†ìØQÅ ºNÀÝ:œ'†^{˜Þn¹e—o[±bE#„­\9H„.…ÌAàªT)'ɈSˆœ'tÔS¶ë<娷+Y2k!%K.‚»!½©غD}øØ „P>B›…hÿ|"n"Q¸7Kóƒ…dØ^HÁÓ«W/=½òÊ+•ü±Û æj¶þ#ï&ŸcÈ ZF4”ìƒF‘Œ h)‘GyD“^§·;JvçªÙŸ¸IŒ U…üy0+aÎÁLjþ˜{HúŠèGêñAZ¶l™’)Ÿ›‹ˆHÚá“„ÿmFŽ©»à‹äý˜@“qxÑ?Él©ÃÜvVà…c:þPD`úD±hA˜#»”Ÿ$ü“¼`úâ…ÂÜHv˼~úé'%ˆì˜À6`^ ‹˜Ù0kùÈÑxþMéù[yj×®­f0pBcC^4/ÌäÀ¼gÅ ­ ÛvùõÑoVæêç“Þû¬YËÄ·¬†[¼x›Ìw§jÓk®ã¾ÞsÏîÌ3[Ƚ*)ó-®¶ãÝ„?‚ÈóG2e¢›Ã‚ ?¢®ºê*MÆb8Q4ײó‡—p¢n4ƒ|¦½„ëügm8Ûý!|†ßzë-ß\ƒg ‹/Nõ}æóŽæ<=!qxvæš^ßVç\áõÞµ»o0¹ò‹†³8›ÕC¤ ~ÇsŒš… l<$pR'Y°—7e«,4 øá+DìSÚ¸qc5‹ú@Òw`B¢"$û¾ùæ›}7‘wÚ°][gp Òõé§Ÿj=0¶ c~lsÅŽ<ؼðࣽl~ÏX¶Îb\ö« $tذaó-þM˜Á؆ 2ËG6œÚq`G«8jÔ(G9”h, 9¦xÂ\ðQBÛiâAfÁDÕ¿tÄtÌ s© ï!ô{´BÖx¡UŒˆ Oïß †¸1G4©á¤ÒŒ HKü¶†ªþV¾O¾i°D»è nØ (É’ñÅâAöÅb\|Ã$`øláÌ™.,91×pé7n\SÈvYkoÑ4ß'õs×FBKêeø† T^nϳ0CÐpWà»ÂwM?H0£µ#0…<|1!ó„¬ñCŠÏbv„M5Ò=£‰|ž1c†ŽÉgË?.Ù^ï A/̉ïÿøÞÙÌ|Â’¬¹†Ç(ÔÇòÊÄ0 ØÈ>¯ ¯J´wÁM7Ýi/Ú®@ˆJä\´ŒA×®]õ\T ÿ´!ÁŠ+ôøí·ßäÁˆ-‡@À¹˜ !L˜¡´o1ò?Ò§¶ Gz.‘–è±ì­ˆ6/ÒN4 ì/I ºu눆2RÇñ) „ôjøb¬‡—@-Ò€?ãx³[ ZÅKˆd $ÑWiÛ~ýúÙ™k¤³ X·ìÝ·ÕÖ­ÛƒŸžÜu×§Aóæ}ƒêÕoj×îÔ¬Ù+xüñoã^·;+D3«¸‹yswNc·Ž-¾h²¾[BêÑÈòã%2¯Ûo¿= ~¿i#1FZ/Úú@S"mùŸ UzÎçR¬‘:!u:Î×_­e¢q×ï}òâ³Ïwbˆ¦^Ë›ïüPÓº?ü0hhùœ5|×ø^!Y«^\ÈþÜzë­X#]õóI”O©‰!`¸TAüj§ÈÀ|$ÿU&Ì©˜uqGc„Ï®yçwÔ)(G´˜\I}áý†„F ›…#…ÿ`¶õâs¡á«ˆ  õ¾.\}Œ XÈ«j2}¤°oƒ‰™ùûy&ê‹ö·ò}…ý±ðÕÊ+¾X±æêçœÕw4ˆÇÓ@_÷ÞÛI´®ËÅ4>UîùÑíòQËjÿv]r@3M„<Ú:´þhØñó ®ò£HÝ%øÎ…?×޷з'ˆ…‚é8,øûÿ”ãnA yüñw&‚S8¾‰|Ãc’ù—Úòý ÷™Õ¹ê ö']Œ$¦ U…x~DÑðOŸ &g® œA H!&"ÞEóç^}õUõ/;vlª®hë}”RUÈ f%/˜Uï®ÃÙ¨dÌÝI«V­Ô—ÿ¾3Ï<3ÒsºhË´ŽR<€<øLù±¹È—G:ˆ:L_å׉©O4¼Z ±Å„Ï “7ézâ ¾XÙk¼¾³Z^¿þ>⟺˜ãÛ¥zˆgµ?».yð9Å—8=Á7Ö¥×.³u=Èa<ñ‰¹£ëIÐO’5×xã–róI,,wÚÖiä Òa°ZB|šž}öY%X  *¿@ü É¥†/þŽ> #Ö´¼Ï"ÎóD£uÄ¡´½ÿþûê3…¯ Kü’1I91=é1ðuò>¸ÅLî5ü+Ñâ7évð·J–š˜Âæ‹•™ŽÜ$;0 <‹€‘Ä<{klb†@î!ý@ç<º,<‚IøUO$²×âa*‚ ‰Ï‹šÈuFd4ä Í£ø®k¯½V£¨ß”ÈjÒÖiŒø47¾ßW^y%’Û íÚOÌ]Ì í A88Å“B‹3?k ¹6QÚìêpê©§F"¢£çélj÷N{^ŒÁN´®íáÔ©Su]¬skÅ”v‡¹ú`¢§Ñ–ñxrz®ñÖ`冀!Px("f•G£Â‹­Ü(p‹YÁdIyñ$Ñs8‰.cI„4d(Ú÷’Ä Gˆ#&S¢“ÃB”#är„ù×'Ö¥ Löp%¢Ÿ&ü Ã~Žá~Ò;ÆÔ‹f³ŽURíD k@Óí‹Ý.³çø`ÅòÅòýÄòÅ¢ŽÝ&¼/–oëß“5Wú_*“ü¸ ÈàÁƒõ³‡«>£&†@aBà¶ÛnÓÅ&LHdÙÍ'1˜¬!`DÀÌ,‘ŠJö0ÝF Z@RÊÄ´s¼H.¯X’‘OS¬kÂe8ćâÃu'Ë¿)£y›/Vô°sCÀØIÜèÛØ†@>D?DkòÉ'é­Œ–†þŠÑ‚‰’KØ] ‰!`†@ò0’˜|ŒmC @!ðÐCåÈz}ôјý„:ž°‰‰!D§|ɉ>­C ? @Pa¢b$1Q¤¬!`†@¾G€­˜ï×a 0²Š@z©„¢û4’ˆ†€!P€ضm‡lµ¸V‚‚VËkä·\#û`¤ù ð²#Kc?ï³Ï>;rn†€!#‰ñ±±CÀ0ò6lQâ&€K–¬–ää«Ý¢E+µnÍš´>'?±q¾À&k9Š€‘Ä…Ó:3òï¾û®ã•¥D‰½d°F2µb’ñǼ8Å|3§bÅÊIx{ITSr(–Í;¤æ;åœ\ñSâîܹI’•Ç uf‡†€!P°<‰…ð¦Û’ >leÞ¾./¬xóæn„Üo¿ý-»¬—T8¥Ý‘GVSgͼ0½|=‡mÛvºo¾Y(Ûô-B8Ic™˜ûCª¸=Æm߸qcMþ·U†@AE` ‘Ä‚zkm]†@A`Ô¨?e½Ñ&éŒN>¹©ëڵ쒲™aÁ™ÆÔ©KÜõ׿çfÌX*D1ã}Š/êúö=Ãõì;¯eÁAÆVbY@ÀHb@³K C Œ0`Œl;7ÚÍ›÷h«j 1líÎ8£¹ìÂR:ƒ«­:;@_}õ÷ÐC_¹;v¸íÛÓW+uTÙ[û`wØaõ\ãÆ5e Áø¦éìÌË®5 |‡€‘Ä|wËl†@E2òÝwSÝŒvÆM?¹2²qKÙ'¹µ˜+«çÑYÜi-Z´JöËà~ùe¦˜ ø'¦]kÉ’Å]Û¶ºqãæº•+7ˆŸh)×¼ù~Bë*ilÑb?W®\©´Z‰!`Œ$†»lk4’‰ÀìÙ+1ü裱²ÇðFwì± ”žxbW¢D±dm}'€ÀgŸMp·ßþ±ìy½U´Š;"WàxÄõeì«´lΜånôè¿Ü˜1¹±c窭b£F5]«VÆâXµjÅHv`#‰úöÚâ $!@ª•Ï?Ÿ¨äpüøynß}«(1ìÒå0W£FÚ­ö’4 ë6A ï}ú r–*UÜzhm%˜©yáŸjbù#‰ùî–Ù„ \@-Ó÷ßOSsò?NwåË—rgžÙBµ†ÕÈ…ØÉF€À–Zµ*çè0óçÿñiÄ¿?G¤Aƒjó4¦êœ7Ga†€GÀH¢GÂÞ CÀ¹?ÿ\¡æd‚Pþùg½;úè” rš Ñ>!™E_HLÓhyMž¼ÈmݺÝU¯^IIcJ@L=wðÁ5\Ñ¢‚mby #‰yénØ\ ݾf_~ù»j y£å9çœÃ4Å4>»ãŽÜ1·lÙî~ÿ}ÆâHê5k6‰¦ºô~)ÔÍší'fððƒ[™!‡0’˜‡oŽMÍH*ãÇÏW­!QʤF9á‚PZ»cŽi yõL«“Tð­óìãI#ï‹­tÅ‹ÓÄÞ˜¦‰ & fÏ=ËG®±CÀÈŒ$æ Ì6ˆ!GÀ„L^“ß3ÑÉ;·p•*•Í#³´if–.]óŸy:EÛ8}:[ îtõêí­Á0>ýç&†€!TŒ$&^ëÜÈ…Jð ©k¾ûnšìªQR"“›+9lÚ´V˜¡MÁˆÀúõ[tGaðoœ8qÛ´i«j}‚oˆ#Q÷ìEmb9†€‘ăÒ:2òsçþ£ikH_Cjv×ÀœLJéÒæï•Çn—M'AØþqÊ”Eÿi ˆ™ëþýw½¦òiÖ,%õä±e˺•Ÿ`·ÖÌ0Ò"`$1-&Vbä_6mÚæN B5êOÝý$%å0Ý)#ÿ®ÌfnÄG€¨üpõ_­h颺g¸7Oó^½úñ;±CÀˆFÀHb4"vnäG0Áágøùç¤:4V­aÛ¶ -%?ÞP›s¶À÷Òè÷¢&é7ÁYµjUÑ@¿õVÏÖ8v±!PÀ0’XÀo°-¯#°rå÷É'ãÜûïv3g.u<ð0'wîÜÒU©R®¯Ü–fd4ì'ÎÄŒ7Ï­_¿Yw‚Á,íµìÃŽ1&†€! I´‚!Ÿ åçŸg 1å†ýC} ;vlîºvm­[¡å§µØ\ ݅ߣiÓ–DH#ZÇ¥KWKÂøâ²÷ô¾º• ÄcåÊõ¿»î“»Û0’¸ÛoMÀH¶;ûðÃѺ‡2³6möbØÆrÊ!–t8ü¬‰!lSH2ùõ\7kÖ2½¤~ý}þËÕ˜’¯±ví=3êÊê ‚‚€‘Ä‚r'mÍ›·¹¯¿ž¬ZÃß~ûÓU­ZQvBi¥;¡Ô©³WÁ[°­ÈÈa>ýôSùqõa–zݾ½¨[»¶¤¾Ö­+åÖ­+!ù‹ˆ¶q§äýW"§·f©_»ÈÈ‹°Â€¢§6М/¢!±sC`7#0yòBõ34h‚æƒkß¾‘{ûíK\»vÙþ¶»ùÞØðù iÓ¦¹o¾ùÆtÒI™žxñâ;Å·w³¾¸‚¸~} !¥Äoq{¦û³ ¼ŠÀÂ… Eƒ>:ItFóê]³y*V­Ú¨A(˜”ñ•:à€ª®W¯ZÚvd…ê“`‹ÍijÔ¨!nsº[ëÏ(0ðý8÷Üsc®ÇHbLX¬ÐH>A@Ê,õ5üöÛ)®D‰b®cÇf®_¿s\‹û%6‚!`†€!FÓǪ d €ƒ|JÊÇ1Q”ýúíN?ýPÝ5"cZŸ†€!`†@f0’˜YĬ½!HpýÍ7Stÿä#f»½÷®àÎ>;%eÿý÷ÎBv‰!`†€!\Œ$&_ë½#ÀNì„òÙgãÅé}‹;Üo\¬ïÅŠ-äèØò CÀ0ò2ö”ÊËwÇæ–/X³f“Á²5Þcú>|¦»æšãÜøñ}” vèÐÈAÌ—·Ö&m$wÞyGþW\“´1þý÷_ôŽNuÒ­[7׳gÏTã¾ýöÛÚvõêÕ.rüqªúDOÚµkçÆ—hó,·2dˆÎ—y‡eÛ¶mZþÓO?…‹sýøçŸÖy0ðï¿ÿ®ÇDÝû×e—]æ~üñG‰¢ß©s{íµ×Üu×]—ëóŒÐHb4"vndáÃg¹«¯~Gv>¹Û=ðÀ`׸q-7hÐuî—_nsW]õjbÎb×v™!`fΜéFŽ™´•î¹çžî?þp}ôQdŒ?ÿüSRn½/?`ßpK–,‰”C$gÍšå*Uªä6nÜè¶nÍZ^HÈÑŠ+"ý&ë`Á‚îÛo¿u×^{mªuìØ±CË—.]š¬¡ê÷ŸþqÇ×¶àÁ\÷ÙgרQ#×°aC÷×_‰…é8÷ì³Ïj›-[¶H ´M õÌFF“‰®õ]àX¼xµ{òÉ¡²#Ã}®K—ÜÂ…+… vv“&Ýãžxâ\ J©[à1°•+W*¡A›3vìX·|ùr]$é×_usçÎÕóÍ›7»yóæ9ä^8¦ ÍB4CS§Nud2Ë¢E‹Ü¨Q£´-„-ŒMŸhÿ† ¦ï¾ „íï¿ÿÖÓ3fh_aÇx ¯•Ú¾}»Î‡ þïÿþO×âûBW¡BW®\9Ç1ÂõUH òâ‹/Jæ…ŽzÌÜé{ÕªUòø·xñb-÷¸r9{öl_”êë¿þúkÙK{b§Ç¼ÃXzl=޾ï¿ÿ^¶RLKüJ”(‘¡\&L˜à&OžÁˆIúq –Üë)S¦èÜi¹?~|äþúE­]»V±š?¾/мÓãpcÉM7Ýä{ì1÷ÔSO¹ï¾ûÎ5oÞÜ¡ADÐÞ>üðÃzÌk֬ѱù‚o´¤7è¶™:ÐM C HJðŃóÎ{1¨YóÆ I“»‚{îù<˜=ûïLôbM C ÙÜwß}Aƒ æÆo öÝwß N:°º hÑ¢ÁUW]ˆÆGÏ){ä‘GI>¬uÏ=÷\¤o!RA±bÅ!.Á“O>é *V¬¨×rÊ) m{×]wEú-] Z¤ GZwÇwÍš5Óã’%KGy¤ö)Ä'([¶lðÉ'ŸhÝ Aƒ´cŽ9& ó:è ƒt^4¥ebbÕöbÊ öÞ{o=~ë­·´nΜ9z~úé§gŸ}vÀ{—.]´LÈ‘¶‘ÝjôLúõë9nß¾}PªT)c¿üòËZ'd(8üðÃõZÊ[µj¥ÇB µþž{îQܪT©Èº>®™>}º¶ûòË/µ#=—sô\LȺ~!Á 'œx<Š/›90æ›o¾©ïƒÖk…Ðê¹hKõ\ˆm U?kØc=‚I“&iwm+&r}§¿£>:`½ób}Bȵ½¸輘u:tÄ<¯u¢A ¸¿”³Vî+Ÿ dèСZ.$UÏýŸóÎ;/¨^½º~Vø,¶lÙR«Ä@ï/¸ùû-îþ² ½yD¥s ZccŒ&L“(wÐÄHéÓ—º»ïþÌ5kÖGÌÇï¸âÅ‹¹W^é.¿ûJùéŽ=^M C #Àî½zõR-âñÇïžþyù¾_¥šœsÎ9G¾ó¯¸Zµj¹c=6•Ÿ&\Ú£‘"è„ ê5hÛØõÍÚCÊûöí+Ûü­sB2cj…<‚h³0ãxâ‰':üÖÖ¯_Ò7f.@IDATï«]Íš5µ­ÚªÛn»MëöÛo?wóÍ7;Þ!Vîúë¯×c¯D#…æ-%}óB;‡ÖŒ:¶iCëKð©£ X Qu/½ô’6{ýõ×>Çvˆ˜™ŸÚ÷éÓG5eÌm˜Uwçwº<ÐÕ­[W5“´ÇDx?Â~øAµšB"UÛ‰i–>z÷îí„xF4’\ƒŽ5^}õÕnÆ ¥0òí–-[&»ç¬Usï<ª{Õ ÙW1A4 ˜åûí7Ùð`šÞ—‹/¾Ø]z饪 fÝB6Ýý÷߯}ýïÿsMš4QMr<“;Ÿ ´ªŸþ¹»ýöÛ7!ŠŠ}ª É ý÷ïß_µ¸àÌë‹/¾ÈpÑýdú<s´"CÀøµk7o½õ«üz}\~áÝqÄÁ3Ï|,[¶Æ02 <Ž@V4‰B¬"«ò '!Z&1@{…ˆYP5ibö Äd¬Çh¼Ð2¡_³€s4‹bN ÄäˆyQ5OB:´þ Œ§I¼÷Þ{#íÄÔ©Ú'!)×$¢órË-·B^ýiºïÌí"šF!  @ȨËölÁùçŸrÈ!‘>¢5‰Œåå™gžQmçBœƒ®]»úª@ˆ¡ö‰&Q¶Sn¤þòË/hz…Ô­[·VœÄüˆy;hÚ´©¶eü^x!ÕxÉî ª )D¼&‘c!ÍA™2eïhM¢ï@LÃÁ˜1c4¥|ppÔQGqYà5‰Ô!Bduþhê1ùêùgŸ}¦e°’poxqÆbYj"χe:OÚy’žF“ˆ&í"¯jÕª©&WÜ ô’hMbãÆ}Wú^¯^½€6h¶ãÍ#Õ霤§I´8™¦ÕvAa@`äÈ9šºæë¯'˯:çN9åùõßѵi³_>þ@_}õU_gaY`éÒ¥Ýi§VX–›íuй/Ò‡B .ÀgA»&ÏZ=îܹ³j«„ÈžêE8wêÔIvN*áˆRÓ±j™ð¢ h×=ôP'&Cíƒ?µk׎G ]ó"æb=ô~’œ„ë ‚H4@MZ:Y„|D4~õë×WMZ?ÖOË‹1‡Ï#/®{ôÑG}•®ÕŸøµƒ•°öþ˜'Ÿ|²j$Ñ®áˆÆOL»ª¹CcI=X¡}å%¦]'&x‡ÆÍlXXÇÝwß­ݳÎ:+\%ÛŸ~¢ÚKîDwªr"„M‹¸ÿÈ ï܄π÷A¼à‚ ´ÌÿAËÌhsØa‡ùb±@5‹ûü^Ñ6&"B S5ãóàýV©ˆ5TdñÄHb³Ë K—®‘=^ÇÈn(cäÀ?ò¥ÞOLg¸3ÎhîÊ—/UðgE؃ë©o ^ò@žüõ‚x“8©rè㡇Rs0K|ðÔD ‘… zRE A+O<ñ„ >à0ûF ¦è>ø@Mô¾RyÇ}2+>¤J®<ž¾]˜Èú²èw.DÓ³ÿÁzè¡_,ü½eîÙ‘ðgòþàÞI7ìŒç¯ÝEé}‰½…mÛvˆÖl’;ÿü—]«V÷Ê?ò_ħ‘øéÜ"å7Hùá…Š †o½˜ô:ÿÔí•?1ðé4Â÷ÕŽs1Ë:üåðåóšØøÅ=ß4HhI%#JÀðá#BÇxQÀÌÒû,BŠž~úi%Jb‚,mþŠøC2‡SO=UëH¥CŽ=ü1«ªÏ›žÈŸ¶mÛ*QƒA ½à—Ad¾øfV$øEýë gôã£séG‚wÔMæÌÿü!Åt¬Ã@v˜Q¾øBB$yç-"B¤8¤ áFñ³­Ö‡ÿ°1A§"­Ôãsɵ¼ããˆ?`82<ÜGzÇ`ö”{Àk¬/¬ÿS ØÑ1 °ø)ro²šgÒÏŠO$¾˜øq2gÆKoþÚl½Ë‡ØÄ(t̘±4èÓgPиñ¡ÜµëKÁàÁ¿‹?ÑöB‡Eô‚åÁ¡>.ø&™äo„¨hdnþ^EÖgŸYŸDüæˆ(ö"Ú¦@4]þ4`õ=ôøq*Z® ìkG¯˜Ÿ#´ò ¼"~‰B€ô;FÔt‰¤û$Jí^ȦFÄ1-yõ]”à­ó>‰mÚ´Ñ:!J¸Ô¢õBJ´\LÊzŽïŸ#=ö‡ˆiü%½p=ãz=_Îú|t3Ç¢ÁóUꛉ!‚¦hulæLT·hWÝ,Áºv¿&| ½O!×ãßÈuø"DŒsî×"Ý”/øqüE)É›¨åB\µJztD®soŬ­~¦·ÞzkÄ'MD´¼z­Ÿ¾©Œþˆ|½Ç”ñ" Z’´ŽfÝÌXD{œ„øj{¢Èã ŸE°DˆnÞÿýõ³Æ8•+Wˆ÷’Þ<|›ôÞÓóIL‹hz=Y!X·n³¤ œ|ò“„Ò¦ÍýÁSO –,IIY—–£S7’˜£pîÖÎŒ$f.NfoÄÒ0ñ}ˆ¯] ¾izñå¼èBÐ Á,²ãF„$†Û@ÖHÛBJ•p€ mI—#QÙ1/%°FrƬËJ!¦õx.éÍ#+cùkŒ$z$ì½@!ð÷ßk%e¬øâŒߘ®iÓ}Åw¤£¡T¬Xº@­Õc¹~fìØA´l8Ú7³3Pá¯-bJŽK¦ 9Ôûèkí¼`! á5Èhw¬ÊHâî@ÝÆL Û·ï'ç©J üqº«X±Œëܹ…8Fw—T±£“2ëÔ0 <Dáæ„„SÆ„ûó ¥Ãeþ˜”:$u6)³»Ä¢›wò6nŽ!0gÎrÙÅàKÙ÷²¯ä%{SvØ!QHŠ€{ܽ÷v2‚˜cHçÍŽˆÐ¿.M’ì²+;"‡ “!Ñ—<䉔41ò ìÌŽ$DJcÊÆ„I$.){òªö…]jvká;/~yuºf^¦I,0·²p-dãÆ­’º`¢äÁ%¹¸æÉ6YU\÷îGº.]ZKbØ´¦›Â…NáZ-ØV¶ÎÒýZùçf‚à$š¥Š]H8L’\/ì‰J™÷ËB[ç¯a\/ô‹˜l)¦ dÉM&),|µ¾“;Œd¶äA›1c†æc“T‘.H¦‹æÄ÷żÂNôŒ‹ã=s•(@'éA4{Ü’°·E‹NR[Dò²°€é­ŒlÁ¦mXkaM$–ñÂûزg,¹ï( ¯añâÅâ&QQÇfþøº‘´×çóXsR…×þdö:æ3J¢g¿“¬oß¾º2ùøøœ#´ã;Çgb¼$å|oø~Фg‰|¾W®\©{Bó#ŠìDÃÎ&>Á4ý’_ÿ ¼Ëö©ê$bYÉ*ZCÈ,Ÿs-û0“[’¤ÒøèAfÃ'Y™+s1ÉXáÐVfä%–/_<÷ÜÁÑG?¨©kÚ·Tò• —ÔóÒ4 Ì\2›‡ôòo&ôc‰êÔœaó’íµtOÛ#Ž8"„¹¬H=AÎ4IÈEó–‘Wó“íÅ4Í ä¡-)šNÖµ‘sõ‚òÆ1wöND,NrSà$ròZù\zé¥i¦%Zº@´áüPÑ:r=òù#$ßG¾7Bִ޽”ù|²÷0ŸG>Ç쌰Ÿ0ß9>˾ŽÏ8ß„Ô3Ôs ùÙ³Øç!$5 ãPGßä$7%ßIæ@9¹!ýÿIØ­}fu®z±ý ÒKc>‰ò©3É{ìØ±S46S]¯É¯Ú{\ÿþ?ˆ¶°¡ì+Ú[Êo’ò£D#T&ïM¼Ï š°'Ÿ|Ò >\µüºg—œìѰCûš¢ÑCü¾·]ºt¿ÒûT‰æëÐ )R­D÷îÝuç vq`7‰Œ|‘䱫»Y …`X/ôÁNÔ³ÃÄe—]¦š>êÙ¥‚]14|˜’yÇ ‰µÿ*Ú4/l¯–‘0.IyHkê!Áªm¹ÿþû#—zÓûÿ{챩vj@{ÂV\~oÙÈEv`$€ß´ØhOØ1…mäØÑ¤OŸ>îµ×^ÓïŸÿ9sæèNþ:LÓ´c_evga/|®¯¼òJÕüÑÚw|‡¾ËŒEæÂö{øù WSM&å¼øÞ2Ÿ[n¹Eþÿ÷×Y:vì˜&`'»sÕIÙŸ¸IŒ Uìþüs…8PVbAÄ÷ðé§»jÊœ)fÌZ»cZ6f°'*¶ŠB B59cOhÑ.¸O?ýTÛ@z j˜®0Y±×«ìì Û\A, aR®Å¤+‰‹µìP¡×ÇûC4 "Lh+;6Dš^qÅJüÈaÆœyaúE0¹IÒZ=æZæ‚"¦.r”qM,ÁD YÌHX7&qÆà¡‹•hYåÇÏÈ¥;wv¢Q’&ÕäãcìlbdD}øøñ†[Æ…^¨Ãð]à3KnH/={öÔG˜¢Ù*ϳr7öêÕKMÅE„lE¾×ðÙ‡ Š–Q¿ßüøÃß¿_ò âjòÈ#èÿÜ=âIvç¯_+OAÀ|í“°ÛØ´i«ÃÇœ†$¾®Y³²<—_—­Å©ºònŸŸM 1¼v 2…x'OžÐ@y@°)>Ð4"ž°¡‰”í»T«øÞ{ïE´Žä…óöãóeá÷ºuëFNñëÃÑK¸Îû4yͦoýÅЇ\¬äÅÞ/+ú:Îyz™?¾ú}~}9Á^ÂÉr!Œc¯qÅ¿«S§N¾©½™BB‡ÆŸ%|®Â‚ Zn1íªï0>ˆüøñµüPñÎ É2¾^Âu|f| ýç Á[o½å›kð ß,øzáG'û`§'ø9gg®éõmuÎíú†@.#0~ü| :(¦>bRøH4'{a¸Âs—”Ÿh1—ïGv‡ ?PÒë í1ÙkUƒ;0)!²Ÿ©š³0‰á<q‚,úÁ1^22íâÜîeĈ©‚CÂu˜ªŒH'æ44 O?ý´ïVçˆé—uà ïwÝ´…^РxáA+~‘jzÇLÇ í ¦öX‚6GöäURÖ‚èbbµ·2C #ØäÇÔ “p[ÙÛXv¥úJƒÌøÁ‡vv^øN†¿'þÇŸ¯¿Ç«ƒô!O=õ”~öùüÓïc=æÄOQQpKñ"ûÇ«;3ždw®ñúµòŒ$Ú'!Ë,[¶F"ßfêúÿ]/¾+?‰¯ÕÃòð{JL‰óÅïë$5'¿øâ…®mÛ† ™í25¨5ÎS@z0%Ýu×]jZòšüŸð Ä‘hH´Ž˜wÑ ñƒHáG! û?ÅZæfÚB¬ðñ;õÔS#Í$D} yBú0aåŒàÿäMᘿ˜~„hѲH ˆ»á†4Ⓢã©S§êCŒj´~TÆ%*”‡.Ç^˜æ‡v“zÌñ¤×‰'jÌ|¬#Zï+7â!AãGÌ 'œàFŽ©ZÃ7ÞxCÍÃhíÈ<Àg7 ¾£| khýÏ=÷ÜxÝ&TŽžføñ=&‚Ÿ1ùÞñ}âG©¤øòC“5ýü@#Ê™xÌ',ÉškxŒB}l=†@V˜4iaиñA÷î¯fx¹¡ß?5¸øâ׃ڵ{K$èmh%šuA†×ZƒÜG@LªE(†„÷‘†Bî´=ÝË?ÕHÄ¢8§ë9‘Ç^ÄŸIËä!å‹"‡‰š-„F& q ÄIë%¢FYÒ¯hê4ÂQˆ¦ÖMy8º™HʈžRH mKt³ŸD¢.‰² Ï!^t3 ¹ „ÜE¢¦éŸ¹J€ŽóÌ3ÏèDˆ™I½ø3B 1¡ižþùH=mˆSŸÖÓîᇎ´å@’ºv!³hTRÕetbÑÍÝë3Âw‘ì|þxñ’AßU/¢Å×Ï·4m#14ZÍg1Á/?ð4™ÊÞ½{k„²ïGH^/û\kÙ„,FÆæ;ï¿çBL#Yøn‘%A‚fôº?üP¿gòƒ,MtsVçêçXØßÓ‹nFlbd o¾™"¿›‚5n47JZ„”pt'²grðÐCƒå¡ÜGÚö :wî|òÉ8ùG³5º©ç!2K³2uÑâ{—æRqPÄ@4£…„i1$|®øa%ÁbfÅlFJ\ô÷(fãLòýä;$9Qõ»})?8c)9SÙðuÉškxŒ‚zœI´Ày¢˜$ŽÀ‹/Ó-ð¸w:?úh¬øcµÕN6mÚ&&´Iâ[8Êõ§$a­$» &fŠÖâϲ§¶±?y •+7ˆ‰w•8¯sÎj‰8œ/÷59ÿ0Ýb:Å´ŒÙ+Zz‘\ŠÑÅzŽYÚ›…c6ˆ*Œ`â›àëÇ++‚Ù+\B]»vMÕ¦3LÔñ„àÖ­[Ç«Ž”ƒ•h`4`Àû½FV"˜…üjу‚(hÖK¨KÆC/ÖX9Q†"¾’ð;À“ýZ†€!`$‚€‘ÄDP*äm @ä,$=M˜ zXĬìºwMö²-çz÷>QR›´ççr¾º@¿£…{啟ÝË/ÿ$‰c·ÉmäIÓ‡$•^+ä/> d~^Ê–-%é…*iŠ¡Úµ÷”ü|l¥UYr¦”Õ¨QY"o‹išŠ:uv%Ÿö×çÄ;É¡I›]ÁYW´°EyØâ‰ìܯ*O–Ën-yr^6)CÀ(I,÷9Ë«\°à_1¿¨æÈx‰XK”(¦ä¨ÿó³™a\Š/¦D.‘Å‚$o—éw—6ÐÁõë7Gº‚à¡õãuàÕÝqÇüßy%ÑVßÏ= …Y?ˆ†€!`$#‰I‡8ðé§ã%ÜûJ„Дe$[·ns_~9I¶]Ë!5ZFær=ÕgžùÞ 0FÉ$/­ªé£< â‰à.ßÀÕ²‹ÈZ2 h¥J×oúmÚtß!ôæá²esŸ|4áwHH»V+ɰ¥aaI”*WeaÇÃÖoD#ž‹NBº£/°óÂÀc}ëžxbˆ˜OS"˜Aƒ¶Í›×¢x}"ÍóM›9s–Kîw²-ÚxÙ»·¨‹MS– Tbõ¯ïPêƒA¼Г>Ž?àÞ{WÈSx@ ëÔ©“§æd“É:ù°‹Ma”ûï¿_BƵۚ Ì À³*†KÙÀ4$‘ÝÎ9çœÌômm ¤=©T©½+]ºa‚+Ú)Ú0^hÕvÈûVÉÒÿ‘øèí –H°£<׬D‰½Ý‰'ö–-£þ¿"âû—±6•EÒ»÷ M )€11 CÀ0òãš›ûôé“ÏÖbÓÍ.«Wï”-v )"‚W}/^<åÝŸó.i®âÈMqÊóG1zõqã6È6[å}™Lš_W‰+Û13Ÿ}vÁ4¹ç;h³4 CÀÈ)â>êÛ¶m›ScX?†@¾B U«õîôÓ;‰â»2ï½Ü˜1Ék®[»v“ú#B’·m‹­Y$ؤ0ðä«j“5 CÀÈqIb–z³‹ ‚€ìÔ+þ…•%)øq²"^ÎÍ›÷hçéë·ßæ8üqé-Q¢¸¦¢ñî½D'ׯ¿^c CÀ0 üŠ€‘ÄüzçlÞ¹Ž@:{I@Ç^š,œÁ7lØ"féBçj¢ññãç¹õë·hNI#‰¹~{l@CÀ0 FÀHbjÝÊ•+¥IÄÙeÅ ÚEÊM CÀ0 üŽ€‘Äü~mþy Ó æ©Ûa“1 CÀÈùž$:ÔMŸ>Ý]}òóóÍš5Ë}øá‡næÌ™bjÜàêÖ­ëZ·n­)ƒŠ-šámرc‡^W±bEm˾¬Gq„c?ÛdIŸ9sæÈÃ/Çj¯½ör7ß|s̺dîL’¹ëÛ0 CÀ((dÌlòøJ.\èþøã¤ÏrôèÑJD!ˆ't’ëÙ³§«R¥Š{饗Üm·Ý& Û3œÃÈ‘#]ÇŽ#m7oÞ,Q²Û2¼.; Âø¬^½Ú;Ö•-[V8ïêÅZv‡ìLvÇ:mLCÀ0 C ¿!mMâÖ­[e ²•J8–/_.é?6¹zõêiænvn ~ÿý÷—¼zÅ5ë™2eœ×¤ÖŠ+d¿ß2®|ùòŠÚ:ˆ}Pî…~ÿüóO·ï¾ûºR¥JI>¿Õ®Zµj¾ZßÑîaZºtiÕ.VªTIÛSIŸëÖ­Sb·`Á 0Xï8à‰L-¡×rså­`øøÈ#H¢äÚ²ûÆS‘y~úé®I“&îé§ŸvC† q§œrŠ[µj•ø¤•Sþúë/]Ç{ì¡}S‡,[¶LöÛ­án¼ñFI´¼k»5Ö E4h dŽãµk×*±¬P¡‚bÀ5ûí·Ÿä0”d†ÿ ™ÒÑR††3=Íæ%—\âjÕªå/¼ƒ¢Uä~!ÿüóbÂæÎ}=ðÀ/Ó ùÃýggîxÙ]˜üûï¿‘ ZDïÜsÏu×^{­’­;î¸Ã­Y³F¶4Û¬DåñÇWb6iÒ$wçw*aë˜úõë;ˆÞ7ß|£ýø?ô É„”@¸ whý0£¢ ¼ë®»\Ó¦MÝ´iÓ´Ò÷Øc)Á0a‚»é¦›Ü“O>©k Ÿ3'ˆðí·ß!ˆ~L4ƒŸ~ú©ûñÇ•$²[ Š1˜+d‹ë x~Ý]t‘{ï½÷Üu×]ç:uêäÎ;ï<7yòdGsÖŽ mçÍš5sï¾û®ÎŸò¥K—*oÙ²¥WÆàZ֯𰇏BÎ3#*ÌöÜ“Ë.»ÌM™2EÏ/½ôRãk¯½¦sHƒ-frÆe^àˆi’ Á¾øâ‹]×®]uøÜÆ„ño½õVÇ=~ ôêÕËzê©™ÃÚ†€!`…37£9bK?#ä‚óÀ•ÜA˜ íÛ·WBã5jÇW"Õ®];÷öÛo+Yûꫯ´ÌŸ_|ñ…’‘‡~Xµ~|ð¶ó×ǺsGˆš=È!Dò×_4EK6xð`%;hè¼ZIÈ‘×N†Ï-Z¤×tÐA‘~ü$ ­ß’%K|‘9H ãvØa² q¼çž{´ sóãPV>ø kÔ¨‘ì}ü¥ƒÆkÚM„uAH¹’9nÜ8ÕêQ÷Ê+¯h{È*×Ö‘}w!–ñäùçŸw<ð@ª„rߥK7`À½‡hO}D”>ÁöÛo¿uúŸ~úIïçgŸ}æ¾ÿþ{íù¡!eN3f̈Lr›[˜üüóÏjVçóÂgˆ5½õÖ[J^#²CÀ0 CÀH#‰çŸ¾jÿÚ´i£¢µÁïÍŸc¦dÌ C’‰ÂlY³fM5µò`GÃøÜsϹ+®¸ÂÍž=[ÉÐgœáªV­ªíÐÆÒqǧãЮzõêM¤æjÆ£Þk?9¿üòË#ä-|ŽvycÆŽ%Ͱy34$öàBýܹsc]ªe¬3-סùBS‡†S/äagŸ}¶ÖÓñä†V’s°Å”εñ„þ'üòm{ôè¡ÚÛn¸Aµ§ø[²6ˆ6ÚPîç`Œv3î?ü DŽKš^Ö>fÌß­®-·0Á”¼ð Jb/¼ðB%¨zCÀ0 CÀH l››ý0>ðÁûÉA²ÿ`Æ$M¦JDLaÖEùꫯ*Á¤Îk 1Y{,ÆO|=~‰¾ÊÂ<ê3#¡O|þІùuùkÐôAB9ä_¤„Ο0žƒ¯óïøò!h$½x:??ßõÞ‘9!à‰)ò‡¯"æßôóq,ŸD®¡ï:¨†µU«V¼ ±Ñ×@ê0uCV½àcêï=e\/~-ɤaÆ’;hÐ ÷¿ÿýO %îÞ½»Ÿ‚½†€!`†@ä˜&1LÒ“3äS,)Gy¤6Ç|zÁ8L—D £…ÄdY¹re­'Á d-ž„5hhÑÒ…‰a¸ÌâéN?~ŒhϘ[´à÷Q<úè£#Uá9øÈëôÆñ-œ|+?÷xøB´ ˆ˜¢1­bJÆ´UðaV&@òÉ}A¸h5=1eÍø!hƒI¾a–§öÉML0s<óÆo¸?þX±yçw4°&«¸Øu†€!`†@aC ÇHb¢À‘Sä믿®$Âkžþúk÷ì³Ïj´3&c" i‡é $y̨Ê@†â ä ÿ84p',¼É›k—~0uã‡wøá‡kW gžyÆ-^¼8Í9ÚCÌçŸ|ò‰š0!shÿVÁ·‘°  ©g01CRöÙgŸH„73šU/h!Š3®a~¬X´æÒ_~‡¸Aâè“”2˜†Yw<¤ÿöÛo©^˜†¹ÿO´€˜jñGìׯŸÎLä3˜B´ß|óM5müÃ=KH%¸s¯ha^rü_ úáG¸ EæÕÄ0 CÀ0C ÇÌÍ ç5aB4L”œ|òɑˈ„½ÿþû5È_9ÈGïÞ½5Ê—è`êN;í45a¢) ûøù¾é Ó0dt.L«„Œ1BǂҚALßøà!¤âASxÌ1Ç(1‹>ÇçÂAð9}@žaÎ^ ¸˜6!o¬ãî»ïÖyc2ÇÔJä/ýøyC†Yã½÷Þ«ù)Ç< E8g¬XœðUDk†™BŠ?#I¿ Êùqü;4шh†@B Db]̵ÿþ-Ìšyÿý÷u~)¡ îÖ­›&õíÛW»…Œ‘f'ì"›˜´mÛV?_Ü3æÂZXX™†€!`†@bíÑ.•–\ƒ¹”%Æ K¬‡,´"(ÍZ½°àKÇî)øã…}Øhƒyíåh¬ ‚Ñ)p UøÆEL.?L¦^{ID»…–“*ä&+¤ }óŽÆ“ ˜°`N'ý ”´9ݰæc6Ô¡cnhãÃpþ 2¬!ø‡¹ÑWN sG“íŸÈhW1+3‚\¼ì.LÐØnܸQ}=3ƒ%P~H©¦‰!`†€!P¸Ký• «G‹‡¦åk®¹&͈h½HýKÐ@&š÷~ðI‹'ÑÁ-ñÚÅ*Gc˜È<ÐbòŠÖáMì±êÂÁ+ÑõéC:ÃÄÓ‡¤wMVê ±"}¡ÅäOr“h‚o^Vn†€!`iÈU’ˆ ÷óÏ?Wódv44 XÁ—-[¶¤]¥”@ bå9ŒÙ8…˜XÃ;Êd£«siaÀdýú-ä3Oò3Îíc#‰vOÑ蘛h 1 CÀ(tìss¡CÙœ¯HÄܼxñ*É9WIሳ$?äŠH0ÒàÁ7¸æÍ÷ËWk¶É†€!`Q䮹9jp;5ò;wî?+!=ú/7jÔñ½\¯AÅ‹•sv¤ZGõê)¹1SÚ‰!`†€!ÏÈUss>ÃÆ¦[Hؼy‡ýì'Ñî³%gç,ñ£] n Û$‚½¨h $+OIbNÌW4A,Z´ˆäÞ¬XH‘³e†€!`$Œ$¤»™Ö‚ÖmÇŽ@Òÿj~eS˜²eóÏÇŒy¹DRuÿÙ9©ݾ=…¦*Œ:©R¥œD¥ÛöQ°Ø©!`†@>D îÓ»]»vùp96åœF lÙƒ$Jû1­òQ)"ïäkô$¨è99÷e©g°}û?’ƒòÝÔ…ùà¬H‘b’Êè%÷Ýw‹Ý’%«tÈŒ„\”ݺ½$©š*ý÷ÚCrwV–×z^¡Bìý¿3ê73õ¤CJVt{fæam d\`g¥‚*W^y¥{ñÅ êòl]†€"@v™¬dvICÙÄ'‹6l ˜1cµ{óÍ™’ß1µï]Fè_rgœÑµozFMód=‰Õï¿Ñ(NtO<1D‚S–Krò¢ssô¤!ˆÃªU÷p‹­RÆ%KVËN5»"îË•+%_ÔJúJM$w•í±GÎä¶dïs¶”41²Š»LMœ81«—ç›ëH½Æ¦&†@AC€xäˆÎª¤!‰¤‘aC Œ@Ïž«]÷î¯ a\—$…ÛsŒÿÞm·ïêÖÝ+º*_wêÔ\v±i.ɵÿp?>D‚X‰b1I¨žš4—(QT¶€¬çúö=#ÕúÖ­Ûì–.]-É”×Ò¥kôœ²‰¨¦’6^Ê–-ÑDB(«WGé5“)d²rå²¾yÜwvÊNª©¸[E¡A€La ‰äwµç^¡ùXª…²Mov$ IÌNgvmÁE fÍJz¹;îøD¶ü-¡…6lX-ßÄðBO8¡±ã5|ø,!‹ßj ‚Yvù*¦hÃ×pŒ‰¹B…j²óKµèªÈ9ÚFÈ#DÒJÿ>eÊ"-[½zc¤}éÒ%þ#’)flî×L–/€}µ#`Ù!`†@–°'I–`+œ•,YÌ=úè9®eË:²¯ó@ N!Ò7µ6Í#y:äÚ²‡öf%I¾¼ ¼}tÙ³»l-9_ÍÐÆM—í‹I¤óvÕøee˜¡ë×ßG_ñ®ß´i«È]ZHH%ùyGà ©\¹rƒ^^¢DÕxÝX¹!`†€!F‚É…èÒå0רQMwÑE¯J¾ÀuiÒÀÐíÚçŸOpƒMpmÛèN?ýPÕÂA† Š´h±ŸhU/sÓ¦-qO=5T4­“U›—¬õ•)ÃÖ”{ë+Þ›7os³g/‚Þ?^+7 CÀ0B€PUC Ó4n\ÓýøãÍ¤IùBÇAÕp“&ݧšGò öêõìË}§»øâ×…8Nt7nÍô˜yõ‚ƒ®á^~¹»˜¡os˜Øw§`†®]»ŠøƒnßÓ°± CÀ0 ¦I,7qw-(\4ihÑ}ôÛÿÒÄì” Ž"®s粇uiqo¥¯5k6¹o¾™â¾ür¢»îº÷Ô<Û®Æfý|°CK–ߥ^½½óûvËüçÍ›çHCòÚk¯‰¹¾FÒæÐ­[71ǯLÕÍš5Ýi§æ:v옪<§O.½ôRwüñÇ».]ºÈ¤ê¦Q¡B·zõjwÞy祎}æÛ´i㮽öZ‰¦/–ª.¯Ÿ`AÀýâ³Ï&¸sÎi¥V„¼>çü6¿ðg)™sŸ6mš»ýöÛeOúq®\¹rîÄOtgžy¦;öØcuØíÛ·»µk׺*Uª$m¯¾úªûøãu|/9äwÍ5׸ÿû¿ÿKÚ˜±:‹Þ½{§ªâ»Ù¨Q#׳gOQ4LU—“'ÑÿW­Z¥÷£dÉÜyfš&1'ïf!íë†:Y¼\ò)–­"ÛÔí”ЀPž{îaÚnÒ¤{Ý}÷uÒÔ0W_ýŽkÒä®ÿoï<प®?~Q"¢ˆ¨HUÁF1h"‚ØÔ†$Ä[þš¨Ab‰š¨Øb/XÐØ» ˆ"¨*D:ˆAQPŠ R¤ûþç{Öûx;̼™ÝÙ=çó™yí¾[~ï–sÏ=ç\wþùOÊrí4q³³±Ø{vQøà×qäÈ‘Ê<å²´cÆŒõˆï´c§sÇÿßôéÓÅMÓ‰î‘GÉeÒî½÷Þs_|ñ…¦qÎ9ç¸ÓN;MÏ×­[§e¯Y³¦ëÔ©“º,Z³fHÞÿ"“©‹rš§lEÎÎC~ø¹è)?/Ø^¥j(¨™X[ÎÂÅã‰Ö¥âO²wÅ7=å”SÜܹsÝÿøG׿Yš¦ÌÙ[o½¥ >Ü5hÐ@úûÜôÙÔâºuëºë¯¿^óÄdžx {…Í ¦eË–i;…!¦ïàÇ„ö©§žÒ ùÊ%öXâ?ÿüó¹Jn«xM’¸$v£4të¶=ú2q“ó¨HkÚ4õì÷-ýú¢? -FŒ˜î† ›*ÀS²^ •,"aìÞ½­\[-Í÷(É;ë×cYý­|³¦î«¯¾r«W¯Æý1LúIô-?‘- ×+óR£F Gg‰$Œ°žÎ­]»Ö!•ƒˆkÖ¬YÚ‘6iÒÄÓøfΜ阷iÓÆÑ±&J7lØà˜)7nÜXŒq>UI[ÇŽõ"Z²d‰C¢@aððÉ@剼2Q!¯ t0a0`܃ºuë&RïÛ|p•„´lÙÒ :T$ÿà믿vóçÏ×øëÕ«çoë‘8?øàÍã¾ûî«tòýÍ7ßÈRÿžaZ\×®]ÛÕ¯_?|ü`Á‹ç>_§žzªÊ> î‹^zé%wÿý÷û[úR½öÚk+Ü’åÉ¿ˆ´Üù>Íš5ó·Ë|œ>}H '¹_œ¤ºÉEÆ[É ÙÊœXE@}Ç`z7iÒ$Å”›v» êt‹-´î-Z´Hô”›h¤¾­ñ-¨£qßmÁ‚âouN8£ÆÓ°aqwbqíïN¨S§Žxb˜è5j¤#ebû@2ȯV­Z2aÝÍž=[™ÄV­Zé+0lÔïgŸ}ÖáC–´!Ú1a¨Ë´K0!n&=HË!Ú4e§>úÈá™ò¤ª›£Gv÷ÝwŸ¶Õhü]|ñÅ*ùçÞÉ'Ÿ¬m+]»£Lôc‘Dzé|bžø&ä7*˜TO¤ðÁûKQzEÜ£$îÑÞAÇùz?Uzþ¥dý#u ||I¤ígyŸþl©W`Í›?ëGIÐÈÈë×o &Mú²Tñ‰Lðä“ビOì¾{ÿ uë˃ .x*9rF@¼F™!  [ÃÒqeô‚tÚ^vYÒ#ï “ôìÙ3¼–N=F(¸ûî» é¤Â¸{ôèóÈÀ}ôÑ ~ LAõêÕƒ‡~XÃI'tíÚUãã}YNÕó#FS§NÕóÏ>û,NWÏe „™Ôó¶mÛ´i<Ü;ôÐCéèÃtÄás˜aȤÎ\ ×o¿ý¶¾ÿî»ïêõ®»îÈà†õ'Ât½zõÒK騃ÓO?]ߣ¤sË-·ø Á]wÝÈÒ[ Œ£†á=a¦‘îèµtìaXanY®ÓkҸ馛4o28jX0CÏE2¾'’™@˜è@–§Ã{ÄCÙ}º|ð†Rå‰gO?ý´~ ÊÂw)L@ýÈ”ˆÄ5 >wî’àöÛG]º š4¹$ØsÏKõÈyâO&á{ù|"’²@–/3΢HÕ¼ƒæÍ›+¦Ôgêœ0@z ηÞz«ÖYž £Æ-;»hâ»Ç}7q~Æ-»'²œœuÖY¯K\ĵQ¯h;Âô„mI–Fü$¶óÎ;/FRŸ‹„LÓ'¿Q’É_ÀO¤òÚPVÚȼyó‚±cÇ*´a45.ÂAW]uU Ë5?¼#ÌqlݵŒ@|6´…DòýÅàÁƒÓ¶;ñó¦ID@%æ‰öH?æI˜`-ß²‘ï &øÇz”IÞâ‰'ô:.½¸þQ–ÐÚ´'‘àj¼ÄïËKÿèëõêŸÿü§{7nœÆ%;®Ä†Kñp¨-7Ë—7ʸÉ騱Y©"lР®;ýô®¢ƒr¡ÌȯŸŒÇ«{—³Ï~\$[W‹ŽÖd›¼YI­©K• ½T $flÝ$ƒ—Ἧ3[f³Ï<óŒ,'~¨³ñßþö·*@Ê-]ºÔ æ„¡;ÄŒšeU$fèð\wÝuN:Q/¨’ ˜Bé]±Ä.˜Õ#=‘ŽQãºòÊ+Ã2 Éî7Ÿësô¤dpÓY5X¢æVÃ"5»ì²ËŠIÏpÍŽRü{ì1‘f÷Óüž}öÙúΠAƒ´¼Ã† SiÛµ]qŲ{ÎÅÓ*ݹ€²°$‡èÙ¾¡RE}9ƒ?$ƒ`ˆ$˜zºýöÛU’اO•²Î™3'Ü„oróÍ7‹îïÝ*‘¡ äçå—_ŽÍQ.$@,³#bÉð†nðÉftüé§Znðàw]·‰ë§›Ü½÷މÆ2}wãÆÂ—& I3*HÓÐ5eùSE­}ûöUõ6¦@vá‰eB£ãÇ.Éê’6î_{íµú}©3Ô‡T×øæÔi$×Ôw~Ôm(±}ÈO%u<;þøãµ²ÔŒôP&NR‡Òs¶íõå"n¤§„ABˆ„Žö!“BU«@B!ÍfUI#ýJ\ݤ¼¬fc§ïFÿ¸Ïê€W߈>KÇ{¬‰K/®ôñ§;.^¼X1a™›¾­K:èL¶oß^ñÀÀ†e?p`‰‘ò—uW‘pèR Kü0ë0ÙàÃÀ2!ËeàÁ F¾¼`Y$¯Éòtçw:–ÁѹD· b‡‘.¹ëƒ$sæ,7V+e™»»0û¯Êw, ”)cˆ'ƒÊ@uêÔ”úT²œRÿ¼Î(Œ z‚èí±\I½ð“(&OLb`<øfL¨üñØïƤ„%b&F")Ô‰LcŸª=P"¶ô†Q´#â!¯LFÛF)žP‘˜£s†üì߇IuDÚeP‡yeðºñÆU]Ÿ¨µ³,÷)è1P2èÀ@3ÈvØaÊ@&K)S‚™ˆ¼ nHb`>Áõ’K.QæéTT—'t*!o$ãóB™;õìY× 2^ô F<ùv”©âú¿ÿ;B˜ìr_©"ËáýÇ{X$_%KÀëŽñí…: ÃÑ^|[Aoî /ÔÉL"L=:lqß ½3&$ž!θö×`L¢D{ɤ­Ì˜1CÓGêÍ‚iDJŠ>`´®òŒÏ‘d2Xâz$.O`C –Hb‘‚ :€ei¨Y³²×St0¯–|þU–Q»Éw.Z„a4JŽŒj|[/Õûn,W3Á@‰úŽ©¤j¤×`ÔPë ._}õÕʈxõ‘ÄöÕ2j Œ-u’vÊ„|PÔ1¼ŸDÊÁLÂ@ÂøÑ^h—Ôm$j;wVËg ùKW7‘¾¢FDÿ‰'žP<°ôƒ 4±B‘®Ý!iÄU VÒHúÈ'í—>‚>)Qn¯/ Šä7ŽüR4í2]zqý#ýÏéw`aˆSý“†(S™*lVîKggdóçÜwßÛbÉy»Z\ÊN/Áå—?Œÿ™Z¢Ta“F:h¸â[7{Ë\é€ô}o( ßzå±'a4ôž,ƒú[0.Vɤu#–x²´«ÏErZ4ó eŽX7K®ç2†ÖÍÞúY˜Ì@:î@–€5˜aÎÔê÷±Þw4aÒY7 ó†õ'XRb‘‰Å©H[ÑÍÒüør`•ìI q´l2Èüd°ËûõúX$¦úžH¬9…¡ÓgX{+iŒÕòëgp!è2`m .̲Œ§a°$%MaÒÕºT¤A\ž„ÁÐ|úø…Ñø4â þD¢T̺9Ù+&|\qÅób{¥¶·¦Mûë±P­›Å Kë¯Ç‚:.ÒgˆqˆÖOƒú…±LfB‹tžÅ}7¬ð©G|7Ú‘HãBëæh]ŠkX7‹kM›x¨W¾’¾0­¿¬pˆ —@&wzΟL.´®ûºÃû´ ™phŽäç2ÓødÂ¥×2©ï­ÕšÀ´ê{”ÒÕM¬q©¯>}Ž"×2a].Ëß]\»Ã2X˜·0ÞU}/Yžx€8iEû1äÓ{‰ÖÍ2 S/ 2QÖ8ãÒ‹ëeÒ¨줋g,Ù9Ǻ9Ú?’ýÏ¢ßROñWVëft'Œ ‚E`Þ¼¥Á=÷Œw"·éÀuà׈[’Å ÂçË0–”I,Íǧ¥£eð­^çžøe+6 W1 &¢¿¤LïÃ$FÉ»ÀÁõaÅš/úX]yˆdDݸ$K»Xà2\G\÷$’èX©K ˜çDâÌf:"Þdïǽ'’Ÿ€ø=‰¢|À ÅåI¤êö濤” “èãÜ´i³¸F™\xá¿e ¿L¾maºÀñåÍôˆëD‘mõJÜwƒ £ŽóaB¼ œh$0‰©ÚL"“ Ú’,‡“™èûéΩ;LD`~¼Ë¥è;¸²‰ÖI‘8Š ´Iu5Yøè»œgR7éÏh‹Ä £ELN™Tz"©Ú/?L%çéH¬ÖQ›I,åótéÅõ´Q&ªéˆÉ¥HÓÓçeeM'QF*£ÂE yó†²äx¤þ>ÿ|©n ˆãîÇ_–Êv”eÌvªÃxðÁ- „,—Œec\i°ÌŒSìDJv0èݰ$±\šŽ|ØdáÐõâ—+bi‹_2b‰ ÝÀdä—Ÿ’=‹Þ©Lô2£svˆ‰º“žâòIJuÔhÈ¿“íã¶¢ÌV›üÖ­ë+Ë훲D¥‹%Z™© "ïl9Zˆ¸ï†¿L(®= ò®piˆºƒÁE*bÙ6ºtËò,KÏ™R&u“²á¹ J¨uD)®ÝeZ~™”ê’:žÐ+,-¥K/®ôzØéÒF§¼È˜ÄòBÚÒ©pZµj$V¢GéOœ”­²©8IDAT«…4 㣎}š”ad§—N¶ ¾žé<Ìz€è¡WZ’eSuÇâ 0|øàqµÒ@v÷îÝ^t|2sH\,r»0òt.ü^ l9^ýI²ÛE¼ë<*†eÅ0rˆ€1‰9×¢®Üì·ßnâgk7Ù»·—è-ÐmY–4h´Ã ébïÞ4Lå.©å¾X¾|ì‘[ÄüÁ r¾`Árñ9÷øi\!>·ìSäH=5…íEiÿw…‡•É0J€é$–4{¥j#0mÚ×*]dIšA·U«]Â%é6mšT88^'±Â3b(wjÔh Vß=ÅÉ7V±[dâ€HóR­ZÜþ X$!ηË7…®“ˆãg#C (­N¢1‰…\+¬l9G`Ê”¯d ·)²›Å4]¶Ûk¯Æ!È®cEøé’íÓ^©ˆ¤-Í<@`Õª²ë̲×î2±g”š&n»m51Øjæºw/¾ý[úsÌ1yP²Üd=‰qbd2ì&“n™$åΘÄ$¨Ø-C 4|üñ—º$ýÚkÓd+«&‘%iÜê´n]z÷¥É‹½cŒ;GŒ±†j]ܼ¹H’˜•W^¹È™ÏÐt(ÙsC Ê `Lb•ùÔVÐrE`âÄyj%ýúëÓÝâÅ?ˆ1Ìn¡ÑKË–Ê5/–XÕEã”{ï}[ö¯¥¾'7nÜœŒm¶©&úµ» “ØR|…6W¡M›îœ2¼=0 ‚GÀ˜Ä‚ÿÄVÀ E7¤²·­ê0²$½té*ˆ±FʈŒ‘!kðÿ9`À³nâÄ/^‚Þz ºeË]t·”I“¾Ëþ…†²Q£dÇ Æ¢n ÌIv®¿–Åoä Æ$æÍ§°Œ<²u±“=£C†qÙ²ÕîÀ›ªcïÞíÔÅNÁƒ`¬P^xácwÍ5/ɶˆœìµæ¥Fê²ËDW7pàIzoݺjÑÃXô›¯ñêÕ·uûî»[È8Â@š´1„ÑN BCÀ˜ÄBû¢VžÊ ãøñŸ©ãˆÓÅ¢t8ëÞógÆöºëKå(‰å²²!°bÅ sC†Lpì·Œ¾"K̓æN<±CÊâàF½[˜FŽQi£—4Â42ñ©]Û¶äK ¤=0*Æ$Vžoe9-T¤Ç+bßxc†ûþû5®cÇfjðrüñíd+¥ µèV® D½ÙþýŸ¿‰KÔzâÄ¿ËCõ3ÎúŽÓ§2“&—6z½FGц@¥CÀ˜ÄJ÷É,ÃÀ¦M?¹÷ߟ£F/#GÎp+W®Sœv³$½ë®;tù­på‹õí¡‡Þ‘ý™?ÝÙkÊœøÂ…+~^žÞ"mܰa“kØp­Ç0Ž0HÍMÚXf¸-C ד˜k„-~C ´`80vìÿT‡ñÍ7gºU«Ö¹Î[è’4Æ]v©WÚ¨í=C kÖ¬wÛo_³Ø½l\ mœ1cADÚø¥[´è‡n#Û_z¦‘c³f&mÌæ‡!EŒIÌ"˜•!36lØìÞ{ïÓaüñÇ êÏ é^½Ú©jηˆ ,"€´qòä-º3g.tH4¨ZQ#mlßÝÆí²˜²Ee%DÀ˜ÄfÁ GéÌ;ï|*F/SÜ[oÍrk×nt‡ÒRu{õ:PÛ Ï¤eÀÈ&@è6NžÅ¥­Z5*§\Y2†@… `Lb…Àn‰•åË׸#¦«ÑËÌu5kÖpGYÄ0"i¬U«F%)‰eÓ(=H£Î¾ÑmôÒF$Œ~‰KjÓë-=ÎöfÞ!`LbÞ}Ë!§,[¶ZFt?üðs•(¢»Ø»wÑel# dõ<͹eËÈ.¸”ŠJÑq\°`¹ê6I½ žæ®uë]²›¸Åf”Æ$–Ö–’!P8|÷Ýj÷ÚkSÕèeâÄyê‡îè£÷W£—nÝÚ¸í¶Û¶p k%12@`Ét‹vˆa‰zúô²eæ‡û-~›ë¹I3Ô‚äÆ$æÃW°<•Ç×^›¦KÒ0Œø]„aìÓ§½úcD§ÑȨjxi# #?¤_]$mÜ{ïÆºDíÝ𘴱ªÕŽJS^c+ͧ²Œ•üÒ Ã8E¥*õêÕrìðÒ§OÝñ¥zõm*A),‹†@nXºt•2‹è7Â8N›öµJÙ †ŸìƒäÑœÜçæX¬%BÀ˜ÄÁe *ŠÀÇìn½õÖ•~ýúmݲeuÜÒ¥µÜªUÛ‰•t ûì.sõê­/Q<¸d<òÈ#²íâŽ%{ÉB‡ :Ô½øâ‹áu.O‚ š[³¦º[¹r;·zuM=®[W$y¯Sg“;à€¥Òn~Êe,îE`È!âʬ̫8ÏÙ´¾@+ˆËÈ&ß|ó{þùçÝæÍ›3޶fÍÍn·ÝV¹v햺ι=öX)º‹3~ß– ¥K—ê7Z·n]É^´ÐŘ9s¦ìJôV±{¹º¨V-kèÒNÖ¸½÷^.KЋ\—.‹d2µÜ5l¸ÖÄ\_Àñ.\¸PûŸ~ÊÎäÂÌ ¸²XÑ l#ðÌ3ψ³mÝ—m\³ßûï¿/: ¿ÊFTU>ŽfÍš¹çž{®Êã`T>^}õUwâ‰'f-ã&IÌ”‘!`†€!`…ƒ€1‰…ó-­$†€!`†€!`d c³¥Ed†€!`†@á `Lbá|K+‰!`†€!`YCÀ˜Ä¬Ai†@¾ ðôÓO»?ýéO9ÏÎïÿ{wì±ÇûsÎ9åq#C <(º>a­ã_}õU±"­ZµJïgܸþò—¿¸ƒ>X]8uêÔÉwÞynñâÅÅÒ,‹O>ù¤X›¦üñîòË/wÿûßÿrš…/¿üRÓÆ£Ä¦M›ÜòåËsš^ºÈIL‡=7 J‡ù|ó|3Æ}÷Ýwn¿ýöÓßÞ{ï-Û±MWëBü¹F <êú’%KÜÈ‘#Å—ãêbÅY»v­Þ_°`A±û%½X´h‘8Ûÿ¥û׿þå?üpwçwÊ®MG«…9Ì"n‰Ê“–-[¦åÚyçö½Ûn»¹§žzÊrÈ!F.WôÃ?hÚ?þø£lJ0Ü5hÐÀmÜXq®ÃŒIÌÕ—¶x *ŒÀúõëµ#ůâ¼yóÜŒ3 |wÑáOš4)ìøN$ΖtV¬X"8yòd÷ᇊãá5á=N´`éÔéTçÏŸ_ì9+W®tt¼t´ãÇwsæÌ Ãlذ!”T|úé§î£>rÜ‹eñt²CÆZõAÖ­[7wûí·ëïž{îqo¿ý¶vì8eöDx˜Ç#FÈÖl_ûÛz-'ƒOôæðe;É ¨»ø¨äÿ÷¿ÿu0Tõ‘úFý‡ð_É÷¥>yòíÄ×/Â0ñ˜5k–£®E‰º@ý$,é19I$Ò&NÚÃ;ï¼£G&]]O¬ÛH±Jãs3® ´EÚkb;½öÚkUB‡ÓþÛn»Í}öÙnÒ~‚w.½ôR-Xûí·¾H*iÓ¨ÿVòM[£ÏˆÞÿþûïÌ(ßÉç!]¿sñŇmûá‡v>ø ¶Ï7ß|³X’¥ç$ë»Û5ýþ £Äwôu‰2Fûœh¸œŸKÅ02 C Y>eÄ dˆ çÊ`¦á8â=ò®H ‚ž={†×¿øÅ/¸‚®]»ÂhùWéÙ) ¸ÿþûƒiÓ¦â³.¨[·nPM<ï±ÇÁìÙ³5ì{ï½Ô¯_?Øf›m4üAl¿ýöú쪫® :tè ç²$´mÛ6©@°ÝvÛiúøÃôÙ+¯¼¢×â_0|FXaäô9¤qÁèµ0€þÝwßÕë]wÝ50`€žGÿöÚk¯ W¯^zK"-ùôù½úê«õÙœ~úézþÅ_hÜ¿ûÝïôZ–ß‚êÕ«²û‡^§û;v¬¾/aº ö<¾Í¢ø£þýûM›6 š7o®øó©/»ì²‹^S÷e·"­S<£^{z衇´î ãÜu×]ZëÕ«§ïQ„1Р×\sM÷N;íì³Ï>ÁYg¥Ï¢uú}衇jœ5d‹£:uê„õ']]O¬Û²Ô4jÔHÓ6l˜¦/̫Ϻe)Xï?úè£zWY×ü/09ꨣ™i ¾Wƒ?ÿùÏÅâö”ð´#Q! è7<Í;WŸM™2Eo‰TUÛ:ái;´Oú"ˆxößÿð¹HSö;¾-É2»¾ëÿH‡¸Ÿxâ ½—^\ßEÝi©6¸ù曃֭[ëõÔ©S5 ð¢¾ý¡L6Âðq'þ;Ó·f†š$Q¾€‘!`äðt†,ƒ‡ÃÙ3³cfÑ8åF2ˆîÏ©§žê¤SgÍ/¿ü²“ÎÑýæ7¿qt2«$÷7nìd`UiÊ™gžé„TI KnqºKÂXºAƒ©ð±Çsüdà ½û„à³Ï>SéË•W^>»è¢‹œ0·z“åË.»ÌqôDÚ8^æG¼ýúõsÂð©4„0×]w–S4•˜²¤và 7¨¤]'Ê ãYìÈ}aŒÃ´õ¡ýå%H‡Ñ§Còsä‘GºxÀ £¨õ¶oß¾Õ™àèRê /¼–]Œ/“'Œ Öw¤J|û7ÞxC%^HiHÛÐÛ&³˜4<Œìç$—Ÿþ¹ÖçcŽ9Fõú¢ÒèTu=±n³Ü‹$-S"o©Ê@~ž{î¹*¥= ¥í©"ým9uîÜYoÓ¦Ò}BíÚµñ#D¿Q&]¡T–UŒŽ;ª„R&g)ûŸÎ¨Q£Â¶}ÇwhöÜsOÕ$L\z©ú.wº#ËÚ¾®°z!“t¯äæy8M‹Â0 ÒJ'Nœ¨ÈÈo8;æ† „z- a ËfÒYÊѰ2h½{÷ÖsQjÕªÈÒSÀ ›Ù1?føÒ#†RÿýïO)ID‚¥–-[H€ü¬ÛK' CšH,3!$HkD_IH É— $áÌ)“—\ú8‘j"Ù@"Ix(ƒ3Î8#8á„ô ùëÞ½»%íQ }×$‰i¡Š PI"ÒnO7Þxc€dL˜½% ¢Jµ¸@â†T œ,ë¹è¹iF:(º­×H‘ÚËÒ©Jª©cÂHù$T–J’xýõׇáD­Cë„LÈÊT×ÓIer[$©ÔsYÈ?Ù$@’î%gÂ…ùŽžø¾‡wâ$‰HÚHƒvåÓ‰¡Þ£}s‡vD @£ëw|[jذaض釈ÿ”SNQ oºôRõ]$ž‰$Q&¬ÁK/½¤i–D*èû´’¼Å;áÜ$‰òÑ C G¥1ËÒeVHÈ éT‰³fô¬Ð¥BºIÇ®çH"Û·oïZµj¥zY^¯Ù¶§¨tÏßóGa ý©e-”\r£E‹áséÀUç+¼‘æ‰úDüÐqB_ =K¤GèqéE”À…²ÊÒ Zr"9’ås•LȲ“JGíŽ;î¸èkvž§4iÒ$Ìu:$ ‰Þ£®SÏ¡“O>Yöc®á–óÆÃtÒIz+eŒ#¶qDz„ºDÝ—¥dƒ?¤Y©(Z—©ç×mã<ú<ÓºîË‚®c”¼þ,Ï)Wª2xÄÓN;ÍÉDHè"A¥MCHÚ“‘×gŽæÛ‡CÂæÉ§ÁJƒOã–[nQ ®×­¤m!i„0IÕïø8_ýõ°m£Í·¡ŸB š.½T}—;zD5_É–›óõËX¾ @€eãL¦P¤jÊX‰þ¡ëÓ§¾ÆrHvt)Y¤ÚáÿíoÓA˜Q%ö¸å(ÜIx¢CÝ¢bKÆÑçãÆ+öÌ¿—éQt­œè´é’åg F±Ýƒ KÔ0µ00XM `ÙÙ£GÇ2$ï“èQËô¤ËåŽ;îèDJ®Œß‘úŽAõ b ,DÕÁD¡š€ŠE´ž“F¦uÃ(:*M]÷ï£"%Ú$Äó¸2ÀDÃä¢^ŸH¼tò³¤ sS Áﱆ Cvï½÷ªê‰HéUýB$d†¿¨Œ5t÷Ýw‡i?ŒÊDJ«ÏÿRõ;‰á¸¦-‹þ±>bù<]z©ú.W´¨¹ä+eÖƒçkî-_†€!P0pz½¬_ÿú×*a¡`²<çÐ Dqß}÷ÕÙ¿,½©dæ ½¤Ììœ  ô ‘„ÀtÒA‹a@^–ª5n¬“ñ‰æ ßh²ì£—0wä‡A"Žd™JõÑC\HøI©(D9!A”víÚ9B˜Dò€’Ñhû+`Ló‘¬A0P¢nàî»ï>•:¢Ÿ‡dNŒTt!K›Z¿‘œ¡ïÇTxEôï°¶GêȤÅSªºžX·Ÿ}öYÇ„ BЇ‹$s¸eÑDʆ&îŸÄh,¶ ´¬ŽIËlÞ¥ý¡w ɽJæ˜$1Y„Q¦ÓF‚òb%Ëo˜GDYZ×ûü±Z@^Àþo`Jû•åÿ0\ô$U¿ =Gú¡7š.½T}ïS? Γ‘—S/N.§÷ÖŸíÒ0 ­ðzA%µnæNãɇêÖxKCôµ¤cS=)Ÿz{Ü÷þV€n:}"©Qëc¬Nѯ‚Dê¢˼#³ükŨu³,ñj8¬›eI+ ‹Þ  vúÌëïð.ñ`‰>¤(úësþgÝ,†,aX"F7št˰Ö>ì°Ã4~ò‰¾š·%¼ ¸Z>t!t¥(ï…^¨×™þy=*ÓI̱äáJª“(îYÔ¢ØÇ&.\‘¬ùË}=ô=¡[ˆN*z«â¢ÅßÄÀIõo©ü„± õ± §NPGÑg“ D1ëf_×…©P«~Ò#,–ú¾=¥«ë‰ÖÍçŸ~ RÌ0XS}>ˆŸtE" Wanµ\¼ÇOXð{‡ÜÕè3‹_ôÁ‚6I[Aw“çèi¢—ɹ·nF¿}cÿ>}‡ï/ÐIô8ù49&ëwÄÈNãH´nFGýiY¦Ö(âÒ‹ë»èOùÆä“oIùÄǪÆ) ®ÞG'½U¾7ádbªÏÓýùï,ÒtA3y>îÔÈ0 XJÊ$ÆF–â¡H%T‘=ñ±ø… dÙ,€ÑL$‘¬¨›˜NcÏ$FÃÁ$¢$O<²„¼„ñ*Ïè„1(ÈáÊw²„*Îg;c³ƒhI™Ä’¦ cƒ50ñq0Aà;z£Ÿ# 0*0)Þp%&Q$æêZ&jŒE˜lÕuŒÎ˜ìÁ4&£¸2øw“µeF\` Ò35Áˆ ÷8”¢-ñ¾7@ñïù£oçâŸPÛ¼¿Ÿê˜ªßI>ñ~\z MySQL++ Reference Manual MySQL++: Class Members - Functions
MySQL++  3.2.5
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1InitCommandOption-members.html000755 000765 000024 00000015311 13515046515 027636 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::InitCommandOption Member List

This is the complete list of members for mysqlpp::InitCommandOption, including all inherited members.

arg_mysqlpp::DataOption< T >protected
ArgType typedefmysqlpp::DataOption< T >
DataOption(const T &arg)mysqlpp::DataOption< T >inlineprotected
err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
set(DBDriver *dbd)=0mysqlpp::Optionpure virtual
~Option()mysqlpp::Optioninlinevirtual
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1TypeLookupFailed__inherit__graph.png000644 000765 000024 00000021314 13515046516 031052 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÆ·Iå!9sRGB®Îé"†IDATxí]¸TÕñz—©D!¥Ù0QÁ€HD¢H”ˆ‚‘^‚QD"˜ªô*½÷Þ{çüç7þÏå¾}»o÷ñö¾}wßÌ÷í»÷ôs~gfÎÌÜ»û2cÆ‘’" $@  †I£ E@ ŒŠ" $F@#1&š£艡< C s°L?ä]¼x‘Î;燩¦Û9æÊ•‹ræÌéËõûV0Ž;FÛ·o÷%èéeÒ¥K—¦’%Kúr¹¾  ={vªQ£†/÷I/]ºÔ×KTçÛ×Û§“÷  ¯Õ~}€ †¯·O'ï*^!«ýú _oŸNÞ+T0Ù .ÐÙ³gCbÜ»wo8p`Èò´Z¸®–-[Ò„ ÒêtÓÔ¼|®’/½ô’ÇäÉ“ƒv¹aÃÂÃ*¿Qຠ(W®\ñÛ2b2ßtwb¬\¹’-ZDçÏŸÀ?.÷`š8›€ˆ¨ÈHxOÝoܸ!uÓÈ›zÎ=ŸtôèQ'ìãaMlÚ9ÅwÜqGßýXÂ;i ôägÜDÆ¢§×™3gÛñâT²6'0+$ ,H¬ç嬥«Mƒ¹ PˆbÁYÆ‘®¾}ûJ}0d¿~ý¨\¹r6Åœ@lÆŸΘìWP›6mdÜ¢E‹R½zõœþÐçСC©iÓ¦ÒÜA8èVàœ 7EŠ¡uëÖ%p¸‰»[ðš§‹dºŒQ£FÑ«¯¾*‘˜ *À~W€Za.v’©aÆ„+´:Ž]'òŽ£ûÊ»;]¿~}b?€zôè!Z{Ú´iôä“OJ¤‰mzñÅ Úož²¿C­[·–±7n,WîÁƒ©W¯^4iÒ$bXæÃ¿N<ê#Êe ãaÎãÇ'ÔÅ<@îuÙº¸bNè«{÷îÒŽÍbóž}öYwµô}ÖXL£’ëcÀÁ…ˆ"8l.9Q­ÿûßb÷ßwß}²ÚN:‰MÍœaX»šºuëfb) •>|¸Ad mñamoøá¡ùðÃ%ÍáQégË–-&Gކ…EÒ6J„6°ï¿üòKɇSýôÓO;ýY? …ÖùF4 íà¤7hÐÀ°é%m×Åßp¢R|Z  - …á0´´ƒ‚(•%DÕPÇÎÝæ'uõ»áÛ_ IÁÑ¥d}ÚÚ&Û.çM ÌŒEyòäAR47;Äβh^ÉŒðžcÀƒ8NR]À—À‰èo ]/̰üùóK7S¦L!vîåÙÌ4E˘î1p²¸×å.éÁ)ŠÜ>…»Î­Þg˜l~ý¢RºŒ[Ýä´ÚÎ-`þ´D~Œtãc¤%¦‰Ö\à'áŒéÝQŽžî~Ò–šqÏLïÃ"¯·(E=1¢©ö¨`¤‘M¼pá ¿ x)ÌF§ákS o¸†{Êë—-ž6m¿{ŸQÜã—)'9O¿?%÷µ`àµèõë×'¹A~)üúëEv5T¶¬¯·Ä/p‡§oõaWæ£ 'Nœç÷³zÈ+«Võâg ·ùhöñ9Uõ1ÒÀ¾~ûí™E¦LhÊ”Ui`F:Œ4ÀãÇãWû ¿½jhܸei`F:ŒóÀþý§hÅŠÝüf­Sjýúý´k×ͯ»ÆxzévxŒoý”)+ù]¦LÎ,2gÎȯª¯tÒzT0bƒ»3*L§k×~þadâ^Í)ž˜Ý¨`Ä z¢mێЖ-‡xx«û&Á”Z·nÿÍ ½KuT0Rò›Nœ¸‚_i¿iFÙä©9eшÍU#6¸Ë¨ˆF]½šø÷š7aBd_§áôãzhŒmïêÕ{ø‹V§BŽ~äÈZ²dGÈr-ð oñ Ù;L¥`f”m€²I“4:eñHí« Fj#Îãñw¥ÙTZÔŒ²Ó9á¹~ýfÄÊ–éÕ{T0¼Ç8Ñ?þ¸Nœ8ÇÏ/2òÏíd’N|²fÍ,ÜŸ9s‘æÎÝœ¨½fx€¾Êé=ƉFÈž= õîÝ(A>œm¼ªÝ¬ÙoäçÊ•-AZ©ƒ€¾]›:8‡¥}ûÑü}Œkôé§­ÂÖÕ Þ# ¦”÷ë>D@Ç›¦Sö ï1Ö|ˆ€ †7M§ì=*Þc¬#ø nšNÙ{T0¼ÇXGð!*>Ü4²÷¨`x±ŽàCT0|¸i:eïPÁðcÁ‡¨`øpÓtÊÞ# ‚á=Æ:‚PÁðá¦é”½G@Ã{Œu" ‚áÃMÓ){€ †÷ë>D@Ç›¦Sö ï1Ö|ˆ€ †7M§ì=*Þc¬#ø nšNÙ{T0¼ÇXGð!*>Ü4²÷¨`x±ŽàCT0|¸i:eïPÁðcÁ‡¨`øpÓtÊÞ# ‚á=Æ:‚PÁðá¦é”½G@Ã{Œu" ‚áÃMÓ){€ †÷ë>D &ÿQi×®]tçwú.列%K!î<ÿÃÊÃÞ âÞ7mÚDåÊ•Kõ™Çôð½ýöÛt×]w¥ú¢uÀ´ÀîÝ»©S§N1›hLã‘G¡ßüæ71[¼œvøé§Ÿb*êc¤]ÞЙÅŒ‚¯C§]T0ÒîÞèÌbˆ€ F ÁסÓ.1u¾Ó., g†ðr»víhÔ¨QT´hÑ„…QL5mÚ”Î;´ÇaÆQéÒ¥ƒ–y™yòäIÊ•+eÍš•¶lÙB:t ýë_T¸pa/‡yßzbD°§OŸ¦ï¾ûŽ.\¸Aí[¯2sæL:vì/^<Ñ'K–,·Þq Z*TˆÆ/=\¿~]÷Æ)èÑM}qb\¾|™:uŠî»ï>Ѩ¨päÈÊ›7¯Ì}a^ túÀ\3fÌ(s5ÆÐ¥K—([¶l’‡J7¦.]º8õÝ7XG† ¨X±b’¹>|XÖŠu€qW¯^MgÏž¥š5kʶýµk×+\ï¹çÊ”)“9s†0œ9sÒÒ¥KéöÛo§²eËJ°DÙ¡C‡d=ȇ ø¯[·Ž0/ìöÇò°n¬oíÚµò¼ÊÎÛÖIÓW^xªÓÎ; ƒbx#"{ñâÅRÿ¡‡’+ÚÖ®]ÛÔ«WÏIßÿý†Å<ðÀæÁtúeF5̆M³fÍÃŒnXp 3˜aÍl6nÜ(uçÎkòçÏo˜i¥~µjÕ 3›”1³É8[·n5“'O–û:uê6/ä¾|ùòfïÞ½RyÌ”Ò ªa†3ß|ó3ŒÑ¾}{IÏš5KÚÏ™3GÒ,P¦_¿~NÝÀ›×^{Mú]²d‰!={vÃÊÁðI#ã4“'OóÙgŸI½Í›7Ìe™3g6EŠ1ÀôÜsÏI+g=­[·–2>-¤ 08p ´AØ¿'NÎ(³¸uëÖMÚá ‰ìæüÑî“O>qÊÃÝ`¯Ð†•O¸ªž”C#¤:ݪ`<õÔSfÿþýfðàÁ˜“5“;v¬¤ÁÀÇæfM*ëúøã ŒÓ¤IS«V-ÚUú©Zµªa›YŠ_Q1?ü°á'®fÛ¶m²±I FóæÍ ›VÂjÑ¢…ŒÁ`?İ_bΟ?ož~úiÚӰ—òž={šI“&É=ÚvîÜY  ּ¬`Xû±ÂrñâEaâŠ+šÙ³gË:‡ "}½òÊ+Ì Aç“OÚ²f7¬Õ ”ŸjR†97lØÐ`½(Ã`@`\ LHO™2Eú… }õÕWroö¸aÝ;vì2ÛîÿûŸ¤!ùòåæÀ{¼#%Œ²bOveóF-­Ù4Aøè£¤ìÑG5 4û7ß|S4lÿþý „' >ÐÀ`·fïÑ£G’'†=iÐ1úÅé‚`ôéÓGîñgÅŠÒ÷¢E‹œ¼P7 0p«V­|øÕ§É²eËDëƒaqb‚¹A`ĶmÛ:õ @ØI68-°¶®]»Ê\0Ÿ?üPò°ÍMì䛎;JV(ÁÀxöd±m!˜„ràbéƒ>Á·ép×X †/| ÞX!6äÊ›%×2eÊÈv7ˆÁ»öñǧ &ŸÄš•XJ9o?~œøÄ;ž7ÆŒ#~*Ô¨QCêáO oáüÿû%H8¨ðG,¹Ë¬=ß#úÃþÒÇ@{6ñ¨J•*Äš˜^~ùeñ9`ë³ 8¾ê!zÖ²eKbI1b}ñÅr?pðaÿƒ£]˜sRóµãÁ·röÁKÀÅ|6ø7~!_E¥à´FBlÖÛí4räHqºÙtfˆú°,+kNa8ºváà[bÁÞ½²yàä/X° ¹Ë~üñG©NМÎÂÜ`M˜;”^²ƒó \ÀÌDXâSÚ´iã„Ußÿ}b?H>hÿî»ï:o­ºç‹ÈÛªU«¬Çöi¯v<,±ÙH|:%hg–­ã§kdœæ§ñ\Ùt’Ø{÷îÝ ÏØA•à9Ä«¯¾*Q” *Èé‚h 40«oß¾eâcœØ7IrÕljI]Di؉¦úõë;õñÌ1DlØ ’%KJt ؼ ‰'J]0æ³}ûv§-ò¦M›–胉m{bG~úôérJýío“¶ˆf±_ }C¨Ù1—Èèî»ï¦¡C‡Ö…HNÌÑ0§*NS(D»ž|òI)C¤ý!ÏMX/›®Äæ§”á︠p¶žåpÞ¼dG¥àhƒà𡽬°Ö”4"F–`ÿ¢ÎÂ… m–™7ožØ¾ˆHÁàPª±¶??§çmia³Êñ1¬½ëŽJ¡uaƒÃ‡Ã B¿÷Þ{¯‰A4È=‡¤¢RN–>Ñoàó«[·®8ö"–±l‚É0SµÃúµƒ/‚?¿Áö ûß®>¿úï¬ó0`€´ÃŸfÍšI;äY_û‡hèx!úÄŠÇiÇÊÀ 4ÈI£ ‘²HÉb®Q©H‹°B™ˆðÒÕ«W ›7N4Å]ލ6‚†(‹J¹ëØp-úaMolôËÖ` Âæu;è¶Üë+”Gàœ0&æË¦ág8roçÁhÔ¨‘SÎÏYl‘såç¤p2þÿŽ?"xˆÂ}&~høƒŸ—7s‰` â3nܸ¸1¥ á—Z©k×¥ü} CƵæïQèAn1õò“vŒ`ט^È›W‚¡šÌ¼Y³6ÐÅ‹‹¸UÊ—¯<=ñDäÏR’9”VUMåeµ‰Wð)‘‰2gÎÀï­ðr(í;BT0"Ê«j/^¥3ÖòoÖ^çײoð ‰ëùk¤—½NûŒòªÚ?¬ã·So~Oáúõ4}úÍ×¹½WûMŒ¤ññ¼t„åü}ŠŸ¿h…Áð+ä)ÅŒâúôEþ†Ý&ŽFÝü9D¦.ÜÊßþûR1œnºZ#†Ûýí·køë¸‰'€§N]¸@sR ŒTƒ:ñ@&,“ï©–àÕqã–fk:PÁHE°ÝC>|†àl'ÿhYâ#ƒ¿ðÃ_CÝË_Á=én¢÷©ˆ€ F*‚íjÊ”Uük€7nwîñ\cÒ¤•ÙšN%T0R èÀaÆ[–Àé,Çsñã—fk:•PÁH% ÝÃìÜyŒêfPÇÛ]oÛ¶Ãü“4‡ÜYzŸJÄä]©TZ[šfõê=ü“=%øœ’ù-šÏ™7žoÀ×(Wîçšs ôÆsbòÕVÏWåÃÚ·-OÀ?ý´•gSVS*þöTWT0¢¢v¨`Äߞꊢ€€ F@Ô.âŒøÛS]QPÁˆˆÚEü! ‚{ª+Š*QQ»ˆ?T0âoOuEQ@@# jñ‡€ Füí©®( ¨`DDí"þPÁˆ¿=ÕEŒ(€¨]Ä*ñ·§º¢(  ‚µ‹øC@#þöTWT0¢¢v¨`Äߞꊢ€€ F@Ô.âŒøÛS]QPÁˆˆÚEü! ‚{ª+Š*QQ»ˆ?T0âoOuEQ@@# jñ‡€ Füí©®( ¨`DDí"þPÁˆ¿=ÕEŒ(€¨]Ä*ñ·§º¢(  ‚µ‹øC@#þöTWýG¥Å‹Ó Aƒ¢Ðµv‘ÊÅÿzŒ¨hÑóÉi¦u£€À+¯¼Bµk×NÐS¢ÿÁ·wï^þo¡ã©nݺ *jÂ[2òÙÏ‘#ÞŽ£½'D`Þ¼yÔ°aÃð‚a›õêÕËÞêUˆ[{ì± kS#(,š™ÞPÁHï ëŠ€ FPX43½# ‚‘Þ9@×DQ© µÒpæ?ü@7n¤:x6ËÒñãÇCöÿüƒ²fͲüV –.]J&L >}úPöìÙo¥‹ mvîÜI}ôõëײdɴέdnÛ¶>ùä“ M~øaúýï´ ™ˆ„:”þþ÷¿Ó•+WäqAçÎé¿øEÈ6Á V¯^McÇŽ¥wÞy'Xq²ò|/uݺuÉZtr+.\ØaÎ+VЩS§è‘GIn7ɪ„ã¶Ë–-£ëׯ'«]¸ÊgΜ‘~oà¡I ˜`¾x'Ož=çÎ;A:0¹\¼x‘Œ1tîÜ9éçòåËÕ¦OŸ>Mk×® [/’ ) Hø‰'èöÛoçüY`éÒ¥ùaÕ Ú½{·h€»îº‹2gÎL‡¦9rÐm·ÝæÌíèÑ£’gÁÛ²e ]½z•ÐêZpÛ·o§%JP¶lÙ„9‹)b‹åzþüy§H¾|ù¤> ÑçÙ³g©@´gÏÙ€2eÊ8Z›‚µ@‹fä îô‹/¾(ýã4-´£=¡°`ŠB… 9uÀ|ØXŒŸÔ˜hÆßµk—\S¦L™œ~Âݓ͛7Kµ²eËRΜ9&À§ð–îù9•øæÚµktìØ1afÌ8,XPª öØ[ôn-h¬0^(B$Ìמ„Å‹§Þ½{SÞ¼yéäÉ“‰šb_±œ {Ž=~P^Ѥ ˜ä/ù U©R…p”*Uª$¦´+¨B… 4dÈêÛ·¯Èûï¿/ù`¨gŸ}–ðämºvíJ`´K—. ï½÷•,Y’Ö¬YCݺu#”!CúÕ¯~%Ì=cÆ éÇþA¿,€ ¦Á¦?þøã„cyÉ’%Ô½{wª\¹2mذAÊÐ÷»ï¾+¿råJzã7hðàÁ²–À´#ð:sæL>|¸˜=:6LÕ¤I“$ÇÄi‡uAP!Œ` ˜eÀ+ýôÓOÔ³gOÁ cA(¾÷Þ{…±VÔÉ•+—àöÜsÏÑŸþô§Ý‚©0>Ö=iÒ$ÁoذaRïСCÔ¢E 9r$á>)üt$ýèØ±#mÚ´IæŠ=Æ|þøÇ?Špƒ‡¾þúëD-/ø{‰uV«VMÖ E ¾Ï€/@à‹hQÔœolž˜c8ΠyÆ'Àƒ!ÕõêՓͲZaþüùÂè=ô}ùå— ӦM“~ÀdS§N@ @Ðîõlû` €É Í¿ÿþ{Ï?þèT…ÖùöÛo髯¾"hvkCAH­F L;ÜÀ~†°b- ;Öj)Ô˜XN¿/¾ø‚¦OŸNåË—åÓ*)¶ýû÷§»ï¾›þóŸÿ0«X±¢äÙÑNë1cÆHy§Nd½«V­rºÅ‰¦‚&†Ò‚’ˆ„B­Å¶ž8Uíþ sÜ·oŸÌ ÷/½ô’Ì Šöïß/þBýúõiÊ”)ÒBÿüsY°EM0 YZ5dnX Ž`›†ÆyðÁE3Z&š3gU¯^]4e±bÅDs€ù±@h­?ÿùÏ´uëVÑV5’ãõp „¢_þò—bÿC£ÞwÜ!šÅÖoÙ²¥0£íÇžrH·mÛÖŒÀ´mx…W­Z•æÎ+EXÌ!÷+5ÁÆP¿ýíoE냑¡ ‘“$)&0Kñ*LT˜7“Н9Üÿý²vô`÷ã´Ô¥KZ¾|9ýóŸÿ$˜2‘R°µ¸ÛB«Ãì²hzÅÇ,ù‹-E ¡¸pá‚»y‚{`‰öµjÕ" Nœ¦ðe`¾ãôyæ™g{KÀy‚Žn!‘bSÊŽiÍk#ƒ±@Ц hA˜ `0¦ÄQ‚`ÁŒÂ©óé§ŸŠP¡Ìžnó"){²hÑ¢ÒŸý;ßö<{"àe3¥„M‡ö‡@CØÁ”ÖgBßÁÆ„€p*~÷Ýwr?P.ÐúI|9ìtKÖ/ÀZá3à„uöǽVØú(DõÚ´iã®êÜ›G°µ8 ø¦]»vA} øxÍãÂO/„#?§› pa&‚~ýë_;EÑ4¥¢&VœY†¸Á×€9çºfÍšRÚëùçŸ;Ç;lÛ—_~YÊ.Ó€r(SX‚†A_Ðè–ÐNL¾¤„̶ w…FC¸k‚°#Äê¦`cÚµüõ¯uÌ.05Ì0´a(²Jf…]|+~ÇŽNshfœBnóîƒ>ó &%LYöÐjx4vr[‹3P7£FŒ`Ai,\¸ÐaîPͰNœˆ0 m`ÁD®`€°N‹¥ D„ê/9ùQ3¥"ôhÄgŸ}&§†ÿÃÆF,G#"WˆZ@ @»À® pö¡eCdÖ¬Y¢±ØhkΡ ÆE?Ðì@»ƒ`‚€YpdKKfˆ?pl]l:NE7‰uNœ8QÖ„ñß~ûmñyÜÏ`6Àô°Ì'˜L ë&åÊ•#œÔXÌœÌðGð<SÖ„9NÄýaÁ¤Bh¡€?HÁÖX'X¦öŒ_Ãú nA l‡u`^§10xë­·$‚“"þü‚x¸Xs6°Ÿ[IGíÄ7¸=Q 0£à?ñÄN3D'‘iÖ¬™€gðõ×_M{e 4­P°–lßHCc‚ÁZ“âÄ“º`Á©ÆG?Ð8`àV­ZI>Q™:uês¦¥ÿqeóp…6†@âŠÍwS°1arÂùíÑ£‡s*ÂDèÕ«—ÌÍŽƒ—› anœL­[·–9AЬÉ5CÐÐúÁ|€%„ßöâµ×^#8çžG}”&Ož,íÀI‚SÉMÁÖ‚r;_{u·Á½Ý_ì9æÓ¼ysñ“ ³[r·‡RD þæ7ß|#UpBbÏ Œ€A/^#Ö‹vØ;<%ú¢@‡C3{öìhô´,Mà&h<€½lÍ[{Z ùÐ `þÀp-f˜ Î,L«}!7‚yíóhœhÑúõë fŽ}á‰dL¬sÅñë£E2/`²‹£}`0½5/Ð>Ýä4ÁÉF„ÐþN$w›HÖ®¬ó>ØDÆpÚYÿ(T{„cö+/`.£ ëwûu¡ú ÌÇkçàCø¸nJ¨ÚÜ%ÜCÛ 2³ LH` „ƒ´€EBè'©‡Lz$}&UŠ5!Âf…"°~¨1ÃÍ5°w˜¸pw4(˜%¹„vÌØG¨µÖ Lc­î=„ๅ/°¾MãQ€;øbóq…¹ 2Ú”ª‚óÎlÛP_‰d°ÝÑÛ6r¨W `ßâ9„c›ƒà›¼Ó=NjÜÇÓZ"Á+&¦T$Ó:Š@j Ê”Jõ¨Tj,VÇPRŠ€ FJÔöq‰€ F\n«.*¥„t¾VRâP bÿM›6wj½B@! jÄZ‡T ! „€B q# ‚ظϟZ/„€B@ZG@A*µ©*B@!PÜÿýaðàÁáæ›o®“ƒ~ùå—ᤓNÊ[÷†n.½ôRß>tèÐpÙe—…÷Þ{/Ìš5+¬ºêªáÜsÏ ;ì°ƒoÿàƒÂ9çœS¡®å—_>pÀ¡ÿþ¡yóz«_~ùÅ÷{ã7Â×_VXa/sÆg„6mÚTØ¿¡ü™>}z˜7o^X|ñÅÃ_|þð‡?x$|çÎJ«Õi«— ! „€hX ><¼õÖ[uÖ¨EY$ôêÕ+óyá…Â?þ˜ùßµkW?öÓO?6Ûl³0nܸpÖYg…ÓN;-Ì™3'ì¸ãŽáÑGõ2ì÷ÜsÏ…e–Y&¬±Æa•UV _}õUØzë­ÃM7Ýäe¾ÿþûЧOŸðÐC…½öÚ+üùÏö²ÐC9¤ÎúYÓŠ÷»ß…C=Ô«(N:5ÌŸ?¿¦Õ.¼ý‰B@!AàŽ;îH–\rÉÌÿª~úé§ä‡~HŒ$ï¼óNbÇw™6mZòæ›o&F€2U˜6,¡|Z¾ùæ›dÒ¤I™Uï¾ûnb„/1‚‘YÇ”)S’&&LH¨{ôèѾý¼óÎKÖ[o=_6Í[òóÏ?'³gÏöcyôõ|™F/ùî»ïüÿgŸ}– 4È×ÅFfÓ‚y?Xgä.™1cFÜœùµ@ÉÅ_œùÏåL˜l¾ùæêœ;wn²ÖZk%=zôðòF.c<ɰaÃ2ûsÜõ×_ß˱Òrú%¦%LL —)ÃÂE]äûš–2³ìþóŸÿ$¦±L¨' ÓWúÌ9áx´™9sf2jÔ(ï§iG'°M }ÿðÃÎEÜ/nç?mxõÕWgÖsNvÛm·dÛm·MŒ û>ãǯ°o)mǬêìHWU¬:Û'†ê”VY! „€åŽ@u ¢iÊœuïÞÝ Œ™I“N8!1-™ÿ‡ýéOrØ6ÝtÓÄL©!–-Z´Hn¹å'$+®¸b²Øb‹%6“KÒ­[·"‡¼þúëI‡ê¦ül,ºè¢¾-M>øàdµÕVK–Zj©"DZ:ê(/÷ÔSOùÿ-¶Ø"³²䥗^òí¯½öšÿ?æ˜c’¥—^Ú—Ó_¹¢i}ß_|1]Ô—!aÏ<óŒ¸\‘Bx`bšH/³ÄK$G}t¥z ¯¦¥tÆÆK.¹Äñ ¯àÕ¯_¿ ùæœÐ·•W^Ùñ‡í¶ÛÎëûí·½­{ì±GfýŒ„R;ìÓ²eˤK—. û AŽÃ6H¬™““»ï¾ÛÏ7m`}ß¾}½<ËQ¤Ô¶úÎE|ÕA”‰ÙΠD! „@M0’N=õÔ`„/l³Í6áÖ[o F¾tûí·_`ú>逼ÿŸ|òI÷»ÛÿýÝw<ö;vlÀwí¶Ûns3íGLKŒpLʘaó‰‘J÷G4­^0òâ#h™âË-·\0-c1bD0M[Æ'ÐÈ©›†ùE¶ß~{÷£ËìX`ºµ×^»R©ž={†]wÝÕ§­‹ÁàÙgŸ ˜¥ñQ|â‰'‚‘DÇeòäÉauÖ‰E3¿mÛ¶ ¦¥ Ë.»l0Mj0b¸ë®»¼øüá+yþùçgʃ3Œ€e1›Ö5³Ý4‰Á_0òíþ’´kŽÅþ´e£6ò¶O Fô|=ÛÀŽöœ}öÙŽ7~”»ï¾{0Ílæ,ÔF[+TXODë hF! ÊHÕÉ'ŸL¶ÜrK¤ÀÏ´aÁÌŽNìè=dÑ4€NˆøÿØcyGÇŽDŠ k®¹Æ}ü ×^{mxÿý÷}ÿO<у5(wä‘G²{NYsÍ5ÐðA93ï: Š…/¼ðB'@ø²Ý4†¾‰ÿÛ4¡þÿ?ÓNúrU_Õõµcæ°0g¸çž{‚ióÂÿøÇ¢}ö ÖíÛ·‡v˜7¶SÇË/¿œi*ý†´·jÕʉ""‘eùòË/æJL£ê„‚ wü& :šæ1CÌM ë3ì|cÜ`ša?GøZæ“Úhk¾ºër½b]¢«º…€B I 5謙%=ƒhVÄL¸sù2Dòñøã»öÊüØ214Œ7ÜpCXwÝu0ši3 DÌté¿|E-_fEjb”H+šÍ(+­´R\ôv8RS!Øyþùç+Uef瀆]”!C†xæ«yä'×à©ÎUù :©„ÐŽ3Æ1ŠQÏÔ˾h£…@„à‘(éíh ÙFÄ4‚æm Ÿ«¯¾:˜¹ß #8½{÷ŽU¸6óðÃL͘Oj£­ùê®Ëõ"ˆu‰®êB@&$°XBr0;›¿¡›)Ù"…‰ó±G8)Áü‰ D* ‘¿ùäÛo¿ÍlB †2M(ÓÛ-ˆ¦Â¶ÌŽÕ\À´ IÂlœ-hÙ0óF’–½=û¿ùW†W^y¥¡¤ÌÃ?, ÅÍØæ>þøã ñf;˜¥ûYÕ9I“KöG0_#7Þx£sÈ9õ^wÝuÁüÄ~úé§^†/Ò ™¯fâ™ÙøëBm´5»Îúø/‚X(ëB@! ~E<Ì“\p›+#qŸ35þ‡«¯¾z@ÛØ®];×”¡$¿ ¾ƒ]n¿ýö¼xBhHƒ„Ó"šÃÎ;ïœ)‰™z0o[`JØe—]|¾äÈ‘þ­µA{GHgÃ>(>ør L½Å äŒ6ãIú4p˜¡©m¥xèǤ/5´±øÖDо’~‡”;àüùçŸû1ñ3$ÿâž{îé~“ø+BÒiùqÀ” ù¦=iûºhkúu±,‚X¨ªN! „€h2 ©Jk£XÎþŸB¸Ï>û¸ÖÉ"Œ3›ðÁ‹Ú>üë FE`ª&6I£-’9XJÏA˜ÙÑÒÚ2H‰­;uê䉚1‘n²É&™âøÚQÏA,¢:“äb 1âAËIK.I÷/n§ýgžy¦kÛ Y|ÐúQÇV[måÅb;ãoÜ7ýkiqœ¼BÀ,bص‚ä$ˆIò½òÊ+½Ÿ˜ß!º\$ûœøÊ_”çÑ{ðÁÝT™­á'Ÿ|â&pú|ÅWÚ·÷Þ{û9À Æì´ÓN~þÈ阖Únkºîº\nFôt]@u ! „€hL`ú%ѳå&¬³fÀ‚fÍòóU8†åØ –·ÏýéÒ¾‚‡h]Öãà ć/-˜¯-G¢,,ð ŒþqD ÈA@äóv4_§ë¨é2fm´‘hI ÉE&‹9/D¢º!jhS³Í'âÚì çüø…BÓ‚/"ÃìcrÍP6úŸ¦÷©«¶r fš9å”S<9yú˜5XžT±Ç5¨I» ! „€…À|K¤-ædL©Ù¹°\‰Ù«ý?šÇ\idr¦ˆM>ÉdÉW®”õ9RòÔT –ÌB‚žOmKUø‘*(— ™Í'uÕÖ|Ç«ézÄš"¨ý…€B@‰æ[r$2qLÑR䮊¡¹"?_¶a‹/—@P0Å2ïæÚOëš&217Íó®^ ! „@êÃÄœçÐZ-JB .LÌ R)éTh'! „€B@”/"ˆå{nÕ3! „€B@”„€bI°i'! „€B@”/ R)ßs«ž ! „@‰ìxas4kFÂåe,5ÍröYÖ’0mik>,±ÚM”Ž€‚TJÇN{ ! „@"0jÔ¨0tèÐzéÙìÙóèQSlö’É–óo²Í<Õf™gyôZYn¿%,Ryé°æšKÕK[tÆÀ:ë¬Sažèöf’b ÔîB@! ŠE`âÄi–{”M 7Ò>_Ù|Âã,ó¼Ð½{§°ñÆ=Œöðß=–.¶J•u€b] ª:…€B@€À·ßþÞ~{äwĈï}f‘UWíbD°§å%\@—Yf &"ˆ él¨-B@!и9òÇ „pìØ‰æSØ"¬³ÎòF{ºvpà {„%–X¤qwT­/wDËý «B@!P7$IbóõŽwBøöÛ_ùï„ SlÎà6¡OŸ3„pýõW ‹,Òªn¡Z…@Ý ‚X7¸ªV! „€(7æÍ›† û+!i¾„_…_~™Ú·o뾃hù¬½v·Ð¢…²È•ÛùobýAlb'\ÝB@" šøý÷¿ÎÂ!CFÛ<dzB§N‹;ÄB¸Új]JJœ"»¡bB DKAMû! „@ù!0sæœð~ ú2¼÷Þ×uË.»dØd“^î?!ìÕk™òë¼z$*" ‚XýB@¦‚ÀŒ³ZAÈà A#ÃŒ±„sà +t4BØÓI!¿Ë/¯<„MåšP?3ˆ f Ð‚B@”5Ó§Ïv¿AÈ ¤ðÿ sæÌ³„ÔKgÈ B4†!ÐÄAl›/„€(["!|ë­/LHJ‰“ñ‚OÏй³r–íE Ž•Š€b©Èi?! „€hX`2f–’HÑBW^¹³“ÁM7…ö K/½xÃj¸Z#"ˆ EB@!P  ò?Bˆ!&ã¨!ì×oeÂb€T!PÄʘhB@4DH;óÞ{£ÃÀ_Úg„GT²ÒJK‡~ýz…M7]Ù>=ƒ¦­kˆgOmjdˆ 6²¦æ ! š sçÎ÷ÈbÈ ¤pèÐQžv†¨b´ƒB~»tißd0QG…@=! ‚XO@ë0B@!PL]÷ÑGã\;øæ›#<âxÚ´YUŒv0ÂnÝ:TQ“6 !PCDk vB@ 0|øw2ˆ–Ô3L]ÇL%”l¶¤pe3!wªÁ´«% ‚XhÚE! JDàë¯ÊBˆá„ S|.c!ZBHá*«t)±ví&„@-! ‚XK@ª! „€ÈÀ÷ßO6BøE†Ž;)´kׯ¦­[ɵƒµÖꦹŒs`§UB`!" ‚¸Áס…€e‡&bò¢„Žñ}hݺeXý3&ã>}º‡–-›—]ßÕ!!PFˆ –ÑÉTW„€õŽÀŒsÂàÁ_e´„<ÎÛ€Ví Ÿ6êÚ¶mUïmÓ…€(Ä’¡ÓŽB@&ˆÀ¼yóÃûï o¼ñ…Þ{ïë@.Bf+Ù|óÞn6ÆŸ°}û¶MuY” "ˆes*Õ! „@ æ!?þ—гçÒ©µ¥-~öÙx×¾ñÆ‚HcRÏ,·\'ƒ[l±€j>ãÒ°Õ^B " ‚Ø@OŒš%„€(·ßN<ñ°Í6«‡k®Ù·ÚõH5„1Ò¸C‡E=õ ZBÌÆ=zÔœxV»aÚAúB`RËú:’Ž#„€u‹s_}õÂw¼nQÁ!¼üò§EpâÄiX2`ÑÆ_„Ñ£'˜Ï`k‹4îŽ;®¿›Ž×\s¹Fiø`L8þøûÚ?ü£ |A`jº´XòÎ;_e´„–4oÞ,¬»î ®Üb‹U‘Æ­[·HïÖè—gÏžÚ´ic¦ñ~6;˲¾?ꀨ?üðCxýõ×-÷è„бcǪv•±*„´]!Ð`¾â?ÿù¹ðÿ÷RhÑ¢YrØ¢Eó€VðÀ7~øÂ†‡wßfÍZX<ýôÜ|¼ØbmrWk­mguVØm·Ýj­>U$¯¾újøÍo~StSeb.*B@4,Akøå—?ŒAsçV6=ðÀ pÙeτɓg„.]Ú›†°w8à€Ýl¬À’†u>Õ!ÐAlHgCmB@ÀüùI¸ùæ—Ãu×ý×KÏŸÿ?“rzwLÍ_~ù]8çœ]šÂ^½–IoÖ²B /"ˆy¡Ñ! „@ÃC`äÈ-Bù¾€ß D±*™6mvØpÕD«JÛ…€¨€€æ:ª‡þ! .ûÛ€°õÖ Ÿ~:¾(rHOZ¶lᾇ ·Wj™ Jñ±ÇóTÍ,G‚> )_/¼ðBC¼g«lÓ/¿ü¢{·Ìž_­Z-:uÚ7\xá“>k éZB˜÷ë'·y9^(sçγýþZò51f̘X•~ëÑ£G‡wÜ1|ûí·uzä?ÿùÏæËz|¥cüë_ÿòãϘ1£Ò¶ì‡~xxüñdzWWú¿ÓN;yô‹Ï‘Gn»í¶0gΜJeëzE±m¦Ÿ~úiØc=B·nÝÂ*«¬þð‡?xDpMÛHß/ºè¢’ª™4i’=f—´o1;å51ÿãÿ(f•e‡ÀôéÓÃGÑèûuÈ!‡Ø,=}?Ô`/ϦOŸfÎLì³àwÖ,–ãg~à>cÆ‚msæ$´ò?äÚ¶íÎ?ÿ"‹rþߺª–ÆŽÈ—&Yx0Ø{î¹çìÜO¯ÓF|ðÁá½÷Þ«t Þ<#……6CVþûßÿ†-·Ü2l°ÁT57|ñÅᤓN <ð@xöÙgÃK,Qø@µ¸µØ6¶Ï>ûX*¨æ–ô¸°ôÒK‡‡~Øü€oôg»í¶+¹UŸ|òI5jTIû/³Ì2áÞ{ï |pIûWµS^‚¸ï¾ÕϾ_ÕÁ´]4x(—ƒ¬½öÚæ{¶a9tE}(éÓç†)SfÙgv˜:uvèÝ{©Ð®]«¢kBcÒÔ â¬Y³lºÂñ–GrùYš:ujXk­µÌ¼?ß5Jlç>kÕªUøé§ŸœÈQ6Êĉ´Ï°i —óUÔ!Xc5B×®]c1¯ïã?¶¼“­Ãª«®j‰ÊGWÊÓùBcÔ¹sçðù矇Ÿþ9¬¿þú¾‘ã®}ûöÞÆaÆy»Ò¹îh+‡¶BxfΜé9!YWŒÐ´|:t°”I†EY$¬¾úê6èX0ê@Æ:ÚÈ3”>s, (}ëÔ©“ÿße—]ÂgœáË|a­Ù~ûíà 7ÜѦ1˜0PóˆkuÎI<À´iÓÂСCm¾ð•+àÛL9Ž^àòÑGùà:ž·ÿüç?á³Ï>³€¯/3ƒî£>:¬°Â á‘GÉÄ|mŽíøúë¯ýºá¹±ˆÛâ/ç•ý[H4÷"¿ë¬³No®GÎãwß}çç|±Å‹UÔÚoqWF­N ! „@} Ю]K#‹ZpJK€Ý¹Zä°>Ú׎fm¥•V Ûn»­M-ØÃI×[lvØa'-hÁІAœÐ€uïÞ=|ÿý÷™®í·ß~M>Ä}V\qŰûî»;±¸óÎ;½„jóÍ7÷—?Äq“M6ñc¾üòË™zX@SÕ¥K?Drë®»®¶C(¶Þzk'-ÈËO<Á&é)§œâ˯¼òŠ]íÌ7õ_·VýsÅW„­¶Ú*¬¹æš~lˆ1æbH ²Þzë…[n¹Å 0–‹ .¸À×8ÐÛv÷Ýwûÿ\_hàhïý÷ßï›Á„¾P'øk¬¯:ç„ÊÎ;ï¼°ÔRKyÞKߦ›nêçƒm±Í,³žsNä Ä”œ>G”y饗øqXCl#Ñ-Ôfv ý\K{î¹§Ÿ£ý÷ß?ÓŽ5ÇŽÂÉ'ŸìZ[´«àÌùÞxã½MƒöâL4»äô¼õÖ[cµú+‚X«pª2! „€(70{Ž7Î5\*´Xhœzè¡0hÐ ×ðpÀîçIÙ?þ^{í5'8øæ=ÿüó᫯¾rMãé§Ÿ.¹ä'W—]v™k§ “'Ov"Z?H¦#Fx]çœsN¦8¦Ê‘#Gúvé1ÇãÚ% @: ºDbÁou-¾ŠhEñ›ƒ ¡íLËf›mæ¤éºë®³iß Gu”åÞ\°.].{R†† MØ 5Cc‡æòoû[¸üòˉž£sN8gW]uU¸ñÆ]³9|øð0dÈðä“OÆj*üB>!´ß|ó¥…Ú"Ü~ûí¾'Ä ó2Dö°ÃómhsÑ¢"…ÚÌ5Cû1IcÖf0߀|_¾ÐZBÀ!ªÿüç?]㊫SÛ¶mýúàÚØh£,éý~Ý0iÙ²e¸ï¾ûü\f*ªÅÄZSU ! „@ù!€Š©ùvÞygïæEˆZü1ƒ,@Àb $„8¾kh ø;óÌ3]kwá…:ùad³E]4œ{î¹d_HC¯^½<ÀéC;H›1{c¦E.¾øb²`™}¯¹æ×ÌñŸv#ôãÔSOuÓq j¨fË¥—^V[m5'<˜@!1U™²!`LƒH9H6¤ B ZÀ´Vµ˜s‚¯ DM'd -,õCs d¶OŸ>®Eä¼APÌêøhâwˆ¶óí·ßv²ˆÖ6žïBm~úé§½ý'œp‚’Çà"N÷ñ†¢½„8bš‡x3ø RIŽÍµÑ­A¬”u ! „€h´`ÚE |¾lH$VÑÌJ°sÝ¢=$#È®»îê~˜¢1¿¢%â%q¹úê«]YÁ| U!‰¤‰2)p¬(émÁ7±*Y|ñÅ]S—]M%„ ‰p¼(ø"¹X z‡z¨k!¿Åh*ÑÞáS‰€I\ööÅ9`á(ŜΠfõîf¢¦=hqã9Œõ¤Óýƒ„£ÍD8oøü¡%F›‰é÷Ýwßu‚‡‰‚BmfßxÍÄãA{÷îíÑ,C€ñO}ÿý÷}ÚT?ILß|¸f0}ã'YÒè "> ¿ÿýïë+ApR}q!¡¿öÚk+ùäk êò(Õ ±ûT÷77`L-ýûÛßþ¶ºU×Jù…I­4<«¦<»òÊÛ”fÿÊÚ¢¿U!€†sWúá_Õ>¥ngäæ ¤ÑD@ë­·ê+TÓø$pBQC£BgË Ux19œÈ)E”T,[lˆ}M:—Ƈ‘&) -2 Iâh¬&Ç*eß…I)í̵Ϙ1?ÙËú¥Ð¯ß•ž¼˜©ÏÆ›”«¨Ö@€ÈP^ <4ëRx™’N"Ê@(gŸ}vÀi¿¡ D6šyvÔ5NÕÅá§Ÿ¦†{îyÓÌx7˜Ô¥>P6ì›êVSå1s¾0/¹ä’> §ch† 6ÈÚ$4YhÚÐ(ÞsÏ=^B ÆÈu£ÙCC‰ß"ïŸ(h)ÑnA6þò—¿¸¿A×yôä½ÀàEdï½÷vó6¦\"”!©øîaE‘QAk‡ïýgð…ÿ!ïLÚ…6rÏAÞðóCÊæ4úSÒ'Lô˜ß‰Þ&ºÉ&i±¾|¿h7!o(tˆ¬fpÙŒïà|ûe¯GŒ‘sC$:>˜˜»19¤„j3úþùçûþ˜ûéfxí!QÞh 9wh 1ç´tÓM7ù9!rsÁyäºA0Es®ŠI/ä;Tó+oš›bëáaUlF„bFFP¬ãbB°óS'57[^"Œ(`Ψ~!;éÑåpâäâDÎ… £*ܪR°_:ì?ýŸ‹ VÏÉÄI6†“ãïÁÅâ‰'ºeò¥ î¨êÇ·€(¯tˆ=í§Œ86~9¤ªô”ad‚†‡Qf…FWŒì²ÕÝÔQLz‚BaúŒpØÎ¹Kç²ZX˜äK)A_K•œb£ÐÌOä{`Œ5¼›ÉX0*,µÎ…½÷×÷ 犇'®)Î'Û¹^¹¶xÈr¦M1Üw¬c¿'®qÌ:é4Ô‡†‚‡/4éíì˽†ÆŒgÏ î ®Õ˜.ƒk”çmäÁH;Ií…¶ríÓVî#þ³/DÍ~N$ŽõIˆ?f#,Hl'ÏêO÷•u\ÛÔËñåÇ~ƒÇá¾åÅËŸgTLBݼœÀ­Qö Œm¼ÀìËù¡Ï˜ëðUŠRj[ãþ¥þN:Ëü¹†™vh¨‘ž®•1¸3’^ά,ã…ôó–¨Û|ЃSâuÆ`Èû #×Z)®-¬PøññÜFúõë—A*—F ¿8|â¸Æ±¡¬ˆÂµƒ bÄûŠ,±´šÜO{íµ—k.!Cîm> Ö:è Œ¦>HȱÇ.62ƒPOºŸ¾2õCD-ïɘÓTIDáâ»m‰Â\ë»í¶›û^Ò/r ‰…TsLp¼ãŽ;ÜzÇó¥a?úÃ~Ü÷܇àG±±‹m¦¾ô2ÿÙ?öM0¸ÿéOò`¶ÓVîÅÈR¨ÍX báC9ž+×_}ŽC¨üîw¿ócðlâ:â|­Ž ÍÅG1¶ Ü0ð¬8ÖºØC´‚ØÁ¹Í+¬+ôÇœ5½¼å¿ìk!û‰9ëfþ›ú4±jbOú÷Î^F‰´ÄF=‰Z{˜&F¾;Q‰i·sÊô²æÓ‘ØÉH /o£Ä^¾ÍF‰…ªû²ù$vS$örI 0?¾\|›©¯ý¿i3Û(k¤Æ·ÛHÌ·ÛH½ÒS‘û6S“û¶ô—= #­‰9ûjŽk7¸·Ó.êÄÈjb£ ÄFKÞ~ð¡Ïö’Hìd'æ(ìû™ <±‡…÷Ë ‰½t|6žvÚiÞ/{Qú¾Ôa£Î„c#ìk†ÄnhÿØ Óñd[­y?lôƦJb‘VÞF»Ð|›i\ül£~üÜpÎ…=ô{%F‹êòºé3ý³P¦þúÆ„6Ù‹4‰øÛƒ4±‡D¦=U-ØHÏûbþ*^tòäÉ# NöÞû–dÙeOµkó4ÿíÚõ”¤âçÔäØcÿ^Uõu¾=¶ßf‰=¨«üpÿqMÙCÈY6sXbƒ”Ì{é$\ÿ6òk€k:Öm¦–Ä^‰¨K½àç?^#­éåÌ´“ØhØëãþæÞã8\'ö¢ðe3%öÒôed$œ7Ê™Lx.q<ÖÙ‹Ô¯?®3Žc]߯vžæ«ãÿÍãû›öÁï3êbåÒŽkƒ&¿ßh'}¡ñYd/üLyîKpáÚâ ÎØGÓnx[-x!³g÷>dzào/íf?¶ÙKÙ·ÑF# ™>ñLìåØÀÙËÒ3I%ý¾OMÚJ{ªúÄë ~ÍΚ57yöÙaÉo{õóôd¹åÜ ï÷Dß¾—×ùu^ÊxV½iÆJÙ½¨}Ì¢åLjï¯ôN¬3å…?7Óëy–Û "±AQb$Î÷7‚•.’Äw˜ ¢¼¬ *lç9k ÷®cW(\àçÛþ\/P¬Î7‰‘²Ä¬v‰YÛjt<#›‰Y2uØ6±Á\æ± 6@NÌÚ‘˜2¦Ò9¤ŽªÚlƒß$ßû7_8ߦKLy–°œ-6Ðv~•½>מE\ÿi,r•ûuÝÄZ313"ÂIUp¾4Œ¬ðˆš4T¬0a˜2£)Ø1 ´Š¨áѰ¡Q@]M¾"#U>ªˆ£jëh%±ÃCÉm“w‰~Qò¥`¤ŸûOÿGޤ‰c}öàvmÚ„(´3;Õ9‹b´mcÔmaóø!D-# F-hfú•/½jyFhdÐb –FK˜OH±À¹HP—ÇT¹Ò Ó'tŸˆ,p¦oœ·?þñn6Œm¨OLÀ9_J‰Øžª~›5kiíÿ΢çî2<Ï §ŸþHÚÌP˜í8Ï|„¹ÿ1)a¡OàǺG}ÔÍP<#¹Ç1‹§¥¦mMוo¹Y³æfcŽþ™fê\³¤ÜcfÁíÚ˜gšÖ÷B¾}›âz4d¼GÐT¡µÊÖñ.àœ¦…kk“w`1’­ÙNïƒF=×±Óe -£ÝÇ¿Îg¡bu¾ LÐlbMÃjXÁ’˜¶Vð~·Zµ«„çð|A#š}©¬ª6c}Ìe½+Ô»ÿ*ˆål+Ù€5{u­ü¯|´«Å¶ÏCŸ°TɹҠfgþBü 0Ïò2"W'Ž ‡#¡÷„¤Þð`†\ðbáÂEð“à¥KPÓÇ)åÈ=Ä‹ ÿA$;E/$†ýûŸ¬ÿ˜~81i“w,Ç/*ïôÅS ° \è/~ù„>òòýë_ÿš9ÑøJm³Í6nrb?àŠ@QUc– j+ÿ!ª¼´s]¼¾³}qãç»ù1W`@uŽ©êJ‡éSOĘsÎK” /ZüW¸¹ðwäaˆÔ'&`ÅJ»ð}áœ_lfÖU%3fÌ6rý_ kQ‡ïû>ÂóÕ’˜3ö'v,8OùJÕõúbú™«  f8ŠãË™Á|Ê¢Ã}›{ "QäÚÇ\I×1÷0ƒw´‡!×û"D{¦SVøÊÔäÊ´ƒ~Mñ²M;¹cV‰æYÚLxF`ZãxQ¸1‘!6²« þÒNjq– ŽMp}áºFè[t§ßéÀìý¤h'$Ž/dó3ƒ°ˆí…PSƒ^®WúLßÈ1WU¤bMÛZÈßÀÍú;óUûg…¢sçΫð?ןI“¦-ôû W»X×¶í‚ÈÑ|Ûk²¿?®sžû¥ ÷×`t»Šõðžä^Ìw³-M‚â~ú¥"Pk1>°#Ã,9^̼d¹xyà¢áÁ·ÀL®y¢ñÜP-4äb$y‹ÚÆø’¢,ì?Ÿ@Ò .ÖÁzUü?ð)ªJ ¯<Üy ±œ4|<¨#e[úI·ÁW¤¾Ð: ñåÉr|AÅÈδTvzyÑò@úxéÐÖB‚D1Ä”\78Ó'‚ˆÒ/áØ¶ìßÖ­[˜öæKëßzfºßÒœñ?rgü7ßñkÑÄÍkÙû•2œÚ›æmÊ›êqMšÌTç°ù®±ì:xQA~ÐøóBŒNòX0@ÃÌÆ`,&T4n˜½´ˆ’¾âºô/ûG"ˆ¹;M(ã ‰òQ3ŸÞž®'.3°ã&Ám6AĤ ÑãÅ ÁKß§ÜÛ_qD)„S¾mLŽF‘ ‚>«8¨æžÁè~“tÅãóË=XÓ¶¦ë˵L_fÍúÆžÃÛÚ³ïÐn„qhÆÄŒù9MŽÓu´jÕr¡ßéöÄeL÷óæM‰›ì/Zq®{îîM\,x×R¾,L° ö¸šÄA,ƒN"‹Q4IꊎuwœLÍœTLµ„‹cЉÚ0"»Çƒ¦m#R¢we㣈ÆfŒÊTšZ€XáÇ ÂÉ!f»§X¾Ùaÿéÿ¼\0™c> )&DŽ—>B^ü0gGAs…ß"7_:Õ@Ô(ð"ÚöAsÈËÃ>ô?>LÙËxŒô/¤$¿øCAÔèw>AëƒÆ$ýÁgŠ6a&:^<Ùé …éCòI·¡wúAù´V§>1)”R"&ùÖ/ºh{m`Ñ€ÇÙy¿Ôú¶—ï¼x«Võ~ûäkf½®Ç’d}s!8˜F!tDø‘F‰ þ1huI…ž}Ú,›«ñl‡áÙ€Fa°Cä2&]ž'˜¼±Z08¥­|<`>ŽfaŽƒÉm >˜ÔôïßßKý¢^ÈýâþF„_!óªâ/†iŸçm¢¿¼À#Y„@2С=i©«¶¦—[µjaÄz {önéX®0\6«Io;¿ÍýƒÆQÒ8` ŒBE ®[<«¹Þ¹¹Î¢ð^ãŽ÷@}¤ˆkˆ8Ôw›jMƒXUã†BëçA‰X‚ðKbà …‡&{RF … \—õà˜ÎK(JzÔŽÍÚ Êc ãAµ[ùR@LÓaÿÙÿÙÆólôäÁÍ͹M;‰r!Cry! E‹©¸©Çv|’b»!Âôsš/úH?b›)ñ‹}Ž¿Ô‡o"Ä7šæÑ¾¢MäÄ :'þ¢õËH;þŸ¼@ó¥'ȦÏq eñ%Ë9f4šv ¨OL ¥”Èîwuþ/µÔ¢f.íçò>õÔû¦%{Ç|?¿·óßÂ÷«S_c+¯ÚFA¿Q‰‚2Ðã~àšâeÄ}ˆ*÷T¼çÓ&Ôt½HƒI®{î›ô Gq2 ˆðKæÚu ÕDë‡Ö÷4q,c.ç‹…d ¡DÿB‚Ë‹Í:éA]ÙæöØNÊÄcó›ï>ÅwÿkJ¸„ éÚKÌ“ÿp¬<·Ð ã´%}Œš´Õ+.ñ«]»Öf1éãŸI“¦›&ùó'b9£­h«vÅ(ñÐÚ­†0àâÝ 1于Âý„9 Þ™4+(¸V‹I»†e ’É}É¿e( $ÓÂפì”h”a=Aq(H8ÕuЏt»´\fvò+xÞ8 6kuŽjøÏÒ¶øËM\ZP#£¹B›ÍÀq; Z9Ö3ª‡r§m%ô¨_̤QkÙ"ÿ#^\°q„ž®£ªeö§n4tD gGWñ°¿÷Þ{ݬƒMÆ D»!LÙB¹1h/”|/›ìýøæŽOÌûÈË‘¶eߘ¹ö­Î:ÚN¿²ý´¨ƒ›ž;¸C ¢,,LÐÔ’S‡[u°ÄD‹­j¶92ö)ý A|â‰wíºjš²î¦ý=,½¹Þ—cû‰šå![€€&Ó<ÃýãZLãÎ3…k¢ÃËÓ3/£¨dÜ> KOüö¸†Óׄ”Á$û0Ì>vlC¡_î3®U2¿tÙvbçZïn.\¿µ%<ŸxÒ§hBu3 äþÁå$>·â6ú 1Žd<®¯Ë¶ò,"¢öƒóøñ¿Ø ö=4 q¿ÝΉÍl0¿<·9Ÿ¼¢{Sƒi\=4„{h㬥•Í9÷Ú~–Qäp½r]r¿2°"xbÉ@÷5îlç9IP"ïo¼k9Û°âjÅ;üØÕ€ã3ÈÃâsøqïóŸëŸw-m@¡Aý”Eá’‡AÏw¥¶5ìêös@d¢ÀM'Éjè¤æY+êô/Z3| ѸňÜôyøá ‘M)ÃÜÑFŤ÷Ë^¦4qÙÙXí\)äý¹¨i7Q69Œõó›/Õ§|'†>2ŠË~±¦ëÍ·L‘R†›²¶É!õRg.rÈ6üûx8¤_è¬Rߘ@Î!HÙ ¶§¶~W^¹³=àv2 Ê…]¾GmUÛ`ëáå€ šü\Äu`Ÿ;düU‹½÷(›ïZâ:Ìuìb@ã>ãæzÍn#ûÓNˆ#Ú$‡ÔÆëB69d/?ú”ë¹})—–ºlkú8Å,wíÚÞ4Å[Y@ËYFO(f•©gÈtU+›Ò Ë_ìï5H\MÒ®Qƒ0H¦k”"q—B)Ñ zd¡ L²sàÇÌ}]=°0h‹Rmué·2õJµe“$`©Â †—S¶@x¨ç䥮G #ÌÕ®¦°®)aÒ¹óeJ1‘Bdr òŠí<}ˆRö †AD:¸)»>öA“&iØtéÒ¾a7°‰¶-\UÖÁ˜v ·ˆ$,vh·±Ê (Y¸ÿÙNÚ5ò¢‡M&f´~1ùR¢¡Õe „$7‚Yq‰Á©±îôom´5]Ÿ–+"Po>ˆ–|_µ‘€ “tàIì¾Hù¤ªùö«îz¥¨Œ˜0©ŒIc^ôt5^:øãe š‘ù)‰¥!€ó.®7ÙÖ8²@øpoBp͉5Þ1ƒ@Ú €FÁœ%½K[܆»®éè|ˆ$Š\S²­S1•.-¹„}š´5W½Z·zÕ t! „€B`á €Ë ¾}éÄó´_´~dH§]‹­$X‰æÝª,q¹\7Øm ~ÄøÇ 8’‰ƒì!h9LÓø’§4ŸÔF[óÕ­õ–NK ! „€åY0ñ2ÃA'hàH EÃdÒ@‡Æ°Ô´k…P,”­P*µè—[Û)â µUÛB¨W³B@Ò˜9s®E–αT> ~§OŸcýslÝlû­¸nÊ”ÙVnŽùˆõ1ÍÐâ¥T{– pðA$1d0 ižÈÚ€‰™O©i×b}é_´QãXUJ´|©Ôê"E\ºZÎ@Þ47¹‹k­h:›æ¦¡!ÓÜ4´v©=ÕG eË%ÍÙ{KoÓÑ^²­¬‚\ ©M=ÍM[fá"W!fã\3Õ$íZú8¹–ó¥D£l¾Tju•".WûÊu]uÓÜTÒ ’œ•Ðr‰hê}×…Ä뺇ã™ËÝæiÓæZôç—69Àÿ¦*¬XòSÖd„ÙMÖZ««%'$³®”L’òC€@’t0IvcÚµìõµñŸSù¦=Í—J”SùÒNÕe[k£¿µŽJ'Õ8#Fcí”Ú-š2˜ˆt—×`]ØŒLïØlI[Dèü¢fíÁ¬wøáÛÙµP9%Xy¡£Þ!P(H¥.PUB@ZFà€6 ¯½vvXsÍå,ypJU˜ç8IæK–! JA@±Ô´B`! °Â m ³Slº³<™0 ÇóIÛ¶­mNçkmv“û,bõðÓóÕz! „@%*™˜+•Ð ! „€h0à[xÊ)ÛÙ¼¸«Yº’¿Û¼Ñ?ûÜÇé¶nÝ"ì¹g›YªsxõÕÏmöªÇmú³96ür¶ßª¾ï†®dÁ/Ò¤qÓ²ÿC@ñXhI!ÐhXgåü.¾ø)KKò–i›Y’a c6™={^Øk¯õmnû^–ÒdK'‡ƒ´y’? Ï>;Ìæ»}Ù¦9\Äæß]ÙÉ"¤q¹å:4š¾×´¡ôDÌ5­Gû Æ„ÀÇ\­æVJsS­½UX! :/¿ü©Í—û ¥™iÚÄùíÙ*|ñÅU–Ó.· z̘Ÿ\³a8ðKË¡8˦9ëœ!‹}ûö´:ÊOÓÜ,ô¦…ˆS&vìØ±ªLA¬ "mB@4&Nœþð‡‡dq›mV·9w.ªÕsæÌ ƒ•!ŒÃ‡íÚµ›lÒ+cŽ^i%¥º) L僀bùœKõD! mÛ¶ {ï½AIpŒÿ‹‘ÅÏÜýæ›#ÂäÉ3,™r§Œv±_¿^Vë’êÖNB@4DÍ©RC…€õŒ©r†méu>wÂøñÇã0oÜóWí⪡wï.õÜ*Nz@@±@Ö!„€eÀ„ S,¢a|ýõá³6Á-12zóÍ{[ðK›²è«:!š8"ˆMüP÷…€%!ØÄÏ|ðMÆÍ2‘ÔlÐ=cŽ&©·DF‰€b£üæ7«¹†‘eæ‹–!Ð Al§EB@”S§Î o¼ñ…“EHã¸q“ÂRK-¶Ür'‹h;uZ¬Œz¬®F€b£?…ê€B ‘!ðÅßýª]üÜr0Žô™_ðWD»YıE MØÈN«š[^ˆ –×ùTo„€ 3fûl.Ñ=zô„°ÄmÃf›­œ1GwíÚ¾quJ­ÄÆÕ! „@ù 0jÔ„Œ)zÐ ¦œVY¥«º aÜxãy§,Ô!°ÐA\è§@ B@œÌš57¼ýöÈ_ÍÑŸ…#¾·iÛfsYì²jXa…*ç”ÍY·V !PÄ‚ðh£B@4n‰¦è7Þ¦NzôXÚ] Œ›lÒ3,²H«Ó^5D4bDñÉSÓ…€M¹s™p”Oiüä“qNûöÓ®zõZ¦É⣎ " ‚XCµ»B@4HÌýÚkÃ00<¸»[·¥Üwq«­V ›o¾rXtQMØN•šÐ8AlçI­B@b )÷ûïùU»øY6l¬¥Íi6Üp%7G3³Ëê«/[lu*'š""ˆMñ¬«ÏB@¦„ÀĉÓ|ÀW^ùÌ'L˜ºti_aÀöíÛ6%HÔW!P"ˆU!¤íB@!P^ Qd¾hã»ïŽöέ¿þŠsôÚkwÓ4€åuÊÕ›ê# ‚X}Ì´‡B@” “'Ï´i‡gfv?þçбãbí"3»0- D41D›Ø Ww…€B Ÿ>ÞÉ"ÚÅ!CF…9sæ…µ×^þWí⪡OŸî¡yófjÐ&!Pˆ –ÅiT'„€B Ö`—7ßa„ñ37GóÍÄ€¯â[¬’ véÜy‰Z?®* ÄpÔ! „€hŒù£“Eò.2 àÌ™s<š4:DFo´QвeóFÐ5QT‰€b•©€B@, ‡q@ÌÑ#Gþày7ß¼w&Ø¥[·Y{é¯h4ˆ 6šS¥† ! „@ƒEósœ³ô´i³|&¦ìßÁ4€mÚ´l°íWÄ@"ˆY€è¯B@”ƒ}ûö](=iÖ¬EhÝzÙЦMwÿ´lÙ1Lšô´™¤G-”öè B *^|ñŰÍ6Û¤‹MÒp& ‡–…€B ¬¸õÖ[C§NjŸ~ùe¶™Ÿ71ÿDE?/Ô¡ƒWB`Ú´iáÈ#¬´ž"ˆ9aÑJ! „€(vÞyç°Â +”CWÔ!PëLš4)o ·Ê 6! „€B i" ‚Ø4Ï»z-„€B@¼ˆ æ…F„€B@!Ð4Alšç]½B@! „@^DóB£ B@! êûï¿?üþ÷¿¯Óƒ~ú镎qÛm·…wÜÑ}Ì{ôèѾî_ÿúW¸ë®»ÂÉ'ŸœÙV…K.¹$\sÍ5ÕÙ¥¤²Ó§O÷ösÌ1!I’ u\|ñÅá²Ë.«°naüÙj«­ÂСCýÐû·Üùì½÷ÞáÞ{ï “'Oöí_|ñ…¯ÿþûïFS3ÇAÌ@¡! „€ áLJ·Þz«NyºóÎ;-ãÌÌqî¸ãŽðÜsÏ…ÿûß™u¯½öš¯[vÙeìY³ÂŒ32Ûª³ðé§ŸúU×2gÎo/}ƒh¥åÝwß ï½÷^zÕBY~ýõ×Ã?þèÇ&çàÏ?ÿÖXc ÿ,²È"NÜ!‹È¼yóÂÔ©SÃüùóýÿÂúA\XÈë¸B@!Ð`€¡9ãåù¤’¶p±Å gžyf  …„sõÆo8þ±\ɦ›nšôïß?S¯­¤E‹É-·Ü’|øá‡ÉŠ+®˜YIš5k–tëÖ-ùì³Ï¼¬‘£¤C‡IóæÍ½ül,ºè¢¾í¼óÎKŒùòÁœ¬¶Új‰‘´¤uëÖ~ü£Ž:*s<Öõë×ÏëhÕªUÒ®]»äŸÿügf;Ç8á„üÿK/½äû)KŒx&-[¶L®ºê*ßffí¤mÛ¶‰iÞ¼#_¾~ÕUWMÌìé˧vZB;–i×Ê+¯ìÇ£í¶Û.1òéÛéëø,±ÄÉJ+­”Xfß6`À€Ä÷×4fÉÒK/Ñsl(oæl/gdÔ÷â‰'üÿ}÷Ý—iÛ 7ÜàûS7ûXŽK?¶iãüÿ_þò—¤}ûöÉa‡æûòµË.»${챇ÿ7‚šl´ÑF™ö¥±¨Îù§2ÓŒ:´ƒzºté’PbÄ=áZaŸ 7ÜП}öYßNÏ?ÿ|_Ž_ô—²F\½–m ’<õÔS¾~‹-¶È\ œƒo¾ùÆw-ÔŽXw¡_#ý^¿i5³‹M”Ñ΂D! „ùãÆ FF\Ë„f ÓC=äA̦‡rH0ÂÐÀ!O>ùd0Òöß÷w[~ùå]È~;wøù¡!;âˆ#\+‡†ÓkÔ y%Y_F*ÃÍ7ßìÚ¿»ï¾;ðyæ™g2¥¨¿AL•;ì°CÀÿ ‚Ï [_6²Î:ë¬Àïâ‹/Œ¬4„ZÃ-·Ü2ì¶Ûn~´jh%iÚÆ\B»Ž?þx/ÑE…^xÁ5~hB¯¸âŠpöÙg{¿ðû£ÚD#mÁH“M98ɱ1’=ôÐ`$Ò?à‰ aDÐ2"/¿ürFóyÁ8¾hW)ÿßÿþ·‚Y“8>F*]³ê¤¾þö·¿¹F>Pí½òÊ++hy‹9ÿTɹ4r¨ ¯ÏpàºV“sÅz#}®m^n¹åR­X°ÆFýsã7º‘„îFü+•eup®ÑHrŽÎ9ç/W¨9+ªÎÊlʨÿB@! ;Q#T] â;ï¼ã]7ó kVв!F(ü¿‘ÁÄL˜ š»¿þõ¯¾ÍÌ…É®»îêËF4dF<3ߺÆ­£Í íû§5}^xa^ âšk®éõů=z¸ÿh/½ôÒ¸)1ó·×m&í̺| h®ÐLšI41òš •CÖ_ýäŒ3ÎHŒ„z]h¦l "íˆòÝwßyY#š®=Ej„:nNŒÔ¸1ž #t™mQ³ F'žxb²ñÆ'f*MŒÄ&»ï¾{²öÚk{Y#ÛŽ3®²Ê*‰ùí%hÇŸ ñdŸ¨A4³¬kÑ®š™Ö·§5ˆœ7#Õ‰™§ó¹tM£ñ¥äÛo¿ÍhíŠ9ÿhöØ)Øó12ïëŒ&Fº“ƒ:(ÓW#ä¾-­Aäú/>hé?ZV$âÅq¢‘z£p¡™®ª±|¡ßBDMµW6­²B@!PÖ˜©ÐûgfCÿ5sªÿš¹Øíe:vìèQ¦?þxØgŸ}\[…†1Òà4ø•¡MÄÇ,jûöíëåøB«—OŒˆUØd&ÙLl@ó…mHÚµ’›m¶™§xE¿~qž¼ÁÒLééM᫯¾ D£!¦¹æè.æüG¿Q4Ãÿûß3Ç0ÒæZ\4´×^{mf}Ä!³ÂдV'º:}¾9¼j¾š5™˜kŠ öB@²A‚TŒ`f†9KpfZ„UÓÒ9ù"°ÒQŒÄÊ4_™ê!,ùÄ´Z™Mn¼ÿþûez{4"œ±2ˆ¦Q̵”7Cß´ýöÛ{`ÁùÌËŒD9Ö!͘UÓ‘·1­K$]tD¤{÷î0r&V̵É`Â6MªÏ¥mÚJ'xD\c¦6M¬§Álœ-«¯¾zøãÿèÁ5˜r£p^è;¤” Ó˜ÆM™ßbÎ?¦lÓ0–ý!è„ÈdÓf‚œ(q`¹TIŸï7ß|ÓÏ]¡v˜¶µÔCeö+îNÈׂB@!`&å`æA'Zh¥¢6-æ Äÿ¢q² צ¡éCk„/™³¸Ö,’´’ø›Alðã³ ŒLq ˆñ(Y"¬-8ÃI<íþo ŸÄ˜ç°M›6Í›™'¤0 ÄEÖ"ˆ±|ö/™~qlÈ ‘ÏÑÇÍ!C|þh/åоáÙ³gO'môãäú7¿ù“P~!Ûh4“DTßtÓMî燆­â’K.™Ýÿ)‡|¦£ˆ!¯h ÙõhR‘AíŠøB» ¤-œG¢‹i}_°xúé§]K ž1 ¼ˆªó1wÇ oæù`¦óPU;òVVäÄ"R1! „€QÃ!ļŒIÔ"Œ3À ¹ŠÚ>4I˜WI ùÂDJ ˆEóù ½zõÊìÇBZ;ÇËÿ¤“NrBCn?H$. ĺÖZkyÀÅ#<’Ù­&ÁD"Ão”H£y™õ&H·³L›bŸÓËlK 9üH1ƒ€ H+0ìA¦ï¤Å¡½´s8ýЉ ÚD$¶!®G£é_–Ñ|Zdo8à€b™v²¢†©9)ŽÔ3œ È4ý'ˆ(ôd**°±înh"1[T±k$9lç\A|ÍÑIëÐ2GI·)®«ê÷Ë/¿ôë†:û™6Ô*ÛQUUmo†óbU…´]! „@cBÀ‚Bþ~øiZb®ÍI›N9yé,ØÁµfiß1¶áIa=>ŒÀ}Ìvó5ùÑa¶Å\˜öíƒü@® O˜¬£™xÁÞ ÷›ö`Æ4 éL }' ²9ŽÄ3]¦ªe4ªÔ1ƒèUW87ìf`JŽH4šÑ'²:õQç‡_ˆoô[¥´•lƒg_Õ9šHKÓãZN`Ýb=…ÚËäûÅ\áF[KnÆ”Lj™ú£E! „€B  0×¢¡ÃœŒZ¶@Hã’KИۗ|y! *#0{öìÊ+]#‚˜mB@ÆŠùòbBæÆÚµ[Ô5ÌR§:Ì>–eg#¢ÿB@! „€hÚL’bÓ¾Ô{! „€B@TB@±$Z!„€B@¦€bÓ>ÿê½B@! *! ‚X ­B@! „@ÓFàÿJ²sÊ}IEND®B`‚mysql++-3.2.5/doc/html/refman/options_8h.html000755 000765 000024 00000056271 13515046515 021603 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: options.h File Reference
MySQL++  3.2.5
options.h File Reference

Declares the Option class hierarchy, used to implement connection options in Connection and DBDriver classes. More...

#include "common.h"
#include <deque>
#include <string>

Go to the source code of this file.

Classes

class  mysqlpp::Option
 Define abstract interface for all *Option subclasses. More...
 
class  mysqlpp::DataOption< T >
 Define abstract interface for all *Options that take a lone scalar as an argument. More...
 
class  mysqlpp::CompressOption
 Enable data compression on the connection. More...
 
class  mysqlpp::ConnectTimeoutOption
 Change Connection::connect() default timeout. More...
 
class  mysqlpp::FoundRowsOption
 Make Query::affected_rows() return number of matched rows. More...
 
class  mysqlpp::GuessConnectionOption
 Allow C API to guess what kind of connection to use. More...
 
class  mysqlpp::IgnoreSpaceOption
 Allow spaces after function names in queries. More...
 
class  mysqlpp::InitCommandOption
 Give SQL executed on connect. More...
 
class  mysqlpp::InteractiveOption
 Assert that this is an interactive program. More...
 
class  mysqlpp::LocalFilesOption
 Enable LOAD DATA LOCAL statement. More...
 
class  mysqlpp::LocalInfileOption
 Enable LOAD LOCAL INFILE statement. More...
 
class  mysqlpp::MultiResultsOption
 Enable multiple result sets in a reply. More...
 
class  mysqlpp::MultiStatementsOption
 Enable multiple queries in a request to the server. More...
 
class  mysqlpp::NamedPipeOption
 Suggest use of named pipes. More...
 
class  mysqlpp::NoSchemaOption
 Disable db.tbl.col syntax in queries. More...
 
class  mysqlpp::ReadDefaultFileOption
 Override use of my.cnf. More...
 
class  mysqlpp::ReadDefaultGroupOption
 Override use of my.cnf. More...
 
class  mysqlpp::ReadTimeoutOption
 Set timeout for IPC data reads. More...
 
class  mysqlpp::ReconnectOption
 Enable automatic reconnection to server. More...
 
class  mysqlpp::ReportDataTruncationOption
 Set reporting of data truncation errors. More...
 
class  mysqlpp::SecureAuthOption
 Enforce use of secure authentication, refusing connection if not available. More...
 
class  mysqlpp::SetCharsetDirOption
 Give path to charset definition files. More...
 
class  mysqlpp::SetCharsetNameOption
 Give name of default charset. More...
 
class  mysqlpp::SetClientIpOption
 Fake client IP address when connecting to embedded server. More...
 
class  mysqlpp::SharedMemoryBaseNameOption
 Set name of shmem segment for IPC. More...
 
class  mysqlpp::SslOption
 Specialized option for handling SSL parameters. More...
 
class  mysqlpp::UseEmbeddedConnectionOption
 Connect to embedded server in preference to remote server. More...
 
class  mysqlpp::UseRemoteConnectionOption
 Connect to remote server in preference to embedded server. More...
 
class  mysqlpp::WriteTimeoutOption
 Set timeout for IPC data reads. More...
 

Typedefs

typedef DataOption< unsigned > mysqlpp::IntegerOption
 Option w/ int argument.
 
typedef DataOption< bool > mysqlpp::BooleanOption
 Option w/ bool argument.
 
typedef DataOption< std::string > mysqlpp::StringOption
 Option w/ string argument.
 
typedef std::deque< Option * > mysqlpp::OptionList
 The data type of the list of connection options.
 
typedef OptionList::const_iterator mysqlpp::OptionListIt
 Primary iterator type into List.
 

Detailed Description

Declares the Option class hierarchy, used to implement connection options in Connection and DBDriver classes.

This is tied closely enough to DBDriver that there's a pure-OO argument that it should be declared as protected or private members within DBDriver. We do it outside DBDriver because there's so much of it. It'd overwhelm everything else that's going on in that class totally out of proprortion to the importance of options.

mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1SetClientIpOption-members.html000755 000765 000024 00000015311 13515046515 027617 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::SetClientIpOption Member List

This is the complete list of members for mysqlpp::SetClientIpOption, including all inherited members.

arg_mysqlpp::DataOption< T >protected
ArgType typedefmysqlpp::DataOption< T >
DataOption(const T &arg)mysqlpp::DataOption< T >inlineprotected
err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
set(DBDriver *dbd)=0mysqlpp::Optionpure virtual
~Option()mysqlpp::Optioninlinevirtual
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1SetClientIpOption__coll__graph.png000644 000765 000024 00000021000 13515046516 030465 0ustar00tangentstaff000000 000000 ‰PNG  IHDR·@CsRGB®Îé!ºIDATxí]˜Õ>Ë.Uzï*‚(†òQA@0" MP"$$Ò¤ÀÄF4ˆ€D , ˆ©K¯Ò¥waéìÂäþï0ûv^YvßÛÙ7ç|ß{3sûýïýÏ=÷Üy»†aÌ$AÀÝ,ŽRýoín ¤÷‚J' ‚‘Af  "È4Ø#8NÖ¬YCgÏžu\»¤AÉG víÚT°`Áä”Ò%(¯‘ã¤Q£F†ê§|ƒo¾ùÆqóM5h¬#W½K—.4iÒ¤”æ½”—J\¿~²eË–Jµû¯Vöþ1’.@@ˆà‚A–.úG@ˆà#Iá„.d预þ1’.@@ˆƒÜ­[7š1cF ”ä¿xÒ~ûÛßRþüù©dÉ’ô»ßý޾ûî;ÿIqóæMºví?8p€š4iBçÎ 8¸&"¤ÀÈ®ZµŠŽ9’%ù.¢W¯^ÒEEEÑ»ï¾K=zô cÇŽ‘:w¡O>ùÄwæ_b»víJíÛ·ç§{÷îÜš÷ïß(o8' "œúˆL‹-¢ž={R¿~ý¸= 4 ¾}û²f¿{÷®©á÷ïßÏñƒ -7nÜ ¬ §OŸ¦2eÊЬY³xuÑu¢êЋ¶mÛ– ÿ¿uëýüóÏ´zõj:uê”ÎW'óádY¨Ü´bÅŠ5jÔ02dÈÀ§Ñ9sæ4úôécDDDðsöìÙ;v'Nœ0Ò¥Kg|üñÇfÙ&L0"## EcìØ±Æc=f ½]£iÓ¦†Ò–œVM@C~”_¶lY£S§NWºticäÈ‘|6ÔªU‹ËLŸ>½‘%KcöìÙ×®];£|ùòFîܹͶvîÜ™ãðõúë¯ùòå3ŸsåÊe¼ùæ›üüòË/êÕCÅŒ×7Û·oç¶}úé§Æ¼yóø¾N:f¨}GY“êÕ«ŠÔœöèÑ£\Ô°aôéÐEŽÆ 642fÌÈ}>'NÔMð{UJŠërêÉrX¬PIj0 &ÊÞ½{ š¦ÂÚµkY;ª‰Î6|Ñ¢E©nݺ,,ЈÏ?ÿ<)°¶1bkmh½%K–ð ƒUáC‡eûZ)‘6×å኶>|˜W"Øój‚óŠ…¸}ûöÑøñãY»N™2…ðY°`¢¨qãÆÔ»wo¾ÇL!5ùø«GåÊ•IMD3^ßTªT‰Ã­æY‘"E¸þƒòJðÎ;ïÚݦMjÑ¢­_¿^gç+V(˜[“'Oæô¨ïСC4hÐ 3"!")¢‘"ž—Öo†¯¾ú*)-GJûñ&vsÍš5yÙ¯V­›?,¤Ã$‡ Óæûï¿'¥©)S¦L„Ƀ‰0mÚ4RZžM”©4:)ÍN˜L¸¾òÊ+T®\9¯cÛýñÇç´䉵{÷nN_±bEjÛ¶-©•…ÔŠB%J”`#_¤×âµlÙ’aÒ¨•HG%¸ÂäùQ¦–!C†PæÌ™©T©R\úéKæÎK9rä :p2äCÝ0É´¨Õ‹žyæ*T¨µjÕŠ‰¢ãÒúõ!ri¼'-Ê$ቬŸÕ2oÚ»¿ÿýï ñx|@€—^z‰Ã@€Â… ó†WhcØéǧ*Uª2{t‘T¼xqóÞóæÉ'Ÿ4ƒ”©Ã÷ ß*ˆ×qÖpÏ{xˆ<÷: &+6¾H£ÅÚx˜°§ñ%ºV2Së>åhÉ@¾p‘°!&{ ­×¼ys6`Y³få×¾aZ,]º”7„XbbbøÅ¿ 6ÞV±š!ÖpÜc#ª¦+ćM+6¥:Žxùª_¿>§…3ÀS°y¡á Õb­&¢¿:ðj4V-eìë"hË–- òбY@º "$s˜GТ˗/7]‰Ðö;vdÏ &ÃÓO?̬ͫ °ûaÃs‚ýloo¢÷˜X~ø!¯O=õ'Çäš>}:›K°¿áÑQ›rŽûúë¯iÀ€f±ýû÷§9sæð3¼DjÃÊ$ÆÊ…ö`?smêÔ©ôöÛoój¦3Ã4‚· dG?›5kÆQX AíIÓéÑx•à•BÜÆÙë…=…+Äïv?$Õk¤Ìc̘1fKÕžÀPîDóYmB e—›ÏÊÜaÏ ò)“ ‡×DiVöŒÀ;¢&´”OŠš†2Œ'žxÂô)7¤1zôhN¯‘"‘éYÇFiqŽƒ×H™/\7ÊWHçC‚îÝ»jõá´ø²zð¬&°lWԫ͆Ú|#šE{àBuæ`¨ÐPç¯ÈÆaU«VMä5R$ä>‹†¼Š†">çóÄXí¥ Ô¨8Ýk„¥Ðq’T"$µ˜üØáÇ'ʪlbCm¦ µM§ìlCy} eÊ 1‰`M"(o(­Êi­q ‚Ú€êlÀعs§I2kš@îQ¶2w uN`ºwu>MÔ¡ö"øØ N†áò|TA¹ÊÇï7»çÆ\gP+¾MtEÿñq›¸Ž°—•6f—¨Õ ’Ô¯P¡‚­;îVo '¹Ø SP7ÚÎÛ`àU.'§L,ac(?ÕLŠÎÊ«ª‰ÕØêÝrH+ǹÒkäð¥B@ˆÊƒqúôƒS¹®¯Þ±{øÉáw™1ã0Õ«W˜ ÈÖ]µ¾UëÄŽ:–x:)?8q"¸þÚ©Ж-[¨^æK|bì/¿Ä§ŽÜ,§\÷œ]ÒŠ{ÕÉögT´hnÚ´i°³Þ­“ÍrjŽïìÙ[Ô£tòäeÚ±ãDj6ÅõuËf9•¦À­[qê÷»ÔÏ$ õNS¤zvK*µDªB„TšË–íV/Ü=x9.îž:àÛ’àÍÏTj–k«"¤ÒÐGGǰY¤«¿téºú5Ü!ý(×# D1à¨îêÕ[êWiûÕiþõˆô飔y´5Z#U!B*̃E‹v(3(aÅqqñê·ËÛÔ_­¸—0BžB‚€!$0'¬$:z³í~àúõ;êÇ0û&–§ D Ì+9w.VeoÑÃÐwQQéÔ¦9Æ3XžC€€! [«˜?EFÚÿ¾:>þ¾:eÞ­^Õ~ð¹¬ùä>¸‚‹o¢ÒgÎÜœ`“ì™{„¥KwyËs"`kñG^T?¸?•h£lM‘Ný… 1¬˜„âÞ±/Ý…¢ó¡®cÞ¼îQœ$ë¿>£½Gúe0Ö¬9 þ¤ÌMÊ•+K¨›èÚú„!ú2e аaþr®v̘o©F’êSJñ56ö–!"Á}"ߥ7mZ9Á3&N\¥~c\Jýu½º‰â$ tÈ!tXKMF@ˆààÁ‘¦…!Bè°–šŒ€ÁÁƒ#M B„Ða-59!‚ƒGš:„¡ÃZjr0BŽ4-tB‡µÔä`„iZè"„k©ÉÁ<8Ò´Ð! DÖR“ƒ"8xp¤i¡C@ˆ:¬¥&# DpðàHÓB‡€!tXKMF@ˆààÁ‘¦…!Bè°–šŒ€ÁÁƒ#M B„Ða-59!‚ƒGš:„¡ÃZjr0BŽ4-tB‡µÔä`„iZè"„k©ÉÁ<8Ò´Ð! DÖR“ƒ"8xp¤i¡C@ˆ:¬¥&# DpðàHÓB‡€!tXKMF ÂPâàöùmZ×®]iòäÉ~Ó95AÆŒÅÔÙŒ¥øø«Nm¢ßvíÚµ‹*V¬è7ƒŒ ‹U¹re8p ƒqϦ:uŠþüç?‡Eç‚  Ö­[‡Å€¤¥NìÛ·/-5×g[eà‰t B·Œ´ôÓ'BŸðH¤["¸e¤¥Ÿ>p%öîÝK-[¶¤¢E‹RÙ²e©wïÞ´jÕ*¨›7oÒµk×Ìgϸk{õêåüHϨž—çž{ŽræÌIÏ<ó ½þúëtîܹ€Ë³¶÷ÀÔ¤I“$帢0Nè:"àØ¤U«VtèÐ!êÑ£õéÓ‡vìØAõë×§eË–ñPãl¢}ûö^‡ýÎ;tëÖ-¯ñFœ={–j×®M&L š5kÒ|@7¦™3g2!vïÞPQÖöÞ»w®_¿N÷ïß(¯$ú¨¥eéÒ¥‹Ñ¨Q£€»°páB Šf5yŒ"EŠ:u2.^¼h¼øâ‹FÆ å'7Ô¤7Ž=Êi•¶5Μ9c¨‰ÆéxéÒ%CMhN·iÓ&cçÎF||<§×_J»Û¶mãð7n·oßæ¨îÝ»éÓ§7¶lÙ¢“òmË–-›Ù¯«W¯W®\1îÞ½k¬]»ÖøñÇÍôžíEÝh£µ 'Nœ0/^llݺÕP1ó"\­&ÆåË— µ"'Ož4ã¹Q++c©ÔIîä4cÉÉ­ ¤mI%Â_|Áƒ§´p‚â÷ìÙcàóæ›oœ¦zõêÆöíÛù^Spø´iÓ µŠÏ>û,çÇ}ùòåÒ¥K‘‘‘œÄÔnÈ!fyyóæå´¨“:cÆŒ†2ƒ´C?¨B. “´]»vœ/wîÜF† 8¼sçΜԳ½6làxMÞaÆéÒ¥3ýªU«“™‹+Æ„G;tÛ'Nœ¨›à÷*Dð Qè$•˜XåÊ•ãÉ‚‰ L ¤€fÕÒ¶m[£E‹ü¨‰€<óæÍ3”MŸˆXaÆŒÓûÝwßå²9ÂZqãÇgþþûïsÜo¼a{˜CY²dáByèË/¿dP^xáÖ¸ÐÈvaÚܰÞ{Î)l½÷Þ{4nÜ8>¸Ã$¬P¡ió åãìB¹1™ Ê…Ëç .\ uëÖQµjÕÌ"a½õÖ[¤"Þpi䊔Çç³Ï>c­Òê´ÿ~R'ÛT¦L™$U†ôx'J$x¸vE¤ KîØ±#á“ÁžF$¸ÈŠ\|¥ô4‚€!•*>^ÞMå!àê…©< “'¯¦«W“ÿJw*w#ÍW{øâ=}âiedòåë ~ñݼØoÒJ¿ÒZ;ÓüøRoN’zå8­áÎí=}ú&½ÿþvõb^vuÈ•vÿ@îàŽNÃ’öÿÀÎ|8ypFZÌÍ;räÕ©Ó˜ HÓ“ÉÉPûm›ìüB¼³fmâÂ###Ô+ÛÛ‚W‘”ì!‚_ˆ‚“ &æ=Ë…«7<Ôï”7§")5 „Á”ò‰æÎÝJéÓGrÁêýÚ³ç;öðw)_£”è !‚/t‚§~?Osæl¡¸¸{f QQéÔ»H[Íg¹ -B„Ðâ͵­^}@ÜLP3ÖÄ„îsé± BP$È}Ü7æÒc„6 Hû"¸oÌ¥Ç6l@‘ ÷! DpߘKm"Ø€"AîC@ˆà¾1—Û D°E‚܇€Á}c.=¶A@ˆ`й!‚ûÆ\zlƒ€Á rB÷¹ôØ!‚ (ä>„îsé± BP$È}Ü7æÒc„6 Hû"¸oÌ¥Ç6l@‘ ÷! DpߘKm"Ø€"AîC@ˆà¾1—Û D°E‚܇€Á}c.=¶A@ˆ`й!‚ûÆ\zlƒ€Á rB÷¹ôØ!‚ (ä>ýÇœ 6И1c܇D*õøÈ‘êßFÝQŸÛ©ÔwU›;wnš0a‚g§Ç%"¬Y³èøÕ­+ÿÊÈ-yNÛœL½zõòUmÐãkyЛñèœ8q‚vïÞýè˜súôé„A«Zµ*uëÖMùýsÑ|@ÿú׿*áÿø9ÒL»víZzë­·èâŋԶm[vYÇÇÇSÿþýé»ï¾ãtÖ¾aƒ,ÉÏvìÝ»—<P±7nd…4iÒ„:wîLðËúé§ôÎ;ïÚˆ´lÙ’¾ÿþ{NŠ>ݹs'lAM“ìáîÝ»tùòeÊ—/?ž 9K”(ÁÚï§Ÿ~"Ä—,Y’¢¢¢èܹs¬}²gÏnvêÂ… –5kVÓÚe@SiA¹ÐÅŠ£Œ3Ò•+W¨`Á‚:š¯ÐP†a°¶Á*‘3gNNHM„;~ü8]¿~J—.mjsäC[¡Ý¡Ù¬ÏÈ;þ|ž°íÚµ3댈ˆ ¥K—RŸ>}÷`€~¢ý=ö‡]½z•0‘1à˜øè?T®\9úç?ÿi¶áå—_f’Mš4‰êׯÏyõêÈ!ƒ~¤{÷îѱcÇø |###9NGþüùÙ_ޱ)UªcéÙŽ¼yóšåáÆ~(÷ïÿ;¯ZãÆ3ÇæÅ_¤J•*ч~Hß~û-5mÚ”~þùgî;ÆìÈ‘#ŒEŽ9¸.`A»߸qcúÍo~ÃaøÂªyôèQ¼†èÄW¿8A2¿’M„C‡QÏž=©J•*´}ûvn€Á mÙ²…Ÿõ«_1P#FŒ`BH&s›6mX3"ÏÀI “æÂŽ;hРA{ö,Õ«WA °4&lOLv¬ü1kØ¯È »²@œZÞ›<ñÄÔ A®é *ÄG§ïر#O"Ô‡x½Šá¹{÷î&<ŸA.˜3ÐÊPlœ»víÊ“e¯X±‚'0€ ‡U ÂM›6éªÍ+4ᣠ°€bÁFæ&γÏ>Ëa¥Ð- s›z˜Nš|:ÞÛÕ~¨ }²(Äkâ€2AzÌ ÄÃäñ% k5xÌã“-[6^­u¾Gí—ÎïíšlÓH Ѷ*&Dk6h+Lx àªU«ØûIˆ%°`a5€ŒÕqZûcÙ×Bx“Â… 'ˆÂ>A—­ñq8ÔéO ù¡í`¾á™€—·°ò€¤°}A˜wZ0uÿu®Øç@6oÞL5â{ýë"4¦€¬–ØŸh¡-µ`3¯«G äó†œ(š^­.õ¼é´@iÎë8è8}EÙØ?aßfÌ+ë=j¿¬eÚÝ?¤°]lÂìÜ.;Ì#æ L˜ L€öíÛóÒ {D€i¡;ŽÉ¨Åæ¥)Å`êh1¬(ÖÉo-&œ/Rérî=˜ Z0@­ZµâG”‰‰Í "ëV»—µó¦–§`EĦZïC<ãQäü£YÌ»7ÞxÃ$⤵ &£+~Ø[Aãôñì§@†Úµk›QÖr´WÏÖ(„ÁæZ  V9k¾Gí—.ÓÛ5ňà­ÏpøÂ±\N™2…'‰pغ}ô{ °<ó‚t01°’À&‡§›&hCo‚Í2luh‘É“'óC›gȃzQÌ2læ±C0ÉaúhÂúŒI€=6ÃXÞasÃfƾdÆfýByXíP7Ú‹ê‚`ÈÉçØœ ´g ƒuãm—aÖvØ¥ñ†V˜»xi g0ÿà!ƒ«û"Ûj²Î›7'1ðÂ&Þ¤Ñm€2ŽVÁXÀl†ˆC>H½zõø̯3ü5R3Z›Ø^xÁÌï <p!b°àÑùË_þÂPð8 ®yóæ¬éà‘°Ú›ºl†¥˜&ð¶T¨Pà·‡`¢£h ˜i:uâpxq íàÙÀ [Ÿá6lÁß9& Ú1|øp^ àÝÀd:t(ÇcRb¡M:Ô‚bI‹þÞ¼y“f̘A8£€€l؈?ýôÓüŒ/Ý7}E½0¿à}Bß X=Q¯ÕFçˆ_¾Wç÷l’è8Ü{ÃqX±Bc3 Gub%@»1nZ È^{í56§0–h¯®Vø2Bî5 X¥'á„€!œFSúòÈ:ÉNxÝ,×+"„úÅA»>%"üß¾N6í ‘0A - ·¶W·­:ÀHøâ{Zè‘´QHYÆÉ!e•ÒÒ(B„4:pÒì”E@ˆ²xJii!B8ivÊ"ð‡ŸáQÝIEND®B`‚mysql++-3.2.5/doc/html/refman/functions_func_e.html000755 000765 000024 00000016352 13515046515 023034 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Class Members - Functions
MySQL++  3.2.5
mysql++-3.2.5/doc/html/refman/type__info_8h.html000755 000765 000024 00000022620 13515046515 022232 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: type_info.h File Reference
MySQL++  3.2.5
type_info.h File Reference

Declares classes that provide an interface between the SQL and C++ type systems. More...

#include "common.h"
#include "exceptions.h"
#include <map>
#include <sstream>
#include <typeinfo>

Go to the source code of this file.

Classes

class  mysqlpp::mysql_type_info
 SQL field type information. More...
 

Functions

bool mysqlpp::operator== (const mysql_type_info &a, const mysql_type_info &b)
 Returns true if two mysql_type_info objects are equal.
 
bool mysqlpp::operator != (const mysql_type_info &a, const mysql_type_info &b)
 Returns true if two mysql_type_info objects are not equal.
 
bool mysqlpp::operator== (const std::type_info &a, const mysql_type_info &b)
 Returns true if a given mysql_type_info object is equal to a given C++ type_info object.
 
bool mysqlpp::operator != (const std::type_info &a, const mysql_type_info &b)
 Returns true if a given mysql_type_info object is not equal to a given C++ type_info object.
 
bool mysqlpp::operator== (const mysql_type_info &a, const std::type_info &b)
 Returns true if a given mysql_type_info object is equal to a given C++ type_info object.
 
bool mysqlpp::operator != (const mysql_type_info &a, const std::type_info &b)
 Returns true if a given mysql_type_info object is not equal to a given C++ type_info object.
 

Detailed Description

Declares classes that provide an interface between the SQL and C++ type systems.

These classes are mostly used internal to the library.

mysql++-3.2.5/doc/html/refman/inherit_graph_28.png000644 000765 000024 00000012007 13515046516 022450 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÊ1›06rsRGB®ÎéÁIDATxíœåF¯…{7ffff¦ 'fΆ¹RaN6ÌÌÌÌPaffÆ 33÷;Ÿþ'oÇöÜ;´ÉŒUå¹v³Õ­–tZž>Qjª9Ps ’}+sëÌš5Œµ Ô ¡æ@¨¥&ÕEjÔ‚R¯špg>¥«®º ç¾¾jôÚ50×\s¥"a÷ýÊ„IS–U§×豸ä’KÂ'Ÿ|ÒêýJeÍ5×lU¸N¨9ÐÓ9ðôÓO Jí£ôô™¯ß¯S8P J§°±n¤§s ”ž>Ãõûu jAé6Öôtüçåâ‹/Ûo¿}—ÏÓú믖[n¹׿›on¼ñƆû¾çž{ÂJ+­?üð¬Îé§ŸYd‘0Æc„É'Ÿ<ÐÏû￟åwÕÍ_ý¾ùæ›v7¿Øb‹_à'åÍꫯ.¸à‚ðÃ?4Ôþ€Â5×\ÓfÙŽŽ¹Í* üçå7Þ>úhÅ+vNÖ½÷Þ¾úê«0ãŒ3Ú5Í4Ó„_|1¬²Ê*áì³Ïn¨“í¶Û.|ûí·aÉ%—´ò›m¶YØvÛmM@Ž9昰ꪫ†x Ì;ï¼áÓO?m¨Íöºùæ›Ã˜cŽþüóÏv5Á8¿üòK«{×]w…ï¾û.ãÍpà g›ÂÓýòË/á?þh³hGÇÜfUò'+~à˜O/{þí·ßâ Aƒ¢¤=¾ûî»Q‹ÇŠþý÷ßñ¥—^ŠÚu¢˜`iÚ)ã×_Ý¢©?ü0jñdiÏ<óLÔÂ?ýôS–ÆÍ?þy䑨ÅþùçøÞ{ïYþ>ûìgŸ}v»ÿþûï£&Ìú{øá‡£„ÈÒùóûï¿ÇÏ>ûÌž_{íµøØcYšøçŸ¢&,2n(ÿ<ÞxãÅ]wÝÕ‹Û/ýi±Å%–X¢Eú|zè¡H¾Ó_|GuÔxØa‡Eí´ñ¾ûî³= ˆ±ß^x!5ÔPq=öÈÒy÷ûï¿ßêP× ^ ó÷ǨEŸÍ…Ï ïóöÛoGøA;Я¿þÏ8ã ëÿÍ7ßÌÞ™úôÏ0Ÿ)ÁøIy¨OŸ>ñÖ[oµ{Þkß}÷µ{ÿs衇ZûðÚ‰¹¾å–[â³Ï>küõtæÔç›2̃´]”0Æ>úÈŠ5;fæ{Ö%ʵñØ}[vß}÷Xtàò›”ÇÜ"Ul¿ʸð ǥ–Z*{žþùmñ.°À±ÿþY—,Å©§žj4餓ƑFÉ&a¢‰&ŠÎd6úè£Ç¾}ûZy^dÄG´vRA‘Ù§Ÿ~ú(3&3Ì0Öÿ¦›njån¸á{–™“åQ–‰î¾ûnËgA= 妞zê¸üòË[&g£6²v†zhëGay“L2‰¥ÃŸÝvÛ-J›ÄqÆ'ÛD¬ÐÿÿyðÁãSO=eOÜSŽ÷ÕNÇ{ì(ífy29#¼uB hÿ¹çž‹>/Òx6Ò©Ë¢¡>¼$ þ³ øAZ¿~ý"ïKI?äqÍ=÷Üö[%(×]w•aÀ<ð@듹AÈ\pÁlÓœxâ‰ã‘Giå¸gí ;ì°Ù¸Ï:묦ÇüüóÏ[ÿ2 ­?™èÖ~[Ê¥ÓL¯QF%|üñÇáøãbNТ Ú Âe—]´{‡W_}5l°ÁA$ âw×_}Є…µ×^;|ðÁAL Ú…­Þ¸ãŽ´ë™i°ñÆi  ˜ZŸþ¹Õ/ú#á §œrJÐÎ;ï<»nºé¦¬è„NhfÂ[o½´Â^{íeyÒ &~¡ü3iôMÄm¯·ÞzAZ4`BAôËûÒý3þ=÷Ü3hћߩsÎ9ç„£Ž:*пf@YÝô6š ÍÀÌ ^Ð"5“ Þh³ n¸¡ñ7­Sv/Íb&#¦s¢ð/Ü'`œ“M6Y€ÇÃ?|€øóÌ3OXwÝuÙHí]I§®´e€‡y‚7»N8á„°÷Þ{mAd „†sÏ=×x.a ê -”oÆžµÈ­Ž61óßÎ<ó̦Çì ˪±u†‰Ü!ÊKX{5Ê“O>iM±ci@Ñ%óƒg …™Mì´r`­¬lõ¸âŠ+Ú=¦;&¦ »æ×Oú裳"wÞygXf™eÌ™—MnZC¶vXy啳2£6Zpd‰º™vÚiÃE]ä7„‘G9Í ,Ó4SM5•¥Ï9çœYþøão÷ yB;ä‰wtBch±úcöë(ð /ÌÒµ‰Þ¾÷l³Í–•ñ-n³ ü9ýE QëÁ‰÷(zòócíÊS՘ѢÎó™gž9_µ]σGÞ®êƒ+¥LœÚúóK~€-.í¶—R äUŒY¥-0IŒ3-E0wÊ( hM‘½ÞB°Ò|9¸-òÊÚ,K_zé¥Ã,³ÌÞyç+"md_L¿N>ùdƒOómÈÎ7³’÷N‰÷?äCìý}ó]s‚7æ‹AÁ³&Mž™Æ a2ù¸é$”O"`Â89,ìÏmýò/¿ü²™q^–öË6<_ä^¶è·jÌlBM&(L¦Vzûí·Ÿ-  Dûu‡v0ÿd†f0í#SÇv"´> ¤P™€ÍZFL~þ‚ÇB’³—Ùfí\}õÕAfLXa…,›þ}Ñ石r7c5–ùU$sFB›hLúGËù ç ¿fŽ9æ2A•W^i¶?þÂG›ë¬³N@“°óÒ ÷g×GȦœrÊ€Ö~å•W¬?„MÔ( ì°¢¯¿þºiY¡†¿¤ ÐÙZBNµ½çE—_~¹ù‰(íÆÊÁøÁœó2§Íšà›¡fÆÜL» •ÍÛoíõQÆ"VÇbœÉ3>‚HiÀÀNستÚM •ÒNm.ù·ß~»!YÔÑe†µðQ´à¬P/- ¬,~„£Nî£P—v@vð–tÛ¿ õÂ~Í“€ ð#°æj«­fíÓ‡û\^E €?œ´LY¿€ºb§ ã’àX>ï.s,J8¬  aíž–‡ÿ´É&›Ø}Šzù¼PAfbtPg †¦Ñ¯6ó ñç|Ì:$-g¾—çòá{¹"ó²$ *õ%ç ÎÃ.¨¤Š½í‡w°CN±A°@ÓM7]`gÎk*P/á5@¨@ø[úÁµ©`‡˜ƒNœq±£C„”`û{ »|Y$2°°×£.í°èùuÖYƒÐ$’ ‰ƒ=ýµå£¸ Bn” 3!¬†; 6>÷a+¼ƒðAâ0’3|ǼïÁy ‡‚äÞ”íñ ؼ9Ì\À—az¥Ô¨WÚ÷ Âè- W±Qùlƒ ÊÓ‚4È8’°1Øž5†ˆ 0ø8E€_û+Ôx”P  Tàa‚í Ð)651üÌ=ð§‡B3:rVXY”I?[n¹¥&r_ë´ßî·Øb ƒzí¡àp­C¨:ã) `LÇK3„¥ð.\ðIŽ¿ÁÈi:#±| ž%k‘Vu’ Z"08ó@P#P¯óÓCŒ@ËCiK‘†X2ÆÔ r—Ç›í§s™–éªû2ÔkˆÀÃþ’À;…ª³xìg Óóý—E¢ÝÖ E& _»«AÉ@,8pz˜Êäɦ·ªL|•õlbXÀ­Äiw´I®¦ Î,8W!®©JP,hp,Â#`!*ÚÀúCP¨§OL`lžYˆ‹I§îvÏíàÇ=‚Ââ¡ôbRAaÓàìˆ8,`atš°àRA‘V´þyWøtâ‰'Ú3ç-)å…<¢Á¹œØpØh EÚÖ>uà“ÎŽ¤Q,ŒÿØcµMHZÊBõ¥!­Obö™;?'á쌳!>H‰Ï.˜OâðØÐthkáùyh<­ÓY÷ÿAa‘rˆäaÛìL0“àÉ2b‘¤ß‚ÈÔ°Åáåuší-»ì²qñÅ·,à[¸¶L$ [GqÐ¥-û¦…±@r‘î„W JY`% ¼,(ÓÛ.ûEPØ,ÂôBÀ!ù6¶²ÆTPМ7¥çIl sĦƒ€qÐǽbÓl,Šz’Àü⌤*0T¦«iM™½ÖÚ kB棵›ÿƒ`ÜqÇ67lŒ±lv]Ee‚Òí>г,,O_‰sò¯ýÄèJJý lzº¤6®gõµX-dœ¯ï@ð°Ã±§ [×±‹0ü}bv9ŸðU¡“Ço Ós  júrÊŸÑäƒ2½\ѯ„! -Ê'­Ñ`@Ê*ÊÀ|-lŠ=/ýås^¾ÈôO!ðÇqJyàŸO0>|—¢ÀPæO· €ÕÆ`à„¢¨ ,a>ò„ŸÂ\qá§‚ø¦ƒ#34_¼KŸ»Ýcb¢ønƒEAä-A„ÄfápWQÞá++Ëd2©8Å,¾Ý€€ûpú‰™"0’H`b¨˜b«p^tÒí·…¿U•iÀB>(³°Á&`( `Ìâ`KûPá]4ÐÈæÂ&CÜ|%ˆÕ)}O¢‹!‚_Y`(<†· ˆ2Eí»{¾Ñ)#W‰‹dàÀZ¾©ÅÇ••ïªônvv*™Ç¼õÖ[Å/HNGè“t~ óï¶AºØ‘˜TÐ4'Ñ :ìX矾¡a dïUQY`%uª‚29· "Ú Ìž¡š!øUÀ˜¶E&Èý°° f”)•©¼'Ò›H =}Ãñ hg1ÙxäûØGZ \U¡h6‚-93Âàc<´ ó”衾K †üã 4>”CóË y­Öí²û¼­7$P/hlb±ó””ãSÔÔgÁÉÄ®wâC'1Ì€OÃé­"{'\ßXX6 €K’ßÄ/¨W\稗—ÅÑÔ®›V⣔eÒ+IH}H­P/>Å-#xà¨~ˆ‹‘qâ¿à@éxyæ³cÊpˆð–F’¹3Ÿú^¤ãÛðé.}§Ž4> Á›ø-´Ë¸=Àp¡*0”O‚á¿6(»½Ý‡¢_âýðG´aE|²î¤2eˆ¢^E À¹ë(1iL`~âi—4˜tâI1"X’€F—úK>ä‚RX‰ ”eþ¯…Îû[À˜ïEÚÄþ¡Ît3’Ôq§>‚²HRÄcÊT† â VD¬üü•늴2Aévg^ °’ü€«²PE&&j“‹ƒÃ<¥QÈUº´O¾Z«g/Û*C ˜tUA™EušMk¦€ i¤/L.Bj8¬ä›™"Âá*"|P®"Âwâÿ”QG×@Y»Iïv¥#ƒm¤.ö2Â@|T{I&…ýC‡¼íÌWVbSçêöŽaH×Ã/áÔ‡d/%x/zÕA‘½i¶ëwm“EA‘=N£´É‰º@Ívp ”v0­®Òû8P Jï›óúÛÁRÔ‹·jª9ÐÛ8€‘ÿ?kð • é}<ÔÛV¿oïäÑü+¨<µB½òêçš5B¨}”zÔh€µ 4À¤ºHÍZPê5Ps Ô‚Ò“ê"5þ,¨jª£ŠIEND®B`‚mysql++-3.2.5/doc/html/refman/query_8h_source.html000755 000765 000024 00000377667 13515046515 022654 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: query.h Source File
MySQL++  3.2.5
query.h
Go to the documentation of this file.
1 
4 /***********************************************************************
5  Copyright (c) 1998 by Kevin Atkinson, (c) 1999-2001 by MySQL AB, and
6  (c) 2004-2011 by Educational Technology Resources, Inc. Others may
7  also hold copyrights on code in this file. See the CREDITS.txt file
8  in the top directory of the distribution for details.
9 
10  This file is part of MySQL++.
11 
12  MySQL++ is free software; you can redistribute it and/or modify it
13  under the terms of the GNU Lesser General Public License as published
14  by the Free Software Foundation; either version 2.1 of the License, or
15  (at your option) any later version.
16 
17  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
18  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
19  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
20  License for more details.
21 
22  You should have received a copy of the GNU Lesser General Public
23  License along with MySQL++; if not, write to the Free Software
24  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
25  USA
26 ***********************************************************************/
27 
28 #if !defined(MYSQLPP_QUERY_H)
29 #define MYSQLPP_QUERY_H
30 
31 #include "common.h"
32 
33 #include "exceptions.h"
34 #include "noexceptions.h"
35 #include "qparms.h"
36 #include "querydef.h"
37 #include "result.h"
38 #include "row.h"
39 #include "sqlstream.h"
40 #include "stadapter.h"
41 #include "transaction.h"
42 
43 #include <deque>
44 #include <iomanip>
45 #include <list>
46 #include <map>
47 #include <set>
48 #include <vector>
49 
50 #ifdef HAVE_EXT_SLIST
51 # include <ext/slist>
52 #else
53 # if defined(HAVE_STD_SLIST) || defined(HAVE_GLOBAL_SLIST)
54 # include <slist>
55 # endif
56 #endif
57 
58 namespace mysqlpp {
59 
60 #if !defined(DOXYGEN_IGNORE)
61 // Make Doxygen ignore this
62 class MYSQLPP_EXPORT Connection;
63 class MYSQLPP_EXPORT Transaction;
64 #endif
65 
120 
121 class MYSQLPP_EXPORT Query :
122  public std::ostream,
123  public OptionalExceptions
124 {
125 public:
126  // Bring in InsertPolicy template as part of this class's interface,
127  // separate only in the sense that it's a self-contained concept.
128  #define MYSQLPP_DEFINE_INSERT_POLICY_TEMPLATES
129  #include "insertpolicy.h"
130  #undef MYSQLPP_DEFINE_INSERT_POLICY_TEMPLATES
131 
139  Query(Connection* c, bool te = true, const char* qstr = 0);
140 
148  Query(const Query& q);
149 
151  ulonglong affected_rows();
152 
167  size_t escape_string(std::string* ps, const char* original = 0,
168  size_t length = 0) const;
169 
191  size_t escape_string(char* escaped, const char* original,
192  size_t length) const;
198  int errnum() const;
199 
204  const char* error() const;
205 
208  std::string info();
209 
220  ulonglong insert_id();
221 
226  Query& operator=(const Query& rhs);
227 
246  operator void*() const;
247 
255  bool operator !() const { return !operator void*(); }
256 
264  void parse();
265 
275  void reset();
276 
280  bool result_empty();
281 
283  std::string str() { return str(template_defaults); }
284 
298  std::string str(const SQLTypeAdapter& arg0)
299  { return str(SQLQueryParms() << arg0); }
300 
305  std::string str(SQLQueryParms& p);
306 
317  bool exec() { return exec(str(template_defaults)); }
318 
330  bool exec(const std::string& str);
331 
348  SimpleResult execute();
349 
358  SimpleResult execute(SQLQueryParms& p);
359 
376  SimpleResult execute(const SQLTypeAdapter& str);
377 
382  SimpleResult execute(const char* str, size_t len);
383 
409  UseQueryResult use();
410 
421 
439  UseQueryResult use(const SQLTypeAdapter& str);
440 
450  UseQueryResult use(const char* str, size_t len);
451 
473  StoreQueryResult store();
474 
484 
502  StoreQueryResult store(const SQLTypeAdapter& str);
503 
513  StoreQueryResult store(const char* str, size_t len);
514 
525  template <typename Function>
526  Function for_each(const SQLTypeAdapter& query, Function fn)
527  {
528  mysqlpp::UseQueryResult res = use(query);
529  if (res) {
530  mysqlpp::NoExceptions ne(res);
531  while (mysqlpp::Row row = res.fetch_row()) {
532  fn(row);
533  }
534  }
535 
536  return fn;
537  }
538 
546  template <typename Function>
547  Function for_each(Function fn)
548  {
549  mysqlpp::UseQueryResult res = use();
550  if (res) {
551  mysqlpp::NoExceptions ne(res);
552  while (mysqlpp::Row row = res.fetch_row()) {
553  fn(row);
554  }
555  }
556 
557  return fn;
558  }
559 
570  template <class SSQLS, typename Function>
571  Function for_each(const SSQLS& ssqls, Function fn)
572  {
573  std::string query("select * from `");
574  query += ssqls.table();
575  query += '`';
576  mysqlpp::UseQueryResult res = use(query);
577  if (res) {
578  mysqlpp::NoExceptions ne(res);
579  while (mysqlpp::Row row = res.fetch_row()) {
580  fn(row);
581  }
582  }
583 
584  return fn;
585  }
586 
606  template <class Sequence, typename Function>
607  Function store_if(Sequence& con, const SQLTypeAdapter& query, Function fn)
608  {
609  mysqlpp::UseQueryResult res = use(query);
610  if (res) {
611  mysqlpp::NoExceptions ne(res);
612  while (mysqlpp::Row row = res.fetch_row()) {
613  if (fn(row)) {
614  con.push_back(row);
615  }
616  }
617  }
618 
619  return fn;
620  }
621 
633  template <class Sequence, class SSQLS, typename Function>
634  Function store_if(Sequence& con, const SSQLS& ssqls, Function fn)
635  {
636  std::string query("select * from `");
637  query += ssqls.table();
638  query += '`';
639  mysqlpp::UseQueryResult res = use(query);
640  if (res) {
641  mysqlpp::NoExceptions ne(res);
642  while (mysqlpp::Row row = res.fetch_row()) {
643  if (fn(row)) {
644  con.push_back(row);
645  }
646  }
647  }
648 
649  return fn;
650  }
651 
661  template <class Sequence, typename Function>
662  Function store_if(Sequence& con, Function fn)
663  {
664  mysqlpp::UseQueryResult res = use();
665  if (res) {
666  mysqlpp::NoExceptions ne(res);
667  while (mysqlpp::Row row = res.fetch_row()) {
668  if (fn(row)) {
669  con.push_back(row);
670  }
671  }
672  }
673 
674  return fn;
675  }
676 
703  StoreQueryResult store_next();
704 
716  bool more_results();
717 
734  template <class Sequence>
735  void storein_sequence(Sequence& con)
736  {
737  storein_sequence(con, str(template_defaults));
738  }
739 
753  template <class Sequence>
754  void storein_sequence(Sequence& con, const SQLTypeAdapter& s)
755  {
756  if (UseQueryResult result = use(s)) {
757  while (1) {
758  MYSQL_ROW d = result.fetch_raw_row();
759  if (!d) break;
760  Row row(d, &result, result.fetch_lengths(),
761  throw_exceptions());
762  if (!row) break;
763  con.push_back(typename Sequence::value_type(row));
764  }
765  }
766  else if (!result_empty()) {
767  // Underlying MySQL C API returned an empty result for this
768  // query, but it also says it should have returned
769  // something. Reasons it can do that are given here:
770  // http://dev.mysql.com/doc/refman/5.5/en/null-mysql-store-result.html
771  // Regardless, it means the C library barfed, so we can't
772  // just return an empty result set.
773  copacetic_ = false;
774  if (throw_exceptions()) {
775  throw UseQueryError("Bogus empty result");
776  }
777  }
778  // else, it was *supposed* to return nothing, because query was
779  // an INSERT, CREATE, etc. sort. So, leave con untouched.
780  }
781 
792  template <class Seq>
793  void storein_sequence(Seq& con, SQLQueryParms& p)
794  {
795  storein_sequence(con, str(p));
796  }
797 
805  template <class Set>
806  void storein_set(Set& con)
807  {
808  storein_set(con, str(template_defaults));
809  }
810 
824  template <class Set>
825  void storein_set(Set& con, const SQLTypeAdapter& s)
826  {
827  if (UseQueryResult result = use(s)) {
828  while (1) {
829  MYSQL_ROW d = result.fetch_raw_row();
830  if (!d) break;
831  Row row(d, &result, result.fetch_lengths(),
832  throw_exceptions());
833  if (!row) break;
834  con.insert(typename Set::value_type(row));
835  }
836  }
837  else if (!result_empty()) {
838  // Underlying MySQL C API returned an empty result for this
839  // query, but it also says it should have returned
840  // something. Reasons it can do that are given here:
841  // http://dev.mysql.com/doc/refman/5.5/en/null-mysql-store-result.html
842  // Regardless, it means the C library barfed, so we can't
843  // just return an empty result set.
844  copacetic_ = false;
845  if (throw_exceptions()) {
846  throw UseQueryError("Bogus empty result");
847  }
848  }
849  // else, it was *supposed* to return nothing, because query was
850  // an INSERT, CREATE, etc. sort. So, leave con untouched.
851  }
852 
863  template <class Set>
865  {
866  storein_set(con, str(p));
867  }
868 
887  template <class Container>
888  void storein(Container& con)
889  {
890  storein(con, str(template_defaults));
891  }
892 
899  template <class T>
900  void storein(T& con, SQLQueryParms& p)
901  {
902  storein(con, str(p));
903  }
904 
906  template <class T>
907  void storein(std::vector<T>& con, const SQLTypeAdapter& s)
908  {
909  storein_sequence(con, s);
910  }
911 
913  template <class T>
914  void storein(std::deque<T>& con, const SQLTypeAdapter& s)
915  {
916  storein_sequence(con, s);
917  }
918 
920  template <class T>
921  void storein(std::list<T>& con, const SQLTypeAdapter& s)
922  {
923  storein_sequence(con, s);
924  }
925 
926 #if defined(HAVE_EXT_SLIST)
927  template <class T>
930  void storein(__gnu_cxx::slist<T>& con, const SQLTypeAdapter& s)
931  {
932  storein_sequence(con, s);
933  }
934 #elif defined(HAVE_GLOBAL_SLIST)
935  template <class T>
942  void storein(slist<T>& con, const SQLTypeAdapter& s)
943  {
944  storein_sequence(con, s);
945  }
946 #elif defined(HAVE_STD_SLIST)
947  template <class T>
953  void storein(std::slist<T>& con, const SQLTypeAdapter& s)
954  {
955  storein_sequence(con, s);
956  }
957 #endif
958 
960  template <class T>
961  void storein(std::set<T>& con, const SQLTypeAdapter& s)
962  {
963  storein_set(con, s);
964  }
965 
967  template <class T>
968  void storein(std::multiset<T>& con, const SQLTypeAdapter& s)
969  {
970  storein_set(con, s);
971  }
972 
983  template <class T>
984  Query& update(const T& o, const T& n)
985  {
986  reset();
987 
988  // Cast required for VC++ 2003 due to error in overloaded operator
989  // lookup logic. For an explanation of the problem, see:
990  // http://groups-beta.google.com/group/microsoft.public.vc.stl/browse_thread/thread/9a68d84644e64f15
991  MYSQLPP_QUERY_THISPTR << std::setprecision(16) <<
992  "UPDATE `" << o.table() << "` SET " << n.equal_list() <<
993  " WHERE " << o.equal_list(" AND ", sql_use_compare);
994  return *this;
995  }
996 
1005  template <class T>
1006  Query& insert(const T& v)
1007  {
1008  reset();
1009 
1010  MYSQLPP_QUERY_THISPTR << std::setprecision(16) <<
1011  "INSERT INTO `" << v.table() << "` (" <<
1012  v.field_list() << ") VALUES (" <<
1013  v.value_list() << ')';
1014  return *this;
1015  }
1016 
1030  template <class Iter>
1031  Query& insert(Iter first, Iter last)
1032  {
1033  reset();
1034 
1035  if (first != last) {
1036  // Build SQL for first item in the container. It's special
1037  // because we need the table name and field list.
1038  MYSQLPP_QUERY_THISPTR << std::setprecision(16) <<
1039  "INSERT INTO `" << first->table() << "` (" <<
1040  first->field_list() << ") VALUES (" <<
1041  first->value_list() << ')';
1042 
1043  // Now insert any remaining container elements. Be careful
1044  // hacking on the iterator use here: we want it to work
1045  // with containers providing only a forward iterator.
1046  Iter it = first;
1047  while (++it != last) {
1048  MYSQLPP_QUERY_THISPTR << ",(" << it->value_list() << ')';
1049  }
1050  }
1051 
1052  return *this;
1053  }
1054 
1067  template <class Iter, class InsertPolicy>
1068  Query& insertfrom(Iter first, Iter last, InsertPolicy& policy)
1069  {
1070  bool success = true;
1071  bool empty = true;
1072 
1073  reset();
1074 
1075  if (first == last) {
1076  return *this; // empty set!
1077  }
1078 
1079  typename InsertPolicy::access_controller ac(*conn_);
1080 
1081  for (Iter it = first; it != last; ++it) {
1082  if (policy.can_add(int(tellp()), *it)) {
1083  if (empty) {
1084  MYSQLPP_QUERY_THISPTR << std::setprecision(16) <<
1085  "INSERT INTO `" << it->table() << "` (" <<
1086  it->field_list() << ") VALUES (";
1087  }
1088  else {
1089  MYSQLPP_QUERY_THISPTR << ",(";
1090  }
1091 
1092  MYSQLPP_QUERY_THISPTR << it->value_list() << ')';
1093 
1094  empty = false;
1095  }
1096  else {
1097  // Execute what we've built up already, if there is anything
1098  if (!empty) {
1099  if (!exec()) {
1100  success = false;
1101  break;
1102  }
1103 
1104  empty = true;
1105  }
1106 
1107  // If we _still_ can't add, the policy is too strict
1108  if (policy.can_add(int(tellp()), *it)) {
1109  MYSQLPP_QUERY_THISPTR << std::setprecision(16) <<
1110  "INSERT INTO `" << it->table() << "` (" <<
1111  it->field_list() << ") VALUES (" <<
1112  it->value_list() << ')';
1113 
1114  empty = false;
1115  }
1116  else {
1117  // At this point all we can do is give up
1118  if (throw_exceptions()) {
1119  throw BadInsertPolicy("Insert policy is too strict");
1120  }
1121 
1122  success = false;
1123  break;
1124  }
1125  }
1126  }
1127 
1128  // We might need to execute the last query here.
1129  if (success && !empty && !exec()) {
1130  success = false;
1131  }
1132 
1133  if (success) {
1134  ac.commit();
1135  }
1136  else {
1137  ac.rollback();
1138  }
1139 
1140  return *this;
1141  }
1142 
1155  template <class Iter, class InsertPolicy>
1156  Query& replacefrom(Iter first, Iter last, InsertPolicy& policy)
1157  {
1158  bool success = true;
1159  bool empty = true;
1160 
1161  reset();
1162 
1163  if (first == last) {
1164  return *this; // empty set!
1165  }
1166 
1167  typename InsertPolicy::access_controller ac(*conn_);
1168 
1169  for (Iter it = first; it != last; ++it) {
1170  if (policy.can_add(int(tellp()), *it)) {
1171  if (empty) {
1172  MYSQLPP_QUERY_THISPTR << std::setprecision(16) <<
1173  "REPLACE INTO `" << it->table() << "` (" <<
1174  it->field_list() << ") VALUES (";
1175  }
1176  else {
1177  MYSQLPP_QUERY_THISPTR << ",(";
1178  }
1179 
1180  MYSQLPP_QUERY_THISPTR << it->value_list() << ')';
1181 
1182  empty = false;
1183  }
1184  else {
1185  // Execute what we've built up already, if there is anything
1186  if (!empty) {
1187  if (!exec()) {
1188  success = false;
1189  break;
1190  }
1191 
1192  empty = true;
1193  }
1194 
1195  // If we _still_ can't add, the policy is too strict
1196  if (policy.can_add(int(tellp()), *it)) {
1197  MYSQLPP_QUERY_THISPTR << std::setprecision(16) <<
1198  "REPLACE INTO `" << it->table() << "` (" <<
1199  it->field_list() << ") VALUES (" <<
1200  it->value_list() << ')';
1201 
1202  empty = false;
1203  }
1204  else {
1205  // At this point all we can do is give up
1206  if (throw_exceptions()) {
1207  throw BadInsertPolicy("Insert policy is too strict");
1208  }
1209 
1210  success = false;
1211  break;
1212  }
1213  }
1214  }
1215 
1216  // We might need to execute the last query here.
1217  if (success && !empty && !exec()) {
1218  success = false;
1219  }
1220 
1221  if (success) {
1222  ac.commit();
1223  }
1224  else {
1225  ac.rollback();
1226  }
1227 
1228  return *this;
1229  }
1230 
1240  template <class T>
1241  Query& replace(const T& v)
1242  {
1243  reset();
1244 
1245  MYSQLPP_QUERY_THISPTR << std::setprecision(16) <<
1246  "REPLACE INTO `" << v.table() << "` (" <<
1247  v.field_list() << ") VALUES (" << v.value_list() << ')';
1248  return *this;
1249  }
1250 
1265  template <class Iter>
1266  Query& replace(Iter first, Iter last)
1267  {
1268  reset();
1269  if (first != last) {
1270  // Build SQL for first item in the container. It's special
1271  // because we need the table name and field list.
1272  MYSQLPP_QUERY_THISPTR << std::setprecision(16) <<
1273  "REPLACE INTO " << first->table() << " (" <<
1274  first->field_list() << ") VALUES (" <<
1275  first->value_list() << ')';
1276 
1277  // Now insert any remaining container elements. Be careful
1278  // hacking on the iterator use here: we want it to work
1279  // with containers providing only a forward iterator.
1280  Iter it = first;
1281  while (++it != last) {
1282  MYSQLPP_QUERY_THISPTR << ",(" << it->value_list() << ')';
1283  }
1284  }
1285 
1286  return *this;
1287  }
1288 
1289 #if !defined(DOXYGEN_IGNORE)
1290  // Declare the remaining overloads. These are hidden down here partly
1291  // to keep the above code clear, but also so that we may hide them
1292  // from Doxygen, which gets confused by macro instantiations that look
1293  // like method declarations.
1294  mysql_query_define0(std::string, str)
1295  mysql_query_define0(SimpleResult, execute)
1296  mysql_query_define0(StoreQueryResult, store)
1297  mysql_query_define0(UseQueryResult, use)
1298  mysql_query_define1(storein_sequence)
1299  mysql_query_define1(storein_set)
1300  mysql_query_define1(storein)
1301 #endif // !defined(DOXYGEN_IGNORE)
1302 
1307 
1308 private:
1309  friend class SQLQueryParms;
1310 
1312  Connection* conn_;
1313 
1315  bool copacetic_;
1316 
1318  std::vector<SQLParseElement> parse_elems_;
1319 
1322  std::vector<std::string> parsed_names_;
1323 
1325  std::map<std::string, short int> parsed_nums_;
1326 
1328  std::stringbuf sbuffer_;
1329 
1331  void proc(SQLQueryParms& p);
1332 
1333  SQLTypeAdapter* pprepare(char option, SQLTypeAdapter& S, bool replace = true);
1334 };
1335 
1336 
1340 inline std::ostream& operator <<(std::ostream& os, Query& q)
1341 {
1342  return os << q.str();
1343 }
1344 
1345 
1346 } // end namespace mysqlpp
1347 
1348 #endif // !defined(MYSQLPP_QUERY_H)
1349 
StoreQueryResult set type for "store" queries.
Definition: result.h:209
Declares the SQLTypeAdapter class.
A special std::set derivative for holding MySQL data sets.
Definition: myset.h:71
void storein(std::deque< T > &con, const SQLTypeAdapter &s)
Specialization of storein_sequence() for std::deque.
Definition: query.h:914
Declares the template query parameter-related stuff.
std::string str()
Get built query as a C++ string.
Definition: query.h:283
Function store_if(Sequence &con, const SSQLS &ssqls, Function fn)
Pulls every row in a table, conditionally storing each one in a container.
Definition: query.h:634
void storein(std::multiset< T > &con, const SQLTypeAdapter &s)
Specialization of storein_set() for std::multiset.
Definition: query.h:968
void storein(std::list< T > &con, const SQLTypeAdapter &s)
Specialization of storein_sequence() for std::list.
Definition: query.h:921
void storein(std::set< T > &con, const SQLTypeAdapter &s)
Specialization of storein_set() for std::set.
Definition: query.h:961
Declares the InsertPolicy classes.
Function for_each(const SQLTypeAdapter &query, Function fn)
Execute a query, and call a functor for each returned row.
Definition: query.h:526
Holds information about the result of queries that don't return rows.
Definition: result.h:48
Function for_each(Function fn)
Execute the query, and call a functor for each returned row.
Definition: query.h:547
Manages the connection to the database server.
Definition: connection.h:59
void storein_set(Set &con)
Execute a query, storing the result set in an STL associative container.
Definition: query.h:806
Defines a class for building quoted and escaped SQL text.
StoreQueryResult set type for "use" queries.
Definition: result.h:298
Query & insertfrom(Iter first, Iter last, InsertPolicy &policy)
Insert multiple new rows using an insert policy to control how the INSERT statements are created usin...
Definition: query.h:1068
Function store_if(Sequence &con, Function fn)
Execute the query, conditionally storing each row in a container.
Definition: query.h:662
Declares classes for holding information about SQL query results.
Disable exceptions in an object derived from OptionalExceptions.
Definition: noexceptions.h:119
std::string str(const SQLTypeAdapter &arg0)
Get built query as a C++ string with template query parameter substitution.
Definition: query.h:298
void storein(std::vector< T > &con, const SQLTypeAdapter &s)
Specialization of storein_sequence() for std::vector.
Definition: query.h:907
void storein_set(Set &con, const SQLTypeAdapter &s)
Executes a query, storing the result rows in an STL set-associative container.
Definition: query.h:825
void storein_sequence(Sequence &con, const SQLTypeAdapter &s)
Executes a query, storing the result rows in an STL sequence container.
Definition: query.h:754
void storein_sequence(Sequence &con)
Execute a query, storing the result set in an STL sequence container.
Definition: query.h:735
void storein(T &con, SQLQueryParms &p)
Store template query results into a container.
Definition: query.h:900
Manages rows from a result set.
Definition: row.h:63
Declares the MySQL++-specific exception classes.
Query & replace(const T &v)
Insert new row unless there is an existing row that matches on a unique index, in which case we repla...
Definition: query.h:1241
Interface allowing a class to have optional exceptions.
Definition: noexceptions.h:71
bool exec()
Execute a built-up query.
Definition: query.h:317
Function for_each(const SSQLS &ssqls, Function fn)
Run a functor for every row in a table.
Definition: query.h:571
Row fetch_row() const
Returns the next row in a "use" query's result set.
Definition: result.cpp:166
Function store_if(Sequence &con, const SQLTypeAdapter &query, Function fn)
Execute a query, conditionally storing each row in a container.
Definition: query.h:607
Query & replacefrom(Iter first, Iter last, InsertPolicy &policy)
Replace multiple new rows using an insert policy to control how the REPLACE statements are created us...
Definition: query.h:1156
void storein_set(Set &con, SQLQueryParms &p)
Execute template query using given parameters, storing the results in a set type container.
Definition: query.h:864
SQLQueryParms template_defaults
The default template parameters.
Definition: query.h:1306
Exception thrown when an insert policy is too strict to create a valid INSERT statement.
Definition: exceptions.h:456
Query & insert(Iter first, Iter last)
Insert multiple new rows.
Definition: query.h:1031
bool operator !() const
Returns true if the query object is not in a bad state.
Definition: query.h:255
Query & replace(Iter first, Iter last)
Insert multiple new rows, or replace existing ones if there are existing rows that match on key field...
Definition: query.h:1266
void storein(Container &con)
Execute a query, and store the entire result set in an STL container.
Definition: query.h:888
Query & update(const T &o, const T &n)
Replace an existing row's data with new data.
Definition: query.h:984
Declares the classes for holding row data from a result set.
This file includes top-level definitions for use both internal to the library, and outside it....
Query & insert(const T &v)
Insert a new row.
Definition: query.h:1006
This class holds the parameter values for filling template queries.
Definition: qparms.h:48
Exception thrown when something goes wrong in processing a "use" query.
Definition: exceptions.h:254
Converts many different data types to strings suitable for use in SQL queries.
Definition: stadapter.h:73
void storein_sequence(Seq &con, SQLQueryParms &p)
Execute template query using given parameters, storing the results in a sequence type container.
Definition: query.h:793
A class for building and executing SQL queries.
Definition: query.h:121
Declares the Transaction class.
Declares interface that allows exceptions to be optional.
mysql++-3.2.5/doc/html/refman/inherit_graph_14.png000644 000765 000024 00000004720 13515046516 022446 0ustar00tangentstaff000000 000000 ‰PNG  IHDR¹$ÕU›ÁsRGB®Îé ŠIDATxí\WˆM®;Ï€Š¢bΊ¢¢bœQ1D}0¢˜P3TD `÷ âƒE0+æœæœsû¯¯~z˜ÝÙ¹ÝK;GìN‡êžî¯k*ÍÞÅ)&2dÈÀÄgཙ­#äF2<FÈ3ü› !72áHÞá©S§hþüùÁͦnð•+W¦)S¦¬Õ¡ÉŸ|رT‡&×7nÔEs5ø!C†Ð;wkuhr‡i0ø#ä>?@³üð!‘áð9FÈ}~€fùáð½¯[·Ž†~§>æˆd>| _¿~¥Ûn׬YC#FŒðtÿPÇŽiöìÙžø£eò½ßºu‹Nœ8íþ}1.’=(P ]SÀ?þ¤?~xÂuذa„‡²E‹žø£eJ¶cS>¤¿ÿÒƒèêÕ«²–ÿþѵk×¹Ëß¿KÛãÇéýû÷k}úô)}üøÑj»pá}ú$÷;~ü8ݾ}Ûâv{õê•ÔoÞ¼Ixée×xø1&ëÙë±´GYœËðź_¾|Ioß¾•sÁÚ5é}à<^¿~M¨σÊUóé+ð„ …µæ ¾öíÛ—æÌ™#Í8k`œÏž=+²9½yóFÖÙ¶m[ªP¡‚´û+W®ÐÎ; ïkRŒ”âü8~zЖT……Eø›5k&WŒmÔ¨‘jÙ²¥U¯W¯žâªúõ뫦M›ZÓ1Ð*S¦LjÉ’%êòå˪dÉ’*gΜ*..N+VLݸqCx9Á¯òäÉ£âãã…¿V­Z*GŽÒ7qâDU½zu)÷ìÙSU¬XQåÍ›WeÉ’Eîß¿éÛ¶m›Ô7nlõ—Á”þýû÷Kÿ¡C‡õXÚ£,Î勵¸ì8?^ð¶š–/_.ø½xñB0hРÔ3gά²gÏ®¶lÙ¢Y»HÒ†>œi«V­+#«ß­0jÔ(…ó¡ ŒË•+'÷Ñó°0«%Jȼh3fŒâBdk×g=iÒ$·Û„luéÒ%ÑüÐþ§OŸ–ñv-ÿMpÕäüÛ™O•)SF4ŠÖäÚ: ÷„ÅGZ“ÇÂí•…\­_¿^Ø8 ʯØ=2?ÒK7}útk:v+gv ”YÀÚñéܹ³ªR¥ŠÅïVÖäÀ_»Q2ïž={¤‰…\±0K™œÒVWóÃ"ÃR{¥T×äZ;@“€ØDÉ•]¹òBåÉmÓ¦høŒxJ¡ÝA¼)ÃT«VÊ–-+~³öÍêÖ­+|øÒÚÖj°T[(þü–å@GéÒ¥­~ið ½R¬ìÑëz»víJ¬TÄbÂj²¡.]ºXÃíX'|uíƒ÷îÝ›:uê$ŸsçλˆÖX¯`¬ ÷i¿\·Ã‡P£F Ý$Wà 9I.¥˜»·Ã A¨Ùï¥U«Vûß’B¸}ûöû`⊠Xe K&L û‘Öô÷ïß·ÊÁ…çÏŸ[MP/^¼ðPØû;Ðg t)ÄÊ]–çhÎ;7±¥¥WÌ5Ù±@ ‚)\¸0±¦÷J¶„âRê±^¯ZÉ%Å\ñ!èÔ„Ä\Ó¤šæ wõ&™áf‰  C#Lž<™ºuë&ÚÃu~þx¥J•Dës0$ZÀgG¾áŠ+\ïˆqüm<4ˆìÛµkgñãg˜˜‡ÎÁ&µoß^ú(ò»ðGAÁuiôø•Ú{LjÐÜPØ7JùhìšÙN”J Y°E‹ƒTµjUÁäÏŸ?ò“UXº;v†»ví²OÑ2ÎÖ†ÝRY;,:2’l öw¢õÉY8e*Xü.ø± NCI>±&ø^¼pÅé)ݤ8 UðËY¿È`+ø‡ Ý»wKÆcø©Wìºøälæ„Ùvs,^DéœÎ’>í“c,æïŠx€S“Òï%» {”Å&ñÅA¼ìOï›Ó„‚²ì&X#1²RÈndAìç±téR•5kVéC?²e_¾|±Æ»F­j×®-Ý(#ƒ£ ÙÌÅ)Bi‚OΉ)#ÓÖ°aCéÇãÞˆ)"!7ŸÜ‘+ŒTÈ#Y„æ9rdÈ †ó·ŠÍ¦ÂƒLœÃ–4#£Sˆv>9$ÌæOá€5i!Gkk…`,5)5ö!A`ïöÑûE€‡ Á†€ÛƒL´CÈÙâIZÐŒ£O’PVöóÀƒîvöåõШ®H-rvE±ÿ¯ØÕŒx7!wý=9?q)Np`:áš,\¸Ð1?‚VÎ¥;ÚÑ€ ¦Ô aθ²§®ŒQt¤æñBeåÊ•®«¦EŠ‘ô+˜€5^¬ xc9~;>¡)Ó:uêt!%«_øtpîμyó‚›=×á¿#áÒ”¦B›Í ä¦ûôéõ^Œ²ItŒ/_¾¼¼ utpr²ÈÐx „B÷Ú–š{DŽ;’WàðÃÌÁÏÕ¼Þ°&‘b)¿Ql‚}ÑȺwï7ÆÞlʘG@ÿe,˜Ò<»b¿¹)Ò#äi²¹Gº"`„<]á77O \Oøå† ~B/K•*åX²CÈñKÀyË丕i0¤.5kÖ$üs¡`rdW‚LÝ àwŒOî÷4ë‹€ò°¿#`„Üï'hÖ#äa!2 ~Gà?VªWªƒ¡4IEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1FieldNames.html000755 000765 000024 00000030474 13515046515 024631 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::FieldNames Class Reference
MySQL++  3.2.5
mysqlpp::FieldNames Class Reference

Holds a list of SQL field names. More...

#include <field_names.h>

Inheritance diagram for mysqlpp::FieldNames:
Collaboration diagram for mysqlpp::FieldNames:

Public Member Functions

 FieldNames ()
 Default constructor.
 
 FieldNames (const FieldNames &other)
 Copy constructor.
 
 FieldNames (const ResultBase *res)
 Create field name list from a result set.
 
 FieldNames (int i)
 Create empty field name list, reserving space for a fixed number of field names.
 
FieldNamesoperator= (const ResultBase *res)
 Initializes the field list from a result set.
 
FieldNamesoperator= (int i)
 Insert i empty field names at beginning of list.
 
std::string & operator [] (int i)
 Get the name of a field given its index.
 
const std::string & operator [] (int i) const
 Get the name of a field given its index, in const context.
 
std::string & operator [] (size_type i)
 Get the name of a field given its index.
 
const std::string & operator [] (size_type i) const
 Get the name of a field given its index, in const context.
 
unsigned int operator [] (const std::string &s) const
 Get the index number of a field given its name.
 

Detailed Description

Holds a list of SQL field names.


The documentation for this class was generated from the following files:
mysql++-3.2.5/doc/html/refman/namespacemysqlpp_1_1examples.html000755 000765 000024 00000012015 13515046515 025256 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::examples Namespace Reference
MySQL++  3.2.5
mysqlpp::examples Namespace Reference

Stuff related to MySQL++ examples specifically. More...

Classes

class  CommandLine
 Command line parsing mechanism for ../examples/*.cpp. More...
 

Variables

const char * db_name = "mysql_cpp_data"
 Name of examples' DB.
 

Detailed Description

Stuff related to MySQL++ examples specifically.

mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1SharedMemoryBaseNameOption.html000755 000765 000024 00000031437 13515046515 030006 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::SharedMemoryBaseNameOption Class Reference
MySQL++  3.2.5
mysqlpp::SharedMemoryBaseNameOption Class Reference

Set name of shmem segment for IPC. More...

#include <options.h>

Inheritance diagram for mysqlpp::SharedMemoryBaseNameOption:
Collaboration diagram for mysqlpp::SharedMemoryBaseNameOption:

Additional Inherited Members

- Public Types inherited from mysqlpp::DataOption< T >
typedef T ArgType
 Alias for template param.
 
- Public Types inherited from mysqlpp::Option
enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 
- Public Member Functions inherited from mysqlpp::Option
virtual ~Option ()
 Destroy object.
 
virtual Error set (DBDriver *dbd)=0
 Apply option.
 
- Protected Member Functions inherited from mysqlpp::DataOption< T >
 DataOption (const T &arg)
 Construct object.
 
- Protected Attributes inherited from mysqlpp::DataOption< T >
arg_
 The argument value.
 

Detailed Description

Set name of shmem segment for IPC.


The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1BadIndex.html000755 000765 000024 00000036644 13515046515 024305 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::BadIndex Class Reference
MySQL++  3.2.5
mysqlpp::BadIndex Class Reference

Exception thrown when an object with operator [] or an at() method gets called with a bad index. More...

#include <exceptions.h>

Inheritance diagram for mysqlpp::BadIndex:
Collaboration diagram for mysqlpp::BadIndex:

Public Member Functions

 BadIndex (const char *what, int bad_index, int max_index)
 Create exception object. More...
 
 ~BadIndex () throw ()
 Destroy exception.
 
- Public Member Functions inherited from mysqlpp::Exception
 Exception (const Exception &e) MAY_THROW()
 Create exception object as copy of another.
 
Exceptionoperator= (const Exception &rhs) throw ()
 Assign another exception object's contents to this one.
 
 ~Exception () throw ()
 Destroy exception object.
 
virtual const char * what () const throw ()
 Returns explanation of why exception was thrown.
 

Additional Inherited Members

- Protected Member Functions inherited from mysqlpp::Exception
 Exception (const char *w="") throw ()
 Create exception object.
 
 Exception (const std::string &w) throw ()
 Create exception object.
 
- Protected Attributes inherited from mysqlpp::Exception
std::string what_
 explanation of why exception was thrown
 

Detailed Description

Exception thrown when an object with operator [] or an at() method gets called with a bad index.

Constructor & Destructor Documentation

◆ BadIndex()

mysqlpp::BadIndex::BadIndex ( const char *  what,
int  bad_index,
int  max_index 
)
inlineexplicit

Create exception object.

Parameters
whattype of object bad index tried on
bad_indexindex value the container didn't like
max_indexlargest legal index value for container

The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1ReadDefaultFileOption-members.html000755 000765 000024 00000015335 13515046515 030422 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::ReadDefaultFileOption Member List

This is the complete list of members for mysqlpp::ReadDefaultFileOption, including all inherited members.

arg_mysqlpp::DataOption< T >protected
ArgType typedefmysqlpp::DataOption< T >
DataOption(const T &arg)mysqlpp::DataOption< T >inlineprotected
err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
set(DBDriver *dbd)=0mysqlpp::Optionpure virtual
~Option()mysqlpp::Optioninlinevirtual
mysql++-3.2.5/doc/html/refman/structmysqlpp_1_1value__list__b.html000755 000765 000024 00000025254 13515046515 026007 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::value_list_b< Seq, Manip > Struct Template Reference
MySQL++  3.2.5
mysqlpp::value_list_b< Seq, Manip > Struct Template Reference

Same as value_list_ba, plus the option to have some elements of the list suppressed. More...

#include <vallist.h>

Public Member Functions

 value_list_b (const Seq &s, const std::vector< bool > &f, const char *d, Manip m)
 Create object. More...
 

Public Attributes

const Seq * list
 set of objects in the value list
 
const std::vector< bool > fields
 delimiter to use between each value in the list when inserting it into a C++ stream
 
const char * delim
 delimiter to use between each value in the list when inserting it into a C++ stream
 
Manip manip
 manipulator to use when inserting the list into a C++ stream
 

Detailed Description

template<class Seq, class Manip>
struct mysqlpp::value_list_b< Seq, Manip >

Same as value_list_ba, plus the option to have some elements of the list suppressed.

Imagine an object of this type contains the list (a, b, c), that the object's 'fields' list is (true, false, true), and that the object's delimiter is set to ":". When you insert that object into a C++ stream, you would get "a:c".

See value_list_ba's documentation for more details.

Constructor & Destructor Documentation

◆ value_list_b()

template<class Seq, class Manip>
mysqlpp::value_list_b< Seq, Manip >::value_list_b ( const Seq &  s,
const std::vector< bool > &  f,
const char *  d,
Manip  m 
)
inline

Create object.

Parameters
sset of objects in the value list
ffor each true item in the list, the list item in that position will be inserted into a C++ stream
dwhat delimiter to use between each value in the list when inserting the list into a C++ stream
mmanipulator to use when inserting the list into a C++ stream

The documentation for this struct was generated from the following file:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1FieldNames__coll__graph.png000644 000765 000024 00000013075 13515046516 027135 0ustar00tangentstaff000000 000000 ‰PNG  IHDR®m8pZôsRGB®Îé÷IDATxí]´Å-r”œ³A$©A IŠ’T’¢Hæ €(*AƒŠŠ” ’£äœsÎ<èß·ø½6=vvgÇåSuÎ{3Ó¡ºúöíêêÞÙ÷(-$"Üc$¼ÇìsF@ˆ+D¸'âÞ“Ã&F q…÷$‰}­>yò$ýóÏ?¾Éò,ükdÏž .ìÕ¾qMn±bÅÌ­\ l;(q3gΰ‚$ n"pìØ±€ÍIŒIŒu„¸±>Bb_@„¸a‘ÄXG@ˆë#$öD ªÄ‹‹£3gÎl‰ .¤š5kÍfÆÝl‹fÛVÝW®\¡‹/Z“¼îÀèn}ݱcÃñãǽڎ凨÷·ß~£Œ3ÒÍ›7bpêÔ)Z¼xqÀ¼h'ÞͶh·oô·lÙ’š5kfý®N`t·¾Þºu‹.]ºD·oßök?V#îÑ£GiÞ¼y„+äÚµktâÄ ¾ß·oŸ”ëׯÓÚµkéôéÓœgý…ÌýV6l ‡zˆ~úé'Ê’% ¯ð¼èóªU«hÓ¦Mb[ゾ`¥ÀxÂ^>ª¢AöM65þ|¯´øt§Ô³Ï>«’$I¢R¦L©'N¬F¥þúë/•0aB¼2©%J¤öîÝ«4)Tºté8-A‚ªT©R*UªTõéÓ§Wo¿ý6?ëIÀå4‰”þ0D=÷ÜsžršôÜÞ°aÔdÕ¼ys. ÐÖÀ=e{öì©ÐV²dÉØž† *èöµmÑ¢EJÛ“½Šr:ð._¾¼Ê”)“Wñ=Õ«WW“'Oæ1ò+bÂÆÕ¶mÛüJÃ;x‰]âþøãÜ íñ”ž‰êÃ?T9sæäŽN:•óôìå6Ê–-«ž|òI¥?RV ÐJÜ>}ú¨iÓ¦qYíÙT—.]˜ðŸ~ú)U{]ÎÃÄHš4©Ì“eúôéJÏr5zôhnsåʕ܀>|¸ÂÀNš4‰ó01­¶üùòåSõêÕS°ϸG?´wö·H‘"ê—_~QÚÓ°hO/Ã\6Ož<ªW¯^êüùóœo~½üò˪R¥JlƒövªtéÒªcÇŽœýꫯr}S6\ŒìŒH ü€^=üˆ ̆ ÂX`Lð¼gÏÆ}¬S§ŽÒ«;ýql@â®Y³F5nÜX¥H‘‚óAä-[¶˜n†|qõrÂ^¤Q£FjΜ9J/}L`Xf%‚w1ÄD>ÏJ\¤ 6<ä¸qã8»Zµj d€”)SFa°~àíàÙ>úè#Õ¹sg•!C.g~¼Û·o÷²ÍxN˜b<(0x[ãqш=T=˜Ø˜&Mš¨¹sç21= ,7˜ÌðâðÈÐ…Éa&³•¸‘`ê8À,í1ý77þü&‹‰ fÏž­V¬XÁ$ÎFÞzë­€Ä5ù:œS#FŒàz*V¬¨ÆŽË“À”‰ïŒ¸Ǹš8¤=ÇBzI!|T¬—jm£·h˱Ÿ&™'C‡ žûønräÈAÏ<ó M™2…!mÑ¢WAüŠ8L{Hþ©_¿>ép„ô$!|έÉKµ0Žé¬‰æópí =Éx±bâbÜ/^:t(õïߟôÓîÝ»iâĉlŸž\œïûK“œš6mÊõJ–,I:œ Mßb F¡ŽƒiÔôÅ<[¯ˆuè Ç·ˆs±¯€è°‡¯øu·1L›6-µiÓ†cû™3gÒæÍ›yì0f‘H`¤mhD`6:FåAÅfÉ*:âG«Á¨ªè8–´W£1cÆð&BÇÕ\¤Ö±¡=ó£c_Òñ(eÍš•´wõÚ¶nÝš´Wöj6[¶lü¬g·']{¾×!„'ÍÜ´k׎ôÒG:N%>t.[¶Ìdû]a·ŽµyÒA¯‘¨{÷î~å"Á(Ôqðk4@&} 18éUÓ£´øO½' ªU«RíÚµ xb|"~‰Ë×MÛqáö5A”ÞÑóR9räH^µgT3fÌà¥î^ï<¹b\,—XZQÏ* ¦ýùçŸÙ$äíÛ·W»víâg„ <ðdz(g1%6…zWÌqW¿~ý¸M½{Wþù'ßwëÖMaóÔµkW^Öôé—mxF¬V¥J¥'–B,]¡Bõøãs3&T@ÜmĈ-õjÀa~õN}òÉ'žØ”ÅF› íÙ9ŒBŒˆ K´ƒ6;“p0 u°ÉB¨€°Åˆo¨€ —,õš˜J{K¶O“Wi*}ª °¯@hs[µj¥Ò¤IÃ?Úë*„3v%X¨ñæ „zê©§¸sèvæƒ bûô»½üŒŽë%•c`sª€˜»tÑH°S“¯ÃnÇäë­^|ñENG;&–4uúöíë9A@ì6~üxÎòµ ' è€m äM$ ãTé¾Ä5màŠÍ‹‰{}Ñܹs3¹±)*Q¢„ÂÄ‚üðÃ<{ì1~Æ>!ŒìŒƒ>þò:y±ûÄ¡F¬ÄEN=€ ðÀXk/ʱ¾)o®:uòij°-\‰qA8ÞÁN»w«`WލtkNLz¤Wx3ARç§ žL/i~é¾¶áTlÞ|ûáW9HNà‰}EŸwª¥K—2Á}ó`3V$#‘`ê8˜¶ì\±¡„çŤÇ*éÝ»7‡úê–NH0â&€r={ú(é³ðñ¸ÿúˆá Ä µëÄÅÝ;o[…Ø¥˜)&ÄÒP>|–~üqe”´‹Ú 1.>V éÓwÒúõÇ)gÎká+‘šŒ€ùøÝ ‡qõ'‘gmá>½ïÑc íÝ{š2eÊ£?z~à>EÁ™n›÷%¬Úüˆ«ß[åãk!¹·‡ÀŽǘ´¨µdÉ~jÛ¶Š=Rú®HŒ{Wˆì˜6m-%I’H¿¡Fú›Þ/ôØ×&5! Ä „J„i ëÍ›·ô{ ¤ß ;¢_}<¡F©î‹€×‘Ÿ×­; _ïüß÷ã'ND¿ü²6B­RÝ!®/">O›¶†Ã£&.îMž,Çb§®B\§Ôzô«®ôóÏk8L°ª=xð mÜèýb½5_îí# ĵYÐK—îÔ_£¿óÕsk!lÔ°aq!®sXÒÔ©k1­¯`£Oìó©o1y¶€×Xñ½qãýöÛzBLHNº¨¿ ¹'P–¤…€7 ÐUùóÏ-ú/ÒþSS('\¸óÌ@õ%ÍB\{x-}'LüíXTB¸ðë¯ë´G–7Æ‚‚h#Cˆk¬`E/_¾®¿:ÿÏ]Iyñâ5š?k05’n¿wlÔ•¢ÿE`ƃúŤúÃýÏ›"¦½|ù†þã=8áïlÛvLÿùÇ0P¼ñû²d˜z¤šþNýµ•æÌyß'G@@B'P®# ÄuriÐ „¸N (:\G@ˆë:äÒ q@Qt¸Ž€×uÈ¥A'â:¢èp!®ëKƒN ÄuEÑá:B\×!—@@ˆëŠ¢Ãu„¸®C. :€× E‡ëq]‡\t!®(Š×⺹4èB\'P®# ÄuriÐ „¸N (:\G@ˆë:äÒ q@Qt¸Ž€×uÈ¥A'â:¢èp!®ëKƒN ÄuEÑá:B\×!—@@ˆëŠ¢Ãu„¸®C. :€× E‡ëq]‡\t!®(Š×⺹4èB\'P®#`ë/’¯_¿ž ຑ÷bƒ§O§ÐJ? åÉsá^4ßu›kÖ¬I-Z´¹][ÿâèÑ£úߨÿD•*U¢D‰üÿ]È­Þ'“'':qâ>élÝ„CÌ–-[ôˆklëÞ½;¥H‘Â<ÊUˆŽ;Ú®/1®mȤB, Ä…Ql# ĵ ™Tˆ„¸±0 bƒml*ØÖþ/W˜3gmݺ• þí˜Þ§Oºzõª_•Ì™3S£FhذaÔµkWÊ!ƒ_k Aƒ¨téÒTµjUk2ßcç=iÒ$úì³ÏèÚµkÔ»woÊ’% uîÜ™ð+Œ7Ž&LHÍ›77Iÿ—×ÿkâø Ç^èulŒ>`Ìn胓HŸ>=åË—Ïk0õ¼F•¸ìwÞ¡’%K–:HñâÅ)iÒ¤/yøá‡éË/¿¤?þ˜IñÅ_p:ȇe¶}ûö\§Gìu°LbÀ¬?•ÊCðR={öd2`É,X° |³fÍb=æô‚øgÏžå ¯OÕ¥KZ±bõêÕ‹J”(A[¶lÑÿ=Žuþùç<é ã¥—^¢jÕªQ§NhíÚµôþûïÓСC¹o¦@Wx@`ðý÷ß3IçÎ˶£ ºL™2„PÃLN£ýBŸAúå+-[¶¤±cÇÒ×_Mݺuóͦ7r¿LÜ5œ…±ÁdÏî)S¦Ð˜1cxR\¹r…Ê•+ÇŸ°ZC?ã"Lpes–*U*þÄ ˆånòäÉL8^¥zõê 4ˆY¼x1ÏÚ*UªÐøñã™@¿ÿþ;ëÁ<}út&ØÀÙ;‚(gê„F¼;{öl&,ȽtéROQLˆ3fÐĉéÂ… 4jÔ(Oˆ ’Að)&®F-ZDýû÷÷ú9räˆÉæëáÇ9F­S§ýúë¯ôÝwßñJ1a¯rx€'Åêb‚l˜È¾{[·n­ÿÑõZ·no6=šyäš:u*;xBôÍ*¡ŒM|vƒ¨ ío¼ÁmÀV8‚h‡h®·iÓ¦ì%1!8„æùرcT¹rež± ,dÁ‚T¶lY^sæÌIð\ 'pøðáÔ¶m[Ú¹s'¡nýúõy9E9k¼ÇŠ,¿0pðšXÞQ.{öìì±M‘×^{C £Ç¬Èýõ×ù£nÜ#¿M›6^Ä…N,ËÖF }ƒ§ÅGæ V¬8&^½SŠx ß¶m5lØÉ†•àé§Ÿ6Ù^×矞É9dÈ-¬™ðØ:t C‡qÛN:e-B¡ŒM|vËc,gΜÉ(W®\ôÇp¿¼rø!ª¡‚±Õì¦Íû xˆYJ3"|â‰'háÂ…îC›øìFW0.­°š"Äé‡oß6xv…¸† w3áb],ר|U¬X‘«¬^½šš5kÆq%¼,–#,ƒ,ÈéÓ§Ù£ã/«··ƒ.?xaBšø&©cç ’` "¤L™’«b%'´ŠÙÈíÙ³ÇÓ/” &XI7nÌÄÅž1!AÚzõêñêaÂ`…²J(cŸÝ˜˜‰@Tvåʕԯ_?^EK\ B5»c씿ýö[öºX† X†pŠS NP^ƒŒƒ bß`‚ÍÙ¼yóØ“bP±l›puÐ.ô LÁæ'FFŽIˆc!ˆ•¿úê+^îM~(WèÆ í äY¾|9oªZž»sÄ£èl÷ŒOš4iÂ+B#[ +Ú²eË8žGŸíJ|vc"bŸ8íà4i¾›M»mÞ­|L×Ìz±¯U«–ÇvxxÇW^y…j×®ÍGkxw^ Ë–VÄzب˜0ÄT6ºñŒP„CLŒ8 ç F0èЯ“ëû¡XpšÁš6m_MÝP®˜hØbr½ð l;6`¦ØŠ¬6è<.lüàƒøÄÃÚ´g}vŒ€° 4àÍ]5¸ßh“׺é4åƒ]ÑF|vÉ`Ò@gݺuùƒÄä>D ÖF8é¶^$Ç.„‚´ž£†Óp°:ØxÁÃÀ+Yž ç¯3fô,ç&gˆø°Ë<<Èé{†eÇB8SÅ2Î|Í9í’%KøØÞØœ'cà£%8â‚ hÄ&ÚB8ƒr˜Œáz0Äé8!A!ðô8ëgüâ³íÀVÜ„Aú( “ 㪸ã†b ¼<&E»víüª FÃÑN ·ÁÙd(=ðrÁÄw¬\$é8‚²n(ƒéB8äûi\°²ÁÒJ™˜e°é Wâ³mÀÓº%1C\,¿8ÛIJƒ¥-\ÁÀXwãFŽi®_¿n½®½hÑ¢^iòÛÄ qSâH%RÁFº©2úpFLp|ƒOŸDîbbsvïÀ%–Æ BÜX ±ÃB\[pIáXA ¬[!šçÅ 8b‡;àÍ®Ø".Îq¨-"8‰N‘J•*eK¥­ li–‚@7ŠàŠêè! Ķ¢9Šq£®¨ŽBÜèa+š£ˆÀäç¢ÎëIEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1LocalInfileOption.html000755 000765 000024 00000030651 13515046515 026171 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::LocalInfileOption Class Reference
MySQL++  3.2.5
mysqlpp::LocalInfileOption Class Reference

Enable LOAD LOCAL INFILE statement. More...

#include <options.h>

Inheritance diagram for mysqlpp::LocalInfileOption:
Collaboration diagram for mysqlpp::LocalInfileOption:

Additional Inherited Members

- Public Types inherited from mysqlpp::DataOption< T >
typedef T ArgType
 Alias for template param.
 
- Public Types inherited from mysqlpp::Option
enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 
- Public Member Functions inherited from mysqlpp::Option
virtual ~Option ()
 Destroy object.
 
virtual Error set (DBDriver *dbd)=0
 Apply option.
 
- Protected Member Functions inherited from mysqlpp::DataOption< T >
 DataOption (const T &arg)
 Construct object.
 
- Protected Attributes inherited from mysqlpp::DataOption< T >
arg_
 The argument value.
 

Detailed Description

Enable LOAD LOCAL INFILE statement.


The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1LocalInfileOption__inherit__graph.png000644 000765 000024 00000020357 13515046516 031212 0ustar00tangentstaff000000 000000 ‰PNG  IHDR¼·¨Ž4hsRGB®Îé ©IDATxí]”TEÖ¾À A$g$ A ’DAdAϲ. .iÙEQ<"‹ ˆŠ°Ê"("ì¬Â.H’$ 9Kfœ$ Ì ï¯ï²õxÓaºgè×¼î¾÷œž*Ýúê«[·î{Ý“É0Œ$"D™áé«tS Ì‚ Iá#i´¥¯bá…‘…@”Sº{êÔ)Z»v­SÔ=ˆ@ñâÅé©§ž `÷Q6­N¸¸8lžå†´iÓÆ ccáõœ½}û6EGGëK9†8¯¼ò ]½zÕ1½M«c†B Bø` ,m8!¼c†B Bø` ,m8!¼c†B Bø ¢mذ¡Ñ¬Y3óºAƒê{òÉ'Æ›õ*jÐŒqãÆj E`CM#S¦LF‰%Œ½{÷rÞU«Vj° EFÎ_§NCMN0`€Q«V->ïØ±£¡Hi¨ e("sûÊsÚœ9søZYi3 yOœ8Áéøƒ6^{í5¾^ºt)ç_¹r¥¡Ü>_²d‰™WŸ(wÆP“ÐhÚ´)ßB»êñ=ë©Üjò³fÍ2–/_Îú+brÚ‘#G e$Œ#Fp¹Õ«WÊMâ~©I`¨ÉÊeاOî×£>ÊeQGóæÍ ´í¯têÔÉpÒ“ÖwirçÎM 4jÔ(úé§ŸØJÃz÷Ýw´~ýz‚µW “XÓÒ©ÉÅõå—_¦?üW‰+W®ÊÁòuéÒ…©I‘„àœ9sÆ«AS“„¾øâ ºyó&Mž<™?óæÍ3ó?òÈ#lÝQ““`>¬o±ž‡âvžþyúë_ÿJuëÖ5ýuècæÇêóç?ÿ™”aàU(ã@x:ŠU‚~½úê«Ü¯ÁƒÓâÅ‹y¥0+ µgªÝù2já• Áª)r°5T›I¾VƒÇר÷üùó¬Þ—_~ÉiÏ=÷œñ /ðù;ï¼cÀ² 6ÌØ¶m¯X~þùg.+©eРA^-|ÕªUu6>–-[–-¤¶ðzÕ@"ÚÄJâK°ŠDEE)))³¶hÑÂPYNƒ…Wþ½™O¹(¬¿šôÆìÙ³ù\¯žÚÂëURíÌrz…°ð臖ӧOs=‹-Ò·|ÅÂØ"`QÄà£Z~ù Q#¾lË–-ÙÒ)ò³? «Q¤â+DÍš5ÙÇUD årpúO<ÁGüÕõ&Š©’àÇkß eÊ”1ÓiÁ^À—ÀßF„+Œ«ÀcÕB-Ö6Ð>ĪƒÎ§ØÛ@°Rh)V¬Ÿ'tÕ¢ý~5õ­;†¼KƒÍž?‚+¿˜&NœÈ›?åWr1åÓÀÙ]ÁÆMY^êß¿¿9ÐØk±ºúž>âõf-ˆ‚lݺ5Õ±¦¯Y³&Uš.çzDtyìØ±®I´lÙ2v3^zé%3ÍÚ†~Õ:­Iª6¹Z€D»>ÚpèôP?úÇ–Pï¥Ò_¹0„èËûï¿OíÛ·7£“&M"øÐðß@dÑX{XIøøˆ¬ J1a¯H€(Ø7À?Ç‚ܪU+3¿r‡¸žØØXRn‡u¢rqH¹|‰½ô/ëÝ£G3f õíÛ—£EXy¦OŸÎ«R5¨k×®ºR›pöûwíÚÅeJ•*ÅÑB”+žXvXô?þ˜PýÄþ~¿uåÐùÃâèÓ R†ŒúðŠ¨¬¡²¾ì_Â/…¨P!_Çւȉ4CÅÏõ-Q ø´ˆÐÀVá<~/äÇäÈ Ê R£Ü›T>¼ /r>DiA̼ˆº >œÓ´²¨>9ö*Èéøã-Jƒ4åÒj³hFxtjÒr‘Ý5Bô y ÒýTîGbp_M$CM3JŸ½`Á‚\}Äž`÷îÝ\çÛo¿Í‘¾PÔ„à| ,з|æÃcÆ;BÒKøŒ(ýÖ[o*VïVTEd å˜4®¢"ºÄRÑ“ðÖ| |Û¶m Ô£ÜCù×f²&<Ò@6é1ÓÒs‚ 'B¨›6m2”ËäV„W+ “ÒºAÖU<ž7ïúÚzD±ÉU«‹× ²5zÎFø}𤬕ß÷>/Ü—Ñ£G»•ƒŸŒpœ'ÁF qüÔƒ‡_ÞÄucë-Ÿ§ûøRŒ?zàá>®‚YøxôÃ"A"‚ððÏÇϱoÄ3*ˆXÔ«WÏ­8žªb£êI°'@¤ÇîÍÚ@["i#à˜bRK?µk׎7{ò¿´-”RõWüæÎëµ#&Jã´E‰Ž€þ Á©S—Pˑݬã|xõ(?´ßÆóƒO ×Õ[•ç” ãGîÐÎrìØ1~ÛÒ)½páñE‡p—ܹªW+Ó?¼«ÂÂþ}‰#”1ÑOµÐÇlZF°t¨Uk°z•áªzbú*5lx÷½ù`µéíˆdlÜx„Éž9s&õ:ÁÝ÷V‚¬BD7'„òðÇÅmQßlÊ¢¾™eÐüùÛT6tß< 2tiNý«$%åÅÅÅ«/—Ü%ùIê ðÿ K®€ „ŒþU²zõõý×›fæ¨(qkL0‚t"„ÐhfæÌÍêýö{''ß¡%KvÓõëw¿NDU"¶©{èG,Áéxbb-X°C}ƒ)u299….Ü%¤ù Áâ,ùíÛî¿!ƒ—Ê`ùE‚ƒ€XøààL³fmVOÝáÆFvÍšƒê—Á®I“ÈnÆ}"[zõj"-_¾×ͱ6†¥ˆýáíǘ}wõ-¡4Z2hÆŒMi¤KR Â É4ê‰Ý¨Þ™ñž¡¶n=¦~Pê’÷L’„ðÑ{%gÏ^¥ «o<‘ú=É,üÁ“V|²fâOtôÝwøæÌÙê½"I Ž{[2 ½rP%׮ݢ!C^L¥@mÛv\ýÇs©î—(‘?Õµ\!|à1MUcÙ²…¨lÙgRÝ»y3Iý&ä9õ›3©ï§Ê$¶ .-°J¥NE@ïÔ‘½lA@o ¬R©SÂ;udD/[ÂÛ«TêT„ðNÑË„ð¶À*•:!¼SGFô²!¼-°J¥NE@ïÔ‘½lA@o ¬R©SÂ;udD/[ÂÛ«TêT„ðNÑË„ð¶À*•:!¼SGFô²!¼-°J¥NE@ïÔ‘½lA@o ¬R©SÂ;udD/[ÂÛ«TêT„ðNÑË„ð¶À*•:!¼SGFô²!¼-°J¥NE@ïÔ‘½lA@o ¬R©SÂ;udD/[ÂÛ«TêT„ðNÑË„ð¶À*•:!¼SGFô²!¼-°J¥ŽE@ýw¹¿ÿýïø·`añ‰ŠÊkdËV2,ú‚1)X°`HpJ†Ô¿¼)W®}òÉ'Ž5‘¨ØâÅ‹iΜ9!Óõ"|¾|ù¨}ûö!n$(zþüù"¼øð‘ÀJ飉€Þ„BN"!|$Œ²ôÑD@oB!'‘€@ØþÒ¥KÔ²eKZ¾|¹ÏqLNN¦‹/úÌgW†øøxêС•/_ž .LÏ>û,}úé§tçο›Doß¾Íù'Mš¤þËwo¿ËFRư%üÍ›7éǤS§NùÏùóçS())ÉgÞ@gX¸p!5jÔˆ6oÞLݺu£¡C‡RÑ¢E©_¿~Ôºuk¿uÂD‰eõnݺE迈;aKx×®ž?zô¨iUaõwìØA°¾)))®Õq™mÛ¶qÚ7$Óâ­,Ú>}ú4·±nÝ:BÛÝ»w§J•*ÑÖ­[©ÿþÔ³gOúî»ïhܸq„É0uêT®öêÕ«tåÊžk×®¥èæèøñ㤞©pÝ×®]£Î;ÓðáÃÍt¬èË‚ èĉæ}è¬û|èÐ!B½(Ö*Èð¤µN:~««ÍO2§M›ÆeJ–,i4kÖL=áÌfdÉ’…Ó¾þúkC¹¤ž´FŒ…‡Õ‚E†ƒ•ƒ1aÂjÒ¤ Íœ9“Ü€˜˜êÒ¥ åÈ‘ƒöîÝK°¬õêÕc[>¯p;ÆŽK—/_&59Ò i•Eú®]»èñǧ-[¶š\¸Eõë×ç£õšPT»vm:|ø°yú|ñżRMž<™ð™7o9s†ÔÄäÕ®U>øàÚ³gýòË/¼Oùæ›oè£>¢+V˜Ù°ÒàÒªU«x¥š={¶™n'ExøÈ Q±bÅè÷¿ÿ=“Àu@±Ä¯_¿ž7¼pU@²æÍ›39•õf‚á‡^½zQž,qÍš5ùÚWYdB$mC0q ,=έÿ{ ¬DZ@p«`¢éý‡õ¾>‡ï޽ V«`S ‹®ÅO{7ÔeáAN_R¼xqÎ2zôhv}àþÀýøì³ÏHùÔAÙ¹s'ou]z髬ί 3\¸G® 륗^2“¬'¬>Øè–.]ÚLw=ÁJ€I «¬*X©¬å/R$rzšÆˆªM §îÛ·—þ*Uª0 ·oßN¸‡¨Ç;ï¼CjÃK-Z´`ë¨6®¼ôã¾¶ì°Ài•uUV½G4fÌêÛ·/lúôéÔ©S'‚{D &"8puÔÆ“ãî­Zµâäèèhö÷u,^—;G³fÍâü£Fâ¤H} /l]m͵õÒך¸¯Ó°iIJ^½zuBxîÛo¿e˪]á¡3fp~<̂ϋ°ß°aÃxO’gÏžýí´Ê¢mW=`ÝÑ6^{9r$««ß®];Â$Y &Ôo¼Á›O¼9 4hÀÉmÚ´!LBL^´¡û†zaѱgÁ=Ô§¢SìZa⸠ʺêèš'¤¯}Æ’!½aÉôª­"†òkÍbê!”¡\CÅá œkQÖÜX´h‘¡ü\C¹|û±Ç3TôCgáüžÊš<œ(Ël¨ÅØ´i“¡Ü·K"|¨õR>¾[ã7P« Ä©¢4†z¸å±n×üé¹µ°dØZøôZ!¸+øh•­V­š¾4pà& ©bäü.8\š† šy¼•53x8åÅ ãKÒª»H‘"‹Ãb»nŠ=fŒ€›âçseAXQ=´!euÙÇÇ« *THgMéËŽú±i¹?ÄÂg?lbñ ¦À?¹ÄÂß?†RC! „@ƒ•œ|çµÙÍ áÀø_¼xþïÿÖ<€–¥ÉòáñÎx8Ĉs次^/¨¢:= ToŒ†L?B†ðxòX·nÝ6-EGŽÜ¡Þa¿¦Þ|œ¢:Ý}¯&­üNO³†s®kÈ1jâÔNÈï^» {lì¦ ·.Í áƒÌ36©W‚ nõøñ ê…±“AÖ ²›Âqü8­Þ°<£Z¼Køèè,êMÆ-AÔ@šÂ‘pg@r-II)êµÝ-©Þ­×ir´!¼=¸z¬56v³úÕÔ¿€pþüo꽜ÃóËÍÀ# „<¦kŒ?¦~#ç’[Ú]·&Þí¾Ü°!¼=¸ºÕ:gNjwFg€ÅŸ;7^mdåU‰G!¼èþ¯nõý õS îîŒnú·ßiåÊ}úRŽ6" „·\]õš5ÕoØÜЗnÇèèÌjóºÙí¾Ü<BøÀcêV#BQQ÷¢3®’’î¨ßÁÜ¥~¥à¦ËuàÂK5ݾBóçoS>zêèŒkæ[·’hѢݮ·å:À„Ì»4îwЪ۽;A}5¯¨úÑÕ{›R¼|åÊMõ“ ÷Þ2Ä[ x0%b/™ð u{›Ú]øüó¥ê·g6ªß¹ìïš$×6# .ÍKõÎB@ï¬ñmlF@o3ÀR½³Â;kùäÖǼñNBžð£îÚµËVè’““iÓ¦MtîÜ9[Û±Vní×­[·¸ý .X³x=‡À$©]»6%%%ÊC¬uz-ü¿„Ÿþ™Þ|óMÚ¿?µlÙ’ºuëFùóç§ &p¨˜ø’uëÖÑ‹/¾H:/ ôyâ‡O¯2·oߦ‹/R¡B…T\ù,ݼy“Ê–-ËVàØ±c„ôråÊQTT9s†räÈA¹sç6›‰pïá‡æ{°*uà¾Ô{èÐ!*Y²$eË–._¾LE‹ÕÉ|¼~ý:†AÙ³g§½{÷RÞ¼y9?Q'H€A;~ü8]»v}ôQŠŽŽæ²(]q9sf®G_s È©P¡=„@ûÿ–î—_~alªV­ÊXè4XK¤eÉ’…Ê”)Ãmë4oG` ¡ßáÇ©xñâŒ?òŒG‹-¨T©R\gݺu½UÅc†qÞ9sæä|¨«Ê=Ú‡6mÚPµjÕxE]´hµjÕŠ.]ºÄåÐè‚zòäÉú! rúôiÖ±OŸ>”5kV¾‡?Þ0ê€I’+W.s”)]º4cdÎàÉ}ƒÕ«W/ªY³&mÛ¶Õ(PK+¤råÊ Ò‡~ȃ !œ?þñôÆo0  +W®,AÁ‚iäÈ‘ úöíÛiàÀBgÊ”‰Ê—/Ϥ]¸p!×£ÿ ^L 0¬ÜX¬÷ߟªW¯N{öìá4 ègŸ}Æd»Ð·o_5j÷ÅzöÒ’;vÐàÁƒYodÇ5žô¡?Ы&&>ú ½P:AW0ƒu†HK€7tGy´‡IóöÛoSëÖ­éoûãôÍ7ßðÇÄøïÿËîµNôn&&|÷îÝéOú­_¿ž' Ü"«ÑAyXìÙ³gÓòåË™ðøÃè±ÇcL16èʬzœ;wîÌí÷îݛڵkG:t`ݽaöïÿ›Ç }ûõ×_¹uêÔáIˆ6îGæÒÀ:à -cçÎlQg̘Áƒ ‚=z”š5kÆÕ3ÿ§Ÿ~b7iÒ„¦NÊÄÃà Xâyóæ11‡ÎÖøûï¿ç|º¼§ŽÃzc)†Ñ1)Ö®]kfÅDúÏþC–ä믿æ4¬˜|zÕp½6+p9q† FUªT¡ùóç3¹`Åq–rÊ”)„•ǹsçÒSO=Ån6qâDB^ýމ‰a½\šðx C3vìXƘÄh2}út¶þ˜¼={öôX7ãââhéÒ¥ôñÇ3V°¾ÐO(Ož<Éå*UªäV„à vêÔ)3 ¤Ä~¸Ö«W &Á|Ày0WÜð…ò`1¹PfóæÍ¼R í~$`„ïÔ©[å'žx‚õµ›£¯±¬5nܘ—l²råJKà#<Â.H Ë?nÜ8°ƒrG±i*R¤çƒuô& MÓ¦M¹ä+V¬a…Ððà¡=¤ëU ×°Žz`\¯uy×#ôƒK€åÖ VVìüùóïÔñ®Ȇå °üúc9ÆdAš¶æp‹´€øÞþ¬UàÇë:p_çHC›÷#Ø·@`õ´€„´ —(QB'±Qxþùçù”I“&ñ$Š%Ü_îZ0ÓSå0IáJaÒiÁ> ã á&ÁrëqÔy°jÁ€Ô¨QCßbrê ­—s¦ia¦ÇC׃2Úï÷7:¤Ûñt¼7M=¥¦ãž&¶¯"pk@t,°xXâ!X²^yå^j á±ÄæË—Ó­ „7±ZHX*X+É­õÀõJkòxkÃz_OtXI-ØG@@ \-pïà;COË6\·ñãdz/¬óù:ú‹··z`ÙáÃÀè\A"¸H°àp{\{¾aÆf’s1K ×´0Ócu¿ý3•s9 á]êõzùä“OòÒ7yòdWÏÞ °OŠÜl¶°Db©ÅÊ0mÚ4^òỂ Þdƒo KBÁuÐnÊ ]¸p§°©nРWŸñóÏ?'í¸^#¢ØÐY? 5{,ã¨úÁÝ€u|úé§ nÍêÕ«Ùï…«+!,&4V?„ð°×€¾ÁŒúUX_l ¡?ô†K:kÖ,úòË/ÙåUÆF>?6ÕV·rΜ9òDÿgΜI… 6#sè °Dµ`5L 3ÏŽcÀ\_Êé ‚Ê`3 ?T ¢}ô½üòËì·ÁçEäìú‘ö /ð’‹ ‘ÕGÔu£.ÄEKt=xC ÒA@hÔ ÷ªk×®| ­Q£F<àÖkL86—øXmA?< A¬ºÀÿ1 ùË_˜ ˆH@ÁÂJ¢ÃGý׿þÅ.Hßv°‘Æ„Ðýòvä Õ¤ë<úžÕǶ¦ésB‰®‚Xâ£V^èf¸¨ï¾û.ÄÿAx«Œ‰6®iiafÍ›Þsýz°+GîMÓôÖ˜ü°®ðá¾¼þúën5Àª!LçI°2øŠOër¨@¼ V@ ô³n\]ëǞē€V2X7kžòúV|¼ &©?¸c5Õ­u|<‰/Ì<•¹ß{A%<¬bÑXN›7ožaÝA ¸5®‚hˆ~ŒîšRyŠ+»æ“ëô!·.M¨ÈqiBÑ3tðæÒ=JºŠæá€€>FQúà7Bx¿¡’Œá€€×M«ŽÏ†C'¥‘‡^‚ÃÛª®âFxÄcñ@DDejõDx·(M(wRt|! >¼/„$=¬‡ÕpJg|! „÷…¤‡Bø°NéŒ/þE~òʃvG˜IEND®B`‚mysql++-3.2.5/doc/html/refman/doxygen.css000755 000765 000024 00000074330 13515046515 021006 0ustar00tangentstaff000000 000000 /* The standard CSS for doxygen 1.8.15 */ body, table, div, p, dl { font: 400 14px/22px Roboto,sans-serif; } p.reference, p.definition { font: 400 14px/22px Roboto,sans-serif; } /* @group Heading Levels */ h1.groupheader { font-size: 150%; } .title { font: 400 14px/28px Roboto,sans-serif; font-size: 150%; font-weight: bold; margin: 10px 2px; } h2.groupheader { border-bottom: 1px solid #879ECB; color: #354C7B; font-size: 150%; font-weight: normal; margin-top: 1.75em; padding-top: 8px; padding-bottom: 4px; width: 100%; } h3.groupheader { font-size: 100%; } h1, h2, h3, h4, h5, h6 { -webkit-transition: text-shadow 0.5s linear; -moz-transition: text-shadow 0.5s linear; -ms-transition: text-shadow 0.5s linear; -o-transition: text-shadow 0.5s linear; transition: text-shadow 0.5s linear; margin-right: 15px; } h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { text-shadow: 0 0 15px cyan; } dt { font-weight: bold; } div.multicol { -moz-column-gap: 1em; -webkit-column-gap: 1em; -moz-column-count: 3; -webkit-column-count: 3; } p.startli, p.startdd { margin-top: 2px; } p.starttd { margin-top: 0px; } p.endli { margin-bottom: 0px; } p.enddd { margin-bottom: 4px; } p.endtd { margin-bottom: 2px; } p.interli { } p.interdd { } p.intertd { } /* @end */ caption { font-weight: bold; } span.legend { font-size: 70%; text-align: center; } h3.version { font-size: 90%; text-align: center; } div.qindex, div.navtab{ background-color: #EBEFF6; border: 1px solid #A3B4D7; text-align: center; } div.qindex, div.navpath { width: 100%; line-height: 140%; } div.navtab { margin-right: 15px; } /* @group Link Styling */ a { color: #3D578C; font-weight: normal; text-decoration: none; } .contents a:visited { color: #4665A2; } a:hover { text-decoration: underline; } a.qindex { font-weight: bold; } a.qindexHL { font-weight: bold; background-color: #9CAFD4; color: #FFFFFF; border: 1px double #869DCA; } .contents a.qindexHL:visited { color: #FFFFFF; } a.el { font-weight: bold; } a.elRef { } a.code, a.code:visited, a.line, a.line:visited { color: #4665A2; } a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { color: #4665A2; } /* @end */ dl.el { margin-left: -1cm; } ul { overflow: hidden; /*Fixed: list item bullets overlap floating elements*/ } #side-nav ul { overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ } #main-nav ul { overflow: visible; /* reset ul rule for the navigation bar drop down lists */ } .fragment { text-align: left; direction: ltr; overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/ overflow-y: hidden; } pre.fragment { border: 1px solid #C4CFE5; background-color: #FBFCFD; padding: 4px 6px; margin: 4px 8px 4px 2px; overflow: auto; word-wrap: break-word; font-size: 9pt; line-height: 125%; font-family: monospace, fixed; font-size: 105%; } div.fragment { padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/ margin: 4px 8px 4px 2px; background-color: #FBFCFD; border: 1px solid #C4CFE5; } div.line { font-family: monospace, fixed; font-size: 13px; min-height: 13px; line-height: 1.0; text-wrap: unrestricted; white-space: -moz-pre-wrap; /* Moz */ white-space: -pre-wrap; /* Opera 4-6 */ white-space: -o-pre-wrap; /* Opera 7 */ white-space: pre-wrap; /* CSS3 */ word-wrap: break-word; /* IE 5.5+ */ text-indent: -53px; padding-left: 53px; padding-bottom: 0px; margin: 0px; -webkit-transition-property: background-color, box-shadow; -webkit-transition-duration: 0.5s; -moz-transition-property: background-color, box-shadow; -moz-transition-duration: 0.5s; -ms-transition-property: background-color, box-shadow; -ms-transition-duration: 0.5s; -o-transition-property: background-color, box-shadow; -o-transition-duration: 0.5s; transition-property: background-color, box-shadow; transition-duration: 0.5s; } div.line:after { content:"\000A"; white-space: pre; } div.line.glow { background-color: cyan; box-shadow: 0 0 10px cyan; } span.lineno { padding-right: 4px; text-align: right; border-right: 2px solid #0F0; background-color: #E8E8E8; white-space: pre; } span.lineno a { background-color: #D8D8D8; } span.lineno a:hover { background-color: #C8C8C8; } .lineno { -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } div.ah, span.ah { background-color: black; font-weight: bold; color: #FFFFFF; margin-bottom: 3px; margin-top: 3px; padding: 0.2em; border: solid thin #333; border-radius: 0.5em; -webkit-border-radius: .5em; -moz-border-radius: .5em; box-shadow: 2px 2px 3px #999; -webkit-box-shadow: 2px 2px 3px #999; -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%); } div.classindex ul { list-style: none; padding-left: 0; } div.classindex span.ai { display: inline-block; } div.groupHeader { margin-left: 16px; margin-top: 12px; font-weight: bold; } div.groupText { margin-left: 16px; font-style: italic; } body { background-color: white; color: black; margin: 0; } div.contents { margin-top: 10px; margin-left: 12px; margin-right: 8px; } td.indexkey { background-color: #EBEFF6; font-weight: bold; border: 1px solid #C4CFE5; margin: 2px 0px 2px 0; padding: 2px 10px; white-space: nowrap; vertical-align: top; } td.indexvalue { background-color: #EBEFF6; border: 1px solid #C4CFE5; padding: 2px 10px; margin: 2px 0px; } tr.memlist { background-color: #EEF1F7; } p.formulaDsp { text-align: center; } img.formulaDsp { } img.formulaInl, img.inline { vertical-align: middle; } div.center { text-align: center; margin-top: 0px; margin-bottom: 0px; padding: 0px; } div.center img { border: 0px; } address.footer { text-align: right; padding-right: 12px; } img.footer { border: 0px; vertical-align: middle; } /* @group Code Colorization */ span.keyword { color: #008000 } span.keywordtype { color: #604020 } span.keywordflow { color: #e08000 } span.comment { color: #800000 } span.preprocessor { color: #806020 } span.stringliteral { color: #002080 } span.charliteral { color: #008080 } span.vhdldigit { color: #ff00ff } span.vhdlchar { color: #000000 } span.vhdlkeyword { color: #700070 } span.vhdllogic { color: #ff0000 } blockquote { background-color: #F7F8FB; border-left: 2px solid #9CAFD4; margin: 0 24px 0 4px; padding: 0 12px 0 16px; } blockquote.DocNodeRTL { border-left: 0; border-right: 2px solid #9CAFD4; margin: 0 4px 0 24px; padding: 0 16px 0 12px; } /* @end */ /* .search { color: #003399; font-weight: bold; } form.search { margin-bottom: 0px; margin-top: 0px; } input.search { font-size: 75%; color: #000080; font-weight: normal; background-color: #e8eef2; } */ td.tiny { font-size: 75%; } .dirtab { padding: 4px; border-collapse: collapse; border: 1px solid #A3B4D7; } th.dirtab { background: #EBEFF6; font-weight: bold; } hr { height: 0px; border: none; border-top: 1px solid #4A6AAA; } hr.footer { height: 1px; } /* @group Member Descriptions */ table.memberdecls { border-spacing: 0px; padding: 0px; } .memberdecls td, .fieldtable tr { -webkit-transition-property: background-color, box-shadow; -webkit-transition-duration: 0.5s; -moz-transition-property: background-color, box-shadow; -moz-transition-duration: 0.5s; -ms-transition-property: background-color, box-shadow; -ms-transition-duration: 0.5s; -o-transition-property: background-color, box-shadow; -o-transition-duration: 0.5s; transition-property: background-color, box-shadow; transition-duration: 0.5s; } .memberdecls td.glow, .fieldtable tr.glow { background-color: cyan; box-shadow: 0 0 15px cyan; } .mdescLeft, .mdescRight, .memItemLeft, .memItemRight, .memTemplItemLeft, .memTemplItemRight, .memTemplParams { background-color: #F9FAFC; border: none; margin: 4px; padding: 1px 0 0 8px; } .mdescLeft, .mdescRight { padding: 0px 8px 4px 8px; color: #555; } .memSeparator { border-bottom: 1px solid #DEE4F0; line-height: 1px; margin: 0px; padding: 0px; } .memItemLeft, .memTemplItemLeft { white-space: nowrap; } .memItemRight { width: 100%; } .memTemplParams { color: #4665A2; white-space: nowrap; font-size: 80%; } /* @end */ /* @group Member Details */ /* Styles for detailed member documentation */ .memtitle { padding: 8px; border-top: 1px solid #A8B8D9; border-left: 1px solid #A8B8D9; border-right: 1px solid #A8B8D9; border-top-right-radius: 4px; border-top-left-radius: 4px; margin-bottom: -1px; background-image: url('nav_f.png'); background-repeat: repeat-x; background-color: #E2E8F2; line-height: 1.25; font-weight: 300; float:left; } .permalink { font-size: 65%; display: inline-block; vertical-align: middle; } .memtemplate { font-size: 80%; color: #4665A2; font-weight: normal; margin-left: 9px; } .memnav { background-color: #EBEFF6; border: 1px solid #A3B4D7; text-align: center; margin: 2px; margin-right: 15px; padding: 2px; } .mempage { width: 100%; } .memitem { padding: 0; margin-bottom: 10px; margin-right: 5px; -webkit-transition: box-shadow 0.5s linear; -moz-transition: box-shadow 0.5s linear; -ms-transition: box-shadow 0.5s linear; -o-transition: box-shadow 0.5s linear; transition: box-shadow 0.5s linear; display: table !important; width: 100%; } .memitem.glow { box-shadow: 0 0 15px cyan; } .memname { font-weight: 400; margin-left: 6px; } .memname td { vertical-align: bottom; } .memproto, dl.reflist dt { border-top: 1px solid #A8B8D9; border-left: 1px solid #A8B8D9; border-right: 1px solid #A8B8D9; padding: 6px 0px 6px 0px; color: #253555; font-weight: bold; text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); background-color: #DFE5F1; /* opera specific markup */ box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); border-top-right-radius: 4px; /* firefox specific markup */ -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; -moz-border-radius-topright: 4px; /* webkit specific markup */ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); -webkit-border-top-right-radius: 4px; } .overload { font-family: "courier new",courier,monospace; font-size: 65%; } .memdoc, dl.reflist dd { border-bottom: 1px solid #A8B8D9; border-left: 1px solid #A8B8D9; border-right: 1px solid #A8B8D9; padding: 6px 10px 2px 10px; background-color: #FBFCFD; border-top-width: 0; background-image:url('nav_g.png'); background-repeat:repeat-x; background-color: #FFFFFF; /* opera specific markup */ border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); /* firefox specific markup */ -moz-border-radius-bottomleft: 4px; -moz-border-radius-bottomright: 4px; -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; /* webkit specific markup */ -webkit-border-bottom-left-radius: 4px; -webkit-border-bottom-right-radius: 4px; -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); } dl.reflist dt { padding: 5px; } dl.reflist dd { margin: 0px 0px 10px 0px; padding: 5px; } .paramkey { text-align: right; } .paramtype { white-space: nowrap; } .paramname { color: #602020; white-space: nowrap; } .paramname em { font-style: normal; } .paramname code { line-height: 14px; } .params, .retval, .exception, .tparams { margin-left: 0px; padding-left: 0px; } .params .paramname, .retval .paramname, .tparams .paramname { font-weight: bold; vertical-align: top; } .params .paramtype, .tparams .paramtype { font-style: italic; vertical-align: top; } .params .paramdir, .tparams .paramdir { font-family: "courier new",courier,monospace; vertical-align: top; } table.mlabels { border-spacing: 0px; } td.mlabels-left { width: 100%; padding: 0px; } td.mlabels-right { vertical-align: bottom; padding: 0px; white-space: nowrap; } span.mlabels { margin-left: 8px; } span.mlabel { background-color: #728DC1; border-top:1px solid #5373B4; border-left:1px solid #5373B4; border-right:1px solid #C4CFE5; border-bottom:1px solid #C4CFE5; text-shadow: none; color: white; margin-right: 4px; padding: 2px 3px; border-radius: 3px; font-size: 7pt; white-space: nowrap; vertical-align: middle; } /* @end */ /* these are for tree view inside a (index) page */ div.directory { margin: 10px 0px; border-top: 1px solid #9CAFD4; border-bottom: 1px solid #9CAFD4; width: 100%; } .directory table { border-collapse:collapse; } .directory td { margin: 0px; padding: 0px; vertical-align: top; } .directory td.entry { white-space: nowrap; padding-right: 6px; padding-top: 3px; } .directory td.entry a { outline:none; } .directory td.entry a img { border: none; } .directory td.desc { width: 100%; padding-left: 6px; padding-right: 6px; padding-top: 3px; border-left: 1px solid rgba(0,0,0,0.05); } .directory tr.even { padding-left: 6px; background-color: #F7F8FB; } .directory img { vertical-align: -30%; } .directory .levels { white-space: nowrap; width: 100%; text-align: right; font-size: 9pt; } .directory .levels span { cursor: pointer; padding-left: 2px; padding-right: 2px; color: #3D578C; } .arrow { color: #9CAFD4; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; cursor: pointer; font-size: 80%; display: inline-block; width: 16px; height: 22px; } .icon { font-family: Arial, Helvetica; font-weight: bold; font-size: 12px; height: 14px; width: 16px; display: inline-block; background-color: #728DC1; color: white; text-align: center; border-radius: 4px; margin-left: 2px; margin-right: 2px; } .icona { width: 24px; height: 22px; display: inline-block; } .iconfopen { width: 24px; height: 18px; margin-bottom: 4px; background-image:url('folderopen.png'); background-position: 0px -4px; background-repeat: repeat-y; vertical-align:top; display: inline-block; } .iconfclosed { width: 24px; height: 18px; margin-bottom: 4px; background-image:url('folderclosed.png'); background-position: 0px -4px; background-repeat: repeat-y; vertical-align:top; display: inline-block; } .icondoc { width: 24px; height: 18px; margin-bottom: 4px; background-image:url('doc.png'); background-position: 0px -4px; background-repeat: repeat-y; vertical-align:top; display: inline-block; } table.directory { font: 400 14px Roboto,sans-serif; } /* @end */ div.dynheader { margin-top: 8px; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } address { font-style: normal; color: #2A3D61; } table.doxtable caption { caption-side: top; } table.doxtable { border-collapse:collapse; margin-top: 4px; margin-bottom: 4px; } table.doxtable td, table.doxtable th { border: 1px solid #2D4068; padding: 3px 7px 2px; } table.doxtable th { background-color: #374F7F; color: #FFFFFF; font-size: 110%; padding-bottom: 4px; padding-top: 5px; } table.fieldtable { /*width: 100%;*/ margin-bottom: 10px; border: 1px solid #A8B8D9; border-spacing: 0px; -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); } .fieldtable td, .fieldtable th { padding: 3px 7px 2px; } .fieldtable td.fieldtype, .fieldtable td.fieldname { white-space: nowrap; border-right: 1px solid #A8B8D9; border-bottom: 1px solid #A8B8D9; vertical-align: top; } .fieldtable td.fieldname { padding-top: 3px; } .fieldtable td.fielddoc { border-bottom: 1px solid #A8B8D9; /*width: 100%;*/ } .fieldtable td.fielddoc p:first-child { margin-top: 0px; } .fieldtable td.fielddoc p:last-child { margin-bottom: 2px; } .fieldtable tr:last-child td { border-bottom: none; } .fieldtable th { background-image:url('nav_f.png'); background-repeat:repeat-x; background-color: #E2E8F2; font-size: 90%; color: #253555; padding-bottom: 4px; padding-top: 5px; text-align:left; font-weight: 400; -moz-border-radius-topleft: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-left-radius: 4px; -webkit-border-top-right-radius: 4px; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom: 1px solid #A8B8D9; } .tabsearch { top: 0px; left: 10px; height: 36px; background-image: url('tab_b.png'); z-index: 101; overflow: hidden; font-size: 13px; } .navpath ul { font-size: 11px; background-image:url('tab_b.png'); background-repeat:repeat-x; background-position: 0 -5px; height:30px; line-height:30px; color:#8AA0CC; border:solid 1px #C2CDE4; overflow:hidden; margin:0px; padding:0px; } .navpath li { list-style-type:none; float:left; padding-left:10px; padding-right:15px; background-image:url('bc_s.png'); background-repeat:no-repeat; background-position:right; color:#364D7C; } .navpath li.navelem a { height:32px; display:block; text-decoration: none; outline: none; color: #283A5D; font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); text-decoration: none; } .navpath li.navelem a:hover { color:#6884BD; } .navpath li.footer { list-style-type:none; float:right; padding-left:10px; padding-right:15px; background-image:none; background-repeat:no-repeat; background-position:right; color:#364D7C; font-size: 8pt; } div.summary { float: right; font-size: 8pt; padding-right: 5px; width: 50%; text-align: right; } div.summary a { white-space: nowrap; } table.classindex { margin: 10px; white-space: nowrap; margin-left: 3%; margin-right: 3%; width: 94%; border: 0; border-spacing: 0; padding: 0; } div.ingroups { font-size: 8pt; width: 50%; text-align: left; } div.ingroups a { white-space: nowrap; } div.header { background-image:url('nav_h.png'); background-repeat:repeat-x; background-color: #F9FAFC; margin: 0px; border-bottom: 1px solid #C4CFE5; } div.headertitle { padding: 5px 5px 5px 10px; } .PageDocRTL-title div.headertitle { text-align: right; direction: rtl; } dl { padding: 0 0 0 0; } /* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */ dl.section { margin-left: 0px; padding-left: 0px; } dl.section.DocNodeRTL { margin-right: 0px; padding-right: 0px; } dl.note { margin-left: -7px; padding-left: 3px; border-left: 4px solid; border-color: #D0C000; } dl.note.DocNodeRTL { margin-left: 0; padding-left: 0; border-left: 0; margin-right: -7px; padding-right: 3px; border-right: 4px solid; border-color: #D0C000; } dl.warning, dl.attention { margin-left: -7px; padding-left: 3px; border-left: 4px solid; border-color: #FF0000; } dl.warning.DocNodeRTL, dl.attention.DocNodeRTL { margin-left: 0; padding-left: 0; border-left: 0; margin-right: -7px; padding-right: 3px; border-right: 4px solid; border-color: #FF0000; } dl.pre, dl.post, dl.invariant { margin-left: -7px; padding-left: 3px; border-left: 4px solid; border-color: #00D000; } dl.pre.DocNodeRTL, dl.post.DocNodeRTL, dl.invariant.DocNodeRTL { margin-left: 0; padding-left: 0; border-left: 0; margin-right: -7px; padding-right: 3px; border-right: 4px solid; border-color: #00D000; } dl.deprecated { margin-left: -7px; padding-left: 3px; border-left: 4px solid; border-color: #505050; } dl.deprecated.DocNodeRTL { margin-left: 0; padding-left: 0; border-left: 0; margin-right: -7px; padding-right: 3px; border-right: 4px solid; border-color: #505050; } dl.todo { margin-left: -7px; padding-left: 3px; border-left: 4px solid; border-color: #00C0E0; } dl.todo.DocNodeRTL { margin-left: 0; padding-left: 0; border-left: 0; margin-right: -7px; padding-right: 3px; border-right: 4px solid; border-color: #00C0E0; } dl.test { margin-left: -7px; padding-left: 3px; border-left: 4px solid; border-color: #3030E0; } dl.test.DocNodeRTL { margin-left: 0; padding-left: 0; border-left: 0; margin-right: -7px; padding-right: 3px; border-right: 4px solid; border-color: #3030E0; } dl.bug { margin-left: -7px; padding-left: 3px; border-left: 4px solid; border-color: #C08050; } dl.bug.DocNodeRTL { margin-left: 0; padding-left: 0; border-left: 0; margin-right: -7px; padding-right: 3px; border-right: 4px solid; border-color: #C08050; } dl.section dd { margin-bottom: 6px; } #projectlogo { text-align: center; vertical-align: bottom; border-collapse: separate; } #projectlogo img { border: 0px none; } #projectalign { vertical-align: middle; } #projectname { font: 300% Tahoma, Arial,sans-serif; margin: 0px; padding: 2px 0px; } #projectbrief { font: 120% Tahoma, Arial,sans-serif; margin: 0px; padding: 0px; } #projectnumber { font: 50% Tahoma, Arial,sans-serif; margin: 0px; padding: 0px; } #titlearea { padding: 0px; margin: 0px; width: 100%; border-bottom: 1px solid #5373B4; } .image { text-align: center; } .dotgraph { text-align: center; } .mscgraph { text-align: center; } .plantumlgraph { text-align: center; } .diagraph { text-align: center; } .caption { font-weight: bold; } div.zoom { border: 1px solid #90A5CE; } dl.citelist { margin-bottom:50px; } dl.citelist dt { color:#334975; float:left; font-weight:bold; margin-right:10px; padding:5px; } dl.citelist dd { margin:2px 0; padding:5px 0; } div.toc { padding: 14px 25px; background-color: #F4F6FA; border: 1px solid #D8DFEE; border-radius: 7px 7px 7px 7px; float: right; height: auto; margin: 0 8px 10px 10px; width: 200px; } .PageDocRTL-title div.toc { float: left !important; text-align: right; } div.toc li { background: url("bdwn.png") no-repeat scroll 0 5px transparent; font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; margin-top: 5px; padding-left: 10px; padding-top: 2px; } .PageDocRTL-title div.toc li { background-position-x: right !important; padding-left: 0 !important; padding-right: 10px; } div.toc h3 { font: bold 12px/1.2 Arial,FreeSans,sans-serif; color: #4665A2; border-bottom: 0 none; margin: 0; } div.toc ul { list-style: none outside none; border: medium none; padding: 0px; } div.toc li.level1 { margin-left: 0px; } div.toc li.level2 { margin-left: 15px; } div.toc li.level3 { margin-left: 30px; } div.toc li.level4 { margin-left: 45px; } .PageDocRTL-title div.toc li.level1 { margin-left: 0 !important; margin-right: 0; } .PageDocRTL-title div.toc li.level2 { margin-left: 0 !important; margin-right: 15px; } .PageDocRTL-title div.toc li.level3 { margin-left: 0 !important; margin-right: 30px; } .PageDocRTL-title div.toc li.level4 { margin-left: 0 !important; margin-right: 45px; } .inherit_header { font-weight: bold; color: gray; cursor: pointer; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } .inherit_header td { padding: 6px 0px 2px 5px; } .inherit { display: none; } tr.heading h2 { margin-top: 12px; margin-bottom: 4px; } /* tooltip related style info */ .ttc { position: absolute; display: none; } #powerTip { cursor: default; white-space: nowrap; background-color: white; border: 1px solid gray; border-radius: 4px 4px 4px 4px; box-shadow: 1px 1px 7px gray; display: none; font-size: smaller; max-width: 80%; opacity: 0.9; padding: 1ex 1em 1em; position: absolute; z-index: 2147483647; } #powerTip div.ttdoc { color: grey; font-style: italic; } #powerTip div.ttname a { font-weight: bold; } #powerTip div.ttname { font-weight: bold; } #powerTip div.ttdeci { color: #006318; } #powerTip div { margin: 0px; padding: 0px; font: 12px/16px Roboto,sans-serif; } #powerTip:before, #powerTip:after { content: ""; position: absolute; margin: 0px; } #powerTip.n:after, #powerTip.n:before, #powerTip.s:after, #powerTip.s:before, #powerTip.w:after, #powerTip.w:before, #powerTip.e:after, #powerTip.e:before, #powerTip.ne:after, #powerTip.ne:before, #powerTip.se:after, #powerTip.se:before, #powerTip.nw:after, #powerTip.nw:before, #powerTip.sw:after, #powerTip.sw:before { border: solid transparent; content: " "; height: 0; width: 0; position: absolute; } #powerTip.n:after, #powerTip.s:after, #powerTip.w:after, #powerTip.e:after, #powerTip.nw:after, #powerTip.ne:after, #powerTip.sw:after, #powerTip.se:after { border-color: rgba(255, 255, 255, 0); } #powerTip.n:before, #powerTip.s:before, #powerTip.w:before, #powerTip.e:before, #powerTip.nw:before, #powerTip.ne:before, #powerTip.sw:before, #powerTip.se:before { border-color: rgba(128, 128, 128, 0); } #powerTip.n:after, #powerTip.n:before, #powerTip.ne:after, #powerTip.ne:before, #powerTip.nw:after, #powerTip.nw:before { top: 100%; } #powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { border-top-color: #FFFFFF; border-width: 10px; margin: 0px -10px; } #powerTip.n:before { border-top-color: #808080; border-width: 11px; margin: 0px -11px; } #powerTip.n:after, #powerTip.n:before { left: 50%; } #powerTip.nw:after, #powerTip.nw:before { right: 14px; } #powerTip.ne:after, #powerTip.ne:before { left: 14px; } #powerTip.s:after, #powerTip.s:before, #powerTip.se:after, #powerTip.se:before, #powerTip.sw:after, #powerTip.sw:before { bottom: 100%; } #powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { border-bottom-color: #FFFFFF; border-width: 10px; margin: 0px -10px; } #powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { border-bottom-color: #808080; border-width: 11px; margin: 0px -11px; } #powerTip.s:after, #powerTip.s:before { left: 50%; } #powerTip.sw:after, #powerTip.sw:before { right: 14px; } #powerTip.se:after, #powerTip.se:before { left: 14px; } #powerTip.e:after, #powerTip.e:before { left: 100%; } #powerTip.e:after { border-left-color: #FFFFFF; border-width: 10px; top: 50%; margin-top: -10px; } #powerTip.e:before { border-left-color: #808080; border-width: 11px; top: 50%; margin-top: -11px; } #powerTip.w:after, #powerTip.w:before { right: 100%; } #powerTip.w:after { border-right-color: #FFFFFF; border-width: 10px; top: 50%; margin-top: -10px; } #powerTip.w:before { border-right-color: #808080; border-width: 11px; top: 50%; margin-top: -11px; } @media print { #top { display: none; } #side-nav { display: none; } #nav-path { display: none; } body { overflow:visible; } h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } .summary { display: none; } .memitem { page-break-inside: avoid; } #doc-content { margin-left:0 !important; height:auto !important; width:auto !important; overflow:inherit; display:inline; } } /* @group Markdown */ /* table.markdownTable { border-collapse:collapse; margin-top: 4px; margin-bottom: 4px; } table.markdownTable td, table.markdownTable th { border: 1px solid #2D4068; padding: 3px 7px 2px; } table.markdownTableHead tr { } table.markdownTableBodyLeft td, table.markdownTable th { border: 1px solid #2D4068; padding: 3px 7px 2px; } th.markdownTableHeadLeft th.markdownTableHeadRight th.markdownTableHeadCenter th.markdownTableHeadNone { background-color: #374F7F; color: #FFFFFF; font-size: 110%; padding-bottom: 4px; padding-top: 5px; } th.markdownTableHeadLeft { text-align: left } th.markdownTableHeadRight { text-align: right } th.markdownTableHeadCenter { text-align: center } */ table.markdownTable { border-collapse:collapse; margin-top: 4px; margin-bottom: 4px; } table.markdownTable td, table.markdownTable th { border: 1px solid #2D4068; padding: 3px 7px 2px; } table.markdownTable tr { } th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { background-color: #374F7F; color: #FFFFFF; font-size: 110%; padding-bottom: 4px; padding-top: 5px; } th.markdownTableHeadLeft, td.markdownTableBodyLeft { text-align: left } th.markdownTableHeadRight, td.markdownTableBodyRight { text-align: right } th.markdownTableHeadCenter, td.markdownTableBodyCenter { text-align: center } .DocNodeRTL { text-align: right; direction: rtl; } .DocNodeLTR { text-align: left; direction: ltr; } table.DocNodeRTL { width: auto; margin-right: 0; margin-left: auto; } table.DocNodeLTR { width: auto; margin-right: auto; margin-left: 0; } tt, code, kbd, samp { display: inline-block; direction:ltr; } /* @end */ u { text-decoration: underline; } mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1MultiStatementsOption__coll__graph.png000644 000765 000024 00000021605 13515046516 031457 0ustar00tangentstaff000000 000000 ‰PNG  IHDR¹ÄÀCsRGB®Îé#?IDATxí]˜E~À.aA J’(HA’‡¢"AD9EÅCOñ‘…ãŽã„CÅtâÁ§„å@%gÉ9'ÉIrΡ®þÕöôÎÌÎ.;=3Í{ß·Ó]¡+üõ׫W¯kfÓ)-$"xQé½Û7é™ p!¹0ÁóÉ=?ÄÒA!¹pÀóÄEº‡»w瑩]»FºR(\¸0 0 %§¬Èˆkò“'OÒèÑ£éôéÓ)k¹äŽjÖ¯_OS¦L‰Š6F\“HeÊ”1A¹Æ8½zõ¢±cÇFE/"®É£i„§’{zx¥s@@H.<ð<BrϱtPHžBìܹ“6lHû÷ïOá“)ϾbÅ jÙ²%•,Y’òåËGõêÕ£þýûÓµk×B*ìÊ•+tìØ1+ï—_~I;v´Â·Ê<…# —çäÉ“éܹs)|2eÙ'MšDuêÔ¡eË–Q»ví¨wïÞT @êÖ­5nܘ._¾œl'N¤Ü¹s[y/^¼HçÏŸOö9¯eˆ9’c  M¯^½J;vì µk×ò˜@»­[·Ž–/_n *^4Ù52îÝ»—Nœ8a#´åÂ… éìÙ³VnΜ9C , £G2¡wíÚ哎À©S§¤áæÏŸO[¶lñÉsèÐ!B{QƬY³øjÏ€4CVÑÄ¿ôÒKT¶lYZ¹r%uïÞ:tè@#Gޤ!C†&À·ß~ËEªãÂ… „4ðB¹mÚ´¡~ýúq>ÐÇ9sæÐìÙ³}ÞSŒñ̶mÛ¸oȳ‚£¶‘”5kÖਯڴiSHÍX´hç¯[·._ñìþðÕ A+\³fMuéÒ%U«V-õÐCYåêAW2dPš(jõêÕªhÑ¢*[¶l*]ºtªP¡BjãÆœW¼Ê™3§JŸ>=ç¯ZµªÊš5+§­ZµŠëÙºu«zþùç•&¢Ê•+—ʘ1#Çk­kÕ‡¸Úµksñññ*!!Aiß±•Ž:^{í5OŸ>Ÿ×„ScÆŒáûiÓ¦YyÍ&žÒïTýúõ9*P3gÎäöôY+Õ¹sg…¾@æÎ«´ ÄýÊœ9³Ê›7¯Â3ƒq³fÍøY”t=‰9=”÷ß_ÝsÏ=¡d wž‘1§É5à,Ù³g§}ûöÑÇLóæÍcí- mͼaÃjÕªéÁ´4Zbb"iâÒ3Ïù„µðW_}Eø›0a‚•« ´!VÇ{Œ^yåÖ ÈûXONΫ'›"¸š¡zõêV9æFOHºï¾ûhûöí&ŠÛ鬣Zµj¤' çÁ Q¬X1+¿VÔºukÒÊ€Ž?Îh…@/¼ðãh2b58räk{h÷qãÆ™¤Øº†{%W~j5ù’%K¸hh¸1b‡5i9¬ ­ô)hÐO?ý”Ó~øaÕ¤I¾çw4Xß¾}´34?þ/^ÌÏÛ5.´R M^¾|y.Ï|/^œ5&Âвږ6IJ›R\¶ž„Vœ¿›=z¨¸¸8¥M2ÉêÑGUz3ÊiÁêФäúÐ/ˆÑäFSk³‡ãñaV`aÒõ~ÀJÇjùòË/[áänD“§À& ¢ÉÀ×R¥Jñš¢7]ð„@£A#Á.†v‡h"ñ=V‚Ê•+S‰%H.íÙ³‡ÓkÔ¨ÁW|@»MjŸ$½¬[+îºë.+ic+[ Ž´ž¬NFÅꄚJ‚Õqøðaö àY=yT—.]Ôý÷ßÏÂÏ“'÷}„¯Çrš±É ƈÄ>Àî9âŒA>¢É&Ç ¨¤”ä©iì[o½¥*T¨äQí£VÚ„P˜(NÑ v3bÒh‰Er{>¸áfC9臶—íÉLP­å•Ö”–{Ò'Cl1±–.]ª´9”ä Éã¥K—úz¼V§¸QG8ÛïFÙé°ô¸QQ :ðZ›#ùfP ”b/^ï'ø›AØpGXäÇ…"<R½ xÞ…è†RE”# $wy€fÎÜèrR]Ôl<;uêD·Ýv›§Gäܹ8Ú¼9—>üuý¬—;‹Ÿ¤0G,"Ýψ“®/¼‰¼äðá}n=^{dâ(!ኧ»¬Ùò)ÏhèdĽ+Ñ‚[m¨Zµ·þÚÜqzóÍôÎ;»Uí­^xWÜbÀŠ»˜à¨oôèenU+õhdãé Æ_Aññ¸6hs^Ä„ä.à|íšÒ/FðÝÓ«\ÈÒ‹¸ƒ€ÜœçÏߪ¿föû¥Avä ?Bòðc¬ÏŒ/×_‚¸nª˜ê@z_$üÉÃŒñ¥KWiâÄUúël×MSHò‹„!y˜1ž1cƒö‹'ý! äÇ$ /Bòðâ˶w\Üõ/W;«ù1 D‹€<Œøž={‘¦M[§Mÿ¿]òc*^„äaÄwÒ¤µúgüÕ‚üÓ§¯×¯ú/†±R´<Œ3f™þ­SÅT{éÒýÛ†×ÏÑÄÉ5m’§-žViÇŽ]w*X“›Ì‰‰òbÈ`Ž«Ð ªºLxMŽõý%Ø©S×ë_îKK—¾ïSk† éôïg÷‰“@š!0*âGmÓ¬+QVPÆŒôøø~C?gÎn¥3>Êšî¹æˆ¹â¹!•9’;‘°ç’{nH¥CN„äND$ì9„äžRé!¹ {!¹ç†T:äD@HîDDžC@Hî¹!•9’;‘°ç’{nH¥CN„äND$ì9„äžRé!¹ {!¹ç†T:äD@HîDDžC@Hî¹!•9’;‘°ç’{nH¥CN„äND$ì9„äžRé!¹ {!¹ç†T:äD@HîDDžC@Hî¹!•9’;‘°ç’{nH¥CN„äND$ì9„äžRé!¹ {!¹ç†T:äD@HîDDžC ê~„ÿüùóôã?zhthõ꣟ŽFíÉþåÉ“‡êÖ­u}‹º§²gÏ*R¤HÔ% JÚµkÓ/¿ü’|FwsŒŠZseÑ¢Eú?§)ù‹ :vìè.uSP[Ô’<}¬‚@P„äAá‘D/ $÷Â(J‚" $ $z!¹FQú˜'ù‰'¨aÆ>Ï>û, 8®^½´ó¡$Ž1‚^ýõP²Þtž+VPË–-©dÉ’ú?4ç£zõêQÿþýéÚµäÿu9*¿rå ;vÌjG›6mh̘1VøV½‰y’_¸p&OžL™2e¢ûî»*V¬HgÏž¥·Þz‹Ò­µyófZ°`AØù1iÒ$ªS§-[¶ŒÚµkG½{÷¦ P·nݨqãÆtùòådÛ0qâDÊ;·•÷ܹsúߟ_Jö9Ïgо訒ݻw+ ºÒ~òÚuàÀίß"úäà”&‰Oœ~Ѥ~úé'¥5¦ÒÚÑ'íôéÓjöìÙjÖ¬YêÔ©SVZ=Ô½÷Þk…qƒ6Λ7O>^eÈAõë×ÙXºwï®2f̨²gÏÎyjÖ¬ÉÄAbçÎUÙ²eU©R¥ø9LäGy„'›6)8ÿ´iÓ®dûÄd,S¦Œª_¿>Ç¢| u£ jìØ±Ü^ôå" ¤-\¸°úûßÿÎÏë# žkÖ¬™Õ6`€ÉªÉCEJçK-É«W¯®žzê)Õ¤IU¢D &4Í„Aüúë¯9¼uëV•?~õꫯ²f-V¬˜zâ‰'”^Ú9Œû;35¦ä Pqqqj„ ¬…‡ÎåB3ïÝ»—'ÏСC™ØÚÌá¼ 0$Gþõ¯q=½zõâðöíÛUß¾}ùÞ¾‚ðC7>ž{î9u×]wq$¿ãŽ;ÔÎ;•6ËTóæÍ•6QXóŽ7ŽËA? †ä˜œÁúhHþØc©ãÇ«9sæðDµO`.0ÈG4“<æmrMد¥K—¦råÊQ5HkSzûí·9-11‘räÈAZ s;­µhÆŒ´råJÒ„¡:èÃSñ¤IDo¼ñisƒ6mÚt½ðŸ£F¢*Uªžú°ÕjÒf eË–÷Zóц èñÇ'=¹6¶Ö¬\Ž)¤xñâ¼W@=z‚q´žp¼‡Ð“‡ôJb²ú\õŠCZ;[qhkÑ¢EIkqÒ“¾nÝ:+Ýyj?úè#ºýöÛyoP©R%Ò¦‹³¨˜ GÝ)ÄԢتU+zúé§­Ç.\HµjÕ¢ùóç“^¨råÊL:“AÛÀ¤íZNC6­FAº]víÚEÚÆ%­é­hB›?|ƦS§N4eÊ*T¨U¨P@\»ÀcbD›E| ^yØ3¢M ¾7ypÕZ˜' 6¥F´V7·„É9tèç¼Aÿ!úˆ‰ ±·/K–,iââ‚#üáMîÄš¢7{쥀¦Ó«­•mùòå¬ ±@ôFÐ' ½Ä[q¸Ñf5hЀpRÒü <˜Z´hAß}÷M:• ‰4mÒ0ùí`2øe9« Žk³ÄJÚ¿¿uI f$¡ö+Å3½Z»v-ioMŸ>´K5b“æ÷ìÙ“àW_¼x1i/ ÁŸíÍݧO^ò‘®½T­Zµ$ZµiÓ¦\>|Ï(Ï<ù䓤íXÖz ´¡öº°Wf(®?hòöíÛÓ Aƒ¨k×®<á0Q¾ÿþ{ Ó¡mÛ¶ÿ´Ç…ô¦Û‹gp4®S˜Z˜Yö ’>Z•xé&È^""I)ÝxÂ-§ÇÃç/gΜJ¿HQÚn¶úϼ*ð< ¿&8»ÝAO ¥üs<<ÚfWëׯçg±ñÔv8ßk¿3oôL}ðÄ`Ó{N“‰Ë@Ú·ÍÞ ”·téRÕ¥K›žLœ÷çŸæçáNÄfKS>6¹z•ðqi".MÓxl´ŸË8|ø0{‰ðü¶mÛ”&¿å] ÖG³ñÄæÙÈ£>ª´¿Þ“½FóÆ3æ]ˆÉ¢oËß²¶Õ|ÍNŸY›0 ^ø˜ƒ &"ÊÑo“dÃó¨Ç¼ Ænâ‚]áÁäÄÄÀ¤r H>räH…I²qãFg²åCO’ #RÒGÏ‹‹f’û ð²àm þü 6‚ðœ„"Ú5Gøó'ððØ%˜­lÏgîáy鑜À[„?§àÍ/þüIJúèïùXóŒM«ÒvÃ=h¢¦´¬[%ÿ-¥É½0¨úEºájD“» ·T „ä.£~èÐ)—k”ê¢Ö\ÁKó¦Î+ÃtþüUúá‡mÔ¦ïæÔ ýÃñ„hùÝG&!¡¼öˆÔ£ƒ?×_„¸àbÍîT­¿»uš®9íugT\®¥yóOhÑ¢múÀlý  ê.×~ëV'6¹Kc[|ñâíº6üLÜR—j•j€€Ü%üï«ô)HÐRLvÙ€º¼Ü= ¡½Í’Av^ÄD“»€ó®]øRÃ^½×¸^È.&‹ ÀߨBHîÖãǯÐçÅÿfÈÒƒü"áG@H~Œõ¹ðÅú›?¾¿Òƒü"áG@HfŒ×¯ßO;w&ÕØ =È/~„äaÆÚ:>þwSÅ^È¿aÃï_e³§É}Ú! $O;,ý–4fÌRý8_SÅdùÅd1x„ë*$²ºÜ%KvèWødü˜"áE@HF|—4ULµ˜˜ "áC@H&l¯^½¦_ø¬Ôß⿦¿EðÕc2ˆ„¨; ¾®º[ò±cgõ¯rÕõ©tË–ƒúLJÖê_èzØ'>gΟ°Ò¨;j›¶Ý‹®Ò&LXE¯½6‚öî] óvk¢÷_zw雈Mî&ÚRWD’Gv©ÔM„än¢-uE!yD`—JÝD@Hî&ÚRWD’Gv©ÔM„än¢-uE!yD`—JÝD@Hî&ÚRWD’Gv©ÔM„än¢-uE!yD`—JÝD@Hî&ÚRWD’Gv©ÔM„än¢-uE!yD`—JÝD@Hî&ÚRWD’Gv©ÔM„än¢-uE!yD`—JÝD@Hî&ÚRWD’Gv©ÔM„än¢-uE!yD`—JÝD@Hî&ÚRWD’Gv©ÔM„än¢-uE!yD`—JÝD@Hî&ÚRWD’Gv©ÔM„än¢-uE!yD`—J]E@9ä‡~À€—¿0`>}fŸ_° ¶àl† læàÈ€ÿ3¨W¯^®N6©L¸Ö®]«ÿÙÿüä=ôß$RˆF®^½äb“GãˆI›Ò!yšÂ)…E#BòhiSš" $OS8¥°hD æI>uêT4hPX±=sæ uëÖþò—¿ÐÅ‹“ÔÕ·o_NßµkW’4gDÿþýiæÌ™}áÂ:wîßïÙ³‡Ë8vì‡ÏŸ?OŸ~ú)µnÝšž|òIúë_ÿJ“&M¢Ë—/[Ež>}Ú'l%ø¹II^?‡%Ê­6Å<ÉAŽuëÖ…eL¡—.]¢¥K—ÒâÅ‹iÑ¢E&š¯;vì iÓ¦q:-9Y½z58p€³ð˜ k×®ˆ­=»9r$ýôÓOT¥Jjß¾=åÌ™“þùÏÒ¿ÿýoNÇG³fÍhöìÙV8ØMJò+'-ÓÜjÓM“øí·ß. ÞöíÛ °yófºrå Çyò$A¢N§œ={–ËB}ð›b4Zr÷îÝ´aÃ-rAK£Ýgqñññ–F­Œx#¨m3å þÈ‘#䜦è Ò *D|ðÝ~ûíÜø|[¶lI:u¢ÇœÞ|óMzâ‰'hÆŒÜ6` AŸ€à¹fÍÆÈÄÊ{èÐ!Æ ¸Ùe L¬2Àc 9zô(—m/Äcì·mÛF;ÜÁX£}ÀdÓ¦MÌ “¨MÆß”™šk@?y¨…ýúë¯ôç?ÿ™*W®L«V­âÇ*T¨@3f¤åË—s¸\¹rlR|øá‡Gäø'NгÏ>Ko¼ñá™=zX$Γ' 0€Š)BÐ~ï½÷a0Ò¥KG%K–$Ë·]P.@:~ü8ÈÞ°aC6 …{öìI+Vd‚# eC;æÍ›—V¬XA]»v¥?þ˜ûb#äÁ¤¹sçrÙY²dá8hRÄOŸ>Ø< ¦~sÌå"²{÷îtÿý÷ÓË/¿Ìyðñõ×_Ó‚ 8üþûïÓ믿Î8Ž5ŠräÈÁ}5–˜.uëÖåû:ðDúì³Ïø ­Ø¹sg&SBB“ü¥—^¢çž{ŽœyŸ~úiî7L=ý–'É‹Â1žÀX§¬Y³òD=z4×ò±¢”(Q‚ Æã‘>}znûG}Dóï¾ûŽW?£1ñ«V­JÿøÇ?’´ ø®ô&>nZ“›º@@Т˜½h€ß¹s'5hЀ5H™7o“÷í·ß2°X¢QN®\¹h„ r¿~ý¨T©R ŸyÞÔm¿lh½)S¦0¹1æÏŸoeÁäùñÇy i>ÿüsN+P O8\!Î0âjÔ¨‹ENLð½{÷2É9!˜õêÕ£ÚµkÓСC}žÄjÚ´)›FÐÞØŒ1‚5)”&zbb"“êÝwßeÜЖÿüç?læ`BdÐÈμcRöéÓ‡qÂä>|8OÓ¬ÊØë|óÍ7¬ÇOƒ¦qãÆq½³fÍ⬛L™2q½?ÿü3•-[– ÌŒÙ…ñ@0mÚ´¡eË–ñJçlS ñ7í¹™kš‘¼U«V"4nܘIkÂXÂñ³ä†@ bCsÝyçlÚ€ÈÐðC† áÙ¾uëVš*þüœÚ9+VŒêׯÏõ _Á‚y%0ù4õ!ݬ>ÿéObr#¯3Œ8h0ôÇ 0®Å‹çéi)˜¨Ð–Øt‚¨ ˆ Rù(£Õ.\H;µR1&‡3?LžÒ¥KóxÁÌÀʘ9sfZ²d‰•åA-Z”±¨V­•/_ž÷wß}7 Æ ¬zõê¼r`ã Mxc*ÿ-Z𠎉 ÁdtJ ñwæKMø¦ÍS)4/ˆ@ë@0³Af2gÎÖ~ 4=“v*´ø_|ÁiFkp# { ¹ãŽ;|’`ãš2`45:S"Xu°Y„]ŠIl™raw§D`ûîß¿ŸM8hnlÛaƱFÄ„ÑìÍ  ìéÂ… 3Öötû=ìaL˜F²eËfârçÎm’xL±g0‚1Åx‚̬¸“'O6É\‘[ˆ˜+± 3^¸ÀTÂææ´&üØ8_ŠÀÛƒ½ž…é…6}ÙµY(åHž¤3Wï ’–sKÇ`o–Tl°ðbÞ“·ß~›7™¡€ì@V(ÏKžÔ!હ’º&Fþ)l’áyž #O=õŸKÁ‘Ø:uêðæ Ihf¸Ó°éÃql±…&‡9e?e·ÝaÎá $6Šp¯â±¹Äæà°§À{‘Ð’‡€ÌxbðVÎ. /ŽÀ}†ó1ÈèØÿû_ëÌ‹ó@^VáÌ þðæ0x‹@nœÂnTx `òtéÒ…ptB$yÄ\I#¶Ÿ¡YÍ‹+û#ðâ€ìö·°þ;…7œßè·”8ˆ…]8XO^fÁËØð8ô†—E'N4IrM!y2!f4¬?Á™khWcZ O C`þžG|øxÃiØ}ïö³2¡ÃË)¬ö·ƒ°ëaDZt‚ïK$4„ä!à!Ì_³Ã±V˜+xEoÄ~€*”C` 4ΨØ_>ÃMi?ÂÎ’àH,^Ùö2Áü€†7‡Àp³38…¨¦Â[`l8ñf˜?8ü%Ä©ÅvÆ™²äšy㙓 1ð}ô€›ìd åX°Y°Á1Ap-œ‡Ç‚v0Fƒ½ñMžÂA…—Å|['Ø£ö¨=_°Y˜8ö—Cöçä>õˆMžzì’< ‚Ê!°$°D MySQL++ Reference Manual MySQL++: mysqlpp::ReconnectOption Class Reference
MySQL++  3.2.5
mysqlpp::ReconnectOption Class Reference

Enable automatic reconnection to server. More...

#include <options.h>

Inheritance diagram for mysqlpp::ReconnectOption:
Collaboration diagram for mysqlpp::ReconnectOption:

Additional Inherited Members

- Public Types inherited from mysqlpp::DataOption< T >
typedef T ArgType
 Alias for template param.
 
- Public Types inherited from mysqlpp::Option
enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 
- Public Member Functions inherited from mysqlpp::Option
virtual ~Option ()
 Destroy object.
 
virtual Error set (DBDriver *dbd)=0
 Apply option.
 
- Protected Member Functions inherited from mysqlpp::DataOption< T >
 DataOption (const T &arg)
 Construct object.
 
- Protected Attributes inherited from mysqlpp::DataOption< T >
arg_
 The argument value.
 

Detailed Description

Enable automatic reconnection to server.


The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1DBSelectionFailed__inherit__graph.png000644 000765 000024 00000021773 13515046516 031103 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÇ·¦'JsRGB®Îé#µIDATxí]œEò®%眣€$N” žŠˆ¢‚*ž€òû" ê r„EÉÈž+TrÎQr”Lÿë+¯‡Ù·ïm€Ýyov«~¿yo¦»§»úëþª«zæíFc&“Š" "°>ŠÉaSõZP(:‚ (ÁPrÇESRrè$PB .DzÄ'_¿~Ž?ñz¦fÓ¥KG¹sçö-¾%ÇÕ«WiÆ ¾>5(ž5kVª^½ºo»ê[rXÄ«V­J9sæ´—ú!ìÙ³‡Ž9!ÚÜœsÜnzW*@@É‘ Y»xs(9n7½+  äHƒ¬]¼9”7‡›Þ• Prð c[øÄ‰!‡{áÂ…Ô¨Q£ù‘œqòäIº|ù²¨8vìXêÒ¥K$«Qº)9x8fÏžMyóæ¥+W®œcÇŽÑâÅ‹ƒæEzbhÊ”)¢æ¥K—èÂ… ‘®rÄè—êÈqèÐ!š7oárñâEg?~÷îÝ„'ïL¤Ÿþ9èSx¬4¸Ï ʺ‰…üµk×Êý×®]“b(ƒúO:eo“ó8mž9s†æÏŸO7ntÊØä-[¶ŒðüÀ-x–€ºñ¶@ttt }÷îÝKxéúðáÃtîÜ9jÛ¶- <ع}…žsçÎ¥}ûö9éVWäïØ±ƒ–.]*÷;RË ^Y÷£ðž †'[‚ÔçIj6lhÒ§Oo²dÉbøÕóñÇ› ˜4iÒàµ}“6mZ³k×.Ãn”É•+—¤EEE~Ðhøi¯Ó΋/¾hòçÏï\ó+¦sçÎr½eËS±bE¹m*TȬX±Âœ?Þ”+WNò˜Xæ÷ß7eË–5÷ÝwŸa2I_xõ22d0h³L™2†'¦Ô9aÂѺCÏ 8ýFùÚµk‹î¶oÓ¦M“ûxÕòèß»ï¾kºvíjî¹çÉc7ÒÔ«WOúýQ¦wïÞ’}ÑNÓ¦M¥^œ£¿[·n•ü„|°!0+W®LHÑH-³–Å—’Xr|õÕW2àl! »¦G¦hÑ¢†­£™>}ºä±o.XÜ{ヲN:†_O1‹-2ÅŠ‹AL¾8¸õíÛ×̘1C®kÖ¬iªU«f6mÚ$hÒ¤‰)Uª”´³|ùr™l½zõ’‰ ÂmÛ¶Í€,%K–4ûÛßäºuêÔÉlß¾]óꫯšÓ§OK½ 4Ý»w—ö@Ž"EŠLF°Y³f$;{ö¬äƒ Ÿþ¹œ»Éú@ž;wJÞ¸qã KèÃ1‹‹9r^u¤lB>” A)™Ê$–?ýô“Xä'Ÿ|Ò|÷Ýw2‘@ˆ›ì‚H9;Ù‘‰ä^9L0©ae1ùW¯^-Lj#$ dôìÙS¬4,õèÑ£%ÍNFv÷äìʈžï½÷žÜUÒÖ ‹^¹re) rôïßß¹e ˆ EŽâÅ‹›öíÛ;÷á$Ož<¢»ÕgÕªUN>ŒÅóÏ?ï\Çw’Èáûw«x"$HØ ‘#GÊÁn ±kE¯¿þ:õë×/Æý¼RˆŸÎ«‡“Ž÷·"6øè£èÓO?uná•ljQx‚Ñ Aƒ([¶lÔªU+)ƒØÂn—|ã£V­Zr>kÖ,ùnÓ¦|ÛÔi…W&{JìþÈy\ï5!–@¬Ã+œsNØ$l>XA0o%sæÌdã'›–Ò¿S 9xå ¶¶´~ýz Ƈ B¤çž{.ÆçË—O®×­[Gì®È9îMˆØò~ø!µnÝZnÁ$e«OåË—ÒuìØ‘0±±uÜ­[7âÕƒØM’²ÄÙ¢Ë9¯8Ä1.\˜xu ={öì’Ç«a‹ÖÊÁƒí©ϸ`7ÍI <áUKH„`Ü »dÄñ’£7ÒQ.5Kªé=^ooÞ¼¹LLF†‰]ʘ1£L>L‚Í›7Väƒ8kÖ¬‘­©S§Æ˜#“&M"vœ4Ž_ˆ]3*]º4UªT‰†.÷¢>ì!íüë_ÿ"véhüøñ²zð†}óÍ7òZ7ÇôÎ;ï °›Æ1…¥qãÆò¦OŸ>tôèQš3g=üðÃrŸU+"ËBüaÆQ‰%¨J•*’ÍA:q\á<ë°÷ ^v‰ã'É:t¨dµhÑÂÑïø|ÇHÍOlÌ`µnݺâgÊ”I‚Ñ÷ß_ºÇ“N®y6Èb»[…Ø€'Œa«í@Ñ¡Cƒ ØŠ{·ê×_5LiõÁ·‡ÿÀ»díÚµ“Û°{†]&^$ÐFà:qÚrÇ£F2L.§Îúõë;7bì¦a§ ÷b§Œ·|­j¦eË–’Ž`šW*ƒÍ¯hæþûï—<ôõóCBɳ1ÇþýûåØésëäd„8I 1GªÙ­²cˆÀ[Œ˜œnÁŽûÛNÈ„ »5‰~æaØe1üœÄà<¡‚-]^md÷*ðìTaÒÚÝ%›rLœ8Q¶vmÐoóì76ìNœMÃ7vê°†À[ËI))©&æ`«*R¡B{ãn+ØábÝŒÀ]C|“XAŒØ$˜ðV*ñ3‘`Y’†|…úÑÜÄ`ÂÏSˆŸ§ËÒ4F ÕÄ)u´kÔ¨!¯¾¤Ôþ…³_©nå'ØÉÑ6^ŠTItåH\µÖ€€’#‚ñàÁ/%FZ©Vß»UxËÕþ^ÁÏ£xáÂe~b?“FŒxÂÏÝptÇCE¿‹ïÉÁï3ù} Dÿ%KöÑ’%;øw#«(OžÌ)¢Oø»U~ß’¯Tð+×~Æ>†îcÆ|,¯—=š™š5K9ýŠÑIŸ]hÌvòäï´hÑÑdò䄽Çj§x”0Äsæ¬q´Ø´é ¿ uÔ¹Ö“ð! äöNË“'¯— éÓ§åvòô$|(9‡½´|èÐiZµ ¿]Ç;€Ä¿E¿ÆA]+#ÌJŽ0À¬Y?ó«ó1‡aïÞãü‡ö‡Y3m>æ¨(ž#€œ_ŽÑ.\«™3ÕµŠJ.”aÝ6¹cÇQþÕ!'Þ°ép­¦N]+Ýæë·7(9¼Á9h+3f¬f—*mмcÇÎÒ?î š§‰Þ  äðç ­L™²’ûÇ} ,×jútu­qñòZÉá%Ú®¶Ö®ÝÇeðÆIpeÉ)\+ëW¯þñóõ:ùPr$?ÆA[À³ ¬qÉÙ³é‡6ÇUDó’%G2‚ªjþ­6»L«e—*C†´ü×Oþ8@– Ò9Q?\ªMOf|ûâa2ã’¬ÕŸ9s‘^~ùÁmlÝz˜¾øbõêõˆÅffΜÁžê·ÇDá/Nxܦ6ùó7R›6cø¯š¿G™3§RB“ôÐCÔ®];™UÕKºwïîes±Ú +9n¿ývjÑ¢E,¥4Ao¿ývXИ#¬ðk㑌€’#’GGu +JŽ°Â¯G2JŽHÕ-¬„5 kÏÙø /¼@ýë_©eË–‰¼3áŇNsçÎ zÚ ÇÎÞÕ«WéÌ™3”'OÑ«mÛ¶ôÈ#PóæÍƒê™’uåHàh.\¸vîÜ™ÀÒ7Wlݺu´råJ*V¬X¬#gΜ7Wé-Þ5{ölÊ›7/]¹rEjúý÷ßéòåË·X«?n÷Íʱÿ~Ê•+ñÃÂ$úÓŸþD3f¤C‡ÑöíÛ©råÊ’ñâE:|ø0.\Xò1 —.]’rE‹¥ôéÓÊ,[¶Œ ,HwÜqñƒ7g´ÐÔêÔ)ÉË—/Ÿ““#GŽ&ë¹sçhíÚµT¥J™@ȃ•…ŽY²d‘‰ž?~*W®²D`‰qdÊ”I®¡[š4iD/$/^œÆŒ#y'Ož¤Ó§O“íòB>ôÍ‘#‡$c¢£^`±yófésµjÕ¤Nà„¾BvïÞMeÊ”¡>úÈÑéÀ`õêÕÒg`–={v$Ó‰'„P¹sç¦5kÖÈ=À:mÚ´’ï‹< ‡à y—.]Ü4OS³fMÃAž 3QL×®]'Ê<؆Áð0<ÙÌÈ‘#ºy@ Ša"™¡C‡š¬Y³”ç2?ü°¹~ýº”}óÍ7% ÷£þòåË›gŸ}VòÊ–-k $çÐú£N&›a"˜iÓ¦IÞÓO?m*V¬hØ qtmß¾½äáãÅ_4Lçš'éܹ³\³ëfîºë.'/ðdñâÅÒ·=zHÖ’%KäúÝwß•kxÅ2o¼ñ†L6…W$ƒI  /hF×h×ÑÑÑæƒ>0éÒ¥3_ýµáUËðÊ$yìÂKާžzʰËd¶mÛ&¾uëÖÒÞôéÓ¥,¯0rmÉÂÝvÛmæÑG5ÈÃ5ÎyU3¼â9Ð>°F>ú‰kvM¥ž„|„›¾Š9xÀ¨FÄI–x¶DT«V-bë%n–~Êñd—àØ±côÃ?O4YÚá’Œ;–&L˜@lÕ>4êäI+®ÐÿýßÿÉw«V­¨B… R_°Ž;RÉ’%¥l¯^½èøñã´~ýz)zçwO6q—˜\TºtiBÌa"Ê[a2RÓ¦Mí¥¸Wp“[ ÿþÒ&¿¸Ÿ}ö™´Ãä“ ™W!¹FûLbÓ—_~Ip•Ðw¸8U«V%6.ôí·ßÚj©OŸ>”9sfÂ[ ИÅ%¿üò‹¸ZÀ®*ô}å•WèÀâžá^ôûµ×^“üN:IuL¾¸ª¨<ßÄ@ q„ &·Ä läòñǧ—^z‰Ø"ËDÿØcÉ ˜œØ}‚¿}ÿý÷Ë$Ù»w/Ý}÷Ý2ȶÎ%JØÓXߥJ•rÒW@¬ŽIáäÛ¿¹c-w`lŽ=ê” v‚ö ˆ3¬ØñA‚ +6ÆâUÍ&Eü·¯V÷`Æ…,‚el7N:•¦L™"Ä€¥D Ž'XL¡X-V­ZEŸ|ò‰¤îÝ×îa+ìÚÉ)Vˆ;+¬¬Í“·ðI9pà@âxHú÷ý÷ßKm¨·lÙB?É5}Žo¤X=êׯOÈímc÷{mnÙÍŒW_vq¥lHXA`awK¾:^R8?|EŽÄà×jþüù4oÞ<±´¸K?öé11°ÊÀ½À +ŠÉÃ'=š.\¸@£F¢¸\öíiëÖ­âJ 6Œ°Ê`‚I—®”²Bqà/y“&M"ŽäXدw®±Û5gΜX&!tƳè‹-_¬zìËVF쮡=îVN¸ Mš4`, È…ò0VàVá~`Ö¸qcÉfìdÙ•×X1°R .¸“¸;YØ%îVŠîpX$±9O> <†_i¶—p#¨´‚;F¸ª•·ÞzKyìèààI Á$òQ[; ± ƒ€Óä~íOÃÄrva°+Ã[ÃÒ‚hžÒ6OÙ(°÷¡@‡ [y)‹ÀÝ*Üì€#FŒ<~P(÷39 Ç † #×è6p?»v†ãIG M[/62ìΛ È9î’|î¼êvÃä^v¯$@ǽ;vì<ín“Èð²Ü‡v9^16lûºuë&;zrÁL)gu·éq}‡; ‡5‹$–‰U„18€u+ûIJ»ƒÝ«@ÁdØ´i“ìê4jÔÈ!‡»ÈÝ 8ʺäàÛðC3ÃÖÞ!ž»LržcÇ ¤ &ì’É®?ƒp²-9 /&?vþ»OÀ,˜ð*kx¥4ìÒÅ0BÁÊ&6-ÜäðU@ÎÖ+Aw ¯a 0dKë<ñ­S§N¬t$àaš} ´€+±M¨'×låÁ¤«¸'§ˆ­sÛ0‚}¡$p#Á–Ã&Ž`‚@;a)QR$9à3ÃGGÀíÞ1IìVªTIüûÀû°õ ‚< GîA?пÏÉw–ºä¨8¾:L"¨C0«¢CØ~Ó/£SìnU0°5MH JŽÄ •Ìe¯^ýãE27£Õ'%Gò¢Ø!ÿõ¢m#¡$v{-©Êc+—uÔãdÈPÔ*ô?gI§˜¸æE8ßÊ [@Îo‹ÊVkBIœÒËM™²“–,9Ì/ý•çw¼‚ï„¥t ‚õ¿Á®a$:läCg#¶Ék×®óèÍ?”º@ T¢ñãŸX]S‘bº[ ƒ½hÑV!tY°`={1ÔJõ:h@S`êÔU”.ÝCÁ?Jä—o¼éê¥Z”aú‹¯ð«.kùwå7¶qA•ð# äó|ÿý~¥ýŠ£VŽåË·óÎ:iz”áÁÝi«DÚ´1‡!Mš(úúë_2zbŽJxtHµ­ž9s‘¢£7Åp©VÉ“W¦Z\"¥ãJŽ0ŽÄœ9kbüºÎª‚wA×­ÛÏ¿ ?n“ô; (9ºmrêÔŸ˜ö*æ7v¯fÎü%f¢^yŠ€’ÃS¸o4väÈZ±b§¸P7Roœa÷ꫯԵºˆ÷gJï1—p#ðŽKví:J›6Åü‹(q•×¼¤E@É‘´x&¸¶É“"¼6ŸÌ˜ñÇŸ»‰¯œæ'=)òg²ISÒÖxâÄyþ3AiùOùs*>þÿë“üûï‚1V¤©„}ñ0<¸Çjuþüü÷µÆÐŽïñŸåL+_¡ý½ér+W®¤Ë—/S©R¥¨D‰tòäI6laÐ1Ñ ‡¦Ÿ~ú‰Ê—//GñâÅiÆ ôúë¯ÓÏ?ÿ,e0 @yóæ¥öíÛSÍš5iÚ´iô÷¿ÿÎ;'eâúHŠþ‚Ä>ú(]½zUšºxñ"]¹r%®f”·sçNÚ¸q#åÏŸ?Öa H¨ŠÐþ¥K—$ûVú¸gÏÂýI!·¼r`œ8qBÀ8rä]¸pJ—.Mׯ_'(Šü2eʈuýí·ß(sæÌŽÅB°¿Œ´lÙ²I¶nÝ*…:nõbbaÂe̘‘°?hi1IaÝ3eÊ$«I®\¹¤<êøgÏž%Xü½{÷ÊD,[¶,¥OŸ^šÀ}Ð×iÒ¤‘zÜ×(„‰Ü²eK)á7ÞU ]»vNúsÏ=眃0mÚ´¡¥K—RµjÕhòäÉ‚ÇÀ2wÞy§XL «Ö}÷îÝò üÒ¦Më”<îÀ˜eÍš5F6ÚÇ8T¨PræÌ)}±!È+R¤ˆleÂÚZÖ[¶l‘ËråÊQ–,YäÜŽ5VC¬z÷Ûo¿=Æ8_ƒP‚y±}ûvé °†4lØxàP·Q\}<}ú´ôõ%¥Ü29ÐÑ—^z‰î¾ûnúõ×_E·Ê•+ËÒ¶zõj¹†û+ûöÛo I>üðCIÇòÉ'é•W^!ÜÓ«W/BGaÉð@æƒ>+‡4½{÷ %‚ þÍ7ßÄÀõ‚\| 0,c£Fdÿøãôæ›oR•*Uĺ!+À?þñ!6,{÷îÝièСҗÀë ýï¢zõꄉòý÷ß“›î²èÚºí¶Û$ùÌ™32)1¹¬›rèåCÑGLLj¬6ÀÑ- <ô‡ò€à ¦u)ðÔ÷óÏ?ÂC<Ømܸ1YüÛ¶mK_|ñ…ó±Ç£§žzŠÖ®]K}ûö•1AA \W­ZU&5ƺvíÚ´|ùr1€ÐmĈT¬X1·jAÏQ7Æc!Ñoÿßÿþ·<Œ=ztŒ{ÚGÜ]á*b.&…$™[‹?à­[·N,5¬$K-¬`ýúõ|k¹/^̯JD‰Åøì³Ïd’Â÷D=°@_ýµL¬ÁƒókeéË/¿$”³÷ ñÇÿû_!«m¤ûÏþ#“õã?–,¬B ª]¯íýߘ4°À˜HV0™ptëÖM‡Õî/ù‹d?þøãâ><ýôÓÔ¡C9r¤L´J•*V:ú‹ÕñÓO?¥¹sçRÅŠ۸c”›1cÍ›7° ¡¿x˜5fÌÚ¼y³à b‹o¿ýV Ï?ü $zë­·p»Ücû‹kLÄAƒt™={6a,@\¤aÕ°‚óY³f ÉpÏ¢E‹l?~\ôNöX°`äC7Ô‡ØuÃ`@Ǹ$®>wÜR£N¸©HK*I2r´nÝZ¬}5D7X(øžöJ׫WO,!HÁ`Ý{ï½b‹-*K9€“¦cÇŽ´mÛ6épÓ¦M©`Á‚„rX B Gp ‹‹r°ÎXy¬ÀZbâÙzìj‡kLV;Y¯íýß°ö°€ ¹XQ°ˆ˜ØX @Hs hçÎ;qŸyæ:vì˜ôÆîVP¸D¸øúÒìáö€ðp9áâÀ¥D|ƒ€w…€°&0TˆuB °†{Ö¤IYáábbE^0:V°:Á ¾ë®»¤°Yb$à:¹‹ <Üû÷ï'ÌÄX¨;.‰«þÑßgŸ}–rçÎM0<¯€ÄUu¼y·ìVÙ`é!Ö7Æä‚X``õ°cÐ.\(K<&& rÁÁªñÉ'ŸÈÄAž]%Ü.HJàC»ÖØÖt;ùqŽ<´y+·«šõQ× /¼£J}êÔ©Ô¬Y3‰…°CÕ¼ys9`yaY±Z Œ5&X5A+t·õF:&2\L:+˜´Ày®Á*Là×C@8+–LÀÉÆ€˜ˆV`h@+p3á:Œ;\=¸WÛ`å‘W1gÙ¸åa ’J’lå°$ˆO1¸Vè,)À†ÿ Yµj•®XFáwbÕÁ2l˵øë¡Äm‰`ya Ý„p×÷/.¢…jæÚ/Y²$V,`óí7\Nl`rÃõÁÄ·‚E0ŠºYË÷òË/‹¡€±€ëשS'gsÁÞ‹²XUPÆp£[7X{;qÑ6âhÛ:ÜßÖÀa²‚âÆ0¡cmëÀ7 ˆ]2ôÔ¨Q²Ià.ì<®>"¾ÀÊjûˆûãê_°úãJK2rÄÕˆ;ûéX Ç'ƒhwIà[>\v¯à¡ã(K€g„ ² ÃR»'—»nœc0á‡ÃÒa0ˆZkŒ|´‹å.6 °ÁDúç?ÿɯÿá"^£ ÜêØ¥‚pÃ@.ÄnAØxÿý÷iÒ¤Ib@¸‘X!àöÀêÃ…Ä5ø$AÿáC£¯ÐÏ!@·…D{À}€EF¬6úW§NÙÀ ÝøñãÅ•h·UQ·;ŽÁŠ‚ÀíÛµk—Ôƒ~bkÚzî~&ö“¤E›ØNŸ¸$®>°b‡ÆFqâĉ1¼„¸êMH^’¹Uñ5f­ Ȉ@Ь`‡;2Ø*ÅàaÐb¢gÏž’÷È#ˆË€mI ž[7®áVa’ÃRÃÅ€‹ƒ‚ÉzàÁŃ¿ Á–2V­ºuëÊD¼F‘8 İ¿°z@o+(‡Õ1;bp¡¬;‰4èŒXÈâ7©OŸ>Ž{†UoI[×Ͷƒ¶á"!ò<ÿüóÎJ†4õ˜4 6K°ZÃE…K‰Ø»U¶>#`Ý¿ n‘ŽûÜÛÎÒëeìýHvŸ»Š )Z´h!»Rp›á~!žáñqŸíŸ»žøúˆùòÕW_É9ˆ‡8(”n}rò÷ÑÑÑ ¹ÿ¦ÊÀ‡Åƒw |P<톟‹Aq ÜXn¤ÃR‚[¹DXcìÆ`¹Å.‘µ¶ ¬*Vø±˜$Öes·ãÕ9ÈwðàA!&  ôßð«m,X׈`9Ñ_KT[x`åŒ?€'ò°* ò@:`„Ã=iË&ö+v ¡++'â´—ÄÕGôÏ\ðœÃ®ŠqÕåγ¯¬c<¬Kû¿üпçpWTç°Úp7àBÁ§Llõ¬8ØýIˆ L¨P´‡*—œé D0RØ6ãëƒ-‡oXaÁ“.(<­KxÒÝAy`þ­\ƒŒnBÚíëøêŒ«0¦vã ¾z“ï™[¥ÀNìc©lРAbôŒQ€Âµ Lû B`Ûª*Š@B‹[•På´œ"ÜÄåVy¾[•ÜÕú¤B@É‘THj=)%GŠRíPR!2 ·{çIÕÖ£D"ØJ%±Èýg<¬QQRØ"ƶ5žµJ¬ÝªÀz­¤R¢5æH¥#¯ÝŽ%Güi‰TŠ€’#•¼v;~”ñc¤%R)ÿ$(ËíüïAIEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1ResultBase__coll__graph.png000644 000765 000024 00000116377 13515046516 027210 0ustar00tangentstaff000000 000000 ‰PNG  IHDRLÓ²E“¼sRGB®Îé@IDATxì¼UUöÇ""¢¢&Š*"v`cñ·kœ²»;ѱ[;QTBPQQiDiö}×c_Î;ïÞûî+^­õùœ{Oì³ãwjÿöŠÝ „ð¸¸8Ž€#à8Ž€#à8Ž€#à”@ ¦Pb¯ïpGÀpGÀpGÀ†Ž#à8Ž€#à8Ž€#à8Ž@vœ0eÇÅ÷:Ž€#à8Ž€#à8Ž€#à&¿GÀpGÀpGÀÈ…@ã\|¿#à8Ž€# !C†È?üë°ïwêMš4‘}öÙ§^´ÕéÔg<èC}¾úÞvGÀpʉ@¿~ýäñÇ=Èj9áóÓêË,³ŒÌœ9³Ž´Æ›á8¹p¦\Èø~GÀp¼ì¿ÿþB U_ƒúxÜ}÷ÝyŸ?è8u'LuçZzKGÀpGÀpG ’pÂTÉ€zvŽ€#à8Ž€#à8Ž€#PwpÂTw®¥·ÄpGÀpGÀp*'L• ¨gç8Ž€#à8Ž€#à8u'LuçZzKGÀpGÀpG ’pÂTÉ€zvŽ€#à85c=V{ì±¥R1¢§íºë®²âŠ+ÊÚk¯-ûí·Ÿ¼ùæ›—ýÇÈo¿ýfé¿úê+Ùm·ÝdâĉŸ_ž„I|þûßÿZ™”›^ú÷ï_žì+|Nu`RáJ{Ž€#PgpÂTg.¥7ÄpG ï¼óŽŒ7.×áJÛê©§ ä£qãÆrÁÈ 'œ ß}÷ì¼óÎrë­·TÎ_ÿúW9ì°Ã,íÂ… eÖ¬Y²hÑ¢‚Î-o¢$>£G–?üPV[mµ˲Ë.[Þ"*t^u`R¡ ûÉŽ€#P§h\§ZãqGÀ¨‘L:Uèü/¿üò2lØ0YsÍ5Mƒæ`ĈÒ¡CYk­µdΜ9òË/¿È*«¬"Íš5³¶Ì;W~þùgYuÕU¥I“&–æý÷ß—•VZIºté" 4È´ùÇ–îÝ»ËôéÓíXûöí3ÇYùõ×_…Ž?DdÔ¨Q²ÑFY½8Æ$¤Ì)Ô²eK# +¬°‚tîÜ™C& ,–æÍ›—Ø~ã7íÌyç'_|ñâ3DN;í4éÛ·¯œ}öÙÂÜUË-·œL›6ÍêÿÅ_X=7Ûl3iÚ´©L™2E~ÿýw™={¶üôÓOVöOúh;ÆÏqÇ”¼dÝîׯ_Xy啃–Ìñ¸¢ÂòºãŽ;³Ï>kë½zõÊ”A™´L”ŒØñ­¶Ú* 2ÄÖ¿ýö[Ëꢋ.2|¨éh‡’,;¾;í´SP¢im£îwÞyg¬Bø×¿þeåEìþô§?%±v<‰jÈ‚’™Ìyé•3Î8Ãò:t¨b[ dP"&Ožlu¢lê±Ì2Ë„{ï½×Ò}ùå—†-ÇTgXÑ>¤:0ùä“O‚÷кukÃR5ja̘1VŸB~ÔôÒÚWHZOã8µ7ÉÓ7·‹#à8Ž@Õ# „@´smžwÜÑLÔ” ÈŒ3D ˜i40Ûn»íäÉ'ŸÌT éýG{sÉ%—Ø9ƒ ’—^zIÐ6iÇÛö_xá…¦ÙPÂ%øÿä% òÍ7ߘv#%B¦q"½všåæ›o6-vö…eÀ€–Õ.»ìb£˜or›òКDÍXLÃÿ†nhû“fhhЂ;Ö4Kÿüç?…ztÐA²÷Þ{Ë|ÌBlf~÷Üs¥§¼¯¿þZÎ=÷ÜL:4;¤k%d¢ÍŽM˜0A®¸â ùÏþcš%/òÑGÉ3Ï<“97¹B=ÿò—¿”XÐÀ)ñ4Í×1Ç#o¿ý¶ÜxãrÕUW‰’>QBgø!Ú²½öÚKþþ÷¿›ÖîÈ#”-ZØqòéÑ£‡|ðÁv,–½41á>B“Æý‡Ö ¥’óXÿwG ƒ€¦ ¾â8Ž€#P•`†‡æe"ˆ…jžD5¢šÄ tÔ!C˜Î©ÆÂ:åªù138:Ô†ÿýïfV†IŸjbD5DfFéÀœîC‘õ×_?gsð-¢>¤ý÷¿ÿmûO?ýÔÒwëÖÍ:òªÕPI§N„¤’ÜÆÜM5[ñP±æhäåüóÏ7±Î:ëX9|¹Á”ðð÷dœ·Ï>û¦€QTf战ëpÀF¨8æ˜Âí¾ûî†-D“º@¤² ¦˜¦ÒbŽøÀæ„\·vØAN9åËF5Eòç?ÿÙ°‡àªÖP®¹æ#…@‚HpÍ TøuqÍ!oQ–&&˜,bžÙ›4i’Têêâ8Ž@÷aJ#âÛŽ€#à8U‚ø(E ŠœšlÙ.|bÔ`ÃÖñó9餓LûA§žú¾ûîk¾0% ð{Ùf›mäå—_–ï¿ÿÞüyèàGYc5âj‰ü¥¢Dÿ AJ Çã±äþô:ð\Z-H >\¤‰’¬XÐiÏ'±IÒ¦Ê(äm$ ÛÓO?]^yå 䀯‹kKм YË%›o¾¹á áàZpýLKú|á›vÄGd'œûï¿?“-E|®¢,ML"QV3OQsEÓ6=ôÐC²í¶ÛÆêø¿#à8†À’¡.ÄpGÀ¨BèT"hQ’€Yæx%õ3±`˜ŠA€V‰;a¼1§"0DR’æoÉý¬P! &l'$y,¥ˆÇ,AŽŸ>}úX LÓò /ñCÃ%YÎ{ï½—)?Oÿ«” ‹Ä’ã1€FL› ã|P^}õUÓ.a®‡‰a®´1¯|ÿ„ l‚Güío³`¹¨ÉŠçªŸ“™;r}L)Ÿ…ó¯½öZQ_³˜¼öUÉk¯½f挄l§.7ˆ“‹#à8iœ0¥ñmGÀpjG³<´2¯¿þz&Ä6Ú#´D¢ƒ4lºé¦¦u .šôá³C„9Bxã”K¢´QDICèDÉ‹uOÿƒ§úŸ5µ JÚ¬,"’NÉ•EìÛ~ûím›zªy[P3EKG¤@5wÌäMT?õk²cÕ‰úÉYäFêÉ=¡„9SŸ ˆyV%=Qm‰ ïÀWŠ%›@VèЗWÈ—I[K“t€‰˜žÉmsI’ðäJ“k2 i ñÍÊ•W¾ýqRÛtšBp]š˜PŸž={¦«éÛŽ€#àCÀ S18|ÃpG ºÀŸ_‚:¤5e©>3ÙÂ|†OÏ=7Â|ž KÌóyÚn»õL-¥ªx1Ž€#P N˜JÈ;Ž€#à8Ž€#P•0âùçGyúè£o¥mÛ–¦|ï½7•ž=×1¨ª,ßóvü8aÊuGÀpG`©!0aÂt0`„‘§Q£~Wl#§}÷ÝL6Ùd¥V/Èp– à„i ¾æ8Ž€#à8Ž@A`ܸIFœž~z˜|óͯ²ÖZ+qÚo¿îÒ©Ó 5¦ž^G ®#à„©®_aoŸ#à8Ž€#àÔzÐ6=ýôp#P'Î6Z]öß¿»iŸÐB¹8Ž@Õ!à„©ê°õœGÀpGÀ¨TB2xð×Jž†É‹/Ž’Y³æÊÖ[¯#°¹ù=ùO• ·gæN˜üFpGÀpG "0oÞByýõÏä©§>–7Þc‘õvÙ¥›’§-¤W¯Î6çS-l–WÙ¨q8aªq—Ä+ä8Ž@í@ }ûö2eÊ”ÚQY¯¥#P|ôÑG²ùæ›WAÎeÏ’9žˆ´÷ÔSÃäÃÇÉ +,£!Ê7S³½ÍÕ|oµ²gèg8Ž@'L(|ÅpG ,@˜öÝw_ÙyçËrš§uj=¿þú«œ|òÉR“SÔ￟bÄ Í#Ö]w%Ó:áóÔ¡CÛdR_wpÂTHžÄpG $¦K.¹Dþïÿþ¯äAßãÔa¾ûî;X·V%LIèGŒø^ž|òc 1\¦OŸmþN¸…ù;µhÑ4™Ô×G  sì÷ÝŽ€#à8Ž€#à8µM7]C.»l?9òb¹ë®#¥uëfr晪™ÞùrúéÈûï]Ë[èÕwªÆU_„—à8Ž€#à8Ž€#P4nÜPvÛmC[¦Ný]ž}v¸<ñÄÇjªw‹¬¶Úræëtà=TsÖ¾:«ée;5'L5ò²x¥GÀpGÀ¨Úµk%G½­-cÇNTâô‘<þøGrã¯I¤_¿²×^›ˆ‡(¯ü=×Ú‡€›äÕ¾kæ5vGÀpG R Ä¿þµ§|üñùòðÃÇË*«,«ÛOÊÆŸ/§žú°Îù4¶RÊñLÚŒ€k˜jóÕóº;Ž€#à„Nú§¸çž{4JX‡‚Î)O¢;î¸CMž-vjëÖ­eË-·´¨jÍ›7/v,ÛÆ?ü ×\sŒ=ZÞzë-KòñÇ[€áÇËܹseýõ××Ní¿d×]wÍ–E¥î›6mšjZIÓ¦epÑE mþûßÿ.ÿýïu¢Õ‹ÕíOú“rÈ!²Î:ëÛŸmƒk÷É'ŸÈM7Ý”íp±}©s±ŒêÑFƒ ¤wïõm™9sŽ™ì=úèPùóŸoU“½vB 4O«¯Þ®¡âMuŠp “ß Ž€#à8u3fÈË/¿,üñG•¶õ³Ï>S'ú÷¥k×®™…Žè9眣&N{TöwÞ)=ôvØa–þ¹çž“m¶ÙF&L˜`ùœyæ™2þ|õEÙM{챂ò¬H¢W\QM¶ž(WŸþ¹|ùå—v.pèС\Ö\sMyðÁe½õÖHbiQœ={viÉìxEê\Pu­¶ºÔ|žž~z˜Ì™3¿Ž£àÍs– à¦%Xøš#à8Ž@"ðã?JÛ¶m%„`Ú“îÝ»K³fÍä矖¯¿þZ6ÜpC;Îd¸›ÕW_=S›©S§ZgyÕUWµ}œ9˜¬²Ê*™t‹-’O?ýÔ´!haÐ,¥5JóæÍ4+­´’|ñÅjyºl¶Ùf sì,»ì²2kÖ,5j”FÛH–_~ùL ,–¨-¢#ß°aCiÒ¤‰¥Yn¹åäÚk¯Í¤g-Ê£>jýƼfΜiu¥M„2Ço$¢oß¾Ú)#§œrŠú•ô×_=SÇ¿ýío²é¦›š–©_¿~vnl;8ƒeÄöþôÓO²ÆkX=IÌv‹-„º‚-Œu48´«K—.Ò¨Q#ùþûïízýòË/V7´e‡z‚M›6ml_ü™êFW^ye&ßÿûßvŒ<¸ž:WQ8ê¨£ìø±ÇT›”IËŠã „(€2hÐ +SMƒ7ÃùÍ7ß´cÔsóÍ7ϬZgNÈ…7Çh÷î»ï(Sµ€ì*U”XY;uâÚRÓÖÅ“'ÿn¿ý­°ÝvW†UV9=l¿ýUú¾¦L™U›ëmr‚›äé[ÝÅpG`é À¾vàS-´4J¸ä½÷Þ“‰'šF³ƒ:H0c{úé§­R“&M’·ß~[þò—¿èœOÊ+¯¼"ãÆ3mÍYg%øÉè÷Ü||ÆŒcš´ :uÊÛ(4;h—”DY^ÿüç?3é©ç7ß|cÇñR’d(a“ÓN;-“öÔSO•vÚ)³†äñÇ·­Ò?þñ¹í¶Ûäàƒ6m ùsÌ1¢BÐÆPg4;—^z©\wÝurüñÇ[Ôº!hrÒ²öÚk«©T_à ÀMÚ—»ï¾Ûò‹>PésÓÛÔ/LÞ.¸àyõÕWM;ÇuQR*<ð€™Þ|óÍàaQ¢fio¿ývkŸÓ8]vÙeæ¯ÄyLjL’òûï¿›¾L˜ã¡yûí·ßìM˜’1Á¯ f”J€Í4-^Z ­s>¼cžhï.¾øbÁÒ¥t–_¾µÞ§½õ¹ü» x†l¾yGÕ¾¬ZÏ ô¾îoš(žIG ® à„©®\Io‡#à8µHj~DµB‡_5+Ö)ÆTk‹-¶°N:¦rÈòÌ3ÏX§ý€0™Â$íÝwß•óÏ?ßHûT dDCµQ¤€ ù„s1K#à€jAŒ”Åô'œp‚™É©KTkb„ S?d¿ýö³}1í…^(ûì³OÜ´Îþgœ¡fKgèÄ §[äB8‚ƒù!$"˜Ìì òÜsÏ=uµ,9íi×®¼ñÆ…œn¸R_Ì !NH$kÉ yä3_„lBò0 ÄLÿ°î®'D2šPÆ<0<ðÀmcHÞå—_n÷Ĉ#ìú³ŸzdsDLæ0ÝK „¸:‚÷þûﯓ¹žifšér|;?LŒ{õÕÚĸ×]w>+³äÐCïP3ÒKäúë_QóÏéù3ð£Ž@-@À}˜jÁEò*:Ž€#PWHúÑ)Vs¨LÓ =qTúÐC•#eEISó;ÛoS!‚ïÐwê; >Aj"gDß$uˆéV[mµ¸šù' ™J§W3=Ó$Ýwß}Övü°’²òÊ+›+¹/®§ƒ_Ðþ(Ñ7KÍã®Ì?uGƒ¶÷Þ{göá—Æµ{[µ€hÂ’Ñô6Ùd“L:VhO6òÃ1ü¥ü–¢ÄûM\ZÊRgÎMã—ÄŸ/—Š!ТE ±¹-ãÆMRMäéß°’¦W5òÞzJ¢þ¤$]U“ìcõCÚÏ®ü®­Ô½LGÀpê)t¬ ‘}÷ÝׂÜu×]Ö]L¿èÜ¢í!pú f`h.Ú·o/'ˆ‚Ù^>áü(˜ÆÀ ìKÍÈíÀ·‹2!Y,˜ÍQgLÒòÄt³DÌýn¸áÛ‘‰Z<ö¡!"Äy$O–¨”4Oò%4:åb.I4CÈ*ä“CŽ'x@85„ù¦•’}æ0š%È yBˆÉ )L51ß,‹$ë\¼ËR†§-ÆÊî»o¤aò×òçš–éÉ'?V3ÜËTÛz›<÷ܽ¯Jj2KÏÙS8K7É[ºx{iŽ€#àÔ[Ò¶Óû’ààïÄ|DüÓFð1/¦c„ƒF3ƒy“½âwÃYk¤»LvÙÊÁˆPÚ.¾7QýÚü­ I1LÏÐá{ƒ ƒáÛÓÄ|â4냜á_DðÈŽF´$hmÜ€hD:û?À¬pÜW\q…íÆ<ñÞ{ï•í·ßÞ¶ÙF 2ÉùàEƒ8!,A&("¸í¶ÛF±®ü§ËŒeó‚Ü¡#0„"†p ¢Û˜Gr¨+£í¶Û®&ùÊAS¦Ñì,èZDÒâ§Ä°€˜y1§RRðƒD •HvÂù¤ana è 0g‹*ò Žöй‡ð›!MÒmUÿþýud|w›#*]v²Y'’m£ì¤ÏT®<ñ;‚¡}ƒ%ÛÍ9´MšÈ-’‚Fˆ6GÓ·ä±ÒÖ‰zž‘¸bЇÏ>IΤ0G¦‘ט>y¼´uæžB‹ÆuÉÖÎÒÎÇÓu.+Þ1Ÿlÿø¨qÍ0ůΥ|üúëLŒøÐü¾ÿ~Šj×2-åâåâÔœ0Õ”+áõpjtèßsÏ=%&­Ìêã‘Ígƒ2CMT2‚0šžO­:t¨.gKÇè<£át.‰’…³þwÜQlDœ²˜À³4ó®lù×õ}UI˜Ð"¡AÁÿ'×½P¾øñ”F˜Ð.¥%&€»8Ùp” •Ší{÷ݯTë4D#.ŽVÛÆª±ínä©[·¢Éª+–»ŸíT ’_ŠŠåçg;Ž@F€yQœŽ°UÙM=z´ ]ˆf?Éü±¦|ü)JFãßÿýœÉ˜FÝiBxgL¦¢àtž­SûÕ €ß¾+„ô.¯@t¹žø@%s;B›cŠ•M8FGÀXzl»mg5í¬þ‡¿«_áG¦uºÿþÁº~MŸ«§š†nêZ§¥w9¼¤N˜R€ø¦#P“ #Ÿ4iÁQs4!˜á7­?Î䘰pÇtÎÁübAÚ(8Â31eœ…¼ðGèÚµ«9[Çtä‡Ó5> ˜#1šJt¬¤@XpôÆñó(Ì€kC ‚? êHÔ+ê•ì„RWLŠbûÒÛ˜ á’Mp¡9Ž=íçã76P¶ó0YÂÇ…Žrt„O¦CÚ+´'¹„ˆl˜}a†ßR–kó-­ÞÇÏ\S̰Ғ¾?ÒÇkóöÈ‘#+\}î‘l„ÿ'y.H*L>»ãŽ;J¿~ý =¥ÌéJÓ¸¾ùæ›6'ÒM7Ý”7ïÒ4ÄøP>?„@g°nÒ\ÿ­«®ºJ^xá…œÏYÞJøAG Úµke“â21îСãtÒäÁzO>¡S<«>Œ[hxøžîëT †~¸ò(îYZùù{ŽŽ€#PFèxã`N' Gë¤Ð‰¤ó‚ƒ8ÎÐ^½zÉ®»îjÄ [zœ¬éH?øàƒÒ±cÇbQªp˜ÇBÄ9„f>櫉ä„S8Ä"Å=e¦'À$¢Wtê&-é˜s2@Ô˜@BµË.»XÉHbDÃbRÏ(éí¸?Û?“e⼎É ¨sð0· fxi,Ÿ‹Î;뤊=2sþÄ´Dç‚ÄœuÖYqW±L¼(ƒ¶y BH$0¤,׆ôùê ÁäÚq-©3¤5ÛÜ5´›I>˺™²]*ÈUiáË+ZZÔ¸ro§xg0Rš”¦!fЭ,òᇚ֕°íIa m¬»?'QñõªB`Ë-;é»þ0 O~ê©;j„ÆÏõ½x¥šëݬQ!‡{„½ªÞó-€¦øG z@ÓCÔ,´?D´B£sÐAe­ ‘Áp¸&Lð»ï¾k&ˆÊÃ?l#çt|8MJ$)˜ž1: a"$0aÒÑCA`t™NNü8¢:'iˆY>¡¾h—ÐÜQ´¢ …aîŽCÐŽ;î8Ó8qüÔSO5âÓ¦·Ñ~Q×ä‘L “›âÜN©/Dß“t‡Ò€¾¨eKæ挞?ðÀòÖ[o%ÙúÝwßmí$:Ÿ,"„A¤¢rmH›¯Þ\Hep]!hÕÒÖt¦1]‹$¬ëª0ðA‹I´I„û‡g#âÁ½I ‚¤@¢yŽ¢p÷=ÿIa€I+ššl&¡hU)Ÿ²¸øÂ½Éõ¤ „D‡0'¢N°ƒ(ä“loÔ¸2°‘\ PGqD†¸Çói+sKQn>aBX4™ÙÚƒÿäèñÇÏ—…ÝÿÇäÜUœP赉™ƒ8SŸl“ææº>Éóãºÿ×-Ð:xb}Æÿ-8S/ö+‘°sT[9äL‘Úiµt´ LÀMC>íÛuP-TÐlPMRЈjvžv.ƒÀ ä6¨IR8üðÃí<í(†²\›Òê Žj”ŒæÚ™ ,¹D;òACO%AÉcP’”,äJ^iûÕÄ2¨ÉV¥å—+#Õ†¿þõ¯A5j%’p/ðüp¿q Õ_)œyæ™v³­6|òÉ'AÃw5 ½-“‡j@CïÞ½ƒv΃jAƒjkì¾SŸµ !¹-’ªÐ³gOË›óÕ¿ÉÖ¹o5í´ëÄ:uàVß©L^:/‡Â¡‡4«K/½4Ó>î½8ðÁó!t%—GyÄÒ' Ï ÷ú€´ã¸À`(—{7I˜¨#ûi+85Ûi¤Ý¦ÓÊJ&Õ 1SH ¤‡²Uƒmi ½6$†h©d`F}/ƒÎ£d÷0× ßõ±‚ÿ0` ƒêƒhÄ™{¢*Ä SU Z¾<.\^yåS}6îÐçö̰É&„«¯~)L˜0­|úYŽ@Ü$O¿.Ž@u!€Ï*jÇÂü|ðM¬®4„ôü+¹ê¿ï¾ûš7&<˜ãvØa–”¹CA`ÌhðSÀ¼ ‚0‡J”Òü3’f8˜)¡ˆ§3ÑÁ IÏ$,çJ DÁ䟘 ±h§É&ÍÄW)ŠvâÌßóµ(ùü~3Îd¡ø'EŸÎÃó?̘0¡<ûì³cv™ÿB®MiõVòle1 íÁìJ;ý™2Ò+˜bÆG›µÃls ÝvÛmédµbÓ.%f2Éä§L@й'æuìÏ&˜mÙŽ f×^{mÙyçmþ&æ7Â\QÉ™5ò|aŽŠ(±è‡„¦ÇìóU~P¾ƒLjË>%2ölâGà|×|ñ)ã'ˆjpÌ,ç a^"ÌE¹GˆÄH¹1À“Þ’> áì™+* æj˜&—l÷š’( ¾‚É©jÖÌT“`&1 dÌoàÀÖ&ë'Lb9'-ø7ron?íÈd¼˜ÿ2_•zÁ¯‘:%Í ¹6\‚p0Wj0yå*)±ç/ßõIÖ— 3LtŒéž’O3ÑäY&ÈGÿþý3æšÉs|½ö#аa½_ºªßîq2dȹjŽÞC×ßWÓKÔôù›$Wû¿µ¿¡Þ‚jEÀ SµÂï…×wèTtÒI0€Î:\@àŸÎHE„.:€„VŽ“wÒÙ§£‰Á?†ˆq 柡£Â8¤ÁÇ£´ù‡È?5g3ÿ‚!D!0¾t Mç‹@ˆŽlgü«²m[¢R~À‹ÀD£sˆ þäM[’BÇ› KéPÒ‹Á’i’ëtŒ;jà:ëQè¬B(q´g?2$ékÓæû/­ÞÌsEK‡Oµ™h|É|Á@PæœÂGŒs ڨюF˜_9Y‹jlÐòÂuc&/Í'¾M×=)Ç’û³­3¨Â`Jr!ˆKZT#dí ˜ Ï?Ï>8$…žEÕ¤fv3€“MN9å#aǼE‰iÀ‡À-<' ÆàÉ{$)…\êŒà§ë þ àוëú$ËI®sM©+$L5Èöþ &L’ékÓ:ïdRð9cà‹6©v¯XxOá†?ëQ8—{Ÿ}œï=H*ßž·´äó…ãÚ¡‘oE|ÆÒç/ííÕV[Nßÿ»ë@Ó…rÛm‡+Ÿ§~°wê3|©ÜtÓë:€1kiWÉË«#8aª#Ò›Qû SÀ(.££×_½5)WÃ’#ÏŒðòAåŸÎ$BG m#¯*H£ÈŒ43‘+;FÃé¨ó‘’ît±Ÿ‘x5{:ºê"ŒXGá|:üh³px'hCÌ­W2ò^z;Ù†˜_üy¨I•(£ñ¡³‡†7åÄócZ:`h¨'íã8#ïI‰ç°Â¥~,™ú²"ÄžÎ&, œ–B…2J«7Ú-5)4M?4HåH A@§…zQ?êSf™üÈè E>>Iä=í„¿ÑGäÅ U ³²È£Ú¡þìŠ2gYÞÎfôŠ+®°ëIP H`>‰×8_Ž-mkZ«šÔÆÒI׸´z—å8ÚKîǨq埅ôœf<›hr’ê\ZWîWžOž-´¹QˆÄ©>¦]¢5,ö¼®kSšÆ5—Fœ2³ Ø2€ þ›¢>XFèÀ€Á•Ú.X0á6ïg5c´÷¾HXÐòW¿; €£æÞFœh7ç2ïA‚ã@f°ƒäó-à½Èû1øÄ8’q¢p0xÄ3E]|ˆuˆiªó¿qã†Étc Xòüä_zl¤ß×·µýÉ)§<¤‘E¿«ÎêyÙµ½Á]G †"ô*o5r¶æÎ|ð?HŠv¢,¸þ8ømp~trébÐüf„€DRðÒÑps§œªê £©AGUÍ'WY´“ ø~•W(‹ Ñ©\;g¦òH¾zsL;Üyëš¹?æN aŠ™00„q÷‡0æÚFü=„!Ç„ðÎ^!Œ½=õÆÞ ]Bx­Wïî‡'„0ê<õÄ¿1„ïaFöë§îŒOPþÊ~T,Xj—,XAb…dnøÉèCfÁ4êcf›ó |—ðq‰4T£”h5)µg)ÝàžVÍIШÝ7øUiǰØóöaÒ¦ùòèÈ¿ˆ`›ç‰r•<5 Á7ŠçŠçÁI p¬f8çœs2í-ͧ/é䃸‚&”ƒ_åàã•ôaâyf¿š•ª¯Ç„ Õ¶Ó>L™ éŠjý, çq‚Xt„À)Ô™cjJi§zmðµÂŸR;ñVGÞ¬QÓF»ù®O²~`ý½ðùR-“¸I¦©¬uÕÆX[•Ì•)ËéßÍ cN ³&æâ’/C®5sÏsÿ^ ¾nlÇwAGðÿÒé!ìEÀ‚w ñ\üÕðáSmª«æŸhˆtÜÏH>_8|,ñŒÏþ•:dÏ\CfÏž§ÏÙP ðr]Xe•Ó5@È5ú<~ >så»5´™^­*B ¸î\Ÿ:GÀ¨9¤ÍÊÊZ3Lë±Ç¹|Ò’miŽæCÉÙéóãvL·“ÿhHXªR0B‹Uš Ý©è(3eE³BÊ牥ûC&Žš%“¿øCÌ.2‘;x`ÑýTžúq1¢Á8LûÌ=Ц­˜±ÿ)æÒÉ{ÿ:Ì}®&ªJ¤LkŽf2NC‘ÏŽk„¿x£eâ<´zisL+¤ý4oÞÄü›ðq>|¼ôï?XýŸÒg}€N<½¥jÔ¶V õÝéâdAÀ SP|—#PW ã€Ó{Ò™¼¬m£3C§?ˆ¤Ð1¤–­D:Ž‘¦^Ë¢y"J|LZtÈ Å÷O¨9œžy:oÏ¢âþÒTÉæÚÇf%L™ ×.QèXÓqÄŽùœ0[ŠLL™ß ’€I+¦IISÎdPòƒ„`"¥²ƒz|§0…Ã$6é?„ÿNr®­¤),¤$Ÿ@x¢@Þ T¹þW”9C ú:ø“ÊÕW_mo‚¼@£É. ðGJ 8%ƒÀ€f|˜ƒò¬Ççk‚ÿQY® Oƒ%Øà¬b<ßõIÖ3NbuÈì© ŒMúüw%G¿ëúï2ï·…ú~iظ,œ¿÷DZ­¸Äw¬¬õÅä.Jl/áÚ3°À½…94X&%éS¾ä…‰1³ï®„Ÿ²(ÑŽû“G¾+ªÑ3ó=xÖª›¤Æº–ö¿Ùfkª_Þš:°·úѹ÷Þ×AŠw¤wïõ”8m£$°KÎo[iyûñº‰€¦ºy]½UŽ€! &8F‚2Æ´ðÄ©:—Äè_¹Ž×©ýÓ†‹|u³i†Œ ÍE3¤ËüÅ“†®©~A[?–»Ém»iµók…t„3j†Ð5(ò;Ë}²iªb–:.Z9Û¹´4®ù´ª%µŠålL)§¡¡a)Mè@';Ñ¥¥Ïv\ç,+¶-Fy¤4lriÄcY‘<Äíªú_87ÈÔQóe÷•–ook _ü0JfO)"& ›4”°`‘¢ÒùO’%ö¶jßTTÀƒ<× A 1D=EsÈ`Á8¾ûÊèo®s3 ¯àWÆu$PN4 hM!ØgƒüP-pÔ^Åsjú?àž|òêËÕG^{ísÕ:½§,ïQ Úrrøá=U‹º•M’[ÓÛáõ«zJ&F¿Pe»8õ‚/àdìR@ 4iÐb³˜ì°/Ÿv›‰lyOn@ΙýSÑYf]ýW¢“4‰k™?²š´Ù@lÉ]‚©ªRãJõòiU!˜-¹Ô~5m ó ò§å÷”é#U…$K´8‹æ/‰J—«¥Ëvl–ëP…÷Ä­(ÿD„ð@rÊ*DeŠÂð£ÝEû‰æŠA2¢;℆Içº3ídÚ ¡¬eVgzˆ$¡ÉY¾ýv²Üÿ`œù†bð²´ØTIÔ6ÚÎRÞãÕÙ/»Ê(A˜b‰Ø»8õ ì¿“‘¬ê[ûku{©¹¢ƒv'¹yé\d·Ÿµ3>y÷‘&jvØ\ɈN»î"m7ÎzZfgûž"½_ÎlúJÍD *5®´8ŸV•ðû.uåH+mÝT.øüyé¿CeêK-dÖ/Eæ¢Q³”«¥ 5zÛ‚9‹dØ?K›U›É2º´Y½©´l_€&Y3¥cÍEÓe`^‡o÷Ó" a<ùä“MÛ„o[ú\òIæ•\Ïç G¹äO4Oü ü˜:è [¯í?ø1aªGxògžfäi=nP“ÖÕåÈ#·Q?½MÕô³°ëUÛ±ðú/A Á$–lŠÙW£aJíN&ñuG Î"ÀËŸÍ®aª—xš³EâtÔR’K¦ U§‹­Šm¨ãAhz >+è¹[Ü^üxr+`ÿ¯¯Â9Ç’©}}18|ŽÇsG >!€™ÛZdoE÷Í6—±§Ê°Û’Y¿ÎÓW‰2ªâ]« 4 ›4»´’¹3Êo?Í•sõݦҸYCY¦ƒ¨ÕšJÏsV×õòû8i4G›09šJ2÷¾mIß»L…JYÉæ O¡‚l?(ú15gÿ7|k£ Fˆ÷äùçGªŸVS%‡[šÖiõÕkg{jã5¨î:{ï º¯€—ïÔ —Át%‡ü1^dÈ_k…k‰jÇ#ʲ]Döø,n•üo³¾†|zv‰fR"óå)3™ ^Ø.Ž€#à”ü‘:÷m'ëîÞN¾z~ЧŸåÉLöJð¦EüaÃÃV”ŽÛÑùcÒ|™ùã<ùmÂ\™©Ëo?Ε&-ò;8}þødiÚZ Ú)]Z´/Þ•Kà 9qår4Í´T¹|á(gÛm·ÍdKDU4O¹ TŒú˜+MMÝß½ûš ¦(HÄC Ñ ïk„Èw,8Ä1ÇôÒ›jŠíR§(þ”Õé¦zã*D`Ñ …T=Ñ™ª°U…g6è›{‹Ϝž?I“¸f-oÏ/sçר¥HëµT‹Ôc‰VÈÌâTC}rŸ]DŽV]Í)_R?æ8Ž@U À¸Ëzû,/÷\^¾xn² W³»ÙÓæ‘¦„-O›Õ–ø0µ\¡‰°¬¼i«‚«ôå€É2í›9²pÞb픬6h§0ñS U“V•FÍ ,*¸ÔÒ¢ÁªëîË/ßZ[ìhA"^~y´†VWýþo•ÎW–cŽÙV8`sÕæ•_;X:Êž¢ºpÂT]È{¹uý‰Ž6ö‘ý'Öb“.ýðηÄ΂$ˆæ%z ÷5[¨öûŸ_½„Ü@r–Ûd‰Æ§åª¹Ïåä¨ÇùÓøÑ‰‘±Þzë­Y7¯”#PU䛟ËÞ öo/ëí¥Äé%Nwþ"sf*qÂòWbSÙ÷AÕ¨ë+ùwÕN¡‘*ÒLÍSMÕ\™¬ó>5j–Ÿ,}óò4­CS«G‹vÞ ,ϵhÔ¨¡ì±Çƶ|þùOJœÉ0Ú s½5Ö¨çÓj”Ø|Ž?)5øâxÕj0„‘s±;®@IDATÈøÇ´’úåÂÇf®Î¡Ó|¥ê¯tЈMÔÅ40yÚСCåæ›u”¿ …9’ R3]÷íÛ·ØÄnùªðÆoØ äLJä¶ÛnfÔþôÓO…¹;zöìi³²—w‹|å'1™ÝÌ™3Ëí€I˜Qæy 73Ê3Á]&®l•Û´iwçü'<)é8à€œi8PÑ:çÍ|ñÁüAô3áÕ¤\¥!¨ßW<’³;õŲÇh‘e»Å­Êû_¨¡ˆ‰ü–/45C—ÕÏÇæþ™®NI\ ì ~°ß/º'ÏÈã´‹5Dš¶>›FÜüßpJD`ᜠßž!kíPä¿T‰Y—-+´SÕw ¿)ÕJ™ÿ”úQ±ÎD»{ß¿^Îülª±³d5oëcîÙ€‚Gs½>øZÖ]w%#Nþó0"Û9¾¯æ#PëïvfÏ6©feCOä4f.ßn»í,ëùóçÛ|÷Üs:þÝis”VæI'dΗ;%=æ˜cäÞ{ïÕÉÑ×P•GiÂþwË-·”#FTx2Á|õyþùçÐÌ›7¯ØìîùÎI#|.‘w×^{ÍæyØzë­mûgážP¦wÝu— <ØöåûanêQšT´Î¥åŸóøÂßEÆõ/29ûý{%‹$É'Cj*"#Ïѹ|”Ô˜9ÜâÀ¬/X¥Ž;Z½ yºòÊ+Çêö?ûG‘/oV¥[tªvHK‘ ƒ,ZlˆžÎeâ;ªáQ?¦ä<@[‰Ägç4vlžÓôQú!S­Us­gÛ KŸ†E÷jºØÌv—dV}ÅpGÀ¨lÚ¯ßR~¡›Eö‹Ú)4T?›%_>7EÚoÐRv¿uœÅ¢e#”z³e—ô/r&®6Ø`í7¨ý¡=åᇇhhòÁr÷ÝïJŸ>Xˆí¶Ë­Í«ͯSM¨0ab"@f7ÇD+:þf’0š44|°”˜A‡ö¦›nÒŒÛ3K×gJ:ÉœOg{РA:QØ>2cÆ ëd3«ô˜1cŠ™QΉ'ž(®‰'Ú1:ÍG}´:ãÝ#/½ô’åÑ«W/2dˆi4˜ýúÕW_5Í$:ý´HémòO dò;û”Ǭ×<ð€DfÚ¾ì²Ëlb7Lר?!7!n&™;õÔâ“iB.Á‡9wß}×LÕÀdáÂ…F– hà}Á‘Š6HÚ:ë¬cÚ)ˆ×ÜÐÌp.¡EÑø@JÀ ƒ¯¿þÚð -¸6nÜX˜_åÙgŸ5muÝsÏ=M£Æ9[l±…‘7ÖsIœY|òä"­ËÅ_,]t‘@Œi?¦‡ 0ü¸žh¤Î9çÛ¯9Äz£Á£]e©3퀔a.ÈLå\“¿üå/¹ª[lÿ+©FiðÁ"ß?®ûU3ƒOPiœ?_Þ :ý»92ÍŽjxÐô´Ñb3´o 3¹lùùħÙPñ}Ž€#à85çl½JS[:lQrpÑ‚üß¹ïß›!¯ÿ}œ†E/ÒN™f*¡¡jÛ©¹ùe•µ¹ô'é¿ÕdÑ.˜œ}öú:ªÙ J4 %¯†»’¾ ¾JA‰ŽµSµ„A‰•ûâ‹/Ú¹ê{”˜„ÚÂ= ¤'¨v+pþ{ï½géï»ï>KÖ+­´RÐÉ.m›ëyÕUWeÖ•Ø…?þ8¨†(€÷R–:s¿Ñ>êÁµWÇtË#ïÏ?„/nïÂCzÿ—uy´i#ÿ¡Ù/Ì[„tGÀpê+sf,†Î cžš†Þ8!¼~θðô¡cÂýÛ}îÜlXtÉøüÐ,Ê~XÉ’}óùî×–¥I“öÚ/Û&¨µM­©smÁ¶¢õìׯ_‰­Â&­”‰éСƒ†XÜCÎ8ã Ó´ %bQ"¢±ê%A¢_9á„ä‰'žíЛ fa/¼ð‚hÇYí>wÏh3ðåá\L×0/CŽ:ê(H¢ʲH·nÝL“Å!Ò]z饦ÝB³„œþù¦½AcÁñ‡zÈö³MÙQÒÛì'h¦qÈìÙ³MSBÐ oÀœŽvòÉ'¶Ä—_~Ù´2–hñÚ'Lÿò mÇdŽÀJ,-é)§œbš0LÝ ÚV‡öcf‡6)-”ñÁ˜ þDhgvÞygÓá#Æuášì»ï¾vêßþö7Ó>%óA¥Êv¡¡BK„f³»gžyÆZà«…€-Ú,ðÌ&h1=DqÞyç•HVZ㠘ɫ ÑHp÷»¿Lùò¹ãâE~zIí5ðÒÒdaÁ,Ý›ÿš¦OómGÀpG ¾ ЬM#éÐc[Òmž;s¡”¦¡ýà¯mð—b‘ýÚèÜSLi$ÍÔÇ÷Ñ'¶>O:oßv Eë­lRi„)ú‡ÐYF¢ŸKôSQªfÄh·Ýv3):˜ž©6ÈÒC¸0ÇSí„™­¡ƒÌD_›¤j,í»d,þÁ§()˜¡Å<دڪÌaLâPã*˜„. æ|»ì²‹7Àô“8ü’tÈJÄ žÇ?¾X˜‰’ÿš¤`¾A‚X ‘<°ý•¢©û¢@âÒB£`應[Z¨7‚/Ñý÷ߟ9L Úƒ_²Ý˜º¥…èrI¦äq|×8'IiG¶6p^ºÎ˜æ¥%_ñwŠ˜ãOWYÉðõzlxqѲ@Mì~$ò‹’»Ÿ•@ÍP¢ª$P˜h#ô³½9E~ae)ÏÓ:Ž€#à8Ž€Z®+™*MVߦ4Ö°ìÙï‡y2aÈL£>Tófµ”å›®RÚé~Ü(7•6žì ç« ~$Ø™A í ~KþJçž{®ù¡Å¡³Ž¿Oì<ÿ¬ ¢Œ7.®–øÇÑ? Ú´4I‚•<®¦bÅŽÅó ýG ƒÏÑ7ß|c§ aÛi§„ qùïÿk~4é<ñ"Ò^ôóŠÇñ¿B+Dû# %PB”¨áÂ÷ R€ßT”¯¾ú*®fþ ¹.ÔùÏþ“©7å ÕëÚµ«i‡ÀEÍåâjAÿ´ƒ°éæ(䟼.q?ÿ‘ì$÷¥×óÕ2ZiÒXÉSÕ’nv½ÈctrZ%E[?¢éŽÔ0ß«CØnÚ6{É=Ziå{FŽ€#à8Ž€#`´]«¹M ÜãÔUeÇkÖ’}^_ŽxgcYû’YòËœñŽ’#PeTa*´†Ì·Cô;̬pÈÌ@téÒÅ´QD»C3–í‘í0uSß§œÅÑGk…¶ ¡ˆfœ„Iù`øúë¯[0öczFù‘ü¤·I“MŽ@0òGž |´N˜±ä -„Ç|ïøã·({han #σ:È4KhbÈÂA½ÑA¶0aD‹÷ÙgŸYy%4S…JŒˆißZªuƒAîÀ—}DóCkDÔ@Ú¥~`frˆydŒÞWhYà\sÚÀ¼YhicY¤,u.K¾eJK0‡5ú‰ô¸SdŸtŠoE¶Ôõ5u_ÃfeÊÊ;Ž€#à8Ž@ÅhÔ*È"æ#tqª¥F˜¢¦‚„9¦aøªDùÇ?þ‘Ñ1+‚¨j˜«19-Ñâ˜Q’MÕâ¹I&yøù@:ú÷ïo{¢ôEÁ‡‡|9ä ID ÂÀ?’Þf_lëQ sÔáLF‹ODòÑáC“4'Œy`º±Â¯‶Eƒ@X(ïW^yÅLò Œ´í¦e„ÛÆ¼v!àÈy”‡ØäpŠX1×Ú;4d`ù#&rT"ÜAÄ}ôQk3 ‚fàKÐF‰yÆíô?f‹h Á\Àƒ¨{1B`òüä:ùPVĬ,uNç“®S¥m·ê¨Ú¦cTëô¨HŸ¢¨•–·gä8Ž€#à8Ž€#Pí4 D²h^ÎÚLRáõ3Ï<Ó41IS32ÅW…ù“Ъ õH ~)hQØÑ€á_“Ìý¿M\€iVÔJ !!Ðfp:üÑÜ/™Ge¬cާ­|ÈYi BsÓQÍì4z\‰ä´ù‘¨3d1r€€Ù[ E^"ƒ;=†1üÁZôGãA*8‰K_Ž"h™˜Ë ÒU^ìËRçBê”NƒVò}ôQúo;Ž€#à8Ž@ D€©kz÷îmA¦ðwqÊ‹Aà!( ’R¡!¹§ ×1w#2æwøË¤…:óód4ShC òÉçìŸ QHžeICÀ –Bò@Ðö\Ú#4)å%0˜Û±Dɇ$ ³½ŠÄ,’³òæS–:—· ?ÏpGÀpªB€ a B9º*K§™3g+Ë(,¯˜ÿ´ª««ë¯¿Þæ×IJˆgôe hÆÜ¡DVN }`/s–ÖTYj&y€™›ÎÅd¦k1Äty€Ø=z”8µsçΦÕ)q@wÐQÇl©™je«„ïsGÀpGÀ¨×`‰„ozUËðáÃÍÏžuóQ^àSΔ1U%X/a©ƒU‚…ßÈǰc¡N¸0e õ­©²T5Løè脢Ƃ É@1C:ä˜4s e|©’QøÒi˜GfœM˜Ÿ(i¾ˆi¾6uˆs'e;¯}˜Æ12Ю]»B’{GÀpGÀpR ØÔ©S-¨nLË‚õîL[Âq|·±¼!z1.mÚ´ÉäÊ”4ì‹þܸŒàòAI÷ò… @ °!ðUŒ€3Õ„~$ýL´N˜F+%òD;C?wˆ¿’ýKêŠu%¶9Ý7ðMÿ¿ÿû¿Xœ¹®à“Nð-üÉ£€m¥ gK .ß©û®#ÑRˆþ)õ‹ÛÄ&4XI!O¼“ÓßÐOމ:ì°Ãl›¤EùÑ?G!’î‡g«SÌ/_[bš²þ/UÂTÖÊ-­ôNˆ7a¾¹@ÜLQòi¥^zé% Ö€‚ÃCƒÕƒ>h¹&°˜_¡ÿÏ?ÿ¼ì·ß~™›¿Ðó<#à8Ž€#à8Ž@vvÒI'Y «8+~ïqú"6ßxã¥2]I =뢯Ç9Ì#J´düÍ1?»îºëd5Ö°¨ÃDk†ÑÄÒC¿1)äKß‘ˆÊ ú’ÌYzÎ9çXTa´A¸¤àËÎ1òfÚ—HLößÙa‡äôÓO7 ÍÙgŸmsšB”² ý]ªEHùa&بQ##]úÁH‚²¡ùÒžqÆF´î»ï>«÷-·ÜbÅ@zˆ%À´AI9á„,"\“_Ò$¦?Ú!CÀxDmÆwl ©S¾¶XÆø©—„ @“ì<9«/ —¹›ˆ˜W¨ÀйA£Ä m™„7™7*XF.¸ñÓD J?!œÍ¸9`Ȭž‘n(Ô›˜$2ÄlPy1u$€çñ€°æÍùÂü¨ÕôÎc`žøLCa¬¨¬¶Új‚B€~.Ä.úUÑ×)úÃ|¿!{(òÕ)_[*Zß:O˜ÐÚÀ깉Pç4d ªb„6‰Q…›o¾ÙFuà‚3ù,L†LˆtFÆgZ¡³Î:ËæŸâåÂ9X †ðŒ”& /Ül‚¹>4ø`°`žÀ9”÷±îâ8Ž€#Pûˆ>â¼ëúŠH$XÚðÎGóÂ÷Žïd…=BŸŠu´Tô©0cã[-„0ë‹’mÚ˜x,’€¸­(Iı8Àçûg0žþ$ ®h¯¨_$' ~óG;ÆBß,0 (¦~X”ˆ6-›0ˆ_/”Ô‰¹E©#Š4[˜äÑW…8A>£ä«S¾¶ÄóËû_'Mò0gã‚Þ}÷ݦ©A­‰j KÚ®¼À•vª?F-`ä’Ã1a’YnF:bŒ$pSr#|Î…^˜yXÓå`wŠ §BÌycÄA:tÜÌ0l¢òsóá쇚ûSnHH76i!X!&!n×\sm£âåfM *jÛK.¹ÄT¸Ø°’–‘ êÏÍOgÖ¥òH›’Ræ˜\^êLpŒ–‘ûŽ— ×ûjŽóLðÂaÔŠãDƒtÜ—˜¨’†pŸ¼ÔyÉÇi)‡…üEã×<)¼€¹Q¯3…iCtÅ9”:Bzµb­( ,°D§Îô6éx.²M€}x¿~ýbVöŸÏü5™´·hm£ôíÛWX90 Àt€Á„ô˜^Ä-ûÀ†gšç=_;I ÙLa9–ïpÜMbAÁÅpÊA ùË—#ý)ú= ú_Ñ\Žk,|è¡UÂt>}!„Áìø­ä{›KøEá;@^|o£ßo„o}>òÏÉõ¿Å[X`‡hmAýȾ]”÷Þ{Ï,žð!"}=ê€iÖS<;¾ÕQøîVD0$À}øX1‡*ßVú&qîÖ|uÊ×–ŠÔs뤆 õ#¬”Ñb‚8páÿú׿.5²°Œ@@’è@¡iâ‡å³@TèÄr³,5)Ç1å£# ¹Ë%¢…Ž>K”…*>x‡z¨ˆ0BÏè@:´Ôá!uâ¡/8–­cÊþ(”I}!ƒ<ØtºÑH•Å÷+æåÿù€`ðòÍ6?ó–qxIðg -%×£W¯^f®ÉK†{µ7/¡(Ø"s?ñÄé”<°†p ó˃Ëh Tñ°£6Žõ¡¾Œž”E ¢tzyÇÌTt",K>ž¶$h0xé¡¥Á€•l$…3ã +FÐA»ÈµA5Í‹í±Ç³aýÑ8FDãÓQæåÈõçeÍ‹—(>Œèà\É~´;Œü@îy±çê½€ sÜqÇÙK—ô˜~ò\òòòg‰žÓä~émÎÇŒó‡¸$­pÉgþZ”¢è—g”ç g\p¢Ô½¡|0Š&ho@ˆZ®\íÌg ¶¹®A²Nn›DÃ×G0Ý*«9”#WQEŸ‰o(y´+Q0ÁcИ÷?ÓÝð]8ꨣ̚â_ÿú—iE€ä[È@fRbÞ죟È7Ÿu¬$%Xùð­¢KQÐzA<ˆß$þ£$Õã>í!Aô5\Ç'‹ï<åCNP2`iÒ»woëKŸzê©öMç»M¿òôC9úFŸ(ÊH¶mˆZ*úñƒ»,|Ûé»ÒOŽßup…(5ÖKÔ29ž¯NùÚB=*"+rrM=³F¨YМ@pƒŒàÛÃ…OÚ•æk„6:sŒÐg:o¾ù¦ÐébäšÑòþóŸ–|¯½ö²€ tV ¨€ipd£#ÌÍòÔSOÙˆ7Œ†G0H“4Šuàá„xÑÑâ&B£F$¶:ÂÜüŒÀs£E‡CœÙǃ€t>ÁœˆN)Ú FLHÏ„¦*Ö7ßùuúØ\jØlÅ 5‘‘î743h=0·dѪ\B>’sîQ3£,ªwFcÒñÒæ…Î Í RÍ‹œQ-´L¼´ðóá>äÞäyâ^æúòKúºYƉž³Hر…¦îF ábÓA¢“ËÃF§•‰uÙÏÍÄ/@4 ü“†Ñi$Y?Fá)‡¼0ãcÒ°H-±þÐI&¢ ÿñ$L8¤‡`q^:É<¬eÄÂv$~èü-…/¬ŸöÖK E¦ÒáœÁº¼+2ñ‘j_¼Ûˆ ÁÁ M#¤5xtDÍ—iòÍ5NòD $¾f "D÷/-ÎaD ‚Ã(zîGF¹¢Ùg’ 'MçÒõ⥇DM vÐIáx<–ÜŸky"J3åcà %š¿Æmþ!‹ I'Ø\íÄg ‰šÞXf ù®î´ð|bŠÉÂ(õà#í{®w[:ßvÚïhÞñtZéìòþã›@ÇIúª¢‰Š¦Xi?Óˆ{Þ£¼Ó>ߘT%§?‰çÔõ´;hp0¿£ÓŸ¾ÓÙµIÇ7&Wß1[>éïG2M:0DòXe¬ÓßdÉ&¹¾ûô“}lçÆ}I¿ß¸/ß?¸&±ãžŽ÷5çåªÇòµ…ãå‘:O˜"(Œ ÐÁg‰—x,ùŸ¶ÁDƒ%×ìŒ&óH¯3"€‰þ‘LÑbÔ-f9°êHVíçeÈ N#òéÑ}F›1…C%̃–¾Ùy9"iS9A0Ũç$;ºŒ„çêÇË4Ö1Wº:·Á,õÞªäè½"r4yˆÈBÌÖ°‘®>¨å·¨p³ÑÖa|ÅW˜=ï‘GiZ¦|4’$:_¸PéÓÑçÈΔ|h‰AâÙàŸ{ƒ )ø#¥}{H›ëÅH©ÇàÁJ&U¢Æ)yŒ‘*æ;+M£i”á‡zQŽ¢Q07Å” 2…ç ÿÆd´ÑIS‹˜6Û?hË(äö*W;yðñÄt2ŽÞa†@'&ß5@û•M0»d°'\Èou˜ÄbR™ï}š­Þ¾Ï¨Kð‹ßóêhV –b²?*& òbQƒôWÍe ¬ðn$=¦Ö|Ãã@ }Ê0£Ä~ÞÑl9š¡aIÃ1ÒbúMúú ˜·ñMá»È Uy…Á»lsñ}Ïõ廕·\?¯r¨7„) W’¡&÷g['âêÉ\ÄlçäÚG>,Ù$ÛCDº4£Îv.?–´Ð™¢Îhx¶ü=B‹U) veÉ·Æ¥=a±öH;ýu·jVF„†Mõ_CgB’EJ”†MT_¿$hAÑβÿ¢5d¡&Ò‚¶ ætÙLÕÊR }Ì4ˆB'ž9(“ Qù(òr§\>¾8̹§ çh ² >NäÏ5>#@ŒT"41´1i0+EpödÄmi¶mÛYÀÄ…ùÊ …ió×,…lH‡i,æhZé$`îP¨@<„áÚ m…°DÉÕNGr™Â &×5ˆùò_ÓLb€¢“æâÔWPÊgiáÁ{‹÷uÿþE&y!Þ‘0E_U|MègІm7ßH¦à¼Ÿaàˆw=ß‚ôpQtôe ÷ /4‹ü\ °[ZxTE9Xð-®¨¨!¬!æÇ»?—`U9u©~êdЇʄ5úèTfžK+/:¬%Ø Dü·¯¤ß/È ÇêdqÏhhôÁ:_רÛÔôntY"›E ²T,Û"-õœJ>ntæcä1~oiI¬ØNïKžƒ¯ £¡÷¨ÝAMŽi'þJ¬sÏaóNˆþqh$éðc¶Ù1a†IYIm#õÄ6œ—<$ B±>h@O9åûàòqÇŒ4~<0‘ƒÜGInÇóãLÿ“uÀü•6bþʇl4MžÏ ¡ü1óËgÖdš˜?ÿéý$ÌàÙ…4$%W;£),&­huÑ^C&Á4ß5HæMb¹6hú˜D—¶&M “é—Æ:ï4í¾8õé€DÔDaP,¥ÁDwiÒ·)ú™ò>Ç ›Þ+ùü?y§ñäÉä­ üàÜ~/ÖD<¼NŽ@e!Ð@_pq¬Üòd4§æÔîÊ*Ïóqj47\p”tkðœì´Þtí%«¹Ý¢…ÕW?&²ÁYêÄöõeê ªAæ(Ò}•(¨ì+ªáôóKFcpXE>œ˜‹1šMÆâ1>¼,øGA¢ tI‚C:êbt[÷¤V“8ó%ñ~Á ³Ôªìäg3mIþSO4kØŸ3J[ÁŽ0°qnÎ-¤h‰²™Âr~¾kÀqîê™$©ì¯.”âs ¡vqêß©3:ïÒêÖ0yRÃÄ@ïgü“yO Aç‡é0ïh‚ûðžBxOb€¹ß„hþoÿ`ÎÏ`=XàÃÙ‚<¡iª)‚kCoè†.Ö.Ž@yÀ¿,|“R/Mò’øº#Dà—9+ÊÃo®-;ýˆÈ§jöݪ]RâJ!NŒ;|~mÑB†˜èµPA@ –Ó€Ý.HUæõŠ’%ÌKqZ…ø¤}Ú¨ Ú!æXÊ&tŒY l®£ï\:=ÑqJ Ü>§<ÛùÌ_“ùñR,Ôa5žG°¤ãƒ¦Äcñ?_;ó™Âæ»ä]Ñ{ ÖÏÿG n"ËW5¶6éc™ô3Íçÿ™œþ„A&‚haVM”·\n±¼¥ýO›0—vqÊ‹>kÙúN˜Ê‹¨ŸW·h½ŽÈVj"¶ñÅ:Ð5"_Ý®í]”_ã´Ûp‘ÆÑlöOºü\üî’Y¼³7ã3‘OÒ±F¨i±’†RŒ‹n³Ž¹_ ]* QB’tp²dKHÕl#xD}¤ÃŸMEJ ‡º 8Oc††ù~]I©KíL¶Ë×G æ"€† ]üBÑÜ£AJûªÆÚçò3Íçÿ™oú“˜ouýÏ›µPfþ0Wfo,{®r¬¼ß—òþ”ç««:^nA ú^'›ã„)‰†¯;i )›Ý(Òõ\‘/ÿ#ò…®/œ£§ÅÁ’éÛ¬/Ò¨…È2ë%÷¶Þ¨™È²]Eæhài#‹þçü*2oFÑù+÷éóFî¼R1ñM%\Ê›¥ùâê³Xˆ¼WÂŒÜÙ“ˆ\’žó!WºÚ°_§‘#õe‘ºÔÎ,Íó]Ž€#P€ìðî,áû}U1˾ª±ÚÑÏÿK¢¯E?ÓòNó]ZÿÓ¿##$iŽÌP¢4gÚ+º¡V¶åéÒi§¶²ù‰–Vu¼œz„@N„“‹#PßÀ%í¿c@B6ºL¤ËßUÛt‹šÞ)i˜¯d&¨Ö i¢“¼%ÈIÑÎ2ü¢ÑÚ\óMË"»• %ÓNûDdè±JæŠæúÉjܪˆ<­¦óm¦„/—,TíÏ‚ß5d^»"ß­\é|¿#à8Ž@BÒCàš8Ï &Á%ü’ÒþŽøeó3-Ïô'øKå›K0æ…øªÎÿ}‘üöó\™õÓ< <Ûqû¢éP²Ì'wB×V²Îní¤ÍêÍdÙÕ›KëUššÛq¶sjÂ>ê=þíéòé#¿ÊÆG¬,«oÓ¦&TËëPJ&ìQã«eÈÇ“:u԰ɉÒJ4ª±¾äºüSd½ÓE¾¹[ä3%Q³•Ðà§TÒP5O-×(=绋ôSÍׂߔ`MÒ/Êâ%®—–Ç:"7ø`%Kê¯Õ¤­’,õWjªæuÍXt}¥íEÖ:¢ôzx G †"€“>Á)ð=«Œi"r5“üÌý•:¯LáÀ¤—ÉôÉ4ÉuœñÑäŽ=Ú&Fæó„`ƒ 4 þAP¢[¢M¨ja®0üB éü¦ëBHÚŒæƒ) ð£L ‘2™°;×\‡É´\»O>ùDnºé¦äî¬ë©sÖ køNæÌCJóU%M>?Ó|þŸÉ@>äƒoáÈs >žég Ðð»~–Y?Ï—Y¿ÌÓÿy2÷·"-ù¬´Q+ÉG˜–[»¹ìrãÚ¹Š¬qûçÎ\(_>;Y>{|’ü>q¾¬±í²Òbù]ïWo¯PIJ\5ü˜ÑÅpò €6©ó)"ëž [üOCÊ“x)j¬š®Ö,ÊVèÊ;Šìø¦­)‹õ¹²uþ•|á“•OÆ?"2âoEªfª¥BSÅáâ¿}z[I—‹#PM0ÎÜcUíKG±÷߿ؤžL@ÎÄ¢„g)Mè„>ôÐCFšHK³~ýúY4Gò!â$ûvcU)ø<öï_4ÏOYË!òft‡:4ŠŸ¨l>ø …ևЖ@¢8{ö삪P‘:T@9áoóåsS¤ÃæËÈòë-1—.GV9OÉ竚ÏÏ4g†yôÚj{Ù|ímäIóå÷_çÛÿ‚y‹¤ûñ«ä<‹PäS¾š-­WnjZþ—QíPëü7“FÍtЮÈ´qsä3Õ&}iª4lÜ@ÖÛ«½tí·‚,³jÓ:кúÙ„„©~Âà­vʉ@ƒ&"Ž.çÉ5è4´H!4Ëm\V}îTõ»Ò²õÇ÷EþXl³äËÿ{¤ùâz%WËe_ˆ2¸Üf50¯Jy `C˜¶‚Îs÷îÝ-òßÏy‹y]ˆ Èq«Cl’è©S§Zg™y³Μ„$шÐùÌ+ƒ6„q:âéQnœãÑ@0*CûôéӅɃ£3#FáéÐc¦‹æ9ÐdÁ‚µEtä1}Š¡é™ëŒ9¾’‚rCÛb^„˜§®´ ó%„2Ço¡÷ á?gΛ¿¬GÆ>ÖÓ*&™FË Sl;8ƒeÄöÒÑD‹m̰¨+ØÎŸ?ßÖÑàÐ.æSkÔ¨‘@ö¸^„¦¦nhË´`Ôlˆü˜"qráúÓ‘Ibþ¤ƒÅ©(‡  )—{$šI3Áglkyêœ oê7aÂkå1¿s¦U¦LûF;ÏN’/_˜¬SùÙéšNUF˜òùªæó3-´½óÿX$Ïò…ü>yž,˜­vf‹¥q³†Òr…&ÒfµfqWÖÿfmIß»;g=VWvΞ²@ž>hŒ™ nyêjÒ¹o;iÜ¢a]i^ým‡¾ \GÀ¨^& aø™! 9*„Aû„ðúv!¼¸QÏ®Âã­õØYùë÷ÝCzNï¢s?82„a§‡0ú¾¸!„q÷…0í“üçûÑr! ÿ  >W;ðAM°‚vú5¿%GAç³ :êlÛÚñÚajÊ´c´“žÉ{‡v:ÏJPgõ°Ë.»%'Açƒ ê¯T#cé´zöìiyq¾Ž¨Ûºš ÔaëcÇŽ j2gë:As¦.ê”X>Ôoë­·J2åhtÉL]Ž;î¸ÿoï<À¤ªÎ>þ.°ô&E[TQ°b±cEb F“ˆO¬‰~†OÅè£Æ{b{0bAEÅ‚X>£¢RT.uiËîýÎïà/ãÌlawgvçÿ>ÏpÛ¹çžû»³zÿó–µoß>±íDG4|øp¿í&gŽœøI +NØøþÜK»ßõÐCùñs°èß¿ä„ÛF<ºví9¯˜?>~üøÐUbéDf4vìØÈ ¥ˆ{‡÷ÍxXºùs|[÷¢ìûpB*q®ˆcÂxÜ¿›gÍ1Œ‡~ÀñçÒߨQ£"'#WÒïcì0r“P'úu“¡úcôÁótsEgžéþ®}öÙ‘›ƒ-Ñ–'Œ#'ˆ"¸anÒUM畊œpóœ_{í5ŒqöéÓ'±^Þ1sB:Þã¾]^OÄ5]v•iNXùûtai)Û––DÑÌ×–Fc=-ºg÷£û÷œì—÷í19úâéE)Ï©©_¿øC4uô‚èýÛæDo\=+wÁ×јAŸG£˜=ÐwJ™Ã˜rÿ¼hÚØEÑw“–G?|½:Z³l}™çä[ƒ…ŸåÛ-×ùû•‡ÉýW]&"eíöua{îSY£ôz«œ'ké†"+¦mX§0ûv¼È¬uÏô½“6ã—¿å~)/t ljÛnè¶Ûõ5kÓ;ýù:Rnü‚Ï/ÝxpðšP¢}âĉ>‡Ðã?n^x¡1ÂÆŒãóŽ˜ãõ×_7òƒžzê){饗¼‡ƒ¹Á˜<“<ÜÉñaR`Â’?rÂÆÞ}÷Ý´cóƒw ƒH¾T¼{±öí'sn9adC† ñ}9Qã=,N°yoMè˜ñ2ás0<$!´¯U ³8p ÷–Ð/sØSuÍ5×xï“nŽ9Ònºé&ï]ãú„Þ~ûí¾ÛTenÉ· 9—0 ü Oªþãÿð¡o‡rˆ÷…±¥[ÂùuȳbŽúÃ;7þü&F¥Í#¡hÎ+ä·÷Øcÿ’N¨Üa‡æÅ¢âé§Ÿ6*xâ‰æ^¾3Îåû#\—ûtF)fÂÒ(8༠>o(´=ï¼óarÎkâÅásŒýøãÍü’ëÇp¿?üá~å›|'Bì0„ ‹r8"!^àýN÷ç•Çèó˜cŽñb‰öÜÏÅ_ì‹ ôʲm¶Ù&1f˜#˜`Ý͉¯¸=úè£>|±Iøa„é!î5$_ Hè Bò†nˆŸn„ Æ«ðÒϵ×^ë¹’ß„Hûûßÿžotž'_›Ð½d+ï˜ËÃû„Nð"/ùåÝþá«Õ®ÚBûê…Å^腹Σ’ B)ÞO¼Èamˆ¬5Ë×ûêo¬o}`+7÷yú\ž‡ûbΫ“èÖ¨•@­ ­ñf |¨\aóôŠçŒ×«6ä01ïMÂKFVÜ:uêd䥲äâܰ›…ØK6ÆŽíØcM"ïŒg‡OXȳ¢AÜóÆ6÷“JüpŒ¼'Œ¼¥`áû’ê>*2fúKæçMÎWE­~A[úa½cšÍÿ¤È'÷óBÉø~õÜbûrìb/”JŠ7ĈŸÏö°fÒÿxrȵÝÜ*êY'Ž·nàÅ’¥×W™†£cå$@E¿Ïÿ½È¦=íž›«ê·óÉíM‚©œðêH3 ¦:ò u" Y$°©!…Û u.÷¢OYx/¸Ü2¬³¬_†ðùò¶ “*'#¨Wƒ€ê5Êl»s“þ´=wœÙS\Ûf?~]nVß-©ºHa*0^¬ËcÇwœáå¹÷Þ{ý‹8Þ#ŒRƼÜâí¡ð!b„âFˆÅ ‚͘1#¬¦\Rø #ÂCás,ØÛo¿íWãÇñò,)Zpî¹ç¢C *¡  (r€g*Ù‚!Œ-ù…ï 2D#¢ŽÁ}›6mšáÑ Ì)N!„ù‹[hß—jp J_0ʨ3 *¢ ‡WÌå<ùÔCgÞŸòã>‚—.X×®]ý2þOyÇ\ÞñþÓ­ãšùïÕv]gmæ=îû\àæ°sV–X¢ Sê5iÓÐÀ+Ô¸•<-7ˆžF¬·p³eü‰l±·û1DV#f¿³Ü>{Â1™¸ÌWÜùäv¶ãñí¬i»ô‚¶F¦‹Ô8ô>ÛŠ.(" yJ …ó"tù•{+t‡í‡o˜ ¹çH÷Sû­f{=àÞ°Ì f×kÍŽûÎì˜ÏÍŽø?W"~‚ÙAϺ8¯‡Ívû«Yû2òÃ~˜ìÊãÿÓMÈì„Õäfï 6{c€Ù+‡˜½ä„Ü·Of¾~5%´‹5Âæð`PB£2¡yˆB÷ðP®×¨Q#ïq"§†6äÇ„ªké†Gßä0áÁ"‡…¶`x°¾üòK/̘oUÈ#"7‡p¿`äìö•És ¼3\‡*{\¯ÖóÏ?oG}´ç„k’ñ²Ï}ÛÅ5Y|›cÌ!ô> ]DXîwóÍ7ûž˜W1xñ؇‡ˆÒäA<%].å&ž@Ä'ýº¢þºä’Qñ±Š¸Eìq žð@pºb>*e§)vâYâ~éAL_wÝu—ªrµRœ–rW|Ìá²³¤T<ë´#{~ÞýÖj×Ȩ‡e £ ]àajØ¢žu?µ½ŸxµË¾-­}¦¾¢Z£–e‹¥Ð–ÕOà™¡ÓlÜo¿¶âÕ%vèõÝlàó=l÷s:K,U?úœ¼‚"–¼cä¿ ŠöÛo?_þš’Ö{ <‹üònB9k 9Kuò‡(«àB‘{Œ|ÂèðÆà=A$…>=ëBî † !DnShú ËÖ‡8#¿ˆbˆ&÷ÄÈÙ"o Þ¿áþ¹ôÒK}aÊq‡²Ñ„'>ðÀvðÁûfìÇ£„˜ä|xQh"L‹Žk"÷ßÏ(Œ•eò5õY"„wxÅ.»ì2/HÃ÷„ï…$Ú’[Æs`¬xŒ<ðÀ˜dºž2Šnœzê©Þ‹H[ò”‚7+>Îø:×M¶ø˜p™x—ÕWrßl7éPÏÞXø”Ý8üë½[/’‡7â›7—š«çO©ç >¤ò:ÅóRõ­}¹A`·a¬åV¬u×2<ü¹1\¢š ¸_;2ÜVóÔ½ˆ€ˆ@í$€×±‚·£:ìwÞñ!¨†F½¸‘Cn^‰øK8ÿK#Ü ÁЦM_€p¶à¡¢^Àñ^1÷y3-ˆçÃà­úç?ÿéCÉûK¾v|›²Î¼@Üס™ú#ïQ„÷ !¿oÎãÞñá™Aì®7À‹„¡“J°¤Ú'¼x%0òxʲÐ6U;¼8|ªËðŽÅ‹T”u<0T¥KgÜ{¦Ðµ0anºó3í'ü1n¶ãÆ÷³NXŸÊ^«ä•é+yÌå]™kr“³n{øfþÃ6§Ù“VØ·o-sž¨•>Ä‹ý²ì˜ÿq‘-™¾Úç#eoºrm" ÁT›ž–Æ*" yB€¼!rW(é]Ys“ªúrÝä@Å á@ypF*ãØ¦ˆ‹T}j_þ`Ž#>=Oï`%k"›÷‘ s•Õ8<_>¿ØWº[2sµuܵ¹S?…Ú{A ¦Úûì4r¨³˜ìuS OŤI“~Ö ùO„û¥3&Ö­Œ‘Ã\Ba²ÙÊôQÖ9p!(•‘ûÃ|NLKHa²‡%ù&œíׯŸrÊ)ɇüäÂm¸í¶ÛŒ¹Ò¢6žû•®öo P¿qUg•;òàøÞ“·•l1)ïw#ùÜÚ¼ýýû+ì W|Ö„¥®{mwD;xdWk»ãÆ!«µù5öê' ÁTýŒu< @~Q*V•·NU=&‰¥À9Eq#|" (Ï„·Ãt!‰Ì{ôÖ[où—ïP8‚kÝyç>,a†mJèï@ÿT)r¿ÈqKeùn¤:¿6î{õÒ™6cüïMÚïŠ-mÛÃÚ¸YR{–kãýiÌ5G@‚©æXëJ" " UD Ô+ЇÕQJœ—BÂ阿‡ù‚(¨@±„)S¦s‘¨OQŠð²OŒ2Û+Øb‹-|¡Ú ~ðÒP@!~Ù³g NP`cÀˆ#yGï¿ÿ¾Ÿ'i‡vðM(ÏMnú¦x}³&|å<®ÏØ(ì@ r>x‚]}õÕ¾’\ØKîŸJ|¡*û eº¹·LsIÁ€’ìñ6L)•÷˜D8Ì)EÑ ¸ÇÅl(ØÀØÓ1ý•5¶É“'ûgCI÷TB€"•),®_–ˆ[žC¨î‰ïÏ”¿wß}×öÜsÏÄwƒòòätÅ v„çBX)ìA;ØÓã»KÉø®]»úŠ”Ì#V™""aŒÕ½ì9¸£õ>·³µîöÓßNu_Sý×Qî?f2¨0'L"çq¨ðy›r‚{Y‹\ëÈ7ˆÜ¤¨uuÑEE®Aä^æ¨þ¹öhøðá‘{aôÛìs“½FîEÐs%¶ç»ù~"—ó9ѹùŠ"÷r¹—Dž›#)rßÖ͉”èÛ½XF®J\äÊ„ûc.ßp.Ü¡IDAT*rEüú Aƒ"WŽ`lÜ‹k‰Ýûî»otÐA%¶,Xà9Â6NÈ4¶?þ8rÂ-rÂËÇ ·ÈUL\'¬¸â‘›8rÕê®YÂV5}Ýä›ã;Ç8øð}u?lô}t"Ê9þæ›oúvŒ½{÷îÑG‘èÎUPôß'Ž#'²¢ÓO?Ý·å{Ãß… Ïôm]H¨ßïÊÊûçÂ3”‰@>Ø0ÛšûK’‰€ˆ€ˆ@.ÀkòÜsÏùRàL Ëd¦§vZbBÖø˜ùUœùÜ‹»ÏÏ!„̉&[¶l™ŸÃ‰9“ðš0?“¯Ã+C>^ &Š¥\:縗L?¡,Þ&~¥g?ÞJš‡ÉmCÉKJ†“Ï´zõj_ñªcÇŽM4Ããƒw‰¹£(ùr“ðð0¹lðô~øá>÷$q¢[an&æ§ Ÿ‹/¾8~دOŸ>ݘ‰\%¼ŒÇ 9räÏÚ2Ò.»ìâ=L„êúWãú0‚7Æä¹x–B^T:e ÎTáãàùÀÇsO6˜M:Õ¡‚ Ϧù`x˜ä—|%J¨Ã̉¡nÏ"ÞK<®ÁƒI'ˆìÕW_M°bÂc<¥ü]ñ}ä‘Güw•ï.Üù¾QB=ÌyÖ”çφ­^¼Þ¦Ž^`®˜•ËëšyH@‚)ºnYD@jÂŒ®¼òJ/˜°–0¯qãÆù—B „0¡ø½ 2.¼ðB’†("¬Íyž|[&‡ /”ñ}Ä“Ñ:ˆ{CÈÜÿý~Uç…ñ!}TÎ㥒;^ÒYòr™®¼9c"DjàÀ^@0Y-ùBñ‚LË\Iäqœ1`l5ʇ=±M¾Rrµ@BôÈS BÓ’m̘1>„Š—Z&é%4‘Ü£—^zi£¦¼ló2 '™Øö„NبMº ž Õ¹†ðtž‹D•Át ÊåÑÑs@¼Q¤ƒ q“ÿ·ß~Û‡6r]&ð%ôrÈ!6qâÄäæujûùçŸ÷Ÿ¿ÂîøÞóÝ!süH\¦ï??D„Iüq?A1¡•>ú¨oO_l„({äÎc²âc=Öïûª{Y²ÎÍ3öò{ñÂéöÈ‘Smò½s­°i=+-Æé%ê%Рz»Wï" " "P9.4În¹åÿÏ }y ÄÛ4hÐÀ¿HòÒˆñ º ñë‚óÏ??á!?è¸ãŽóù0T»C à™!gƒªz¼,"àzõêµÑ/õx¼ÒYrAòŠ‚'†sȧ Æ oy½:œsã7¦Ìa ý±Ä!ↇ-nxˆàBŽK°Ló=…6,Éc®,¼u'žx¢M˜0Á{'B›t È­ÁÒ þxÝø\~ùåÞÛ4zôhÿ]}Ç—L ‹XÂË‚ÈFp"¤˜È·®›ü¢¸çˆïgÜßÉsQ‰G•ç†Ð¤¯àýä{CáQ0òšøû †7²¦lÁÔ"›öÌb›ñÊ[¿ºÔºìÝÒþß®¶õ­­~߯TSãÑuò“€S~>wݵˆ€ä<ßþö·Þ;ó¯ýË{ró:t¨¹¼™´c¿Ô¥mäPQŽâ¼0rb‰_Ñ)ÁK6‰—z–xžî»ï>K¢Úòò™ÊHŽ Oð’ŒãA4á !xáø¦.¼LS9-ˆFB³(·P°‚0«p/É÷oŸ¼Ž·Ož 0 Ñ$^â3müøñ^øPd‚‚|NTîKeˆÙ|ЗSg¯Úyç—ªiÙ‡X…^F 1¼rGuT¹îï!›xSì„~b|ø.ïû\Þ¹<;_Œ„íš4ÄÒÂÿ®²Þçt¶m]Ið&môêZ“üu­ ’§o‚ˆ€ˆ@N ,릛n²9sæø—qÂéðöÇAü ¾)Æ‹>y®ÈBÂÓÁKügœá+ÃáuÁÓB6~a!}wß}·ÏK"?Šü£t†8!O ^¼U®€D¢9!yäÛÆÆŽ9æŒòä„W‘çƒ=öØc^,ø üC„îq¼W„pq}ÂãÆ\Jä‘Cc‰çwÅÛ¦ZGx†Ü/W `£j~é”56^âa@þa‚ˆ “ v<„'žAW ßC~MÉçÔ•m„)ßr˜¦üM^Y^ãG¾ïT<ÄÓGh%F¿á;Àw—ïm“…vy¯³©íú^²¥ÿèŽÖã´K› SçWž@>T¶Ð=Š€ˆ€T=lTÉsˆÊ`.¿âgÊFŒõíÛ7q£.ç%r¿”'¶]Ñ_ñ+ì Uì\X]äò9ÂîÈMþ¹½Èå?ù{¹÷•ÃhàŠ+øê`îÿº¾ú^WW‘/^%ÏåŠø~¨G%?ú§­+ßœ¨4ªä¹¼(Ì…FNtDNúsÝ˪ßï¤ü6Uàœ ñëΣà9oßNþ'¹JU ¹ÆÀlj‹È¬ð§¹2ç‰1Q}/TÉ£º UМW*¹{_ÕÏåÌül?éßÇHËÄ€F™ÆFE7*:¦ =‹\S¢ï°c'|£À*ì¯î%•æ¸_牫îKeìßëH<[WÞ;ry{Q¨ÆÈßIø>ÒIòwƒ}|w¹ç…dÓ›ó†F.o.Ñ/ T¦Ä¨^H{÷CßÞÔV-.Žæ¼¿áû¸©}é|¨Ntî¾ü2¨B¹ÈùÍo~S¡óª¢1 ë|ø…¼²F(ž‰³Î:ËWÆ‹÷Ã/넲‘ÂÙÂqŠDð¡ Þæ¡¡^Üð^yï•âȱ c%Ô‰1 5>F!QÕeÌuĸFLu-¹gò^ð¨UÄ(W•;Oœ–‰Ah”ilxǘÊÐÂtã&l’Â5m³fÍòc"t±OŸ>5}ù®Çüa„’R`£*礢â$Þ]¾»ñùšâç8ß›TÆsI•ã·féz›õÚR›î 8Ì›¼Òš´-´ÓÆõHÕ…ö‰@ÎP hÎ< DD@D ¼ !Då='ÞŽP¼^xÁ çÁ‰òë„€Q-.•!CÞOªãñ}žÈ” Ÿ\!~nU­SMp¯½ö*³;BÞ*úòOØ , ¡£@G*ËÄ ÓØ8/S¾×ʆXJuÙ܇ Œ;©ª±PÖO&ã‡rßRb‰â$ØÚ¥%6sÂR›1~‰Íý`…ÕsŶگ•r]7¿Lu¾ö‰@.`Ê¥§¡±ˆ€ˆ€Ôà ¡Tø¦xwÜ )½1.Ü-í/ïˆ1Ê”—·@E©äEÈ1"—‹Rëˆ[&ñvZ¯½˜³¬<6mɌնeßV®Â]7ÛzÿVV¿±*Ü•‡Úä…äåÆsÐ(D@D ÖÈfH^­ƒ¥×)¹’WÀ.ûf­5ëXh «ÖXmx^ãÏ ÈÃôs&Ú#" " " "P—ÏÏ,í`t@*A@‚©ÐtŠˆ€ˆ€ˆ€ä#â¢R›óÞrûæÍeöÝÄå¶zI±mçæGÊ$˜ò‘“î¹n`ª[ÏSw#" " " UJ xU©}ñïEöíÛËlÞG+-r¥Ž=›Ù.C:ØÖ´²ÖÝWéõÔ™äå0åÚÑxD@D – ‡‰òÛ2ÈW¹PV¼&Ø—¬ì‰ãþk{7÷…ºìÓÒµÚ0ÑmM\_×l`ÊöÐõE@D –;v¬1ŽLò•@¿~ýÒÎQT›˜”¬‰|©ïÕd¨MMc­AL5[—lX¿¦Ô|Rdß°Òæ~¸Âü·È޾s{ë´{ólMל$ ¦œ|,”ˆ€ˆ€ˆ€Tù٬זÚÜ)+mñ´UVº>²V[6¶Î}šÛN'¶·Í¶kRuSO"PÇH0Õ±ªÛdßÿß WÝn…ó"5³žƒ;¸ªvÍ­iûÂäfÚHA@!y) h—ˆ€ˆ€ˆ€ÔEóŠ}H]a“zÖeß–µaÈ£Ô:ò0ÕºG¦‹€ˆ€ˆ€ä#µËKláW¹OQb¹jq±Õ«_`; h+Á”_ Ýs‡©F0ë"" " " "Py‹>_eOþÂwÐbóFÖ¾{Sëн™µïÑÔÚíÔÔ4V‰»ÊÓÕ™"™€Sf>:*" " " ÕN`åÜuÖ¼sô×)YyH¥Æ­ ””ˆ@5`ª¨êRD@D@D@Ò(.re½§Ù|WÚ›å‚O‹¬xU‰ }£—Õo\î4íÈ ¦,×eE@D@D@ò‹À{·Î±Ùï,·%Ó×XTYË-Y‡]šY‡žÍ¬£[¶Ý±©iòØüúNènkùtkÇsÒ(E@D@D@j;R³.û´´ÞçnnwmfMÚè5¬¶?R??ÈÔÏYw)" " "P ˜–Êuó&¯´Í÷lásŒªá2êRD ‹ôÓFáëÒ" " " µ‹@iqäsŽæ~°ÒæN^áóÖ¯)µfíZóÍJ0ծǩъ@¹ÈÃT.Lj$" " "樂´ÄÞüŸolýÚR_ÑnóÞ-¬ÓîÍ­sïæÖ²K£|Ç£û:K@‚©Î>Zݘˆ€ˆ€ˆ@UX>{­Í›Rd›÷iž±xU^S}‰€dŸ€SöŸF " " "%%k"›?Õ…×¹»Õ?Û~Wl•¥‘è²" ¹J@9L¹úd4.n΢9ï­°ÝÎî”ØW™òæ\ds?\á>+}Á†’âRk¹e#Ûb•éR爀Ôqò0Õñ¬ÛÚLÐûw̱O]`M6+´ÁãwÙ¤Ûy¨ß'¶fÉzkµUcŸ{ÔÙå!‘ƒÔ¬Cá&õ«“E@ê.y˜êî³Õ‰€ˆ€ˆ@­&@˜ÜëWͲ¢…Åf‘ù¹³×Y‹. +}_ýFmc­¶ndMÛI U¢N<# Á”g\·+" " ¹N ¸¨ÔÞ½eŽ}1f¡Ô+°¨Ô©%gõ̾w¡t¿èÒ6q ´÷‘ËAú1Än÷s:Û–}[&Ž'¯àM’‰€ˆ@EH0U„–ÚŠ€ˆ€ˆ€T+Ù“–Û®t7asXK¬ØœwVX“6…~$îá¬ÝNMâ»´." ÕF@?ÇTZu," " "‰awo_ÿ­ÍxeiF¯R¼ò˜~øz•SŠÖE@ª•€íð\â¼ØàÁƒÛZª$à~§‘‰€ˆ€ˆ@í °`Á{òÉ'míÚµµcÀeJÍÖµµ¦ëÚØüæ_Ø¢¦ÓmE£¶¶A‘«^šÔ>òûJ \¨^Á•ò¢zÖfU·D»W^yÅ>ùä“ĶVD@D ª ($¯ª‰ª?j'ðÀXÛ¶?•–®ö ê5F€â«ÛêEë7,Ýú*·¾Ú-W.Xg«æÛše ìmÍ:Úž{îYccÓ…D@ò“€S~>wݵˆ€ˆ€ä$†-êŸÖ]srx”ˆ@PH^>tݲˆ€ˆ€ˆ€ˆ€ˆ@ùH0•“Z‰€ˆ€ˆ€ˆ€ˆ€ä! ¦<|èºeòPSù8©•ˆ€ˆ€T˜ÀC=dï½÷žÝ~ûí>·"'uÔQE?MøÚ©S'Ûk¯½ì׿þµú®ž}öY»óÎ;7êvË-·´“N:É;ì0¿ÿºë®³7ß|3ѦiÓ¦Ö«W/2dˆuíÚ5±?yåþûï·?þØþö·¿%Ò¶ˆ€Ôzò0ÕúG¨ÈUÓ¦M³I“&UûðÆg«W¯¶îÝ»Û/~ñ ›?¾]pÁvðÁÛòåËýõgÍše/¾ø¢õîÝÛvØa?¶Ã?Ü^{í5ßfòäÉöÑGù~è«aÆvÇwXŸ>}2ÞeÞ¹¾LD@ê"y˜êâSÕ=‰€ˆ€x¼ÈÏ;×ð¤|ûí·¶råJÛe—]¬´´Ô>ûì3?ŸSÏž=½†ãÍ›7·6mÚ$èÍž=Ûïkݺµß‡  OÎiÖ¬Y¢ý2b¥I“&¶páBÛzë­ÇYA¸àÂkóþûï[ûöí Ñ‚­[·Î–,Yb;v´/¾øÂ–.]j»ï¾»,¾û‡ëÖ«WÏ•~Ö¬Yc5òûhsÌ1ÇØÅ_šÛË/¿lˆ¡›o¾Ù®ºêªÄþ‘#G&ÖQŒù™gž±C9Äïßj«­ìÆoL´á^öÝw_;÷Üsý=Û÷ßï=N_}õ•µhÑÂÎ8ã ;å”S¼hB¬m¾ù扱so´ßb‹-üØ×¯_ïÙ³Üu×]­~ýúþZÜ?÷Ø¡C{÷ÝwmŸ}ö±‚‚‚Ä8´"" Ù" S¶Èëº" " ÕNoI·nÝ|ÈÙ6Ûlã…Î`Gq„NxN<ð@C 8ÐN8á„Ę „¡=òÈ#^(°NÛ¾}ûÚŽ;îè… aCdì¿ÿþ^ðÐïL² >Ü‹Âå'Bæ0d‘Æ7Ýt“N=zôðŒZ2ÈL¹ð4j%вeK›3gŽ÷¶ 2ðd FCï¼óŽ÷x <Ø‹Ÿ ø±<ýôÓÞ{ƒçä/ù‹÷R-[¶ÌŸ‡'è®»îòbcèС¶Ûn»b<<,é ±A>ákL¾ËgìØ±‰æxað.á¹AÌ\vÙe‰c^xa"×ïÕÿøÇŸy±\A˜}óÍ7†7'؉'žh|È[âƒp;õÔSÃá”Ëà}úúë¯ǧNj0úÕ¯~•Ø·óÎ;ûð½§žz*±ï±Ç3Ä^'Xáƒ7&E¨†ü+Džµ?üÐ{ÏhED@²H@‚)‹ðuiš!pÅWøö£>Ú_ðì³Ïö!ba±ƒÇ„ð°1cÆø6O>ù¤÷š´mÛÖ¶Ýv[ûàƒlÔ¨QÞS‚Èúë_ÿjS¦LñBéüóÏ÷ÞÚyæ™io ï Ð:Úáõzã7íñÔ (ðÈpüõ×_O»úê«â„㌯W&ÃÛ£-a€|+D° òî¹çžLÝx [°k¯½Ö{žcŒÛé§Ÿnx—ˆO¼aÜ áp;òÈ#mÕªU^4!¤‚ФÂûî½÷^/šâ}j]D@²I@9LÙ¤¯k‹€ˆ€ÔÂݰ 6üooûí·÷Û!Gˆ—y¼#x`&L˜à=P4Dpáñ!èòË/÷Þ&Â΂7jï½÷öýñOrîRâ€[A Åp·Ðû  F.a›b„$â±A CèÄí¢‹.²[o½ÕX¦3úÁöØc›7ož_',•!GŒá=gävµjÕÊ àó’hgîÁLœJXùXB0.Ê´"" Y$ðÓA³8]ZD@D@ª“@\0dºayxuðrà9áE?~¼]yå•>ÜŽp1^òNˆŒÂÁf̘V¶¤øA0¼,x¨â+~|âĉ ç•wI(Þþó‹‹¹Tç®øÃ?ø0ÅTÇ ç£9Þ,B˲víÚeΞ„ã! ðr’‡ÝrË-öÝwßù,)0AX LD@r•€S®>KD@D Æ üò—¿ôÕïþô§?ùù‰7nìÇÀ$¡×ÀR¤*. È ²(M]a—¥#X…UXÙ~Ò‹ º "E±!¬: è‚HïKfÞ!óŸïü››—÷’—¼$÷Þ¼3¿ß˽wú|s¾™sÎÜ÷’E)CA .gÑ„QÁä”<‚€ @±‚ €&x¬$§ @BA D¥ ¯k³^½z•®\¹âÚþILjòäÉC9sæô<™‚0§N¢x~22óÊ•+G%J”ðü3a0 XÁjÔ¨áù ÉŒX¹re¦–Ø0™f*e €&#P–62 B˜L3•2Œ@@“(K™!L¦™JHF „ñAg:—.]ò‰4h½ûî»ñ¹³k×®]Ô¨Q#:yò¤Gzïžnf·rZAúòË/„kÖ¬Y~«Ü¶måÎÛoš›#íãºsç]¾|™âââÜÜeWö-¬w˜ 6ÎÌ[gÏžå{æØ±cÖ„9s†÷æÍ›Vnð¢÷µk×,Á»}û6]¿~=Až‹/ÒŠ+èàÁƒVü¹sçø õÖ­[VÚC;& ÿüùóÄ™´Ã‡Ó²eËu›€¾™cÇŽ´jÕ*«¿¾ã*_¾ìTY²dQ%K–TÛ·oW;wæg- ªV­Z\_Ÿ>}ðõþäË—OÝsÏ=ª}ûöœ¶páBŽ_²d ?wìØQ.\ØêǤI“T®\¹TÖ¬Y9_Æ ÕùóçÕ/¿ü¢"""T¯^½8¯~~Öª?÷íÛ—û‘={vŽê©§”RuãÆ Õ®];® uFFFªáÇs½#r|½zõT¶lÙø¾bÅŠJ“+Ѹ4™8¸!h5“Û)X° ·[»vm¥IÆiݺuS¨GŸÔs{Àãл§óG/J2˜¬nÏs«‰çCJ ÓºukU§N£GªêÕ««®]»2Ï>û¬jÞ¼9ßë×mX° ØzõV£FâgC˜Ý»w«ž={*#xÓ§OWo¿ý6—ݳg .ê½pá²hÑ¢êÍ7ßät”ƒÀƒ”C?_}õU~a>bÄ¥w5`À~Þ·o§óG J˜'¥„räÈ¡† ¦6mÚÄ‚a@°B«í^ÙÍpôûPÖcâü]ß{ï=,úúõëùÓ¢E U¥JήU7U¹re&v.¡{÷î +½=€4;wîTúÕU³fM«¾uëÖñ.9xð`‹0Ø)MÀ8±{"ØÇe' ÚËŸ??“Ó”ëÔ©“Ï LÙ²eM’:qâëÇ´â’»ÉL„ K£_«Y½~äȑԻwo*UªMž<™êÖ­«Óø U-ªZµ*iÇŠ¬V­šuŸÔ±Y^xá…Ù´ó³V·iZ¨éÏþ3i‘ã:DxQÑ´°ó#ꄱ®w@+¹@¤ÕJëY«ŒÖ=l”Ó§O[ÏþnÐƤUD+ù®»îJ`;Ùm½Ðp¾pµcâQ²àÊü7 , m'°1«W‚ƒ8¾¡P¡B¤Wl˨Gº^Õ}³ù}†ÐhðªÁHÇž·!C†p~êСC©B… 4mÚ4BŸ´:Dz7±ÚÔv iÛˆÛ-^¼85hÐÀªuŽ=šÚ´iÃeñÇcÀÑÊàsS¬X1ÚºukC˜ØËÙ éS<ìÃ’0'N¤.]º°g¨R¥Jbhãœ'_Ó,tÚ8§fÍš®Ø ˆÚÀ¶ÈÏ=zô`]ã¥ôj¬êׯ¯´ps𝗠º? fƧàéBY|ôî ô¡¨3f ?k7.gÕ‰J¹Jiñ³ñZ¡ 쇯¿þšãaÌ·jÕÊªÏØaH4F?¼{(ç@Ó¦M•VḬ}\v‰zwe,à„@YM¥Ýå\6¼f&Àˇ<¦ï&>©kf²a2ůÆhƒ™uî”|«?Vw¨Nv½_ ¯ØZà(oÞ¼xä•^»¤t^©92È?8+Z;À·¤ª€­‚Æ×žA¨bÚ»Çê\tt4W3{ölÒNÂÙÔ=|?Èn{ v"û¸¸ào°Ëhi‚&*gÏ—š{œu•.]:3|,6l “š‰ws;a@ 7…ÌD˜°´aÜ$LiÕØaZKà1K«º¥žxܵÅ÷KîRˆXÉ%¤/²Ã¤/¾R{&C@ã =wîª~‰3þÅLv1l»”iT2x½’;ÕöÊ,ÇÄlÐg49©aÊ^ér’ýÌL_#È4„Ákõÿûßÿ’œ8¯$ÆÄ¬Ö.íìÚ +ßWqÛœe ·²Û@ ¥?Gž§‡¤ÏK"ô++C)_¾ÿw+”:¥lš! ¿ÞŸfP¦QE³go`²è“súþûMiT«T“VˆÑŸVH¦Q=11kõ;hJ¿ ™E¿3Ü‹žiÔ´TB˜ @ʨ,{öœ¢]»Nèæ¿­¼zõ>:u*þkÈÕi'0B˜ÀØdxÊŒëõ»j‘V»‘‘YhölQË,@\p#„qÁ$˜.LºF¿<ÿwîÄQLÌ“,W „qÁ$  ›6Òo ŸOÐm÷kWùQ:p þ×dd‡ G@“áûopæÌ Ô1“ îåY³6˜G¹:Œ€Æá @óp!OŸ¾>:fºuû¶¨e 7\…0.˜…åË÷Plìå€=9pà¬VÍâX0`FIHw„0éqò Ìœ¹^VÆ{Ç|KÀs†<œG@ãðÀ+6gÎF}XïóíòÈ!¦/*Î< aœÁÝjuÑ¢íú÷œo²ÁŸ-[¤þi¦H¾Ç®’-[°ûà™œE Ó¼­ì,Œ©o=þœ4hP‹Lž¼JÿìSVýJÕă@œE@ÞVv¿­·k÷EGç¢Q£žó›.‘Ž! o+;½4ìIĆñä´I§B@ãòÒ®'ÂxrÚ¤ÓN! „q yiדa<9mÒi§Â8…¼´ëI„0žœ6é´SaœB^Úõ$BON›tÚ)„0N!/íz!Œ'§M:íB§—v=‰€Æ“Ó&v !ŒSÈK»žD@ãÉi“N;…€Æ)ä¥]O" „ñä´I§B@ãòÒ®'ÂxrÚ¤ÓN! „q yiדa<9mÒi§Â8…¼´ëI„0žœ6é´SaœB^Úõ$BON›tÚ)„0N!/íz!Œ'§M:íB§—v=‰€Æ“Ó&v !ŒSÈK»žD@ãÉi“N;…€Æ)ä¥]O"àø Û²e U­ZÕ“à¥W§³e+JJÅÑ­[§Ó« OÖ{ôèQ*^¼¸“}uÍ?M9r$•(QÂI0¤m—"°sçNêׯŸ+zçÂüå/¡ûî»Ï H'Ü…ÀòåË]Ó!±a\3Ò/ „ñÂ,I]ƒ€Æ5S!ñB/Ì’ôÑ5¸Æèw "ÉtäÀôꫯÒĉÓÕÅÙ¦Mº|ù²ßÞŒ;–Ê–-ë7-=#Ï;G¹sç¦lÙ²ñø7oÞL}ôQz6麺e‡Iá”\¸p~øáºzõj K¦,û‚ èÌ™3T²dÉDŸ¬Y³¦¬²4Ê]¤Hš:u*×vãÆ ºvíZÕìj<·Ã`¢Ž?N¥J•¢C‡ñ*\¥JŠ‹‹£mÛ¶Òq ¡BzžTß{ï½V¿MÏ\5Ž-HJƒ¥¶oßT?V­ZÅù{ì1¾¢lݺuUƒ ¬ç‡~XiR<òˆzôÑG­zµ+-J«4J«J@iB)-xJ¯äV~þùg­´0sþ5j(-„\Bng÷îÝêùçŸW+VTšJ«)ß¡C«=Äiaå:4•&–š>}º•Ž6:wîÌÏ .äòK–,ágM45tèP+¯ïÍo¼Áõ®^½š“ðœ#G¥ ¥w&nØhª¼yóªÏ?ÿœóéC@î3Ò¢¢¢T±bÅ0EHjï¼óŽUdíÚµ¼K@±ÃBè  :u²òaaùòË/vŒ­OŸ> }Ág̘1r0I'aО}gEÃØuÑÒ· ÚQ 0¾`ƒ›ã9FO8­JðUO"_Ë•+ÇWèõz2XonÔ¨M›6ôŽBz%&½pºžL:{ö,á6Ø zRiòäÉ»¡V­Z|Å_ÛÅJÐ7¾Þ*Ø1¦äÓ«·•iöt+ÑÏÍ“O>ІAv­QµjÕH¯ÜôÊ+¯°M[/)Úm)¼°›C«šÜÊ'Ÿ|B_}õ•Õ" °/’Uè·Óž&w‚$Ìœ&Àa`lBØO^ žõ’ÁX&´mÛ–´]@&L`c_« \ ^(­g³¡¬WZöD8fbáX0A«æ6ÑU«VN³™<^½'u^î·VÁøìo»âlCÆ<œ£téÒ…½:•*UâÝÞ.¬Ø¸!C†Ðùóç g Úö ˆ»v+ÞªÆ[ùqf¢ÕF‚IÛTºtiëë ZM¡3fp^ú³wï^«,âæÎ›è¶uHÛL„yóæ±ïõ×_ç²ð®i;ŠëÙµC€= Öý÷ßO£GæqíØ±ƒwôÞ9„¤ÆÏ#êÃí¡I“&¤U`Òj,§a×FÞ™.«G¦W¾ÔÚ00ð`hêI±<=z•åçY³fY]†~<+V¬°â–.]ʺ5‹¡·Þz‹Úµk—깄#@«‰ÊÃÃ8P€§Í~²(Ÿ[â“[úéd?\ó~­²È7.”· ‘Ø]îôwú3½—ÌÅr ]ó BNÚ;q.ì•t a\(K–ìÐç!]Ø3é’kŒ~}F!³ñÑÑôëò×éÂ…Å‚‰Ëpœ08ùމ‰q,ÎuçæÍ8íÕ[£¿ÕAãÇ¿ªßs®/nkÙþ½&§úæ8apF‘)_¡HåŒÎšµQùk•vWÇéw¿ªRýúRY“KĆITC¨súôuüeTT¤~?k}5IÑô@@“¨¦²Î ®éWðwè&N¿þ~‡¾ûn“~iÒ›¯Á§×¸hоÿ~³~·/¾C×®ÝÖ¯öÄ¿¦Ÿ"wN! „q y?íNº†¿øf’¢¢²èWæE-3x¸á*„qÃ,è>œ¬ÿcïTª_¿¾=£Üg QQ§¸µSÿÉÀ–¥) pûömZ¾|9ýýïOH"˜4·r ‹/RóæÍýŽYl¿°H¤ à!Œ\$Vð‹€Æ/,)øG@ã‰ü"àyÂü÷¿ÿ¥Q£Fù\ZGîÚµ‹LÏ?ÿ<µhÑ‚Þxã úöÛo)..Îjª{÷îô믿ZÏö›yóæÑرcíQ)¾¿sçÁ(5aâĉԳgO:~ü¸‰âë¦M›8ù“ ׯ_§«W¯ZÙà!Bð%ÞyçúùçŸ9›½x[QGlllrUпþõ/úé§Ÿ8Ÿ½¾d ™Á`dö$³yž0˜˜­[·&9È´H\½z5uíÚ•vîÜI5¢:PÁ‚éÓO?¥·ÞzË.åÂ… ~›„PÚÓo¦d"W¬XÁ#ÌÛ·o§µk×ÒÈ‘#”Ø+f’ùzåÊž 9r©@œ‰¨óÒ¥K,䇢˗/S¹rå(kÖ¬\‹¾â9""‚ë1ÏÎ÷Þ{J—.M~ø¡Õ¯fÍšQ•*Ux‡ûñÇ©qãÆ\þ=z”Nœ8ÁãˆŽŽæø&MšpV&}Ì€ Æ›;wn{—†÷ÝwåÏŸŸËž;wŽó îâÅ‹ó=p‚€/^¼˜{ì±uØ€50,T¨ýþ÷¿§,Y²0¹!¤7nÜ 3gÎÐï~÷;{n»D‘"EX¨q²fnºuëFÙ²eKTOÉ’%iРAÜoS!æ Ò|Û1yL}ØÑ_ßLÛ˜ïýû÷s]¾²€¹;pà-ZÔ·ŠžC&Ìž={èÿøU«V°õ!@ˆâúõëù¹R¥J,TC† aâ@è ôÏ<ó ½öÚk\¦OŸ>ðôƒ>`!Å Ô·o_@˜dL„~þüù\ùƒzA8&‚ŽÝªvˆ~ýúQÕªUiÛ¶mœ¼ÿþû²oذÞ|óM^©1û3V(JïÞ½­É2mÂ_?cÆ V) a&MšD»wïæ, `¯^½èOú}ñżB-Ñ6TÊÈÈH&èßþö7zî¹ç¸T­o¾ù† Œqà „3ؽøâ‹4yòdÎûÇ?þ‘ ô£G¦‡zˆÌâcúˆëW_}ŤaáÀ öСC¹Oصp²=nÜ8¾7ÌüÖ®]›V®\É !„v̘1,ø¯¼ò µlÙ’Io¯çŸÿü'ËÅ¿ÿýo^Ø>ûì3úÏþÃr]2þbq²S_Æ éÙgŸµ'ñ}§NXf,XÀòl@®5jЀxìÈäò’V!aoC¨«#Þy°ýA bbbXÐ! `{ƒ X¿7«ä/¿üÂÀªøõ×_³àÎ;—ëº3gÎìáÇónð‘Ï”÷×] ªV|¤‚Nnˆøý÷ß³0Â?~<'a…yÍJe>räç©X±¢©Æº‚ÀåË—§cÇŽYq ýA¡.AHìêÉÌ™3iáÂ…,´è+VÖ &ÐŽ;#ãøá‡xò—,YÂĪ€2¦¯x~ýõ×y‘@¾óñå—_2Àuc)QîñÇ'—,öz°bÏž=› ‹¹]ºt©=9Éz°S€Ü Ñwß}ÇsˆqbþÌÿ¬Y³ø3}útÆd}ÇŽ}Âb€ Â'Ÿ|Â;6(Ø·X˜Ó*¤aÚ¶mË[c­Zµ¸o Vnó âÑGåÅ!¨Y³&oÛ%J”àíB†bÆ« X©QF6¶Wäî(Ü}÷ݼšcåB¾»îº‹°â˜€•*©ÇìŠxÆêe„ÐþŒÕõAÕó@<ûJ‰I¹P×SO=Å+ {X´h ŒÉÆ*ˆú׬YÃÏ›7/õbw U*P6Ø¡ X ìaÙ²e¬îaÕFÀØêԩû¨=_R÷¨»Ó<À*6„6ØA‡Pc'„‡Ýã‚ (`!ÂN†ˆ°oß>v¸`œì,úùÁ޵šÈÜ! X°Òò5¯U23`¬P/0)8VW  Á«‚A@X! VfìRؾA6¤™Ý€˜”^jôz““eê@œ!6“ ¨F,Œa3.S+/ A2ÁÞ×2eÊp´Ý³…Ø-P¡:˜^Hƒžo ‚/ñìy AUÁ˳­Zµ²’Pi'5æ+˜±›JŒ†g,8Á8LYÌ=T84ØkFNLž@WìˆØi -@ÕGÀx RÚdÆx(a÷™–*YšÆÃt2Ðjl¨E0Þ  ¬[·Ž^xá¶#°«`+…záìÙ³–¡èëBå ¿ý±¯ZXyPWõêÕ­,¨»T•¤Èg a•‚°A‚Za°u@šºuëZÑØM€‘‹àÛqöIÇN» «$ð€P¢]ÔÿÑGQÓ¦MMµ~¯Â=zðN9mÚ4+ȱqãF^´Ì<ÁÖóí“UÀÏ)ç')Ù(dÁœKØÐ@’ XP1î6mÚ$Ð*08‘°kåÊ•‹«Îpä˜E;0F0sÀ!þI3•,Ø~<òÈ#¬z|þùç¼ËÀ9€€3 Ðw±•“«ƒÙ–ŒP¬:¶VOèèØºZˆ2hõ@„Sâá‡æª`û`rŒªaÆ®‚ †.ýñdz ïÎ ððÚÕDì’˜0LÔ”)SxEŘì8 }ì¶è+Ô8%Ð7+ú‚Ãþ€2APÐ?»Mdê^0xLÀø±Ã™±Ce`»  N,4h;”¨C|ìèh3ÌM €EFÍv˜ä6+u Æø_ÿúW«¼Co¿ý6=ýôÓ<bw iXaQ@± „©•A}‚àÃ;Ôý÷ßOX½@Ôƒ•êaûöí9DÅR¯^=V»|Ÿ»téÂãÎ Ôᆺ`ñ XÇŽyR±Êá0ÎÞGäÁá'Ô«⑽a/¿ü2ëâx~饗xá°#™‚ê6úâ[¯) "šv"Úƒ¡>0„ðÉ'ŸDvÆ‹ p‚ø«“3þöé&¹úÖg‚ O<ñk°úÍgXðHú«;HŽOçÎMUl×Á‚ì\,bÐ"0—Àò\1÷¨s Û0-B¢/au„ÁŸ~z ÌÇ aX5p~ãÖ¨M&j )a)|ÝÊXíaÀ“„ó œÙ˜s+8«€µëå¦ä®XQ7®wë]ú¼¿€»l£&`ÜXÝq5;Vwô†¾=`,¦{<°@vÞ”ìdX0€¡ïرÀ@¥3*NJêµçMªÌ4ÓovG°öŒ½ÜcÌÆâ+/ØÁ†Å gJHŠã8fÌ.ü[ùÄ_ KIÅ)͋ɂÎõË×@]ÎçnVØ™ úP Ë@Á×1(Ÿ¿xì$ÁônvûA$¾ÉŠUÓ8LÝ8ÄÇ_©}äF•õW.PÕ«o_²ú¦ûœT=XìÁÇ{|í{9¨ó*T°G¥É}†©dè-ÔøÍ¡gjF•Äî1u@¸pbí/@Pü£øË›qðÞÀàmݺuzT/ufލd46iFHI©dî%KÕ¤ à„0.™é†7Âxcž¤—.A  ÑoÎ\ÒOé† a$u šˆ0pýá¤X‚ ΀þÜý‰¼dá ’Œ]HX±a’AH’;B;r/$ƒ€&€$Y°# „±£!÷‚@2ü·×Ì(qmórIEND®B`‚mysql++-3.2.5/doc/html/refman/inherit_graph_16.png000644 000765 000024 00000005615 13515046516 022454 0ustar00tangentstaff000000 000000 ‰PNG  IHDR¯$ÿåjnsRGB®Îé GIDATxí[UŒM®;ÜÝÝÝ%xpBàî!x ¸kðàn@xÀwwwww÷þë«ü=™Ýe÷öîØÛ¤+áfÚ»«K¾ªYÂ2A„‡àžÍ– „Fx „,Œð†ìÕ™á52²ˆíÜù±cÇhêÔ©ÎjS6*jÔ¨AÝ»wwÙƒ›å}øð!­^½Ú¥“)“ S§N¹mÁÍòê«V­Ò¯æi8TÔ©SÇãún–×c/Si89`„7^ŠÙ’0ÂëŸL¯È#¼1ðRÌ–üã€×€Í¿áÁïµ|ùr:~ü8Íž=;Ú6óåËjÚ´)eÉ’…,X@aaaÖZ£G¦X±bш#¬:O/]ºt¡§OŸzj’ºõë×Süøñ½¶»áׯ_ôáÃJ™2¥l¥cÇŽÔ AjÖ¬YжòÂ{ýúu:räH´2ðçÏŸ´mÛ6Y£|ùòÔ¹sgk½Ó§OSìØ¾Ù˜-[6J”(‘ŒÛ¹s'½|ù’Ú´icÍcW«2½lÚ´‰š4iB?~ü 8qâïÁ$ß\÷±»ïß¿‹EUzðà}úô‰Š)Bþü¡+W®Ú‹-*F{âĉ-íÅÔ=’ºäÉ“ËJgΜ±ÆèËFæ½páåË—$H —°,~$—0aB:qâ¥I“†òæÍ+]Àè·oßRºtéèÚµkôîÝ;*Y²$ÅWÚ1îÛ·o/^< —ytY¯½0@,NêÔ©uµËç¾té’œ |_@£F²úµoߞΞ=K³fͲê°7üK›6-áC”ýùógÉqæÉ“‡2fÌhõßR¥J%{¾xñ"åÊ•‹2eÊdµã–þòåËT¨P!Ê!ƒKÆß½{—J•*%ü²7Þ¿_î®L™2„s‚/^¼.÷îÝ“µæÏŸïâ)p?Pdðs&I’Dú¿yó† ü)R¤ óçÏ˘‚ Š·²¯Ð;/æBœßÅO$]êþV`FKÿjÕªÉc+W®¬jÕªe•ù" ªP¡‚ªZµª53D±ËUsæÌQ|0ŨX@_šÊœ9³ºzõªôÝ¿¿âÃ+*é_ºtiÅ‚-mÆ S%J”÷¶mÛª (vmŠ…RÖgw-m6lr•*U¬6ôå2Ò¾k×.iß·oŸ[™]Úf̘¡’%K¦:tè }ð§~ýúªQ£FRæ‹’óaŸz¿Ã‡·úê—víÚ)(]”'ÎQ¸paÙ?xÈ£†*{Mš4©¬>þþý[ú³RYÙ„'³páBiCÎ*¶ŠY±g°ÚXÈTÙ²ee>Ì‹¶‰'Z{Á~ÁÌ‹s´hÑB7xǸ/z…õ'Ož,ãø#‚b¥“;aè£Øh¨={öH[ß¾}åL¬|Ö>k×®­XÉ­5}½ ×®]ݺEYÀÆŒ ÇÓ´iÓèàÁƒb=¡Ý+W®¤£GŠ&ó¥¾–h-Îc¦PË–-iìØ±b¥Þ¿/V Ú ­íÔ©±€Š¥Lxþü9óÑ3±À þýúõ+-]ºTþmܸÑê ë«{óæMzýú5 2DÚ`ÅHx‚œeÔÁòñ…ѲeËhïÞ½¨r¡1cÆÈ9oݺE°8‹/¦qãÆyìë2ðÿ,6¼,Ø«W¯ˆ…ЦOŸ.ç>yò$gšÎ;G‡&|e¥<޶5kÖÐöíÛéÎ;rÆ~ýúöÆ·/{ÂÙÁ'ðzüøñ4a±ð¸7ìñ`ÁŠ+«€é1'|Íž=»¼ã<+³x xÌÉFŠà]àuAX«G2hÇŽ irŠs –—Ý´LuãÆ ÑP¤¤Ì‡‘23]ñ…ˆ5˜7ož´Õ¬YS1è—÷Aƒ)h-3Rñ¥ˆ¥†µæ`LƯ]»VúáÏÈ‘#½Z^X/;åÌ™SAûµåÕÖ}°&,¼/Ò–—?›‹Å¨X±¢b8"ÖÑnya´¥×s ÀªÚÉ›åeW«Xh¤+_¼x¾dÅŠ¢XˆÅ Ãúƒ°ö¯iæÌ™âPf!ëÙªU+Å‚¢z(:éŠ;¸}û¶b8¡6oÞ,^„…H=yòD±‹×ÒsâÉÆG±â¨uëÖÉ=àN@ÚòjÏ»uëV©ÇíÅpà=î@Ó³gÏdV.]åóí–7}úô¢H:xFé@„w(­nݺ¢Å°,°^°Æ ¾`y‡å.^¼¸à*`?XP¹råä‰?Ú:Z¶f”­D‚{µ¥GCŽ9¬vàKN!œ‡Ý³XXFMÀºð<°œv_pV(wîÜ‚çÑüêÝ»·X9X1XRÍ[=ö¯ q2 †UÄPŒ€…ùâ…“&M’6XãêÕ«S±bÅÄÓØ- b}oÒ™ÿ´nÝÚŠtý‰1 à\M_ësÛ÷©3* mt÷€ŸQàþý!+ãJZ´h‘j 6”aˆÀo $€Ûd‹HŒù$€A{š àØ‚XMp}ŒìÂno?tèK›5ÐÇ ŽÁƒî„ó#@DP© ÁÚíëë6_O¸l¸WÀ,(0 6z¬³¬ë/,†à¼={öx€yÀc: Á\ÿþýõ0 f±_("n¿[·n£i£e?7î¤á…·}ê9}ú'qÎîarƒÈ" /Ú¼ys+b]²d õêÕKð.„‘4²°Â `b`UD¬Èµz#08xLV¯^=«;C™¿œc÷Fìö¥ —†õÙ¥z,[üÿÅÂå?jÂ\À¤ qd]xÎQ‚e‚BÀjGÂ3Aø"%ò¯ÀÈ`Maµ‘I`"ƒ€töŒ ¼7Þ€o0Èaã<ØZYdjà4ÁâÂÒ;CYpGˆU©@$ZÉ 8żœÉTlÓ 8}%e`NMÀ…|(ÅùY]¥±G±– ¶ãôšâ@OÚ9Ç*X cøBCÌË®Zú!ÛÀ ³ú"âgë(mób,æA” ¼è¤qÚß² vÜ1È‚`¿:Û€ìI¥J•d~ì;+%ººÃÙ}tþøñ£bÁ¹áklyi³fͪøw×Ö¼X˜Œ‹¬ Ή8‚@M™2EÚØÃIó  ñ ¸`xtàÀÎÊ,«rp*ã^É8Ì ÌŒõu¶¼c…°ÎÍðG05G#FФã‡-[¶è*ŸOo˜ZäB^—Á~úô飨­¹õfíWl-ÀI8Nƒ2pÁ^{?/ ó°Sz4iáE˜Ï Ý¥O¤€8Û ø÷§Vð™Ø#H «ç@ÇØVÿúDpŠ@Z§×tgð¼ÔüAˆ€M·“¾c¸á¬–2žwÎõ<ˆ@¥7áôG ÖD¿ .y÷î݈€“àÚfñDúøØáa`>oä ê¼õ ¤ø.*Ý¥þÈ¢÷üœ?~=Ìå þØy Œšð1Ƹ¡ °ÿ<îǬzê•uÿTx‘÷;w®äV‘ ”€9Ñî6 ÍC#c]Áƒ§5M]ôr ÖÛ¾þªâÊííæÝpà_sÿ“‚1¶d¨ìkÿólƒ}qón8á ÷ÌØ rÀoPÙo ¼lÀ½† bða ˜×In–—?ôEÈ9±)Dð‹9ü^ÃInÙgS6ˆ©p³¼1u£f_†NáurÄ”C†FxCæªÌF0Âëäˆ)‡ þ-r0Hàu1IEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1CompressOption-members.html000755 000765 000024 00000013374 13515046515 027236 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::CompressOption Member List

This is the complete list of members for mysqlpp::CompressOption, including all inherited members.

err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
set(DBDriver *dbd)=0mysqlpp::Optionpure virtual
~Option()mysqlpp::Optioninlinevirtual
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1SQLQueryParms-members.html000755 000765 000024 00000020677 13515046515 026746 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::SQLQueryParms Member List

This is the complete list of members for mysqlpp::SQLQueryParms, including all inherited members.

bound()mysqlpp::SQLQueryParmsinline
clear()mysqlpp::SQLQueryParmsinline
escape_string(std::string *ps, const char *original=0, size_t length=0) constmysqlpp::SQLQueryParms
escape_string(char *escaped, const char *original, size_t length) constmysqlpp::SQLQueryParms
operator [](size_type n)mysqlpp::SQLQueryParmsinline
operator [](size_type n) constmysqlpp::SQLQueryParmsinline
operator [](const char *str)mysqlpp::SQLQueryParms
operator [](const char *str) constmysqlpp::SQLQueryParms
operator+(const SQLQueryParms &other) constmysqlpp::SQLQueryParms
operator+=(const SQLTypeAdapter &str)mysqlpp::SQLQueryParmsinline
operator<<(const SQLTypeAdapter &str)mysqlpp::SQLQueryParmsinline
Query (defined in mysqlpp::SQLQueryParms)mysqlpp::SQLQueryParmsfriend
set(sta a, sta b, sta c, sta d, sta e, sta f, sta g, sta h, sta i, sta j, sta k, sta l)mysqlpp::SQLQueryParmsinline
SQLQueryParms()mysqlpp::SQLQueryParmsinline
SQLQueryParms(Query *p)mysqlpp::SQLQueryParmsinline
sta typedefmysqlpp::SQLQueryParms
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1SelfTestFailed__inherit__graph.png000644 000765 000024 00000020640 13515046516 030471 0ustar00tangentstaff000000 000000 ‰PNG  IHDR­·`âÞ¾sRGB®Îé!ZIDATxí]˜TE.rÎ9 HQDNI‚ 8ÄõÄž  8Ž Kð`%HÎ9çÌb_ý…=¾Ý™·;»¼ªï›™÷^§ê¿ÿ®®ê÷f&1æGRQ"m阴&rôUMŠM¯ (‘†€’6ÒFLõ%%­’ âÈèáV9rÄ ª¨È!åÏŸ?@jÚ^öi¯\¹B¿ýö[Úö\[s…@¶lÙèî»ïvU&µ2{‚´¶sÕ«W§¼yóÚSýô»wï¦}ûöyDRŸÖ3#¡Š„Œ€b!C¥½‚€’Ö+#¡z„Œ€’6d¨4£WPÒze$T¸îHGÇŽ ÀÂ… ©I“&Ó½œpüøqºté’¨8räHzíµ×¼¬nªévÝ‘ö§Ÿ~¢ ÐåË—ý‚†›ÑÑÑ~Ó¼~±páÂ4~üxQóâÅ‹tþüy¯«œ*úE4i÷ïßOsæÌ!|B.\¸@‡’ã;vÐï¿ÿ.Çà•+WÒÑ£GåÜùËŒrV×Ix¤¯^½ZÊã&yPÿ‰'l19Þ»w¯¯ÍS§NÑܹsiݺu¾<öiK—.¥;wÚKò ÝQ7ôœ?~<}wíÚE¸sxàÀ:sæ µiÓ†è+¾BÏ3föU­X]‘¾uëVZ²d‰”·éù‰G¯µ0I ’áå/$U˜<¦qãÆ&S¦L&{öì&cÆŒæ‹/¾0óæÍ3éÓ§Ç£–†o;šíÛ·v ß°kéÒ¥3wÜq‡É‘#‡¯_|Ñ*TÈwž/_>óòË/ËùÆM•*U¤,Ú(Z´¨ùùçŸÍÙ³gMÅŠ% oÎ;g*T¨`øŽ‘a’K_ØÚ›Ì™3´Y¾|yÄ‘:ÇŒ#:CwèÙ¨Q#Ãä—4ä¯[·®ènû6qâDIc++ùÑ¿>øÀtîÜÙÔ¬YSÒØ2÷Þ{¯ôú#O¯^½$ ú¢fÍšI½8F7mÚ$顼ñ„‘~‡’7 òÄ`ö^sqKÚ~øA‚-Šá%Ò¼ù曦D‰†­‰™4i’¤±ï'ýºë®»Ì=÷Ücø6±Y´h‘)Y²d<Ò‚ýúõóaлwo%çµk×65jÔ0ëׯb6mÚÔ”-[VÚY¶l™ gÏžB L„Í›7¸L™2æ¯ý«”ÁÄn/½ô’Ù²e‹ùõ×_7'Ož”z‹)bºví*í´Å‹7lÅeb<þøãä?}ú´¤câ|ûí·rì$-ê©·mÛ&i£F 0‰-i¡Œ&qîܹ [iÉÊ›’ÖJnI»bÅ ±`O=õ”™5k– 0È q’–—RÉgIˆt °ÓÒâš?Ù`•@ÊØØXy :T®Ä=zˆUƒeûüóÏåš% »-rŽ7^’EÏAƒIy¬*¶NXÀjÕªI^¶oß¾¾rÈ0A H[ªT)Ó¾}{_9ðÃ-¢»Õ'&&Æ—ŽIüüóÏûΓ:ði=õìPHÂË" 6L^¼¼»Ô­[7êÓ§O¼òlYÅdkë»Îîï8Øõ7GŒAß|ó/+[jŸÌO  œ9sRË–-%|O»ò‰·:uêÈñ”)Sä³uëÖòißP§¶äöx—cë§ûðUáKóŠà¸JÄ®L¼'çÄYÁÃ/Ö?·×"é3"IË––Ø:ÑÚµk%2dõïߟž{î¹xØ,XPÎ׬YC¼ìÊ1ʆ"6ÿÇL­Zµ’" [IªT©’L†Ž;‡-¶.]º[[âå^ò"c (Çl¡ ö+VŒØšJp–+W.IckJØÊ²â|0A„Ý ›œè“­¼A˜ö¹‰ýqŸÞ¸Ž|×$µ4¤Eº[÷à믿6ð/^l”aiΚ5«9xð ™6mš,©<ˆ†£tɇåð×_5³gÏ–s§{0nÜ8óöÛoûºÙ½{w?UÕªU |b”…K¿þ*ÚdK/íÀ `bË1GîâLJmРøÑh3K–,†·â¤¸o¼ñ†á º¢ðO!pJ—.mòD3µjÕ’søê¶â>ðŽ@¼@Œ'«W&L0H{ÿý÷Å߆m݃={öHxCð×®];ßyR^s"2Cô^¿~}! ÈŠ äÃ?ì>,çlU$b‡Ïkw@˜æÍ›¶r¾qêСƒÙ^påÊ•“vP|Gø—x°kѶm[)#êgK*>eЖÓß>|¸ix5lØÐh´ØÝÀÎÒ°sÁ[cV5Ó¢E ¹Ž Š-»L($bÔ«WOÒÐGL¾ù åü‘;/N| 8PÒúÆ­¥µUÀú-_¾\,Ÿ½†ODð|Áw $Gðê–š¯ @7XmÞç•cgZ°cXê 6ˆ. óaçd²Ñ¾MiÇŽ+[`6سiöÁ¥Ý±×ð kŒÝ \Ø‚ §x´éÓ²©\¹²=Œ÷É–†ð²‚@ Á[r„#vñŸÝ–… ßןð–SÐoäÉ“‡ðò'ÖgN˜ÆûÁÄûÁ /_—çבwùãÃ>¬Ü‚Žüž¤n"ÚÒ¦.4i_;æQIµ´Ic¤9<†€’6•dß¾?¦I¥&nØj=åà©)ŽÖ#~0.^Œ£N&ÐðáOE|_ÐpàÅÄìH²¬f%mèX%™?l/\„É“ÕEˆJ O”´)Ðß½û­Zµ[¾Ñ`¯á.Âĉ±‰ÈìÌ£ÇîPÒºÃ+`îÉ“!XUròä9Z´h“¿$½– ”´ÉÍ_‘\.VÕ_ZÆŒØEˆõ—¤×’€’6 %,‚½XìÉ’¸¸+4mÚ¯üë1q²èu(i]€(+­@®-sþ|œïN™½¦ŸÉC@I›<Ü╚0!Fî‚eΜ¿"~õgΜÑ÷â_G¢I“ÔEˆ\2O<ñÀL2u÷D1}6“5kY“.]ÅÄÁ‹nݺ¥˜k\ALØþs¡aÆô /¨Pü"ðöÛoû½žœ‹a#m¹rå¨yóæÉÑAËÜ 4(l½TŸ6lPjEi…€’6­Öv†€’6lPjEi…€’6­Öv†@ر°i”a—ãÁä?¨k‘j­}úé§4cÆ ¿õ£Ý¶mÛúMKÍ‹qqqtêÔ)ÊŸ?¿4Ó¦Mzä‘Gè‰'žHÍfÃ^÷ ii.\HÛ¶m ;˜Î ׬YCË—/§’%K&zåɓǙ5ÍŽúé'*P ]¾|YÚƒ—•xÀ4nÜØ°”rC† ‘$€‚bðQ/€íÓ§9{ö¬ùî»ï„H[¼xqÃÖGò>þøã†—PsúôiÒ¢ž±cÇ aF%çS¦L‘6Aî~ýúYÕLïÞ½MTT”œƒ´l©¤Ôã|±…•<Ý»w€ÀlÁ Èb¢/h“çhçóçÏ7ƒ63f4S§N5lå [rIcWÄXÒ>ýôÓ†—~³yóf!b«V­¤½I“&I^¶ÈrnI‹‰pÓM7™G}Ô ç8æUÀ°…Ò¢}`tôçìbI=¡¼…“´×̧e ©V­ZÄ3X–*ž¹T§NâÙ.Ë!–0òñ ÊÒväÈZ°`1d‰ÂÒ:räH3f ± øh¨“É$K:nbioÙ²%U®\Yêó÷Ö±cG*S¦ŒäíÙ³'=z”Ö®]+Yo½õVbȲϤ'ÜùƒO a‚ò[áIBÍš5³§â&`¹Oø²úöí+ýçI)nÐèÑ£¥ž,±Õ–s´ÏÄ%ž\4nÜ8Â’¾c©¾ãŽ;ˆ'=Íœ9ÓVKï¾û.eË–n¾ùf‚ÎÀ,˜üòË/â2¸\Ð÷ÕW_¥½{÷Š›²èw§N$ý¥—^’êxR«6ÕÒ®‰O‹ÞÀOµ @:+ðKyöÊéßÿþwzå•Wˆ-˜ üÇÇ{LÀYAìÀŸ«W¯ž Þ®]»¨zõê¾­³téÒö0ÑgÙ²e}×à·B¬ÿ‡Ár Òmšóº¿cø´lý%É5øñ­[·&vˆW™8H€þN

Ù*J^¼%Ü=@/è1tèPIãRž'a?Ô0‘å}C`‰òì¢öwå:,‹¶^°v'Äbì×K:6^¥ »R–Ý ÌPvëÖ­‚§Ý=`rÞj“rh—ýaóÛo¿I¹.]ºÈ‹œð“ZòYÝíõ`Ÿá Ä0ãR,nIë¶A„åÀ%QQö¹$ÚÆnBBÁ ­_¿^¢ì&MšøHëÌÒ":Ç@ ¯S@Z¬ oÆ¶Ž¾ áÌ“šÇØÁ™ý »²KÂ{¨¾dKZè Rb'&¡`7˜ù^• ¯,†]“xÆÁ_^·×ÂIÚkˆñlIààv(¶l‰ÊàÏ=÷Ü“è:.`“ÞnÔûÍà¸ß9Ð*¶XrÃÑ=Má»' ÈlÃòð $ H›Á^þv&¼.ž'-|2ø€´œ¬[`«V­*þcÂrØ"ñý î~!øŠA?Ð/M©]:˜ù”VÌþb༫(þ@P‡ýè0|ƒ!6"vü ×n\”´©4öqqW÷XS©úºZ%m* ÿàÁÞVM¥&nÜjÝn]øË¯¿{?6s梦X±WyŸõêSlÌ.Ù×¼Ñ?Ãõ”WX1<@êýøÁ}[ÙàíÙsŒ§`wðLšJÚ` ž VÔ~Ý;PN:*êêײåÑë¡!àù¯Û„Ök—ëôé üåPâç Jú”ÀNÂîÝÇø^Šð´ýi‚÷ìùókÞ¾Ìzà}`Æ5dIˆŽÞÄ¿}û­_?€¿,™-éšÃ úÀŒ´4¯7PŸÖã Z¸@@Ië,Íê ”´ÞÕÂJZ`iVo  ¤õÆ8¨.PÒºK³z%­7ÆAµp€’ÖXšÕ(i½1ª… ”´.ÀÒ¬Þ@@IëqP-\  ¤u–fõJZoŒƒjá%­ °4«7PÒzcT (i]€¥Y½€’Öã Z¸@@Ië,Íê ”´ÞÕÂJZ`iVo  ¤õÆ8¨.PÒºK³z%­7ÆAµp€’ÖXšÕ(i½1ª… ”´.ÀÒ¬Þ@@IëqP-\  ¤u–fõJZoŒƒjá%­ °4«7PÒzcT (i]€¥Y½@¢_ÿùçŸiÈ!ÞÐ.Bµ8>ÿ|}N*_þÿ|=ÿ¶½J²:t(.\ØY>6iÇOO>ù$5hÐÀ™Q4EàôéÓ´råJÚºu+•+WÎÙvlÀ? éÓ§3£+iŠÀÆ©cÇŽ~ÛTŸÖ/,zÑË(i½<:ª›_”´~aÑ‹^F@IëåÑQÝü"0ó›ÛƒgÍšÅ2·ž^ýõTÕîüùóôïÿ›–-[Fˆlo¿ývºûî»éÁ¤L™2%Ùö‡~HwÞy'ÝÿýK'N¤ªU«Òž={èèÑ£Ë÷ë×2gÎ0Ý_•+WèìÙ³”;wnIž4ia+ÓŸtêÔ‰Š+æ/I®íÞ½›>ýôSzë­·èÒ¥K²Ú½{w*X°`À2þ~ýõW;v, 4È_²«koiêÚµk]u:9™øôéÓ©Fô /P¾|ùèŸÿü'ýë_ÿ ©ºU«VÑþýû%ï'Ÿ|"ĉ‹)B%J”×hÆ ¾s\OŽ,]º”}ôQŠ‹‹“âÛ¶m£uëÖQ¡B…½2f n·ðŸ¿˜°†ÿKõÌ™3´bÅ ºxñ¢kµNž+‰rè ¬fúôé¥{޲S¦L¡§Ÿ~šžyæ_›éø_šgΜI;wæ!¿ú¸Àý9räðåµÐx5nܘJ—.M•+W¶IÔ¿Ú²eK¢U#X°Ò;vì ›nº‰ ( }8~üêðb/^\êG¿»uëæk+áÆ mgÈÊ–-+ OÉ’%é½÷Þã¿KÍC¶^gÙ`º?膉NI1iÑÑW^y…ªW¯NX ÕªU“% Ë ä–[n!X—÷ß_ÈûñÇËu àSO=E¯¾úª”éÙ³'aF^¸pA–ŸÁƒËÀÂJõêÕK–<ãæ›oâýç?ÿ‘zìêé.HKÓ¤IÂrö¿ÿýÞyçºí¶ÛÄê ¤µ„ÂFv×®]é£>’¾8Ï+Uª$mâc ìrýì³ÏÒ}÷Ý'̓ب î “à¹çž£–-[Zõä³C‡R×W_}%“(Ð^$2«$Ã’ =aK=¬³Å·M›6ôÝwßÅkßßÉêÕ«`Aÿ0^06Ø/ÅøŽ7.^Ñ`º!#Æ ã CÁ˜…KÂæÀªàn:ˆeúñÇ…lXš0ã6lHÈÎØèèh±PøÑ£G y°£X†©S§ ñH°Šùly ÀŠÂ¿ýïÿ+d±—,YâË _lÚ´iôí·ßÒ©S§è‹/¾4XmL k½ç°øM›6¿Ë.&Á˜1cÄÅÅDŠŠŠ¢9s戵DÛ°¾_~ù¥,÷¾Æùà‡~•$aQ&X .”¥˜§-ZÐ7ß|#–=l`‘aɯyóæI>èyë­·|_à« |‚I0ÝPnĈ²Ú|ýõ×2` Â%a#m«V­Ä:ÖªUKt{øá‡…„öKÕ½÷Þ+ËÈ Y°`Ýu×]²ôÀB`VcÐÁaÆɠnÞ¼™P¶Y³f>ÿÖ3ðx@ÚA>˜õV`}à^ =¤ÛÕç°‚vžc"À}ì±ÇÄŠ#({þùç  2wî\ªX±¢`7–nÊòåËmÓ®?ƒÕi—ýÏ>ûL ¬>¬ªuS6†à ÖÙù²ya_{í5 16ð]9’°ŠxçÁtƒûß`<°º…ó±€»¶'°Œ, :ăå~"nX t„Á²éáÀÊbéÄ’4kUábX æ#ÙÁ´yá×Ú:pÍ’ÇHC›I ¬Ô¾}ûÄ…e…```M`Í0¡àÇby¬ÀO·ý·×Ü|«.Ëo¼A“'O_+EÛ¶mý6‡NàùŒÇÈ‘#ÅŸ/S¦ àII0ݰšBœþz8݃°‘6ÔÁ‹ßK4–ݺuëJcbb¨uëÖâWº§²…HâØm…KB‚7§…€oŒº¥[A=v‹nL° `Ë –\,¿ðƒ!˜¤O<ñÍž=Û§êÂòkeñâžüöš›Oô7P°dö°ü¢OpÅà²<ôÐCnš ÂÂí»£ƒ>`u &Átƒ>ìZØ1Ã*. ›{ªBuêÔ‘esÔ¨QbmmP3cÆ ÙÄn–ì1byÅ ……Æ€`ÙBà. ƒo ŠÁ@Àe]”A»¨® ÅÚµkKUð…±üïÝ»7Ñ9–7øì´¶oß.þ:öWá_câÁê¡_¨V mC_X6´•\ V'b„Þ½{Kü€í7Dù v?ì6ú„.)Ë€:ÛeˆìvY ²Átƒ…E}ð‹1^—@u¹½6K›TÃÖƒ¤p  9­¢ll¤# è°h]ºt¡ìÙ³S=$í‘G‘å €mÂ4{K•àI{›”ìÏ`uÒxY×+”†An'Áa©C‘`ºÁ½ƒënI3÷ŠcÉÅ%,-5Jv_¨32µÁ¯ t‹R¥J›U?#kâD0^ªz!Ì=H ¤‘RÚŒ"\”´ÉENË]3”´× zm8¹ Äì~cr+ÖrŠ@JÀ>{ IDZìÓa³YE¸–`+ [œþöwí\KEµmE bÕ§ %Íâ-”´ÞÕ&”´!€¤Y¼…€’Ö[ã¡Ú„€Àÿ.x˜-I3ÅIEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1BadFieldName.html000755 000765 000024 00000035366 13515046515 025062 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::BadFieldName Class Reference

MySQL++  3.2.5
mysqlpp::BadFieldName Class Reference

Exception thrown when a requested named field doesn't exist. More...

#include <exceptions.h>

Inheritance diagram for mysqlpp::BadFieldName:
Collaboration diagram for mysqlpp::BadFieldName:

Public Member Functions

 BadFieldName (const char *bad_field)
 Create exception object. More...
 
 ~BadFieldName () throw ()
 Destroy exception.
 
- Public Member Functions inherited from mysqlpp::Exception
 Exception (const Exception &e) MAY_THROW()
 Create exception object as copy of another.
 
Exceptionoperator= (const Exception &rhs) throw ()
 Assign another exception object's contents to this one.
 
 ~Exception () throw ()
 Destroy exception object.
 
virtual const char * what () const throw ()
 Returns explanation of why exception was thrown.
 

Additional Inherited Members

- Protected Member Functions inherited from mysqlpp::Exception
 Exception (const char *w="") throw ()
 Create exception object.
 
 Exception (const std::string &w) throw ()
 Create exception object.
 
- Protected Attributes inherited from mysqlpp::Exception
std::string what_
 explanation of why exception was thrown
 

Detailed Description

Exception thrown when a requested named field doesn't exist.

Thrown by Row::lookup_by_name() when you pass a field name that isn't in the result set.

Constructor & Destructor Documentation

◆ BadFieldName()

mysqlpp::BadFieldName::BadFieldName ( const char *  bad_field)
inlineexplicit

Create exception object.

Parameters
bad_fieldname of field the database server didn't like

The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1BadConversion__inherit__graph.png000644 000765 000024 00000020543 13515046516 030371 0ustar00tangentstaff000000 000000 ‰PNG  IHDR´·»YtœsRGB®Îé!IDATxí]˜E~ì.”œƒ€€ÄAE¢áä@‚'**¢àÉâàw Ï3€ˆð¡ˆ¢œœEŽŒ$‡–œs†%ò»P÷þçUÓ;i—f¶§êûf¦»«êU½¿þzõ^uÏL6¥Ô2É à²1¡•Kt1j(Æ``p†ÐnM£‹±Ð†îB .Õ¹zõ*?>»fúôrçÎMùòå‹8<"’ÐçΣ-[¶DX¦C7(]º4U®\ùÆ…9ŠHB›˜˜jÒ¤I„ÀdºaG`ýúõöÓˆ:6AaD ‡éL°B‹ ©QBGÔp˜Î‹€!t°šú…€!tD ‡éL°¸žÐ—/_¦ .øÅiÑ¢EÔ²eK¿ù‘š‘ššJ‰‰‰V÷:wîL“&M²Î£õÀõ„îÒ¥ uêÔÉïøž:uŠ~ûí7¿ù‘š1}út*\¸0¥¤¤H1q“““#µ»·¬_®"t||<-_¾œ.]º$ž>}ZŽ1ØGޱ@ÅH”E¾gBž& D¼rå ]¿~Ý*†;˜Ë–-£ýû÷[×Μ9Cûöí³ê!ía²è„ò³fÍJsMç!±[Bl­ÀA^·n݈­1±;AÍš5YZæðáéC‡Roö`véÒ¥r]O«í D‰r–`]&HìŠÈ§}ÂȽ¹‚ÐcÆŒ¡×^{:DÕ«W—í, d˜8˜RpðF÷Þ{¯ Äã@’x)öÚ»……eÿTꂈ»{÷njݺ5aï÷wÞ¡“'OÒŒ3¨U«V²s«ÿ /¬+û¿Äþ<½ôÒK„6Û·o/Ÿ˜pG¥»<ĵiÓÆêv2Ð/”Ç®‰Nì{`´iÓ&6l•+WŽj×®-“ e¶mÛ&«Ž.ËŒÉY¨ƒ>`ºWªTIsïgzþR8òoÖ‡Fà… ;ð;yÀÅÏDßøáñkï¹çQeîܹÖ.v&تüùó[jÚå9r¤ÂN³A^l]%@ûüóÏå|æÌ™";ü¼b’ËùÀ­] ø¯ß}÷\çíD ô´<èÎ@ì ØDìNð–¡dó¤’ \ç §˜èÖ.|f^¤t¼óÎ;%FEøôØ9Ñ »4¡û®¯úŒdÚ»Ÿ÷Ž/É>£uÞ{U¼lv ØÕPl ­k=À¯›Ù€lìLøÛêbwE& úiO 4HÛž (ûÅž—åœ÷Ï%ˆDð‰-B'S$:"ÆA–ÒhÀæØ±cI‘lI#"áÞò v#¡s®ð¡#ÈPôoI< Ùn•éŠm;·n]›ts }sx™ÒŽ€!ô- ÈxÜü,Ã-€š"ÚåÀ~¯ÒÊ•û(!á0uíÚÐ ê¤yª0ÒŠXBã‘H~€(ÒðÊTÆ_Ç»6§©Aƒ™ª‰•p)SDnÛE"P™íSrò5ªQ£/?—LóæõæãR™eêeãCg¤`ŠüòË&s ÅÅÅð-ïߟ©Fž©CèÀø;eÊZ!sjêušqâê4Ûužeàv,X°•ú+É3Ëœ‰€!tzVß¹ó8KûÁ çÈ+/ì?ã•#Gœ¼`½Aê36xV7çA"±OÛ©Wتc¯yàÀviÚŸ={ÿÄB"ué’öOJ–¼=M9s<†ÐÁc˜FBõê¥ø·AÒ>Q‡ 199•Ÿ‡nš¦¬9qãr8©‘F ¡Ã¾iÚy ¡ÇÔH #†Ðaß4í<†ÐÎcj$†Cè0‚ošvChç15È€!tÁ7M;€!´ó˜‰aDÀ:Œà›¦GÀÚyLÄ0"`FðMÓÎ#`í<¦Fb0„#ø¦iç0„vS#1ŒB‡|Ó´óB;©‘F ¡Ã¾iÚy ¡ÇÔH #†Ðaß4í<†ÐÎcj$†Cè0‚ošvChç15È€!tÁ7M;€!´ó˜‰aDÀ:Œà›¦GÀÚyLÄ0"`FðMÓÎ#`í<¦Fb0„#ø¦iç0„vS#1ŒB‡|Ó´óB;©‘F²)NN¶õêUÊ•+—“"³¼¬ìÙ ó_$çä_ñ?’åuqR Ѓ>è¤H Ù_RôéÓ‡êÕ«çhg0w pþüyþ¿™.!Q&d„nذ!µiÓ&$6B³6'Ož ™Ƈ´Fp80„ê¦Í!`2hàp `ÔM›!C dAaÈzì°à}ûöÑ+¯¼BcÆŒ¡R¥Òþa¦“M >œfΜéSäSO=E/¼ð‚ϼP^¼|ù2]»vòçÏÏ缃zôèAcÇŽ¥âÅ‹‡²ÙÊŽzBŸ;wŽfÏžMÜP¦7ÒªU«èñÇ÷jæöÛÃóÉØ:ƒÞ?ýô“ûâÅ‹týúu¯þe¥ a'4nÄ=z”Ê–-K €Z«V-vË–-„üÚµkóŸ¿g§Ó§OË ¬N‰‰‰tåÊ*]º´\‚¬Í›7S5¨dÉ’º˜ÈÛ´iÿy|ºë®»–ÙÓ"'''Ó™3gÄBm۶Ξ=K÷ÜsÔ 'Nȇ>&$$H¿ .lµ¾ÆÄÄH_q¿*))‰ræÌ)×Pý=z´UÞ~pèÐ!¾ù’ÍÒ}9~ü8*TˆòæÍ+„[¿~=]¸p°% þ|©¿páB9ïÚµ«b²Ye=þþ÷¿‹Ü•+WJÎùŽ«b¢ªS§NI»À†'ˆbA}ýõ×Rnûöí }Dt.Q¢„¦HôA?yI=à¡ÇaïÞ½RwàÀ‚5O()½yHOLôX mµHç ƒÔá;…锼ùlºù*kd–ÐmÛ¶U‡VC‡eA*¶jüøñrâÈpäÈ‘Ò ƒó¯¾úJýøãRäc‹­Þ|óMÅV[ñª@ $c몞yæ)ëÐ;vT¼+¼X±bê¹çž“ö@h¶êŠ­»bë¦Ø}Pl©[MÉïß¿¿š:uª£.ß-Uš 4ˆøì³Ïz½Øí‘>ƒ˜5kÖThL¼aƉ¬W_}UX[·n•þC[RÑ “WÉCŸùf–ªP¡‚äiBûÓ×;’ÐK–,|¾ùæɃ.ìW+Ž5ä„FûkÖ¬QlÝƪnݺ’—‘·¨ 4û—‚'æ¸qãäƒ  ‰ò裪‡~Xò¾øâ ±Xì¨Õ«W‹%yúé§Õܹs…p 6R¹rå®ëÄ®G@Bƒ8:ab”)SFNAèAƒé,µvíZ‘³|ùrëš¿¤|ñŽ^Ð :ÀÊâ… “ zùå—åo˜ø¼)Xg`Ó¯_?é úóùçŸË5è  íO„îÕ«—b×JV=Ý(Úg·DNÑà¢ÓgŸ}&åõyzŸ¡$tØ}hI¼TÊ'¦|V®\Y>áW"1HòÉÖIvpû>ßc=&~-ž1b„¼š7oNìvPïÞ½‰­&1èþûï—úxc‚[ǾØÂY—ÙB“ýV­=Oû›<@Vù@LbWÁoè_•-ñŸAúW'øþ;w¦E‹É¥Q£FÑ·ß~«³‰' ø·ú‚½Ïžúè2öOÄ2èâàG³ë£O rtÊ;·øïú<œŸ7zÎ^pÛvðu¥}ûöò4‚+öO©S§NRœ­›“üä°Hƒ–¦H‘"ÄîŠ%vÏž=Ö±¯Ô׉—_*_¾¼>ÙúdéÒ¥rhÏ×y™ù„Nle ““ñL}:±ŸMݺu³¶×8¶ vµä…úü1U­ZUOÓgO}¬B¶à¨² ×®§64¶jq1„Î(ˆøÛµkGï¼ó(P€Z¶l)U±³ñÄOH†}TÖ» °ØìÊîvEÞ~ûí€ÍA6v8°°ßM­[·¶ÊcÀž-œ}\±öØ…Aâe˜¦L™"ÇìÐk¯½F»wï–s¼ 3fÌðzaÇ„}mêÙ³§ûÕX^ýu©‹IÌA¶ÈÆdä˜@v #vs°Ç½aÃÂÎ ,7ú½uò§vJ0y¡«=µjÕJv”€ò0د'vÛìÅ"ó8=çfó3"DâPGêL9‡?¨Ó¬Y³ä¸¾$>3‚FYvÌ}ôÑG’`Rïl ;>2äØ¾Ë¡Ë—e—F1‚]§N+²G·lÙ2«éír M_/øÕM›6•€ñ’ŽyÈî‚ÞÂÎvk !X®X±¢%þ­öéµíOŸ~øAüu•ö rûöí+1‰ÞÅ@ bI† ‚b’ø¦”¼ú<½ÏPúÐaßåHOy_ù ˆavt9\C€‰m<{B€ÅÖR±(Õ„¶—ÑHII‘²¼lÏBcפóÕvšÂ!8Á¤÷ìšAÙÊ«øøx9ÖM§§ÊaKFÃWÂv!&‡¯6}•ÏèµP:b‚B&X†\Vp5pƒÄ3ùº†2ðùØ’IqÜPH/é²¾ÊáæJ8îîé›Gž}‚k…›Q’?}xUñ[ 7Oì7ŽüŒ Œ,çCÃoiy/:Ó0ò2J¼+>¸]—g뎘=ÇÈËJœž>žú¹ád,\¸r É+nÇÔ©æ&‹0]0„vHO1“'¯áÝ ox ·Ã-çνwNvÔJºr%…i»¾Ÿß8zô,ÅÇïZ|B©¸!tÐ3gÿýDª_ÉÆíð MІÐACè-îFLŒÜôÎä+p;P†¿æ3ß\Ì<†Ð™ÇÎgͳg/óÏ+lãߢóínèJ(·dÉN}j>BÀñg9êW–³~ýAþÇ2i}âÄþá—dþɃ?ìˆï8nÝz„š4¹ñ2YVéê¸ã_ÁŠ Ý"¦+LãjÙGÓ§÷ˆ˜>¹µ#ÆåpëÈF©^†ÐQ:ðnUÛÚ­#¥zBGéÀ»UmCh·Žl”êe¥ïVµ ¡Ý:²Qª—!t”¼[Õ6„vëÈF©^†ÐQ:ðnUÛÚ­#¥zBGéÀ»UmCh·Žl”êe¥ïVµ ¡Ý:²Qª—!t”¼[Õ6„vëÈF©^†ÐQ:ðnUÛÚ­#¥zBGéÀ»UmCh·Žl”êe¥ïVµ ¡Ý:²Qª—!t”¼[Õ6„vëÈF©^†ÐQ:ðnUÛÚ­#¥zBGéÀ»UmCh·Žl”êe¥ïVµ ¡Ý:²Qª—!t”¼[Õ6„vëÈF©^^¿à¿bÅ 2dH”µOžÌÃIKeËÞøßïд]R[·nMÏ?ÿ|¥½þcåàÁƒ4qâDjÚ´iš‚æ$8ræ$:q"8¦ö Ö­[GeÊ”IŸÐºÊ€ô¡ù4DûÛß|öÉøÐ>a1³*†ÐYuäL¿}"`ís1«"`UGÎôÛ'^»>KEðŹsçò?²n¥=B÷§–/^¤Aƒ¥A!_¾|T½zujß¾=ÅÆÆ¦ÉËÈÉúõëiüøñôá‡ZŧM›F¿üò íÝ»—òæÍK5kÖ¤.]ºP‰%¬2‘|ðÏþ“4hÖ²,o¡±Í¸iÓ¦Žsrr2­^½šräÈAU«V¥J•*Ñ•+WhĈ4|øðLµ}îÜ9Ú¸q£UÄþôÓO©dÉ’ôÊ+¯PãÆiÆ Ô½{w:}ú´U.’’’’(%%%¬] ÚBc°©hÑ¢¼ÏzBºbÅŠtýúuÚ¿?!ˆ‹‹£ãÇSîܹé¶Ûn³”>yò¤\ƒÅCÚ±c‡€(«´{÷n¾9Q–rò¦îÙ³g½,×¥K—H)E¹rå«] @)úÂ… T¨P!:pàÁêV®\™²gÏ.M úŠó˜˜‘£Ïuš5k–Æú¼úê«´xñbzýõ×u‚>G¥*UªH?¬ >€¼}ûöQñâÅí— ÖzÖ¬Yô—¿ü…žzê)+ïÑG¥nݺÑäÉ“åÀaûöíRmäÉ“GŽÏŸ?O©©©”?~Á “¯|ùò²z;vL,>òtòÄc‡ñîX€&VˆC‡I[ÀÉ×8õìÙS&½à·ÌôU×ÍìgЄ޵kýõ¯¥»ï¾[©U«–(¶víZé–æaÆѻï¾+Ć%B)Ÿ~úi1P§_¿~Ë…™^¤Húä“Oøßˉ¥zë­·„ÅŸ¾ßyçBJÀž @Ÿ9sFÀÄ·lÙ’úôéC+W®¤·ß~›ÿX¾6mÙ²E²?þøc™ŒñññôÆoÐСCEû9Êy¦k×®I_+T¨ Y< è¶mÛdà¡ÃŸÿügzæ™g$ÖúA$è Ó¼yó“ïOú“¾$Ÿ0è&0RBBõïß_ðAû 3ÎëÔ©Cÿþ÷¿EG\Ç„‚A©W¯ž¸4ÿøÇ?DGíÞ€ü;v”qÃÝ6`× ®&¶î7 R×®]e/Z´ˆúöí+„÷7N(  ²3ÛWŒo0É1—³wAn,¥˜Ý&L ‚e‚…ƒ¢ Òo¿ý&}衇è»ï¾Ðg̘!r` ~þùg!Þ| Öô?ÿù”Óõ})ë zΜ9Bd~éÒ¥VQL”ÿþ÷¿B ì—_~)y°B˜\Ú_õÜ}`|ðAYÎAd¤… Ò}÷ÝG·ß~;•.]Z–Rƒ ÿKðÎ;ePÚµk'K5ÊÁêúKwÜq‡ Ü”ƒO ë¨OËÁr„ó—_~Ù"´ç9Ê`’áv+ÚÀª ¢"a²~ñÅb—/_.d¾|ù²¸d°ÜO>ù¤ÔIíÀšÂ2JÀ.A›6m„øp` O:%DF]èÚ¡CÉG9$Lô m,Y²D®-X°@‚7¸~Báº`¢Ã¥ÃÊ—mÕªURo°¼ 3\@à—Çsœ¬Â|L_ír2sìm2#…ëhßJGüPI/!0÷þûï',_P  î¬üW_}%“yÚƒ@:yú ú:>K•*e?•¥\Ë@†¶À8Æ263š<}èÍ›7nÁbEÁð¸|SøùÐU'¬JHwÝu—¾”Æå€Kƒä×>±.‹Ë­ñùt*\¸°j Nð¡‘@dµnݺ‚; p‡EFÂ$Áă¡â=n¸¿Z'ã„Iªüq¤ÌôUËÈì§cÚ@ Î€Ë>f|Æ ¥8–ÇN:ÉK뎥¯`Á‚’oôá#úK°X:Á…µ°“Ø.D 49´Ÿš|ŠÇŒ#q¶ÞÆŽ›&¸ÓäÆÒ­“ìp—¾/0°'È7nœ`¡ ¬¨Nˆ´~Ænbš™3gÊD¾÷Þ{¥.È_†D¿à²ÙW)øÿ7ãd/l_í²nöØ1Bg´aìSbIûúë¯4mI4¶À`á°¤c9D9, > ‚PøÖþ>!¬H†ÀP»=¨ƒv!îøQð??ûì3:|ø°Ïs\!á‹¢üc[ 5ä⟰¦XæÑ_$´ËŒ‰‰:è?êc•Ò©U«V# þõ×_ÅjÂMêÝ»·È|øá‡ÅÚ(}jè0´õÖò|}b}ƒrë•ã¡ûÌÐoÏÚßö”åoœìå`™ƒé«]ÖÍ;ær¤×°¶ 0f?‚µ?þñV5ì¼÷Þ{bÙ<–á^½z a„!ï±Ç“¥Á ê¤eã.ˆ‰-:,ðÿHiÿ„…øØp^|ñEƒ‰„©I“&Bû¹Þå@àªdcÛA0|rÝè„þ#ÒÇrŽ: `—ýAÑŽöSA®Ênv‚tÂdþè£DdBnð¼ôÒK">³v :ùK0À}öìÙ„í@ž}öYñ÷Ñ7$¸NháâÙWÉä7­'¶íã„|=h+˜¾ê¶2óéõ€?–/B•ðÁ*ÀZÚ–]ÜõƒoˆÁ²'Dò¸‰‚ë°n ­ç¶þ È-'ø² $–ÖDƒ»£Ý{;Á£ÿûx7í^½zU,öuá¡_°¨zßݳ=øûp©àFè¥Û^Fïeë-‰íõÒ;†ß w ˜Ù÷«}Õ 4Nöò¡ê+Ú@ì‚•ÆóË(·ÌB£°ŽX²±lùzž– [Q¾,;öe3’ ÇÈxÖñ =ó3{Žví}„åÖ{È Ë!PÂ$ 4Ñ€ƒ=Ø $ëfòŠ+Fxe$'{ýPõÕÞ†çñ-%4–qMXæ0»2›ÍÛw ´l©Á*úJðo«U«æ+Ë\s·”и›ˆ-¹`9ÌÙeé›ökúw"GŽ©OͧKðE¸Ta£–»0„v÷øFv†ÐQ7äîVد­÷%Ý­¾Ñ.«"€-\_É‹ÐØ‡Ä.&"-ZÈc¾ž}ôº±âYÀœ²ƇÎJ£eúš.†ÐéBd d% ¡³Òh™¾¦‹€!tº™Y ÿÁ2³*·õŒwIEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1LocalInfileOption-members.html000755 000765 000024 00000015311 13515046515 027615 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::LocalInfileOption Member List

This is the complete list of members for mysqlpp::LocalInfileOption, including all inherited members.

arg_mysqlpp::DataOption< T >protected
ArgType typedefmysqlpp::DataOption< T >
DataOption(const T &arg)mysqlpp::DataOption< T >inlineprotected
err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
set(DBDriver *dbd)=0mysqlpp::Optionpure virtual
~Option()mysqlpp::Optioninlinevirtual
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1SelfTestFailed-members.html000755 000765 000024 00000014037 13515046515 027105 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::SelfTestFailed Member List

This is the complete list of members for mysqlpp::SelfTestFailed, including all inherited members.

Exception(const Exception &e) MAY_THROW()mysqlpp::Exceptioninline
Exception(const char *w="")mysqlpp::Exceptioninlineprotected
Exception(const std::string &w)mysqlpp::Exceptioninlineprotected
operator=(const Exception &rhs)mysqlpp::Exceptioninline
SelfTestFailed(const std::string &w)mysqlpp::SelfTestFailedinlineexplicit
what() constmysqlpp::Exceptioninlinevirtual
what_mysqlpp::Exceptionprotected
~Exception()mysqlpp::Exceptioninline
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1BadParamCount__inherit__graph.png000644 000765 000024 00000021177 13515046516 030321 0ustar00tangentstaff000000 000000 ‰PNG  IHDR¼·¨Ž4hsRGB®Îé"9IDATxí]”TUÒ.r’$ . HRÉÊ*îÏ +˜@XVwWAAáHpEAу‚ Š iɰ‚.°•—Œäœs¸}ÅÞÇ›žž™†ž×ô›©:§û…›ê~÷»uëÖ{=“Î3ŽT´À¼ ÜÏi£¯ÚKE€.¤W´„€>-¶ö•”ðJ‚4…|ø¨—3gÎÐÅ‹£^Ï´¬`îܹ)S¦LQ/¿wï^:tèPÔƒ™–¬\¹2åË—/ê!ðábèÞ{ïz@Óš‚W¯^¥ ø¦ÛêÃûf¨TÑ”@@ Ÿ(j¾A@ RES%|J ¨uø%¼o†JM ÒáÏŸ?Oˆë'&½zõ¢>ú(±ä¨½ïî×–-[¨aÆÊ 2Z¾ KÑý–nµk׎@Ž)S¦-¿aÃÊž={дh¾éîB…gÏž¥k×®E³Ê·E·TmáW®\I‹-¢sçÎ ¸ÇŽ“s~ÿþýàG%ä½|ù²s'üê4]¸pÁ!N\\\‚'¾{öì¡… ÒéÓ§²xP¶oß>çõ"ŸÕ„\±bÍ;—®\¹âäà ÚX»v­èƒ|VP‡}ø¶iÓ&Z¼x±£o`¿Ê–-Kãǧ‚ Úâf̘A«V­’~ÙÜGOœ8Aóçϧ·Í“ªŽ<¨Q/luͺuëBÖsÍš5¦dÉ’&GŽ&]ºt¦X±bfãÆæoû›\óš5jH}Ý»w7¸Æ'W®\¦T©R¦mÛ¶’6{öl¹ÏÄ”ë¿üå/†€Éù¥K—LëÖ­%=cÆŒ&&&ÆôíÛWÒÞxã ¹^²d‰s%Kƒ~ðä2µk×–r™3g69sæ4#FŒ|›7o6åË——´ 2˜Â… &¶¤ñŠ$÷ëÕ«gø¾œ#/O¤ýBôgÇŽR–Ý4“>}zÃOB¥ÿhŸ'‰¤/^Ü4hÐÀ@ôå†*i¡|ñ5sæÌqê ¥ÌmÌ3³=êåf ß¼ysS§NÃÒ°¥5<ð€éر£ôó¹çž3O>ù¤œïܹS¸k×®†­§ùì³ÏäÚ~ëÖ­¦K—.q&Nœhz÷î-e?ùäRN›6Í`Ї &e—.]jØb q+V¬(dÙP7äµ×^âa²ÛaZ¶l)“ˆÝS³fMsÿý÷ËääUÈ4iÒD& Ò,á¡?Ò ÓªU+©×Ý/7áyõ½FŽ)ùP®P¡Bæ¯ý«\ƒð˜ÄË—/7¼êL(àª(áCEê&òÝ,áA`XÔ>øÀ¬^½Ú°; 4é&ÆàÁƒ ûëÖÚJÑ¢E oï;V«VÍT¯^ݰk"+Ê{ï½'Ù—-[&“¤…€`/¿ü²œã rÔ¨QÖÖ+Ž­óóÏ?—{˜–ð8·‚~bõ‚¸ûå&|çÎ ¿Ø%“ß–CûìöÈ%ôA=V(ùíurG¿>UnZ™4¿¶ÿþÔ­[7âA¥1cÆPݺu™S7>4^zr¿åWµjÕ’8Ûµk—l yµpråÉ“‡Ø…’kž„ºx"Pûöíå>6‘ðíác[¹óÎ;©M›64oÞ<¹5dÈ=z´M&&t¼}»\N|ô#GŽ8×ÁNvïÞ-zð*ã$)R„°o±âöõ³fÍ*û›–ÚŽ7PHE=›5kõèÑC6yØ‚4 ~ äÏŸŸØb:›R¤ƒ ¡ˆÊ–[6£Øâ3hÐ jÑâú/&ÙÅ‘i™2eè­·Þ’M-H‡—àxÅrš`?Ÿxo@ìfȽ8uB÷~ýúQ¹råœüîÍ66˼WqÒ‚ð>€xÿo£ŠzÝåì$ V>µÝK•„>|8uèÐA"*T ;[¶l2v¼Á”ÍÉ“'‰}d‘—t¹Ç›N'‚ÌìfH=Û¶m“²cÇŽu&Êò¦–&L˜ «IŸ>}¨Y³fíØ±cuêÔIˆŒÈ¬ð믿.u ÏÔ©SiÒ¤I´}ûvâ .±KE˜x“†7Ý„H ,?tã ¥”Å×;ï¼#:# ƒö5j$iî~9™ùä‰'žýzöì)å0Áx“IÏ>û¬;[Ú9OÎG‹†ô›õá9¼&¾2"4ˆh°Ûb8<)]aÒŠoÍ!„­¯øÉ<âyøá‡Í‹/¾(iQø¾ØðA°qüÓŸþ䔵{¤¡^ O&\v­$ßôéÓ%šQ¿~}¹†~ìf~P$ù°ß(]º´S'ük«·õá]‚®Ø4nÜX6¾(ìî—Û‡G¯n±Q&»l¬‘V¢D óé§ŸâT„…DŽìurG¿ùðéСhŸÞÖí¸™÷áy ˆ#&Õí÷¢¯ˆ93aˆC‚ÒõÐÁƒ‰£*Ky3W~9ÜŽ¼yó†\eЖÛFaèþâX©R%Ñ÷±*4mÚTâöðËyƒœ l`¿PÎ ö4¡!žP ÊÙ<·rij¼ï“€Ä¦ÊM+„®U«VÐ1 $&&>·"Øãs³ÂÑ  E 7ˆž”€´Á$°_îàE² ~&¯ID²ÍÔØ–ZøÔ8ªÚ§DPÂ' w û÷Ÿô®r­9I|ãÒ VÜSÅ${E‰Ì¢Æ+Ó=÷\ØEªÝ´*xzì'ñ áñúíúõëý„mP]ž6m­„F[¶Ô?;$oú"ïaÿ#^õÂ…[éé§¿àXx.Z½ºWÄÛOã ÆªaLž¼‚Ò§OG‡Ÿ¦%K¶G¸umN A\¹r•Ý™Uü²šá§¬14yòʶ®M%|yðóÏùg~×FòÃÚÇÅùkÓA¸ÿüsOUnÑ¢E¢a¸ÁƒSéÒ¥=m?Xå'Nœ „3eÊDǧ5kÖÐÀƒeõí=µðC·yófúõ×_î¦üå¬Y³èèÑ£T¬X±ŸŒ3¦|ƒ!ÔX°`A?~¼ä¼té]¸p!„RþÊu@8p€Š/N»wï+X©R%ºvímذ^¹re)ž#GÊ—/ŸƒúÞ½{å^ž;^%J” ;vHù*UªÈ8…£é„;é©Lœ8OrÍÕ«WCjgñâÅ’¿~ýúrDÙºuëš 8×5kÖ4L8S«V-óÈ#8õ>|ØÄÄÄv /dž lxB˜téÒ¶¤fãÆ’wÞ¼y&oÞ¼†Ÿ HþjÕªž ’Ö½{wsß}÷ÉyË–-Mùòå O(Ã˼´ÿâ‹/JÚ”)Säº^½zNòîÙ³GÒgÏž-éüP%èuîܹMŸ>}$-ð‹‰mxbIÛ2:u2ÀrüøqÁi·=zHš¯¦M› –/6 fË–-’Ê×È‘#üCÉFžÑQëÒäÊ•‹öíÛGýû÷§ ˆ%uùî»ïhÑ¢Ebí[µjEóçÏ'&ºØÉ“'‹õƒezÿý÷Å :uJ¬,ñ!CèÊ•+ôç?ÿ™˜Ôb‘àÂ:tHÊûâI"þ<–÷#FÈgÚ´iNVXQXß­[·Ò±cÇèí·ß–4¬]ºtq,là52;–Ð÷çƒ>O™4Ò&íß¿Ÿ¾ýö[~!NôðÁ¥ÝíÛ·ËJÒ¯_?bÒÓK/½DíÛ·w ºÃïÝ»·£obý2d ØØXÑÛ)À'½zõ¼ûí7bòÓ×_-uòÄs²a5ƒ‹ÆÆDÆ ¯”D¥„1[B*z«ž]©–‚3°\&°\3¹ ,–ìË/¿”´Ç{Ì4nÜXλvíj²dÉb˜@fõêÕ²"`Uà ©”‡^VÞyçÇÂZøŠ+ÚlräͤX?káíªD´‰•$…gÈ´mÛ6ÞçÃ?tг»#«,ëW_}%÷­EÅ bå—_~13gÎ4ü±ô +ÀŠ+äËË.ˆd……O¬?ÈÀ„7<©$¯Û³ûbìÊ&‰ü…UXY}–/_n“dEn×®sÜI$-|ÔùðÖ*.\XNau ¼¤Ë‘—p92ˆÄË:5lØ&L˜@xu+„C,.VøÉð9ÇŒã¬5jÔ|ø‚õML£%ðã튂2¥J•rŠbÓ‡½@¨‚—ê‚ùð¶<“†`ñ±Oyþùçå6|mˆÝKàœ];hêÔ©r|á…äh¿°1¶’\l>{„û·`|`Ñ­ ïV°'bÖ^FÕ1j]¶j!w/ 6LˆÑ¤I)‡(\,Õlí$rÙÁÆØ ܂Į„ö¥iÕªUñ&ˆ;}áÂ…ñÒl¹[9bB¿òÊ+¢7H×¹sg©®x+¡ò*'X„‘Æ{ ùðJ$n‘ÍëÖ7Xl>{Ä8`’cƒo›g¸‚nCêxÙ:n×14VÝ.íBh—]‰÷ìÙ“Ûf7FJ!ŽÜ¡CñßÅÀj€hKÕªUeáãÃ÷†ËîB¢-a²`Õ€Ž „èÌO<áägwHêA8Ý jÔ¨‘¤h~5$ðÚÞ›>}:~°J€Àì¦Ð¨Q£ÄÊ:”~üñG‚ïŽ}»>Bl´ùæ›oÊ †¶áãC'Ôz¡+ÊYIª?ˆ|aò£nA½Ø±(iX5!ÀÛw’œnú­úð¼A•¦yÄ/…¯áК\Ƕÿ’7?·· of |OD1aáP¦áÍ®¤ÿôÓO⃢ ücvoâùðð­!ðy¿Š¼ˆPôíÛWÒ¬²Hƒÿ‹ý‡;%=¹( ‡¥Ê~˜äiá͵ԅWíÚµ ‡$eƒ¾±¥—r9sæŒç_ñņC¡Nˆn9sFêIª?ÈÀ›})‡>òŠbªW¯.åýªS§Ž¤/ÔÏEÒ¬oÇ 7ÿð‡?ÄÓI2&ñI±WOåf +ʼñÆÎÆÌ]ž#2:Lš@ᨋ„.18úâÞÁ¦õð’n8æì$[Â# !Avœ´Hœ <Éñƒ°e `c"ö;©þØ:8/|{mìVŽÒlN&MI‰$á£vÓÊV/Y»ðŸÿüGƒ0 A~lxí†.0®`…"¨[“À`bùRò>?o‡fÁêDH—cöÁ’ä^Rý±{„ÀÂðjxÛw×¾&<âò¼„Kì»uëÖ· >6²¼|'(H6vÁ{DzlÔ(Xžh»—T¢MW¯ô‰ØoZ¦òËNÞ+°µÞà`cþꫯ&ú2]ðR·t7Ö÷Qš[ê¶J³(áoÃÐÇÅ]» ­j“@@ x0zô/×÷üOR܆žE“Û´"ª r;îxž:vÜÀ¯û®VHþ‡€ûÕm/Añœð7ÎË>øªî#G.ò›†+9ÄWš_Hø.¼¯:“‚Ê"T ñ¼<÷å#hÐïߦԼ{÷Yk>ʯÜøñŠGMjµ.Ô‡w‰Óqã–J33Æðû)+#Ѥ¶áB@ ïÃëÓuëöÑ®]Ǥ™+W®òïG—yݤÖ€€>//aÑ3f¼áEnÛv˜{ã5e/ÛÖº¯# „ &LXÆ?1ŒsZ„[3eŠº5 8QÂGd4±dÉv~GýL¼ÖàÖXŸ>^‚^x†€Þ3hãW‹8xð4ÿ"kWüÌzåJxÏ ½Q1^%€ë‹(×£5+oëµG(á=Ö]í¼y›èÌ™‹î[Î9&Áĉ+øMáE*^# „÷a®Ò$Dgº3¶éS§ÎóßÞÙb/õè!JxÁEÕ.\¡3ÖuglÓ2Äð¤P·ÆâáåQ ï%º\÷Ì™ëø/q]I²•¸¸«ôë9ße’4ñ–¸ñ䖫ЂI!°eË!ªR¥8~,ïdÛ±ã(åÊ••ÿtÈ?֯Ç<*éäÓ“”GÀóŸø¥¼Êþ¯±nÝù…ºùïÖ<æÿÎø«ú?—j.êÇ‹ –÷Jx_ —*.JøpÔò¾B@ ï«áReÃE@ .‚ZÞW(á}5\ªl¸(áÃEPËû %¼¯†K• %|¸jy_! „÷Õp©²á" „A-ï+”ð¾.U6\”ðá"¨å}…€ÞWåʆ‹€>\µ¼¯PÂûj¸TÙpP‡‹ –÷Jx_ —*.JøpÔò¾B@ ï«áReÃE@ .‚ZÞW(á}5\ªl¸(áÃEPËû %¼¯†K• %|¸jy_! „÷Õp©²á" „A-ï+”ð¾.U6\”ðá"¨å}…€ÞWåʆ‹€>\µ¼¯PÂûj¸TÙpHð@/^LŸ~úi¸õjù$ع3ÿ˛˔/_ðe™DQM L™2Ñ·ß~˜;6áÇOO?ý4=üðÙõZð¤;wÒÅ‹ Jl¢ÿÔìÝwßõEçTIE ÿûßÔ¿ÿÀÛr­>|PXôfjE@ ŸZGVû%|PXôfjE@ ŸZGVûD7­AsGáÍ™3gÒÆ©cÇŽžiwöìYzï½÷âÕŸ#GªP¡5kÖŒbbb⥅r±zõjúî»ïèã?¦ß~û†¯XÁ‚é÷¿ÿ=U­Z•Ò§¿ývióæÍK[¶l¡+W®P‰%¨U«VT½zõxz§ôÅÕ«WéܹsÆÍ•"Uß~$ÃìÆž={hݺuaÖ’tñË—/Ó²e˱ÝråÊÑÝwßM.\ ÁƒÓ Aƒ’.œHê©S§è¿ÿý¯¤ž°šÀú`²!n½uëVºãŽ;¨H‘"Ò&t8p ÝsÏ=ôÉ'Ÿ8xA×öíÛÓ×_-+2£½;vèV)ˆÕ×VLŒcΜ9%?tA[Û·o§;ï¼Sø„ë'NHˆ­ã¾-/7oá+lÂпÿýï²ôb™†TªTI¬áŠ+äKÿgŸ}Fï¿ÿ¾À€r¤}öÙgÅz L÷îÝ –ÀtŒ¥sÍš5Ô£GYÚÒ¥KG¿ûÝï„´?þø£Ôc¿P/ a‚À*4lغtéBK–,¡ž={RåÊ•iÆ ’†ºûõë'à®\¹’Þ|óM‰ßÂp_#_ `©…® íuêÔ‰6mÚ$„C^zé%zþùç%}@ÿ0)!èCR‚~brSõ%V? ȇ‡…óæÍ£nݺ ‰Ñ_èÁê„1€ñÁȹsç y`„ÐV“&M¤,Æ‚Ɇ±Aû˜d°æÖ8 “㉶¡ Ú[»v-eÏž]úÙ²eKÁxÃ(Œ7N°Fyèw¨]»vÂ`Œ²À«[Ñ¢EÉr¥M›64f̘FuÝŒ¤˜KƒNâ)-È¥³QÑaX6XHtÊÎÚ Øõë×ÿ«ÄôéÓ¥XâiÓ¦ 1ûöí+ÖøŸÿü§ä³åƒuÖþ<>€è˜¿üò‹“é‡~A‡¥³¾3V °]5¯QÁ÷ßOÿøÇ?d°Z·nM°¦ôÆõèÑ£å bY 2D¬÷È‘#…x–XRø_˜xµ.İaÃø<ú裂Qrõ£ XG°N:R¾bÅŠâ¡ì]wÝïQ;HÜ¢E š®í=¸²X=ñ†8Ðe½^"ôïD߇njöJ°!…•ƒµu –:<5…U±q`›Ž˜,–H܇©Ã’Øìa)ÅÎøŸ6”†ÈÂf°þöy€u—lá¡?¬&ÚÅrÕýÀÅ‚^ØßØç7ÓfrõÖÿ‘(ë‡#€Éé~¾X&©kè1ÀÊ‹>¸' ÊÁïß¿_ú B£-·@ôÁ½p§'vŽ±Ç¸Z×0±|ö¾}=8pŸÀé±³ðPÖË Ülö›'„Ò‚ Vø“¡êqoàË„k%ë³×h×­#Ü=è žÔÞª$W`½ ˆ›$îa`ÞP®¡àÆÔ]VÙ+Ü÷í¹[{/”#ÆÞº¾¡äO*OD 7›:<Üñ'¥d`Îñ°éðaUƒ À._¾|°$½—†¸-.MÂW»zHÊ¥‰x”æ6ô_›T”ðz’P§…QÖ>:$ºi Œí:%ôDˆrŸâºÕM@xÄlíÓ3wF=Wü‚´á¸`’ J,“ÞSR ±êç’‘Ôn„†€>4œ4W*A@ ŸJR»JøÐpÒ\©ÿ7b}\uÑIEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1Query_1_1SizeThresholdInsertPolicy.html000755 000765 000024 00000022722 13515046515 031441 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::Query::SizeThresholdInsertPolicy< AccessController > Class Template Reference
MySQL++  3.2.5
mysqlpp::Query::SizeThresholdInsertPolicy< AccessController > Class Template Reference

An insert policy object that triggers a new INSERT statement after a size threshold for the length of the INSERT statement is exceeded. More...

#include <query.h>

Public Types

typedef AccessController access_controller
 Alias for our access controller type.
 

Public Member Functions

 SizeThresholdInsertPolicy (int size)
 Constructor.
 
 ~SizeThresholdInsertPolicy ()
 Destructor.
 
template<class RowT >
bool can_add (int size, const RowT &object) const
 Can we add another object to the query? More...
 

Detailed Description

template<class AccessController = Transaction>
class mysqlpp::Query::SizeThresholdInsertPolicy< AccessController >

An insert policy object that triggers a new INSERT statement after a size threshold for the length of the INSERT statement is exceeded.

Although this insert policy isn't completely deterministic, it avoids building the VALUES expression for the SSQLS object passed in.

Member Function Documentation

◆ can_add()

template<class AccessController = Transaction>
template<class RowT >
bool mysqlpp::Query::SizeThresholdInsertPolicy< AccessController >::can_add ( int  size,
const RowT &  object 
) const
inline

Can we add another object to the query?

Parameters
sizecurrent length of the INSERT statement
objectthe SSQLS object to be added
Return values
trueif the object is allowed to be added to the INSERT statement

The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/functions_func_i.html000755 000765 000024 00000013250 13515046515 023032 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Class Members - Functions
MySQL++  3.2.5
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1ReadTimeoutOption.html000755 000765 000024 00000031203 13515046515 026224 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::ReadTimeoutOption Class Reference
MySQL++  3.2.5
mysqlpp::ReadTimeoutOption Class Reference

Set timeout for IPC data reads. More...

#include <options.h>

Inheritance diagram for mysqlpp::ReadTimeoutOption:
Collaboration diagram for mysqlpp::ReadTimeoutOption:

Additional Inherited Members

- Public Types inherited from mysqlpp::DataOption< T >
typedef T ArgType
 Alias for template param.
 
- Public Types inherited from mysqlpp::Option
enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 
- Public Member Functions inherited from mysqlpp::Option
virtual ~Option ()
 Destroy object.
 
virtual Error set (DBDriver *dbd)=0
 Apply option.
 
- Protected Member Functions inherited from mysqlpp::DataOption< T >
 DataOption (const T &arg)
 Construct object.
 
- Protected Attributes inherited from mysqlpp::DataOption< T >
arg_
 The argument value.
 

Detailed Description

Set timeout for IPC data reads.


The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/structmysqlpp_1_1NullIsZero.html000755 000765 000024 00000010036 13515046515 025077 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::NullIsZero Struct Reference
MySQL++  3.2.5
mysqlpp::NullIsZero Struct Reference

Class for objects that define SQL null as 0. More...

#include <null.h>

Detailed Description

Class for objects that define SQL null as 0.

Returns 0 when you ask what null is, and is zero when you insert it into a C++ stream.

Used for the behavior parameter for template Null


The documentation for this struct was generated from the following file:
mysql++-3.2.5/doc/html/refman/structmysqlpp_1_1RefCountedPointerDestroyer.html000755 000765 000024 00000013033 13515046515 030331 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::RefCountedPointerDestroyer< T > Struct Template Reference
MySQL++  3.2.5
mysqlpp::RefCountedPointerDestroyer< T > Struct Template Reference

Functor to call delete on the pointer you pass to it. More...

#include <refcounted.h>

Public Member Functions

void operator() (T *doomed) const
 Functor implementation.
 

Detailed Description

template<class T>
struct mysqlpp::RefCountedPointerDestroyer< T >

Functor to call delete on the pointer you pass to it.

The default "destroyer" for RefCountedPointer. You won't use this directly, you'll pass a functor of your own devising for the second parameter to the RefCountedPointer template to override this. Or simpler, just specialize this template for your type if possible: see ResUse::result_.


The documentation for this struct was generated from the following file:
mysql++-3.2.5/doc/html/refman/structmysqlpp_1_1SQLParseElement.html000755 000765 000024 00000024410 13515046515 025776 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::SQLParseElement Struct Reference
MySQL++  3.2.5
mysqlpp::SQLParseElement Struct Reference

Used within Query to hold elements for parameterized queries. More...

#include <qparms.h>

Collaboration diagram for mysqlpp::SQLParseElement:

Public Member Functions

 SQLParseElement (std::string b, char o, signed char n)
 Create object. More...
 

Public Attributes

std::string before
 string inserted before the parameter
 
char option
 the parameter option, or blank if none
 
signed char num
 the parameter position to use
 

Detailed Description

Used within Query to hold elements for parameterized queries.

Each element has three parts:

The concept behind the before variable needs a little explaining. When a template query is parsed, each parameter is parsed into one of these SQLParseElement objects, but the non-parameter parts of the template also have to be stored somewhere. MySQL++ chooses to attach the text leading up to a parameter to that parameter. So, the before string is simply the text copied literally into the finished query before we insert a value for the parameter.

The option character is currently one of 'q', 'Q', 'r', 'R' or ' '. See the "Template Queries" chapter in the user manual for details.

The position value (num) allows a template query to have its parameters in a different order than in the Query method call. An example of how this can be helpful is in the "Template Queries" chapter of the user manual.

Constructor & Destructor Documentation

◆ SQLParseElement()

mysqlpp::SQLParseElement::SQLParseElement ( std::string  b,
char  o,
signed char  n 
)
inline

Create object.

Parameters
bthe 'before' value
othe 'option' value
nthe 'num' value

The documentation for this struct was generated from the following file:
mysql++-3.2.5/doc/html/refman/exceptions_8h_source.html000755 000765 000024 00000220176 13515046515 023646 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: exceptions.h Source File
MySQL++  3.2.5
exceptions.h
Go to the documentation of this file.
1 
7 /***********************************************************************
8  Copyright © 1998 by Kevin Atkinson, © 1999-2001 by MySQL AB, and
9  © 2004-2010, 2018 by Educational Technology Resources, Inc. Others may
10  also hold copyrights on code in this file. See the CREDITS.txt file
11  in the top directory of the distribution for details.
12 
13  This file is part of MySQL++.
14 
15  MySQL++ is free software; you can redistribute it and/or modify it
16  under the terms of the GNU Lesser General Public License as published
17  by the Free Software Foundation; either version 2.1 of the License, or
18  (at your option) any later version.
19 
20  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
21  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
22  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
23  License for more details.
24 
25  You should have received a copy of the GNU Lesser General Public
26  License along with MySQL++; if not, write to the Free Software
27  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
28  USA
29 ***********************************************************************/
30 
31 #if !defined(MYSQLPP_EXCEPTIONS_H)
32 #define MYSQLPP_EXCEPTIONS_H
33 
34 #include "options.h"
35 
36 #include <exception>
37 #include <string>
38 #include <sstream>
39 #include <typeinfo>
40 
41 namespace mysqlpp {
42 
44 
45 class MYSQLPP_EXPORT Exception : public std::exception
46 {
47 public:
49  Exception(const Exception& e) MAY_THROW() :
50  std::exception(e),
51  what_(e.what_)
52  {
53  }
54 
56  Exception& operator=(const Exception& rhs) throw()
57  {
58  what_ = rhs.what_;
59  return *this;
60  }
61 
63  ~Exception() throw() { }
64 
66  virtual const char* what() const throw()
67  {
68  return what_.c_str();
69  }
70 
71 protected:
73  Exception(const char* w = "") throw() :
74  what_(w)
75  {
76  }
77 
79  Exception(const std::string& w) throw() :
80  what_(w)
81  {
82  }
83 
85  std::string what_;
86 };
87 
88 
90 
91 class MYSQLPP_EXPORT BadConversion : public Exception
92 {
93 public:
94  const char* type_name;
95  std::string data;
96  size_t retrieved;
97  size_t actual_size;
98 
106  BadConversion(const char* tn, const char* d,
107  size_t r, size_t a) :
108  Exception("Bad type conversion: \""),
109  type_name(tn),
110  data(d),
111  retrieved(r),
112  actual_size(a)
113  {
114  what_ += d ? d : "<NULL>";
115  what_ += "\" incompatible with \"";
116  what_ += tn;
117  what_ += "\" type";
118  }
119 
127  BadConversion(const std::string& w, const char* tn,
128  const char* d, size_t r, size_t a) :
129  Exception(w),
130  type_name(tn),
131  data(d),
132  retrieved(r),
133  actual_size(a)
134  {
135  }
136 
142  explicit BadConversion(const char* w = "") :
143  Exception(w),
144  type_name("unknown"),
145  data(""),
146  retrieved(0),
147  actual_size(0)
148  {
149  }
150 
152  ~BadConversion() throw() { }
153 };
154 
155 
160 
161 class MYSQLPP_EXPORT BadFieldName : public Exception
162 {
163 public:
167  explicit BadFieldName(const char* bad_field) :
168  Exception(std::string("Unknown field name: ") + bad_field)
169  {
170  }
171 
173  ~BadFieldName() throw() { }
174 };
175 
176 
179 
180 class MYSQLPP_EXPORT BadIndex : public Exception
181 {
182 public:
188  explicit BadIndex(const char* what, int bad_index, int max_index) :
189  Exception()
190  {
191  std::ostringstream outs;
192  outs << "Index " << bad_index << " on " << what <<
193  " out of range, max legal index is " << max_index;
194  what_ = outs.str();
195  }
196 
198  ~BadIndex() throw() { }
199 };
200 
201 
204 
205 class MYSQLPP_EXPORT BadOption : public Exception
206 {
207 public:
209  explicit BadOption(const char* w, const std::type_info& ti) :
210  Exception(w),
211  ti_(ti)
212  {
213  }
214 
216  explicit BadOption(const std::string& w, const std::type_info& ti) :
217  Exception(w),
218  ti_(ti)
219  {
220  }
221 
226  const std::type_info& what_option() const { return ti_; }
227 
228 private:
229  const std::type_info& ti_;
230 };
231 
232 
237 
238 class MYSQLPP_EXPORT BadParamCount : public Exception
239 {
240 public:
242  explicit BadParamCount(const char* w = "") :
243  Exception(w)
244  {
245  }
246 
248  ~BadParamCount() throw() { }
249 };
250 
253 
254 class MYSQLPP_EXPORT UseQueryError : public Exception
255 {
256 public:
258  explicit UseQueryError(const char* w = "") :
259  Exception(w)
260  {
261  }
262 };
263 
264 
284 
285 class MYSQLPP_EXPORT BadQuery : public Exception
286 {
287 public:
292  explicit BadQuery(const char* w = "", int e = 0) :
293  Exception(w),
294  errnum_(e)
295  {
296  }
297 
302  explicit BadQuery(const std::string& w, int e = 0) :
303  Exception(w),
304  errnum_(e)
305  {
306  }
307 
314  int errnum() const { return errnum_; }
315 
316 private:
317  int errnum_;
318 };
319 
320 
327 
328 class MYSQLPP_EXPORT ConnectionFailed : public Exception
329 {
330 public:
335  explicit ConnectionFailed(const char* w = "", int e = 0) :
336  Exception(w),
337  errnum_(e)
338  {
339  }
340 
349  int errnum() const { return errnum_; }
350 
351 private:
352  int errnum_;
353 };
354 
355 
358 
359 class MYSQLPP_EXPORT DBSelectionFailed : public Exception
360 {
361 public:
366  explicit DBSelectionFailed(const char* w = "", int e = 0) :
367  Exception(w),
368  errnum_(e)
369  {
370  }
371 
380  int errnum() const { return errnum_; }
381 
382 private:
383  int errnum_;
384 };
385 
386 
388 
389 class MYSQLPP_EXPORT MutexFailed : public Exception
390 {
391 public:
393  explicit MutexFailed(const char* w = "lock failed") :
394  Exception(w)
395  {
396  }
397 };
398 
399 
402 
403 class MYSQLPP_EXPORT ObjectNotInitialized : public Exception
404 {
405 public:
407  explicit ObjectNotInitialized(const char* w = "") :
408  Exception(w)
409  {
410  }
411 };
412 
413 
415 
416 class MYSQLPP_EXPORT SelfTestFailed : public Exception
417 {
418 public:
420  explicit SelfTestFailed(const std::string& w) :
421  Exception(w)
422  {
423  }
424 };
425 
426 
437 
438 class MYSQLPP_EXPORT TypeLookupFailed : public Exception
439 {
440 public:
442  explicit TypeLookupFailed(const std::string& w) :
443  Exception(w)
444  {
445  }
446 };
447 
448 
455 
456 class MYSQLPP_EXPORT BadInsertPolicy : public Exception
457 {
458 public:
460  explicit BadInsertPolicy(const std::string& w) :
461  Exception(w)
462  {
463  }
464 };
465 
466 
467 } // end namespace mysqlpp
468 
469 #endif // !defined(MYSQLPP_EXCEPTIONS_H)
BadOption(const char *w, const std::type_info &ti)
Create exception object, taking C string.
Definition: exceptions.h:209
Exception(const Exception &e) MAY_THROW()
Create exception object as copy of another.
Definition: exceptions.h:49
Exception thrown when a requested named field doesn't exist.
Definition: exceptions.h:161
BadIndex(const char *what, int bad_index, int max_index)
Create exception object.
Definition: exceptions.h:188
Exception thrown when the database server encounters a problem while processing your query.
Definition: exceptions.h:285
BadQuery(const char *w="", int e=0)
Create exception object.
Definition: exceptions.h:292
Exception thrown when you try to use an object that isn't completely initialized.
Definition: exceptions.h:403
Exception thrown when a BeecryptMutex object fails.
Definition: exceptions.h:389
ConnectionFailed(const char *w="", int e=0)
Create exception object.
Definition: exceptions.h:335
int errnum() const
Return the error number corresponding to the error message returned by what(), if any.
Definition: exceptions.h:380
SelfTestFailed(const std::string &w)
Create exception object.
Definition: exceptions.h:420
~BadIndex()
Destroy exception.
Definition: exceptions.h:198
int errnum() const
Return the error number corresponding to the error message returned by what()
Definition: exceptions.h:314
Exception thrown when an object with operator [] or an at() method gets called with a bad index.
Definition: exceptions.h:180
BadInsertPolicy(const std::string &w)
Create exception object.
Definition: exceptions.h:460
std::string data
string form of data we tried to convert
Definition: exceptions.h:95
BadConversion(const char *w="")
Create exception object, with error string only.
Definition: exceptions.h:142
BadQuery(const std::string &w, int e=0)
Create exception object.
Definition: exceptions.h:302
Used within MySQL++'s test harness only.
Definition: exceptions.h:416
BadFieldName(const char *bad_field)
Create exception object.
Definition: exceptions.h:167
~Exception()
Destroy exception object.
Definition: exceptions.h:63
DBSelectionFailed(const char *w="", int e=0)
Create exception object.
Definition: exceptions.h:366
int errnum() const
Return the error number corresponding to the error message returned by what(), if any.
Definition: exceptions.h:349
size_t retrieved
documentation needed!
Definition: exceptions.h:96
Exception thrown when there is a problem related to the database server connection.
Definition: exceptions.h:328
~BadFieldName()
Destroy exception.
Definition: exceptions.h:173
Thrown from the C++ to SQL data type conversion routine when it can't figure out how to map the type.
Definition: exceptions.h:438
ObjectNotInitialized(const char *w="")
Create exception object.
Definition: exceptions.h:407
Exception(const char *w="")
Create exception object.
Definition: exceptions.h:73
std::string what_
explanation of why exception was thrown
Definition: exceptions.h:85
~BadConversion()
Destroy exception.
Definition: exceptions.h:152
BadParamCount(const char *w="")
Create exception object.
Definition: exceptions.h:242
const std::type_info & what_option() const
Return type information about the option that failed.
Definition: exceptions.h:226
virtual const char * what() const
Returns explanation of why exception was thrown.
Definition: exceptions.h:66
BadConversion(const char *tn, const char *d, size_t r, size_t a)
Create exception object, building error string dynamically.
Definition: exceptions.h:106
Base class for all MySQL++ custom exceptions.
Definition: exceptions.h:45
const char * type_name
name of type we tried to convert to
Definition: exceptions.h:94
MutexFailed(const char *w="lock failed")
Create exception object.
Definition: exceptions.h:393
Exception & operator=(const Exception &rhs)
Assign another exception object's contents to this one.
Definition: exceptions.h:56
TypeLookupFailed(const std::string &w)
Create exception object.
Definition: exceptions.h:442
Exception thrown when not enough query parameters are provided.
Definition: exceptions.h:238
~BadParamCount()
Destroy exception.
Definition: exceptions.h:248
Exception thrown when an insert policy is too strict to create a valid INSERT statement.
Definition: exceptions.h:456
BadOption(const std::string &w, const std::type_info &ti)
Create exception object, taking C++ string.
Definition: exceptions.h:216
BadConversion(const std::string &w, const char *tn, const char *d, size_t r, size_t a)
Create exception object, given completed error string.
Definition: exceptions.h:127
Exception thrown when a bad type conversion is attempted.
Definition: exceptions.h:91
Declares the Option class hierarchy, used to implement connection options in Connection and DBDriver ...
size_t actual_size
documentation needed!
Definition: exceptions.h:97
Exception thrown when something goes wrong in processing a "use" query.
Definition: exceptions.h:254
Exception thrown when the program tries to select a new database and the database server refuses for ...
Definition: exceptions.h:359
Exception thrown when you pass an unrecognized option to Connection::set_option().
Definition: exceptions.h:205
UseQueryError(const char *w="")
Create exception object.
Definition: exceptions.h:258
Exception(const std::string &w)
Create exception object.
Definition: exceptions.h:79
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1ReportDataTruncationOption-members.html000755 000765 000024 00000015366 13515046515 031562 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::ReportDataTruncationOption Member List

This is the complete list of members for mysqlpp::ReportDataTruncationOption, including all inherited members.

arg_mysqlpp::DataOption< T >protected
ArgType typedefmysqlpp::DataOption< T >
DataOption(const T &arg)mysqlpp::DataOption< T >inlineprotected
err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
set(DBDriver *dbd)=0mysqlpp::Optionpure virtual
~Option()mysqlpp::Optioninlinevirtual
mysql++-3.2.5/doc/html/refman/datetime_8h_source.html000755 000765 000024 00000216304 13515046515 023257 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: datetime.h Source File
MySQL++  3.2.5
datetime.h
Go to the documentation of this file.
1 
5 /***********************************************************************
6  Copyright (c) 1998 by Kevin Atkinson, (c) 1999-2001 by MySQL AB, and
7  (c) 2004-2008 by Educational Technology Resources, Inc. Others may
8  also hold copyrights on code in this file. See the CREDITS.txt file
9  in the top directory of the distribution for details.
10 
11  This file is part of MySQL++.
12 
13  MySQL++ is free software; you can redistribute it and/or modify it
14  under the terms of the GNU Lesser General Public License as published
15  by the Free Software Foundation; either version 2.1 of the License, or
16  (at your option) any later version.
17 
18  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
19  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
21  License for more details.
22 
23  You should have received a copy of the GNU Lesser General Public
24  License along with MySQL++; if not, write to the Free Software
25  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
26  USA
27 ***********************************************************************/
28 
29 #if !defined(MYSQLPP_DATETIME_H)
30 #define MYSQLPP_DATETIME_H
31 
32 #include "common.h"
33 
34 #include "comparable.h"
35 
36 #include <string>
37 #include <iostream>
38 
39 namespace mysqlpp {
40 
47 
48 class MYSQLPP_EXPORT DateTime : public Comparable<DateTime>
49 {
50 public:
54  year_(0),
55  month_(0),
56  day_(0),
57  hour_(0),
58  minute_(0),
59  second_(0),
60  now_(true)
61  {
62  }
63 
72  DateTime(unsigned short y, unsigned char mon, unsigned char d,
73  unsigned char h, unsigned char min, unsigned char s) :
75  year_(y),
76  month_(mon),
77  day_(d),
78  hour_(h),
79  minute_(min),
80  second_(s),
81  now_(false)
82  {
83  }
84 
86  DateTime(const DateTime& other) :
88  year_(other.year_),
89  month_(other.month_),
90  day_(other.day_),
91  hour_(other.hour_),
92  minute_(other.minute_),
93  second_(other.second_),
94  now_(other.now_)
95  {
96  }
97 
103  explicit DateTime(const char* str) { convert(str); }
104 
112  template <class Str>
113  explicit DateTime(const Str& str)
114  {
115  convert(str.c_str());
116  }
117 
119  explicit DateTime(time_t t);
120 
125  int compare(const DateTime& other) const;
126 
128  const char* convert(const char*);
129 
131  unsigned char day() const { return day_; }
132 
134  void day(unsigned char d) { day_ = d; now_ = false; }
135 
137  unsigned char hour() const { return hour_; }
138 
140  void hour(unsigned char h) { hour_ = h; now_ = false; }
141 
144  bool is_now() const { return now_; }
145 
147  unsigned char minute() const { return minute_; }
148 
150  void minute(unsigned char m) { minute_ = m; now_ = false; }
151 
153  unsigned char month() const { return month_; }
154 
156  void month(unsigned char m) { month_ = m; now_ = false; }
157 
162  static DateTime now() { return DateTime(); }
163 
165  operator std::string() const;
166 
168  operator time_t() const;
169 
171  unsigned char second() const { return second_; }
172 
174  void second(unsigned char s) { second_ = s; now_ = false; }
175 
177  std::string str() const { return *this; }
178 
184  unsigned short year() const { return year_; }
185 
190  void year(unsigned short y) { year_ = y; now_ = false; }
191 
192 private:
193  unsigned short year_;
194  unsigned char month_;
195  unsigned char day_;
196  unsigned char hour_;
197  unsigned char minute_;
198  unsigned char second_;
199 
200  bool now_;
201 };
202 
203 
206 inline DateTime NOW() { return DateTime(); }
207 
208 
217 MYSQLPP_EXPORT std::ostream& operator <<(std::ostream& os,
218  const DateTime& dt);
219 
220 
225 class MYSQLPP_EXPORT Date : public Comparable<Date>
226 {
227 public:
229  Date() : year_(0), month_(0), day_(0) { }
230 
236  Date(unsigned short y, unsigned char m, unsigned char d) :
237  Comparable<Date>(),
238  year_(y),
239  month_(m),
240  day_(d)
241  {
242  }
243 
245  Date(const Date& other) :
246  Comparable<Date>(),
247  year_(other.year_),
248  month_(other.month_),
249  day_(other.day_)
250  {
251  }
252 
254  Date(const DateTime& other) :
255  Comparable<Date>(),
256  year_(other.year()),
257  month_(other.month()),
258  day_(other.day())
259  {
260  }
261 
266  explicit Date(const char* str) { convert(str); }
267 
274  template <class Str>
275  explicit Date(const Str& str) { convert(str.c_str()); }
276 
281  explicit Date(time_t t);
282 
287  int compare(const Date& other) const;
288 
290  const char* convert(const char*);
291 
293  unsigned char day() const { return day_; }
294 
296  void day(unsigned char d) { day_ = d; }
297 
299  unsigned char month() const { return month_; }
300 
302  void month(unsigned char m) { month_ = m; }
303 
305  operator std::string() const;
306 
310  operator time_t() const;
311 
313  std::string str() const { return *this; }
314 
319  unsigned short year() const { return year_; }
320 
325  void year(unsigned short y) { year_ = y; }
326 
327 private:
328  unsigned short year_;
329  unsigned char month_;
330  unsigned char day_;
331 };
332 
339 MYSQLPP_EXPORT std::ostream& operator <<(std::ostream& os,
340  const Date& d);
341 
342 
347 class MYSQLPP_EXPORT Time : public Comparable<Time>
348 {
349 public:
351  Time() : hour_(0), minute_(0), second_(0) { }
352 
357  Time(unsigned char h, unsigned char m, unsigned char s) :
358  hour_(h),
359  minute_(m),
360  second_(s)
361  {
362  }
363 
365  Time(const Time& other) :
366  Comparable<Time>(),
367  hour_(other.hour_),
368  minute_(other.minute_),
369  second_(other.second_)
370  {
371  }
372 
374  Time(const DateTime& other) :
375  Comparable<Time>(),
376  hour_(other.hour()),
377  minute_(other.minute()),
378  second_(other.second())
379  {
380  }
381 
387  explicit Time(const char* str) { convert(str); }
388 
396  template <class Str>
397  explicit Time(const Str& str) { convert(str.c_str()); }
398 
403  explicit Time(time_t t);
404 
409  int compare(const Time& other) const;
410 
412  const char* convert(const char*);
413 
415  unsigned char hour() const { return hour_; }
416 
418  void hour(unsigned char h) { hour_ = h; }
419 
421  unsigned char minute() const { return minute_; }
422 
424  void minute(unsigned char m) { minute_ = m; }
425 
427  operator std::string() const;
428 
432  operator time_t() const;
433 
435  unsigned char second() const { return second_; }
436 
438  void second(unsigned char s) { second_ = s; }
439 
441  std::string str() const { return *this; }
442 
443 private:
444  unsigned char hour_;
445  unsigned char minute_;
446  unsigned char second_;
447 };
448 
456 MYSQLPP_EXPORT std::ostream& operator <<(std::ostream& os,
457  const Time& t);
458 
459 
460 } // end namespace mysqlpp
461 
462 #endif // !defined(MYSQLPP_DATETIME_H)
std::string str() const
Return our value in std::string form.
Definition: datetime.h:177
Time(const Str &str)
Initialize object from a C++ string containing a SQL time string.
Definition: datetime.h:397
void hour(unsigned char h)
Change the date/time value's hour part, 0-23.
Definition: datetime.h:140
Time(const Time &other)
Initialize object as a copy of another Time.
Definition: datetime.h:365
unsigned char month() const
Get the date's month part, 1-12.
Definition: datetime.h:299
Time(const char *str)
Initialize object from a C string containing a SQL time string.
Definition: datetime.h:387
unsigned char minute() const
Get the time's minute part, 0-59.
Definition: datetime.h:421
void day(unsigned char d)
Change the date's day part, 1-31.
Definition: datetime.h:296
DateTime(unsigned short y, unsigned char mon, unsigned char d, unsigned char h, unsigned char min, unsigned char s)
Initialize object from discrete y/m/d h:m:s values.
Definition: datetime.h:72
Date(const Str &str)
Initialize object from a C++ string containing a date.
Definition: datetime.h:275
DateTime NOW()
Returns a DateTime object that, when inserted into query will yield a SQL "NOW()" function call.
Definition: datetime.h:206
Time(const DateTime &other)
Initialize object from time part of date/time object.
Definition: datetime.h:374
Declares the Comparable<T> mixin.
unsigned short year() const
Get the date's year part.
Definition: datetime.h:319
unsigned char second() const
Get the date/time value's second part, 0-59.
Definition: datetime.h:171
unsigned char day() const
Get the date's day part, 1-31.
Definition: datetime.h:293
DateTime(const DateTime &other)
Initialize object as a copy of another Date.
Definition: datetime.h:86
unsigned char hour() const
Get the date/time value's hour part, 0-23.
Definition: datetime.h:137
C++ form of SQL's TIME type.
Definition: datetime.h:347
C++ form of SQL's DATETIME type.
Definition: datetime.h:48
Time(unsigned char h, unsigned char m, unsigned char s)
Initialize object.
Definition: datetime.h:357
void year(unsigned short y)
Change the date/time value's year part.
Definition: datetime.h:190
Date(unsigned short y, unsigned char m, unsigned char d)
Initialize object.
Definition: datetime.h:236
Date(const DateTime &other)
Initialize object from date part of date/time object.
Definition: datetime.h:254
Mix-in that gives its subclass a full set of comparison operators.
Definition: comparable.h:40
void second(unsigned char s)
Change the date/time value's second part, 0-59.
Definition: datetime.h:174
void month(unsigned char m)
Change the date/time value's month part, 1-12.
Definition: datetime.h:156
DateTime(const Str &str)
Initialize object from a C++ string containing a SQL date-and-time string.
Definition: datetime.h:113
void second(unsigned char s)
Change the time's second part, 0-59.
Definition: datetime.h:438
unsigned char second() const
Get the time's second part, 0-59.
Definition: datetime.h:435
Time()
Default constructor.
Definition: datetime.h:351
void day(unsigned char d)
Change the date/time value's day part, 1-31.
Definition: datetime.h:134
Date()
Default constructor.
Definition: datetime.h:229
void year(unsigned short y)
Change the date's year part.
Definition: datetime.h:325
std::string str() const
Return our value in std::string form.
Definition: datetime.h:313
C++ form of SQL's DATE type.
Definition: datetime.h:225
bool is_now() const
Returns true if object will evaluate to SQL "NOW()" on conversion to string.
Definition: datetime.h:144
unsigned short year() const
Get the date/time value's year part.
Definition: datetime.h:184
void minute(unsigned char m)
Change the date/time value's minute part, 0-59.
Definition: datetime.h:150
unsigned char hour() const
Get the time's hour part, 0-255.
Definition: datetime.h:415
void month(unsigned char m)
Change the date's month part, 1-12.
Definition: datetime.h:302
This file includes top-level definitions for use both internal to the library, and outside it....
unsigned char month() const
Get the date/time value's month part, 1-12.
Definition: datetime.h:153
void minute(unsigned char m)
Change the time's minute part, 0-59.
Definition: datetime.h:424
std::string str() const
Return our value in std::string form.
Definition: datetime.h:441
void hour(unsigned char h)
Change the time's hour part, 0-255.
Definition: datetime.h:418
Date(const char *str)
Initialize object from a C string containing a date.
Definition: datetime.h:266
unsigned char day() const
Get the date/time value's day part, 1-31.
Definition: datetime.h:131
DateTime(const char *str)
Initialize object from a C string containing a SQL date-and-time string.
Definition: datetime.h:103
unsigned char minute() const
Get the date/time value's minute part, 0-59.
Definition: datetime.h:147
DateTime()
Default constructor.
Definition: datetime.h:52
Date(const Date &other)
Initialize object as a copy of another Date.
Definition: datetime.h:245
static DateTime now()
Factory to create an object instance that will convert to SQL "NOW()" on insertion into a query.
Definition: datetime.h:162
mysql++-3.2.5/doc/html/refman/inherit_graph_17.png000644 000765 000024 00000007057 13515046516 022457 0ustar00tangentstaff000000 000000 ‰PNG  IHDRœ1/:À}sRGB®Îé éIDATxíy°WãÀßB–P¤ÍEED›u ­¢RD…‘¥4-32¨„F«M„BC¥¤)Šþ0M²¶kQY[U´*ei!zÏçùyΜ{îw»·ï½s—óÌœïyÏ»ó>ïó>û[Æ ¸b ¶•-œ÷Äo‰1ð ÄSB¡b &¸BEwü²˜àb(\ `4„aêÔ©ñãàˆi`Þ¼yaÒ¢¼õèdä-„—¬)®1{öìqݺuKØ')ÁÝqÇ Ä•1Òa`Û¶mI .ÖáÒa/nÏ*b‚Ë*:ãÉÒa &¸tŠÛ³Š˜à²ŠÎx²tHj4¤XTÚ'Nœè/^ì^~ùåû¤ýû÷»öíÛ»³Î:˽öÚk®L™2Á»èŽ:ê(÷ÔSOu‰ 7ntÝ»wwo¼ñ†ûûᅢòé§Ÿž¨{ºûï¿ß¡'ƒ3f¸ãŽ;.Ys‘¨/ö·zõj·`Á‚Eæ¡C‡Ü¬Y³ôW^y¥ëÒ¥Kð¾eË–¹£NÆß~ûMç€x÷íÛ”ƒ‰2(Ô¨QÕ/_^{~ôÑGî—_~q:u F†BPYÄ é1•æƒÿúë/=uœþÍ›7»?ÿüÓ]|ñÅîðáÃî»ï¾s´×¯_ßsÌ1Ú~â‰'ºSO=5˜õçŸvÔU¬XQë–/_Œ1äÒÀ¼«V­ruêÔqǼ"› Ãï¿ÿîĹèN8á÷å—_ºÊ•+»Úµkk¸ þ¡ªU«º~øÁíÝ»×5lØÐ•+WNÛwðàAwì±Çº²eËê<ölïà;{ì1wë­·ºÓN;ͪƒû¯¿þªß^½zu­ûçŸë7ù¼<óÌ3Vt÷ÜsûꫯÜK/½¤u|+Üw³ÀöæŒ3ÎеW¨P!À#{R©R%íg??ýô“Û´i“î×É'ŸlÕÙ½ãþ ƒEÂu©Ê‹-Rôu×]x¦›6mêo¸á†àY¸‚— ÷W]u•¿öÚkƒévîÜéEùW^yů\¹Ò yÙT/'ÕŸyæ™þûï¿×¾Ÿþ¹?å”S¼‚öoܸ±bÔ¶'Ÿ|Ò7hÐ@Ë;wö\p‚öBHú~CÚöþûïës³fÍ‚6ú ’µ}Μ9ÚþÙgŸåzâÔ¶_|Ñ˦ù{ï½WûðsË-·ø¶mÛêsÏž==k5X·nŽÂð+V¬ÐòÚµks”­oø.*‚ðÁ½E¸:Gùî»ïöõêÕ êXø—¯¾úªâKQ×|õÕWë³±—Céß{ï=í*„©kÊò´±'Ç·iò|ߺu«®5Q¤!kF'bË–-näÈ‘nîܹzº8Ý“'Ov .Tn'Hr_|ñ…BÓSƒÎ7¹óÎ;Ý Aƒ” z'„9Nù}÷Ý焨Ü?þè¡;vìHzê„HUŸ;pà€{óÍ7õš9sfПÓw“w»wïvýúõÓ6¸åã?îŒkFŸé„¾õÜsϹ·ÞzË}úé§ÁœÙ(ÀG¥ÜåòË/W.Ì÷d r@Ý5×\ãÞ}÷Ý`È´iÓÜõ×_ïªU«¦uàoýúõºþ›o¾ÙuíÚU9ú/ûžÀxïÛ·¯[²dI0WÖ QòÍ/‡¦S­Y³F©[”y}Òg!.¿k×.=AcÆŒÑ6A†ñ¤å'žx‹Â뇪ŽÈÅi—ŧ‘ÎO?ýtRwÑEé|öS³fMß§Ooθ&í¼NšŒÃÉzQ<œBDµ1vÄŽ*z˜®]D¯‡cÃÓA”ÃÑ_ åNr ½èwZ–áSÁñŸ}öÙ`ZÑ=¯Â <ã²Ë.óÔq-]ºT%M¸00ƒB*wÄ:œQ¾"S Ï?ÿ|m2EV¾Su†-Zè)¼ýöÛ•Kp²A´r8dÿþý•Û½ýöÛ7¼âŠ+´?Æ…‚ŠPA,ôäT3ŽJùçž´W©REuÁ "ƒëyýõוã6,å¸E:@é— R+ ‹7¿€%Ý£Gg’‹õ¶Ûn ¦ ¯ý7èmèÈmÚ´ ú¢SÛÞ•Y(dM¤"3Īœj7vìX5Z·n­Ã°º  âËáA@ذaíKôÃæ`¢X‡ 4Ü.:FŽ6—î~á…ªÈ=GE¼õgƒ0N „Û[1é±Q@¼¢S:áðªR$¢£ƒ±Š8e^ ƒðÚçÏŸ¯ÕàUAtn‡Ñ`ÆHAÄÓ3£ûâ,ÜAÖ'~+d~#üS½{÷Vd³¡XPX›—^z©r)t¯ÀþøãumX²aƒÂñ]ß|óÈ}öÙª3rèÁ„ Þ† ¢ÄŠUˆJâÄÀO•ÿrT$çW‡E_§Ö+ ® }F‡2Àr”/öâ?³*/Æ„G‡.¡ú >0µ<ƒ%&â5‡'î 퇕Z«V­ /–­Y[¦Ã1–yDô«þ(¢DÇfb¥šU§äë™ï5+U8ˆ·Î(þ:-c¥b…ó^ô³pÙæ²;:â'Ÿ|¢zVt2bÊa¥Z?,N¬t!&ÿï¿ÿZµâk ”ï`nÿHß®];­§Íti,n(ž)€æId¥âoÊy%¸ƒ3|xä‘G¼øêrõ‹Ô «÷mDÒ‚€E îÁ±ùÌ#>;ò Œàh.æQ¬  ¾ŸMpÍ›7×zé$p¿ä’K:Xñïž#Œö_‰!à$ªY!ÉÐpN]Blø°D!×w@`rºá3ÂCæò¡Ç*.áxz0N:é$ƒë ;"P,{G6JXìÚ ðuPqþ‰²üâ&R%þ¨&xx„fdÓ¼ä®iµøÔÔ û¤î‰ŠxsÛXò¡ÆÐGâ¸jÉ2wè>^x½ÞãÖ@Ó‹ÙÀBKB´ê⑸«61‡”ZÖ¸Ä˯® eŽÃMÁ|QË´nݺ^þÊK\Ó^Säï%Z¤Ê&)*ãÂc·»ë®»´à?)MöIaÂàèØ±£r›ÿ†k²!ÒšHõ± 8Á}‰ºíÛ·ëXÉÐPÇ(Îi‰Aý˜gÊ”)îÆoT®góÂõ0à\p3’°ÄqÊÂÙ±¤JÁ£–)ïÿúë¯]“&M”óâ¼Å^\¡Øëp†xt7.\'‘bžˆW¬,b¸èUDAæ} ˆJà`c!*²I€I“&iÎÏÄ(ÙlÄ&!aBDÄ$ÑÃÉ™ô!´Æ7<üðÃ*¿½zõRÑM^€x%ÔÑEw†¢/ÑB`ˆq–Ð\qƒ£Ãƒ áÂ7:Õ„ ‚.Äjád–4É3º—8Pµ Ä¡ÀÕÐ à’>ú¨¦õ £á߲ذõ!)°ï lïÂ_œwÞyÊõ!Éb#ÄÇ÷&!¢w'(1.ŠtòóÈ1³Ì\͘Ft=ÿüó*vm\¢ä¸Y,ü-sÁ)Ãþ?ænÙ²¥ŠUÄ)‰–EƒÌ€÷Äb3bƒðFŒá$¢â$Í+ÓáE¦_‰ápæA/‚+½óÎ;šnWBD’ý@ô‚КŠÖL²!°PIåŽË—¬Dóˆ&¯„`õv‡³Áш3œn‹è–¸¯uKz'ÉÕ€õÑŸ¤ItRæ*–5yŠ›•*„¤Ö _ïXšÂ9¼lŒ›.ôn1­I–`Vª%0@\)ÞRÓ%ëVß$ H*%^-]Ɉչ‰×,&~Ï4+•Äá†ú~æªV.`¥ZòNù!dKI銴ÝÇTV*'37‚Ëññ), /¤£Áý]s5‘©ŒkÅ@Dm@ÌV—îNòˆR'œÅ‘n\ÔM’®QhOEp%F¤¦/éú©Æƒ Ç!-[6Õ˜h†H"+4Ú/úÕ £íÅí¹Ä Åm#JË÷ÆWZvºˆ¬3&¸"²¥å3b‚+-;]DÖ\ÙˆÒòI­Ô:”ÄëÌ2Rý=n.G;|–¿1ž®a€ÌhÈŠᥕÁQ®ˆË1 ñÿÚ*@äÆS'À@.‘š O\c kˆ .k¨Œ'Ê1Áe‚¥¸OÖ0ð?#õ9Þèë»UIEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1BadIndex-members.html000755 000765 000024 00000014453 13515046515 025727 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::BadIndex Member List

This is the complete list of members for mysqlpp::BadIndex, including all inherited members.

BadIndex(const char *what, int bad_index, int max_index)mysqlpp::BadIndexinlineexplicit
Exception(const Exception &e) MAY_THROW()mysqlpp::Exceptioninline
Exception(const char *w="")mysqlpp::Exceptioninlineprotected
Exception(const std::string &w)mysqlpp::Exceptioninlineprotected
operator=(const Exception &rhs)mysqlpp::Exceptioninline
what() constmysqlpp::Exceptioninlinevirtual
what_mysqlpp::Exceptionprotected
~BadIndex()mysqlpp::BadIndexinline
~Exception()mysqlpp::Exceptioninline
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1UnixDomainSocketConnection__coll__graph.png000644 000765 000024 00000037116 13515046516 032374 0ustar00tangentstaff000000 000000 ‰PNG  IHDRCÓ"qðsRGB®Îé>IDATxí]˜ÅÖ½„%çŒäÍ‚ ˆ "*YÁ"‚ú‹Á*‚ЍOA‚‚>ð¡  ` *9IP$çœs»Pÿ=kì™ÝÙI·¾owº»ª«nê>}CuucÌXÒ¤(Š@l#°&“¡‰m ´÷Š€" МŒ ‚" (Š‘’¡^Š€" 0J†z(Š€"ÀdvGa×®]´páB÷ú¯Äõë×§¢E‹¥ß'Nœ óçÏ¥îPWš={vÊ•+W¨ÅHqûIÈDxÿý÷§¸"=Aˆ6¦NJwÞygPº¥ãÀA©;Ô•^qÅT¹råP‹‘âö“¡­AƒÌ ý5Ž?Nùòå z·‹)BÕ«Wz;éÙÀßÿžÍ´-õN­LP"%ÃH9•[PŠ€’a@áÔÊE RP2ŒÔ‘S¹E  (N­LP"ˆ'ÃQ£FѳÏ>›.ø/_¾œzè!ªX±"!xÛm·ÑG}D—.]ò«ý„„:r䈫ì£>J?üðƒk?N|þúë/ºûî»=þuêÔ)Í'[g(0IV¨+pæÌ:yò¤W©Óã:óÚxeD<®_¿ž,XtÈ'OžL˜„»téRêØ±#õêÕ‹Š+F¯¼ò 5mÚ”âãã“•á§Ÿ~¢‚ ºÊâ"¾páB²ç¥¥€ŸƒÒ”)S(wîÜT²dÉDèK(R(0 E?ƒÙæã?N<òˆ×&Òã:óÚxexgèo0‹~ïÞ½TªT)Ú±c:uŠ®¼òJÑ–Ö¬Y#³ì¯ºê*Š‹‹“|ÌL/P €«zL>Å1;¯ ÚêÄ99sæt•C½˜ÃT¥J wÜØeÊ”qåc³ú1?2GŽôÇPáÂ…]“?A:G•7 Ö­[GÇŽ£ë®»Ž²dÉ"uà¼sçÎQÖ¬Y)cÆŒRÝÑAsªV­Íœ9Ó5»þ©§ž¢zõêÑ3Ï.[¶LÚ¾þúë…´ m2äÏŸŸV¬X!ç`~Z¦L™\çB;…æ—9sfªY³¦ôÁ•é¶ñÞ{ïQ¥J•ÜŽ’àƒ9v%J”ñB={öF… ’òÛ·o'Œk­ZµÈ³íܹ“>çɓǖ~‡\—«W¯¦5jPñâÅ]òDò†ûýqøða:}ú4={VÆ c‚1+[¶,mܸQ®!çu†ûÍ^+W®”ëãmî<@q]¢\¸q]E}âÎ'JcÇŽÅ’^‰ŽùÚY´h‘”oذ¡üâÜ[n¹Å4jÔȵ_·n]Ãddnºé&Ó AWuL†oh3hÐ Ã7¹ar3LŒ&C† †5³víZ);{ölÃD`˜¤¤ü 7Ü`x€$¯{÷îæÚk¯•í¶mÛ&,Ãdk˜ä¤}Öâ$o„ ²ÏÚ+eù–ü3fHþ¬Y³’ì³)+yÓ§O—<ç?&!Ãmn¿ýv9Œvo¾ùf‘“†‰ÙŒ7Îüþûï"?ðAŸ·nÝjøbúöí+çÍ™3ǰé-ýâ Ñ0‘Ë9È|饗¤_L`r.êà7# ÚF¹|&rùcâ<‘çÄgÚ´iÒ 6 +Iš;w®Èøê«¯JÞ¼yódßÊØ£G´ƒ±à7•ÌÅ‹ ?¼Lûöí¥nôýûàƒ\õ§7&©qãÆÆâÏ7²:t¨Kžä6øA)}á7P’+šê|&iƒ?“·ûãé§Ÿ–1Á5Q§NÃD‘½M›6rœÝ$‰®3\s¸71†'œg±ab5üp—c8Žû¿¸výM“ÉÔßâáTnvÖK-¶hÑÂìÞ½Û|úé§ H‡ŸBfôèѲA@3lØ0)ËÚ¹Ô™Þ˜Œ3FÚǃŽ5&r–öá!BùøŽdèíþ@7pMãzA²dXµjU¹æqÝÙë ùØÆƒ–Ý=†5H_ÜkHì{—kuàa}Ï=÷ޱB†óòMGx'±I“&|Ï=ñÄbnÙ}WÞy昤Ì÷ßOwÝu—¨í0ác-DL`¼#àÄŸþI8¦héÒ¥E­ì±Çä|Oÿ`""ÈSåÊ—/O¬YºŠ¾õÖ[bf#‚|Ö%ûh¦’sf̧Ù.…þùSý² æ3Lx˜ëÀù«V­²ÙI~ÑG˜Î8î&zî¹çˆ “ ýèÒ¥‹äwîÜYŽÁ Búæ›ohÀ€býøã
ä-¡~÷?[¾P¸XÓ§}ûö‰ù,ù"î ÖD[`Ì„(cþí·ßŠËæÌxÖÔÅ•ÿ¤Mé‰ °bë‚^~ùebR'Œ9?D嘕'Ò~½ÝÞúÁpb‚t¹tœåàó†®&YÁùü0“ûöꫯ–û [·nÎÓ¢~;`Žë€·¾ë“ÂE‰Ä!=D3AÅ °V!7ò-i°fIo¼ñ†ø ÿ÷¿ÿ¹üll ˜$·„Á™à7´¾:g Εˆ0|É%\ˆˆz‚”±íLðo²Ö$Á{ÜÙÚGrÊ`ËÙ_øZ‘pÚd}\¬5Ë!Èj“õ3²†&‡Ø '6a…ààK„¬¾RŸ>}<ú q|¦pƳ6Eljºü²ÑŽ©­„ˆ?!ü¸ùl‚ØŽ=Ž¥'&ìF!Ö`å -à¡bìÙ³§/â~½ÝlÊzì üöÞ’óZ‚ÿÝ^/xø:ï-çõè­®h:0ÍÚƒ?‰ÍRÑÆØ”’§›wrûãä†fZ‚ˆv‚íÀÁn›‡v3ɯS#B Z—s€ùìK”—¤² Š ’‡öåž~ûí7q^³9ìÊr¶1þ|9î”ÁUðŸ û q¾äŽ@ RÙ4U'±üsšü€dq£@[D uíÚµER´ ÒC€*<´0.HXÊ ŽujðxòÉ'E›‡EÀ~(BÅþ+ö[IYüKOL–,Y"AœžþyB´ Ú "^x¢_sÍ5îÝ»·˜0ÃØ×èU"Ì7˜¦Ð–E¶¦:N‚É„H2Ltö“É´ÇŽö7oÞŒÝDûÐaö÷ïߟ`:€´pc±oŠ@î0+œ¦;´RˆiŒs`Þ# Ó 4e›¬É‚70äC[wMÔžãüAáBÆ/¦ªÀ¤E¿½¥Yìøå—_ýa¹*ÈÔ¡C‰ì#H9L*ÈÓªU+ù¦x0AË‚I“4` òîèÊ#zoSzb‚2,<ˆ€ 4Z<Ì õFjòv ?p­€ô1NiI°0¦øÃuWML%¾¥ÔP,A‚SŸ4ˆ2#!è€}0lB„Çx~ =$z8wù©%A&ÃZŽä³ïI"Ä8QLDÍœž"#å`òp•EÚF5m碾9  lÞɹ¾¢É(€ÀLhr¾­Q;g`ùˆnÛH"Ö¶Ÿl’KÐç2é&IW4íó´©}dŸ¥+ÚØµkW‰P‹ ü/z)÷믿Ê!=Ð.Îc Ô¼þúëÒ¿×^{M(DÃѶ§?à9pàÀDõ"êÌf”a‚”vÞyçiç³;Âðt"9Ž€E¶^DÃt²)½1Aà ÈYغ0ì¶â$ûkñ §h2XÞîï¾ûNÆãŒh.ú MÎë ÛÄÙÄ$kxÞ©ìâúä9³ríbÜq?¡.{ýÚs|ýÆt4Ù0Þò8`ا‘$›çÒ~š ¡ºg"* A<ˆ[2t–ÃàµlÙÒ ÖÞ$²jó-"Dd#Ú6ßß_D{!›b•v?7>"­¸¡ìÔ gD‡=÷”ÐGÖlej"¶)I¨Ó9¥Ó–I tBަ氉-06×5*L€?"Ú)Å2É€úº?€¹ó¡œhüÜY¼x±Ü7¸ÑÏC2þ¦H&ÀPø ’l‚ Tþ~ýú%)S†§…$9Ž0§ajú“P/²{ÅŸ:m˜$þÈIÆøsO0Õ¼™kè#&‚§&Á­€?›làÆîêäÝ)¶nÖ\$ðe÷ÝÓž^â.BDïûº?0!?­ @ž&E°ÁWÏ–!péé:Nk[áx~º’!ü<רŒ#ž¤›j<0Pž‚XjAO Dõæ<ötNjŽ¡ ')¥¦Žh;G1‰ŒµÓ¹@ˆ¸0nðyÇJJòyð V‹cí§"»ì0¿‚W‘¢qÙX8ø ”9éMNtÕéŽ" (a‚€’a˜ DJÅPÍ=¥ˆEgyãßêqÑÙù÷Ê«Ï沦ðEd8räF^S±-þ]Ý'|%ŽɼùÝL\÷ç (oíî™{–Žmº@ÕK¨óvN°c~+ÌäHL^ÉP¿þÙ;w]Z¾üF~f5/î9Ÿ.^ô< ÿžÄ¦„ðMâ/¥éüîLt`|6:·-•ì|†—)Û•Ò*‚ZÞ¹|[P påI(®_« "»vå¨z/i!gÎ,¥oÊoÔã….¿Ħµê pîh-´‡ÖMà÷Õ9¾™³Xzø—š!$*›ÔJ$kÉ’ù©nÝ ²ŠÌéÓøUÃéÖ[?à÷“/¿RÉ}SÙÿEÀðº+¿9@ß6[E~:,D˜!SªÑæò" ÿ–Ô­´  ”´ ç¶kw“kÔ¥K†¶m;D÷Ý7ߥþšßWMÛ»ªaн˜aÇÜ4¦ÕjZÜ%œ½D—þ™òÆ>ãÊÍþdó@5“b(«8>—ùïÎK¿'^˜!..“˜Ë/¾x'¯“Øßzñê¥øÚ¶Žm;G >ÜI»Ÿ¤ ¬²8£ÆY+,U/ÝùIâåä¼T¥‡ýC@Ídÿp ßR ¹Ö­kñª,™ ‘—ÙJàr§ÐÍ7¿OS§z_\6щºR.œ¼H ?ÞE?´YC{—YœDˆ—.ªvŸšÈ(5“hê{è¡yÎË ½º7e½öí;ÆKŒ §üœ—(K~1[÷:t?ø€ðÖ~ˆ¾mºŠÖŒ=(š Ë$vk>G8*Y÷ßn¹eën*P2L%pátÚUW•âÏõúÞ5|‰Hsçn¤;îø×jÜNâ«,ŒÀêïмvÐ…SEóóJÆÌ¨jëBb:{+£ÇS‡€’aêp »³yä&ŸSj2eÊ(~ÃaÃãU¬Cóä°-ŒªùpªÓ¥$fEù˜¹J œcè” ƒjê¼ï¾ëY3ôÜ0‚) æâ•­»°fXÝs!=r®lW„}ÄS¥XûËàa®(Ž•¨›rñüBMG@É0𘆤ÆròwHj& ¤ °R¸pnþ–I7^¢?:>¤€Ó©Ñ² ó !fΖQHÑÙ,^Á¬ÞZ'NL¹­dH4C\WÛ¶uRð&Êõ×—áÊqþ®ÅòK§Íûƒ@ü™K´”ß2ÉY$ŽrÏšˆ³æÎLeêçó§-“ ” SZ¸žÒ AU1‡­|Ï=w“àsüa¬fÔ«×$ÖWÛ,ý CQþíÕ­töH<Ý=¨"µú¦*½:ámÌ-¬Úª eÐé¢A9%àA›þC„vÓxÀ€¶üíã{DLºÆô›§ŸEkÖìIÁ´E¿XÐw'íýó$5îWAü‚q¹2R“Á•¨Ò=%Â\¥e!¿êÑB©C@ß@Ina{Ööí‡iÿþ¼€C¹D2&$\¢‡þ‚¶n=È”ù:O-@!ÞY9ê-þl7û ËS™I—äÚöû1*{›šÈA¦9J†AD7ܪ>~ü,'ºåÎÆ–׋ 7cRžm3ÑŒ—·R—J¦Øh ú:^H`Q£yóf§Q£ž hÏ??:DRh³‰àùðßGÕÚR"LLúï¨f˜þ˜‡¼ÅE‹6ó«yC¨sç†.¿bÈ…ŠaâO]¢Ì92ê[%¡½T3 -þ¡i½N ôá‡÷óg §Ó?, Úª J°2¦Ð" úÐâ²Öï¿¿mÚ´ŸºuÃßP)@7ÞX>d²hÊ@8  fr8ŒBexüñ¯f3^Õ+SFßy áPhÓ¡E@£É¡Å?ô­Ÿ=O­Z àJ] Ÿ~z‘òä‰Ì/›…I• ÂPŸa„`šÅÏž=ŽþûßÇéÔ©óü©€¯ø {ú!Þ4ƒê¥,ÖšpNñõOÈ«Û6äCzŠÍ#„¸lÙvþÂ޸Р…ìÿë4M~v­Ï_¶Ó–(†å°¤¿P5k– AƒÚÑèÑ‹hèÐÙé/@·xbçyšÖu3•æï–Ô|H'U‡ëP+†ëÈ„@®Ækò¢MuQ‡bþøEšòüfÊ]"+5ìͯHzYs2€MjU©D@É0•ÀEëiº¨CàFöR¼¿X|!S6eÂÀ¡øš” iÄר§OkºöÚ2ôè£_Ò'"¾?¡êÀìžÛéȦ³t×€ ”½€Né Õ8øÛ®’¡¿HÅP¹Ì™3Ò°ad!‡†Ó¹sñ1ÔûÀtu×´巣² M¾rI§+%$$ÐßÿMË—/çþ¿_60±ÉŽ6?E¿,°&EÀ#¼Ü—©^½»y≯=æëAßð‡à=X¿~½©V­˜ÂdΜÙ+VÌ,Z´HÊvïÞÝÔ¬YÓ•ÿÇH¹6mÚ˜ 2˜Q£F™9sæ˜"EŠ˜œ9sšlÙ²™Â… & 9ŸI#IyBüsð¥—^2¥J•2eË–•ó2fÌhž~úi©òáïÃ?tUösäÈaâââ$ïÎ;ï4ÇŽ“üO?ýTdÊ“'ä5iÒÄ0©&{Ó¸qc9ç¢ÏC‡•s˜ÔMíÚµ¥<ÎC^Ÿ>}\í½õÖ[ÒoÈQ¨P!Áò!ùÂÑUÿ³ÁÞš¯,\¸É”)ÓÍ|ðÁ/^ËhFʨ[·®¹îºëÌÚµk k:¦yóæ¦\¹rB CÜømÛ¶5Ë–-3–ܪV­j&L˜`>,ÄÕ¢E ÃZ a-É`»D‰†µ²$åYkô)Èíõïßß°f@nØïÙ³§9~ü¸¹ÿþûM¥J•¤ŽM›6™,Y²˜^xAò Ñ¢EM·nÝ k‹&W®\æ“O>‘² lë¼yó̘1c¤Î;wš³gÏšW_}UäQöë×ÏäÏŸ_°À‰}ûö5¹sç6 IÖ|å¼ á"²uîÜYÚð…£HÙ?%Ôᛥ¿ûn±)^üE3vì± @{Íf§ÜÐ =þp³ã&¹à8È$‰dÉpüøñ² e'Ož,ûøÇ¦§CY÷ò®B^6@†eÊ”qå¾÷Þ{&kÖ¬Bn88lØ0ÑÖ° mÏœ9Ó%{Ë–-Í•W^)Ä\¥JS£F 3räHæ°3›±†ÍoÑî|ðA3mÚ4súôi!EÔyèÐ!³yófÃfµùùçŸMûöí¥={ö˜®]»š * ˜$'´`ar8ÚsRð;[½º<ºš|#ðÀµióæôòËc©t邺¨ƒo¸|æZ?Û!Cx¢û]eK–,ɾÙs²_±bEÊž=»+L8²¿cÇù½þúëåÿŠ¿üÕC&bSRŽÛò®B>6ìù(Âf*¯‚^„Î-g°iîòýYÙyä‘DµAv6›y­ÌQÄdÎo2=!¾ËzõêÑ”)Sè†nà9¬ƒä5ObS™¯¥—‰µOÚ²e ± €vïÞM•+WvÉàG,]º´«-ÈrÍ5×Ⱦ•ÅŽ®ýÜЊŸ@Åz±7Þh*ß\îÔi„,ëx¤¶ÿW\q…œÊæ!±Ù(¬ÒÇL¬Y%[-û¥ ‚/6á|$öûÉoJÿdüI M6“ù;:k\²³éN½{÷–Àˆ ä‡ Ð¸qãhéÒ¥ôå—_3 çU«Vk|ü-ž§‰5P©£GBü r]Øäv‰‚¾®\¹ÒEÆÈذaƒä§GW#Ž %CºéÚQÉ’¨}ûaQ¼¬Åø>#6rnñ‹òåË›’üÁ®´bÅ Z·nOaz”Ù}•Ø!¹Ö­[Ktš}ŒÄ>HÑ@Ñ_DÍ¡ÍB³D´üÝwßãã㉃.’D{쯌¬F˜V=â›Z‹*†¿ÁÌÎÿžìXl.Æ<"‹úí2_×ÿËœ?‘à7ðëñÍ,¾1¾)%š»páB9>CWlb”rLöøYŹR°Y->7ðTÞu¢‡ øån¾ùfWÎG}”ȇ8bÄ“)S&WþàÁƒÅ§ˆ¶ñרQ#cƒ4ï¼óŽD·ásÄ“§xà#¬_¿¾”Gô‘p´ƒ4}útÙG?‡è1‚2l2K>“£fÏ„/>É.]ºHž/¥@ÊþÍÖõ yD5¥ U«vSË–èÞ{¯ç³Û¤ìä(*½vÜ!š÷þjøn9ªxwþõ LDÓ‚ _]Jü‹0W9‚Kð12Yx<¾8Os÷Pš™Ó'ç±1ϲ÷ÈQðD%8Ú-rÁ·gý޶´`̉„vë”X /1 “#΢ñB;Ä9wÜq‡ø ™,‰§$‰)Ý©S'©ÖŽÌìãޜȼ¶2à·`Á‚T @ç!lëz†îˆè¾LºŠ:uúŠM˜æôä“·úwR•¤ê©/l¦ëž,N×>~َ݃?~7O D_e¸&˜ÆÕ«W—`Ëí·ßNðOÂÉ¡[¼É é;vô–Íßÿyä÷ºç+º#¢ûþ#0dÈLöñüL_}Õ‘5ªáÿ‰^¯ØýÔqƒ|ÇøÖže"¼7á->"î}µ¯¢!ËÛ2ý-¸‡êv+I¥oÉ29´áÐ! d:ìcªå§žjH=t#/ù>ŠW ÙV}ÇJÕ³ßÞF5,L5(V²©0釀.îš~XÇ|Ka»¨O¡ÙðÓaªÜ¬ ¼wó›èB ±9î¡ëu,-ê:”µåT   5¤4=% ÄÒ¢i€IO ê3 è±Þ¤]ÔaÚ´Uº¨C¬_ aÔ%Ã0ŒX‹:ôíÛFuˆ¥Aó¾êB a>@Ñ,^(u¸o(cœMfìµoIPÍ0)&z$HÏEö-?Eß5_M'÷ðjÕš7” ÝÑÝôG =u8¾ýM™2%]ÚNm#G¥ .¿õ2|øpzþùçS[•žD” ƒn¬T½~ýzZ°`Aл;qâDªW¯íÞ½›^yåz饗(>>žî¾ûn3fLÐÛOm mL•B:þ<={6µUéyAD@É0ˆà¦WÕ¸Á¶mÛÆŸã¼H[·n¥•+WJÓ—.]¢U«VѲeË„4ppÇŽtäÈ‘D¢íÚµ‹Ž;æ:¶|ùrZ¸p!>}Úu §NÒ;|ø09s†¶oßž(;'Nœ ãÇK{óçÏ'Ìu³ ÚÑþýûewݺu´hÑ"—ÆdË / 8$cŒúqîÜ9zî¹ç¨víÚ"¶_{í5š7o]yå•ôÆoØ*åÿþûoúõ×_içήã'äoÞ¼™ údpQA“›3gŽ®Í³¿¨m¢Ÿî Ç~ûí7þ¬ÁWðF?öíÛ'm=úè£ôÁ¸òS+««Ý§Â… &lÉgÓ[0Ëš5«+èС’ÇDjÚ·o/2ÄÅÅI>“šÁÌœ9Ó,XPúì*T¨`˜p k…räéÛ·¯amV°Ã‰i‘ÕÕ°O?ýÔ”(QÂG Ír 0[5ÃÀ=WB^SžûÌäÍ›Wv¡ ³‰nØå ¨t¯^½\õB“µ‰ ÕL›6Mv™ Í7ß|#ÛNÍ0-²Úv|ýªfè $yªày6U+VLd&‚T©R%ù…Æ„ÄÃOlÊIÀá‡~í´E$& Ù†fyÍ5×4.øõ¬ß­N:Rÿ ­yKL~‰²Ø%«‰"£\¹r®|<èÚ÷¶Q¥JÉš:uj’"l:‹f ?&‚+×]w]¢2Àš MhÓ¦ìÙ³‹¯Õî»çÙ÷Ãá…/‘lü±©Mùòåm~A¤Ê•+ÛjˆÝ. ×uб_aZeuT§›@@Íä€.UÀÜõ'üØGÆ “wŸ›7o.§TØ¿&¦‚.¬±I`° ¦ ·´gÏWêÏ?ÿLDžÎ|#|«­æ1û %(bÙß?üPL×9rˆÁ›‚YïlÃNöÁaÏ·¿W\q… öoÀ€Ô¦Mq' œ3p³šµo{z’_ÈVY“TªÒ„€wOššÐ“à ø×8øAo¾ù¦ÜÌl‹ˆvü…Õ«W--7.|Šˆ:s ÅåKóÔ7)ükð‚\EnÒ¤‰«(›ØR¦›°iIM›6uå±™JÖ‡ƒ‘ßâÅ‹‹¼˜BƒÈ1ˆ;w–:ºté"u .øAÙ¤—v¡å"´Ò’ðÀ€¬Ð¨Ñ¯÷Þ{Zµj%‘gø áíÓ§È„rݺuÿ+Úd·ááœ)X²:ÛÐí ÄrÖ!G µ>C&1‘o<ñ¯ÁG†ÄS>d>;›àWãËÄðü@{Èðt?¢¡ˆ³6fxŠä#š ßÎa­Æ°ÉœÈgȦ©”C4‘T[]uµ>Cœ‹zàKƒ¿’§·¸dðMFäBˆÏçã>=иÎGtœç"ºäDd˜I^ò­ÏÐ℃7vùK—.m>ùäW]8/wîܲÏ®¹÷Þ{¥^´k}«¶0°ã€“äã§ß’ƒSr8tíÚU|8/-²Úv}ýªÏÐ:Iòfä)ÌH)¦F|Ö¤ ÏÏKr*Ϊ{â(ªL¿¹‚€ìÔg9!¦® 6W ¦¤ØdÉy˜v’\0Äžçþ˦¯á¹†5GÃs+ݳeŠ ¦Û È dbÿ < 0-Æ=±ÑðüIÑd÷,Ãó % åžé@Á’UÉÐmŸû³u=C~ÌÇR‚ɉ‰Á0‰±Þ{BðÎO æ´§©-žÊ¢L†ö–܃,ÞÊy:ÓÓ|¼%øýü FbÍÙeþº×Ïó/ÉzÜó0MÉS ¦¬žÚÓcÞP2ôŽMTæÀ8xð`™ÛÇ“ˆSÝGUð6ˆ{BDAO ‘lD¤½)<£ÇôB@¿’^H§ É“'Ó=÷ÜCüŠ®tÜ´hbìJ×xjJ9MN#- (±€€’a,Œ²öQP’E@É0Yˆ´@¸"0~ü²pMåŠ@4€ƃ†‡}µ.ŒÅ ‰h'Nd¡M›òÓwßõ Iû‘Шsù´H7Ô2*†z<´·-ÒúÆ„‡j£êÐÁƒ98j™×\Œã·i.¯U @gÙw¾O€*£º &GõðFgçxž2ըу‘=CÏ'±bJ–Š+ÒÆ£¦ÏJ†iÊnݺQΜ9ÓX‹ž®DsæÌ¡;vD–ÐÉH«d˜ @Éeß|óÍ”/_¾äŠi¾"UìÚµ+êÈP}†Qu‰jgE µ(¦9=OP¢ %èNíŒ" ¤%ÃÔ"§ç)Š@T! ”¨Nï™6m­]»–^xáï…óÆoPÆ ©Q£F‰j2dO…‰£N:%:î¾³sçN0`½öÚkT @÷l×þÊ•+iÔ¨Q®ýŒ3R©R¥¨N:týõ׻ާ×FŸ>}覛n¢[o½5Ù&·mÛF_~ù%­_¿ž²eËFµkצ[n¹…®¹æšdÏõU`Ò¤Itøðazì±Ç|K’wñâE:}ú4åÉ“'I^,PÍ0FF$³jÕª ÷véÒ¥´{÷î$í¬[·Nnþ$n.]ºDgÏž%cŒ[NâÝC‡Ñ’%K¨H‘"T®\9*\¸0ýù矄©N#GŽL\8öÎ;Gñññɶ„~½ýöÛ‚QóæÍ©M›6´yófz饗¤?ÉVà£ÀÖ­[iÆ >JxÎZ°`µhÑ‚<ˆ‘£ª¦Ó@_¸pŽ9"7íä†/_¾<áæß¾};!¿B… ”9sfÚ¿?eÏž=Ñ“úàÁƒr,W®\"1.zÜ|¨em‘àæ‚–”5kV:vì+VÌfË/´Ü”ÐJ -bjÊ#¡Î“'OŠV†yd§N¢J•*‰V'ød…&YQö¡õá˜?éĉrãåÎ[dÍ’% •)S†2eÊD%K–¤wÞy‡òæÍKè3ˆ ²=z”pžM<ò-ZTv!ËþóúꫯDÓI"haH•+W¦9rÈ6äþЈ€'êÉŸ??Ø0™¸P¡BT¼xq)kÿA¦½{÷J=ÀÏ&ú„2¨¸lÙ²…®¸â W-Z$SR¾ùæ*Q¢„”oÚ´)=ðÀôûï¿S­Zµä˜7™%“ÿíÛ·O®›ªU« Vö¸óc‡?àl¡B+Å/®5ƒŒÀ uBVÇÑÙV4l+¦Ó(nÚ´‰žyæ1…þúë/iõÊ+¯”hÙ²e²_½zuêß¿?õîÝ[ˆ¦_¿~r„öàƒÒsÏ=G8§{÷îtüøq¹iqÂJ—.M+V¬ =zˆÉ“!C ´É“''ê%êÅÍ›74‚»ï¾›^yåZ¼x1½ùæ›tÕUWÑš5k$uüñÇ®ú¾ûî£Ûo¿^|ñEZ¾|¹hcŸ~ú©ßfˆí঱€n¸áúðÃ…´€Ó·ß~KãÆ£ñãÇÓÀ©Zµj4tèPš8q" 6,QìúܤIúå—_húôéôä“OÒßÿ-ší¡™]{íµ9fÍš%7?@8ÚÞ.æHÿ÷ÿ'Ø'4\Ôú`ò?üðÃRî‰'ž V­ZÑC=$ã ÌÐ6ÚDÿºvíJ =}ô‘Ç?_2#øðá";@;˜æ3g‚–ˆ6A–x¸ìÙ³G® \h›wß}—Ο?Oö:{ôÑGéÿû_’‡§³ÞhÞöïQͤsßð¶Ê÷ß/7 ü^ÐvÆŽ+*ÈOnøÛpCØ'öܹsåF…/& žô¸áQüjðá¦øàƒD‹‘ œ=ßSqSÀ8uêT!Aæüùó]EA²?ÿü³ÜtР@D6 A^HÐ:AÔîÚ§-ëííÃ4Cû¸ a^C3q& 4E$ G´HoÉj~¸ùíûï¿O5jÔ Ÿ~úI0«Y³¦ƒF„-¦ê?þ(¾F-äBß4h ¿(¼1Ñø¿ÿý¯l?þøã‚ HÒSÂþOŒ-,h©nݺ¢…ãáqÿý÷‹,?h¤eË–MVf\ qŒÝ”)SäÁBÇq› véÒEúÝ«W/ÑÚqmÀR€ü¿þú«<\ðÐ…Ÿd‰„±Hé8Ú6£áWÉ0G±]»vb~ÁÑmäf÷A¸ ñô "áb‡“Osh0ù@xÐ^ DO=õ”˜u8·eË–bî¡´=o 7´;´ƒr0¡YÚ‚ÂÍcë±Ú,ò;tè@õêÕ“¢ÈA¥ô&B{ !˜ÚÐÆ@6γ'´œë®»Žî½÷^g‘$Û0ý d‡© õ£hRÐÞàoDH0Aîp\}õÕR$…‡š+P_|ñ…hy .¤müО9sFòÝÿÝsÏ=T¥J*X° hnÖ š-49˜ÄxZb„FšœÌx`¡Œ3Æckí Áå"Ä~Ïž=¥ß¸.ÐÎ7Þ(-Ê o8_²¦Ë¨™œÎW‚â¦E‹ ~/.\Ü0@D¸à‘@¦0‘¡"" "EžÕajÛd}ivßù ß3 l8î$7ä¡Mü—Ð$ÝÌC˜Ž6¡N›¬¯ æ¤{¡À܇Y‡ÅɽœÝ‡ù RÁÃ7‹mÑ&K¶?v<1\Ö§hÏÁ/HäMþUŒ‘¯äìˆæ2´6óm·Ý&8†¾A;ûüóÏåÁ†cÞd¹C[v&¢M×ÈÄ 3¤‡ Ú¤MÐþ­†lÅò¯j†é<úÉÝÌVh" A˜k ¼sA˜uÐT@†Ð4`f!aj…MV«±ûÎ_hG6Ù€“õÀœ÷E¬¶ü¢ŽÕ«W;‰_ Úˆ³q@ÿA¸Á1=Á_ æ>46ø-Ñ! dêB²}õWøé@Ú0£¿þúk xØ:=ýz«î ª3øðÐC€-9™1ÎÐjíƒd® áaˆ\ p/À}ÒCzöÙgå!Š)Ü;wvΜòÄê¶’a˜Ž<æ¬!Z9bĹQ¬ö|QÐP`ê"j‰rО ­`î"ˆðYAð–@ 3fÌ7:nkªã´‹z`¢ÃÙ_—M a¬Z‚„ó³Ï>sM§iܸ±nHh$hç­·ÞÚPJÈn€fÍšQß¾}Å-€`Š3aº‚80],²À„„F’¹Àdž€úL mZÜY—¯mð…VÍÓÎqn)IWÈÌñÀAøþöÛoâ¿KNfÌGÄÁžb†;Åjݸà@°íŒ=Z\ ¸VŒÂu1üH"Ê¢OH8Ë$V“šÉa6òV£ùA[€¦ÿ“Mˆ^" ˆ©¸ˆqÀŸÓþ5ä=hß}÷k¾nPDp­é9Por ߢÂA #p±}A‘Pêoß¾½üáÀA„Ž;Ê9ðU¾÷Þ{È–}§Øvß—‚üÏ⎱îˆÃdżF£•ÇÖkϳû6ÿÎ;ï”|¾ i$ô ÑmŒcr2ÃoÚ}¶„X¢CôÝ9½ u"P„È:dCà 3ðPÂ8#Á¢èÙ³§ôÚ$ÌzDÇMvw¡È 1ð/? b÷Q†¶‹»‚œþ¡4T™äTÜøÐ ¥9üO˜ÿ—û<8˜MpŠã8dá¹O­€Ìà§‚ù 4$!œûÐq³ã&³&¸S†ä¶!#ˆ$ê› ˜À‡†¾€°„—\?œùèêÁxA«ƒ¶iýβÉmC»ƒ† ?%抺˔œÌ?h–îþC_íB~Œ7~Ѧõ[ã´‡:“ó…Úúí´$hšQ’ædŽ’ŽDU7 •ÁôƒI ?{ÂEŒ'¿§jýIöFôV6-$†ºaº‡C&V+M‹<è“[Fð—š溷”œÌ ö”!Úñ5Þh±œ” Ãpôá„£¾mÛ¶³*µ +Le÷„›Z§ÍÁMŠ@¬! fr*G<=ÌäTŠ–n§ÁDÄôLø…I÷„$?3\µ DÎ ùîï¢éh5¤fr –Š\0 ¯b¾^ëÖ­Å!ÿ&¦ŽÀdßj®)¯¯½A+Fà¤?™ºÍSŽc4ž¡fr4Žj:ô ÑL˜óîXߢ—_óTäaÞ›õ‰¡æú!Ð?¢¬â¸· àÐáBÛÄlã\gÔÔ4ðk°]Ç12ÈþUD€AÜÐ A†ˆxCn¶3hYm›úÙ(Föø…LzD›áÏ´DhÁ”¬rc#¬ Füaú¦ñ€˜Í bJ"³0³A^ÐÔ0½oš€ÈÉæ˜Chçùaž!Ú„‰‹7o07‘X´=Lé!sí<:h± h,W…„i&NÙE!0 ;µ²Ú¾ëod#üd¯ÈîŸJ ¥á\gdÕ6ƒè* o=àÍhŠX “ágB¤†méyZÐÀæCCD0 +«`á;ÙÛÛÂ0yAj˜B‚_œ y0Q‹À§‰}LÐv¦@Èê¬O·#%ÃȳKì¯ s1…ÄFÄ1Ç <`ÚMÞ4°ù˜ ­‹(€|A¦É-<€v4h Z'Ìj,$Å,|½-Y­Ìú™¨™™ãR©a#‹•¦± Œ3AcÄ;±x%føùœŠñzœ]$ç9'¬;4°u:'|#沯…à´þ@[´Ô»îºËîzü „¬+Öƒƒ€’aÄ Ux Šà–Ù‡ëœFƒwl±š3Þñ¡ 4I4Á»Ê)Y°Ážçì½sáû­¬¸ƒ¶°@f²MX¾ ر´•·Y½Õ­Ç#5“#cœÂNJàÃ{ùå—%PÍ ¯ýáB,Ö€ ~Àr^vÑ ~»´$¼jèká˜â0{á_Ä"¯ ²â D•¡9bޤ3KVgºÞ¨fÞã¶ÒáÝV¼èÏ R‹-ëÂG‡„iñ 'XT&. ÀbªHîZöÝIÁþÙ|𝅰 ¢ÍX ŸJÀ²gHXt‘ph®ølM–ÕÖ«¿‘ƒ€¾’ʱÒ7P.‚Ã<@hZ0Q±êŠ{‚htN {¹”îc:Ž·…Pæ BtoS|@¨ð{º§`ÉêÞN¤ïë(‘>‚*À@p$¹µ1Ð9±9PBøZxm`™*OÉùu=÷ü`ÉêÞŽî‡ê3 ¿1Q‰E (†tmRPÂ%Ãð•HPB€€’a@×&E üP2 ¿1Q‰E è<Ã4‚Žõñì÷CÒX•ž®D ˜Ò„h~4%%ÃTŽ&¦m´iÓ&•gëiŠ@d#€u&Ý?FÙ=â—ø½Qý:^¤¢Ê¯(iE`Žú Ó ¡ž¯(Q€’aT £vBPÒŠ€’aZÔóE *P2ŒŠaÔN(Š@ZøÝýÙj\]«ÉIEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1DateTime__inherit__graph.png000644 000765 000024 00000025755 13515046516 027343 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÀÓמ2sRGB®Îé+§IDATxíüTÅñÀGš VÄŽ v£Ø@A±×¨XƒÄ®Øýkì `‰°%*`¢1€°€ F ŠšHPQÞ¾cöù®ßý¸òûÝÛù|îî½Ýy[fgvgf÷ݬÁÓâÁS ¦XE ˆiß}·=¤ž§§@œ)à ΣïûîWÏñ¦@ƒäîùå—òÖ[o%'û{O:OfÍšÉ~ûí—ØŒà(<ýôÓÅþãiPu¥Š©S§Ê\ }ûö•¦M›¦ä×$áóÏ?—‹/¾8㣭Zµ’[n¹%c~±3êü ðé§ŸÊ›o¾Ylº¤”÷ì³ÏJ›6mdæÌ™rõÕWËW\!?ÿü³vØaòÔSO¥àו„I“&ÉĉÓ6÷Ûo¿•—^zI/^œ6¿&‰«­¶š4oÞ<ü >\æÍ›Þoºé¦5)¶æÏ$ï ¸°äôL÷?þøc0eÊ”`Ù²eÁÿûßà£>2ÔåË—ãÇtÖ ÔÿjiÓ¦M æÏŸŸPÔŒ3‚… †iãÆ ”¡ƒï¿ÿ>LãbÑ¢EÁo¼|ýõ×Á?üèìdù:s{챇]ë€ß|óÕ7f̘@…ÃÒùÒ;˜={¶Ýë ºÛmiaÅŠt@»èý’%K‚Í7ß<8à€ž¡Ï»ì²K°Í6Û¸bìù?ü02dH0}úô0½:åj+…ÒNhE]®Í¤ó,ãLž<9˜5k–]gÂ?í´Óõ‘ ,^~ùåàã?6|¾>øàÛ ûì³ÏÂ4hÌ88ú‡Y.Üø§CiÔ¨Qеk×tY–¦“LƼB2N>ùä ÝF˜$R¨üç?ÿ1"µk×.Ü9„Q>øàð^·Ÿ)÷ßÿ mÛ¶a•sçÎ êׯ<øàƒ6[n¹e°ÖZk«¬²J ÛÖŒ Œ5*Xo½õ‚zõêþ^{í¬¹æš–³eË–Áúë¯@X‚?þñ†7xð`»?ðÀÃ48õÔS­?®,'”µÆk 64ztèÐÁ&œ(=Ü5?`À€ }ûöÁŸþô'—œò›Kt¥5^‚/îšB&(š Ô¸qcSzöì)£G6™sEÿøÇ?ìl‘Î,rúé§‹†(ãÛ’5hÐ Qf‘Ž;šn­³¬°ìòÜÆo,=ô©gžy¦è,/:³ *Ïœ9sìùt_,éØ:kË£>jeÐu³Í6]%DUt5’k¯½ÖòTøLµáˆÞƒ ìºë®öýRæ‘£Ž:JTh¥[·nB?ÑsU¤OŸ>Ò½{wyíµ×ÂGò¡“CÎÔVÚܺukÑM¾ûî;Ùi§ÄéòîY]}ú{ì±ÖÇlø_|ñ…Üu×]FlÆŒg£ÎYg%çœsŽè*,ÐYWë_uêòË/Ú>¶ƒ2_¥ kPÙpà ¥S§NVæ•W^iuTH6äd‰ªé ðÎ;ïXQ,»Z_Àl°dr¯5õ…Ùãoû›åtÐA2]_sÍ5ê‡Ám·Ýf³Ë&5píùÿû߆Ç×M7Ý”qØyçC<.PO˜EܬêVò¨“•&Ü{ï½Ö¼¬¨¨InÅqˆ¬F¬RnȇN¹ÚŠŠƒ:IYÿüç?ƒwÜ1PûĪt³öÀ]L%Ê„Ï °ÕV[…¸¨J¬^ÊÄáj ðç?ÿÙh Âlªê— —©€¨ˆj(¬ôŒµ [лwoû°à ¹V÷ª­NˆÁ¾ûîÖñØc¬4ù@ÉW€M6ÙÄä¬Aƒ_KÛm·Ý33ÚHÑeÛŒÆgžyÆffFV/׬ »ï¾»0³*Óˆª(–¯·_¾Ü,&D.”á#wb³‡[qÈØzë­Ãü6ÚÈ °0!ÃÅ;ì`9Æ KÁPµÈV0 E äßüæ7 8Ð…ÓA>tr¸™Úª“Ð&@¤W¯^¢¶ˆ{$üUÛ$¼Î…¥-+2c§vYø<*@vÆgÈ1Çc¼bªŠšWŒÙžÕz¨ý%gŸ}¶°Ú TÍ“óÎ;Ï´‰_|Q&L˜ ;wVº•¢©@.€ÉUÏ!Dõ}9úè£í1§ú²©7:»GWq1¤€söË—ÛáuòÅW_}&Á”ï¿ÿ~‚ÀDó¨lÂä BõÑ™J |2èÌhê–êÆ&lêQÔX7¦ˆÖ‘/($][f& Ü“¨Y]ß{ï½Ã:“/òÁÇÝé@W]cªh›ÉÃ; Pñ˜”øèJeª+j'*ì!‡"jÿ™…Z,`,qyÿîw¿“#Ž8BtÕ’ûï¿ßÔ¿•©#?®]™’žE_fÖ¸ñÆE 5Á-àk¾ä’KLÿ×%ÝV ˜ ⢢›¢»£w>üðÃI¥þz‹ð Ã¢ß#P (s ê“•ó¯ýKÔð•#<Ò²˜½¨]ˆÞ3ø´w'B ð ) ,tgf\êe5ègM S[ÕCe6¿Ï?ÿ¼à¢¥¾L Ÿ•{ ý«j…­jÑòè+ mÂm©^.£ëСC…qºè¢‹DÕ/Û“a>ÿüóMhø…V5fúsÏ=×ÊêÒ¥‹l¿ýö¢ªŸÕÅýꫯ^Ó¢y.Yª©  †«…+TK6—5Òì½Öz28¸;à©@‡Æ„^¨³®¹*ÉÇ ƒ.Í3:ƒšõ©ÚaÅ8†ÃE—½ãŽ;,ÏéÕN‡TUÍìçnÍæ¢Üqêÿ= ´ï‹2Ž•Ï—Î¶¦‹»vâ¥A7œ rµ•v@#h¡3u Fq@ð¶à¥~繡îløº"›¯ÏQŽÎ¬<–RÖ_ÿúWó:ÇOîét]é;ô¦þL@?tã+SvpÙe—™M¾û»¦É@7O€B áá¹`Ü‹™ ¬G!P/^yåSw0Þ’Z÷ ’“íU)22åDÀdœdC99?Û=Ë=.ÙL€Ñ_,ÈÔV | &fƒ\øº#êAËV„åaØî³Ï>9ñ¢ºFo ºv*rA€\VÀ¿¯Ë¨ù¥ÿð‡?ÐÌDT ãt†ú!ÆR:€ðv8¯T:œÚ’V—ÚZ[hVÓv¤ü1ÆáI'dnËšêŸó¨mp¯Dâ ˆBÙ½@ÑÊýµ§@¥)à Ò#°ô×M²J7%Žõg´P…<”–ƒ²Eð†L¨Wó³2¥maõ”®'sÅíÂ'ô*ÙÅäÜ Šd¾^ÿ[::ôè(Á”^¥+ß]"mÓ‡N1‚¤Ãß”–ƒ›‰,ž)rÈDšæZ,mÃâSº·*5Ö_¿õ ó¯¢C0õ•jEìëõP)˜6@¤^CU4W¨ü]—Wª%±®× @%†fŸú¤ÈŠŸ©}é‘9¯U¢%±¯Ó @%X`Ϋ"0½V‚i*ÊN/e'¹VÈì_/âf%˜¦nçK+ÑšX×é ÜÓOF™=é-®e?è0©/Ü”»yq«Ï @¹Gü«!"0{2¬¢+¯%“¥Ô÷^JMáäò§ôOT\~ +ÂWÏ«p,r)þ· ðP"‡U,ûNd¦®ÉêC ýËÁîÎÿ–^Ê@ä°Šú_;ÙüýüÆû…èþ¢ôðPzÿZêO6ЗÜÅ\¤ó²aù¼"RÀ @‰™µ¨¥úoxlvñ?Iõeøè~;ÃÓýIܬ´,bfÄ]ÄR}Q©X2[¤åU‰éßNÒó@_êŸîtHLo¸v⽿+üiÐ’‘6‚'Ü¢`ÿ9¢æÿ›“G-% ¼ ”…8>«ú)à úÇØ÷0 ¼d!ŽÏª~ x¨þ1ö=ÌB/Yˆã³ªŸ^ªŒ}³PÀ»A³§äY‹4ôÒ’™"µ-yU¾‚ôðž.>5&ð*PLÚw3=¼¤§‹O üY :>зß~»…žuÝpa¥fG­|€¿”×`¢±‚³¢?ñÄ¢Q)3â Š¿Ô|üñÇ-„SFÄZ”áW€Z45iŠF«±xYÄ æC ; <.L\4U^EÑÉzJš7onjhè*!z£KCø4ÂŒ“¬Î@òƒúûÚK „—Ò¸N8!Ð`! é„KR¦ ˆ™LÈ&ÙÑ¢ÆGcm:I#uZ¼/ óêP-Æ/áª4‚d˜½ÐÀ|öß±/L&Ì’Fó ø%,ÒgÌ5á”YVŠPL„Jîá—²ÕÉó„¸*&¤Ä+fᾬ•§Œ4`À€ }ûö/¹ÄtŽFT7%žq¿• qdðTu²¢.¼ðB LH킜ëlìСC@ ê(¤Æw×íÚµ³z)ÿ€0AãšµäS'õôœà|ü‰s4\´m…\{HG¢bÀQ豦­~âĉ~u³Í6‚P7mÚT4Ð[ZÜt‰¿Óxº€ì“>}úˆF”I“&‰Î²Ò£G¹í¶Û„8ƨK”KðkbÇúÎ9ç ðÍ3„¦íÞ½{ºjr¦SŒâ„Œ=z´(ÓZ(\BÙR!T ©S!ZØÜN: ´QA·~ålH/S–äE“õ-±‘aUÄç%^/ X÷î»ïІyµ áýúõ“ÝvÛ-ÄÍuÑ¢E C!Ž.ÁɉêŽnN|_„K#JŠFÜL)fàÀsX£mšð` ëL-Æ KÁÍ' Þ¯‹ÕŒ`Á¸î^W )¤N ‰+O>ù¤Ñ¡ÄÎ!®t›6mÌøFÀ ï*„Z%ÆÅ eöÅØ1b„tÐA5®‘ Õ@«V­Dup ÖÍLL Á 6Ø c¹Ó¦M³¼d£¸Y3ý+÷€ JAäN`»í¶³_¬PÕ©Ißçwž}ÖM °Î;ÛÄ _ð/¥Ê€·ûî»Ë< ½{÷–C9DPcÔãŽ;® ˆèjxZ4NÜ o¼±‘“•@ ^óÚ]^“§íѦ›njž$Tç7nœ,\¸0-~®D æ Å¢Àã½*¤NV&Þ=öØc2räH ¡‹7 OX!»u…”æqWЏ/ºè"sk¾ýöÛBŒàóÏ?ß„_$ Ê¼ú꫃?¼Ì2jÔ($ðQ}˜õ6lh¶€ÓçÕ£bÅ‘þÕW_‰ºrä‘G tÓM7ɼyóLeB]a–-Rç„ äÜsÏ5štéÒÅV´wÞyÇhÆ=‚^b1{Ü"S`|· x¡eÖBñàôíÛ×<4W_}u ®n>…^xóò(Cƒ qU 4¶r ³q §eî@W†@Õ!ÃÑÍ-ó ©~m÷Ë9ÐàÖa¹x]’£Ð;/Éa=ÎóõilhËÇJûÀThí~ðàÁvŸO ^vÙeAëÖ­ùƒ¨;× ©Á—? WÐtQdä_ŠÇÀ«iÔufuVŒcÔ%K–،ʠ⠧;µ‡UAÉ·Þzë"w<}qùÔ‰£ ˜Ñ㽤‹ò¤(åiT¼jñPÉñÆ ºä+ÿ>@ÇÀ @‰ï«®<¼¨òcà[PA x¨ ñ}Õ•§€€ÊoA)à ‚Ä÷UWž^*?¾¤€€ ßW]y x¨äØûU²±¯Û @%YÀÞx­’-ˆ}Ý^bÏñ&€€xì{ï ö,oxˆ÷øÇ¾÷^bÏñ&€€xì{ïCW’üû•¤¾Õí âCàPI x¨’Ô÷uWœ^*>¾•¤€€JRß×]q x¨øøT’^*I}_wÅ)à âCàPI ýÏqO:é¤Jö§NÕ½Eãod£5ËØYMëT»+ÙØK/½Tô¯‹Ö„¢®ú׌$Mÿ²h ¬æ‚¦·®gþø™gž‘éÓ§ðDnÔ¢¯T©alDC÷ä®Ýcx @þźØPÔ Øóåy ”š^JMa_~­¦€€Z=<¾q¥¦€€RSØ—_«)kÐ ÐrØa‡Yx RáI ´ë®»Zœ®]vÙŕհÔí,¤| jmá˜2=CDȧžz*Sv­H/‰¨Vô,FÀ”/½ô’p­”0gÎó]ÏŸ?_ðcqñå—_–[n¹Åb[׫.A÷ˆE– È#ÎYm†Š®Ì~ÌÂË—/âÅŽ?ÞhEP7‚¡Ðrƒyf̘‘@Ë Xf—8kÖ,c,~£@y}ô‘|òÉ'–L¡<Šb÷0*žÆ²JÀ™;w®y¦¯½öšðúâÚJzô¾[·nš`n]»v¢j\.¹öÚkß6ýtÀÊ‹/¾(ï¿ÿ¾°¯â€tfñ}‰ëVúJjÜ9ÈÕVð(ç’…ŸPª.†0²dÂ'Ÿ~ÔÀׄ0Ê„ibË˜× ¨A\±Œ(£Yà3Ñ2âD3\PµvíÚÙsJà€ÊÆ5 Ò(³½zõ² o³gÏ‹ÐhˆAÛ¶m%f aEõiѾ=òÈ#†§Bhài+‹ qû]+“K×®5Šz@°6ê;ðÀ¡e×-[¶ Tè¬ÒÎV¿~ý° Ó¶e½õÖ .¼ð´÷-=Pu ÌsÊ|Áæ”é,IÅú¨q‚£kõ© YÞæ›on´pm[wÝuÝo1<ÚMʰ†›­­ÝÛ{ï½­<£qÁ‚Ûo¿Ý5)Ð8¾Áᇬ¹æšÁÑGdÃw4ÛsÏ=Ãvð<ñ®5"½]úé§ô¤­Ô©ñƒÃ€y†ÇÏi„ù<0óGa–)ÔTŽ9æc‚ž={†L¨3Žu‚Á¨0>ÌG4A@g9»ïÓ§O z¦=³jð·àšk® 4y@{.¿üòæT•ÃóÔSO5ÜL —¡ ²¢FY·ú`*xèêaÑ ?þø I“&aôÄ›o¾9!2£»§ÝôAãÿZ9™¾ÆŒcxD?¨ŸHŽ\pÝ#0β» ÖZk-‹ø¨zx +—õñºë®3Ülme".ºãwÞh`<£ ô<Ï=÷ͳá; R¥®DÁðáÃf;v´vD€‰Œ(”Ô }. ¾gcdÈy|U­¨j`ÝŸùdÂg"À[lî@U++3“8ÆAR}Ý…)TgwŪ¶X90d6Ðø»†—K®¼òÊ@£ŸÛjæÊÓHèa(Sફ®rYÁn»ífLä:tè Ü@¶¶ªÞ|ñÅÁĉƒ^x!Ð ÚÖ>Ú À´L²á;pãÇ3é>¤™¦2 \ýõF7h=H‹ÒÛÕ™é·PQ@ ` 3›ýjíW g¿ªدÄ~O;í43ºàŒáxÔQG™Ge¯½ö’|ÐleÙpà åŽ;î0vŸ}ö±çùR¯Ó]DC‚"”ºDó¨@ß΄!UUC† –‚†®ÍáA"sÆ…HñÑÈê<‹¡éÀ…4åžcŽNÜC+G'î3µUÕ‹@¯$wØl0𣀇ÊA.|Æ ú; krTùiÓ¦YöC=$ºÚÛ‡ñÁÍfpe–ò·V@tгuö¸ã޳±½{÷6¦9ãŒ3 ]WaÐ0œ‰x®º¸¹1܈®jHX,š xÞª%²å–[ºÛw).@ š"&]À DrOìX$v\£L´?ÊÄÇÑòÝ„T|ÚÛh?¢m½á†,š:‚¥«€èª’öy—˜ ÖIÆAr›IWÕѲU2GÎ ðî¾ûnÙa‡Ü£ù­oÏÕ0“c=V4Ò¹¨h>|že 9|Ç@«Þl3#3A¥YT¯6¼F7ÞxcÖê( + ®Jºâ³Ê¨šfŒzï½÷Újóª.ÉÀCÜè=×I uÁƒÃlO›Ô>‘N:‰½rÄG˜g‰öQ?^¼Mª¾…er‘©­xĘXAÔÎîÝ»[±QV´ž|ð"x¤Ð—飌X¼?ûà`»Dm™¿üå/5hÕªU‚M€ÌéîÙÚ:bÄ£õC+x3¶·ß~{+›_UOÂz²áãÁ¢Œ6mÚ„ý‚fØ`@´,*!6M.û)lÄÿ.“ªò%w0Ÿ{˜æHg<‘†A†[4 &†ŸÎ¼ÆÐ<DÁt:.ž•(ÀT£;]ÝQÜL×´ a;vlÈ$ɸ0FrýÉxÙîsµ•>"üº—`Åà•qFpºróÁ‡¶n"KWi”£ûîØu&¼L饀:µŒÚð裚ꃱ• éÒÀAwv;’:;%?–rïpS24A=5öI——+ [§yóæYÑÔµ*|Š™ÚŠzèT7êY}õÕí“©Î|ðuFÏôx˜N9Q;̨àE²лarÝ ¨1ÉT½õI› -¦SõÇ„%šî®É+cº2Kõ[—ÚZ*ä[nZTÌ·_ñTg5C4AõXÛÊONw÷Ùμ8œÚò[—ÚZišÕ)(±ôX€¼þúëaUz´Âüó¸\·Új«0=Û…êÔvÖEwX³¡ÉçŸ._|qF5t:ûþÓŒdZ©Œ:¥­TOó|˜ƒZ¬4¸íø¨Ai›løòqaævs{ÙðY° ÜGØÆ›»gã aJ>¸—­LŸW 2YÜ5I/Ô Z“:Šù ‡ì’AgZ;,MçÜ‘2e°óÎ;'œ]á ˜îↇÙx/ç\8Ð繑αÎíp–(à½éÚµkB6åQn¢)Ð'sãMð,é)Zó,%÷Çyo8zÀs霺¥ð±óX4¨+ ›LÎÒzBRúžN@⬎Î-æÂãŸ= ˉJÒ9ì3r"_>iì)œmâ”*§UIçÜîÔdH'øË9°VÈÉYÊÍ÷ô%'JÖ§Ÿ~:t‹&·«¶Ü—Bb£± |ß}÷™û³AìFr&_ÐCx†ŠÞÎÖ?¶;¼œ{QfŽcè¡=S—ؽåÌ‹úóE÷D7¼„·£8~ {¶êv`ó­ßáq®ˆúõä¬ç罎|è…Õ§'E õÌ3Ï4×&õéf›èhѲ„£ r¾ŠsMìÌê ZQA·6ºúªý·êƒÌàröDÕ;ÀË ¤ç nŸ9 £é¹y3˜ÙþÇÇ=ãÊåx:)V{«ÞÈF¨•a~ÊE]ˆBôí-}? še¯EF_ÍLÈ,Ñ ˜ëôe]aþ‘HªÞ(á|¹ÕA/Õ1޾5¤€€Î?VðPáq\° ÷jnbUW_#˜mx x(­õû±ÿ~f°Œó™ø¢å/e¢õüùßëŸNý²ÙÕ¨Qý«”ÔOÆ tGx…<÷Üûej•¯¦¨‡á<93S`îÜErÑEí&Nœ©óè?¸ý–„µ×®/©'t¦ŽÞõ_!ê( *Öìž=‡ÛA¸Q£þT±6Ľb¯ÅbÞ/1g€¸wß @Ü9 æý÷sˆ{÷½ÄbÞ/1g€¸wß @Ü9 æý÷sˆ{÷½ÄbÞ/1g€¸wß @Ü9 æý÷sˆ{÷½ÄbÞ/1g€¸wß @Ü9 æý÷sˆ{÷½ÄbÞ/1g€¸wß @Ü9 æý÷sˆ{÷½ÄbÞ/1g€¸wß @Ü9 æý÷sˆ{÷½ÄbÞ/1g€¸wß @Ü9 æý÷sˆ{÷½ÄbÞ/1g€¸wß @Ü9 æý÷sˆ{÷½ÄbÞ/1g€¸w¿¬!’Þ|óMéÕ«WÜiöáÂU50v#iÖlQ˜÷‹V­ZÉÿýßÿ• e ’7cÆ ú/ùío[¶ÖöŠ5™;·¶·²<í›4i’üôÓOÕ+‘`Ð]»v-E}-uŠÝ»w/{{½ Pv’û k¼Ô¦Ñðm);¼”ä¾ÂÚD/µi4|[ÊN²zÊÞ»•¬pøðá‚gâÒK/]É’²?~Í5×H!Òúë¯/;~øáÒ A~C´hÑ"YmµÕ¤aÆa9é.î¼óN™?~º,KkÓ¦L:U.¹ä’Œ8Õ”áW€,£‰Ûv„ Y0Š“õÎ;ï˜ûoë­·–-¶ØB.\(÷Þ{¯\~ùåºOðC^•{ì±2räÈœ¸o¼±l¶Ùfö™={¶|òÉ'á=é?ÿü³,]º4g9Õ‚ßôR¡Þ~÷Ýw²bÅ iܸ±Lž}º|ÿý÷²ÝvÛ…³1Ïáßfv®W¯ž•½§ŒýöÛO:vìÈ¥Á»ï¾+W_}µí›œyæ™ÿK¡O³fÍ’í·ßÞÚB},X ô:suƒ<ú»æškZZ´¬=zÈ矞°ÂñZFeL AÏ;ï<9ùä“åÖ[o5uÁí4ÃĤ_|ñŲË.»Èõ×_/ß~û­ ‚sÏ=÷Ølûá‡Ê 7Ü`3-å7oÞܘxèС ãE¹³3L²lÙ29ì°ÃŒIß~ûm¹ñÆe×]w•?þØò˜Éï¾ûnÙpà å½÷Þ“«®ºJzöì)»ï¾{Ê}BEÿ»aGt£6’#FLKW\q…ÍØk¬±†õ㬳ΒSO=UÎ?ÿ|›(~øaû=ᄬnT¸úõë›À9ÜtuEÓ{ì1&”Uý™èoMêŒÖ_îëZ¯1ãxâ‰2hÐ ÙsÏ=åÙgŸ•cŽ9F^xáiÛ¶­ýB´ƒ>X>úè#cPîGmÓ®];éׯŸ1â!ClFe¦~î¹çŒQï¸ã›­ `x0x&`vÇ6l˜1>BòÆo„èí‚q˜=yäËc5Aݪ’|t±Ç{jÊòåË…¶ùå—òÄOØõÙgŸmõ ІIâÚk¯•SN9Åî_~ùea†§­NïÞ½Mx’ªÈy›/ýiC±êÌÙ¨""Ôz@íùýïo*Çn»ífjÄI'dKú^{íeêô@`@Þ{ï½euÖ1÷ÓO?˜œ•áÁ´Y5 Cvº1³z&Øj«­¤}ûöVx¨_Ì–:uêd*º4ù|ðeqÏJå ùÞ=ŸüË*Ò¨Q#dÜÍðo½õ–ª0ÿâÅ‹““W^yÅT$ÕŽU Õ [£PÈ—þŬ³Ð6® ~­Vè³µ–stoT€d€Ñ÷ÙgS8kó¡Ú§Ÿ~º©?œCêÓ§­ä¹Ù‹<4mÚ4!‹¶¸2Èp Î5y¨\+èçØ6z?GH˜‘±Uèo&@]D8Pû`¡â ùÒ¿˜uÚÆ•Á¯õPÈ 1Kb  †`¶nÝÚh3vìX9ãŒ3LgÖÇÂJpÎ9çX>nAfKFË_ýu˜å qÔ2”ãŒòñãÇÛªâò ýee3fŒüñöhß¾}m5@„™9Y‹Ê—è ‚Œ 䀲XQ …|é_Ì: mãÊà×z¨Îí¿ÿþ¶Ô?úè£vâõxñÅåþûï·Ù5¯*ª3iÿþýÍsÃŒ‹m 0‚Ñs™ÙaH á}÷Ý7D§^<@¨_ãÆ3Ï™Ø÷ÝwŸÌœ9Óp“ïIÄ励Œ÷‡6 2Áħvš=ƒ7Œ¶²/€-@›ÚŽðbŒBêÇY@[ÁÅH§m¥‚JÔYŒ¾Ôê€Ù‡åß×É÷._õã”M$xJ8iˆ›Fa&¼òÊ+M•ºîºë,﨣Ž2¡E‹2eÊ÷h‚Ú€ #ãòdfÙi§l¦æœrh#êXçέÔŒÄ<Ðì‘ä{0rù0>«Ì¿öÚk[šëƒÛÃØEíÀ»ƒƒ‡þñÜTÝÌêª*€û£9ªê‘žnvÒ~of`ÔfM˜<Ù Š:^Ý­[7™6mšéán×õ‚–Õ¦Dýb¿¢Ø@`l˜ºÙ°bV§Oû¬n€Oµ ›Á ’e”ðkeêd’bbå„JÔ¹2ý«@­À@d)îСCi‚÷5(š5k–ñˆºyË–-“ñ÷u€U§Õšû&f @%T _-Ì òÉžÕL/Õ<º¾o9)à '‰ð6@>Tò8UK/U;´¾cùPÀ @>Tò8UK/U;´¾cùPàÿ¶ïžv†]RIEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1WindowsNamedPipeConnection__inherit__graph.png000644 000765 000024 00000025473 13515046516 033101 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÕÄÊd½sRGB®Îé*õIDATxí¸TEÒ†›Œ  ¢ã"&Ì9`ÂuņUÖ5ç¸æÄšsB×°*kÄì.I@E1¢¨ä YPD‚d$Ãùë-þ>ž;wfîÌMsf¨zž¹'tªþºª«ººgn•@Ȇ@y!0ªjyÕdõ†ÀzL©L rFÀ”ªœµê S*“C œ¨žI}—_~¹[°`A&Y-!P°ì³Ï>î¶Ûn+±)Õ‡~è5jävÜqÇ+´ †@!"0dÈ÷ûï¿gÔµŒ”Šš.¸àwÝu×eT©e2 /¼ÐÍ™3'£nÙš*#˜,“!9¦T™ce9 Œ0¥Ê&ËddŽ€)UæXYNC # N©¦M›æŽ?þx7sæÌŒ(K¦%K–¸n¸ÁxànÓM7uûí·Ÿ»ì²ËÜìÙ³3®–­ŠU«ViþW_}Õ]{íµ—-MÆD|Úµk§xYâçÇ,Me.SÙ˜”™á„ N©-Zäúôéã–-[–ÐÕò}œ5k–;üðÃÝ /¼àZ¶léžxâ wì±Çº.]º¨r3&£ÙªèÚµ«æ]¹r¥[¾|yFåJ›)ŸÏ>ûÌýöÛonë­·.ö©Q£Fi›)S¹ÊƤLÌ&+Ì)õ’hË-· ž~úé’²…é?ÿüs ³x°xñâ`àÀÁŠ+4M¬G0`À€@f"}–Á ~úé§°7óæÍ f̘¾£Œ |À5Jk×® FŒ?^_O:5¡ FŽÉ©ûà‡~Ðg~M'ß·ß~«ï|="`ÁÂ… ±Á×_Lœ8Ñ'éuõêÕyøŽ~’ ñ@„.6lX˜ÎÍäÉ“ƒM6Ù$hݺµ¾OׯôéÓƒjÕª¢Š×Ò¥K0ñäûØ»wïb8±LÁüùóƒ/¿ü²f¾í}ôÑA«V­™ùUpëÔ©T¯^=x饗”EI¬ƒÖEùƒ>Xï?úè£"BÓ³gO}ÄG„¼´hÑ"@P ³Ï>;ày³Í6 Ó/ºè"Mã¸rÁ[l>7hÐ ¸êª«TxjÕª¥éabäæŽ;îÐvá3]2#‡}xì±Ç£ý÷ß_k¢,8Ð?Úåzçw†­€ñ1ÇÀŠÉDâñAàÅ%Õw` v<òˆ–N:¼(I©Ä½Õú ¤åy®]»v0nÜ8=ôPm>˜L:uê¤ù˜ À¾h¿I“&Áwß}§i uÓÖ)§œâÁØMš4IÛD¹·Ûn»`ã7V9ËNÈš¡„?±P*@Ä2>a °Z²ÞP!¹ýöÛU™ˆŽ;j—dsMyå•W‚Î;+H(Ö¢}ûöÁV[m¬[·.``´Ï?ÿ\gœ³Î:Kó¦Rª3ÏØ‹²9n'®£;v¬#¨"îxX6zÃÚI¼Š"Ï»L†îÍ7ßt&LбsQ&-.ž€#бË.»è8tèÐÁ=þøãN&/'ª>XÛŠÒéø‹{æÄ‚iÙŠÂD&A É$ãöÚk/•DÁD&7wî\å^+‚2>¦”mã ´'-zne‘B“eÖr2 hGY°·mÛÖ‰KâdÆvÏ?ÿ¼~PHqUÁÄZ8™iÜAä«wÛn»mxŸìÆ &i(5 zB‰¢$3m‰ÇQ áIF,þ!”ʶ ”>ÊL¯åý±þTðÏôÅ“†¬[ô‘¨ÂN;í´“Û|óÍ}¶¤×ÓN;-íÄÄXì½÷Þ*”—^z©NlžGê÷$Ëwþù燓Aœ7ÞxÃ'k DÖ>ú\Y˜ÈKÛcrd²{ê©§´¯béÝ;ï¼£Á¦Árº©0K…âdB§žzªc6|ùå—Õ‚œ{î¹ZŒŒâ–8¢hâÞ8YË8qIœ,šUHˆ¾y*)ôKyO²€uâ[ûÇ"¡wfÕ#FI3FnÄÕ0º¬aÂp¸O&z‡5aF—K_GÛϤ ¬Ê=zôh_­ZGfù(ï©0–µ—Zf¢zX©›o¾9¬§47Œ,ðubÄsÀâyŽ«”u—n)à@â†:qßõCy"¤;ï¼³¦U&ÞÂj#‘?LtàÂv¼í,ÉÉÏê¶Â”*S.pßp©pÑp§Ø+Ü@Y‡©›ˆ¥Ã5”±º¯½ö𿑽»ë®»Ò6GÝåÓе¬ÃÔ­òXÖT:‹:{F'žx¢&ÿïÿ+¼¬ënôðÃ;‰Þ¹V­ZéÌŒ °„Õ9Í,ÍÇŸtm`Å™ü^•/„ë‡;Œ«K3,„*‰°"X'êÆšâAKZeÅMLü`ÑqÙd­§Ê"kVµò×_½ÖÄ(ëOÅ„>°gǶcµÛn»¹gŸ}ÖI€@]G,ø1~Pecâ÷™”wÝuW×°aCõ~”™òþ“ÉB-Û蟸cÁ“O>V-k¨@fËð™¨ÁOü±.ìe°ü+ ³ø–þjƒƒøÀšN´ÐGüH÷(DyxGPÂGÿ|^‚â^†áTÌâÊéb›2,îý–†›Ë¬òD:Ñ?OJˆ"QÖd}ˆµóYtñž®3Î8CËÒîM7ݤQ; ´aaM½2ûj”O#¬7cÒF@lA€åɤ¢ýW­>ä%2ëyO¼Ê~_pä‘GŒ?[(·æ'ÌÏöÇQG¥Ïb5Ù· £mDÄÅ ë&°Bà * ÷Ò`âÑð?r棹l-À|•ÞsÏ=C~”©þd¨¨z üKf߀õѪhÞ ¦TqœXÍ `Ñ¿ @Êi–éÓç©BÁD¯^Ãå$úºœòc—Œ€*JÆ(§9zö.'ª)K–¬pýúYÀ"§’Aã¦T€”Ë,;ë´þ;A5jT“áÃrÉŽµ¦T€”«,ãÆÍ”oHÏ ›_½z­üRÔùÅ¥õ?i&ØM¬0¥ŠÕpe¦Gáò¨õ®ŸOYµjû䓱þÑ®1DÀ”*†ƒâYêÖmˆ|±p½ëçßU­ZE~Ócˆ´k 0¥Šá ÀÒàÁSå«ßŨeíÚuòMã‰òMæŠ=]SXò‚-Sª˜Sʹ~QV?üpTôÑîc„€)UŒó‚5b=•èúùt¾¬Óµ«¹€¸]M©â6"ÂÏ€“ä‹–§äŒv:tš›5kQÊ<–;L©r‡}Ê–»wæªU+yhzõ‘²KÈ%\îxÛ [^±bµìEv¸€éˆ/lã"Å;P³1álßܹKŠp5dÈTwÅo¸¾}ÛË)õ?~¼…ŸÞhÒ¤~‘¼ösFeôÕœ³¹1P½zU×´iQEiذ®"ФI=ùq›:ùÙUsÿòsÜŒë#`JãÁ1ÖòSªü7ã:ƘRÅxpŒµüDÀ”*?Ç͸Ž1¦T1c-?0¥ÊÏq3®cŒ€)UŒÇXËOL©òsÜŒë#`JãÁ1ÖòSªü7ã:ƘRÅxpŒµüDÀ”*?Ç͸Ž1¦T1c-?0¥ÊÏq3®cŒ€)UŒÇXËOL©òsÜŒë#`JãÁ1ÖòSªü7ã:ƘRÅxpŒµüDÀ”*?Ç͸Ž1¦T1c-?0¥ÊÏq3®cŒ€)UŒÇXËOL©òsÜŒë#`JãÁ1ÖòSªü7ã:ƘRÅxpŒµüDÀ”*?Ç͸Ž1¦T1c-?0¥ÊÏq3®cŒ€)UŒÇXËOrþOß-Zä>ýôÓüD¯’¸ž2e±«Y³ªëÕ«—«S'çCVI½Î¾™*ò¯%O?ýôì –s‰œÿ{ÒÑ£G»½öÚ«œ»eÕm¨ð¿sLñù÷¤'Nt;í´SŽñ°æó.]º¸3Î8#ìÛš*Ã`L¦T…4šÖ—X `J‹a0& SªBMëK,0¥ŠÅ0…„€)U–£9mÚ4wüñÇ»™3gfY2ûìC‡u'Ÿ|²Ûf›m\£FÜGáúôé“}E•XbÁ‚nÕªUÚ⫯¾ê®½öÚJl=M™Re9lV#ØË–-˲dvÙÙè=ì°ÃÜ/¿üân½õVwã7ºÕ«W«BwîÜ9»Ê*17ÊßµkWmqåÊ•nùò啨zLš’ͲœÒ¨Q£Ø­ dŸ*#>V¬XL:5X³fMðã?²y¬åÖ®]|ÿý÷ÌîÌ”únúôéÁ¼yóŠÔûóÏ?2›†ï† |óÍ7ÁÒ¥KÃwÜ,Y²$8p`ðÛo¿¿ÿþ{ JÓGŽ©üþðÃ(X°páBmï믿.Ö‡Ù³gðK}ûöÕk´Ò<¯ëÖ­ DQú!‚ˆu ?üð@3,BŸ÷Øc`ûí·ß‘ {÷îüôÓOá{é“'Oà>y—Y³fiýƒV©?Jô |ßÓ>ÿüó`ìØ±ákð®V­ZðÄOh[`Jß=•–W_>ÝU&—ty*)m¤«¤†R6“­R}÷Ýw ÞQG¥Wá;æ˜cÂçC9D…µeË–A«V­Â¶çÌ™£ƒþüóÏ« n·ÝvÁÆoÈñ–`뭷Ưy¿üòË AƒAÕªU5ÿþûïÔ­[WÓ¢JuöÙg-Z´6Ûl³ fÍšÚþE]¶Ç»C=Të¨Q£FP§N {÷îa:m\uÕUúŒ€Ò—þýûb õþ³Ï> óúäý÷ßPÂùóçkÿàÓó{çwjVÓ)§œ¢íS÷[lLš4IÓÅò)ï;î¸c˜Þºuk­— o½õ–ò ß”% êׯ_аaCí3Ø5oÞ<˜2eJ VJóÂÏc=ÐØAeáU+(áOœ”*oÝ¿zõê©kôÔSO¹¯¾úÊáj̘1ýûî»îÛo¿uãÆsçœsŽ0`€e¹p®GN\wÞxà]«àÎQ®qãÆî…^Pë‚ .pû쳋è8é!GË'û#Šèž{î9us:uêäøˆÐ‡Y©CΉ@ºãŽ;Î]vÙeNfpMg½!“Þ‹‚«›ÇU¬ ¾ÛsÏ=Ãzü°kÛ¶­ãœÛ}÷ݧýEs"´î•W^q>ø ¡÷ÙX,'ÖÂÉD¡½÷Þ{a¼_yå•Êû=÷Ü£g0Y3ÂïÅ_ì.½ôR-K>™ü´npŸ8@û$Þ‚¶!ÖIqª^½º{óÍ7µ/aCrSV^£uÅþ¾„  Â“Kk©pY f^YgVžqYxR׃™ö?ÿùIÁ_þò—@RïÛ·oÔ®];xøá‡¬nŸAƒiù¨E¹ûî»SZªÝwß]ëóp͘¡!,Õý÷ßï“\Mx¥ß%»yæ™g4îc:ÂEŒZFòb5ï¸ãŽÀ[*ÜaOXôK.¹Dá1êFâ ÂÛ'Ÿ|tèÐAï±HðÌ‹‡ëéëŲzÂE”CÑú(J¼ýöÛaÞR•…WßNº«Y*½²R“&M´ fFHܽ2ƒC2N\]ØwëÖMg\fp¬$‚§÷Xº½÷ÞÛaD`œ¬¹4ýàƒÖ+°©H³H’¸X¡e$¡Y³fa:i·œaBÂÍÎ;ï¬oDÀRœ—P--‚ûî»o‘<à‚eòDàÀÓFmäd]ã5¢èd‚Ñ[Òem¤÷çž{®F‰@‰ØÉºMÓ¢ç4ÅÍ-®¯/zWµÌ¼Fë‹û}Þº¸q™J$ë÷òË/;Y?¹“N:I‹!œ²þP—Efb'k*wûí·‡‚ö믿†Õã⤢hhA1bD%Œ¦ËŒ®Õ¤SR2àö‰•s}ôQ±fÅŠ¨»&ë3‡’rÊß“TÔ]ÖŸ'?ùòþÚ´iSmšI†OÏž=.3n2Dš'Ü_ñüc±+<”•×b•ÆøEf’ã”ÄëfØ»îºËµk×ÎùÙï¡°žÚu×]Õª!¨X-bÄZâÅ_LÙ É:N¢iª¤âBºO<1Ì/A'.ª3fŒ·Îm»í¶ª4dÔù5k7ÖX¬gjø%tŽ¢#À|XÿˆÛån¸á­¿M›6ºNWU÷†°ºý, Q¯D¸½nîܹN"‹Ú§?þX×R[mµ•{ä‘G”'ø¹ùæ›u}J›ân;&!pˆREñm#6÷éüÔÊH+íšJ”AÙ#¬.`ª¯Ï‹Å‹ë³Ì¬!û¬;ÈCèÜ“04lMôеX‡p­Côµ ed– Ä ×Tž_BêDÿˆ|ù¼Dà}ôQß„Ö+0ºF¤0ÊCªèÈžT ûS¾ÁKýúõ „„õÍ”½¬ÏZµj2Yhº_ûxœxyì±Ç†k°›nºI#“¾2"{´!ÖQ_uìØ1 >Þñ!ºêCò`'Kßo²É&a”¯_è{p \÷ÀØçI$Bë„Ù H°ÏUžDÐåL†{Z&LÐ}¸Ä6 zôI¤Šä5NJUÐßÍÆ•úâ‹/®ÞÓO?-nQ"ÈÁ";á&& i'ËK=K–¤ïÄÂ8>¥!\RÂû©ˆuA–Š ¶-:è ¤UË&¯ó•Ä ~Ý•ø¾"yMl+—Ï­T¬—Äq·Ýv›;ï¼óJ34qcŠ•'Fp"A$i´a!›ß¨°¯ÓoX‚WÞ½õ_§—³¼«Î¶¾QýËËo”Sª²"XIåçÌY\I-Y3eE 6k*ö@Ø2*Ž€ý$Ø2AÎ ¶(žhoNÃÄ…b³¦Š qä£víæ®Aƒ¶²ÛI6eÍb¥£8¬©r®Té²´õ\~ùîƒFÊéŠ6îê«6Xâ€*â=>NBö«ä+c”Í.]†Ä]ãO°@EÌÅ OŸïå;^ëO–Ož<[ÎΊ9ÇÆž)UÌe {÷aò…ÄõÃT£F59@;<æ{¦T1– –É7—'†ßÂbuí:4Æk `Jc9èÝ»øÃÌ™ Üðáë¿DcÖ7hÖL©b<ü]º Öo0GYÄìÙÓ\À(&q»7¥ŠÛˆü??¿þºH¾Â>ÍÉ7;Špˆ Ø­ÛÐbï‹d²‡œ"`J•SøS7Þ«×pW½zòáY¸p™8pý/.¥®ÁRr…@òQË7Önˆ{ROJFÕ«W“¯áK–dïb€€)U !‘…)Sæº ~-¶žòùÖ¬Y«',V­úã—‘|š]s€)UîÇ =z “P©Vì}ôŲe«å[Íü¢Q4Íîs‹€)UnñOÚ:ˆ5kÖÉÏ„UOùáç m#8)|9›¯~䉘0°téJwÖYü'l͘1_ÖPÃå«GÊO¬Õ9Þ‡/í&çØ)õœAÉ ék×®£üÎÞCnÓMë”\Àrä;¥žKô­íÂDÀÖT…9®Ö«"`J•Cð­éÂDÀ”ª0ÇÕz•CL©r¾5]˜˜Ræ¸Z¯rˆ€)UÁ·¦ SªÂWëU0¥Ê!øÖta"`JU˜ãj½Ê!¦T9ßš.LL© s\­W9DÀ”*‡à[Ó…‰€)UaŽ«õ*‡˜Rå|kº00¥*Ìqµ^åSª‚oM&¦T…9®Ö«"`J•Cð­éÂDÀ”ª0ÇÕz•CL©r¾5]˜˜Ræ¸Z¯rˆ€)UÁ·¦ SªÂWëU0¥Ê!øÖta"`JU˜ãj½Ê!¦T9ßš.LL© s\­W9DÀ”*‡à[Ó…‰€)UaŽ«õ*‡˜Rå|kº00¥*Ìqµ^åSª‚oM(AuéÒ%®Ú'FT­Z3¨Y³qP¥JU— z2iÒ¤ F¦üŸ¿÷ÜsON#Ö-C ìÌš5˽øâ‹I+J©T­ZµJZÀ^†€s“'ON©T¶¦2 1ÊSªrÔª3L©L rFÀ”ªœµê ”Š|æÓO?uãÇw×]w]…±Ü±cG·zõê"m¼ÿþûî믿Öw[mµ•¶MDèÉ'Ÿt§œrŠûòË/]Ë–-Ý‘G™5_¯¿þº«Y³¦;묳².›M+V¸»ï¾Û5jÔÈÝtÓM®J•*aqx¨Zµª;ï¼óÂw¹¸¹þúëÝ•W^évÞygGDzùòå!µk×VŒ?üpW·n]÷óÏ?»gŸ}ÖýóŸÿt›m¶Y˜¯²oòÞRä˜1c*7Ùˆp~ø¡[µjUØÎ|à† â¾ýöÛðÝÈ‘#õ]Æ ‹"–†¦OŸ®Rš²Ù”Y³fòÛ»wo×§OŸ"E'Nœèd¦È»\<Œ5Ê-\¸P›6l˜[ºt©kÖ¬™~˜xžyæ×¾}{M_·n*ã•K*³R!hÌÐk×®u¿þú«ûñÇÃN:Õ18 4{öl·xñb½÷æÎ«@ùgrìØ±Ef$Ò˜¡PžE‹©ÀÒf"ýþûïZí}ÿý÷EŸ?¾ù駟ܸqãŠ=±råJÇÀ@Ñç}÷ÝWû0aÂM[°`†T™ Q,O´¹É&›¸wÜÑÝxãîÐCÕ$úHÝK–,q ωD¿è{2E¤ï(,ŸeË–iQ»Ç%ÿìÓ½€ñ<|øpǘøwžfü^xA±õï’]á{ôèÑŠ¿O÷íd2þ¾ ãÄX&Cxc¢œ1c†Ï^äºß~û©åÂzÝyçîì³ÏVyaL·Þzkwß}÷¹M7ÝÔ¥“_!ü}0A1q!fkxAùP ÕÏà`ˆÒì¶Ûnšlvß}w}|°|¿bÍ &oaQ(ê¥<îLÔe“Ë.»Ì±>1b„–þ¡–ã7ÞÐ:PBxFÙúè#×¢E ǤŸhÅëÌä¹Ü”êœsÎQ˜!fa,€FPZµj¥³Ê1›xà:K°ØÇUDq°`Ï?ÿ¼»âŠ+Ü?ü BÆâ¿qãÆŽ|XŸTô§?ýÉ}ôÑÚùš6m e˜ÝÓ×ã…çË/¿\•|‰Ï(n)V ß 4PeGÉHƒR)Õ 'œ 3/†à! ¸_^x¡ÖwÚi§…ÂDßq™O:é$µð5jÔPë÷Ûo¿é ¶Þú¡Ø¸›¾?(éXPÆÁAip‘X?á=D©mÛ¶*˜Z°¼Qb2äH}g 9M&HÊ»¢äÍdüw&ÉÃ;LûŃïBS7ÚR­Z5}…PB¾³Ì˜X:Bd ÁB0ÁƒÂl•zå•WTHóV)*(W*ÚrË-‹$á_û:Hð–ˆ{Òh3—gvþâ‹/´>” âúÍ7ߨ#¼Ûl³MÒêhËJí}x0Ø~ûí ã ÷š3gŽ^wÚi'½ò¥„à,±æ(O´÷gýC:.×í·ß®˜âêbýpϱQbœpIq[ß}÷Ýh’®•ï½÷^­“þ1މ”Éø3A@=ôP‘âàL ¬•1å~æaKH+†ou!ÐÂ-ÅUk&›(j”è;ƒÏL(¥xÖ``‚`{×+ÚFI÷Œ <àö‚)QO,§_ã•T>šŽe†ðOg&[ÒP¦Ä´h%ݧ“_–>ÑW”ÛÇ|zº+…Äbý#4ªèèER*â+AT W6‘èT²Ð(ù˜A›7ožX$é3õR*J\À¦ÊW™ïÎTJߣÁŠÒð…û†…*-i\O>¥!ÂïÑÀS´& &–ò¢t².­,íWªRáb±ØÅiݺu©ù&’ƾQ".fMF y£ t²PÑäÄý«èNUTýL,¢ 0ÛbUÙ†é+ªíÒÔKôwÊ»{,ÆK{È·4ír™tî_¥*ò`öu8…ŸÏ^ ”œb¸êª«4ÜÇþ=þøãEŽ#¡d„Õ*Juÿ*¶+W;´E8áA¤ÎÓqǧÑÈîÝ»ë•÷¸¸ì+±>"(à#k‰"Í[ÒY'qn ¿ž@A ö†%sOYž| €+kÊyâ3'A¬'(î0¡zöf8¿G»žJë/k×Ô˜R¥Æ&Lá(ë8ŽE áæ®_°³©É‡= N¤#àD¡k³×Ä~ €âà–q4 ˆBp‚=+önHc øÜsÏé±"¢ž©¢<¤q–¨ Åe6UÙ¤…sX–h•?ä[Z^ý$ÅÁî‹"`î_Q<’>±GƒUI u“™ˆ›±œÎxýõ×õ/û0(ÑN6 =±ÉxòÉ'ëa_öF8Iá̋ź 77mÀ€Z4ÝáO”ƒ°0WÊ¢˜l$³Ä^Ï(T”ʃ×h}v_Sª¢x$}Âr$lçËÇ>Á Õd?‰ƒ£l!xb=Æ/ÊÉF,„ÂzâLVŽÍ_¬ J‰Ò¥;üI»­ZµÒý#ÜE㦦;íP¼zžíZsÿŠcRì ž|•„SÙ>’æ3a!P6”YE7f9b„{æ)z¨Ö¯mPXOÑÍh\JÒ¼%Ãú%þdÍÄz‰ð±'ÖN¬õÒQyðš®þ =Í,U€{ÇZw-J8Ç)k(ñ[µì¶Gì–´I–=üÉi>9"‰KŠ¢âþyªq~SQyðšªn{ïœ)URÀYDŽ¢ðMä¾}ûªU"œ~Ë-·h@µ gðˆðù»7§ž£gì2hªX\Æt‡?q1qçXq#`¬ÇˆbA±d'ŠREñmcC¾7÷/ƒÑG@9Oˆà ®'Ü=ö‚^™rR„§«qÝøF³b…¢®¡¯#Õ•ü|h›ÃŸDðˆÞAXÆ{ï½Wëcó™è ÿí{NÒóˆCµœu$”Žuó–°¼yÕÆìOˆ€¨¡Èì†Sâ„Ä9E•H¬¡0`a¢k¤Ä|Ù>ãÎ¥;üÉžÊØ&¡}3q-HûÅk¶}ËÇüéNT˜¥ÊrDÚDÁVÁþŸò&#Ý!a¬W2b³9U¯©ÚÛPÞÛšjCiëg¥!`JUiP[C ¦TÊH[?+ SªJƒÚÚP0¥ÚPFÚúYi¤Œþ±bdÉHÜPæ*¦TüX ‡> C 5|÷-Žd?õVló7u5–b 0ÊÖT dY l0¥Ê-Ëkd€€)U YC L©²AËò ð:8ðâUÄ™IEND®B`‚mysql++-3.2.5/doc/html/refman/functions_t.html000755 000765 000024 00000015500 13515046515 022032 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Class Members
MySQL++  3.2.5
Here is a list of all documented class members with links to the class documentation for each member:

- t -

mysql++-3.2.5/doc/html/refman/row_8h.html000755 000765 000024 00000011236 13515046515 020707 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: row.h File Reference
MySQL++  3.2.5
row.h File Reference

Declares the classes for holding row data from a result set. More...

#include "common.h"
#include "mystring.h"
#include "noexceptions.h"
#include "refcounted.h"
#include "vallist.h"
#include <vector>
#include <string>

Go to the source code of this file.

Classes

class  mysqlpp::Row
 Manages rows from a result set. More...
 

Detailed Description

Declares the classes for holding row data from a result set.

mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1Connection-members.html000755 000765 000024 00000037153 13515046515 026352 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::Connection Member List

This is the complete list of members for mysqlpp::Connection, including all inherited members.

build_error_message(const char *core)mysqlpp::Connectionprotected
client_version() constmysqlpp::Connection
connect(const char *db=0, const char *server=0, const char *user=0, const char *password=0, unsigned int port=0)mysqlpp::Connectionvirtual
connected() constmysqlpp::Connection
Connection(bool te=true)mysqlpp::Connection
Connection(const char *db, const char *server=0, const char *user=0, const char *password=0, unsigned int port=0)mysqlpp::Connection
Connection(const Connection &other)mysqlpp::Connection
copy(const Connection &other)mysqlpp::Connectionprotected
count_rows(const std::string &table)mysqlpp::Connection
create_db(const std::string &db)mysqlpp::Connection
disable_exceptions() constmysqlpp::OptionalExceptionsinline
disconnect()mysqlpp::Connection
driver()mysqlpp::Connectioninline
drop_db(const std::string &db)mysqlpp::Connection
enable_exceptions() constmysqlpp::OptionalExceptionsinline
errnum()mysqlpp::Connection
error() constmysqlpp::Connection
error_message_mysqlpp::Connectionmutableprotected
ipc_info() constmysqlpp::Connection
kill(unsigned long tid) constmysqlpp::Connection
operator private_bool_type() constmysqlpp::Connectioninline
operator=(const Connection &rhs)mysqlpp::Connection
OptionalExceptions(bool e=true)mysqlpp::OptionalExceptionsinline
parse_ipc_method(const char *server, std::string &host, unsigned int &port, std::string &socket_name)mysqlpp::Connectionprotected
ping()mysqlpp::Connection
protocol_version() constmysqlpp::Connection
query(const char *qstr=0)mysqlpp::Connection
query(const std::string &qstr)mysqlpp::Connection
select_db(const std::string &db)mysqlpp::Connection
server_status() constmysqlpp::Connection
server_version() constmysqlpp::Connection
set_exceptions(bool e) constmysqlpp::OptionalExceptionsinlineprotected
set_option(Option *o)mysqlpp::Connection
shutdown()mysqlpp::Connection
thread_aware()mysqlpp::Connectionstatic
thread_end()mysqlpp::Connectionstatic
thread_id()mysqlpp::Connection
thread_start()mysqlpp::Connectionstatic
throw_exceptions() constmysqlpp::OptionalExceptionsinline
~Connection()mysqlpp::Connectionvirtual
~OptionalExceptions()mysqlpp::OptionalExceptionsinlinevirtual
mysql++-3.2.5/doc/html/refman/functions_u.html000755 000765 000024 00000010714 13515046515 022035 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Class Members
MySQL++  3.2.5
Here is a list of all documented class members with links to the class documentation for each member:

- u -

mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1NamedPipeOption-members.html000755 000765 000024 00000013401 13515046515 027274 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::NamedPipeOption Member List

This is the complete list of members for mysqlpp::NamedPipeOption, including all inherited members.

err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
set(DBDriver *dbd)=0mysqlpp::Optionpure virtual
~Option()mysqlpp::Optioninlinevirtual
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1ConnectionPool.html000755 000765 000024 00000102260 13515046515 025544 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::ConnectionPool Class Reference
MySQL++  3.2.5
mysqlpp::ConnectionPool Class Referenceabstract

Manages a pool of connections for programs that need more than one Connection object at a time, but can't predict how many they need in advance. More...

#include <cpool.h>

Public Member Functions

 ConnectionPool ()
 Create empty pool.
 
virtual ~ConnectionPool ()
 Destroy object. More...
 
bool empty () const
 Returns true if pool is empty.
 
virtual Connectionexchange (const Connection *pc)
 Return a defective connection to the pool and get a new one back. More...
 
virtual Connectiongrab ()
 Grab a free connection from the pool. More...
 
virtual void release (const Connection *pc)
 Return a connection to the pool. More...
 
void remove (const Connection *pc)
 Removes the given connection from the pool. More...
 
virtual Connectionsafe_grab ()
 Grab a free connection from the pool, testing that it's connected before returning it. More...
 
void shrink ()
 Remove all unused connections from the pool.
 

Protected Member Functions

void clear (bool all=true)
 Drains the pool, freeing all allocated memory. More...
 
virtual Connectioncreate ()=0
 Create a new connection. More...
 
virtual void destroy (Connection *)=0
 Destroy a connection. More...
 
virtual unsigned int max_idle_time ()=0
 Returns the maximum number of seconds a connection is able to remain idle before it is dropped. More...
 
size_t size () const
 Returns the current size of the internal connection pool.
 

Detailed Description

Manages a pool of connections for programs that need more than one Connection object at a time, but can't predict how many they need in advance.

This class is useful in programs that need to make multiple simultaneous queries on the database; this requires multiple Connection objects due to a hard limitation of the underlying C API. Connection pools are most useful in multithreaded programs, but it can be helpful to have one in a single-threaded program as well. Sometimes it's necessary to get more data from the server while in the middle of processing data from an earlier query; this requires multiple connections. Whether you use a pool or manage connections yourself is up to you, but realize that this class takes care of a lot of subtle details for you that aren't obvious.

The pool's policy for connection reuse is to always return the most recently used connection that's not being used right now. This ensures that excess connections don't hang around any longer than they must. If the pool were to return the least recently used connection, it would be likely to result in a large pool of sparsely used connections because we'd keep resetting the last-used time of whichever connection is least recently used at that moment.

Constructor & Destructor Documentation

◆ ~ConnectionPool()

virtual mysqlpp::ConnectionPool::~ConnectionPool ( )
inlinevirtual

Destroy object.

If the pool raises an assertion on destruction, it means our subclass isn't calling clear() in its dtor as it should.

Member Function Documentation

◆ clear()

void mysqlpp::ConnectionPool::clear ( bool  all = true)
protected

Drains the pool, freeing all allocated memory.

A derived class must call this in its dtor to avoid leaking all Connection objects still in existence. We can't do it up at this level because this class's dtor can't call our subclass's destroy() method.

Parameters
allif true, remove all connections, even those in use

References remove().

◆ create()

virtual Connection* mysqlpp::ConnectionPool::create ( )
protectedpure virtual

Create a new connection.

Subclasses must override this.

Essentially, this method lets your code tell ConnectionPool what server to connect to, what login parameters to use, what connection options to enable, etc. ConnectionPool can't know any of this without your help.

Return values
Aconnected Connection object

Referenced by grab().

◆ destroy()

virtual void mysqlpp::ConnectionPool::destroy ( Connection )
protectedpure virtual

Destroy a connection.

Subclasses must override this.

This is for destroying the objects returned by create(). Because we can't know what the derived class did to create the connection we can't reliably know how to destroy it.

◆ exchange()

Connection * mysqlpp::ConnectionPool::exchange ( const Connection pc)
virtual

Return a defective connection to the pool and get a new one back.

Call this on receiving a BadQuery exception, with errnum() equal to CR_SERVER_GONE_ERROR. It means the server was restarted or otherwise dropped your connection to it, so the Connection object is no longer usable. You can avoid the need to use this by setting the ReconnectOption in your grab() override, but perhaps there are other reasons to need to exchange a bad connection for a good one.

This function wraps grab(), not safe_grab(), even though that could return another dead connection. The assumption is that if your code is smart enough to detect one bad connection, it should be smart enough to detect a whole string of them. Worst case, the whole pool is bad – remote server went away – and we have to empty the pool and start re-filling it.

Parameters
pcpointer to a Connection object to be returned to the pool and marked as unused.
Return values
apointer to a different Connection object; not guaranteed to still be connected!

References grab(), and remove().

◆ grab()

Connection * mysqlpp::ConnectionPool::grab ( )
virtual

Grab a free connection from the pool.

This method creates a new connection if an unused one doesn't exist, and destroys any that have remained unused for too long. If there is more than one free connection, we return the most recently used one; this allows older connections to die off over time when the caller's need for connections decreases.

Do not delete the returned pointer. This object manages the lifetime of connection objects it creates.

Return values
apointer to the connection

References create().

Referenced by exchange(), and safe_grab().

◆ max_idle_time()

virtual unsigned int mysqlpp::ConnectionPool::max_idle_time ( )
protectedpure virtual

Returns the maximum number of seconds a connection is able to remain idle before it is dropped.

Subclasses must override this as it encodes a policy issue, something that MySQL++ can't declare by fiat.

Return values
numberof seconds before an idle connection is destroyed due to lack of use

◆ release()

void mysqlpp::ConnectionPool::release ( const Connection pc)
virtual

Return a connection to the pool.

Marks the connection as no longer in use.

The pool updates the last-used time of a connection only on release, on the assumption that it was used just prior. There's nothing forcing you to do it this way: your code is free to delay releasing idle connections as long as it likes. You want to avoid this because it will make the pool perform poorly; if it doesn't know approximately how long a connection has really been idle, it can't make good judgements about when to remove it from the pool.

Parameters
pcpointer to a Connection object to be returned to the pool and marked as unused.

Referenced by mysqlpp::ScopedConnection::~ScopedConnection().

◆ remove()

void mysqlpp::ConnectionPool::remove ( const Connection pc)

Removes the given connection from the pool.

If you mean to simply return a connection to the pool after you're finished using it, call release() instead. This method is primarily for error handling: you somehow have figured out that the connection is defective, so want it destroyed and removed from the pool. If you also want a different connection to retry your operation on, call exchange() instead.

Parameters
pcpointer to a Connection object to be removed from the pool and destroyed

Referenced by clear(), exchange(), and safe_grab().

◆ safe_grab()

Connection * mysqlpp::ConnectionPool::safe_grab ( )
virtual

Grab a free connection from the pool, testing that it's connected before returning it.

This is just a wrapper around grab(), Connection::ping() and release(), and is thus less efficient than grab(). Use it only when it's possible for MySQL server connections to go away unexpectedly, such as when the DB server can be restarted out from under your application.

Return values
apointer to the connection

References grab(), and remove().


The documentation for this class was generated from the following files:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1SQLStream__coll__graph.png000644 000765 000024 00000044070 13515046516 026740 0ustar00tangentstaff000000 000000 ‰PNG  IHDRxÑÆù©4sRGB®Îé@IDATxí]xTUÓÐ{ï½HQ@:òÙ@i"(ˆ|@T¬±ð‰`WT¬XÁ‚ ‚ŠPŠØ@@zï½%@’óÏ;üg¹Yv“Mön²eæyvo9ý=çΙ33÷Ü\†‰”E@P¢ÜQ×"m" (Š€   ^‚" (QŠ€2ø(íXm–" (Êàu (Š€"¥ä‰ÒvÕ¬k¯½–¦L™rÖ}½¡Ä… ¢#GŽ„¬É?þø#E«ßFãÆ©D‰!Ã.Ç ƒx-Z´ aÆ…GÍS{æÍ›Gï½÷^ÈëY©R%*Z´hÈËÉ®RSSiåÊ•ÙUœ«åăÇÀ»úê«]P3S"£Gf ƒ/R¤•.]:R`ɰž)))Æ ×ªƒמÑz)Š€"$ÊàƒP“+Š€"®(ƒמÑz)Š€"$ÊàƒP“+Š€"®(ƒÓž8p M:5[j÷ÆoÐe—]FeÊ”¡š5kRÏž=iîܹ—}üøqëÝêÕ«éòË/§]»vœ>+ø¼øâ‹R&Êõþ½óÎ;YÉ>è49IЕ³ 8@'OžôY«ìg>  ›Êàô³àO¼~ýú×îŽ;î 0ËñYtv3Ÿ…GÐ͘r“ÌL¿ìß¿Ÿ0ˆJ–,IK—.¥ªU«Š„ Éì?þ  *PõêÕ)))‰vîÜIåË—§|ùòI'Nœ ;vPÅŠ)>>^âüòË/T¶lYjРåÊ•ËS•­[·~Íš5£ƒJX©R¥<á8Ù½{·øƒqþý÷ß„.P/ÐáÇåÅ’ “ƒ{Z:u$ ÉÉÉòKHH{Îëï¿ÿž ýŽ5Š}ôQOš;3®¼òJygફ®¢âÅ‹¤)ÔÕªURϦM›RÞ¼yiß¾}tìØ1JLL¤íÛ·KÙx(nrhê ŒÎ=÷\Oûqí†`ÒX=3'!ïß~ûj×®-˜;Üç•+W¦×_ÝyËsŽr€¹ÍR!Vxi¥`Á‚ÒÏþù§¬BÚ¶m+}f¯+V†Mš4¡¸¸8 B9…Éï¿ÿNc¨¤úßûùؼy³Œk<[÷§N’6ƒé/\¸PÞi±ãÌ>oUªT¡ 6Èóˆ¾ÂK]–0>áËŽq„g×pçŒzÂvÁ±@×\saÕCÀM½çž{ 3 S­Z5l§lrçÎmn½õVÃL®qï©§ž2[¶l‘°—_~Ù“÷«¯¾j˜fòæÙgŸ5üL’îŠ+®0,ÝJ\f¬ž¼‹+fêÖ­kn¸á ãhÆŽ+çÌH 3É“' ÃÌÜ|öÙgÖ¯_?S¿~}ÃÌÊ êuã7Jþ d˜Ùú¼îÓ§)W®œáÌnO˜áI^¯½öš™>}ºœ_pÁž2P&ÚL˜yJx«V­ ?|rΚd5fÌÁõC<´ƒ' ¾—^z©á‰QÚ†ºOš4ÉVÁ<øàƒRžÅ®uëÖ†'] wâÃ+ô'÷ÉÝwß-ù/Z´H‚p͹aÆmöîÝ+uBÙ¨GáÂ…Í[o½%ñþý÷_Áa¼Â¬Ð>PN`ò×_4 3.Á’W+†™–Ô'?´ iCI?üðƒáÉ3à"ü=ö9Ãs7nÜ8óÐC™† zúã§Ÿ~òŒ3;æºwïîG󬯑zðjϰ !ññü`±py’7ü’˜gÜœ0 "b–Œ Ê ƒÇƒýüóÏ–  «,d€<òÈ#æÐ¡C¦wïÞLtá…ÊÏyñÅ›N:–®åzæ™g$ƒvþüùæ×_õäÇRªùàƒä¡õÇàyÅ`Xub,¿rnÀàQÏ?üP˜b\Ϙ1CÊÄDðøãÛªÉÄ`¯Ï;ï<©§'ÐqF †7bÄ3ãí ¯`Ìš5kd¢»îºë$îwëÖMÎíÃv¢.o¿ý¶„!¯Ì!Cä "K膥ƒ „W2ÆR·àÁj"i˜-˜ì§Ÿ~*áÞ ŒXxÿÐW,­ cƒÀƒŠ>@¿‚†*“#%KŠ’uÂ$ FÀ+a¢hw×®] ¯Ú$Ì2øìĤW¯^¦]»v‚ǶmÛ+^mI;ù 7ŸÞóö ¿ßÿ}i<Æú—WÔi ;æØŽdxUeÀÐ!<ùä“"¼°doºté"“ùœ9s ¯$c†Á«žG?‚Z:j~à©C‡¢‚aÉ^–v,yÊri™Ñ3oQ¥°DH,ÅDY B-ðæ›oʄ̔*–t‰/A­òÀȱoß¾T¯^=UÝ8êƒ4<ØE5²|ùr‰ÏŒ‹°×3.â ‚jÔ¨AÐQƒ`0E|KÎk¨?xå`ƒÒ¡úzyZzøá‡)þüT«V-)íL>ÿüsQ-]ýõ éXÊ"¨†,ñjCÔSPß0£µk×J0‡j¤sç΂í×_-uaÆf“¦9B•‘÷‘°$÷ÝwE½„~ã ˜˜±KzfÔòv3°‡ºƒWe4~üxâɈx£-ú Ë{Ø%xâ"žl~H?aÂb[‰.†e{jL¾ûî;9r¤ˆQL6`ô‘Jé=Yi“S°é1A0¢[ò'ÔØðh:*ƒw©7¡¦ÔË:>Ë ¤sHƒðT“ƒä©j«âa#¦Xôá’µ€?b#®HÛ`˜¬?&Hûð¢áag¼¨mÀ°R`c®„a‹d'p^cÕ)“$)¨ Úèö>|xϨ#àéï´“õšRÚæ0'¡ð²—ÂÀBf|fk ¦†Åþäg%…+Nx xë±ÅKƒˆÕ!‡^2`PÞnqð*ãcÉÖ°´ê™<œé9GÞðzaIÕãÆiÓYf†2Ö­[çÓ ŽßðÙ>äöƒ1fÆ}Ζ ï¤·O"`å69øªŸÅ•}Ïc[nNa‚ú°ŠÎ°dk«ð1<*ŸÞóÁjÃ|ÀmôŽˆ´¼j3xÎà%âU—_ï1ïô¸Žd¯FV‚%¨f°ôçJ,!Ÿ•–Òþ ax©ÉûŦ³2øÿÐõû{3F`"³JÈ/ùdDÞ]/Cù#´¿¬ÓŠôزRŽ} Ê;m ¸f'&¨O›6m¼«Ñ×é=°UCPóÀƒÎP¿á7^5ʽ`ò”´Êà]è)裡ë…ÕiÉÏlÖÐùúr[„[¥? Ãj( e£þ ¢¡,;\óVLµgήì\p-… úxؘ`“‰Ê…%H,4~â0Ö€ +)±ˆ¿p&FÚP“•mDA :áÖ70øÿüóÏâÔißdU/špMZE@P\B@¼K@j6Š€" „ÊàíGb¼>+Vl§ ü¿ãðÄDó÷­J¤‰¶†º‘1edÅË,j( õ .ÿ\¹âø-Òü²Ñ6~ÛôGÞ.áppjê48·ÐMàâ^–Ã/³”|$훕@G~§ê£ŽÐªC1aÌ,L™Š3FV¼E‰½Q”ÂiÓ6ð^0;xï™Ü¼ÁW%ºè¢ üV£.6Ýè9¸YâíÝPQFûù*75ÙкÏÒªQJ’¡òmòSˇÓ~ÁWºì¾Wb¼}I3 >’:%Öë 5Í%—œÞ%1.ûŦ'ž¸Šwv̺Ÿ¬c®íßüó!úeÜV:ºû™”Óµ¼ü¥ÚT©õéMýµޑR/eð‘ÒS1VÏ‹/Ïû¿ì=|°' v~l×®6ï)Ò‹·+>³eŒÁ5Í=¸!‰ŒÛBÛ—µ©õÖ.P*/õû¦!o×5MÍцèº7Gá×Âý!пkÞlìôSæZ´h=]xá“üâ þŒÛ Iõ~#pâp ý:~+}Ú{…Çj™{î¸\Ô «f”¹»Öƒ*Á»¥fä&‡%òÖ #yøÓÌÝ™7tó… %0£ïÎë8ߤçaŠ€án\ùé^ZòÒ6J>‘JлŸEÌØûÎlDËÆŸ¤7²†€JðYÃMS…¢Eóóלšˆ¡Õ»(0}LwÝõëåŸám"¶xGÑë0B`ûâ#ôi¯ôËS[è䱟Ì=Kï•ZQæîr¿)ƒwPÍÎ=úömåS‚G XÖã÷Ï?Û™É?ËñøØo\÷j¤9e Òç>°fYC‡¶°5]QLŠaõÌé/•eª œ.ÊàÓ…Gsöík³O|‘t«¦ÇÒ_›6µ|Jûé&ÖÀÐ"À*—†×–¡¼…ãØš~Q ÅòP•öEÓ¤¡™F@|¦!ÓÙ…^Jëׯ53î8ŸEÂ7¾páþîìÛíûCÌ>êÍlC Lã‚ÔóýúT¨\^ÊÇ7—Çýz=J¿ã¦ä2Êà]T³s>}Z°êåÿ¤YƒéW¨P‚¿Û:Œš5«êÑÓpC p¥¼ÔýýzT²NŸL׺ݳö½€pkk¸ÕG|¸õˆÖ' •+—à½èk²æÌPÅy©R…Dz/Y²Pšøzžäâî;•˜BÅ*'Î-åbWØrç¢"•òÙ[ztÔ.æªY)."pÝu­ùE§3nuýû·á}ýo§;ÒСï»X’f L2ÑwÃÖSòñTêüZm:ïæòžb`CipµW=€¸|¢ Þe@5;÷èܹ1åÏ/o<>þxO~›õ*ª^½½ñÆ 4gÎ ¾þÊýB5G×øéñM´wÅqêô|M*P*žš .Oÿy´áŦ¼â¨úEÅ\+K3J‹@Lí&™¶éz)$$ÄÓ 7´O™ /¬ç©vË–5h„>ü•¢¨fÍ2}½Rx!ðÇ;ií¬ýÔ鹚T¢v~Oåj_QB ¯;–¥Üñ¾¯žÈz’eôMÖ,C§ ÃqãfÑĉsiêÔ!¢¯—zÅz=Ö}s€æÜHmï¯Lõ±R¶#  >Û!×CÀ A“åC!_}u—¨oBQ†æ8ØLlZßUtNŸÒÔò®Š'Ô˜®"  ÞU85³œB )éõìù9’D`òØê@)g€_³SqÝ<,»A|‚¯E»‹Àž=Gxÿšg©ZµRôÑG·è›­î«¹E êE¦Uö> 2yòÍô矛éþû?ñIï*1„€2øêìXhjƒè•W®§)Sóq^,4YÛ¨øE@¼_h4 R¸ä’4ztWþÌßWôí·Ë#µZoE h”Á ¡fŽ Ø7*kE·Ýö>-_¾-«5uJN:û£,QÓ¸oˆ2øï@­¾ðÆkóæÕhÀ€7h×®Ãþ#jH–À7U§tù‡oÕO(fÄ&TBp5ëœE›’Mšô_þ¼_>aò‰‰§r¶BQV:|Ý¿»o=UlYX7 Ó¾U¦£Õr"EèÝwÒ¶mtc2w •\÷'Ó7w¬£µòS‡Gt»f¡u5+eð®Â©™…#U«–ÔÉ\옔†fß½N6 ëøtMÝKÆElÝÎJ¼Ûˆj~a‰€Ý˜ì¥—¾ç=k‡e#¢R¼kó¼‘Dç~Ù‹5)_Qý S8÷[Ü#Lá\A­›"àð‘ONN•í…[·®I•*•p+ë˜ÉgÉËÛiÍÌýtÙóµ¨dݳ·ƒ8|ø0-]º”÷ïO¥bÅÎl¼mÛ6Ùîùĉ´jÕ*Ê—/:tˆ (@¿þú+÷E% ߺu+ÍŸ?ŸŽ=JåÊ•“{÷À>ãûùäΛPêS¦L~³9C`¿÷'oeQ”Ò$ß²e -[¶Lêú9 é-ZÄÛVççÍvÑï¿ÿN7n¤%JPÞ¼y=aÀà?þ ={öPéÒ¥=mAìƒÿï¿ÿJ;°@ýPg?%03\’"S øŽiÐà!³~ýž˜j·ݳâ˜ÙðýŸY½÷Þ{†¶‰Ç×YLÇŽÍÁƒ%níÚµMçÎMÁ‚M×®]ÍC=d6lhêׯ/q“’’̘1c 38ÃŒÒð÷xMÛ¶m;}û$½¯ø>+ñÿ7+W®lZ·nm˜áJþÌDÍ=÷Ü#ù¢nEŠ1ýõ—ÄæIÀ\ýõu‹‹3O>ù¤„¥¤¤˜N:I›Ð6fÂfÒ¤I†ôU«V5… ’|y’2+W®”°Ÿ~úÉ”,YÒðD!?žP<å¡MíÚµ“òP—öíÛËùܹs%mz8J„Lüa&QRb ÄÄ“æòËŸá‡l,3 ã1ÕöP5víÚµÂLï¼óNÃÒ¨0º²eËšaÆI‘`ð`¶O?ý´Ù¹s§0x0·~ýú–° KíÂäÞ~ûm‰¿f̓ôC† ‘k0xg|¹™Î<¯ ¯ÌŠ+„ ³Än,X`víÚeŠ/n|ðAÉuãþâ‹/Lrr²yýõ×¥¬Å‹›©S§Ê9K÷&11ÑŒ1ÂT¬XѰtnzõê%Œ“¯PL³fÍ ÚÂ䄉ŒWH›6mLïÞ½%ìöÛoæÏ+ ³aÙøÐ60øŒp” 2ñ§ >`iÔèA`÷îæyó1ü¾lNJ‰ž†åPKžzê)a„óæÍ† ¦Ý½{wÓ¨Q#©üµ×^ë©6«:Ìñã§'Ø{ï½×@ʳ´4xð`S§N¹ôŽoãø;‚ÁÛÉqš4i" ׯÇê¢oß¾rÙ¼ysÓ¢E O½ûí7™}ôQ³dÉ‘ί¹æ3{ölsìØ1aôHfIcìØ±ÌúäÉ“òC÷¦M› &‰)S¦ðбL«R¥Š¹ÿþûq*Æn|F8Ú4õ‹NŒ¬Rì!`7&ëÖíÙ˜ _†RÊ:ÌÌ$qÿþýÓdݺ%fööT޵jÕ6.6oÞLçž{®G{åË—§½{÷âTÈßÞKïˆô–XõB<ÉØKч3“”kÔ:ÿnݺy¡g5¿(ל^~ùeùñ¤ 6ƒûî»`ºäI‡XÝBÏ>û,ñj€xR¡>ø€XåÂß þŒFŽ):yfîlûáÓþ?ÁÁª{I,ù{ÎÁÑ9€eð€¤Q¢»1Ùÿû¦|òoÈ £³¡ÙÐ*0SYâ1B¸ ãh ƒ*K²b|c!½“’3ŽÍÇyÏ×y… ¤œ3fx‚§OŸNl –à ÓòåËÅ@ûÌ3ÏðGOÐM7Ý$a`⬓c*«^„у¹ƒùßzë­4~üxb>aâƒ!Ī'1ôÊÿÁèl)Xm>ö¨n’ =Æ$º1™;ÝÞ¥K‘R~øañ™9s&]qÅôõ×_TâB5j±aV"Nœ8Q³.yª:U»èŒ/{ €À›]Åï¼zõê$IR<{ÐP5$4ÿÁüÖ­['ê_á¤á“žY‚<ôãuëÖ%ö²I“jž¬D_n}Õºu6¤Š½À»½h ~<¹I^ð‡‡=ÔX8ÚÕò†+øçƒ|á_ùÝ»wK¸¯?¨³ &s’2x'zÓ>œDW^ù?|yyù<”ñ1‡Ç¦Éb-ï¨Hú— Ëöà zã7ú­Ô:,‘û Ïé€ &»fÒÿþ÷?™ÄØÿ_ŒËxá+=‚ ú~ôÜsÏì NRïDCÏcM›öQ—.϶6xãb ½+Ó—WSíÎ%©Ýƒ•cªíÙÙX¼]˪Ñû³zˆZµjEÏ?ÿ<•*UÊõj(ƒwRÍ0ÒX´h=õéó Ô½"ºDzsªÿÑ'iÆ€©dÔ鹚”K·˜ ·p¤^4áÞCZ¿lG Ö6&;u,•¾å­ó§‹ÇUWæží#.tª|è°Õœ#^½š³!o7±w ûH—äetÍnMúUË›‹Ê7/LMþ[–⠨̗>Z‘ª*šÈê/­m6#0hÐdö^C_}uU¯î¾Ž4››£ÅÅÊàc¬Ãµ¹™C )é{d¼Ä.rIÂä‹={‹ÜÌ娱ìC@×cÙ‡µ–$$ÄÓäÉ7ýÍ7¿-ûÉG`3´Ê1Š€2øíxmvàØÉþüs³lLxJ©ä,Êàs-=B°“M™²˜^ye^„ÔZ«ë(ƒõ íHߘìÄáú†Ý!o9p›5bd#  >²ûOkŸÍ Ø÷¬iE·Ýö>o!»-›KÏzq©É†¾»w=XŸÈ®úSÖ‘Œ¬”êEYý¥µ "qc²Fm¢M?¤®oñFZ5Ó~l: Õ*„•àC¬f½ÄÅåæMŸþK… å£Þ ÄÄSaÝØß'í u³÷Ó%ãj(sëžr¿rÊàÝÇTsŒŠI wßÈÛËà6¼¶-^3s?-}mµ½¿ UlU8lë© ÊàCƒ«æ` ì89gÎ ;ö«°kñŽ¥GéçÇø[§ÿ-Gõz” »úi…B€2øÐc¬%D1á¼1Ù©ã)Tó²âtþд{„GqwhÓ¼P#« z©dqãfÑĉsiêÔ!Q½1YV°Ñ49‡€2øœÃ^KŽ2žLóçëÆdQÖ­ÝeðÝ}ZùpB@7& §ÞкÕÁë8P\B@7&s HÍÆ5”Á»¥f¤éÆd:  eðáÔZ—¨@ »7&Û¶ð-ÿpwT`§peðî⩹)‚@vmLv`]ͱžö®LTä³P#ëYè EÀ=FŒø„>ûl)MŸ>”6¬è^ÆœSâÞdšþßUT¸|>êüJ-Ê'—«ùkf‘ÀY þĉtøðáÈo™¶ Ë-Z”òæÍ›åôþ.]º”Ö¯_ï/8*罹zõÕ•T¬X^êÛ·–«m<±¨ü»ê¿r%¤¸šw¸gV»vm:÷Üsýš9^¿³üž={èŸþÉñŠirFQÉ’î¿Ú>pà@~µÿœkX•œ;w^2&™©®× `ž"t,9ö²¡C‡Ò /¼à:žÑ–a úÏþã/HïG)©©©ôÓO?…´u;v¤o¿ý6¤ehæÑ@ûöí£».¶N¬.‚©Y)Š€"N(ƒ§Þк(Š€"à"Êà]S³RE œPN½¡uQEÀE”Á»¦f¥(Š@8!RŸœœLû÷ï÷ÛÞü‘.¿ür¿án8p€Nž<é7«ЧŸ~ê7<Ø€Œ06M:àÖ9uêÔÐàÈù•W^¡ .¸€J”(AÕ«W§~ýúѦM›1ÂëÔ{\‡ú9 ¯ÖGNmBÊà¿üòKñ§>uÊ÷G‰÷îÝK?ÿüsHÑ*S¦ }òÉ'~Ë8~üxº€ß„d„A€Ùh´@Hv¼˜uÓM7Ñ­·Þ*Œ}„ Ô£GBÙ-[¶¤;vä@Ë3.Ò{\‡ú9ʸFî1x Ä9sæxdRRíÞ}z¤7|¬AxSö÷ß§}ûöU„ÙÉÀÃ_«Oô¤Cä­[·Ò¬Y³è?þà—FLšô(oîܹò’– Û¼y³ÄÛ¹s'=z” Íãuùå—_$ìÕW_¥nݺI^Èe"üÁ·mÛ–¦ ä»jÕ*B{@‡"H2–Áy9rDÞþ믿lR¹F|Im¨/0ûûï¿ÓàÕ^LCø’%Kô=úãÇÎqÏŽ'_ãÃÆE¿/\¸PâOÞ„±Œ<1nçÍ›—füâÍoŒ”ÜW¯^&¹÷XƘA}@?üð½õÖ[Æ>yòdºñÆé™gž‘qŽz<ÿüóž¼0†Áø‘cÈpÚµk—*Ë–-£””Óo¶Z0FÖ­['õC>NB}0¶0Æl:g8Æä×_íÁu÷~¶ÏÒf¥®Î2õÜ%xð¥!î8Ã8ͽô.x@˜N:™øøxS @“'O3iÒ$ÃÌÖäÎ\ØÄÅÅf6†§)V¬˜ÜË•+—9ï¼óLÁ‚=Ù/^ܰ$#×GÁÔÕ_û½ï+ƒ÷FÄÿuÐ $êk®¹ÆÌž=[?=È9ÀÌÏ2p„ƒ©9%xÜóE÷Þ{¯H®d–lêÔ©#R×9çœcÞ}÷]‰ ƒž—Õ›Á.\Ø` [²×8Çe‰÷ºrq]¥Jsÿý÷Û aìì`ðb€Ä`¸×^{­'HØö¡Á¤ƒ¤-ÞFâlà•/‘Íâŋ͔)SLƒ d%@<ØU«V•xø{â‰'DÒS½þúë2ÁÉEáÈàmß›o¾)*«* «Yäã ÏßøÀ$ŠU'˜’%HÂþü£>j£I?¡ß0I@`ÀÊÐI5jÔþqÞóuf&ŸY)œÕ$žhvUãåY³†ºñ–¡ÅVŸXMal!;ö^zé%¹AÏV%N“‡Ôï|¶nŸ£`êê,'½seðé¡“6,h|óæÍ‰gxÑûaŸ–€‰¥7i‰¥Ñy³ï `ç<½èÒ±sKæžhåË— /—‰UÄÒÁëGV³¤ÑÇzñI­Zµ(þüÎ[iÎa”µ„xVÇÝ93D,Ù{ÎÅÀ&Àf^–¬Î½ÿþb €=€Fâ‰O¢°´GÌ è’K.¡çž{ÎS›8XâÉŒPžÄäO¨‚¹ Äc í»êª«cù±CŒ•é;®œ;gòDî&x·XÂ8Y]43X$G„Û°4^è[ž$ÒèÔmžPèÿû¡ž 瘳¸X{sÜ¢í ž°åˆ?g8Æ5ÂìØ³úsŒ=<»¼²ÊeÄ“NX8!¬ÒÜs^¸QWg~zg8fóQ kùòåÄj ñ`I’Xe“&ÇR¥JÉ5 @–6b½ äÏs“':KÂpa4…§Ã7ß|#ÆQ0D0ȬîZ¦è‹XmB,-y‚`lµ(6¾óˆ fÅŠ‚p›>}:=öØc Xº"VE‰»)s‚D>þêë,#’Ïm¶8¾òÊ+Åå^SðDaÕÕýô) ãNJÏkãÛŒ© ;é;Ã`ä†#€ ³i|Ï?ÿ|1Î~÷Ýwi‚a4e5Ž0[Œ ¡–0þA¬º‘cF89…#IÀ†@0îðC¾0øbâ>,­{ û¼Ò!¶Èó% }ü¹QWÙê­,"4ƒÇÖ½zõë<f|H’l”ñì)f)á`þðÇ·ÿ9«Gˆ—~Ò ¬;î¸C,ÿl4¯6ˆiÑ¢EâÉÀj!)cû²¿øâ‹"­bU© f’ÎñÐòR=‹NƆdtˆÉ Û•Z çeÓvéÒE¤ò‡~Xô÷¶lèÒaW°d½×Žx°k€¼Ÿmçs”ÕºÚ23:ª>#„΄ÍàmV0ÊÀè|°ƒ§Ó팒ð É,! >Ò¼ a°ú[£3F'Û‚!^5ȇI…ý «šä¡ÀÃd)P l|ç40PñjÃy[ÎÑ6¶,ÁcÆNöžÇpcð™mêFã4†Ú<Ò`Vè;æùÍjƒ·iqƒ‡ý¸Nƒ‡aãLÙi´uÆËèãcãÕaìñJAÆ‚÷sæ+~ ÷l½Ù^ÚàcͺU:üŸmgX¨êŠ2”Á;‘NÿÜï?xÆÎÕ«WÏg|,õð³Ä^ ¢®±×™9â+Cþ¾4„ûþ>G°„e3»6ŠÑ +–l¨U«Vݯ¥@1°ñGv]“7÷ì¹w»­Ï†ë‘D5ƒ—à˜‘‹ºÃ“ôÆT!ÖFäÎûýíìsg8T“Nº3,sŒ+üüŒ§Pç¸MÕ¶ oc+êàýl;몺:ËÐóŒpÁg\TdǀΞ4`ò0¢¹;ß2ŒìÖE~íaÓFöô˜dF-…NÚÚoœqÑßþ„ x•`L()ᆀ2ø{Ò ¿`l–ÝÀÐ b;†Ïl°E€?‚\IG‚ö¢ ÇFiE@Pˆ”Á§3 ¶m;N¨)Š€"ÞøUѰgAx×<j÷Ä3©oßæüÒGðFÚl¨nÐE°=>è<2Ê/¦¥·}sFéÃ-ÜœÊE)Û(y;4>B¹ œy{4Üê-õ!])0ü2x¼¼ë´zõ66l#Û·Iðý†k¬c”ÙöÃÊ› e6YØÄ/•¯Õ(ؘjlBu 7¥ò Õyœ›¦m¾yfrØÔ3Ú+‚—Ô”2F ¼(3Ž›1Ú´K7îá·»Ðí·_› Äp«S“ í]yœvý}Œvþq”vðïÄAÞÿŸ›˜ðªqIqºx\õFJ›®(ƒO§gêÔy€?\Ä[ÄñÇDFðká§7˜J'‰E0‰û’™™†¾céQÚ÷ïqaâ¹óð¦mü½“šVÂý¢•yS³÷ëQ\‚®ð"¸ë£¶êÊàýtí©S)¼YÔ0 Í“'Ž÷©Ä{ÁÜõ›{ù#êoVÖg%ØH¹ãY:?•–™{‹%øøü¹©ç”úT¸B^ï`½VÂõ¢ñÓ {öœù$Zrr ï$¹™Þ~{¾ŸØz;ÒÈGÔî¡Ó[gÄÜO·ÕÐ¥j(sôŽòú+ƒ÷ÓÁ»wN’ÊËóÇû’¿ «®“i€‰¢‹r示ÝJT/év”nyG%ªÐâô¾ûéÅÕ0E 'PïýÝ»ÏHð6JJJ*Ý}÷GöRQˆ@Ë»*²ê…Åy?<̿ƥũQÿ{ÆD!,Ú¤E@¼ŸŽƒŸ'OZx ªY°`-ïç½ØO*½éßsŠò—bïa*x1ªVI £«Ez3µþ1‚@Z#¤™`ðqq¾à14jÔg´kWZN yjœðE å„¡%/o§iýVRÞ‚qTúœ‚”ÛÑÿøbRž„ÜtÙ 5Õc&|»Qkæ…€/æ%6/ÁÀy{qŸ?q"…†ÿØg˜ÞŒ<¶þz„>í½‚V|¼‡ZßS™º½S—.[Õ4ŽþçsU •W™ÈëáØ­±2x?}šÁû~íªšï¾û‡¾øâÌ7Zýd£·ÃÄýÉ4÷Áôõík¨T½tõg ¨Aoþv0ëß‹TÊGM•§\ü„ˆQõ.6ªž¯FÕ0îN­š”Áû·°ÑXzïøbÉ>bÄÇü1ìc~rÐÛáŽÀÏm¢Ýü–êeÏ×’7Q ”ŠOSå&ÊR‘Š T£#Uû©Q5 8zøÝ‹&"jÂJîÙã[Ç—K^vJNNeN*Íšõ7]w]ëÖD³m¨BùŠÄ‰nÝW0ª^2¾:eê’"‰(ƒ÷ÓkV2·†V0óüùã©C‡zÔ¦M-jݺ5hÀKx¬ß•"‚eÒJì¾Q¢v~_·õž"(ƒ÷ÑM'HèÅŠ ¶mkó¯2žî½w =ñÄUT¾ü™ï°úH®·E@ t/ݘxJtðµjÑ»â^½zðgû®¥ž=›ùH¥·Â Qí:I¥ê·ªi}lA@¬>`†*ÆÉÜ÷Î=· -\¸ÞG ½n¬š¶—>鹂>³-ܪ¦õQ² UÑdêÖ­kÒÌ™g"…FÍn¬K¢ŸŸØL{þ9F û–¡fƒËgw´]ѪU-Z·n79wšÌDrBœo¢~A {´·¼³¢_™VE³V•à3Ñ-ZTçýiâè×_×Q×®çf"¥F %ûþM¤9Ã×Sm o¢6¸úôËJ¡,SóV"•à3ÑK ä¥F*1ƒ_›‰T5ÔÀݱ|ÓBiÞD u™š¿" ¨ŸÉ^‚~Μ™L¥ÑC‰@Bñ ½ =üë¯ÿHسûÕ(¹ÞD]üÂvÊ[(N¶ó­Ü®ˆû…hŽŠ@”#  > ܲe IµhÑzêÔ©arÐ$þðõ&*>•§¤(™G@ŸœÌc&R{ýúåUŸì2J2÷Á È›¨)))´téRúá‡èÔ©´ºù£GÒ?þ(aGŽñ¹ÿ~þ–î.:yò$-Y²„–-[Æ{úŸþj׉'hãÆ”ššÊo+¯ã«/ 䣤D4F)KŒ9Ítêôt–Òj"ÿÝuÒ˜TÿáÙ»w¯iÛ¶->˜jòåËg .lÞzë-IôÓO?™2eʘ‚ š„„Sºti3wî\ »çž{LýúõMíÚµM\\œ¤ïر£a¦n.\(×Ý»w÷„!íêÕ«%­þ)‘ˆ€JðYœž¡‡_¾|9’”Å4™/ä#|Ce̘1´råJùíÛ··èÊŸOA¯¿þzþKk:pà:tˆ?ÎÒ†ú÷ï/a(é† B‰‰‰4zôhš={¶Hî¶.IIIĈ¬ß´iÓlˆC@|» ž4<£Óâź}p!Ìr²éÓ§ÓÕW_Íûó×#–Ôé©§ž¢ñãÇ‹Új–[n¹…âãã)oÞ¼4tèPÞÛ­ZµJÊ«Q£Ý}÷ÝFZ³fñ÷øã³ ®]pÁÔ¤IZ»V·¥ð€£'‡€2ø,vY‰©ví²ª‡Ï$~0¢â—U‚Ž »N:ž,*T¨@  ;vȽfÍÎ|¥|ùÓÛC*±úFŽøcŽœ[=<.œáùóç÷èè%¢þ)†€2ø : jì,©”1Îí|—´;ã~bäΛX7N+VœÙhÑ¢E4hÐ ¹dÿ}fÏ~bAÕªU“cFßÐEþJŠ@´  £9ˆžÄ‡·—-ÛJÇŸ "—èOŠ7Q?í½‚V|¼G¶ómÿP• Ý£Gš1c†èÇׯ_/*èË[´hÁßË-ÏßÍ}‚í#Ëù=…ƒôꫯÒùçŸO5kÖ ªLM¬D"Êàƒè5HðÉÉ)¬‡ßD.Ñ›o¢Î{h#}}û*U¯€kÛù‚7jÔˆ®ºê*þ´b-Þ£?9’ (@ï½÷ž¸?"¼dÉ’´{÷nzçwdHÐ?#‰?z{O[ èG·ƒìÅöíÿGW\јî¿ÿŠ sŠ®ä[æ¦y#7Ê›¨mï¯L¡xºxSzs O¨p *$@f˜º¯^@9Ç÷Dì¦IUª·"ñ™±ÞT\@@ßd DÕÃû°Hå|T¯gIj:¨|È>›W±bEŸ…ÃxÚ´iSŸaY¹É>ö²*ð•Ì}„ ¾‚ôž"ã¨dL›¶”uÀ±Þÿ(þø sÓ䊀" ¸‡€êàƒÄ†ÖS§ðÚüÆ sÒ䊀" ¸‹€2ø ñ,_¾(U­ZJÝ%ƒÄQ“+Š€û(ƒwÓÓzøØzãÛù~Ög%:žê‚š…" „eð.  ÿÇ›x¿“dr ï,ðê7®¦ã¶P¥6EØí0ƒc»9Z;E ªPïB÷Bæ&­ä|Õ¹o\‚2øhísmWä# n’.ôa¥JÅ ?l[€MÈ¢ð&ê‚'7SÒÁdyµÁÕ¥ˆ”¯G[7k{¢•à]êÔV­jE¥¡59)•~µÑÕ7Q]‚\³Q P >€ †ž?".“ññq& ûxø\ÞUSëSþ’:T¾³´‚Š€*Á{’ÕK0øÄÄ“ô矛³šEئSæ¶]£SÒE@|ºðX­Z)ÞɰXTªiGAc*Š@8!  ÞÅÞhÕª-\yûÃÈzt§nyìâPЬ°@@¼‹ÝwÉ%K6ðW€"ãåçv¾ëgt ÍJPµœ¹Ø p‘os9çà³+Û¤ 5è­Û ¤æ DÊà]î§:uÊñÇž E¤»¤ËPhvŠ€"Ã(ƒA´lYC ­!È:Ã,MJ†Q4‚" ÄÊàCÐÑ0´.Z´žŒÉ>=¼ÝÎwÆ€UlD A£4KE@ˆ8”Á‡ Ë ‡?xð8­\¹#¹Ÿ%ÞDý´÷ ZññªÓµåÒ^=$½£Ä ê‚N¯_¿<+V@Ü%4¨‚Ng‰7Q>½•Ö~³Ÿj\RœZßW‰ ”ŠYyš±" D*ë… ¿råÊE¡ÖÃãMÔOz® ]#¼‰zñ¸êÊÜCЗš¥"Éäb=q–Å?þø#½üòË‘ÜþÕ}ÿþJNŽ£2e޹^Fþä¢ÔzËM´¥È´¾Ä|JÉuÊõ2r2Ã?þ8'‹×²¨A (ÍÆé³Ï>£öíÛG n7d÷n·sD~»iG1t2%‘hO(òÏ™<÷ìÙC+V¬ã4VAJŠ€"A1x7o^zä‘G‚«…¦V¬u,éPPÜC@uðîa©9)Š€"V(ƒ«îÐÊ(Š€"àÊàÝÃRsRE ¬PVÝ¡•QEÀ=‚6²ºW•Ðç4{öl~»t%Ýyç!-,11‘Þyç~ÑéWÞYò5iÒ„ýâ[Ò%—\Bññg^Dš9s¦ÿý÷_*X° Õ¬Y“zôèAM›6•ú%%%ÑÃ?L½zõ¢-Zø¬3<™Þxã B ^Mçž{®'ÔÔT*P €ÏôzSP¢˜’à·lÙÂÛø.yo~øá‡æ F=pà@*^¼8M˜0^xáOÙ8ǽüùóÓ 7Ü@]»v¥;wÒ}÷ÝGÓ§O—xÉÉÉü×%÷A_„WFMÛ¶m“ôW_}5­[·Žî¹çI‡4ãǧ±cÇúJ®÷E ÊÈV þðáÃü!ŒT*R¤­^½šÊ–-+Ì’êš5k¨T©RT¾|y|×®]Âü×b¡B…äò8uêÕ¨QCîÛx Áè*W®Lùòåã}aR¹rål°;&þÖz!Õ+VLâ#yBò.Q¢mÞ¼™Ž=Jµk×öHß`¬'Ož”ëܹsóG¶Sä—Ñ'NÐŒ3èÚk¯¥~ýúyÊ„_÷7ß|#Ì÷÷ß§Ï?ÿœn¹åêÓ§'ÎUW]E>ø ½òÊ+tÁˆ ª'ÐÇÉÂ… ¥~ï¿ÿ>U¬XQbtéÒEòœ;w.Õ©S‡€-ê´wï^*Z´(íÛ·O°Øºu«Hõh#h7;ìs`‰Õ„“€'V•*U’>²aèôðX¿~½” P&äeûʦѣ" dÙÊàÁˆ~øáS3Óƒä ÿg0aÐàÁƒéšk®¡Ç{ŒòäÉCÏ=÷œÜG8î:”5jD=ô:tH&†§Ÿ~šªT©Býõ9’?~}L÷0GpæIDATò¯U«–0Á¯¿þZò±ÈÄ Òòå—_NÇç ѨQ£¨qãÆòâ Â7$îÒ¥Kô°aÃèÙgŸUòúùçŸEòƆ²±RÀ$†ºþúëé /”sH÷¨3T/N‚úí‡Ô¿`ÁO|gç9&!ÐÒ¥K= ØBj½ýöÛôË/¿È9T=ì‘w‡sL&ÿùϤ]P_ÅÅÅ ³¾é¦›¨oß¾’꟩S§J;Ž?N 4 _|Qúð¶Ûn<€#0ÂÄйsgúä“O$-ÔBX©@õ¤¤(Ù@¶«h õA• ¶Y³f"ívëÖ¾úê+a68‚.½ôRúûï¿…ã ˜ä»ï¾+ŒŒÌRè_|!LæÉ'Ÿiû£>’x`àþÒ9ôñß~û­0vL`¬–À„QLLX}Lš4I‚°ÀdcWçŸ>Aúa…I Ò5Ú… ã½÷Þ©ÚU¤[0ToÂ}0ú;2Þ‰²uëÖ²êÀDÓ»woQŨ„ªU«FwÝu]tÑEÔ¶m[š8q¢§(HÛ˜@Ûµk'ý0gÎzâ‰'L¯¿þ:­ZµJTC|ðÝ~ûíôå—_ ž¸¾°„z>ÿüóôÛ°’z À´iÓd˜7ožªGE@Èf²ÁC-f•Œ`f`Nþš7oîal,!ZfɆF¨ Ž€ÊL’=öújè±»wï.êăTîÀ/¾øb)ñ  ÀÒ€DÅcóùóÏ?%×´-ƒ‡:¥ÿþ6™L\a0µ×›o¾™0ù€ 6ñVƒØÄ˜¥Â… 3Æj“ ^ó·Ì«")Ì“Ñ÷ß/ªLfPkaŵÕâÅ‹¥&Ož,bL¶XÙ O î±„‰R}ÕªU¥_P† Ê$S¯^=éWŠ€"½d«ŠM³:_œC‚£÷åáFÏ0*¨À\¡z]wÝu¢žôÔ&³Ò:Ž%L(þ¨B…´[ù¢.6¤± çƒJ(#‚þyûöí¢F‚ÄÚ¿?½úê«"!còÁD¸/Â}ؼëæ+.$q¨± ¥ã‚ºd̘1¢Çn¾«KP•a‚ÊËôæ˜h [饗Ä`‹ Àת£dÉ’6™ô'ôô–löZŠ€"½d»Ÿ Ò!;Ô$6¡jýöÛo"1CÍóÚk¯ ƒ‡Zª ˜¬¥ôTNIÔzLݙϲeËdU`óõwD¼;î¸Côþ6&5«oGžð®Ájq-ARF[ ~‚dŽLF„¸Þ{·À° ÆŽI%ãÆÊ “¥ýAm…<¾ûî;aîPÁ Þ8Þýç}H™GP²lgð™iV›6mD]ðÖ[o ñËY³f‰žú|¨YàiµÔ ü¡ó†çËÚµkE7ï¯LH»Ð?C2óÍ7E‡ßªU+Ot”‹| ‚!:ot÷PÁÀSL0 f¡~AvÆ "C*3Æ$U·n]Q!±Bj†g &¡2eÊД)S¤>Ðï;½O ©Ã§Þùƒø  Ô¼ePO¨]¬<$|Ldh‡/BHƒ•pvPù > ÆPÉ`õ‚k¬–0 ª¤(á@¶ªh íaX¹÷µ à ’$ŒŸðΰÇ\ÜÁÀàárï½÷Šªž!»òÊ+EÚ„LÐ’Sâ„ŒÌ ºésÎ9‡æÏŸ/ÑÁÀ‘êuüÕA˜X°z€îúx¬2é!­CEO–o¼QâC…z<úè£7C¸BB'?nÜ8‰ƒ?LX…ÀP ]¶u…Á?'¡Þ;v”I¶‚AhÇyç'xàõÆ$ãéˆ#p+ Á•/KÙ•l"°@ÍU½zuY=Á `Á* + L N,‘©÷uš‚ôBP² >øµŒ›Þ.ˆn¶TH˜¦ ø¯Cl¡ ‡{"¬ºC+£(Š€{(ƒwKÍIP°B@|Xu‡VFP÷ø?ô^£pµJÓIEND®B`‚mysql++-3.2.5/doc/html/refman/field__types_8h.html000755 000765 000024 00000010401 13515046515 022537 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: field_types.h File Reference
MySQL++  3.2.5
field_types.h File Reference

Declares a class to hold a list of SQL field type info. More...

#include "type_info.h"
#include <vector>

Go to the source code of this file.

Classes

class  mysqlpp::FieldTypes
 A vector of SQL field types. More...
 

Detailed Description

Declares a class to hold a list of SQL field type info.

mysql++-3.2.5/doc/html/refman/inherit_graph_13.png000644 000765 000024 00000161404 13515046516 022450 0ustar00tangentstaff000000 000000 ‰PNG  IHDR‰˜.µx‚sRGB®Îé@IDATxì ¸MÕûÇ—)% )!B‘BšTÒ *REÒ,MÍ“R)ÍiRš*DRЍ ш¥P† ÉyŠý?ïmûçççÞ{î}ßç9wkí5|÷9w÷;­bˆ31 CÀ0 CÀ0¶!0°ø¶}Û3 CÀ0 CÀ020’hßCÀ0 CÀ0 í0’¸$vÂ0 CÀ0 CÀH¢} CÀ0 CÀ0¶C ävgì„!`†€!PÄxâ‰'Ü×_]ÄQ°é§=ö˜«Q£F® Û4‰¹¥5d†€!PXøê«¯C Xµj•4h[¹re®×4‰¹ §5f†€!PXhÖ¬™8p`a™ŽÍ£#0cÆ wàæú M“˜ëZƒ†€!`†€!`¤?FÓÿÚ CÀ0 CÀÈuŒ$æ:¤Ö !`†€!`逑Äô¿‡6CÀ0 CÀ0r \ÉuH­ACÀ0 C o¸üòË]Ë–-Ýyç—’Žg͚宽öÚ¸mvØaî¾ûîÓòçŸÞ½óÎ;nÚ´in÷ÝwwGu”{ðÁݾûî«åÏ<óŒûøã3µEÐ\àößÿÈy"uï¸ã7~üx7wî\Míò¿ÿýÏÝtÓM®téÒ‘zigݺunË–-n·Ývs¿ýö›»þúëÝ믿î*W®\†™ôXL“˜4TVÑ0 CÀ(˜Œ;Öýþûï)ÜÎ;ï¬ÇçÓO?uÿýwä\•*U´ïK/½ÔuíÚÕÕªUË‘³¯}ûöޱqÄnÑ¢EZç§Ÿ~rß|ó«_¿¾~ ýúõsp€›?¾Öù믿\Ó¦MÝÛo¿íÎ<óL÷øãk]ˆhÇŽS6Ïœ6|Ùe—¹ /¼P›,®Y³Æmݺ5§Íæßõ‰!`†€!`dBàì³ÏÎ9çœLç¹ V¯^H¾º`„ Á† ´úÂ… ƒqãÆ+V¬Ðãõë×üñG¤œ“ÔåܦM›"u>ûì³@4q =çÿÐäoÔºK–, „¨iQ:uÑÖé¾,mséÒ¥Á矰õ"Ú¹àŸþÑë¿üòËà×_õEºÝ¼ysÀ½Dûó;í´SУG¨Û/¾ø"69Ìt~êÔ©A‰%‚[o½UÏ‹Ö3B˜©Î/¿ü¢u„êù«®º*ma Ú¸Lõî¹çíãûᅵ“áÇ“'O΄çE³,_¾<¢üù矑k–-[,^¼8ظqcðí·ß?þøcðï¿ÿFÊÙ+îåœ9s2瀺Œ9ûûÎíÚµ N:é¤`Á‚ZGˆq¦v³3Öí:qüÀžyä¢ p¹Ø˜5e†€!` ²J«W¯ˆÉ4€<ñ°._¾|pà 7ÅŠÓãråÊ%HBñâŃçž{.‚Ó /¼  Bñä“O»îºk@}ÚiÓ¦M„øtïÞ]Ïq=íC´.¾øbm'LÃÑG­m–*U*(S¦L0xð`­×¡C‡@òé+VŒŒõ’K.‰ŒåŠ+®öÜsϸǾ I-b°×^{EH“¯Ë¢üÝwßé©X$2'&Ú@LÚZ‡ùS/Z¨÷Á( £ìÞ{ïU<™X3o Â=°A6!©àùâ‹/j÷ÀÍ—µjÕ*‚õ[o½¥¸×Q¹F ƒôÃyÚfܯ¾új ÔÈý>òÈ#Y±Gëð€dw¬zñþIÜ@Vl†€!`äÙ!‰{ï½·jù~þùç lÙ²˜hU…f¯B… ø×éðŽ?þø€—O<1hݺµj!¹N–Ô"ˆ„ÚCH Ú»µk×ýû÷WB$V­ZU5`Ôsm°Ç{¨¦’H;bÆ Äªä†cˆ™ìÙ³§îÇ:ö±Hâ±Ç´hÑÂW‰»…üí³Ï>ªýC!;ãŒ3t\Ì czöÙgã¶A¸Pïµ×^Óz3gÎ Ä÷/@ ‰@!¼hüÐè2>1ak$‘kÁM ×PŠÉ>ÿK%ÐâO¨ÚDíŠ/¤^ ‘…”r^ÌɘÒZßóÏ??8ýôÓµ^˜$æd¬ÚØþ¤Š$šO¢|KL CÀ0 œ"€¯œhtå‹ýöÛωöIƒ6D»æì³¥vA=!€NÌÅN´Rn̘1Nˆ†Ãï¯Zµjî•W^qBœœh¹´)ä͉FÐÝ~ûíº%È£^½zq‡Ü¥K áš;ï¼Ó‰vMI¸ AƒNÈŒê„dºÚµk«ß eøÿQßKô±?k‹ïp™XEÛÓ¯;÷ÜsõÃX…Xkp sMÖ‡ïý÷ß×À˜N:iûøJ Ùtbªô'ZRõmÄgRˆ¿#Ç óîÖ­›m¡b©§…hº!C†8!ŽÚõ¹ÖŒ9Rë :Ô‰+‚â/Z_÷È#¸G}Ô‰iÞ7½Ý6§cÝ®Á<:a$1€¶n CÀ0 7>xƒYB< y^Ä!Pgu––Cø@ ðàÈ¡hhÛt+æR'~snÞ¼y®Q£FN4x¾IöDí8âE´\º )E Ga¡Ü—…ÏguŸÀÖ»ßÌí.%à¤W¯^‘óÔ%¨ÃÄ7R 0ÀQÌÍR¹Hvhr ±ö˜@v½p-ÄÛ ÝË.»ìâėкp÷!Ø„Hj„Ñ êG´‘BCW·n]­Ãî×E]”éÞD ÿÛÉéX£ÛË«ãmÈæUÖ!`†€!P€&#¤…9í´ÓÜ{ï½ç ¤QÌÌN̬¡E3‹yÕWs|¡û>M¸ -Ù”)S"éi"ecm)Ú´Q£FeºšHe1a;11g:ŸèàÐCutã$¨'S5R눉Ú|ðÁNÌûª k/'Mš”i.‰îI¼2ˆ&dí¦øêíáý÷߯ÚWH5e^ˆÔ_N%˜þ\ô6§cn/¯Ž$æÒÖ!`†€!ð˜œ1‹Ž=:’2b‚FŠ<‚ŸÆ«vQ‚TE €p}ûöu}ìúôéã0Æ ŒÑ<}ä*|ê©§Të±B R¤–Á}×]w©iUd´ìÝwßÕÜ„z ¢ýùX[Òß4iÒÄ]yå•nÀ€ªéìŽÙ½R¥JއÉJïÞ½u\â«é&Nœ¨m‰ï¡š‡ÁH|cfÐã$¨DÓêH´q–ú‰5ž¶mÛªÆñî»ïÖ4?Rúúä“O´:Z_ñáT³4D“5Ú^ €Ñû g>‡l¡¤Í#I¤ñÃÏP"e]Íš5#MÒWØì**î ƒr 6t$¥†ìùñ`n&16ÄíuIôüÐC©ÏaÆ•HÝH»ÑǑ٠÷Çù’%KªvôCÑ1£¹”@%OøóaN÷}­?ï·Œ-+$L"‰U;HB|)~øa­/u3ü!x×]w–ûùú6éÓ÷—¯Ã–ñKÐŒ#)8&iÚ„`ƒ9òÀ(®¸ àɼ!ÛÈ©§žªšY FÒcÿ''cõmäǶ3ùѱõi†€!`TL€H 80%CÄ· ¿Aˆš°° ܉"+w„;>ø;B1c†IuYòaÁDpAƒ)ÏJÀ$"VX‡ýÃ}ådG4ŸÙœ¬6NEˆ®¤¬Q‚=.ðB« ù ûF×Ëê±ä¼t`D›aOß¾‰ßè>q€8Fß;®KÕXg̘¡øHžD%°~Œ9Ü´eùrˆ ]n†€!`dÌÌ,KÙÃ4-h›7o}ZјñIFð}äK 1hëR%§hò”¾Ðü¡­K$àÅ'·…àVЉ'D¢Ç4Äñ$Uc×_NÏIÌ)‚v½!`†€!ðCDãCZ›œ)–µÃ_1Z0»Æ#MDå¬bb$ƒ€™›“AÉꆀ!`)Rmn.R`ÚdSŽ@ªÌ͸’ò[g†€!`†€!~IL¿{f#6 CÀ0 C åIL9ÄÖ!`†€!`釀®¤ß=³†€!`ä,1Çp±dÆ’’칸,·)V±3òÒõ¤BŒ$¦UkÓ0 C ­hÖ¬Y$ù´ŸY…—/ßE–ÏÛU–Í+-ɰ7¸úõ—ùbÛù†éz¶Š—ò(»³èæì"g׆€!` þüs…ëßÿ+÷Î;ßHnÃ5îøãëÉRzGÉJ)É É­×\$€²I6,™va»£6CÀ0 ÜAà‡æÉòlŸ¹#¦¹=÷ÜÍ]pÁ‘®C‡f®ZµísæNÖŠ!P°0ssÁº6CÀ0 |F`ìØ_•N˜0S–Æ«áúöíäN>¹¡¬Al±žù|k¬û‡÷Ý7Ì}ýõlצÍ!î•W.vµkïYph#1ò#‰ù|¬{CÀ0 ¼E`Μ¥®W¯áîÃpG¹Ÿ˜™ÿÏ5i²oÞÂz3Ò#‰ip“lˆ†€!`9G`ãÆ]ïÞŸº>}>w5kVr¯¿~™kÕª~ζ BŠ€‘ÄBzcmZ†€!`Û RùÖ[¹%KV»=Îp]t´å8Üí10’;i†€!PX±bø~à øVÓØ tµ«Re÷Â05›ƒ!rŒ$¦bëÀ0 C ?>|ª»í¶÷\©R%$(åwÊ) ócÖ§!¶ILÛ[g7 CÀˆ…Àúõ›Ü]w Ñeô:v<ÊÝ}w;W¶léXUíœ!`$@ÀHbp¬È0 C ½˜1c‘»ì²×ÜÊ•ëÝk¯]êZ·n^°Ñ[c¨Ý Š!`†@ö:tŠ$ÃîíöÚ«œ=úf#ˆÙ‡Ò®4#‰öE0 CÀH{X1¥k×7]ÇŽÍt9½Ê•Ë¥ýœl†@~#`ææü¾Ö¿!`†@¶Ø´i‹»îºþnĈŸÜ3Ïtpguh¶Û² C 3F3ãaG†€!`i‚Àڵ݅¾ä~ùe¡©tqÍší—&#·a逑Äô¸O6JCÀ0 «Vmp\ð‚[°à÷Á×¹ºu÷•Ú®!`äFsEkÃ0 C ÏX½zƒ;÷Ü>néÒÕnÈk\­Z•ò¬oëÈ(JI,JwÛæj†@š#°aÃfYRïe÷÷ß«ÝС׺êÕ+¦ùŒlø†@ÁEÀHbÁ½762CÀ0 [·îÊ+ßp¿þºØbÛ5R…€‘ÄT!k톀!`ä*÷Ý7Ìÿ›<øW§Nå\mÛ3 í0’¸=&vÆ0 C €!ðî»ßº_ãúôéä7®QÀFgÃ1 'F ç}µY†€!Phøùç…îŽ;Þs×_’;ãŒÆ9š×¢E‹Ü—_~™£6ìbC ¨P¡‚kÙ²eRS(ˆ$UÓ*†€!`yŒÀºu›ÜÉ'?îöܳœ®¤R¼x±à£>r§vZŽÚ°‹ tF qãÆnòäÉÉLa i“Éꆀ!`ä =z|àV¬X'ñj—S‚žÀºuëÜ.»ì>eû†@¡GàöÛow#GŽLzžF“†Ê*†€!`ä%©ôë7Q|;;[‹9/‘·¾ І€!`†@AC`ýúÍîÆ¸6mqmÛRІgã1ŠF‹Äm¶I†€!^ôîý©[µj½ëÕëìô¸Ö(DI,D7Ó¦b†@a@`Μ¥®oß1î–[Nq•*•- S²9i‰€‘Ä´¼m6hCÀ0 /={~èjÖ¬ä:w>¦ðNÒff¤FÓà&Ù CÀ(*Lž<×}üñîî»Ûåj4sºâ÷Ö[o¹k®¹&åÃo×®ëß¿ÿvýÜrË-®{÷îÛ>ñÛo¿¹SN9Åýõ×_ÑE™ŽÉQI=ÿiÓ¦»á†ÜèÑ£3ÕË«ƒ‹.ºÈ½÷Þ{Iu÷óÏ?KžÎ3Ü>ûìã8àÉÛy½;vlR×&ªô /¸{î¹'Q•˜eÿþû¯[¾|y̲Ü:i$1·´v CÀ0rŒÀ£~â?¼¶;á„sÜVahà×_u'NLùT>ýôS7kÖ¬íúùöÛoÝ÷ß¿Ýùè[¶lqkÖ¬q[·n.Êt¼páB7bÄW½zuW¿~}%\Ÿþ¹;餓Üý÷ߟ©n^ iÓ¦M;슔ÒgŸ}¶bÔ¥K%¶S§N•ïé ìr"Ó§Ow“&MÊr~ø¡Ûc=ÜæÍ›³|m²X œd‘²z†€!`)E`Ê”y¢™ùU“f§´£,4¾qãFÇ*-šyóæ)jذ¡’!4K”|ðÁ®T©RZ^¶lYW±bÅHþù§ã\ùòåõIŒý5»îºk¤ëÇT ùÿþûo·ï¾ûFÊÙYµj•ƒ¬”)SÆAÞöÜsOW·n]­ÑY±b…¤ ªìf̘áþùçפI·ÓN;EÚ ßâÅ‹ëXigÆ ®téÒz.R)ÁZ+ +v@vÞygwÐA¹%Jè8 ¤cbÎÅŠsÕªU‹Œ c—»îºËÕ¨‘±¼"c¹òÊ+U›Ö¾}{× A½L O”7mÚÔí¶Ûnzžq@J!H”ƒÓ^{íå |S¦LqU«VuµjÕÊ4ÆôÇh;àç-óð÷™1QoñâÅîCÑ{GÝáÇ»_~ùEIâ~ûí§—_~ùå:‡wß}×µjÕJÏųʟ¹sç:¾7‡v˜øÛVò§3m¹w|øÎ-C®a˘8ǽ[²d‰^7gÎǘ¸·¹.¾‰!`†€!ï\rÉ+Á©§>™Òqˆö…UÆ!Iõóõ×_kýã?^·\Û¼yó@4_‘ãfÍšBÒ‚£Ž:*8î¸ã"íÊC<zðÜsÏBª!3Æ@T &Ë@H‡Ö“e Ä+‡¼Ö?ôÐC!Zvçw²B†îwèÐ!8ðÀ![?íÿ’K.Ѳ¡C‡êñ±Ç)£îüùóµœ?ôѵkW=ó®Ö3fŒ Y zôè¡ûá?-Z´N>ùd=%faí¿N::N°rˆö0ð8 Á ºuë¦åß|ó^DZ±@ˆN0`ÀíWÈR¸›€º´wÛm·éùqãÆBü®BˆÆ12!PAÍš5õpc^Ô§ ><òˆÖÒ~øáz®\¹rAÉ’%ƒ^½zEú¦‡~82~1'GæFŸbF׺o¾ù¦¶!¤2r-;¢Ôû‰ÆL¹c½÷`͘Ï=÷Ü@Èn î˜Ý©L›6-¢Ȫ@×@4ÉŠ9sbì{ï½·Ž,hƒó|ÇÀ=_ÿ}J¢þ€ÐN²‰!`†€!ˆh1bšøß˜…«ò®ª ·`Á÷ä“OºñãÇ«æ íÔÛo¿í¾úê+ÕôtìØÑ QˆhxÞÿ}ÕîœwÞyjJE3´råJÇuhüÐb¡™ëܹ³c©4yÐ;ÌˉüúÐf=ûì³nýúõîÕW_ÕϰaÃ"@ ½C 5sæL·lÙ2Ç ^®»î:5ërŒö C¶Yú¿êª«´üè0µ¢É ˃>¨šÅK/½Ô uO=õ”"æ„´†«eÚGSƳgÏVóo§NœoÕŽ‚™pwá…*î\(ä× ùT¬Y‡¸OŸ>Nˆ¢â+ä˽ôÒKÚþË/¿¬X0nÚyàã[»vm¦þýº¥K—ª¯!ÚÅ!C†hQÛ¶m]½zõ¦f´Œ¯oß¾zѦ¢ÉM4f¾3={öÔ{‡Æ³_¿~nàÀú}ñ}ÿôÓON^Ft®ƒV-0ß 4ËŒM²^wþùç;y‰øRò]Âì›ÉÕ­‘Ä\…Ó3 CÀȯ¾:^üÓ*¸Ö­3LÙi#•׈FO͘Z ˜!dþ‚9Áè‰æWÑ©Ys ¾}%LÉËG}TÍ£\{õÕW+ù ÞÅ_w*˜b! ¢EÒzµk×Îd 4bÈ‘G©[þ$ÒîAÒÂIò¾iœûâá§!MFð÷Có-ø9B¼¼Ð¦È ‚`´ˆÉ\牄Úã]ÏC‚ ›øêáû‰ ]ôyBÀñÇìsO—÷Y¤/îòûï¿kp ¾|hN!^‰$Æõ¿ÿýÏ¡$šHHÞM7Ý´Ã1s­ÿÎøþ!ŠÞ§”qâ³ ‰…p"ø/"hœO?ýtý<ôÐCìƒÆ3/ÄHb^ l}†€!`ÄE`ðàIbvÝâÎ;ïð¸uò»íO2D{‡¹“€RË £Frk`J†\FåŽ;îPrC9Á1^ ñ„è`/+E˜T†ËI7.ó×ÅÚ¢QDk̘h¯Âmìˆìùë™?ó„Ý|óÍq5w¾þk¯½¦¾#Ž8ÂyBN ÚB'’ì8À²¹„€AèI¼ûLäõ9眓éRƒˆxæžîh̸àJࣿ1e_qÅ‘ÈqLëâ¨@˜éqCðZÆÞ½{ëË/àðØci€S¦Á¤è ¹o}Š:·f CÀ0 ~ý¾’õ™‰™o[Ôiº¢"ލer B*¼¶í•W^Qó(þˆø°™K”-ZE´| ‰Æ×-ž@0S¢õƒá çMÞ\ƒ¹™v0u“{_:/·ÞzkÄaÁ\‹ ‚?fYü Ñ`aZ=묳”Œ¡=ËŠ`Åô úøãU›ùÿ÷™š˜0a‚#õ &ào¼QÍɘÜÑ$¢ADSˆÿ ĉù M£ÌGgj,Á¤Œ(bÌ·h*1'#YMÃ}E›È}…ÐC ?ûì35?cîÞј‰ÚfÜ3®ÇôϪ÷ÓD‹ˆYy2g4†hIôÌ3Ïè÷S;y¹D¥ûÈuÎ{Íi(²W”Dt‹U1 CÀ0R‚ÀO?ýT©òÝú{JÚn4»ÑÍBî´)ÑòiD)Ѽˆè1ÑÅ^ˆ8–'r ù ý)|%’V4`},isÑÜi¹ä Ôˆe®MV ¦çLÑÍ¢±ÒzD7 IŠÔ%ZYÈ„–ùèf®¥"a‰%º×K¢èfêù*Z7½ž6„\áy ™ Ž>úhß\ ¤Gë ŒD A „4¢Ór*‹‰]ë ! $X#Ò>}™Kô±Û@LÓ‘¶‰¾¦‰ø+F¢ˆ£Ç!¾h;#×J@¶Ë ÑàjÔ3¸%M?D‹™WëKJ¦èfŸ)lݺuà£Ç9æZÚ`L|ÀóÌ3Ï Ä¤OqhÌ”ß{qˆd!€ÓH8º™c1Ïëw„Èæ~ø! ®ï“ïÿÞЯ˜ÇµLÈ>—îP²Ý\Œ¥sCÀ0 C ϸóÎ!-ü«Dyn‹ÂMå >úè#‡VS-fÈTˆ_A$l.¥üóÈoˆ–,ì;H>fø¹qŸF5ȹLÙDå¢%Ä Ìª^›D`« !Ãÿ SwØ¿.ÜN¢}ƈYÿ¾hÿÇD×¥¢ LÈÈ\j‰g ÞQß̉vˆN/´€hõÂ~;j×aÌ}B3I¾Ìè1íhÌÜS4‰Ñþ‰¾ýX[ÆÏýfKŸÞ/–º˜­iÍt2B´ûÈ‘#USœDý¸IÔ´*†€!`†@n"°qã¿bþü^QËÜl6ßÚÂt‹ Ó2~dÑÂÃT.±³4I¹“Ú,Ä“œ;Ú&È£ ˜à÷—SaNaly9Èî A<åÄ“›‚H?‰î7fg>©#‰ÿ!Ë›Eô[[ª@O·vy£ä‹oR4@ŸIá@€ß.š³‚(#GN“ÿ»Åwï°‚8¼, Còõ¡­ÁÇ/»‚|xÑB$,¿ÏX‚&‰éd:bµaç hÌÜü"ü¸}>¤hŠú1*z¹UÔ±( óÇiÝG…ùö9B8%gÎÏùwèð¢ä,.9õ.˳aä…¹9Ï&“ÍŽH*Md5 žù½“šà"S©•Êæpõ2È1éhPZ`î½þúëÝ믿®É¬sÒnQ»ÖÌÍ9¸ã¼q‡sUå ©Bs))LŠ&²LVLmFÑD#=gÍÊDÍDY²d•ø!þêž>û·‚8¯‚>&^$øD££!Z¤â! ú¾ûîs$¡þŽq—]v™jQ%FÉ"–?ŸN¦ Ž·°ŒÉÌÍ…åNÚ< CÀH#ȸÛn;Ë s…•4‚2KC•[]t.Þ7Ö£GG)v|k,lßàAªoÊæ<æm‚4h‡´4¬>ƒ,_¾\ƒgX¡„t>(_HùÊ*^| [üÃeh !«¬Š™%@„t?ìàFHÌîï:ÈKvÆê¯µm|,Ob|l¬Ä0 C E ø$šn,ѦÛÈCŠº²fCôïß_ý%=AôEäÞ#BÚGü¢Y$‰6ë%C›7o®úß°uO8áÕFúµ’ÉmÈòr,H‚hFN=õÔH?LÅœƒ’8M&V 2HÎACür†$Ù&÷£¤.Ò„ään$Ÿ#}ûÕj²;VíÔþ$DÀHbBx¬Ð0 C ·˜:u¾¬>±¨@¯°’Ûs.íaj&…K¬èe¢}Y†U>HtMRm¢´!n;|öIímõ j¬sNNºÖuFóG;Ÿ~ú©›óßrx;wÖÈbê0tXžŽl|h29χ~ä· |&!¦Ñ«Âät¬~>¶€‘ÄØ¸ØYCÀ0 !ðî»ßˆ©³²kܸFŠz°fc!¬+ì¾ûî‘mr’ƒ‘ô>^$Étd•–¦ ~’‚§[·nj*†,"¬vQ„ä±¾5(ÁV­Z9Vhaü Y¥†`IV­yä‘Gœ$ÊN¸:JNÇêçcÛØIŒ‹Í!‹¯Ìa v¹!`F6lØ,d`²h†Ž(ŒÓ+ÐsÂDKž?’)G >€çž{®®;M2n|É¢¹–õ½„u£…Ä¿ÐK¸Ì§OÃ×Hj„¥çÐ òaù9LÎÆ ¨¿¡o­&ËÐù„áþ|x›Ó±†Û²ýí0’¸=&)=à ÇÞÂ(+V¬s¬ÁzúéO‹¯IÁŒ¨,Œ¸õ9¡@3C{ª…õl1¡Ya=Xü±Ðt$«¡IõøÒ¡ýáç !Ø$„¤päFLÌÃcÄß5“ : Ë;ï¼£ùQñ$åë‡d# E/>ˆÅ‡·ñÊ }‰Æ1Só¡ÝÇ{L×0&…•Q¼à«ÈúÏÌx’Ó±Æk×Îg `$1¿ 8ß–ÕÅÅóx˜Iw·~ý&Y¤|²#ßÙÁw—$²ï‰Sñò£¶Õ“Ñ*ær¾ÉÚ·ª‰ÈQC;¸ø“O>Qß+¢9‰ÅAŸÔ-·ÜâÚ¶m[h~Ó;€!ÇÅo¼1ÁµnÝPþ–Íq[Ö@Ö€ mÚ´IîAk'kKë~‡`FkW±bEצMõ ìÞ½»._Yûâ‹/Ô/0ë=n»3týúõÝ3Ï<£‘Ï3fÌÐ>ñ;$?cûöí5xfÈ!NÖÈÖ1±ìÑÏD9ó"ÈrzaIÕXÃ}å}#‰9¸ûhH ‹›G¢¬Âͱ>#ù§Ø"¼¹-Y²D÷Ñ~pýŠ+ÜâÅ‹uŸ¬sá—c¯ž×‹þûÃuh4è;¬Á@C) ~ë¹ï¾û.Òj|œ{ñûÈ Ù¼y‹D™Mw]º¼)© ît×\ÓOómÙ²UÈáV™Cnôbm¤ üçûÌÛ>ß1HÂwmšÿR„i(Z“NêŠð?~¾Ûø-‘ò",äEã7C;ßéX¿ ~>q4 ¯¿þZˆ¾~Œ—6xè± e~¬üq¼gœ¿ôÒKÕ‹ùÜvÛmîÊ+¯to¿ý¶{î¹çòÍ7ßÔ¦˜Oxõ&H,f´°Äû}S³å¬ñ ®ôí…}Îù1úóé²ýñÇùò9Ç]rÉ1é2äB7N–ó#} $Œ3hyéACþðÃë|!$Û~ðÁUcNþ`^„®»î:-Öb–ö¦iÊü~4x=¢«1[cÎ>ðÀuèwß}W¯áÅ‹ñÁŒ¶žåè|° ÒS¦Lq'žxb¦fs2ÖL ÙAl䡉 jï@LIc!ºà¸ãŽ äÇH>(ÝÊ—Y¯—‡e _Ü@Þ|‚2eÊòE^|ñÅ@TüZOîD ?–@¨ÁwÞHª€@~,P«@ˆdðÖ[oéu\Ï9qì ä!ªm7.Md o]úçâ@rQi™,*T¯^=Õ2ô:ÆÖµk×@üCô˜¶Ä8é9RQ2òBryP'Î n¾y@P§Î­A•*ÿÔ¨q£nÙþT«vC–ú±Ê!!ú}íARƒ"¦õ%íEä{&é2‚“N:)r,©0!p¤ÎÐßoXH›þ„hé÷XX¬mȃ&?¥@ÛµêØ±c#¿3~;b2 ı]Ë$ÊRûÇø@ßu_¢-ñcÒ}~[ü¾ÎɃQûô¿ÏÁƒkø-ó›AäO¯3fLðÞ{ïé>¿¿há·qÀòðÒ"~oO<ñD¤Z¯^½yàEŽý¾%-I Cøñ/âË¥cç7™ŒˆÆFÿÉÔÍ‹:×^Û?hÙòѼè*nbÍÑ{)/që…žSüf$L /d1§,dNŸ‹òâ³<»'å%'%G /„ûÑ"/ZA¬>yîÊ Ttu=NÕXcv–Æ'å7hܸq²3`É´…9eGÕÇw‚ˆ®Zµj9ÔõD{ᣄ6Ç`ü-ð[òIJ9–‡;óÌ3UCúAÛÒ¡Cñçë§INÑXFî'ÔëBF]Ïž=Õ÷‰%uxû{ã7œPÍGÅÛ×€´-úxê©§ô­°cÇŽºŽ(ýcJ¸üò˹¬n¾ùf­›ÌŸß_ᆠû\4%¤$X#*ÿ¢ÅÈðñÛxí|ôÑÔxEv¾#À÷·dÉ Y!ñh¨ß7Òb Ubå.¸àý½ð¼æškTËs;‘‰B„$Êy¢™îâä%G5h×Iƒ;>¤Ílú;C‹F¶DBb_´“Œ‡ß ¿!gz‰¼œ¹Ù³gk"^rÀáóD„¥SÕ” á@а`Jf‹a т愹-hÑÆŸ˜;ºœÝñ$Uc×_Q9o$1›wŸ ÔïDäâ‹/Öu/I@ª1ˆ#‰@!jœ‹%¬E y#BŒ"&3Úð)HH é¤ "É›t˜ xrì…š7 ”T40N4ŒºÞ¥h&ãNV úÎ=ñÄ7ò@ßföÛ1ômËkŠ<|_÷‡¶M3J—Îø^geØ¢×køù—þÙsŒ@Έžd)0¾‡BÌ^>i.«6°®.&/LKžtabâZœÛYcá÷öøãë~¬?üæø=ñ¤.&./ôËïaÌŒ…5LjüN½p­7¿aúæÁÆ‹Y,á7ï÷®O_‰~ßÔÅÔÆoTCb1“Ó‡h5•(kašýyýõ/u…•ö훤ÙÈm¸†@ÑEÀHb6î=>Jh(š4ÉüÏ'v|-ˆÃO‰ ,Æð(Ü-#hˆ÷³BÃR bS R°ÔQ8íå¤)ðÂC m $á!yKVÎ9ç0io£h=ˈ6h®ôý½Òuò°,!ýÆ6ó}-XðD²]Y½„ßÁš5{gyD|ÿ¾wˆ_ÑÁ“'¾{¼í‰ŒvŒÜjøâׇ@Øð|òÉ'Õ ­"äÎûñ†×U÷$O/ŒñÇ¿¼QÄoí¨—p™_ÖË÷áëDo!°üÖðÄù>ZüÒdÑç9ÆÒËŽ~ßÔ kX ŒW_}uDãJ:œûÓMÖ¬Ù(‰™Ç á=N챓n÷ÏÆ[tئ‚*ºdyæ¼Ñóp!pÄ š’òð"h„ôh'0c*Â$Œ)xGɃbʦ>ŒÞÿýú°äAŠ)ç4-d«‹ ‡Ïåt¿aêÒ{™OO÷î»W‰¹¼‰ߤÙbJsÚ¾]_8k´Íí1´ç˜x1+#£FÒ OáÅçyHâÀØG‹žHÂép¾üòˈækÂet!;"˜ÎqºÇ•à cÄôËÆƒ!šD| IÝñÿ÷ú‚Èï™ß:æ`¬ hý4¨ôËK$¿_ö½ìè÷íë…·jÜX˜G´…!\¯ î¯]»Ñ½øâXñ‰n¡ææ‚:N—!`Ä@@ˆŠ‰ »,E7•yÌ1Çh”œh4ÒXrŠ%‘bDW Ü<5ºPü µLˆ_$ÚX>Ý,˜L÷ OŸ>Ú×ó!ÊQÒbhq¤×MúíG ù=MÄÒ7Þ¨‘›¾1ú¤Ž—W_}U##ýq2[Ýœ¨îêÕñ_ Î=·OP­Z7t¶èæDˆì21©ê÷.«ÑÍD$"¢åÓë‰zFˆFä{Lä±ñÕÕsâOD/ÚpýŽ q‹ü&%b ùÛô¾ûbzŽD7ÝOûáèfÊ9'/gÒ@RÒh?D7ÙG„4åD>‡Ç/º™‹åå-ò©cãZ>ŒUÖÁÕ~ž~úiíC^Ü"¿ßš’i@ˆaP·n]-ãO¢ß7õdŠH]v$íÎ]Èl@DjV¤ D7?ñÄH‰þ¾=X¹r}V†ž²ºÝœ2h­á4@ «ÑÍh³L¬’D@#õ…—h XéHß!¹Î¶ûÇNšÂõ‰äV xÈòÀ®-Gä4„Õ“ÈÈÉ\ÚI†$†»ZºtuðÚkãƒöíŸ Ÿ¶ý4B «$1;S“À–@\2¶»”t¢ù½—œ…š&ÒÉ OnħÀ¡^¢Óh@ÅRSJùô:áë“Ùͽ¦ïà·!QØz‰øNþ%‘üÆùßOý¾£¯B%ÛAtÑó›$.ZôO°ß~·O?=z‡cÍ« ž$z¢ŸÊmñâ;‰¢`ÿ`÷ÝO¢†¾X¤²?k;ãåÍpHŒƒ¥À‘oH^þ˜¡â ‹”ÇÌT| éDŽ8"öڦѡþÞù>Q{yUÆ* ;£Ÿ¼êÓúI0Ýb:Å´ÌÊÑ‚[†äRŒ>­Ç˜¥½Y8f…¨“±L||ýødGH].¡ Rü„…ßw¢ÿ ‰~ßávÀŠdýÄyŸÇpyAßà$ XYûqf¨¤+"MSªdÁ‚uî—_VÈç‰Ê_%®AN\ÊJâèò´•ù{’ª1X»†@"¥оÎÂÌ¢±cCÀHøйUóvêÔ)ÛýÌ´Ec¼@/€‹2ê¤‹à‡ˆo#¾Ï>€']Æ>iÒ\ñïœä^~ùbñÅ.Q`†Mð¾°¹%d|7î7‰ÔÿE>3$Àp•øÐîæZ´¨'©ŒT?îŠwÍ­î¬C O0’˜§p[g†@ÑF€Ü²BJŽA ÷¢Ï¿nLü„#ùÃçý>yCÓIHªŽB>ÕÛnäŽ9¦ŽhÏâ'MNǹ‰Y\¾Ãó#¤pÊ”yÑ^LRŸÕ”¼¸Í%Ñ{=Ñ4g¤,KÇùÙ˜ 0FÃhؾ!`†@Ž`1µ.U-bŽ+ °Z̘13”Žû«¤ [ëªU«àŽ;®ž¤$;Þ5o^×"· À}²!ä>FsSkÑ0 "‹ÀÔ©óݳÏ~&K‰ž)ù'ÓÇ´¾a[¶luß?'¢-œ6mšÌ8b?wíµ-U[X·nFòøðu¶o6Œ$†î¨DfZ™!TTdw1­˜Mšð+„ä·H.Ï­¢iÉX«<'mÙµYC€% óRÖ¯ß$¹%ûËzÙuÜE—]縯… ÿQŸB| ÇÿÍIj/Yy¨’ÂeŬSdN¬Œ•‘ç6ÇY†@š `$1t£$m†&Ç ²]C È"Àj'Ù•âÅw–$ÙµåSG"ùkÈÒt?»•+?Ënsv]ÈË€—nÝÞUSì;ïtÉÁˆóæÒM›¶¸¯¿žÑþöÛb]Iꨣêˆ?eÕBM ¢Œ@1rSel!;å9bÄ4÷ÑG?¨&†c|µÚ¶=ĵnÝÀ•/_&w:²V $}ú|îzõ.KwvQMbAäœ9KÿÓÎp'Δ——M³1Á&h *yù}øé§?•’»T5[·®qãma£FÕ㮺s2vÒ0b!`$1*vÎ(ªxá°aSDc¸žvZ#!†*Q,ªØØ¼·!0{ößîüóŸ×`¤÷޻ƕ+·ó¶ÂìáûJk´…Ã¥KW»Ê•wÿ× má±ÇÖµÀ¨ànMyŒ$ù¯€PäàŒÆpØ0oJÎжk×X53hM Z¼ .èëjÕªäÞzë ·ûî»ø¢\Û¢d¹;¿2 ºK”`é»ZmaýúUs­?kÈ0b"`$1&,vÒ(ä¬X±.âc8aÂLÉeXÒµlYßµkgÃB~ës4½¯¾ší:w~Ù5mZÓ½òÊŹꋺdɪÿü g¸qã~u¤T”íÓÓ4o^Ç‚¢rt÷ìbC ËIÌ2dv!¦¬ZµAÒÕü(Ã)âè?Ó•*UBMÈCb^ú”¥)„Ez؃}'+ t'ŸÜÐÅÌ÷''òï¿[ÝwßýÑNŸ¾@ÝÈUè‰áþûï•“.ìZCÀÈFs†Ÿ]mlÖ®ÝèFŽœæ>ø`ŠútI~ky(ÃÆ®U«úºÂDÁž.¿ÀôÛ³ç‡î…¾Ðu‹o¿½M¶‡D°ËçŸÿ¢Còj®Y³Áí·ß^RجÙ~æ÷šmtíBC ×0’˜ëZƒ†@>#°aÃf7zôÏnèÐÉú@Þ²e«¤©'‘¨$—]CW¶¬å1Ìç[”6ÝÈÔ¥Ëêøè£çº3Ïlš¥±oÜø¯ÃD=fL1œ9ó/y1)íŽ9¦Îİž«Qc,µi• C Ï0’˜gP[G†@ ؼy‹F}¢1DsQ<úè:êcxê©[äg ±/¬Mó«»þúþêøòË»ƒJ.Pä÷ßÿVM!CÖFfÕ“zõª¨kfäïcSuaÅÜæe0Œ$°bÃ1’F3 A'C]¯\¹^ÀµDcØØ‘²f=,pÒ`Zżp°sß¾cÜg4v?|nBí3ëc:ö‘Èóæ-ÓˆçæÍIOÚÈõÜÞ{ïißv C m0’˜6·Êjü‡Éƒ1%“äúï¿Wëj<Ìñ3´uhík?ÿ\!ÑÂâëù~˜çºu{×ýùçr÷àƒg¹sÎ9,fý3E´…Ÿ@,6ÜG !ù4‰~.^\`M C 0’˜ÎwÏÆ^t˜>}¡C´†<ÀëÖÝ[µ<§ŸÞDóÕ$l¦ÙAàŽ;;àÇw‹y9î ?>RƒSŽ:jÙÿ_&BIdýtº)5pìßtÓ÷î»ßêþ7ßüîŽ8¢v¦î¨Û½ûÍKØ«×Ù®cÇfZþãó#ÚÂÉ“çê¹&Möu:¥þ…¬×lb…bòO$(ÜS´ÙéƒV>yÿýÉnêÔynÏ=wS32İiÓ}Óg"6Ò|A`áÂ\×®o:HÝ´i84ˆC‡NÒµK–,îðìßÿ /!=z u£FMרåk¯méÈUè—¾[¶lúføèŽ=ö€”/¿—/ Y§†€!37ÇCÆÎy…+K|ôÑTÕ²^òn»•vD$C ‰P6ß®¼ºéÝ/·Ü2ÀmÚô¯øúR‰™HaùàƒëôEäÍ7'¸*Uʻ륚j–Û#A6ÇC| ‰JNg2dˆhQßMç)ØØ uýõ×︒ÕÈ5~ýõWÑðN̵ö¢Úc=$Éú47hÐ wÞyçiñìÙ³ÝÛo¿­û¤ "HþöÛo®|ùònݺuò?o“žÏêÈÑßgøÏfõÚ¬ÔŸ7ož1b„âײeËÈ<¶lÙ¢ç;uꔕær½îÒ¥KÝøñãµ]ð`¬ŒiÏ=÷tÿþû¯Þ—O<ÑõîÝÛñ»Û¸q£ü¦×çú8²Ú ‘Ĭ"fõ‹“&ÍUb8lØÑĬÑDÃ陼ï¾ûºsÎ9§HÝ/›ì6ȸjÕzõ]¬Z5{ÁRwÝu×¶‹ÀÞòå˯-â6²‡›4i’ã7´×^{)Iš2eŠZµj ß $}±$#¯âJ—.­ÈðP_´h‘«V­š$%/¥u |•+W–Àµƒ"¹+©üçŸê§iÓ¦²â?ZV©R¥L/Y²Äí¾ûînÍš5îÇt|°Ž‹J¶+VhÛ3fÌÐ6š4i"ùU3^VIÄ"Îjb@IDAT[qIˆ á³óÎ;KÚ£dÙÆO#}¡Ûm·ÝTƒÅþÅ_¬ù5»ÿÿñ /èµ\ÄØÁ‡öúé'·ß~ûéœ}ƒô=sæLS:uüéÈ–ë™Ø5jÔHëy<=vRæï=¶Ü,#à<}útW¿~}m'Ò¸ì€=¸DšOò¢Í+Y²¤kРbD¾ŸêÕ«;H'Ø7lØP±ùù矵œû@^V­Z¥±2¾°ÐãŒ>ïëÜtÓMÚ>Çàv衇ª’ˆöÖyú ¼L™2îÛo¿UbY·n]ߌn#SŬHÇ&†€!B@ÖI~øãàÈ#{Uªü_ТÅCÁSO æÍ[ªU°wO;í´ cÇŽ{6º€<ˆÑ.øqÆàý÷ß0‡då†n„ 5kÖĉ3‚tíÚ5¢¨Çœ{ä‘GI>¬eÏ=÷\¤i!RA‰%!0Á“O>ìºë®A¹råôº6mÚBL´n÷îÝ#m‹–.8à€!fZvçw7Ö}!|ÁÑG­m ) „ ƒÖ²¡C‡jÇ{l@=Æuà긨0zôh='&V­/¦Ì@4VºÿÆohÙ¬Y³ôX\S!ƒ[!%zNÈŸÖ‘ÕjôL$)ydÿ¤“N „€êØèûÅ_Ô21gÍš5Ók9Øa‡éþǬå÷Þ{¯âV±bÅ@ÈžÎk~ùå­÷á‡j½‡zHeÅ=²Î_ÈcкuëÀã!$/Ò7c Ï×_]·}ô‘^+Ú8=m©7.’«ãgBă©S§jÙ×_­uÅD®[Ú‹LÀ|ÙçÃü„¤k}qÐq1ÊZµjé×2Ñ Ü_Î3Wî+ß DHºž²¬ÇþÏùçŸ/Ïœ*ú]á»(¤Q‹Ä@ï/¸ùû-îþ² Ñ8"•ìˆÖXÇ£ÊóI”;hbüý÷j÷ÒKãÄtü„¬QÛKL-ßêÒx£FÝ, °o•7Ó–êwhH†@áF€Õ'ºu릚,Ì–}úô‘„å]ÝÊ•+ݹçž+ÿ'^rûì³kÑ¢E&m&\ê pBÅWù~½FH‰ûä“OÔ *$DÏ÷èÑí^½Ú ÉT“nûÜ ‡Û‚nÝÞ ¾üò·È[ºašÄt½skÜEQ“(+r„<¨ÆIÈ„ž‚ ½B$°@5iýõW >fºÆ -ÚA!ÇhÅœˆ¹7ó¢jž„thüAO“xß}÷Eê‰ù[µOBR¯IDçåÖ[o•ÿcûøÃ„[ƇvM£0‡@P ¤G÷ey6µBrÈ!‘6¢5‰ôååé§ŸVmÇBœƒ .¸ÀB µM4‰Bè´ž˜ó#åW^yeDÓ+¤.8âˆ#'1§Ÿ~z ¦]­KÿÏ?ÿ|ðÝwß©ÆKVQmœÀM!â5‰ì ivÙeÅ;Z“(Ä;˜;wn fÛM©¸Çs —^“H"DVǦ‘=~ÿý÷U£ vB²î Ÿ3Î8#ót ®:NêyòvšD4™hùì½÷ÞªÉ3»^­I³¸oJ·µkרƒf;Þ82]à ‘&Ñ|³Ç­íª4EÀ/GÊš‘#§©¿k%?ÿ|'];¹tiûI¤é­µa¹‚¾r^ðYÃ'Ÿ=íšsÒ.Nü˜&½`NKä”ïëåÇ–—°Q£¦ëzÒ¬SžŽâ‰ÀŽÆNP‰hìõ^`j†T•-[V͘˜C‰^%¸RB ˜—_~YMº uãÉÂ… #E0$.ÿòË/3•E.Œ±IÄ|ùÎ;﨩ÙWÁ,ýÚk¯9ÌÜÞ,íËÂÛXA¨À„`/áÔ7/"«=ɦŽbŸT9´Ñ«W/5C°øb¢†ÈB=©¢æŽ¦bHd´`Іb¢÷©‚¼_uÕU²Þùr% a"çë…‰¬?½…àB41=Ó?Ñðª;B cÁØs"á{Íÿ©ø.$GNúó×IôHضÐ!ðÇK%©õwÔQÈ?óÞâ4Kþa'ÑaÝÅ÷ã×±c3IïP¦ÐÍ;'„ÏN¢‡enÍ ",h`{ì1}°Ó·˜¹4b2·úÉÍv.»ì²LZh§ ŠðÐÿê«Ùâ7Hü»îÔ—0–£$ºº°‹‡9üåðåóšˆDþ™gžQB„‰hXRÉH„0|øHo‚¿#þ„ñÄû,BŠžzê)%JD×zA[†O"$•1´mÛV‹H¥C„/~sˆ˜UÕçMäÏqǧZÑ9sæ8ˆ¡ü!ˆŒ_ì ùYñ¯ƒ|ÒŽ Dšàõ#Ä_“1‹Y[ý!Åt¬uÐH2®Q£F©/$DŸHŽÑ""ø÷¡„05ކbIw´01Ag"­Ô!²™kÙâãÈx³ó{k´Ü4¸Ã‡wÌÿS ØÑ> °ø)rorúb¡Æ'Nü83ý%G4&Ù:–¸‰!Ph45â+4.8õÔ'52Y’]=z ~úéÏB3Çd&’UŸDy D[à{%ÿ€Õ‡Š~äí5ÓI íÿùç)ç$þVœ“Z‘:òà äÁ¶o'ýàSE]|oðåBäŸ}ðàƒê>>^´)f¨@’ËêV ä>Aò€ÑëEsÈÃÐéVñ#>Jœ ?.|‡äŸd ä0Ó5D6•ö³bœòO?˜eø-ˆ¯™ï ð¹"r”ñiXýá¿ä¯ó勿E}œü˜Á€¨S¢+Å‘^«rN‚üeÑšÕ±F.ÞÁN"ŸÄ©Sçëo«aÃîú[«QãFÝ’€ÏÇgŽÜÜAW))Îjt3~sD{Ói°oÈGQ‚ô»âËùq*Z.½ïþ‰Gy¤– Q øÍûï…=/&e­ïŸ#Ý÷臈i~#^¸ž~½ž?Ïü|t3ûO<ñ„/RßL|~»¢™Ó¾3QÝ¢]•ïBFt³gèÜýœð-ô>…\#×áˆ1αŸ>ˆDts|Á{„à/Êùh‘\±z^ˆ«I@ΑÈuî­˜µÕÏô¶Ûn‹ø$⣉ȋ«^ëÇÃÿGúDH¾ÞcÎñáwêóD0ûèfú"‚Üã$ÄWëEOø.‚%Bt³¤ÒïýT¨P! ÜK¢qø:‰¶‰|·G4QKVf@Ö­ÛÈ (âlý¢¤¯¸1Øÿ[ƒë®ëŒûk¦|zʆ”U’ˆc8©x@ðOˆn8Eû‡©< 7'þቆ#2öÜHý&‰Œ!^ꥂ§ú`€ü3%… "ZD}¨x¦'ÿûÆ)‰—¦ƒ20áaÍxýƒŽ´¤7ñNï8¯û2ÒŽàüŽ@h¹|y¨‹ù-ò0„ø1gÊpfça!aìþ@pAvǪ %ñ'š$ΚµDHö 0¸?&1ô1]IbdªÂ ¤)`â+pOù^ù ž-/Gðb +nDHb¸¿Ò¶ðRP¡Ž'‰¼tp9+(&¼ B°b ¸ð¢˜“1ƒ/iô•a áL^X=¹Ëj{¼¸òÛ5_H-ÿWüKvVÛöõù¿Çÿî7/¦áÀ'_'Ñ8|xÛD$ÑÌÍò_Ù$ý/»®€rýõoK’ÙîbZ鯓xúé’¨õ~] åØcëÆL%~³Í›‹LS5àc#/5…áç$ÿÌõ,©?𥊕 ”©>8Æä†‰Á¬'$-S"\-?¬NC"[ÌX÷ˆKbE§éðuéŸ&Ì…Ô%11f;/¢™Qg|ÌØ8•“éܹ³¬Ì³‹ú‚ qP§vÒ]ð]&íò¡_Ìv¢ÙÔybŽ“HOõŸò}°Í±†Û‹·¿fÍV (#>j Nº§Ÿ%éM–iõÍ›“[0^Ûé|33AB8œhê¶› A!|¯|ÐK¸>k¤}áwµ#ÁϺñ„€†p I¼zyu>ÒÊ„ƒjÂ}ƒ‹¼ðähÌàI—¾²#ŒA^€"—‚?iv„t9¸«Äš/ɯù¿‚«An¦u’{Ë ÄvÍ%Çv•³pÂ<õ³–UͦO_(¾߉ƒð!/+%e_‰‚kãÎ8£‰89ïšÿLãà_Å?o„UÄ#þœGé1ÿ=¢Îà8óOZLAêìNt'Q’,‚3üçøÇ&¦D$b‘p’&#’OL;ˆúÓ¥K—ˆ>Žæ-ü²œØ!W«C— B±:óÌ3õ¼ÿÓ£G¿«>H;z¨©ÊCÙ/áE”¤¼Á«ß™oˆ‡2yôÈ"Êuãá¡€O—¤Ñ\p`G~5æ&A¢3És†ÿï¬náÉ€¤µPüDs mÆú““±Æz E÷ñÛo‹e¬G¸7ÞX.EÈ WFd‰á¥—¾Ýd¾—-»KJúÅÏŒ•CLÉ IƒPÅ"ü!3±Ä-üöL ?Zþoä‡IÌÔ­Ï,!°hÑJ! “äŸñ÷nÆŒEB*¹Ž”õh•··ÌKYe©a«œ pꜾq ÷ÂÃ’ß©?⥂ðc·•ÜpNòÖi¤p´vGÌ…ªaÜQšÚˆ1"f/Ýò'\Žæ2=Íòf²âE¤.šYþù“¸7¬Ù`ý\‚InŒ5Qûuëî-šÏ$I; 4¨ $ýO!ü%D˼m®‰®¿êªãõ%.QT—Aà&LHMQ¸¹!á”1áöxñ‰'¤Ôá¥Ã¤h @pL~‰‘ÄüBÞúMˆÀš5%ZlªÃI•¼ûî»H„r#÷È#çŠú¾fÂk­0{$«•@cæSpM¬Ô˜YIBzŸú#:ÑÌ¡XN÷€YA³‰„Ë X¤‚`¥‹ ÚP´œDK†5Ž˜ÓÑþQFz –QBìñ§é >^±´•~ž½{÷–¨úŽz)šØ/dµ Là˜»0ó{!ò“ñ®'žˆOcŽÇ¯m¾X±¢ ÝE4 7 Ñ]&ÏÉâvðh•— ©.!+vÄ'Œ‡ZËrJCßT¾løáCùÿŒù2¨Щø¯i´óøñãõFü*n ¬%+R¸ Y_¦xáâÕZXßøõ×_×(â‚0¾Â:†ìô +6¯|E`Ë–­bÖûYLxoʃén1QÞ.B2.Ö|†=t¶Ä|½CÛ:ÏÏÔñRA0ºèTøõyŸ@ÒßHD§ú‘“MIo1ûbç!¹£4ÛÈÚÚOÌŠ¤E!%ÆŒ3TSÈøx(C´IÅÁX!Ϙ³!Úø¬¡Õ…“6$,©k¸ðþ¾ûî!æ“„tÝ%)=nÖtR•+—Ó*F“ô@€—¢¦M›j:^–üqýn¢M÷/0q&áTPE–'$Ij0MbjñµÖ“@à‡æ©Æ-ÅòåkÅ ¸¶&ºn×®±+W.Ü—D3V%DkÇ8Ž>nž|j9¬ÎÞ^‹Gâ[ÖÅÿòƒà—ùÂ->|øb’­Y³¦Öá}…5pø\‘—‡š6ÈŸ„KÒZh2\Æ@.6Vf@ðÄ¿OÒéè1ëìò0áaˆo$¹ÊHÜ͘¼ÇŽõ`!c¾0®§]ú§.0Hô8}ñ¶ÔçÙëß¿¿Žƒ7‰RvÔy“O ßDLùÔÇœH.4„qäG#¹1™r$·Çª&ùç ƒªÊý©*ƶ’wô÷þû“ä3Ù­Zµ^p..&i{x' ežWÇ–uˆIôì]J `øïRÆw ‰P¿K\QøÞúïçù¤E;ø0ûU[HR/-¿M^ˆpÉà·Ò!0ÎÈá·.ã7ÇÚÐm¬Iµù]ÌÅ:Ì‹ñ„k¹!ÑÀ{ÉÎXýµ¶M€@¼h;o$‹À /|!¡ùYKE0þò wïO%׃šJC¢&ƒ§ž%)V–'Û­ÕK€@VSà$h*f‘ü#Ï—Ôɤ‚ˆ9ਓ¤ß m9cIn¤éˆÕ®OaAþEö£Et1SƒÈƒ7f*®OÕXi[ƘâÙÝ¡ˆ¯¢äµü%¸úê~’Óí–´Ì“¸ÃI‚ ¤³’¥íf"®h³#ù8…0jº+ò@ 9ÔMä EHÃDN@Ò5 ÁÃYY×N¦,Qš(Ês#”O7E^R$»cÕ‹íO(ŽåI´/H¶ ?ᥗ¾¦$oĈøIA}¢eú÷ÿ*hßþ™ jÕnAƒwÝ»‘ü{ó|Ûæ©$‰$êåA@"^ÈVveGùábµëIb¬2;—ûd…$†{_¿~“ä÷[>•/ûYM¦/ƒÌÃNy)‚ÐI ©„½’žz¯½öšÖ“è}MÆ-–=†$’”äï¢ÙÓ×¢}Ô2þ7p- ·ÉI*i¢ôØç$+‰¼%Â?€˜’,^¢í5×(‰¯!¥”‘Ø›ß;ý‡T2’ Jû“ÄœŒU³? I¢™›åÛl’u,øGüWúʲO‹¹¬˜8³+æ¯Û5„Ùé‹/~3ß÷’Onšš+Zµj ž—ÉZä 3·Øí@+à'ò3õf&‚UL 6;ï\JÌŒ¥ ö ‹àè’õáK&½Ò%—\1K³TËíyÁ%$Vš(ÌÕù‘ *ÑXý˜m#‰±q±³ À©sç—Å×kc$ÆèÑÓÝÊ•ë5ЄKñ3„~ðÁõ3<òÈýÄÏëlP.[¶t‚ÖÓ³H´&šp¸K—ã#äïL2üÖR1†üLý‘Ÿ© R¥µiä%ø’tÜ«¯¾:S×øúµÍ³š^‰TOøz § §‰*© ¢ÇêÇlÛØIŒ‹ƒÀÛo­QÇ¢¡§~¬B ½7ÞøRÜœ’ÃÙ³—ˆSte h¡ù «Uˌ󾿂²%ІÕ(^|‘Õ56KÁÁ’Ÿ”OÌyâT¾Â‰§nÿüsyh…[±¢º¬ö°2åã° C ½`Ò<tâ 3µ%íØpG.Ïœ¦Wò.ÑȤk*¨èy¥c#‰Eénç`®¤§¹çž¡îÕWÇÇlÒØ·ïX5=·oßÄ=÷\GY.¯z̺…áä²ekdÙº/¢ñ|4'Ä-7HâªUþ#}$0ƒ n#„S/åË—qûìSA¢e+JŠ—}eå‘Fî­·^bûy{Œlk«“èe¢ã± Ð%1“À,¤W"]&d²yONϰI9;x†SA±¼éŸè—ˆXqˆTPd ¢ŸhjʈÀ&ú9Q*¨TŒ5;ó+Œ×ØS¤0ÞÕ\ž¦T P‘T¿ÇmYüŠE{µÖ»¤CØ+n½t/øûïÕB€?W­)ÄÙ“CæUªTIÕê%3GH&„2ZèÉàêÕ"ÍTª´›@ˆàÑGבý ò½b„îºëöæû?|\®ÏX&.Òí†@‘GrFú˜k®¹FSÌé§Xâòá‡V|’I¯’ë} +´ˆ~?\‡}È^n¤‚êÓ§O¤éœŒ5ÒˆíÄE =qK­ È#0sæ_²În_Y§wUÂÕŠ%»H¶{ã­ n‹¯Í!äp‚šÔc-MIìÜùhÉ7vº¬+½*“ùò·`×®|_K…ñÏtï½Ë)éC¬V-ƒrŒ™>;¬cüᇺû`Ê{X†5§ÓQû[o½¥š°t*ÇL ‰ÛY}…\¤’­`»îÈOȺähÃ~†ÛUÌâ üѲ…´’Ã4,,S‰æ0ºÏ+VhÝèe5¹6Uc «°î“¯•|°1›I,¬w=æ5zôϲªÂòCÆœšÜÒVU«VpߟëLæÂ´35±pá?îÙg?sýúMÔÈìDË‘ã¸\¹]$úvS„P³E•*å#š@4€ž BÁ‹äù-,e^¾.·Û·öŠ 4P‘Ž36’˜ŽwÍÆœ×$"‰™é»ŒŒ¬å¶px^ߢ‚×ßèÑ D5O–5EóÂ…+Ädñмyf,×Uðf–܈V¬Ø(+ l‘è앆ÍÊñZ@'¿Ë.¥ÜœÑ ¢%ŒçįÜ8ôÑGçF3Ö†!`†@F`;’A<÷Üs‹0$E{êÅŠ•”.' Ù©K¢u#cy­ `›qœqžý@ê„ϳ¿ÕÝÿ²„ÒTÙO?Е-{¸|ŽÁ£á#•LÉ̆´@gž™±¤U2õ­Ž!`†€!PPØŽ$úš«¢G¶E |töØ£šëÙóy!ÁÝ7ßÌ–5HÿÔ7$ÿƬO³I\»v£‹LRÔp´ù†€!`¤7qIbzOËFoä -[ÖJ:™Ê®U«VÚÑÛ3f,r“'Ïu“&Íq_=ÛÍ»LËð;ÄgÓ‡€µ|À{çlvµ!`†€!ÏIÌç`ݧ,=xÐAUõÓ±c34¹ §L™«Ä‘ô@HR×Él$1=ð# kkÊ—Â?S›¡!=Å¡I̦v•! ‘Ì;»-Їã÷ßÿÎVʽm C w ÊßüìsSk­ð!/ÀÒHbá»×6£|D ví=ó±wëÚ0ÂÜu×]މ!`dÜOЖ½qØU†€!`†€!`´'‰dÓgy¡¼É“'»óÏ?ßí¿ÿþš þ„Np>úh¬,å1‡CvùåË—GÊX'“u*S)a|~øáwÊ)§Äü\z饩Fܶ󓸃±CÀ0 CÀˆ ö$‘…Ç'Nœ™Pªv>ùäwì±ÇÊj"ß»K.¹ÄÝwß}²œÚÞî–[nqmÛ¶•66ï°k–IÛc="u×­[ç6mÊXžm‡g³BŸ¿ÿþÛ1±¤‹º‡?Ì%?$?0ÉyZŸ†€!`†@º!cŸÄ7ºE‹ÉRcÕݼyó‘d¬ÅÈ€?ÿü³ä–Ûè>ø`]‡‘ò²e˺Š+Fpb…Ε/_^Ï¡­ó×ìºë®‘z´ûã?JÔè’èyáÙwß}#åì¬ZµJ@³å·ß~ëöÜsOW·n]­cÝÇÊ•+K*“îŸþ‘'MÜN;í¤åä…ܰaƒ+]º´.N>†¢ic}Ë/¾øBÇËE]ºtqÇsŒ»úê«Ý›o¾©u–,Y"ɨwW/s‡Ò6eÈœ9sÜ~ûíç^xá rØYÏñ‡9Nš4IçдiS%sœGûÈ*T¨ ùú¦ê5t.–N9Þh Y“e´â-°NÝxÀÕ©S‡ÝL>ä¬V­šÞ/ qú£J•*iݹsçê}=ì°Ã"ç|#óçÏ—´0suÎåÊm[q%¿0á{9}útW¿~}Y¯Š¦m CÀ0 C „ eYÃO—ÒÈt2ÁÁ×_­õ?þøŒ%8dŽæÍ›'tRä¸Y³f´à¨£Ž Ž;î¸HkB‚%JÏ=÷\ ä'Òa $Ê&-W €kݱcÇB!>ZÿÐC „@j™,<4nÜX÷;tè‘ „„Bl´ÑúiÙСCõX´‘2ê ±ÑòÑ£Gkù˜1c¶;“°–5JË„œB\ƒOù¤²¡Ú@´„o¿ý¶®V±cÇŽNMD£öþûï«Æë¼óΓ¥ÜîWm$š,®C㇦ ZçÎA'ÄÊa>ý믿âò_!–îÙgŸuëׯw¯¾úª~† ©– -âÌ™3ݲeËÜí·ß®eh%1{ídøXH•Ö9â–jË,„£õûý÷ß#ŒsöìÙÚÏÉ'Ÿì®¸â ‡æÍû2¶š5kFê£å’å„L«¶ „P» /¼Pq¤"óºêª«t^÷Üs§Iʘkõ.^¼Xµ©hÎÐÆ“o¼Qï÷Ã>ûì3ÕŠÞtÓMî±ÇsBլަ”sÜÓž={*¶˜ÉûõëçXœû ÞÜgpfnÜ·Ûn»Í}÷Ýw‘!ä%&à,Oï ÷˜ùÞ{ェ¡ Èv CÀ0 C !¹FEcåªV­êÚ´i£^~ùåj¶ôÇrU‰–É 2Dë 4ÈA¢0Çb~ÅßO´VjJ&¹#A!S¦LQrˆI·FZïâ‹/Ž;)L­—`n¥^íÚµh"#õï¾ûn5W|B¹hµŒcúöä-|¼víZ5ã†Íß‘e"¼¼`††dböʧM›æ‹·Û2GLÐ\'Ú/5ï^{íµJº1#Ì£[·nZYD º„í™gžÑcˆ7$3q<Á|ýñuñµÄ¬.ša%˜ÑÁòƒ>P7®]»ê1C ¹çï¼óŽšî!à˜Ã!ô¸àÿè%/1+ÈûÍ7߬ä–{>kÖ,=çÇc[CÀ0 CÀHŒ@Ž}}ó>ðŸ8Äû¼ù¢‹U2Ht-šž³Ï>[ýû ˆ'Sh"ï¸ãÕ*öïß?¢u<òÈ#µ¼¶/r"´A ~‰ÞóµjÕŠ‹yW iäDœ,Q¸]öÂÿ$Ú4‚Z¼„û $<_ÏoñÕDÐHzñ>tK—.ÕSŒÕ‹÷c³ªžs¶æƒøá«ÈXI¯^½"÷'º>™h0ÅäìÄdÁš1ú{ê¯("ø!âOyúé§û"õ1õ÷ž“y‰‰¸#8qaÐËêAÖ!Œ=zôˆŒÏv CÀ0 C 1¹¦IDÛ”Œ`ÞD{÷ÒK/©¶©]»vz™øû)ÑÁ”Lð‘·EOŽBð6íús~Ö aEK&•árLªá2ßFôùE[-˜i1±žy晑¢p&LÐó‰úñ›@/`€xÍf˜pù:l!Ÿl´‹¸ =üðÃÃU²´ÄTM€džû‚`þÇÔO€ 9ÆŒŽöm¢ø Êrtó#°:çœs´.òÌÜO¡½¥_´ŸÌ‰ñ™†€!`†@r$Çì’k+©Z§všÃlÛ½{w%^+öÊ+¯¸ë®»Nýцa‚FÔ¨Q#RÆg3*æÌ¾}ûÆí r…v/™öñ÷ó&o.ÂôH;˜º%XEÓ×pDÿøF£=Ä|þÔSO©dÂ1`Àõé;äCÔt­Ê´Xø1BR¸39QÎhúLÈhV½ ADs‘áƇ_~ŒÑšKMx qƒÄ±%¥ ¦aæO éÇÏôÁ‡1áÿI¤9Ñáø#’î‡ñ´oß^·` aG+‡iÓ4D,!•àÎ<¨O´´—¼Ä„ˆf4ÕtpA ÉGKjb†€!`I"’“Ýèf 6ѦD˧‘¡D=#’–F‰.öBı /ü†þ”Fèí+3>RˆVLËÅ·M#–¹†¨Z1=gŠn–T6Zèf!U‘ºDDû([Ý̵´CÄ«Ö@̤zm¢èf*ˆ 7€‘Hd´oC´e:GmDþÔhk"|©CµŸ§¤íÑfÎ  „>/$y$må¦0v4‰Ñþ‰ôv•wp'§£—üÂíêÕ«Õ×3+X]Ž6í*>&†€!`†@D``®®$¦\|ø0-÷îÝ{»K0 ’ú%–`–Æd›ŒÐ>iñ$:¸%^½Xç‰>Nf$Ôæ-¦xfOæH‚ïì¤3L<}ÀLvÚJt ¤3Aäªó‰'yI4A7.;o†€!`Û#§$‘ü‡}úôѼ~äÌ® Œœ`•X"B:^H¬k²sŽ>Âd-;m¶kŠ&³f-ŸÛÒ¢ ßþ¡°ÝW›!`†@áF _ÌÍ…R›]º#¬¹yݺMnòä¹áý‡¸Iü¡Û5k6JÞÈ.®E‹Ò¿!`†@ÑF oÍÍEk›}º#0wî2%‚ß?ÇMœ8K"á—HDy ~¯%Ä×ukÄ·Zµmþ˜é>g¿!`†@ÑE OÍÍEf›yº!P¬XI ”Z!«Ø|.ZÂßÝ7ßü.K®—`¢b²ºNq!…‰Ì™×¦MÛö9®V­<CÀ0 C ­ˆK‰6)Úlذŭ\¹I5dÄÀûOFBíb¡óÁe[P£.Z¶J•v–åüÒ'?!ãþøã?ÜÞ{wu>øµÌ¤˜ÃŒ¹0/æ´ukfRÈy/eËî,Qåù0ý9Û†€!`éˆ@\’H“¢@±b%\¹r-$©yrQå±ÐZ¾|ˆ¤ý™«¨@Ÿ+UjOYWüFYýç/ÕB“‘råv–L߉6±‚~ªT)¯æèd®µ:†€!`†@AB`»À•‚48KÁ@à½÷¾—•fHË-ªIKvTåË—‘dz*ÉJöš‚VhåÞ½GÉê2“dÕ–Ìfæè±+æDY^VšY+y=7k1Ñô•*•FLÑž@²­Zµ¼¬(´[tS9:ö79jÄ.6þC€¬¬HebEF‹Ü=ÏÞ„§M[à:uzIv¯É䯵R¥JÈ’…GÉ}ÛÖ´ŽW7ÎÏ›·Ì=ýôhYŠñ[%½aŸD?þðœÁiÁ‚ä³"òY¸Ðÿ#kn¯Rs=×–.]RRæl#GO$÷Ù'ƒH–)“¼ Û“D–PL&§§¿m hì¦L™b$1;6ŠÝ\4îsÎgÙ A5÷ùç·¸.]Þp_~9s‡EHÔé§7ÎyǤ…5öp=vž»á†Ö²6÷ç®_¿‰êw‰vÕ šD´²Çe%_fY!iûøâL[ðY¼xe„@† åÔ©¬\³BVÚ¹­¬'ŽaIU«VмŒÕ„¥yóæ¶bLÛÏ2h!‰&†€!P4ˆë“X4á°Y'B¢BÀGùÄ=õÔ¨„¾z*”‘èàŲ:KeY¢¯L¢fÓª ‚†vôúë[ºçŸÿB–`œà¶lÙ"¦ø­š"—Œ u¬^½¢~âÕ_½zÃv$m䌋dYËŸ•dz’JÄõÞ{ï®D²R¥2®T©í—}Œ×7 CÀ0b!`$1*v..øØÝzë©®Q£®k×·„ý«)|¨aÃ}Ü=÷ uwÜ1Ø5o^WÖÍn, Ýn»í®š¶û{íUNæwº¬!ÞÒ½ôÒX÷â‹cÜúõ›ÕÇ0·&VõêUÑO¬6Y_ý¯¿V ‘ôfì9gÎ’ˆ);ÖuvÎ0â#н{w׳gÏø¬ÄH6mÚ$Ê‚R9©‘ÄCX4hݺ5ê&ñS|ÙÍ›·4QÄ”zûímU‹øé§ÓÝLv7ß<ÐÝrË@wüñªºU«ú…"ULÅŠ»*i¾êªdMòqnß}óNƒaG{ȧiÓ}#_D|ûõë9¶CÀÈ5jÔ÷’Dzv‘Õ6 ß}÷{ôÑGsm$Fs Ê¢×PíÚ{ºO?½QL¯oKnÁ©ê£ øÈrHu "ŸU«6¸O>ùÑ 6E´oý5-ÌI'ÕwíÚ5v'žxPÚ§‰!õM·n­ŠÞ—ÀflBÊ—/ïÎ9çœB83›RaG`§v2’XØor:ͨۗ^êìúöãî»o˜š9Ï>»évS€DwÞáúY¾|­>|ªh§¸Ë/ÝíºëNjŠ&ÐåØcÐT3Û5`' -sæÌqW]u•hb_‘Œª)›g‡ÜòåË3µ_­Z5wÚi§‰vûôLçsûàòË/w-[¶”ïÿyÿÏÞY€ÉQemøÆ]‰’„¸;ă… î.Ë.,îîò³Àâ<—Ø!žâB î!î.õŸ÷ ·S3L÷hôœó<Ýe·®|UÝõÕ±ë¶oß®~¬åÊ•s7ntçw^²æ*T¨àºté"/S×Ëì>E’³ CÀ0r™KÂÄÈ:×\s´$‘¾NfW)#ÜCcVH™‹.êæ>ÿüŸnòäÄ}‚[°`¤ÌyC4÷«Yz̘´#¨c6bó ˜Ç‡ ¢ä)ž6l˜[»v­kÙ²¥~Èÿ7}útÑtŸ&/:oƳi7bĹÇhW^y¥ÜÿéúÎ;uì%J”—Ã4eѶmÛD+}“»á†âÚ§xV΋ ú&†€!¿0ssþ¾~yª÷ݺ5rÇߩɣÓÛ1@®¼òHýðPA»ÈçÃÇi’é“On§>Œ;ÖOo•V.ƒìڵ˭\¹R"­ëˆéI½³UZKš£ýî·ß~“sv)yÁ zݺuJæ(ëíÜŽ;$²º–Y³f)«Y³¦/¦õÍœ9S\ ŠK0N3 °Yô7Í!ÎÖ6lpÕ«W—(îßUÓv衇ê9T´zõj‡¦>BðÈyÐAü@éka™G‘¾Ø ƒ€±9ú裓™b6oÞì4h ù/?­öUZ†¯¥K—ºÅ‹kýåË—ìg…:ÇŽ«}lÑ¢…Ã7”~¯X±ÂáËæÛb»T©RÝ âü àÅq_ö /tgžyf¤Ò}ùå—’néåÈ>Λ8q¢øú6þn©õÉŸÈÁëS·îßU<»–ÃAƒ¦»¯¿ž"sÏwO¬æìéÓ—f¶z;/ S§Nuõë×w½zõRÂñ:òÈ#Å ·’Å:¸£Ž:J"Ù÷yÿÐÕ«WO¢ªWEjc OH¤’s "˜o!L^Cñƒø´mÛVÉc×®]µÍŸ~ú)R+ƒ–@œÚe)×®];·lÙ2-9íÙ³§´ã?^Û€Ly”Þx㺉æ°téÒnÔ¨Qþðß–ÀÊ•+»’%“¢î!{—\r‰Ö{Ì1Çè±§žz*rÞóÏ?//AUÜé§ŸîZµj¥¦jÈèøñãu<d/˜±S?Üÿýî»ï¾“ ¯Ügœá‹&[îÝ»W5žÔïåž{îѾœrÊ)Jöºuë¦xs;9' W ¹Ç޽GˆâÍòj#þŒÝ1Ç<-’§„ÔüO}s¢/‰ÜÚ*Gúôé£Ã„\@Öü6ä 30$ Bˆ@TŠ-ª³-¦×Ûn»MI&$gÞ¼yºéÝÐb¡,S¦Œäϼ[ÏöŹ˜j5j$åË”ˆú²×^{­?´„ôBŠ9yðÁÕÇuÎE ˆÍ šKD|n½õVIÿ‰Ž±}û¤ÙØÆ¼Í¸!Tì/[¶¬ú ¢md?6<˜1û„BIVí)>’˜¯©ÂŽHÕªU• Ÿxâ‰bŠ™ò«Oy4£ø\rè+šYˆ|FeåÊM2îQ¢9}^4»ýÊMš´H_Ð £9 ÚUÓ$†‰ß:/ yQÉLOpóÀo7°à6Á~¯éËÈúŸþ©–†·ÞzK­ÿùÏôÿ‚:È¢ÿ}g¤Î¬”å?…qaeð>Ìü7¾ÿþûúû„ÈÅKÂ>ÚXp§ÁŠ“[b>‰¹…¼µ›)Ú´©#f­:¢Ñ9Yµø/¾÷Þñ3¬ ¼‰&­s›d ˆ éC AÄáÁ%|饗:´ˆŸ}ö™š\ñÄ,¦ŒÏqǧ¦^ˆÎ< „¦sçÎz>_˜¢c æo/ÕªUÓ¶üvø á!–¹îºë’ù$¢¼bì±ÇÔ‘a8Ú™t(`€Ÿ#äb †€~øáú0I­mHYz%¥O"ZFLÊcÆŒQ\1¡Cîj×®­.þÅê>•ˆ’ñ}¡ŽôÄpÚ´B.»ÉƒúA‰´.!ƒh c ·ÊÈ‘ˆ¦s§žG‚}Îg y,Z´pd™Ú>Ê ‰$º›eÒ9É÷ùû2V?râšf]âa>iÒ$}ážåú3¥!ä‚{¿QÈæüdïÌË×2–o)DŒ¤ -;ãÇõ!,±|v¹_cùû¦ôáE‹ÅÇ»b„Û‰µk Ñücy¹ƒìâúÒ´iÓHõhÂyQÃ*ÁýÖ`æ}é˜à†â3°M K\Vü~ÆÎ¹\ÜCÀœ A/ÔÅK¡—ÿûߪÙôÛ_ýµºšÐ—k®¹FwGkÏŸ3yòäˆ_7/Èíð¿âÛ‚ò¿CŸ¼ÐWÿ¿)mذaćٗɉ¥‘Äœ@ÙÚˆ ³ðyä‘ÓåMzž¼¼òÊ01§}'¤õäAß^L;Ñ~%<ˆKg RD‘ÖPðÇC›±ÂÔŒ–ÁJÀ oýøæ¡ €xñGÏÃŒ¤éë·S.1µx28zôèd&cŽyD!™ È€Ì⃉iáN]ß|ónóŃ¡yóæÚú†?p–f´^É~Ò€æ5³âƒeÀ ¿BÈ,æmü:y(ñ€A8­O†X¡ãÃoM!pÀ´&ˆ´^¸€1÷-/œÜÃ^sÊ‹È8¾Ë¸i0F\+x‘â‡ß//¨Ï>û¬þ®ùmr=øçŸÖáðÒ[¯^=÷ßÿþWÿÇR#ÇOœcµG`î#>X ˆ/2î$}ÜX°h ¯¾úªZ(p¯ñ˜ü}ÂuÂàÛ÷erbi$1'P¶6⊢ݻ7ÖÏãŸ)¦Î9òÇ0Yµ‹>øüA4?Žöò§ÛVÞ“ÞäâÚ¡¯œ·aþˆyp¹‹ÿ BD3|FÌšh"ù£FkÂáÝwßU­äß¾XBݘƒ?u&<à{ôèáðI䡇f­%A-3ú1ä! aóZWü91có ñ„1e»œÑEäeÆŒªÑÀt;a™æñ %˜˜Ñ^òÀGB?üqæA ŒÖ'ôàÈó>õBØ!¶´„i![´(!å1B$ÆÊýW1Ï—ño’qQÒ«Ž—_¾På§,ã cÊ%óŸC"ý2‰TØ&›þ\_>Ö1ʤ¬ËïóõìÚµW49»´ýíÛ“4æ)ûk{©DÃs/’ó­ð+¯¼âÐŽA¸Wx¡B«Î5áÞòÈ%ׂߔ÷wåœQlu´A† ŸDê£Hm@Sï³ËýŠòÅïÏ d…{w…îÝ»K°Ñ]z¥ôáõaþ¼´–aŸÝ”cÀJÁ½G>Ô‡~XïÆÇô‡G~+þE+e;^$­KÊ\*ÜT Œÿ_®Éü¿^yåþ‡°âg‰/'$˜ß„˜ß¹Ly±Bøÿø#\cü³±‚øÿ¼XíqÍ íô›ÿ þ[ø?H§G ±Ü+ü—aÖç#WDTÌ&†@B" üÁàÁ3‚k¯}/hØðö N[‚óÎ{-èßÿ—`Ó¦ 9f%žr˜DÒ5FÑ*hy1hyùSÓmö#¢ÕÐmy8é6_…¬ûÄ Ù')ZÑRè~yÓä7é¡ô¸üIò§§Çè›<œt}РAøþ麼E´Áq_VHf Q˜b´!EíH:¾äAÐ÷°Œ7/¸ñƃúõojÕº)¨]ûæ fÍÿö>ü÷ðiùf]^ yéHwo¾ùæ@I¤¼h½s~7ˆD½Þ¬‹?«Þ»ŒˆæJ×ÅÏ-ž@´hø¿ls/ŠÙ6­q /hÛ"÷õpß‹¯.«zñ›@ø} Óu¾Dë¦÷¼äD~[B "Çå¥J®_íÈv´ äÒzäE0YÆÁ½õÎ;ïăhRµœhí´Oô‹{X,˜˜õ˜¢duû ÑêëqÎRÈ ¨?ˆvM‰Ö-r¬ëüæ(ËGÑtcf¿hÔõ7NÌñ D‹§õ Y×ÿ6Dk¯çÉ d Öýð_ÀX%À,—¹4Û[ÿÿÁ¹Æ|þÅÒ¢ë|I`Z QÝöxð(~ÅÚ¦?/rBŒÿš‘sbT÷©i媛$&Å‹‘hèVúÙ±c·¼þ&æ†É¢íúL4NŸÉ›z35I353ÇTAó&‘ácæ ocª oSDÄûå°ŽÙˆ¤Ñä7D«€I…7sóZù#×7bü€¼?Z@_?ÚHMÊÉÙHÞòÂ6 &mL7a G$ãë¥ åSÌ|aAŠÖM æ¯pžC´r˜áÐ4`Þòf\ÎÇìL  >ïßéëE«éM𴬩aëËù%Ó~o>/$¦6Ì„ø‚Fëš4'hVÀÑ›ð}Ý™YvéÒPLu E£y¦NµùÉ'¿¨»>‡hè¼àwXPÄûÈ1^®+Xû{K‡¿I{ä͸ü6„D¨Z¢hþ®ü¸×Ð{‰åӾƩùì†ÓO̬i‰ ¦Ó°xm8Çc!–¬×òcNMMв#á~ûrhؼø6ÐÖ½÷Þ{~·þFð“D0M£iDø¡D[GfÌÎh Ã2pàÀˆO"Z~ïfCP›·>Dkßeðº€&­âG}¤.#á6XψÿrÊsã½m$1Þ[ýyR¥Š‹º¿~0+14A/Ì;éŒù£1I³,QÂ~±.fcÑèlJ’Æy©íc?K" C§%¾ljå ©ž¨¦v<«ûøC瓚ðp9B|SOàR;Þ&žáý±Ö‰~ æ4/±ú„/Ù-¥JSØaúÁMÆ?/æ¹µÚÁ&E¸·Ó#ܳäÏ„˜pþ½¼`ŽÄ,™š¿+/Xøû†…²øÏ¦&Ñ|v½Ù4–¿ojõ±Ïßk¸]„ï}ÑÖé)5†Xþ±Œ“2d‹-ÜS uaªÇuƒ¶£èÌ@IDAT+~3`&²H7yqòâñÀœ‹9Á” ùKéëèÏ¡æhÜè&áh©Ç•„²˜¯½‹K´öÈùŠ« ®#øbÚ†,òL]áq„}£µŸ[û Ϋ^n!líæ9pÈ?묎â—rµDo>,¹üNíâ»óž8,ß'sæ~$~pDÇ¥ßI?Ï 2ŽÂ÷ "ˆßUf?+ü}†¯²ƒ/N´‡.ÇÒKÄ|¶Œ?5jT‡`OÑ(Þ#/`7KÚ¢#ħ2IcÿÖóW R1ákë#Ͻo)~¸hÃþ®¤œBÿú믫o¿»X¤?\Èþw)}vA m8@ü!éùÿ´Ý‰xÿ=4ì>UZ<È¡¸Lh0 D-¾‡¤ˆA›k ´AÀm£¹ä\s R)hñÙ÷ RÁ2qÖYg)Ñã8‚ï/ÖH6cÄ¿Ñ /•ô ÑôaÑÀ_?eˆgja÷þ ´…f7–øÿ´ˆiµGª,ð$’™ÔVœË˜Æþ·€멉×3¯N­\\÷IÃ&†€! H’`ñH’`ñA¹Iü~în¹¥0bÄ8¸çŒ2ꓘofÍqRóIÌñNäpƒõI”ô,êc뻉®hÖü¦úëáKêVq·Äd,ÿ+ûü¥ø%Ê‹“ú§‰‰8¨W¯^2ŸDü[!Q}v½¯Z4ß”>¼âJˆ3Ò?qå$åS¤BLÔ¯VÜ2"ebùì¦å+QÖâãZKÇHÝ|ðÓS¶úáâ—,äT}79†Ÿ&~™¬ã“ˆàÏ'ä-R‡Xü1|=Nºã¯¯Ë/¿\ˇ}›EÛ§û$¸%\T}Dñc3µîÕ~´Ïuãºàçêû‚Ÿ%>Íôk‰Ÿ±÷ý ûhã·Êõ¦œ÷d}‰¶á¯svù$ÂNM C Ë–m‡æaÁñÇ?«ù¢a dʱ`üøôýPST—£›Fsî„nÌHbö_^ˆ!1`â[!˜ráƒ^ü~–0f¤øÀ•pȈøÕiðZ8@…2ž<ˆÏ¬‚N2#¢E“ÿÁñ¤15‰5.ÁqÑD4ŠŠhÏ4@D4œÁõ×_¯ãæ‚F8Ÿ ³Ô„ñ‰†.ü„ëi‰hC5€&­rÑŽÇjc’¦Kû›ò|“¼IK(¦é³‹$šó•PtC %µjU'åúÁÇêÛo§jZ~ýFK"׊šÆvíIyªmy;÷ˆ o³øm–)Ï6I*•Fb ;@8Ow>Ÿw3³Dôë4‰á /?,L’aŸ?¿Ÿ%©šø¤GÒòÙåï›Výiù¸ÆCZçÒ6A9áÀ|qñKô‚+JjA,þ8CäkMK0«s=0 §7-MjuÆjcÑRa÷A;©Õë÷Q.š¹Ü—‰çÒHb<ѵºzõªˆoɱú™;w•Å)%ýÆÃåÏì &qw‹©;’'6ˆ<>´«V%?–“@!ƒË—¯—Ï&!'›5  ÜßÜoÚ2ÎàˆôDgVð½KéÏK]±|v!o±ü}3Û—üz¾‚øw’'òâ‹/ίÈ{¿ ¡ÂŒ{+Ö€!€̘±L5ŒDI/[¶^œ‘«Kt\{%eþU¨pªNí’Õzíü¼‡@Ñ¢%ÊûXI»RE"&“;Ý‹aN€ø{'ò6õŽ{×I Á1†&'œÂ'fá8HRkÉ ¨Á 0BC€Ù¢üd¤%Ê¢ 0Mb´Ó .­[3nm™Ë÷$™•b±j?üpœÌØ1D¢ìjE4Œuê˜4'Ð"‚Žé®L [·î‘èÈ2ïmòv… ¥N =*EŠ’)ÚZ¹3Έ}¯øyþ<[†@ÁAÀ4‰çZÛHsóãÇ/PÿÅAƒ¦K2Õ­’΢®æ`diR…˜ñ@à‡fI·O%}ȶt¥oK³¤U¹TR ´Gwòm¦IÌ·—Î:.d·&1ö«¦AnB¯®]ÊÌg‰fç!I.|­kÒ¤ºh‡Ê $Iâá—d6€1J3T±6Ò@ W¯–n̘{$9p-YDf@‰%8ýúëÉK÷{2?ÅXçØ1CÀ(X˜&±`]om.!°gÏ>Éüÿ»š¤‡%ÚïqÝ»7V“ô‰'¶¿2K<œK—&!›ýå—2{ÅÇâ+»ÁIŽÏTÇHDsÅŠ¥%yòj¡ÄE¢sç:å^§Nõ lÄ3šÄG}4UÌl§!_`F—ìðI4’˜_®¸õ3aرc¤^øMMÒÆÍÖ‡øQG5S“4óH—)“úì € $Gؽ{ŸÌ;Tf øI‚Z %›W™©(™uèÿþï‰xÞê~ùe¾|ègÖ¬Žyj ¾bŽfOkÕª”#ýÎíF˜Ñƒ¹¹M üŒóQcÙÊ¢ 0’˜EítC +lÛ¶Ë :SÓêŒñ»jtŽ9¦¹ÆCݱǶi¢²–•îÙ¹ €Ào¿­Ð9Êgφü%%³€4>÷ÜyJSqË–nâÄEJñ¯:u‰Ì3»×A=adI4¿‰!`$4FúòÚàòÌM° ‰»ÇŒ™«Í"iuzôh&¦ƒ"ùj<ÖÙ¼ƒä¼žO=5HƒZ0A¯æùL«—»víuS¦,V-£Ì8¤’—ÌÕ˜¥;wn(Ç®U«Úª±L«>;nù#‰ùæRYG DE÷ÝT%Œ˜Ë—/éN8¡Æ#Žh¬Çˆ 6[X²d»é¦þê‡H`Uf‚9kÖrâÇL=aÂB ÄÂM¢cGHcýÕ_¢„eYË ÆvŽ!G0’˜G.„uÈŠÀÊ•›”0~ýõd5ý¡ÁéÓ§­ú0ò@mÛÄD`Ú´¥®mÛ:Ù68f"âeM#ËåË7¸âŋ괕hÑ6B Ë–5ÛlÝ*2â€‘Äøcl-Ù‡š o¾™ªQÒøš‘w‘ü‹L xè¡u³¯!«ÉÈDOYΛ·ZLÑDP¬ZFb:uj sÛœÑY€ÙN5‑Äx#lõñB€/S~óÍd}×®]92ËK«VµâÕ¬ÕkdÜ'|ô4KÌÕ˜­6LA]»vÁˆ Î0€v‚!;IÌÜ­UC { mÉ·ßB§8´<| x9í´ö…š½P[mÙ€ÀÖ­»$faDÛH52\1¢iÄ•¢I“ÙКUa™DÀHb&³Ó <‹À”)K”,ø²råF×¼ùÁ cݺåÙ~[Ç .Dˆ¢÷k$ÏÖ­;]åÊeÔ, aÄD†<­™d .Š6rC Û0’˜íZ…†@B€‡./ß?M#PÛ¶=Dµ‹ø1¢µ11ò"¤ì™9s¹ÆI¾1YAÝ¡C½ˆ¶±]»C,—h^¼€Ö§DAÀHb¢\I‡! º£GÏUÿÅÁƒg¸M›vh´)/'ÔÖU­Z.ÖévÌÈuðÁõÁ0G¦$‚š(m?3 ÔåÊ•Ìõ¾Z AÀHb‚\H†!n˜GzĈ?Ô$Íl/Û·ïvݺ5ŠÌ#]©Rét×e ÜB€ê$ó4Ó Îw¤á!‚ºE‹ššrǧޱêܺBÖn `$1.¢ ÁÈ4;wîqÌýõ×St>é½{÷¹#Žh¢ÓöîÝÚòÚeY;1§X¿~›’F#Ó †#¨}‚o4ŽuêTÎé®Y{†@~EÀHb~½rÖoC »@£ˆf‘éá×$ÝÎ1ô©§êzõjéJ•²y¤³s«/~0u௿&ÍAÆ‘© ©Y³¢N#H‚oÈcÓ¦A¿«`5çsŒ$æó hÝ7â‚ÀæÍ;ÝàÁÓ•0Ž5G¦W+æŽ;®¥¦Õ8/nóHÇx«4nìÞ½/25ÚF$Ô•*A]?âרºum‹ ŽÛU°ŠóFóÙ³î9Žf<¢£Ñ0¢‘aj5Lѽyd{ æø±³‚¹ÂsPsoA]ºtòêöí-‚:;ð¶:ò%Fóåe³N¹„ÀªU›%i÷TMÜ=iÒ"Ícwâ‰IóHwíÚÐæ‘Î¥ëbÍfDP'Ã$¥ÞY¶l½FP·iS;¢iìØ±+_Þ"¨³q«%#`$1_ ëž!g ‰ŸœvÕª•Ì#M.;C ¿#°|ùFœöÄÑGP7oNuR‚o––B*¿_iëŒ$FÆv†@˜?jIÜ̓”9xO>¹½š¤Ñ˜‰€ÀjÒî,„ßËtê ª*i$†Ô;‡b3%Âõ¶18#‰v†@ö"0{öÊÈ<Ò‹­uõëW•€—všVÇ"I³k«-w ‚š)}’o¦$­T"æi4ÍšÕÌÝŽZë†@æ0’˜9Üì,C `!0qâD÷ôÓOgxÐ[·wkÖ”rk×–’ô#E\… »\ëÖk3\~Þ|óMÁ¹BúO°’Ù†ÔÉç ^è¶lÙé*V,­sPûßDP-Z8ÛÚµŠ 8!`$1NÀZµ†@B!ðí·ßŠéøT×·o_‰fÎ\ú›Í›K¸Ý»‹¸*U¶'6ye0kÖ¬‘ü–ÃÝŸþéªW¯žWºU ûAõo¿­ˆh1Q¯]»E"¨‹»Ã;0uûöu-i¾Sòìà$æÙKc3òž$îܹSr&–ÈC=³®xF%)‰Ž4’èÉ£Küwý¬0,—.]ïŠ+âÚ´90u§NAG/_AëÖ€¢mÄ6^CÀ0 C ·hذªãsþù]´ +VAóóÜ+¯ ÓTRÍšÕÍAÝ@³äVŸ­Ý‚‹€‘Ä‚{ím䆀!`xðáüá‡òÕª9™¦°Ã5cÓ¦Íî³Ï¹~ýF¹ pbŽÞçÚµ[%î²abd×_]î­J<Ë9óœÍ0dv‚!`†@¢ 0yòd7bĈ<3œbÅö»ƒÚ!Y6 )\ãºv]éZµZ'ÓÛŒ 晫”:²víZyÙøÌíØ±#S6Mb¦`³“ CÀ0V­Z¹$Êpl†@1cƸÃ?<²Ñ#‰EÌʆ@žGàƒ>?¯_ÜK/½×¾^pÁnýúõÉÚ¨U«–$?Y£Á“° CÀ0òfnÎg̺ki#ðǸ±cǦ]0‹%† &)MÖº–-[ê§I“&núôé’8ü4‡¯›‰!`ùÓ$æç«g}7ò(»vír+W®tuêÔqK–,q[·n•$Ú­Ýþýû%oÜo’X{—¤üh#©?Šéñ²e˺ʕ+GF³lÙ2ǾŠ+ê>üÆü9eÊ”‰”£^HYÓ¦Mű¿”$î^ãêÖ­9ÎÊæÍ›Åñ?Üt¥Ý„ džÝª2‡ìÞ½ÛmذAó þþûïnãÆîÐCuÅ‹×ã|ÑnáÂ…µ¯ÔãÓ±9úè£Ý3Ï<£ë|Ñ^ƒ ܧŸ~ꮺê*ÝϸgΜé8€ ²téRW®\¹È8-Z¤ë~Ü”g,L CÀÈiL“˜Óˆ[{†@@`êÔ©âx_ßõêÕK „~½{÷V’Ô¡CwÔQG¹={ö¸óÎ;ÏqÆT zõêÕsü±@Ö)Û½{w™Þ¬™ƒÌ!#GŽ”9rqGq„’<Ê ÑK)×]w8ÿwÇÿî˜cŽQByÅWh±Áƒë~ÎmÛ¶­–k×®’9_OÍš5Ý7Þ¨›h!›ä$Œ&åË—WÂ[²dI- íÙ³§kß¾½»ð ul÷ÝwŸëÓ§û÷¿ÿ­ë .TÌè/Ãÿýïºm_†€!`ä4FsqkÏ(@@˜–/_îž{î9%VhåÐŽAǧZEˆ„oõêÕŠÌW_}¥š»sÎ9Ç=òÈ#ªuÛ´i“žÇL"¯½öš’ËK/½T‰ä óòªU«¢";{ölõO$ÂïwÞÑ ½àGˆqîܹnݺuî®»îò‡Ü 7Ü d—h)o¿ýödÚJÚ&èuŸþùnÁ‚ÎчzHÇ9oÞ<õ_|ë­·Ü£>ê~þùgw 'èØ©›ÙRÂK0)T¨P¤m=h_´Óh©ã-hüq›¨]»¶¾Xñ2Žß»wïßüq³»OüVx±¬R¥Šä–l¨3>ñ¢–ÓüVß“N:ÉÝqÇúßÏþ`] Ý+Vh3¼tbÉ)1’˜SH[;†@Dàž{îq|°Cc†ð€ƒùmÞÙgŸ­Sý}ùå—Z†t <:è }00oôSO=¥¦dˆ%¦Ý)S¦8Îýç?ÿ©ÚD —]v™žŸÚÑ«h,1Sspøwÿý÷«¹ºQ£FzÜ6êzðÁõaÉ:Çé ÚM/?ýô“»é¦›ôsë­·ºO>ùDLjæa\ýâÅ#,üöЬ3Í ýAèоóÍ7îÞ{ïu×\sö׋þýûk9ÿûa<¾\$¸¹·lÙ¢uñ…ö‹9Å)G@m#ô‘íÅ‹ë¶ÿâÞñÅõ…ÿ~c·Ýv›âë/cXШ…Ûç|4n´ç…qá·Œ_ó¾}ûüî¿õ‰>¤ÌTÀ5ÀÂàmêÿýßÿéç7Þp¯¾úªç7ï%Z{þ8/?þø£¾ ú}´Ë~/ÔÁ¸Âýå/“`–`b$1'P¶6 Š€îHkøA,+4§œrŠžÂL<¤x Lš4IM_wß}·9 „ÿXciW¼©†sx˜£‰ “ÊðñÑ£G';Æ94ø`Ο?_5—RR^¶mÛ¦&*Ú‡<ã·‰F‚¾‘<ÑpšF“¼…Àc=æ;ì0}aéÔ©“ƒ8¡ÑæEƒ|t¼ í†ÔñRóöÛoGЯ_?} €Ì=ÿüójF=ýôÓ%Yv+M›äÉšm‚›x‰à¥2n)…2Ü/¸aüñªU÷ùX¾¸Ô“Ò¿Ökå9æIdÆ ¿e´ˆ44úÞw¶yóæzïâ§Ëx±ðÒÇ:ÄyöÙgõ>gœŒ r÷á‡*v~¡™§ÿZ„ÿÌÜÞXwÊeO?ý´’[,$ÜÃÿ¤Ÿ‚È!c~‹øwîÜYë$5’²Oçž{nTßh=!•/oQðþDZڃ c!áwÅjŸáHÖ6„•q͘1#Y«;vTâȽSÚT#‰É.m†@n À;QËtœuÖYÎÿéò€ÅìÄ}‹-TëHàZEÈ>‹¼éc cÚ©hÁÄ’‡3¤“‡”7yseêœñ`Ä<ì¿#ÿàÅÿþ@c >TþG]øY~ñÅÚ.ZQ„q"AÈ02¦Íâ¡Oxñ6É{•Ž‹Ú´c=VØ&®9îžä@úÑ„yáþ¢¼¿×¹9ÿS‚¨ÐªA|؛ڸ—_~ùoZ@_K4—ÜÜ¿«¯¾:¢eŠå‹ Y û×BÒ|÷,Ab˜š!3_|±þ¾ £ü{ôèÚHL¯”!@ ‚ɘºuëæ.ºè¢ˆ&•è~4êüù=㳋92M?ù ã«‹@¶Èà-ºó¯/ö—(Q"]&w4ód= ~´–zÜN<÷‰þGóöíó;õþÇLÆ>b$V{Ühy™åè–[nqø+û¾ø6b-yY^*S{iˆunfIÌ,rvž!`d¯i„â…yåòË/Ô{çwF´~˜eѶñÇŠŸ ³Ñ^@¬xø`¦ ‹7i³íÎõ×_¯š´9O>ù¤>Ð|y|¯¨‡ 4ø@yáù áᆌ¥?¿ÍKß0 =ñÄêøÏøx`ñ ÄTåû˃¾òàEˆÀfÛ´ˆ Gžü‚`ñ²Àu†BZðÛ#P Ͱ79‡ƒ² ChËIÀÎýŽo./AÜǸa áÆ}‚— ^„žbÉ= a‹&9úCYÜ3 $–/nJÿÚ¾}ûêùœÇoó,þµhÆ!®´ƒæ2Lz)‹ ™ÇúƒÆGýEÆÂµáe ÷)–o´¯í¯÷?æeŒ žÜiµÇýÆlÎ/¦Œ}yYŠæåÎYß C "€i'ü†Œé$¼ÍŸsx›QBÑð°ð‚™7oòbÖ£/h>x¡u`?/LDÌk%ئ^´8<(È©΃Èqþ´! ˜º1ï…%ì§„–/Üï°™+|~[aACÁ8Ðö ‰,za\Þ§‹}øh†·}9[æ¸f^ÐìpÏpO#<ôý=Bj'̸>brˆy"9„Ô¡Mƒ0aª&@ûMyøE[M¿ È âýÓòÅV'fNÚÇËA¤07óÂúŒ`†÷â1ò¾”Rß{D4aÁÄŒÐo2 ¤&ìÇw2åØ|Y!âÛ Â{ï½ç«ÉÙû^†ûöf|˜Ê±>„_MH!ÂoR ñE ê-ÑÚ#íZa>UH=„qJÉì<Ë)ëÉŽm#‰Ù¢Õa™FSš:´*¼©§˜®Rºø¥G¨²M¢=t¢•ÏÈ~ˆ>Z&‰@zµ?¼øàJÁ ç@yAÃÌK¤À–hIù‚I—€˜°P“njö§%@A³ˆ„AžÐøaîNK0w£ ûÒ¢„<½ð ;ݨQž)³2R¯^=]†¿ PRËxrMyï ‰6s*þÁ~Þa´ûhÙp×ð>{>8K„×âz¼øOñpgÈ/Š© å0GCü¾ѩ•Å‚a¦,ÿaþ(Z{\SþÐòòrùŸÿüÇáߊɚ{ƒ/¼øæ)œW:bý0 ‚‰¦[œ°1¯á”YA›ãßòÃu0»J´‡ÚL|é}è‡ëµuC =@ÂúÁ0?c^G¼¦2 „øAzès4jZ¤ör„Ï#¼˜\‰ÜFC‡0~™ÚWÌñxô÷ˆ¦n‚VxAV>[~¾h!–ž0òÒGºÜCÐôÑO0ÇÇ÷€Ô$šotjeÙÇÿ‚1­öˆ`‡dCäy ï¼¸ÒÖ9ÎË1ìî¢ „¾¸Oxi“ÊÐáì_•ÔÄ0 ˜H$!9+1ÓÄ,gs1ië5-Uîu"¶,&Ã@4Wé)/‘Ìhî"Û’P=(R¤Hd[HK š¯@È[ š®È~ñ­ DIЧ€²ˆh¨yqÑë)/?hãɯ©Çä¥'ŸZ]¢ÁÔöø}J S Á/zL4“4m›câg9BZµþáÇkyIsyÑu¾„Àiÿ8ן/~‹:-Ã’¾qL4iZŸlé¶hÙ1åB|´¬˜Õ!’ºî¿„üê¸}ýBŽ Ôñ‡q% Øç³­£ŽIc æo-+š8-^2«S ~˜í!2óS ä-R牟¢K­OŸh-ïqdŸ¸£è>‰Œf3"Bt!mø=ê¾Xí‰TûÇ8¸î`ǽƒˆv4YmCÌÐz­)'šß@®î—-+“ è¶¿tgŒ/ÑÆjyðÌ„|Zˆ“¤3&†€!`DE€ÙIx«Ç—'Ú[xÔ“í@Ž €_%SbÊDSa’>þñ¨öÆ'¥ï¬ô—Âw ¿Á+¯¼R5sá3 2Á䊢7»úãøòñAË„† “.3ú„…ß"š6‚œÐø…\Ð`bžå‹®+µu"‚Ñl¡½ÂTš2H ­ùú¼Fÿƃ©¿”åS¶Aýø cûV†Ë¡¥£ šKÆGXÐ6ÒŽäƒôfïðùh,9Ÿ%c@{K@Bë6µÇ*ŸòXZí¡Ñ$jÿÍ0>P±Elüïfʺý6QΘܹ.i šKLöøo{|Z焎ˆV¨¤­†€!`†@ú€x4HÉ ©S äŠà¬Ô„4J|Ò#ø>òIMÒòÅMí¿c.¢ $5üÒˆ0¦çô õäKW8i>e})ž'©~;¼LïøÓò×k=­öÂD>\./шr¸ë9ùh$1%ú¶m†€!`d^#EZ´e™|ëðÁK)§h _\é›ò<Ûþ;Ùåý÷šó÷#‰ùûúYï E€œmâo•£mZcéC€“¼…92³C˜Á%5a ¼hBPˆIú G| ÓB)i$±€\h¦!ðeñ3„d¥;7~#/<[MüZ²š C   `$± \i§!ðKb:*CÀ0 ‚ƒ€åI,8×ÚFj†€!`†@º0Mbº¡²‚†€!`‰ˆ  ™r.·dÏž"’¹¸øû2oòÎÜꆵ›€øi3;4#‰™EÎÎ3 CÀÈ÷²…<{9)»vu›7bXBÉáŽEeÖ'9ò¶IÌÉ QÚ"¾Êiå^Œ…%ÓŽ†Œí7 CÀ0²•+7¹qãæÉ”lsÝØ±óe ¹µ’º¨$Ñ>ÄuíÚPr6”)%ë»Ò¥‹gCkV…!mX2ílƒÒ*2 CÀ0u붺ѣç*)3fžÌ=¼FIᡇÖu}ûæºwo$I§ëº’%Óž1Ã5r37ç&úÖ¶!`†@¾G`ëÖ]ª)„Ž5ÇýþûJ™þ­ˆkßþwÊ)í„6–™Kê)Ì÷Wºà ÀÌÍïšÛˆ CÀ0²€À¾}ûÝäÉ‹ÝÈ‘s”²Î¾-–yrë§K—†®L™YhÅN5rFsýX CÀ0ò:K–¬sÇÿá~þy¶øÎs[¶ìtµkWrGÙT?ÃÊ•ËäõaXÿ Œ `$1#hYYCÀ0 ‚ÀŽ{Ô§pøðß…þ®~…eË–T-á‘G6QbØ AÕ‚†² "`+õÊÛ¸ CÀ0’#°hÑZ÷㿹aÃf«áîÝû\«VµÜI'µu=z4¿ÂúâkhsP$GͶ37'òÕµ±†€!`DE`ïÞýî—_æ»~˜¥äpÁ‚5®B…Rª%ìÙ³…;æ˜æ®J•²QÏ·†@‚#`šÄ¿À6­5*¹X±"ÙÔ’UcŒ$ˆËlƒ4 C A˜;w•j !†ÌtRµj9õ/$"“ráÂ…tä6,C îIŒ;ÄÖ€!`†@¶"€Æð›o¦¸o¿â ‰Õ«Wp}ú´ÑT5;7ŸC#†Ù ¸UVP0’XP¯¼Û0 ü„Àòå•~ýõd7cÆ2W£F%…'ÔÎuìXψa~º˜Ö×ü‚€‘Äür¥¬Ÿ†€!`4֯ߦ¦dˆá„ ]ÅŠ¥UcxÚi‡Š)¹¡ÂvCØxsË“˜Óˆ[{†€!`Ñضm—+oÙŠ€™›³N«Ì0 C &þ¹É}ùå$%‡¤¬©W¯Š»ä’îJm擘ÐÙAC Ç0ssŽCn †€!P°عsÎ|2`À¯nôè¹®|ù’î”SÚ+1d®dCÀÈ“˜&1O^ë”!` €ÀäÉ‹]ÿþ$§ádQìÙ³…{óÍKݱǶp6ûI\`BÂ#P4áGh4 CÀÈ1V¯Þ¬¦äO? ‰®›7?ØÝrKoÕV®\&Çúa †@Ö0’˜u ­CÀ0 4{öìs?þø›h qÆÍvåÊ•tD&¿øâ®M›: ÍæÍ›ÝСC~œ6ÀœG V­Z®[·n9ßð_-šOb®Ao †€!¿˜3çO÷ñÇãÝ_Lr6lwGÙÄ{ng×»wkÉoX$.½Ÿ9s¦kݺuΰ¢†@ú8ýôÓ%ÐëËôÎþR擘ý˜Z†€!`$.;vì–éñ¦º>ç&N\äê֭⮺ê(wÖY]ÍšwàéÙìÙ³]³fÍÒQÒŠi#pþùç‹/ïδ Ʊ„™›ã®Um†@¢ 0}ú2%†L‘·k×^w ­Ýí·Ÿè?¼q¢ ÑÆa)0’˜Û4 CÀHB`Ë–šÓ“òŒË\ãÆÕÝ­·„ÒÑUªTÚ`2 GÀHb‚_`ž!`E`Ò¤Åîƒƺロê r:Ê£öu;ÖÏhUVÞ0ò1Fóñų®†€!]lݺKP&º÷ßëfÏ^!µÝœêúö=Ì•-["»š±z C !`$1],ëª!`Ùfd´†_~9Yªt&”gŸ=ǵkwHv7eõ†@>CÀHb>»`Ö]CÀ0²ŠÀŽ{d”)¢5ã¦N]âš4©áF(3ežIb#°hÑ"÷üýýöÛîàƒŽÛ`Ï:ë,·uëÖ¿ÕOî¿·ÞzKæì¾D\N×3ÿV&¼ãƒ>p¿üò‹{饗»#ë=zôpÏ<óŒkÑ¢…;ãŒ3\:uÜ믿.®â+ñ—<øàƒ®H‘"î¾ûîó»l™Œ$¦$+b†@" @^Ã>ç>ûìW‰PÞãúôi«&åÎ$Âðl éD`Ó¦MnÈ!nûöíé<#sÅ~øáW¿~}סC‡dT¯^]·i÷îÝÉŽ¥¶ñǸ±cǦvH÷1­Y³ÆíÙ³GÇÅή]»ºË.»,rΤI“\Ñ¢Fy"€¤sÅK'PVÌ0 üˆÀ¾}ûÝàÁ3Ü»ïŽvãÆÍsõêUqÿþw/wÎ9œM“—;Wt×®]nåÊ•ªñZ²d‰jÛHƽÿ~÷Ûo¿ ß%3Õ´‘ù­‹9Ž—-[V®UåHg—-[¦û*V¬¨û&O&-QÒ9eʘú-ÞôéÓ]Ó¦M]©R¥”HÕ­[7R+Ì+]º´›0a‚«Zµªh–›Dʬ^½ÚU¨PAûH]ôë ƒŠ§ÝÂ… k_©‡¼~%J”Ð}:餓Ü#<)^yíµ×\É’4×ô…ÄähSö3|íÌ;W5…ÿ=xÝvÛmª¥¬R¥JøÔdëà¸páBwØa‡éø9˜‘kã+K«ßÑ®??O/lCÀ0 C`ÕªMÁ³Ï Ú· ¨UëæàÒKß †ÿ=ÁF™7†3cÆŒ@ô$ÓNW‡Æ¯åÅLªKÎ=âˆ#‚^½zE¶Eˆ–-)Ù‚£>:R¯¶@̦ÁË/¿L›6-2) Ä´Ô®];ÒÑ®•*U „ÀiyÑæB µž©S§j;B´‚ .¸ hÞ¼y $4(^¼¸î¿üòË#í±¯{÷îZ‡Ö@ÈdðÅ_DŽÓÆu×]§Û?þø£ž?|øpÝrÜ{q²)WÄ,<õÔSº[LÊZ7m€ÇqÇlܸQÝsÏ=r·×õuëÖ`C>;vÔå Aƒ´<û^xá…€¶/¾øâH“BVƒÓN;M·…<:uÒóÊ—/ˆ†1xâ‰'ôXF® 'Äêw¬ë£¥ñuÞyç2ãJ¥âzøÓ¨‰!`†@‚ 0~ü|wíµï‹‰ïaÕ2Ê/¿Ü+ëW¸£Žjš £LŒaAqË—/wÏ=÷œ5j”j±Ðn}üñÇ¢õ§ZÅ /¼Ð9Ò¡ÑC¾úê+ÕÒsÎ9ª¡Ãÿó1çaÆE;‡ÙõÒK/uB¬TS†¹vÕªUQAc¦üývìØáÞyçý|ûí·‘òhÛæÏŸï„´É”‹½ÝÕW_ñ5¼á†œ[-‹öïöÛoO¦BéCø³`Á‚HݬP÷W\!3÷\åÖ®]+Ñõ³,÷è£&+Çýã8SÕ¡eEë˜Rð³ò)>·ï»Ÿþ9åaõ‡DI=`÷Øc¹ÇÜmÛ¶-R6=×&­~£AMíúDÉ+FóÁE².†€! íÛwkêšcŽyZRÖ¼$ÄcƒsݤIj@J­Z•bnÇr ÑiàHŸ>}´$H߆œ}öÙpáçïýì³Ï”¨aòmذ¡L8Q >yK8¦L™¢äðŸÿü§;äC´\Ø?/åp[µjåDk¥ä“r 4pøùy¹öÚk•øa’¦Ï¢ÍS³0Ç  mÔ¨‘ö¥^½zºÍ¦hÌèá$aalø&RϼyóÔWŸÂ¡C‡†‹éú÷ßïN<ñDÇœÆ0ÌÊ© DV4 òÂt­’ïp+¸Ñ§ºY³f¹-[¶¨éÝ—KϵI«ßÑ®o#?,Í'1?\%ë£!`fÎ\.¤¡bº}çÏ_#ÂQˆ²wï~yȶw/¼p¾æ8,€åóAÖ¨QCGà*¼ÊC¢úÿp îóÏ?×(`4chOØÐDÞ}÷ÝJš>ú裈ֱK—.ZޝX>~°à—è5—ì'øÄ Çðq,µ%d.šO¢/¿xñb]½è¢‹ü.]Šù<ÙöÞ½{ݘ1c”ûíÚµó«É–`øÆo¨6ULÉÉŽ¡É$ò-.þ—©ù-¦çÚ¤Õïh×G\ ’õ'/o˜&1/_ë›!`~ùe¼ÿº?—昇 ›í.¸àuwä‘O¸Ÿ~šín¾ùx7yòƒîÙgÏ5‚˜&zy§Z¶ôš/ñóso¾ù¦¬œrÊ)zÑÃâó§¦d¢w!UÅjÕªéq‚c¼¤4ñúý,W¬XÙ$âMd˜T†CÒðñÈÉ™\©Y³¦ßG5¯/]ºÔñùúë¯ÿF.!Óшh¤%4‚Ñ„”8wÞy§{òÉ'&w/`F ¦m´ˆ·Þz«?Y¦çÚ¤Õïh×'ÒH>XIßšb]4 C ¿"é;çœWÅ̶[´#ZÁ”ÂŒ(o½5RLh‹×nß¾Àõëw…¤¹Û]sÍÑòð,•òÛNÈ%HÔ29þЀùˆ`òâˆ?"„4&a´khüÐàáGˆy£ í$fd¦_oòæ ’qsæÌQ³…¨ ›(gäŽ;îPÿ@Ö!bô_½ŒÐh ï¿ÿ~ÀÆLûƒþ[5äo¾ùÆ}òÉ'jR‡ÆH3æo|½`fF{Hô8û½ï#¾œ‘´úíúd¤Ü.k$1·¯€µo’Z_rÉ›òܧ8lذÍ}ûí”&˜”ï¹çK1›= ‘A¢=l" w¹þý¯•€–ÉGN²•„@Àk³ …$œÞ·oŸ“ÈãÈØÐ’y­69zè!W®\9ɇùÃHô±;ôÐCþ‚^¼9Ûocn¾þúë•8õë×O5oøz|BBIÓC Gÿþý#÷ÚÍŸ~úI‹BV_|ñE%­ìHÙŽ¯Ï/ýñ¶mÛjàÌ«¯¾ªZPÈ$”±xñe!…øúþùê; F¤¼ ‹Ç}¤ãÁììÏgÄÒ N´C0A?>‡2i m¤Õïh×'­ºóÒñBOç¥Y_ CÀ((0Þw~®yêü˜yø4mZC̆}$’s”˜ÿÍÍABwçžÛYlòÊùsl™»ÛE´l³fÍâÒ™›o¾ÙIŠÍ{n ù 1}†})CÎBÈûñi„¦œS6Q½ÄÐr*búõÉ‚8,‚ù:^ã£=ò ÒÌå)ÇâûÃM åКÆ*>'å:¸‘“’ñ0^"»Ñº‚cF%V¿c]Ÿ´Ús }ÐRZåãp|€®ÄU«Ò0 ´xñÅŸÜO|ÿ·bIÀÞÔ”5ï½w¥ëÙ³y2MÈßN² ‹¦[4u˜.Ÿþù¿?=É¥ø·ýì@éÍ©í¤ˆn4ASÉ'žBÚ™Î;§Ù/R-[¶L³\¬Œ7Œ >Š|2#±úëúd¦­œ>ÇHbN#ní†@GàÑG¿s¯¼2,*E‹v]º4¿«k£–±ymÛvI Å&IõR,.„ûÊ+¯H*£»œ$‡Îthç$ôßÎ'º7Öô|DH‡gXù[¶#¡0ssB_^œ!`ä%ðî¹í¶Bþ~IfbN­øP¯¤590[jål_üX¿~›˜X7Ég£ûóÏMœ´dÛ¯oÙ²S;°~ý—nêÔ¡q5ÇÆo¤Vs^DÀÌÍyñªXŸ CÀˆ{öìs×]÷2dzš‘æÑ&¾ýö(÷àƒ§Æ¡7»ÊýûI³Y‰„ÏÁë›äØFI¼7Ñã5kV”OIx]Iæû­§ÛäµÜ²eµ¤/z)RÖV DAÀÌ͉r%m†€!gرc»ì²·$ðÕè¥g¬œ·jU8ésx=I#Èqȧf¼Ÿ_ýúU]÷îD˜øá‰¡ÍíѲ¥!P°0’X°®·Ö0ò“&-vÏ=7Ô 6[4†E4Év˜ÀÑURä,^¼N{v‡´hýhþðDû·víÖH¢n̺IþI„¯M›:îøã[E4€C´€%JØc ÝÖC O!`ÿyêrXg C ·`þZ´våÊÅ?mʈ(9œ0aa$G_JrÆaîÜU®aÃ;"» v^ÛGÈá‡7V‡æÏ“?ò’ÑÄ0 Ì"`$1³ÈÙy†€!P\yå•⇷Ý}ýõ×qׄ +ܽ÷Žvs權ði9ZÃhßÿªˆ±‰!`ñFÀÂÌâ°ÕoÙŠù-Z$yõV°Î¾={öh[{÷î•™J¦»É“'«v0Ü´…“&MrÇ”_·nÛ¶m›’ÄpRïeË–¹Aƒ¹)S¦D̸Ե|ùr™¯w‹Û¼y³›6mZ¸ú¨ëü*>‡sÜ‚k´ ÓÁ¥WÓ‡–‘¹‚[¶~õÕW®B… ŽvF©vò§Ÿ~òEÇ›o¾9²••¦Mk8>^ØUÌãûÝÈ‘s¤ÏSD˸P´£ëT»8zô«õ6hÐ@ƒZ^|ñEÕôAoºé&õA¤ìé§Ÿ®Ä‚‰¦c )RDüÿŠ9"›!}úôqÔqß}÷©YS5D“íÌJÿþ܃~/Ñ»´Š¢E‹ˆù) ÄÔÚ ¢‰!`9‰€®ä$ÚÖ–!`d't’FéL Ùûè£Ô, D{8kÖ,G`KáÂ…Ýc=¦äBü ‰~öÁ(GRÝ­|üñÇ»»ï¾Û=þøãÝ¥KG{7Üpƒ¶“”¾&cŸçžÛIHâ‘®wïæªüKA©õ¥õÅüÍ?ü0Ë¡yd~gÌÑ&†€!`ÄBò.^/&†€!`äD“ÿ°mÛ¶ÙÒ ò$´ÂßAÈ`XðMDsX­ZµðnMuCY?ë ÐsçÎuh(S–Mvb:7F­ätç΢¢©üÑ‘;‘\‰±f[¡j’goÛ¶+9¬R¥œ˜×+ºZµ*ʲ’®'m'­3å^zó0¦³ûVÌ0 Œ$¬ n£5ò$ÙMóä ¥Sž$âóˆ0çòË/s~8VÌæäH<`~Ö}uïÞØ}öÙu’Žg«$òÞ¨ç­X±á¯åFÙ—´þ矛".ä]dj>ˆ#$²V­0‘LÚW¥JÙp3¶n†@É_¯Ã‡lÝ0 C ®@à{¬¯»ñÆ^îµ×†K‚ðQ:CL8h¥hÑÂîC*k?:¨¬ãÓ¦MíTûµàV­Ú!‘ž@$ý:JHe%W¾|ÉTÛ²†€!øILükl#4 <Ž@Õªå$(æd÷¯õto½5Ò½ñÆÏnçνªÄÿ²–Á¼\³fývXê‘ØÈ0{ ÄÒx@3¹Qü7—ë¾M›vDš+S†¨qO,=±dYªT±Hy[1 ÄAÀHbâ\K‰!`äs˜vï¶Ûz»ü£‡j_}u˜$ ß¡$-»†FªºuÒO´:·oß­$Òk"ýrÙ² 2à=F/•*•ù›o¤'–h$ñD#jbù óIÌ_×Ëzk$$Õ'1­‹¹cÇõWìØ±¾¤ì9$­â9zœ$àIZȾ‘h'!”|ðô9hC«Uóþ‘IÁ6|$“|%«U+ÉI™£±Æ C ¸ Ûo9‡$‘y–³#YuÎõ:v+’w*"šIDATK[·î’YT–ˆaý %\¼x¾æeô+±kÈßGIœ±fÍÕ:&‘Ç6>èfõê-nÿþ¤e˜§ºzõ ®ví6a“6¤ M C Ç0’˜cP[C†€!H"‰¬Mœ'ygE†U¬XaMgS£FR€HÕªåe˜r’‹±ì_Ërºd_Ù²%"ç%ê :h½9;ÉO2ÉWÒk%ׯß~©RÅÕôžD“"´}  ¤eE‡¥‰!`d F³F«Ä0 (¼ÿþXw知z”YW6AëæM³¾`ñâE%ˆå2wì±-ü®¹Ü¹sOD™D"}°_nt[·îŒ`S¾|©6IÄ¿ÌxJ³fͳô˜™AàÃ?t\pAfNÍîs,Nv#jõ†€!Fàâ‹»¹Ò¥‹»ÿûcÝž¿ Z^D bZíÑ£Y¸ª¹^²d1If^U?ÑØ²e§I¯‘ôË ÖHnʹrlCš‰ÈøHVÔ@›¬&"?çœs3û˜Aà¼óÎËHñ¸—µèæ¸Cl †@AGàÌ3;hš˜k¯}_|ð\$Oa4\H„ý#Ó ZDp4ŒÂûË•+éš6­¡Ÿðþðzj‰È!“Ó§/uC†ÌP³÷¾}Iþ‘áDäIäñ€Ÿ¤7o§•ˆ¼U«V:·x¸¶n¤…@Ñ Fºi$1…­†€!?úôiëúõ»Â]~ù;šÿÄ×Ñ„$×\Ð%ÚaÛŸ 2’ˆþøwá…oê|^s.~Š]º4”¹¥íï9ŒK¼×³’ˆRND^¬Xƒxw×ê7rûʘ­CÀ0’ðó0Ÿ{î«ê'—’(’fäÈ?\ÇŽ¹K/=Ü]rIwˆ6ürô&"oßþ0élûÜï°õÀÈ"æð’EítCÀ02Š@‡õÜW_]/éZŠ'ó;D‹xú釹_}À~÷öÛ#]‡¹[oýT¢eÿÌh3V> H©P¡=¹Ð²5id?¦IÌ~L­FCÀ0ÒD uëÚîÛoÿ-¤ð%Gt.‘Î|®»îI*]ÞÝqljÝË}þùD÷æ›#ÄL=ÞuTSwõÕG[ÔsšèZŒ pÕUWIª¥cÙñ’_|Ñ 4(Õê_yå7lØ07mÚ4÷ßÿþ7Õ2~ç¢E‹$¨ëòõ¶¤::ØïŽ,zè!W²dI‰P¯áú÷ïÙŸr妛nrÇw\ÊݶÓ$¦Ä6 CÀÈ)š4©á¼Qgd¡ÍÃoâš7¯ižô/^ØÕq§$å¾F÷_pÁëBŸ”éúÆ9ršYE`ĈnÁ‚Y­&æù3fÌpãÆ“ujÿíS¬X1q½ØåvìØ³nÚ´I¢Ñ‡¸íÛ·§Zö·ß~Ó••+Wv5ÒO‘"Eôœ *Dö±n’6¦IL#+a†@ܨW¯Šûþû›$]ÊËî_ÿêµr&òÁìüÆÃÝ}÷}éž|r »è¢nîâ‹»»š5í¡¼<~`Ù²e®bÅŠš 2uØa‡¹%J¸•+Wºyóæ¹Ö­[ëñuëÖ)9ªS§NdDëׯWrU«V-ÝÇ9³fÍr-[¶”{âÀ ¾®3gÎtÅ‹w$ûF#‡&Žm/»wïv6lMvu÷ûï¿»7ºC=4R†©3ÉóYºti7a™¨ªkÒ¤‰?]4á{õƒ&ø.\X‚°Šé6Ú½7ß|S×S~]rÉ%É4™ÔácÙ¶m[qˈž}íÚµnÉ’%Ž´C^N>ùdÇùöÛoåel {àä%¬¹¼\í””GjÿÀ¡¯`Ž`‰Üºu«¤HšîÚ´i#/ri9ÿµtéR™fs±+_¾¼ß­Kê;v¬âØ¢E‹ü='¹\pCÀ0 \F@òøe¨k×n ž}vHжíýA:·×\ó^0a‚ Õa…ãƒ@Ó¦MƒGy$Ý• é ºvía#/R „1¸ù曃B… é¶@L±ÁóÏ?é „àDêîÙ³gpôÑGûöí Ž?þø@Y $.(Z´hðÆoh9!’A·nÝ´.ÎïÒ¥‹®‹ùW7nÜ8xüñǃ¯¿þZ÷yä‘‘¾© „i9Éá°-ZºÈñË/¿<Ò—«¯¾:âÙ®T©RpÝu×鶘´p‰&Œ·C‡zXf«ÑvÀ‚q¹ ƯǦNª}œ;w®nßsÏ=ºMYpª_¿~pÙe—%kæ›o¾Ñ2B:u?㇗_~9Rîµ×^ „ˆBulÝ»w×mç_|¡e…L_|±ÖÇ1ÎyòÉ'#õ<÷ÜsA™2e´/ô©OŸ>ôÈñ´V¨Sf\I«XNÿÔÌÍrM CÀÈm*W.“¡.÷ïæ›— —ûÝóÏŸç–.]ïN=õ¿®wïÿ¸Ï>ûÕíÞ½/CõYáÜE`áÂ…âV0"¢=ÃOoôèÑnÕªUªEûôÓOݹ瞫Z©/¿üR;»fÍ7|øpqI¸P|W?wC‡U³1Ç[n¹ÅáŸ'l au³gÏv?þø£CØ Aì=hÓÐ" sÔu×]wEÀ¡ž—^zIµ—ï¼óŽãƒ¦’*~´ÿŽ”½á†\¯^½"Ûhêèkø“šßॗ^*ÉçKiŸéo§N3‘0–° É{ì±ÇÄ÷ʼnq‚cZ‚Éû¨£ŽRÌ|ÙÏ>ûLý2Ñv"Ô3þ|Å¡wïÞâ |µjûǬcÆ<.äR¦Ý¼S~‡¿ŠoñÑðß§xc9r¤Ñ‚)­£DÔ—qwß}wL8’†OŸh唈ú0éBØ0#s  ¹EúöíëD³ç‹º|ÐvÚi‘mLǘ½Ãê fp|O8á5­CJ 0´¥œ2ãyøá‡'H©7»‡ëLm¼!q«W¯v˜«!ÛáÙN®½öZW·n]5­3&È2æúO>ùDMð´C Mûöí]Ù²eÕç3;û ªùàƒœhhu \×ü*擘_¯œõÛ0 zh]y€]$¾W§º÷Þ+ª±îå—r'ÔÖ]qÅ‘r¬nŠ3l3¯ ö“£ ß7ˆž×¢Adд¡EDû…ßþsbª•ký²~ Uø BñÃ[¾|¹ëܹ³¯ÎrÈ!‘õÔVÄdÙ I¥-/)µø%B´Ò#øR¢…‹%h4tï½÷^¤(Ú?|ýÀ ÄÁ°_e»víüá˜KæÕþç?ÿ©D¢ Á;ýôÓ#ç„1`Œã¤ø*žzê©‘²ø“Ò/®äRIÄ8>ž‡~¸H®G~”ä>?ŽÀúl†€! jÕÊ Aèí&N|À=ûì¹b6[#DñyÑÎ<ç øUœô÷&+o¹@˜üÄê DBC$颋.Òâ˜; pAÛµbÅ I¥tšb Š©R¥ŠjøzÓŠdæ|/˜¼Ñ¨y #ÂxÊ”)ÉŽûr™]ú´6â).Kõ3iÒ$÷ÿ÷27wÓdÕL‚¦ͤ—‰'úÕ˜Kˆ5­,d\Ñz s̘1ºèÚ\ß7–¤÷9묳c°%úšà4¸ôç­·ÞòÕæ»¥‘Ä|wɬÆ€!`¤f9óÌòкYs26hPÅÝ~ûÑ(>(~SßIDèºôUd¥ò ˜W1ábFƒ…Y!¢³3„³4¦NLÑDï¢Y|÷Ýwµ ÑÐøÍÅêÆ'ò„ãI')aCˆùõÞ{ïUm™gèqü æl|½ÿd¤‚4VÐT™ ñœK”5‘ÏÔå#‘}§œrŠö“c: QßD<­%&çŸ~úIÇèɶ?­ìœ9s”t¿ð ª}EkI›`¹|"!˜B4šô•¾£ùÅv‘ë”_ÅÌÍùõÊY¿ CÀÈÌòÂ硇¶JÎÅqjŠ~ýõášVç²Ë×ezµYhÖŠ¦”¸³r_¸ÈÍG}¤ äì³ÏV"ˆyM#iYäÀ\üÌ3ÏhŠO#‘»áê´­°o iw$2YI&$Ÿ?/¸ë¯¿ÞA6)1“Èl=ŒfS"¤DJë6ÚNL³ø*"á6tGè‹ñrœT7Œs¼é3õ€ôxú†Iñ¡i$è„€”p™PÛO@ c@ƒH2ñ° ¥$}D«Ÿ(˜z â£9DÀšñz¿CH2,W­#GùU Û òkç­ß†€!`™C`ÿþ@¢agº~ýFK Ã1V-H7y uÍGþôŸÊÙy!rhÚâ!vÔ‚©•¶Â‚æ([r-†Iz‚? •$š†1Š×DR‡¤ŠQ-åž={4ï e ™^Ó¶mÛTÃHÛ˜Ãþ€¾\v, r¡ –˜ÑÑŠF¢¦É{ ö¤9ZÙð~ÌÔø^yå•É´«h,ûõëçN<ñD͘cêÀÌŒ¯'@4†‘ÜråÊ…¥¹žh}ÃA4iž¿¢£¿F­fCÀ0 \F páBBZëgÞ¼Õ$0Æ=÷Üÿ4"ú´ÓÂØ]’HÚœËݵæÿBAÚÈ]jä%µ}œŠÌ@ôÒ_6µr6ˆ[<%#môüIO¿03C’‰l¾æškR=¿E>© ÚM>© ZÈ#Ž8"µCùnŸù$æ»Kf6 C {hÔ¨š˜&O— „‡Ä}šø‚-òI›ò¬Nÿ·}ûîìmÐjË4øÇAÉ£˜YÁ¤‹‰8¥¯ä³i4s-³«¤ Élrû<ü ™M…à’°¶”~X˜ÈË…™›í60 CÀH‰Àĉ‹Üûï•)§Š©/)#S¶lypÊ¢¶H\<ÍÍ)š³ÍB ¯™›M“˜@7— Å0 ìB€ —ÿþ÷|7yòƒšNgܸyâ„ÿŒ¦ÒùôÓ 2ãÆžìjÊê1 <Š€‘ÄmÌ1o]*ëMb#`$1±¯¯Î0 ü‹ÀîÝûÜO?ý¦„ñÇgé@Ž=¶¥Æž=[¸âÅ‹äßÁYÏ ¼€‘﬇†€!`ø/8] ãØ±óD£XÂpB ððÛÈl/… $CÀÈ^Œ$f/žV›!`†@¼ …/|HÜ]©R!Œ­ÝÉ'·s‡ÞØ)b„1Þ×Àê/I,—Ùi†@‚"°lÙ÷ÝwS5i÷´iK\åÊe܉'¶QÂØ½{cW¸p¡¹ ˈ;Fã±5`†€!#,Y²Nã4%Ó§/uTVMÒF4Œf’ΑË`$FçZÚH CÀ0<‹¯SíâÀÓ„±|ùR®W¯–j–îÑ£™+Uª¸/jKCÀH#‰©ãb{ CÀ0ò.4à <ÝM˜°P£¢ v9ú©V­|¢ ÕÆad'F³M«Ë0 C o#°~ý6÷¿ÿÍ’ÏL7ränÇŽ=®mÛ:JI«CoCÀPŒ$Ú`†€!P0صk¯5jŽÆüÍ5]½z׳gsù´pGÕÔ•.mfé‚ywب#‰v†€!` 0særMÞ aœ2e‰¤Ò)ä:ujàðaìÑ£¹kÞ¼¦e$Œ$¤«mc5 CÀH˜¥‡ÿÝýüóïº\·n«Î!}ôÑÍTÃxÄM4ÝNúj³R†@¾DÀHb¾¼lÖiCÀ0 E€iO'MZìöíÛ¯þ‹˜¤<²‰ëرM˜£WÄËŒ$æÈÖ„!`†@!°uë.7fÌ\ |™ãFŒøÝ-X°FSêtêT_ò16qGÑX d¡B–È;.{AБĂxÕm̆€!`Ù‡)v Œ£Gó™ëÖ¬Ùâ*V,íºukä˜õ¥{÷F®I“Ù× Õdä FsgkÅ0 C   ðÇjÔ4„qüøùnóæ:û‹',5ªVPà°qæ_Œ$æßkg=7 CÀÈëAàfÌXæÆŽ'&êyî—_¸­[wº*Uʹ.]º®]“>ÍšYät^¿–°F àE·!†€!`¤@`Ô¨QîÅ_L±7û7…3ºmÛŠ»M›JègóæânïÞB®X±Àµk·Ê•(±/ûµ $ÕªUs/½ôRVÆ> pVζs CÀ0 D@`ñâÅî‹/¾ˆûPˆe)[v·«Uk‹kÑb­hW9\í9d³ĸ£_pøý÷ßÝÀ³<à¢Y®Á*0 CÀ0bÅŠ¹$ÀHl§Ÿ~Ú½úê«Y†Á4‰Y†Ð*0 CÀ0 C ñ0’˜x×ÔFd†€!`†@–0’˜e­CÀ0 CÀ0#‰‰wMmD†€!`†€!`d#‰Y†Ð*0 CÀ0r>øÀýë_ÿŠ{£[·nu·Ýv›kÖ¬™«^½º;ûì³Ý»ï¾ëvïÞ¬í·ÞzËõîÝ[ò?Vq 6t}ûöuÆ ‹”Ù¾}»;á„ÜСC#ûR[I«žÔΉ׾³Î:KûL¿ùœqÆ®_¿~’}s¼šÌsõIÌs—Ä:d†€!`ÄFà?þÝccʆ£O=õ”{óÍ7]Ïž=ÝO<áȽwÕUW¹ë¯¿>Rû 7Ü ûÊ–-ë~øawíµ×ºE‹¹ãŽ;νòÊ+ZnÏž=nÈ!nÙ²e‘óR®¤§ž”çÄsû‡~p7nt-[¶ÔOÉ’%•˜C ŒH6xCÀ0 C @# š¹ D‰éÆ`ݺuÁêÕ«ƒ}ûö&LV­Z¥çnÛ¶-=zt°`Á‚H]’ƒ1 |X–.]lذ!²kÒ¤I¾@4w‘}¬lÙ²%3fL°víÚ€º…|éñ{î¹'hß¾½®oÚ´)2ˆvOÛ©ûùÚµkWðçŸêöìÙ³ƒqãÆé>_`ÿþýhùtì2ìØ±C³¿råÊÁã?î‹ëRbP®\¹€süñGIî‚gžy&YÚ’”*UJÛ§”Ma²r~#½õPïÂ… #ýåüåË—ëׯ÷Ué¦M›€éÞ½{#û)³råJ=L׬Y,Y²$rœ®“YÝW¡B…àÞ{ïMvü±ÇÓq€¥®åÈ‘#õúø}¾ŸlÏ™3GÛÍÈ=ãë‰v_øãÑ–BîƒzõêE;œÞýŸºô–´r†€!`†@¢"Q’xóÿ·w.¡:­a]œDR®Gä¹…än'2p’û58É­ˆ(·„¥ŽkfÂÌ@ÈA Só38e¶Îó{ê]gù¬oëûö¥cíÿSß^—÷ºþïªýïÿ¼Ï³þø#2dˆÿ#†ütîÜ9ÙµkWbJ›“îY®:‡kæÌ™ISSS ä²K—.É¥K—ÈÌСCSá’N:%ƒN"yñâEÒ§Oï›úS§NMzöìéýdIâúõë“1cÆ8¡ëÞ½»¿mÛ6¯÷èÑ#¿ž;wn˨ ±Á"9{þü¹_ïܹ3éׯŸŸCXwñâÅ)q¤€ùÛjœ$®Y³Æç ¹¬´·oßúØW¯^uÛI,Ú˜ÐO$rŒ9yòääÈ‘#><™ç£N×®]“þýû'/_¾ô207n\Z~æÌÇ6’h*™bš®UI|ðà÷ÍóƒÏ´iÓüºW¯^>ž©­>V|vsYûºò~ÕóÎ4÷^ø5þ´I”»ÙÞ$™B@z0¢öíÛŒ4… ¸kÕˆ¢}nïoß»‡›Û°aC0¥ÉëqýðáÃ`¤21 'Ož F6½ ®Xöý]¹r%àžÝ²eK0µ0˜rp/›ZIó\3béŸ`30\¿~Ý?Në4È]§Ÿ?¦h…Ç{™ÔpàÀÀ[´hQسgŸ!u×1_î0âèûòLI ¦Æ…Ù³g#µÁT²0~üø`„ÌÛdÿpßÔÙ`ªjövîykõf¦^ð`ï ‘¸°víZ1÷ýû÷ÁHe0…Î×…g0âçe¦,#Ë~?NÜŸ»øOlnßíþË×{ÅŠ~¯è;Sí½H;n§‘ÄvZÃ! „@¹€X±5oÞ<'D¦S•ÂÂ… ÜñÄ{˜"—’‘»wïzGß¾}=ÈãÕ«W½ss݆7oÞxûÝ»w;)!dëÖ­U4…ÌÉä“zǦº¥õ;æäiĈ^¸flsMú5'¦¸ù9øö¯¹Ï}/ž¹¾ÃñãÇÃĉÀR!âyó yåÙ{­Ñû Á=ƒÊ@ÞØI6ã™›Ü÷XB!ä¬Ó½{÷|*wÈîêÕ«Ó©™ëëÇòì¦.†›7oúsAþY;s»û'ð>|øÀ(Øi\¾|¹}Šñ7ï³è;Ãzç½éÄÚéägêßNk! „€¿2 H§¹ ¨‚AŽ¢z„¸@F Ïž= ·oßöz2”½³gϺJ…ªxëÖ­Tuœ>}º×ãOTûÒ™HaÖ ®(œÑ† O}žÒZ†bøõëWW QÎ0ÔL¢oܸ °Œ‹š–gÜÿþý»×É+ÏÞkI?BŒïoc(±Ì/š¹ð}\CŠQ£™«Þ /x@Þ—.]êD0–îfúA-³`•°dÉ/ƒâ2G1Äîܹã$•s"îURÞ@‚èuˆbj4®&²ß—*9qí¢†ZÐŽ»eQ{÷îMwnïÞ½s×,ûãÏ¢¼ ÷3räHïååý”‘0¢F’®æâÅ‹Ž×§OŸÂæÍ›°²72ÏXö ‚ó¬'½ nfòBvëÖÍq9uê”Á~Ò–Zµ÷¢¥ýÖÛ^$±^ÄT_! :<(Bìÿ‹Æyåu,ã)ÄÕŒòe‘ÇiÑ¡C‡|ÿ!Ê„ÌR²„'N8 #a¶EÑ‹pö` \¥Y˪R$rBZ k§OŸ3fÌH«ùòÅûY·n]hjjr¢G!äRÅCM#ð³È`w‘£È±ç¢ Ã5{ÿþý€r¡µ@aÊ”)é^Hžɾ:ò$¢jF»pá‚THjü}üø±p?Ìiûöí¾W:ûö˜X°ïW=Ê$Û¢œÜB|ãÚd1‹sBåe]8Bø¢åÕeQK ¸áY'L˜àûLã>Ǽ¶Ü‹ó }sïLµ÷‚víj5¢¨U,„€B ôÔ›§@,:±=j?5%} yû²¹c%r’Å‚!#oi œXΑ8¦†y~@Sê~ȃSà0†©…i>ÇlûZç´µ ŸceÇl[r!’‡ÑTMÏÈÜÍ5˜ú˜­Vó¼H?ä4wwn_ÌÌ î˜äVÊÜ$?¥¯4õP¦¨æ)c±>äEÄÈ-i®ýšíŠT ïjïE­ö­•G+íJÉ5˜B@t4på>}úÔ]Ëì—«4‚^,—båm¿FD¥*bôS(‘m‡Ú؈Ñ/Ÿå«e(¡Ù@êã®×Šôƒ[¾šÕÂ!ÛŽO ¢œâf.òŒÙ¶œ3Vv}Ø£˜ Œ©¬_Ï5}W{/êé§%uÿÓÊ[Ò‹Ú ! „€¹àÊÅíJnÂM›6åÖ)r“`òþU‘µÕ3 S·<÷ge?ñúüùóNãç;"Í=s'$Ëæ*¨L! „@Ù ÷ÝŽ;ÒT)e^=_¹ pèòåËiäwƒOû§”Ä‘S3! „€B@”‘Ä2¯®žM! „€ " ’Ø pj&„€B@2# èæ2¯®žM!  #`)Gü;½…¨¢øŸ"@"ñÖ0‘ÄÖ@Q}! „À/ɬW­ZõK?ƒ&/"¤ó‰ŸvŒ÷9*º¹ÔÔF! „€åF@ÑÍå^_=B@! C@+á¦VB@! „€(5"‰¥^^=œB@! C@$±1ÜÔJ! „€¥Fà_Ь-ÑNñãIEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1BadIndex__coll__graph.png000644 000765 000024 00000025456 13515046516 026612 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÀÅý´sRGB®Îé*èIDATxí]œÅÒ/82HÎI‚HD•œQ‰òð)ð  ˆ|$L€ÄÉ"D$H’%# HýÕ¿îõ°»·{·7»{·;ÛõûíÎL箮ꮪî™J¥È€Á@”b u”öÛtÛ`@0`ÀBTcÀ0@T¿é¼aCQ4ž½?uêýöÛožÁæ9Œ0P°`Aºûî»CÒ¢uëÖÑåË—CRvJz×]wQáÂ…Ýštl¹råô­¹†:òÖäÍ›—òäÉòz’³‚={öx­Î'8 ^{Çy«3eÊä8Ø·oŸW¼À+ZL`´`À0@´Œ´é§W ðŠ-0 -#múé!e€ØØX:sæŒ×ŠøÓO?Q£F|Ƈk„g¿:uêD3fÌ׿¦X»Îž=Kׯ_÷Z?¬2û“'OzO®À2À¼yó(W®\tãÆ ¯ý9}ú4ýüóÏ^ãÂ9г_W®\ñ9ÐáÜP· æÔéÓ§{­ææÍ›téÒ%ºuë–×øä À<·téRÒfº¿ÿþ›þüóOéÇÁƒ­Ž^»v6nÜHýõW¼>"N3 ©^½zÕʇÄ.\ U«V‘«-³ Ê×ùî?þ 0—¤_°`[˜Ž;rä­\¹RÊÖa¸¢íhÚ¹lÙ2«½ÞúõÑGÑ£>jeÇÀbu[¾|9]¼xÑ Çjˆ³"6œ¶mÛF „HàäÇ” T}¸øðáÄû'N¡cœp‚Ç–*UJ˜LùD1BTêÔ©qÔZÅÄĨ(& •={v K•*•ªR¥ŠÊœ9³U|Ž9T÷îÝå™™IÒ1ÉóäÉ“¥|Ôƒ2ëׯ¯Î;§x‘zúôé#阘åyذaòüÆo(Ô•>}z oݺµB›éªcÇŽRÊD‡*yð—.]:U³fM ×}›9s¦×~)RDéúV¬X¡xP¥_2dP¼Ÿ"yPæ+¯¼¢Ê–-«xð¥\Ý& Dû[¶lQ»wïö+­D¿þú«Œ•¿yG%}Íš5«à²I“& ýÐ?Ðpóú믫òåËKÿ<áz€ébÍš5rߢE /À‹IÒ ž„T­Zµ$ òüãÿ{И¿ÀL§x²‹—\êIe€iÓ¦IcP8ÏØ „X¨P!A¬Y³$Žg<©£zõêÒx>j!àmi7xë­·ÔìÙ³%íÞ½{UïÞ½A¼‰!Ù£GÅœ¯vîÜ©òå˧zõê%i‘ fà#ªvíÚBäÉãÆ“ç©S§J{Àà#FŒfýöÛoÏ$êÓO?•8 ÀGÏLЍÇ{L±8§xFWžýÒ ¦*V¬˜âÕ@¡ÏxÆ=ðÁ³¤0päÈ‘þâyÿþýR§?áļ"«,Y²HÐvàI€ÉpÊ”)r@_Ûµk§6lØ`½+4lØPñJ!%JOH/¼ð‚à~óæÍB7–²Â‚x)—öÉ'ŸT‹/b#\ …—?I§ ñ h×aÞ`øðáÒa.‡f‹ *Hrf ˆÑzöì©ræÌ)÷úL€´Zµj ©Ë[¿~½ æ;ï¼#IÁúH‡\½zµ[¿§@Ïd,n!X@¯d<¬%J”ÐQ 8A™‹-²Â» '“—.]Zñ±õå—_*…Ñ1¡<àŽ;îP¬/IœÆ•+` 4`–ïÚµ«<-ZTõíÛWGÉŠ ¼ƒÖ˜ˆgX‘gY,‘-tæ\nŸ;ðì 2!Á"uŸÐ–ù;tè ²6ämF1óH6oq Y£;ï¼SÂ!‡BÖt…¶mÛÊA2” eáÇ E,ž‹KVòâÅ‹[÷úhˆÖk¬—Ô¨ZµªZ @¹×: d^ ,"Ém¤ê,‹¦„ÃyÏ<óŒ\ëÕ«'2½î£ë‡Ñ2fÌèävÓx9vì˜5¦ÈàŠ_·l<ÌPæx&¦íÛ·‹òÉ2< <˜ \ºBîܹåD§yýÏÈ´cÇ)eÏ™3‡(ÙAx¨“g#1G.Y²DÂYL"ží-EÊÖ¿ÿýoa  eéß|@O<ñ„Õ$(Ó ˜4sép×kþüùåqëÖ­V0¯rÏ¢‘\]ÌJ¡7PjY|£… ”\Ö‘·&L°Õ#Ÿ¼æÃ8ò jÅAx¯1 ¥ãèôã?.š;Š——>¬ ¢ ÁX)Båe\,Fž¶sÖˆÅ&ÉÂ}饗V¦M›ÊìÞ¿Âqíùóç+[bÙáu‘:wî,³7ËïÄÊuéÒ…XA¦–-[Ê•a±N 0€X#VD©yóæV`éA»©+ìÕ`î1cÆ/ÅT±bE·~¡~ ˜™À¬( yÐXˆî»ï>*Y²¤Næ˜+Æ{ ˜8€¬èX°’pÕ+ÀªŽqÃx}ñÅ)Î=¯%Xýï&©J0D(\ª‚ÕÚÿ{ï½'¥1±ZÖ&dÑ´Ê϶ r¡†„¬@ãÇKêÁgoQHÇŽ+Ïßÿ½Ë/ŸŠ™Bžß~ûmQÌò7dUdQ(¶º<´}È!‡?è°RA¹FXo`Ixö 2ª¶AæçÕNò ¼ì+(ýè$°,i€ eë¶ëð„®á¤ À/p+~Ü}ÀøÂ«'@Ñ×V@Ï8Ÿ×®]«X¬+#ï÷(£…06þ‚/ðù>sX’ L™2^ÓCÂOΚC²lá¡ûï¿?ÉYÙTOÖ…°‡ðóÙ²e#ü<Á³_®ñPny¶s rô=vûÙjãµ{PØlMï¾û.AQæU‡jÔ¨áu\’ZWÐ ©‡{z k å1™– 0Ž`l “ øÀ"Ž2 `µåç4&`+PHZe 5H& H&D›jÂQÍ~¸ŒO^ Ï‘qH«ÎºFûÜÞ[ ·nùÔøf¸µ5èíÙ´iMš´Œúôy€rçö½EôŠ,»Ø¡„ƒ|¼¿@áÊî4tüËL”¿ÝU:ºÜû;!ÖhþT°£º‚ã8w °hÑNêÝ{6eÍš‘ÆoÃG:BKXÁÂ)ÎÉÀ´ ÀNx0ÎÙÿ>÷"mÿèï5üº eÈŠæ&©Là ¸s…x àéôûýûOñщ!r.MšÔ4vl{jÖ¬²Ó»Òþ)~¿gåÐ#´kÖ)©'c®4Ô~qÅÖHáQ­”(‘‡2dH'çXbcoѳÏ~Aï¿¿4|FuÞknÒwÏî¡ÝsâÞÆKÅÔ•¯BhVª`!:ªH,W.NìÑ’à°aóù°ÕWüŠe俪,"ñ§œó¯Ñì§vÑŸÛ.“º'U§JŠòVˆ;²îO)‘&êàÞ{ïäS‹·mYçÌÙH­ZãÓœWRbL"®Î£«/Ь;éòŸ×éVìm•÷yÊe ëþD=T¨PØzñBÔÍ›·øüùa~¹fç“euœ¹ºcà·¯OÑ—öÑÍ¿oÑ­›·‰_§Ê]Ö0€ÆEX^Ë—/Ä/ÌÄ¸ØØ›üÁyþvÍHZ½ú÷°l{J6Jñ~t˜V8Â"ŸMöòu“; ¤£tYRÞú“ž¢~(U*‹@Þ Lpùò5jÝz<}óo¯%„l§Ä];“æAÙý–?mînBþÏW)¼`44ê &&5¿#÷*£7Åê‘èå—§ÒСó½%‰ª°‹\§ÙíwÒŸ›/‘ò"òhdÀ”§\x+ÀhkÔ3Pµj1Ÿ«âÁ$ d§J•Šâ1ªbMå§óSZmR§¹ýO¤D‚Œ6`$@ö¦¤IÃ/ó¤¡^½ò×Ì^g} ‚ç8Gß3Ó|™ÇrÓ“ß–§»›ñûüœ*&>#`È]:¼` Þmû_ô ¥Õã8KÐm-»ÂØ+R$ËþÏS¡Bq/y[Ì ¥ÏCÿx£(å.“‘6NÚ_˜Áîoå.ùÅêã'êÂ:™a?‡'W®,Ô³gCþÚó2:|˜pŒ( ÈCq?<\ö &Mê’„œ&i¸bÀ¬IŠ8ð1v±V¬Ø“„œ&i¸bÀ¬6F¦K—Iì¸ãOv ÚÛ:Ba£“% 0`Vƒ0`À£¢Lšô³Ü&K8aÀ0€Ñ(Z4=÷ÜCü¹îEì@û’"'Ë}ÐæI'“Ô`ør«S§Žå\<)™ñQ.8O.0 `Ó/½T—¿Î–ž68÷-1ìøî_r–’úb;{ä!|^ž½è$»óæÍ¿ ì &Éyíd0 `kœ'cÆt|<¢9ýßÿýJ[·±YJøfó¶ã g‚pT¡ ]Ÿ1s{º‘…“”fpŠ4¨Ïd‡ÙGîúK Ÿì8ê¼qâq9êŒsþ7nLo0sãÊ›6m—EpO ÙbÒh€08$G­Ø®] >'ô¿3\‘2e ÿ3ð‰uyõÈ£”9O:ªØñ¶W{äã?5œÖATÁ}áÂ… ŸÒ‡ohˆ9 6ßÀHÿÌÚ !ˆ|ïÞ½¦)S¦ð G©å"ü)ã9% ejM‰ž†°Î>}Óµk7hôèÅ!¬%yŠþsÛŸGá厙?ÌØuëÖøá‡Ä!xž©’Hòd‹övÔ9Ù*³Š „x@^}µ¡¸X9rQˆkò¿xýUg§|ÜÊÿžÇOi >N‚’={&êÝ»1Mœ¸‚_¤?Ô²íæë¨³²œÇ0@2Œbûöˆ#¾þýg'Cm WqdÕyÊ’/þQç„s97Öl„%ÓØ®]»ŸZ¶ü€¾ø¢+Õ«W.™jõ^ÍÍ¿UD¸/òÞúà†.>,­[·/iË–#|~¾¯x¥I0±‰L (YÐWÉ›o6çÃ]ø|Ëòd¬ÕT• $„ Ç,˜^|±.³„Nž¼äÒMqv0`ÀÖȃjáKÓƒÍ  “5X0 ,LúYo¿õÖ£ò‰õëú™Ë$  „ ³ ” óµk—–sBü’S)‹ÂŽïÎé§IÅVŽ“sH¡Ñ8°%ÁñÔ©kCÖìø®s”®À‹»¯0 à-¡,U*=ýt-:t>*éßÐL¬…—Ozÿ¸Ubù¢-Þ0@ Ž8\.FŒXôV¬áýãVA¯( 4 ‚˜5kêÛ· }öÙJþJZÒ>AžP³ÍQç„°ãgv‚Ýñ‘ìOP‚5ůPfâ/M?pýP|g¶ÞI9Jf ºï•¸<§`V€a|n/άX±›¿®¶-àÖ˜£ÎIC¡a€¤á+$©«U+F­ZU£·ßžËß Ìf™&cjº¯{AÇøñ Â] 5" 2RòG#jÕB/¼ðõèQ/%›Uu‡íçÑù³z„§F<üp~þ’ÄJþØÓ¹hêv@}M›6-µhÑÂva»|óÍ7Ô¦MÛ‹ÄŒ©RA"UÉóQØHD—6gÍš•Ο?ï%Æ¿ °]tóCyT@×a®‘‰ &PÏž=j¼Q‚BŸÉé0 é#hÚ „>“9Ò1` ÒGд? }&s¤c ì­@‘‚àÉ“'ÓÚµkiìØ±!mòO<Ï뺮pܸq짬„~L¶ëÙ³g)sæÌâ­eâĉüå‹-ôþûï'[ýTdV€@°ç’w÷îÝâ-Ñ%($·K–,¡Ó§O‹^øèuýaS(%€}zñÞt©îàä:RÀ1+À™3gÄm®\¹hÆ ÿQ˜+W®ˆGs¸Ò)^¼¸ŒËáÇ)K–,”3gNkœ°óŒ°ìÙã>oèÌŠ+Êì¦ÂwÕÖ­[ÅÏ-|ZÁ·êrxQÇþE¦L™ÄK:|çj_Xð†ˆ^á N¢á€ZûºB>xUOŸ>½¸õ|F=-[¶¤×^{͵J¹G{<(}Ðý@ù—/_&øì…ÛR´mݺuò|Ï=÷¸•¸íÛ·S¡B…Üú”P€K´^ß›N:¹m`Â$Ê~+T¨ ޳Q)Úzüøq*Z´(8p@òWªTIÆÀ­Q¡~àÆ‡%L›6M<úÛ¸W^yE<+VLòñ`«îÝ»[jøðáR܃>¨êÔ©cÍŽØTLLŒbBñò­˜ 3ƒâ“šŠgXµsgœ×Gv­räÈ!Þ ‘¾ZµjŠ—~)‡}ߪ*UªÈ}»víTÙ²e3˜xCDÝÚCâœ9s¤}µk×¶âöÈ‘#’—ýbIüòå˽>gË–M a8_ €º§N*åLš4IÚÂþp•f€¶mÛ îÝ»W˜´}ûöÒ<Ã(ÏŠ^ŸÁ<“*¥ëO3ŸŸ‚C‚Ñ>” †¸“›=½K½(ŸgzÅ«¥/p[Š~W`x^¡T¯^½¤ ¨ÇW.N§L™"i]åAöïß/q?þø£Ò €öðЍ0¹€˜‡*iýù3 à‚% ¬Áb„âå[‚€, „Ž™îÃ?”çºuëªfÍšÉ}Ÿ>}T† Ô!CÔæÍ›…ðAü¬à Ìœ9SÒá¯ÿþ>W€òåË[épÃÊ©¤f½ª ub¥ñÀ,2©§Ÿ~Úí÷î»ïZÙY<ÇÌ æh‚à £[«Å‹ËÊÇ Áâ£ü03ƒÑ`_ýA¼/€/a½ò!«"˜S·‡nÇEð?üwíÚÕzNì& à€PäZ\ð1 àŽ;â¼4âÅF¨ÄAOhÔ¨͘1ƒxÆgŸ¾Ëøë S%ŽGü׎5JälDúꫯ,µ5jÔtøc†³î=o<­1Ð\}Þj}ùÐNèþB«V­¼ê:?;å"òôSO=%ÁÕZÁ=‹‚¸ˆ§v\;t耋P°5$ÖN_!ûó *úÃ5þü¢Äë0ô]t*^yõc²\e‘û ,rðGj—Ï"B(Í›7—¬°²°œÊŸ.<)Ê4ˆ §((nxi×·ñ®üñ‡¦qW†q_¹re‚ÌdäÇ ˜ü¹çžëˆPƒÒ رc‡U L¶¼ ÊÄ%q¬‹ÈW*8p •Öµ½Þúc%üß ¯>ì"6 t”qXË\ñ€t) )[{ öœE±î¼ùæ›Û:‹=Òر_zé%±ZÀJ‚Õ֜ʕ+Ë€‚(`Y­›Å Ÿ=€% « ¼¡ƒ¡`ýiÒ¤‰•žÅ')æC8„nÚ´©Ä@P?+§^Ÿˆ4óçÏ÷Ã*‚f±†>ÿüsYàhzÁ‚tß}÷‰u‡E%!tÔÉ2¾XeP7+ÉìÙ²¿¬D(mE> õæWLè£+ ÜÙ³góWðfJVUð6˜œ•RñIU‚y¦S5kÖ´šûÞ{ï)ži¬g(`°Ü¸äSµjÕ*+xÅŠ¢ÜÂJÅÍ  Š%`áÂ…"Ã"äk‡ÜtÈæḚ̀°@ÞEZX@´r§uäEägèlB”¼‰Yؼ)ù×óÇD/–œÎ;KYPä6Šr‹¾A¹E> Ýäs 3é2ëÕ«§.^¼(å$Ô$à÷6$úˆq¨^½ºäƒ1” |¡|ž`$Nël•gü5hÐÀ­MV„›`莱ùÀQ‚ÁÿùÏ,EÏ5á7Dm½pãM1•B¹Si+k ”H”Ã{ŠmÞV´fÄÁ©-QV‚ßÀÊûbò¬  ¦g¿ê.ƒ÷Ä` Ÿõ•Å0±2AÙ…Y6˜ p”Ì3_ñâ‡~`¿]iôèÑñò@Ö ¢g$D%lŽù(›?¾ÀS±ô•.˜á¼ Ê&ž·2ñvïx‹’°„ú£u ÏÌÐËx5ô ›ç¨dìJò’Oýúõc7¦mc^îã凥Š¢7€NKRRvoå$gXBýIÎv„¢®°'˜—ÌPôÛ”é èW"y'8j­@Ó… `À0@˜\E\½ênfL®z\OØëú˜­“Áß¾-Zt„•Ô||Ú3¿YŽ-K÷/쀱ÜI§7o'š6m;;Þà”.ÜX®°U‚é”ónÛv”4AeËdî«NìbŠôÉè)‚ö¤W:{öF~¡%íÜù“ðÿà\ÒkŠ®†"d¼gÎ\O¼©Ê§\chΜÒêðo¦a€ð#Z³æw>¤vQZ{“ß¿]­ŽŒ&ˆ€q‚ø“6mŒÕÒÇÿâcÆG¬gsc†ìã.YrÆÆÞ‘çÆÛ/Š€ÀÇ€a€ÀqÒ–/ßE/º»Q3Ìœ¹ÁzÃ-¤ pxá†Â|€gÍÚà&þèæž>}‘ußo¤étæš0 $ŒŸ½zõ†8ÎstƒâÄ ³!¦ña÷jÀ.æ’!ßâÅÛùUBïNóÀsçnâWo%CKœ[…a€0Û3ÖËæ—¯&B7X¶l§¯hî ø¤”HrþüUúé§]ü™ß3<Ä èìcÀ0€}Ü…4çwßmIT¼´pá6þ­9&mw0Âþ4¨ÝŽEz¾‹¯RóæUܺ“h‘"9ùÛ¼ná8T¾|!·0óàÌiPÿð©x`0µkWCœi‡EƒÐ#9`MìcÀ0€}Ü™œÀ€a ¢é‚} °;“Ó0 à€A4]°Ãöqgr:†0ˆ¦ ö1`À>îLN`À0€ÑtÁ> ØÇÉé pÀ š.ØÇ€aû¸39€ÃDÓû0 `w&§0`Àƒhº`†ìãÎät 8`MìcÀ0€}Ü™œÀ€a ¢é‚} °;“Ó0 à€A4]°Ãöqgr:†0ˆ¦ ö1`À>îLN`À0€ÑtÁ> ØÇÉé pÀ š.ØÇ€aû¸39€ÃDÓû0 `w&§0`Àƒhº`†ìãÎät 8`MìcÀ0€}Ü™œÀ@X»HÚ½{7½ùæ›@spº°eKÊ›÷*(p)8Fx)… ¦‘#GÔ‹°f€U«VQÍš5©F”>}ú€:j2; ¤Œ3ÒÎùIŽ/‘={ö¤Ü¹s;kMoÂÀçŸNk×® ¨ d6:@À(4D2 Dòè™¶ŒÃ£ÐÉ0 É£gÚ0"B ¸—ÉTÀâÅ‹Å*Ñ£GÕxéÒ%zçwÜÊÏ’% ÝsÏ=Ô²eKЉ‰q‹óçaóæÍ4uêT>|8]¼x‘HO>ù$Ý{ï½þdwKå4]ºtôÔSO¹…‡ëƒY‚82GŽ¡íÛ·±ÄøE]¿~Ö­['DVºti*Y²$]½z•ÆG|ðAü ~„œ?ž¶mÛ&)¯]»&åÿõ×_~䌟äСCôÐCôå—_RžþøcaȪ˜å®ˆ1¾ÀUùÄ,ˆÄuw×Ö£„ÊW=Ç À ¿dÉ!~è:`â!C†XÌÆhîaH|áò>fvWÅU—¥W0%Ú€ß'Ÿ|Bݺu£"EŠÈ$„“œH‡ iüøñ 5!dqŽd±õàƒÊ>iÒ$™Ma¿@^…Ì Yb³f7äVX- c†óP‚—.]*« ä\(ÂZ Cž9sæˆ8±b@Þ¼yŬ‰80ž¶ê@—xÿý÷I‹ˆC9†r925˜åƒ !ò`æF;±ŠQ?f~02ò ýÈUÐ`€"¶‚™±— W0¬nÀtÔƒ>ÀZ&ÀŠ1wî\™húöíK]»v•I(‡Û’ÚGŠ@‰!AÏh xˆPN!çjÀ&¬mÚ´ë ¬ °|€À`©A\³fÍdVAi¹ùuÙ¸‡Â… ›UÏ<ó •+WQ`,Èú XÔÑ¿+?V%(İ ±áéPÔ5 l(æ°Ø@D8üPŠÁP°A¬ TXÈЇH{Ð^”û믿JqºýžW]ÂuDHà 9d0V¥J•$"”Zô ý@”D½0AC_iРU­Z•ªT©"Lˆ8ô FŒä‚ˆx˧^Rƒ(¸˜± ¸ä\œ5‡âç*«# dX(rÇì "÷4ƒ MySQL++ Reference Manual MySQL++: comparable.h File Reference
MySQL++  3.2.5
comparable.h File Reference

Declares the Comparable<T> mixin. More...

Go to the source code of this file.

Classes

class  mysqlpp::Comparable< T >
 Mix-in that gives its subclass a full set of comparison operators. More...
 

Detailed Description

Declares the Comparable<T> mixin.

mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1ResultBase-members.html000755 000765 000024 00000027711 13515046515 026323 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::ResultBase Member List

This is the complete list of members for mysqlpp::ResultBase, including all inherited members.

copy(const ResultBase &other)mysqlpp::ResultBaseprotected
current_field_mysqlpp::ResultBasemutableprotected
disable_exceptions() constmysqlpp::OptionalExceptionsinline
driver_mysqlpp::ResultBaseprotected
enable_exceptions() constmysqlpp::OptionalExceptionsinline
fetch_field() constmysqlpp::ResultBaseinline
fetch_field(Fields::size_type i) constmysqlpp::ResultBaseinline
field(unsigned int i) constmysqlpp::ResultBaseinline
field_name(int i) constmysqlpp::ResultBaseinline
field_names() constmysqlpp::ResultBaseinline
field_num(const std::string &) constmysqlpp::ResultBase
field_type(int i) constmysqlpp::ResultBaseinline
field_types() constmysqlpp::ResultBaseinline
fields() constmysqlpp::ResultBaseinline
fields_mysqlpp::ResultBaseprotected
names_mysqlpp::ResultBaseprotected
num_fields() constmysqlpp::ResultBaseinline
OptionalExceptions(bool e=true)mysqlpp::OptionalExceptionsinline
ResultBase()mysqlpp::ResultBaseinlineprotected
ResultBase(MYSQL_RES *result, DBDriver *dbd, bool te=true)mysqlpp::ResultBaseprotected
ResultBase(const ResultBase &other)mysqlpp::ResultBaseinlineprotected
set_exceptions(bool e) constmysqlpp::OptionalExceptionsinlineprotected
table() constmysqlpp::ResultBaseinline
throw_exceptions() constmysqlpp::OptionalExceptionsinline
types_mysqlpp::ResultBaseprotected
~OptionalExceptions()mysqlpp::OptionalExceptionsinlinevirtual
~ResultBase()mysqlpp::ResultBaseinlinevirtual
mysql++-3.2.5/doc/html/refman/index.html000755 000765 000024 00000014633 13515046515 020614 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: MySQL++ Reference Manual
MySQL++  3.2.5
MySQL++ Reference Manual

Getting Started

The best place to get started is the user manual. It provides a guide to the example programs and more.

Major Classes

In MySQL++, the main user-facing classes are mysqlpp::Connection, mysqlpp::Query, mysqlpp::Row, mysqlpp::StoreQueryResult, and mysqlpp::UseQueryResult.

In addition, MySQL++ has a mechanism called Specialized SQL Structures (SSQLS), which allow you to create C++ structures that parallel the definition of the tables in your database schema. These let you manipulate the data in your database using native C++ data structures. Programs using this feature often include very little SQL code, because MySQL++ can generate most of what you need automatically when using SSQLSes. There is a whole chapter in the user manual on how to use this feature of the library, plus a section in the user manual's tutorial chapter to introduce it. It's possible to use MySQL++ effectively without using SSQLS, but it sure makes some things a lot easier.

Major Files

The only two header files your program ever needs to include are mysql++.h, and optionally custom.h. (The latter implements the SSQLS mechanism.) All of the other files are used within the library only.

If You Have Questions...

If you want to email someone to ask questions about this library, we greatly prefer that you send mail to the MySQL++ mailing list, which you can subscribe to here: http://lists.mysql.com/plusplus

That mailing list is archived, so if you have questions, do a search to see if the question has been asked before.

You may find people's individual email addresses in various files within the MySQL++ distribution. Please do not send mail to them unless you are sending something that is inherently personal. Questions that are about MySQL++ usage may well be ignored if you send them to our personal email accounts. Those of us still active in MySQL++ development monitor the mailing list, so you aren't getting any extra "coverage" by sending messages to those addresses in addition to the mailing list.

Licensing

MySQL++ is licensed under the GNU Lesser General Public License, which you should have received with the distribution package in a file called "LGPL" or "LICENSE". You can also view it here: http://www.gnu.org/licenses/lgpl.html or receive a copy by writing to Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

mysql++-3.2.5/doc/html/refman/functions_func_h.html000755 000765 000024 00000006300 13515046515 023027 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Class Members - Functions
MySQL++  3.2.5
 

- h -

mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1ssqlsxlat_1_1CommandLine.html000755 000765 000024 00000072457 13515046515 027436 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::ssqlsxlat::CommandLine Class Reference
MySQL++  3.2.5
mysqlpp::ssqlsxlat::CommandLine Class Reference

Command line parser for MySQL++'s ssqlsxlat tool. More...

#include <cmdline.h>

Inheritance diagram for mysqlpp::ssqlsxlat::CommandLine:
Collaboration diagram for mysqlpp::ssqlsxlat::CommandLine:

Public Types

enum  SourceSink { ss_unknown, ss_ssqls1, ss_ssqls2, ss_table }
 Types of inputs that ssqlsxlat will accept. More...
 
- Public Types inherited from mysqlpp::CommandLineBase
typedef std::vector< std::string > ArgumentList
 Type for a list of arguments. More...
 
typedef ArgumentList::const_iterator ArgumentListIt
 Iterator into ArgumentList.
 

Public Member Functions

 CommandLine (int argc, char *const argv[])
 Constructor. More...
 
void print_usage () const
 Show a message explaining the program's proper usage.
 
const char * input () const
 Return the name of the input source. More...
 
SourceSink input_source () const
 The input source type.
 
SourceSink output_sink () const
 The output sink (destination) type.
 
const char * output () const
 The base name of the output file.
 
const char * pass () const
 DB password, when input type is is_table.
 
const char * server () const
 DB server name, when input type is is_table.
 
const char * user () const
 DB user name, when input type is is_table.
 
- Public Member Functions inherited from mysqlpp::CommandLineBase
const ArgumentListextra_args () const
 Get reference to list of command line arguments past the last flag and its possible argument. More...
 
 operator void * () const
 Return truthy value if command line was parsed successfully.
 

Additional Inherited Members

- Protected Member Functions inherited from mysqlpp::CommandLineBase
 CommandLineBase (int argc, char *const argv[], const char *opts)
 Hidden ctor to prevent instantiation. More...
 
virtual ~CommandLineBase ()
 Hidden dtor to prevent instantiation.
 
void finish_parse ()
 If object is still marked as "successful", save non-option arguments to extra_args_ list. Subclass ctor should call this after the parse_next() loop gets EOF.
 
const char * option_argument () const
 Accessor for getopt()'s optarg global.
 
int option_index () const
 Accessor for getopt()'s optind global.
 
void parse_error (const char *message=0)
 Called by a subclass when encountering a command line parsing error. More...
 
int parse_next () const
 Wrapper for getopt()
 
const char * program_name () const
 Get the file name of the program's executable.
 
bool successful () const
 Returns true if nothing has gone wrong since calling the ctor.
 

Detailed Description

Command line parser for MySQL++'s ssqlsxlat tool.

Member Enumeration Documentation

◆ SourceSink

Types of inputs that ssqlsxlat will accept.

Public types

Enumerator
ss_unknown 

no known input type given yet

ss_ssqls1 

a C++ file containing an SSQLS v1 declaration

ss_ssqls2 

an SSQLS v2 file

ss_table 

an existing DB table schema

Constructor & Destructor Documentation

◆ CommandLine()

Member Function Documentation

◆ input()

const char* mysqlpp::ssqlsxlat::CommandLine::input ( ) const
inline

Return the name of the input source.

This can be a file name, a table name, etc. Call input_source() to determine the proper interpretation.


The documentation for this class was generated from the following files:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1ReadTimeoutOption__inherit__graph.png000644 000765 000024 00000020772 13515046516 031254 0ustar00tangentstaff000000 000000 ‰PNG  IHDRзcUЖsRGB®Îé!´IDATxí]xTU>zï½7YpUŠâ Š€‚| ˆ¨ ȪK‘ÝEPÀ.²€ ".ŠºÒ›RéEz‡Ð ÅPIÞÞÿ°÷ñ2™ÉL2“Ìä½s¾o2on=÷¿çÜSÞ›IÃ0f ¤˜,JŒ´ô”>‚€ @ÑYA@H;¢@iÇNz $ $B ø@6?ú¥ëŽ;èÀA™[&M_î¿ÿ~ªV­ZúNèÑ‘DÈLÔ·o_$=äeC F™D¼žÊtHÆ iýúõ>Kd¼ "P®\¹ Ξö©%J;vÒS$‚È€ àbüAOú:Q Ç‹€à¢@þ '}€(P:‹@=húôéé<ËÝá¿üòKzòÉ'©X±bT¹rezöÙgiåÊ•>Ï}ãÆ úý÷ß¹=îµµlÙ’Î;çs'6Jç]_½z59r$g!zóÍ7 Êš-[6zï½÷¨W¯^tìØ1jÑ¢}þùç>ÍÿꫯR×®]¹mBBÅÆÆRbb¢O}ÚÈö C.\`Aزe ?ž÷§íºuëèèÑ£üùÖ­[,pqqq¦,àBxçγ Nôß~ûÔM4³.N:E7n䶘ïâÅ‹IêñscÌK—.ѪU«ø]7º}û¶yÚïÛ·ÇB™&ÌwóæMS ããã <ƒV¬XAãÆ£wß}—~üñGêÓ§½ýöÛùäãäÉ“ê&L˜`Ž=qâD#,,Ì8sæŒ1fÌ#wîÜF¾|ù¸_«V­ u:s[%¸æØ 0ªW¯ntïÞëªV­jŒ9’¯#""ŒÆó˜áááF®\¹ŒÙ³gsݼyóxŒ&Mšh§„ϨY³&ó…Ë—/ç²_~ù…Û÷ìÙÓ(Z´(_wèÐÁ(Q¢„¡Š?[ÿDEEq¿I“&)ÍL²dÉÂm4h`¨Ã€¯ÕÃà 6Œñ)T¨·Ã:”Òq0¯X+ðïÊò™øXùñt=ÊŒO"ØÞáTÊAJñØüùÏf—F ]½z•žþyš|˜®\¹ÂñŠRv•ôœ¥K—溃²…úÇ?þÁUåË—§ÞAO<ñ½õÖ[|xÏ‘eÏž?[ÿÔ®]›Ë­n¤»9ÀwÇŽé™gž¡ 6X‡`K ·pÊ”)Ìæ;tè½óÎ;f»½{÷RïÞ½ÙJ¢íÒ¥KÙz› lzá‚Ð!FP'6+ M𤬠5oÞÜtãºtéBP¸ZpÁÔiO;w¦9r„4mÚ4R'-»:ê¤&eAHY‚ ãý…^ 5jxÄ&àm̹{÷n³ý!C(gΜT¥JRVŒy@%>üñǤ,)·E‚ýAp½”åãk×?×®]#¸{ʺšUžæ0¸\Ì;—òçÏO/¾ø"×€—¶m۲먛VªT‰)eYY‘PŽCÀîtU¯´dÉ’æêd#K•7o^.Sn‹éÏ·oßž ¼ 8íÚµã2(N©R¥8PÇ;ñ̉'¨nݺ¤Ü.sŽ”žëªX±¢Ù Òq®­õàñ”7BÆÍÓꈠ¦ÔΡ×hUB`jóÀ«&àrBä‚’øB8eÛ´iÃnÜ7(Ožúè#n‡ìšR>3S…Ì•²\§3dÈ€)¡4”«i(kh¨{1\ïš…{íµ× eý¸”àsæ }õK¹©ÆøñãÍ6ÞæPJÉóÖ¯_?YN)+¯QgÙ”ò*­Îc»b¬”ŒyP)osno™5 ³œ©(µ ”ÚÅAi <ï¿ÿ~²®Êç7T’ÁPy²:«*e¨€ÝPî’©@Ö†P ï¿ÿÞ€€¡­•´p«{N†²2†º¯b­öùc+×ÏP÷’’¥‘}™CÝÓq»>0€õ« ]šyKi™U2åêÒËm€ë†…ŽÕ ŸlšÂ… Ó£>š¬EŠá—ÛJ—BÄZxy"d´ÒJWÝ£ñÚÝÓ ôØëÇKè¢@÷°à˜cçΜ$°f•,M|º¬U«–Û´2ÒÞžå¨OÏ`<#æð 5Êt?¬ˆû7¸yé.ãd£}qÜRLÁaOe¦µË+f¦Ý^CIc‡Þž˜ÅÄ\Wh:ä¡LsÕ™ë"SÆ@xr÷IìN«WŸ¡‚³«ûD…ì¾T~4*3.2S*[ÁC v§"E:©ÇabÕÓ í¾ÔL»¾L—DÈ´H§’ñ'.©¬ÜpõÄC˜úþÑõHQò'­S9¤4<’D<¦qÞ¼íêÛ¥Y•JT_ؘAe”€# I„€C˜gÌØ¢¾†È÷…fÎŒ Ì 2JÀ 8¤þ¸wïõô÷ݯžÃ­_/×Åú?°ŒpD©ÿλU¹oaæ@x:aÁ‚(ó³\„¢@¡³&'pÙâãïÝÿQ?½ Òö[Ìz¹DBg/˜“-[Žª_¸¹š„+õ3EEP¿üs9I¹|>¢@Á߃$ ûžüöÒÙsçnKÒV>Q àïɳgGªß–‹7ËôÅ; âÆi0Bè](„6ã×_Òµk7=rtèÐ9Ú¿ÿ¬Çz©ÈxD2s3ΙÉ7O=5€7ož¸qžð F¹(P0Pw3g\\¼úYÞ|óÔM5Áà V¡ÐA@(DöbùòßÔo]ßf ¦~g.ŒŸƒƒÕ‰ˆÈÆ/Ü:sæ mÛv áÂ… ©páÂ>)›{¸Ó^ºxñbjÒ¤ EFFÒË/¿Lï¿ÿ>•(Q‚H­[·ö‰'WþoܸA·oßN;SÒ“l™ÆNë¾ÆÅÅÑ™3g¨\¹rÅ:{ö,Ýÿý”'Oºuë?ž‡>vìU®\™²fÍJ8Õ÷ìÙÃïhfNoíß¿ŸräÈA*T «W¯Rîܹ)[¶»°_»vvïÞM¥K—¦òåË›ý¢££)_¾|ê&ªÁ|Ô¨Qƒ^yåªY³&­ZµŠùAã^½zÑ#þøcî·fÍC¹…<§RxëÖ¼öë×× ¾4.àsûJ:t0Ô“¾6Ï,íN9Þ…swbâ´¾xñ"­^½š`•æÌ™C?þ¸/ܼy“-ÊK/½D9s椽{÷¬ÉC=Ä1ŠÚ}zï½÷¸<**Š­ˆ>Í1ßáÇÙZôèуçAœìÇ7ÙY¾|9»i_|ñ)æru8˜õú"K–,kqäÈ]Äóa¥ôä“ORÏž=éÁLÆ¿î7îÅ_¤† ÒåË—ÙR6jÔˆŸæÀúAà±wïÞ„µcmK—.%Xb§“( € (P€c¸e‡JÖ Â³aÃN@ –€€©S™…n’Pô‡û6`Às ($„VY:ý!¼?ÿü³Ù¦}ûö¤N~*^¼8]¿~Ý>¸îHY»$î\;¸„ÊúÐàÁƒ õp=ÑöíÛYÐOY-RVŒÞxã ‚+¹oß>îV©R%êÛ·/×C‘@äw'ÿ‘ÈÍî#Ã¥ &!!A4ß?Î׈#¾þúk³¼L™2/Aø¬q ¬„&Ý×õy=ôÕT»vm}Éñb-å6òµY¡.`!”ûÅÊ®Ë+V¬¨/I¹b|­ã7³ÂrqâÄ þdå±dÉ’\K ²b‚˜ä®pÐQ 7›ä€7*Uª7ÁC’]ºták)‚|“°å€û¦IŸäø áÄ)äƒví¼Ã}rGȾ!ñ0nÜ8r}(sÅŠìVáIgM§OŸÖ—´nÝ:¾†2[Ý<³º@6„¤ƒŠ¥øü€`=Ap…’#à]R’÷ql „eÀ)_«V-jÄ/(Ã}•¿ýío”={vzâ‰'hîܹü‚û—HÒΰ(C† ¡ .ТE‹¨U«V„Tµ;BÆîàØ±cÙ„ ŸýôSn«Ô®];š2e Ç&z›q¯ if¸XH}ÿðüWþõº+©¬ uìØ‘à:bnÄ<óçÏ÷ÈžËéï¶üBîŒ=:]ö1î—@HA°$H à§ïñ@Y?©Ô/—ÁB¡§;îÓ€¹C_(†5náJp?}„€ÄV‚õ›:u*©48ßÓÂ=$+¹òo­Cön%î{áiW%¶¶Mí5”¼ËêR‹œÍÚC@ñÒ…±üº=,,Öß–Õʃv¸Yê.5­Çp÷Ž,, 7Â<Ö¹t{Wþu9Þ‘¨_¿¾µH®½ àxÎ >i®Öi`(ÒÔPÄ#éM˜G[ÇôžKÆ'y”'½„'ý˜1cÒkxãâæ¯PÆ! Y¸ŒÃZf²!¢@!¼© ¾}M!„—`{ÖDBx‹—-Û£nnž a…5[¦±íò»p ¶R÷rbUºÛq î…I;Ä‘#GòÓ!ΦWöââhР-*µF“'¿nÞÌõÚ1„XŸõ a6SÅšíÒØøš³höìHe}6©›¶‰T¦L}jÔ¨Š–e»5H ¢[:sf$? ¦¾t÷ÁÎeÕÑl‰…àöÇÄ\§µk* ”¨IPß-ÚÎï!ȪãY AX¸ðÞ× À^llœúšÄÝ/¶… »ŽfI(·Ö¬-Š«{_7È–-«Ê^E† §Â’(PˆÉ@tôõË8ÇÕÏlÝS øøDõ»Õçä'¨Bl»H(ÄvdþümêëaɸB,´xñ®dåR\D‚‹²ÙgÌØ¢¾[”üž,YàÆI6.`A. òX§?tè¼ú*öYUtÏ}Óõøvéš5ûÕï&ÜÐEòˆ…À&hp¿÷}R¢E‹v¤T-uŒ€(PžÒt3gnNñ~~dÆŒÍ) !uŒ€(Pîiº¨¨ê‡ ¯xªærdæ"#©ß:¸šb;©Ì8l÷,\ÆAØ™ví:¥~ݧl’ôõ©S—UF.«úݶ»?B‚ñCP¶’%k–-MØîë iB!D;uU«f":ÙÿH=yò$Íœ9“{ì1kC¹ááçyÖówß‚ÀL ââ↥oß¾ÉI¦@ºÅСCõ¥¼ ŽFàÂ… ôüóÏ»Å@b ·°H¡ à¢@¾á$­·ˆ¹…E ßò 'i%¸EÀcÁmë,\ºt)íÝ»—Þzë­tå)Ìk×®%™£hÑ¢Ô°aCzä‘G’”âCTT}ÿý÷¼®±cÇz²FtîÜ9jÔ¨QÈdNèúõë”/_>“ï7nÐW_}E»wï¦S§NQ©R¥8%üòË/S¡B…Ìv)]ܺu‹)W®\„lñ¸qãèïÿ»ÏýS;­u™ÞHlJzÓ¶mÛèêÕ«T±bE~•-[–>Lï¾û.ýøãŸsíÚµ‹"""¨téÒæ+22’ùÐe… &Ö;wÎCZ\¿~==óÌ3ÏCÄÄÄЛo¾I , ?üáÔ»wozðÁé—_~¡×^{Ž=êÓT£F¢‘#Gr[(ÒÍ›7É0 Ÿú¦W#¿-ÐíÛ· á4>¯nX`Q•*Uâ“âøñã„úÊ•+«‚Ùø¤Ì™3g’“ )B”åÉ“‡×xàÀŒrM ÁÍž=;]¹r…J”(¡«ù§Í‘#[¥ p{TBÀ~ÿýw>­Nœ8A±±±TµjU ç¾è^ñ9kÖ¬<Žõ3Õ­[—7Ÿ;¨?˜ï…^ U«VQëÖ­u1ã«€5äÎÛ,ÇÖ±ÿ~*S¦ )R$Iæ;v옺qZÜ,®Vë e…Õ{饗Ì6úÓŸXÑP<%ÖsäÈ>å¡„—.]¢èèhæIcö°˜ïا°°0›„ñ€;µJ•*”%K®Óóè=žX[þüùéòåËÜæìÙ³li¦NÊs|þùçInD>õÔSÔ£GB9”#¥ýƒ÷d.^¼Èø 6ŒçÓ̦Ä+¬!ð&°~À5ä·:tˆúôé÷T»vmÞЭ[·òçûî»à†|ðÁ¬HŸ}ö—C :vìHo¼ñ÷{öìÉëzî¹ç¸-¬Ë¢E‹C½¿ÝºuãþK–,á}p¹‹ÏVµ}ûöôí·ßòøàËÓþýç?ÿ!X6Ð!Cè/ù ¯õ¿ÿý/¤)ñ ùÄ^ïܹ“ X¯þýû'9ôxà4ü ˜ ‡Â&Y¸¦3fðA`qÊ5oÞœ¡O¨_ý•O´Çœ¾ùædlÆ_ŒM|ôÑGl-ÚéþîÖ aÀ‰ýóÏ?³â@ÉÖ­[g6…bâǦ!¦ùâ‹/¸Ö ʬ­šëg4‚ÀÁÚàõÓO?ñpæÌPÔÏ;—–/_ÎB†ùûõëG“'O¦}ûö±eøî»ïxã.\Èë@90Mœ8‘­‡ —´xÂ8ùaYæÍ›ÇŠ:gÎVð®°æ>¬§fÍš¼&(>öýqø`€,Ø”)SRd«^½zË8ð ˆÕÜQõêÕ¹øôéÓüîiÿþú׿RÓ¦M©qãÆl±¬cùÂ+zVI¢Øƒ@PÀ¨K—.l54hÀ|Á¥ÁI¨?ÜÃÕÀI§…>ðC=Ä'|z¸6PÏ„ ¨W¯^tðàABß¶mÛ²kƒv°*ž¨B… Ô¬Y3žíJ–,ɧ»nSB£ÇÑVŸákrýŒþ°Jà ¯ÿûß´råJ^3\AЊ+ØE’Âí;¹yóf‚; A}øá‡ùEpGàC™p·ücƒýy” ¬Hùòåyˆ7`= ,È‚ <ñÂÁ~`ñánÿñärk×®eëÕ¢E ^ð@²¤†à €¬n£µ?\3°yÛ?näòÇ^a…¡¬pE-ƒ@ß.œfBgR´ ÀAÚgÆ©¶zõj^„. 0a}àê@ùP§­v+ÐÖ#ೕàßZ ‚«Ç@¹V\£No >{#Æ€5mÙ²…OhX´W_}•c< \1M`€õ?žÐ †øHc×d=¥SãÂé¹ô;„Dæ@¼¥IóÁºÀÅÒÞ+ †Z°Q=ö„”Ði9ð$°ÚÍ×í¼íŸ»9|á{­ (,s (` ¤ÅS8 Aè€Â$ƒ]êÚµ+ûа:pAàþÀ¿!Ææ‚à¢x"œèš°©ëÐE<¬¦?%e4;y¸ÀÉEÐîøÃxˆ4át„ÿ½lÙ2V¬ ¨8X@põaÓJ¾ì…ž±ö„ƒfûöíœx²àНÇC|¢ñB\3MHM»#ì1¸Lˆ—tÒm‘€Õ¯_Ÿc3”yÛ?´q%o¼¢½^ƒk_?Ì…ó•ܯ€[ƒ{0¥ÈàƒÃGE&fY´Ã)›6mgÎàËâÔôDØdÄ!8)á¯#†Òn$ú`^dŒà>bóÑÁ÷F«OJ×ÏÜÈÍð†ñ@XÆ„…ÅüàinÔ#pÅiŽ“Ÿae¡àà÷ qÖ§Çp3]ÀŠpˆgÄE˜ëýðÃ9&„3Ĉ/¸{P(Ä! X5¬®ê† øZ3‡Œ+cBµuF¯J‚Ãëí·ßf ô!‰>)íÆE_7Úƒ¼ñz·Uúü ˜òÆž> 0P÷ðK5!Œ P‡8S‡S™d ÄumÚ´á“g½w ÇÆXp ÈÁ}ÂæÔªU‹}zÔCA0„îd÷îÝQÌŠ‹$@“&M8n€"[?£ÕÁg„8¦sçÎtL%K†ÊuDÜOÜ?‚ÕE †qûÁúNš4‰³~X#ú_¬| vrG®|X×o½F_×Ïz<¸vp5‘ÑÒ ·3\ œúéA¸†“ó#Ím%¬ÖU»mˆE ¸hÌ#ðt[Ç Ä50Vx·ÆezlXR:ÀÝ/ì ¿è>xGöB¯S×{à æ:^Jû§ûã`V8X])%^]Û¦æ3Ö@]{,ÿïab#Å»ßÛ• ²Eî– 7ú|!ŒaðD®ª§vi-/V¬á厠TV²&5à²ê´®µMz^{à ચì‰;åA=êðr%X+G¹ÖéÏ)ñäz é>xO‰Wk»@^g¨A“çÏŸÏæV§GÓ²¸ÖŒ•§SwpqŸC(tHiÿB•ë ¸p¡ †ð%¸C %.ópî”2A ³" ”YwNø DBb„‰ÌŠ€Ç$î ‚ÀÝ'&<áLfÕ¨{ê$å‚€Ó€^XŸ1ÔëO–…Óò.^ˆ–È+FÒ@ðŒ€(gl¤FðŠ€(Wˆ¤ àQ ÏØH àÿì±çF{ÑŸ›IEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1SetCharsetNameOption__inherit__graph.png000644 000765 000024 00000022100 13515046516 031663 0ustar00tangentstaff000000 000000 ‰PNG  IHDRç·ézI×sRGB®Îé#úIDATxíœUÅõǤ7¥Š € BP 46"`4‚QDŒbAK°E!€BGŠbDº ‘&È_ŠH‘*¤·ûŸïà\Þ¾}o÷±°o¹ûÎù|Ø{ïôùÍüæœ9sß%‹çy#EEPÎ7¦f7-ºç|k•¶GPdoVAPÎO”œçç¸h«Qrê$PÎSØsfZÙ½{·|õÕW™¶‰Ü±B… ÉÍ7ßœ©!ÈÔä\³fÜ{ï½™zµs5kÖ”E‹eêîgjrº‘ûé§Ÿ¤|ùòîQ¯Gà™gž‘/¾ø"à½H½ùºçL#M¡dJÎ ]+URG@É™:FšBÈ”œ»Vª¤Ž€’3uŒ4…"!(93öÈ•:T:wî9ò‡r ѲeK©X±¢/^\nºé&éÓ§œ|XˆCÀ‹rÛ¶m+¯½öš ã}œ9s¦Ì˜1C~ýõW?ÜaLΟéiU" `.ÓŠÑ žé²g&AL}œ7ožMã7Ú+y4hàÝrË-þóu×]ç=zÔ«W¯ž×°aC¿\3Y½lÙ²yf‚{K–,ñ.½ôR/_¾|^–,Y¼Ò¥K{Ë—/·iÍ„õÌ«g^Ö¬YmúÚµk{yóæµq=zôðÌ›/öþð ¼Â… {9sæ´õ-ç×GXýúõm9räð.¸ào̘1~òÈ#rÉ%—Øtí۷ЂSAW^y¥uÚ@zÒñ "¦¢ÌQg´¦ÐfL\Ìo¤gÏžb´“½ÇéC[ &vöìÙÅhkþ‡2è—“”êpiB¯ôS—|F£‹Ñ¾Ò¥K»Ø­X±ÂOÚ«W/)X° ÝûÖ¨QCV¯^íÇéÍ)”œf΄IŒTªTÉ^Ñ,ˆ1“¬3¤I“&Vƒ Ø÷¡MˆÂ=š÷ª«®²$4æœlذÁÆ×­[×^ù¹¢IøûÀÆüó55yÊ•+çg%q{A?"솅O+‹D¸ Á°HãäLë`/Ž ”*UÊÞ‚“<ÄNòäÉc÷ùîY¯§PrF˜ hªXâð8p ˜ý¥4oÞÜf3û9yöÙg­ÉŠÉì9­ãÅMÈ-[¶øÅ‡š~ào7›7oöƒp¡•BÉc ÷3‡Üà¥eÑy÷ÝwCBOÝN:ÕšÐwÝu—w¦u¸…méÒ¥~`€ ¹ÄбKŸˆ×Øfa""CŸï¸ãk>÷ÜsrÏ=÷ˆq~Ø\îÌýfÕªU­–ÅôD‹¢áØ“²O4Ž#0`@Ôš˜Ôìs15!;û9gj“ ï*{HLÙ¾}ûZS¹zõê¶¼§žzÊ7¹ÙÛ²eŠVÄL'}·nÝ¡ÑGŒaµ=&f¨©­ÌUSK MÙ»woÛ.úÉ~›}j¨Fvéõ%gtl¢Æ¸U2Þ}÷ÝÖ$ã¼ÐÉßþö7_Ë(P@0õ^|ñEÉŸ?¿ð¢N&~,\«V-û€ËÇÕ™ÎÜcÖ²_+Z´¨|üñÇö¨G‹ö·¿ZµjÖñ2|øp??ÚMˆ°H )¹"Ü¿ð ö ÙÿbðãeÚÆ^ÑI´:p(a °`"Ónpa¢CÑ.òcjÓþhBÞÐ~GK—páu3ÇÔì3=J‰©Ð°D?þ¸g&aX¨ç™3FϘšž1[“ŧ=n1g™žñÀúG)¡ 9Já¸rŒvóÌ~04Ú¯­êÍäÓ$IÃGBûÌŸ?ß3fs²¥¤T‡ñ¸zf™,ôÑh~ÏhmÏœGL“ÖÀD9JIˆ[§ÇŠ‹‰ˆf„}çw’UÁ¾Ž#„H‚Æuæg¤øÐ0ÊAE43ÿÒ"hÈXÚ­Ž\¹r ÿ" }Ä2PI;JÎ4b‡‰øþûï‹YÅí¹^‹±¦áµ×^›,ûe—]fßJñ[_LÆô”xÔ‘žízÙY0-‚Þ‰híÇ¡bÞZ±Žðc‰hy4üüGÀ}¦$“Ch:„Îÿ¹¨-LP”œ™hà7o>ýÒ}&êVÂv%!öœüÒ½YGzÿþc2jÔsFY9³vÑïï'‚$9ãõ挜0yó^%^Ø@î¿¿—ù בŒlJ\êæÇ™]259y[%û»’ÌÍ&MÞ2om0oÍ2¿ŒIîýM’X€î91L)7rãÆÝ–˜æEcÚ.H9±Æ%g`†*zCÇ[d^¹Ëf¬‘yóV›ßIê—¢£œ%gpÆ*jKGŽüÖüû„çÕñãGM«ÁA@Éœ±ŠØÒ•+·š—,N}χ'OzÆ´1­ %g°Æ+YkÇ[hMZléÒ æ—0;]^Š€’3 çšÈ™´.,{ö¬òé§jÚ:<‚zUruäL».\/[¶$+èøñ“2r¤š¶ZÛt%g€GðÓOOyi#uaÍšm²|ùéÏ¡DJ£aç7JÎó{|¢¶ÇϘ1ÉMZ—£È«\”œ»¯¿þÑ|‡è`ÔÖ³UÓ6*<ˆPrb˜’7rìØæ+z§¿/›<…˜¯ÿí5ßÏ])JÀ€’3ƒÞÄ#GŽË¤IKì™fΜÙ̇›OýÔ͙3»ÿ|¼=¤L2õ‹ïÁ’Ô[½wïAyê©Û“$ä¥÷ ›OhÞ‘$¼P¡È_vO’HÎK2õgJÎKÄÓ©Q8‡ºua>SÙ'jÐb㌀~¦$΀kuŠ@Ìèž3f¨4¡"_”œñÅ[kSbF@É3TšPˆ/JÎøâ­µ)1# äŒ*M¨Ä%g|ñÖÚ˜PrÆ •&Tâ‹€’3¾xkmŠ@Ì(9c†J*ñE@É_¼µ6E f”œ1C¥ ø" äŒ/ÞZ›"3JΘ¡Ò„Š@|PrÆo­Mˆ%gÌPiBE ¾(9㋷֦Č€’3f¨4¡"_”œñÅ[kSbF@É3TšPˆ/JÎøâ­µ)1# äŒ*M¨Ä%g|ñÖÚ˜PrÆ •&Tâ‹€’3¾xkmŠ@Ì(9c†J*ñE@É_¼µ6E f”œ1C¥ ø" äŒ/ÞZ›"3JΘ¡Ò„Š@|PrÆo­Mˆ%gÌPiBE ¾(9㋷֦Č€þ·ó¿AµmÛ6)Q¢DÌÀo ³eË'9r•,YÞ8ßšs{š7o.ãÇ9}fO¨ä áž={JÕªUÃBõ1½x÷ÝwÓ»ŠÀ•¯ä ²† Ê 7ܪéÀ„ dß¾}é]M Ê×=g †K›H(9i´µ¯B@ɨáÒÆ&JÎDmík PržÅpíß¿_ž|òI¹üòËí1̽÷Þ+}ô‘=zÔ/u÷îÝIžýs³jÕ*iÒ¤‰üòË/¡Ái¾_´h‘´lÙR*V¬(Å‹—›nºIúôé#'OžŒ©ÌãÇË®]»ü´mÛ¶•Ñ£GûÏz_”œg÷믿.”FÉ«¯¾j Ñ©S'éÒ¥‹_*$5j”ÿzsâÄ à±’'4oøýäÉ“åú믗 H‡䥗^’’%KJ÷îÝ¥Y³frìØ±ð,Éž'Nœ(EŠñÓݶÁEìܹÓÛºu«wäÈïÛo¿õ–.]êѧ3‘V­Zyæ%„3É’ÙÓ”ÌÞÃXûw¦ädÒB¼¦M›Ú‰íê1oy³g϶ä4ZÓNö¬Y³zFËz=zôð®¼òJ¯J•*6|Ö¬Yö )çÍ›gï[´haËe¡(V¬˜Q™3gzF«Ù49räð®»î:¯hÑ¢6Θž6|Ê”)ö9ô‹DåÊ•=£ÝmpΜ9½úõëÛ:(ç‚ .ðÆŒc‰J;©—~Ѧ2eÊØv“‘¶ÒŸ¼yóz¹sç¶mƒÜH×®]mŸ*Uªä·ýÖ[oµØ1üQr&i šµi4FÌ$•‡zH>ûì31$²{ÇÞ½{‹ÑŒò»ßýμF—Åî%³gÏ.C† ±æ%U-[¶LjÕª%FŠ!J²ÚV£±ÄQŒ&’±cÇÚkëÖ­ÅÒÆa®[·ÎÏËÞ©S§ŽænhÇÕW_-kÖ¬qAbˆ'?ýô“ìÙ³G7n,>ø \sÍ5þþÒhQ)[¶¬Ÿž=t›6mlýì¡Æ–zõê m¢ÈòåËåá‡ò¾ð òå—_&i£_˜ÞÄŒ€’3f¨’'|ï½÷ĘŸÒ¹sg1&Ÿðê_5¤]»vÉÿbL^»O… ‘¤W¯^R°`A»¤,câÊ’%Kä矖_|Ñî Ùã ëg?pà€°°`DcvŠÑ†~‹Ê¥—^*FkŠÑæB<‹F4Y¼x±%ùŒ¶µ‹ ûêM›6ÉŠ+l¶òåËËã?nã!)òã?Ú«þIJδáf5$Ä4&¢uq¿qãF«M>ùä™?~Ä’ñ¤æÉ“'b8œ§å"ÊIÍš5Ý­T¨PAð´¢ÃÍfLR›ÆÅ•+WÎÝZ­Ï/þG ìÄìqí-Z m·1{mmWI;JÎ4b4h +W®ôKàW-=ö˜}ƼM‹˜}_²lx]‘ï¾ûÎs¦,xiÑœ‘^Ÿ:uª55ïºë.?ïæÍ›ý{㘲÷¡Ä÷#»qõG…YŽ8óóYåÜ" /¾§OˆY @áèäƒ>ã ãµG˜®ÆsjKÆ d¿zöy¦UV¯^Ý‹ϰ±Õ¤˜Ôùòå³E¡9iGß¾}-IÙ*THæÎk÷˜ÇíÛ·÷«5\kÓ&ò\rÉ%BNCcªÇ•Ÿ‰¦dOÍTºti1ž]»O¥n•ôA@É™F\Ñ&ÐC 7‘!"Žãý”‹.ºÈ–ÌoŸþyßùs&†´üƒ„#FŒŽ;Zg&$ûÎPMŠÖ$œóÖ7ß|ÓÖ6½óÎ;eðàÁv/èºÊY&?‹Ãì4žc>|¸­‡e@TF®­ìM‡*÷ß¿T«VMÐîì1Ýo/IIã»úôšF’9p4àLRLœUO¥=· =tñ\9ä\2­BÞÏ?ÿÜÛ¾}»îhïÝvÛmÉŠ$­q yfÏëq..¥ 6Ì3žZÛîðxwÎ3g¡œ³SÞžƒFJ“Ö0=JI†Ü@Õœi\Ô\6´¯ï¥$gû…42žZÌe<¢f!‘·Þzˆ…×KZ4_j‚IοpÉ•+—ð/’àè‰æeŽ”^ÃÎäÞ‡³+Os§ °žUÎ$Ù3>ýôÓbÿϸ¶ºuëÚã˜3Ψ⎀jθCž¶ qês4m™CrñrƒJ0PÍŒqÒV& JÎL4èÇÇöÓ°LÔåLÝ%g&ÞcÇN˜—¾Ê$½Ñn€€î9Ãæ_ß ¢äÎ]Áx_ÉO4æ—FAì‚p&¬r%çoXp¬0räÈÓÈìî£Vš—vÊË/ÿS.»,ùIºã^ÜB[ãÑÆ,}Æ£"­#ý8xð¨\qEóó­ãæ-žkÍhËô«LKŽƒtÏ/¨Ó±ž/¾øÞ|ZäÔ/@&Nüμǫ¿IG¸ãV´’3nP§_E£G/0ïÁžÊŽÉ´iËÓ¯2-9n(9ãuúT´{÷A™={•}‰²gÏb^¼_>•i©qE@ÉW¸Ï}e“&þ'¥sÖ9eÊÿ ûP•`# ä öø™ÏnÎOvtrüø ™<ùô£ÞÅ„m¾’3ÀC¿eË^óÚuæ»·Iîü¾’}¨J°PrxüÆ_dö˜É‡ðĉ“fú£ùzû÷N›ž|d“À 0rä|ãJª5C?iÒ’ÐG½J΀ ˜kîêÕÛÌg)·$Ûoºxómh³ýöô£Þ%gà†ìTƒ?ýt‘ù.Ðéoцwƒ}èÂ…ëÍ·e÷„Gés@Prd Â›‰Vto…Ç…>³/U &úâ{ÇmÆ]æ“%ùÍç/Oá}ß¾C²uë>óÒ{‰$=Z·ng’g}úâ{pÆ*Å–òVP·n#ÌWßû¤˜N#ƒ€¾ø˜¡Ò†&ºçL¸!×%gPFJÛ™p(9nȵÃAA@É”‘Òv&J΄rípPPre¤´ ‡€’3á†\;”œA)mgÂ! äL¸!×%gPFJÛ™p(9nȵÃAA@É”‘Òv&J΄rípPPre¤´ ‡€’3á†\;”œA)mgÂ! äL¸!×%gPFJÛ™p(9nȵÃAA@É”‘Òv&J΄rípPPre¤´ ‡€’3á†\;”œA)mgÂ! äL¸!×%gPFJÛ™p(9nȵÃAA@É”‘Òv&J΄rípPPre¤´ ‡€’3á†\;”œA)mgÂ!ì¶ž7ož¼õÖ[ DÐ;¼o_NÙ¶-¯T¬¸;è]I¸ö_pÁòñLJ÷{P2rŽ5Jî½÷^¹á†Âë³" œc¶lÙ"[·n•½{÷†—<({xˆ{îÙ³§»Õ«" ¤Ÿ}ö™üóŸÿŒXºî9#¢Š@Æ# äÌø1Ð(PrF„EŒG@É™ñc -P""Õ!1õyøå—_ÊòåËå¯ýkº¶îСCÖÝýÍ7ßȯ¿þ*5jÔ:uêÈÍ7ß,9räHµîÇËÉ“'·¹“•+WÊ!CdÕªUrìØ1¹ä’K¤U«Vríµ×Ú$Ÿ~ú©¬[·N{ì1—%C®ô7wîܶŸß~û­Œ=Z5j$·Ýv›ßžãÇË3Ï<#üã媫®òÃãq~Çð²P9r$–léšæ¬5çÑ£Ge×®]R¬X1s¾MÐ0åË—·ZbýúõB|… ${öìòË/¿Hžæ´eÖ å²š•)SFråÊ%{öì‘’%Kºh{eÕô<Ï®òhÓ‚ ÚôD8«#÷óÏ?Ëþýû¥R¥J¾Ö#mE ²Ú†>“wüøñ–D<ð€_g–,Yä‹/¾®]» ÷ÐOÚŸ7o^Æš“gBÓH}ùå—Ë›o¾é·á¾ûî³Ä4hÜtÓM6/Nœ8aµÚ«lÙ²I´¸01K—.-E‹õó€+õÓÎÒ*V¬hã¢áKhi®ŒW¶lÙlzú‚0ÆÔå„ñ|÷ÝwåÅ_tAÉ®võêÕ¶,´™Óbûöí³óhO‰%ìbF,Fô£T©RIÊ‹„+ãõ÷¿ÿÝZï¼óŽ?_š7o.ÕªU“¾}ûÊÿû_iÚ´©Õ¨ÑæFx±n¼ñF¿~ú±víZSƵxñâ6ÎÍ}žÁŒÀ9tÞú…¤áæ¬É ø<òˆ5e¾ûî;ۀə3§,\¸Ð>W­ZÕõòË/[’$Áî¿ÿ~«AÈÓ£G{Ë 1@L\L½%K–ȳÏ>k†Á&OžlËq(—ÁÞ½{·H¬š¬¦Ý»wVØçž{NªW¯.?üðƒ]Q)íDzhÑ"éÖ­›¼ýöÛ¶/¡Ï•+W¶u£¡ú†´iÓÆDLY˜ÙLl&BÇŽ­™÷ÑGÉܹsmžçŸ^Úµkg-j“ŒXÔÈ0)ÁÈi)Lé×^{ÍÆAâ#FØö¤tBûï¹ç[þÕW_m-°el6lh¯¤M ×7Úâho¸0&—]v™°5pmnDë#ùÀ„ŬÁùÉ'Ÿ´ýX¼x±+Ö.ØXV,,&³fÍòãÎææœ‘G¿nݺ¶=Íš5³dsÏL(@g ÝbõÄùÁjäÄ<ƒ€hÔ~ýú +fyÙ`þmM˜8+¨‡t˜G¬‚NÚ¶mk'¢+Çi{žY­9ß!<¦èwÞi'#ïBþéOòµØÔ©SídÌo´;f(”pa…U0™˜Ä8’n½õV› M‡ÉÎÄA“²ªCZúì4, ¯¿þzKl:ú _°eñ¤,&bíÚµ-æÔ“’°±P‚E¸ ¥q¨@ Æ›mDhÛË?üá¶8×° X„Xä©3I WÚKŸÁ9’°øï$µ¹áÒ…^!–3³™SXXVNТlËè–[|]|Z¯gmÖºŠ™ˆÛ«0V0„U2 0_xwb`N!›½Zs -JœÓ’˜lNØhrÑE%‰b»2ˆpä㞸ï4•Dpr°£%ù‡`NõïßßjIÌ34“Ò æú︲oFp 8ÂÙógÁ‚VK¢©"EŠØ+œ9 ¹Áó‰2XÐÂ{—!T3GÃ×-X)ìŸP&&|JÂ³Ø <8ٻ،1áîÒK/µ{ÙвÜ|!Œv3¡žl—6%\kÚ‘Ý|sùh;‹2„q’ÚÜpéÜ•²YP°ÚB…¶‡ÎœƒN°@¦.,­×ÓËJZKø-_¤I©HL[H‰ù‚¹ˆ©‡0)[·nmÍl}ȉiä:êt«j¤òCWgç`%dh9˜ß)Ý•O:´f‘èî»ï¶”ÉdfÅgqqÿж‘~@àd˜Éá‚å€ãÈ1®S¦L±ÄĬ¤><ÁÑÒRG4|i7‚yìÚ©ÏžÒ-"6A”?h;4þ',†3ÒcÊãü •”Úš.%\ñ 1KÃÍA4hàG¥67ü„¿ÝP6‹Æš5kü(`,ŠÐyk_üBb¼9g䌱>»ŸÂ ùðÃíÄu“½Î ö" 6ž<Òa¢qÙãa± gÀ£ !ö~¬lLœBδ&õR&5{2çÌ€x˜­Î$ }f`náðÁkǾs}2 #ö‰”‡Æ nÚ‹#º¼›LžÑ†8“¦OŸn öãüã§zL*ÌØÔ„ÕÙMÊÄÚ`1Švt _Ì5ðÆy¶ôûÕW_µ{q笢í,ˆô;\ˆcO:ICûXXÑð8ÃØ÷Gk[x™¡Ï)኶dû4fÌùàƒìvGQìýYC·@)Íh}d~`–3®ôŸ3^¤aÆöšžΙY›Z#ÝêÑ&8jn¿ýv?‡×x9N(<© :¦Þ8âî¸ã«X…!‰W6Ϙ. /f%N”+®¸B8WD å0±1±q˜ , ¬ÀìÓôÐgÕ92ଯ'‚)F;^zé%«5ñàA°ž={Úx&6{RgŽS‹û44ýÅÊ·•3T„gSÍš5í3ý¢NBûÉËX˜•¤aÕA{Iš>¾ôS/2X!X-ôÃÕM¹xœÊp¡ìÅÁ:!% yX4Ø7Ï‹ô4®lÊâ>üÙÕ‘®X4ԇä+ –´ÙI´¹A|hCÛ&,XàA8å1/™#¡¦­«ƒ4ü;õ÷œ¬êé%8{Ð2h±PáŒóI4‹Û€»xLÌ ÂYÅ `øQ «%fD±YæVȉ&ƒ ìcÐxÎdvu¤v¥}G«2e„ +7’ºÝ±ƒKÂB÷Vh;ú…•À€‡NR—/¥+y±2ipð@.ê —”ð%̸FÚ¿²Ç¦žÐÉ^~ø3“¬œyŒ£=Y$ÜÂó†?§„+iÑÊ´ŸkYc PO¨¤47\ºh}DûãsÀB‰T¶ËŸ–+žl¬Dþ{δT”Z&6f&{œpaBá~$h\‹PN¨3$Ú3å¢ÑS´ÿ"I8YI)ÑòF sßŇî¯]˜»¦„oj˜…:p\y©]Y0Ü¢AZöoi•”p¥LXæGJýŒÖG4! g¼å´ÎCÍ˜Šœaª„{)Ϥz9ÜÁ@~Þ’‰öÚ“$Òyؙԫiƒ‹@Jsã|íU†˜µç+Ú.E Þ¤dÖžö6Ä»UZŸ" ¤ˆ€’3Ex4RÈ8”œ‡½Ö¬¤ˆ@T‡ç:*Š€"¾¤ô¶[2râšå •ôm²–®$¹·ÔÂ{œÌ[ž@ŸE C¤{Î Á]+URG@É™:FšBÈ”œ»Vª¤Ž€’3uŒ4…"!ü?1@l:¡èIEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1Exception-members.html000755 000765 000024 00000013224 13515046515 026202 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::Exception Member List

This is the complete list of members for mysqlpp::Exception, including all inherited members.

Exception(const Exception &e) MAY_THROW()mysqlpp::Exceptioninline
Exception(const char *w="")mysqlpp::Exceptioninlineprotected
Exception(const std::string &w)mysqlpp::Exceptioninlineprotected
operator=(const Exception &rhs)mysqlpp::Exceptioninline
what() constmysqlpp::Exceptioninlinevirtual
what_mysqlpp::Exceptionprotected
~Exception()mysqlpp::Exceptioninline
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1examples_1_1CommandLine.html000755 000765 000024 00000066475 13515046515 027221 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::examples::CommandLine Class Reference
MySQL++  3.2.5
mysqlpp::examples::CommandLine Class Reference

Command line parsing mechanism for ../examples/*.cpp. More...

#include <cmdline.h>

Inheritance diagram for mysqlpp::examples::CommandLine:
Collaboration diagram for mysqlpp::examples::CommandLine:

Public Member Functions

 CommandLine (int argc, char *const argv[], const char *user=0, const char *pass=0, const char *usage_extra=0)
 Constructor. More...
 
void print_usage () const
 Show a message explaining the program's proper usage. More...
 
void print_usage (const char *extra) const
 Show a message explaining the program's proper usage, with custom extra info after standard command line usage bits.
 
bool dtest_mode () const
 Return true if we're in "dtest" mode This happens when an example gets the -D flag, always passed by the dtest script to ask the programs it runs to suppress any nondeterministic output.
 
const char * pass () const
 Return the DB password (-p argument)
 
int run_mode () const
 Return the -m flag value. More...
 
const char * server () const
 Return the DB server name (-s argument)
 
const char * user () const
 Return the DB user name (-u argument)
 
- Public Member Functions inherited from mysqlpp::CommandLineBase
const ArgumentListextra_args () const
 Get reference to list of command line arguments past the last flag and its possible argument. More...
 
 operator void * () const
 Return truthy value if command line was parsed successfully.
 

Additional Inherited Members

- Public Types inherited from mysqlpp::CommandLineBase
typedef std::vector< std::string > ArgumentList
 Type for a list of arguments. More...
 
typedef ArgumentList::const_iterator ArgumentListIt
 Iterator into ArgumentList.
 
- Protected Member Functions inherited from mysqlpp::CommandLineBase
 CommandLineBase (int argc, char *const argv[], const char *opts)
 Hidden ctor to prevent instantiation. More...
 
virtual ~CommandLineBase ()
 Hidden dtor to prevent instantiation.
 
void finish_parse ()
 If object is still marked as "successful", save non-option arguments to extra_args_ list. Subclass ctor should call this after the parse_next() loop gets EOF.
 
const char * option_argument () const
 Accessor for getopt()'s optarg global.
 
int option_index () const
 Accessor for getopt()'s optind global.
 
void parse_error (const char *message=0)
 Called by a subclass when encountering a command line parsing error. More...
 
int parse_next () const
 Wrapper for getopt()
 
const char * program_name () const
 Get the file name of the program's executable.
 
bool successful () const
 Returns true if nothing has gone wrong since calling the ctor.
 

Detailed Description

Command line parsing mechanism for ../examples/*.cpp.

Constructor & Destructor Documentation

◆ CommandLine()

mysqlpp::examples::CommandLine::CommandLine ( int  argc,
char *const  argv[],
const char *  user = 0,
const char *  pass = 0,
const char *  usage_extra = 0 
)

Member Function Documentation

◆ print_usage()

void mysqlpp::examples::CommandLine::print_usage ( ) const
inlinevirtual

Show a message explaining the program's proper usage.

Calls print_usage(const char*), passing along the "usage_extra" parameter passed to the ctor

Implements mysqlpp::CommandLineBase.

References print_usage().

Referenced by print_usage().

◆ run_mode()

int mysqlpp::examples::CommandLine::run_mode ( ) const
inline

Return the -m flag value.

This flag is currently only used by examples/deadlock, but it's really a nonspecific "mode" value, which could be used by other examples in the future.


The documentation for this class was generated from the following files:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1IgnoreSpaceOption.html000755 000765 000024 00000030721 13515046515 026205 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::IgnoreSpaceOption Class Reference
MySQL++  3.2.5
mysqlpp::IgnoreSpaceOption Class Reference

Allow spaces after function names in queries. More...

#include <options.h>

Inheritance diagram for mysqlpp::IgnoreSpaceOption:
Collaboration diagram for mysqlpp::IgnoreSpaceOption:

Additional Inherited Members

- Public Types inherited from mysqlpp::DataOption< T >
typedef T ArgType
 Alias for template param.
 
- Public Types inherited from mysqlpp::Option
enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 
- Public Member Functions inherited from mysqlpp::Option
virtual ~Option ()
 Destroy object.
 
virtual Error set (DBDriver *dbd)=0
 Apply option.
 
- Protected Member Functions inherited from mysqlpp::DataOption< T >
 DataOption (const T &arg)
 Construct object.
 
- Protected Attributes inherited from mysqlpp::DataOption< T >
arg_
 The argument value.
 

Detailed Description

Allow spaces after function names in queries.


The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/functions.html000755 000765 000024 00000013230 13515046515 021505 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Class Members
MySQL++  3.2.5
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1LocalFilesOption__coll__graph.png000644 000765 000024 00000021004 13515046516 030323 0ustar00tangentstaff000000 000000 ‰PNG  IHDR¼·¨Ž4hsRGB®Îé!¾IDATxí]œUÅõ>ÀÒ{齄"‚REŠQš…ˆ"ø Á`‚1@„$`ÔÐéHi‚t¤HïÒaÙ…ùÏwÈ\î¾}oß]vïãîÝs~¿··L;óÍ7gΜ{ßÛ4J©)$"¤Òh«TÒWé¦ @iA 5! „OM£-} /H]Dy¥»G¥5kÖxEÑ#(R¤Õ«W/kLBUØ´zA¦OŸŽÍ³||ˆA›6m¼@1ÖÁ3ÞÌÙØØXJ—.¹”c Gà¹çž£+W®x¦²iõÌPˆ"‘@@ ”¥ Ï „÷ÌPˆ"‘@@ ”¥ Ï „÷ÌPˆ"‘@@—(Ož<™zõêu—¥WlÓ¦MÔ¡C*[¶,(P€š4iBï¾û.ݺuËQEˆ|;wÎÊÛ¹sgš6mšušN„ðw9Ú»wïŽÈƒ²ùóçSÆ iÆ ÔµkW:t(*Tˆú÷ïO-[¶¤˜˜˜°=˜3gåÍ›×Ê{õêUºqãFØr~Ìà¹8¼S£££éøñãT¬X1:tè]¾|™ªV­ÊVoÇŽ„ôjÕªQúôé9=[¶l”'O«ú#GŽîåÊ•‹ïÁŠš2Y³fµò¡Þ­[·R… (sæÌtúôi*Q¢„•Ž“‹/’~ªAY²d¡~øòçÏOåË—ç< Ö¯¿þJ ¤]»vÑùóçé  2p:Ê]¿~2fÌHiÓ¦åzÌ5ÈÜ­[7ªT©-[¶ŒõE¡=zPƒ 襗^¢I“&qžS§NQΜ9苾ƒä¨ iƒR™2eèã?¦L™2ñ=üA7nÜÈm׬Y“²gÏÎiX CîܹiË–-\¦råÊ)û9‰W™'­zùu¤Ò÷ßÏOe7nl=}øá‡U³fͬëºuë*M8¥k«FYõj(ýpK;VéTšÀJ“_¥I“F-ZTíܹ“ó®X±BéÁVšˆœ¿V­ZJON8p ªQ£Ÿë‡+J“Ré ¥4‘¹}m9mÖ¬Y|­­´•†¼‡æô%K–púòåËã]k·ƒÓ/^Ìiö?ÚQzª¦M›òm´[¿~}ÖSOr¥'Ÿ¦K—.eý5ƒ9íÀJ õÎ;ïp¹•+W*í&q¿ô$Pz²r$öíÛ—ûU®\9.‹:š7o®Ð¶S騱£òÒ“ÖïÒäÈ‘ƒðÎÈ‘#iÕªUl¥a½¿øâ Z»v-ÁÚwêÔ‰ôÀZ–næÌ™lMŸ}öYzë­·x•¸pá¡,1, ,Û‹/¾HšÔ¤IBpaNž<É–/Ø=Ièÿø]»v&NœÈŸÙ³g[Yñ> ¬ûÞ½{éìÙ³ôúë¯sV ¸'fÕ°_ïÙ³‡óÔ®]۪ǜèÉI°Æû÷ï7·XÏ}ûöq;=öýá |Ðòס[É’%­üX}^xáÒ†W!`€w^žþyÆѯž={r¿L‹-╪$¥8©nç»[ ¯]VM“ƒ­¡ÞLòµ<¾ÖäVgΜQ°z}ô§=ú裪U«V|þÚk¯)X¶áÇ«ü‘W¬ ëÖ­ãòÐËÈ›o¾ÒÂW©RÅdãcéÒ¥ÙB oV $¢M¬$á«HTT”ºyófЬ¿ýío•ÞÈr,¼öï­|ÚEaýõ¤W3fÌàsô b,¼Y%õ>Á*gV` ~9qâ׳páBs+ìQ,|2[là š|ÔË/a!zDØ—mÑ¢[:M~ö‡aõ!šT¼`…¸ÿþûÙÇÕD írpz:uøˆ?Æ [7l'š¶+b?ÞøÎH(Uª”•ŽH öáþ6",Xaû ¬ZÈcÄÞö»&Ÿ9bïÁJa¤páÂ| œ ÐÕˆñûõ4·RÜ1Å»4Øè9\ûÉ4~üxÞüµnÝš‹iÿ˜ Äî 6nÚòÒ€¬ÆÆØˆÝ}0÷Ìñرcæ”Ù¼ysœ bOÿî»ïâ¤YNÁD3fL@ Ñ·ß~ËnÆSO=e¥ÙÛX½z5ßOh’cM®`1®1&=¥±%¥÷Rë¯]Bôå7Þ víÚYQŠ &PŸ>}ØG‘ D[`ía%áãÃ÷F”â“O> ‰ˆ‚}üsL øÇO<ñ„•_»C\ÏÔ©SI» RD"öh¾wà5¬w÷îÝiôèÑôꫯr´+Ïÿû_^•ªW¯N]ºtárø£7á¿Û¶m\¦xñâ­1!D‰°âe‡E6l—A?±ßo_9L~_Ã:aÊp·>¼Þh²†Úú² ¿¢C…| Ú"'zДþ¢‰¹¥¥€O‹ ü`ÎSð{! ,àÈ Ê R£Ý›8>¼/r>Di4A¬¼ˆìŒ1‚ÓŒ²¨>9ö:ÈéÆg¥AD­ôfÑŠð˜:ô¤å>r%útGÔÑ'äA$ÈôS»O‰Á}=±”žV”íçË—Ë Ølß¾«íׯG~LzBp¾yóæ™[a^óá1ã=!‰%üÝ(ýÊ+¯(«WTGd”v&M èȇ.1tôÅ"¼=ß¶m[…z´{ ´m%Â# dÓ‘+-1'Øp"„º~ýz¥]¦xEAx½Â(Ò¾A6u<ž7ïæÚ~D±ÉÕ«MÈ ²=bνFøûàI[+Çw>/Ü—Q£FÅ+?9ÔWаQÃC'‚zðð+”nlCå vМè‡Oø láLÐG< K ’*øú¸qã8ö¸óÝ "=ôP¼âxªŠj0Áž‘·7hm‰$Œ€g~ˆIÇŠéé§Ÿæ0œ|Å/áAKI©æ+~Úµó„Ú©&Jã ´E‰{Ž€þ Á±cçïQË©»YÏùðxOÛéä”:tGŽ\¡õëOÑ“OÞyúšRûNo<ÍõÒÞÂs„oß¾}8 S|zŽ õ«Æ•諯þçAPŠïXˆè·%C¤Dþ¶g6­‘ïú½k±zõ7õ»4—hÊ”ÿÓïµß~÷çÞi“ºZ>Âã½nÝ~&{Ú´ihæÌÛï­DX…TÝœ>ÂÃ?cÆFý-¬tú›YŠfÏެ߻O¹oFºdiNŸ,0:«$6öÍšµÉ"ù•+7héÒÎ K®dA@Ÿ,0:«dÅŠ]téÒu+sTT:š>}ƒu-'î# „wc«…36±;cnÄÆÞÔ_™Û®_KH¿ `pˆäQ!´¯]‹¡yó¶ZîŒi¤_°à's)G—» °©~ñâíúK!±æÒ:⥲iÓÄ­±qùDï2À¦úiÓÖëßs¹ý=[sÇ›7oéï¦îÑ¿ æßP·ëç·s!|FôÂ…kúû´»ô› Áß7ÿæ›-ÐDšÂG€sçnIðý "š:u}4‘&„ðàȬT|wÆ4‡P7$yƒÒ âÞQï¶\óÉ“õïMÐßxRú÷$ÓñOZñÉ!Š?8‡|ýõf>Ê÷ðÜÛ’îuõÞÔ|ùr4 ÷mAlR·l9D½{?G©bÅä+zqqáBï¨ö*˔ɯãåû-ýJ1ú÷Ïèßœ‰{?N&¹pqi\U*õ*Bx¯ŽŒèå BxW`•J½Š€Þ«##z¹‚€ÞX¥R¯" „÷êȈ^® „wV©Ô«á½:2¢—+á]U*õ*Bx¯ŽŒèå BxW`•J½Š€Þ«##z¹‚€ÞX¥R¯" „÷êȈ^® „wV©Ô«á½:2¢—+á]U*õ*Bx¯ŽŒèå BxW`•J½Š€Þ«##z¹‚€ÞX¥R¯" „÷êȈ^® „wV©Ô«á½:2¢—+á]U*õ*Bx¯ŽŒèå BxW`•J½Š€Þ«##z¹‚€ÞX¥R¯" „÷êȈ^® „wV©Ô«á½:2¢—+á]U*õ,ú?ÈyR¾ýö[¥Aóå'**—ʘ±¨/û†1ëܹ³'9¥<ÿ/o&L˜@Ù³g÷¬ÁÅâ"ðöÛoǽá±+ϾM›6”7¯ü³/ñ&¤:ÿú׿B¦y!A|x/Œ‚è1„ðƒZòBx/Œ‚è1„ðƒZò¾!üùóç©E‹q>íÛ·§Q£FÑÍ›7“ŒõäÉ“©W¯^I®ÇI›6m¢:PÙ²e©@Ô¤Iz÷ÝwéÖ­[NŠSll,;wÎʫÄ4mÚ4ë:5Ÿø†ðׯ_§ PÆŒ©fÍšT­Z5ºrå ½òÊ+Ô§OŸ$ñîÝ»iÍš5I®'\óçϧ† Ò† ¨k×®4tèP*T¨õïߟZ¶lI111᪠9sæpdËä½zõ*ݸq#l¹T‘Á«Õ§3gÎ8Rñøñãü gêÔ©qò7hÐ@iÂX÷´µW[¶lQsçÎU‡²î›“K—.©åË—«eË–©‹/šÛjàÀªFÖ5NP~ÕªUêÂ… qîãâòåË\ÏÑ£Gã¤>|Xi*mÕŠ+Ô‘#G¬t=iUáÂ…U­Zµô°Ëرc¹Ÿ}öß>yò¤B~à³téR>"áÚµkêã?æ¼{öìQè/ò@#¡úxöìYuâÄ ­~øáµuëV¥W SÌÑññÇ÷ôƒ'rÔ‹{)9¯-œªX±¢zôÑG¹ Y£FTÚ´iUîܹù8hÐ «w+W®TÚ…PY³fU™2eRùóçg2!ƒð Ä /¼À¤JŸ>½J—.1b„UÏ€T† TŽ98Oݺu™xÈP¬X1Õ¬Y3ý¤5#—ÓVU}úé§\V»œñâÅV]æD»3ªB… ªiÓ¦| õׯ_Ÿë€Y²dQÓ§Og}Ñ?Ô ½8Àm¾óÎ;\.¡>öíÛWUªTI•+WÎÒ­yóæ m;!¼S¤òÝ-ák×®­ž~úiÕªU+U¦L&5òòË/3¡÷ïßÏ×'NdbÀB‚Ä%K–TúA—ÒË?_ã¼H‘"lIí„ÿý÷UTT”š={6[ÀñãÇs=°Š°ØiÒ¤QãÆc’kWˆó‚ÌI»,êØ±cJ»/J»`œ6|øp®Ç¾²pÂÿþtìØQ•*UН@øûî»O‚ð˜(|ðc0xð`¾6xqeaþxð¾ñáÿ ·|ùòT¹reªS§i+KþóŸ9Yý`M¾îÒ¥ åÉ“‡ôä¢Í›7“&õèу´Å$M(êÝ»7i—„víÚeªçã—_~I<ðéÉ@Ú="íêP¶lÙx¡ÉL;vì =ð¤'Á'×—ë1•À7Ç>C»/ôÌ3ÏÐÏ?ÿÌIØsè‰Dz…1YãµËAÚj[÷ k‰%H[wÒ’¾mÛ6+=ðÄIK—.Íû`гgO®bïÞ½U¥ØkÏ¿ZXd;uêÄ$2åÖ®]KõêÕ#ík3é@T»`‚h—´?ηAD# $évùå—_HûĄ׌äÊ•‹´e‡‹HúÓŸháÂ…T´hQªZµ*“ØäÑ#™3gæ¨ ®õŠÄçÚ ás“GmyaCkÄL\\c¢AN:ÅÇ`œôÑ®›v븚äˆrÓç^Üó…"€z#feEEôVćØÓ7nÜÈ÷´«ÃGóG»¤ýpÒPë3fÌj×®}þùç´hÑ"&'ÒµÛÃÁ”Å#˜€Ì°ð¨+P° é )i×ÅJÒ.‘u¾zõj>G_B‰“>†Ò-T)í¾ï,üO?ýÄn bÖÚ§&½!d·.Âz3gÎ$½#íãÓÈ‘#y¼@T}ذaT°`A¶Î:ÚA>ø`Z…üvfrÏ’»iE8MMœ"1ú¡ ‡!Ñmå”ȇH"%úõc«K–,Qùòå³Òõƒµ}ûvNǦU»C|ް"6‰¦=Dt°á„ ä‡M(Ò%Ñ“LiRr{ëׯWš”¼)äÌúÚׯ?›KÞc³ˆM©©d=)ã„I‘Ž0)Ú@>DWôs®çôéÓ¼9Çý}ûöq›&J“PûõëÇ‘£Œ~˜ÇuÏ›7ÏÜ {ôú¦Õ7aɰ#ñ¿ ±éM"GI@Ü@A[»2 ÑİÄáµUç˜z`>”GüÛ¢)‰‰i#‚ç˜$Áôá¿øâ RîܹÓ4cMŒÞºa;ILmÅzð¾si´UKPà£Âu%بnlCåÕá>Â'˜ Rd—„|k{>sŽ( ž‡“œ9s>‚'Îø“Äô1Xù”|Ï÷›Ö”<8 鎫|1&!„‚§¥: †”wW¿–ò”ö€Æbá=0¢BäÂGë8-ÅÆ:{Õ7N!¹H2Bø$C˜ø Μ¹L“&Ý~P”øÒR")xÞ‡×qñ¤ôÏ“e³f½Ÿ2g®LݺÝyMÀ“ŠÞ¥RõN¼*ž%<žN™2Å«¸%I¯÷ÞÛª_I¸LcÇNÒ¯;Ü~_%Iz¬pà«^Rϳ„Ç£y<ò÷›>|N“ýö7§¢£ ê>6÷[=Ýñá#<<3gnÒ¯ß~ÅwêÔõn]šÂG˜ yLÌí/•J¿½¹)‚HSBør`Ö¬;î š‰‰Õ¯‹[Á! !|Ñž2åË1Íž>}‰Ö­Ûo.åè2Bx—6ÕoØpNœ¸h.­#6°3fÜþf•uSN\C@ï´q+tgL*6°H“W "î…ðîâ˵ëïœÐôéã¹3¦éK—®ÓŠqÁ¤É1yÂ'/žAk[µjþ~ëÕ i¸yÛ­‘hMH€’1AŸŒ`†ª >zTÔß“ Ì·fÞ¼­úW Âÿnd`Y¹NBøÄá•èÜÑѱôÍ7?j=á_0ŽŽŽ¡Å‹·'º~)8<û.MâºáÝÜx’Z±baýówÞ?{ö ]¼xJ•ºó&(¾k»gÏ ïvÄ'š¥ÁWÑ}Ò—Ó?\BxÅ`Õª×SŒÎ~QT\¿Œ¤ôÃBxG0I&¿ „÷ËHJ?! „w“dò Bx¿Œ¤ôÃBxG0I&¿ „÷ËHJ?! „w“dò Bx¿Œ¤ôÃBxG0I&¿ „÷ËHJ?! „w“dò Bx¿Œ¤ôÃBxG0I&¿ „÷ËHJ?! „w“dò Bx¿Œ¤ôÃBxG0I&¿ „÷ËHJ?! „w“dò Bx¿Œ¤ôÃBxG0I&¿ „÷ËHJ?! „w“dò Bx¿Œ¤ôÃBxG0I&¿ „÷ËHJ?! „w“dò Bx¿Œ¤ôÃBxG0I&¿ „÷ËHJ?! „w“dò Bx¿Œ¤ôÃñþÈ÷ßO|ð£Â’éî8w.“þ—7¨dÉøÿ¨øîj”RÁ¨Y³&½öÚkq’âý§Ã‡ëÇ2•yä‘8å"yÈ’…èÔ©ä­Sj»ƒÀ®]»èêÕ«á oŠ 2ÄœÊQHq ><¨ÎâÃ…Enú!¼_GVú!|PXä¦_Âûud¥_Aˆ¥ šËÃ7-ZD;w_~Ù5-¯_¿No¾ù&=óÌ3ôÐC¹Ö޽b{¿~þùgúôÓOíÉÖy“&Mè7¿ù 3†þò—¿Ð78¬Ü¿Ê—ïÎú¶ $âdÏž=ôÕW_ÑîÝ»éÊ•+ú?‡—¢ÚµkÓï~÷;J›6¼­¼yó&—Ë‘#·úöÛoS½zõîi0¼Ö‰è^dEuÛ¶m®6Këׯ§Ó§O»Ú޽r{¿ÎŸ?ÏígÊ”‰òçÏç“-[6ºuë]»vðOÕ/_¾Ìy£££íÕ%ú|ݺulD@ö-ZP×®])Ož<ôÉ'ŸÐ믿NÀ$œ¬Y³†Ú´icå…ሉ‰ WÌÕô$[xX”sçÎñ œÒe_ºti„_~ù…-N™2e(**ŠNžÿüs/è{üøq6žÐ“m$E’Í¥Á,ÇZÿÓO?±E2e ;xð 5kÖŒ;jfþªU«¸7¦I“&1ñæÎËõ`ùœ={6sĈkŒE>S>XÇ1àÏÃ蘫W¯¶²b"}óÍ7PaIŒo ˇÉg,`àµUAÀ V~ôœ9súÊã¬Ü¿ÿýoÂJ‡ã×_Mõë×g·+Èøñã9/„r%µ……^¡º6Ìú|ôÑG¡²òý£G2IZ¶lÉmC¬’“'Oæ§ ;\´‰£€‰yäÈ._©R¥xõƒpXÁŽ;f¥” 4pņ “«capÅu8ÌãˆÉ…²˜06l ¬I•d#|§NØ*ÃJ@2üMs e5jÄÖD‡,_¾œÂX¤Hv @jXþ±cÇR=hïÞ½ÜѶmÛRÁ‚9¬c(iš6mÊí _áÂ… +„€—í!ݬJ¸þãÿh Làµ)x„~pÕ°ÜúÁŠÃŠ9s†í»ï¾ã~c5‹†6Ð/X\¬h°z 0ÿr¡.ù„ó£Q'ò4hЀ@~¬œXm±Áj‚ñ™7oaƒ\´hQZ°`§#\+¸†Á†Âîz¡ï 4òƒH‡ JÂa†r·víÚ1¦¨b&"_ÜåŸ$»4¦]Xd|Q1K,ˆ]þŠ+x§²a¹‡(¸3X%>ûì3 ¤kŽ2â‡øŠvoêÀ}»¥AÚLŠ`ßÕ3’7o^>E» 0Èd+Ìc=Æ—ÀV“>*ôìÙ3¨ª &"«‚]@tãzk¸u°ºpEá6CL*Xn3ަ7ŽÉæÒ„SÎÌX¯c3ùøã[Å:vìÈÖçÙgŸeàáóöë×#ØõÃ2µjÕŠ]$lˆì>¢©•€ .B¼îݻ󆤃À—E=°`p¯ºtéÂ÷1Ñ`Ñ6lÈn¿Æ„ƒ€øØmA?XHl¡ üOãFüþ÷¿g2 "Û€• D‡úÏþ“]8¾?ô`sŠ aúx´·xnòâ>Œ6ð˜d /ÏX]Ÿ{î9nËlÜ‘†Yì- #6£>@€,;‚†Ì¸ãô¢™bcÜðzÀ Å ‡õÝ`È ùì{´‘\ï XöjZ¶lYrµ¯ ¬+,]`?‡ ÒØË(¬îÃ÷ÑÃ’ B|ˆÀ@Ìþ1„GÖß<0î’½»=‡~ˆDH°† ’¶ Ÿ›<è %Ʀõ$— <Ðv ®hi˜ög¦m¬8HDZ¤^y¡›]à¢â /ŒžÇ€ðv.c4ÓÂÌž7±çˆ’Á¸Âu¶KÄ,<…u…÷¥W¯^v=øV !½`寧Q\…¬É-ÐϾq ¬{’`"ØÉ`߬Ë7÷2¶oúíu møì¡“Ô îXMñ à‚O0 ‡Y°2I½QÂÃÊ!¥´yóæw­;H·&P õH,®X‡\'L$û“óÄ•Ž|î{âÒD¾›ÒbjC ”Kñ(Mj^úë-„ðÞÑÆe„ð.,Õ{ ›Ö!C†xKSÑFHø™¼a(ñx0ˆˆ)<Èô@‰¥ Ì ×‚€ŸÞO£)} ‹€>,D’ÁOáý4šÒ—°áÃB$ü„Àÿ‡Èo\QýHIEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1Set__inherit__graph.png000644 000765 000024 00000012411 13515046516 026363 0ustar00tangentstaff000000 000000 ‰PNG  IHDR¾mÞÛsRGB®ÎéÃIDATxíE׆°’3’£dQ@ÁŠ " ¨„$(P"*¢”ˆJÄ2ʇ€@(‚P ä”,Q„%-JÎyþ~úÿú~³wï݅˲;Û§j÷ÎtŸNïyûôéž¹»i%bÅ"ºˆN›ºÆkGkø,ñ-R%–ø©ÒìvЖø–©(¿ŽúèÑ£²yóf¿/IÆuÿý÷K–,Y’¤­¤nÄ·Ä7@V¨PAÒ¤Icní§.^¼(;wîô ™rU|Oü¼yóZâ'’ŸçÎKd‰”§ncü”g3Ûã `‰m)Kü”g3Ûã `‰m)Kü ›­]»V5j$E‹•|ùòIÍš5eöìÙAZ×w˦ñôéÓž ·k×N&OžìI×*%K|fÓ¦M“5jȤ[·nÒµkW¹|ù²Ô¯__&L˜àÒ¼¾Ë:H›6m<f’\ºtÉ“®Uºx;ÓräÈgÑ¢Eεk×< ïüùóŽòòÎ#<â¨sì@™+W®8+VtJ–,HS^ÛY¼x±®ÿÔ©Sô .8»wïv®^½ê¨spgùòåºýiذ¡S·n]GM¬@™3gÎèºÜiFŸ]O¢¥K—:*rÔM'cÆŒŽzNà,\¸P—Y¹r¥®£qãÆNºtéô5ù;vìp:uêä¨i:­ZµjZ¿gÏžNúôéìÙ³ëôêÕ«ëIC&“pàÀZk&L† õŽ1Bç1IÛ¶m«ËßvÛm:À€:_eÊ”q4h ûËÄó"–ø^PJ¦:‰%þСC5y>vD¬D‰ŽÚ8* Ñ+×… vðö†øõêÕsŽ?®½3¤6DlÕª•.Kxm&°aÃ4Ù·oßîDEE9*®×íŸ ¤öÎÁƒµïpªV­ªõ† ¢Ë11YFŽ©Ç±zõjñ™\è:tH§%ô+5߯øÿ UH”` ¸~ýzÙ³gtìØQ”wE(éܹ³ÞlÛ¶-P¾OŸ>’3gN½1®\¹rÈÇÿ->X29vÓ×}²1þ-0ïäÉkÕÓà4êÕæt2uêï· ¶IKü$æÀ‘#gdÅŠÊã;ê…´«ŠøëÄžð$±Ts–øIŒùôéëc½tvúôõÂÚÿ¾Ä’ÄÝIµÍYâ'±é'N\#êûïV w¦L±áN$º°ÄO" ifÿþc²iÓ~¾àh•pgæÌMê‹.—iöâæ#`‰ó1´ÀF6**.ä—.]‘yóþèÙ‹›@\+Üü6Sm “&­ ¹‘M—.úÕšT‹Ë­¸%~¡¾mÛß²k×?![ãTgñâmêÛùù61òXâGÓ5æ°‘ 'Äý3fl —mÓ#Œ€%~„ WݤI«õ¹}¸|Ç!ÜY.Û¦GKüªºµk÷È¡C§BeÒøƒV«VEËáÃñë Ø‹BÀ÷ogÞ:*¼eKŒT®\4Ö1fLÌ1úDIþüÙ­ð×Ö¯ß'õêÝH³7ß¾ysàŠ\­-ZüGŠ¿]ý±*û‡Ÿ"‡ªçš¢m¨ã+«è',ñýdM;ÏXâ{†Ê*ú K|?YÓŽÅ3–øž¡²Š~BÀßOÖ´cñŒ€%¾g¨¬¢Ÿ°Ä÷“5íX<#`‰ï*«è',ñýdM;ÏXâ{†Ê*ú K|?YÓŽÅ3–øž¡²Š~BÀßOÖ´cñŒ€%¾g¨¬¢Ÿ°Ä÷“5íX<#`‰ï*«è',ñýdM;ÏXâ{†Ê*ú K|?YÓŽÅ3–øž¡²Š~BÀßOÖ´cñŒ€%¾g¨¬¢Ÿ°Ä÷“5íX<#`‰ï*«è',ñýdM;ÏXâ{†Ê*ú K|?YÓŽÅ3–øž¡²Š~BÀßOÖ´cñŒ€%¾g¨¬¢Ÿ°Ä÷“5íX<#`‰ï*«è'âüG”•+WÊ'Ÿ|â§1&˱ÄÄd•ôéÉ—ïl²ìŸŸ:5pà@¹ãŽ;ÜCŠŽCüI“&ɳÏ>+µjÕr+Úk‹@ŠCàüùó²zõjY·nT©RÅÝÿè°ÿüíý÷ßw+Úk‹@ŠCààÁƒòÜsÏ…ì·ñCÂbýŽ€%¾ß-lÇKü°ØD¿#`‰ïw Ûñ…D ìæ6¤v2Lœ;w®üùçŸòÆoÜÔÞqBðÝwßÉŠ+äôéÓê?•W–|PüqõÊoK°í .ȵk×$sæÌ ê†R8s挌5J6mÚ$‡VÇ ùä±Ç“-Z¨cÑô¡Š$*1e̘1Á±ìß¿_†*Ý»w—ܹs'ªä¤œâ=>†Ø²eËMÇtܸq2cÆ },öÒK/I®\¹dðàÁòÅ_xjûã?–~ýúyÒ V:v옼òÊ+2þ|©Y³¦têÔIŸKÿðÃÒ·oß`õëºoܸ±,^¼8Á²L^œ€ã8 ê&g…öø—.] “7o^ùçŸ4(%K–ÔÞmïÞ½B~©R¥$**J{ªL™2IöìÙ˜üûï¿BZÖ¬YuÚŽ;äòåËB¤ì]»vIÑ¢E%C† râÄ )P €ÉÖŸgÏžÕÁs± äÌ™Së“Ix5¼Ô¾}ûZ¦L™€‡Ãôï6mZ]¹§ì´iÓ¤U«V±ŽÇÒ¤I#³gÏ–®]» ×à‘é–,YtÚÉ“'ñâE9räˆÜ~ûí:=Ô¯+W®h¬Üyßÿ½€ÓèÑ£¥H‘":ë©§žÒ+yÛ·o—råÊétôÀ)OžÒFýì³Ït:ämÙ²¥tîÜY(Ó«W/1$C† ‘bÅŠÉÆåÝw߈ ÁòΚ5K×c~Q/çøñãÚ€€W¿~}éÖ­›¬ZµJz÷î-•*UÒ@“GÝxm&íï¿ÿ.o¿ý¶|úé§z,î{HEÛ¬,Ç„mÛ¶•Úµkëæ1"uza\&Ò‹/¾(­[·–o¿ýV~ûí7­÷Þ{ïɰaÃL—ŸLÔ_~ùE¶mÛ&ß|óM <ýO< ½Éd"2y!9Â$à'Â$¿ûî»õŠá±ã%T‚Œxî·ÞzKž~úi騱£¾ÿúë¯õ'ÞŸÉL_͘´f,L2ê?~¼&:×?ü°©“ ñå—_ê¾²c7l…3!¯OŸ>š'N”åË—ëöÈŸ3gNWÆÒ¾}{m&¸™Ô¤GJ"êàÝxê ›7oÖ–Á1pf4³¾nݺxˆ‰,[¶Lò°lC@ êÁ3OŸ>]Ïüh6z¦|(‘x !<“ã×_ ¨2¡ ØØ±cåÔ©S2bÄÇêÁ$4«ˆûÖ°aCáuŽFézÇŒ#GÕ–É8uêTMPBÚ†8#GŽÔäéÒ¥‹ŽÇ!ˆ›ô´ÿÓO?i#¾Ðwúà¼è¹sçôªéNçš•:˜§ö ŒÜßbM"œñ9vÁüüóϺJú1{ôè¡W5l£'×:tÐõ±„œ+"ްtéR­†Ýè#“qæÌ™rçwjçgÂ$8Áj„3ÎÄÔσ'V&&%íÓGVéHIĈÿüóÏkT«VM÷ O‘Íý¡C‡äÑGÕCx„˜òО páÂzɆܬ_}õ•ô_ý%”Å åÏŸ_Ðˇ“%JH:ut;è,XP¯F¿]»vÚ¦³JqOmˆ|Ïd"žoÒ¤‰^M Á¸È‚ ´!!¡«!̃…6ñ|Íš5“ &hòBTH‰sp‹!‰;-Ô5ÞçÃÊ€Ðÿ5jè•Ìè7hÐ@{OV^Iab„ú`¼?›y 陀¡„Õ€U† ?á õb3¬„½÷ÝwŸNg%@p(¬²?Xž|òI½r0ià{¬¦M›êŒI~£ráŽé€Ùá›àûb@–:€X²d‰°" L¼=§LòŒw'\2Â'Ä®n!†4unˆÍ5y´™àÙyüM8Æ‚'>|¸öîLJâdÈA¸f2˜ñ›4>!=u¶iÓF˜ˆ3·Ž¹†¤„k֬ѓΤó  ¤í3ÙðÜF°‰{|Œ×ž˜'”¯óÊ 1>{*쟰Ñ7B½„<aõadÇÀ Àôã³—_~Y‡Z„€8FBN>oD"FüPÕ1¼ ±>á3ž¥Y»v­&/Ïž€P¢‚a ›G#xêªZµªIÒõ° xŽø&‘)„:¼†@ {Þ¼y¾Q—û”/lôM]|Žfüøã²páB©W¯žàá˜ì¡„wýúõ±öè±Ê~VÑtp0ÆìwÜã3é¡Úp§A0BÂ&/ûöá$T½ÆV¯¿þz`ÃÑG&“WaB:2y¸†/„7*ÿs7Z“Çò=ô8¡`¹5±1 K=^†p… ¡^ CLMŒGœŠ '›Í ž²‰5áeh—z³Ø|W¯^]WE|M(c–÷=ñ0a›×Ý»wë8–˜ý“b2.êc5£múËfÚÄ¥œj1)¹géfò³º~°á<ž aâc÷ø ±ó;ï¼£½  á ¬#{3> HÆY¿¡8Ú1›TÒ'cAÀÒ«à\°ã”)S´ÍÀ³ÿþzOåå¹öaóÍžBgðbµ¿•ˆyü„:b¼D‡ð£áôƒAAÇS2p–ùž={ê¼gžyF{³òåËkš²¦nî u 0§x+V ŽÊð¾ĦB®^xA§3áØ@qNÎì¾çÄ ÏY<§ á ýøðÃõJÄflŠ…ßW!‚qÙ˜¶˜xg³¡ÆK3nŒKØÇF’ÉJÜÂÑ(õ² r†0fö0ìKÈ@Ø+C^ ˆ‹7FæÞ†'åô ì-°÷ôÉÆjÌ8>¡N~À‡°S,³j³¢1޹Û®“ÕìønøGZ¾¿hÑ¢H·¨O…wÄ;¹…˜“c=âZŽ˜|âB6E¤ãU!7“Ç-„ÄÙ”ÍKªñ. ù0"žÚ›ºë wMÿ˜8xV6qÔ,œããÙi;[¶l±²™Œ"¾§·îãÒX…Õ dÆ+³j/^™ÀñígÜõćƒ[/¾kóZ2\óü>~|^oá|œ°†å;X…³çPÂJÙ¼õr8 Þ‡Ó N§ÞP1»[‡9ü„’à‰JÇ„~¡òð”æÐ T>i„… mFÕe2ÂXÝx³ Mh#jʺ?²…[×}n½ë½ŽºÞ‚×SŽð K²9v»žz8 Ìž*â™B dàÙŠEnI¨c¡·$ñ…:I~ª“¶mXBÀ?!„l¾/°Ä÷¥Yí B ìæ–óV+”Œ@¸—êSâsþܼyó”<^Ûw‹@žw„zžçT'PÂ^Xü‹@´ñýk\;²x°Ä›å_,ñýk[;²x°Ä›å_þüêÜM ̆IEND®B`‚mysql++-3.2.5/doc/html/refman/vallist_8h_source.html000755 000765 000024 00000260465 13515046515 023150 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: vallist.h Source File
MySQL++  3.2.5
vallist.h
Go to the documentation of this file.
1 
4 /***********************************************************************
5  Copyright (c) 1998 by Kevin Atkinson, (c) 1999, 2000 and 2001 by
6  MySQL AB, and (c) 2004, 2005 by Educational Technology Resources, Inc.
7  Others may also hold copyrights on code in this file. See the CREDITS
8  file in the top directory of the distribution for details.
9 
10  This file is part of MySQL++.
11 
12  MySQL++ is free software; you can redistribute it and/or modify it
13  under the terms of the GNU Lesser General Public License as published
14  by the Free Software Foundation; either version 2.1 of the License, or
15  (at your option) any later version.
16 
17  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
18  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
19  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
20  License for more details.
21 
22  You should have received a copy of the GNU Lesser General Public
23  License along with MySQL++; if not, write to the Free Software
24  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
25  USA
26 ***********************************************************************/
27 
28 #if !defined(MYSQLPP_VALLIST_H)
29 #define MYSQLPP_VALLIST_H
30 
31 #include "manip.h"
32 
33 #include <string>
34 #include <vector>
35 
36 namespace mysqlpp {
37 
38 
58 
59 template <class Seq1, class Seq2, class Manip>
61 {
64  const Seq1* list1;
65 
68  const Seq2* list2;
69 
71  const char* delim;
72 
75  const char* equl;
76 
79  Manip manip;
80 
91  equal_list_ba(const Seq1& s1, const Seq2& s2, const char* d,
92  const char* e, Manip m) :
93  list1(&s1),
94  list2(&s2),
95  delim(d),
96  equl(e),
97  manip(m)
98  {
99  }
100 };
101 
102 
113 
114 template <class Seq1, class Seq2, class Manip>
116 {
119  const Seq1* list1;
120 
123  const Seq2* list2;
124 
127  const std::vector<bool> fields;
128 
130  const char* delim;
131 
134  const char* equl;
135 
138  Manip manip;
139 
152  equal_list_b(const Seq1& s1, const Seq2& s2,
153  const std::vector<bool>& f, const char* d,
154  const char* e, Manip m) :
155  list1(&s1),
156  list2(&s2),
157  fields(f),
158  delim(d),
159  equl(e),
160  manip(m)
161  {
162  }
163 };
164 
165 
184 
185 template <class Seq, class Manip>
187 {
189  const Seq* list;
190 
193  const char* delim;
194 
197  Manip manip;
198 
206  value_list_ba(const Seq& s, const char* d, Manip m) :
207  list(&s),
208  delim(d),
209  manip(m)
210  {
211  }
212 };
213 
214 
224 
225 template <class Seq, class Manip>
227 {
229  const Seq* list;
230 
233  const std::vector<bool> fields;
234 
237  const char* delim;
238 
241  Manip manip;
242 
252  value_list_b(const Seq& s, const std::vector<bool>& f,
253  const char* d, Manip m) :
254  list(&s),
255  fields(f),
256  delim(d),
257  manip(m)
258  {
259  }
260 };
261 
262 
271 
272 template <class Seq1, class Seq2, class Manip>
273 std::ostream& operator <<(std::ostream& o,
275 {
276  typename Seq1::const_iterator i = el.list1->begin();
277  typename Seq2::const_iterator j = el.list2->begin();
278 
279  while (1) {
280  o << *i << el.equl << el.manip << *j;
281  if ((++i == el.list1->end()) || (++j == el.list2->end())) {
282  break;
283  }
284  o << el.delim;
285  }
286 
287  return o;
288 }
289 
290 
295 
296 template <class Seq1, class Seq2, class Manip>
297 std::ostream& operator <<(std::ostream& o,
299 {
300  typename Seq1::const_iterator i = el.list1->begin();
301  typename Seq2::const_iterator j = el.list2->begin();
302 
303  int k = 0;
304  while (1) {
305  if (el.fields[k++]) {
306  o << *i << el.equl << el.manip << *j;
307  }
308  if ((++i == el.list1->end()) || (++j == el.list2->end())) {
309  break;
310  }
311  if (el.fields[k]) {
312  o << el.delim;
313  }
314  }
315 
316  return o;
317 }
318 
319 
328 
329 template <class Seq, class Manip>
330 std::ostream& operator <<(std::ostream& o,
331  const value_list_ba<Seq, Manip>& cl)
332 {
333  typename Seq::const_iterator i = cl.list->begin();
334 
335  while (1) {
336  o << cl.manip << *i;
337  if (++i == cl.list->end()) {
338  break;
339  }
340  o << cl.delim;
341  }
342 
343  return o;
344 }
345 
346 
351 
352 template <class Seq, class Manip>
353 std::ostream& operator <<(std::ostream& o,
354  const value_list_b<Seq, Manip>& cl)
355 {
356  typename Seq::const_iterator i = cl.list->begin();
357 
358  int k = 0;
359  while (1) {
360  if (cl.fields[k++]) {
361  o << cl.manip << *i;
362  }
363  if (++i == cl.list->end()) {
364  break;
365  }
366  if (cl.fields[k]) {
367  o << cl.delim;
368  }
369  }
370 
371  return o;
372 }
373 
374 
384 
385 void create_vector(size_t size, std::vector<bool>& v, bool t0,
386  bool t1 = false, bool t2 = false, bool t3 = false,
387  bool t4 = false, bool t5 = false, bool t6 = false,
388  bool t7 = false, bool t8 = false, bool t9 = false,
389  bool ta = false, bool tb = false, bool tc = false);
390 
391 
403 
404 template <class Container>
405 void create_vector(const Container& c, std::vector<bool>& v,
406  std::string s0, std::string s1, std::string s2,
407  std::string s3, std::string s4, std::string s5,
408  std::string s6, std::string s7, std::string s8,
409  std::string s9, std::string sa, std::string sb,
410  std::string sc);
411 
412 
413 
423 
424 template <class Seq>
425 value_list_ba<Seq, do_nothing_type0>
426 value_list(const Seq& s, const char* d = ",")
427 {
429 }
430 
431 
437 
438 template <class Seq, class Manip>
439 value_list_ba<Seq, Manip>
440 value_list(const Seq& s, const char* d, Manip m)
441 {
442  return value_list_ba<Seq, Manip>(s, d, m);
443 }
444 
445 
454 
455 template <class Seq, class Manip>
456 inline value_list_b<Seq, Manip>
457 value_list(const Seq& s, const char* d, Manip m,
458  const std::vector<bool>& vb)
459 {
460  return value_list_b<Seq, Manip>(s, vb, d, m);
461 }
462 
463 
469 
470 template <class Seq, class Manip>
471 value_list_b<Seq, Manip>
472 value_list(const Seq& s, const char* d, Manip m, bool t0,
473  bool t1 = false, bool t2 = false, bool t3 = false,
474  bool t4 = false, bool t5 = false, bool t6 = false,
475  bool t7 = false, bool t8 = false, bool t9 = false,
476  bool ta = false, bool tb = false, bool tc = false)
477 {
478  std::vector<bool> vb;
479  create_vector(s.size(), vb, t0, t1, t2, t3, t4, t5, t6, t7, t8, t9,
480  ta, tb, tc);
481  return value_list_b<Seq, Manip>(s, vb, d, m);
482 }
483 
490 
491 template <class Seq>
492 value_list_b<Seq, do_nothing_type0>
493 value_list(const Seq& s, const char* d, bool t0,
494  bool t1 = false, bool t2 = false, bool t3 = false,
495  bool t4 = false, bool t5 = false, bool t6 = false,
496  bool t7 = false, bool t8 = false, bool t9 = false,
497  bool ta = false, bool tb = false, bool tc = false)
498 {
499  std::vector<bool> vb;
500  create_vector(s.size(), vb, t0, t1, t2, t3, t4, t5, t6, t7, t8, t9,
501  ta, tb, tc);
503 }
504 
505 
514 
515 template <class Seq>
516 value_list_b<Seq, do_nothing_type0>
517 value_list(const Seq& s, bool t0,
518  bool t1 = false, bool t2 = false, bool t3 = false,
519  bool t4 = false, bool t5 = false, bool t6 = false,
520  bool t7 = false, bool t8 = false, bool t9 = false,
521  bool ta = false, bool tb = false, bool tc = false)
522 {
523  std::vector<bool> vb;
524  create_vector(s.size(), vb, t0, t1, t2, t3, t4, t5, t6, t7, t8, t9,
525  ta, tb, tc);
527 }
528 
529 
550 
551 template <class Seq1, class Seq2>
552 equal_list_ba<Seq1, Seq2, do_nothing_type0>
553 equal_list(const Seq1& s1, const Seq2& s2, const char *d = ",",
554  const char *e = " = ")
555 {
557  e, do_nothing);
558 }
559 
560 
566 
567 template <class Seq1, class Seq2, class Manip>
568 equal_list_ba<Seq1, Seq2, Manip>
569 equal_list(const Seq1& s1, const Seq2& s2, const char* d,
570  const char* e, Manip m)
571 {
572  return equal_list_ba<Seq1, Seq2, Manip>(s1, s2, d, e, m);
573 }
574 
575 
583 
584 template <class Seq1, class Seq2, class Manip>
585 equal_list_b<Seq1, Seq2, Manip>
586 equal_list(const Seq1& s1, const Seq2& s2, const char* d,
587  const char *e, Manip m, const std::vector<bool>& vb)
588 {
589  return equal_list_b<Seq1, Seq2, Manip>(s1, s2, vb, d, e, m);
590 }
591 
592 
598 
599 template <class Seq1, class Seq2, class Manip>
600 equal_list_b<Seq1, Seq2, Manip>
601 equal_list(const Seq1& s1, const Seq2& s2, const char* d,
602  const char* e, Manip m, bool t0, bool t1 = false,
603  bool t2 = false, bool t3 = false, bool t4 = false,
604  bool t5 = false, bool t6 = false, bool t7 = false,
605  bool t8 = false, bool t9 = false, bool ta = false,
606  bool tb = false, bool tc = false)
607 {
608  std::vector<bool> vb;
609  create_vector(s1.size(), vb, t0, t1, t2, t3, t4, t5, t6, t7, t8,
610  t9, ta, tb, tc);
611  return equal_list_b<Seq1, Seq2, Manip>(s1, s2, vb, d, e, m);
612 }
613 
614 
621 
622 template <class Seq1, class Seq2>
623 equal_list_b<Seq1, Seq2, do_nothing_type0>
624 equal_list(const Seq1& s1, const Seq2& s2, const char* d,
625  const char* e, bool t0, bool t1 = false, bool t2 = false,
626  bool t3 = false, bool t4 = false, bool t5 = false,
627  bool t6 = false, bool t7 = false, bool t8 = false,
628  bool t9 = false, bool ta = false, bool tb = false,
629  bool tc = false)
630 {
631  std::vector<bool> vb;
632  create_vector(s1.size(), vb, t0, t1, t2, t3, t4, t5, t6, t7, t8,
633  t9, ta, tb, tc);
635  d, e, do_nothing);
636 }
637 
638 
644 
645 template <class Seq1, class Seq2>
646 equal_list_b<Seq1, Seq2, do_nothing_type0>
647 equal_list(const Seq1& s1, const Seq2& s2, const char* d, bool t0,
648  bool t1 = false, bool t2 = false, bool t3 = false,
649  bool t4 = false, bool t5 = false, bool t6 = false,
650  bool t7 = false, bool t8 = false, bool t9 = false,
651  bool ta = false, bool tb = false, bool tc = false)
652 {
653  std::vector<bool> vb;
654  create_vector(s1.size(), vb, t0, t1, t2, t3, t4, t5, t6, t7, t8,
655  t9, ta, tb, tc);
657  d, " = ", do_nothing);
658 }
659 
660 
668 
669 template <class Seq1, class Seq2>
670 equal_list_b<Seq1, Seq2, do_nothing_type0>
671 equal_list(const Seq1& s1, const Seq2& s2, bool t0, bool t1 = false,
672  bool t2 = false, bool t3 = false, bool t4 = false,
673  bool t5 = false, bool t6 = false, bool t7 = false,
674  bool t8 = false, bool t9 = false, bool ta = false,
675  bool tb = false, bool tc = false)
676 {
677  std::vector<bool> vb;
678  create_vector(s1.size(), vb, t0, t1, t2, t3, t4, t5, t6, t7, t8,
679  t9, ta, tb, tc);
681  ",", " = ", do_nothing);
682 }
683 
684 } // end namespace mysqlpp
685 
686 #endif // !defined(MYSQLPP_VALLIST_H)
const char * delim
delimiter to use between each pair of elements
Definition: vallist.h:130
value_list_b(const Seq &s, const std::vector< bool > &f, const char *d, Manip m)
Create object.
Definition: vallist.h:252
Holds a list of items, typically used to construct a SQL "value list".
Definition: vallist.h:186
const Seq * list
set of objects in the value list
Definition: vallist.h:189
equal_list_ba(const Seq1 &s1, const Seq2 &s2, const char *d, const char *e, Manip m)
Create object.
Definition: vallist.h:91
Manip manip
manipulator to use when inserting the list into a C++ stream
Definition: vallist.h:241
const Seq2 * list2
the list of objects on the right-hand side of the equals sign
Definition: vallist.h:123
Manip manip
manipulator to use when inserting the equal_list into a C++ stream
Definition: vallist.h:79
const Seq * list
set of objects in the value list
Definition: vallist.h:229
const char * delim
delimiter to use between each pair of elements
Definition: vallist.h:71
Declares the Query stream manipulators and operators.
equal_list_b(const Seq1 &s1, const Seq2 &s2, const std::vector< bool > &f, const char *d, const char *e, Manip m)
Create object.
Definition: vallist.h:152
const Seq1 * list1
the list of objects on the left-hand side of the equals sign
Definition: vallist.h:119
value_list_ba< Seq, do_nothing_type0 > value_list(const Seq &s, const char *d=",")
Constructs a value_list_ba.
Definition: vallist.h:426
const char * delim
delimiter to use between each value in the list when inserting it into a C++ stream
Definition: vallist.h:193
Manip manip
manipulator to use when inserting the list into a C++ stream
Definition: vallist.h:197
const Seq2 * list2
the list of objects on the right-hand side of the equals sign
Definition: vallist.h:68
Same as value_list_ba, plus the option to have some elements of the list suppressed.
Definition: vallist.h:226
const std::vector< bool > fields
for each true item in the list, the pair in that position will be inserted into a C++ stream
Definition: vallist.h:127
const std::vector< bool > fields
delimiter to use between each value in the list when inserting it into a C++ stream
Definition: vallist.h:233
insert into a std::ostream to override manipulation of next item
Definition: manip.h:389
const char * equl
"equal" sign to use between each item in each equal pair; doesn't have to actually be " = "
Definition: vallist.h:75
Manip manip
manipulator to use when inserting the equal_list into a C++ stream
Definition: vallist.h:138
Same as equal_list_ba, plus the option to have some elements of the equals clause suppressed.
Definition: vallist.h:115
Holds two lists of items, typically used to construct a SQL "equals clause".
Definition: vallist.h:60
const Seq1 * list1
the list of objects on the left-hand side of the equals sign
Definition: vallist.h:64
equal_list_ba< Seq1, Seq2, do_nothing_type0 > equal_list(const Seq1 &s1, const Seq2 &s2, const char *d=",", const char *e=" = ")
Constructs an equal_list_ba.
Definition: vallist.h:553
const char * equl
"equal" sign to use between each item in each equal pair; doesn't have to actually be " = "
Definition: vallist.h:134
const char * delim
delimiter to use between each value in the list when inserting it into a C++ stream
Definition: vallist.h:237
value_list_ba(const Seq &s, const char *d, Manip m)
Create object.
Definition: vallist.h:206
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1RefCountedPointer__inherit__graph.png000644 000765 000024 00000112677 13515046516 031246 0ustar00tangentstaff000000 000000 ‰PNG  IHDRUí–€ƒsRGB®Îé@IDATxì¼ÕõÇ/"нa7нw±`#öŠJ,ÑØc¯ÑÄò7‰%öÞ£Fbï£F1"vÄÞ»¢FEEQQ)÷¾g9Ë}Ãììîk¼rÎçí›™;wîýÍîÎoNíE‚‹#à8Ž€#à8Ž@“˜ªIGûÁŽ€#à8Ž€#à8Š€“*ÿ 8Ž€#à8Ž€#Ð 8©j½ GÀpGÀpœTùgÀpGÀpf@ÀIU3€è]8Ž€#ÐÙØi§B—.]üåtÚÏÀgœ1Ù×~êɶøGÀpG Ö\sÍpä‘GÖÐÒ›8 C9$wBNªrañŽ€#à8Õ˜þùÃ;ìP­™ïw:Ç{lîœÜü— ‹otGÀpG >œTÕ‡—·vGÀpG 'U¹°øFGÀpGÀpêCÀIU}xykGÀpGÀprpR• ‹otGÀèHì»ï¾á–[niÑ)½ñÆaóÍ7oðÚj«­Â1ÇÞ~ûíšÎ=a„pî¹ç†ÕW_=¼ôÒKzÌwß}>øà°Â +„Yf™%,¿üòáÔSO cÆŒ©©Ï¦4=zt5jT£ºxôÑG f.YlöÛo¿0hРÀœ«É;ï¼£ÇñÅÕš†¦Œ¹jçU8©ªïvGÀhÿpƒÿàƒZt"_ýuxàÂì³Ï–]vY}Í7ß|áÚk¯ ¤Ÿ6lXÕó¿öÚkáücèÝ»wøÕ¯~ «®ºj¸ñÆC¿~ýÂ9眣ýžtÒIa×]w­Ú_Sì³Ï>a·ÝvkT7#FŒ?þ¸ûÕW_)6sÍ5—ŽÉ%—Ôë±á††‹.º¨jÿãÇ?üðCM¬)c®:* <¥B€|·#à8Ž@Óøæ›o7Æ9æ˜#<ÿüóa¡… Ü`Ñ*¼øâ‹ò±ð ‡Ÿþ9 ><Ì;ï¼aÚi§Õ£‘ùüóÏ)ºuë¦mžzê©0÷Üs‡e–YF“OÚÿ÷¿ÿ^‘o¿ýV÷õèÑÃvëòË/¿T7éW^yE5@Œ ùþûïCŒ1L?ýôaèСaÎ9ç K,±„îã߸qãôÕ½{wÝ–]gãᇮš&m ÿî¾ûî°ÝvÛ…|0ì¿ÿþº™ãÐl±\qÅC×®]•0˜F b0óÌ3k_ÌçÕW_ ‹/¾¸˾þýû‡¿þõ¯Š%sEhÇ|Àn¥•V*ãÂöYg5Ì8ãŒÚÍsO®ËرcÃl³Í^~ùåÀ¼À”ñ@üñÇðÓO?…Ï>ûL¯€ä㹎©p­^ýõɶ[›?ýéOªicœW[mµpõÕWë<Ù†ÖŠ¾39ˆ%Â5¸í¶ÛôzØçaÁ ~ø¡~^ÀùÕ;æ‘#GªÆÏâ!CÂZk­UÆMO\ï?™”‹#à8Ž€#P;î¸cüÍo~Só1’$4Ê 2öìÙ3Ê}*N5ÕTñ ƒŠr3Óu¶yæ™ñ“O>Ñ}—\rI¹ïË/¿<ÊM> ±Šçw^œa†¢=nË-·Œr#Ö¶'œpB¹o!Q´!q¯½öÒ}BHâßþö7}?Í4Óĵ×^[û’…@Å;î¸C÷ýîw¿‹K/½tmS¤ãÚ{ï½uÿÄd…hå®?öØcÚþ™gž)ïçFÝ>`ÀÝ.ÄIÏAßSO=uœgžy¢ÜУE;Û™/ý0O1]6è!£ñ_ÿúWüôÓOuŸ,=–qK¦{Ÿ ÝÆbRÔ÷ü;í´Óâb‹-¦ë\æ >œ“so²É&Š)ׇ¾Ø&š6mÝu×)^àfm…¼ê>ÑFpg;Ç­¼òÊz­Ø9pà@Ý.¤OÛÚ¿wÞ9 Ôó Á‹}úôÑyÉÓåñǯMÁ‡~…D)V¼ßvÛmËc暈‰P?SõŒùÏþs\n¹åÊ×CH½ ­p¹È"‹ÄÓO?}²6nþ“+ãâ8Ž€#Ðòa GqD@S´ÑF…K/½4È; 9’®¼òʰÀ „õ×_?Ü~ûíå¡¡ ½© Ä)œ|òÉzŒ˜ðŸÿü' µBËÀv48ø ) øáT4ï¿ÿ¾j³6Ûl³€ÚäÍ7ß _|±jhþñ^÷ÜsîÛtÓMËZ6d×ÙöÐC…[o½U_˜ë~ÿûß´*ø!{î¹g˜nºéôhj˜÷{ddË]g¾x Î—~„©© ûÛ߆m¶Ù&<ýôÓŠsÁ? ÓÇ¡Ý:å”S´ß£Ž:JµKhª0·bòË ×ìþûïBÃqÇî¼óN»!Õ¼¡½cìÌÿª«®Ò¾yä‘l7ºŽV“qp.´WôUï˜éÍØ*«¬¢Z?ÓŽæž°†NªjÉ›8Ž€#à4HÂa‡¦&ˆ70ÊÜ`æÚxãÕ”ÃYðâæ ùâ¦9xðà $5MarÂ\$5‡a>Ä_I4Mj²û¿ÿû?]î²Ë.a©¥–ª8è8@I f>ÑV¨Ùˆ›+"š ½Ñ‹6-ˆ¦+ˆVBoÜìï‰ö&Ùu¶ŸþùJ!›^xA‰¦ÄaâWA`1vˆ‰h†tîfú³¾kqà¦í]wÝ¥æÌÝwß]-T-Nxøá‡­«Â%óc¬˜V!WÈ»ï¾;Ù1–_~ùEû†ø0~Ìe˜5ñýzöÙgõzb>\wÝuƒh2'ë14×óšk®Ñ¾,;9ýãØ{üÓ*Í2‡Ys½õÖSâɘ²R4fk;ÓL3)¡‡X5Uܧª©úñŽ€#à85!€¯‰˜½Ô§Š‚¦Bl)úž›1Ñnˆ ~>ø$qÓ‡LAjЖpƒ_guÔúã?V?"1ÙiüC;TIìÆÍ~ȉC ©°ßö¥Û+½¿ï¾ûÊ>U#Z8´:hå1i†þóŸå.ÐСyI¼ œðHmZ#4}6w°2áXiž@†RÁŸÈÄ|ÅðËÊG}¤›²ŽëŒÌõCëf"æ?{[^B¼ð•Ê 8‰)S5Fé>1VœG:n4wõŽÙÎ åøæ'UÍ¢÷á8Ž€#PˆS-BÚ€­·ÞZM€¡Â v"øˆ°ÃÜÃf"œÖ¹a§B[àóÇkÌgˆ9]§û 8Òc~lŒ@tpΆTan$-‚6Ë¢÷ l˜¸ˆˆC‹• ŽÜ¤€páaÿM7Ý o3ˆm 5†±Ж1@@M²Z(;ÆöWZBÔ ­˜èŒ sœ½qlGp¨7̳ףR¿lgŒWíMp’G{g8Ùv[¦$Ò¶e—EcζmŽõI´¶9zó>GÀpf@€)fŸÿþ÷¿å~nè{챇†àC Є ½ÂdæÃ+®¸B}ƒð×Ê’‡tXæs…Éï‚ .P­–ˆ) ðOÂ|!‡x=üæ›oV_ ë+»nÛÓ¥E¢¥B FºÒ ¹zë­·tNä²Êóç|q~|·ðC+…Ù sX`clŒ3"ÅÁ]IþPQƒø¥AX b¼¯UÀ’I¿˜æˆVüË_þ¢þRôŹñkëÕ«—[òg1/®[êWËùèí$¦\æ,A zX½E»ks-cª»|0]GÀpº¨7úO|i4"ÍNrÖYgEÑ Ùjgpä² ¢‰Ò<1áE1ëØæH”›hl¢}É8ÒP9Zˆ·žihÑ’_ŽÖ"ªÈ4‹v#úÈ;„è¿E]TÏ-7ÔHZå%)¢hÅ´-ÿÒuÉɤjÙè?!"QnôQü¨ô8I„…\i[ÎAT¤h¨tŸIÝ.L×ù')¢˜ØÊíECÅôʼn½ÜFœ¾uî6'!TQR!è~¢Á‹s ˜’½.DòÑNœÉu¿FP#]²Zî‹vBf£˜"u~ýÇ… EÑhé>qÀ×~E“¥ëyÿDcÅœ«í8ž1‹ÿœ6Í‹þ“´ ån„t–£4ë3Ñ6·rg5¼áú¥Ÿ ;¤ oGÀpG fvÚi'õa©WQë ð±ÁLh`RA+ƒ Š\Lf†²ýøñB;ƒ ÓÑ{© 0`@Øb‹-4ÿUêÐŽ† ³ÚœÈ1É¥~Zi?MyƇþYâc„Y‘€æL´]BÕ?Û\ÐΡ Kýh‡¹”ÜOB³‡U]Ç¼Çø k";çH}Óès)×?%4ˆõ ”„y¢Ãá½±¾NõŒ¹Þ1Ò‰EØJñUL[ú{GÀpG ÀìGØ=äÈ’e¦§ÅœFtYžè3›ì3¯ÛðÝâ•'ˆ<‡ê¼¶ÙVoÿøATŠ\ÌÔ˜m‘l ¡¢ƒ¦‚óük¬‘n*¿'š?°Æ þ]gzÎzÆœ×Ô÷NªšŠ ï8Ž€#Ьàƒÿ¾5YK='Âw)O[B †JäƒÌÝÙè¸zÎém;7Nª:÷õ÷Ù;Ž€#ÐæŒßÍ2&ñÛÊí‡d‘•'ìÆ©p'ihK NÛ–¤4=ù»ˆ‚Äy³çöÛoŸîžì}µñþú׿à‡Ã?%‚* ŽåiTb¥ve»“ªÎr¥}žŽ€#à8-†¡ÿDçµ´q?¦¬‰”Z¶4}B¥ñT¯eD'Í™ìÎM–t«šÔšŽÁÚwô¥“ªŽ~…}~Ž€#àt0,¾*½¡ãˆF…¼¤@›ƒOÞ8N³Ÿ” „Û³Ÿ¼W¤#0Á‰›mf.$ ºc¤‚¶ô‹ivœ¨!–ßÊú‘›1V*ÊL^*|¹¬/Æ•š#9/>TŒ•~ÈQ…OÛRP’'OÈ[•jŽ i#òЧÇsœÜÁ'ÊÖ˜ô“œ]¤ƒ@pŒg.Vô˜m”—¡39§p‡ì‘6Çs2–§Nÿ8ésmXZQiú0ázRò3.ù¦²ÂqÕü³Ç´ôºç©ji„½GÀpfA€›,¦AnúžT$MjpÈWEôD…ò%Ôõƒ\¡Ù¡4ÎØ±cµMZBb$©47„‰÷´•¢ËZêR€5œ,í8ÉChà ?+d9§| ‘‡l°0²Ÿ›@B6ÜpCíƒüSôI9Äþð]%©'äLÒ5ØîÂ%¹»ÈÁ…\ýõJFúôé£sâ\–Ñ=í"Ä\!Šø”‘݈kÚ.ûžþÁŠ5&” !‚’ÜUÌŒ LàA´&ä¡>!׈}8½“•ó)æºAV©;>$OÍ ‘w”ø!R³í\öø–XwRÕ¨zŸŽ€#à8Í‚¥Gî½÷^­ÇÍM æ§T›’žˆÈ4Ê8"‚Ö‡9É<ÉVŽf„›¾ÕäX+‡Cš4@ÈÇAž8'dŒBÈŠ1c>KÉD:Þ“r RQföt¦>"äX}ôÑ ´a8ð3‡ôE‚TÈÞ^Tü8mKÊ Æ ±C‹‡V«!¹(š-#„ÓÁR§‘q™ÐZ*´`h¶¨Íˆ€%š>΋6ÍŠJCæHÓAiæÄ1Ô ”üd“=²é£ÃŒóÐŽþ¦¤8©š’èû¹GÀpràæN6sHÚLsh? #'t’ÖÄË;º€”I± èÔä†këO”U12€¦Í&8ÂùŸ{î¹pÆg¨i"†Ã6f/Ž¥äŽvü­$EE™9¦¨ sÿþý•DÒŽ4 Œ f@´9éËÊÄXæ†ö†ÂÊÙâÇÖÆ–VrvQByÔQGÙ®Â%„òg¹Ê §˜ãR'yÿ!O̼ ]ê•FÓYccú`©¹—aN¼á†ÔìKqe|ÚÈmE=HòA¨[[ܧªµ÷ó9Ž€#àTEM%Z0µQC.ϧ&¯LNˆùÚ˜FËnÈhB O’Ý\É€º{h²HÚÎ/YÊ•dpãÆw!ƒI֗ʶ³„¤’-Êœ&ÍdbçHË{ù©äSe틊[–ø%Qû0”ÄLW« -Bë„– rJäašû+'é1hgcC˜WTS-&L^˜÷0B° ›yÂùÈgÆ â½óÎ;+ƒØfúóŽoÎm®©jN4½/GÀpfAàC Gy¤šsÈxNöêZ¢ëÌ™»Ú 0Q¡5ÁW-Xß¾}õ"ÜÐaÚ£ ¾>+Ë—•¦ÈšÜÒsæeNIXº?[Ð9í§±ïÓBŸ|òIà%ån&#cOH …MÐÔÕ*<ãÁ\Ÿ¼Í/pcÚnN¿´ÁˆEªêç<¼èÿöõèÑ£JEY¢«e˜æI•—ýHf×9Q‰üÉ»A¡ÈjÊph%ˆ›7•J‚ù§h¢„Lðµá…ÜsÏ=JªÈ*‰¡=Éó²qscâZð´¦"†ŸG*E®‹®} Mà.MC€Ï25íЀî¾ûîî Í ù•²R­(sQAçl_m}Ó[¯^½4j2+æMæ™þޤû;ì{ùpq6Œ€dŽûì³O‚0Ù(%§L?(f(?RQT“F”2]BÅ4…dD¹GqŽ-÷!þQžö£«(áãQ´4‘öô#4QnàÚVyuÇÓ¿ø:DÉ7£ûÄ4þíoÓ÷ŒA²2kŸBÒ¢‹(I uŸ„]G!%QˆHy¬âÇ¢ûø'jô($w}àÀz~Ét]ÞŸ¾a¾âG¡›„(F¹Ij{ÆÀüÄ_D÷‰Q·KB]—Ðy]g¾Ì[LåyYÿbÂÐ6¢Å²MQ4±OŸ>åu!“z°­6OñÉQ\ç•pñ($Uû*ºv2!½Ì™“dÛú!¨Ô™¦Éõ‚ÖjÈ!í„–ß‹XÊÛ ¦´Y$SÄçÀüMð¨”ašò‡~x¹Ûì:;p ÆWÅ^úÓŸÊíí ý“o &AW9ŽíTÐb¢M”8áËØkÎ_)7ÇWš'¸TÊp ¶D¡1Žì5HÇ„¶ŒH5æI¨?&Ñûï¿_5Xi»?þ§0ïŒß·øiüŽ@{CÀIU{»b>Þäˆdz˜äÈÙB¨3åˆ8b{žp“GÍÎ çI’åá‚iµ<ÚHJ0{‘S†>1¹q>üKˆn"|¿#ú¤¦,Ì$,‰à)òs(Ê]”ar@ÒE“ì:Û!ŒiiÌ¡Y!$œ¨,æƒó:%Eˆb—*ü¤ “D"!ëS‹eãæøJó,Êp]t Ò1aÊ… B ™¦\jØ©†‰³V«Èˆ§Ãqk=Þ*§ò“8í ÷©jOWËÇÚဴàxÖ‚›d-θi¦i|£ E&ø3ˆjZW¹ùRbÃêœq#'qÇ@¦ 5DóQÚ‚PfˆþC„<§QV”è¨$iÔ9v[–謳*ûm_¥þÒíÌ<Ÿª´ dÍEXM "Y¿%ZÀt^µf‘.ÊÆÍ9+ÍÓJfd“#¢q*ºÙ¬àWyæ‘"5Ÿ,Jš4JDû¾{-„‘/…0æë–9¶r7sö'=Ù§ò~ßãtRœTuÒ ïÓn›ECBÁÓN;MÃú)ÿ€#-7ÞJ’% •Úe„6&@ŽP¡ÅÁÌÐ(nü,Ñ`]uÕUê´ž5Ñ6/%çM³'g³D§ûЄQK ócs ãBkC8· Y¤ÑâA8L Fä=J¿É"Mý³Z­¥0²Ù¸9¶Ò áËG'‘¨oÄ„÷‹8Ôw‘ø¡™—ÍÓñ!,´KgBÄçê´{œTµûKèpv‰À{W„ðÜ¡b/]&„ÙWÓ¼t¹b]%­‹#à´;œTµ»Kæv¶‹Àq[´OÏ•†Øs·ÊC?Z´R]Å„7må6¾ÇpÚîSÕ®.—ÖpÚ(ÉëúæùÒ‹(<ò>u¢„óx©ê:y¦ô¶37‰#à4×T55?ÆpÑŸ„p÷‚B ¦Þòbº[U2‘¯VZÎ*ë]êKÑà€:Ž@ûGÀIUû¿†>GÀhn LhŸض¸g¢ôfYNLxB¬\G Ó#पÓG “#0f„¨g%çÓÄïú¢…·íÇ!L7'ȧï8µ"पV¤¼#àt<Ù4„Ï–æ5ãÂb¾ëUzÍ.KÌySÏØñæì3rCÀIU‹Aë;ŽÀE Ž“êzò*Jùé=%Ódjš9¦èpý䎀#ÐþpRÕþ¯¡ÏÀp@àÇabÂ*¯gJK|¢V9?„Åös|GÀhœTµ Ì~GÀh†‹éî‹¥°°©Ÿ¿­“d‰Áq|ŽÕCè!õõæÙ8„é«×l‘±y§Ž€#ÐéðG }!àšªöu½|´Ž@ÇG`ŒhœF ‘×ÓB˜$×Óò'uü9û G C àšªq}Ž@;E Ž,äF¢Xþð¤3è"E…—’¬ä[µÓ‰ù°G 3"àšªÎxÕ}ÎŽ@[Aà—oB¸]¢î¦™µäÕc-1ã­YzßM¶¹8Ž€#ÐŽpRÕŽ.–Õh_Hm¼o_ ’-aªÊCÿá½f\Tö‹vÊÅpvŒ€“ªv|ñ|èŽ@›B`Ü÷¥(¼¯ž”åS%“ÞØQ!lùJ©6^›¬ÆpæGÀIUócê=: 7Ï aØ ¢•zM’mŠvjÆEB˜³·¼Ö3ž,g•EšªÎ…–ÏÖp:0Nª:ðÅõ©9­‚ÀÛ„@bˆ$ªû<­rZ?‰#à8m 'UmíŠøx¶€ÀøÑ¥Ìä_>^Ò4-Я-ŒÊÇІ2dHøä!Ó.Ž@'E`…VK.¹dƒÙ{J…pøŠ#ÐIøåë¾z"„/åõ•©o^aÂØfX(„¥Žè¤ ø´‹8ï¼ó­·ÞZÔÄ÷9ÓO?=sÌ1 æè¤ª¾âtB¾x8„ARΙeÙæZ7„%sÞ:^⥄Šÿ¯€Ào~ó›pûí·WØë›Ž‹À¢‹.š;9'U¹°øFG !0G¯Ö¿Gü¡Ä±|šÙ:ÑÄ}ªŽ€#à4/NªšOïÍh|ÿ¦˜ò-½F¾$i ^—qUÈ5õÌ!Ìç™ËÛÆ…óQ8Ž@{FÀIU{¾z>vGÀøNHÓ—ƒCøb"‘úYêçu›±”Ö`áÝC?F Og­}é8Ž€#Ð8©jP½KG Õ²g£Þ-ùA-ý'ñ‹Z?„ÙW‘$åþoõká'tN‹€ÿâvÚKïoWLøE¬wÓT2>QÝç–ýL|•ô=Ž€#à8Í„€ÿ7Þ#Ьüøa\ÂS¿ á®yC Áf‘t—6N¨Šò}}÷Ý7ÜrË--ŠÂo¼6ß|ó¯­¶ÚJÃîß~ûíšÎ=a„pî¹ç†ÕW_=¼ô’øCŠ|÷ÝwáàƒäEše–YÂòË/N=õÔ0fŒ˜õ[XFF’rSG}T±àPæ’Åf¿ýö ƒ ̹š¼óÎ;zü_|Q­ihʘ«v^¥“ª*ùnG U O¥^žù}÷,¿ á¹CCóU)½ÁüîHÞ*×ÁOÒaàÿÁ´èü¾þúëðÀ„ÙgŸ=,»ì²úšo¾ùµ×^Ö\sÍ0lذªçíµ×ÂÿøÇлwïð«_ý*@"V]uÕpã7†~ýú…sÎ9Gû=餓®»îZµ¿¦6ØgŸ}Ân»íÖ¨nFŒ\òÞ‰|õÕWŠÍ\sÍ¥ã'i&×cà 7 ]tQÕþÇ~øá‡šXSÆ\u U¸ù¯ @¾Ûh¾*„jïæX#„…÷až äýšÅ&¿V˜ŸÄh¾ùæ›ÀqŽ9æÏ?ÿ|Xh¡…7X´ /¾øb€|,¼ðÂáçŸÇóÎ;o˜vÚiõähd>ÿüó0ÿüó‡nݺi›§žz*Ì=÷Üa™e– ]ºt)òÿû_àùöÛou_=Êûyóå—_ªÆ‡›ô+¯¼¢ Æ…|ÿý÷!ƦŸ~ú0tèÐ0çœs†%–XB÷ñoܸqúêÞ½»nË®³ñðÃWM“6wß}wØn»íƒ>ößÝÌqh¶X®¸âŠ¡k×®JL£1˜y晵/æóꫯ†Å_\e_ÿþýÃ_ÿúWÅ’¹"´c>`·ÒJ+•qaû¬³ÎfœQ‚WDÐ|1wð二;6Ì6Ûláå—_Ì L$ñÇ ?ýôSøì³Ïôq<Aþ8žë˜ ×êõ×_Ÿl»µùÓŸþ¤š6ÖÁyµÕV W_}µÎ“mh­è›1£‘ƒX"\ƒÛn»M¯‡}\pÁðá‡êç ™_½c9r¤jüø,R%`­µÖ*ã¦'®÷ŸLÊÅpZñÅg˜ðKŒã~,nã{6„ÀŽ;î%ùgÍ#:òÈ#£Ü cÏž=£Ü§âTSM:è (73]gÛ™gž¥ôî»ä’KÊ}_~ùåQnòQˆU”Lîq†fˆB8ô¸-·Ü2ÊXÛžp 待DDцĽöÚK÷ !‰ûÛßôý4ÓL×^{míSHZï¸ãÝ÷»ßý..½ôÒQ´M‘vŒkï½÷Ö}ü“U¢•»þØciûgžy¦¼Ÿ7Buû€t»'=}O=õÔqžyæ‰rCBuîlg¾ôÃ<ÅtÙ ?V„ŒÆýë_ñÓO?Õ}B°ôXÆ-$Sç'C÷±˜õ=ÿN;í´¸Øb‹é:×…ù‚çäÜ›l²‰bÊõ¡/¶‰¦MÛ_wÝuЏY[!¯ºO´ÜÙÎq+¯¼²^+v8P· éÓ¶öoçwŽBõ|BðbŸ>}tBòtyüñÇkSð¡_!QŠï·ÝvÛò˜¹&b"ÔÏT=cþóŸÿ—[n¹òõRoC+\.²È"Q2ªOÖÆÍre\Aàû·BxçÂÝRü¢æ—Ÿ€±•OÓ¥›¤<˜¾ò~ßãt¨xÄG¨¦h£6 —^zi·jN„¤…+¯¼2,°Àaýõ×o© í…L!Náä“OÖc„Ä„ÿüç?­Z¶£ÁÁHHYÀ§’ áxÿý÷U›µÙf›ü{ÐÞ o¾ùf¸øâ‹UCóü#ðºç ÙtÓMËZ•¼u¶=ôÐCZ‡2>˜ë~ÿûß´*ø!{î¹g˜nºéôhj˜÷{ddË]g¾x Î—~„©© ûÛ߆m¶Ù&<ýôÓŠsÁ? ÓÇ¡Ý:å”S´ß£Ž:JµKhª0·bòË ×ìþûïBÃqÇî¼óN»!Õ¼¡½cìÌÿª«®Ò¾yä‘l7ºŽV“qp.´WôUï˜éÍØ*«¬¢Z?ÓŽæž°†NªjÉ›85!ðËÈ>¹=„¡ûŠOÔB!Ü»t¯œXʵü_…T¯©oätT ‡v˜šp NÜÀDS¢f®7ÞXM9Ì_!n¾˜é¸i<8ˆIMS˜œ0‰ÆDÍa˜ñWM“šìþïÿþO—»ì²KXj©¥*ByÀ(iÁÌ'Ú 5qsEDs¡7zѦÑtÑJè›}ø5ÑÞ$»ÎöóÏ?_É#bó /(q”8Lüª (,Æ1ÍÎÝLÖw-Ü´½ë®»Ôœ¹ûî’“ND´PA´8áá‡Öõjÿ˜cÅ´ ¹BÞ}÷ÝɃ´üòË/Ú7ćñc.ì‰ï׳Ï>«×óáºë®(c”üÅ Ð\Ïk®¹Fû:öØcµýãØ{üÓ*Í2‡Ys½õÖSâɘ²R4fk;ÓL3)¡‡X5Uܧª©úñŽ€!€F ߨ9Va‘½B˜wÓÒû.]­…/N¾>&böRŸ*nhš ±¥è{nÆD»A 6øùà“ÄM2©A[ ~uÖQè?þXýˆÄd§}ðíP%±7û!;$d¤Â~Û—n¯ôþ¾ûî+ûTAŒ pháÐêàÏ„ˆI3üóŸÿ,w†ÍK*à…_¤¾¥xv3‹¹Ï U1F¾×¨n¤˜}þûßÿ–Cú¹¡ï±Ç‚@‚ö ™¯¸â õ Â_+KÒS›Ï&¿ .¸@µZFx ¤0À? ó„Dâõð›o¾Y}¬¯ìºmO—Yˆ– -éH#€æê­·ÞÒ9sÌ1åhÇôXÈçÇ— ß1´R˜Í0׿1ÆÆXñ7#âQÜ•¤á…5ˆ_„"ÆûZ|!™ô‹iŽhÅ¿üå/ê/E_œ¿¶^½z)±%óâºÝ~»¸CÔ!ôvS.s– =z‡v¨£ù®qÌuuZkcù`º8Ž@ŠÀø11~>0Æç‹ñ_‹Äxƒ<ÞÑ#Æ×'ôHó÷Ž@gB Þè?ñ¥Ñˆ4Ã謳Ί¢²Õ(ÎàÉeD¥xb‹bֱ͑(7ÑØDñÇҗ܈#mÑ•£Õˆxë)‘†ý'!ùåh-¢úˆL³h7¢ßˆ¼Cˆþ[tÑEõÜrD¡¥Q^’!ŠVLÛò/]—œLØ/5j¯Ü@Þ‰r£âG¥›%fr¥miOT¤h¨tŸIÝ.¬Ü…¤dˆbb+· MÓ_'örqúÖ¹Ûœ„PEI… û‰/Î&`HöºÉG;q&×ýB5BQüt]Èj¹/Ú ™bŠÔ}DøYôc2E£¥ûÄ_ûM–®çý]s®¶ãxÆ,þsÚ4/úOÒ.”»ÒYŽÒ¬gÌDÿÙÜÊÕð†ë—~.ì.¼`\Gà§OCxþð>ÂØQ!Ì*v’nò걦àãŠ]œlqdÅQØTü-ñÁá)ž¡¯Iyþ7<µÉ•'¿þõ¯ƒÜÜ5/~<äÄAÓ‘šC8¦ ´.“Øi§Ô‡¥^mĤŠßácƒß9™²Ø£•ÁE.&3CYoøñB;ÃgÓÑ{©à ?`À€°Å[hþ«Ô¡ f'´98‘c’Ký´Ò~šòý³Ädz"Ì™h»„ª3~¶=¸ C–úÑs)¹Ÿ„0f«ºŽyñÖD$2vΑú¦ÑæR® ~Jhë( óD3†Ã{c}ês½c¤=81І1•⫘¶ô÷Ž@GG`ZIþG½•N+©éêè3®{~ü ãÇ’ut­»£*à—oIžÚÕ>çO}D*u‡?&“Jbaß$?d^ÑLD™` ªvó¶¾l0ûAª!G–,3ísÑeyB¢Ïl²Ï¼vlÃw‹WžpÍóªóÚ6f[½ýã?Q)p1Sc¶D²1„Š~H š Îók¬!‰Šs„hJüÀ+<Ð4vœé9ësz\Sß;©j*‚~|;BÀ”²œe§’ Éë•rÑ´•Iq³‡D˜ð´Ifi4*øVW‡~žby:d?~!ÃS+䃶&ä~!;2aé}‘S:Mè_žÐyŠGC•ÕLAjxÄA¿ž, I¶§zœo¹aåe­æ<Œ•…Í/»Ž†çÞ<Á97uÚåiŸù³´ìÔyÇñÌ“²ûÛë:þ8øÿà[“Õ¸Ô3'>×yÚR0T"dîn釆zæàmÛ˜ÿ\‹™Ê?{ Æ¡ûÇxç<1~ñH›Ÿ*}%²'JM¬(ù[Œ×ü Äl¥~òså‰]ýxÏK4-QOWÍH,Så>è³d,ÆG!4šYžšãßÿþwmGVc©;¦}á×@&eúÅÇ_Þ 1‰øyð^rÄ”3Oã›BFl¿•JY«Ù¯ ›MÒu2H“ »’àƒrÆgèîJ٩ى¿¾3ˆLņ1óÇÚò¼ÌD–£Á(ù~ôþáBæfDb”q=ŽL×àFvj¤žkCû¢q‹£¯ú ÉS?üiÄÜÂa D¯úôH”Uƒí­±R¯OUkŒ©µÏ!¦ÉˆÿNK ÙØ%9iîKL˜ú9bú=¯4ž¢ñQk\˵¡mÑ¸É Ž†‘sp]Ñ¢Ë Xc*%òŠH8"Ú¸.­ƒæc¾C-)Vˆ(ù Òš`r3¡ F»\MŠÆ‹©ÕŠóýÀ~衇jäŸõ˹ØÎwÓ%'Uù¸øÖ)ÀOÿ aÔ;M;ó°ëKDêI %ÆñœLæÛ a³ç%M²8O?ÉÖ´5ÏÑäžáfOEz²8“×E"JôG‹Êöyå)83É!æM"DH‚­Cf¸CZÌ‘˜Peü8pî†(A¸0uñCJˆ4ونɅðmªÇcr¢”D‘p,Τø{à‹q3)ÊZÝ¿ͦlm³ë˜Æ¸Q¤/Ì…©`–„DÖ’úÞ{ïUÇdrAX˜{žà|*6MØYM‚÷ÜsÏé˜'‡“„òiR˵©6n|J8›*sÄ¡>+dÐ&ÇæWJ­ˆÖL?$g|â‰'²ÍÛõ:¦Î¬`Î>#|w,A'æ;pá{€ð=óôzòžmÖ/mÈõÄ5Írˆ-ephËù YáÜôɃ„œ¥ ¦r2Ž#\+úb› çÃ,oĈÏ>ãI…ïæðôEÖt+4œšI)ÄõO?—i_öžñbbNÇjûXbšça§H3}`®µñÓ¾Ök“ö]4nˆz•]zî´ÏV/ÓŘò 8ÆÛf‹ñù#š6–ï߉ñýÄøóWMë§•Ž–~5%Q•ãjb&&y’Ô¦ò”¬Ç³‘Q]mŒ®Sü”kB•%yaB¥ÛùGh´øœh{y ŽRóK‹šÒž¢µ&Ög%óŸüø[Ó(uÎ4 š ˜ÿ8¿ c–8-kÛ*-k5ÿ Ó>Å?FCÎ1“Ù ³‰™ÿäf¨¦ºt^á¥Ç2/3ÿIÄ—In¬:~0IÍC‡U³f?‰LRÓ's’<>eó_-צڸÁS$CÔ1bՕà*ogž¤ÇHTVy{K¼i-óE…ÁB|'›F{)Ò\ÍT.dA¯Ÿ $-Ú\©±a¿ B 5µ¦k>“˜öù.§aÿM¶¢Ò¢µ*§?‡©Åq Ì‹,åDOGŠÖE#®ë|&ùî‘ú€¦sL×H­×†¶BîÔäž7î"WŽ5!%óc¾µ˜Bí¸Æ.Ýü'WË¥"@bÍA…@í¼a7È ùÞV1“?!6h9“8/"‘[Óöh°¹­®N¸?š´Ch–0áñÔZ$YM¥¶hepèæéV~°ËIyªÇÁgtûQêSOä8h“¹Ú¤šy#Í>ÍÓñBRßÍ$Ý—ÍZmmš²4çy$ò”Ë‹h½³Ï>[Cá­o4t˜J0•™  ª$„rS ­!„&$‚D+‡¦™²³R˵©6nŠêr.´Ì“O‘Æs &CÂÿ)à‹ã²Ë.˭ݬ£å¸ð 5è‚(3´;G}tîø¹æ˜Íѵå"Í ¾’©œï ó³ï¿‡.é]áó˜šÂó>{ü–ðûAñg~C0sß÷¬ÔRü˜ä¢h¬)‘Cš‰¬`~F«ËïZ1ø1©åÚжhÜE® v–¤™ Z˜¾ø¾P“‘ÒÖÖ`5Ô¥§#ô÷Ž@K#0NrA=¶m/+sü¤Rµ^›¢qó]©äªŽ‡ß7õ 1Íó[Fî9Æ gý^¤í[êýÔ-Õ±÷ë"@é—Á[K¦8!LF¨8`ªn!|$å`¦›¿älþñmB²††0$‘[`ñ‹:^ ý3vÝ^w’Û…×¹çžn¹åÕ.Qp•Ûz%Õ–ðt{à 7èS.d¡J<ĉb´h²p®FÓ_¾;üHâã…ð$jÂ[VðÅ"' ¤ ÒvÒI'•›@ 8¸ò$‰£¹õö [n Hv=C¹Ã‰o¬’r27ú@뇠õ»õÖ[5]ëÖQÜe—]جþgÜpRIÏɲ˜A‚DK–›@ü¸¹“‘Ôhø‡ØàW‹pŽjãF»Ày¸!pÍHkARÒ¬ ) ¯¾@Šf‘ñ£%?ÄWâˆ$/4üŸgãºÏÓ,Ýuµᦠ‘çFNÕ$MÂgϰ%©äÚ‹yG»˜ÒEšDš(“qâŸU«@2«åÍâ³Èwj›mä·r¢@6ì;`Ûj-~L{dk’M¶‹ÿ%U¾ |Ï!~©ÔzmŠÆÍo"g¼xàãá-[ÉãÜ|¿hÇ‹ ÆÌo>jù-MçSË{'Uµ ämšo áé=„LÉpBÃ/a˜ Ψï]ÂÛ‰ oö‘Z¾¿ü¨o$wÇ!hÞÁ´½ÞÐ.í½÷Þú‘4L!v“`;?Òé:7“t6˜½4‰"?Lh0«àhM¾%#h®H˜‰6‡:µÅŒ|Ëú‡  h0?Ñ&u–e?~yY«Ù‡,•t2S$ü›àÌ‰Žˆ<~Ô¹ñpsEÐ$™6‰±áðM;æŸÞàhkó⽉¤‹h`>À¼DÔ%Dˆ7OèÜ@Ò>ª]›¢q“س«øpi¿Ù±Úø¸¿Ê"„≜z:¹Ût¯Ü칃Bøô¾‰'¤*•®ÒÙ× ¤Š  È#÷p"$qÆÇœSI²„¡R;¾SªHó0qˆG Œv-³¦rmÐĘ•!âhdMÄŸKhl¥å`Ãn¦è<¡Ct0Ú$4¡&h¯ÊÀu€106WÚÕzmŠÆº*à¤ÎC')"¤y€Ê°å¡‘‡+Å¿«Áï_Þ1͵mªæêÈûqª"‰zñÈžØIÈ”D¶d •u0^ö­,Ú™~_„°†”—˜wsùvvBeزø†i­*/ùaA›‚ ¶Žo„ÊöócˆÚ½Ò–µ³%m³„Êöq3Ë;·íoŽ%$ 2…¹ÃU^¿Ìs¡ÝØòÚTÛFÿK‚UúD^íøtѸÙGThÑXËŸn ṃCxR¾[oÂýË‹©\4K7Ëo—‡S‘ôm䇄Ðë!P÷†°é3!ô}_Tšß‡°“|çÞ°èèfۇɓ0¾8Ü4ùüBˆlLMÅ=!ZÛ)U¤™1W2•óP€ óý÷se‘6Êù‡¹<~HDôA>ð«$Io*õ?æáŠÔ'‘þ0‡óÆòßÿþ·’¹4ª1=gÑû¢qóàPÉU!íŸ.Ò› Éß!H:AøòÕ⚪Ö@ÙÏ!¦!Hõ“|QCJh”4òùÈ`üAr¿tñg>@µo•d–Jšx¢l¬ðЉ)›™Ó™©+=e­nìX:ìq?¼'éDäU6»‰Y(5¿-+×o¾-*Oÿ»×Cøö5Ñ&ÍÂÌKŠ–WHï§øš­d­ØAÏßUÜ5%vMS+ƒäÃÌd¦bŸ½ô€÷ÙukËr†©­*ZGM,#çD0ç’ç âŒC8õ.ñqäÁ¡çD¿'ÚeÏ_dî¦}%S9f{­˜ï@IDAT*ü1Q’Nƒ9£a‚$Ø÷Ë–ôSI0CB¬¼Zú່Øx™?>x¸`63Îm¾WyçBK~È!‡è8Ù@Á0ö£µbv.kѵ)70•\¬o–ÝœAZ4ýéuJÛµô{/¨ÜÒ{ÿ%Çs҉Êâ„ÕoÄŸ£KuŸŠì¡¾îL&šÚ Fú’ϯ#YGÓ3Çꕇ5t¹ãŠÉS›!‰^5RÄÒ3{¯ÊÇO=-]P9;%LáeÍ\vgëhTžEš1Ç0‚sy%SyS¨©Z44DƒB"+ ù¼0eã7•}hªtLv;1^hˆüÄÐÞšË@¶}ÑzѸó\Ò¾ø| QKIuº¿¹ßC~1‡·þ'SÀ˜ñ;pqšÅ&<V? t äU‡ˆÈc·õ_tY¡Žƒš§)O®„»tr0W›£ö4Rl{:‰<­$¯ÂgLþÐÐmf!IB¦_ ˜Taî^ålñ}ê˜A•`«g{S U[(ÒÌ|[à …Ö¨Ó=¾…M)~Ì|ÐÎñ2! ³±R4îj.Mý|4vÌÙã&#U*T‚.Ž@Sè*Þz§ÊÇhÝõBø^¬y¢-]åÅR4Ía*–¶>ñ}ö|ïü÷”°ï•Ù­-¿NH2¹\:ŸÜ‡×OÔ0M4½ýnRdêŠ'‡°¬§JBdê,Ë–´LÝ…D™Ùm*ñiªEº‰fÖ¥EÀ×hJi®f*oщ{ç­ŠÀd¤ÊΞW÷ÊöùÒ¨·jm¨íÐf‰ %²œ–Ø¥Kxd—oJu§rc"ÞyçÊ |OÛDàû7Åîðdâ“$¦·Ô?i±}‹Ia÷SÏ µ!{–4K"3¿™¦©hæ˜æÚ˜y®h¸q…Í!yå‚è—hÚJBê·UB§cm¯Hª:Ö4}6í©J¹ÔŪȽ}ÌÅGY©©-uÐ6Ÿ¤½ƒúUêtøC!¼|B‰šnÞf•(8ÒœëT:²´}ÁBàåâ8Ž@pRÕðüPGÀ¨€@ƒ’bNCÛS¤Éyÿê†0©³.b#žVü48R4Ë2“öå½[â0I /GÀp¦ Nª¦ ø~ê‚ÀIÐùåc¥¬ÓdJ §!zCæX”<MÑKÿ7É'iÜO »XX¢×Öº¾á¶tmþ­%Ž]ˆ“‘(¿!V.Ž€#à´#œTµ£‹åCmcà³óî¥R—ð)3KÛ|ØÆXÇpÈ“TvÔNRhj€¯¥ìVupWå»Ï%¤rƒ’VÉÌoê¬-š&Ö«EµYW]Wù̾g "@™’¼œFSpH~jG`Š"à¤jŠÂï'o—hñÍsB&šœñšðË” æ¶ïÞ˜¨)JH‘ù'Í´¸d©?«òIÎJù sÐÎ&äø"™uÅV’—K§A€ÄÙZpfò>QG@ 1iVÚ=©8p Öò:üðóskÖõS¤†iðS!™¦‰ì¨EÓçÉŽ2Vq¤päO¡Î5ß(b»Ï>û2 ·¤PàöÇÔBº9ÏþðÍ2Lr9 ŸþôÓ$sY|)¯Aý2æTMˆÊ¡}µ‚°MsµqTÝÿùƒB¦„˜ X,SÝ„Htȸ…\Éz“ËéI£V›jˆDFž$ˆQ×銵¿y!„‡Ö-'/äô¢ *Ê”l)¤ÌŨ²t[¦îñfŽ@‡G Ý“*2°’ž¾¥å…^(Rú#n¥Àý÷ß(6¹ÕVb©"” ¡Åk‘3Ï<3üç?ÿÑjÚ”O€XQž€•W^yeƒ„jUº®{7s)/ðÐCÖJ«ÔñË/¿¬EdÙY\pÁËÔÉ®Ë\ï½÷ÞpñÅWꢼêád®&Msµþs÷S£³Ø›gJ­w…4MÌðž*;Ô}^[+--ª"µ3.Òp_º†ök$#¦¶lÖyHÎ)¤§¨”È«•jµÕbjKÏëïGÀpš &“*Š'R]ÂAÕj4dŒ¥•äÙO:wŠƒ~ñÅš¾~æ™å&1Q²)íÉÄ –>HuoB¿›$ã*™S© ŸÕæ y¡J<š*Ñ“vß²ÊÒç¨Q£´Îe~øá‡°øâ‹kZ{ÎÁqŒÕÒÜg×i¡¢” çÛe—]9½RRÌ•9˜¦†ñ‚C! /½ô’*êIQîÁrEê{4ZVœ¹Sp¡Yp4gÌ˲٢ÉO®ï9õ™>—ÊÞ¼§˜2O+°9|øp­RNjŽ¡Â8K®5ßLÀƒlûøOäUŒ‡(RÕäúë¯W_}µ–d`¾cã2^Æb¾T·â´´áóÁ?øàó©wÌà¹ã3¸ÁŒLé5˘/CxçÒÞ©±¢¡Ä̇Äñ¥eÞÿ¡ËÖ “´Lh˜,äÌRÂa«Ò5Ì;Tý‰–=®d~Sœø"©O’ø#Õ’@'ò"Ò–{Rßè8Ž€#М4™TQ òàƒVÂQ@¨ÏMÒ²R/³Ì2ª¹8ùä“•\þùÚ¢AÑÊC=T¡èëwß}Ð\ôèÑC+KsCF+B1MH 7bnÈ#´<©Ð/¤ ÂA›´ùæ›kQÎgžy&œp j¥Öûèûì³ÏV‚&ŠÂ™çwžÎ%»žžÇÞC˜fši¦2!àFN˜$!$ˆÄkÿý÷×ñSrÇ ÒGËT 3ŒÁRî“ó˜@v ¬¯¼òÊZd’ù^rÉ%Ú‰*ìh¹ !\—µ×^[“ÎArÑ’¡9‚¸Ø5Øc= 7Ü ä ŒÁ‚E[Lž\;È/Á ÁäWM¨,p=‘þóŸú¢sÇÌIuÔ¾ûî«•ÔwÞyg3×…y3_Æ&pþùç¯kÌzúŤHR> ~R$µš,0“|&7Â]ó—šfµFEüôQ3-•Ÿ@²{sî4³yJ€"l}Ÿ#à8íf‹Y†`ÜvÛmzS|õÕWõ&}ë­·*âfŒ„›7KÓ’<þøãJ’~ýë_‡k¯½VÉÍ}÷ݧý U¸çž{”üœ~úéªUºé¦›´Ÿ‡/¤ÿª|PÉÄëÉ'Ÿ,7…¬a–B“Yøûßÿ®ûÐh@ðLû•]§¦F´R¼0ûAÑm±ÅÚÇ]wÝ(…Yàüh` 8‚¼å–[”@@ÜÐN¡=x ÁË ÎoHÆñÁú÷¿ÿÀ2Â6HS-B;ü¶ Qô÷Øc)!ûë_ÿª‡3Næ Æ9Ès[zé¥u~C0„¤œtÒI:0Ì Ø 2D_·ß~»Î-ãåó0`À½\S°§Ø'š¬<¨S±ÏX0wHd=c¶~Ñvqjñ{›qì»á·K¿6^B|š”LIýù«Ih·ôÑ!ô¾Aj¸ÉC%MÛ?„ú‰éN|ª9z×toä8Ž€#Жh6R…†„›­9.bÃlcëhQúôé£ZÈ‚ÿÐꫯ®Z4˜¸ Nh°Ð¾@>Þ}÷ÝÀ±Tøž{î¹Ucö©’ôìÙS‹á¢m¡Ý¼óΫš.kfòÀùØoÚ5ÖÑ&©Ê®s<Ú+ÆÅë²Ë. ƒ Ò9cFDp8Ç<˜¹Ð¨aŠ:t¨îOÿ¡° snjطo_%_˜&·Ûn»0bÄÕ(kûД¡ZqÅÕ¤™É øB|×Xc ÕˆA (²ÉvÈ帎8žC” ŸYyâ‰'”ô@| PœÍ#šEöAº7Ùd= l!9à™'TH%fB4M³õ‹¶Šs¥¦dÛ—]þÐmñpöÐõBŸK$Šm“§Dåzb=$aª‰ÄçôJ‚ƒ:æ>GÀpN‹Àäj’FBaþ*æ‡Ã1¿&%nܘc¸YBh09!2LEh»0‘AÈØgZ)ÌP&«J2ß|ó5Ø…‰Íú`‡‘&Þ³ÏÌS¬W“m¶Ù¦OÕ³Ï>«Ú4_DìA€0;B&L †mc‰‰ -ÑèÑ£Ë>R¶m,âfbþSyãÎÓ^Í6›˜•& d2—È‚é(ï†24M©/d1+˜îRŸªt?¸p DׄÏKÞØÏu1a̘³R4æ‡ÆT„?AÔN=Ö*½–•k9^"©+÷ÅÃ!|&&瑯Èp„g#‰ØsqGÀè´4©Ê#y¨bÄA{€ÏòÜsÏ…ÝvÛMýšÐÐ=†é M‚Ó±™0¹U´8&ø!Ñ—EÛ±~Ð^!…"‚¦ þõêÕKÑ?ûì3mÅøèóŸ ZTVÐÄ`fcÞë­·^y7å×]w’5#ªh½lVìræø†™ UÊJ-×Åp=äCÊ~GÑ_|1 ùƒbF31§y[¯¶dô±¶ñ0JØ[›¢~‹ÆLpBEýî#Á<•^+ž&Îçbübp‰d}z?6D:©*„Ñw:Ž€#Ðј¤:h¥™’“Ø?þñÕVYÔ?œ¨¹‘ãÀL;4h¸ DìáoƒF¥’p³Æ¯ ->;3Ar ç¥L8Ò“g Áë /,›š²ëÚ(çc£?„¹Ñ'š8ÎϘqŽ·ýéá[n¹¥ú‰sÎ9jFD›ƒCþQG¥óÝ`ƒ Ô”!Á‰t ôÃÜ!dh±ˆÂc;çƒDà—V«˜/ó„ ùwÞ©ø²ÜQø›ard^ø¥aÞ„ÐÞx㵞FÛ?þk†=¦FHs¬Gês=ýÖݶ›hÒØ6„U/*¥1è'¤º÷u!̱zÝ]ùŽ€#à8fÓTUƒÄ´(L8?›ƒ7Ç!G´é¸y¢Ý!ê‹h7"·Ø·õÖ[«¦c©¥–R2aç´¾YÇü9" š.½Ñ!øçЦ(L‘{íµ—n‡ÌáhŽÖÂ’]§Qj¾Òƒä¦*|ŽÐ0‘Ðs˜8ä÷ïß_wCH0 ¦¦Kë3)þGD ¢¹3DžuÖYŠ80wÄ÷Þ{o;Z6Ó„ãÝwß­çÃL†Ã?Z­JN†cbì˜ìˆþÃdIÞ*Ó b~eŒ—ÔÌ‹k€@’ ¼µ ~s`9„a‚d¬ùhc¢¿ô½­Û¶zÆlÇÔ:Æ&µ#7UÏ]›Ô…ì8Ž€#Ðþè"&™ÞÒø4í¸ãŽáÖRÓÃÑš‹Tð!¿~Cf¢³ýøÉ a;šˆS6¥d È ÎÖ˜ 6¤ ­Z,´B˜S#;Os,ÉS…’ó“r¡š`jC„ÆÈL~é1ÌRØ!|FÌhÃåÿˆã Võý‚Ú6üÁ%¾HæÇ>ˆû SÙkÃþZí¤–ã‹}=c®eLÙ6W\q…¦å°t Ùý}ýè£V³84m´QƒébŽG›IÐ#,àïGäh*|?ÙvØa‡i0Á'¤ Á„ 1&@„‡(K»Á±<Aêшb^æá“7f&Æ‘(Vr¸Y®¶ô¼EïÑŽ2§Tø|óÀÅ Ú_m9Zó<áoÏ=÷T1¿1D¥òÝåá†9ñà`š÷¼ã}›#àt|¦nÍ)rC%â‹-üw²Â!øyÂ9œjú)rPÎ:³×Òg=mˆãU«@0ŠHsOÕÓ~ÑÈ4–äÐoz( "·ð §§®û=äÍ\ÝO< ž17öù8Òb‹ù=KªÎ=÷\M‚¦˜ë€Æò˜cŽÑ„¶hÒvÔÙßpà 5… ŠVˆä ‚yÅÜÍ燒ޢe%â—(\Þ_zé¥ú[Að¿ ˜¥yŸúÖz­ð¥äXÆbßLÒ˜Ì1s›ÿ ~–Dëöë'©02bŸÝ3Î8Cý=!Q?~ÓÐð‚órq΋@«’*LjäLâÇÈÂë=f+~س‚ј1c²›uDr/¹8Ž@ irSLÐFHB²]«Ù ßZª %æ\ H˜«Ñ$ÑmÄ ŸA*ð½7ÁGô”BÙíÑÀ¦1¢-¦iò“¡aBKÕB;ÌÑ&˜ÏISBÿ9 3Z¹Ü0p®çÇŸÌG¡„¨èØjûx’'7VcÌÕúöý È ~ˆd¨'@ƒÏ8þSy‚v DÊ„ìö,ˆ~*¤¡Ì>F˜÷á!ÅR„v)ʢ݂¬¡­"?=´Ëh¤ò„þ‘4¥G^»Z·Q@œ¹ðB‹Ùá{Ë|M8yó²/Ì…`ƒ‰ÒÉø9Ò‡O$If³hÇwØa-…&³"î3GÀèx´ª¦ª­ÀIIµH¥IQé›8nôiâæ C¢},1Ãá3„ƒ9×}÷Ýw×÷é5Í›‰9eãÅg‹|ohbR¢eǡɥ#,|>MÈKDZì,iLÐJáSÅùŸA¤’6ÖHŠ-­ßÆ.1OšÖ¢‰¶iûí·/'蓨µÉ;õ3Iv 9Äÿ ó%‰ŠÑH1¿TÀ‚ßî ’¹æšk4ê•ïfC´zyÊÓ>ü½#à´: ©‚¤È&fÌ -%<]Cf¸É@ª B• -CRŽ=öXuv…èÑ-2n?Ö¤=`ìÌcpÚÅ„È*2°£!àˆ‰†qι“:|Qˆ6Mý²Ÿ'u&ÛÐ"P¨™~8??ô˜†VYeíϰ":“V˜7q.¶¾m§\ŽþD–úqËЦ À1›ä´˜§¸¾©ù®h ”™Â_¨×_]ý¢*Kð™ÁO'm´2&|¶H7‚9üøƒ¾øÞ|óÍú™æsHăLžàË…  nŽˆL¾CæSÅ÷­&L>ë¸' øTe#“u‡üã!’‰VÊML~9¾‡17íšÃ,ñ#åEÝOˆ¦RH]ªÙKñ÷Ž€#Ðþèðæ?41`²ä;Qk}×»„èPàáó_‹ðPƒ¿XZU÷H#œ* Çbnä:p>L¡æ_éßî8í ©©âiU;O¥˜ÉÐÞ ™‚ p³h ÁOƒ7š¢BËø· ÜxÐþpÃA»•½AÙ˜ÉUÅ€(,Ža>I‰vË £m"ÜÒ†_ä -9u0[ E - A›¹³$AÍs¼å&HBSL/r…¡m º’ñ[!mo‡XŽý.„/-i£>•Úˆ£Þrä%_Ÿ Rža}ú†u'K;¦ìÈ />ä™@ˆ0äšïD^ê1Žç¶?ï³`í*-1£¡ÍD#…/Dÿ*´®<ìXL4«Œ‘Ï&ù­Ð$“‡Ê´^ìO…‡Œ4OÎâ¤ohŒäÕÒÄLÎoGVÐ`A¨ø¬c¶ãûG1uüÂÐ:‘“o*ôÅC?hãHSÑå;YdbLûð÷Ž€#Ð~褊R5d%çG³›ÕÍkÍËÂ(?¸< càfb7Æ98qá)—ÐnL%nf«<8YX;ýâ›Â9L0ÇáO…pãä&…– |¿8/Ç!Ù›•ùZ±¯(Ïû9'^ø`aZ"ç„¶½?}wï&Z·á•H”¿•ÊäȪÛ$ÅzœH¨‚5mÉWÕ¶&h:‰TE«Égr…‘¦t¼öy ›ïšQËÇ>ÛŸÃû¼í˜Öø,C"LøÌòy˜#|N!JhF-ßÛiÇg•ï3{ÐÈ<¾Õ´ov,ý¦‚Ïä3¹ÂÇÃAV„ˆ¶*ÖŽç{@RÒl¼×^{MÉÇÒÏž=õÿç8Iªø1&ꈧMˆ ¦8n#hD1yñYÏs̆XAŒðDóƒO"d'w4=Œ )¯<¡ÿÑ£GçíÒï<ß…4õ‰5D{˃€ Ný¼ŠmãâÁ g÷W\±¢œ:æ“G8‹ÎáûG }"Ð!I?Àø‘ð‚,@*Èd§Ö'FžZ)GA:žˆó„ò9dUÆ Ÿ 9s3Áy!|²„)_)üŸxâ¥\7~ÄñŸ"š?ô<ýZ„"mÎÉfN~ üµè ¿ÚA²0!"˜ ¹™@ØÐP™©Û8ްqœÏÑìq³¨¦Õ#Z‹s’šíÑ€à´Ë˜Û³Œé:O¸ê…µÂ Ó ‡o2.|§ºˆ0Öà/ùzïÊF¬Ð2Oî<É£Yc;>R8³â˜‹Ÿæ ÖñCAÒñU+TL{4ø—±4’†&”:LäÂ9ÒóèÆ‰ÿ ™8·£ùC›fôi›öü~ôØiµÏοì™>º%„7ÎóŸD M%_• B´*É!U³­Â4’Nàç/CøîuY )ƒ˜ ÊÌK†°Õ[•Ž–v#BxWº•ˆõ˜HÌdÉú4sÈE­™KEðsqG`J#0E *OéI£î¯ÕI“Žá”¤ÀŒ×)*´Œ– óOæ©©€±âeuÇòÎ_T¨˜pxʈ`êK5ôƒÖ ÓÎê¡åõŸnc<³tŒéþöþž¨J|ò„ï98„7Ï áSñ¯Jýª²“Ýä‰z¬Ý*•ª…T%iîÉ÷Ù–ïß á±mKäê—‘%.Û'$7̹n=j[&_Žû¡DäT3&ŸÓ©= ÿä ù–æDÍ? Š]Ί “Ô_:¼¦*ïb×J¨8³þM%TôE?¼ò$Kx¬ c­6^WéBFöf4Zyý£CVTK=}µ›¶sõ‘‹'¯Qï„ðÖ¹’ÞûÑZ‰I0f4WÓæ_ÛÐuú ¯¢ ϼ´h²$ªÁ”ø‹”MRM—h°Ðvuí^ÚWéÿÈCxh½I{!Ó ¹²×œ½CXá”Iûý#ÐDÈA©Â½ÁÅèlpoÅÂ㤪Î+h¼Ú£`ÚÃô¹Ûn»µÇá·½1Ï´D½.aÅSK¦º·ÎÂ#Z¥ ‘€¦ºæL}´J$-ï=Ö aÛaBÄ a9¯©gÈ;jÒ¶áÿMYß’©ÑˆX÷„”ͺB l7©½¿sü:ñuq:w§ÔTeAè¨ëÍQ¼º£bÓ¤yáã´ìñ!,}TÃn¿«ÓE‹õÄÖ‹?Õ”’.¢™š~¡Ò«1c˜E4–½.K™hÊ g#_.-ü¨˜T}õx¯,DP°”‘’³‰Ë–<"‹5fd~Œ#à8í'UíæRù@ÛSM+ ½ö*½¾z¢Í ¯®¸ðuÒ 1š°„Ô2¦Dl")ûå›’ƒÏ]$ ¶lÑà8[Á|ùÉ“HäL‰ÙDRÖmfiÙÅZûÒp6‰€“ª6yY|Pí9×iwCnÖ“.buI)1™ˆi”Œôi¾¯ÉÚÈê'þïî)ßlü/ [-úûÖ¸ªá¶tí‡÷ÅQÿµ„ˆAÊfæ?q)LþÞpZÿÅiY|½wG “# Ú¥ZÌ¢ó÷ — ÑŒê& ’U-±êçR>èÙCìèIËif)­Åö“ZLÇLÚž}‡FmܨRÛ©gÌîõuGÀpjB "©JËEÔÔ“7rEçáÖÃBX|žIÆ­è"÷V–&ºmâ: [/Au[Âsâ¢4¥d•UÚV’Î)…Ã=/Ä†× =kÆâˇoßÃÉ 2fïg[©¸Ÿ÷¯áÅ£KmºN3Qã%š.3A.¸c ý¶¸ßÛ¦ ´ ŽI”ÜRB­Ùlz’9“Ø™2EUŠÓ“®‚ÒL$†&a4isŽ;î8­áJ¢¹)gfu`«õÙ”ý¤ú!±µå]¬§/^S*Htªzš(êi2>}úTMÓCªò+0@“k§ýdß7eÌÙ¾ê]ŸŒT‘mÛ£9ê…ÑÛ§|~ ó;/Ì_I7×ôþç.³„£Oÿ»´rþ3”ñqi‡L%d¨û¼¥W½ÃÇ7n®õ1´WFΪ™/_“PoÊÓ&GuÖÇl¢ ’å¼›I³ÞõŽÊÛ7#Üà«Õ4mêé(5Fµ‰]vÙ¥œûROÔE… Qñ¢gÏž…§¡^$Ä é þ% ¥é›mTÝ ¡3eÇ *·Ýv[aMÝI¢jH õië•#F(ä8jÄ‚ ?¨3;nܸÀ\)†‰dnE±£”¤³š4eÌÕú®¶2RųêðÕöýŽ@eváå?‡ðºDÆÁ-UÅc$·R÷¥ö;¬$ZG 5°4=çÛJäåü“4cFÈȬ1›nbRõöù’ÁÿæI¤ÌÈ™-çèÕî£'©“ÈqŽ9æÐäº -´æíㆠ٠õÂRŽëçŸÔO%!±•ù¡NåçRÝ‚ªTž ÍS’#‹ äÚK+@PC’©p(&ϾlžA1“Û›ô+¯¼VXa—DÒgê¢:T I™M ¼(‡†d×ÙA ?  „„²ii5ŽC³Å’ú‘h´ ”VC 3Ï<³öÅ|(ôøâ‹—÷Q¡ƒòf$*¶´?´c>`‡†Ëpa;Õ9(W† ùbîàÉu;v¬&¦¶'óSÆ‘#I4 ¨?ûì³rÁp0‚q<×1®I§³Û­ Úµå—_^WÁyµÕVÓÒnFªÀ€¾3í –× !³Ï;ª|ðyCæWï˜GŽ©ý‘CrÈ!Å’á¦'®÷ŸLÊÅh9>º5Æ›¦ñÆ®1Þ ¿UÕ^#_j¹±xÏŽ@[Eà³ÿÄøÂ‘1>½GŒnãÀÞ1Þ»TŒwÌ%ߟ©c|ûÂâ‘¿•»{ŒÏÿ!Æ×NŽñKbvSŒŸŒñëçbüedññØ»ãŽ;F©‰Zó‘Gyd”dMZü¥*C”òaQnfº.÷®xæ™gF©¥Ù'e´Ê}_~ùåQnòQˆU<ï¼ó¢$.ŽB8ô¸-·Ü2ÊXÛJ¹¢rßB"¢˜Û¢”ßÒ}BH¢ýÖ÷’Ä8ŠöGû’…@EÉë§û$Kv\z饣h¬#í—˜îtÿöÛo¿(7öÜu)H®íŸyæ™ò~ÞiÔíbºÒíBœôô-*¢”ûŠrCBuîlg¾ôÃ<ÅtÙ ?V„ŒF)¥«î‚¥Ç2n!:?!ºŒ¥þ­¾çßi§¥\™®s]˜/øpNνÉ&›(¦\úb›ä$Óö×]wânÖVÈ«îm`w¶sÜÊ+¯¬×ŠÔíBú´­ýÛyç£@=Ÿ¼(¦@‡TúÐåñǯMÁ‡~…D)V¼ßvÛmËc暈‰P?SõŒùÏþs\n¹åÊ×C» ­p)ZÏ(¦ÍÉÚHµXG Xp‡6VžÔç+ÕÏ+:¹Œ¨‘çât60®|ŽdÓÂz÷HÑÎ'CØòÍú}ÂoÇŠ“âAňPô؈!!|x]¯žÂÓ»†0h“X-„«˜ˆ>¹C´Ê§HRÛKK³áCøæ¹~çF¢7kR5‘½Ÿ?âˆ#š"ü›.½ôR­ËŠæDHZ¸òÊ+Õ¼E­ÕÛo¿½Ü! ÚS‚:'Ÿ|²j[„Ĩ¿Z+´ lGƒ3jÔ(­mŠN%AÃñþûï«6k³Í6 B–T{C{ŠÌ_|ñŪ¡¡X7¯{î‘ë"²é¦›60Ue×ióÐC© ®4çœsŽÖoE«BÍTdÏ=÷Ô‚÷œ­Z-!šL•c4Hh{Ø&+ÓM7]èÛ·¯jž|òÉpâ‰'ªÆM ó~ï½÷‚’ìa¹ëŒãÀÔùÒ ­WK}X|žÈN}ð¢-þi˜ö8íÖ)§ÈgG䨣ŽRíš*Ì­˜ü²Â5#95dñ»óÎ;uîB„Tó†öޱ3r-Ò÷#<’íF×ÑX2Î…öоê3¡×­ŸiGsOXÃÆ©khãM¦!0‹¨z·x)„Ç…`}9X~Ÿslâ,Æ'掹$ɤ˜Rp žwc1vkÚ¹ýhG # P­ 6Nú¼ˆ<ØCˆÆˆoØ´Uü¿•$¯ÇlIíI „§ÒûÚzî–niÔ{HÅãˆ7CÑ”¨4Eß¹)"»îº«’ÈuF®¹æ5Marºúê«Õ¤Ç1˜©Gzì±ÇªÉghÊiá×d7{í4óï€(›¨D[¡çææŠˆæBoô¼§Ð<ý0VHL¿~ýØ\–ì:;ð²’^nþÛo¿½š®† ¦…s2vˆ‰h†”´™éÏ:¯Åˆ¶wÝu—š3ñWBD D‹~øa]¯ö_3È.¹Â¬øî»ïª96=–ëCýWú†ø ˜Ë0kbÖ{öÙgG+&šL%Fiø‹q½œßé‹k‡ÐÿV[mU>/ØÓ/óØzë­µMúë‚Ys½õÖSâicJÛù¬³ÎÒ¦ŒBQmª8©j*‚~|mà²<ý¾,_ž7Ξü˜ ã$9¤ø@Iæ¢ÉÄJµ!8­£)I…¶8Àç Ž×&˜Ïs®N÷A@p¤ÇüØè mTa>Ã)A›…F°aâ"åf¶Tpä4h.#<ì¿é¦›ä rñ  ¤Æ0Æ”eóa P´P©Ø1é¶¼÷5H+&:#ÜgoÛê óìõÈëÓ¶1FÈ+Žö&8É£½3œl»-Si۲ˢ1gÛ6Çú$ZÛ½yŽ@- yÚìñ³šG¼^>†‹ìÑðHêØQ[o³çCØZü"V:Ý UC„|ÍèÐp#ÅìCúÓŒpCßc=ÂE]¤MÚ+L@˜ñ“ºâŠ+Ô7­,yHÃ÷ß#L~\pjµŒð@n¼ñF$Ã/ B"ñz8ù£ð2É®ÛötIÄ#‚– -y«˜š«·ÞzKçtÌ1Çäúó@¾8?¾[øŽ¡•Âй,HÃØð¥ÂߌˆGqpW’†?BÔ ~iˆX=iÀ’I¿˜æˆVüË_þ¢þRôŹÉCÕ«W/Æ<õÔSu^\·Ô/NRåýcÊ” ³%èõf$¨uÌU†Ó¸Ý“¹®ûG µ3"ƇÖ/EþüeÓÎ:n´_ŠjZG~´#àÔ‚@½ÑâK£iÖ·ø³DѤØjgpä² ¢‰Ò<1áE1ëØæH”›hl¢8ëKnÄ‘¶ˆh„ÊÑjD¼õ”HC‹þ“ür´–3L³h7¢ßˆ¼Cˆþ[tÑEõÜrWD¡¥Q^ûï¿­˜¶å_ºþøãc¿Ô¨½ry#D$Ê>Š£ºn–üR‘è1Úò"*R4TºOˆ¤nVîBR2D1±•Û‹†&Šé/Š{¹=»ÍIU”TºŸ(Aðâ\`fàd¯ ‘|´grÝ/¤Q#Å‘[×…¬–û¢Ù(¦HÝG„ŸEÿ1F!CQ4ZºOðµ_ÑdézÞ?ÑØE1çj;ŽgÌâ?§Mó¢ÿ$íB¹!å(ÍzÆLôŸÍ­ÜY o¸~éçÂéÂÆÅ˜2`þûXÌ| íÜ´óíô¾˜ ñÁúÕö⃵®ôçŠØ¦êG;• 39>,õj#*÷Øp>6ø=‘¯ L*he0AáCef(Û/´3˜1½— ^ [l±…æ¿Zj©¥Ê»ÑavB›ƒ9&¹ÔO«Ü°‰oÐøÐ?K|ŒÌy»R·à9m—@uÊ϶´shÃR#Úa.%÷“ÆìaU×1ï1>ÚˆDÆÎ9Rß4:Â\ʵÁO b½%ažhÆpxo¬¯S=c®wŒ´G"FÑ0¦â>U)þ¾õÀϪ©„ŠQ÷ÜEþ‰¿¡áo_\ª÷«íJkî>ÍŒ4ti.ðé@=Ï ?~„‹qe~œç…^DØà[Á$æÚdþ8ábâ@åOÂÅT8†PóTð·‘œ9áÐC-ûq¤û³ï ãg øz`Nâ\˜l¬H¶½¯Oy¸N„ÝCŽD4Ù€0§­».N“ ‰>³É>'oUÚÂg‰Wž@"òªóÚ6f[½ýó}¨ ¸˜©1Û"ÙBE?¢­kÐÎók¬±Fƒm¶Âw?°Æ þ]gzÎzÆœ×Ô÷þ(ßTýø¶ÀLKJôRIÝðªø`½Â’‡‡ðõPÉÓ³±ÄéŠïÖ¨R–â¶1Øö? |3¬¹ð…¸ð 5LÞ¢›ð³ Ô2ƒ¶_ ´G}´¶'‹3‚Ç<±g…h(öqC k4¤ -þ$šŸ=&»yºá†Ô/ÿ]ï޽˙š³í}}Ê#€?Ÿ1ˆvVãRÏèð]Ê»ACÊ+‘2w×R£¯žqxÛN„€Ù}étHF½ã[’Ix¸9½Ö˜”8ÉNvɇÅôÒ`»ù“à‹!dH³$ ©Ò÷iC2eËOl”Ä~ºYH®§>$Öž Ú´SŒmÒ%~BÐô½˜<¢8Ò–÷ YÓ¬Ëø±àë!NÎQréD‰‹’ŒQûÃ¯ÃæE{qŽâœ¬¾/ÖÙ9?þ<VÎÚmûíx[ïlËz}ª:>>ߎ@%Ÿ*7ÿu"Ý)§:ã"¢µ:¢xê$Ô˜¤‡ÝE£å¢àA‰ê‘² !¡!‘V¼Ì§‚¢¯äªÁ?åÞ{ïU_•[n¹e²ˆ&’ ¢ÕÂ|Hžzf!4"d€&Z‹È(„\:˜Iƒ'§Ñõ×_¯‘bøßX®!ÞÓŸ’â‚9³uÚ0m ›¬Ïø ±­3´f$°D ×s‡õç˶…€™ž1»á7–õí!Ñ&Ã¥ü‹&î|â‰'4ïTZ­*>Zø@I‰ÍØNbÍÿûßš†€ÏæpÒB¤~[µ˜Í-[zQ‚ÓJˆr>¾Ã©T4²§#k&‘jž2¬þSDC>÷Üsšñžìô$DenQÜüׯºÏ¹!Ÿ?()‰ç aàZò !äáû7îïDk”—À´Æ,„‡O ËNaÀôF‘UÈ „‚¬Ø)Ìjäš±ò yÉÿð™À”‡/V­röÙgkFj2ZCÚ蟰îj1Â'‡ptÑ:iùŽá†B’ÂJåBä[».*_Á Ó&¤“y¢ÏØ¥c `¦g|»H Ÿ ;¦i¢!"”v1¢cm1ySÞ†<[Ègœ¡ùª6ÜpC}PÁ´ISüMj5›Sì"Ó!§&˜GyaòÄÜÊù´#óÃ9äžé 3>Â÷„Lñd2'Á)¿¤‰Ø`ƒ mÔÙþulÏΨq?Æø¿»c"ES)`KÑç{-¸ýbp‡7vMØ2&2~')4+?¬1Ï—¢)!-n+7 ;çX!YZà•0eÑü4…O•§w )g[-æ?Î!$&J¤†¼¶-Ú$íòCѱ[ÿò¯ó ˆ-"?ö‘pk$ W-›¶c¬˜þxI½7Ý&š©ÈvÂÁ%šI­ôOò E)³…ˆFÑfDæ†)´£KG2ÿIdÝdæ]3=‹v2 qhp9…<•Ó `Fú÷﯀ù!M&uƒ<€è:Ÿ#Š[QgÝ(ÿ„PéçŒ1Ôc6'•}®­¯Z—˜ÎI?‘ ßwñ3‹Bøt³@–˜´Yƒ÷¢qÓï ß9Ìå|,•…mg‰©½£H%óŸkª:‹öùþ{gnUUÅñ¥L*Š€šj9¢8+äZæTiÎI4“_šæ€f¦–õé‡Ög¥V†¢¥i©õ9U†PŽ8Caš‚*"ˆÈ$ƒ§õÛÏ}=œwîôîïý¯ï;ïÞ{Î>ûìý;÷½³ÞZk¯Õœ@7_q¶‘›¼÷tsöQ¯›èÙ•IËðÚ=f÷0{áªæçÔÑ\ X¥È\L1Wܸ´Xá“'¸ß\i¦þÓO?=¸ËÈt}à 7„ÿXY]Gp0íf̘‘×E°ðäç6ö¸PpŸx^˜àÎÃz@‚Ø ;}´J$–Ü #5–6úç?r¬–¸¬Û'Û7A͸G™+<ܱ[¶­>w.X/¹w¤_à÷ O°Ä`©Z¸paá0…’ÙŸ,—|('ãŠCø.åkBJqðß/ö“.‚ï3Ýæ¸ôÒ®fŽá6§Üæm!ü¾ãºLgm/w¬t ¢à.ÅjGù¬~€:‡¤« ¡i=Š”ªz¼«šS üWbÀð¦ î‡NkÊæ>øÄúëü§_äš°7™©É&]L9áûâꫯ.LŽx òãð bÕe+ÈT…¸'J}à^ÀE·T>¶-÷>”9܉é?ÐÑõX®XJ%´ lŒWc5«¿X½È HÎÁ݈ %ͦÜ8t¼} #‡òÂ}¢6 J5+YQ¬ò$fR' á»Ëw,«Tñ;ÀJS”}2€“*—0åuÞ½{ .rb©P¸ø}¡~!ßãøÝm-·y¸p‘ü…rÈF/à’ÏÆ9²Z–jÒ)/VýâŽÇõKþÑe2UN_žX.æN&xB è›xÅz)Uõt75—Ö'ÐÇÿÐöXº_â°fùÜ•‹J·ë¤GÉ+Ãצò@@1â$5³x%5-”€ e„xþƒ'þ‚Ï®92XªøãL)¬YÄkðŸ71[$Ìó ÆFÑÜ´ðâ·ø‡›6Ä.ÂÄX¬xСX‘¼‘‡!ýLÌCéâ‹/Nw[ô=ó¬¦\H¶#þÛF%PŸøæErEüQN%‹Ê/1OäQs×ePvˆ_â;Ëw&*êÙQSÄ÷ŒE¯,RH' ç #E*”.¿ÓÂ?/X‚ÝemDv—¡ :4ÄöÑŽÀvLdóµÅ>°¡|µ†ðûEü$V%,`(:Y…e1»Åë“ çbò¬çáo†gˆÏM Ëï=éMP$±Æ±Xå n$ceL——zñoj"Ð!V.M’{wõR;^œà–ž´ãñÓ.O’ùÅK1tÈ8«¼¨+J!ÎÊóù$žWªÙÙ¤'pÅ*ÄSøÁðJ<q%QHiàÁä!®$¶ñBâ‘oå+CSâ·âñô+q\'½÷” ñ@ØH§àV¢ÐÎF!–ƒv1¦j̘1…Ø“tLç–*BLU©òî¾ ñS“&yÜ]JW‹©rå>|G“÷ÊtH:®f©Ê#ˆu7/®æ¬ë)ºžqÿ!+,Mžk*|.æþÃ¥ìÊG3K'áÁZÕ•¥˜¥ÊA|)DD cL=ÓlÚf=½šû ýÌ6ØßlýÌúmß1ãÑUE BþÙæY ÐÕ…ld·µjÄÝ|!-Aê¬ ÌwKk–#¬Z¬¨cU.é°`ÚÇÊymÔoíy.X° X³¢Uš€ú/ýžUº1Hz-ïY9YI©¦zQ¨J±’RUŠŽŽ‰@{À*Ŷ¥*ˆÇò$„QÉZ­}þзÇ4u ¶'@.86IÇRÕ1ÜuU(BÀÍæýwkÚ¶=»H›Ôî™·6µ¥p´DD@D C H©êPüº¸Ô@`¹ï}t”ÙŠ%fkmìîBɸoÓkŸ­kèX§Š€ˆ€´„€”ª–PÓ9"Ðôðàö£]±š;ÅìÍÉMÛSg¸’å™Ý×ô*ò›zm²]¯ê #ÕD@D !H©jˆÛ¬IÖ-Õ}µÒÀ½›¶íÏoÊ‹5ï Ér%kµü8uËBkw³fÍ yŠÚýº t0tíôP¤T¥iè½tu«ù¯ôz{5måæòæ®|MjRÈ 3ëÞTøµÜi:.‘µÞ¨£'h" Á+_d¶ðe³Õ}•á:C?´z rë×6*Í[D@ZD@JU‹°é$¨#K_÷x¬Íæ|°ÍÚ3;¬4~£—Ý9©Ž&ª©ˆ€ˆ@ÛRÕ¶|Õ»t=+š½õˆ[®†”¶V%®x)V×»¿±ˆ@›RÕfhÕ±Ô9»=Ó{·5Ì ÷Íc²Ø”/«Îoº¦'"PŠ€”ªRttLD 8™·¹Eëá&«ÖÛSÍV.k*¯¬m<½óhRªäFkš"ЦÞ_êåužlR°æ¸¢µh†ÙA^nG""  D@JUÝlMU: %¯™½<ÞS?ìéÛîf=úuš¡i " "ÐRRªZJN牀´œÀ[™=t‚[´fº‹p5³¾Û4)XP²|[g¹[NWgŠ€t)U^—pKßð2;¹ÛÐ7^ç>n¶ü]³-G›íy‰€ˆ@—" ¥ªKÝ. VêÀûfïLkJÕ€õª˜,v W·5Íz ,ÖBûE@D Ý H©jw亠ˆ@Í9ÙlúMžÂa°YÉ".‹­ÿ®^n§OÍÝ«h )U-¡¦sD@:–À²¹î*ôÂÑóÜ]ˆËm‰g†§ˆt߭͆Mpk·Ž£®."Ðp¤T5Ü-ׄE N ,™Õ¤\¡hmuª²Á×émÖ´D 3RÕ™ïŽÆ&"Ð6îÜÄ•.ÇÂ]·uvôÂÒ½ÚæzêUD !H©jˆÛ¬IŠ€|HÀƒá_¹¥)Y) Kçy6øå \¡êaÖoû¦Ø¬=®õæžêA"" URU,5¨G‰Ù»/~¨d-í1Y7ÖãD5'6& ¥ª«{:#0ÿŸfçnÃÍÖÝÅ7å}Ïõêl¢šŽˆ@µ¤TUKLíE@›ÀâWÌ^òĤó¼¶!…¤{ɤ·Çi¡dmr¤Ùæ§4íÓO†" ¥ª¡n·&+"ÐêÞ{óC‹ø,¬VÛmõ˨CÎO@JUç¿G¡ˆßH$îaIDAT@=xþ ”¿ÙëuËÖNl¾ò°{ßzš¥æ" I {CÎZ“Ž"@ ‡Å¯ºëÐc³^½ÝlÙÛ¾ÐÐWöÞÜ,W´¶9ÃlàÞ5:]WD Rªj€§SE@D jƒö3c‹B÷ŸnR²P´’•ñH‘WO až9^""ÐéÈý×én‰$" %Üï ÙÒ7Ü}è.C,[¼²õÞÌORn­ätHÚœ€”ª6G¬ ˆ€ˆ@+xín/Ç3Ålþ3nÝòmÑt·n%f=úºrµƒÙ>·•.ÑÓŠCQW" «Rµ*}®E`Å»®`=ç›»ç?k¶Ë•îìY|ïþÇlí-ܨåäkc=Ön½õÖzЩ"е üèG?²sÎ9g•I(¦jú " ]Œ@÷>f†5m冾b¡Ù]ÛºBåúûnã–­!MÖ­~¼VéBÜk¯½ìŒ3<°^" FàÔS½h{ŽH©Ê¢]" "P—º¯ev°ÃcÑzë–¿¾èuyBS¤ïÇÌ{¡é}?7Úh#;æ˜c*h©&"P_Î=÷ÜÜ I©ÊÅ¢" "P|Õ` lOOoÅW°\É"½C)YâÙãgýÉ O±Þ=–Ù‚•ÝJµÖ1h8Rªî–kÂ" "!@âÑÃ3;s>.xÞlªÇ,_`ç ïoçN™ÓH»D q (ÙIãÞ{Í\D@ª#°þþfǼcvÄL»fêîÕ«Ö"ФT5ÀMÖE@D U ¬µ‰½º _«v©ÎD H©ª‡»¨9ˆ€ˆ€”$ðå/Ù~÷»ß•lSëÁÿûßvðÁ¯²vØaaÙýþã©,*÷ßß®¸â Ûc=ìŸÿôE.ï¼óŽ}ãß°wÜÑúõëg;ì°ƒýà?°÷Þ{¯‚kk²xñb{÷]OÛÑ™jÆ +p ®ö‡OJ"" " UøÜç>—|ö³Ÿ­øOšø2³ï¯ýk(áCÜu_üâ « 1EȨQ£lÍ5× ×ÁêCü”+ÁEȹ$¬@Ç “ÎÿÌg>¬G=ô]xá…Á⃥†yÿ÷¿ÿ5WH²§å~f¾_ÿú×Ã|éǠ઄áqÇg‡~¸=òÈ#s!> ×çaÝúþ÷¿ú=묳‚u KîV\~YážÝsÏ=æ ¡wÞyvûí·‡¹»",oXï;óÿÕ¯~ú~à²Ý„ÏX5×ÂzE_ÕŽ™Ž°Œí²Ë.Áê­£¹¬`§”ª ©‰ˆ€ˆ@íP¾ùÍoŠ0ÊÜàæúä'?\9\…X!¾(_<4'MšdnA ®)\N¸‹ÜbÜa¸‰WrKSpÙ;6¼žp ¶Í6^Чˆ|ík_ J n>·V·WÄ-áAïÖ4sK—¹U"<¸9F\í£d?³ÿÇ?þqPQ Qlžzê© 8áJœáqU(((XŒÅÄ-CaîÑõû®$€›¶wÜqGpg~þ󟧺ÊÜŠcûÛßbW%_™cŵŠr…¼øâ‹ÍÎAiY¶lYèŇñã.íIì×ã?î'îÃ}öÙÇÜ’Ù¬âÅP ¹ŸãÇ}ÅìäôO`?n`öħ›ÊnÍ}÷Ý7(žŒ)+¥ÆÛöéÓ'(ô(VµŠbªj%¨óE@D@*"@¬Ow{…˜*h– ÷¥„÷<ŒY톲€bCü1I<ôQ¦Pj°–ð€ß{ï½CôÌ™3C‘»ìBüÀ:TL⃛ã(;J‚’‘ŽÇcéýÅÞß}÷Ý…˜*#8¬pXuˆgBÜ¥i7ÜpC¡ ,tX^Ò/N”x¤kV#,}q¹(¤y‚2”≢ÄX1âß²òÊ+¯„]ÙÀuÆŽÌýÃêÅÝñmáÅ‹X©¬ÀÉ]™Áb”>æ®Ñ¢óHË]µcŽ×A åüÖ)U­AQ}ˆ€ˆ€”%€âT‰6àÓŸþtpr AȰ³‚v¸{xÅ⛈ uØi¡-ðyBàuÜgH ºNC!÷cKE‡àl”*ܤE@°fÅÕ{(l¸¸X‡+-r“v…+*<¿ùæ› å å Ń6(5‘q\ @[Æ€%k…ŠçÄãÅ^QÔPZqÑEe˜ëìM`;B@}dž½Åúe?cDy%Ð> AòXï"§¸?¾¦•ȸ/ûZjÌÙ¶­ñùCµ¶5zS" " "Ð xâö¹ÿþû Kúy ŸrÊ)a > –¬W¸€¢ûðÚk¯ ±AÄke•‡ô°bÌ.¿Ÿüä'ÁªRŸ„û…ÄâÃé·ÜrKˆŠ}e?Çýé׸²+V0Ò-FËÕóÏ?ætÎ9çV;¦ÏEùâúÄr;†U ·î:XàclŒ•x3VV¦ÅÕn¬~cåÂê¿-·Ü2\Û¨ «ÐÒ«¼<%BâV±Ð–éÏž“)¬PË®þsE$ñ}âqTá¯Ö÷Rªj%¨óE@D@Z•ñ8Äÿ[“µ¸Ts!b—ò¬%¤`(¦|¹;»:®škªmcRÕØ÷_³NGÀ3~·Ê˜ÒDû”'dçjý±‘‚åˆÜPÄf•V:¦‹5sîo~ó›ÂêÊrçëxy²T•g¤" " "PHNšÎëDZ‚¶ÉæcPžH<ŠE¥‰1R(`"gU,LÓ³ U:Ul“}%íC, Ã1¬]ôƒÂE"T2\žÙâÉäkŠÛ þ'F‹džXºC‚ÐQ¾²Å’IÌI,J$%~Ò¥sPèÊÚÇþëýU–ªz¿ÃšŸˆ€ˆ@M¼³á’dE!%gÒÂ*3„8°((,X©¢kâÖK « ½ˆtÈ«E-¼– QQhPŽ,X\/ÊÕW_m#FŒ¹«bÞ*VM’¡ý¦›n ÉFct>£|ÑÞS/dÌ?räÈPÄžY)+àPY1™N2ÇÐH¯Rªénk®" "  äÉ]wÝjÓau"s9õQ¬ÒBÂJR2àΣõ÷H@J†wR 8.–6ý¬Ì#@%BöwÜX¶P†°~¡ ÅR;Åú F_ºX3ÉMYYIRÑX\ºT±dúEqÄu‰Û0-dµçú$#ÅÂ…‹ë]#Š”ªF¼ëš³ˆ€ˆ@.2–“E’5þÅFÆp \`iaé>Ö+ÊÆ`­Á ‡‚å = ÅÉ{•=/ö+1nq_©WÆÃ E,SX¥xO®X ºÔ¹¥ŽURxEŽ˜1Æ´Pˆ˜Ø,,z¸&ÉüŽB‰;’|`äÈjQLU£ÜiÍSD@D ,J£°BŽ|xîõ/¹ä’P¿/]Ë Ê5V’áÁ Ööaõ‚E]=ê÷U[ߎ>:܇X‰ÆžŽk*¦Ì…Æ©­QxŽÜbÔ&œ4iR(MP<ùÂEäþk”;­yŠ€ˆ€”%À ¾qãÆ«ÝøÆí‡‹¸)¯õf .\¥VÎa­¢”Š×Û «ýpÆ MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::value_list_b< Seq, Manip > Member List
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1InteractiveOption.html000755 000765 000024 00000030756 13515046515 026273 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::InteractiveOption Class Reference
MySQL++  3.2.5
mysqlpp::InteractiveOption Class Reference

Assert that this is an interactive program. More...

#include <options.h>

Inheritance diagram for mysqlpp::InteractiveOption:
Collaboration diagram for mysqlpp::InteractiveOption:

Additional Inherited Members

- Public Types inherited from mysqlpp::DataOption< T >
typedef T ArgType
 Alias for template param.
 
- Public Types inherited from mysqlpp::Option
enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 
- Public Member Functions inherited from mysqlpp::Option
virtual ~Option ()
 Destroy object.
 
virtual Error set (DBDriver *dbd)=0
 Apply option.
 
- Protected Member Functions inherited from mysqlpp::DataOption< T >
 DataOption (const T &arg)
 Construct object.
 
- Protected Attributes inherited from mysqlpp::DataOption< T >
arg_
 The argument value.
 

Detailed Description

Assert that this is an interactive program.

Affects connection timeouts.


The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1Query_1_1SizeThresholdInsertPolicy-members.html000755 000765 000024 00000012367 13515046515 033075 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::Query::SizeThresholdInsertPolicy< AccessController > Member List
mysql++-3.2.5/doc/html/refman/sync_off.png000644 000765 000024 00000001525 13515046516 021125 0ustar00tangentstaff000000 000000 ‰PNG  IHDRàw=øIDATxíÝKhTWÀñÿä1I&3™8M¦Iš™†I3Ú©b$cÌ I1V1±-(Tö±±Ð.* t!‚K[¥Ä¥ˆ„¨´f£`l(øl©"Y”¤6ÆgÌTú}·sgîܹ ±d{8?æÌ¹÷;çÜuíÚ`:!±F¬¢BäŠ?ŰÄm'yÊÅ>ÑlU¯½üý‰è_‹?€Œê ]€Y(ŠNñ±8fý1°Öqún-eâ¨øtºmâÈ Ó0}b›ù%·©µ×Œ®=Ÿ0´³?Š1sŸ‹0€¯8À‘;_ ‹W|%\ Zð— >舽ln¨p©.aÇ{ )t;Ú b nŸš¯›65°¢¡2çÅÔ?Žž>Oдàuönm¤¢Ì`×­Z¬WjC~>‘Ö¾0+á {{©fÝ×Mæ·æÅ•ìÙ¼˜` Ý›%uA6´½ÅÆö¨Á,]k¢ÄW¼™u±›]‹ˆ7§¯iòh€ ¶¶¬ÏÖu1 ló —Ҷ̺–:ÞÍ\ÄcãÏxøhR²Êè‡Qt$¿ß§¨ ª fdºü<4BÿÙ[•f¸d7=.Mé9/—éªÃëù/ÿO Üaàò}€,‘j?Ÿõ.5Úšm?œÿŸ®ŽXÿ2¬#¸d píæ(£?cÛú¼!½›a1¥Þ—ŽòØ©ܾ7dÔK:‚ùÒ‰ì)Ê3‚Ü™àÌà]€,±H€µ+køöäu<|`·LhC7¹ÔeÍ Ÿ×Ÿ˜tÜ‹ óH$^2%l.êaeÐäýE”ÌÉ|ÅÜìî‰Ýsä }¸ýDû^hzé~ðR›¦Ã¡¿]|#ü¯@×—Ö‡[k¹–<|š(Ç*€Ý¹dÇtMé:Ýñø«Ø,êÅû¢]”' øXÓ_nò¡Æ|Øý /c§fžâOIEND®B`‚mysql++-3.2.5/doc/html/refman/inherit_graph_12.png000644 000765 000024 00000003717 13515046516 022451 0ustar00tangentstaff000000 000000 ‰PNG  IHDRv$\áÎísRGB®Îé‰IDATxí[YlM]^­y,j¦Š*!bNšŠR*ÒŠ'"!!1¾B$x(!‹ÚJ¡¥A¡Õ˜‡1Ï1µf¶õ-ÿÙ9÷ÜsÛÓÞËïÍYÉ=={¯µÇ5}{Ÿ4B1‘Ká¶å‘á¶"w=vÀUl˜Z‚«XW±aºaº¬šÖu?ž6lØ`­vËA¼‹/¦¾}ûzÌÐ+?zôˆöïßï!ä‚s~üø!ºzöì™×½<ÖØ·oŸñêþ Ò(//§† ÚÎÎËcm¥ÜÊÛW±!§2gvëlŸBNÊUlÈ©ÌÙ„C^±»ví¢¹sç:[­R“&M¢Ñ£G{ýfÍšEwîÜ‘ú/^T:ÂìÙ³iïÞ½¶r'Ož”~l™U¬ô‰Š«ØÏÿ&~ûöm:{öì_ÿèÑ£Ô©S'êß¿¿ÇX­Zµ¢Ÿ?RYYýúõ˃gW€ò:wîlǢׯ_Ó©S§lyU­ô[±_¿~%œ£bbbèáDzÀ^½zÉ"oܸAà÷îÝ›jÕª%|ÀófÍšéy>~üX {“&M¤îÒ¥KºMƒ ´6îÊ•+Ô­[7ªW¯½zõŠbcc5/>| |¬ª_¿>]¸pZ´hA]»v™oß¾ÑÛ·o Џuë½{÷ŽúõëGµk×>Ú}ùò…êÔ©C‘‘‘Ò¹ ¡¤¤$Z¹r¥È›P,ÎþÏ ÌåÚµkÔ®];¯y2ø‹ý¹~ýz…2fyÇïølg&>¿â3ž¹ªÂw¾©ù‘#GÊ_´6l˜5j”.2Dñƪ¡C‡ª#Fèþ^¾|©jÔ¨¡6oÞ¬._¾¬XQН"""TûöíÕÍ›7E–­\5mÚTñ†‹<{b¥ oéÒ¥Šo]ä=55UuïÞ]±á(V˜ŒŸžž.¼ƒJyøðášY¾þ±cÇ„âÄ ÛrTT”Z¶l™ð¬cîß¿/,NŠK±1KŸ Š IxñññjÍš5òŽu±A‹ ÖŒuëJlìÒöСCVɲ€åØÆÓ“'OhãÆN`‰ðÆ={öйsçÞ›––FÄ ÃËÎÎï˜]®Ìxã¡·¢\ÆÆ@ôùógÚ¹s§ürrr´¡Ãƒà­%%%ôæÍÂuÞ¿hÑ"í9Ö2d233e X‡ñ»wïXšîÞ½K3gÎ$äR„V̇–V­Z¥eŒ—… ¢<!Q(P0ŲçPÛ¶mi̘127, ›h”¡”””b¥¬¬,‘AøJLL¤èèhŠ‹‹£ÂÂBZ·n,ư~ýz*..&´3guèÐAäf̘ásý={ö¤)S¦ˆÁ@ù ›fЊ+$”wéÒ…ÀgÊ»cÇŽ¶eT"D#šX™°6„ýñãÇSii)}úô‰8bQnn®YLŒóâÅ‹´`ÁêÑ£q”£ääd ~çXcðÖ­[ËkÍšºä#e1ò—c…(ÈòÀ4qâD:~ü¸x4`ð xü’%K$gïÞ½[{÷àÁƒ¥<àM¾È L÷Œ6@µlÙ²J^2aÂÛûüùs£Kzðà¼O:U×á…S‹G‘ {2pà@]o½È׌j¼ÌcaÍN! ^²}ûvMãÆ“f@œÃÄ’‹ŠŠd# `l>È|Ñm "ðßãéÓ§ºoÇ› ÁÌ?}ú´O7ôã¥M›6ÈzðA?Îï^ѼysåêÕ«z4xp È™65÷3vìXÚ]¾|9álX·n]é}ÇŽ4oÞ<ɯMÏ@·}úô´ 4ŠÜˆ|µmÛ6Ÿ3‚Q ¯Ãûa(‹F:@#„bôƒ4À€I.ê‘»1>r¤]Y*<€œñÕã g2°‘ñ>ìÑzÀ€‚ÐW¯^-kÂ\ÉFV8U]TÌ@Iºbo¤¤bØ/e Rƒ€TyŠÏŸF•âФ< "¢å#’â<+ü#GŽÒE cË=ó±E䀊9WkY éµk× Ï@Åh‹~8e(62d ª ½:EÅ[¶lQ|l’q0N?~”qøø¥ç”——§Q1Öņ®5j$rN¡b¯sMUëdV™ùóç+FƒÖjÅX9sFÁ8¬Ä(WŽD0F»Z±f9(–A‹ôÃg^ÅÈ\³ Åb öJÅÈZóþÆ £{ã¶[‹y<þô¦8+>c›«½W¤Ø€'¶ÌJ a.??Ÿv7mÚä%àÅg]¯zT dã¢Ã ¡#|‘`ù’ó§Ç¿AƒUÚÒõ6«ÒFþ©bq®å0%gÇiÓ¦9˜ž½•MR¸e`²#äl k¥ÛÉ„UÕçÿE(¶Žé–«·…⎊ÃÊ+‚x1®bƒX9þLÍU¬?»Äm}‚'ÜëºÜ;€‹_äå±øÂ‚!—‚p¬ƒ®pi¥à1k¥[ùpÿ2äUèc^¡Ø‡œ[b;à*6Äætº®bîTˆÉý«ŸXÞFùxIEND®B`‚mysql++-3.2.5/doc/html/refman/structmysqlpp_1_1value__list__ba-members.html000755 000765 000024 00000011311 13515046515 027565 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::value_list_ba< Seq, Manip > Member List
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1BadConversion__coll__graph.png000644 000765 000024 00000032360 13515046516 027660 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÝÅÐA÷ìsRGB®Îé4ªIDATxí]`TEó½÷Þ{S©ÒD@š¨¨(‚úaÁïS°S-;b¯€‚(½#R¥·Pjh„ $yÿùMÜË»ËÝåÝåîrwÙË+ÛfgwvÊîÛÍe0MM€Q wÀJÒi h 4Ó鎠)` h¦ 0ÁuqššétÐ0òø£¼Ý»wÓéÓ§ý‘µÎÓG¸á†¨dÉ’>ÊÍZ6ÑÑÑtøðak‘C,VñâÅ©Y³f–°ö Ó¡d Q¥JKHèH£@jj*íÙ³'p:””?~ªS§ŽÃÛÐ~Œ‰‰¡äädË•ðÓ¸eË–µŒˆŽ ¤¤¤¦ ¥äÉ“'ìúE||<ág´Mg•R:ž¦€( ™ÎG„ÔÙh X¥€f:«”Òñ4|DÍt>"¤ÎFSÀ*‚žé._¾L/^tYŸ×_&Mšä2O™î®»î2Ú·ooð(c°Ä1n¼ñFcøðá‚×À ±ä†Nö /,EŒ÷ß_žÓñ(gŒ9ÒÖygÍšeŒ;VÒ¾ûî»cîܹ:ÞçŸ.iÑ Xr¡›4i"yž|òIéüX4î¿ÿ~adV6mÚÍ›7—‚GG£oß¾2 L1ðGpcIf 4Hò5×ËÌt,…¯/¾øBâ!]ùòåaÆÉ3:’M›6,ý 05èeB‰é¬ö Åt 4º³ Ó¹¢ÙÊ•+…Þ~ø¡qáÂaTô1Eo+t I¦A²Œ?ÞY]*lîœ}ô‘Áö›©¥ råÊ6I§Þ9»¶hÑÂhÕª•Áj¢üÐi!Yßxã ‰¾qãFaJ0&$ €NþØcÉ=þ`P˜9s¦)‡ÆäUy¢á𠪘÷ POHq€¹^f¦{öÙg ^B'J‡òY•Gàƒ|L™2Eâ«çÌ®¡ÄtVû…bºÙ³gÛª:™%+šÞµk×¶¥C»ƒAýÉtAáHáŽK°s&OžL£F"&}ûí·Ô¡CîÃé›êúë¯'V×l/›6mj»wwƒÅ¶pV(=qK”(A¬ÎJ2fJB^ÌŒôÈ#È{n±™`s)¨T©Á3Æ#¤¼‚íðå—_ª`Yoj¶#Yýµ…Áf;sæŒíÙÙÍ‘#G–¶¶àŠ+ìXfÛ¯`Á‚­ûSy„ÂÕj¿Pu¹îºëÔm†«+šÁÞ«V­š->úƒÕ>eKäáMzËz˜Ð—Ñ/^LcÆŒÇX( æs„Ò¥KËb]0ƒ0‰³° œ$ø}ðÁÄv€$guSœ%uëÖ¥çŸ^-èø<ê<¤ Øî#¶‰U>yõÞ{ïÙòîï¼óÕ¯__E·sÁö«-ÌÙ Û…´sçN;ç ò5§S…³ôáôÎj¿°RgW4½wìØaGoLáø‚‚é¦OŸNO=õaÔiÔ¨¹ *$õf§‡t\Ö·‰m&•UyÇŽ›‡‘Yå“|<(iøáó"-;ZdîRuܸqÔ¿ñæÏMFŒ!Ì!¤ÑÓO?-y Îo¿ýF¬ºÐ¡C‡ˆ.âÙs6nÜX— ~‚‡¸a±·6Ògx'Q~ïÞ½%È\/×^½z‰Ôùå—%˜œtï½÷š£åˆ{«ý"+ÄèÞ½»hh'¶Í¤ý ùlʬoA½ttây“·«4AaÓ¹B.”߃aXµ´yGC¹.áŒ;¾b‡U|â9X±ÍçÍ›Gfµ¯ë4’Î×Ëîüx²_–´e7ºüÌ)~-éEi]ަÀ¿ÐLg¡+$%YßtÆBv:Š?)À~L#È›K3…0}ú*ž»sýMŸ…,t)Ì»Uþ»~:CñǽKë!Š^G÷›M‡O%ÂeïË™3WPtôaþд¶×„Ö Ó(€Ï¥°œÏR.ç¢Ëû#èòž¼ty/ïÖ?‘Š4µÿŒÊ1ãsr\nŠ~¿0UŠ¿BëVÜaËI«à¦Ã2.,Ÿ ˆŒ<Í+e.ÒÆgé¹çú†C•¤<ðº O¨•F(üB$s¸)‘N®»Bq|¯ÎªÒ¹0µ¸?}=¤UDÿ~í,¥&]¡r…ªPµÆý°+Œ¬‚_˜Ž¿s³Z~ÐÇ›>}ƒ¸ý÷îásóH=wæm£E$ç§‹ÿ$ÑÑ5ñ½:Ž’â“)wžÜ”šŒ%D¹rç¢ÂåòÒ-oÔ¥¼…<³|¢WÆQÌßW¤­r]*Ôƒ¾_˜ÎÛF Æt?ý´AÃæÉÁ§[høðnÁˆfÐâtvÏe:º–™Œ™âìÞK"Ír3s¥¦¤1ZjrúâuvP׉5=f¸ä+©´fÜ"Ηøÿ¥SÁ¹Mƒj$ÍtŠN®›7Gó§ÿi;÷&'§Ð?®×Lç„NÎ^%œ¼J¿>°—®œO“f3W›‘áÌér±`»ñÑJTî:ÏÕŸ Ä lÃ¥òGÙœiü‰àv¤x&ÃÍTÊ÷sæl¦¼y#l5Š:G»v°=ë×(R1Õ¹­«ŒÌ &†s–"wž\T¶QajúŸ ΂ݾƒ$ÝõÃi;FN8Ü’N3‹&åˆi֬ͼQúÞÿ`@¨˜¬Q Õ“•©xõ”;‚u>WÀA¹óæµ ê ¬™®|-šUJûü/õÌëéI™¾ˆëa5}Qdhä±zõ~Š‹»l‡,ð—_6Ú½Ó®)fºeb-±³\Æb}°ÃèêÉè)ìüþ4?”HÆ¿ö¡JŸ’”JWÒKõ>X®šé\´ÄìÙ›ùˇtÕRE;u*ž6l8¬õ5 €™Ê4(è”ñ VÖéQŠêôôüœ¼K1×hã‡'È`Ä$ĝЩ™ÎI‹aÙ×ï¿oå½G2Ž–P1aëiÈœ§w\¦Ù÷PÂÉkTº^!žHWsñxV°T^j?Êóù8”¼f|´K†C8˜2XA3“–Yºt7oèê|ETÌ9s¶ð¦¤fW·“Lrò+>[gœ¢yC÷‰Mwç ©Ç”Ú”'îtó‹ãÈô@aÏ»`Ô² t„§!Ôüž#©aC&ñ´ç5v¬a>Ã’Ç4*;V1ž—­Zµßñµ~f \>s拤-SOÒMÃ+SjS’y¨P™¼Ôñµê2O‡M‚š ­Håoð|zàÚ%ž“T&Á]R4˜çê4Ó9´\BBo ´‹UK×’,¯¢cj°§À‰iÖ½{„ñú}YŸšÜ—¾M@†§‚٦˅-T…ôÕ9Ú¶G¶¦'Ÿìê<‚~›mØþÕ)ÚñÍiºQÚîÎ)W :»û2a¥JãÁù¥‹–tÙÖ]tÁ¾ ÀÉ- T¡yúgJùrQù¦…åç‹üý‘‡sÅÛ%é<¢)9ѵ“) •d-fkU41]@Ë÷²0Ít^.'&Û?/–æ ÚK;¿;Õ?ÇöÛÕ‹)v’.(Ë ­^fB L”’hÐÚIGLwýàrtôÃS²›61¬Zæ/–‡JÕIwpe7NVÊ×Lg…J98N\4Ï[Ž<$®ù['צj‚gW€“›ÙžkšnÏ…J3i¦ •–Ê<-¾@«ßŒ¦5 Ðß5¤Â‚kN²B³"T¸|pád¥™4ÓY¡RŒsfçeZúâ!j|O9j=¢²Ýbå`!G“û‚sJ 3úh¦ËŒB94¼l“BtûW ¨lã´ss(üRmí½ô YÃ#SÍpþiGÍtþ¡«ÎUSÀ%4Ó¹$°J»ï¾›¿1œc5º]¼óçÏΈËI ™.'µ¶C]/ž¸JGVÅ9¼õüg»EEEyžS”+WŽp{NÍt9©µMuÅ·oØ—rë§LoÓo…‘øøayÉg¶Û='%%ɳy½|\\œœSpüøñôŒþ½ãã£iõêÕ¼KvúfO|µläC Ò„í Ë+çàˆmÚŒ5¦LY6ØñíicZË-ÆÒ¼;²ÓzíÙ³_Ÿ|*©„Oœ8QžgÏž-Ï_}õ•ÁçÌœ'm4kÖ̈ˆˆ0ø“'ù͘1Câ13­Zµ’´¼Ý¾ÁÇ&L0–rò>wîÜÆ¤I“ä]fR®¦ó4ÎYÔ  ×’.l‡ÓŒÃg/+_¦¿'£ÿ­D]&Ô ˆÎ?ÁæÃî©fÍš¼-Å*ÉhåÊ•rU'î,]ºTÎèΟ?¿¼‡tCH­[n¹…>þøcy?mÚ4ŠŒŒ$fbÞÒ0ŽÆGãÇ'œÞsêÔ)9kž˜FŽ)ñ3û³õßOù‹gÜ©-³´Á®™.XZÂÏx`ï’yC÷Ë™=Þ¯miýäm·Ý&L—’’BkÖ¬¡~ýú‰úT—-[FWðÀP»víÄFÃ{0`РA´iÓ&JMÅ×öóy‡ì]tñâEŠOÛ®^¥·z=¾>žJð¶E*xÿ!¬Õ²üOOŽû‹²A–ïŠW¢(ùr*Ýþu}*V5M:e†"˜ç³Ï>³1ÞK/½DmÚ´‘³Ô=jÇt•*U²eW°`AÞc&m7µC‡Ñ€’°^½zT¦LÚß¶ÈÞû;ž*·.êaªàŠ®™.¸ÚÃoØt|µå+áщ8;wõm0‘bl›Q©R¥èÕW_¥&MšPµjÕløbû g0fÌž={–·»(Nl#ÚTVgñݽÃ!!çö^áƒF¼ÛÔÈ]Þ Óêe ©ea±²§g¾Y:uêD‹/¦.]ºÈ¶w¸âÙ¬Zº«ÔJH7š•sìØ±]yEñÒÐÊ\ݱuñ²´RËЖtšéÜõfc.H=@×®iûĘ™ÎQÊá™=’ÿ…^à œöSÑ¢Ey§ë©GT¾|yêÖ­›„÷íÛ—^yåšLŽ5J½Êp½÷Þ{éîÙým{[fˆB/4Ó…Pc¹CuÿÜs´zü™p×Ýo¿³²»tÁV¤Húé§Ÿ2EÇo…:h¦ õä5>8NÛ¾ÙŠC ì¿‹ÎìJßS$Ûɦ‚£–ÇÉ–îÅ«[ûþ/›Ðô¸XÍt“Ìÿ ެާ߉$t6)œS!z%«–ÂKÊ¡-õ”Aõè=?Ÿ¥¿Þ>Jõú”¦ö£ªñöA†`€Ð9 ‘â%i¦ ½sl1ëß;.çg·x¢"5}¸BŽ¥*µâ*›—p¦B¸–tAТإkÅËQ²iÖPÖîQ2°Ê^ju+Ie„êšé²·oIéWÎ]#LßöIþ2:ô9ô aφ›EÑI3¢D6^‹TÌG~iDúŸŠe#C§hí½ –¶Ò ,-áw<4ÓùĺM{ h¦³§‡~Òð;4ÓùÄéø3–äHÖw9“Ú‘€vÇÊ•oDÓÁE±T¬J*w]xºÂ³JJl?‘’d„ôá Vh %*e!Î5>?`Áðµüõx¯Žf87´<¸à<ýÐg'¥^ ou@K:7 «AWÎ%Ó‚§Ðå³×¨Ïçõ¨tƒô½³šw8¦?´äC4).…p:lç7kø,Ï`Í(Óápp»{ ðˆC"7PLb4%,¹àqÚ`O€³ ¼=cÎYݰÖ2wD.ªÖ!¼>XuV× L§"ñÙ±êV_5ì(0}útzæ™gìÞeõáÐâóTµ]±?Ä ´#Å •t¿R )>Mµ¬yKÎX譙ίÝIgn…ðìæÕôÐLg¥Wè8~¥@Q^ðÝlh­ô+R~ÌÜ¥MçÇ2uÖšv¨Ôª(á—S@KºœÒÒºžAC—t_ý5­_¿ž>üðC¿uÀ€rp¡³B>úè#ªU«–³ ¿¾;þ<.\XN7…GqÛ¶m4eÊ¿–™Ý™ãæ·ß~›Z´háœþŠ)R¥‚ï$£—tûöí£¿þúËmø"‡ÛŸ={–ªT©’ᇉâì€råÊñ„ýÏRtRR’+œx²Ì•+WÒ™3g2-rÞ¼y„#“¯]»–iÜ@GȲ¤CcŸùDÂn¹å£OŸ>rÿ / 0Æo€AA,üØI"égÍš%ñðç•W^qÉt¬6Øâá†ÂŠé”ôDÊ„Dµ`:VG‡zÈî7aÂ[rŒ¼.øa@¨NIª`íڵƢE‹Œ·ÞzKêI¸yófù¡c¹`:WõA¸+¦Ã ¤$<â ý1 (|X%K à¿ÐL†j{ÎìÆL·ý«Sl鶨Ž;÷ÝwŸ-覘Œƒ¶dõÑýÞ{ï=‘zï¿ÿ¾Äwd: v´ÑOøáƒU|äm™ð&Ë6A B…´ÍQ¡/”þ ]ÀuögϞģ±d#&±T’pîÄ걤» 6È·ß~kÓÍ[·n-ñð‡%‡íÞñÆÑ‹»Né÷ˆËRÓ–Ž+F¹Jpçw:µéT8w\âACì#î,ò¶@Ù–¸g5b ,×x@®êœ5 2«Š§®°[XS Ø«f@ûÀ¤uWP°`Abi¡r=°0Öí¾–ð>2“‰§R!Ô´iSu+ýéé§Ÿ¦… Šc v«ê{¶H¦´‰Ul±áaS#ÿìŸy/yt·TVçˆí&úüóÏ¥s²È—tð‚(¬zúBH–¤:œ5 XmR·®'Nœ°½cÛŠþùç;&5‡¯Y³Æ.̖Ћ *?þ¸àŽÿì³ÏJ.pÜvïÞ-WüÁôK{qª°z)al[~,‘éÍ7ß´Å5ãë¬>¶ˆÿÞ 0ÐÀé¤Îxy̓•ÕöRyøòD8 ¥vw×î|0k´cGú÷Pp˜(`µšX[ ¶Õ„nsçÎg‹ 7_1èbPg•žØÞ•O×ZµjeŽÐ{kœâC”X”¹¥—_~™0÷Å*¥äŽy¦§žzJ¼m‰àî…£::"<‚˜‹bÕÍ%F`XHOHM01«¨Ô«W/[|VM%¸ÚYå£Þ½{K:%Êg‡Óg¼DœùóçgøAZ‚‰Ð fΜ)ÒnêÔ©ôçŸÿâ•d5T˜ e²Í&ÞD”8!ä \‘N»úÀ#Œu4òeuž0º# Úô8ÈR[¦Wjá~c] Èоÿþ{ñ´²ÝiC’e6a„©0¸¨) fxª1 b Ĉ+¦¯#Ýl™ûûÆQ•õÖ‘ÃãqÛÏìö–gØT `o ϯ©Wâ]‚-ãΞf0àœ,X°@l¤aB¬jÚÙt°µ°à„ý‚¸ðÜ)²éa°‡`OòT„¤ÍÌ{ ƒéœý˜ÑÄùàƒJ^0ìa¸W¬XQlZxÎà AZxýÌöð¦©|áõ½xñ¢äã®>ˆÀS’udÉjðè-éà†S y‚^ÈŸ5 S6j/¼ìÞ½»NÑÍŸ¬Út?õße¬{7Íkì¦7ÔIц$ñnÑÁÙ†0x(y G êËS3bâLB8<Åp’¡_!Ž­—^zIúÀ‹/¾è¿„a°O™Î.±ÅþËæ,0'áQÊ€±¬¼næ°+W®ˆ‹L oœš20ÇA'…#ù°zeÀØV ˜ahåAUáþ¾bê€G]ñf:–g˜Á±Þîê£òày6›‡N½Ã•GtñŽÂa‚) _BV˜ŽÕJcjóÍÆé—,¡„Œç3ÐF%†×:p¬€ÖxŽÍa¸G|œÔ§Þâê3G (™T·¥ü 6TIö6eˆ=^9¡†b’Ý Ö®ÀÑ9á*ž/ßóh,ûÎòd—=ñœž³ yç®>ÊftL &…ƒ ,àѪ槲­íˆÆ’‰7nì²f"™íV–ð²ØA%†É‚Ÿ˜-Ùe:ViˆÕ)bÑNƒöº¾ÐãÂh8œˆ ¨ò¦:‹lïÜÕ'ØpµŠO¾¢Ôh@ötv«8ú;^.ˆSs!p0`‡×æ(ú>‡Sš ¶kÀ25 žS àÞKÏQÔ)4‹šé«=umB€.m:õÉHÔ!(P\¾üÛ™åxÒ%IƒO_ až¤öE~9-—=Dï}éYW(Zô&š=»)Û9Ëø»¶Hχ`lì{©Á; dp¤x—NuðàêÐa¼¢{÷&¼fð*SÆýŠ MµœImÓù¨Ýk×.Ku꤭³\ºt7µk7Žv§¯ôQ1:›0 €f:6bÿþÍù ù^O™Ê_s'ñZÎïhàÀOéĉðÛVݲ-xê íú!ó-<É3”ãj¦óaëõî}/¸MûD&mžÓàý["©}û ôÍ79óP–K1×èØ_ñT´RÚd’;d³ÒLçæ«[·<¯WÆ.Çk×Ryï•«ô ?ñ)7S(:úœ]x¸?àôÙü%"¨jÛð?Äj[j¦³J)‹ñú÷¿QTLÇèX÷óÏ?G¨S§‰ü-áʳâ'r~,Õ¾µ$åré'w¤Tø?k¦óq›ULǬ¡z&%%Óë¯ÿF·Ý6™HÛ±Ê1^¸<ãCÕó‡¯PÝÛÒ‡KݲRÍtY¡ž“´ T¤jÕÜw2þê†?Æ=JC‡~Ászö :É2d_EþKÅ« ²M¬}Q²õqÍtÌJtx1óå‹p_:tëÖ˜æÎÎ{x†§ƒÁ`Ò¡…ç©n/×[2¸$P˜h¦óC÷îÝ”·ȸÑOŸ4 †=º7}ùåP*V,m« ? íY^‰½FE«ä§:=5Ó96†^‘âH=·lùïÊuÞ–[ž<| Òž÷{éo{¯or´¤óS›ßqGº3""75kVw£êB_}µ–w;‹öS©:ÛP €f:?µR¯^éåÆuæÝ¹þÇ_Ì÷¢ŽÐcÍä­à.ù©dm°S@«—~l¡îÝßåý/{Э·¦ïñw…ŸßᣵÊòV…Ôö~$UŽÊZ3›órX‹éÛ·¥~ý¦ÐÿÛ•÷ÀìᬟÜZ½ôc;c8wýõUé7úó&°‹x·ë½~Ä@gŒÐ’.[åÉ'¿åóöð~üÏñ.Ðiçóe#:ºèQ@KºÚY1o½u7o_Œ}t¦íëgñBå]Ì? 4gÐ^º–*(g žšé²…ìi…,˜—¦M{ˆO=E¯½–v‚O6¢“å¢÷Ï•<òÑÝÊ15uÜQ'aøâüÝwï¡/¾X͇Zü€ýSDrb*Zržêõv¿îÔ?¥‡V®úƒ‹ h¯>}šòyä‡Ù“ù#o!^™·}H?;.г„Âá¥(…¿¬ÓC/ûÊŒ`ZÒeF¡…¿òJ? ¡úåÁþyç¨z‡âòÁj€H²Åh¦ ’¦Ë“'7Mú Ÿ«— /Hв„FBÌU:¹)êõѪ¥‚i¦³B¥Å©X±8ŸÒ:ˆm»­üÂÚ•šõb"çÅR’y¨j;½%ƒjj¦³B¥Æéر>q+½úê¯ò¡k‹öº(|”ÛðÎ2”+ãâ¯ó ç„zr<[;‰ 4U¦-zŽJ”Ð_^a3y’–t^“Î ñ¡ë‡>À›ýïßø¯ s¶P@3]¶=óBK–,$Ž•5k"ùÔÚE™'Ð1B†šé‚¸©š5«Æ¶]?zç…´zõþ ÆT£æ ´Mç µ²)îO|-L·xñsT¡‚öfS3ø¬XÍt>#¥ÿ2º|ù*õìùâP™5ë„9= ¡KÝz!Ðv… å“…Ñ»v ±cç†ÆEwÐLçŽ:A†sÞ~ûnv®¬¤ùó·e+f¹óË]{èÈê¸lÅ#T × žC¨å°‰-F?óÌÔ°a%Ùg%;Ð?º6Ž.D%RÉZ³£ø/SKºkÂ×_¿]¾Bxä‘™¼%ûµlÁ~߯ç¨RË"T´rxîNío¢j¦ó7…}œ?ö]ùüó)&&Ž^|ñgçžyvWb“éÈš8ªßÏþH°ÌSꊚé%BèZ¹rIYã•}Ødäï±”·`Õè¢÷tñ¶Ëh¦ó–rÙœ®sç4|x7zùåÙ´cDZ€a³ï·³T»gIŠÈ—+`e†[AšéB¸EŸ¾µjU‹`ßÅÇ'ú½&§¶]J­Zf‰Öšé²D¾ìMŒ…ÑŸ|2Xv{ê©oýŽLò•T>Uµ•n ½–Y!¶^‘’êIÚM›¢èŽ;>¤‘#{òW ]ƒ+†+ hIçŠ2!ô¾E‹lÛõ¡I“þ uë†æ9U-é¨ÝaÛmØpˆ°0º\¹baT³ðªŠfº0jÏ„„$êÑã]a¸Ÿ~‚p.ž†à£€n•àk¯1*R$¿,ŒÞ¶í(M˜0ßë|tBÿR@3éðܱwæÄ‰wÑÇ/£ v¼|]`æÐL—9B.Æ€-yc£6ôôÓßQtô¹,áŸr•7jÑàS h›Î§ä žÌ’’’åàÉÔÔTš7ïiÊŸß»J~4’*6/B7>^1x*â˜hIâ è }0F=K£Fýâ*šÛ÷qÑItróE*Ca·ñt gII·iÓ&zë­·<«i[€öí+MM›ž¢‚“=¢B¹Kõ©Vl;Z_õ 2øŸÏ)н{wúÏþc—Ð;Ã.‹À?œ8q‚~þùgêСåέ…uf-P£ÆIºxñÿ2‹i~šNÓÎü«‰/¼ À¶mÛøÐϲáÁtªþcÆŒ¡|ùô‡”Šú\1b„S„´˜pJýRSÀÐLç?Úêœ5œR@3S²è—šþ£€f:ÿÑVç¬)à”!é½tZ“ ~¹hÑ"Ú³go¯0ÜoX&$$Ðo¼a—‘"E¨Q£FÔ¿^üìùáq[·n¥ï¾ûÎnzæ·ß~£¥K—ÒáÇ©páÂÔ¤I>²y(o÷^Á®ì`}˜0aµmÛ–:vì˜m(jIÒ=z”vîôï:È«W¯òž˜Å›[¿~}ª]»6oÑw…>úè#úàƒ¼ªe\\￲Ös£ï½÷U¬X‘† &S6p‹?ñÄ|lsÖ–›Ù ñóMbb"iŸ=[ªªåI‡+s&§OŸ–ÎX«V-©èèhB8:ižwΠ ˆô+Q¢„ÄGè y2­T©RtäÈ‚ôª[·.åÍ›W!¸bn¸"ànïÖ­›Ý(þä“OÒªU«xæÓ¶À¤„”g¬P>ÀöíÛùx¯W…>( ‡çfÍšñvßHñÌA¯E‹¢¾¾ôÒKRGµÒ :pà@i·Þ½{  ¦CMs™ñ~æ™g¨J•*ÒÍ›7§‡~Øe;=òÈ#¢n#ooqEûfr”z‰Ñ+YÀ€P› Y~úé'atrŒðh 0`õêÕÂD;w¦¯¾úJ:Æüùó%H¤¹sç sLœ8Q¤Ò÷ß/ñTzgf„}·páBa60æÚµkmQÁÌ¿ÿþ»tRt¾©S§ÚÂÀtè¨ØQÌöÔ?þ(|Ô¨Q4xð`:vì 2Dâo<ùå—|Â|±ÅÀ`FÀ§Ÿ~*Rä‹/¾Ž¤ƒT‚„u PiAÏñãÇSãÆy‘õ<)6ÞA‚P÷~ýúIÝ–ôAÊÝzë­„AÒéŒÎfΜ9´dÉ7nœ¤ÃÀñùçŸËà!‘ùχzˆž}öY—í¤ââš\ÍùxsŸ£˜nРA"Z·n-´ÂŠe:êß©S'YZf¬X±‚·¹kEÅ‹§Ê•+‹ÚÆB‡„½u+22R:Îí·ß.jâAz¹‚5jHg‚šˆx°‘ e 3Br¨| Ú)xðÁ©}ûöòˆðÇ{ÌŽé0`ÔGÞ4`&”Ï>ûL$̺uëdÃ]¾|YÔoHÀ»ï¾[Ò‚‘ÌÎH%Hw:@ýëÛ·¯0'Ô^8qΞ=+̆´¨ë€$ñ`hà†2Ö¬Y#ï–/_.¨ùpÜ@MÅ`õêù† $.þÜ|óÍ‚;êïªl‘ù&+¸šóñæ>ã°åM.!’ Pž<4@© èT`®›nº‰V®\)j#L ÕÒrÚ´i°SR \£M¤ÞãZ©R%ó£¨m*˜%T:”imº]»vñaÿÉ&xíµ×6ìNÔU¤; Aƒê•z 5’ ªl4’PÑ ¢ téÒr«ê€ú(P¶˜ uã7 Ý1Èîl02¨¾ `_«vÃ;Øy \µ°Þàªòðöš£$¹‘Ü Ž’víÚIt¨B<ð€¨;’PsJ–,)áflW€‘_ì*ŒºfF3ç5Ø«|\]ƒÀ‘4}út±cáöŸ9s¦CD1à¡C‡lY)g^@}„-˜ù~ýõ×B 5¨A)€ý Põs×P1¡&þñÇ2µlÙRÒ‚!¡Rc°S?¨çfI,ÿýãªÌq²Š«9/OïsÓY%æq ¾Ì˜1CVÈè p¿CR@}ƒêƒxPwÐiÑù`“Àq[Ï #ÂFÁèF€3E©¸Hƒr‘T[tÂ6mÚØ²³ÃÞÀ>š2e ?~ܦm„t°×à ã!Hà ©•øP>$¤þHi¯ W¯^b³Âq´lÙ2‘>P‰ŸþyɳK—."5Й‘æñPÐ «¤ ÊÏÙ_7Ø”`@¥‘ => ð†ÃIÙŽy¹j's}úˆÚƒNŒŽ§@åg¨—`L@M‚G ÎeÏ€‰l>¨ºp(€ô…ªÌ'î ÎÈSpÁFTø£NÀ<¨nð€¢#£¯±ú |€/òUvàõ×_/"<¼ 0à¼ýöÛ’òD˜¤‡yÀ†Sj"žÝ}Š… t_°`ïjÖCA÷߿؟À 5òJG¾ø)PõÄÔ†¹®â¡¬¬àªÊòæ’±bôT0%…¼©¼»4p’`t…Ô1T,¬.­‚exè0Ž÷`,Ç)t@0 :0æa[©y60FpHA0T[¥ºšËÉÊ=ðb/-˜å&%%‰ÄP¶Ô]àɤæ%˃ý õ*£RÓÌqÔ\ðG>îÍœ.³{ØaPÍA3ó|ž³tîÚÉß_¸¢ xY¡¥ /™AK:35øRêT8 #>ÜàÎæ­¬ò1ÿŽi-ŽáÞ>£\3Ž€jŽ yB@tÜ  ƒÙAá./OÂÊ•+Ç{z–³”Ä];™3ð®æ2ï5Ó9P* Pi`Wx ðÒ™=*¸ó!]œì­† : Òé«V0U€Zav€¨üÔDµz6_±âåã?6¿Ò÷aHí½ ÃFÕU n h¦ îöÑØ…!4Ó…a£ê*7Bڦü˜¯ÜÑÁÝL»P¤æiÙõ!Étp§cѬM`¦–âS#GÉÉqÇJègMP¢€¶éB©µ4®aAÍtaÑŒº¡DÍt¡ÔZ×° €fº°hF]‰P¢ÀÿÚX+–ia0DIEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1WindowsNamedPipeConnection__coll__graph.png000644 000765 000024 00000037146 13515046516 032370 0ustar00tangentstaff000000 000000 ‰PNG  IHDRCÓ"qðsRGB®Îé> IDATxí]˜ÅÖ½„%g$INõ™@PDPL *†_ÌŠ *‚ЍOAÂCõE1•(É9çœÃ.ÔÏÕ{ggfg—žéÙ[ß·;Ý]ÕU·NuŸ¾¡º:‹1ækÒ¤(Š@æF`E&C“¹1ÐÞ+Š€"@3²*Š€" (DJ†z(Š€"À(êe (Š#Ý…mÛ¶Ñœ9süë¾"éhذ!•(Q""ý>rä>}:"uG»ÒܹsS¾|ù¢-FšÛOA† »îº+Íé Š@¼!0qâDºé¦›"Ò-({öì‰HÝÑ®ô /¤‹.º(Úb¤¹ýdhkÐ ³EB3‡¦B… E¼ÛÅ‹§š5kF¼ŒlàÏ?ÿÌÈæ\mK}†®Â©•)Š€WP2ôêȩ܊€"à*J†®Â©•)Š€WP2ôêȩ܊€"à*J†®Â©•)Š€Wð<Ž1‚žzê© ÁñâÅtï½÷R•*U‘À믿žÞ{ï=:wî\Xí'%%Ñ|exà=z´o?N|þøãºå–[þ=üðÑh>Õ:£IªBy¬À‰'èèÑ£A¥Îˆë,hãÊð<®^½šfÏžqÈÇO˜„»páBêСõìÙ“J–,I/¾ø"5kÖŒS•á‡~ ¢E‹úÊâ">sæLªçO'>{÷î¥ &Pþüù©L™2ÉþЗh¤h`~F²ÍGy„î¿ÿþ MdÄu´qegn0‹~çÎT¶lYÚ²e ;vŒ.¾øbÑ–V¬X!³ì/¹äJHH|ÌL/R¤ˆ¯zL>Å1;¯ ÚêÄ9yóæõ•C½˜ÃT­Z5 wÜØåË—÷åc³ú1?2Ož<4þ|*V¬˜oò'HçàÁƒòFÁªU«èСCtùå—SŽ9¤œwêÔ)Ê™3'eÍšUê±û :hN5jÔ ©S§úf×?þøãÔ AzòÉ'iøðáRi ,(8@^ôˆºì$ÛM›6QåÊ•iðàÁ”+W._ÐÇE‹IÛW\q…2¡MB†Â… Ó’%KäÌOË–-›ï\h§Ðü²gÏNµk×–>ø2ý6Þzë-ªZµªßQ|0Ç®téÒ2^(°cÇÁè‚ .ò›7o&Œk:uȳmݺ•>(PÀ–~G\—Ë—/§ZµjQ©R¥|òxyÃÿþØ¿??~œNž<)c…1Á˜U¨PÖ®]+×ó:Ãýf¯Ç¥K—Êuˆñ¶ ÷ ¸.Q®܇¸®â>qç“¥¯¿þKz%;jgîܹR¾qãÆò‹s¯½öZÓ¤Iß~ýúõ “‘¹úê«M£F|Õ19¾¡ÍÀ ßä†ÉÍ01š,Y²Ö\ÌÊ•+¥ìôéÓ a’’òW^y¥á’¼nݺ™Ë.»L¶Û¶mk˜° “­a’“öY‹“¼qãÆÉ>kw¾<”åXò§L™"ùÓ¦MK±Ï¦¬äMž“´Á_¸)ØýñÄOÈ˜àš¨W¯žá¢ÈÞ¦M9În’d×®9Ü›CŒγØ0±~¸Ë1Ç}Œ_\»á&ÈÉdnñX*7=륗 [´ha¶oßn>üðC¤ÃO!3räHÙÇ 4Hn¢Ý»w ü±\°ûöí3­[·–À…ŒzX32Ï>û¬hÅŠ ûç kfݺu2¸Áȃ‡6QϧŸ~*m÷ÝwÆ’!ûü › †ŸšB>íÚµY°Ï&¯8÷ß~ûm©‡5O)ëÿï¾ûî3 7>¿ŽdXû3üÄ6wÜq‡ûtÌØ±c¥<,‚Lø)l€!ò°m~bÖ(… ѯ>ø@ò_ýu©gÆ RÈ·yóæ†5_9R 2¼ýöÛ Î?< €n#¿Re0ŽÀ„ ðà¾שS§šÿûß„óý÷ßöš¡C‡JYÖΥΌÆdÔ¨QÒ>t¬1;°´*Ä¿X$Ã`÷ºk× ’%ÃêÕ«Ë5ëÎ^gÈÇ6´ìî1¬AÊøâ^Cbß»\«¨ë[o½UpÌ,dèšÏo:Â;‰·Ývß3D>ú¨˜[vŸÁ•wžùF#&)óÍ7ßÐÍ7ß,j;ÌFøãX ïH#8ñûï¿Î…)Z®\9Qëzè!9?Ð?˜ˆrÀÔE¹J•*k–¾¢¯½öš˜Ù‚ Ÿ5AÉÃ>Ú†i€ä܇3Ái¶K¡¿ÿÁTA¿l‚ù æ:pAþ²eËlvŠ_ô¦3΃;Ƀž~úiâ‡Á¤GB?:uê$ù;v”c0ƒ¾øâ êß¿¿˜Eß~û­¸`*K¨ßÿÏ–…/îÖôi×®]bþK~ ˆ{ƒ5Á3!ʘùå—âr€¹3ž5uq%À?iSFb¬Øº ^x˜Ô cÎQ9fåñÚo°û#X?øNL>—޳|ÞpÃÀuÀ$+Ø Ÿfrßþë_ÿ’û K—.ÎÓâ~Û5G€uÀ[ß‚õIá¢D⢙ˆ bX« ù–4X³¤W^yE|ÿûßÿ|~66PLˆ&XÂàLðZ_޳çËFD¾ÇÔ.DD=AÊØv&ø7Yk’àŠ=îlí#9e°åì/|­H¸@m²>.ÖšådµÉúYC“Cl†›°Bpð%BÖP©wïÞ}†8>S8ãY›"65}~YÈhÇÔÖ BD‚ŸþNÜ|6ÁlÇÇ2v£k°ò‡…ðP1öèÑÊç¹ß`÷›²û¿}°ä¼–à·× ¾Î{Ëy=«+žŽ»¦B{'±Y*Ú›RòÔbóNNcœÜÐlBKÑN¢88ÃmbóÐn¦øujDˆ¢Aër°3Ÿ}bÉòRTö÷D‘AòоüÓ/¿ü"Îk6‡}YÎ6~ûí79î”ÁWðï û q¾äŽ@ R…¿5U'±ü}šü€dq£@[D uݺuEÒ´ ÒC€*<´0.HXÊ Žujðxì±ÇD›‡EÀ~(BÅþ+ö[IYüËHL,X A´A˜ýýúõ#˜ -ÜXì›";Ì §é­„ƒbã˜÷ˆ°Â4EÂEMÙ&k²à†Å ùDÄÖ_µç8AP¸ñ‹©*0iÑï`i»~úé§dX® 2=øàƒÙG4‘r˜T§U«Vò Lñ`‚–“&5hÀä ÜÑ”GôÞ¦ŒÄdXxh´x˜Aëõj v ?p­€ô1Nç“` `Lñ‡ë®šL•øH–Ò@A° N}Ð ÊŒ„ öÀ° ^ãùö8èáÜå§–!˜< k9’Ͼ'‰ãD15sPxŠŒ”C@€ÉÃWhÕ´œ‹zøæ0$°y'熊&£\0¡Éù¶Díœä#ºm#uˆXÛ~²I.AœË¤k˜$}Ñd´ÏÓ"¤nô‘}–¾hcçÎ%B-‚ò?¾è¥ÜÏ?ÿ,‡ô@»85PóòË/Kÿ^zé%  X| GÛþ€ç€’Õ‹¨3›Q† RÚyã7¤ œÏîÃÓ‰ä8RÙz GÐɦŒÆ+~ daë°ÿÙŠ“ê¯Å7–¢É`»?¾úê+oŒ3¢¹è7€69¯3l#g“¬áy§²‹ë“çÌʵ‹qÇý„ºìõkÏ õ›©£É¡€ –ÇÃ>Ù<—ÎðÓ\Õ?QA âA”Ø’¡³¯eË–õ°ö&‘U›oÉy "Ѷùáþ"Ú 9Ø“¨´ÿy¸ñiÅ e§9Ë :Œèy „>²f+S±MKBÎ) ˜¶„H¢Û u›šÃ&¶<ÀØ\OÖl´0þˆh§ËX$CêþæÎ‡r²sgÞ¼yrßà:D[<QÈx„›¼L†®Pø ’j‚ Tþ¾}û¦(S†§…¤8Ž0§aj†“PO(²%œ:m˜$áÈIÆøóO0Õ‚™kè#&‚§'Á­€?›làÆî»õ‹ òþ[7k.ø²ûþ¿ O/ñÁÓû¡îLÈ?ß„@ O“"Øà«gK€¸ tŸo[±x~†’!ü<רŒ#ž¤›n<0P‚XjA“@ D æ<tNzŽ¡ ')¥§Žx;G1ñƈÚé\ DÜG7ø¼3KJñyð V‹3 ÚOE vÙÿH~¯4"Åã²ÿ°p<ø ”MNvÕéŽ" (1‚€’aŒ DZÅPÍ=­ˆÅgyÞêqñÙy—{ÔgsYSì"2>|-¯©Xšƒÿ¬î»{G²`~g·{€‰ëἬÝ3OÒ¡ug¨æC)uÁΉôqÌo…™ìÅ” õÛɱ?œùó×§Å‹¯â7`–óâž¿ÑÙ³ƒG±ß“Ì)!|“øKk:½=훋NmÊFe:žàeʶ¥µŠˆ–w.ßц\®ï(ea•Å5ÎÊZaÙ覒/'¤*=j&‡‡Sì–ɵn]‡WeÉ–LÈÄij¼ÌV/;®¹æmš81øâ²ÉNÔ¨"pæèYšóþ6Ýfí\tLdq!œ;k¨Æj"»=Pj&»hê»÷Þ«xοzõoËzíÚuˆ—F÷Üó^¢,õÅlýëÐýÈ#Â[ùÍ>ú²Ù2Zñõ^Ñ}&±_óyŠ$P™úÿ|pË/[wÓ‰€’a:‹¥Ó.¹¤,¦ DÐ÷®áKDš9s-Ýx㻼Vã®X_ea–µ‡f½³…Î;+š_0P²fÏBÕ[_ ¦s°2z<}(¦·˜;ëþû¯9¥&[¶¬â7:ô!^Å::ßHŽ9ÐbH Ú÷§zÊaVTˆ™Q0‘«µÐÀI$†NÉ0¨F¡Î;"5ÃÀ #˜R´h>^Ùºk†5Ò£QGàâvÅ©É{J†îc•‹ÉËß!©"‚ÀJ±bùù[&]x‰þøøzTΠF+4.(„˜=WV!Eg³x³fk œ81qs[ÉÐM4£\WÛ¶õ’Rð&ÊW”çÊaþ®Åâ(K§Í‡ƒ@â‰s´ß2É[<ò—Ê™ŒsæÏNå §-“” ÓZ¬žÒ¨Qu1‡­|O?}#“àÓüa¬Û©gÏïY;\n³ô7@Dù—®éäDºe`jõEu*ñ¯|„·M0·°z«¢”E§‹Flä” #mÆW MÚ!LãþýÛò·o!0éÓožxb­X±#ãÓÃB`vŸ­´ó÷£Ô´oeñ &äËJ· ªJUo-*æj-/«-”>ô ”ôá³gmÞ¼Ÿvï> 8TL&cRÒ9ºï¾iãÆ½HyŽ¿q¡óÔ’å¥#öм¶³¿°•o”rI®M¿¢ ׫‰Áaš¡dAtc­êÇOòw¢ûRþü¹hìØ§xݹ„X1Sʳiê!šòÂFª÷|iÂMQA@_Ç‹ ìQj´`ÁÜ4bÄ£íñ™gFFI m6<þ÷a»¨F› ”““ñ;ªf<æQoqîÜõüjÞ`êØ±±Ï¯u¡2±‰ÇÎQö€ç-~îÜ ôßÿ>BÇŽæO|Æ_ØÓñž7¨A*Àb­I§ß ðDý°ºm£>Ñ D‰Bˆ‹mæ/쉾@q(Áî?ŽÓø§ÖѪ±üe;M1‰€’aLKÆ U»vi8°9—† ™žñÄq‹G¶ž¦I×S9þnIí{uRu¬µ’a¬ŽLäjÚ´6/êÐLupûÓ‡ÏÒ„gÖSþÒ9©q/~E2Èš“.6©U¥%Ãt¯§é¢îì¹D#!~±øB¶\Ê„î¡ë~MJ†îcêù{÷nM—]VžxàÚ³çˆçû­Lï±™¬;I7÷¯L¹‹è”ÞhC¸í*†‹T&*—={V:ôAYÈáÁ‡Ñ©S‰™¨÷îtuÛœ#´á—ƒ² M¡Š)§+%%%ÑŸþI‹/æþ?_6lîºë.SµjU©cݺu&GŽæÙgŸ•<È_¢D Ó¥KÃڢɗ/Ÿùàƒ¤,Ä:kÖ,3jÔ(©sëÖ­æäÉ“¦k×®"/ˆ²oß¾¦pá‚NìÓ§ÉŸ?¿I²æ+ç 0@y­cÇŽÒF(¥@Úþ)¦ ¯ÌYú«¯æ™R¥ž3_=?sàb¯Ù씤²ÃnvÜä €$‘,Ž;Vö¡A¢ìøñãeÿØô”c(ë_ÞW(ÈȰ|ùò¾Ü·ÞzËäÌ™SÈ ‡*Ú¶¡!¢í©S§údoÙ²¥¹øâ‹…˜«U«fjÕªe†nØrf3Ö°ù-ÚÝ=÷Üc&MšdŽ?.¤ˆ:÷íÛgÖ¯_oج6?þø£iß¾½´±cÇÓ¹sgS¹re“ò„ 2L G{N~§«W—GWShî¾».­_¿‡^xák*W®¨.ꮹÖÏ6xð`žèþ__Ù2eʰoö”ìW©R…rçÎíËÃŽìoÙ²E~¯¸â ùÅ¿R¥þúê! ±))Çmy_¡ö|a3•WA/Î ç—3Ø4÷ùþ¬ì÷ß²Ú ;›Í¼Væb2ç7™ßeƒ h„ tå•WòÖòÇš'±©Ì×Ò ÄÚ'mذØ@Û·o§‹.ºÈ'?€±\¹r¾¶ Ë¥—^*ûV–P8úN sC(a•Ù‹½òJ3ùæòÃ*‹Ãfv<ÒÛÿ /¼PNeóØl”?Öéý÷ß'Ö¬R­–ý‹RÁ›p>ûýä7­ÿ@2á$&›Éü>ÙÙt§^½zI`ÄòCh̘1´páBúä“Oó²eˈ5>þÏĨÔѽ{w!~9‚.lrûDA_—.]ê#cd¬Y³FòÏG_#Ž %CºþýÛQ™2E¨}û¡QüK‹ }FæÈ=¸!|,*UªDlJò»úÓ’%KhÕªU<…é^d·+±yš*`ÐAJ  /ÚQ:uˆMÊTÏ?ŸÍš5ãOÑ&5$ýÓO?IˆMv!IôýbÓ”§f]&Úb¡B…„äZ·n-Ñiö1û EE5‡6 ÍÑò7ß|SDLLL$ºHí±¿R0²áùâ‡4ØÔZT0ü fvþ÷`Çú “”t6Ó#2·ï6óyÃ?Ìé#Iac¿ßÌâã›R¢¹sæÌ‘óá3DpÅ&&L)ÇDa‰‘Uœ‹ ›ÕâsC@å}'Ø€_îšk®ñå¼÷Þ{É|ˆŸ~ú©É–-›/РAâSDÛøkÒ¤‰±Aš7ÞxC¢Ûð9âÉS<ð6lØPÊ#úH8ÚAšžé³Ï:P“&µÂ?Ñã%ñŠÝÖÈwŒ¯ëQÞ㽉mñqç©:¢9Bƒ†oĤdP3U•˜n3nÜbúî»gø)þW¤4ž8±/‘¾k¿š ”ËI·¨JYÒfÝÆ34^ï›’¡×G0Úò'%£ûîû˜ßaÝËßQyŽýH¢-RDÛÇ­Çv¡ŸW£ù²E´-­šÏØkßR" šaJLôH"‘‹:ìZ|Œ¾j¾œŽîàÕª5)~(ú¢»@F,êpxóišÔy•¸$¯®TñC쉕 =1Lñ-d¤u8u(‰&<³Ž UÈIzUˆo0µwéF@']§ºÈˆd¿ýöÛ‘k Fk>v,vìÈGUª¢¬YÝ[L0gR>ª¾ï&ZY|Éz"F{±Š)BƒŽLåñU«Î3ŒÅñܹs'}óÍ7”””‹âEL¦|ù颋ºJ„ötöc´¤äØLG„kÖ¬¡ü1bãok49†Gtøðá”/_¾–PE‹eúöíKï¿ÿ~,‹S²©Ï0¦†C…Qh! d-äµ]E@ˆ)” cj8TE@ˆJ†ÑB^ÛU˜B@É0¦†Ã›ÂŒ1‚žzê© ~áÂ…Ô¢E þ&sY*^¼85lØ&L˜!m§·‘ƒÒ™3½õ2lØ0zæ™gÒ[•žA” #nf©zõêÕ4{öìˆw÷»ï¾£ ÐöíÛéÅ_¤çŸžé–[n¡Q£FE¼ýô6ÒÆT)¤Ó§OÓÉ“'Ó[•žA” #nFUlÓ¦Mü9γ´qãFZºt©4}îÜ9Z¶l-Z´HH·lÙBH&Ú¶mÛèСC¾c‹/¦9sæÐñãÇ}ǰqìØ1!½ýû÷Ó‰'hóæÍÉò±säÈ:|ø°´÷Ûo¿æºÙíh÷îݲ»jÕ*š;w®Oc²eÐ’1Fˆý8uê=ýôÓT·n]‘Û/½ôÍš5‹.¾øbzå•Wl„òþù'ýüóÏ´uëVßq‹òׯ_O}² 8€¨ É͘1CH׿Ù_Ô‡6ÑOÿ„c¿üò Ö`…/ x£»ví’¶xàzçw|ùé•ÕWn¸‡”¦C€ob¼~aŽ=–dL*R¾qãÆò‹s¯½öZÓ¤Iß~ýúõ “‘¹úê«M£F|õîÙ³ÇdË–Í 8Ð,Y²Ä”/_ÞðÜF“%KS¦L³råJ);}útS¸pa“•_ Aù+¯¼ÒäÍ›Wòºuëf.»ì2ÙnÛ¶­©Q£†á7LŽ9¤ý:HÞ¸qãdŸM[_Ê2ÁH>þ¡'žxBö§L™"å§M›fØ–íÉ“'ûÊÚuëÖ™ï¿ÿÞ0±&zéä´òvïÞ]ŠZœZ¶l)}NÅŠ3LؒϦ·`–3gN_þ!C$‰Ô´oß^dHHH|&5+‚™:uª)Z´¨ô ØU®\Ù0áÖ åÈÓ§OÃÚ¬`‡ÏGV_Ã!6>üðCSºté%4ËÀtÕ Ý{®D½¦ ˆ6Ã7Íœ9SL2h;#GŽMK»víDëay¿ýö[~ã#+Ý}÷ÝÔ«W/ñÅA³Ãy%J”W¹ ©=øàƒÄ„'š'Ìb«áê4( 0@´¬O?ý”ðÇdå+Ê7¨h¢k×®%h™/¿ü²/þ4&qÙgbs¿(‹tÉ%—ȯóÝ~ûíÄ$Do¼ñ†hfL¢òÉ'ôæ›o“•ïh™ûöí#&xÁhìØ±¾<¼  ü‘ü±ä¡?Àý€öˆWÜ ™.X°@ê>uêÔ‘~mØÀ¡ç60á8eÏž0¦½3¯¬ÎºtŲ̂›1‚@z5ÃùóçK éð¥a8°!ûLn²ÏÄg˜ 4›ÿüç?’wã7&ÙîÚµ«É•+—á÷¢ “‚h’Ð&çÍ›'ç3FÊáßk¯½T3¬]»¶¯6*Uª$‘Õ ­¶‰<´ 4µÔ¯_?‘É%dQhwVµ¡¥B{µš!al–hÐ<òˆìã\ÈcÓG}d ,(»Ð„ÙD7ìr?Ô ºgÏž¾z¡ÉÚÄ„j&Mš$»L†æ‹/¾m§fx>²ÚvBýªf yªºð<‰™*J–,)²@AªZµªüBcBâá'6å$à0zôhÑŽ 1A[DbÂmh–—^z)Aã‚_ÏúÝêÕ«'åðÚZ°Ää—,‹MQ²š(2*V¬èËGpaïÞ½¾ý`ÕªU“¬‰'¦(¦³h¶ðc"¸rùå—'+\  Ú„6mÊ;·øZí¾ž}?þQøbÉÆ›ÚT¨P!ÑFáDºè¢‹l5Äë;èØ€¯ð|euT§›.  f² ÆJ0wÃI ?öÃÑСCåÝçæÍ›Ëi ö¯‰i‡  kl˜°$l‚),íØ±Ã—‚úý÷ß“‘§3ÁˆPÄj+‚yÌ>H ŠØcö÷ÝwßÓ5Ož<âEðÄ&`Ö;Û…“}pØóíï…^(䆃ýëß¿?µiÓFÜ (ç œÀ¬fíÛžžâ2œ¯¬)*Õç…@xwÏy5¡'Çð¯qðƒ^}õU¹™Ù4í8ø kÖ¬)Z$Z"n\øuæ@‹Ï—¨o Rø×à¹"Š|Ûm·ùв‰-õ`º ›–Ô¬Y3_›©d}x 1øù-Uª”È‹)4ˆƒxð×±cG©£S§NRê‚”MziZ.Hë|5úõÖ[oQ«V­$ò _!ü ½{÷™P®K—.âE›ì– <<€ƒ3EJVgºRXÎz ê¤×gÈ$&²ó'þ5øÈxʇìÃggüj|™žhžNbàÇB4‘`ÖÆ O±‘|Dsá{Ã9¬Õ6™“ù Ù4•rˆ&#’jË"¢k£®ÖgˆsQ|iðWòôŸ Á¢É(ÀÃAñyâ|üÁ§ÇßùˆŽó\DŸœˆ 3ÉK¾õZœp°iÓ¦>c¹råÌ|à« çåÏŸ_öYÃ5wÜq‡Ô‹v­oÕvp’|œãô[rpJއÎ;‹ï笶ÝP¿ê3 …Nмéð#iŠ1ÒJ†éŸ5)ÃóóRœ Âó„êŸ8Š*Óo@® ;µÆYdˆ©+¨‡ÍUƒ))6Y2D¦¤ ±çùÿ²ékx.¤aÍÑðÜJÿl™bƒé6r€ÄÜLì”¦Åø'ö/ž?i8’ìŸexž¡¤ü30(R²*ú£rº®gÈùÌ”`rbb0Lb¬wçŸ|ó?P‚9hjK ²¨“¡ƒ%ÿ K°rŽÃtÇ4Ÿ` ~?"‘Xsö™¿þõóüK²ÿÍ òF[F%Ãh@€öñ¶Åù¾1 Ú¸:´woŽZgç5ømš¿Ö?Œ«ºÐDöï“»Pe\W¡Ñä¸ÞøìÏS¦Zµºó"²'èÉ'oà&þy/>{¬½Ê4šœ k.#0cÆ!BT;zô—k×ê2+@ɬ#ïá~»}©]º»w¡ùó7z¸7*z¬  d+#¡r„…ÀéÓIôÓOK()霔OHÈFãÆ-ë\-¤„B@É0:šsL™²œ×.LòÉ•˜x–—üZÄ ´þE޾ ÝPÒˆ€’aÓâÑE`̘E>ÙJräÈIþ®Ë?_á³ÇõWH J†iAKËF£GOñ«ËÙD>›LŽ„„¬¢&;¨;Š@P2L#`Z}†µÆ3õ¨"J†a€¤E¢À¾}ÇøÛÏë8P’R3„tÙ²eÕ9‡Ñ&OK dèéáË<Âÿýï!…ÅT›_]IGŽœÊ< hO]E@ÉÐU8µ²H!ðõ× ‚j…¶MâÏ?ÿó™P{\pP2 %-U¶n=ÀßBÞÊ26‘Â}û­.ëåÄC·ÃG@j+-CŒ³¿M<Š6n|/†¤RQ<Œ€.ÔàáÁSÑEÀEÔLvL­JP¼‹€’¡wÇN%WP2tL­JP¼‹€’¡wÇN%WP2tL­JP¼‹€’¡wÇN%WP2tL­JP¼‹€’¡wÇN%WP2tL­JP¼‹€’¡wÇN%WP2tL­JP¼‹€’¡wÇN%WP2tL­JP¼‹€’¡wÇN%WP2tL­JP¼‹€’¡wÇN%WP2tL­JP¼‹€’¡wÇN%WP2tL­JP¼‹€’¡wÇN%WP2tL­JP¼‹€’¡wÇN%WP2tL­JP¼‹€’¡wÇN%WP2tL­JP¼‹€’¡wÇN%WP2tL­JP¼‹€’¡wÇN%WP2tL­JP¼‹€’¡wÇN%WP2tL­JP¼‹€’¡wÇN%WP2tL­JP¼‹€’¡wÇN%WÈîb]q[U¿~ýè¹çž‹Ûþy±cÙ³ „„”%Ëû^?®e>vìåÍ›×s}T2 sÈòçÏOÏ?ÿ|˜¥µ˜"ùX»v-9Ò³W2 sèråÊE5 ³´S2¸G¼œÔgèåÑSÙEÀ5” ]ƒR+R/# dèåÑSÙEÀ5” ]ƒR+R/# dèåÑ "û¤I“Ó"•>L/¾ø"ýúë¯ÉšxóÍ7©OŸ>ÉŽMœ8QÊbºEïÞ½iúôéÉòÃÝÁÔ¦Õ«W‡[<ÝåN:%ò¾ÿþûdŒIVÏçŸNÇOv,£wþøã‘϶ûúë¯Ë>Ư½öM˜0Ž?.E~úé'úè£lqý €’ap¼šµuëVZ¶lYÄÄ/X° mܸ1±mß¾~ùå¹÷íÛçk{êÔ©´mÛ6Ê—/h}yiÙX²d :t(-§¤«lRR-X°€@" g¯Y³Æy(÷ñ Zºt©¯ÝE‹4+V”¿9rȃ°k×®RxŸ>}ÚW^7‚# d›tç9rDnÜsçÎѪU«èàÁƒRÈòÎ;}uïÞ½›PÞ™öîÝ+¸=†pùòåtòäI{H~±Òà ‚ºwíÚ•,;Ðp³à&GÛ J›p£8p@v·lÙB+V¬HFVÐŒp#¡HgÏž¥3gÎÈöå—_žì¦äΛ0½ÛH8ò¡,æi^sÍ5²>¢î£Gˆû΄s!+ˆ4PBù¹sçæ¶Y ²ôÉbb÷m¾³üâÅ‹…Øí1Ûú1xð`ÁÖ ô 9þüóOiËæÛv€ÆzÆ ’ñ©Z™ì9'`h Q®Œs tÅWPÇŽå¯{÷îÔ¶m[¹^0¦M›6¥Ç{LN u-ØzCÉaËÄë¯Î3ŒÀÈ~ñÅ4mÚ4Êš5+ì²dÉBÍ›7MÊj7ÿ÷ÿG÷ÜsõêÕ‹²gÏN}ûöIãO?ý4]|ñÅÔ­[7Ù]pÁôïÿ›Ê•+'‚ /ê¯R¥ áâ?~|²¡^ÜH d'nÂ[n¹ELªyóæÑ«¯¾J—\r‰!òP7LÄbÅŠˆ¢K—.ôá‡Ò¥—^*2Μ9“Æ'saéÒ¥…ëÖ­+d 2D›6mù,>úè£ÔªU+º÷Þ{éÉ'Ÿ”¶@$ EçΩY³fòpxùå—E&t¦ZµjÉúôßÿþ—ðmdZ»vmzë­·äôÀÐÛo¿Mõë×§±cÇÒСC©gÏžtíµ×ʘ|ðÁôý÷ßËß°aÃdŒNœ8AõêÕ“ólC<ò}öÙg4hÐ ‚,þ X‚Üñ°Ë“'áÃ?L÷Ýw­[·NúÌ`Ö"a,¡µA“CªY³¦hpûÉ“'˸`qå•WÌ_ô \g$Œsj©|ùòRäùã?Jü±Œ_°k'„’#µ6ã!_5Ã"4†6mÚзß~Kxr÷ÝwÔ¢E ¹81y)R“&MD³°Ú#ÈäÖ¸qcñO”`²}óÍ7T¤H¹‰qÓ¼óÎ;TµjUúòË/¥œ=?Pw@’Ï>û,Yÿó·ß~óÉB8´Ô!C†H^É’%…˜ñ‹T§NºóÎ;eÛ´Èóûï¿È¸áAnÖœ³eåDÇ?Fÿþýé믿Bþá‡$òmÞ¼YHlÔ¨QùlBðÝÁ?RƒÌ dˆ²‚@ì¯%$;d¼(ß¡CÁþU<ЛÐ&4*>úæŸ0&ÐZAÊØyB§öŽWÒ0n ~È M}ÅC Z8ýÝwß•‡®Ô·~ýz1b„4 í´R¥JBÌÓ>Lò@ƒ†–Œ¿Ñ£GË xñâòp–Ãv°k!59üë‰Ç}%Ãj‰%„8 *Dÿú׿ø=ں뮻äM<ù­© b„ D‚F B_L*n‚Òã?.¦!Ì©–-[ÚA9hbÁR… è†nvP®T©R>¢À9ЦræÌé«Ç’ê…kɰaÆtÿý÷K3 é²eË €D@ KüP!7 råÊ ¥[o½U´¾¢E‹Òu×]'Ä€rsæÌM ÚnjhÊ6Íš5K0¼é¦›ädlРh±8 Ïj›hf¹íÈùÐÐ ÿÏ?ÿ,dW¦LñB[s¦Ûo¿]Ú$LUgÂC ÚHò‚Ø€´L›Úµk'DŽ6‘ õ¢]»1ĸƒœÑL{Èí. hž¸n0†Ðà“&o¼ñ†üáAÚ$ªþ)صJÿ:âu_Íä,´8›²eË&„sÊ?ô®ºê*1¡q¡ãƅ怄› ¦´‹O>ùDn$äY-Ðy󂃥 /¼0YÈÉÖ KvØF^0ßò Zä-P €Ü¬¸Ñ‘Ðnf$-Xr’$È&"þ@bðÙä4 ávÀ> 6k+3°„ÆBQÁl…fŸ+´uäÃ4}å•WS¸ ±ÁŒ…†æL ˜î0ïýß¹ÅìGR' Gÿd¯Œ?ˆÉ’ü”èÌ|g–èRõêÕ}YN,ìA¸`¢‡“‚] À)áÔe” #4Šö‚§zhðÂTEÂ.\(šüvÀL‚ 7'Òþýû}&¤Õ4µçŒîBó@]0ÝmB=Б@D¡ˆÕžƒ_!L;ÔéÔX ÙÂÔ…æÌDÆù0q@³±A”ƒ–if+ˆÄž?˜•ù²Ë.#Ôñ¿ÿýO´º5jYÃÿ­å qíØ±CÈ$0þ|´ ˜»88Ρ‚ ¡¥b f64LôòΞ=ÛG^R€ÿYùì~ _ôä óØ>,Ñ_½,á ë*pb¨¾ÔŽ»З`r¤Vg¼äÿóx—y°W_}µDa?ýôS!\˜H0ãàSƒFƒ›¢œÐ ‰À¯„›¾7hCÁÈbÊ”)¢=á&†YfM5œƒvQÏ46ÑáïCð þ%ÌQƒù†„y… c› À íh¶A„ %¸Òš€|š˜ª’wjef¸•¾7ãõ×_/Í@Ä\èˆò ±oûŒ›>WX@ªð½âH-PBtÚ³Åe ub p|‡ÖÇlÓ’€5´aô®˜ÜØÀ‡ °páÂâ‹Ä£é§ie v-„’Þï¿J†aÜ€ö©Žê±í¿ïläÍ 7üh6A#w÷ÝwÓm·ÝF{ö졇zH4˜y0£àׂ£ßš`ö\§VÓ¤#æÎA³¬U«–-*79êv "AH a€ð‹“Ø­9ƒ˜A@03mB heÐtmrÊäÜF>öí1ô2C[Àήˆ¢9!X€L`ÜÈ6°ƒº,éA$«ÂDF‚ܨ"DùÛ·o/þ8K¨(ceÁ6Ææ²3A. Æ Èâ‚nBÀÁ-<ÌiǸ"`‚1v؇fˆ1{á…DN§l©µ…²Îk/صJŽÔÚˆ—ü,üdL>Í>^zæb?`žÂ—‚H`¤‚#xòCCp&h +W®$¬)kóáÔG$Ç¡1€ðœd…rŽ}8Ø¡… Á$8Þ1µZ#´;Ü|¸¡c!áÁyA‚þý†|ðBSC^zeFhD`MÔ´ôc³‰'ˆbSÌ›„†±JkÂÔÈ‚¾ø÷näáL{ §½Pׂ=?”¶L°_D³¡Õ.î:C}†ÁF6ƒŽã†F”&ñSO=•¢U˜š˜G(AcA´6œ„z qKþŽõ`å2ê8´™ŠüVE°5PÐ"Xù@Çq>"´éMÀÔ‰?4dü¥'<œ1gx øÏµtæ§u;ÔµJŽ´¶ãµòJ†Q1˜ pÂÃl³ÓEÒ#"³Î¨£­ÓF‚½Ž2€)«)s êZÈ„ɡñ‘ÜŒ0“Ã#æŠÀ”ø.af#Ú ¿|œ6kBÃä„ ³.¨^zé%™Ðk²zM5“½6b*¯+`z ^„ß­uëÖ2>O¬ê‚È'|”±˜Þ{ï=Ñ”œ)ŸªnóX©Œ—IÍäŒÇ<.Zļ8˜øøÀüBBÄo@ óᬟ åðŠ VØh(Ž#²‹@"¦ð[Ú‰Û8Â…¶‰é5ØÆ¹Îè´ `à¾;øÂlÂ12È>WD·AÜÐ á6À|;È ÒvúÓ#«mS½€’¡·Ç/jÒ# §%B+Þ†À¼=Q1âQPç¢ ÁP‹5€È è˜{-¤5`Ài&.ÞÆÁ\H[mAòð ¢¼ Bh± hLŽFºX¡ ¼îˆy„é•Õö]½€Î3ôöøEEzhix×Iµ‚ š Ãx›šb Ely^ Ål>4D˜°úÞ™1c†daÒ4Ú!@æIÂäÅ1LEÁ/Î…V£q&7duÖ§ÛÞC@ÉÐ{cu‰Ãõ±¥¶¨:l±ÛI¼s ­o²€|1 o·àÍL¢¶sð°øŽCcD»5’ù0«±Ø¸õvˆ²Z™õ×›¨™ìÍq‹ªÔ0Åb xk™ 1bÁ¼í‚3ü|Î7 œ‹*à¼@‹58ësN¨†&s¤‡„·6œ«QC9Z ­Ço¾ùf»ð× YV¬=ƒ€’¡g†*¶EpïÃŒuN£ÁûĘb…OS[T=²Á”`½ ”o-€Ï‹\ aȃ…MA°0“m‚ SºS§NöPŠ_7dMQ©ðj&{j¸bGX|xx_ hVx¯båHR[T!½½Áëj*T…àsD›Â»Æ˜`m@˜½ð/buÈYmF0š#æH:S¤du¶¡Û±€j†±=>1+^íëÑ£‡,+†H-´8, ’sQ¬<+xÛEüµ>ìû“ŠþþgóAjX¼a»œ¦ä@˜äXu¾C,„E$좴ð3"Í_ܳÉmYm½úëô ”0ÆJß@ ó¡iÁDµ«Ë8ÏÀT—ó]TÁYŸÝÆ\B˜Ãø9;ç¢ æ BtúqS|P6Ðâ ‘’íÆ{Ò7Pâ}„µ!€&æ¿|˜ÿ ˜èœØìŸŸÞ}Z¨Å'ìnÿúóçÏïÈ·)Y} èFÌ" >ØLP2%ÃŒD[ÛR˜E@É0f‡FSŒD@É0#ÑÖ¶E fP2ŒÙ¡QÁE #Ðy†a¢)˜Ç¦IP#€OÎz9)†1zX’ _bÓ¤(ÁÀÚ“X=s;½˜tÒµGMeV·˜¡>C·!ÕúEÀ“(zrØThE@p%C·ÕúEÀ“(zrØThE@pÿ'×§â¤ošëIEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1MutexFailed.html000755 000765 000024 00000032237 13515046515 025030 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::MutexFailed Class Reference
MySQL++  3.2.5
mysqlpp::MutexFailed Class Reference

Exception thrown when a BeecryptMutex object fails. More...

#include <exceptions.h>

Inheritance diagram for mysqlpp::MutexFailed:
Collaboration diagram for mysqlpp::MutexFailed:

Public Member Functions

 MutexFailed (const char *w="lock failed")
 Create exception object.
 
- Public Member Functions inherited from mysqlpp::Exception
 Exception (const Exception &e) MAY_THROW()
 Create exception object as copy of another.
 
Exceptionoperator= (const Exception &rhs) throw ()
 Assign another exception object's contents to this one.
 
 ~Exception () throw ()
 Destroy exception object.
 
virtual const char * what () const throw ()
 Returns explanation of why exception was thrown.
 

Additional Inherited Members

- Protected Member Functions inherited from mysqlpp::Exception
 Exception (const char *w="") throw ()
 Create exception object.
 
 Exception (const std::string &w) throw ()
 Create exception object.
 
- Protected Attributes inherited from mysqlpp::Exception
std::string what_
 explanation of why exception was thrown
 

Detailed Description

Exception thrown when a BeecryptMutex object fails.


The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1RefCountedPointer-members.html000755 000765 000024 00000021777 13515046515 027657 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::RefCountedPointer< T, Destroyer > Member List
mysql++-3.2.5/doc/html/refman/namespacemembers_func.html000755 000765 000024 00000006071 13515046515 024024 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Namespace Members
MySQL++  3.2.5
 
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1SecureAuthOption__inherit__graph.png000644 000765 000024 00000020641 13515046516 031075 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÆ·Iå!9sRGB®Îé![IDATxí]˜E®M$ÉH"AÒÄSA ¢ *¨QQAD% *çˆ Šç Œ€]`— 9眗 sý—öììÛ7owáí 3Uß÷vfº{ººÿ®ª®ª™÷6Â0Œ $$ɈPŠa$+‘ A@ HÁ@R" Š‘)dǼ!í­0TÊ6nÜH¿ÿþ{¨ GÆáG*V¬H•*Uòc~î Áw¨Ò‡~ˆÄ€|ˆAïÞ½CUìx\!½cÀT¨P°s9*Uª„üd$øù%’QŒ` .nÜ8zóÍ7ýØ£}W£G¦Çœ (@¥K—¦fÍšÑÏ?ÿlƒG͵k×èäÉ“fiÛ¶miâĉæµÛOD1ü([¶l¡eË–ù±Gï]uîܙڷoOÑÑÑÔ¯_?êСíÞ½›êׯOÇ÷~“GéôéÓ)_¾|tõêU®¹pá]¹rÅ£•{/¥°€ÇŽ£7nP\\=zÔ\ô¥K—Ò®]»øúÒ¥K,H—/_6Wç.-(h Œ'ïê‰Ù'û÷ï§+Vp[ð;~üx²z\€7ú4cÆ êÔ©½ûî»ÜÇc=FÝ»wç¾}ñ@_Ìx1‚š4iÂ<ðçüùó´xñbZ´h;wÎ,Æ;úÆëׯ§ëׯ›õŽ9 åÇxò­ð¥yˆÝºu3Š/n”,Y’Ÿ–GFFo¼ñ†¡Ü óéù?þñcß¾}ê¾úê+³o%FTT”qèÐ!cðàÁÆm·ÝfäÌ™“ï{òÉ' %<ÜV ¤ÙwîܹråÊíÚµãº^½zwß}7ŸgʔɨU«÷cd˖͘4i×M™2…û¨]»¶vJ˜xžhþüù\¦„’¯_{í5#þü|Þ¢E £P¡B†n¾¶þIHHàûFŽiøâ¡žç¾˜³2ŒÛßÿþwîî—_~aÌ€A–,Y˜7îc¬IÙ²eù^ô¡v*n”ÊŸÊ•+¡þäÛQ;¬•.êÚµ+[ĺuë²k¡”ƒÎœ9CÏ=÷5ŠŠ+F?üp2Ÿ:66–Ð^ [ã>úˆïQBB³fÍb »ʕ²UŠE[·n[¯„jÇŽtúôiŽ”€³%Ö‹-ÊuÛ¶mãåƒ>àª;zôèA8‚4h@]ºtásð«Zµ*eΜ™¯­”ÀqùÎ;Íbo<}ôQsîØ™”!1Ûc'hÓ¦ Õ¬Y“N:Å<ðÀÔºukÞÑpÓ¦MÔ±cGÞÕàÊÍ;—w[³œ8N1 LðÁ•…eá‡)+GÊúS½zõLwªU«V¡‡KW.Ë/¾HÊB„i̘1„`ZYF‚ÿ]£F RŸ”å'0Ž/¼ð•/_ÞV àûcP©R¥Øø  ‚r;‰’tȬ .lÎÁ)²69räಈˆ3^hÞ¼9/üäÉ“ (ÄÓO?ÍePˆ"EŠp€‹# ñÂÞ½{©Zµj,,šI‰%ôiŠãwÞi–AQAڷǹµãD¼’!e·K!þ€¿6šÒËsÝsÏ=º Ò˜êX cÕÜ@N‹3§þ´P®\¹¨qãÆìRÀ‚RdÏž>LpEfϞͮv‰U«VÒ£ $ƒ$ëÞê¶$«P4‹üƒ´{„ský’%K’Õ¡ÞÕ©S‡`Õ½e¿ŒCP6lhÞš^*~á{×­[gö±zõj>×.WZ16;ÃÇ)FzÖ vهƽpÓGæGŤ‚iÞEà¾hWL·ì_#5êË…Ð1ܧ!C†v뛥ps@11†Fñð‘ö…;ˆøôã?RÏž=ùY(•``¥ÆÎ†8oý;v,Ç&Øå4ÙñÀGßÊ3”ÕO‘.M ¤|1Oo¤²U†r¡ µ{ÀÉŸéZGíé±Xp¡fΜÉ©×_=Å­°ö=ôPŠrÜ~ûíüñZéQˆX;‚5¾YB¿êYIª·Ûñ@ÆÎ[Ú"V©^½zª};µk>=L×Ö,Kzß[ö–>EzÊåPŽzí¾xks«eàq«c åûCú×ú÷ïOãÇ—¯¶†²ÝÄØ×àõ<, UruV*TEÆ|D1‚¿<‚ÄÄËê5“?^ ‘!¹z!cà5äùNqqÇTZ×P±GÒSe§Îï­…:…¼bà¼üçtÊ—¯™šb$ $_ …µéà; ÄNžLTOÄûòè„„þêÈ?Þí oáá‰1¼ãÐÒiÓâUêVí‘ê s|@y 3ïˆbxÇ% ¥&ĩ݂Ô7é ¹PðÅò8pŠöò×KÕkêŽý´gω JØ‹bY&O^£~Ô i¢££Ô ƒk‚<*aŸ´"‚EPˆSߺKzíûÚµëâNe%’3ÅHŽG@¯¶n=¬¾Ï_ IR `×®cê5˜¤/9tPŒŢ ÀЉ‰J1”‰;•–€ˆbîäÌbcW©ß¦Jù›L(ƒ‹%<D1‚„ýš5{Ôw¾OÙr?rä,ýöÛ.Ûz©ÈXD12_ÛÞá*ys£ô âNi$‚sÅîx7iÒj¯n”Ü©Ÿ~Z­^,¼¡‹ä@D1¶fµté6õÓ<‰üü"S¦(õ# Q¼{`—È”)š?8?{ö"ýú«ý/êþäèBþíZÿO9ø=fÉCýû7M6ÛØIZ´¸/Yy¶l)Š3Y¹ÈäíÚ 5ývìøzÐwCý¶îKé¿Yîð;âJùRéÐ ˆb8ae~G@ÃïJ‡N@@à «(sð;¢~‡T:t¢NXE™ƒßÅð;¤Ò¡ÅpÂ*ÊüŽ€(†ß!•€€(†VQæàwD1ü©tèD1œ°Š2¿# ŠáwH¥C' Šá„U”9øQ ¿C*:Q '¬¢ÌÁïˆbøRéÐ ˆb8ae~G@ÃïJ‡N@@à «(sð;¢~‡T:t¢NXE™ƒßÅð;¤Ò¡ÅpÂ*ÊüŽ€(†ß!•€€(†VQæàwD1ü©tèD1œ°Š2¿# ŠáwH¥C' Šá„U”9øQ ¿C*:Q '¬¢ÌÁïˆbøRéÐaD_|ñ…¡@wä'&¦€Sç÷ù矇‘¤FØý¾ûlØíæ¿óÎ;a7}‰1ÂnÉdÀ@@#( °C@#ì–LD1²ð;­Ó§O§† &û¼öÚk4oÞ<¿,Tûöíiüøñ~é+µNFM?þ8(P€J—.MÍš5£Ÿþ9µÛÌú .йsçøzëÖ­ŒÉ‘#GÌz9IŽ€£c÷îÝ4{ölºçž{øs×]wѲe˨Aƒéªä%]-^¼˜vîÜ™TAg;w&(att4õë×:tè@˜[ýúõiøðáiâúꫯRëÖ­¹íõë×éüùótãÆ4ÝëÆFa—®½™EúøãÍÛ PåÊ•£©S§R:u¸²aÃÚ¿?U®\™Š/n¶Ç Ê×­[G… ¦jÕªQDDD²z}qíÚ5Ú¸q#áXµjUŠŠŠÒU|LLL¤U«VQÙ²e©H‘"fúÏ—/]ºt‰Ö¯_Ï;BÑ¢E¹~Á‚4tèPêÓ§ 0À¼§K—.Ô¸qcêÞ½;5oÞœð|çÔ©ST°`AÚ¼y3>}šªW¯N™2e¢'Nx_¼x‘R‚IÊ"sÝO?ýD5"%Ä|Ý®];R»Á…™œxt…b ß\¤-?ûì3Rþ6»p£àNLš4‰”MƒæuÆ‹ŠO>ù$gtB–gåÊ•´páBjÙ²e2Y€«Q©R%Î!sƒ¬PÛ¶mIùþ¤b¶®Øu`yUlC½zõâ,35êÔ©gÉ7nÁ=ƒ[öÁÐØ±c©G¦b¢/¸R+²NóçÏg7åpƒ 4¨³RZçh½ÇçÞ‚¥P-Koð­Òœ(ª…ä#²Q%K–4ÔC>C=ìâi=zÔxðÁ¹^ /³cÆŒ1!@6 ÷錌R C¥=¹^Å-ƧŸ~ÊçÈ)1ù!àTqׂiŒý(e4T¬ÂÙ®¸¸8£D‰Üj¦àŸ#G}É92Az8¢~ذaf•BÖ õî•2êy·ùñǹ kðJ_sToÆÈÄiRŠÅýÏœ9S¥z ÇàÛÑY©TWìÏH=ª`—³BÈ(y’Š)XÈÕ“bϪd×j0”[f¬Y³ÆÀ¹'!…¾4© ÝP±„¾Lõ¡DIíH)Ò¥Z1ÀwÇŽ†·±"5­v¯|Ò:G¯7§RŽŠ‘<T¦ÆÚÀzb€‡oø¤F¨XÛ2cVB“B†LYïTokçðÐŽÒ:G»ûVîŠÃi‹æm>låF¥ê½µ•²Ô#uŒÂ¢…Š“øYJX 6 );F,’ 1ðˆbs¯UüªÞvEÂG(Å…UPcX±b'-]êì×,Bê4 #ìbŒC‡92ÀÌ»®Z°HõnnšNe,a¥x O¿~‘±°¶wõ’,õìÇ®Ôðᯨ÷¨¼ß#°£ò/7|?%œ(¬_ðÁÇi4oÞïêeÃåjZêMÚ ê-]ûg!N›{¨ÎGbŒX™I“V«w™¢x§À¹PðÅò\¼x…æÌY¯¾>z]½j~C½ø÷»zÁðrG%ìE1‚,³goPoõ&}·áÚµëê-àõA•°Å² Lš´J}*)ØÆ{['® ò¨„½(Feàôé ´xñõ}¤Ÿ±Áù’%ÛÔ©ƒ82a-ŠD˜1c­-÷iÓâmë¤"ãÅÈxŒm9ÄÆÆ%ûÚ¬µal¬¸SV<}.ŠhÄÿäwèЊ‹Ûåõý(ü\|üõC §‚4:a+Š$€«mLL$M™"îT–G½œ#&LˆSA·ýÛ´W¯Þ  ~ ÊØ„)ÞZ 8;vS?ÊvÐ6¾ÐÚ¶íá#xÂê]©ÀÓ1׮ŜO_<øÇÏÚ)’ô«ƒx¾‘°W½V0c"½Ú"x°­•Š€!бãwüJȨQ/Œ§0²G@\){l¤ÆÅˆb¸xñeêöˆbØc#5.F@ÃÅ‹/S·G@éq1¢.^|™º=¢öØH‹ÅpñâËÔíŰÇFj\Œ€(†‹_¦n€(†=6RãbD1\¼ø2u{D1챑# ŠáâÅ—©Û# ŠaÔ¸Q /¾LÝQ {l¤ÆÅˆb¸xñeêöˆbØc#5.F@ÃÅ‹/S·G@éq1¢.^|™º=¢öØH‹ÅpñâËÔíŰÇFj\Œ€(†‹_¦n€(†=6RãbD1\¼ø2u{D1챑# ŠáâÅ—©Û# ŠaÔ¸Q /¾LÝQ {l¤ÆÅ¤øJ+V¬ Aƒ¹’àLýðáìêò.|>8p1×.]ºP­Zµ’!âðíÛ·bccéá‡NÖP.2ÈÈ£Ìà臌e&½›,^¼˜ž~úéÔCßñá‡êS9 ŽEà±Çó:7‰1¼Â"…nG@Ãí ó÷Š€(†WX¤Ðíˆb¸]dþ^H‘•òÚ*„ çÎK›6m"¤Ü2’.^¼HcÇŽ¥åË—Ó¹sç¨jÕªtÿý÷Sݺu)&&&#YßTßçäÉ“©aÆô裦¹K—.Ñ7([¶l´{÷núâ‹/¨ÿþ”+W.Û>þ÷¿ÿ²;[·nåûJ—.Í™žêÕ«ÛÞc­°òDVtèСôþûïSÞ¼y­Ízö;€Ü°aC†ƒöÃ?‹Ý¾}{Ê“'}þùçôå—_f8ï›a€”{\\§ÞÓsÿgŸ}Fä[.\¸@k×®¥+W®Øvù‡¨¨(jÛ¶-=õÔStøðaz÷ÝwiÊ”)¶÷Y+¬<¡”0Bê‘nyÇh'Ož¤üùóÓQ•„ǤJ•*ÅVgÏž= *,Htt49r„²fÍJ9sæ4§|ìØ1.Ëž=;—Áê\½z•û@[MèwÇŽT¼xqÊœ93>}š *¤«ù˜˜˜È€fÉ’…w‘ܹss{T¢OXzX¡½{÷Òùóç©lÙ²¦µÇB`.°þ‘‘‘ܾƽS§N¥çŸž^|ñE“gDDÍž=›ºuëF8ÌÜvÛmf[œ`|›7o¦|ùòQÉ’%¹}Ÿ8q‚ (À|QxüøqžcŽ9ø ŒïСCT¦L¾Ïf||<Õ¬Y“w¸ýû÷S±bÅRå¡„õ¾|ù2oøóÏÁƒ¹ ˜éuY½z5ïJ­[·¦—_~ÙlÞ¼ysêÙ³'ýë_ÿ¢Úµkæa‡ý™3g’ñÄ8=w(`€µn˜¿Æå%¬ÓÎ;©H‘",‡æ@náä–cûöíÔ©S'ªV­%$$ðP*W®L™2e"ªX±" 2„>úè#VlÏ wË–-é­·Þ"ÜÓ«W/Ò@Ý~ûíôÏþ“J”(ÁV«wïÞ,Xà@¸gÍšÅýè?èŠuêÔ)VÐk×®±+Ñ£GZ¹r%õéÓ‡ªT©B7n$Ô¡oX;(õš5k¨{÷î4xð`ž‹õº\¹rÌ;sµiÓÆtS àè ®¬'ù•W^¡^xÛ›~ýú¬0xca)±¸o¿ý6M˜0Á\TÕ}÷ÝG¯¾ú*uíÚ•…–»ž/ùâfsæÌaÕ~î¹çhÞ¼yÔ®];ænÇÆbÙ²eÜ®oß¾ôæ›ošçPhvÊaÆñø±ƒâºU«V\§ÿÀ¸¼þúë¼³.]º”ÛØaÿŸÿü'OÈÓÿû_6|ß~û-áà åúË_þBŸ|ò Ïí°†ëÖ­£ëׯ³1~çw¨Q£Fz(7}ô›+«†íƒ]¿~=[h,6‹µ^½z< .è×_eí‡üÝwß±`lôË>mÚ4¢O?ý”­;ÀB;}¿·YCao@8 P,Ž&(ÜŒ3èûï¿§³gÏÒ×_ÍUØ} ¤z²^ÃBÂEÀë2Mš4á~ÇÇ– e…??þ|^4ðÆ.2jÔ(Þ! L˜ ¼1”?^Ëç‚E÷Å@!Á˜Bhï½÷^V Ÿ þ¬„ÂÔ©S‡Ÿ>ܼý`¬Ø0nÄ ¸±0RÚP˜7¨ì˜Pìrš¼aoÇ÷@ŽÆª¸ëYÀš8p€ÆŒ£»$fÄ$5½éÓ§›u·râ7Å€ÕÀÄkÔ¨ÁãÖÂëklï<ò» PТE‹Ø2"°+Z´(mÙ²……;ÉW_}E:t mÛ¶±ÏÚ´iS*X° ·C@iGpQð4îÚ.\˜wÝ~0\1ðC½Þåp +§Ãóʯè@Z°`Ýu×]Œ¶} \ºß~ûîU‹-˜7x`÷x衇ô°|áŽÀòÃXøâƒN°³@‘€âC1p !»Y‚«W¯|ùò|ášàviسo쌰âÚíA½öž÷êë%K–°Y¿~}.š<øàƒ¼»ë6O<ñ¸Yx ŠãºeWJBgàF€0 – €ƒÅÁ$ ”ØQ@P,¸QØ-FÍJ…:½;ÀÓ±#¸(VBœ¡û@¹|œ£î & æx„øH\Ù“ pV‚õÕä‹Ú æÁ³Ü)=vk9Î=ùyÖCè4aw@,ÖØ5¼v9´³®Gz±Ç\a``ä4Aάk†5Ôƒeô%q¼ÅÞ´¤Ö Ü)(\ ¸(ú­ÆU«V,\…‘#G²bÀÁ6‚pj²nϺL¸j‚cDZ.ˆµXQ_J¦ûA»Î;s\£Ë°@Ï<ó _¢Oì–ýë_Y±¡Üø`—Ðs€;© óD@¯qCŒÂÂbwµ#_| ˜0:Ø]à»ëvÐ… ²{›^~‡¾ÇsLˆyàÊxË "] W †PSz±Æ»víb÷P÷ÒºfvcÓíoöè7ÅHëxàv1¾ùæíŸÎœ9“}E£Ø®‘m€+‹>=‚C,üM;pðõaUà‹"ÐÕîî_ô7V ™b¸Jz+¶^ÃwE …  !†;xÊØóBLðÆxp‚\4R¾P´ƒ¿÷Dg‹ HP­$<0?¾ø€7ŒAãÆÙRÃZãÓ Ab¤Ôø!{ã‚q§FØ)á.cwBÒ óC܆8Y<Ì[“öv<±npõ}ˆU‘mC”Ñä7W*µj͆"ÀŠ"(†¨ Ù›?þ˜ýp…l‚M MySQL++ Reference Manual MySQL++: result.h File Reference
MySQL++  3.2.5
result.h File Reference

Declares classes for holding information about SQL query results. More...

#include "common.h"
#include "exceptions.h"
#include "field.h"
#include "field_names.h"
#include "field_types.h"
#include "noexceptions.h"
#include "refcounted.h"
#include "row.h"

Go to the source code of this file.

Classes

class  mysqlpp::SimpleResult
 Holds information about the result of queries that don't return rows. More...
 
class  mysqlpp::ResultBase
 Base class for StoreQueryResult and UseQueryResult. More...
 
class  mysqlpp::StoreQueryResult
 StoreQueryResult set type for "store" queries. More...
 
struct  mysqlpp::RefCountedPointerDestroyer< MYSQL_RES >
 Functor to call mysql_free_result() on the pointer you pass to it. More...
 
class  mysqlpp::UseQueryResult
 StoreQueryResult set type for "use" queries. More...
 

Functions

void mysqlpp::swap (StoreQueryResult &x, StoreQueryResult &y)
 Swaps two StoreQueryResult objects.
 
void mysqlpp::swap (UseQueryResult &x, UseQueryResult &y)
 Swaps two UseQueryResult objects.
 

Detailed Description

Declares classes for holding information about SQL query results.

mysql++-3.2.5/doc/html/refman/functions_y.html000755 000765 000024 00000006460 13515046515 022044 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Class Members
MySQL++  3.2.5
Here is a list of all documented class members with links to the class documentation for each member:

- y -

mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1ConnectionFailed__coll__graph.png000644 000765 000024 00000026677 13515046516 030346 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÌÅ-:sRGB®Îé-yIDATxí]œTµó¸ŽÞ{iÒ•ÞAÊ*‚ŠRTP¥Jl€Š€ ˆ"U¤KoÒ‹ôÞ‘Þ;ï?ßáŸÇîÞîíîm¹-™Ïg÷•$“ä›L23/ï%ÁDš4—HèR,I# ´À莠p-0n€¥£j´Àè> pHÛ¸çΣÿý×ö¶¾ ²eËF ôI‰6lØ@7nÜð ïøfúÄOPŽ9<*F QÜŠ-ªNõ1€8zô¨ÏK“)S&ʘ1£ÏóñgûöíóJv&Ôó ZÀäôéÓ>/E²dÉBN`8àÜ´ ã5“pA@ L¸´´®§WÐã5“pA@ L¸´´®§Wð©ÀÜ¿Ÿ.^¼è° Ë—/§Zµj9 ÔÛzµiÓ†¦M›¨Å·r]ºt‰îÞ½k7x­ÐögÏžµ¨7}*0sæÌ¡ôéÓÓ½{÷ìÖÿüùó´råJ»a|Ó¶^7oÞtØ1¹¾.ÜÓS§Nµ›ÍƒèúõëôðáC»ázÓkwçâÅ‹I¹=oß¾Mÿý÷ŸÔûÈ‘#&0wîܡ͛7Ó… b`‚0%\XD}ëÖ-3"_½z•Ö¬YC–Ï"0Š¿J‡x§N"£"ÄŸ7ožÕ=vüøqZµj•ðV÷pDÙQ”séÒ¥fyíÕëûï¿§—_~ÙLŽŽ€ÙsÙ²etíÚ5ó>f[Œ¨uñ€pÇŽ„ŽìLþþûoyà­¿;vŒp~æÌ ´Î! hà ˆ0A¨€³ê#¤Õ«WKK\ÀkÏž=÷¯\¹B˜éýN\+âŽbp±ºÛ7¸Q£F #Q¢DûïÈÈHc̘1h$L˜¯ÆáÇ îDFš4iä^‚ ŒÒ¥KÉ“'7Ù§M›Öxûí·åš…Oâq§“ë‰' äžÕ«W7._¾lð %ùôèÑCâqç—ë!C†ÈuïÞ½ ä•$I¹ß¤IeæF2Z·n-¼Àeæ*±<8ºÝa<ŒVä®ÀL™2E ÂðŒ` ãfÏž]@›>}º„ñˆ*y”+WN*ËKo0^¦`%0Ÿ~ú©1cÆ ‰»ÿ~£{÷î(?t’ܵkWƒGc÷îÝFæÌ™>ø@â":<„‡—Œ•+W¡P2jÔ(¹žƒ—Н¼òŠÁê¥Á3†a[/%0ÂÖÄ£è´ÜIÍVÉÌóØN”ÍÒªU+±`/0¸ÄÂ&ÉXÝ"„A§eõrçÎ-÷¡GCW¶¤æÍ›ËÂEð„ ^ø±«‹Äê›=oÞ¼æ¹Z*¤ì23Àâùž~úiónÖ¬Yå\ÙTÐÙ±Ê&§ÁjǰªJ¬*ƒvèÐAŽÕªU›DÕÑòˆÅI“&µ¼eun‰ â)\Nž:9ÄL„ptlV+Ä£fûì‚íb5NÒ £wéÒ…à5©[·®Ì}úô!¼~0wî\bãR<_^fN K°[T¸pa»ñ¡šá§ïZ@=‹ ±Œžyæ·“²ë3†ñ¯˜°‡‹ðsD©S§&ülɶ^–á0æy4µ¼ÒçXÍÁ^-»u„î)ÁaÄèóÏ?'8xV£òåËÛmOór–Þkã,£` Gƒ #hŠ`³ÀS¡Á2$´ lÊø -0PÇÒMfs^Q…ñØKµÐ…Ðø -0~Zg„µÀ|÷ÝR^{'4Z2@kqåè:0ïñ³­-¦ËÅrhÃð*a—™kÄ-[vÑøñK©G ”!ƒã%V?¬Rð%á×%ðó”nî¤Ó’Q–·èÄ2ûïDyš‡¿Ó'€Û2S,Á{'á@ ì¦îÝgPªTIiô覼ÄÇ·Ñ[˜b\å¾ ¬tðÆ{&g]£ß_æD5ËFQi#|Q\·x3`ç ÅO˜[ÚC‡ÎñRšA²à222!Ù’êÕ+lÕ¨òü>ܪÁÇiÏôsR®¤é#©åÂUFO Ö6L¾|)**±¬ƒºÿ!½ùæ/ôÍ7‹=Á3¬ÓÞ¹ú€þ|síùèm×Ü»2÷ÍL_@‡µÀô¢E©aJ32d./îû•_yþW‡ýÙ©®¹C3þ·‡þÛqƒŒ‡´ü P¦â^ÁðgY|™WØ ÌSOåæUµ}йgÎÜLâÕÆ7}‰}Èð>±ö*Moµ›nüw—Þlã¡$©#è¹Þ¹(Cᤴyܺuž×Š=LÀ&Í#£&uÎ(ŠˆŠ)HÁža¸ Î*j3!«ùòeâµe­ø-¿Ë´`ÁãÏB{c{»üP»vN>G™‹%§Jåb5-¡¨i0ø³”=ƒøé†AHœ8‚?ƒ”‰?–}™zõªG-ZTÁÙµë}ñÅ|þÈßS”.]è°ž ÐŽ‰ÿÑu~XY{tJž%å})-ýóíIÚÃKcBí¥Â*¬_*p\°`'¿+žŸ?¬ðx5ëÍ›w©bÅAT½zQ2äñþ,Ó…ëù3÷èÆÿRévY©T;ë]œßu“U¶HJ™ýÑwéB #-0NZ3:z#uíú T7sÝ™“$a¼¸ûaº¸ÿ5žZ$VoY¨¡m'-Ú¨QþdR.êÝ;ÚIÌð >¹î^r‰žíž3¬„-¬Æ…~>`À+¼Ò^”¹Å…Ø¡†þš¡Ç)ï‹i(G…”¡]Y;µÓcÛ[%Jä¤fÍÊÑ€³yW4ϾlË;¯ ÔMGºå Æ¢{\f-0.BøÑGuäƒáþ‚žî—j—E¼b.BRÑ´À¸ØœéÓ§ nÝjò×ø—Ò±c¼èPSX" ½dn4;a¾øâPyf3~|;7Rꨡ‚€žaÜhI,ÂìßÿÞ@h­X±Ï”:j¨  g˜8´d»vãy£§ÿx«íîæ’š8°ÑI‚=ÃÄ¡Ñ>ûìe±cÆ_‡Ô:I0# &­—+Wzzë­xû…táÂõ8pž$Kz¦­ãϺU`ìEZ¥JÆÆ}ç>"È›[¹•Ÿ?#k‰#Ú]ºTå¯O&áM~B÷-L<Ñ?´è¹û! Þñ°]ïÒæ6ºsæÌ‘}yx§1·Óú#˜8¢œ4ib^.SŸ~ÿýÚ¾ýx¹n2{Oô1c`c#EØ ×ò3ƒí¶ìØvåÊ•ü Ëz&~øð!mÞ¼™±Ûnîr SéñmgÄ 8ru@Ï> |cÔ«÷•ýÀ ¾»uüc|Å-ÆõÓwÍZôë×O6ñeµIîñ®ÑoÁhn[¯^=£Y³f²)wt£\¹ro³Ž7Ê ÞºÏÀÆÀ ì‡É»»™Éò–ˆöîüûï¿Í |±ìáÇ%~ ýéÆÃ!lÀ€FÞsQT»vm‚º…™¬ß²e‹l¡‡íÞa{@ CEØßòèÑ£„pÌj›ù>úˆ_›¨Èï>E‹•­Ú_xá3o¬KyòäQ¬æ¨_ ó°)ð©Ù-Êó:³?ùÿ”,Yð¿²vÄ Jž11•hÉ lt !À&­Ppž#GÂÖ(‘‘‘¢vÕ¬Y“?~xHÒõîÝ[6ÜŦ»Šýû÷ËýI“&ñ z åqy7d¹¶Ê,@/ô ã…†éÑ£6ݹs¾új¡¸Å/‹ÿvÜt¸tŸÕ+‚@`&Á3BÕªUE`–,YBeË–¥Œ3šÈš5«yŽ¥y v¹ŽŽŽ¦B… IÚ¯¾úÊ+Ûk˜ùøD ŒÆëËø²Ì˜1Ëy#¢ó^à,2OFõÆr¸t*תU«héÒ¥"0/½ôQg Í›7ÏJC 0‹Øf¦^½zQÇŽÅ}¼víZb[Ç6ZÀ^ǬQÀ5° Ö¶m%þxFFêÓgf`Ô…Òe)íøûÕ«W;fãÆ"0°EØ(§Õ«WÇGYÁûuG¸‘gÍšEwï>zm"qâG*íž={„¯#ñu_ Œ—Ç×fú÷oH‹ÿË£ï/q <6iÒ¤¡ *ˆm’?~Þ_'J x{Íb-0TºL™2Ñ{ï½ÇKIÛ¹sgêÔ©“8à xæ™g$N‰%ˆ½d±ò‹@½–Ì˨wèð3íÙsš…¦ÂzÊÁs¶ê‰~¾júc뮢©ÆU¤âß3ÃJæ)Sþ‰Cjß& çñy‚¬OÐs’»´n]‘ úS>Ñä$ºß‚í-Ý÷[æAž‘7à‡Ö”-ÿFŒXàãœ\g¯¾º®ãs©˜1µÀÄÄÄ«wÒ¤IFݻצqãVð‡3Îy•w\˜9Zº^á˜F ŒZ½eË ²ñlŸ>3ü[ìY_s…Rd޹t?öT:T! \*$||\¿þ5lø-ýòK{ªV­¨s‹ýƒÛFHn§{­½ªÆ;8ºÄ¥cÇ ´mÛq~¤§ìzæR") Ð*™›ã“Oêób«¼>j™sÕYy-0ÞDÓ ¯lÙÒPçÎUéë¯ÑÙ³WÄÖÁˆ€?· >ˆ ˜ãçœuvÞ@@ Œ7PtƒG’$‘ôé§/ËWf6n<âFJ5ЭP«Vq~g¦¬3Ãë½¾"<Ñß=õ<÷}•CøñÕOmŽ×™wí:E“'¯÷Y ðDÝ×'èæùÀüìªÏ*îCÆZ`|nl¬ ÈL¯½V‰žË³sÿıñFسö?Æç,-0±ããÓPl>|¾×óY;ÜþÇø¼žQ˜1Ô ž*UõìY‡~úiÒ½-%b+¶^º:ž…é'ýžáçqjýµj}ɯ4'ãÞò˜ ýè&»)mþ(ª:,ŸÇü4kô c‡ß¯ð­.¼h¶bÅ^þzäó×K÷=†0VZ`b…Ç?eÊä¡FÊPß¾³øÍžù€#“&¤²og#˯îû§á‘‹Vɤ±T¦R¥AüÈ—¨k×jR*] [v»‹'N>TNôâ‹YøK3«øãt—éÚÕ5Q¢DÔ Ax¸“8`g˜?þøƒš6mêN]‚>n‚Ѐüw ‚›*U*ºråŠßа3ŒBÀ—KGTúœŒ;–ºuëæ×Âk£ß¯pëÌ‚-0ÁÞ‚ºü~E@ Œ_áÖ™;Z`‚½uùýŠ€¿Â­3 vÞK,Oœ8‘Ö¯_O#GŽôi‘_}õUÙË^&£Fâ}6óÙ òé½K—.QòäÉe7°qãÆñ—q¶Ñ7ß|ãÓ<㋹ža¼„üÞ½{e7a/±sÈfÑ¢EtþüyÊ‘#GŒâÅaßÊ©S§JÖØnïÖ­[ñQ ¿ä23ÌÅ‹eøôéÓÓ¦M›û¢!oÞ¼É{´l‘­ÝòæÍ+ ;vŒR¤HAéÒ¥3AÆÊÜæ§ Í›7óº®;„ÍI1z*ÂÞ‹Û·o—}æ±'#öfD^–tõêUyø˜,Y2úçŸdïzµ—#v ƈŒMT±SðåË—é©§ž2÷jÄs§Û·oS’$IdÛnÛkäÓ°aCúøã-³”s”÷È‘#RUð¿qãeÍšUø¡l6lë'Ÿ|ÒŠÂvîÜIÙ³g·ªSlõ–(ã™3gdækÓ¦Õgì” žÀ·xñâ²™,2EYOŸ>M¹rå’Í_‘¾dÉ’ÒV… ´ ®l@Ò”)Sð²»Ëe{ÿý÷œ9syòä‘t¼G¼ñöÛo,4r ^C‡~Ï>û¬Q¥J“7o=p7 B¡CJ`йºté"*ÐóÏ?/j x„õFÕªU3÷}‡ðð Aªq ׬Y“¿–ž°÷üƉGKQ·°tذa¢ÖaßøwÞyGÔÄ{íµ×̆·=)V¬5oÞ\ñ`Œ£S(Â>õPéžxâ áÃ3ŠáyóLi÷7a«`»mËâ¿|ùòÔ£GúüóÏ » 1Bòغu+=z”wwþ@ò¬×ƒz *b#:7ÔØ *Ђ·èpVÉÜæ|ëÖ­KJPƒ—,YbÆ„A}äWT2äÈ26 @†ž®£l˜”)íbŒµx^–`F­ZµhÚ´iÔ¸qcñ&Ož,a¬ZɈÿå—_ŠÀjýúë¯æl„©êˆl½U¬n˜@•µÄAÍŒ*N CJ`Ü»^½zâýúä“OÏ6¢¢¢$9ž#@­ƒý/f#Ø¥J•’¶tü~øÁa–6ÌZ.\„ÊS§N3>T2ð:Ȇ¾¨.D‡Bþ°+ì]«{sçÎ%Ûf)ÀÂ… é矖Yf̘1üêó<‚í» ªyB=à µ 6Êà‹²"¢ØêƒêhIà û0::ZÂ0kƒ€wÐ’×Ü^fä®—ŒGR£bÅŠf)Øî0x$3¯ÙðoŒyƒOà¹â†3Ö¬YcÞfg€xÛàE‚‡‹ÝÊÛ1>þ|ñ|! ˆÀÎI‡:¢Ê•+'éà}¬T©’„/ðçI”—Œ&¹Æ_5¬Êd88‰/ôú€$w&.•xï½÷ ~6#){ČիWxXçˆl iGñ¼yÞÁB… Ùe o"?³±†›±ÕGÙH¶‰aW£*–ûÏhðì£uëÖqnK8Xýˆ‘ž(Æö6“Õ}¬-+V,»Õ=}áôjeßàê®* ¤-ÊS§N/ù„¿fê­’9ÇHÇИh1¡Ð'çhqޑޡ0ÐcB¡O4ÎÐã#C#`" Æ„BŸhœ# Æ9F:†FÀD@ Œ …>Ñ8G@ ŒsŒt €‰€ }¢pŽ€çé-0&úD#à-0Î1Ò14&Z`L(ô‰FÀ9Z`œc¤chL´À˜Pè€s´À8ÇHÇИh1¡Ð'çhqޑޡ0ÐcB¡O4ÎÐã#C#`" Æ„BŸhœ# Æ9F:†FÀD@ Œ …>Ñ8G@ ŒsŒt €‰€ }¢pŽ€çé-0&úD#à-0Î1Ò14&Z`L(ô‰FÀ9Z`œc¤chL´À˜Pè€s´À8ÇHÇИh1¡Ð'çx¼e_›6mxSÒ[ÎsÒ1|˜%JD¹rå"Ì,–ለF¸v회žÇŽ#S$ Â/]ºDÉ“'—‡²('Ê•:uj =xð€ðS³ÅÝ»w)a„I¿üò ¡žãǧ9rH|¸Ýþùg Û»w¯9Ò!ÞÁƒ¥|O<ñ%H@âã>žq/òGGQõ÷ïß—ˆ´(Cîܹ)""âQáøÿÆ 0“fɒż”#?¢X±bRfàÎ ÌÏŸ?/å†`[Ö9.eU·mÛV0T×¶G”¸/ËÙÿý÷ß71¶Mƒz ýqÌŸ?¿UýÑ¿Nœ8!xª6°M—k¿ üÛhø}ûöI££SÖ®]›¦N*å‡:ðÍ7ß=š¦M›fªh@€µ ªÂæÍ›¥±Ñùß{ï=ª[·®ÁG}Dÿþû¯€U¸paÚ½{7 <ØJhÖ¯_OŸ|ò •(Q‚víÚ%epáAÊפIBZ„¡C>þøcª\¹²”󫯾¢•+WÒÌ™3åºQ£FôÒK/¦þÅ‹SõêÕMaQ Ó¼ysJ%¼,ü0€@xÑy(‚œP¨t¨3T¥nݺI'MšD(?îŸ>}ZÂÊ”)CC‡•².Z´ˆ†.uB„}úé§æ@Ô»woÚ¹s§ ¨fCtÖ5kÖHQûôéC:u"”á·ß~‹kYUÝc;Bu2eŠÆÍ›7éÉ'Ÿu6lØ€%AeD=0Ø!3#Òb@A@Û®! ÌÌóçÏ—sü!=4̈ÈOÊî-ŠP¸B%Ñ 2Aà ” `úé'1ü¡²@åÀˆ ]j‘¢S§N©S»G8”`hK³å óƒ,Ãí2ä›hØ`0ØUgFÜ%K–кuë†,„qÐa°ë,ù«ûöòq¾ÊñÁÁ>S AȬ#5TØ€ŽÈÓ²:â‹û°·0¸@E‡=‰Aêdl¤T,¨qTAÈ€gžú}†±m¯mk„^'Ñ  *UªHìÒ¥‹OÛ믿.Â}º|»ví$.l#Eöò‚ž÷ÐhÈ×^{ME—Ž Û ¼GŠfy¼ð ¦#Aå#‘ù×ꎖªœŠƒ#Ôð„èèh ‚=§êÕ¾}{0à€Š/nÚb¨?°Æ •W‘§eUvÅS«V­*ØAF—rD”*UÊ*ÂÂÝ«W/i…?TN`o¼ñ† ªðš ð°C½A^yÀWËûáƈ o:­%ad]€g9–jF–AUƒ-¤f(ð@g‡[3f3ÌVŠ  p]# T<Û¼U¼ØŽ”#'ö 6 „£¦eþ±ñu% Ïa z§R9-ÓÁ;|ló„{R©s–i|UVä™ÏÔsØ)”Åa&Eq´µ}€=€¹½ú;â©îÃ¥ŽÎ'ïèL¼}„ý£Ž½kïÊ€‘HyÒ”8¶²©¸öâ@Ä/.!†÷+6BQ$¶xî†aÖµt~ئGg´G¶Oã-ãøª¬È#gΜ–YÅxØjøÿ&Š=öyóæµäѽG:ŽG,|—* hK÷­»¹TtÛNƇïÞ! F¦šc# &„WWÍûhñ>¦šc#ð_W©3g|°IEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1Time-members.html000755 000765 000024 00000025627 13515046515 025154 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::Time Member List

This is the complete list of members for mysqlpp::Time, including all inherited members.

compare(const Time &other) constmysqlpp::Timevirtual
convert(const char *)mysqlpp::Time
hour() constmysqlpp::Timeinline
hour(unsigned char h)mysqlpp::Timeinline
minute() constmysqlpp::Timeinline
minute(unsigned char m)mysqlpp::Timeinline
operator !=(const Time &other) constmysqlpp::Comparable< Time >inline
operator >(const Time &other) constmysqlpp::Comparable< Time >inline
operator >=(const Time &other) constmysqlpp::Comparable< Time >inline
operator std::string() constmysqlpp::Time
operator time_t() constmysqlpp::Time
operator<(const Time &other) constmysqlpp::Comparable< Time >inline
operator<=(const Time &other) constmysqlpp::Comparable< Time >inline
operator==(const Time &other) constmysqlpp::Comparable< Time >inline
second() constmysqlpp::Timeinline
second(unsigned char s)mysqlpp::Timeinline
str() constmysqlpp::Timeinline
Time()mysqlpp::Timeinline
Time(unsigned char h, unsigned char m, unsigned char s)mysqlpp::Timeinline
Time(const Time &other)mysqlpp::Timeinline
Time(const DateTime &other)mysqlpp::Timeinline
Time(const char *str)mysqlpp::Timeinlineexplicit
Time(const Str &str)mysqlpp::Timeinlineexplicit
Time(time_t t)mysqlpp::Timeexplicit
~Comparable()mysqlpp::Comparable< Time >inlineprotectedvirtual
mysql++-3.2.5/doc/html/refman/scopedconnection_8h_source.html000755 000765 000024 00000035727 13515046515 025030 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: scopedconnection.h Source File
MySQL++  3.2.5
scopedconnection.h
Go to the documentation of this file.
1 
9 /***********************************************************************
10  Copyright (c) 2010 by Joel Fielder. Others may also hold copyrights
11  on code in this file. See the CREDITS.txt file in the top directory
12  of the distribution for details.
13 
14  This file is part of MySQL++.
15 
16  MySQL++ is free software; you can redistribute it and/or modify it
17  under the terms of the GNU Lesser General Public License as published
18  by the Free Software Foundation; either version 2.1 of the License, or
19  (at your option) any later version.
20 
21  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
22  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
23  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
24  License for more details.
25 
26  You should have received a copy of the GNU Lesser General Public
27  License along with MySQL++; if not, write to the Free Software
28  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
29  USA
30 ***********************************************************************/
31 
32 #if !defined(MYSQLPP_SCOPEDCONNECTION_H)
33 #define MYSQLPP_SCOPEDCONNECTION_H
34 
35 #include "common.h"
36 
37 namespace mysqlpp {
38 
39 #if !defined(DOXYGEN_IGNORE)
40 // Make Doxygen ignore this
41 class MYSQLPP_EXPORT Connection;
42 class MYSQLPP_EXPORT ConnectionPool;
43 #endif
44 
48 class MYSQLPP_EXPORT ScopedConnection
49 {
50 public:
60  explicit ScopedConnection(ConnectionPool& pool, bool safe = false);
61 
66 
68  Connection* operator->() const { return connection_; }
69 
71  Connection& operator*() const { return *connection_; }
72 
74  operator void*() const { return connection_; }
75 
76 private:
77  // ScopedConnection objects cannot be copied. We want them to be
78  // tightly scoped to their use point, not put in containers or
79  // passed around promiscuously.
80  ScopedConnection(const ScopedConnection& no_copies);
81  const ScopedConnection& operator=(const ScopedConnection& no_copies);
82 
83  ConnectionPool& pool_;
84  Connection* const connection_;
85 };
86 
87 } // end namespace mysqlpp
88 
89 #endif // !defined(MYSQLPP_SCOPEDCONNECTION_H)
90 
Grabs a Connection from a ConnectionPool on construction and releases it back to the pool on destruct...
Definition: scopedconnection.h:48
Manages the connection to the database server.
Definition: connection.h:59
Manages a pool of connections for programs that need more than one Connection object at a time,...
Definition: cpool.h:68
Connection * operator->() const
Access the Connection pointer.
Definition: scopedconnection.h:68
This file includes top-level definitions for use both internal to the library, and outside it....
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1DBSelectionFailed.html000755 000765 000024 00000041422 13515046515 026055 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::DBSelectionFailed Class Reference
MySQL++  3.2.5
mysqlpp::DBSelectionFailed Class Reference

Exception thrown when the program tries to select a new database and the database server refuses for some reason. More...

#include <exceptions.h>

Inheritance diagram for mysqlpp::DBSelectionFailed:
Collaboration diagram for mysqlpp::DBSelectionFailed:

Public Member Functions

 DBSelectionFailed (const char *w="", int e=0)
 Create exception object. More...
 
int errnum () const
 Return the error number corresponding to the error message returned by what(), if any. More...
 
- Public Member Functions inherited from mysqlpp::Exception
 Exception (const Exception &e) MAY_THROW()
 Create exception object as copy of another.
 
Exceptionoperator= (const Exception &rhs) throw ()
 Assign another exception object's contents to this one.
 
 ~Exception () throw ()
 Destroy exception object.
 
virtual const char * what () const throw ()
 Returns explanation of why exception was thrown.
 

Additional Inherited Members

- Protected Member Functions inherited from mysqlpp::Exception
 Exception (const char *w="") throw ()
 Create exception object.
 
 Exception (const std::string &w) throw ()
 Create exception object.
 
- Protected Attributes inherited from mysqlpp::Exception
std::string what_
 explanation of why exception was thrown
 

Detailed Description

Exception thrown when the program tries to select a new database and the database server refuses for some reason.

Constructor & Destructor Documentation

◆ DBSelectionFailed()

mysqlpp::DBSelectionFailed::DBSelectionFailed ( const char *  w = "",
int  e = 0 
)
inlineexplicit

Create exception object.

Parameters
wexplanation for why the exception was thrown
ethe error number from the underlying database API

Member Function Documentation

◆ errnum()

int mysqlpp::DBSelectionFailed::errnum ( ) const
inline

Return the error number corresponding to the error message returned by what(), if any.

If the error number is 0, it means that the error message doesn't come from the underlying database API, but rather from MySQL++ itself. This happens when an error condition is detected up at this higher level instead of letting the underlying database API do it.


The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/inherit_graph_38.png000644 000765 000024 00000006341 13515046516 022455 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÇ$=Õ.êsRGB®Îé ›IDATx훬UE€DAEDEP:R4 Š5@JCTŒ%ŠR Õ‚FL,±PC "=`¯` Mº `A°+ tÐýç›ü{rî½ç¾û™^ÊG5ªU«&#GŽLÙc†åøöÛoeúôé)H¡(p4S`õêÕòÆodl1ÃrxŒ—_~Ù†w ÀQMÈüùó3ö˜a920BE @¥@Ž"zðaÛ¹)„#7F¥@Ž"zðaÛ¹)ðŸމ'Jß¾}sïô01vîÜ)÷ÝwŸÔ®][N=õTéÚµ«Œ7Nöïߟ2òèÑ£¥U«VR¡B©Q£†têÔIÞyçg÷îÝÒºukyýõ×£ºøÇŠ+¬ÿôêÕËÆøë¯¿â¨û÷ÓO?­Á¯Å¿Çoóßzë­2mÚ´¿}-ùààÁƒòÛo¿å=O¼ÿ¼plذA>úè£<7Y=ö˜¼ôÒKrå•WÊ#<"•*UãŽ;¿óÎ;­î„N¡C‡JïÞ½å믿–k®¹Fž{î9Ã;pà€¼öÚk²eË–¨_üã矶vƯW¯žÔªUK¾üòK›f=’@ŠsñâÅrÆgd<'t’-åý÷ß·õÉuå5×¼yóä”SNè|ØÀ¯rã )\~¥¯Êó{ï޽¾r*±NÑ­ZµÊðÿüóO§ÄuK—.uª]­î›o¾q¿þúkÊxz¯â¶mÛÕ-[¶Ì)³;ÕÔQüñ‡ûðÃÝ/¿üâvíÚå”é¬]Óp®qãÆö½cÇ·}ûv›oÑ¢ENÇêù³oß>÷Ã?Xù³Ï>sü±ÕyÕÊNµºcÝ@¼L}ùòåÝÃ?ìÑí­‚áÊ–-k¸o½õ–ÑíñÇOÁa^wüñÇÛü¬úª…IÁóÍ·[»§#õ¬¥I“&®AƒÍÖ ­V®\­™Fæã<€Ï?ÿÜ}ÿý÷ö½gÏ÷öÛo»5kÖØxVùÿ?Ð Úzšú6~×°aC_L|Ÿ{î¹)tQ¦´5±6xÂçþÓO?ÙZUàÜ?þhMœ%gï¤ÃæÍ›ÝÂ… ë‹<Ù¨…p*œN5³ÇçŸÞèÇÞýYÆû&}÷ïß?qŸRPPáÐu[Ìå—_no¾E‹îꫯŽÊÍš53†½øâ‹]Ë–-£õA¬cŽ9Æ=ûì³FгÎ:Ë©ÖuÅŠsª­L @€“O>Ù/^Üð/¸àW¦Lk‹ Çõ×_ïêÔ©cŒ|ÜqÇÙü={ö4¼Ù³g[ùÒK/u¾ \ xæ~ï½÷2Ê*ëlÓ¦ã<°~æ½îºëlÍ0G:¨«ds¿ð &¼ÆëÖ­›;í´Ól®>øÀ©vt%K–´Gµ¸ÑzCm¸x÷îÝ­žuAûG}ÔÚøÃ8ðû§¾/¾ø¢S÷Õx„2õ^ID³|dŽBs«”ð²uëVуeÑ šë0eÊQ--ëÖ­“n¸Aô`E™J×/2kÖ,Q"‰2– 6LtÓ¢ZÂúá׫0óxóÍ7‹ZÑÍ n”jëŸôGJžyæQ&–±cÇÚ3wîܵJ•*¢‡/_|ñ…¨6“|ÐÚT0åþûïÞ@¼¬‚h.E+V4?|Ĉ¢ZYš7o.*Ì¢šJT³‹2…õÿ¡^²@îtZ°`Ì™3GôðdæÌ™¢bs±æK.¹DÔÊï¿ÿnîë‰.ôÅ 4hÑÚ2¾j®è¦M›ä–[n1WP-²@;µD2|øðh(Õèvnœ]üaÞtàœÔBÚ8´_xá…¶fåICå×wß}·ÿUW]e®¦ ˆ91n+ÀùÁ7œç<ðÀ²dÉkç±™Z;aLUx¢ŠGTAË+¯¼b8ôã'!‡…&Ü2ž~úé¢ZÉÖƒ?#ú2Œ T¢í Aâg*¯øˆ¯ê‚ ¾=~7¥.Š|úé§&·ß~»œy晆ףG¬{®_¿¾B^õêÕ¿ØÃC=dxÎ9çX»Z k¢ÌÜž éeLÍ¿ÿêâÉàÁƒE]!u‘’Ú“êî½÷^£—ZC ü;tè` î¤I“„øGöï¾û.eu¥}ûö–àÆŒ#$/Ô ’M›6µs ¡ÀØ7n´zµò)ÉÕÜ¢–6ãI™L ê’Ù™°3>‚F¬åø(â2Ìe—]f C-ŠÑM-á‚7uêTQ7ÒøaE1Ç«yP@Î?ÿ|Qk*;w¶õû¶Âzgª¹CYM¨õôš“C` í@<¤› ½û!hG¸ÐäX4%VdòäÉ‘•á0=xíîËñ7ÂÂ[*êÏ>û쨙 AÌX´,V `½È^M˜0A\æ…Y“€zÍ '©=©-‰ÅI‚3fÈÀaëÖ­+dhÒÁ÷…¹ è‹ÂBØŒ¦1 u»ñÆSº€{à°À¹À…–‡&‹½0²øúkÌfUð‰·0ŒEváöP®\¹ˆ—¨£¯¬U |û¡¾ Ír ©ó˜f´5&mpíµ×Z·7ß|Ó¦Ó`β#‰' êSŸ â †å‰ S¼KoË6&xG™Kçqpûîºë.+²¶+®¸B–/_nÖÅã±êׯŸ¹4ЋÆ¾éß:Œ~Ûm·YÊ ‹û’ p½  ‰A°°Ð¤œaV¬./î Æf¶Þlãe«Çkžzê©h,Îñ‰'ž°Œm^Qò0–į‰7–2N¿üŽ•×<¹ÚòÇѹF)@{»ví?˜Í–*UÊzcö1¹¤8цX ¥Q£Ff†‰Ip0³ø—Ù€Á_Å ¡]є޵£nãàÒi.mÛ¶µ¡ˆe˜ ÄË©K4ïÚµkmL¬ÌæÓYÜ´w¸h]~„•AûyÐl”ýØ8Æ?0o~@ƒi»káMê’¸„}&ÌÓM7s¡™qQ°&¬…½£q¡ ”u@+bÄ~}ñ7ë–“Ô3LÌ­_¿ÞæE9oP˜œ çH<Õ±cGî\ã°_€ù½%ÊÕ'k»‡š­òé4Rr:Y”¥PâZ™l‘2Hà²õ@F™É2,ºAwÞyçYº•vÕz–¢Yu±R²U¤9²U»D¸d¸|–Ãg«èË8dSTP£”q^Ù*ÆVËeZèO…ì©WšHÉÒGª—5±7µ,Q¶Š¶ô‡”&óPO<hâÀ2nÐB-ŸÓÝö£A«e­è¯Âu2dˆS%e·T(¢4¶Þ¿X½_ Y ÒæÙ*_ŸþÖxÎpjÖ¬јL™ IÔ‡=“24†rê’Ú7Hy³vêºY†‰2iZ½<Æaíñ4ºÆžNÿçÈwuªXÎT¨G0UtN^Ù²UHW T8R:ç³ ‹”œ½ïF”|;–¤PU#9„ BúTnáÐàÒ1÷¤=xá  ¢ù<»oÏÏ›¾¤—Ycú=L¼¿Z&c rýäñY»º`) Ç?”oî{Hz ­ì™Ú×Åßࣀ _:p@Ê5‰î鸹ʞö(¾¸ç@¸¸Ï(p÷Æ~ó Ù„£ÐrÕ,9—E/¢,s‚ošiªÓ«­Œû¥Ö$±-½’q|@šÞF9=hOÂIªc\~>’ pÁâ ðI4&àvòx ñ€‹{˜dÙ.ºè¢¤¦×å¢}AÄ-å)(àÆÔ•Kšãˆ ñ?£ O¯—l;7‚pä¦QÀ(¢ÂQD>l;7‚pä¦QÀ(¢ø`(ŠÀÚ5ÏöIEND®B`‚mysql++-3.2.5/doc/html/refman/stadapter_8h_source.html000755 000765 000024 00000115353 13515046515 023454 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: stadapter.h Source File
MySQL++  3.2.5
stadapter.h
Go to the documentation of this file.
1 
4 /***********************************************************************
5  Copyright © 1998 by Kevin Atkinson, © 1999-2001 by MySQL AB, and
6  © 2004-2009, 2018 by Educational Technology Resources, Inc. Others may
7  also hold copyrights on code in this file. See the CREDITS.txt file
8  in the top directory of the distribution for details.
9 
10  This file is part of MySQL++.
11 
12  MySQL++ is free software; you can redistribute it and/or modify it
13  under the terms of the GNU Lesser General Public License as published
14  by the Free Software Foundation; either version 2.1 of the License, or
15  (at your option) any later version.
16 
17  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
18  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
19  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
20  License for more details.
21 
22  You should have received a copy of the GNU Lesser General Public
23  License along with MySQL++; if not, write to the Free Software
24  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
25  USA
26 ***********************************************************************/
27 
28 #if !defined(MYSQLPP_SQL_TYPE_ADAPTER_H)
29 #define MYSQLPP_SQL_TYPE_ADAPTER_H
30 
31 #include "common.h"
32 
33 #include "datetime.h"
34 #include "null.h"
35 #include "sql_buffer.h"
36 #include "tiny_int.h"
37 
38 #include <stdexcept>
39 #include <string>
40 
41 namespace mysqlpp {
42 
43 #if !defined(DOXYGEN_IGNORE)
44 class MYSQLPP_EXPORT String;
45 #endif
46 
72 
73 class MYSQLPP_EXPORT SQLTypeAdapter
74 {
75 public:
76  typedef size_t size_type;
77 
80 
88  SQLTypeAdapter(const SQLTypeAdapter& other);
89 
96  SQLTypeAdapter(const String& str, bool processed = false);
97 
99  SQLTypeAdapter(const std::string& str, bool processed = false);
100 
102  SQLTypeAdapter(const char* str, bool processed = false);
103 
105  SQLTypeAdapter(const char* str, int len, bool processed = false);
106 
113  SQLTypeAdapter(char c);
114 
117 
121 
123  SQLTypeAdapter(short i);
124 
127  SQLTypeAdapter(unsigned short i);
128 
130  SQLTypeAdapter(int i);
131 
134  SQLTypeAdapter(unsigned i);
135 
137  SQLTypeAdapter(long i);
138 
141  SQLTypeAdapter(unsigned long i);
142 
144  SQLTypeAdapter(longlong i);
145 
148  SQLTypeAdapter(ulonglong i);
149 
151  SQLTypeAdapter(float i);
152 
154  SQLTypeAdapter(double i);
155 
157  SQLTypeAdapter(const Date& d);
158 
160  SQLTypeAdapter(const DateTime& dt);
161 
163  SQLTypeAdapter(const Time& t);
164 
166  SQLTypeAdapter(const null_type& i);
167 
171  SQLTypeAdapter& operator =(const SQLTypeAdapter& rhs);
172 
176  SQLTypeAdapter& operator =(const null_type& n);
177 
179  operator const char*() const { return data(); }
180 
192  SQLTypeAdapter& assign(const SQLTypeAdapter& sta);
193 
205  SQLTypeAdapter& assign(const char* pc, int len = -1);
206 
212  SQLTypeAdapter& assign(const null_type& n);
213 
225 #if !defined(DOXYGEN_IGNORE) && __cplusplus >= 201103L
226  // Can't use MAY_THROW() here: it confuses Doxygen 1.8.14.
227  char at(size_type i) const noexcept(false);
228 #else
229  char at(size_type i) const throw(std::out_of_range);
230 #endif
231 
235  int compare(const SQLTypeAdapter& other) const;
236 
240  int compare(const std::string& other) const;
241 
246  int compare(size_type pos, size_type num, std::string& other) const;
247 
251  int compare(const char* other) const;
252 
257  int compare(size_type pos, size_type num, const char* other) const;
258 
260  const char* data() const;
261 
264  bool escape_q() const;
265 
272  bool is_null() const { return buffer_->is_null(); }
273 
278  bool is_processed() const { return is_processed_; }
279 
281  size_type length() const;
282  size_type size() const { return length(); }
283 
286  bool quote_q() const;
287 
293  int type_id() const;
294 
299  void set_processed() { is_processed_ = true; }
300 
301 #if !defined(DOXYGEN_IGNORE)
302  // Parallel interface for Null<>-wrapped versions of types we
303  // support above. No need for parallel documentation.
304  SQLTypeAdapter(const Null<std::string>& str, bool processed = false);
305  SQLTypeAdapter(const Null<String>& str, bool processed = false);
319  SQLTypeAdapter(const Null<Date>& d);
320  SQLTypeAdapter(const Null<DateTime>& dt);
321  SQLTypeAdapter(const Null<Time>& t);
322  SQLTypeAdapter& operator =(const Null<std::string>& str);
323 #endif // !defined(DOXYGEN_IGNORE)
324 
325 private:
327  RefCountedBuffer buffer_;
328 
339  bool is_processed_;
340 };
341 
342 } // end namespace mysqlpp
343 
344 #endif // !defined(MYSQLPP_SQL_TYPE_ADAPTER_H)
Declares classes that implement SQL "null" semantics within C++'s type system.
size_t size_type
size of length values
Definition: stadapter.h:76
C++ form of SQL's TIME type.
Definition: datetime.h:347
C++ form of SQL's DATETIME type.
Definition: datetime.h:48
Declares classes to add SQL-compatible date and time types to C++'s type system.
Class for holding an SQL TINYINT value.
Definition: tiny_int.h:55
The type of the global mysqlpp::null object.
Definition: null.h:49
void set_processed()
Turns on the internal 'is_processed_' flag.
Definition: stadapter.h:299
bool is_null() const
Return true if buffer's contents represent a SQL null.
Definition: stadapter.h:272
bool is_processed() const
Returns true if the internal 'processed' flag is set.
Definition: stadapter.h:278
C++ form of SQL's DATE type.
Definition: datetime.h:225
size_type size() const
alias for length()
Definition: stadapter.h:282
This file includes top-level definitions for use both internal to the library, and outside it....
Declares the SQLBuffer class.
Converts many different data types to strings suitable for use in SQL queries.
Definition: stadapter.h:73
Declares class for holding a SQL TINYINT.
Class for holding data from a SQL column with the NULL attribute.
Definition: null.h:170
A std::string work-alike that can convert itself from SQL text data formats to C++ data types.
Definition: mystring.h:139
mysql++-3.2.5/doc/html/refman/inherit_graph_10.png000644 000765 000024 00000010567 13515046516 022450 0ustar00tangentstaff000000 000000 ‰PNG  IHDR¿1‹Px®sRGB®Îé1IDATxí¬$EÇûŽÃÝw‚»wîN‚»»[pNàw îîîr¸»{ÿ_}Ô¤ßì̾ݷËãÞÞT²ofº{Zª«««þ]s×/ŠBE†= î?ì¹qÅÿs þJ†YTÂ?ÌN}5ðJø+f90 ?ò«®º*¬³Î:ùäê¹â@ŸåÀ#Œ~ûí·šþ׿—¸òÊ+ý¶ºVè³xðÁÃÙgŸ]ØÿRá_{íµ _¨+ô% ñË„¿²ùûÒLV}m+*áo+;«Êú*áïK³Uõµ­¨„¿­ì¬*ëKèóÂ?hР°Ã;ô%ž7Ü×FÇöî»ï†VX!|üñÇá7Þ°ûÏ>û¬n;þùgøúë¯ë–éôÌ>/ü¯¿þzxä‘G:ržÛwß}n»í¶ðóÏ?‡¿þú+üøãáï¿ÿ®Ë“›nº)Œ;î¸á?þ¨[®“3[~ $4L2dHxñÅ_0ÿ¥—^ O?ýtÆà÷ß¿FÛ|øá‡áÛo¿ÍxüÌ3Ï„G}4üôÓOY7L(BþÕW_Ù$¿÷Þ{]òyøþûï‚À„>üðæ½Ðï¿ÿ\¾öÚká±Ç ¤9ÜúË/¿dB“¦õÓ‡¢¶Ëú‡výä“O¼™€Æu~y"c½ÿþûMs{ZO¯ÓO?}à r‚ &Ȫ ý»îº+ëǯ¿þ>ÿüs˧/Ý-”¬¢N»!¤9%nâœ&Õ½—Yù%—\Ò®¼»è¢‹Æe–Y&{^pÁ£-.´ÐBq‰%–ÈêÓÄá†.žqÆñùçŸSN9em´Ñb¿~ýâd“M_}õU++Áˆc=vìß¿¿•Ÿgžy⨣ŽjyûᅵsÎ9í~à 7Œ3Í4Sgœq¢Nõ¬ý-¶ØÂò®¿þz{^l±Å²<Ê~ðÁ–/á°üûðY&He”QâðÃoå–]vÙ¨EkeëõO&YdüNo½õ–½ÿì³ÏZÒ~ûígýcŒ1,²R$–—ŽÍß/º>÷Üsöî›o¾}>¤ˆ¬žå–[ÎúLß Ï9çœxÏ=÷/™+øOÙN%æ Y( A-k~Wš¼ðÑG…“N:)pªÆŽ€V¿ôÒKM“¿òÊ+a£6 <ð@¦u®»îº ë®»n8üðÃÃä“Onš›÷&œpÂpÖYg™ßl³Í‚ÜvL×àÞvzÕ‚ §Ÿ~ºiñ .¸ ð»ñƳ"“N:©í4ÛEöÝw_ËÓ {íµWà ¥Ïo¿ývØrË-ÃÖ[o¾üòË@Z¬áˆ#ŽhºVù?à×ÑGN>ùäðÍ7߯öä“OøÒºúê«Ãí·ßÞyçëî»ï=ôÐ ȃØíh÷ÃÚŸ¶ ¿´T˜d’IÂJ+­dubž¹²ð2­\1¡f›m6÷vÛmŽ<òÈlÁ¶Rw'¼Û˜Ä¶q¤«¬²ŠiÌ<0<7ÒH#YíçŸ~Øi§ÌO˜yæ™m—“f»ÚŸT[»,P‰ŠX8ø B,&ÏM/òÙú©“ då•W&ÙìmÚǾÏ?S”†wÙ)n¹å«3…]ª^ÿØ_~ùeÛíüÃ;ÌêçJƒJÅîòÓ.ø‘v×Zk-C¾ð¡è ;ˈ#Žh‹™>€|± “”÷‚{ŠöÈIµª¤• yu€Ú3h‹Œ˜zR”#åðÒƒw>ûì³GAž–/ ÛÞñ‘ Ôí™k®¹¬h|‚¬,‘¶yËs´‡w©äC 1 ¢´üîО3Ï<3Jhì]ÞÍúᇺíŸ4nœa†ì=ù!vÚÃûsÏ=·=ƒºh‘Eù6FiíÚãc³†Jþ€”ѧ<Ú£…A·È“’‰ZdQ~”Õ¢ElÏäiÁ—ÔÜ÷“ë¡=5˜f³Âßöìºë®QÛqÍ«ÒxQø|dåI¶²Á¡,&!8™ð§å~„‡z^xá…(Ä)Ëvá'Éb”å5z#ílPb³ýŽnc’VØ”Pž((ËöµÓdÏ@ªÚ5Jé8³—’ ã'žx"ƒP=Kx—v=½“®õ„¿4ž_¡í„Iq÷ÝwLà½<±%ë, ŸlϘGÚ óò‰Ôƒ­[Fy§¸¬\>8wþùçÏ'Ûs½þaǧŽv¾¦RJ}ұ݅ϧEºÜÃK¶2šqÆ ³0ø «Ô«Â~/ó!€­o²É&=æ96ò|óÍWó>B„“[D僵ӡ,j‡´²þ••ï.}饗ü*j3ò[\»ÍMšÙóùvþg9xQPdÔùBÔBˆr`£¥¶6…ù%M›ù TŽm¿Ç{˜íÝ-GßL·îÌ•Fê¦ f•vÔxÜqÇE|lÿFHèRÔ9K”#_SS‰ºimÏÀ¡ÆáÇáÍ»y8ÆðÉ˰é“ Ègˆ:OÉWQóìŠuÅWtÉ¡"=/üesE:cU _$ÖÉÑ?*Qs‡ž1âÀÃ_³Dœý"òø¦¢¼fÒþsá®c‚do›Voý‡)²Ý-À.àG4k=þøã¦AÐpyºøâ‹­4~J˜Bü Íî@_hK§Ò†Þxy×vÀ©c5–™)¾pX0…aJ5#üŒ­¬³†ˆÉäÄÂR T&üLZ»ÙÀ9x‰¦¹qRxGTx†?–^~´>¦âšk®™•sè“Ç…¿»¹¦þeÁ0^x¿ ÝvÛ-ŒQgYð¡øç0¸Î% ªþôÓOÓ¬¦îÿsáGc"¸h+„`¡¡°Áâ±/!ÅÖD´!ŒvÒaU<å”S …¡‹,²HÔɨggW4ŽP c:¡p3}\ãPˆI"í¡¥tº…˜¢í©ÿC1ÍzÉ%—Øbuá÷†0¡š~ÞÃÌá"V±£g»×Én…y¸óÎ;G4#ýÓ¡”ù hHú¸ÔRKE…YDÊ2>jõ:üʧƒ>Ø“J¯¿âœ" ˆ«Ÿ[i ­¹Lø»›+ú¤Ã¾¨°ÈÙç œa@yᇴ‰v¶æù†nèÒOúEúAt/Šj5Öˆ:\¬k»¼Tð🠿«²nq`Å`6ÌÍ|óÍ7G!@–ópT7Ø`Ój0–Ÿî9ú²Ë.‹ŠÀ4­A;LªNsã…íòL=˜<üýii)š7uBÑPí~Ï¿Ï>ûÄ…^Ø&“¾lºé¦ÆUžë”õó ¥AÞ5×\ceùƒƒš~Ì9ÅEY:B×È9† ?BŸXð» 4þzsÅ;ÌÑÞ{ïÍ­uãç@yáWð¡¥ûAÏVÆŸÓ+ …³Þzë™,°?fV#TOø{êLƒÒ$PšË`µÈ^µ¢)Ço<Ëãß>î BZÌ¢A³Ì‚>¢!þFL²Eø0†HR v¸è¢‹ì-¤ýžbˆø¸ƒmU '¢H[%b~8ßÐŽ$øV!ÙDZÒ¢UÓÀ¹´=ú¦I¶¤”‡ùsB ×ð‹ÐeÎ:%b¬‘ݘí.Æ·Ë/¿<«¢Þ\y! ^'-& ñçôš?gɦe ÿ (P9ᄈ0gDá¶B½Û#s'ë#ÑHì L’V±ø„Ô‰8|muï΄Èa´Á{~þJìOþÚ’‰cÌBØüˆ!Šq@'œpBsgߤÁiÔÏ„·JÏéã‹òºˆ³!š¢ÍVçˆSâ &ðNÚ·)Á÷>¡4ø’Ã4¾ð¨\ϯ7W^¦Ñ3‚윴[×zž_á!ßS (í$aÛm·õìž_ó[G»q~lYœ& °çw^ƒä€&9À†½àøÞ_l[' ‡9=lÅ8¢|™”š^Î^`EÌ&L âuð7x‡p`PÚàË'Lìo-B³#Á¼ÅEóxxŽçFÌí:†Þ¤H“÷‹þ³ýóu›>ë4³Š±âdâßh׳þ06-C˜0±ù1ð°¥)LßµCff´³õó /4¬¼Ÿf_pä‹ÈÍò3¾cvÐ!5{º›+ÌžO<1kFQ»YófÀ&¦¡.´™ÆyQ ¾"PÍ|¥<¾"²™š¥Ycunê™=½‚óëË¡ ÅÀfc! O}˜x l9&ª<±Xøü?@ ŸmϼO=0“Î4(†Ã•´‹}éùLXЇc÷Ãhòé×Àk„Ÿ>“Äèä ˆ¯ˆx‡º¼]>éT8sV¼§sŽ>yÝ~…Ï'<-¢ÓN;Íüσ·éØ8/ñzº›+”L*üœg°¸!™a¦t¸í) >$ß X—¶Y¸2ç<¹éë¿&ü$NhYÐH+Y¶i·î¸»¯h4𻥰^¾í‰ aÅ´Ç.$Ààòï³PØØ)ôáMðçËóì»Z¼Œh—z™ÔÍJËÓw¢aÓ…åùöyÙô Lˆòiõd®òí"üeÁ‡iYæ¸hþÒ2Ü×þƽ"©„<É\±NòéþŒ)Ík…ñËŽY°†À¯Õ Æ¢ ¾`*#Ú«ô†Ó:Þeõ¤é23ìûc÷+Ò<¿§Ý²3/Cß{8çï]ùrK¡EYM§õd®ÊénêÍqYͦ·$ü8Y²Ãšm³Ï”—t&Ñmq8ùõªöµÏg¡CÕ >ìí~¶$ü½ÝÙÞnè‡F–L¿NûXÖ'ùeeY½žÞ+Pg¯ªj°â@¨„¿&UE:“•ðwæ¼V£j€¥6õŸÒ5À½ªÈPÏ)êhðëà§&L èÅ*­â@_àa4ü+EÔƒ‚¢Œ*­â@‡s`peówø WÃ+ç@%ü弩r:œ•ðwøWÃ+ç@%ü弩r:œÿ"(rÒ¡ÿIEND®B`‚mysql++-3.2.5/doc/html/refman/field__names_8h.html000755 000765 000024 00000010271 13515046515 022503 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: field_names.h File Reference
MySQL++  3.2.5
field_names.h File Reference

Declares a class to hold a list of field names. More...

#include <string>
#include <vector>

Go to the source code of this file.

Classes

class  mysqlpp::FieldNames
 Holds a list of SQL field names. More...
 

Detailed Description

Declares a class to hold a list of field names.

mysql++-3.2.5/doc/html/refman/autoflag_8h_source.html000755 000765 000024 00000026710 13515046515 023265 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: autoflag.h Source File
MySQL++  3.2.5
autoflag.h
Go to the documentation of this file.
1 
5 /***********************************************************************
6  Copyright © 2007 by Educational Technology Resources, Inc.
7  Others may also hold copyrights on code in this file. See the
8  CREDITS.txt file in the top directory of the distribution for details.
9 
10  This file is part of MySQL++.
11 
12  MySQL++ is free software; you can redistribute it and/or modify it
13  under the terms of the GNU Lesser General Public License as published
14  by the Free Software Foundation; either version 2.1 of the License, or
15  (at your option) any later version.
16 
17  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
18  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
19  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
20  License for more details.
21 
22  You should have received a copy of the GNU Lesser General Public
23  License along with MySQL++; if not, write to the Free Software
24  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
25  USA
26 ***********************************************************************/
27 
28 #if !defined(MYSQLPP_AUTOFLAG_H)
29 #define MYSQLPP_AUTOFLAG_H
30 
31 namespace mysqlpp {
32 
36 
37 template <class T = bool>
38 class AutoFlag
39 {
40 public:
42  AutoFlag(T& ref) :
43  referent_(ref)
44  {
45  referent_ = true;
46  }
47 
50  {
51  referent_ = false;
52  }
53 
54 private:
55  T& referent_;
56 };
57 
58 } // end namespace mysqlpp
59 
60 #endif // !defined(MYSQLPP_AUTOFLAG_H)
61 
A template for setting a flag on a variable as long as the object that set it is in scope....
Definition: autoflag.h:38
~AutoFlag()
Destructor: sets referent passed to ctor to false.
Definition: autoflag.h:49
AutoFlag(T &ref)
Constructor: sets ref to true.
Definition: autoflag.h:42
mysql++-3.2.5/doc/html/refman/functions_func_d.html000755 000765 000024 00000012774 13515046515 023037 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Class Members - Functions
MySQL++  3.2.5
mysql++-3.2.5/doc/html/refman/comparable_8h_source.html000755 000765 000024 00000045472 13515046515 023576 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: comparable.h Source File
MySQL++  3.2.5
comparable.h
Go to the documentation of this file.
1 
4 /***********************************************************************
5  Copyright (c) 1998 by Kevin Atkinson, (c) 1999-2001 by MySQL AB, and
6  (c) 2004-2008 by Educational Technology Resources, Inc. Others may
7  also hold copyrights on code in this file. See the CREDITS.txt file
8  in the top directory of the distribution for details.
9 
10  This file is part of MySQL++.
11 
12  MySQL++ is free software; you can redistribute it and/or modify it
13  under the terms of the GNU Lesser General Public License as published
14  by the Free Software Foundation; either version 2.1 of the License, or
15  (at your option) any later version.
16 
17  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
18  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
19  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
20  License for more details.
21 
22  You should have received a copy of the GNU Lesser General Public
23  License along with MySQL++; if not, write to the Free Software
24  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
25  USA
26 ***********************************************************************/
27 
28 #if !defined(MYSQLPP_COMPARABLE_H)
29 #define MYSQLPP_COMPARABLE_H
30 
31 namespace mysqlpp {
32 
39 template <class T>
41 {
42 public:
44  bool operator ==(const T& other) const
45  {
46  return !compare(other);
47  }
48 
50  bool operator !=(const T& other) const
51  {
52  return compare(other);
53  }
54 
56  bool operator <(const T& other) const
57  {
58  return compare(other) < 0;
59  }
60 
62  bool operator <=(const T& other) const
63  {
64  return compare(other) <= 0;
65  }
66 
68  bool operator >(const T& other) const
69  {
70  return compare(other) > 0;
71  }
72 
74  bool operator >=(const T& other) const
75  {
76  return compare(other) >= 0;
77  }
78 
79 protected:
87  virtual ~Comparable() { }
88 
93  virtual int compare(const T& other) const = 0;
94 };
95 
96 }
97 
98 #endif // !defined(MYSQLPP_COMPARABLE_H)
virtual int compare(const T &other) const =0
Compare this object to another of the same type.
virtual ~Comparable()
Destroy object.
Definition: comparable.h:87
bool operator<(const T &other) const
Returns true if "other" is less than this object.
Definition: comparable.h:56
bool operator !=(const T &other) const
Returns true if "other" is not equal to this object.
Definition: comparable.h:50
Mix-in that gives its subclass a full set of comparison operators.
Definition: comparable.h:40
bool operator==(const T &other) const
Returns true if "other" is equal to this object.
Definition: comparable.h:44
bool operator >=(const T &other) const
Returns true if "other" is greater than or equal to this object.
Definition: comparable.h:74
bool operator<=(const T &other) const
Returns true if "other" is less than or equal to this object.
Definition: comparable.h:62
bool operator >(const T &other) const
Returns true if "other" is greater than this object.
Definition: comparable.h:68
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1Query__coll__graph.png000644 000765 000024 00000047525 13515046516 026242 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÅP+²sRGB®Îé@IDATxí˜E†ëŽœsA‚€€bAE$¨(ŠŠ˜3Š  bˆŠ 1T$ "  "ET2’%'ÉÌ__ù÷2·ìîí·w»w_ó;3ÝÓáížîšêêž$OБ @ $Ç0nFM$@$@$@F€ @Ì Pàˆ9b&@$@$@$@ƒm€H€H€H ærÇ<&@$@ Hà—_~‘Ý»w'`ΙeÈz•+W–š5k¦ÈŽ8xB$@‡”/_^J•*uèH€R%°lÙ²a(p„Ä‹$@$ R¸pa)S¦ Q ¤ÀªU«B†¦ GH,¼H$@$@$‘(pd$MÆE$@$@$’ŽXx‘H€H€H # PàÈHšŒ‹H€H€H $ !±ð" dÍ›7ËÞ½{ÃFxÎ9çÈŒ3ÂúÇÒãßÿ•íÛ·Ç2‰q4HN=õT)]º´œ}öÙòì³ÏÊòåËS„A~î½÷^ W¬X19餓ä–[n‘uëÖÂ3FZ¶l)È¿ßÝtÓMv~¡þb½Ôù믿¶t¿øâ ¶BgT½§Ö¾B&ž)pdt&I$³”-[V¶Ð“&M’õëׇõ¥GÇŽåÚk¯e¸çÌ™#W_}µT¨PAžzê)¹ð å•W^‘&MšÈÖ­[-ÜÚµk¥qãÆ2pà@»Þ·o_¹à‚ 8?þøÃÂýý÷ßòí·ßÊþýûñã jÕª¶ÿö€Xºt©L›6-pŽkIII)ÂgôÉK/½dùÂoj.£ê=µö•Z>2ËŸËb3‹4Ó!ÈöðöüóÏ?K¹råäØcµÁ #>ÊtÇŽ¶Ôç‹-2ÿZµj¥à‚ùóç·ë{öì‘ääd?6Tro¶xïT©’]Ú¶m› È8ÇÀëwÙ³g›6ãÌ3Ï”ãŒ3LÀ7h$üqY°`åµvíÚp7ß|³œp ҭ[7v#œ{ì±Ç^¤~ýõWyõÕWíÊûÏ?ÿH•*Ua6mÚdåÇògðDÝÍŸ?_¶lÙ"'žx¢äÍ›7õ2wî\«”=W®\?`ÿ‰ &ÈE]$#GŽ´:ö×o¤zÇý´rçÎ[êׯoõŽë¨WÜ[°`A ×cŽ9^ª}áúŠ+LstÜqÇYá´l¨çjÕªYÞŠ)"ØkÆ9”iÇÌi!èH€H€‚L™2ÅÓN;èjøS}£õ *äé€ìi‡íµnÝÚÓÄÓ·O;W¡Á{î¹ç<ô¼FÙ5„;å”SìxÔ¨Q¹Nx: *Q¢„wÇwx:{*$x:@üôÍßÓi ;ÿè£<, âmÞ¼¹§ƒ¦ùmذÁS!ÃÒÉ—/Ÿ§÷î»ïZ¼úÆo×O?ýt ûÄOxÈkÉ’%=øá>äNO¯U«VV΋/¾Ø®ùÿSÈÓ)ï¼óÎóxà¿—«FÃÓ)ﯿþ øÑ?üà© àé€è!;wøûzöìiyƒرjFüAR_sÍ5^½zõ×úõëgeSá/p ymÚ´©7|øp‹ìvHMt$@$@AÒ"p訧›„yªþ·X0x`Ðþé§ŸìÔÇlÇ/¼ð‚W¼xqoèСž¾z—\r‰ Nà2dˆ×«W¯@nôÝ6l˜·dÉ$Þ{ï=óÓ)øp¾xñbˆî¹çð¼yó<}S÷î»ï> ‹ƒ®«–Åáƒ}ûöí½6mÚX8äªKƒâ¹ýöÛÍ<ÕTxþA[§9¼.]ºØ€ ¡G5 ·`÷ÝwßÙý`£Ó#žÚix#FŒðôÍÚ‚"=¤a(”sBÚ»¤Kà@ž1¿þúë=„œëôM@àÕÙ€‰ÁB „DÕxCøCà:úè£!üÁ²zõê&Äá\µvŽc¸Ôê‚âT-‹ öªùñ®¸â »õ.Ÿ~ú©§š*ãƒsÕ™¿¿}¡npýöÛv¯N-Yà¾:uêXyÕVÆîwÿÍœ9ÓÓ)/¯@žÚØx@T£ã¼£þ¥À5*$ ÏK‹À7sUÿÛÛô‡~è­Y³ÆÃÛ¾Hý‚Ú+X§îOž<Ù'p¸ë¡~Õ¶Á4'ð{óÍ7MÓ€Aãù矷8TïaÐÀ™ X4:…àÝzë­(ujÄ{ÿý÷m`ó :]aoÖÔœÃ}ª¾·S§Ó0Þ;ï¼ÐÖ`ÀÄàIã€ûÔ@Ôƒ6B´7Õ¶ÂCžÜø—_~‰ ‡9 °ò¥GÃ[´há{î¹÷[o½eÚh‚œ0¡Ì¹=zx:…å-]ºÔÒ…†Åñíß¿¿]sá'Nœhçj4j!çï„ÎÔêi€ ƒÏ>ûÌÓ)9דּβ¬@àÐ)—-û…pÎß¾N>ùdOrù„paøÉ'Ÿ ð…°ÉÚ´^຅Š6 'pÄp²F³IG$@9€ì!T=-: I§Nl®\ 3ļ»s˜#WCôm×]2›†ÀI*ª*—;ï¼Óì9tPU›Mˆ[ålü {}óØ^¸9$[믿þ°Ô`› Õ@ü`Ç¡S2sbìxÖ¬Y» ÕœÈØ±c¥Y³f0¡Pvâ̶Eµ!‚?Ø È‹NwˆNAØ­ª± …üþûïv]5 ¢È0©]ÔÁ[n¸á3Ò…!/ì-°Æ9ÄíŒ1aÌëøê ,|ðó6{ØÕÀ©g¿0„õ;´‹ÓN;-ÕzWÍ–<üðÃf3ûðò;0ü§¶å>ìQ‚ò [!è^ªQ ØáࢫÃ@€ ðPAÓþF-*dÊ7Þhv%*Ð…ŽþôP«Šþ†$ ð€A¨Ú%˜€ÃC X投~§o¢6¸¹~iY †Šúv/:mc'â€PãF4ÂXúÆn+A <ÀÈ~ÎM:Õ–™ÂÔï`@ˆU ú¸Œ=ØžLô-Þ 0±ŠDçþEUþf€¸Ùw€8Õ^BÞxãÀUäBSÕ ™ð¤6-‚Ʋpпj=lEË•W^)ª đփK/½Ô rU#ª•8l…Œ*Sí„•ÝÓB(r|ÁåÅ_¶b€Gþ`ЪS_?¬ÈÁê}ÄÃÕ;«:u%0b…`†¥Ã~çÏ …a ª^WÔ…Ë'~a4‹¶­Cü”T$j‹dF¦ˆCía¢"d8 !±ð" DO'ÞÒÑ)c`Åj h=ðf ‡c$x£×yzÁ* ìG¡jtQƒ¾ áÿ¡‡ \Sµ¾¨ ÜÎ1háÍþXi€},àðV7bhðFþÍ7ߨ@·S8 ²Hñ Øã:„ä ƒVe`pÁJŽGyÄÎ!˜`ÕÅUW]eñøÿƒæÚ¬|A8 ·Ýv› ?øõ 8¸éèt†i2Ô¾Àiäƒ88`O ¸§Ÿ~Ú4 :a8¤…3üý+VP^÷7~üx¿÷aÇjØ+:Ýd¬P?Xãw`Ð~Œ7ÎØ¢llQ¿jÈi«XPߨ5ð4aB´ëþùGÞR«w%X!ƒ_¬pA}¡½8êšø¡¾à‚Ûò aÁ õ|¤æ lb¿°wÝu—i۬uŒsµíH-ŠÈþÑÌÇ0 ä4i±á¬PÐ¥¬UX‘á,ýõ­ÜæÂ±Z+0Ç®=³ýa5 æØ l&`¨éœ[¥âÎ÷"=¿ƒ!$V7¸x±ÚÀb…„èæ‡•'°Y¸p¡Ý{ØÀ N…3N…1%âRaÃì5à[·âçÁ©°ëÀÜ÷î݃½ÍÐ6.ø…ýVàøŒKuiïaá°º\‘Ž3†ôÇ…cÜçŒWý«TÜuÄ,nº:çl8œÝ˜ÀðiÁÁ¾D‰@ž`ƒ6›6±cÿº4ØŒ//»ì²Të¼` ƒZÕ\x>ø Õ VûÀ†£Ffø‹2¢MøëÁß¾`ÐÚ¶mÛ@>Ñ&ŸyæËV½àþP+H<œ½†.—ö%MÇál8’‹f€ŽH€HÀG@—<Ú½ß ŸwÈC¼QâÍÓ ØãÀï°K&ìð6Š·X56´7w¿Í€?|zޱ_â…íA¨xaËôáïwxûÅtË3Ê¡ƒ’½©‡õßé¼ý‡rȦ  ˆÄ6%°I@`ƒ‚’»îº+æEÛ±c‡ÜÿýR§N)W®œ\qÅòÞ{ïÖ7Ïš5KÚ·o/5kÖlpî¹çÊ /¼  äñá‡üErîyFéyž#ÅV¿víÚ¥x&± žÉœ¸ßULŽ‘#GJ©R¥Â®yß°aƒüøãi­¿4…Ç2xðà4ÝÃÀñAé_ýóÌÜ}÷Ý‚Áû3<öØc¶ ¤a?…×_=ªô;vì(×^{­…ÅÒft°þN2ªHÒÈÏç÷ß—iÓ¦IåÊ•û+V¬XcΘàYÁ$cržsbY°`üüóÏ1/ðsÏ='o¿ý¶œwÞyòì³Ïš`g®sçδG-gŸ}¶ -£í<ýôÓR¾|yéÞ½»\xá…qí|ÆŒû‚Üó\¸payòÉ'Óõ<Çy$çØ›eË–-R¯^=ûËŸ?¿ y±~Ù>’<Çì^lüåwÿüó7aÂÿ¥¨ŽW¯^í)X¿p»víòÞ|óMl*æéŸ§°]ß½{·7sæLO… Ow‰ó *d×ñüTaçÚY{ú†¸W¬XáéžJÁüýé?Þûã?~Ë—/÷t—4ïÅ_ôôíÓSm‹·fÍ‹sòäÉpº ÷Ûo¿Y¾T+ãÖŽ‘®îèíܹ3à‡¼.]ºÔCx½9sæ˜Ê©Œ§D ,›R9˜;w®Ý›J°t{ßpà žîÃõý7nôÐP&}È=}c·{Áá§Ÿ~²rã؃˜8çø¸ú U?.,øN™2Åx!=Ý|μjÕªå=óÌ3vŒ´'Újì×Ý¿uëVOh»ùÒNÔyÙop[B}#?pãÆ³6úÈ#عûOwÜõTàðtÓoíÚµÎñ §û¥X~q yºøâ‹½óÏ?ß[µj•µ ´3[ ×vqímSoåÊ•§ÿ?^¼‰'ZÜþë~>Úy{Ǽß;Å1ÒñǼÿý÷ßâ†C^Ñf'è³ïêÌEîùÈJ&èCt  äßå5µßO?ýÔSÁ2µ`éöÿî»ï¬=©f5ª8ÜsM?‚þ Ϥߡ^ýi…ã‚þ}Ú*ž_¨-šž={z'œp‚GzŽ"ÕµËÊâÚŽÿ™Cû.Y²dàYváUØðŠ)bý0î­P¡‚§GŠ~a_{í5cªZ »ÏÙ\à¢IñëžgÕŠ¤¸Žü?Ïè³Ü¸„Àxvñ:©Ýã^8ŒmºQ¦=Kváÿÿ¡žÜ󦿧¿·§Â”• }‰sážsÄ£Úõ3{ölkÑôË.^ü†kþ0¡Ž?øàëCù¥çšß”V†ÊÏ“'W°`A{˜ `ƒ‚n!lP1裂Сêf8v-))ɺ_à(Q¢„wÇwX–\ÃAG ÷ÄOxˆ ÷žy晇綾^2ÁE··¸[·nmXµvŽûTÂöðpé.ž^ݺuí:9'wŽŽH%jï—_~±4ÑN=õT ‹¸á¯Ò¹ù! „©sÎ9Ç~qܸqctpŒ¿F@»)•ÿâMàèÚµ«W¥J¯ZµjVpDý8®(ãóÏ?o‚ üÐ18aõŽ7\ý ,zăûÑ6j×®í鎨@Í›7¯Õ9âtmmÈ!®C‡V‡h‡ønºé&óÃÁmé–[nñÊ”)cþW^y¥Õ9ÚB°ÃøÞzë-oøðávŒÑ¥vƒLÐ&öôÓO·öƒc×)Ej»à‹T·´7^¸Ïs=ô¥çÚ6Ú”ë$ý|R8î½÷^‹êÔ©5ÎõMËC›Ã „ç i#Þ}÷] éùÈ &x1¨Zµª§o¯Æ\5:&:^©ýÆ›À‘–~äŒ3ÎðtCÆ@ÑWãyÀs‰ ú]ô­xÆþä“O¼èùŽHÏQ¤ºv ×£Eºè— {Õp[_—O´?¼Ø;/èT;b^‘<Ïh‚ÿy¤ç„„=ñÄ=Ê—ÚsŽEŒ•x±‰¶_F¼‘ÚüSsq'pè»CÇ‹ÆÔ£G¯R¥JÖˆT'õbðÆ  ‰ Ã/p¨:Û6l˜1X´h‘§ª4ë´ñÖŠÆñÞ{ïütлýöÛMòCçÓ·o_óC¼x°p„„?þØŽñp!¦e…ÀVÑôËáÚEH@!.ÆÀ¡3XW]u•u"'ÅúH€ê ” …kø!ʸԭ[7•æÞìàqë­·zÇsŒi ýêü˜§Û°Ú5ÞV:;Xà@§ Á*üõïßß®¡óŃŒÆé믿ötKdóÃÀàL5ÀAµ†¸ÔËÎÑÉãÜ_^óˆð_< x›tj@<°"àtNÖ@¿óÎ;öС3Ä”ÞhPèðÂÕÏ}÷ÝgZ1¨;àNàÐùXÌê |!´`€Ä@êwÕ«W·7ÿµPÇhCx+ å ªF9|ðÁ€Àá„O„‡ ¡.œÀ©íâ>ˆÇ¹W^yÅÚ:ÎÁéAý !0:'( À.ømÏ*žü¡Ó†@‡<àyr¹µÙ[^¤çà B™É¬ ™Á…Ží˽иüGúW#š~ýŒ7ÞxÊجY3.²ãp\ ÑB:m ?úè£~7Xà÷¥V×–‰TþƒðýÀ˜6 mùºþúëí.ä×ü}¼?:öx¦á" ‘žg´w´ä!’À‘Ú¸àŒoÎAˆ‚PAý$¦yá0v¡Þ0Öáç§vZ@›ÍsŽþÅ9ÑöËáÚ…‹+µßŒ8Â~KECTNÕs¢*=ûƒ‘N«˜5²¾§¸_5˜¾Õr®«48Žt sÍÒ°aCQé>LçûD@ÑŠXZkƒ5Ã?í|D߀äÛo¿µ¼nøÿ¬Ÿñ18•øíWÕÿ¢`íÿé "*´˜Á",ŒµmÈf5ôÿ5ÁéÃb¿:د Wö‹2'²gçPFáªÐf—PFW>X^ë[Œ¨€eõèK/½4bý¸zÕAÔ%!*õŽƒôM-pIßÀíXß&ìW;£€àïüRxÀ‚«JB9µ ²oÛ Œsþ<€>vɹ2†j»î>ÄãÚ¦ Ëv ¶]ºt‘1cÆX›lРA ¹ðþ_Dµ;þK)Žñ¬â9‚Á öPÚ Ú· ¬š$Ñ@´S¶Káž>3™à9×ùqÑ·DQ5´ ÌªÕœºì$äo4ý ðahˆ/¤ê›«¨**@YyÃqqÏ€Nõ¸è`8>Hí9Jk]#~V}q³~Y§î,I}1±qý.ú c¡ž£´Ö52‡çœN ª Ï>„i8äM§Eµ‰¢Ú»@Ô¯jq¬¬:ý"ª… ø…;À󌥵HÓ9¬Tq¾j/‘î™Sí‚SÍŠ¨fÃŽS\¼þ_ôwè+ðŒ¡~ÜŠ5˜pÇéyÎ]þÃÅ鮇kÎ?³XàÀ@ i:3¼ «JIÜ›ëüùóoWðÇR'45ä³ÁÉ_`4 USÙ%4N,o‚d¬ÆFöV£†¶¼"¤{Ʊ4ð6†} @k­‡ûR#Žñ€Aóì éb©îEžOÄ…| ÿxûƒ „8 5뼿E¡IÁQñ\  3„Vuë8´põ£ªQ{ÈU): gKPý04iÐF@øDÇmÈqÇgìÑ9ámo¿Pßh7pþ¶„óÏ>û,0Háí oÉ– )C§ƒÁW§Qä}]+%y®½ªŽ¶6¡ åÄr=8´tÆXþæw‘Ú®?\¨ct‚ˆ0hè´ˆiñtÊ2°<0øøp🮠²r©*Ö‰Q£FÙ›˜ëðÑYª½‹={xVÔ TÐãYŽô|¸ô3“‰NÝY¿ óÞrì±ÇÚ²{hUsŠC;Uµ¼ /ÄÀ‰A.h´ Pâímýž·p.Òs„{ÂÕ5üÂõß6ðB­Æ <›xÎ!@[бÚ‹›o¾Ùúb´K´YôÁáWíìZTç Y nçxnñ<« ¡¨MŒ=¿xžñ|«q»``‡ ±Ái¢¡)ƒFϹ>R\ü¿¨“K.¹Äø ~ÿKŠ?\¨ã´>ç¡âw-\»>æ×uNá`ð‚ùâhl6`覵ù1í=·$ sù8‡l!`ã•8×ŽÔ i`Sá\8+gøÃŠW¥:›SÇý°q¶"X žÍ›aîL›ÿÆ}˜ŸGøÞ½{›­ DýóqÚÀ, Âiã4»„Á2_äyEü˜ûT¡ÉlGœ ‡³rÖŽÚâÀu8Ø9 >Ì}Fëâ͆öX½àêU5 îÔŒ3aãàæ"aGc(ÿ\l¤úê¬À+bœ æcQop°]€AÒCXØz`Y$l8´Ã²´á‡väîƒð*Ø+ SAÁ–Ìá^÷‡v {çÜ6V¡ 曵ó,ËT!Æ®¡}¹¶¹`¸Hm¬œÁ3ÂÂÆ=0 ƒQ$ÒC¹Ñ®µS³ö{ ?¬RqyþÏ&Mšx*8æ•‘3ŒØ°„Ï­¶B]èa6IÈO¤ç#+˜À(Ï(ò‰6¡gàyE~SsñjÑ–~+°PÇ®ý£Ì‘¸¨ö7ðl /C†-œªÜÍhÇ‘ž£Ôê÷Gê¿Ñ—âÙvmSt«n0&8»;ô±¨WõŒåÞxÞ`ßçŒ×]÷«‚Šùà vî:~ñL¡@ÛÁ¶ p*àX¤1 ö+à©Ý«Ðf÷©Ðdaݺˆ]wùp×1æ/‹u~øMËsŽðié—#µ Ä•šËhhR¸´ îfŽÁðÉ?ÐÀœ0vr :KÿÚqç—Ú/â‘ ³Òö‡‡à:ƒF¿ VUªö_JqŒ%TØG 1x9ÎÑÀ0˜ÂÁàT,\¼ i-#ê¨ß¸ÓÅ©~ ˜¢ý Ã…¹8ܽøE'„Á†X~#Eø¡£Ä@ìêÑÕüÒâ7 ÛTÓ0¨t÷»i@xÕ±†?TûC‘Ú®K#Ü/V§à~çtž;`í®eÄ/½Pår\ƒŸ¬b‚ü`O ùiuñ&p¤5ÿ%Í:}Ø­‘¸àå ýÚ'Vq9ÃI¤ç(šºöÇêùó‹ºÃj¨p}5úc,uKM±‚ ÂxZžgŒªµ ,f€0àð\é”NÈhõûõ"@7ÁýS¸ðÁ×cõœGjÁy>Ïhã?KG¥t¤[Ö†rP‹áÏ9¨?¡BKƒÑþB9\gƒ©œHS@ÁF9.<üœÚ×`ÓáŒN]þŠM¥@U¯pȹÖHõƒi+gã“K¨fýÆXþð‘êÑ.Ü1âuFmáÂàz8£3}à {[¤¶ö¦ÿ{À`ÙïœÝŠÿZFCÊEÃ53™ ?úv*«Ùú¦—1e 59ìj‚]$.˜zñ÷cÁ÷úÏS«ïpuí#Ô1â 7NøÃcz2¸?Öe±þ QãyöËâ&L¡ø]¸ñaRãàG·l0ƒmL¥DSFÿ½î8VÏy¤váÒÎ¬ß 82+ÃL'> Àžó®0ÚÕ©‘tg6˜ vè8ÂuxP…yð}uŽ´‘U¿fT” ™dnÂn[íþH—è§;q<ŸþÕ‚.¢HÏëÚQ ý ›²SN9Åì¬B‡àUH‚ ÅÆ80ÔiÚ´©ÿ23€ªâl¦Î%Æ$5ª°¥¢0¶¢#œH`РA6X«š9&ÅǪl€s¡ç˜$ÊHI Ft/%ûMF½Ðñ*••“Ñ’ d#8²Qe²(ñO`Ù² ñŸIæH€b@ ¬ ¦Vè˜={¥¬\¹Y×t—ÔýJH‰¿öëÀaàK‡Mv°‡]Ö0`¾´o_C÷È“5Èá©ê’åL!€}M²íþ û“åàµeÚ—,ÞnýÛ«ï­ú—”ï äª²+Sø2‘Ì! +O34¡°£ì8èüÊ A¿è¦Sÿ bùòåRãÈBº)TÝf¶njöß_ùò…tîö¿ÍxüwG{íjhã ‡]5õ£kÁ—yž rå*¨m¦“n\5Tvîœ )2‰Pb-Ô#Mlsh®Eù¤hîRR W!ɯmµ`rQ)»ˆH.,y“ HÞ\ù%Yÿ»U»Ë+K:Ëæ½ÿ}j ØŸç‰K #Wef4š¸XbŸó]»öênwýeöìCÛ¶'''©V"—{´?ä"_¾<ª )!5k–ÓôÊJµj¥åè£KëR¾š±Ï$Sˆ[ï¿ÿ“îp:D—'VÑoýtÛ|2c9“À¤Ç—Ë‘%)·~#É>ç“b=AH(X´UþÄÂrAßš’§ðá‚HÈ›x1Ç À‘ƪ߶m·n›û²n¹¾^?6t âÝXB™'O²nå{@Î?¿ž~ ®cÄðôÌÞZ·î§ßmYn…œ:õ›žËÞ%fé‰Àú?ÿ•á×Í:ËèߪŸ_\š>UM’UH¡#ÔP$MPÑ¢ùõ0د¿¸i6‚¼SœbÅ1„ ¸îÝ[¥ðãIÎ"°jÕæ€°‘;w²~UwVÎÀÒÆ=2õ JÉZ¢Þk¦Á5eåÜg¦°÷5?¤À‘Žº(Uª°~誳îŽY8U¡#Ož\ÒªÕñú¬ŠéH‰·dÇÿªmå¿Çmÿþƒj¸;=»åÈFê_¥›öERVÀOÿθ¯ŠœÖ%ôδÙ‹’Á(p¤h… Åô-µ³-Z 0„Š ƒËP»ŠMNºöÅÓt î` ÈK–ü£_'^8ç d%ƒû=Y2fóÿm8Bç$IíÕ’s%I³Þú•íöeBâUˆ@€G8©yU­ZJ…Ž»tù[ÞB´GUJ~üq¡~R<²½GjiÑ?q ,Z´N?ǽ.EÐ68­’ O²€ÀŽ5{eúk«åÓ–ÈÄG—I’¹¥Z“â‡M“$ëzÆÜù’¥õ›µäèf‡z ²Î$Ž#¬´ZµÊÉ_ܩơ¹+VüN?ž*U—§ž¡{Z—ÕN ¬dñ‡ãqö&0tèLkþRB<8c׸ûãç1 „% ‹OVLÞ&cº,‘Ï.þSÜ$Ƕ+-í¿®/Í^¨.'ßVQ ñp¡ù‹ç‘6Ö–ò'v—ùKi&@#ÍÈ¿á¸ã*«0q{ ¡óõW]uªôíÛ^&Oî)çœSW§VËÙg÷Vû™ô ›Ã#å•lC`ðà!5\k×n“3–e›r² ‰A`ÿîƒòýCKåÀOš=w´´ÿ¦¾œxK)Xæ¿ÍèŠUËg‚E’Ž6ŠVÉ'—~\GJTOÿþB‰A†¹Œ5.‹Í@Â'.ÐC йzO§X’ä—_ÑÁ©W¬Ø$}úŒÑ/ªÎ°ý9ºwo©¥Çe`U¼øõ׿¥u딟Ävy„VìÚkÏ^½ÚºKü%L!°gëÉW,WØ´–ŽÛ"ãzü%å–/s° è‘&Ôp¤ WäÀM›Ö–·ÞºA§VD®¿þ¬ÂîĶèýúµ—‰ºu+H§NïËô‘ñãçFŽ˜¾ K`ذçS\a0­2dÈL9xðúÚùñ—bI ’°t«5-.õÛ—•ÖoÕâ†^±¬ˆ751¨pžuV-)S¦HÄØçÍ[#/¼0Zwü]N:©šôèÑÊî‹x=†‰ ÑO•çAƒn“&MjG COˆ†ÀæÅ»eîàõ’»`²œv—­FÃŒa251`}é¥'¦*l Yh9Þ}÷&=º«.¯Í¯ß8y].¿ü5™>}i rÅ(3›ÀäÉ‹R6°->lzèH ½îódñèÍ2òæ…òå•seõôíRLí.èH ÞPÃG52mÚRyî¹Q2eÊb32…Æ©t‰I k×Ïä³Ï¦J®\áåzhA Ì£|Z¿Áö[Љ €¹Ž)í«÷Êü!dÁWeÏöýRU—³bµIÅS"kVcš)FNPàˆ'«¼°oY³–KË– äþû[J:²*;L7¾ùæ7Ù¾}OŠ»1…vá…Ç«v+åγ͛ד’% ¥ËˆD`hûù²{Ë~©sii©Ó¶”,ýß*“H÷в’ެ¤ŸJÚãÆÍ•çŸ%sç®ÑÆ5”nÝZHõêÜá/lqí]¥J7éßÿ­Ïâ:ŸÌ\üرv¯*“W’Â/6‰ÿB0‡9Š@x]oŽÂŸ…mÖìXùî»ûäÍ7¯S•û*5,ì-PÓ¯\¹9>3Ì\‘ dÂå)ldl&”!(pdÆØFüĉ=lIí/¿,±]K|ðKY»vklfì$@™N`ß΃2÷‹ òc¯¿3=m&H±$@+µXÒÍÀ¸“’’ä²ËN–K.9Q §©ðñ|þù4ÝhìLéÜù<ÁléH€—À¦E»tIë]q²Év"®Ù¢¤xú &N™$n2ç) І#%„9Û»÷€|üñÏòÊ+ãdÇŽ=Ò±cc¹ýös¥X± S†œ˜QÚpäÄZ_f,iýkÜfÓh¬›³CŠ_޽¬ŒÔº¨¤ä-LãŒðä蓈(p$b­ùò¼k×>yÿýŸäµ×ÆÛçÏo½µ©ÜrK)Tˆëð}˜âæGÜTE\dä‡'–Ë¢Q›lgÏcÛ•‘ 'SSÃLÄ„Ž˜`ÍüHwîÜ#o¿=I L'êw\’åŽ;Εol, p©\æ×Fø)p„g“}¶¯ÚkŸ}/Pš³Û9±þsZ™i4šMj.]šËÔ©ØÁúöýN5ê%ï¼ó£`ú…ŽH þ©”W(lÄ_½0G±!@#6\³,VØp`‡ÒiÓ1Ó§Ÿi«Z>ùä9pà`–å‹ “@N#°vÖ[iâíÏi%gyI 4 ¡¹$üUìZùøãmt›ô‡ûyôì9D? ÷¬~t†YÀ'|YˆCûv`Iëzù²Ý<Ùi¡lZ¼Kþݰ/sÊ,‘@æ  Gæ3Ï’±YXß¾cdðàé¶[)¶KÇþt™K€6™Ë;³RÛ¸`—Ìûr½}D iÖlYBê^^FJÕæª±Ìª¦ÿ¨áˆÿ:ÊV®\BŽ«dÒ¤¤~ýJrÛmÊùç¿(cÇþ™!ñ3È©æÛ(C¯ž'kÝ)§t®(¾m §÷¨(Ieve:’N:éþ<Ÿ§šîþýûeÓ¦M©†KO€'žxB¿õ\T·Ž?^.¾øbyöÙg£ .¿Üÿþû¯~Ãh{¸ ¼ž…(pd!ü¬Hßbyíµkeüøû¥jÕRrýõ¥uë~òà ³";L“ž@µ¦ÅäÂÇÈå_Ö•zW–‘<…“eäÈ‘º_)Ù·/s§S&Mš$ýõWªLc™¿¹sçÊ‚ RÍÜyç²yófömUøpüåîØ±£Î_.(¯g! Y?+“®]»¼ x£|ûm7)Q¢ \uÕÒ¶m]å’zg••ùfÚ$oò—È-N:´ÆîÝ»åŸþ±l.[¶LüÏXZ…9sæèW g©÷¡•cÐ4¬_¿ÞÂMŸ>=p/ÞÔ'Ož,K—. yÛ¶m²uëVdà·paä…;wªVs’¬^½:GZó¸1ÂÁ† ¬\{÷î jÅŠòÓO? òïʼvíZiÕª•~ »Ž»¬ßŠZ)?þø£ üÎ!^?K\G™ ¬øÝÆeƽþ2¯Y³FÆ'ø¥ËB (éÓ—z—_þšW¡B¯}û7½Ù³ÿ&—¨\¹«7|ø¬ÄÌ(cA@ >½Yo¯ñv¬Ûuôßÿ½—œœìi·îåÊ•ËSÁÓ7~¯nݺv-wîÜ^ùòå½_~ùÅâìÚµ«W¥J¯Zµjæ{ï¸ã¯lÙ²vŽxžþy Û¡C‹§dÉ’^Þ¼yÍÿ¦›n ä­V­ZÞ3Ï‘ÖÑGíÝxãzÏž=Þu×]gþyòä1½{÷6¿£Ž:*pßý÷ßïíØ±Ã;õÔSíâ'j±°*4ÙuF¹8ñÄ=”ΕÜô3öôÓO·ò^pÁÒ.X° Å9`À€@<È\X±@G?ý´Ð»è¢~&xÜpÃ@oîÜÕ?9 GÎ03bX=}»7®Ç_ÞÀÓfyžû›·rʶ4%;tèPôôÍÜîÃ`rÞ¼yž¾}{j·`³j?<*^~ùeO5#^óæÍíüñÇ÷T›á]qÅ6 ""ûé§ŸÚ`úî»ïÚùW_}eé¸3Þ×_ÝÂAàÁþå—_Z¸´äÏnóŸj,ý=zxëÖ­³2 NàèÓ§¥;bÄO5<ÞÛo¿má§M›f1ê´“7pà@;îׯŸW¢D c„ jâ)RÄ‘hÜ×¾}{¯M›68ôÔžÅÒS ‹·k×.ù¬T©’ît™O€S*útÐ"p晵dĈ{ô;-·¨úq«Î­¾ ßhùP/þOE|($H {À’Ö??[/ƒ/Ÿ+_ߺPv®Û'M­jF •N/’îÂb*`Ê”)Ò²eKSõ«Ð!*TØT‰³u¨ZµªÜ}÷ÝR¦LiÒ¤‰äË—OT}ÓWãîóSL«Ô¯__tPÕ„ènÂ7ꪳê6mâÏ â-¦+~øá=z´…_µj•?˜G“¿Ãnúÿ…o¾ùF?£PHž|òIQŒ•Aô@ðAƒ‰ Z‚k¿ýö›œp R¸paÊý6Æ\sÍ52cÆ ›ZB¼þù§ú§a\ØhÁ¾T ŠMÓ<úè£Ú—-¶kÑÆÁpG€ûéfËlÓ¹çÖü5G^xá[9çœçìkµ]»6—£Ž*•­ÊÊ–µŽ¸y$é?,i=÷™£¥Ô1³¤uùòåøÍ7ß”>ø »råÊ{ ¸ *®«&Âo}»·k0õ]4àAÔï \8›wá»té"cÆŒ¤Ó AýäAèî>šü¹xƒ'Nœ(ÇwœèôNÀ«aÆcÄ­S%¢‡ÀµâÅ‹‡ðaìÚ®];PtÌ1ÇHéÒ¥÷„:ðÛx„òǵ“O>Yä_³?y:­b‡jÂÝÂë1$ºÆ0AFXZµ:NßÌȰa³¤OŸ1Ò¸ñ³j`zšm£^¡B±Ä* sKa”¬Y@u­,5.()y e¬â·bÅŠ–ªNÞâá L˜0Aj×®mç*¢u~cH º¿þúëa«<>þøcùî»ïL»Ñ¸qcý°ã~Á@ÊE“¿P÷áVâŒ;Ö´иÀAKÍ â†öF§|ìÿ >\Ôž%pî~øaýöSj±bÅl¥´3pŽÚ„Ø9ŒnÕ6ÆŽ#ý#\[üñ‡ŒöíÛWž~úi¹ùæ›Eíf"ÝJ¿ÈØ'+d”YO{Û¶'içõ€ôîÝN;Êùrƽä±Ç†kç°#ë3ÈÀHÒ/Á×i[:Ä ÷Æ?þ|Q#J©W¯ž¼úê«6­€k×_½~‚ ‡M¤5ë3gεá¬ÈÀ ­[·N d˜æÀª5ì´Õn™nFå{hlÙ²ÅÊAH BEm9y?V‡¨íˆåƒý¥—^zØêÜ€Õ<Ðj¨§,Z´Hzõêeñ Ïj›bÇ/½ô’@kÒ½{wq‡yøþÃýÈ ò…i™Ë/¿ÜVû”+WÎâ¦SVtY@ óÍF˜b¢Ø»w¿÷Þ{?z >æÕ¨ÑÝÓïµx›7ïLôbeJþi4š)˜S$rð€ç-ý~‹·aÞ¿)®ÇòD—|V™,Y²DW}Íöt*Ä µ›·U)j×aYèÖ­›wæ™g²ó /xªœÃ0«]à`4Z£F «TŒ,ݪøëT„ëÆWÞI'dapï…^è]rÉ%¶zFßú½´äñFrXa‚¼à«oÔÅs+g` Û¶mÛ€þüù«h'ŒFQ>8Õ”3¬ÒA8µ·ðTH°2Á_µ¾ygŸ}¶§¶,VÈÀ¹rãø³Ï>3CUéêY ‹¼!N¬ü_º¬!À­Íµ%Ò¥ÀîÝûtNz²ôï?^ß²öË-·4•[omªFa|{G”[›‡#“ñ×ñ “º 輡ì{&§ÜQQŽ¿±\Æ'&F¼Ã~Óp˜Ö€Á(~#ÙT„‰Î.cJûL <Øâ”ŒÓV„ºût }—h`Ó¡BˆiRË´#Áö!þt0]‚ô±¿öÔ€A+4 ÁûpÀ6ùU!)Ø;p60vžˆWW–˜¦ÂÙ¸@«‡ 6{B`h2œ ´JØ}T…0Óü„º‡×bO€Gìgûþýw¯n"öƒ¼ñÆ÷ö0ß~û9:GÚXçc’e{QG” Ž Øêé;dîàõ²|ÒÉ[$—Ô¾¸´~פ´©˜øíÑ Æ ;BÑߊéÝ·"ì °Kq6 aуþO€F£l GL `Á¼º®™ÜpÃYòæ›äå—Çj'5I:wn&×]w†Î—²™1dF*ý»ʰkçË–¥»¥|ÃÂÒäñjR½YqIνAfª‰dq¬ÞˆfuFFe[Žé¶ã•Æ“ø¨áHü:Œ»lÚ´Ó¦Y0ÝR¼xA¹÷Þæ¶²%wnÚ(SÃÛæúû'ÿH¥ÓŠVБ ÄŽñUÙ"7%K’G½X7;ê)-Z4PKú¡rÖYÏè¼ótµD‡Ý Ć@ƒe)lÄ-c%#&@ãˆ2‚pÊ–-ªkÞÛê’´ž*pÔ’nÝ>—¦M{ëN¦³ÃÝÂë$–ÀÖ¿÷Ø'àà @\ À×Õ“=2W©RqyñÅ+mã?Jî¸ã#Û2}̘?²GYŠ˜ðô£ªË¾ß"£n_,#àVIDATƒÛΕÙï®YZŒ˜H ¶(pÄ–/c÷¨V­´n~ÔA7ë®›!•‘›nzWw$|I&N\à ÅCùwý>™5` jý‡Œë±TråK’ úÕ¯Ô  %Àå Zq‰œíZµÊÉÛoß Û ¯’çŸ-W_ý¦œvZuÝ­°•œ~:”D®ÛŒÈûO,—E£6I¾"¹¥ö%¥¤îe¥¥p…Ä_Òšl $2 ‰\{ ž÷úõ+ɇv”Y³–ËsÏÒíÓûËÙg×6ÁㄎJðÒ1ûé%PªNA]iRTŽÆ’ÖÜÙgIkzyð>È.8¥’]j2Ëqâ‰UåóÏo—!CîÒ¯gîÓïB¼¤ßš¨ßAXÀ¥bÖÓK Þ•e¤F‹6Ò ÷‘@œ À§“³Õ¨Q ý’dgý0Õ­ú¨mÒ¼ù‹º]ú²xñ?9G¶,óÝž¬ûmg¶, E$™ŽÈ|蛚6­#ß~ÛUÞyç&6ÖéRÚçt'ÓOõ+‘³ 7L2#l]¶G¦ôY)Ÿ´ø]¾ëºDîç~,Á•q@"  G"ÕVËk‹õå‚ êÉW_Í–>}¾•ÆŸÕKO•.]šë÷Šç0‰W\[Ò:q‹}×dõôíR´R>ûxZí6¥8]’xÕÉ“À ÀqÄA, 觨å’KN‹/nh;•öí;Æ~¯¹æ û~K™2Eb™<ãN'ùú•Ö™o­–]÷ËQg•–¯Ö”ÊŠŠÐ4Dy $> ‰_‡9¢ÉÉIrå•§Êe—¬6¿Øâ úÅ>wççé'¯ æ‰RÈ<’õ+­¥¤N[]ÒZžKZ¥Þ˜Oˆ%~¼-–twÌìÙ³_—ÔNÖÄÆÛÊ–NšÈm·5•"EòÇ,ÍŒˆ˜oËŠŒƒH  Ðh4ky¶OÞCȘ:õaéܹ™¼÷ÞºyØSòÊ+ãôóÝ{I(Æ6/Ùã= @v#@#»Õh+OyUà8OGt«ôÆÒ¿ÿx< ˜$ЂÐeý»Ê‚áeX‡ùòås+OèH€H ZœR‰–Ã%Í›ÿ•×_ÿÞ4E‹{î9_·N?]òäÉùOÄ)•-Ëv˼Ádá7åÀOªŸ_BŽmWZÊ6(L™  Ä @#1ꉹL#õë·ÛôÊÇÿ,eË•®]/víNŸf¥K$ãŸßwÊôþ«eõ ]ÒZ9Ÿ~Ó¤Œ‚æ+Â[VÖ#Ó&H;N©¤ïHX.ûÔS—ÊäÉ=¥I“Úrÿý_èooÝÉôWñ)_¾˜tèð–´ióŠüüóâ,ÉOV$ ÛŒ‰.·ïš,°%+²À4I€r  9°ÒYd‘c­(￳|óͽR°`^¹üò×äŠ+Þ™3—gKýôÓÙ¹x, @: І#àx @ô(pDÏŠ!I€H€H€ÒI€G:Áñ6   è PàˆžC’ ¤“FÓ Ž·ålß}÷`5Æ=÷Üs .”Ï>ûL,X ;vìêÕ«Ëi§¦û†\¡£ã;CÌ+€ döV‚‘‘ä4+V¬?þø#æÅž:uª 5K—.•Ö­[ËÍ7ß,%K–ÔÝRß’|Pöïϼýn¹å@Ò®]; 7bÄݶýùä“OLÀAz˜Ê•+— 5Д üòåË¥S§N¶áØÝu×]òÚk¯ÉÝwß-—\r‰Åõí·ßÊË/¿,ƒ6íJŠŒð„H€¢$@ G” ,þà ì°aÃ䤓N’¯¾úJ?ÄÖF¾þúkiÚ´©ý"×矾̙3' ùñÇM@9çœsäÃ?´ƒ³P1XC0èÝ»·~Y¶– 4ÈÂ9-J(D`϶ô†P2yòä@P2È%h[ `~åË—7á¿pþshà‡`šÕ«W{v>ãÆlÈ…üuíÚUÞ~ûmÓ ¹Àýõ— f­Zµ’ã?^ |8‡cðÅT ¤—Žô’ã}YN \¹rrÙe—IñâÅmÌ“'R*THð-7­áÆ•4à ÁÖÛÅŠ“J•*™1&„ h>ðvÛm·É¢E‹loùHá µçªU«&çwž¥ƒp*T0 ‰ ýõ×K¾|ùñÌž=Û¼/41NàðŸc ùÆ}¡„ü¥æÆo „ž%K–˜¦&þü‚)ç å8묳¤@)4hY×fÍš¹ ü% tà”Jº°ñ¦x àãÆT‚ –5XÕ7u|«(¦Jஹæ›NvcàÀ¦í€ŸÓf{ì±ø x„s+VLá…¼¸8àá ÃyjqÂFöÁñã^’†º?+ÎaÊ S=˜:r®páÂ)„¬|qîì³Ï¶é'hx0Ó¸qcçÍ_ Hj8Ò…7ÅhÞî]>1­AÓx‹?óÌ3ÍkÆŒríµ×Ú´ V~À®Ó %J”0ÿ7º(“ÀßÁ† gì¡!ñ þx`XIxqÁîþ!CÜ%ÓÆtëÖÍÊmÅE]d~`á7FuÓ1ð„fUîÓ?á>”aäŒ3Î0 Ú §ùd‚$@$8Ò·$  ˜Fx÷Ýwm uF˜£F’W_}ÕVt`Z¤hÑ¢¢ÐŒ|ôÑG¶eñâÅÛŽpF£°“€æâwÞ1ÓO?=ébåð™3gJ£F̶¯¼òЬZõßçâýç˜^MŒCû÷ïoÓ!È740l…m‡*W®l„)S¦¤°Á@Ù‘&4<ÈÊCVä'œƒ€ƒVÜ×¼yópÁxH€¢&À)•¨Q1`<À=ÞþÃqð¹óÃ/j Î0æÄ îVjôêÕK®¼òJ[É‚$Ð `j桇2?h^:ul°w÷ú5,˜Ú€à°}ûv†6õêÕ“Ÿ~úÉ‚C @<È#¦wn¼ñF»ÃWubFðy—.]ÌXóÓO?M¡é¨Q£† FÚ¶mkùâ‰'¤cÇŽ¦=ŠÓrtèÐA–-[&îK¼°uA8LA@ åp‘"ELƒQ: 8RIºîß;ÒHx? )/¾øÂÍ &iTaï‡A(ÞØ¡mð»Ø®¡¥J•2cO¿ö À¾0…†BEð²X¬þ€|,3­R¥Š`P‡ƒÀm´°¥ÀtŽ›®ñ§“Ú1VÍ@û=4 ˜À~q"N€Â1ø‡r؇S?È„‰H¶#íÛ··%·×]w]¤ ‡ù´I#GŽ<ÌH€r.j8rnÝ瘒C»€éLŸ`Ÿ‰`ƒÓúõë_¶shF MˆÆ!¿ñeð=á <ƒÃ…:Ç>"Áq¯A^à ˆ³lÙ²ö*~ÿ5eØ?Ó/ÎFÄïÏc H 顯{ŠÞú±G¦ŽÄ«K0­ì`?ÝBC9ØÔ­[7”WÜ^ƒÀ©–'Ÿ|2]Ú˜¸-3F$¥8¥’¥ø™¸#S*.-þÆ–§TbË—±“@¢8du—¨%`¾I€H€H€âžޏ¯"fH€H€ŸŽÄ¯C–€H€H€âžF㾊rVÝ^9«ÔÙ«´óæÍ³oÕd¯R±4$@GJ€Ç‘äýB{C¸O«gH„Œ$Ë`ù-¶R§# ?®RñÓà1 @LІ#&X) €Ÿ? “ Ä„Ž˜`e¤$@$@$@~8ü4xL$@$@$ÿÒƒÔ f8IEND®B`‚mysql++-3.2.5/doc/html/refman/sync_on.png000644 000765 000024 00000001515 13515046516 020766 0ustar00tangentstaff000000 000000 ‰PNG  IHDRàw=øIDATxíÝ_HTYÀñï8ã¤ó§i§4-g6ÆËÕ&kQ)¨Ô!Š0ÒURKÚ…„ê¡/»PEÁ>ìK-+KÁ²Ñ.Y”¾dEPaA‰ø°¥¶›ZSÓïÜ;3wºŠ–¯—߯gfîïœsçœWKÇñ.€ÉøD­¨a‘'¬âq_ôˆk¢ÀŒ ÀDŽøQ´ÄïC¨¶åñÏÿgÅ ñ 0„Y‚:qZ¦Á)~õâ€èLý0HVñ× žz-¿‰C“%¨g¦˜6€é8%Úõ¬ëwêÙUÏ¿˜ª³Ä }? ?€·3ÀÀž©Š À”K• @hà a±ðaÇæUe‹ sù~ë2²ì“&Ú&B*AÄljæºììi*˨,Ëçí»÷oÆ£T”,d[˜¼3-*ÁÀ…>å‡Ë çLÉŸçfk˜Ò éw#*AEjKUy>ûšËÉõ&{µ¢8—m5Ki¬ jjƒD*¿NŽÖigwÃ7Dª’mz骹úKÛ¾±ˆ¶M!æ¤ÍkÐ?šoý¬_åÓlXí#Ò~–¸¬ê×ÒÑXŠÓ‘ùRÙ*Eû‚ՂדðEÜ;6«e"Q(²Ù=–¿Ezæ5Kؼָ_ 1òzBªJë ±XŒì96åªjL^7{ùãJÑ÷1½i@%8'7M©_\Qœ#ÓUŒËñýÿyõ Wo Éx8¼s¥v¯ªì|×SnÜ q_m Ýé î>bèÕí[JX,½4[Tú{R£ë¼ôˆ¾þa€tÝjjzzÅ'ÅìȶiIžŽòwÏs ¡€—ÕKøõâC^ŽŒ˜Y­¨µÉ%6¨´êˆº]vÛðhâ½iWv–hôëê°Ò¨¾'æÌ‚·ñ|[ßìúÅ^€YrD=<ýDû]äÇ÷s€Ïõ‹8™ºCì? À ¨—t4õᩎ¡Jã‡W‹É± îr¼cjMɘìx| šE©øNÔ‰œøA¢þ«–€Z¼ñ‡jó î#™§¢¢4gIEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1ssqlsxlat_1_1CommandLine__coll__graph.png000644 000765 000024 00000016042 13515046516 031730 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÎ{<¿sRGB®ÎéÜIDATx휵ÇÕ†¢(–¿X±" @숽÷Þ+6i*Ø»¢¢`El€" 6TDEéEš‚ÒépÀüó}’qvoçnö8†e.ïóÙÝ™$“—ü’—W’¹+åyÞâÈ!àÈ RFp¼¬žp…)í0p8²GÀ Nö˜¹'Nã¸9à( eÓš6mšüôÓOéÉîÞ!PbØo¿ýdß}÷Mí?Á }ðÁ ÜÇaàæÀÚ9pÿý÷ED¯ói+V&×^º_‡@‰E`Ÿ}öÉØwÈ‹KtŒ€œ‚ñq¹Œ8ÁÉ‹KtŒ€œ‚ñq¹Œ8ÁÉ‹KtŒÀF/8]ºt‘›o¾¹à^Sî!Cä´ÓN“wÞYªV­*Gu”|þùçÅT{nTcB¯òè£jcZµj%|2Ñ«¯¾*·Þzk¦¬¬Ò>ùäiܸqÊçÚk¯•¯¾ú*«zâ.¼Ñ ί¿þ* Xï¸}üñÇrÄGÈôéÓ¥Y³frÇwH^^žøûï¿¿ÞùÇÅ`ìØ±¦Ð Aƒ„Å"­X±B–-[–)+«´É“'ëâS»vmá³×^{éxžp òÍ7ßdUWœ…C÷q¢6g̘¡«ðÔ©SeñâÅrÀÈš5k„A ¿fÍšR®\9!¿B… ²õÖ[ûÕsR´J•*iÚ°aÃüg¶Øb ¿õŽ5JjÔ¨!›m¶™Ì™3GvÙe?Ÿ‹…  ûO›o¾¹ú¶Ûn«AÞÊ•+eþüù²ÝvÛÉøñãeÁ‚rðÁKùòåÉÖç–/_.›l²‰”.]:åžgo¹å9ôÐC¥oß¾þ3wß}·tÐArï½÷Êyç§õÐïÑ£G ý´” NÙ”ÕÊÍ×’%Kt’ï¹çž²Ã;Ødùûï¿UÀ+W®,#GŽ”M7ÝTwÁË”)ã—™;w®ŽÍþûïï§vqÙe—ù}ŽÂcÕªU:ø=ðÀ%È^íÛ·÷Y"LŒ3‹ÕÑG­éà:bÄ)[¶¬ÐNÆ(HÌÁ1cÆ»üÕªU fÉŸþ)S¦LÑyX±bÅ”¼"ߤo‰Ú“ééa÷?ÿü³î07jÔÈßi>òÈ#½ãŽ;ο¯[·®g&ŸW¯^=¯aÆ~U³gÏö €Þ /¼à™AõŒ xFˆ¼R¥Jy;í´“7nÜ8-ûÝwßyfà=––¯S§Žg„JóZ¶lé™É«×]t‘g6¬<#˜žåå•Wj^Ïž=õÞ˜W~e ¨šoBóûõë—ïÞ˜cšgÌÍ ~Mœ8ÑëÕ«—gÖ3HûG;m{©£Å³Á)›²TnWûd&…¶¼W¯^­|fTLŒ@)vf¢xǼ¶—àGžßu×]½+®¸BŸe Íʯ×é_ÔË8@…ñ0LÛ3ñ½í·ßÞ£ÐsÏ=§¼õfí—Ñr:^~ùeMéß¿¿W¥JÏ,júÙj«­t¾I?i£Y˜=³`jý¯¼òŠ>g ïÒK/ÕúÉg®=òÈ#šõkï½÷ö2`eM¡¢ ޱý=cÆxO?ý´6” jV]ïwÞÑ{³Zx/¾ø¢NþY³f)O€¡CfÅóÎ>ûlϘB õµíÝvÛm*p ¦Yy<³jxLT³Š‡ ƒO}íµ×”·Y¹<+8\p·téRo„ žñS¼‹/¾XÛ½1Á¼?þø#ßýóÏ?¯õØvk _´—:'M𤹖¿19t¢Ð¶(8YÁ‰RŒYhÀ–>3I™œÝ»w×60©áûÔSO)–mÛ¶Õ{ÚhVv½¾çž{<úöì³Ïê}Q'Œ@v×…ìO=õTP+8gu–ÇçØcÕE‡ ûÏ?ÿhêׯ¯Ï‹ÁCX€Ï=÷\Í3f²¶™ИŽ}ÙqÇuaxòÉ' 6£é¼N:iYc‚ê³Q¾Ö»àØÆüöÛoÚ8ã´k»è< ~ôÑG* ÊK/½¤y€tÊ)§è56f„÷ÐCyŠÏÀõù=zøýlÓ¦M¨à5î—ãb·ÝvÓÑ ŽÕbäÁÍVÙ U˜à ÐVÃÙ:Ñ~¬êV¢à”MY&}B¾ýö[ï™gžQíC›! ,Íœ9Sñüâ‹/TÓ£¹©Ã“®(‚ƃ…ˆñƒ¡C‡ê§C‡šF»­à´hÑÂãC{Ñ ,?þ¸6‹:X4Áî½÷ÞóÌK]dÉC]Æ$VHø¢=¡â(­(Úc1f±N2–PyaÄ¢Etј¬:éŒã¬ Wð94rïÞ½S>ô=*aébÂ2vD4‰ÈÁ“¦%BÏ|>ûì3¹úê«Å˜iª)ˆ Q#Ê/û>DÛÀ"’†õòã?j,4.uÓ?Æ ‡ù€@qÆ]µ|‹ü›nè58€“ átšÆøQ"Ö{| Kø”1û/6É#r‚`V.µÑÍ*ï™ÕEó‰já+ðŒ™$ž1ÛR|Oˆ¨Úî»ïî—%²e£(ÖÇáYêÁÆ¿2ª\Ÿ-(ªF35x€Æó|ˆî°D”‡m'Q ³ h¶õ[¢à”MÙE‹i žDŒðz§Ÿ~ºâ„ýçwz8×–Œ hûŒöÔ$cÖøý!ÚÕ AßO#úfûü5¦¡Ö‹ÿÆŸÈÖÁ8Û±µ›ÇøW¯^Ý3› }ƒÚ%e쉼â 1~Í›7WŸ†@Ïã#›Ä÷Dœyæ™>_ëCk¥¿Â|œuŽªEäŸR̬ОÙãHIã†ÉiV?*,@Ä„5‚Èdµáè`‡IC=ÆdJqz­àg´ŠF‘‚ÏF½Æù4{M½"Š•NDŠˆüáˆ2pqÑ4¢“–IŠBÆÄÑ>ŒY_dÇì¸Î–è}´Ä"e‹4 2‰Ù?TAe» [ œb ‰/”0ƒ¾þúkÁ,ÃæM'T¬ 5¦'ë=&¾F¢6Ã(=€V.S:æ#›ža„­o´^XözKgÇ=HA¿*˜žéS4}Ó0S¹uI+lL «Ó%Ì÷ ™ ¼M¹&Ðħ8)VÁÁ1û bT­˜©"÷{>è ÚŠ˜<2 ™ sb3=ãÒaäûƒ„8Ífs .ì—î(1ðê´Ù4‚JAŠ=ªdî®+NprtäV¯^cö-–ähë\³B}L6GñãÈÌ™K¥aÃÿN:o¸Ö”\Î&r—±ó¡‚ƒŸãhÃ!P©Ò‰f#¯Š ¦tÝppœCÈ-é2bC`ùò,‹\Ó¸q3dÒ¤9ªqÊ—/kþUþgÅŠ<óWüÇ™{°ø=]|,\M…!€@4oþߟ°¢|¿~ãÍŸ1ZbþœQí”Ç+TøïO*¥d¸›Xp§£c…;:³-ºË„ ³Ìß»)úC®dl8S-6¨£$!à'I£éúNpbƒÚ1JNp’4š®/±!à'6¨£$!à'I£éúNpbƒÚ1JNp’4š®/±!à'6¨£$!à'I£éúNpbƒÚ1JNp’4š®/±!à'6¨£$!à'I£éúNpbƒÚ1JNp’4š®/±!à'6¨£$!à'I£éúNpbƒÚ1JNp’4š®/±!à'6¨£$!à'I£éúNpbƒÚ1JNp’4š®/±!à'6¨£$!à'I£éúNpbƒÚ1JNp’4š®/±!à'6¨£$!à'I£éúNpbƒÚ1JNp’4š®/±!à'6¨£D!àå ½û¹DÊ”©è•-[¹DcÀhÓ¦MÎPÏËÙÿZªT)1 %j‘rÉ—^z)»b,³‚ 6Œ Ç*×èÒ¥K®5Éoóq|(Ü…C :Np¢cåJ:|œàøP¸ ‡@tœàDÇÊ•tø8Áñ¡(úÅ—_~)Ï>ûlÑ+Ø@O®k»gΜ)Íš5“¹sçÚƒåË—ËÒ¥K -·±p‚S #õçŸÊèÑ£‹¡¦x«X×v/^¼X,+V¬(´á?þ¸<ôÐC…–ÛX $Bp.\( ,5kÖÈøñãeþüùŠ?«Ü/¿ü"3fÌðÇcÖ¬YBù Í™3G˜–~ûí73fŒ,[¶Ì&é/÷È?ÿü#ÔÍŠ›NK–,ѺV­Z¥¼™œ–òòòäï¿ÿÖÛ©S§Êرc…4Kf§O'!ý€ÒïI›7ož :T¹Òº´ÛÖ“^Ç¢E‹´ŸôÇ 21"E Y¼À,ŠvÊTo®¥åô>NT°Þ~ûméׯŸ”.]Z 6OO=õTùî»ïT ¨çºë®“óÏ?_Úµk'eË–•gžyF«GàH¿å–[䀖-[ú‚±Í6ÛÈ“O>)ÿûßÿdäȑҪU+A0¨=ö&ÿgŸ}–ÒLêeò!¼L"&\ãÆÕ¤8p ´nÝZjÖ¬©BCu?ñIJí¶ÛʰaÃ䮻Ÿ~ZjÕª•rÏ3Í›7×4ÚÀÝ~ûíròÉ'Ëï¿ÿ¾Îí«ƒIÛm·)F×^{­.Ü_sÍ5rÈ!‡¤ô½sçÎòþûïKùòåÕ,Ûwß}åù矗×_]  eÙÔ~ñÅSžÛo¡q­qÎ9çÈG}$µk×–?þXN;í4ùôÓOu#•_è¸ãŽ“Q£FùZéûï¿WAhÔ¨‘¼õÖ[:{÷î-ݺu“­·ÞZzõ꥓ÿ‘G‘=÷ÜSÌq -gµšVšö…@1¹¾øâ „ëÇôK!´Gû½òÊ+š·ýöÛëå Þ³`ÁŸ6wÞyòæ›oªV*Žv‡ÕÁb/íýØcéCZÀ¿k×®róÍ7Ë'Ÿ|¢¡ýÁ·iÓ¦rôÑGKýúõ!4ô;1‚³ÝvÛÉYg%•*U’$æY°ýÚó…?Ö¡C¹à‚ äÁTíÈ8$•#8¬¼Q AA`0—6Ûl35!xvÈ!rÉ%—¨¹÷òË/«ÙÖ©S'©\¹²Vcn)p°iö7¸Ê⣱‚“-XæOABhëÄìÙm·ÝÔ_èÞ½»š¡œåB¨‹£ÝauÀ¿³rçwÖ‡²éôÕW_©°–gá!‚–͘¤×—ë÷‰œl€®W¯žlºé¦òÚk¯Iƒ tEåù>}ú¨3‹½Ž¹U±bE-G MÅD%ú6qâDõ3ÂxèÛ·¯j’W_}U}¤Ã?Ü/_êÁL$BV·n]ÍÃ7zî¹çdúôéùî'Ož,mÛ¶U?AÞi§„“´8ÚVšÿ®B… ‚™ˆÏó裦D!i,‘@L34(}#PÀ¢a£q4XP‚ÑKíäFú•ÁaecÐ,q~oóøÅô@`ì“N:ÉÏÂ4C;àø6iÒDWsì{L¾{ï½Wm÷SN9Eˆ.á)¸ºbª!˜SŸþ¹š}ûí·Ÿ_Á "|DÏà!°7øM¿oذ¡®ø·Þz«œxâ‰*ôW]u•jÃâhwX={öTí|Çw¨¿È†' ̲`Ÿ=öX4â¿”AÐ  ¹ñ1Á–z’@¥ÌŠÂËR9Eï½÷žúß|óÍzkŽ?«=«V¯^-ãÆ“*Uª¨SÌ[¹r¥°/ƒ³„p¤‡£±ï Cßÿý2eÊìhè‡~Ðp4Úó3ÑšA>]£•Øßk¯½R‡um7< ª£ 6óÀM††Øë"ÔŽvdOˆßL¾g°{̀F‰ØÇÉTV{öK0M¦»ÿþû§'ë=šj÷ÝwϘ—žH=ø$a”@+—žÎ¾O&*ŽvTG&ž™Òðƒ‚ôí¶ÜrË`ÖF}]â3ˆ=ž‹.ºH#EE=lù½÷Þ;ßãøaGPX…÷ÙgŸ|ÏÄ™Öî8Û^%Npð)p\ƒdYöG0¡ªV­ªvø:h™L„Coú`>6~áXo¨]s¢ˆ„¯ÙÀD³à«<ðÀüHoïÃ?,PðeF Ä N: lèq܆½”³Ï>[íq|vÒ‰žå¢}Þ‡(÷ôÐ7D›Sø4™ˆhXð ]¦2%=­D„Õ8ùDÝ‘²ÛùF3 "¢öÆoh!6!Êq¦‹À!jU"p-q–I“&©ã/ökð©ðuÈ·uD-«¬å˾Âè}@èÑŽäqM›8X¢ Ñ­(ûDö~‰|Ñþ(<( ¢©é''5J•Ááà%Gl­BÍáH GHˆp±+n…Æ:;àœMCH Œ“žè"hDnºé&ÕTìß°oÁä!ÌÍF D‰…lÊc³ùIh"M„ŽÑ†ÔEÈ÷§Ÿ~ÒÐ:>abú¡T¬r(B¨¢§&Î8ã =ºT´Ty¯ó…ö/*¯µÜ›k"´›c"‹%®9¿Æ*Mh7S¤Œ³dLJdbâ ð 8`É.:š„ÍMK¬úìšSí†r2øÃ?Tíöí·ßÚ¢ª!¢”å°é´iÓT`¹¾úê«•7e ­@°ƒÅ‰Ü¿ÍêØ±£Ò^œ½+*…ñ`ω…‡„­9'-ô¤S‰Ð8GuTÊ8^~ùåz<ú’R í†ý´š bóóˆ#ŽÐ°¶-Ê1{–|Ì#Ö&ú|w'jYÊá¤3qÑ*˜]MðMJVx´ [Yh&/¬œ€€pô¾¢P&Ôóõ×_«ùÈâ‚ ‹VÔ4hPƈcQxçê3%BpÂÀÇ ÃÂQÆ4 ““»ÿØïLŠài•gZ“Ž:0[‚¦¾PpŸ9jY´Ø}÷ݧ¾û#vS1ØÎà*Z’ÓD¡`¸<S-X?×™x.2&¡%„Øú~6-‰¿%ZpPÿáÇëªnƒ¤³šþüóÏj~ $”aòÛI?tºm:ÏFQËb Ò&L1&$/ƒY¡°<2ÕeŒ@Ú"ÈQTÊăº¨ 0Õ,¡Ã6im™$ü–‡£;ØÞ–8?e}NàpTŸ×¢YE9FÑœN8Ahr>ËÎä•g‰—³Ö'¡=¢ø:ö/[Úƒ“a¼Ñ4h |1‚„×9"”NhZL@û¡\6„iëFûÒ>ÞpMÊA΂°(‡Í?VB¢E¯`bàûBÅÂf?b…å4^*ƒxÑ“LD6™Ð¼1jé+rú½V²ö+=/ý>X–èYûöí5B‡ðéC°y½š—ÉÒ‰ºø’æP*ý¢Ï¤ÑW|ÈòLߣBƒ ´ùéõÛgm>˜àwÁâL ëëibB¿Jì!ÏôñDð)X-wÙe¿$XŽUç›CžA»?X¦¸¯‰Ð191˜˜ç¡A?)Œ'ákš¬ÀÔ[_Ä>¯ à‡çy4‚îçúµbªÇ?ýUôª1›¬ÿž·¾î 4ÃåøD!"\vó6Jù¢–a–OI¢á㔤u}'8ñàì¸$ '8 P×xp‚ÎŽKÂp‚“°u݉œÝÇa—ÞîÄ…ã’k°g•«”“‚ÞÎÖQÉF€W3‚(—ÐÈÉ Ð\ȵÅ! çãdBÅ¥9 AÀ N!¹l‡@&œàdBÅ¥9 AÀ N!¹l‡@&þÆÀeéxIEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1ConnectTimeoutOption-members.html000755 000765 000024 00000015330 13515046515 030375 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::ConnectTimeoutOption Member List

This is the complete list of members for mysqlpp::ConnectTimeoutOption, including all inherited members.

arg_mysqlpp::DataOption< T >protected
ArgType typedefmysqlpp::DataOption< T >
DataOption(const T &arg)mysqlpp::DataOption< T >inlineprotected
err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
set(DBDriver *dbd)=0mysqlpp::Optionpure virtual
~Option()mysqlpp::Optioninlinevirtual
mysql++-3.2.5/doc/html/refman/beemutex_8h_source.html000755 000765 000024 00000041004 13515046515 023272 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: beemutex.h Source File
MySQL++  3.2.5
beemutex.h
Go to the documentation of this file.
1 
21 /***********************************************************************
22  Copyright © 2004 Beeyond Software Holding BV and © 2007-2008, 2018
23  by Educational Technology Resources, Inc. Others may also hold
24  copyrights on code in this file. See the CREDITS.txt file in the
25  top directory of the distribution for details.
26 
27  This file is part of MySQL++.
28 
29  MySQL++ is free software; you can redistribute it and/or modify it
30  under the terms of the GNU Lesser General Public License as published
31  by the Free Software Foundation; either version 2.1 of the License, or
32  (at your option) any later version.
33 
34  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
35  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
36  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
37  License for more details.
38 
39  You should have received a copy of the GNU Lesser General Public
40  License along with MySQL++; if not, write to the Free Software
41  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
42  USA
43 ***********************************************************************/
44 
45 #if !defined(MYSQLPP_BEEMUTEX_H)
46 #define MYSQLPP_BEEMUTEX_H
47 
48 #include "exceptions.h"
49 
50 namespace mysqlpp {
51 
59 class MYSQLPP_EXPORT BeecryptMutex
60 {
61 public:
66  BeecryptMutex() MAY_THROW(MutexFailed);
67 
71  ~BeecryptMutex();
72 
75  void lock() MAY_THROW(MutexFailed);
76 
79  bool trylock() MAY_THROW(MutexFailed);
80 
82  void unlock() MAY_THROW(MutexFailed);
83 
84 private:
85  void* pmutex_;
86 };
87 
88 
96 
98 {
99 public:
101  explicit ScopedLock(BeecryptMutex& mutex) :
102  mutex_(mutex)
103  {
104  mutex.lock();
105  }
106 
108  ~ScopedLock() { mutex_.unlock(); }
109 
110 private:
111  ScopedLock(const ScopedLock&); // can't copy
112  ScopedLock& operator =(const ScopedLock&); // can't assign
113 
114  BeecryptMutex& mutex_;
115 };
116 
117 } // end namespace mysqlpp
118 
119 #endif // !defined(MYSQLPP_BEEMUTEX_H)
120 
ScopedLock(BeecryptMutex &mutex)
Lock the mutex.
Definition: beemutex.h:101
Exception thrown when a BeecryptMutex object fails.
Definition: exceptions.h:389
Wrapper around BeecryptMutex to add scope-bound locking and unlocking.
Definition: beemutex.h:97
~ScopedLock()
Unlock the mutex.
Definition: beemutex.h:108
void unlock() MAY_THROW(MutexFailed)
Release the mutex.
Definition: beemutex.cpp:167
Declares the MySQL++-specific exception classes.
Wrapper around platform-specific mutexes.
Definition: beemutex.h:59
void lock() MAY_THROW(MutexFailed)
Acquire the mutex, blocking if it can't be acquired immediately.
Definition: beemutex.cpp:110
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1FieldTypes__inherit__graph.png000644 000765 000024 00000014410 13515046516 027701 0ustar00tangentstaff000000 000000 ‰PNG  IHDRš{Œç™0sRGB®ÎéÂIDATxí ¸NÕ÷Ç·¡2”LT"ÉRB“ˆR4Ó}ºY³fG»hÏîÝ»ýâ¹'ÍNx¾øâ ³dÉ’Lõ€ÉÌ™3•—úlýÂrúF:šdPY‚5m¨P¡‚Ç€ÿúë¯>7í Ï¢I½&Mšès=”á¯\¹²æ¹øâ‹=>–5jä]z饞hjÌýúõÓWL V´¸'+‰_žÄ©½7ß|S'—Å6O‚ƒ`6/X°@ŠÁ‚‚‚Æ`£-Ð@–H †MKtE€õÕW_Õ×€€CgŸ}¶W§N„m‚v}â‰'¼|Ð+Y²¤òÙ?›Ø,1‚†GdyµlªõH£O ÔQGåÉR§ï™Œ¤Ñ~ ×yà§Ÿ~ªÂì¸AÐÐú–zõêå¡aˆÉ B¯¼òŠj0&#šûúë¯+®h)´;Ïh8&ÂÞ©S'¯H‘"1Ø¢}-¶ûKÐÒŽu À¡I:a°ÇD­›G}ÔÈadF™ .¸ ¦ ìžš5kÑD~z­ZµüûT7Ç{¬¹ä’KÌ»ï¾kd 5”%L³`a[‰ò‹¥ÃÈ2nÖ¯_oDSøé܈ðë36Ž%ø ÑÆ6É”/_^ï­S©R%“H_  }Äæ²¼~æ7A*#˦áUNÚ*2¦÷×]w¹÷Þ{ÍøñãL.#“Ø\sÍ5FÌÃî¼Û´i£6®¬$fòäÉÚO° b+Ú5A+r6)G72“ØAFf bÄFS‹ï;<±Ý|Û÷¢}âÙ’>‹f¨Kf¼’,'Ê‹6nÜØ°°±ÝL‹-LÙ²euWk7ÖmÛ¶ÍTo¹rå´¬E‹ùõÓH–T½ÿà*-¥ý9í´Ó´Ì}íê¦0tôÑG›æÍ›ë¤3fŒ ™hhÝŒpªÁbs2vìXíÇðáõŸ¢ábŠ?'prTÐøûï¿ß°ã9ýôÓÕe j\;Í,dÇÉîðÊ+¯Ô«,µš&» §E‡-8åüðÚÿ̬fÆ>þøãê2‘%Eù(WŒ{4«,K:8 y¨›‰À@ˆM¤šB–ö/_¾ÜœuÖYª•ÈË©òˆnÎ9ç#ƽm¢%MlC#Kº‘eOwh„Ž~¡a£Ð­·Þj>ÿüsí—uÑ÷;î¸Ã0‰Ð~bÜ«–C{3ÑdCc^~ùeݹ<؈¥ YËËÚ–ÒÝ `”²£bÇ)`x²<ªqJ}ï¼óŽÚ2Z}çÎÕ’^x¢E¼‹.ºÈkݺµ¾KµëTùƒÍA^ñ¿Ù$µ›®½öZ¿\k/Zq û;ÌŠ+ª}Ã;ì»ëáV›¬téÒZö ,•ž,¯Z 6Žíƒ-7þ*Ä·Ûd9y­xÞyçùiÏ?ÿ|ŒÍ6bĵÅ,v,¶%› 61–è ýþãÓ¬Y3ß.ÃNc À‡~‰&ޱÑöÕ~[×\¹ë¤aâãñÄäv<‰É7zy‡@ühjÜÆóFy;KœúâI¢ÞÊ•+ã“Õ˜ÌO?žn*Ø,ØgqƒqÜð„È’‰…º264ñD{™Üv#|€àZ¢ M›6õ-Èæ>«‚–£›t,Æmýúõ¹ÍD%J”ˆIÃ(Æ1/#<° ᓈ°qâ7ð‰VÐ̓áÍ2…XÒí²ž•rX2?úè#u¶¶k×.Sغñ-Ë$Ùð9P”ã‚v :–ëÅÞdS‚±ÏÎ4«$nƒý¶_)Œº´<éÚh6_N^YšqÎ(b)%2!a¨}6e'²l$¼ùóçï“?72duéÌÑ]çþ˜1:.£;Ië&IÕgv­bü«)‘l)O•ÿ`~wP Aä`\f›úË‚BÐWzüyn ̤I e]šì#@aèÔSO5ø´XÊðÅäFèpÅ·î ÒpË@œ\‘˜¤Þ' ÖëËÿÿC»zJG=ç¶¥“À6îuKä9¸Œ’’ óÞ{ï=å»ð ÕÕBB1«!–@'䃋%Ì¢"ønﯾújmu€gW+NÛ˜¶Îš5+e°>8.„©Äæ=:ò®5XnVîÉ¥SÌêŒe¶sŒˆð ^v Š“¤ÇoIáä´$1Huºâ´Ä‰ûÈ#è«;ï¼SÃHD(8N$1R IÉ`ج¡¯hZÂS+BËÑžzõêiô‚Bв„…ˆhŽY‚íº¤â„%O$^jø‡]œ²´Ÿå—vLtP/ñ@VÂNÜ"&ˆ{E‚ì>k÷îÝU ˆOŠ“× ˆ,wœ—ÿ’áƒ(§(Ô£n—;¿€7O=õ”îêD{š3Î8ìZµ*S.Ù h½íÛ·W/>Þýûî»O—y–ö áV!FLƒ² ii!â ‡ 2 f0on¹Ïsî f?Ú { Û‰Ø 1BKrÎÍÞª]ÁwˆÐÒk¯½æ¿'6‹vJ—‚®þá:‘½&X_/ýÀƇÚ`²Èy8#'UâÙsÕsžÒh K ç*qF´•ZÔƒ'z9u+Gt ÁwˆS6øNà¼OŸ>FŽßج¡¯œ¬Ø¥¬§<´-§46lhä`£‘P’Æ7ñ‹åvÚ7"¹¼,9Ë ö”œk3bŒ–Hœ’,‡A"À8Ú¨ÄÄ9 ƒEPZNkYØCù‰äqìˆ(H˜`=nN–ÀÏévºrxÓÈy8}Fkæv:è—N¾„¥Šól¸Œl®œ ö¡/l7„Pb†‚_ðj¤ÃŸKvyzî+˜?Ý{6'|â‰S,h§o¼ÑÔ¨QCë¡í&LˆgÕãOü³ŽœÂ5râÖØ0™sqB>¶¸aÛ‡]Aº¿¾ä…¦!<ÉšHlON2¨1Œ?ŠgÞø*F=Çs MÇ?rÐbœA[ üUäáÊà#Œì­¯žxbéµZ5þ]˜gl@„ˆö°AI´ìƒ9ˆÝ4V\Fé4§w®Öh|'s“Ú- €9ÒÈÑÕVVÈâó£9‚…€‰S²òÁ¤˜{ì:kãżù&XŸ[„,d—²åjAc–³|¥C,/JäXsÐvòW —± _ü=ÇÄù8І@®´¬t 9ásbIut`8èw6Wkº8AK1ÇŸ%œ ¥ ÛØ±säÔG¸“i§ÙÓ¶Ñ^ãq?TiàÀ©]%!Ÿÿþ ïPÅ!Ý~§%hœ9?¼Ðé‚–ãÆ ß!gÖ~•“Âfs|‚@Z‚†Gú`ôJg×H¿ýöB-jêÔU‚C1 wåLx*»Ú››Êq6Z£1zôlåÎÈØ#ÿþ]9«´2°|ù&ù1ÿ¾7Øå˜1ῲ!dyšÍ ZÈá?~žè (÷ž={å‹ý¾—“²îçŠBÂç~t,,PcÆ|+ùX·Æûï'ŽB„-óPâs-ÄhÏ™³V¾±'þkI=92þŸÍ¢ˆCžÅ Z.›–]¾µS¾Škœñßi“Ü5NÐR€Ã+jܸ¹™–MÞ,X@ιÍãÖÑ>p‚¶€¦N])‡ÿLÈ•‘±WŽ1¹å3!8q‰NÐâ‰?~®h®d0yfåÊÍòÅvÿý||^÷ü?’!ø?ŽCøn÷î óÁ äh÷¿o \ØpŽR#à->Ÿ¾Tþ>õ¯§àòÀõá(5NÐRà3iÒwòÿc> äWÇm0Çíwßý˜¢$÷*­ÿ‚rpù"âò å.tp„G ·ÓháÁrœp‚<—5<NÐÂcå8# à-x.kxœ …ÇÊqF@À Zð\Öð8A •㌀€´๬áp‚+Ç'hÀsYÃ#à-ÚO§-kÖ¬1¥K—ÎÔNŸIn¨¿SÙ²eýd° jè>ø@ë¾óÎ;•kœ£–~ûí7³{÷nCŸSõ~ÚK\› Øbôšl b˜Ò|ˆ,h«V­’ßFº×ÔªUË ú¡5jè¬D @ÌD–‚'Ÿ|RnÀ€šŽ°°ìÜwß}šç±ÇÓYý÷ßëõíÛ×T¨PÁ ºvíª‚”/_>S©R%ƒ°Lš4I˱(vìØ¡Ÿ‘‘aš6mjºtébfÍšeºuëfjÖ¬i–.]*?˜¡e÷éÓG'ɼyóL§NLÿþýµ/ñ϶ŽD×+V(ø‘ÐzŸ~ú©¡íÔÁ`ž}öÙ†¥×N&[ý¢Ï%D¿Âå&9øZJÖO°dE ]}ô‘©Zµª*–ýdc`ËŒrÍ6A»õÖ[U Õ­[WÛÐ,öyóæÍ¦Aƒ:‹,@S¦L1uêÔÑY…M‚f@˜î¥—^2íÛ·—_÷ýÞ÷ꫯÖå>´T2:餓L£F´øÊ—/¯ÑòßqÇ ´-ÇjažÛµkç Zü3ùÑØcÁiA¢oh²óÏ?ß thg4úìÙ±?‰¹±|ùr ÷Ñf4mذ“ ÅW_}¥US'Ë_0¢~‚#“þÜsÏÕvaÚ mIGÓÑçDcì_Vï#/¶b»Û²ë=†˜y35M'PdÔ8„ b{ ‡®BÊ;«½¬! oОá9Hñ†66‹->«±¸çu†%„'‘†ÐXÂ…Ð|AbÒ Í±ƒ´vé„í…vbR2a±ƒKs¢~"P+ÅäÉ“õž?h?lÅdcÀ$ˆJÙ&hV öÕ ÂVcùÂØ?ï¼ó4Ëœ9sÌm·Ý¦vZ ›nذa¦M›6ú~ûöí ›6mÒ´D¶mÛæ'£M(‹Ùo‰rÐrK|*¡µyÒ¹2áØø°4)RD³¢%Ø|ÉnV¯^í÷ ¾°„г;G&ìO<“5Q?(¨C‡þ2Ë$œ?¾nš°c®›¨«÷£–"ýúõ »Â#F¨V,{± e)ag ³œAÁÆa°Ø|0#“›Ï>ûL5Õ+¯¼¢Ë˜]¾ÉC½”ƒ`³‚&€°í^xá]î=+Sˆ?”‡QN=h›3f˜GyD7#Áìh²%J¨­HŸh‹] ƒ|ÉöšŒ•"H‰úÉÛqãÆ)Žôù™gžQ;•Ýv²1–›Õûý&hVã!X,›Ø9—_~¹ßî›o¾YµÏ 7Ü`®¸â ݾ·jÕJµÂ£>ª›ˆæÍ››¶mÛÆø˜(À–Í=K'ƒMÇò€F¬V­¯”°›(­ÊN™: |üøñzMô¬L!þ01ØŒ0®¹æCÛqÕØzh+…wh4ÚØ¹sgµÓ‚} Vo òŽÕ¹¢Eƒ”¨Ÿ˜5vWIØqlÒºwï®ög²1–›Õû¤çѾüòˬ–¹Ï|úÌ`f]ÐxùqHÚå;džÀ`%™0Å»7°‹ð·±ÕÇÐÅçfýdÓ¦MÓm?ÚÎúóÐ(9E¸,huÄ÷%X'Ë;|Ø´A+È“ì~É’%º ²Lã‚Âôœ©“+“ÀÚÕäO5¼OEö˜ÂGÉÏ£Å1fË#³ ÿ*;!žèpõêÕã“õMˆs1 Q&£ø C2¾(é¸{‚˜deaÄG’ñÓ™dàÈ®Ý Yð=÷Éú™ ŸTc_~:ϱú6œYàey·tË-·˜&Mšd¡„ÿ²°[ îÖlAǼzÇísðЇÏ(¯ÐرcU@1Þƒ”[ûy@–Î 0î>ï jéÜo›¼§ëIVp‚–Ô\ž´p‚–6d.CVHºpÿ•8í<8€“Q&AÃ÷Ô¢E‹dü.Ý!ÎÇÏÈ3í:ƒ/ݽC ›èíl´lBÒ“'h©ñqo³ 'hÙ¤+&5NÐRããÞfÿ0 Ù´þmIEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1CompressOption__inherit__graph.png000644 000765 000024 00000013314 13515046516 030617 0ustar00tangentstaff000000 000000 ‰PNG  IHDR½môé`sRGB®Îé†IDATxí]tÅ÷¾„„Þ‹€¥iÒE„ "Å‚ H¤JPºÒ”^”Ž4i¡éé½'°ÿù.ÿÙßæå%yûxy¼Mî='ìîÔ;ß|sçÞÙMH`(!A !Æ*C!½!Þ! ¤wS.Ò âÁ4â)RÐíÛ·I%ÑÅGܸqƒR¦Lé£Öž¬™€"=†òÙgŸQåÊ•ŸlTR;`رcõïß?`ô"Gú—^z‰6lP ‰2Þ#(ÖÝ:ñé­hÈ}¼@@H/¦YiE@HoECîãBúx1Í2H+Bz+6î?N5jÔ ³gÏÚ¨å]Ñ›7oRÛ¶m©téÒ”&M*Y²$}òÉ'tþüy¼zõ*=xð€Ë?žZ·níqݸVPHïåŒ^¿~–,YBwîÜñ²Ϫ;wŽ^~ùeúù矩|ùò4xð`zíµ×hÆŒLþ={öxÔÐ3Ï4vîÜiìß¿Ÿ“;f(Òêü_§‡âgENÎG¹7ršnGYdÖ z¬\¹ÒÀÕ*aaa†"¡™„q(«ÌÏ-[¶4BBBŒÐÐP37‡6Ôq Q½zuNW‹Ð¸ví×[·nqàÀ³ü‰'Œ„ jÁ0^·nÝŠ ƒãÂ… #à=0^ä£?´ ¼íÈâÅ‹'ÌQ Š"ÐÃ.é³gÏn”+WÎH”(«¶~£]»vF‚ ø9UªTLØaÆAAA†&&úªZµª¡^‚ñ„*ËÉÄJ–,™lŒ3EŒ+W®ʺr[¨_¶lY¾_´hQÒÏ›7Ó+UªdêR°`A‹ý*T¨ÀÄÑÏìÙ³9ÿ(WÅȘ1£ùœ6mZC½¤c'Nœ˜óÍLËM×®]¹_èÙ´iS}¦K—ÎÔ¡E‹\ZYys ß~û-cTªT)ÎC]à€ñ¡_\»uëÆy›6mâzuëÖeݱȡçÁƒ-ZDˆ¤w¼{£,­Y³†öíÛGááá4jÔ(R‰ý]eÝhúôéÔ¸qcR æÌ™Ã»õÅ‹iõêÕÔ¬Y3š5k-]º”Ž=JÊúSûöí©W¯^0Ô§OR–›V¬XAxž+W®hwû¬Y³’²¶¤¬?·Õ¹sg³<ô2ŸcºK !K–,f«Êu ¼yóšÏ°îjRøYmÿl©`åÐÕ®]›R§NM°–#GŽ¤Ý»w“Z$¤¶o8p ×;sæ •)SÆlO-óÞÝMΜ9ÍdŽèK‹5}@.\¸ ³Ý^sçÎÍéØ9܉ŠA89Ož<|u݉ÐOt}sæÌlÙu"Æ¢%iÒ¤¤||ýèÈ«ãÝÛ©W¯%I’„ÆŽË®MóæÍ¹š²ôT¤HÂ)ŽñÁ[¿~ýH¹”!CÂé‰íFèg×+êk‹õÜsÏéÇG›*èætk¾YÐrƒ¯NáÚ¨ÃëÆ;dïÞ½Ô A3eÊÄ;ü_åþ°åW§I\þn÷îÝ£é¸møôØIÔªUË,ÝD€¼¸†NØ5Š-Êù¿ÿþ;uéÒÅ,«\#ÓoÆŠðíU°É;ˆ…8Ÿa0À¬§NxhÚ´iO¨`”Êo¼ÁùرhõY½®çÎK*°æ¼¡C‡rV\þè/ྲԓáÉÕÕÊãÙ5ÍÚשS§r @5jD vÅŠy'P'>ÀbK4h¥ÊWæ²ê†¯øÇ]?Õ aÑ`Q)?Þ,Ÿ>}z*T¨»ê”…@tÝ‚jud~‚‹ÝAnýúõÙ’«XƒÞÿ}&¾n°@´aÃ*V¬˜Nâ@»U«VB¸iêt‹óU¬Ã‹RÅܯ¶ÞX4°ìXøH.ØYà2!°w•˜0v-Ï1"þÌ·ÈÚÕM‘„?kÀ©Û@ÚæÍ›ùS§áªü^Cºðù5ηÕ$d­¢,qÞŽ²8—· Ye9pv×·µlt÷8oÇY¹kû¨ƒ#K-Bå®DxO ÛÄ‘­>ÿ×i¸bŒ8‡GÀªÜ"kÖßb ëhKoÇŠÀšãVÒUÜ¥¡ ,›=ù­.]Öµ}<#pÆ·—(¦`» bw÷Í`Œ:hv—×ÒâO?ÄÆ9¾·‚s¸ øþÅ*p]Ô‹+Ó]±æáy(›’/_>ÊŸ?lvgÚN€ý+PFƒÓ ¼\ÿ*7À÷IØ]éwd㥒Qø!½/Pô¢ððG^Ô’*¾@@Hï ½hcÈ%^Ô’*¾@ à|zONH|1ð§ÙFPPRõ"ìõ™Âdõ‘Ü•§©Šßú$Ÿ> Ž,'O Âý6O«£õëÏ«_9¢^’u¥š5³?-5üÚ/¾Ù  (K( Ä¶µk£ÐД-[:Ú¼9úOb[—øØ¾øô~žõ3g®1áÑíéÓWhçÎS~Ö@ºÒû™óçoSßæ$ä^CBª½Bý¬t'¤÷3fÌØ¢â–ÇÇ•aaÕon…šßüûY•xÛÞSøðõy1¾ÏÿßKð+Wn©¯%ûQ éJHïGÌ™ª>Ý}ìÚènCB‚•‹³M?ÊÕéý²îbæÌ-—Æ*aaáê—··GJ·–‘{ß" ¤÷-žQ¶¶cÇIõû¨WÝæßºu_ýõÝæI¢ïÒûS·-Λ·-’k£ ©_×ÛªåËéc`4¯·qJãêÚè®qš³lÙõ'ÿ­I.רA@H;¸Fh§38¥‰N° –,Ù]ÉóBz]38µÑ¿U9ü*ϬYââD…/Óêƒ3_,Ú:wîºú½Õ¬¦J°êG^T[&½ú ÿ*2ïÞ} þŒ_¸úó#2-&X±p#œÅ¨15‰ïo^z©-\Ø–Šþ¯¦ÅÔ–äÛG@Üû˜I ‡# ¤wøŠúöÒÛÇLj8!½Ã'PÔ·€Þ>fRÃáé>¢¾}„ôö1“G@Hïð õí# ¤·™Ôp8Bz‡O ¨o!½}̤†ÃÒ;|E}ûéíc&5Ž€Þá(êÛG@Ho3©áp„ôŸ@Qß>Bzû˜I ‡# ¤wøŠúöÒÛÇLj8!½Ã'PÔ·€Þ>fRÃáé>¢¾}„ôö1“G@Hïð õí# ¤·™Ôp8Bz‡O ¨o!½}̤†ÃÒ;|E}ûéíc&5Ž€Þá(êÛG@Ho3©áp„ôŸ@Qß>Bzû˜I ‡#é"Ù´i}ÿý÷V`«DÇŽ¥¦9n¨ÿ~'â¦Øš;O»>ø€jÔ¨AñHÿ¹Ñ©S§hæÌ™ôÊ+¯D((¾E Mšstãño[–Ö47n¤Š+ÆLz]¡gÏžúV®‚€#hР[½Å§w ‹$Æe„ôqyvelnÒ»…Eã2Bú¸<»26·D:½q[*€—-[Fû÷ï§6mÚĺ– I“&ÑÁƒ),,L9æ fÍšQéÒ¥c½ï§ÕÁÂ… iÍš5<ædÉ’Qîܹ©^½zT¢D Tºwï=zôˆP'ƒ?þø#}ýõ×”.]:êÇF!Ç[z¹gÏžØÀ&B›ëÖ­£V­ZÑ¥K—èwÞ¡FQxx8uêÔ‰V®\¡l\yøá‡hðàÁ”0aBzï½÷¨N:tîÜ9úꫯhÞ¼y sРAÔ¿. òß½{— Ãð¨nlzbÒ?xð€xøð!ý÷ßtôèQs€ÇŽ#XGrþüyu.­§-rñâEºuë–™+ºwï^ÇLT7 ä¾~ý:Áz|W¹}û6·…þvïÞÍ–E—e¾rå ?žœúôéCÁÁÁ4lØ0.wíÚ5° ¨ÓµkW“Ô2d !C†° ±sçNêÖ­Or‚ (Ož<â.^¼˜ÛÑÿ ],š«W¯ò"ùñ6®cÇŽôÏ?ÿP÷îÝ©hÑ¢LxäÁ=%˘1#¢C‡4tèP ¢ŸAL¬zHHˆîŽ- ÆtâÄ ž0,^ô±k×.Jž<9ëÛ´iSúðÙœžâ“®mÛ¶e¸ýúõ£åË—3^ÈQªT)úæ›o(EŠ4kÖ,?~<ñb)[¶,[_,l¸+æCÛµjÕ"¸5iÓ¦e÷ͰºÁø[¶lIü1­_¿žËD…ëÔ©SiÆ \½GôÅ_0W~ûí7Êœ93ýúë¯üoÞ¼I… 汤J•ЦL™Âs¦)v Œé»ï¾#pàIä‰-½î“Œ7¹˜XXY8cÆ &+¬êñãÇ©ZµjLò÷ßó^}õUö•A>€vàó-X°€w‰RÞ¼y `Á§ÖõußÖ+üû¥K—2Ù±009Z°˜þüóOÖd̘1œ…IÀÄb}>sæ §åÊ•‹¯Ö²fÍJåË—çq`±0Ùüñ»˜¼íÛ·›U<ÁIŽJWäÃã{ûöí ú ëüùó™HØm&OžÌ$á[´hÁØÂø`QaG€¯¾eËÆX¿ýöÛ\‹n#Œ Œ—«;»wº~ùå—T¥JªP¡ïº,®àÈ/¿üÂs„¾Æ]µ`.ß|óMžK¸W[·nu»‹éòž^}Fzt8¬ëgl¹•+Wfk²CV¯^ÍA`êÔ© ä+bc9r$}úé§¼í¡nݺu)S¦L\Îõ[ nìÿÿyþùç©jÕªÜÊeÉ’…`µ¼Ä‰›íèÝ ýÂiÒ[Ÿae<‘µk×R¹rå¸O”Gÿ)S¦dKªë{‚“.•®È¯T©Ç0À¯ÜA¸Ø]Ahó°hÑ"BÐcÉ’%œÿì³ÏrWpU°;½û`aIÑ,°;k lµ¸Ñéê® ÄH0Õ«Wçlà ý±ëhÁÜ5lØw!ÄÓ§Oël¯¯>#½ŽÆô@0ˆÖä.S¦ [ø{ ¬?dÀ=¬<¶NøÌØ!´_ŒIÔòG%z"u>üGëΠI|äA˜${öì\$rXø©ÚoÅŽdàbíÜtýètµî:ˆ• psà"â$I’$L˜.]ºPúôéÙ•{ë­·ØmÃNœ?~‚5†Ÿà†eÚ´iÜp„µw'Øe`¬XG§«»6 3v¸\Z\±²úþzÇñÔé6Ý]ÿ×£»\išÜ1U±Av¸I“&å­u@MžFÍÖiìØ±ì3"ßdY·UäY“’uB¬í`‹névpLŸ—«`gB ‚a’t r¾Akžâ„úžê ²@?¸W0øéÛ·/ÇÏž=Ëî\®Þ½{󂀉‹gâĉì÷Õ€KCƒXñš»“1|È÷L‹§ºêòÐÙ5¨F<æ-Vº]O®>#½'¡ ü_d„ ü%§^ÁØ~q†‹€. ‚”ƒ5ÀÉ@ ˆ‰€•¸+V°u…ˆm_»X¨ƒ~Ñ\+X,¸#ø8¡Ñþ»õV[ÿªU« ñ ~ð 6¶clÁ´W¾2,)HÜ:o$*]]ÛB¿p7P®!HÙ¹sgöݱÍ™3‡ƒmìDHƒë‚1 ØÅâGÐ ×;5 «·»Ü"”G „x ǶpgµD¥+ú‚!²žÐ¡æ1•®‡]±b€Ø–'>½ñTAmá@r|¶Œ³fÍšfu¸3°N¦NV¤á¥€G^íÚµÙ]ÂÑ!¬„Ý6ž±å‚¼8 ÀÄÂUzá…>$¤F;ØVa© B°Ø°ËÀW†kæú ýàËNŸ>Ýtà“âd¨xñâÜúÂbéÙ³'ë‰q` hÏêâpá(þ±Ž%*]QÆZ†Á;â Ù³gsË%K–ä±a7Å Ȫƒvä\X(˜‡Ö­[3Ñ1œ4a@àëcÁàÈR ÚCy¼ ²JTºc¡víÚ±+¥ëà…ôB — n 4à~A0>«ë£ëùâé—H°5âÅ ¬Zl &V«Ü*˜¼]…eEcÂU@:,)ˆízd Ÿ.|lœ¢À‡Õ‚€ô8ZÃÀŸÄäéɵöÓ=\&è]dvÄ.p'`Ù°c!h¶+ÞêŠszŒãrÅ‹yX 0$VÁBłΗ/_¤ñ Æ#ƒ˜Zœ'ºÂaqímC/,èëÍ| ¨Ÿã¨‹Ô*~³ô胃;Wg¶®`pVëN°CÀ·öDÐŽ5Ðs­c À\óbzÙ]ƒUkBñÖtoïíè Km ø­}‚°xGáN°«F'Ø1ñ%&‰JWœ`E%Ð ?þ¿’.Α±­é£*o‹€.Ž«À'EPéNlÁ‚Ýe\šè»SòTܛؒ´.m¢ dqÖ,"8•º“H¤Ç9¬~Ã讂¤ NAŸU¸;^Žtz㔉ž‚€·ˆOï-rRϱé;u¢¸·é½ENê9!½c§N÷ÿ'¿aQ{¢IEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1TooOld__inherit__graph.png000644 000765 000024 00000016723 13515046516 027042 0ustar00tangentstaff000000 000000 ‰PNG  IHDRØ{¨N­sRGB®ÎéIDATxí˜ÕÀ¡(*˜ ¨ *Š­ˆÝ¢(‚ vJÙ¶`‹b ¶‚Ý m¨  ó?¿ó÷¾ovvÞÛ·Ë[˜y{Ï÷í›™›çž{OÞ;³Õ‚  <<*…Õ”Á‚JiÙ7ê)à) Õ= <<*žÁ*¶¾eO¯Áüð¨L Ô¬ÌÆ—¤í ÈŸþ¹$MøºU„µjÕ’UW]5‘£M,ƒÍš5KÆŒ“H¢y¤’E5×\Sš6mš,¤þÃ&± ~5jÔÝvÛ-‘„óH%ƒáÅ‹'™,|#†(>ÉS Pð V(Júv<b(à,†(>ÉS Pð V(Júv<b(à,†(>ÉS P¨ 6þ|™3gNVš½óÎ;rÀdÍOSµÛn»MZ¶l)_}õU¥¡>sæLY¸p¡µß·o_9÷Üs+­¯47\%ìÔSO•öíÛg§éÓ§Ë{ï½—5?M£F’‹.ºHvÞygÙ`ƒ * õµÖZKž}öYkŸCýõW¥õ•憋ŽÁ¾øâ ùðÃeÞ¼y6/üñ‡Ý£Å~ùå—Ì\±((K~ÈûçŸ,™— Xa ,Z–Ó+Ÿ|ò‰õ¸§o‡—K_Áqܸq–„PátýÍ;7SlöìÙ¼\›Ôûî»ïdĈ%ÊR |†*£Gδ1iÒ$.¿ýö›•ïСƒÜpà ™|Úûæ›oäµ×^“É“'gÒóé/S¸Xnx]%‰ “è"͵¯¿þ:Øh£‚ÚµkÕªU Ö_ý@7!ƒ3Ï<Óžu¾‚wÜÑÚS“0XmµÕxMÇò¶Ùf›`å•WÎôµúê«[=† bå†P:ºh3e·ÝvÛàÊ+¯´gÕÁ>ûìèÑ@7É­ì<`yºÈ5Û,M~P³fÍ W¯^™v6ÝtÓàÀ4ýôSQ©+[l±…Å:òÈ#K”ëÚµ«¨T·4•öÖfƒ J”ÉöpòÉ'K‹-¤~ýúÒ¶m[a¡'œp‚á‡ùôꫯs;“еà…p á›9f³Œ?Hw˜\Xä˜I@®¨ f"<|³\Û 9º5œaP=¦© ­çªCtZo½õDƒ"Ædà€Pp¡ÆV3/õ0ѺÏ?ÿ¼åA+í]¡hìòË/—/¿üÒ$%Ò‡Ðèœåíµ×^¦" Á¶ÞzkÙo¿ýÌ÷KÕ|0ã3À°½{÷¶À ¦Î)§œ"Hr| |¾-·ÜRœÖrW·hÓµ ÓjtNVYeiÖ¬™ì¿ÿþÆè.˜B]WÖÕ§ŒFâlQà¨Àìá[}öÙ¶¡í'Ü.xð‡¶íß¿¿Œ;ÖÞµ:âˆ#Ì„€C=T®¹æ6aÜaÈÍ7ßÜüOÚ@h$UðeãÀõ—W i‰ýªÁdyÞÃßa‰ƒs²Ý$±7Eä‹à‹`þ0ñ8øåöÎÐ<¹"zqí}6nÜX4ôm{fhUð´ã`Oëꫯ¶"ø8q~™¼Ù»á†–j -‹  T^À &PÓ@ƒ´æˆÚ, ø¸h7Ɔ5£U¸÷Á’úÂeQ1XeMâ²hÓZ¶ðó\`€íˆ°ÿÆ æ"Œ^• é V4QÄb[Tø<øMø2޹£ÓdÅ6ÞbO•f06| ést‰ €Miü–¨9TèÀf7QÁk¯½6¶i|lZ³§‡æ oغ|w}ôÑGåé§Ÿv¥®\pì»ï¾¥ÒIÀħ*IÛP$WO”˜ßɪU–ÁðvÙeÛ;;ï¼ó,¬ïNR°Éšo´­¢«„p"ùAöôâ6ÎÃõñ‡\0³’¨a»ví,tN9‚?Ù€ýÁð^U¶råM' «G¸Ê[­hÊW # uĉ0âø£\ø`§8Èc/å0×Fy$òåÒaŽþÐABÛÇ„è—( Ûlãðó!Ÿ(„Ð3†¦Aa ÑõCÃqPíJdŽ}1q8‘ïʼôÒKÆ`hÈ&Mš¸je^ÙŽ"aÓ”Šq}ºÁšà€n.˜äò£W>Š–Þ±ÇòõTÞþÑÖuÑf44h?špàö´ÓN+•®º`РAFë,O™Í¬ªv°¯ªõ"Z^®Ã½€Õ…pˆ×üUó,ÐÈ Õ¥ uÛ}®C·´£ èB 4’W&NV@u8 ›p —ƒËÔ¡?ÁSO=•©š‹ÊVf´ƒÊÔãÀðÛo¿muõ„MÀaê(0.5ëñ«@L4;ïgÆ—äþHœDBE bŸþùv \7šÝ  Ôä+1FÚf!é~V‰ôèÃûï¿oå~øaËÒ â@7©ƒÎ;Û3 ÆbÒý°@_[ ôpo ÒÛòX@ôÁIvÝŒ T“س†¯-?ŽÁtß+Ðí;µÐW@¬l§Nݯ³û²p²BúSSÔNàëk1¶øyã@_W rõ sÀøz˜ÚÆÉ3÷ªÉ„\6SmwÜq†ðÝ€·ùù 7F®Ig°¢ØhÆDëׯŸ½dÈÆ/GŸx? ³‹ߘ[a`)àD~ˉ'žhÅño8LÝA¶Ã½äo¼ñÆB`óT™ÒªÄUrmås6œ\{å½â¯ñ&4Çšxi“},Žuåê“Í}eHQ!`ãdïœsα3‰lRgÎ+âW2GŒ? z×]w•Gy$ï2ÙÚOJzQ0/Nr‡š3‰*qms–ã_м7ß|³T6'Ü>úháô:§Að¹Â'¨„ý6TÝá^çáƒlÜfƒpyÚŠ+›NÙÚ/+]ß—Ëq~¾d®>Éœ¿Ê½Û8Ó‰ô8@€qÆö*û~œ:á~¶½¾¸6’œV p|‰sr}"ä¬þCÎרõAQ?Áá âxÑ7œ|Nj0áj‰dŠàȇ®º€G¦@è&W^¨Xæ6ÌÈ™ÄÈM>8Eªäýˆ&rÀ10€±æêÓf ð…F€šŽvÍõéBù­[·–ƒ:Èêp4-©'3r%.¯(ŒC½¼ÚAx=L3L$)WµÓKýŽ;î°Ã¨0$æ ’X}-3éxž7α(6w1—h›}(öÊ–, NêÚÆu6ÜùXšÁÄFÈ`¶åêÍ9<0‚Nœ>á°p®£Y”=ýôÓ­.g$y-†cnÌ!Ï•y¼*Ûø+%=ì0&é¾¢A7^Ñ×öö™=õî’K\_|ñEû´€ÖªA55ͱwùQ5 Tæ ô–MP ü:>ýixÚòÔ‡ d8Ð…g}¨dIä \QÃàöÌA õïì™Ï¸  ¹p² úã‚|6Á]¼î±Ä•(b+}Õ_ýEÓO.„ƒC¹úÔýC T@Gh¨¾j ¾›µOƒèdDAHúJK4;ïç¤9ªÄYDö™²Ì àÁÁTNuàw¸W\ÂÒ -FpÍö“Âe–ö}Epâó|ÀGwVtùÈ ö£&k®> 4a)°wG0(Z7Ú!å_Í+ÏsÒÏ"V +Ï„sY¾ÙÁ»on3¼Æšt«[éŰŒ 3ŽgyXº(Š ÇÒ%™ïÍS  xËŸV¾¤§@¹)à¬Ü$ó<ò§€g°üiµÌK.ÐHç=íà!=Htƒ£BYòð LWZÌÔSþûZ–§Ëÿ)À§â’ ‰e0>DS,Çe 5ùoÜz«ÌÑ÷Òé7kåxy²Pý¥¥l{œIÀ?± Ñ’,™–öäÍÓ7°§êÉu=)3ôÈV³JúŒöÒW±÷ç}°”ÌðX}C¹:oCW«&ßþ÷¹R‚z•FÓ3XJ¦¦ xÕE5Ø}ßm®~VÀCò)à,ùs$³ô5’iú⣞€5l«ë·,Æ”Ì=ŠžÁR°ƾø¢ÀTý`Ì(ýWB’OÏ`ÉŸ#c¦ÅÊTÐcÓõuü™ú€‡dSÀ3X²çG¦ñ£~¶- Õõ;cT³yH6<ƒ%{~Ìת¡Ì…ÅúÍEMŒR%yÏžÁ’7'%0úVßßZ¤Ì³õ3SõÉ¥€g°äÎLÑoTÌÓÿÑœ ÌLÔOËyH.<ƒ%wndŒ2OœyèPÆL­ÿ}…½1ɤ€g°d΋m*Ö F6óС=_ÿçóä>rþš0 xKØ„8t&é§äëÇzj,¿|æ½0ŽK…Ójê™Í‰¯¿îªùkÂ(ØÞ$ŒN‰@g„þ°‰ú5âúÏù<¤ƒ^ƒ¥cž<–)¥€g°”NœG;ð –ŽyòX¦”žÁR:qítPÀ3X:æÉc™R xKéÄy´ÓAÏ`é˜'eJ)à,¥çÑN<ƒ¥cž<–)¥€g°”NœG;ð –ŽyòX¦”žÁR:qítPÀ3X:æÉc™R xKéÄy´ÓAÏ`é˜'eJ)à,¥çÑN<ƒ¥cž<–)¥€g°”NœG;ð –ŽyòX¦”žÁR:qítPÀ3X:æÉc™R xKéÄy´ÓAÏ`é˜'eJ)à,¥çÑN<ƒ¥cž<–)¥€g°”NœG;ð –ŽyòX¦”žÁR:qítPÀ3X:æÉc™R xKéÄy´ÓAÏ`é˜'eJ)à,¥çÑN<ƒ¥cž<–)¥@©ÿpù‘þ¿ßÛn»-¥Ã)n´ëO™"ufÍ’±M›÷@S:ºÝvÛMÎ9çœØ×,ñ¤“'O–gŸ}VöØch–^Ƙ¶Ür"k®)2mÚ2ÆÄw¥À¨Q£dyýÚe2˜«ØµkWw믞žePફ®Š-á}°X²øDOÂPÀ3Xaèè[ñˆ¥€g°X²øDOÂPÀ3Xaèè[ñˆ¥@©(bl©'¾õÖ[2fÌ9ï¼ó* Ëo¼Qþøã¬íwïÞÝ"HY äȘ?¾ôë×OˆBýüóϲîºëÊf›m&'Ÿ|²¬±ÆV³¬1žþùÒ¹sgÙ|óÍsô”=kРA2tèPùá‡då•W–-·ÜRN=õTYgu²W*@Μ9s¤[·nrÌ1ÇȶÛn›³ÅÅ‹ËsÏ='o¿ý¶\|ñÅÒ¨Q£ØòSt+ãÎ;ïŒÍ#±qãÆFÛ¬ œ‘z ƶ‹³2aíµ×–õÖ[Ïþ~ûí7;vlæ™ôŠÂŒ3äÜsÏ•—^zÉ5L²ýöÛËðáÃåŒ3ΰOÛeñ믿–Yº?V¸é¦›äŽ;îúõ듲—C{gžyfN¡R‘¾¢u,X Ÿ~úi^ýÀü÷Þ{¯ÑiM¶*²¡r7W\?ûì3™={v&­nݺYjVNòk°…  …AOÓý™¿þúK6ÞxcAâüôÓOBþ&›l"5kÖ”©S§ÊŠ+®(«®ºjf4¿ÿþ»¥Õ®]ÛÒÆ/ÿüóµAY´ûÝwßÉl µjÕ²•°óæÍ“ d…V0­¶Új«YyÚ M$&ZaÒ¤I2wî\ÙtÓMe9ö–¨® Ä¢b’`Gh9s¦Ÿ‰?à€äÒK/•?þX®¾újiÖ¬™Œ=ÚmßrË-&¾øâ 3=n¿ývKô9ÜOø¦¥Ýo¾ùÆ&?þx9å”S¬Ø£>*ü!@(‹ù“²@ßxã Ã$ï‘G)O<ñ„Õ ç± ¯¸â ée™…˜Ï,2´nß¾}ÃMÉàÁƒ!D_a@ BÀØ®½öZa^XàÎó6Ûlc8B[Òa"˜a»í¶4£[»ì²‹|øá‡–W§NéÓ§O¬``1'ôG{´uÑEIÆ åúë¯7\0]©À̆“Ìóçþûï7f>øàƒ<Àͳz™Å f"b»s"9Ò0`À1XÐHê}öÙLjï½÷ž1Ìž{î)=ö˜-ôW_}ÕÚAÓ`:Á$7Üpƒi›þýû[9W?nt0ìÍ7ß4Æ‚ GŒ‘) ã²àX¼,ÖxÀòІ0»ÓŠÑçL‘˜Mýä“OÊË/¿,—\r‰µýå—_ÐR08c¡O|:ÚœE‚OŽq~ùå—ÙŒ‡þXpÏ<óŒ ¢ôq¡}ðã0õ  c‹ZmƒÐ‹‚À±gÏžÒTg1>æ!Aš ýÃ;ÌhÞ¡C3Ë0¥P?H{ï¾û®Ë*u…){÷î-¬p OúFÐ[N¥Î’°÷Þ{›éÕ«—´mÛÖ¬è[((ƒp 6Ù;á†D@]»gÞªU+3¿`,_£eË–‚TCjc‚ÀDh¶»ï¾ÛL— &u?üpq¾Z)4hÐ@öÚk/ë‡røøXHfú#ßi]žñ{ƒEŸ]ýè•Å‚ B?mb.¡ßÿ}ÓjûåÑæ®»îjy˜7€3í!ôƒß`®†MMñ•0½ÂŒÃX¸°P`>$2LÍ‚E¸E ¹™  ?ÂàÐC5FD·iÓF¦OŸnŒE]Æ~ÔQGY>å˜×Úœq6oÞÜÜ„L6À<†±1§9®W6œ²µMÇz@ Às« à ‘h½|ŸK‹®|kFʹˆ¶7Àbœ¿ÁDÂH;ì°ƒ¼óÎ;F<„;bƒ²¨Ð‚=ô1'yN[af:€Ñ²Q¸0`¹6Hw Ä=yn!ó\^`²ÐðåÂ-hM‚´ 3‰Ësô‰[@´åÌkWŽ4Ì&¬‚!hßÌE´³}ûö‚ qsáò£WÌ14=‘LçS¹2hf4›ë?lƺ@£tt€@«¯¾º»5áÎËdüwn AȘ£€¯äÂ)Z§¬gÂ?L^ܢǘ§Îš(«¸ü’â1®DžiŽ‘Ê*Ž$…±0Ópv‘²ÑÆÀ»í÷àƒŠ›œp˜[?°àà3 íÂLn‡Åš‹Y];Ù®0 ‡Üš ‡œva&¢_a-HcÇ<ÄÂl Ñ5ŒÐuxáÃ0,„p.ð@}LQ4$æ* †ö"p X8,`h?þ¸Íœi0Àѵ¬¹/+ßµË5Ÿ²ùàn3Ÿ{Ö Û!\p\~ùå66"¼XDKc°|‘Øyç-ÊÇÞ&€“x¯½öš™2,E4‰h ÍÇ„ùÃFÇÏLþ!CLƒàëàÃ93•:ôK;˜§,bÌ;?â®»îʘ$Ñg+óC}L^´2ŒÂ^ €9L¿h1×'¾(¾YëÖ­­ ;æûX„LÇ„IŒôçdß AóÔSOeŠ`n#y±0µð׈Âxq~9´/Á$ö—Àsšþ¡9x¢%XÐ0+ÂÚA˜Ói· Ké¦81&ü;=쟥¾ï¾ûÌŠÂvžŠ­`&bY8ÉCÁXL>‹ÀÁqÇgþ Óó…üÊ+¯´¼C9Ä$’Â8pm󌉣±CÚ³Hq’ñ‡L2ÚAû`®žtÒI–c£=wß}w[8Ñg+¤?á¾H£}˜±k×®–îàÍâãˆ"‹FÀ4" ã¢v-Z´Âðqœ˜d|аùçú%|NÀs€‰Da€! ç±ÇkŒK`aÃØÂ€F¼îºëlÁ˜è¼ П  AðÀç" ð6]Ù®”wcÉvuuÃe]WÆ› §pYîsámjàs!£´Œ¶UÞçR/\"ýŽ>úh6lXyÛÊ»<‹ídæ ael|4pù8›˜^¤£-`"˜4 L:&‹¢±P]Ø#œŽvCRc¢9ó3ÜFEî1‰ö!ݨöJ=|ܳõ Nøìke+ãpƒQ‹!J'W&z…~ÎZˆæñŒŸŠFÄìs&X¸õalè†àȵhÃõ*ó¾8•E—|ñ'^ÀÜ#LÃP3üPÙ÷,2¢k˜ƒgŸ}v©î¨„€ã€ÅÁþL>@;løfƒh $[¹|Ó‘´¹Ì%Ì-þr~Y¾þ ‹»¡:ßå\ÌE;0u.Ʀ~8¨Pž¾+«l!p*‹.KŠûRe0Ì.öC0›\èº" °·„ô'@,ð&MšÄeù4OJ£À21+m4¾aOeDl&bõe„ïÖS JPÀ3X•˜f?ÈeEÏ`ËŠò¾ß*A¬AöuXÅiçkz ”IÏ`e’Èð¨8<ƒUœv¾¦§@™ð V&‰|OŠSàÚ§‡“+¿öIEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1LocalFilesOption-members.html000755 000765 000024 00000015304 13515046515 027453 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::LocalFilesOption Member List

This is the complete list of members for mysqlpp::LocalFilesOption, including all inherited members.

arg_mysqlpp::DataOption< T >protected
ArgType typedefmysqlpp::DataOption< T >
DataOption(const T &arg)mysqlpp::DataOption< T >inlineprotected
err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
set(DBDriver *dbd)=0mysqlpp::Optionpure virtual
~Option()mysqlpp::Optioninlinevirtual
mysql++-3.2.5/doc/html/refman/dbdriver_8h.html000755 000765 000024 00000010567 13515046515 021707 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: dbdriver.h File Reference
MySQL++  3.2.5
dbdriver.h File Reference

Declares the DBDriver class. More...

#include "common.h"
#include "options.h"
#include <typeinfo>
#include <limits.h>

Go to the source code of this file.

Classes

class  mysqlpp::DBDriver
 Provides a thin abstraction layer over the underlying database client library. More...
 

Detailed Description

Declares the DBDriver class.

mysql++-3.2.5/doc/html/refman/functions_func_q.html000755 000765 000024 00000007477 13515046515 023060 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Class Members - Functions
MySQL++  3.2.5
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1Date.html000755 000765 000024 00000100007 13515046515 023465 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::Date Class Reference
MySQL++  3.2.5
mysqlpp::Date Class Reference

C++ form of SQL's DATE type. More...

#include <datetime.h>

Inheritance diagram for mysqlpp::Date:
Collaboration diagram for mysqlpp::Date:

Public Member Functions

 Date ()
 Default constructor.
 
 Date (unsigned short y, unsigned char m, unsigned char d)
 Initialize object. More...
 
 Date (const Date &other)
 Initialize object as a copy of another Date.
 
 Date (const DateTime &other)
 Initialize object from date part of date/time object.
 
 Date (const char *str)
 Initialize object from a C string containing a date. More...
 
template<class Str >
 Date (const Str &str)
 Initialize object from a C++ string containing a date. More...
 
 Date (time_t t)
 Initialize object from a time_t. More...
 
int compare (const Date &other) const
 Compare this date to another. More...
 
const char * convert (const char *)
 Parse a SQL date string into this object.
 
unsigned char day () const
 Get the date's day part, 1-31.
 
void day (unsigned char d)
 Change the date's day part, 1-31.
 
unsigned char month () const
 Get the date's month part, 1-12.
 
void month (unsigned char m)
 Change the date's month part, 1-12.
 
 operator std::string () const
 Convert to std::string.
 
 operator time_t () const
 Convert to time_t. More...
 
std::string str () const
 Return our value in std::string form.
 
unsigned short year () const
 Get the date's year part. More...
 
void year (unsigned short y)
 Change the date's year part. More...
 
- Public Member Functions inherited from mysqlpp::Comparable< Date >
bool operator== (const Date &other) const
 Returns true if "other" is equal to this object.
 
bool operator != (const Date &other) const
 Returns true if "other" is not equal to this object.
 
bool operator< (const Date &other) const
 Returns true if "other" is less than this object.
 
bool operator<= (const Date &other) const
 Returns true if "other" is less than or equal to this object.
 
bool operator > (const Date &other) const
 Returns true if "other" is greater than this object.
 
bool operator >= (const Date &other) const
 Returns true if "other" is greater than or equal to this object.
 

Additional Inherited Members

- Protected Member Functions inherited from mysqlpp::Comparable< Date >
virtual ~Comparable ()
 Destroy object. More...
 

Detailed Description

C++ form of SQL's DATE type.

Objects of this class can be inserted into streams, and initialized from SQL DATE strings.

Constructor & Destructor Documentation

◆ Date() [1/4]

mysqlpp::Date::Date ( unsigned short  y,
unsigned char  m,
unsigned char  d 
)
inline

Initialize object.

Parameters
yyear, 1000-9999
mmonth, 1-12
dday of month, 1-31

◆ Date() [2/4]

mysqlpp::Date::Date ( const char *  str)
inlineexplicit

Initialize object from a C string containing a date.

String must be in the YYYY-MM-DD format. It doesn't have to be zero-padded.

◆ Date() [3/4]

template<class Str >
mysqlpp::Date::Date ( const Str &  str)
inlineexplicit

Initialize object from a C++ string containing a date.

This works with any stringish class that declares a c_str() member function: std::string, mysqlpp::String...

See also
Date(const char*)

◆ Date() [4/4]

mysqlpp::Date::Date ( time_t  t)
explicit

Initialize object from a time_t.

Naturally, we throw away the "time" part of the time_t. If you need to keep it, you want to use DateTime instead.

Member Function Documentation

◆ compare()

int mysqlpp::Date::compare ( const Date other) const
virtual

Compare this date to another.

Returns < 0 if this date is before the other, 0 of they are equal, and > 0 if this date is after the other.

Implements mysqlpp::Comparable< Date >.

◆ operator time_t()

mysqlpp::Date::operator time_t ( ) const

Convert to time_t.

The "time" part of the time_t is "now"

◆ year() [1/2]

unsigned short mysqlpp::Date::year ( ) const
inline

Get the date's year part.

There's no trickery here like in some date implementations where you have to add 1900 or something like that.

Referenced by mysqlpp::DateTime::convert().

◆ year() [2/2]

void mysqlpp::Date::year ( unsigned short  y)
inline

Change the date's year part.

Pass the year value normally; we don't optimize the value by subtracting 1900 like some other date implementations.


The documentation for this class was generated from the following files:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1UseQueryError__coll__graph.png000644 000765 000024 00000026310 13515046516 027716 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÅÅä86ðsRGB®Îé,‚IDATxí]˜EÓ.rÎñÈA’$‰‚ Ÿ"9‰¢‘ ú+*¨ Á€(‚APÀÏE8‚ŠdA@rÉ’sÎú¯·°‡½½Ù»¹Ûp»·]Ïs·3ëí®îªšžé$Љ  I­+sa0F(Ì@0¸!`„ sk0BaÆ€AÀ än÷tòäIúûï¿ÝƒÍ}!'O*^¼¸_Z´zõjº|ù²_ÊNèBï»ï>Ê—/_¬Íˆ&:GéÒ¥õ¥ù "öïßï÷ÖäÌ™“räÈá÷zYÁÎ;WçQ((Ž ò„Gõ{ Ó¦M›è„b÷îÝŽq36…c¨LÂpAÀE¸ô´áÓ1F(Ce† F(Â¥§ ŸŽð«Pܺu‹Îœ9ã±1þù'5lØÐc|°F¸óÕ¡Cš2eJ°67ÁÚuöìYºqã†mýð¡ï?nŸ~Š_ý•²eËF7oÞ´åñÔ©S´dÉÛ¸`tçëÊ•+;?˜ùðwÛàÚ}:߈Ó„Í»W¯^µò!ñ… hÙ²eäê«Çl„òu>¤;räAà4!ý¬Y³¢„鸃ÒÒ¥K¥l†_´íA;.\hµ×ޝÿýïôøã[ÙÑÙX-ZD/^´Â±jbfÄ쉇d›7o& ŽP'`òÇÈC_½éúÀ„ëcÇŽÉàG?áB€>,V¬˜ 8ë1òÏ?ÿÐ_ý%y\qAYÛ·o—t?þY×1]h¢]»v¢»Cg‰J²±jDˆƒŽÉª,XP¡×Bwu¥6mÚÈf:” eá…ŒXµ#Vµ¬ä… ¶®õ¶m'Y.¨T©R%+4""B®µZ«Wrªv«•Äj-aƒâóÏ?/¿uëÖAóèú‹ yiÒ¤q ŠríŠ Òi\>lõ)2¸â¥Ýx-0yƦ-[¶ˆË6 0€`ÀºRöìÙåQò:! ,ž¹iëÖ­R.Êž>}:õïß_²c0¢NžµÄ5:oÞ< g‹xU°Œut/¼ð‚:ˆ²ôßgŸ}FO?ý´Õ$ìš`ü´Àép×ßܹsËí¦M›¬`^aäšÕ*ùu:+Qˆ^ÀpfÕfÏžM0¤Ùæl¿þúëxqĪ—m>ô#¯´V n’}+âP#¶™?õÔSâ1@ã13ó²I˜½1A`+ â1xYO•»oŸíb•Kò`0wíÚ•àhÒ¤‰¬}ûö•­í3gÎ$6èÄ£Äk*uìØQfy¶ˆ 2êÔ©±NO<ñ„ü²±-^±~ýú«oÄÆ.5kÖÌjúˆ`ŒóêDÕªU³íoëB~Ÿ …/Lett¶¡„G6ɇ¬ìã‚ë¤NÜI`\/r ×ÎLùªgH”Ì¡pЭåÊå§Ö­«Ò‡þ§+y÷]TÕ}’bM²Rõîùƒ¾ñm  ‡ÈõéÓX>rî/!á)ör‹·É!t!—Ì…Ã.Ë–-=uïÞ€¿"¾àp†-Æû‡®ÅÆÀÚµ‡È3qã:Å!§IJ˜•"½…ýû?ɇ”l¦Å‹wÆ!§IJ˜•"½Õ©Ó8>Læ“ÛÓÚbL– EÀ¬ñè˜~ý»bܸ%ñÈm²;F(âÑC d£_|”? ?‡¿B'Ë‚Þ{iøãqj0Î&|ä‘G›¸;$ð!6>@'Nõù:±Šx"ÚµkþJ_*>H$ñ¾‡'×{楸~|€OŽ"eÀ§=ÅÝ_ýUÎá‹âœ×WŒPÄÉ4iRòÖfôÓO«hÓ¦ƒñ,%x³Ù=¹ÆÌÃS4ñYtQî1û©Œƒ —,YÂÏx¢®¨wîÜ¡uëÖ1v›¬Ók!D:?¾e‹4 BNÏ 3éìhÞüSÕ´éûÈÝ0î˜Wc½ºtô†ÅÅ| wêÃãù4XÅǵY?6mÚTµnÝZÎ%äÁ¬øÌtÅG$ã­#ÅÇ|) Âùx|J”ux$Ÿ¦p–‹Çá™HC÷îÝ+éýϬ^NE~Ø‚g¼|†ô/K žìؾnìQÙŽ÷$45jÔˆ a†ÇG¸×¯_/Çmá¨fØP™Fλۿ?!«€>"ºOŸ>¼%¿¿¿rLÊ)]º´³üè£Ziø0MÒgëòõk^2òi|v³mÛj¼/ê7~‡»¥Mšï¸Â°|ø!J—#%•kŸÓ5X·Ä@ÇÁŒPsp/_>± 8;*Rƒ äìldÄùåú M ü]»vIy&Là—¸’Ê=Ô+œ7Žû`¡àiI° vôêÕˆ®_¿I#FÌGîàÊrbóÛÂY’A˜ÙëÔ©#B±`ÁªR¥ åÈ‘Ãb(""ºƉ±||²ÜGFFR‰%$ïˆ#|òé«"\¡ðˆxU_üøòË?ù°“S>(1áŠÈY6-5ýº„ÇmáP–.]J .¡xì±ÇøK'ËhÖ¬YQT'p`7ûc…áƒæé¥—^×ëòåˉm„cئf#6 Ä'¨cÇšüÁƒÔ·ïôødª<¹+x~½^½zbW¬Y³F„¶Âô×_E OLÁ«Õ ¿pÁΘ1ƒøzIž2å]õsûöíR®§2ühË>1×·téNñ{Q¶%f6$¯ØV°xäÕB¼K<È%lÅŠâA:t蕦víÚªS§Nrß³gOŃ_ÍBì ^<óÀ_ñâÅ% žyècËpÄŒvïú¹…]9,Pü%–»+‹]||ÃŒPÄ9ù>Kµj 㥗õÊ;A`þüùl§}é1)ŒtŠi„Â#äñÀž¨/¾XÄzö[ìIœï1ÇàÏiÖw?ôÑË/צ̙Óð©ßüPºo‹¼pМ# wD|pŸ:u öB=N“'¯æ§¾|P¢ŠÀ“ëÈ6ÛBîðwÿ q¯T#÷°ðéU“&å©zõ¢üTwªOËõeaúÉu‘ºæÒ®¸¡pEÃÇ×ø^vÐNš´ÊÇ%{_\bÿ ™7¡ð½XòâkæíÛ× “ÏãÄ’<`ÑvÛÂVyTd„ÂÏôæ› äx°áÃçø¹&çÅ믅'æš9G#zJ#Ñ1ñiHæÌi©gÏF4vìbþØÁIŸ–ŸÂWômá1ç ¯Xóð.@ý½råzâ‰Ïè»ï:Sݺ¥T«}5·¯©=zËž#߆¡ð-ž1–öÒKßÓÆùýƒÞrzRŒ‰Md‚!`Ô§Bÿî»ÍxƒÛÞϳ(€µšªâŠ€Џ"æEúçÚkÀc)À¨O±¨hlû¨Ys ½òÊcÔ­[Ý@Ukê±A h?ÅÏŸ\$||7œ¨víÜü¥ü¯sáĶW¼¦H‘‚š7oîUv¥øù矩U«VîíMÔ÷I’@›U ÷aáD7cÆŒtþüyŸ¶w¯ˆ]”_ÃΞ=KéÒ¥“S…ÆŽË_,ÙHŸ~ú©_ëôgáf¥ðº;vìSB}TœÇbæÍ›G§N’ó«q†µëd%ñuüÐq²T£¹p0|(S¢Y)Μ9#ç4gË–Ö®]K8 uåÊ>#b½U¸paé«Púôé)kÖ¬Vßá :Â2g¾ûYúuëÖñ>¤ëT®\9™uBœÅ¶iÓ&9g´á¬6ÔåJ.\piÓ¦¥U«VÉÙÒúl7œŠ™§ƒâP¬^±bEëì6<—¹ví¥J•JŽÜu¿G=O<ñ½õÖ[®UÊ5Ú»oß>áAóò/_¾L8ÓGø¢m«W¯–ûûï¿?JˆÛ²e åÍ›7 O1ñ,ÑÆcÇŽÉ Ö¡C‡(]q*ʾeË–•ÃæQ)ÚzôèQ*P íÝ»Wò—/_^ú J£â† Jš4i’œé´qo¼ñ†œØY¨P!ÉÇ@uéÒÅ:i“±UC† ‘âzè!õÈ#XEóaƒ*Y²dŠÕÅK¿âA®X@ï`U<«mÛîžvʪ«,Y²È©žH_¹reÅjƒ”ÃgC« *ÈuÛ¶mU©R¥ œŠºõÉ Ó§O—öÕªUËŠCÚƒJ^>çMâ-Zd{Ÿ)S&5`À‰sÿǃ_±ðIÝ,XŠ'U¬X1õàƒª[·n)>ûZñ¤!õ‚·¢E‹*})«Š…Xñj#õóÑÀŠJªˆ‰}’)ð¬*Uª¤ºuë¦x†W¼Ò(}»ÿ~µ{÷nBOBº'Nœ(åŒ7NÚÂçE+-mÚ´‘A»k×.ÜgŸ}VÚ‚{©Ë³§í=„‚g\…êú§…÷‹É ƒb€¢}(BR…½AƒR/ÊçAñ!ï ŽðŸÀ “¯dªGÒÔã‰$Àq¿&L´®Bò 4{öì‘8Ãü¡´P =¼r*L8àƒ ’´Nþ¡ˆ%t:] « Š—~ €è<?fÄÏ?ÿ\îëÔ©£š6m*×½zõR©S§VT6la€@°-#22RÒá_ß¾}=®eÊ”±Òá‚ `¤Z(ôêƒ8Ô‰É A(XÝRÏ=÷\”¿>úÈÊΪ•=fh®†6ψªFVs‡ªxF²îaäÁcäJÐw¹sÔ²eˬàÅ‹‹ ï ŒOvÉ*¯ Ù³g‹NŒ<Ð×Y•ŠbS@×A‡gú3ÒÂó¢ HmS /â ÃžaW¯äÍûÄ®Vɇ¼î,âAêØ±£”g0aw¬Ðà 4ò±ZE߇ó6˜.³nݺêâÅ‹RNLü ¿÷"ùÀ#ú¡jÕª’8-P&ðBù<éHœ¶)ØU+÷øW¿~ý(m²"<\øË¦H4Þ'¸Åüúë¯[Ƥk›7o*¡ÚkâǦÄm ‚¦½O®i0ˆ`¨¢Vûä­h-ˆƒ;T{À¬~¾€k–Ÿˆ7ʽ*xž0XÝùމ]?§§„¾×¿¬Â‰w 5\ľ$ E¢2´yFrDPM,XÀçÐ¥#FDË#]¡î‘P³ð@Ï ¡<°òDîÆ«§t¾ çÕR<Ú•‰·Øø™†]”„ÅĶYÜ3ÃÎãUÓ=8¨ïÃR(ðt•ÕêÓ§éÛ>Þã›U…hùáá1jG°QàÁŠ‹SÀ®œ@†ÅÄO Û¨º‚þm^n……©'ÄЯ£úúí°õ>…Xÿ›æ#ÛÛª®^êòô¶<“ß ·)ô–dûæ‡Wèœ9ÙÎÅ»`S†ã¸e–‡^(x#Ÿw&¢Ü9sv I“¶ðíµ‰ˆ+ïXÇÌ×´†¶¯ õò6o>Dõë£R¥ò°;ùÍPg'¨ÛolŠ îž{›6m¿$”„¶m;Â[@œo¼W‚¹rŠ€ §H%pºÈÈ5ćy÷o2š>}]·&qWo„"úwÅŠx£ÞEié­[·ù}èÕ!ÐêÐm¢Šè;¨N)R$³ZzàÀi~Oü uo.|‹€ ßâéóÒnݺ#êÒÍ›÷^¾€@P ù#þÁÕg¥.Z´.^Œz¤0$2r­õ&¡Ï*3 F(‚| Lº6Šê¤›{êÔEZ±Âó›:ù;F(âŽYÀr\½zS‡tUtåwU(óOãáË_#¾DÓÇeÍ»…_ã´?‚2cÆz~ôŽk5Å¡â10eÊy`穉°5.Üæ)Ú„Ç#ñÎßÙΟ¿Jþ¹?ùây%€ ›Ão0Bá[<}VÚo¿mŒU5‚ 5{öfþ ±ÙRî3๠ ß%ëKfC©¬‹¯R³f¢4îÙüù³ò;Ï9£„c/T™2y£„™›ø#`vÉÆ»€ç¬^}µm[M xåaT¡QŸÂ¨³ «Î0Bá '“*Œ0BFmXu†€ g8™Ta„€Š0êlê3ŒP8Ãɤ #ŒP„QgV!`„ÂN&U!`„"Œ:Û°ê #Îp2©Â#aÔÙ†Ug¡p†“IF¡£Î6¬:CÀ…3œLª0BÀEu¶aÕF(œádR…F(¨³ «Î0Bá '“*Œ0BFmXu†€ g8™Ta„€Š0êlê3ŒP8Ãɤ #ŒP„QgV!`„ÂN&U!`„"Œ:Û°ê #Îp2©Â#aÔÙ†Ug¡p†“IF¡£Î6¬:CÀ…3œLª0BÀEu¶aÕF(œádR…F(¨³ «Î0Bá '“*Œðëñ^]ºt¡S§N…œþeuãÆ”3çUŠˆ¸äߊ¨ôV­ZQ‹-¢pì׃ ùåJ•*^˜?J¥æ&~DDœŒ'îþį“ËB`õêÕT¶lÙÀ j¯W¯A ‚ Ž;Ú6ÉØ¶°˜ÀpFÀE8÷¾áÝ#¶°˜ÀpFÀE8÷¾áÝ¿zŸlk ÒÀcÇŽÑðáégÏž”={v¿µrÒ¤Itøðazã7¢Ô±lÙ2š>}:õïß_-³+f Caè+ô™{úh9 *¡xùå—¥S°üߺuK€oÔ¨MžûL:úðÂ… º(f <йsçhÆ T·n]úóÏ?E ˆèh<8˜˜Õ¾ÿþ{Ú¿¿ * €E cÇŽÕÙE+Ðé½tB}ÿý÷SÁ‚)oÞ¼„†YK4fv¨;Pk:ÀA80kþç?ÿ±úçŸN›6m¢öíÛËì‡A±xñb)y¡6´mÛVò{úסC1zѬÔÌL|ð° Oþæ›oÄ@‡¾‰e¶I¦L™DçָĦJÀÐÅ Ú¼y³€:¯ëî_ (x”°ÅFDÔD]6ò@EÀàAÇÇÄV”á:`1“ÂæÁ$‚ü‘‘‘ôꫯJSP.Ô¾G}TVx¦@Àö‰&­zá³:ÔN1H»wåÆí„ò¡‡’•å¢o´ï–4^·h×÷ \Ó»××{¿¾d„Ùí¯­ãp­¾òÊ+²ÌC}p%x‡®\¹"†š«.Š%ª „ˆ™¶‰^iP4f_ôY¬J*MP]0È1¨àÍÂû"œq%”Ù¾pá¶ù=ñ€zðœ*êî„• ù1KC!(àÏ2À3×ðý#ÞŽüwWUÏ.-j›6mÄÝ ç†?Xa¢B[\û#¾ua„‰¾v¥ Z)\Û5Ô ßÿ]f8w@^»0„cFÑÆ&vl¤ÓÚ¥ƒZæn Ú¥ó†:&½Ø(öþ<„Þ½m®!äƒjåI UÖÕ10;‚ÊÕ ƒ“ ¿6!þüM!+0&á¥qu}Æ, jt:ÔWð¥J•r ŠrÐßÛA¢Tä7 ØpvøbOhvCZ}JhðLý¡€'õ)ih³eZoð=F(|©)1Ä0Bâhšï{ünhc7'¶W2pGÛ‘_…ûø]·CØ5À„ ¼„eçrö«÷)¡˜5õ¼AÀØÞ gò&JŒP$Ên5Lyƒ€ oÐ3y%F(e·¦¼Aàÿ:vâZ+vG©IEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1ConnectionFailed-members.html000755 000765 000024 00000014603 13515046515 027452 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::ConnectionFailed Member List

This is the complete list of members for mysqlpp::ConnectionFailed, including all inherited members.

ConnectionFailed(const char *w="", int e=0)mysqlpp::ConnectionFailedinlineexplicit
errnum() constmysqlpp::ConnectionFailedinline
Exception(const Exception &e) MAY_THROW()mysqlpp::Exceptioninline
Exception(const char *w="")mysqlpp::Exceptioninlineprotected
Exception(const std::string &w)mysqlpp::Exceptioninlineprotected
operator=(const Exception &rhs)mysqlpp::Exceptioninline
what() constmysqlpp::Exceptioninlinevirtual
what_mysqlpp::Exceptionprotected
~Exception()mysqlpp::Exceptioninline
mysql++-3.2.5/doc/html/refman/utility_8h.html000755 000765 000024 00000013731 13515046515 021605 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: utility.h File Reference
MySQL++  3.2.5
utility.h File Reference

Declares utility functions used within MySQL++. More...

#include "common.h"
#include <cctype>
#include <cstring>
#include <string>

Go to the source code of this file.

Namespaces

 mysqlpp::internal
 Namespace for holding things used only within MySQL++.
 

Functions

void mysqlpp::internal::str_to_lwr (std::string &s)
 Lowercase a C++ string in place.
 
void mysqlpp::internal::str_to_lwr (std::string &ls, const char *mcs)
 Copy a C string into a C++ string, lowercasing it along the way.
 

Detailed Description

Declares utility functions used within MySQL++.

None of this is meant to be used outside the library itself. None of this is considered part of the library interface. It is subject to change at any time, with no notice.

mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1SetCharsetNameOption-members.html000755 000765 000024 00000015330 13515046515 030303 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::SetCharsetNameOption Member List

This is the complete list of members for mysqlpp::SetCharsetNameOption, including all inherited members.

arg_mysqlpp::DataOption< T >protected
ArgType typedefmysqlpp::DataOption< T >
DataOption(const T &arg)mysqlpp::DataOption< T >inlineprotected
err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
set(DBDriver *dbd)=0mysqlpp::Optionpure virtual
~Option()mysqlpp::Optioninlinevirtual
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1OptionalExceptions-members.html000755 000765 000024 00000013516 13515046515 030077 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::OptionalExceptions Member List
mysql++-3.2.5/doc/html/refman/inherit_graph_11.png000644 000765 000024 00000250472 13515046516 022452 0ustar00tangentstaff000000 000000 ‰PNG  IHDR¥Vžï¤sRGB®Îé@IDATxì]¼TÅ÷?€„4Jw*H (!"JH)ÒÝ! **‚ ¨è_@¥»»»»»»»»ãþÏ÷ð»ë¾ÇÛ}ÛõÎ|>ûöÞ;3gÎ|ïœ95Ñ .¤EPE@P¢,Ñ£ìÌu⊀" (Š€" ¨0 ?E@PE Š# Â@ÿèôE@Pô7 (Š€" Dq^Šâó×é+Š€"!'Nœ L™2EX§@Bà½÷Þ£Õ«W»Å’ nÁ§E Ôøõ×_)K–,¡>M_"0|øpº}û¶ÛÜ«0à6„J@PB’%KRByŠ:· F`Íš5´mÛ6·g >nC¨E@PàF@…à~ʽ" (Š€"à6* ¸ ¡PE@P‚‚ûý)÷Š€" (Š€Û¨0à6„J@Pÿ#€PÈ2eÊйsç¼ÆÌ7d Œc~ªW¯N½{÷¦§OŸº4îÊ•+…–uçþýûS±bÅè•W^‘ðÎZµjÑÉ“'­›ôu½zõhÊ”)ÍcxæTˆÞ+Š€"„ܼy“,X@÷îÝó÷<1bÇŽMùòå£\¹rÑÝ»w©]»vÔ¦M—ƽråJ˜ùFQË–-EøóÏ?©råÊáÝwߥóçÏ»4†¯;á}úXšÐGë8{ó=€ß£GÒÚµk3t àl]®_¿NgÏžµ<ºuë–àW´Á8¨ß¹s§¥}DïiÀ€T±bEKWxµtöÕŽ0Ö¢(Š€"^Ðq¼»±iÓ¦°6îxÁ•ö%J”oô-Z´¨QªT)Ë}¡B… ^¨Â… Å‹·PâÅÙˆ#†Ñ·o_ƒ#C† FüøñhÑ¢iÓ¦5öïß/myñ3’$IbD]Úçϟ߈/žÔíØ±CÆ9|ø°1cÆ ¹fU»+V,¹~óÍ7Ó§OK[<+R¤ˆÐˆ3¦7n\cêÔ©~0ïÎå~É’%ÒŸ]ƒwær=yòdK[Œ7ÞxÃøðÃ-Ͼûî;7a„Òóf!Iê1‡Ä‰ËsÌ/oÞ¼–9°VÀHž<¹`d!ö¿‹U«V›7o–;\£æ'N#Y²dƲeˤÎ|•*U’ùá= þСCF×®] Ì—1 ù?þØN(£G,Ðý>úè#ƒ4©Ëš5«Q¶lY³B… vßSºté ”¤Ÿ«¼Jgþ°FÆ`aÌ–ö›¨f€ß¸E@P<…/€²ÓìÕ«—¨¿±SÅntܸq²Óß·oagÍ‹a‡Ž2}út➪U«FÝ»w'^LjôK‘"a§‰zýúõ‰OÑ<}z DV[¢`ó‡ü ̂Ŝö„&›3ˆÕî€ìdŽ… ìùØA#²‹<{ø@üòË/Â?x²ŽÇ‡Íþí·ß¦fÍšÑĉ ;k,ØìÈG$Ó»l,Ü Þ1?øT€¶#§K&J”H<ý!`Ax@>`` Êܹse^¬â7§æÛÖ{²nä.¯Ö´¼~mÇ¡UŠ€" DY\õàE\0ã]»Ø a7Fá4¹‡§¿Y8tNžq¨ ùÈàÅOlÎð´‡mŸcù Ó–Ïy NÄ#}xÁ5Ød`±·#  Ã:šõxÆjzñIà7táÅÔ#ÒÀš[Ѱù£½õm?øàñ®qØßy”6 Ï‹¬ØÞÁ/¢Xk`‰&À3Þ©l°Ì¸ñI‘aƯ¬ °´ Ò4Øt`°C¢Ô›vzó=à!"€µY8TQúþôÓOæ#ùîׯŸÁ9,c#óAÉ–-›ñÛo¿É5þØ{O,XY¢ ÜåÕ2  Où D}~±ZE@P¬@ÎØÕÙ!ÐkG·oß^v×Ö*o°€*ÆÅØÚ¶:xÉÃ{ϱ«nݺµ% õ(ð–gç7Ùcw ;ºif@=’1Bvò0; "ÀÓ<Â7Øä¡æ‡ŠIy Ž‡ýŸÃ #þ ˆxÀîÚ„ð8€æ:,„oâÒ=ò ’x…Ç>ø&Õ„>ü0{¨MQç£ØD@…›Ðh…" DnÝz@ß?•¦NÝBµk¦®]+Rܸ±¢ÂÔuŽŠ€,Pè…" D5Ö¬9L_~9Žs4fLS1 D5 t¾ŠÐ „ú;P(‰@¿~˨zõ”/_FZ¾ük¢ä¯@'m" š ýV(Àƒ©C‡ 4kÖêÒ¥5iò~”˜·NR°‡€ öÐÑ:E@)Ξ½A ¥3g®Ó¸qͨhÑl!5?Œ"à** ¸ŠœöS B`×®3ì 8ˆ’%K@óç·£ôé_ *þ•YEÀ›¨Ï€7ÑUÚŠ€"¬[w„ªTéK9s¦¡9sÚª oE™$T¤·¡¼(Š€Ç˜?7Õª5PòŒÙ„ÏаAƒ¬ƒ‚þêEÀcÇn ¦MGPÍš…¨oßÚrÆ€­¶ú\ˆÊ¨Ï@T~û:wE „ÀIƒ¿þ:‡#Jóçãž©NMpÜÇP)(Š@€!еëL2dõèñÕ¯ÿ^€q§ì(‡€ ÷N”#E@p;Ü®Ýxš1c›˜*VÌë"%í¦D-TˆZï[g«„,†aPÛ¶ãhÞ¼]GÁâÅ_Ù¹êÄO# Â€§UzŠ€"às ´ió\1¢‘&òùЃ&ö7¨ü+Q¢ø@§ïT3à•ˆ" øS˜;w'ÑX5þx :fH  šx: E ê!ðÜG`<™‚@±bzÎ@ÔûèŒ=…€ žBRé(Š€Ï09svˆF@ŸA¯…(j&Ñ«ÓRB&ò;høðFämAàßÿ¥U«V…2œ:· Fàû￧ܹs»=Õ ¸ ¡P_"ЭÛ,š:u ÚÞßûáƒ7n¤5kÖørŠ:–")?¦É“'ÓÅ‹#mëHÕ 8‚’¶Q€@ oße4pà ú÷ßÚT¢Ä>ã)þü4iÒ$Ÿ§)‘!pëÖ-J”(QdÍ®WaÀa¨´¡" ø 6Ñ/¿Ì¦Ÿþ”*W~ÛŸ¬èØŠ@È! f‚{¥:!E ôX°`uì8‘S L  ½ êŒ?# Â€Ÿ_€¯(öذá(µl9ŠjÕ*ÄAiûµVP\B@…—`ÓNŠ€"à öì9Kõê ¡R¥rðqÄŸùbHCˆ’¨0%_»NZ|NŸ¾F5k¤¼y3ˆÃ`´hÑŸéà°I“&4qâD¯r2{öl*S¦L˜OÓ¦MiñâÅ.ûÓO?Ñï¿ÿ.ýÿùçŸ0´­Ç:~ü8 ˆõhÊ”)‘Ž5zôhúâ‹/l¶+Q¢mÙ²Eêøáô­ËŠ+äùÓ§O­‡Üµ !÷JuBŠ@ð#pûöªSg0¥J•ˆ† kH1cÆþIùh+W®¤cÇŽyu´'NЂ (_¾|òÉ–-­[·Ž>þøcZ¶l™KcïÛ·<(}wïÞMëׯ§´iÓ¾ð‰3&Ý»w=zé8 ¾l`uùòe©Þ´i“Ì©eË–ašŸ:uJž#ÑU(&å·«sS‚§OŸQ³f#éÖ­û|q;Š7VPÍâÚµk„]䫯¾J[·n¥ 2PòäÉeÛ¾};¥Nš2eÊD<  .°À“ŠbÇŽ-s|øð!?žÒ¤IÃPLiƒÅ,EŠ”={v²ÖŽœ9s†ðÁ‚|ãÆ ©Kš4i¬.]º$ágwîÜ¡]»vQ®\¹„/4Bh¸¸qãÂdÉ’u³ <‚·èÑ£Ó“'Oä'N³ Gvül¹†€ðúë¯ÓÌ™3éƒ>çÏž=£;vÐK/½Do½õ–бtà‹+W®[Ô…/)S¦¤Áƒ‡,÷ k>À„ |#OŒ ˜ÓáÇ«¬Y³¾@;A‚²ð#Œ´jÕª/Ô›îÞ½+ÐÀû4 ÞGâĉW4x7ÀïôÈ‘#”3gN©7Û;Ê·Ùޛߪð&ºJ[PœF sçé¼8“4Ã)Sz.ŽÚiF\ìðË/¿È"%Kzçwd±oÕª•ï½÷eΜ™þøãYÑfèС–‘FŒA¯½ö]½z•z÷îMXÜ+W®,‹eùòåe‘Aãü‘Ò¥KGEŠA£hÑ¢ôõ×_[è˜hS²dI&°kOŸ>=M›6Mª±.T¨aÑÅâ…¼Q£FfWÙáCPX½zµ<ÃÐßVÏH„“#Gi‚~‚ .,8¼òÊ+"˜ý¡–‡‚ß›7o6«"ýΛ7/õíÛWÚ:tH„ï¾û®h(*|¼0O=x7áwû0G”+WŽÚ¶mK7oÞ OBî‘ñs©P¡‚m˜„\ôÑGòÞ0°íСƒ´+V¬˜†ÊPå[ûà >Y‡PÇ:t5¹–þù§6ÿŸÖ±NØêôéÓÙŽ°3ÿðé_¿~ÑRì8±ã… üý÷ßcûFF9´/uîÜ™ºwï.}yþüù¢òÞ°aƒ<ïÚµ+ݾ}[E,,¶ làGíAéÒ¥ ¶}h PöïßÏþÿÒýû÷Ù3L>³fÍ’:h4 `àÂIëR¥J§T©RòÁB[½zuiÒ©S'Y|¡ý€B%”“'OÊõ7ß|#ô0Ïð¶zì¦k×®æ3aÂéoý§~ýúôòË/Ë\0ù5j¼°Ðc~˜/„!h# }‰¨à]ð¾œ={–YAíúõëbÖ€3}útKSÌæSSzÈ`‰LÐX˜þŽòm!ìå ¼ °’WÇX¶l?uí:ƒÿ.Ç[9ë ­°€¶iÓFv¼Xð¡*nß¾=%L˜PMsáÃb‡…BTæpV«U«–¨À±XAk'8¨£a'/X° §bž*ª},Vع׬Y“ÞxÃv6ÆæÍ›Ë‚Ž¶ØÕb¿gÏAêy,œ04hÐ@´XÈP ¡€C_ÆŒåþÓO?•þró¿?ØaãóaØè $µcÆŒa¡îQËc±„)ãܹsR7wî\xºuë&Ú`~q† ;nëø´.0MÀ·;zàƒÅ;sàkú˜íçÌ™CeË–M 4&;v4«Â|CûádàÀ^à yÐ14ð!Á,x§xOo¾ù&Aó~ 1€–¤@žáÛ¤ëíoõð6ÂJ_P"EàÀóÔ¼ù(Þeægïï’‘¶ôð0 ìåX`FÝßTOöÙgõ;K,*°ƒÃ,X¼g9˜à´‡]mžP`²°.¨7묟ۺîÑ£G˜*<}úôÁB LàþXÜÍ¡„õ0'ë‚{ܸqÖ^¸††>#GŽ´ÔCë³`ìµk׊yÆ|~<ó9¾[·nMcÇŽeß•f"Ô™uxo_~ù%-\¸P4;ðÀûµ.ÖïïÑÚ7Á|÷ŽòmM×Û×aÅ,o¦ôE@‡À•+w¨nÝ!lOC={ÚvÚ ×- o­ýì1ŠÜòð@˜LâÇ/Ž…ˆÀâu4V„À 2DìÿP¡[{Ñæní± ¢˜ªë:ì¬áàhÖIC'ÿ@óÛ<Ì$dZ´h!÷ؽCs`8WboÚÚñÜ ñ3Û8òm:ïÁ¿câ§Í?ÿüS|LX°5œúÌbo<¨óaÊÙ»w¯˜Ì>Ðv,Z´H´ &•ðï:ü½Ù×úÛQ¾­ûxûZ…o#¬ôEÀ&ˆhÚtﮢË)„Q1„jå¥K—Ò’%K8œ²Ž`…3bé¡fÇnsØeÂSöy¨Á¡Æ†­6ixÈÛ*p´ƒOLصC‹€]9 Nì¾a:À.8С@Íõ=ü P`¯ÿî»ïäÚüƒ0B|àÏиqcÙyW¬XQløXèoä%@”ç;˜ à3ä·ß~séô=h6à‹œvîÜIÜ@¦ë‚1ÁÃøñã?Œi¯@s¿kQ"Ðà@ÓC<ˆ,€ã¤3ž¡ëN[ÜAOû*Š€[tï>›=ÌOK.$IâºE+P:cghmÛÆuø{k^áÔ—$I‰€ó ¼Õ±ð~ûí·r Ÿx£Ã9š„¯¾úJvÝð@²žŒÿ³ë£oøñ± ‡š*m,`XÔÍÝ+%¨Äµ0‚#°@"ÂarXdñÕ>œðPÌþˆTÀ6ðÀb‰…Q0}` $ÿÙ¶m›8æÁÆ›=vðð€ß “.Æ°Æ ÷ÖÅl‡<Ôùð·Àâ ;=vó˜£Ùßl‹¹Á† ÌõИÅlgÞã»k×®‚kÔ£/ÆÁû®ð¨T©’8ZBÓžîÃ?-GøF;_–h,u†v&_¢©c)Š€ÃÌšµƒýF²7|Vî)„Ø­c5½ìž ƒ ±s†];kDXìØ±à`2}Ìz,€øÀ& alæbm¶Áî‹<Þ`Z°v4ÄÂ]-ÌPÙ#ÀÚ†oÒpçüãcæ/@‚xþ›‹0xB´¡ùpµÀ'sÀwDv|“.°F;QÀÜÕM „|Pà?,òÎGùŽˆ¦y„1üà¤èn ëùà.5í¯(Š€>|‘ã¯'p\{±€˜Š[M°›ž7ož,êpV _°Ø ‡@D»ùðI†"j‡g°—ãQ= ¨7Šõ‚ ú¦£9œí¬îÌçÎ~;:hÌ<ÎŽaÝÞnÌg®úY8Ê·9Ž7¿Uð&ºJ[P^@àî݇, cÕujêÒ¥â õQéü„‚P­»Z°ÀÁŸ |Aˆ›¹{ _‡ NƒZ  fý(Š€OhÜx8g›;Î^Ù_±ƒYBŸŽíÊ`Þ6¸Â“öQÔL ¿E@Zúö]ÆBÀ^¶S· A hVÆ'Ðh'ӿЀ"àëÖaoõ¹ÂVžsÈgvˆöR¯  Â€W`U¢Š€"`Àµkw9ÓÞN›‹ó ¼o]¥×Š€"¨a¼eAuڵϡc18®¼ZPN1äá´½ÿ%N–ôŒçõüĺ œ˜2´8›è(²‰ª0BZ¯(n!0lØjÎR‡Óâ¾àƒzâ¸EËq,îÇ-Cß¹“ñ$àpÀ—9yÍ->Ïþ¶¥N/_!€¼ Ÿþ¹dyôĘMà •†" DˆÀþýç9áÍ_œÖ¶g¤s?1J„ƒøèáÆÇèï¿—Ðòåû9.?-gÕû3ïåŠ0ÜXÒa! Â€Ç TBŠ€"`Àƒ©té¿8n<>ˆ§§f]4×;wž¦nÝfñQ¹GøhÚ,,Ø|HÅ‹Û>28h&¦Œ*V¨™À ½TÏ!Ð¥Ë >÷„Ó,(³g¯SshÆŒí|â^&þn#ßžCH))ƒ€ ó.”E d˜?7½ŽÜmÀ6õ3ãòDoß~Àç,æSWñ!:IdeÊx']o ã ¼E-ÔLµÞ·ÎVð:çÏßä“ìzÒ'Ÿä¦ž=«z}–vš»Û¾ýÇT·n9^Ù“c(-E Pa ߊò¤15j ¨Ø.üŠO¨sý$:_Bpñâ->Zw ó¼‡jÕ*ȉ‘*eäƒ/1Ó±B 5„ÖûÔÙ(~E`̘õ´fÍa>î·mÐcÇn îÝgñ>ñÅѱP¡,~ÅPWü€ þ@]ÇTBhàuߢE Ê›7}ÀÏY[·K«V䬈ũcÇÒ'Nph2\e0èP3Aн2eXLªUëOP·ã4ÂX±b&“ÿãjË–Ô¼ùHŽrˆNÖ á% Uæ‚=› è_¡N@ð?£F­#DÔ§OÍ€\AŸ~ú/åÈ‘†/þJÿÿ|”ƒ@@Íð”E ˜8}úšØÜ[µú€rçN°S¹wï›ư°¾ý¶,µlùAÀòªŒ)¾F@;F\ÇSB *Uúìï vÈqz.Üä0ÁÁtáÂ-É€$BZEà?T3ðz¥(N"0|øÚ´é8Í™óeÀ {öœA a—iÞ¼v”6m'g©ÍÐG@}Bÿë ¯ €è_~™C_|Q’råJë•1Ü%ºxñ^ªTéÊ–-%ÍžÝVwÕþ!‹€ !ûjubŠ€wèÔi*§ëM°§²Š4F•+¿McÇ6¥ ‚ïødï¾A¥®ü‡€š þÃB¯EÀAæÍÛEK–ì¥iÓ¾8ó€aœAp:±†S ¢Ž‚¾SmµPa j¿½"à4wï>¤Î§SµjïÈ‘¾Nðb‡'Ož±Ùb ç:ØCƒ×§²esyq4%­„* „λԙ(>Aà·ßæÑÇéÇ+údÁff¤i…ENÛ)D* è¯@PF`×®Ó„‚¿þªNI’Äu¸Ÿ·Þ¼yŸêÔDÇ_‘óÕ¡ÑÛ8(}EÀU4Ï€«Èi?E Š!ðì™Áj÷^/^lš:µUÀÌþòåÛT½úºuë>M˜Ð‚²dI0¼)#Š@°  š`ySʧ"àg†]MœgÇÁŽ~æä¿áOºÊ¾ ؉1:͜نR§Nü_¥^)Š€Ãhh¡ÃPiCE ê"pþüMêÙsžxæ¿öZò€&äH”èeš1C€x)ÊDÐ" š }uʸ"à;~úi&%OžÚ¶-å»AíŒAà³ÏþMLñãǶÓZ«E 2Tˆ !­W¢87£Y³¶Ó¨QM(vlÿÿ—a-Œß<à5kÖÐùóç£ø¯H§o ‚ Rºtþ?àKm½!}®(„>¥KÿEI“Æ—p=CA#¥L™ˆ›EVÁ²eËÒüùóý Ž Œ;–jÖ¬éwîü/æûe@Pl!0nÜFÚ¿ÿ<-[öµ­&>{Œ‚€ Nƒ hذaæ­~+‚@̘1 u ˜W¡Œ(…ÀíÛè·ßær~ÿ÷ÈßNƒ'NŸF °Þ¦r£ØG@…ûøh­"eøë¯…b&hßþc¿b€H†ªUûSŠ ƒÆ4àWÀtpEÀTp4í¢„:ÇŽ]fµöjúú벺ç¯ù^¿~ õ—DGãÆ5 a¥ã*î  >î §}E K—”5k ª]»ßfˆ‘jÖH<æh†¶”8qà¤?ö(:°"à%Tð°JVV–/?@K—î“ÿÑ£GóË4=zʾ Ãèܹë’Y&-Š€"à=ÔLà=l•²"tàü®]gÈÑ¿… ¿æþÁC‹#i÷îÓrÖ@ÆŒIýÂGT´I“&4qâD¯NöìÙT¦L™0Ÿ¦M›ÒâÅ‹]·D‰´eËé?kÖ,¡ýøñc§é­\¹Rú:Ý1È;¨0ä/PÙW<‰Àĉ›ää¿ï¿/ïI²NÑêÐa­\yP’½ùf*§újc÷ÀbxìØ1÷ Ù¡pâÄ Z°`åË—O>Ù²e£uëÖÑÇÌa¬Ëìô´]¾/_¾, Ž?.ôŸ={f»ƒš+W®ÐêÕ«mÔ†îcB÷Ýȩ̂xøð ýßÿ- Zµ R¦LþÙ÷ì9ŸODÜJƒ7 29Ũ4>sæ ݹs‡nß¾- äÇejÈbˆEêÆrÿàÁ¢jÖã!®ñÌÜ£ ×½{÷Jdˆtüߌ³aÃi‹E‹`øréÒ%¡yõêUZ¾|9áÛ,·nÝ¢›7oJÿµk×Ò¡C‡Ì*ù~òä û{<°<o&_æÃŸþ™ðéÓ§Í™3‡œŠÉf¡™f5a1ß¶míÚµK®-|„XóðáÃÖ_¸61­£Gx¾Öm0Žõü¬ëOŸ>MÈ$‰9›åúõëa°ÆósçÎEˆ£Ù' ¿P-Š€" }û.5²dùƸté–_Ð`­„‘*Õ—Æøñý2¾·eu¸ÁI‡&Ï©iB… ±bÅ2xñ0'Nl´oßÞˆ-šÜ'L˜Ðعs§Á ”=zt~o}-´ `ĈÃ`ÁÁèÕ«—/^<íA§\¹r/ˆÒ¶sçÎò ýAÿõ×_·ð˜5kV£GÒ<)RDhòBmÄט:uªÔÕªUËxóÍ7W^yÅÂkÆ -¼°ÚßH–,™å>I’$FË–-åþï¿ÿ–ñ-•|Á*~™ãÀåñªU«ŒW_}Õˆ;¶|%J$óF%/Ú‚æ…Oä{Þ¼yÒ·wïÞrψÁ\WªTIæöà‹ iËÁÏqÞ¼y7T²`Ô­[WúcþÀö·ß~“~,˜ þß|óܳ° ÷¿ÿþ»Ü;ò祗^28¡#M½ÞF5ü ТDunÞ¼Oÿþ»”š6}Ÿ’%Kàs8Ö¬9L;N”ƒªWÇçãÚ€PsCí½oß>»_¿~²3½xñ"ñ‚$6ý´iÓÒûï¿ÏŽžS,ìOž<™>üðCÅŒG¼àS÷îÝe÷Î «¤D†*Ú<ïÚµ«hX˜xaWo!Èà;jh$J—.Í¿‘¦–õþýûùwó/Ý¿_2,"Ë"ìõ(Pù·mÛV®ñ§M›6TªT؃®ªT©Â饫ÈsÔ±P¡¤Õ¥O§Nˆºpá‚ìÈsäÈA¿üò‹ÔaŒ=mÚ4:uê¥I“FžÛû-´ÀšôE騱#åÌ™S´'Ö¦ÔanãÆ“9aŽ,lÑ·ß~K›7o¦÷Þ{¾úê+úóÏ?åݰ dy†¾ÁV4š ØÞ˜ò«x1bD—#н@Þ.ÉÇ/RãÆÃ©\¹ÜôÍ7eí¶*•µk×&`ƒ’%KÊ!.\Xîy,êiÜ g¨óy—O+V¬ áÇSœ8qd:t(Ÿ+‘TÛ{÷îïDe1ã>a±å¿äŇªÞViÞ¼¹Œúï¿ÿ^Ñ={öHó·Þz‹jÔ¨!×H¹ :XP+T¨@Ÿ~ú©<7ÿ@ø_à+€‚ÅB΢E‹hРA²ÈŽ3Fæ3| Œ`Ž(0)à̇ʕ+Ë=ô3fȵ­?ൠT¬X1Ê;79r„ \aa‡`={véúÙgŸÑ!CäzüøñôöÛo –¬!ÖðÁXñÅï¡[·nÄÚ‚ó"0ÿ&¶øÔç* ê›Q¾!€ C‡®âÅ៟xåÊöQDpìÝÛÿ‡µøòH‡I•ê?ÇIØÑYuoéêl‹ý W«V­húôé²AÀ‰>£G–ÅÑ=’]+œö°“Γ'&ÑôéÓ›—/|gÊôŸï«×¥ÂJæÌ™åÛüƒz³Î|fï›ÍaªÙ"þøfsýðÃÂ'jhHPð »ÿüaé‹ùDV’'OniòòË/ÓÓ§O Ö¿Ó;ïü§Â‚o–“'OФbÅŠæ#(ðPØ„AuêÔa!öÑ„@h Ö¢f‚`}sÊ·"à!à4˜4iª_¿ˆ‡(:FæþýÇT·î`þÏ>«˜É·c=C¿•¹ØD6S¶£SùòåÅTì\¡ZÇn‹?ݰ°"ì;Þ)R¼p¤²½è8Å™‹0йèY×Aó°}ûvKÙÇ™oöo k×®ö …hÑ¢…ܯ_¿Þ²`C»yïÞ½ÛBÚ )´<ˆà"¢;´&(Ö´ )0KêÔ©E«~ÌÏ?ÿüCŸþ¹4`ÓÌ0׸iŽé¯oü…¼Ž«GŽ\bûó&ÞÙ”áÝd ŸrÔ¶í8Þ¥^¥1cšR’$š]ÐUða*Xºt)-Y²Dv© õ½zõ v¾ØíB[59lóð`G=±õÃÁžG¾éSÓ¼þ¡EÈ•+—°»uëV±©Ã »xh ØQQê&L˜@ß}÷\ãvϦÞ|ˆH|pÄsãÆe·]8vîðþ‡à‚oä%@”è£À {¨ñ1vê3I:õ U?ÆÀ‚30´öÁÀ8æ3Ìí pAÀ®õë×L7mÚ$šø ˜ÑN1½î¢¨(Š@À"аáP£dÉž/s_1Ú§Ïb#]ºÆúõG|5¤ßÆq6š€[㯿þ²ð OyvT³Ü³cžÁvzË=<ÞáÑ~¬ú¶<ÿé§Ÿ 6X¼ñ?ùäñŽGЃç<¯A«ÏŒ3Z¢ ØŽoñ˜G4¼ëáE¶ˆ`'DÑìÏ c£Ñ¦§=4kÖÌà…VÚâu4 )Býð/àR)}¾þúk‰Rà½Ášƒ} xß³ŸÁ¶~ƒUûˆ”`ˆaF°Ð"uÖÑJiáš‘lç·D`,Þõ $¶¬í0Ø÷Á2ð4#-عPž›c":…ƒË8‘]R4¤-Š€"ؽûŒ„ò-Z´Ç§³_¼x¯‘&M{ƒBòé¸þÌYaÀY>!@`g¶º²÷¼=Ž¡Žs ì‘o° Þ°Å#„ö¦7x·+m­‰@@¸ç08€Eаnãî5ø?xð … û#X„Ì›µ›8,õ®^ܽ{×`ó€Á;þI°9€×õ›0"¬wõa ê@Èb©E *"€#ŠsåJÇjã>›þÑ£—é‹/Æð‘Äøì÷|6n¨ó¼Ù2Ç;ñ¦ÉqúT´hÑžãìå¦Í<ÂVa£Ç'¢>Bó¼QÀ?>f1q„z¢  þü6IqîÂ'”‹ ¡üvunŠ€ öì9ËÎe»iäÈÆ6Zxþñ;YB¯½–œm¼Ï°Ë+À‰…ø¸×å|øP Ê–-4¼çÖ®=Lÿ½„V¯>Do½•†µŸS¥Joóa5úߨ‡~¢JÆè¯ØàëЊ€¯@²Ÿ öðñ°õ¼>äÙ³×ùûqT­Ú;| K¯çí–.ÝG½z-¢mÛNrþùl|–C Nä“ÍÛÃ*}EÀ§¨0àS¸u0EÀ?ôᅩ2f|•Ê”ñN¦8sVðhÖl$‡Ò%¢=>3å÷ÆÇè×_çÒ¦MÇè£Þ¢¹sÛñ?¶ú ÊI*ÓŠÀÿPa@ Š@ˆ#pñâ->‰m Ÿ¸ö9z4®«üßÿ-¤ýûÏÓÂ…(Nœ˜®’ñk?„þôÓ,‰ €>yò¨à×—¢ƒ{¼± øÁƒWòÁñ¼®²ß¼ù8™»D„¤¶róæ}>Bw>g„[Ë9ïÓp¾€–lÈlÓP~—PaÀ%Ø´“"ܾý@BßÚ´)ÅgÜÇðÓ8w•(ñ&Õ­[Økãx‹ð˜1ëù¼„¹#Ftª±¿C¯kQ¼5¥«¸‚€ ® ¦} A»\”zõŠx•ãï¾›J÷ï?fG»ê^ÇÓÄ»L_}5‘ ÕhܸuèPšâÇíéa”ž"ð¨0ð¯HT\CàÑ£§4dÈ*¼¹ÀÍšµƒ}6³¢ Ÿpß5f}Ü ™ßúö]FH”5k ñ È™3­¹ÐáÀA@…Àyʉ"àQ&MÚD7oÞ“¯G [Ãɇß~;YŽ’%³[Õî%B[·KÛ·Ÿd­@Î’X\Ì˱r¦x¼±Ž øì|û÷_.NƒÉ“{ï”@äH–,uéRÑçsteÀ3¶‹ð’*UbÖ´§7ßLå í£„* „Ü+Õ )$ †Nž¼*ª{oá1|øB,þœ9_|áãÇOéǧK¤@ÆE©sç š9Ð[? ¥”¨0”¯M™Vì#€pÂ?ÌN™3'³ßÐÅÚÓ§¯qájÕêNqضv˜2š4A‡_dŠ|Š`.g­ÝÐE@…Ð}·:³(ŠÀÞ½çhÆ£'ï-Ú·Ÿ@éÓ¿BíÛì­!Qî•ë„CÙ³wÐÕ«wxgüžÇ§xéÒ-6=Ìæã‰‹ä ~È‚øé§ÿrÞ€Ôꨂ€ÇJ0ÄPa Ä_°N/ê €ÔÃeÊä¤Ô©{|Ò?þ8ƒ'ŽËûJ{œ¶»‘V¸E‹QT»v!ɫ̀E@p58‡—¶VmÛNJzÝ®]=Ÿ pùò4kÖv;¶™WÌ®Š,‹;OÓH÷î•ÕQÐU µŸ"À¨0 ?E :t•x÷(É£³g~§NS¨B…¼|<ñ¥í±‡ŸÈ‘ÉK–ì¥ëR¹r¹Ý!§}(€ Qþ' ;'œ;wýþûçŸJ¯^‹èÆ{¢çqâ.¼yó¾8 îßN"Þ}7³‹”´›" ˜¨0`"¡ßŠ@"0qâ&Qßc÷îÉrðà0`9 •É›‡9ÃóÅ‹·¨Zµþt÷îCš9³ eË–Ò™îÚVPl  Â€ `ô±", ä¯J•üôòË1=Êò×_O¢·ÞJKuëö(]W‰9sOaì'aoL™2‘«¤ê÷Úk¯ÑÑ£Gj«#еkW>=´‹Ël¨0à2tÚQð?kÖ¦ãÇ/Ó°a =ÊÌØ±N‰ t hÑ¢y”¶+ÄŽ½Ì~ôÊ+ñÄ4€o_”š5kR¥J•|1”Ž¡¸Œ@ûöí]îkvTaÀDB¿ Dá4øúëžS—Ã&ÿÛos©Q£¢”#Gj¿£²ÿy1 dÌø*ÓŒ&ô]è`Μ9Yáy_ ¿ƒª „Ð ¸[4Ï€»jEÀO\¹r‡wNϪñÿüsh:tðNíÛOqjåé7R‰FÀ—‚€Ÿ^««øü»ª¸Àøñ)^¼ØT¾|÷‰ýœGŒXÃá„å$­¯Ç»@fŠêÕûSþü™$™Pܸ±\ ¢]EÀÔLàJÚF@ÆŽ]OU« Ø±=÷Ïø‡¦‰Ó`ïúuÆ;vœ’㇠z®ÐG%û(\ðžû_ÄC )E@ˆ+Ò©SW9¯çLsçî¤uëŽÈAD‘sཻvfÀzçÌ*xf¥¬„A@…0pè"Œ³Ž ÌB¯½–Ü# #ÓàO?Í’Å·ßÎàš®Ù½ûŒ8 æÏŸ‘† i Aéød Û:i÷ðáCºÿ~¤}¡já-(Š€Lº•àLW¶l.'zÙnzîÜ ê×o™œH˜,YÛ ½Xƒ<pÌ•+ ÞÈ£~^d; é3gÎðÉŽ‰ (aAÁ‚;vl:þ<9r„¦ˆú«W¯Ê¢.]:Kÿk׮ɢ‘&My†>{÷î•Å(UªT–vÏž=£={ö° ‹#,Þ…9¼&àÑ£GtýúuJ‘"8p€…¼ôöÛoKÂ.<Æ—6mÚDXгeËf;e|âÄy‰-zô謥yžÔ*W®\|œõÏ–ö¹sçÍ…÷Þ{~|6øÜ±c½ôÒKìƒò–ô7;`ìÇKÄJÖ¬YÍÇ/|,ÐI’$!ì®ÁOöìÙ)FŒ–¶<…sEuN ÌXS,èf9{ö,‡§& €Ï¥K—¤ BN–,Yä:yòäô矚]GÌcĈ|8Vgy~çÎÚºu«ÐÁ»NàÅ;õêÕc·š…ÎÓ§O—Û·oS‘"ESG~Þ¼à£EP‚>èitì8Ñc·n=Ö(XðgãÑ£'£é !Î,häÏÿ“Q¾|oãÞ½‡Îtõj[^Œ_ýÕá1xq7XlðBmðÿÙ/ü'ƒ1x’{^€ ^Ԍ޽{¼¸.\°Ð.Y²¤Q¼xqƒ ãã?6xá5x±6x15xç-íxq4 .,´Ð¿`Á‚rÍ*mƒ^¹æEÖ˜1c†\+VÌÂË›o¾ið®VèÔªUËÀ=«Å-õ 6´ðÒ´iSƒË=/ÆFË–-å¾hÑ¢FÕªU-u¸èÔ©“ðÉ‹ª<_µj•Á;mƒ!ù$J”HæJ^ø#àƒO,s@=/F… p)ØO ¤ÝG}d° !õ½zõ2âÅ‹gWÐ*W®œ¥ŽUõ‚pDú±P$ý@¯lÙ²ÒxK´ÁÇ7š4ib°éCÚšXãbðbo´nÝZaŽ,0 R¯eË–IÝ÷ßoäÍ›W®ñþÙü!×W®\‘ùa,`zÆ ³û{ŽüaAÈà\´´ÝDÍüf´(Á‚lê8 §jÕw<Âòž=giêÔ-ôÝwåübŸ‡É„ _æðÁ¦œR9¸Ãy1!¨½÷íÛ'»ë~ýúÑš5kèâÅ‹²£8q"Ï·ºì`§M›&ï*ò+V°Ù§6M™2….\HÇŽ B‡Ø—ã'Ù}vïÞßý~Z²d‰ìî3gÎl÷7€1´Ø…c÷É‹¶¥=èÀ¦ 6/Hò™5k–Ô³0";}³q›6m¨T©Ræ-­]»–}Kªpþ‡ÏÄ<{«V­DÀF»^v„O¨Ûùåé±06æ~êÔ)Ùµ[Gp¶ð…ŸHµ»hÑ"ц`g:0‰„gš?¾h BºQ£FÄ‹:ñ,ãA³`­Í†Ýºu>€9 ÆÈ˜1£\ß½{Wüà;ü0&¾¡y©[·.ÁŒÏBçû¨CТØ*x˜>x,ôÐ7ß|#šh4"ú=Ø¢å•ç¶å­Q@C€CÿŒ÷Þëá1¶ªVíÇ;ª^£ç ¡[·îóŽíOÞ)þl\ºtË™®>iëŠf૯¾²ðÆêsË.±;åÅDêK—.m|ðÁr=pà@Ù)bçºyófÑ$°À`ðÂgð¢dð"%íÒ§Ooà¹YX.;Z[š^ț/:;øÉ=4¬ò¶Ôá‚ Ù‰‡yÁ 4Ø5C€OóæÍ ìJ±ËeÓˆôÀîúäÉ“› Œ &H=›¤îý÷ß·`€,XXæ€ûðšðehRx4XXb-Ö#რcÔ¨Q›U 6lÞ0zöì)í–/_n°_>œRÚ`3‚f F&Yƒaiš(Ð `hÌ›QŒ=žÿ»csˆÔ³ða¡ÁÂ…<ƒ†Æ–fš£fÍšYú°¹Â`³ƒÁ„aë÷`iÉ…'4ê3àK‰*Å_ïî@IDATžGàñã§4cÆ6Þñ¼ïâË— Õ«1Í6¡ç D/Ô­;˜ÇnËéƒþòUp†gGÚZÛ÷ac·¶‰c÷Çÿ§ ^©~ýúâ87yòdNUžX.õ}ûö%|Xx»><ì±+†­ûÝwÿËÿÀÂ]–2eÊd©‡ ÜtÒÃÃðZø ˜¶sK'ðà…ÑR‹2«ó9úc± „5MSÙõñQ€þ(ø†Vš³äÉc?aø6‹éû;°…×>/¼¢ðW€% "Ò;uëbíÿ {ð'ˆ¨@£?³˜ïšˆˆ |(ðþ¬}3àëŸ[¿‡ˆhy뙚 ¼…¬ÒU<ŒÀ’%ûX-ysåp›ò³g«Xg‰â;ïü·h¸MØX[µM‡]¤‰[PºtÏCºèðM¬Øì1[¹reqˆBÜÀ,ƒpF„åÁé#ÄaÎl:ì/Ú†.‡Eq(+Ø™Ž~föbéÒ¥æ­8ëqôáG=ð\8ê|b‘ÃB µ>Æøâ‹/$w 1Â÷ÀxÀŽI†¬‹9|£>¢‚AX¾ýö[I„0KŽžçL˜1àÙ¿áÂÂ!áÀ‡ž.L/àm   ØuÉ„‰˜ð. Žf‰hÐŽ—H^!‚˜Y"ú=˜u>ùfIH‹" 8ƒ­0²eû–Éž;9¹Ãn¯^ … îqº/û;©S·ãP¹•N÷õGgå‘ÓÀÀ°vô3iàðjh]VÇÞòÛ­ Žs—þp ´.fh!ÇèK[Žd°®6à@‡:Ô³ª[ØÂ4ðÀ Âè8ùŽ…ÂÙ_î1'8?òîØRïêÆA˜çx{ùpösd8‚–3ŽpPÄ<ÿ'{tØäc„'hoï÷`êÔÐ'â’¢ø‰7QÅŠyy·õ|é*GÈ28`À ¶é–àUÏûêúN&s:×Ë|®|{V—?Ï÷îóÖ'-Nž¼™ý VrnùËËŸ…þú«:kAró|ÝK`SUv¢ * DÁ—®S|–-ÛO·o?äƒ]ìñjo&'O^¥éÓ·RŸ>5½ß?fÌzš0aÙØ-M†½ùø«Ç,#?ÃèÑëèÞ½Gœü)?ÔˆóËÿw¼®¿xÓqO! Â€§T:Š€€‰ `ÁÌlƒvý„¿ÿ^LéÓ¿êvXbdÓÚ¶í¤8 ¶k÷}øaöÈšMýáéoßelfÙ&ù6,Jõë¿çÓ4ÎA–2ô¨0ô¯P'jÜ¿ÿ˜œÝK]»VryjgÎ\çD?[¨gϪ^õ¸ví.§6Á'ƽN_}UÚe~©#„€¿þZÈÇïî”Ýÿ¯¿VçËX±b›Ê‹"àQTð(œJLpåË÷sxÚ>Ä&§ËÄþùg‰h ÒöfiÝz,ň]R {s_Ð>}ú OóÙ´²²eKÁ:Õ¥O>ñ¾¯…/æ¦c(‘! Â@di½"àcæÌÙ)&‚W_ {λ£lœ?“pÊáÏ?* µ£ýœm÷ï¿KiÍšC¬FoC‰½ìl÷€iíF¯^‹Ä' ]ºW¨ÿ:ìp麯FÀLLQœ@@…'ÀÒ¦Š€·xøð ›öq¢›r.Õ·ïRJ–,U«öŽË4"ë¸iÓqúý÷yÔ¹sÊ›78ÃépvÂðák8ÓŒ%ÂSïzU€Š W­Wü…€ þB^ÇU"@`åʃ|°ÏCIÚAu¤p2á¸qèÇ+ÈQÅ‘vp¡vÒ-ZŒgÁ¦Mßw‚ÿ» Kb§NSä܇fÍŠS›6¥(nÜÐ ‡ô?ÒÊA°  Â@°¼)å3J A™ø×ö:tŇjÔðÞ¦Ÿ@ïÞ5ƒî@éÖm§gÞD}ô›šHÄEÐMDV<Œ€ TÉ)®"ðøñSZ´huèàšW>bàGŽ\Ë逋{í¸à–­ŸÀìÙ;è»ï¦R¬X/ÑС ÝrÐtõk?E PPa PߌòåX½úݺußeÿ sa½zE¼‚Ýž=gé·ßæñDe‚ÊOÚ€o¿Bsæì :u ‹ %^¼Ø^ÁH‰*ÁŠ€ Áúæ”ïCé‡óæÍ@iÒ$vznOž<£ÁƒWRíÚ)qâ¸N÷¬r´j5šòçÏÈßDÖ<`êçÎÝ)‚ÒOœØ‚ŠÍ0¼)#Š@ ! Â@ ½ å%Ê"`›ör×ò%ïâÅ[Ü¿¸W0ìÚu†œ 8aB ¯§6öÄîÜy(&)S6³€Tˆºt©Hª ð²J#TPa T߬Î+¨زå]¹r›J—~Ë%¾ûõ[ÆGçæuI«Ù€ î‘üÁƒëSªT®§GŽlOÕË/¾#çÀA°dÉÐI‘ì)Œ”Ž"èáè½" ø,¸™3'£¬YS8=øÒ¥ûèÀó^Qß_ºt‹Ó Oäè„w©\¹ÀÎÆ÷ì™Á9RåÊÿŽË—­‚€Ó¿&íUPÍ@T}ó:ï€BÂÀÇ»–~‡é|ðÁ›ôÆ©<>§ví&È!=Ý»êqÚž$ rìØqŠC+Sƒïy’¼ÒRBBþë#G.ÑÑ£—XpÞD°sçiÚ°á(Mú…ǧ9vìB¤3ZtBð³@’$qiîÜvô曞Š<®T 5Ø Qv¢ ì&œCP @F§'?dÈ*zë­4T¨P§ûÚë€Súi&ï¶KH½¶þªƒY)‘kÖHï¿ÿ:-XÐA½ 7èPÍ@пB@°#aà£r8í¥{þ¬YÛé?ªy‚/¿GiÓ&‘œ'î‚Èмù(Ú²g$|. «$(‹€ QöÕëÄË—oÓöí§$7¾³üŒ±–O ŒK•*½ílW»í¡mؼù8'éù’³õŰÛÖ•»v¡Æ‡‰ð4kV[ÑŒøƒS%ÔLJoSçt,[¶_R;› §Ž½ŽêÖ-ìÑûèÑËôë¯s©mÛR”3gÚ€ÃsÒ¤Í,üüMY²$³L$ZEÀ}T3à>†JApÅ‹÷Rá¯2ä9S¦OßF·o?ðhêa$>j×nœ„åA¤ÿ€.]fð™«ØY°$g,GÑ£G $•E ¨Pa ¨_Ÿ2Ì …ðªU‡8S^9§§1dÈJªP!/%K–Àé¾¶: ¶†°paŠ#p”†·n=à×FˆébРúôÉ'ïàÁƒ¬±©k f}®ØDàwÞá¼_Ù¬÷fEàü‹÷æ,•¶"€ $ðÎôá‡9œânݺ#´oß9N=\Ì©~ö#zæ/¾øÐ+ù ìm¯îøñ+¼ø÷¢C‡.Ò´i­^À\žB@…­Ã(Ö@ý}ìØe68wˆÎ¨QkÅO ti×R[ó€k„6âDBo¿!|µ_î{÷^D­[e?âÔ¿]Š'¦_øÐA¨„€š ¢ÒÛÖ¹ 0$Jô²SÙý=zJãÇodç´"sðûþûi” AöÎ/ëwlž>}Fß|3™&NÜ$‰„êÔ)ìwž”E ª  Â@TyÓ:Ï€B`ÅŠT¬ØëN-ê³go§7îQ­Z=2ä8˜3gלCcy„¦«Dîß,þ7£#éiƒ®©ýP3‹Ài7EÀU0‘Å‹¿á d,Y2;¥NØ©~5ÆâÛ©ÓªX1/óñzDM|ö NÕªýh×®Ó1ÐJŸ!ÿ| 'Nˆ£ã¹sç¼:ò×_-ãÀ©Ÿ *pºëŽtæÌ—Æ]¹rå šÛ¶mc_“ôÚk¯±ŸIr>ÍóN×ý={öÌ¡1 ríÚ5KÛzõê±óêË}(_¨0ÊoWç@¸ÿ‘SÂÀž=giëÖ’qГ‚]þæÍû|Q%Os™Æùó79£à?„#ˆgÎlC¹r¥s™–vt ›7or6ÇtïÞ=×8Ø ¡s<òåË'ŸdÉ’Ñ Aƒ±õX„-W®\¡Õ«W[ºÍŸ?ŸµmÅø¼Š-Ô°aC>ʺ¥L™’ „|òÉ'ôøñcK[[³gÏæCÃ^µ´&=²Õ<¤ž«™ ¤^§N&€‰!…©R%r˜Ý‘#×rèß+T¢„sÚ„ˆ8tè °\†ëáèæš5P¼xqøÀ¥6ü·ãxD4¯`}öðáCÉI.]::uê瞸Ãa£9e7»oß>B}®\¹8Ò#&]½zUm´5 v²IK“æyjfä7Ø»w/åÈ‘ƒcÿçŒÝñž={8}u,Î%ñ†,Ì©S§6ÉÈ7¾ëׯSŠ)èÀl–ºÁŽ¥oK4¸téûº$wíÚ%|añ4 x=ºðŠŒ–HÀ;vly†6˜ÇÏ?ÿl6§Ü¹ssê붬)Û@ï½÷ž<¿{÷®,èY³fe-XXþ@sË!¬³+ž7jÔˆO­|“–/_NñãÇZÍ›7º­Zµ¢Q£FI¯¨CÐ’%Kþw2€XãÈ3üÁ»Ùºu+anj$xžô ïÂF’$I8q×Né“={v6FtŽeö.xRZEÀ‡/þ»Áüȉ‰Œ,Y¾1úôYìp{ 9·¿Q¦Ì_/öšyµŽ5Æ[oý`”/ßÛ`3WÇò5ñÛ·oü®1oÞ<‡†æ…PÚ—(QB¾Ñ·hÑ¢F©R¥,÷… 2x¡6z÷îmðbk\¸pÁB»dÉ’FñâŧOŸü±ÁBƒ7n\㥗^2xç-íx±2 .,ôп`Á‚r wìØ!ׇ6f̘!×¼Ã6Xhk^`Ó§O <+R¤ˆÁ‹œeœ©S§ZxáÅÐhÙ²¥Ü/Y²Dú¯X±Bî1§ªU«ZÚâ¢S§NÂ'/Âòœs3ȸ &”¾˜7æ…Âf#qâÄòh `Ahñ¢miÏ‹$=zTêK—.MM›6•3´iÓ†sg}ºŒ ÿhL €¿æn–C‡Éå»ï¾øo¿sìâ‹Y"šC,þдd̘Ñl.¦¤˜fáDxƒi……+ªS§ŽhnÐø¶hÑB´4]ºt¡E‹‰†ÁB$À/Tð¤ì…+WÏ}dt´Œ³žWÀÝsà¨÷óϳ؞ZÔ£Ù ÚÁ_¢ZµþT @&VÛ6ñ{ƒ3¼{»í÷ß/jñråÊÉPMš4Õ¿y ê{,¶¦SJÖÈ‹ MØÒüñG:räˆ<ãÝ;±Ö€3K²Y&Ÿ‡ñÝé ïË/¿,Žx 4ÃìÕ;xÖ>x†éæ”®]»²Ès?8ññ®:Ì¢ õ}¶lÙˆwê²@ãzذaÒž²eËr¬U˜ $\¼xQÞ³™XË …ÉL Às‹¨€Gk•½½9DÔûöí²°£Ì50µ´nÝZxƒ9ø·k×Nê! @˜ –¢Â@°¼)å3$€¿@Á‚™åØbG&´k×Ú½ûŒG{öœ/¡Œ;ú'EîŠ9,rø= ÚÐa Á)ÚÀÙ ‹ læ(¦‡UÇr_«V-ËÎg ”/_^ìøùóç§¾}ûòïe7±ŠZvÛ¿ýö›h° ZïšÓ§O/´lýÉ”)“¥ ^ùÖ»pë:,à(¦­ÝÒÉÆ|zôè!ŸþýûYÐ2dˆðùå—_Šð€7´&08š…Íæ¥Ø÷á„)|†ýá`gç_hÌbúcÀ‘8™Åô3`‡ù(à¿UøW¤ †kÖ⻎;B+%Kr*RäùÂà*8ØhôèuôÃåÙ¹*¶«d\î·|ùjÐ`ˆ4„¬‚/½¤ÿõ„»`GJåÊ•ÅAmðàÁ²clj•:ÔèØ¥#Lm÷ôË/¿ˆ©!iÒ¤Ä~òÖ*sËC« ë0Ã5kÖ„Qõ[×™ëX›¬ÈDz‰6 áô8fÌQ­cáfv*e„À? ³`¾fA‡þùÇ|dù^ºt©¨î?ýôSË3gç` jpš4  Q2þÏœ` mf}°};öë ¶Y)¿Š@"€ðÀk×î²w³c û½{Ø^º•í’…ÝžÍ÷ßO¥~›íÁ5Xõë_gùÔöP…CU>;ÔYbíaK‡= 4Ì Ð,`Äb MÁðáÃÅÞÏ÷Î;ÛhÃgšø 4Ï,Ð>ÀF¡£OŸ>-¢P¾ùæÎñÜŸ6øÀ¿À,HØéN>XüÙiRlíÈ €]4"ì°a“‡ êxéÞ9A¸·>x2M% ]?Ì*àGcц@1qâDñ§€Fæ³Øš„¨þMM î¡€&ãcÞÀ‘àËZ〶A[üᵨc*Qþý—‰½£s;v½‘)SGãúõ»Žv‰°úc¤IÓÞØ¹ó¹Gx„¼ôpéÒ}FÆŒ_íÚwʳÚKìø„¬«Ñì,(üñ®]<ãe€ÂrO³°=]ž±ZÝ|dðÂi €#Þîð|g=©GôA€zDàѼ¸Êµu4Ù–… Žø(opHÐ'>¼øámþð _·n…‡È¢ ÐÇü€ –ˆàÆ‹®Ôƒ> â]èÖìg‰&À³Ï?ÿÜàÐ>ËØl&0ØqÏqÀ?ÚC³Ø››C7ôe!Æ`AÇM€èÖPŸ}" À„,;k ¦æ,,H;G#JÐÏßÑ~´(Š€à˜z£yó‘T±âßF‹£nQûwòÞ]ŒŽ'ETíÕg¦ оýx¯ŽhÄ\á 0,ö`¡;žmÚ´É’g6@ˆ8¶ËâŽþá+3´wãÒ–÷Ìîò…”£8ôF„c‡iìâ k ¶Ã[zŸ8qÂÀB‚çB°Ô‡¿@&´ã¤Aá«EX°7Î7f|ke`°yÀfÈ£u½;×þ4éÿ‹Ð¢xÇŸòîÿôSe‡†:qâ mÚtLÎ p¨ƒFýµ¿<öùAD«Wâ/ÃèÓOóÑÿý_uÜécW€ºøHé‹äAáKDÏÐ6m3¤ê÷ÈŠÙ6¢vH<„7 " ¬‹µ?"à(i¯ÀÛß4[Økgk0«àQc ’0…bQŸP|«:§€C`Û¶“œ9î‡D9æ/€“û‘¯X±°ÿ1:3±“'¯²—ö*5+C¯¼qÈ•3ôm ¡§Aƒ¡lgÎCþYÍÑnÚÎA`ǂ߯_?{¼Ø avˆ™‡ÏuA6A6X÷¬ëp:댃áëƒá>æà œU3à T•¦"ì”Ó¥{…­þKÝ®I˜[¶ó³3X~·œíºwŸÅ^à¯z$,1 svnP¨NÁìö&;sÕ´¹¨Ø!¡U‘ À#iy5v¸ljx¡!R#Á‘­‚d?Á^BaÞx* xU¥©„CÂŽ,v¤¬Ys˜ÃÁ®óI~ÿÅT;ÒϺ vçóæí¢±c›9uL²5 g¯-³ ÊBÔ¨gÔöŠ€ÿP3ÿ°×‘£8¡;fGsÀD7oÎþö_g¡êÒe†¤<öÄÁFŽŒ}ìØeN—<€žIOƒ7Ð<Ž€¦mB@…zÊJh"°iÓq>¢õ©ì˜#›!{ÿsÖ]œ²×u­ÀäÉ›9žü,uéR1²áɯ_¿åœµí!Ÿçýó0Îxøð ͜ن=Óã:4ÇPo„¬eÊÔâ|âжmq8Š$&§~Ê!qÿ¥u t~Î#€(볜§à^ÜÃO{+v¸ÿ1íØqŠêÕ+b·*Oº*¹°Ãv¥\¹r‡÷–óÉiy=”y6Æ9åoˆ àˆÖÕ9SÎðH³gï 9svò»LFiÓ&a?Šœ|âä[’—ÅgŽœÁ„™ò8¨08ïB9 A¶l9ι՟:¤˜4i³S\¼ø‹‰d¦W¯E”0aNöSÔ‘ænµáôÂâ9}zk _t‹Xw>t蟱óñoå\ø×Äo¢B…<’c!W®´A<3e=ª! Â@T{ã:_Ÿ"°~ýQY @(²Ç¿Ï>s-· ³Ž†­Â*阑 åV}÷î³e?SÞV;wžãl…6mƲÓ`QjÞ¼„;¤¾/Ÿ<ÇZ€}4bÄZ¹ò ŸcŸˆÏZxC(ß¥Ô©ÃæòøÉ(ƒŠ€ƒ¨0à PÚLp$‚¯Î$°WV®<@7nܵ³½vÕ­]{˜V¬8@S¦´Š¨Ú#ϰ;®Woˆ¤SîÖ­’Gh"‘;wŠ`ذÕÙGÎaÃR©R9¼ªq D,”§¨‡€ QïëŒ}„ÀæÍÇ#Õ €•3¶s zFJ“Æù]ç/¿Ì‘CÍcàìÔoÞ¼/ÁI®ÿ:!yðÐ… 7iР•b€VgB "‰¢´(Q¢Ê›Öyú„~õUi»ã¯`áÂ=ôí·eí¶‹¨rîÜ„ØöE‹¾Š¨Úíg‰lÔh˜½Ùa#—@®\½³†)ãǧÓÔ©[8k`ÎŒX™R¤s<ñ>•†"à TðŠJC`îÜyH°gçÎm;¿Àüù»åXcœ’çH™þÿì]˜E¥÷ŽR¥#EšT‘&ü Ò)"½)‚‚‚HUQQ¤+* "EPP:ˆHï¤w©Òaÿ÷ýÎ]6¹$—Üåî’»™‡\v§Ï»K曯ÎÛ*Þ»v­âMõpë0žA÷îßÁ•qi(Ü• ·~LVøå—ªÿ9¢_ñí·Äú"&ç£ÇÖÄf41›Ÿ®^[´"°sçIEY|±b®OÛôÀX½{{klŸôرËÕË/—Pþð6x÷îÕ¡Ã×ÏÀ1…}>ÑqÍXT¤/Z X×£ÏÎiÉ’%êÚµkþìR÷¥ˆvŠ)¢òçÏïÓ¸šð .]Y#àíÛO€…J¹cçÿùç!l4·T͚ϸïÄVB«Æ ˜4©•-7â—ôÌwìØEµdÉ[*Q¢Àü¯OqÀÀóÅÿÂ?vUÏ?Ÿ7â Ž@ËÞ½{«={öD ¥n¢FŒ+›·}šP`þ"ø´]Y#ìØqÒ-W€3¤AáÂYTÖ¬ÞÅøâ‹eªFÂâÍ0²+üõ×G¼„EkõÔSþtÙùQ1ð­·fPÙ£Ú¶­ñ@-å­µEdÇvn?hÐ ¸4윭ï5A@îܹ#4OM D6ÝH#rèÈ]âI¿E‹çÜ;ä¯[wXÑLñ—_ÞpÈÈÍñã— š˜©Z·~^Õ®í[„ĈŒçkâBB iÒ„jîÜnªL™\¾v¡ëk4‘D@‘P7×zdpwvïÛ¶EÀ_ôND@®Ýê–(áÙ­qxèÓGA§NÓUŽéqÚ}9¼êÑZÎôøá‡ ¢ÐH/‚É’yïž9Z'«ÓÄr41˰^^ô @“;K‚Å‹w‚=Ÿ^()Ü íÜyJ­^}›dçpë†WîzÄgÉ’7U„ñ«må6AŒ…â­qÚ´vØT8ÚÆÖi4aÐÄ@XLtŽFÀgèãŸQòÒ¤Iê²-õ¼ÝðhA@ûÿJ•|Óv˜Úø à3aB+á 8—ÇÄ=ý&ŒµA‘V¨jÕ ªO>i¢Ò¥KSÑcj4641`C_j"ŠÍ Ÿy&«Ëæô=ÀÏÇ¿ê²ÜžÉS<7ñ ZÚ³}¾¦È‚z-[–Wuëó¹}T4àœºtùFíßVÙ(àýDºO@ " ‰@}2z^A…ÀîݧUÓ¦e\Ι réÓ§@@ .Ëí™ãǯP9s¦Wµj¹÷bh¯ïêúáÃи´Z2$0ô,Ø®úöýQ,)~ûíM•'OFWS×y>"СCpXªA碉-½¯Þ·o_µk×.«A‚ ýgÏžxž® `«²›‹*Uª€C4J•,YR5jÔ»nX5“&M o“uTƒ €*æ½MÒïDÿþýáFüuüøqøéÈ®^}õU(½ÒD7ju\nÞ¼©+Ÿ 2ÀDu‘9:T5oÞ<Ê'Ô¾}{X yê<2ҜȠ§Ûj€Àîݧ‡Â…Þ’®_¿­¼ˆf}᥯¿þÎv«† K†WÕmù¦MGÕgŸ-QÆÕ÷‹·yQ°wï УàW_µŸ ^4 ª*§NR©S§Ï“<=sÃäiñìÙ³ †èè)¿té”%oB¯ä‘wÊË—/«[·nÁ»d(É6txÄM1S¦GЦ>Ä;¶   ÕÓO?-sæÌ™åÞëîÝ»êÊ•+pzõÄ0ûes-Q¢„U'$$DæÈS÷Æ7ô|ùò™ÍeSçÆÎ˜éÎ;ˆdù8\A'{z´{ÿý÷嚊-ªÈ ¡ðüó¡ï6ç¹}ûv?~|Æ…¥½Ù€ž9:$DnÞ¼aI‘»1lØ0³º>|¸z÷Ýwe-\3Ó¿ÿþ‹ÿK›4¯âúÍtúôiá pŒ£GÊÜ<Õ÷ö™±!C†(Öç³5çÍ zðàÁR¶eËyæ¬Ëz;wî”gW¬X1‹ 7ÇKžÊúÃFlÀé×ýcs7Ê•+g`£6ðãl€00àÅÐxì±ÇälncÇŽÆgŸ}f`s5ðcoõ]µjU£råÊØÀF5 l¼6k›©“·ÔÁ`<÷ÜsÒÛ—-[V®- }O°AØ8ùóçK~ÅŠ­¹(PÀ8yò¤ôÓ¬Y3ƒ÷iÓ¦µÊÛ¶mkÍ¥cÇŽë>Mš4F×®]å¾B… FãÆ­2^ôë×OæyáÂÉ_³f‘.]:„|R¥J%ëf!65ÁˆøðSªT)‡5°î€¤óÏܹs¥Xó’6½Ì›x²bNܘˆÁK/½d$K–̨[·n¸õ½}fìˆãA#}Úÿ€°3~þùg„ˆdƒhçK|ùìË—//ëfaÆŒO?ýÔjþá‡yòä‘{S²ž—_~Ùˆ/ž\ó9woS®\¹ x ô¶ºUO‹ ðf餈 dɻ⠰ÏåË÷áäC¥J•Äã„„ܒм+z(¤?ÿÛ·ï3ÐÔC­¨-âø½zý Þ|s&â TR?ýô:NJþ‰¶µ3xï<Ñ‘í½wï^9a?^­]»V‘ÅŒx5kÖ,‘1ã‡N•æÊ@d‘¯ZµJXÍ?ýô“úý÷ß…ÝÏÓà›o¾)§NüJËiyß¾}jÙ²ex?B~è=N”§M²Üy g_Ø´­úìgìØ±rÒœ6m,M¦© H9ˆ9雕{ôè¡þ÷¿ÿ™·êÏ?ÿǪ!D=¯ˆx€òþ×_]8 ¬Äq°ÊÉ–ó$wãƒ>ö‡csí'Nœ°8!Vç¸8pàgÉ„“ÈèyZfŸ<ùcÅ{ý™p?XwÓ¦MjÞ¼yVć¬{Š/¼©ïÍ3ãóãZÈqNI’$bn]9­z­œ:uª`Ž\¸B pœ›¹½¿}û6”_”÷ˆÜb5nÜ8yoêÕ«‡pã¹më¯-&𒺟8‹- Ü…-^¹r¿WüäÉ«% Q† Sš;w ~·ª3:*o#"úûÑ‚Ξ½ª¦Oo/¦ƒþ#û£ì'7™]Á>õÔSpêi§`aë“}ÏÍ•—.]d##;¬É>ïÓ§\1·…#¦Â†&ñ0gΈWj bcU韊l”_»KlË 'O¼wmð>̰ª’uß´i(¡È2²ýIÄpS£²ž=‘ nOd[›bœt…}ÍMž,söûÝw߉X€k¡ Š˜~ùåüÿxIÕ¯__î¹Np2äÚüÃ{LÄ…¢nìÄ€" Z\8 œé››¾™H¤0®E&áÕ÷æ™QìáM"Qî,wB-€ˆ=Nú8,÷¦¹Ôá³ ¸ œ!>(bŠî¤9Ѹ/V!ö¾8õ)T(¬ò 9çÏ_S/¼PÀãšé`ˆæv;VòXÏ]!Möúõû ?ÌUåÊ¡òUwu£*Ÿá†_|ñSȨãK $úˆ+É.ß§ŒÝ”-sýÜÌxÂg«^6_rfÏž-óÜD¨QÏS åÒÕ«W—ÍfØŽ^™2¬TxZö”ræÌisÓ6•ô˜éÌUà& 6¿UßÓOÇ”ãóóå—_ªmÛ¶É<§L™"ÍH´0Jeÿ<Á›Š…üæÉ™D‘™(OwN ªC9:?$$¨‹ñ„T#o¼ñ†Ê‘#‡(Ó‘‹B‚Áž¨›a&oê{óÌX‡Ö Ï9]¿~]At"Ür;¸&“øa]¶åIßU¢îˆsâ³2‰ZDwÒÄ@t#®Ç‹U8pÿq³à#…&s+Vì“(†î¬ Ìz“&­†V>U°`Ø>Ì:î¾ùÃ×½û qxôî»uÜU‹²|®}Рù d¾ÅÇ zxˆ)Ê&ÍsÃ÷&ñdL½É“'Ë&bj‰“åÍÍŒJ‚Tƒ¬^XìT½°ÞÍþó`{3QTA.…™ìeܸ¡ÛËÍzÞ|S™ÑT”$AAe?r<¨I–6- ˜¸i“à±›&R ЗD®CK“+mxÂÜ›úžÚÛçFBmÅŠ¿Ý¶gÃ;è°ŒùÎÁŠ Jé“òìøÑLT,4±%‘@n…™È=qNvB¹,ºî51]Hëqb%ûö‘èz¹r¥³>Ó¤0L-ƒ!ŠW­Úa®À—_®„÷ È‚›ãT½î†¡qã/ÁŠþ fŒ-qj|ÚçÑ;” 7a“•O–°i:G Š x‚¦8œn¢ÜlÉ)øê«¯ÄÊ€í{ï½çqì›'kr(G¯]»¶UŸE Ô% <›T­Zµ¤|æÌ™"§7+ó¤nê70ZîÜùáfK?Ô0Åd©sîü^¸p¡‚rµR Á{n ”Õ“ëáKâ)™›%OÏÔÄ'áA-û{÷î¹ìÆ×ú.;ù/“\âDQͺuëDçÏ£W¯^ªU«VÉ¥ ‰)Ÿ ±ß°aƒZ¹r¥ÈûÙ Ÿ'Ÿ- H@ðÚÛDN‰8öå ÔŒN@@ £fÍGšÂf7´ ­ <¥>}fÏ??ÜS·e-9r¼eÀ}±Û:QU°cÇ £dÉ!Ðn߀ aT íýújM¶½ƒ¦85åáŒÆš7­°aZ÷‹/æñÑÛÛÊÃÆfÐ €ùàˆö9ô¤œÖ¦Ë©¥ÎoÓšr|Ñ7­ ̺ & 8î1Àv—~hM}±&`{Z Ø5Î;uêd`3·æälMÀ6懖8[lÇD¢íMÛÀ‰Ø²6xçw (âÁÊ¥´Õˆk ´Àp¶&°&‚ °ä ˜lJ{j܃À1¨}ϱÀU1L Ì6áÕ÷õ™[8W²æÏqÛµkg@¹ÐÒ µ¸ –Eœ0 ”rZÐÊ‚øAÔ!ó眙LkpäžøÎ˜– ÒÄjf¢Vyxµ& \J'€F ‚4l8΀æ|˜Öóço5²e{?¡?a* N†Äünúô?]{ÌC4B£zõaJõ¹Ó˜Çºþ.œ5k£Ì»iÓ Æ•+ÿú»ûíÏWbÀ×Éât)›NÕaš2>,“9³Ÿïßÿm@6-›;7“0ë˜ÄNËR—°=‘àÊrœP h¬Û‹ýr ¹M«/šrcf¢ Ä ÄV¹¯ì›c˜éرctÌÛ0ß¾ÖÓ-ƒó{߀ˆÃ ñæ*qn‘ñã\1ƒ¥@çl¯îi^j'<ÂkQbÀQ o™N€÷PLà*,1õJ–Ì7¢¡N\\õøí·ëDÄШÑ#å*Wõ\å}úéïêï¿/€ÜÇrn⪞?óîߨž/Áºu« ¥ÅZÑ6¶?×S}‘½L |ŠLG:ö¹¸Êc9åÛ¦òÙãá%³®«z?Ø•í\Õ‰hü èT:«9ÍD6?Í #“Lk³S&oÞ;ûZß¹½ýžó§•€§ä¼~{]Š|hi‘.MDšùÜF>C¦hB8> SÿºTü£Ia§N•ÝB…Þ"1ÀxI’$p[ÏUÃ%3²áС/«9Âê*¸jÙ<®³}û¯ ÷<“¯ÖE‡µ½Žì±½ýçŸ.Zõ”yG4ÑoîˆÎ½nD4ot§ÇÑ•»½}·ÐÄ@Ü~þzõ‘@€\¦29ôÂÍúâÅëM ¼èܹØ&‡Ú£;tàᆦŒ=zÌ€{¯\{èÊ뢃ÏažSÄÔí—_zâTë¸^¯;Šãéª7²‰ÖTdsNt ìÉ1  uÒxB@[xBG—i< @ßû™2¥Æ)-©C-ú xòÉTaˆ{¥¯¿^+Á‹²gÄVµ—»»þðÃ_à» D}úiøáÝõáKþ²e{ÁøžÖR«Å‹{kBÀðt]@! ‰ zXzª…ÀÁƒçáhåÉ0“Z»öÜ¨æ “ofüý÷?pW{'ûòf–Wß6ú BÄÍ9ªb.`ŽSá§(\êv‰1φQ½NÝ¿F@#Ÿ€F bÐáP™2¹“¿y3m©9äÛo¦O_+N‚ÂóLhoÃ~ßzkÜÒDüwßí}…w KÕ§Ïp»®qëFØBxãj9íþ}±÷÷:λ ›ú$°­÷Ι‘¿Ç×ý7ô⑤‰ˆ ¦Ûh€9ËüB˜ÁzžÞ5gàÖ­»êÇ7Aî_Í­²—+pGZ ×±!hÛÕU±ßò¨(ض-Ëœ‚ceø­ó éˆñø‰®?~8ʧQüdŽfÁÙÍÙèš‚G# 9úÐDƸyóN1ÁÚµaB”Qdì®ú3g ~äïÊ 4°«:Îy „4qâ*Dnk¥½ˆ(z“àWþ‚˼ÏiO8O%ÖßÓ%pT'ê|ð=Y³æ ˆ‹Ø)Y²Dpá›KˆÈòåóÀüïSŸˆÅ¨ž³î?ö# 9±ÿëF0åËç¨3Àxw\Ö‡ƒ!D‰+®Ò¤qT:d™«DÛþ^½fÂl,76êr®ªø%oãÆ£àL…?õôq0}úä~éWw¢à:÷\ Ææ@ýñÇAá(1 ýP´jU^,CŠÏŽpÇZ…K¿/1‡€&b{=r#@b K–4*yòDÖ*BBn# Ë)E‡<®E{öœV£F5vUì2o̘¥êøñ‹ðOßÖe¹?2çÏß‚ã{ÑG`ŒƒÄ‰}ó{à9Ħ>à!ñ"N"Bá~|¨-[ŽK0«gžÉŠ0ƅࢾp|õ/›0Òk <41xÏDÏ( 1àÌX·î0lñ•œô\-\¢E³#Ü©ç0´f[Ž1fÌ2f©£|5A4ûï›ý¹H”©,èÎiMxýÄõrês¬Zujö €ØbvZ©R~ñQ¡B>m×_’_¿&üéé&tÄS®œ£{QÊ®ØÙïW@ż_~Ù×½•}¥ôPØ«×g…ç¿Ð¸îöòÈ^3ôpß¾?Š2#£ ’]­“÷ðùlÞ|L12% €Ý»OC 0>Þ‰|¦ÉÂ("xöÙ.Oþß¿^t ŠÉ.N‹ï’Sèœ9Ý@\Ä ·¾·hå@Žc)|÷]G¥M!GóMº‡^¼x§T䉿FgTõê…i0§öø.}KÐÄ@,}°zYQ‡9¹s;²‡¹™4kÖ‘mÌ,Ø® ¨î„XwÀ€¹ªI“Òa”Ãmì¡ÍÛ~˜›Ú”)mTÒ¤ =ÔŽEwï>Ó?*u’rK)’Mµió¼zé¥"Zù/n¼z•641`C_j¼A€Ä@ž<¼ó>}EñCÇ@ÎiÞ¼­`Ë?T ”t. s?bÄ"ñN8p`½0eÍøùçmò˜Š‹£G7UñãÇ]Ç6Œ¹°jÕ~!ΨpãÆqüóæ›5„ ß4qM ÄÕ'¯×a(&¨X1ŸÕžÑ©/P¼øSVžyAA­ZEUÊ”‰Í,—ß;vœ„c¡µØ°_õÚ;¡ËŽl™ß|³Nõï?\Šjð`ÿ¶!þ’:ýõ·š?«˜v^»vK8$}úÔDh梢›ð‹ÐÔDšˆõ±šå9sÕ3@=jåÓtОöí; Ot'$òŸ=ßùš }}úÌÑ€¿"ҙЈ¿*š¼1(R\KŒç0wîVp¶)ZÐ_2ëÕ+î6nD\ÃH¯W#`GÀñ×Ë^¢¯50;vIòì&e6ü e³Âaê’+Àz®ÄöÊS§þ!ÖË—÷µgGøzðàŸ¡°FÂ(;GUŒp§AÐf€óæm.À‘#ÿö¯½VVL:ým¢pè)j|B@>Á¥+ÇuŽýšå[îi·O‚s9@sçÎ}ØñoV¯¿î:NYùŸ®«?^¬:w®i›urz÷ž)â¸qÍålŽ[¿éø‡z ½mÛqaûS?¢Aƒ¢[×­×¥ð7šð7¢º¿XOœ™3§¶Ìþí©T)Gbà·ßv©ë×o«ÆKyÄcèÐ*Uª¤ªgÏÿy¬^!µã;wž.‘ñ¦Oo/îpÃk¬å4\±b€jÙ²½PŠŒ' €ýúÕR ÿ«ã+ë“ÕóŽI41“è뱃cÇ.:œà)"(P SÁÙ³7Ɇœ!C ·k¤â!¹Ó¦µ‹T¤À[·îIøámÛN¨™3»ˆ†¼ÛAƒ¸€¾èÖyîÜ-ëá¹çòHH*hjsÉ ~°zê€&â1èI ä Ø£’3Pº´#WàâŹnܸn—Å@AÔô¯R¥€zñŰún:Ð7A‹“Eç`ö쮢(çT%¨o)†!ÁôÃÔþýg…£uDÆ%%„tP/NO^#@hb €†žJà#pôèElÞÏÈDiYÀÓjÇŽ•&N%6žT])š§M[«Ž¹ N€Ì<_¿i&÷ÚkÅÇã Ø‰_û ¤ú4\½ú €õâˆVõê•  ¼<†5ß ¤¹ë¹h‚M ë“ÓóŽv¸ùŸ? ‘êÒËØ[¶W÷ï?€"*±9›š¶+ š}™eÞ~_ºtC½úêuíÚM( v·æämû@¬GÇM3gnT³fmP§N]\Gj Å\ºyÄ5è9i‚M ë“ÓóŽvÈ`bØZ&Êü³gOçฆ¬lƶ6¬ÔqõÇTìÑ#bJƒŒØ¸ñxEz$‚Ùs×@eKŠÖ¬9¨Ò¥K¦èk¡iÓ²a\>»ÂRçi4þA@þÁQ÷8qâ²hªgË–VVKb LG}Ù³7+–;ç›ð0"eàS§¶Ði—á6'Ö óçwW3¦4»ªoVß}÷—XÐ<º“'·–À@ñâ=TkÑ“ÕÄ41ž¢^C´ ÀÀO<‘RØÿ4oÛºõ˜:´¾56íü©éNG7îÒ{ïÍS*äS5k†ê¸«ç*Ÿlô ƪ)cíê5ÑUý@Ë#f¿ÿ¾KÑM2;eÉ’ZµkWâŽ2Ü•@›·žF .  ‰¸ð”õý‚Àñã—,gC{÷žV7oÞu°$ ››:Ôtw•èg÷îS°ïãªØcÞÉ“—Õ+¯ŒS©S'L½«ßâxÔO…$bÈ (€–/¼P@ÑBÕª´O?a¬»ÑDM DAÝ>Î @Îu˜hÓŸ2eÄ(Èh­ÿ§Ÿ6‰¿+¥@Çÿ3ÀçTþüOZm¼¹ BÑ@ºtÉ¡`×ARošÅhrI–/ß+\€•+÷+ú[ ǤY³rˆÑÉEÓà½zõRŸ}öY4¦‡ v¶lÙ¢J”(cËÐÄ@ŒA¯6H +–]¦½uëqëš´÷§"Ü A®£~þùR OÌhy¾$ÊÖIP7€„@ªTI|iíué€\€o¿]'(™4©•˜YÆE]€|ùò©÷ß?ÚŸƒ0x8þ<‚huñ kb Æž@° @V}öì¡ÊƒôƒOÏwf"!@Íø:uŠ™YÖ7‰ˆI“V©wß­ã{Ÿw5§2eJ-„u5‘S2mÚ¼Š‘ E€A’rä5à ÔyGõ¼Ò¥K‡gØ(ª‡Ñý1GŽÑÄ@??=õ8†Íùnß¾'b‚ÛŠu‰àÌŸ¿MÜ»báÓ”â…6mž÷5z:$G kÖ4µwVÉ“'òºmtUd0& úꫵjÇŽªpá,…4Tõë—ˆ”{åèš¿G# x„€æ <ÂB_iÜ"ÀÓ=7urè%¯xñPb€¦qkÖP£G7 Ó~ݺÃjÑ¢êûï;)oÙäŒШÑx‘­S4,Y`t4}úŸâ!Á˜j×. ¿ õcmL„0Ughb!šˆ…U/ÉÿpL LàRЇ<úHŸ>¹ ôë¯;%rž³ûa ƒ͇Ö|A¯£RAB€&Œä!@sÀ©Sר¥K÷Êü# yóç,üºîQ# ˆ.41]Hëq‚šÇQvÏð¸[·žpUÎ ßyãf„=z$üòË–^­cÐ|0Ôj ‹øðªaV¢h„¾¦LY#k)[6·š8±¥Ägð–Ó…ÓÓ]k4~B@~Rw» gÀtûK1A÷îÕdÁ´›ÿë¯ÃØ [9ÀMtäÈEbNg7?t¨d»9s檴 h eʘUÒ¦M­È­Ð)v#°zõj„ˆvt¯íï;v &¸¿Á²æ]éš÷òåËÁyšg\ËàꟇܻw/þï$“vçÎ×êE(øþ­:wî¬:uê$×$@-Z$c.ñá>O.ˆhb ˆ–žjÌ!À˜EŠdƒˆà¸è<óLV™ EÔHœ859ÚÚ»\½þú áÊÓÉY Ž@„ñÕìÙ1ãb˜n‚IÔP@®GÑ¢Ùá,§©˜IROB§èAàòåËêÁƒ ¼Ò): yê©§à_"#<]ÞÄsÙ¦2gÎŒ Y9aÕr[qÓË”)\c‡*—Þ¹sG={Ü«,ÐmI uÖ­[''á‚ :xz›õë× æ)R¤ñjvÌþØWòäÉAاæmp$<84pÈ“çmcÆŒ¿ŒAƒæ5j|"µÐÈœ¹—±té‡Öýúýd/>È€×A‡|ç›+Wþ5ªTi”/ÿqáBˆsq”߃saŒ·Ü(Qb°‘-Û›FÇŽ_7‰òqãÊo¼ñ†Q®\9¯—Û»wo<‡lFŽ9 ì6R£k×®6¹gÞG}dœ,}‚è’&/Èš8ÇòÉ' lüRÆ~@„XåeË–5*W®l BJp³?«ÐŸ26@¥Ñ—¥Ãƒái뤰#P«ÖhDÏûX=ÿüpXŒ„ ÝIâað£‹]}¶li¤úGýŠS•R!!·¬æô?@|$I’'¨›V™ýâÆ;Ó;'¯;tˆîz£+ÑLràÀy8q VôŒX¯^qè= ½‡R¥rF×4ô8.ÀF¯èƘ'sÊïÉÞA‘Ó5„­n Îdˆ«²ªJ•*©Ÿ~úÉêaöìÙRŸìrlø"g›5k֨ŋ+r xŠ¥Üœ§g²ç±Y©ƒZ}8_ðTNv;Oþd½cSNY\–:t¢³Kª_¿~RDŽFß¾}…³ÁŒ5j¨ž={šÍä»aÆ5TÔà‡œW_}UÊ(2`Ÿûöí“uðÁð_1ÿÿUÇW¼§~=÷q=œ'Ëxb'ÀU*Uª”dÓÉOx©uëÖøÿ›Dæ‚$¥ñÿµ©˜³íîÝ»…BNË–-g>3¦yóæ G$*u/d ?ÿÑÄ€ŸÕÝ?Ù²¥S{öœQtüsðà9µrå>YNïø yz–,½ÔŠû\ª[·B4,[¶?T UÞ¼Oà‡­4X½ÇñCø±¢ß{ºuë.Lò&IP#Š2gŽV"Ã'wèðµzî¹áîÆvMˆ=ƒ0¨+> ìsÔ×1ƒ7Ò=z –CÙðÉjÇ ¥)eÓ47¾æÍ›[Yæ8…ƒhm&Štܤ§N —Ðßâ]Ì+bœ^:{Ž"»›6¿_{í5õôÓO»](eîœëRÆÏ Ÿ› ™¨¤Ç “ zà.ÈXÆû‘#GÂûd©Ú AKG@2ð‡nšù¡ø-ý&Mš$Å\¸ø¿õÿ×~ÅÿÅ=B¼pSæ= ž¡C‡ ›žXq½L$˜ˆ•«DK &óÛUæQlñ×_!²hMÁŽDIõêÕ…èà<™( aFñ‰4ŠæÎ+e$ÌH;Êž=TV:uúö»•Câ„É<ýòÚ^Nùù?ÿüÃl¯OúöD‚çóÏ?‡'wºp>}ú´ v}=$ LýöÁ51åÎ[¾Áò—oç?»ví’,û¼Í:·n=âî‘ÃÀÑ œkM7«G†ºL$xH1qÓ'á@N ¹+W®„“±ï¥,˜þhÎ@0=-=×hA L™\Øèú41’Ξ½¦† ùY½üòøéß!yׯÓ4oŒ¢ÓÈåÕ®]§`>Ø?("†7˜¹ „WÏ,g”ÄɓרråÞ‡Võ7p–” "Ž˜Ó¢¨ ©ÀúïÔjΖÊ}uêÔ‘ ˆ'QTX£b!7SjìSÑÜž²Éz§Y• íÉËüÌ™3VUšé1‘S`&{ùÚµkÊÌ:Þ~ó4o*õ 0@6Zr<Èxë­·¬n¸ñò¤N®™¸>&®Ÿ¢nâ0q󦘂5ôÄl2Mš4BX‘P2“]\BEM&Fœ¤Ø†Š>þøc¥D³-¿ÉÍ ¡BnçQ·n]{qP\kb (“ždt"ðôÓ™ð:Q„†üïà¦6m:*"vB ñ;wî;lÖÓjÆŒNªP¡Ðo!!гçjÉ’=áV§uý”,9D¾«W/ yqlmðCùè¤nGºBÀ#À ˆfy4ÉkÑ¢…Ì—'æV­Z©/¾øB¸”ŸÓº€Zí”ÍSÌE=Å“0õ(›w—LŠxj'§r3QL@#œCíÚµ¥ˆ¬t²ï©oÀ4sæLÕ¿¹6ÿ¬X±b¶¢Ïо}{5jÔ(Ìõ„àFOnçÍù™–÷îÝ“M–cRg€ÄȈ#DwÀì—ú<ÙS§‚›3 "Š9Èi WƒåLŸÐ ‘@B€b3Ѽ²P¡B‚áŽ;àlk¿`Ê1Më ³®ùMÂÌÔ×àXvË ³N kb Пž_Œ Pºt.9=Dtp“(0Û“]O>ú8tè¼™î7Ûuíú ~´6!öÁïnëS¿¡o߱ᱱöÕ•q"«úOÁmC]0+@S<3ñÚùÞ,ã7åÒ<åҎʆL4oãÆûÎ;ïÈ5u õ/ÊyܰxÊîÒ¥‹ltÖ“#GiÇ?ÎãóN³ÄgžyFù¸©Û9dÇs|êT®\ÙÚPiVGb„ßLÜ”§M›&×fûªU«ÂkgUˆ«j ACÂÆÔà¦Ë šâ\'¹$fÈŽïÓ§œÒ©+@"…¿Ù/ëÐtcW©REÌ1aý l}ö Ñ- ;Ÿ\nÜ$˜(û7åÿ3fÌPäLPK !¸~óy˜ã™m¸ù³OþmÛ¶5³ƒêû1.ÕŒõd5Ñ€Àøñ+pêøU6ð¨ŽJ{;WñØ5E]º|ƒÓÓ.Kl1gN7°þCe£lL%Åñã—ãp~ØÓIŸ• F«y7 i°aÃÑäŠáx‚¦ü›'kZØ•ýh#ÏÍÌÔ90˹ÉñÃÓ1 ˜ÍY›µY‡'௿þú./‰hÁ®hH/¿ü2Bvß[²Å©3àÏdÚøs\r;ÈÉ GÀÔ© ¸ƒ"ú ÁU¢Ž¹œ•Ée;v,ˆêÑ¢ðÇ­Ê‚\¿)ÿ·÷Ã9P$ÁoDÔáð”¨÷@ ý2ø’(ª¡¾Ev¢Ä—>üQ×óêü1‚îC#„Ð?OòI=ÚʙͰÆtNÔ¿(kÕyŽÝ©Ótlò»-ù(cŒ½Ä@`_ü€<Yekœ  ['$çþô}ìB€âzÔã¦N/{Ή§ú *8gË=Yðv¥<—•þˤn?îRTy,äÆkIp³¶oØ$ LÂÀÝÜ(Ö°+H’  Þ€™xºw¥Lh–s$ÂK‡ðyЂƒzÁš41¬ONÏ;J ·Az¼{÷¾OãP1¬}O‰›:OýÔ+ ©"#Ú öí§áÆQQŠmÖ®=Ó@ÊE/5\P,¨ð¨SÜBÀù$Ô}«™¨ßÜ43dH ±K`0ŒBIçP¡›»ùýhÃg¹™’'O,=ÃYçË÷4ÖŸÆ}ZñàÈ<¦‡PB³¥þÖ6šìç£gƒ”,™CL‰Buqœè9í·kW‘ÍZ„Oˆ <{ëÿÁÑP%(?%t»ž<[´˜eÀ£^)-’ؘ={“Ä?àæ¨‰z cÆ,•¹®Xñ¶ON–üµ&buæŒyŠwÜèyÂgÙíÛ÷d8še̘{ÙðŸ>¯µñ‡nøi@Ø=мç¯9ê~4€€&á)è9$ÜÀ ÈãÓó£âãõ?rd#x+'¶ýׯߖS!O†$H¤IãzÕ¡#Ü0NAÓ¦ÄU°;ëögŠîÝ»/z¬;qâ*Ñ=pî3¦ï¾­ê¥PnÜ.†°}('o_<.z»D^t:Ñ;nøŒ'arqø<‚,|~Ê–Íõ߯z²§Çß!›éãžï‰N@G Œ!ƒA˜Î"}ò8?š»ÐG0&Æüf43!pôh*È„“ÃB 4/EŠ»Ð¾¾ƒÿ#ÉÁ&¾ öwhT­[w>N–7áÌ$vþDzs¼zøðqÈÿÓ"êaXo‡ˆ^ À@?÷áÍìXìpý›Õýÿ®™÷ÄÇ#Ž…cïQwGïrôwïœ8'Ž‘.Üá .!Aðᇠ…hrnãéžÊãɾwÅÂçÉþßCÝβŸté’[§znö¡'üО'û´i“yÎïeô^gwsë÷t‡± :LreÙ]‹ àOgºmŒŒ¹JtM>ÐÆ¡Í/f°t&B¯\fÀ@Ã7&æ“2å°‘ãc~€¨mI ÉŽVRÀ3Ûe<çР%×®%‚à>¸WðÊröf®gÎ$ƒ'¸è纵Ásnü ¸V ô¦ß¨¬C÷­tk'¨ÐøÉ'¿‰Ož¬ywÖ›àfîœ?Á¾ÉÛ¯¹Ñ“0õ'Ø/Oîæ&OÓOóÚ”Ù'NìÚùŒó¸Ñu_´hQˆŽŠF×pz@¤C ˜½Ñ ¥N¾!`óð­U`Õ¦73º+Õ)²¡wì8 OgYàY줘Ò¥°]VÏÓi²daO÷±C{´¸íÛO€øþöZìu;`®Ÿúöí'á%oÞ›¨rÞ•+¡!gYJ–ææNÓIŠbì'{úbÐìvQý­ð?n‰ÿ¥{Ô©R%o÷|2qÓ/€`A\!̧wìØ DûRýñÇAË:Â`Ö'1pòä%ˆQîȆOM%=sÃh`(s ý­ÐDM D?ÝZ#gøë¯¿ášöe5nÜ~kÍî”­ ÿ]{²v­cä:ç:ú^# ˆ9¹¡õÈ@° @e>*Þ½{"“Ô–2Y÷ „¦øçŸ–V°¬YÏS#—ÿq\BC¯U# p‰ÍK—Î SÈmð’ØC5kÖLÌ·l9/ÇÄYÒþýçDáÊ~ Øc40Â]öfʸ~\.\gjⱎ¸yó&~ˆHØNšõôìÙSBq2v ¦£G/Jä¹&MJâôvN =JEGF Ëœ9s”Í“qÙÎUjÒ¤‰jݺµ«¢(Í ”wœ üÔ«ê^™^©dI—ø¹|ù‘÷>Zhb J_ ݹF ÂÄ:b€Úðü±œ?¾7nܰBÀF%?7d¤º ¶©Ü$mòæ} Yšðæk×®©ß~ûMžµ/í|­»k×.ljUƒ Â4õÚ5Le?fê;ž(Q|UªTNùtî\EVLþ&÷ÀÎ)ð#º+€FÀø ³¢Ý»wCK8‹ØªsnW®\QüÑf^‚¡6ÀgΜuB+žöñãÇÕÞ½{ñRÊÊ3×uòäI„j=.q­S¦ óz÷î]é—'ýýû÷««W¯"ž{ éóÒ¥KpBò/X™·àfô œÂäƒ+ÔÙp “ÁìR*íܹ'”LªX±b–¹-14çíÛ·7ÚÚsÞþJ4Qûõ×âš•'¦xñ±ê0Æüö×XÑÕ1£_Ú•³gŸ}ŽqÁ>ü¬:|ø°Äg9Ÿ ´lÙ²YS»|ù²<'c¶Ù³gbHU{œr²—ù^ñyúé§9ΜOï¤ß nÜ$ ùì'Ýžõþýûð’Gç>¡®fékƒ®iÍw–óžãÅ‹gŒ1BÚàÄ/ù+V4°AÈu F×®]¥?Îñ¶õë×KùÑ£G¥í!Cdœ´iÓJ½òåËب¤ ?ø<@É\8û˜4i’”yû‡ë;}ú´UNUŒŸÞfÀ1-[o#kÖ^F–,½L™Þpø”/?Üj“Ø Äåöz Ĭ\¹rÖsÀÆoôîÝÛz à xa3>ûì3ÁýܹsVßU«V5*W®,Ï»FòîðŠ·{&î Œçž{Nžß#>S>°ííÛ·Ëõ¡C‡ Oïä{ÂgÍçÊ÷‰ã ¼5—Ž; ­{8’w‰:t0à8Æ*s¾ˆkï8ñûî»ïœaÐ÷@#ÀSCò•À P~l!›7À0öíÛgàÔn¼õÖ[Òoß¾}åG˜?š8©ÜĹá¯Y³F~ÌÇ'÷ßÿ½Ü“ùä“OdSX°`›S™”]kýð7mÚÔÀiÓàfo‰FóæÍe<æÃCš\Û‰nÔÜH¾úê+)c;Îrg¹çÆÆ aóæÍ¸ 2Oœt¥ÌÛ?ãøñ“œ°`3ùÖÈ‘£‘9s/!œ û}0O>ù¤ÿë¸;FòäÉ œ® 8_2Ο?opSíß¿¿A"€±Ihðãý”)SŒY³fÉs!1ŽŽŽààˆú&},[¶ÌÀ©Þxíµ×¤®;bÀÝ;AbÜ\œ#,ƒ„\/Ë£%aðþûï[yРAƼyóäžÄ@Š) (Ì…ùð}gŠKï¸&ä‘ë?X‡@¤ÅsçÎ…¹Ñ]ÄhYXÃØpN‹pMú»5j”:t¨(`U©R®W“ª%K– –®oqBW8ͳ ‚µ4•o²€ûôé#¬²éß»xñâ ȈÉâe8p \¿&A$´<ªM›63CòÝýÁ»°ŠÁq*lÇ9/_¾ÜjÒ¶m[au3£aÆð˜öžUÞņ GÔ¤I[¡U½ìè;â‘ÍtÄzÆcóË—ÿU:M÷X': {ÌwMoaøRV¦GÑ Ýã4/÷ý­O‘ýnÓ•-•þø,ÀŒA”‰¨†Ïœøó¹ø@åÏŸ_N†K—.•S"O‹¼¦‚7h*muïÞ±ß;Š‚‰rÌDëèˆÒ ó¨ hþÀƒ=oúÌúÎß`g«+VÈædœ§Iœ°¾™ïÜÖ›û2erx(¡† «¯ QsælQ‹ï×ä>ÖGeA÷gMmâÄVÞ ¥uæÌyÓçþ½Å¬~ýúЧs*â­Zµ øÌ‘±6mÚ$І<¥S‰ðÓO?•÷…Ó§OÛôsÖœŽ9b]»ºðôN°ÌLf û³7Ë"òWÞñˆ`£Ûh4ÁÀ£crç[»vm9A“EËS߯¿þªjÕª…p±l¼< òTOó,F:#+˜Üø %BÙÈš%û˜~ݺu/~™ÔD'1ÁúÔÜ6Çc{ž2Y—ó`âé”?ü,³'Ή}‘õϲ 6(è'¨W_}Õ^-Ò×ñã?¶vA5~| HÈw•*O‹wZØ9‘,ˆ:H–,™ˆeøÜø>Ô¬YSfO Šd¸A“@$g"ž¶É)€Ž‡XÐú <±»w‚‘û@¿$:>ÿüsE.ƒ)rš9s¦¢ÂLäbQŒ`&ZÊð½vþÐ2œ¸öŽ›¸èo€F !à¬á«!ÛS1Œ€E>ÔʧrÖØ±cåž _Lø16À~7ðã)÷¦v?ÛåÊ•Ëøæ›o$ŸŠTò2û£RÚðá¡÷¦æ¸©YNís°œEÁŒñÃ.ʇ07 cM@e6œdEy}ƒ¥5¶Ãæ`àTÊKIpf#Šcæ½7ßÎÖö6W¯Þ4fÌøËxùå1–R!• ©H¬ „ΘAGÀRåÚi%@¥>3@”gúÆo˜Y¢ÐG¥R>>g*ƒB×DÊ©xh>g–Ó"€ß|Ÿh¥Àk»5Y×ù !ôN¬çNë“uëÖYsèÔ©“(“šÎÖÇÕº*qî¨á¥K7`¹sÄXk4†O6)"Ä; f5µ÷ÁÊuè/¼ $\%°_ES&ff2‰{÷îÿý·h­›eæ7ëã4gÞ:|CG@ú¤¶»¿“'bÀ>BàÂ|n•Qµê(!*VüÐ^c×¾šú:QnÀÜTiq✘GkZ𨭠øœù.Т€íMâÒ¬Þ;Ab€Ö*à¹Ûì'ª¾cÓ;î-1pàÀY˜ þe¼ñÆ÷F©RCä=_³æ@TA¬ûÕh"‰@¤uðã,‰NìÊ^f~xß´°+ÙëSq‹w Ü—E8Ù¹Ìg&Í𓉱Ù;t¨$ÓqLÎ':Æ&»ŸJxÐysr•Ç:ÔI0Ÿ3J…—̺®êÑñPLx Œíïø­[wÕ¶m'ÔæÍ¡1 6o> ç_wE$F}]3²aæÌîÿ_ºz^:O# ˆ>üF D×”¹‘ÓÌ[ŵèšWDÇÉ™3=!ÓG´yд£œž¦†4ë‹h‚o1[¥Î=…÷Nð}‰iÐ>ßð®Ã[Oxí£ºüêÕ»p§½]mÚtº‡ ‹q^&Œÿ ˆÊÁøg¥Ì™}7]µë €F JxŒœûT¤RWåÊ•íÙúÚ ¨G gw¹^4 ˆ*ÔÞ6l˜øˆ éI Œ+0vìr5|ø,œø“c^ ]ü¸2}i„7ÑäÉh^5]®ÐÄ‘¶&ˆ¡yëa5hD€æ±=zTƒÿ?;")F6Ä’ÂÛ)¤H‘¦½û`|V…„Üö¶™®§ÐDA'&ˆ&\ô0€ îÞ=¢z÷.ˆàC%áâ7шïq~4ØMHÈÕ¼ù$«ÇdɃ–ÚöI#×™21°Qh>ëè¤ÐDšˆœõ(AŠ]KŸ9sEeÍš~.þÅF•.§ÿ†îBnkEwîÜ9y’$¡‘9­‚X|Q¹r~ˆóÃ_ÇõÉ'¿«µkÂ?D<Ñp^v‚ñÔ+¯< WÓuåUx–¼"ß¼&¶gÏ^¢‚÷ÿþ{Çjž2e±`¡D q s }¡ˆÜô(¨“oÀ,ηXÁƒÄSN-F¦tåJbxALŠMç>6ªˆ…q÷ÉáYòq\_"kè´víJX·±Aý ™ºƒN8ó~ ^:S@öþ86ӇÇ~âÇðßµüyíKŸá ‰bgÝô¼ùã]ú$8¿#öÈž0D•}¹y'Mš˜e”»)P„@!”P ±ú9vì’Z·î°´^0Sš4Éœ†4ÂY ¡` Æ3«»ü¦ƒ4Z»è¤ˆðݦӷðRb€žßì>úÃë@—?B€ xŒi¬‰± `¬Ó’y‡„$T—/‡>Óĉïëd:l67ÔÉ“i„ (Pà²lþ3Þ‚êÔêÔ©ðnxÞ½% 7à1½$.UzC—E#^<“X0à<”X ¡"Å=•&MôÈáé-Ò•ç"E²©¯¿n¯8§>ûl‰XÐ' ia@Ö¿7)eÊÄ*eÊL0?Íä¶ú•+7ÿ#‰Z5¬ZuÃUqÎHˆ¤K—\ÎÁ$hæHbyV .”xnÕ C¾t¢#€Þ#ñœ§%„±&ðTY—iâõë!¬p®;I’„ЧÒZµŠÀ5ñNÙhŠÏŽˆ™¤¬xñA"J Ûé´i“«·Þzî®Ëà„ïùdʾ)Žxíµ‰jûö.Yí¬cOTè£kkn´“&µ†;î¢öâ¿>vì¢úâ‹eàl}‚Ÿ~zÑ,óDÛ¼.^¼!†Ó§¯ q`rB¿¯€»báœ$I :°Ú²e0ÆúO^aÈ77ßñãW HUè]ŽÓ!ZT_¸p]8 ß|óƒš9ó3M È;£§á|%<ÿ:ùgNº@P"°{÷iBÀÔ }èG üĉKð¬ø©ªP!ŸÈËCkˆRáùó!ªoßáó}9%Ó^ß]Jœ8úæ›ö`Wõjs'qÑ©Se¯êº3ªóÉŠÿýEpÍ"g'W.šJ꤈Ûhb n?½zlÜxTë˜UÉò KqedÕ#jÚôK…Ä¡D娽zý+„÷q‹[}nðãÆµ€^9‡1Ì9Ø¿©½ÿÚkåìYúZ# ÐDM D6Ý(. °~ýß`×»^©“ãNEî¿hÑ.p l>xÿkÎúüœ:uEuïþB¤JõóÏÛ\<µŽÑõª¹¹$%Š/¶þÇ_r[Oh4oÐÄ€7(é:qô¯ïm¢Ž¹ˆ’ ý×2üP¢@©ãÇ/Âíó7ê½÷æ¹íþwj‰m¾« ‡Ü$,Zµš]ƒƒ®ªê¼X†À·ß~«ºuë-«úòË/BŒC!6­¸ZoÖ¬ÞÝãÑ2vD¡é+¢ÖZM[µj}žŸ¬ûˆ^|ñÅdÖœ?GõØíÔ©Sá½³‡Ô‰Ì³2dˆ9r¤Ç±"S¨‰È §ÛÆZ¨@'C¾&êPœ€H̛Ҡrå§A ÔõXŠwÜDdÜä0Qi±jÕ‚jÀ€:jýújòäÖ•xõÕ/U¥J# w°N¬ ¿)¤>×D¢!{ö슧çsçΩ¢E‹ÊÚY8CΛmîܹá÷!‹5/Nž<)œb“2eJ‡2r(¸A2*}¼°Ÿ .HcÇŽI&LP\™":W¶òÉ'AxO6» óM.âöíÛ!‹¯ .,˜²¹Mš4 SßÌð´Æ‹/Ê;Äþ¢<áê¤Ð8!ЧÏFöìo™2½á×O–,½Œ–-')8þíÊ•û9Þ2*VüÐcåË—ÿ5`ão”,9ÄÈ’¥·ÑºõæŠÛÄåÂ1cÆø¡÷‚Þ½{Ù²eóÈAöÔÀ ÚA ÷Ìû裤¿çž{Ψ\¹²Õ76+¡¸qãÆ;vì0°¹  p} œ:}ûöI]œÀ4iÒH߬_²dI^ä¤ aÀâÅ‹Ë5ØöF 6y¿mÛ¶R6þ|¹›ß*c]l>RÓ3)ÇÆ/÷;v4@LÈ5¸²roÿG6ƦM›$‹×\7ç†MWÚ¯X±BÊÖ¯_/ý¿üò˲fâÂþ<(åÄvðˆ«r¤ „þŸ´”ö8yK9ˆ)ãŸflKü7nlp=¼æ8Ä ˆ<'°Ö¥]dæÚ¡CD™5¾óûa#káœR¥J%Ï—õø¾ðù1ÙŸ]xkd]®…BFΜ96mÚH?ÞüYºt©´AèMuC‹ €´NgèkßÛð¼ÎmyÏÓ??¦ "óxŠÏ•+£8:räfù” àÇ»ÂT±¦ÇviÒ$…L¹*œ%½§&Nl©®]»…“ e¿â´÷‡ˆ×ä”Ì Õ‹p_%QÞߦÍóê·ßzƒ…œA5l8N>ÊÒôeœR¥r¢wÞI|°îܹÝ>¸/~´ó¨áÃÅ&3ÂOpÃ{Η¡u]ÜH©F¶|¥J•„ÕŽ °²éõÍüá&aÀMÊÜgÏž­^|ñEa“-¾yófQ £€2éQ£F‰¨í_ýua±³N„¶Ñ/ÉBnÚ´©¬—+W.ÙxÍZ1Cž_gΜq7É÷´Æ_ýUDFC‡•ð|לE(;@¡ÖˆhºIìF`óæˆQàØïÅßý“O¦ÆFQM8 #Fü*>xRïׯ–7cFGq=ܨÑxœd^‡l3C”J_ÿ#G6¥Ã™37ªéÓ×â󧸦^A…ÿãdDùTbÅܼÌD1uLY9 ?s#¥LœÚçÔhçf·råJٸؖ/Oê£GVýû÷.ÁŒ3,¹wÙ²eÍ!¬Ó»•a»àæoO$PLNóÁ^¶Š9Oá%ê)|óÍ7«Ä\—Ù†9$&˜¨'`&r¸y3qL31v‹= ›s™‹'cÊ÷/ÅL$(ˆ-õ0òæÍkfË7 ¦={öÈ·ó¶aŠÌ\ÉÅ!Ñá*Í™3ÿ·ˆ>FÁ‚E÷ÂU={ž§5’`£ž„©ßÁvÅŠ³7÷ûõç¿÷«;Ô-T䯶üž˜ÌÄxë׿§¦Li«¶n=ŽØ;Dë¿K—*`õ½d¬Ÿ,Y"ü¨tÂáDDd`ŽëëwЉU‡r¸?æÐYæÒ±ãthˆSŸ¾ìܾv'ëÛŸ}x­Ìw*Ÿqƒ¬[7Ô‚2]Ù@( 5ÕI˜¤]cÿÈ‘#n‡±Ÿ@M%Fr.Ìd/_»v­GÂÂlC¥<Š+8G{â\yÒç\©PÇD%G3qL9räoþ1OÏV†íÂŽ<å“ÃBñùáÉ»Q£F¢IÑ OèL=@ßA¸,¶®.ý1W‡m7$¼HØuéÒEÌÉá)]º´­†ëKOk$Iñ¹Fö@.RT&M D%ººï D€1^z©¨¢Œž‰‘ôÈúgJ”("&Uóç÷Psæt“¼?lˆú6¢µ_´h6õÊ+%!^™*µþ«@û?©gÿJtÆj(ApôhÄÅö~}¹æú¦Ooöô»êå—KÀºa5NNƒÅÿ},èäêÔ©#,ß÷Þ{O63S»Ý´?§V=O“ÜhÀ O÷”“ÝL6¹)Kw5#nÀ<±’ËÀÓ)åãµj…r¡XŸböCýÕ×®][ºá†Jöó߇>kÊ¿IŒ0Ѭ–:uR³fÍ’Ó8”äTõêÕEsÿÕW_µØû”mïÞ½[Æ lŸ„E‘I$˜8WrT¸.ŽAÓFZGð›ëáZI0 J”lüý÷5¢/ Dñãe>´¢ ÕL[Ñ7‰ÉWk˜ÚP³f 9¿“¸u%>Ñf·2pA ü(ð`eSõ8‹¶?ØÂN•RÙ¸X° 5ä!2p°&ÀF-õhM€×ªK SëÞ´&`[öq†ÂÄû]Ú:[`ã7°¡Yó7¨Zµª´e{~hÅN€U‡}À¬OÊ8Oˆ °ê¥Ü´&±cÕ‡’¢`Á ˜Ÿ~ú©UâÈ€HBîÁá0 Ã`MK…áÇ[uá€Ç²€˜Ä€HCÊ ±¬:@äȦ5AdæJkZb¸KPÄ”gH ø.@¡Pð†Ò£Á÷œiJ óÙ…·Æ>}úXë§µ tS,ìÜÍÞï«5©'4pèÑc†Ñ¬ÙDãüùkbjhšêq³DdC¡zøôÓß¼yß1þùçºC¾«n¶$Šd:tÞU•hÏÛµë”ѧÏ,l4o aóÖ[³° „š¤Eûd¢x@_‰ˆL–Æ3Ï<¦)Xñ´é n¼Î ñbžítƒ†iZh¯Gb€¦{쇛4ÍÕÌd,ãÆˆ“¥YäÓ7Ûqc‡Ÿ—í8Op' p`2ûÀeˆfBÖ/|;„éâúõë–™¢½Ö tìYÖuTΕc3ÑŒ”s /yZ#¸üP®L<Ãë×Wb@‹ @îê¤:î9yò2ä¹)E°eË1iR¯^qÈ,ï«ßßíÐuR¥JöÞ¯ù®n(ÇŸ5« d¹éTƒcáe,æµü ΂pÌaú5òÐ:Wƒ’á'`?&Ñ)JÑ)|È‚‡í<œAMSDçT>¤9ž]ÉϬCq•ÈœøÌrû7û±a±Éíe¼¦’¡©‹à\Þ=Û•)SFØà®êrž)ÐÙ‘'ýWmÃË£Ò)ÁñS•úΊ„¬D'J¹¸JQ9WŽi:|âØõ˜J”®æbæyZ#E41ueâi¶÷×·&ü…¤î'V#@b€A†˜J–Ì{çcr.]r˜Lå“H„’ñ߆#îß¿¶¢æþž=žMŒØÄT*Ì›÷ Q*Ü»7ü6öñ¢ê:yòDb¹re_Èe» ÁÂÌ4Od\…@ \¢jíþè—úôA@;tÚ¹G4qCv¥”ÆÍ‡šÿ®7'n¤î”ô\µÑyqÇÈjˆ»Ë×+×x‡À_ý ÅÀ±ÐœG(Û/à7¸B u*ÂÄ O¼}ûPQ.´÷X§Îç¢|8gÎëöl·×·nÝ“ C{öœ!ѧ½¬nëÆTÃ5ÏšµQ͘±öôÿqÔ¢ÅsªNbpý𠦦áq©¥y´(£E¸ÝP#`P“Tº4]_{𢿠xBG—iþCÀôïOQ9W¯Þ´œ16c ,\¸= ^ÆՇÉáß Â–…©ŒŒ$IÀ¾»=œ³dƒ'»ñâ­ÐU½˜Ì#7¤k×ÔŸöˆ™3§“¥PnÁ€sápælLNO­ÐDM D4Ý$î!)S*ñ;püø%¸Í°„ ’$I¯rÏ„°°X±ìTZ ú³×‘yºþúëö :rŠaú=ÔôüóyáB·%|+ †÷¹jpª³_½ðÂG°¥ÿ\t ÈéÐI# |41øÏHÏ0ˆ‡8ô püøEñÔW¤H68Š9fͬAƒg…80õ ¬\Pïßï¨Ï>stàb¯ã|0a<ø˜o«*TÈo…àßþ s•€ºO›6™Å-˜=»+\§¦ßûA „­ôlØÊŸ ¨ùêÉh4ŽhwÄŽxè;€[räHoÅ, ¨`É’=VÝJ•òÃ_z2áб=1ÿ­·jºæz@IDAT‰Ì +œ3gz{±ÛkŠ&Mj §EßC`2Ï´†Ó—BnëJAùòy´%/¼±ý §1›ág½úöÛu|“„MYXL<F·"¦çN/Œ# “F ¶ à«“"͈-O^¯#Ê 1@1Yøð  BBnË=9ôâ§=rïü‡AŠrçÎ üGۜ븺g°¡1c^ÃFUZµoÿ<›msU- óHuìX ®xßV¿üòÌÏžSË%‰—Ã@ávÐÇ>½ê¤ˆMÐ#"Ý7{k–¨­ bÓÓ×k‰Rè®÷Ë/W"ªÜ`9õ.<@b T®ü´Œ»{÷iœÜ?ƆÝ.Y‡1'EEBú >@DNøC†ü ·ÇkÙ®1"µ•1» ªo8g>ÛÕ?¬±JÖ¬iE§‚ÄÅ0:i41ƒ@<øu3CëQ5Á…ƒøÌ˜ñdãU%^Áœ9[àX(©DþãJèè·ßvK°ŸêÕ ‡Y7>%úᇠˆùþ}cÌ‘èxøÐ€2âqhÄ“v°%Š>èЈÄL½z%$~ÅcÆ,CŒ„ÃbŸ+W±Î¶µéùj‚M óÓÓsV›C·\ê—+ç{0—çžËE ÕàÁ?£Ç,BÄš@]PŒ@] Ѝ‰Ø ЋX%“è¿ uê¤à¤ ¢é©j‚ߎ&Á»N=s@¤ »`zs;v,4Â`¹ryÄ¢àÞ½VßTŽ#Aðë¯ÂºZ…¸xòÉTêÍ7k¨/¾Xfõc/÷æš‘?þ¸‰=z "·ù¦ƒàMÿÑ]‡ú›L™Ò"˜!îyß¾³"R)[ö}…8â :ºç¥ÇÓÄ%41—ž¶^k¤ ý?7sžZ™x²§ |Û¶V¿<íV«VÞ7XyÎ:T‚/ú pW<ǹÈë{jåOšÔJ}÷Ý_°ïŸ¡Èµˆ ‰á¡Û¶­qKoµbE_„’."ÜÔ· ×CSi36¬W¯A#(hb Pž„žGP @y6åþLädΜZ< Ú'ÿê«e ÿþ1àC-ìe¼æIxäÈFjõꑲàFùí·°qîBü€i*¶zúéLjàÀºâÐhúôö”“÷óàñ=±¬X¼x—²seœqÖ÷€÷hbÀ{¬tM¢¿e€l;” PñÍž^x¡"–¥|ö|û5ý4kVVdÿׯ‡š'Ú˽½¦S":ùÙºõ”ò&¨Èôåí˜Ñ]Ĺ-_~Ù΋†Â<±‘p:tø„A¨S£@öÒÝxéñ4A@AM·‰³äÉ“QÝLÊ–Í- ïßĦ§o€† Kz$ØžQ ï߀Ím‘Ù]„¾éò˜Oœ¸,¬ô B"ÔO04bÅ&MJÛ.«#„Ÿ‰»Ü$®¢’D\Љˆ»¸Œ™^{ìG@G-ŒýÏX¯ÐÏüôÓfÕ§Ï,hìdm¬:M‡7Â{Šv®nÝÏáœ(š0¡¥sQ˜ûwß ¸­jÍš~~=¡._¾Wuêô ¢)æ@äÃ6Š&z:9"`†˜‰.^¼SÑ¡FQ9”Ÿ5 AäO%Jß±‘¾ÓÄ´Î@,yzÑ‡Íøîܹïàa„6lø;ŒÞgÅ…Ü`.]ºî$û÷¯¥’$I(žö­ìC…ªU ÂA7(*ž%º3g´f½3|­”.S T^%ˆ¹bëÖåÕ®]§TË–ST¡BÄóáÌ™%2¥s{}¯f41ÌOOÏ=F 1ÀtèÐyk|z¤÷?Wæ|uêC¤ÁDˆWàY‘±Þˆ Õܹ[à›ŸÕ¿?.(†øå—7OÀµk¦vï>íncm4WìÙó äz‰KäAƒê Ø¿ÿOâùð¥—FK°( :i‚M ûÔóv’&M¨hÓðà#b€2h†Û¥r¡sb€#z$dP!oOñ´DxçÙpht×›&^סÃÏ?÷P$hê×ÿÂï‡× ²ŠŒ‹@cAìÙóúúëvªpá¬òLkÔø ‰ƒr&¢U.¡ƒìqééF­@ÐtÀªUûå”H%43‘8ز…1ÊšYÖ7 zÄ+U*—˜&Zn.ó€foçÎ]¿ünªE(›rïúõŸUÇ_TÇÿ¢è ‘Úõ:y‡­DrçÎ(º:U†>Á3*Uª$xöÇ¡±F¿RýñÇA%P ‘q*tÒ:šô'¤ç5¼sç)*gÍ®€§NýC1D±³¢MÖþüó0¸ ç`ß^Üjãî‚zT:üðÃ_a‰KìãÝÕH>- HÈ$H_ ¶fv×U•*O[ ‘é3®¶É˜1¥X‹4mZFLH Ì,fŠT40a%¸ëÅ©õL¨H?:i mMhODÏ'(˜1c="·ÞÀk¾W®Ü„yà{8¶V5k>☨ðÆ?@Ñð=•)S*3Ûãwûö_‰ÛÊ•o+Š'¢"Qs¾{÷ïàˆ''¸­UÊ”‰£b˜8Ù' Fr‘øa@¥‡ U¤HVU¹òÓªR¥üâ)2~|-­“/G€-Zö@ôt‚* R {¶li­I׬9Z+– 'ú†VžyqïÞˆ †BŒPF½ýöKf¶ÇoZ 0èåÐmqT%*¶n=EŽo¾é räHUCÅÙ~oܸ#«H¬^}@Ä4T¥%JÅŠù…8 7J41€&bu=fÐ#À¨…ùòõ·¿Õ«²Öú l‡H ¿•g¿øä“ß¡|¶òåÁpUÏ^äöšýuî<]ÍšÕEÑj!ª£1¶n=›Ô%ánp“Ò)ê ÎkÖÂàÏ?©k×nA4”ZüT¨W¾©¸¨“F :ÐÄ@t ¬Çˆ•”)3Ltzô¨f­‹^yelŽY²yúÅ5ª  •2³ÃýîØqºÚ¾ý¸¢¸€§É¨J·oßQý" Z_µjêe1ªÆ‹©~= ¶ýæ˜≯°öv]8pz%!êØ±ëêþý‡Ð1H¢òç'ð¤\‡i¨34> ðÊ+¯@/ȵXJ>©«jì´j5E6æñã[XÙ(ð.ô ê©æÍ)ZpÑ­Ûwêðá ê·ßzÛ³=^_¾ü/ØÈ#Dá£{¬ëBZ>Œõ›zíµ²°8xE"5ú£ß@écêÔ©p Ô>P¦f=–œ£,PD͆Ovp V©»wµ_ˆ0@é Ÿ¸sçÞ+׺G®IŸº×•5q:¥aèa{¢Ù£ºò7`Ök×®",NÂõíQ3+ÜoÆ? 3"ú* ¼9ªÓoTýô7l8N¬ ¢zÌèî?EŠ N˜íóðá]uûöQkÔ… ßÁŒõTÀÍ1Ð0ÓóqÿÏŸ??Üÿ^š"]A#àüù3!>ÁaçÚkPlíÚƒòãmÏ7¯‹Ï%ÃìjÚ´?Ì,¯¾kÕ* WÂÅUïÞ3E¾ìU£HT¢.Ä¢E½Äò‹/~ 1ʼnHô¦›j4Œ€&ùéè¹4ä P,@‚Àž*Uʧ®^½©vì8iÏv¸nß¾"¼Õí§BáܘV o¿=;œšþ)¦vû¢E½ÕÓOg…³goòOǺ€F  ÐÄ@@==™`B€^è(سÇQ–›/ß“úÖ;Ÿñ Ò¤IŠÐÇú´dz =º©Z¸p»Ä/ð©q+ÓïÀwßugJ={~¯ú÷Ÿ#DP»ÓÍ4D@øPô”‚Üø÷î=fÂôæÇ°ÁîÛÒ×=uîÞ}சËüŠó©ví*Ȧ|útôDdD¿þýk‹É!=ë1®ÁÙ³×\ÎOgj4Á‡€&‚ï™é… e ÃàôªU+„Hw'Ä-­»é¶lùœ ¹…ÀA[ÝUq›ÿî»u„ûÐ³ç ·º nG¢€z Ô#`„ÆêÕ?':‘èN7ÕhM ȃÐÓNH ¸ LW³t3ë) 1}Ú3NÁĉ«|^êÔ)ÇPÎ?üðƒ*]º´JŸ>=<,V„WÎáKá¸Õ§ ¬÷þýû Æ/[ôjÕJýôÓOÖ}D/¾øâ ‡õÛñ¢ÿ O‰&­=zô*‘Yã!Cà‘t¤§¡|.ÓÄ€ÏéG*”Y´íé½ÏžG€ü–.ÝcÏsݹs3¬Z廹`áÂYÔ[oÕÄÂ"µoŸ£‰c˜üœÁõM˜ÐR XW}ôÑbè™.Çm?¢»38pà€Z·nyeß‹/V·nÝR… ‚³£üêüùóˆ[ÑA¬ªàù†¾ãëׯ‡S¤cˆ«ð¬|2dÈ€˜“dãçÌ´sçNø¨x 182!Ö0¸î®­ÆŒ_•` ¾xÉë]¸p¡J—.EÈܼy"¹È‡ßµk—ú믿²„)îvü¿¯ .lyý#w¢I“&®šHž§5^¼xQñÝbQ’„N@$(Ujˆ1f̲0=œ8qÉÈ”é >”Ù3V®Ü/õ n°g{}}òäe#þ~F¿~?yÝÆßPÉ€ÈÀÈžýMcÒ¤ÕþîÞïýM™2ÅÀ¿×ýöîÝÛÈ–-›‘#G?Ä\º]»v5@È=ó>úè#雞Q¹re«olJ69cܸq6„„ÂÀ€R¦Ó¥±oß>©»zõjôÍú%K–4@(HÙ»ï¾k/^\®›5kf(PÀ±aÀ›œŒß¶m[)ƒs¹[Þ*c]l2R¾lÙ2)_µj•ÜwìØÑ1!×üÃuŒ5ʺ7/²gÏn`C•[lèFãÆÍ"ùîׯŸÏàZ™@P©R¥2Ž9"÷üƒ ÒX³fU'cYÇd[l°ˆ ©o_/ˆ&£eË–27œ¼Ë#FXý0@°#Øqn\'Ÿû&–`ßËók]Úq|vÄ‚`°bÅ )ã³&fyóæ•¶ì£zõê2VèСþ¿å—º®þ°op$ ·âÀçÎľù\™|Y#ërü€2@xáH?Þü1ß bé.i1ÐÕI# Ì‚S‰£y!ûc4CZ,]êÞª€õÈ(P ³pxïkÊš5 \7–H¿ý¶Û׿~©O‰ßßI½ù拈i𳈠x'6%žÚzõê%'ÎjÕª©ñãÇ+ÂöÆd›7o”ôz27ožœ y"$ËD…´!·€'xS&ߺõÿÙ» x©Š.~è”î.én¤¥»$.AD0@AJ”iQ$Å D%%¤ñ~çøîºoÙ®·ûÞ™ßoÙ{ïÌœ™ùßåÍ™“ˆ7|‚Þ"dˆèf ØVcºˆœç͛Ǭæq‚¬µ–æ2d©À/¿üÂj¬«Ä›µÔA¢?¾QpâljÞU©ZµªœÊq‚GÙ·oG¦lÆy8šŠz€êÕ«—H)P½8Äá9sæä\%8PÖúâ‹/XuVÎÒë…ôk´ö­[·–“:h˜ë\²d‰¬4×°aÃØ^æ[Ú³gH(ÐRšÅ‹ÓgŸ}&§xÓ>}˜‰3ɉª€™ ŽZV¤(P[`^íÛ·i bN/¿ü²¬ÒHG a0ËÅ‹9Üx»ŸeË–I5°._¾<ÇùSÖ•ËØ±cÍ®v¿­Rô:t¨ü&ðÂoÄßE™#ªô¢ÐÝ;ÑxÊ¡Fü´m›s»´}ùå*,RýžþøÃ;WAÄ-hÛ¶,oÆË¼¦aÎÙ—o$mZ±¢—\ªQc{T¸g0æË˜Áê‹ ›ÄòÐ}CÔŽM"ë5jXþ@ƒ1€¸{ÕªU2µåË—S­ZµDÅq5$Áø *èž±‘BÕ€?ðØPù.bmï9*cãDÒ´Ëž=;‡©Þei>räHÙh±£ž%R‡{ŒmnŽMš4!>uZú9ºÈ›7¯Eµ€6Py@5uDì¸Crüøfx€ººõ ˆ¡!èüñDz±bíP`ÇæË§o #d="BÕb{0LÓ¦M¢†€:L°&` ¶qT€56ö—^z‰ã„ D\±‹øý÷ßEµ‚~ÀŒêÁ `=fSU€õ㣀!‘!Úƒ„ªkvVœ­qýúõ¢JzóÍ7E5…ß °ðwQ›#ªô¢ЙOš´…¯>qâxÖ»3¶Ó™3—ùLªuÖ7ckëõ|ºÜÅzÙ†ÖUn_#ËàgÄ~r̘1Üîëφ¥KggiÈ Þ8?‘x0r„mb„s1œY  †Í€©gÆÚXü*Õ0ZÃ&‡“)NÏ;vì •ØxqR‡þ}øðá"%øä“O,R„2eʘCXNï–Vج¬ Sç¦ý®1O0¾迱!›ôûãÆ³„­‹Ö‰Õ/4aÂar gïׯŸ|P“3tæ“'O¦ºuëJ_œò.\h¡Æú~ë‚“1ôû þ÷ÿ¶À:tç[7†Nœ°Ï„£ ˜³˜ïzy`fÓÎ6#ftL‡½²råJbÕ…0ÀÀ”¦Økk>s¶F0r°“°N0{ • øQ¥í(T(£lö¤%Kfc£±„N°Øì†ˆÅŸ|òµøð{b‚qX„ÚQr€9‰ÌµÁâÅÝ%PÑûïo¢æÍ?û Ež03!ã8ŒÌpŠ…ûÊÖ­[e£€ ÆkØüÀ˜›ÄÏfa}»yùÔ·õIÓ4b4Eÿhl]¿wï^§ŒÅSÄm`£B¢kFŦ‰lT”`þ`ŠªU«F3gδ4ÃFÑ<˜´1Oî`  ~Áx€‘€´Áº -$ f;|ãäݼysQ³@¥‚: Œ2ÙÂizjÿ¡ÀãÁ,%kÖ¬òíÉ»–ÿÿ >H`ˆéÔ®Š³5‚¹„äÄ\#h"ý¶2®Þ’Ö+.H›6)‹ŽŸ‘L„¶Mq:G4BWvèg¦†#ž’Ëöõë×Ñî믿.›–yº4ýÌa/€S#þÐÃ+'=œî¡†XâðÙ³g;\;6/œL!eÀ)'oó´NP€TlL'®}xŽbæÓ§OãVNë`F¬ËÏ?ÿÌ*_Šžs€Îª Óîm¡G| ‡ë!6,ˆé!Z‡Z=ìpª‡d÷P… -˜èÒ±©c­ð|€Ôzq0ÖŒÖI Ö ýyãÆEßo¬€É5j”ˆæ!¥0OÒ mJm@H@j ô‡„žPãøZ°iÃßpo„GÞ³âl¨Ã ˜<6žtjOâl§uŽ, õ¹" ¸@»v²uù"»V­:(VöµÏn½õÃÑ£×ÅŠ28’õc¯;wþÈ(^|”qýú?÷ D‡;wC†|&^,5îÜqlÕˆñmizêM0pà@ƒÂ,d`qÏ'qË=ëËÅòÜò€/`áÏ| Ž`y Ksx%ðÉS¬ýYükðéQêY.èÃâxƒOâ¼ XL/íàMË~x -<LëzÓj}Q+}fL Þ¥¯­7A= Þ¸,óC럔e§N²´7uÞt ¬ƒc XÚ0³`0C¡Û+¼Y[Ú°êÁ`¦ÀÒ¸˜XÀzÞ\/K> ¶m°´ƒõ?«(,t8Åsô-zòÿ‹·3?ü0³az†$45æÆj¡iû®y#–v6lzxÀÛÀQaMy· ‹ßˆéiÁFh³¤@ºz²FêdY?¼.ØfEÞ‹£9Ø>7μ À1iQàÀ;F… ÿý²&‡ 9cÆ'²~l÷ú÷߯ ãðé§ìÖ»ûc‚èÐaŽ»]‚ÒnÓ¦cFþü#xck°qaPÆ´7ˆ§Ì€=®ž±šQ°`Á§š±»ÁÖøÜîÌFlù.nhl]o€Á0] Íz|ƒhÔ¨3Œ uÖàÍ?ú¨ÃÈêë®A¿f ˆ—IíÛÛ\Ç]õØmôÿ‡¬ëfÅïO5»uë–Á§ž³ýÁvO=Ç`Í.Žl`··1&èš.—˜£«âl,àÿ3‡ –2¸"óT½ù»°þ­Ø6R5³¸Z_€ÝŒÿùçþS¤`3ÛÍ›]»ý¥OŸŒÝµJ°øt[ÑæSD]<À˜°عóÇ ü Ø~b‹S°} ‹<×G¹ ˆÁ#"T°H·-0>„+›µ‘ŸÙê‹™†‰æs{ß Ã̆EnÛ¢xÓÁ¶.X÷°zG(bØFØ+æà!€kgF{°[@0 Û» [CB´Êª{XÃ(ž¦a¤½vÞ<Øf (ô‡ stUœ­ª à5L Š2@UiF;àQÀœ¶CÃ:u ±ÝÀ ·6¾Þ½«±nõ ë}Ó¯—(‘•u©õ% â×_?ч‹I“& ë»{°5zS¶>ßÖ÷%$s(ÌÍs€=b@Ç£9o 6r{Æg¦KŸ=ºØ„°azkg¦>‹Ä€¨ z,UW©B…F²ŸxU‚ÑœmAü€%F³·@1(´­·½ïÙóc6öú“Oуm«<¾ïÚu>[Ÿc#¬ÁªÕõéÄã|èÀQ9èÍö³?Ï>û/° bµ ¸Dš§v3Þ¾KЮŠ@È##FV-‰·…iXi;i• Ø"¢÷Š€—-šY65{Ý!þ/R$³ÛÖôÞóãÝR-ØÏúÙ¤I­Ùb=.»;-b çÐâý¡.Xµª7Ÿ¢ëŠT§N=‰Üg½½VÀ" Ì@`ñUêÑbŲ8¸W·naÙÜÝÙóæMÇ¡b Д)[}Fð™g⳿{göã>ÇÑî6úLÏß Ò†4eóæÂ¬T¯>^ƒGœàI‹" çÁ™ƒŽ¢D pòG:aNÚÃFKO‹ãa70vì:ÎìvZÒ»Zt¿~5Ø_{"‡™ý‰ÃßF Ä⪯m=²#¾õVÎ;ÿ™3V­šÏ¶I¤ßçÊ•Fb #˜ØLLœØŠ³Ùe ÈÜ~øZ¨Žò8¸*j3à !­WÜD‰yž{n‡WíJCl¯T«6ž ¼r0SÐÄ^õSÏÚ´™ÍáYŠ(ý©J/@?¿mÛr G‚£P-¿þzU—ýûOÒ$\›cíûÏŠ6]»v Õåë¼€ €Žl”äJ4º"P±âÛ„¤AC†<É×n‹Ãĉ›9bÛ~V'Œ²­²{(‚Oã¨j¯bþûZîÞ}Èó›Ì‰tbrd´>œ«Ý¬¯s³×É’¯9*ßZ霈Ý›ù,!±7†>S"µÐ_"àG *8|ø¼CаøóϬ¿ÿÕaë 0$øÃvtqºž7¯ Çy¿Æ Kè‹ÈÛ´)Ãj’aº6=‡ºÅ™æq(Ö›Öéµ" øeü¢’PLàQàŒÈ“'­d/ô$Fß¾5$xБ#¿™Ãøô þ>hϪ‡ƒÌìñ‰V0:§N„ãt·L`é ì Ü1Ä Æüt E *  Ì@Tx‹º†Aÿ}‡Á\v8'H6lø/cšÃ†ÿ¯€ñ èúÓ rå¼¢Ê5jMH$4r…ê‘ðiçΡbC0nÜìmñ¾ÛwèkE :# Ì@t~ûºv¿#P @FÑÃ÷ÝY‡´ëÖ-Äyد:ŒVh¯ã!u8CÜI d¯Þ›gˆeP³f~Nùº€³¡ýí ‰ ÷‰/6Ö’Æ „¸ýú-¥K—Tuô—¡F)”ˆR¯SÙÄŽS‚ !⟣‚ÐŰä÷D:P©Rn±à„HŽÈzõ|Ê”6ô쳉©K—yâµà‘Hè”={*Zºô%NóÛ‘¾úê•/?ަNÝÆÖEÂltHE üPf üß¡® Ä(^<«Ë!Pbâ"sÑi(Q D!Dd?¸:*I’Äg—¸_èÂ…k„0ÅžD;œ4i !v?ù»dÊô,eÈœF^CiÓ&ã12ú{ˆH£7nlÉÙ¹sEº”ˆV¬øŽ&OÞÊ.¡QºtÉ(}úd‘67Xˆ T2¨ë˜ÑdD bW¥Q£b´yóqº{÷«¦ê³dIA;–§ 6yÜ7!'7-Z”¤kÑ«¯® ;<“^8!2UÈâØ¹sŽb8‚¦OoG¿þzUR<Ã-qåÊïèáÃÇ!3Wˆ"H”$ºJ;Z#»«WoKp!g@ ŠÞƒiÓ¦ãΚ٭ëׯ¦0³fí´[@M›—®l ü1^dЀ¡aÆEiãÆþ´vm_v MAýû/£%F‹R>kQ¢2Ê Då·«k‹T`õŸ0a<—Òˆ©‘™ÐÓDXú îƒ¾¤+Wnl½ãÇ·$„Ynß~ýþ{x$5ò š9³ƒØ´kWŽ>ûì[Žløµi3[òIxjìéí<´Ÿ"L”&Ú:V´B V¬˜¼fqÉ xìÚõ#]¿~ÇcŒºwž’$I@ï¿¿Éã¾îv0]S¤HÄ›â,¯æéîX¡Ò.mÚ¤’!ñ»ïÞFxŸu\´èôÆ«éĉ?Beª:EÀg”ðB% 8FvîBÜ€8qb±«àaÇÄÔ &\ ?ùäk:s沃V¾?Nœ8-YÒCb´oÿ!«'úN4 (@…€Fܻשk×J´mÛT£ÆxŽ9žó:ì¤?ÿ¼+Ñ)*ŽˆÁ1Ô ÇÕZ£(¾ ÂÆ§É&ë|g¥wïÅbÀ¶n]_gÍìÖÁ½°Zµñ”#G*q ´ÛÈOÁp4l8U".Xð"áÄË·ßž¥åË¿¥uëÓ­[÷Å;x…$Ož0:B¢kc¢çÿâ0~a:õðB hÑ,” A\v<år∔wðà9—‡öáôúÚkõD§}ðà¯öšøíYöì©Ø?¿»¤R0`™ß膡’%³qŽˆzŒ0`©R=#êƒ"EFRÛ¶³YŠò5i@£p{«Ñw¾*ˆ¾ï^W$Z´˜IȨ7mZ[—#–*5F‚ ½öZ}—mí5hÖlÁÀmõêWìUûõ2'vì8G\óFjäWÚáJìÎâ&º~ýqÅ|ðà‘¤U®[·Õ¬Y@ã„ë‹óÖ CÑà%ë#ÂæÐ½{e—¹yó-[ö uëö<á´ïiÉ“'D%|î¹ô„Ü,È̘#Gj3f S¶lÎ@´a÷‘/_: 4ÃÎçžËÀÞ×9¼óWÇ`»0 ýu“'Ž/ bX,J'=€Í€E@œ1Ò¥ëgœ={Ùå ìÏn¤Oßßà D.Û:jЫ×Ç»Â÷ï?rÔįÏ/Þ/ë›3g—_é† ±\¹rÁîÊé'FŒXF¼xY¤I«iÒte¼ú1cÆuÚÇM­wŽyTÁgôèÑAù¯›Ó¢(Dvˆ7»œ¦•Œ“Sùò¹èÓO¿a±r~gMÖQŸ*VG~¸“ãïWsØÎ_mÛ–aº»¢/‡‹#¢F·Òºuk6mìö²¯\¹G)S.v»½6Œžôïß?h Wf hPë@Ñøè—*•CÞþ†ee\ÂЪU)Ž~·T¢¦H‘Øe{ÛéÒ%•@DS§n“ô½0l tyé¥*’xàÀe’þI”¢S)P 5oÞ<:-Y×FŽ„Qž ¡ÞAƒZŠÎ”+—Ó-`T§N!ñ@@òoËË/W¡dÉÐÛo¯÷–„Çý†­C/¾X‘¥‹9¬ï1ûkE@ˆ<”ˆ<ìuäh„@ÅŠ¹éÒ¥›ôÓOº\5‚!Nþ²e\¶uÔ4^{­«ÐÑ£5óûsx´kW–^zi¡æñûJPP‚€2U‰*@úßdÉÒîÝ?G¬ppתUif.ÒáÃç´pý¢zøÂù¹ëÆ~l1n\S¶(Åó î‡ZE ôPf ôß‘Î0 #F 1 ܽ۽ͱhÑÌ”;wZŸ¤€íÍ7Ówßó* ’/°¿÷^sq¯ëÒå#ιàÞš}Oû*Š€o(3à~Ú[pd&Ü¿ÿ´r§SëÖ¥9xÐ!ÉàN{{m ‘hÓ¦ 3kéŸîÛkg`~&OnMõêá D±„àÇ€Œ£D=G [·n¬>úÔóŽô2dÕ®]›UEÛžê5gΩ›={öSuö\¿~S|?°Wåö³Ã‡˘˜“ígáÂ….étìØ‘V¬X!í|Á¯J•*Ìœ{o är¢>4PfÀð´«"à •*å¦;wîKÈawú5kV‚Û?Ãî´wÔæÕWëÒÇ8Qà²Ú Á”)­Åþ Áöí?Øk¦Ï‚ŒÀ®]»8¡Õ™€Žúõ×_Ó¦M›¿m™8q¢Ôýø£{ bêÔ©9Är[2Ý_¾|YÆL˜0!e̘1Â'iÒ¤.iݹsÇÂø‚úb.¡X”Å·¢sŠ’dΜ‚ðqWl·ÂêÕŸ“÷¾‚¤9ÆÕå4¼{Ü2`ôe,Û¾`&NlEM›–`Oƒù´uë Û&ÑîþÂ… tûömŽÍp‹ÝM¿¢û÷ŸHl.^¼H{öì¡¿ÿþ[0¹zõ*ýöÛoð¹víG4üÝò }púÆ·uù÷ßÙpô(™î¹sç,›™Ù§í¿þúKnѸõ üæÍ›ì.zƒÉ‡ì ³~þ9¢½Ë£GXjuÏ$'ë@[³ÄŸ³p~Á©ÌGtìØ1™S¼xñ,ÏL<ÌÓ\ãùóç‰#îpVÈ?3³ pÙ»w/aŽf³ža-hg=þ¨Q£„A“b~5ú/”6hà`ó·.³fÍb¦¶¡õ#Ë5æ€÷øë¯OçÁÜÛ/¿übiªÊ „ê›ÑyEI*UÊÃl"þQu¶ÐÊóšS^%/²¦‹ø d áÃWZ?Ê5‚ ZŠQa×®óyƒ8”qCuråÊq@©št(%Û‘”§´iÓÒÀ)C† T©R%Ê’%‹lä‹/¦¬Y³Z6l¬§E‹ì­ÑްÙתUKÚb“Êœ9³å±zÅŠ©pá”?~*[¶,eË–%3Û#@²qãFûù矗¶hW¤H†ˆÒ³gOé‹ùU­Z•òäÉà ݋½zõ’qÍéÒ¥£~ýú™·œ½±®Ì Y ž@L†¼yóš¨xñâ–¹ãáÌ™3©råÊR_²dIzüø1AíðÁÈ‘=Ö‹9=ûì³ôî»ïJ[H€ÝO¼p† Æv7¹ …«†¡téÒ”)S&VmÕ#H ÞyçK·¢E‹ÒŒ3,÷æÞÖùâ]½ð Â@¡ŒÞ/pÃ0nx[–.]JÅŠ“/Nì‰'{¨%À4@å¦ë啈Ù;ÁxAªb~LµÞ ûð|ýúõtâÄ ™³µÂvÎØä¡ŠÀš=T ®€ICD¤N:¦¼«P.±Cyr:7E ª!4iþc–…¾üò$‹Q »µ<Äxï½´råA>Ñ”u«£FÇ×å?ÎG%2áØ±M5 èó!Cjóðxi•0%}úTèx¡H¢e³Ä‰‡3Læ2oeC‡®¥mÛ¶,Mé$Fg0¢«_¿¾ˆ°K”(!bkˆ®¡r€a6›7ÞxCôæy›"ug*³€±6p³•*¤J•Šƒg]2›»ü†ÈŒÄš5kdƒ…"sgÅV_oÝzyØ[Xëï“%K&˜¡pÁØØqbÃd]&L˜@ ´~$×0¨D8iØ`~Pá¸*¦@ûöí#4…"˜ØYŒ?ÞR‡y…rQÉ@(¿[”D J•¼|úúÉíµ!XQƒEiáÂ}n÷qÔ´Fj(´¾ÿþ¼£fÞ³gUÖÉ6&gÔ¨Õ/԰ݤÍÉpâ…±DßæÆ±86µãÇÓü!ú}ˆ¶¡ïÇFƒ;³¸ò@³@U½»Y¬ë°Iÿý÷êÍv޾!™C°lÙ2ñ°'³`m¸èÌØ.}úôrê‡a ù™6mš%/p:xð 0W`Žœì­çüÚk¯‰tâ~HLõuÛk0tqãÆU9—Õ«WsJï1"ÁÝ &ͪ.…æü”0‘ÐoE HT­š­¿ÿf}bD pgÃwêTžÿHýκѳΚ¹UËþòåsòIòSÖÝþëVŸ@4‚úcæÌöl±Oò… e"¸ îØqÒíÅ)’™ÐÏÒ úî»Íùìeš={§ÛsDÃúõ‹ÐâÅÝiË–Ô±ãŸí"1GÓ´• àÞö™õ˜Ðgâߨ¬P°©ÂJ½B… b€ 'Rˆù!š†xúþ)RˆU»5=Œ…Ó¸Y ïNž<9Û“´¡Ê•+s€ª7Í*¡½;6Ê Ȇ½8 $0’3 NåÖ æ``žyæñ€} êÌzœÂ!á€÷CïÞ½…á1ëЛ*6ÜI“&‰q#¼( ÒÇœ°iÃpö°wH’$‰ ÂþŒ˜"0&¾æ7èZ02pÄ< *$ž¦ÍÚY÷3ñÃ|aÐïàæ}aȉ‚Íë®xXìB¶°nJ‹" Îìg4k6ãQ—.ýÆÈ’eqõêmú9j‰ó»=o°Ž]úó¦¡ ‹´å9Ÿ~¥-[îG¨g{ƒ¥êùÔnp<„õþ¼áx3%I²ÚÃ`É€¥ëÚ¿¿Á’Ë3_/°N6J´¬“Õ"«I\’eïƒc4,½xª-Þ 3:vëžjlç»`Ì\Ø©ñÿ£ÿØÃeWtbŠ@ÔCvœñ(Dp£FEÙP,®ÏAˆL4¡·Ï˜ñYvÍzfÕ|ß›¼vmvëºË¢ÖÉ>ÇUˆŒ5bLœlÍо־ùæXxïë“4êpzÅiVìî´ÅéÖ^úö Ъ@½aJ ìSº)A=Öi$þ*X'Nöæ:áaamèéhH#`°imˆi¶Å{A¬{uf›PùVf TÞ„Î#Z!P¹r^ýìæ~d2¤%F6ÀE‹¾òKð’Ø±c²_ ÷þi±¬_:â)¬[×—7¥gX4ê3ƒžm1(‹ô`øæCŸ5kVzEl o„Ë5uýf-ì XÔ.AŽÌgÖßÐÓ‡ºÑ›õ|õÚ7”ð ?í­x@ùÙ2úúgË–’CÖæfc®½õsÖøµ×ê³ú!g?T±½yÅ‹›>ü°#uéR‘zõú8è –ìÍIŸ)Qe¢úÖõ…,`þúë»TýæÑ;v¬Àž?r”º+õsÔvÈðŇ}Îèh ožÙ@æ5}ú6 ³€= zCFû(Š€(3àHÚDÏ=—žÃª&çL~žIjÖÌÏTÏÒܹ»ý6-HÚ´)ÃÒìs~Çot}%„9}öYOΨwšýí§r€¿}%©ýEÀÊ ØE)ÁB)Š=Më3f NR‰ƒ¾àkî%}>I B*æ ʦM›$©M(ÌEçõ€kâsÏ=ð…)3pˆuEÀ1÷ï?b?äœ/ ‘ÇIˆF^Ãzþ#,B-Âý'äëÛw‰¸îØ1”óÅ'r<ùHª™:u›ä4hܸ¶àØýO¢òEÒttXE J à¿¿ Q]„"\`9_±bn½ 0Ë®]+qBšÂøsÖo½Õ„¯Ä¦¡C—û“¬ßh!Ë!BCª‚xþ2¤ôÛ•"†(3†/M§µ¨Y³úÙã¸ü0>¬S§ßó <óL|š<¹µx¬\ù]H‚]¹rÎa?@"ï½ðÂû~gˆBrÑ:)E €(3@p•´"àð€ºÀ“´Æ&ÝîÝ+ÓáÃçý’ÍФ‰ïòås±‘bE1bUÈZðãbíÚ¾„,ŒÝ»/à z+ÅÈÐzz­(î! Ì€{8i+E ` ƒ!"nØpÔã1ŠÏÂÙà²ú]:€‰ ^OŒ Xæñ¼‚Õ!nÜXœµ®))êDb@m€lŒZEÀ3”ð /m­Zµ JhâÇÿõ˜~÷îϳÈü¸ßuç0Ì›:µ-‡²=E}´Çãy³C½z…ióæ2dÍšïû-™S0× c)‘‰€2‘‰¾Ž­üÚµ J°l¼ž–ºu SæÌÏr2›žvuÙ¾páLÔ¿Mο–Nž¼è²}d6@¢£/¾èÇ.‡8Óßr6°œOׯ‡N¥ÈÄFÇV\! Ì€+„´^Ð#"!Nøž!B¬åËÐåË·<íî²=b-š…^~yÝ»Ú!‘‰êåË{Š-Eµj¤ËEjE š# Ì@4ÿèòCÚµ 13pÌ« 5o^’’&MȺó]^õwÖ ÌÆ´ií$¨Qkœ5 ™º²es°Úe§èÍÁa–gÓàÁŸÑíÛ÷Cf~:E ÔPf ÔÞˆÎ'Ú"UÁÅ‹ˉÖS¯ [·çiÑ¢} Ï!ŠÍydÈL’¾7Ò “N0¿“&MÀª“öœÃ¡³0YU«¾+.œÁœƒŽ¥„ Ê „Ë›ÒyFy &È’%%­_ï¹WÀ騱¼ÄÆ_°`_@°‚mBÛ¶eiàÀeì( ƒ€(b1ìÚ5ŒŠÉB­ZÍ¢Aƒ> ©dLX²’T¾M«Vtµ\­W¢ Ê D›W­ ê×/L¿þz…޽àÕt¡*€šàÓOxÕßU§ âÒ¬Yéûïå¼]5¹z0[»w#|÷鳄Í 'þ¹yê„`# Ì@°×ñ'*”‰àY°~½wÒ”)S‹¥hæÌ;¹C1fLŽA°-,-õnùí·›±¦/G,|Dg WÄ«Wo;y3Z¥Dm”ˆÚïWW†Ô«W„Ö­;ìõöÄ@IDATÌ{ö¬B¿ÿ~= bð¶mËP“&Åé•W>a£Ç^Ï52;)’™qîËLM øT¦Ì[ôþû› ©’µ(Ñ MaÝÞ¸®7ä@®:u&Ñ–-ƒ¨@ ^Í·ÿ¥’¯`÷îW9™O ¯h¸êt÷îªUk"%K–Þ~M£ìjl×ß½û½vÓŒÛ)NœX¬B¨NíÛ—ÓôÈþZé…,±Fq ÙÙéÄhˆ@Ú´IYçÿ-o®1¨B…Ü^!7o:š4i eË–’òåKï W°iV¨Kƹyó=ÿ|W]B¶k)]:;µkW–îÜy LÁÂ…û„‘ÊŸ?½0!;y˜"à”ðˆJBð7½oØpL2zC§õ_½J«W¢N*ˆË¡7t\õA’%¤R3f-É;­«.!]| •*åJ0ñ¼`Á^±-È“'%H'¤ç¯“S¼E@™o‘Ó~Š@@Àˆ¬kÔ( ™½ê?é@*–¤ó†„[}`Pxõê?4qâfV`×ÃÄnõ åF Ʀ’‚GÓ¼y{Ø‹bGa¼E9s¦ÕH(Ï_ç¦xŠ€Ú xŠ˜¶W‚„@¹rcÙÒ½½ñFC¯G„ßÑ£¿±ÕÿЀI0¹Gþ¥fÍfЕ+·hãÆ‹ý¨T`±dÉ74gÎ.ºpá:U­š:w®@UªäJËÔµDcÔ› ¿|]zh#иqqZ³æ{2 ïƒûôëW“NŸ¾Lk×zïàJH4gN'Ñ·# QT+ˆ¯ðâ‹9óY'6µm;›Ê—'nœW®¨[bT{çÑm=*ˆno\×6œ:u‰EÕoÓŠ½¨\¹œ^Ï»wïÅtüøï´cÇ€J0ÁC‡~e—Ãé¡°'ªåõœÃ¡#Þì V®üN˜ 5òSëÖ¥YZ/`ဋÎ1<P›ð|o:ëh€BènÝúƒéY³€×+†Qßĉ[(GŽÔbäç5!7:¦K—ŒR¦|†ÞzkåÏŸAôënt Ë&x?PtíZI°ýöÛ³œÝq;}üñW’»a›Ó¤I–kÓIG?T2ýÞ¹®8Œ˜={'Mž¼…õþc|roëÛw }÷Ý9 Å+VൃC‡.çóAVsôa¦ 0®Þ¼Æ6mÚ°}Ã#oººÕçÞ½Xtùr"ºt)ݽ›OÝ䈒·Üê«`!P¥Jzùå—# ø¿ †ÓE@ð† ‹r®û’\Ç“~¶m®-Q —.ýƶ* ÷ãÆ5¥bŲ°[ã\ÞCg3\±b»\þ5ƒhüøyó¿IÅ‹ÿÅY/SªTw6–V¼A`Ïž=|0øî©®*x } „°Ò‡»2îùRFŒXE›6#¸xñbûBÊ­¾7nÜ¥ºu'QÒ¤O"cLW‹7.ÍŸ?ŸÿÚºjªõŠ@”D víÚ”>}zúè£"¬O%àÐE ô@€­[Oø3¿_¿tãÆ1z Æ*+aÑ¢ntöìeBxd-Š€"º(3ºïFg¦uë– „6õ ‘T©ža÷¸Jlä¶nßN2žìÙSчvâ G$(‘O ÐΊ€"0”´JXð8aÃjýóÏùL°gϪôøñ¿¬rØé3-w l&LØÄn’Oë*Ý¥£íE p(38l•²"à7š6-N{öü,.k¾cñòËU…¸ví_HyÔa}{÷®F.c†Ÿ=ê«E ð(3xŒuEÀgg I’´|¹ï'ënÝ*IÂ)S¶úŽÐºƒÕCÂsç|ûãíéd&NlÅ.w™9Uð‡ìêø·§Ý£Uû7n°÷Ç&ŽnX÷Ä?ÿü“*V¬È‰˜fq¤Ër¬Î™À91^àßÚgÂ?~\p?yò$8qÂî;ÀfyõêU»užp5™%7]ÙÆck>’¾ØíÅu]ÐÀ¸fÁæ<`N€¹Yâĉc9¡›Ïl¿Ñ›"¤xW(X/pA¦ÀÙ¶àý‚AÀšvïÞá}áôÿÎ;ïØ¥Æ©aÃÿˆö¡C‡ä=ÚãšôpßædýÁºÍ‚÷…ßh‚ù±.Àè矦_~ùÅú±ï×LX‹" „ Õª½g ô©_f»mÛ #]º~ÆgüBÏ"/þm”(1ÚhÐ`ŠqçÎOºúÔ–7cñâÅnÓÈ”)“Q¶lYƒã [”Á"tcÀ€FŒ1ä>I’$Æ‘#G ÞD˜1cüÝB»ZµjFåÊ• þcnðIÛÀØ &4bÇŽm|øá‡ÒŽƒOãB ýË”)#×6l0>,×üGßX½zµ\WªTÉ2—|ùòÌ€̯|ùòF¬X±,ã¬\¹Ò2ù©R¥²Ü'OžÜèÙ³§ÁL†/^<õöʈ#d\Ì“c39rä0žyæËú9¢£Á›ŸÁ̉´ãÍUȰx\ÖŠ5·š5kÌ8I3+ŸÖeÀ4OŸ>m°T@Ú‡wß}W0Bß Èó/¾øBúóæ-÷K–,‘{ÞÄ¥o¢D‰ŒøñãË:Y `àZ \Ξ=k0s&÷˜ Þo5´A[óÝà=—(QÂ.ôÃQ0>ÖñIš4©ü&PüŠ-ŠKùÝ€ ÞƲþ”,YRêXš`àÝ¢¿•´iÓ ¾¨dfO~f?ôÁ5~/î–Zµj]ºtyª¹JI-Š@¸ вeiÉdx÷î±§/ó®Ví9ç¦Ñ£×øBÆ«¾iÓ&¥¥K_¢3g.³»ã<>¥F<ýxE4@x‘S'N±8±}ðÁ´wï^9©óBŸ~ú)µjÕJ’@­ZµJf±-N©íÚµÝ2ôßgΜ‘;NÚ£G–Sð˜1cä„ ‰NËÙ³gwºŠ 2ˆ4§BH^}õUK{Ì“7U©ç?ø¢ó7OØû÷íÛ×ÒºpÞåÔ)lìÞ¼ä1æŽúãÇ—10wÞÙËås©3ÿA›_|‘ºuëÆ)­¯Èú˜ab)Ô["‘èÔ©ñ&&4@'x¨& ùàÍcS,¢!C†˜ääDÍŒ'¿êű6"½BbÒ¡Cb†MN÷P­@ÕѾ}{ù6õú8ýgÍšÕBÓú‚™.‘Š@²ÃÌ×ζ®æÄSU,ööèàðæ. ¼Ãüùó;´­0 óæ-ØüP A> $Ü@ï¦uëÖò{™7ož<Çï ’üüU”ð’JGð*¸ÿ!mØpÄ/£ÙþM ¿ô€HΜ©y3éÁâèsü‡~±ÄRð {КbCç;ñiå >åÊFý665ˆzÓ¤I#›«¹ù`ƒÄÆÖ¬Y3ÙàùÌY‹jaäÈ‘têÔ)aøô.úylv|²¥áÇ;]úb£È™3'uîÜY³ÃK/½Ä¹²KˆO¤Â,˜úþ&MšÈ3³-T5²l®0´WÀp ð [¾±¡öèуY“È\Y Œ‘TþÿlTؤAë„~›5"l¼P 4HÖz°Mhܸ±5‰§®!–‡Èó¶.ßÿ½àµC€“ØT¡ž1Õ.Öíí]ó)Yl#Ò¥K'ï sö¤°¤‰cwL±=Þ;TG®l€lÀ$©ó¿¥ýû÷‹‘#pƒ*¿70z°?`éÕ©SGðbé„ü¦<™«³¶Ê 8CGëCºv¤Ê]¶ÌwCB, I„š7/Á:â/øxðOç f”(…Û·ÿÀØ> 1´ŸL›„Y°áäʕ˼• å­rǦ1Œàêׯϡ˜“N×3fÌ cÇŽÉv׋.ý°i•.]ÚB/sæÌ–k{Ù²e³<3bm8f]‡1PL¹¥“͘Gúç­[·J=˜0Efƒ, o·.¦67èÕñµ;˜œfQrçÎmé‚“<¤Î Æ#›l f1éÁûÁ,æûr׳8šŒ¤?ž0t°™¨^½ºÌÏÝþ`:š7oNâ¼ýöÛ2¤‰i“ì`·1cF±£€]P³)Rļôù[™Ÿ!TŠ@phÙ²³¢ "þövC‡ÖáSämŽU¾Û[>õ+]:;G)„«Öw‘¢²p5yœêÝ)8ݲΚæÌ™#'vl†(ß~û-,XpJlj‘uõ"F†ñZÊ”)E¼lÒ7Åñæ½í·õ‰ª HÌb]‡MźÞlgý8qbC³ž<‚A"Ú@$#?H-ØN@ºáäjœþÁàØŽÍ't¨U zLJmä еáàôéÓiæÌ™&Y‡ßP¯<÷Üs¢þ0±>].alg>¢@êàNq÷ýÚ£f Rd„Á(NõŽT.Öý¡ÎhР+¨ZLÉ r €é1±Ãz FúÌ%07‹?\ MZÊ ˜Hè·"& aÊ”‰YWíéô÷=zT!ÄSö S§¶åt7½ûî†È˜‚Ïcâä Ñ8N°»ÃŸîxP`ƒÆfˆÓ4Tll&’$NBl&¯¿þºÓy€6ÄÐ<ÀΠ^½z–ö>ÀÊLÇ”)SR†B… Iý²eË"¨ †J¦}<p"ecG‘l€©£;èèÍS+Á‹zk´a;Ñ÷·lÙÒ2\`N8c®\¬_¿žVÕ¥7Ê©znÐC€5@e‘7 $/`ˆÀhØÔi±Þ !À†ŠøX7°Á©§gH=À” @e`Jpléºsð^ñ Ä5kÖØ¿9ÚÁ*`„w† ó‡Í6}¨ Á¼á…€÷…ß Ð_ºt©¨ 5ð[yʤP(Š@È#ðæ›kR¥ÞôÛ<ïܹo/>Êà„B~£é !Ž£`dÈ0Àxï½ÞtwÙ‡7¼ xC5&Nœh¡Ë› {s ²ÜÃK€ÿ°[îyÃëî~ýúYžñ†jÀ €ÿh‹µ;¬æÙOêá}`z Þ´2‡u8oÒÇÚ›Àl +sVCl (tx³«uÓ"ÖèìÖg™ëù Þ°,÷¦7ù€7eƒEÑ2æOÞ¼y ÖÉ›M ¶1`9zÌ7-©·õ&`#K±¬7iÁbŸ]þ¤-¬ï1ÔÁ3ÁÚ² yΛœÁ¹¶Làÿl ÏyC”'˜;KXä¼X¥`0s%uÌŒX¼à±ÀLŒ´ûä“O¤Þöýr` ™*YÁÿÇJÙ¥ƒ~¦7ëûÅ3c³”Ä`ƒBÁfذaâMP¬X1¡aÒƒg†‰‹õ·éí/f ,mà¹À¡ÁF–2'³3YKwüâMnI‹" „¿üò—¸îØqÒo3_³æ{#}úþÆ¡C¿ú¦7„–.ýFæÁ¹ ¼éî´§Ì€Sbv*±ã5ŸúžªÅ³ˆ«¡u%\ó°Q±þ[6wô·u3] 96€´Å¦`]À ÀÕî{öƶnëìš%K [úÖ}øÔoðé܈ Î\·éZˆg, —8>éã6B >õìIá9nÀ ±dà©çÎÀÝO×ÜòàÊi]0ÛX?òêÚÐÇØfaõ…ù1Ÿyò÷̪þ¿xÈÀµuÁúXŠ`ØÃÕº£kG®…±ù‡§EP Xâ—+—“ï¾bñn^¿Ì¾Aƒ"Loë@W²·B¿Ðô†H«V¥Dä:xðg+V êׯ¦7d‚Þâ~ˆÐ¡àSõSãÛ{†FÐY›.…¶®sOáf[{uÐ)ããmjgî” °4XêÔ©"⇠„Y`1omi>Ç7hÀèÎ^ÈÝÓ[ >Ûíñ:>¾gtà€YLNóÞÓo¨‘`gb¯À¾ªµð7¢JO:”§­[Op4³~qìØ¦¬“½À:ÉoüFÓBmÚ”aÛæìÓ¾Il¼¡ì>ÐÓcÃGo 6I¸áÙºúa£%¿#c7ÔYoFÞŽïM¿slTƒ8¸UúcÓõfÚÇwT2à;†JAˆj×.HÉ“'bkä¯9dì ~™Cžð¡÷µà„‹¾¶¥B… b©nûܼ‡Kcd•ªU«rŠíª‘5¼Žë'T2à' •Œ"lç¿uëÒ °ÚÙoÃôÄ ~üø~£é-¡öí˱›Ukš>};[ÚGŒtç-Mí§(O# ÌÀÓ˜èE lÀéùÏ?oЖ-ö³Éy³HnxÁ‚½ìÚtÑ~íÓ¼yIvë ö .óÉE̯SbŠ@B@™(ô2u)ÑL™žÂ?~dÆ_@âP¨P&Ñû‹¦/t ²˜?ÿEŽƒˆƒö|Ì~ìOg ó…¾öU¢;1à~ÝAÐõ+áŒÀæÍÇ©K—y¬SÁ–àÿY4ûº¦'þ`Ëø‰l?Дî”õ•œ_úïßšÓÌacºµ0A‚'AeÜ%Žà1œEyîö×vŠ@¸#€ÔÛÈoÀ1",E%àÐE ü@®D\¼x¿_'¼ݺ=ÏÑÝÖq†µÈ‰Lh» ²espô½žœðæ<5m:ƒ£öEÌbgÛÞö‘90Œíc½W¢ +V”|¶ VÉ€-"z¯„!'nf1ú^:thû{ÇòÛ *ùùçßá?YÙeîI¬}¿÷ÐÙ³W¨M›ÙÓ=»Aöð«DćiiWE lPÉ@ؾ:¸"ððË¿qã.ÇF÷ݽí?ªÄifãpÖ´fœhæ'ßùѺ*R¯³eKÉkíË tâs,ü)tôè…H®„;Ê „ûÔù+ŒÔuë’D?þ‰‘ê×/"Æ„„JA²¦U«zs¤¶ ¬2˜N_~y2T¦¦óPÂeÂî•é„û@¿äÈyN™{Ö~žŽÓ˜3ÂÝ!¨#B©$L—.ì&ÌJÇŽs …Òzu.Š@ ˆ5ŠK ˆ+]E@éÒ%ãÓñôË/—dsôçȉÅãh„ 8<ðFN»[€R§~’ßÞŸcxK v/¼P€âÇCo½µNâ.T©’Oì ¼¥©ý膀J¢Û×õFi ظñ(ýþûß~_g‡åİ_¿%!éçß³gUNÔEb´j5S$~A *Qe¢è‹ÕeEOêÕ+̧ö$ìY°' LœØŠÎž½Ì!‚·„¾¯DkÖÌOk×ö¥ó篲 Åd–’üå+Ií¯D ”ˆ¯Y]ˆ;&uìX^òܽûÀïËΚ5%½új=š6m!(Q(–|ùÒq æÃ:u&ùÝÃ"׬sR|E@™_ÔþŠ@ˆ!€ä>÷ï?âà<ßdf/¾X‘ŠÏJ¡ª.À¢Á¬\Ù›Z¶,E=z,¤Ñ£×ÐãÇÂ8 ?%%Pf J¼F]„"ðÉ“'¤&MŠs¸ÑÝÿ=ôó•©.˜2e«Ÿ)û¤$o½Õ„3¶£?þŠš7ÿ€._¾å¿”’"…Pf ½L]Š"`"еk%Ñ—*PÔÆե©S·†¬ºÀÄŒÑ_ô£¿þºÉžïÓ×_Ÿ6«ô[Pþ€†#ÖŸ‚"EhÕj–¬lÙ²—¶Â&M¦Ó­[÷XGß߯a1a̳ÿ¥´iÓqêÓ§: øÅŠ¥ç¡@`­4ÃýŸ~ïLg¬¸…ÀË/W¡Ý» h¨ÞI“ZÓ¹sW8dñ·æ™ºxîÜÎôöÛMiöìÔ¨Ñ4:særdNIÇVBeBæUèDÿ"ðüóy8ToFš1c» [QË’%…èågÍÚAûöýbUº—0°Ü´i=|ø˜ªWO˜»frÝ÷¥3 Ê gEˆz÷®Fë×åØW6>,öëÔ)Ä¢÷%aè'W®4ŒK?öˆ¨)R $;:vL“ìG¢„CeBþéï¨[·0áô>sæ—Þq£çøñ-¤Õ!ËÝhM`/Û-[Rܸ±$&Ák¯­ˆÐ˜¡ÎBÊ kI:ˆÛÛåË¿¥K—nlüdÉÒ”)mø´}„>ýô@ÀÆ áܹÓrãWèý÷[Ñš5ßS¹rciÑ¢¯èß@ §4D@…äkÑI)þC oÞôâgïÞ#ªT)·ÿÛPÊœ9ݹó€&MÚB %0áTòçÏ@mÛ–¥7îÊV¯>D™2=KÙ³§ §eè\¯P×B¯`ÓNŠ@x!0cÆ—à»ïÞ XÕªÀ(¯nÝI,vM«W÷!þ Çòë¯W%"$ˆ¶8thªP!W8.E笸…@xþOukiÚHPL¯ FŒ´pá>óQ@¾ãĉE|Ð~üñOÙL2HˆÂÎbΜNâu$I|jÑâŽê8víú)£ëŠ@ðPf ø˜ëˆŠ@ÐHœ8!ñœ9»$oA '3gjzï½æôá‡;%ÀO Ç 4íB…2Ñ'Ÿô)Güøq¨uëYT«ÖD²tTÝ ¾Ò*ª&*Ü:˜"y .éÒcèµ×êS—.>‘!C>“Œ[¶ Ý{À ÂG^Œ7£Œ“’6µn]†ÀliQÂeÂùíéÜxãÕ²AïßÿÅ‹ÛÃÞž5GæÄzõ&³Ý@,Z»¶Oȇ+öduˆÛ€DPðœ€ú¥Y³„`FHŸ¬EG”Ç·¦sV¼Dî…eʼ4é6Í^xŸ3–¤±c›x9ëÐèvúôi:tèP„ÉÜ»÷˜ýÅÑÿb×Í»”5ë3Ô´i6Êœ9q„vz£øÆ3£í?†^™¿!¥§„8£F­æ“úa †tP¬[w˜zôXÈ6XRP8ÄÑq<½>ø€zõêå°A¼x™(a‚´h?=ztÝa;­PüÀÍ›7Ù3èj@è7(•"ôêUM|é/Þ” ׯ_„:w®H,£S§.eÌ@ ’2eJ1D.ÛϽ{çéÚµõœóàÚSu¶mõþiü÷0Ù´iS@~ÞÊ V%ª„.©R=#úíéÓ·ܳÀDaÔ¨†”7oZf >Òp¿&(ú­„Ê „ÐËЩ(ÁB W¯ªtóæ]‰LŒ1éƒÿùç>õìù±ºåtCðe<K›*QHw‘ ïÝ{”e¥N„-ð»ÐÞ½?Ó»ïnʘ:ˆ" ¸‡€2î᤭(‡lnÝ‚t 8¶°hÑÌœ2¸9‡FÞ&†…QT]"¦(3¦/N§­øŠ@Ê”‰Åv`ÆŒít÷np¤˜sË–¥8XO%êß)|8}÷Ýw”(Q"×\‹ó84¡çŸÞå¸çÎãÛ/³úè#JŸ>=mß¾SaO¡Ü¹sÓ‰'ö/Y²$½ùæ›ëUräK¹¦²tÍ{¬GMñãÇçdXCŽŒ • eCQR¤HÌŒ«°íÀvº~ýNÐf+VL‰;€è}ð0@´B-þEà§Ÿ~¢¯¾úÊ¿Dm¨Á°Y³fì2zŠ^zé%v@Ø «V­J[¶l±iýôí78Å&N}ýä·‡8ׯ_§Ê•+SΜ9-к|ù²å>]:ï"=®[·ŽR¤HÁîŸO$aÇŽãxû9´tƧ>qâÄyzÂVOî߿ϵ»òĬÁL¡d• DöÐñHFॗªÐ‚û$Åño4 Úl X¼¸;Õ¯?™úö]B³fuÚØÁèÚµkôøñcÙ||X¢ý(P@0@=æÙ²eK릮­÷Ê•+„wz!SøEkQhŽÀ¼y{Œ¬Y.\ :ûöýbdÎ<Ð7î‹ íÉ€3fÌ08èÛ]ø”ldÊ”‰qÍjð|ƒ7R£gÏž3rgï½÷žÐ+W®œÁ§a mÞ´ ÞÜ ŒÉ'mƒ7wƒ™ƒ%)Ÿb Þ€¥í®]»ŒäÉ“ m´/Q¢„Á¢z©1b„Q´hQ¹nÛ¶­‘/_>ƒÅãoò2~—.]¤nõêÕr_©R%KÚòf&õÛ¶m“ú;wÊ}÷îÝ f&äzÑ¢ER7kÖ,¹7ÿa¿ 30F‡¤Ÿ¶e]ï¼óŽÔñ&+Ïù¿Ìr \,õæ?˜ó¨Q£Ì[ƒOÒ²´å¼oèÆ×_-õÌ€/¼ð‚±˜ù‘zf&Œ/¿üRpB`uöìYƒƒ™( ]Û‹Ý»w,I0˜’OÒ¤Iå} Þ/ðF±ÆÚÙzͶ˜>ÌÌ;w:îüÃ’éË ž;ÍÝn£j~#Z莒ì¤K—ŒSo :åÊå¤ ZJ6À%K¾úø§Ãþýûˉ´zõê=43òµhÑÂr"m×®ñÆc9¹~þùçrÅÉs̘1œõ1“ô´'xÞ|EÔÝ©S'öÐ(J¼±‰¨ù¯¿þr¸œàa?Ñö¼yóä³víZKû 2ˆT€7fºzõ*½úê«R)Ã!CD²¼Ñ²$§¯Ôáôž7o^Q@À›>Íž=[æøÜsÏIŒ¹dɽVÆÆÜ‡ Fß~û­Ô›ÿ@jþܹsùwøžùØî7Ö )Ö©G©R¥8{dk‘~¬X±‚6oÞLgΜ‘u 8 —‡êu(À€™4¹†ø[ Õ@åË—‰Æ”aìØ±RçègëÅÑöxWx·xw¡P”…· sP"رcò¨:´råA߉Œ x7‰´kWäëOýõ:°‘öéÓGÄò0¨ƒ¨zuˆÉkÔ¨aÙÀ@̽jÕ*zùòåbˆ‡Íâlç½û€Ž{üøñU6èÙ±£Ÿ0N"il˜õ£]öìÙë]–ö#GŽ” ºzÔ³$@êp±ÍÍÆ|–:–JHò¦¥K—ŠJ€Oç€y17^ÔAífö`^ ñ6¬.DüÀ víÚ¢rCu„Éa]°EaéíÙ³‡°.Ø4à™½5TÖ`„²xñbfR§$0hP¡üñÇöÈXž9[/Ô*0²„ñ#TFøm—P(j3 oAç „ ¥™3wðÉå ¶Žîô T‹uÊW©{÷´fM>qzg$ô‰;ÐÚÐ æ°˜Ée°9± WzcÓÇæ† y;vìÓ4*±ñâ¤>iÒ$±ÚÇFûÉ'ŸX¤eÊ”±Ì̇£‚MÒºÀnÀÔ¡ã¹i¿€kÌ:|Wx°-hÕª•|ж `n $kÁiv þg;G›³«1A†… ZšÃv,ºgƒØò“; 0¬f°´µ¾ž\Ø++W®ä Ÿ¯É!éãàª8[/,Ø|˜ö U¤HW$ƒR¯’ À¬ƒ(áÀˆõؽëNË{:R&$ Ö̃uýÞ½{#Ô9¢ 1wóæÍ#TC †ÆTYÀeR¨LÌNÛ¶ý"qrz(“'O¶Ð.&L#J¨ ,HÇ—S<Ô2ÍclO %0bp}„1(¤PG¸*ÎÖ ¦’ H!Ì©O(eBá-èA bÅÜlɇÞzk]¤Ì9 ,x‘©eË™tåÊíH™Gd kyˆ_ýuÙ(a­|ˆ“a/€Ó)6œvq¢Äé2Ä×ÁC_ï¨`ÃÄ RœváEP·n]KsˆÓA* 6ätÓO¬ùáö†ñOŸ~ BŸfs†tsS]±]È•+—x Î<‘£)•q646mØhàn‰k֬ܜõq¶^ÔcÌÌRZ˜&g4ƒRç¶©¡6ThÀ±cŒ Ÿ~(ÒÖ{åÊ-£|ù±Fõêã N¨ió°ØSo6\ã5”·`=¿Á'qË=ñ‰U»å_ÀŸÿðÀòí,ÊOXÕ³˜ÙàSªÔòèoVDð&àSº´ƒ7ÛXÚÂÁ´è7½ Ðt`Ï›¼Á¢}ékëMУGƒ7HËü˜‰0˜q‘¾èÚlW`°šAÚ°BîQ‡ÚŽ7Nêà)gð&@aFÇ.¶ëf=»å1¼˜)°Œ |LLþùçžæX,A1€= æ„{Ô1s#ÞðœpTØpR<,€-Þ >liàý²¤@ºÂ›ÀÄÚÙzÑžxA0Ó$ïÝÑlŸʛܑE@P" 0pà2£xñQÆ;"<æ Ü‹e4j4Õ¸{7òæa®ÙSfÀìçÉ7{,â~ª É1ø¤k°à©:>‹»\Ͱ‘š®…Ö Á 4jÔÈŽI î~f½É  $‹÷Í*·¿Ù;Â`ñ¼M®}ö ûÕˆÍ"w{Õ?3×Â6 ².[,Ž78¦ÂSóa»ƒýüm›;¼G[¸2šnŸ·nÝ2o~;[/K Ì›¥3û;ª3 „ÌžiQˆ VW MŸ¾¯jE¬ Ò]† É9pÍK,RžÆF… iþü.lq55›ÁC¼•tá¶Ƈ‹Àö±ÜC£4w è@Ÿî¨Ø:jgûÞ0ÜsV`¨‡¿Š«µÀåÑ^ºw Ô2ø˜ªwгõ°ÔÚ¸Ôzn5ÿg5¥¯Dq ³ïß¿&[lï ß-EIäa€ðk‡¯¾·F…öŒÜë íltðHðÄØÑ}ÞÄ€("¼— ³W@ ððácªRå]6ÖÊÀ†i1„Û4÷ìù™7É9Ô¨Q1‚ÇAdl\ج×—;·¦ @@%$ƒB$ÓMÕCv›«dÀ.,úPP`Ù?jT#Q|óc—µ` /‡yó^¤Õ«±ÿú§ÁRÇP¢Ê D«×­‹Uäf›(Q[¶ø?Šä;wd¬Í›7{5ggÚ´iÃq-¶9kâU\ôìáÓµkW—ô:vìH+V¬vݺu£O?ýÔe{ ªT©Bß}÷½*¯Ÿ)3à5tÚQP|E`ìØ¦”5kJzñÅùì£ÿÀWrQ¶ÿ78?Â&Âæ¨òì³ÏRΜ9å+V,/iÒ¤–g¸öwyøð¡ŒsᓦíÛ·„yÚºu+ýù矔1cÆŸ´iÓº\Þ߃O~ç»ví¢3gθìc¯ú^¾|Ù^•×ÏÔµÐkè´£" øŠ@ܸ±è£:S­Z9´ïb¾îâ+É€ôG¢‹/R¦L™èüùótûöm*X° @þK?üð¡¾P¡Bk ]½zU6m´5˵kטٹËÙ3È#Ð:qâåÏŸŸÒ¥Kg6zǧ¸qãRÞ¼yYbrŽ#¦·Ôã›Éõë×)Mš4ôã?ÒßÿMÅŠ“>¨¿téGBL*síqêãf²ÁCŒ=xð`a&FŽ)žaƒa©çp¨F‰%">a:…}!Ú†ž¿sçÎÂp˜^zé%ÙàYú@˜3˜ˆÚQFE5’kôå“*Ûmd•{gÿ`ÓÛ½{·ˆÑ¯\¹"ãµmÛÖÒÅјK—.5p:räGž,J‰'[KgØ!’Ï–íI¶K¬¶ °®PM°ÔAzc-XêÌòÁ#}Ý-ŽÖbög …¨t Â0?ë§J•J˜—:uêV7nU˜Gª 0’0J„M6þš5k~K`&¾øâ ÎŒY‡7n,*üvQÔf ¨*ME@ð aÃêòæx‰ºvÏ:ë~¬×ýO×íA?w2OÁØÜQLý­©§Æ ›$N{ à }<6.äA`Q»|ð›5þ¸C7 £téÒÒÿ@§í¬˜$Ú°H<‚A™u6(ØøRš6mJ½zõ’M›!=aƒ2‹£1a'‹† šM)Y²duûf#l²ÀöÖïÌ$°À\̻ԙåСCÂè A˜+ß›U¾m 3­Åì„uÛ³€E¿~ýØ]v³ÂÆÁü­˜}m¿ $&ðè0 ¤1À ñãÇ›eÍ–?^ü‡¢‰*)E@P¼E`Ú´v|ÚNNíÛÏ¡[·îyK& ý¬7g`³Àf9gÎ9A·oß^šC4Ž §t­±îžÆŽ+Fp)S¦+u“®+Ksk7ý{÷Fõ[×a3Aq¥ 0Çuô fL $`p°FœðÍâhL@BRBó3mÚ4‚‹ž³¬ÁÈÀ8Ð,0ÌÃikSM m<aÙC‚Ô (&ㆅõùr —›ÿÿãh-Ömì]/^¼˜à‚ Ö Õˆ9ž½öxfˆBµ`âƒuL˜0A Lû±cÇ,ÝýíRhVfÀDB¿E $H -Xð¢0=z,d1ì“ÓvHLÎÍI@Ì‘5Dù8CŒ¨ °ACÉNŽ°Ð‡¤`þüùÒ§Þ×_Ýéh  ›lÌð§‡8Ý,>`Äf9eÊ‘2ÀÛeèС¢Æ56VØÀ¾ÀUÄðÏdpÌ~ŽÆD"(´u˜0ð@0 6|x/XP5a3‡ ^°Õ@#Õ è'àðÍ7߈-l6ÌfÒ¬‘eS5¥9 …S9l&LÆÀìçh-f½£o0`b ©;(T4``àBé¨À6^%` F‡âà=áwüØ “ nêëHqf]¨uŠ€" DGŽüfäÈ1Ä4èS¿OÁ[oÓOíbÑmZ|³Ñ—ÜÃÒß,¬/–g,66¼1ðà?æK X¼³Xêá}`z Öùø†Õ8ormíM`¶efÂà»Á"e¡KvÖË‹Õ>úÃJý«¯¾²ÌÁoÖ_[úáž°Üg†ÅBÏÉ"x£I“&2sݦ½éM€ç¶–v¬Ú0*T¨ u¼É¼9l0ˆ!¥ÀrŸOÞ–µ2#`°‘¢Ô1³eñ&¸uë–Ábwƒ ó¤îÅ_šè‹÷Q @ƒ7n©s¶4`æÎ¡7Æ)^¼¸Ð†×333…âÉÀR!ÁÍô&È;·Å«Þ"ÌX0€×ÛÈ|þúë/™·‰3AKdäw! ÜøÇoˆX´(Š€"’lÝz‚ݱòÍõ~Ÿ§Ì€7ƒcÆpÛ ´ðìÀ6TYBb°ƒkëÜYÊc€ õ¦¸Ã ¨!ÿoÓ¢(¡‰@õêÏÑûï·d£¬¥”"Eb6,¬šµ™Äýp ƒzÁƒl‹½ghý²éRñ²«b¶µ×ºf|üU `ÆD ôzôèa—¬³1,È6`]"6IŽ9lžþw‹ BÖA•þ«q~媳µ8§LħþMܱ׀ºö$ö TP%²(3Ht•¶" øŒ\¯\¹Í÷«…!hÜ8¢u¹Ï€ôôFtÆÞ’‡«››kØÄXEàÐ0 u®6:kzî^CïÝ>ô÷Љ[—@i=F°®£ÒZ<Á,DžtÐ¶Š€" Do¾¹–Ãïf÷«nT¹rŸ¦ƒ1XûÃ0 ZZ¨Œ@‹-dyp±tTÔ›À2ú\PB ‘#°…~1‰Apøðùš›NFw”÷7ø¿öÎÚÆj‹ã“Ã!‡8‡u)¨¨4ÜDR·„””W§¡‡ —(”è9T*n¸ž©è%¯[£B¤º… ¥‡A/QÊ£8y¿ÖÿYß7öÙgö±÷9g?þkŒ½÷÷}k}ë[ë·Î8s®9çZÛOIDà™g2¥I“ZºìDÛœ(‰ºÎ®’@ 2P xY9 @4 ¤¤— ºj@YeÉÌüîÕ¾-šÕ³.HZŒHÚ¡gÇI ~ ìܹO:u§[ÒîÒ€¶ƒ |‚¸IDATÞ¥ž‘¯Îx1ùº‰…I Ž `£¦£Å PˆãÁeÓI ™ ìØ±×‚íÛ÷èŽz½u/øô°q`ß{DÅ3‘@²À²N¬”È+QÈ‹ ¯“ Ä<ìì=¦@1˜=û_úNƒ 1ßf6b‘•X¶‰H l° tì8Vßð¶ß,U«R! ’À_¨ ðOH î deíV…`œìÝ{ÀbªT‰ÞÎ{q‡ 0P‹ Ä>(íÛÕ·ÛR… —¾â– Aì[+¸´0VF‚í ˆˆ@FFš¾&·§¤¦–¶mÿ-ë×o¨>ÞLÉD€Ê@26ûJ N/3ÂÊüB!X½zc‚÷˜Ý#è 2ެ…H F¤§—Q A/©S§Š´k7F–/_#-c3H v PˆÝ±aËH€Ž“@™2©2}ziÚ´¶Üxãxyÿý5ÇYo#ä @e 9Æ™½$¤#šš"'vÓ—5îݧÈܹ+“Ž;Lá(nA–# x#P¼x1yúéL)_¾Œôê5M²³wK·nMã­l/ 8*Ž˜ (jxýqzzš 2K¶lÙ)ƒµ.ê&ñù$S¸Ï@L C$P^}¹ 8CZµª/£GÿSJ—.YcÝ$7¨ ÄÍP±¡$@Ñ °téZ¹í¶©ö¦ÃÉ“»çëGÑx>ë X$ÀÂX¶‰H À4n\SÞy§Ÿ>|DZ´É•FšÇ*ñ4Zl+ @TT¯^QÞz«¯*õ¤K—I2|øuãÃQ©›•@< › Gm&ˆ™3WX`aµj2fLg©[·JÔêfE$/hˆ—‘b;I€ „@‡ eÑ¢’–VJZ¶|Z—"Ηƒi%(ج4f Ð2³CÆ‘ &çœL™ò?1â .1¢ƒ4jT£0›Àg‘@‘ 2Pdèù` X$°aC– ‚‹`L®û÷§ÈÆeeóæ4)VÌÉßÿ¾ERRŽä*Ç $Pf̘ñc¸Ï@ÄY @¢X¿~½Ìš5+W÷J•:,gœ±C•€ÍR«V6\„x¡0üòË/òÆo–ÅFšø ãH ò~ „&šš*јy%4$v®HÌœ9S:vì•gÓ2Œ¬„H€H€â—•ø;¶œH€H€¢B€Ê@T0²  ˆ_TâwìØr  ˆ F#+! ¢'0mÚ4ùôÓOC.‡Œf뮽öZ¹á†䦛nÊQíÀ¥T©RòÈ#ä¸~<'“'OÈ­X±BÊ—//çwžôîÝ[.¿üòã©.¢{¤·k×®uŒ;VjÔ¨2/ž.Ò2O£Å¶’ ÀQ|ûí·²dÉ’£”ˆNÖ‚ ä‡~ÈUÙòåËMxçÊÈç…>}úè†N·ëfNeåᇖ;ï¼S°Ì³E‹2nܸ|Öyñ÷Þ{O¶nÝ*§vZ®OÉ’%#@ Ô@Ë@ ›@$²²²äðáÃR±bEùì³Ï¤zõêúÆÃʲgÏY¹r¥T­ZU÷'8Ã:ûóÏ?›°ËÈÈð;uã€*T°kŸþ¹ìß¿_Î=÷\IKKóËa–úÕW_I:uô 'Èï¿ÿnÏò èÁÎ;mýy™2eBú¤“N’3Ï<ÓŠ8p@¶oß.'Ÿ|²|óÍ7’-\p`%Ö­ïÛ·ÏfùÅ‹—C‡Ù§téÒ–îê€r‚çœ}öÙºAS1ÿV´oÕªUrê©§æhû¢E‹t—Ççä©§ž’{ï½×/ß·o_iÓ¦]kß¾½¤§§ëÆO¥Zµj‚6"á<‡„v¯^½Ú~aYHIùóè;¸bl–-[f\öîÝ«¯®þ›Ý‡/Œ%®¡}H×_½ 2ÄŽƒ¿‚ëkܸ±µåÄO4–ëÖ­3ËÆ‘#G¬ÏçúõëûÏÃx í§Ÿ~º|ÿý÷R®\99å”S‚S°ç:èL$@$@!¼øâ‹N`ˆœÐ—ú÷ïïT 8ý§Ž]`œ )׳gO§BÇÎqíÉ'Ÿ´››4iâ.»ì2¿¢ß~ûÍ©°rjvv_~ù¥SE©bàT€:‘º5kÖXÙ?üЩ°³ºQ¾aÆNË»ÿþû]ƒ ìXMøî¬³Îrªl8òöü[n¹ÅòæÎkçÍš5óóPvÆ –¿páBËÿàƒì¼GN• ;Æ—ºÜðáÃýsïàÒK/u­Zµ²ÓgŸ}ÖÚ¥Ñêºúê« CËSw†S%Åé¬ÚòtÆïT!±U‚\íÚµ]ëÖ­ºUœ*Vþ&¼ñ{à¬*¯_ꎰñŸp’n8d <®áÜ“Wº ô/…‰H€¢E@ªôë×OT¸KóæÍͬ­ ìØ±C:uê¤oAœdêܹ³`»c”Cš3gŽÍp዇ϳT܃Y$fÖãÇÒ­[7Q/˜mÂ-°eË»?Ô—*?€îóÏ?oŸ7ß|Ó/ŠY/¬˜nÛ¶Mî»ï>˃Eþü"µlÙR037ýñÇ2tèPëú€~¾ûî»f%X»v­Üzë­æ€émTåG}ôQ«þ»ï¾³Y³ ð\Ãl1 ?þøc®¼à à+ê‡â /Ô7NÞh3u”…UÖXp0°ZÌž=Ûª¥E!»îÕûÚk¯Ù9ÊzŸÇÜËÎQÚˆ¤J•¹9&Nœ(=ôY)à^Õ1èóâÅ‹ý:¾þúkû;¸îºëük…u@e °Hó9$@IA>o˜åu¦lÂK-“ñ•W^iB  Àlí l+«³js1Ô¬YÓ|ïO<ñ„¹–.]jfs¸ ôêÕËÌã(×½{÷<¹êì× Ìè(‡@7Qûå|ðA˜µjÕ²|@$œãÙ0[#µk×NtökÇá|ÁEcÊ”)ú¦Çi¢³ds•\tÑEÖ_˜Å!ð áBY}þüùVõîÝ»U¨ç@`{ŸPùÞ5Ä€ÙUW]eõC!@¼§@¡LñPÌ @ÙÂØ ` Š”‘:Ø9¾7JàÇsO ?°>œ#Á±Gýçk®¹Æwa<à"‚[ÄKP.Ú¶mk®"ïZaýæV½ ëÉ| $ *Uªø½‚@_‚ ‚LÍ´vŒ¸+ Ì_yå˃àÅL]Míæ§†•àå—_ö­ª^òfïÞyàop”;Ïr^üŽÑN̈ÃIèÚœ¼8N(è!ü›6m*óæÍ“Ÿ~úÉnëÒ¥KŽÛœ‡„6ÃR*á:â‚ûå•…bä=ÖuõxÙü‡û‘ ðÀrà%¬Œ€5  ˜!>«¼ÁžWÌÊׇk°d !Và×_5ÅÃ.üõ…¸XG¼ä•÷Î ó—–¤Íg‘ $<üpÌ͘c†ŠÀA,ÙCBôºú“Í36%6Ò¦M›ì_G3™#(ÍK^c ò˜ÿñÇûnïž¼~a1ÀÌ;0Á8êWß»µ  ^ö„%‚0CYÂì}p©à£1 þrD,Dà$Úã%¬(4h•ÁlKý<ÎDBà&fþHÔD5j”ÿ pÔØ º´Ì /¢±À˜++AÅóu 1}z ¸yÇÃË+Š_*EAÏ$ %€Ù'V À¿çEëüWâ…+Vœþù&TS_?|íL—'K@X0‹‡rºòùåá&@=˜ ÿ 36„žÿ>üå³â›o¾Ù„û°aÃlá™3tff¦ û®]»ÚªXBãkVIàˆòdz1 ûí·­Mˆ)@‚ .˜Ë_xáð°Œhà¥LŸ>] `õÀõ€ë ,ˆqðXÎ9ç{>aÅÚ…ÂóçÛÍ_¸.Ð.´V›À&hkð'\k ú ÷#ŒÚ„q‰”Wd!¯“ @²Èïj‚{î¹Ç]|ñÅ>6]çtæçŸkŸ­ð/è"üU8]‚ç_Ö€;[• ÂÕ¢ýui¡Ó™¸åëlÛVàD¦«Ë ÇjDÔ#a5ÆøeÁ>bÄËóVà^Ôƒh{ULœ.Y´üàÕwÜq‡S¿·åy_ƒvjf·ûQG¥J•êõ’ÌÙJ ¬<ÀG…¡SamÙºW€]Ã}ø¨¿ÞiСw«S“º]óòñ«® ëVk¨òae5Ñî'¬ŒÀ Dö#!B_•¿}¸Ïcˆ2'+ü×—*$Vþî»ï¼ìT9ðë lŽ1¡êÓeœ>oT†Õ"ê*±z0n`¢JŸ=«GP—ºAr<÷X'Ñ\Mÿ @ùUBTqÌKºòÀ©¯8W9,­ûä“Oœºrå©IÞ–j”¼ƒ‚á-- ,e@gºõ¨yÚÄ(ã)ÈÓÙ¿Ó ·†}Œû!tQG¨¤þpÅí NºÊÀ–ú…êŸWË !ÀÕÂáÔ¬îÐoê@¡‰g¨ÛÄ»%ǯ×w(8>V‚B¡¬îŽc=®|,Ô I§.§n›ãª#ð¦h* Ô‘g" Â&<"Éá€o;8!øP÷"¾lçp'`#¢pê9Z`Z^ÁxáÖÍ|òJpo\rÉ%!³±º¢Q£F!ó¼‹à –Äuϼî•Á3òJÇê{à}S§Nµ¥—pÔ­[70+jÇp£`H,&Æ Ä⨰M$@ OñØZkûáƒ?Þ„ B¬¡NØm;†J ²NL=z´)E±Ýq,ŒA1˜b¡!l Ä—^zIÔ_nÛÒÆZÛØÀ²T béb¤Š-ü{"  $'@e ÉÿØ}   2À¿  Hr\Mäì> ÀÑ `ƒ¼G€‰b‚P£•hˆIÖC$p°í.vÖc"X$€mª·fޤ\M =ÞK$@$@ @€–DvH€H€"!@e z¼—H€H€€•DvH€H€"!@e z¼—H€H€€ÀÿÐó(Ìb‡†IEND®B`‚mysql++-3.2.5/doc/html/refman/inherit_graph_39.png000644 000765 000024 00000010300 13515046516 022444 0ustar00tangentstaff000000 000000 ‰PNG  IHDR5$èâ­ŽsRGB®ÎézIDATxíœTE€ûQ ˜0H0‚¥¢¢Œ0'ÌŠ^Q1*–9FÐRÐÁ€"”eEEÁ„ 0 PåÐùûkkÞÿö݆ãî–»]§«vwÞÄžžžîžîy[â$@ @ @ @qP`ZiqÌ#Ì"P P Pà_ ¡8!P P ¨(„ZQ-g˜L @ @jŠŠ«$g³páBùþûï“ÙṎP`ë­·–UV©°lu»Ìh|þùçrÍ5×d®Jª@»îºK7nœÒ²‚¥ö×_É/¿ü’R)<Ô>–-[fëòÏ?ÿÔ>2UÀ`Þ¼yòøãKyyyZ‡&©øý÷ߟþøãÔ}ʨò·ÝvÛ •CFíQ ú·ß~«=jhä!C†H“&Mj¨·Ð͕ӦM“wÜ1íô+Xjik…Ì@@@¡@j²PÍ@@ÊQ µÊÑ)Ô ( ¡V Ð ¨jU¨áø^ºtiZL¿øâ 9øàƒeΜ9iËk"sùòåò믿ÖDWu¶Y³æË¨QïÖYüê*b<òˆ\pÁyGèÝe—]&­Zµ’7ÞXŽ?þxyðÁ+ì‹>ø@N:é$ÙrË-eƒ 6}÷ÝWn¿ýv‰Gï¾újá“ >ýôS9ꨣ¤iÓ¦²Í6ÛÈÅ_,&LˆªË~¨U¡¶ÑFYX6¢j,ñ÷ß _´Xq$G-5®KÌ»H† ›(;úÊ AãŠiz+e.Ü«{ûí·ó>Ö­·Þ*C‡•ýöÛOn¾ùfaOœ}öÙrá…Fc¿øâ‹²×^{ÉG}$gu–ôë×O6ÙdéÝ»·vØaÿ¾÷Þ{2yòä¨]<ÁÿV{ì±òÕW_ɹçž+½zõ"ˆDZcÇZÕ¢ÙüKGôŽš?~|<«Réï¾ûνð N5ŠSA”ÒFï&¹W_}Õ}üñÇQÙ¬Y³\½zõ\ÿþýÝ¢E‹œZLî§Ÿ~r*ÌÜ[o½åTÐØ³j·dÉ÷í·ßZ™.Š{óÍ7­M|Å‹»)S¦8½úàÔús ,ˆ»üѽòÊ+öK8 <˜(qjZßzéØÚÓvêÔ©QûÙ³g»7Þx£BŸTPÁë^ýu÷Ã?DõI@æ>̇9à1qâD§Vª=Wö œX½G˜¶É‚åN-2×¥Ë@פIO×´i/ûmܸ‡k×®OÚ6+3“5ƒÖI:eÂÁ¯9ëÿÍ7߸éÓ§[UøC7·ÓÍkëL&¼4þü”® œÆð† )[¯xEÖˆõÑ{tîÏ?ÿt3gδ⫮ºÊí´ÓN–†öz/ÊÆc*ðâ]8=MØúÒÇk¯½f}Å+0x`oÀ«Ìƒßõ×_ßÝtÓMñêNškذ¡Õ¥­^.u*Ô"ò•ï¹ç£é°aÃ,ë€px /NùUeuÙ?ÀaÓM7u§Ÿ~zÞ÷ëƒlaL¾F3ð€æÐ”5^`ú½›h7U6ðøj7Üpƒ+--µ*))q»ï¾{ÄdwÞy§[sÍ5ÝÚk¯mHzè¡¶Xª‘ì™vª­L´ÝvÛ¹Ö­[[>¤f“&M²´šÎ&Éßpà M¿šÐN-.«S¿~}סC§&ºM "²Ð䯱ÆNoã»ûî»Ï˜±é áÊ8[mµ•;äC ß#Ž8ÂÈi§õK½[n¹%"Ù•W^éV]uÕhnŒËxÀf›mfxPÎë®»®Síè ÏÐC5eÔW®D:¡V^¾Ô=Õ•• Õñz© ë©LÚS7A”O! 5¿æ:u2zA³=÷ÜÓ±qIóÞ‹Ž;º}öÙ'"!›‡µbÓCãæÍ›»µÖZËh¯G/7cÆ « ߬·ÞzÆ»Ôße—]lí)Œ µSN9Åøä×óŒ3ΈÆ#ž§ÏgO>ùdTÎ矾=7ÎpG¢iÞ@Éz”(ð‰'ž°úì‡$P®ÇH§Vžej?ü°õƒ"Ã'Ÿ|âø Œó¹à}öD‹- Æ‚&^°ž·Ýv[µ¬é¼ 5¯Õ`H|ùå—N}î¼óÎ3+fºãŽ;¬Œ…a2´0#FŒ°4LÄÄ` ´ªgj„OtÐA¦}aF„MÖ¬Y3§f¸iH˜Íæ…Úc=fý¢¹aœË/¿Ü´ ñÔSOY™×¢5tÀ€î矶_p|î¹çƒ¬>š«uï½÷š C{S&X@="¸wÞyÇ©/Ã6Uƒ Ì*@³ÃèÅÊ‚j‹—+ÎpÝ»p-[öVk¬‡ ´¤ ‹?²P;òÈ#ͺC9ÂX,Ð~äÈ‘ö s³ðtô‚¯ ,'=r¹=öØÃÖ+±mÛ¶N}I& [¶léôøe– k†’B±¥õÀØØÏ>û¬Õ…gôB±YyX]ºt1%‹\wÝuîé§Ÿ¶4ûC¾ºwïn}±Oàï¾}û¦(;¬8Æö}Y£Ø×É'Ÿ¬|ÐÒr² 5NBê·³¾˜ç©§žj'hä!Ÿû¡Æ<ôµ&3œ:wîlÏ×_½€Ô—hF…Ç%×o6¡–ñE R ‹%ë¬³Ž¨EcõqdâŒÔã¦è&5oåþûï7ç¦]ÔäÎøî¢šÜæ_X}õÕåÝw+:·uÁE-ó/´iÓÆüøôx(à ßãóJ°ù曋 sƪv•k¯½V”–g_ÇsŒùÈ5j”ì¼óÎ6ÆÑãˆ(óÉK/½$*Ç+¸ª°6ÿ„n,ÑõصkWiß¾½=o±Å¢ƒ¨UaϻèQ'ª›+1eÊlu OSÈXY¸°\ê×/U_Ê¿¯L-_žýÕ©E‹–H·nÃs ‘×ò’’ÅUê_…‹½ ÖŒôìÙÓüMðÏ€ s®ãôÖMiþ"Ö^„ñtþùçß•Zá¢JÆÚ}øá‡ÖVÝ¢JÑòô&ªÐ,üÒS„9êɧ¼ˆ“]-z«ŠŸŠõÀ\ÔÝbë¿y`€‹‡AƒY¿à¨Ö™ñ&Îþ²²2y衇D…¤í=eø&)¿ðü T‰ ÁÄ¢Šßx–`4U+Îüméú¨Éý}.ºè"fï½÷6úáÛcß# YM@µ^W€¸xÁT5€n¼úáx-ç'¿ Ïû¥é€GHdœ¨¨§Z3zùÞ3åz¤=†˜“Uµƒè±UÔÂóÅ~·ß~û(O}5ÖN­ჰD¨ÂDªI¤GÒ¢E Q­'/¿üraÑZ¨%õíûˆ2V0ñ_ù¿bâ€ZÁöëiè72ë€2#R®V²ñºO… `H«¥g|ŠSË_Ôr·r¯txˆóƾPŽq€ô˜e©µ¥)âåQa,¡>dÑS‹èÑÕ‚¤ù3 øiøðáòþûï ø•̤ P'P½zâ‰'ji˜p»@OD¶'/½ôÒŒÍóµXOö3 ¨î~ˆO Ú–L§çqÛäžÑ  ¢G8Q Y62,=^Q½ÄŽ#“+œ¾®gz5GÍJ#Ÿóc°0hM˜HÂ=:óÌ3}•Œ¿aævóðÌ3ψúýDÍ5ÂJS_1/žñ¼ª¦Û¶m¦ ßF† i¯›r¦nàÉ2fÌt ý/“zõJuüÌÖZÆ ´]YU‡®‘vêŒWV¼«tkž®Wˆ$bM{ JƒCvÍAý¨‚uÆ5 =ö‹ë¬x‚uàÕL ž¨ˆÓ}í¿ÿþQ^¼œ¹Ù„$å1®p|öÙgvÅ‚<®u ,1À¨§úÝ„£à°¿8)œp vB@˜ç‚>}úØ8p‰ªr !"êû 2$êÒ~È€¢eÿß¼ÊV+KÇlØßÊðæ<ÇF4%A} fF8Є‹ßü¤a$õie!{Ñ;ì`ám˜F#,IïA ¶p0 ƒ¦GK¬¶Új†õ`*4~ؘê0 s$”~ôÑGÛ‹åX‰l8´ú»Ì"à¨ïë!°NZ©õÙUfÌè'ƒ—iX¾µÎ©T™¿DqÊ}Iγž?üpQ˜ñáqÇg®æ…ëŠÄŸ4`Õq”ãtEÅf‡oq/ð²}&@¨OÍø€ã!<ëÀ´á4€2Ey"$8қȭ¸*>_ýµ)C\7œbàSúTŸ›ÜxãfÁpÊÀ C³‡v%x—úçœs޹G8"z˜;w®è-„”n胵Æß?!,Õ¿l."\,ö+PHûÁN~%rD^T(%³³>ãðV«Ä"9Ú¿SEsˆŒâ ×…°}-A5 ’Äþ8fUsDãøàUŸÆA숦@8У«õE4E™Í‚ÔÅq‹s™qÀƒr½´hÝ(DÑe2§ÿU–Ý$äŽÓ—¶¾½¿ã¸ÅéL>,æEtVSëЂ>@Â`êCsjæÛ¸|¿ZÑs®„xÚ%ës¥cäÈIEs¥#¹æ„ü¡5ùWexVË9"ü@W7<œÂ1âÐWAcÁÊõä`{Ú°nzM x~$x¥Â%ªK'§_®ÀôE?ŽC¦è'8pÍH]ÖŽ¶ªè-š«wÇ(6 H¥¾à(òJ=æ£~e NÝ}÷ÝVÏ;ß)TZ9}°|xÁßì Ÿûá’K.±± ¤_ìAµdý£_ _e![  %ª"Ôè€( ‘>ŠwJÌ#&(£>&Ë*óLÛ1cÆØ‚"X¼ä}ÂøD-ý• ß7ÑÓxÈçÇÕas#‚”¢žñöêû°Hi²^uŸs µxÿsæ,ÐHí½þÐß®vtìØ7^\+i"Þl¦ÊÞS« ’êôvêj¨Ð”;ÜEC0&ˆ8×>àM¢š>ú¯‡PCaÑ÷å’Š¡Fd”»lþºH¼}®4ýÒ=§k¯3>×=Ø7À£>êÔMW=m|„ÒE($÷ e?¬¡––‚+)³]»vNývùÆ$<εŒb‚jñyÏœ9Ï,¸x^m¤ó)Ô¸ŽÁ5®ù°þU…\B-S¿^¨e*ù5OlB­ÚÕ¾µøB“ãc ppÅWD×2j¹ZF yóFê°nTËXäwxüezWÍÖÝ_-ªÊˆøGwÛm· Mù u‚™€*¾ºuƒE!Ô¸³†7À“8ºUsW{ò8þãÎß!w³÷ÕÔ T;úYw¦0  B-pA @ @QQ µ¢ZÎ0™@@Œ>5.ì¨;È÷¥Þ•5Ónݺe}neáÆ)l pa:TjÜV&  nQ€·/X—ʾ6T·°ûCnú¨ ðVüÄ+qI(áI23<   (¦ŸZ®\@;P P =‚PKO—((P B­@. ((žA¨¥§KÈ (P ü_éÅ¥Ù®úIEND®B`‚mysql++-3.2.5/doc/html/refman/annotated.html000755 000765 000024 00000124720 13515046515 021461 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Class List
MySQL++  3.2.5
Class List
Here are the classes, structs, unions and interfaces with brief descriptions:
[detail level 123]
 Nmysqlpp
 NexamplesStuff related to MySQL++ examples specifically
 NssqlsxlatStuff specific to the ssqlsxlat tool
 CAutoFlagA template for setting a flag on a variable as long as the object that set it is in scope. Flag resets when object goes out of scope. Works on anything that looks like bool
 CBadConversionException thrown when a bad type conversion is attempted
 CBadFieldNameException thrown when a requested named field doesn't exist
 CBadIndexException thrown when an object with operator [] or an at() method gets called with a bad index
 CBadInsertPolicyException thrown when an insert policy is too strict to create a valid INSERT statement
 CBadOptionException thrown when you pass an unrecognized option to Connection::set_option()
 CBadParamCountException thrown when not enough query parameters are provided
 CBadQueryException thrown when the database server encounters a problem while processing your query
 CBeecryptMutexWrapper around platform-specific mutexes
 CCommandLineBaseParses command line arguments and holds the results
 CComparableMix-in that gives its subclass a full set of comparison operators
 CCompressOptionEnable data compression on the connection
 CConnectionManages the connection to the database server
 CConnectionFailedException thrown when there is a problem related to the database server connection
 CConnectionPoolManages a pool of connections for programs that need more than one Connection object at a time, but can't predict how many they need in advance
 CConnectTimeoutOptionChange Connection::connect() default timeout
 CDataOptionDefine abstract interface for all *Options that take a lone scalar as an argument
 CDateC++ form of SQL's DATE type
 CDateTimeC++ form of SQL's DATETIME type
 CDBDriverProvides a thin abstraction layer over the underlying database client library
 CDBSelectionFailedException thrown when the program tries to select a new database and the database server refuses for some reason
 Cequal_list_bSame as equal_list_ba, plus the option to have some elements of the equals clause suppressed
 Cequal_list_baHolds two lists of items, typically used to construct a SQL "equals clause"
 CExceptionBase class for all MySQL++ custom exceptions
 CFieldClass to hold information about a SQL field
 CFieldNamesHolds a list of SQL field names
 CFieldTypesA vector of SQL field types
 CFoundRowsOptionMake Query::affected_rows() return number of matched rows
 CGuessConnectionOptionAllow C API to guess what kind of connection to use
 CIgnoreSpaceOptionAllow spaces after function names in queries
 CInitCommandOptionGive SQL executed on connect
 CInteractiveOptionAssert that this is an interactive program
 CLocalFilesOptionEnable LOAD DATA LOCAL statement
 CLocalInfileOptionEnable LOAD LOCAL INFILE statement
 CMultiResultsOptionEnable multiple result sets in a reply
 CMultiStatementsOptionEnable multiple queries in a request to the server
 CMutexFailedException thrown when a BeecryptMutex object fails
 Cmysql_type_infoSQL field type information
 CNamedPipeOptionSuggest use of named pipes
 CNoExceptionsDisable exceptions in an object derived from OptionalExceptions
 CNoSchemaOptionDisable db.tbl.col syntax in queries
 CNoTransactionCompile-time substitute for Transaction, which purposely does nothing. Use it to instantiate templates that take Transaction when you don't want transactions to be used
 CNullClass for holding data from a SQL column with the NULL attribute
 Cnull_typeThe type of the global mysqlpp::null object
 CNullIsBlankClass for objects that define SQL null as a blank C string
 CNullIsNullClass for objects that define SQL null in terms of MySQL++'s null_type
 CNullIsZeroClass for objects that define SQL null as 0
 CObjectNotInitializedException thrown when you try to use an object that isn't completely initialized
 COptionDefine abstract interface for all *Option subclasses
 COptionalExceptionsInterface allowing a class to have optional exceptions
 CQueryA class for building and executing SQL queries
 CReadDefaultFileOptionOverride use of my.cnf
 CReadDefaultGroupOptionOverride use of my.cnf
 CReadTimeoutOptionSet timeout for IPC data reads
 CReconnectOptionEnable automatic reconnection to server
 CRefCountedPointerCreates an object that acts as a reference-counted pointer to another object
 CRefCountedPointerDestroyerFunctor to call delete on the pointer you pass to it
 CRefCountedPointerDestroyer< MYSQL_RES >Functor to call mysql_free_result() on the pointer you pass to it
 CReportDataTruncationOptionSet reporting of data truncation errors
 CResultBaseBase class for StoreQueryResult and UseQueryResult
 CRowManages rows from a result set
 CScopedConnectionGrabs a Connection from a ConnectionPool on construction and releases it back to the pool on destruction, and provides access to the relevant Connection pointer
 CScopedLockWrapper around BeecryptMutex to add scope-bound locking and unlocking
 CSecureAuthOptionEnforce use of secure authentication, refusing connection if not available
 CSelfTestFailedUsed within MySQL++'s test harness only
 CSetA special std::set derivative for holding MySQL data sets
 CSetCharsetDirOptionGive path to charset definition files
 CSetCharsetNameOptionGive name of default charset
 CSetClientIpOptionFake client IP address when connecting to embedded server
 CSharedMemoryBaseNameOptionSet name of shmem segment for IPC
 CSimpleResultHolds information about the result of queries that don't return rows
 CSQLBufferHolds SQL data in string form plus type information for use in converting the string to compatible C++ data types
 CSQLParseElementUsed within Query to hold elements for parameterized queries
 CSQLQueryParmsThis class holds the parameter values for filling template queries
 CSQLStreamA class for building SQL-formatted strings
 CSQLTypeAdapterConverts many different data types to strings suitable for use in SQL queries
 CSslOptionSpecialized option for handling SSL parameters
 CStoreQueryResultStoreQueryResult set type for "store" queries
 CStringA std::string work-alike that can convert itself from SQL text data formats to C++ data types
 CTCPConnectionSpecialization of Connection for TCP/IP
 CTimeC++ form of SQL's TIME type
 Ctiny_intClass for holding an SQL TINYINT value
 CTooOldFunctor to test whether a given ConnectionInfo object is "too old"
 CTransactionHelper object for creating exception-safe SQL transactions
 CTypeLookupFailedThrown from the C++ to SQL data type conversion routine when it can't figure out how to map the type
 CUnixDomainSocketConnectionSpecialization of Connection for Unix domain sockets
 CUseEmbeddedConnectionOptionConnect to embedded server in preference to remote server
 CUseQueryErrorException thrown when something goes wrong in processing a "use" query
 CUseQueryResultStoreQueryResult set type for "use" queries
 CUseRemoteConnectionOptionConnect to remote server in preference to embedded server
 Cvalue_list_bSame as value_list_ba, plus the option to have some elements of the list suppressed
 Cvalue_list_baHolds a list of items, typically used to construct a SQL "value list"
 CWindowsNamedPipeConnectionSpecialization of Connection for Windows named pipes
 CWriteTimeoutOptionSet timeout for IPC data reads
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1Transaction-members.html000755 000765 000024 00000017100 13515046515 026526 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::Transaction Member List

This is the complete list of members for mysqlpp::Transaction, including all inherited members.

commit()mysqlpp::Transaction
global enum valuemysqlpp::Transaction
IsolationLevel enum namemysqlpp::Transaction
IsolationScope enum namemysqlpp::Transaction
read_committed enum valuemysqlpp::Transaction
read_uncommitted enum valuemysqlpp::Transaction
repeatable_read enum valuemysqlpp::Transaction
rollback()mysqlpp::Transaction
serializable enum valuemysqlpp::Transaction
session enum valuemysqlpp::Transaction
this_transaction enum valuemysqlpp::Transaction
Transaction(Connection &conn, bool consistent=false)mysqlpp::Transaction
Transaction(Connection &conn, IsolationLevel level, IsolationScope scope=this_transaction, bool consistent=false)mysqlpp::Transaction
~Transaction()mysqlpp::Transaction
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1MultiResultsOption.html000755 000765 000024 00000030711 13515046515 026461 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::MultiResultsOption Class Reference
MySQL++  3.2.5
mysqlpp::MultiResultsOption Class Reference

Enable multiple result sets in a reply. More...

#include <options.h>

Inheritance diagram for mysqlpp::MultiResultsOption:
Collaboration diagram for mysqlpp::MultiResultsOption:

Additional Inherited Members

- Public Types inherited from mysqlpp::DataOption< T >
typedef T ArgType
 Alias for template param.
 
- Public Types inherited from mysqlpp::Option
enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 
- Public Member Functions inherited from mysqlpp::Option
virtual ~Option ()
 Destroy object.
 
virtual Error set (DBDriver *dbd)=0
 Apply option.
 
- Protected Member Functions inherited from mysqlpp::DataOption< T >
 DataOption (const T &arg)
 Construct object.
 
- Protected Attributes inherited from mysqlpp::DataOption< T >
arg_
 The argument value.
 

Detailed Description

Enable multiple result sets in a reply.


The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/functions_l.html000755 000765 000024 00000011455 13515046515 022027 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Class Members
MySQL++  3.2.5
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1Option__inherit__graph.png000644 000765 000024 00000557227 13515046516 027123 0ustar00tangentstaff000000 000000 ‰PNG  IHDR¦áîöSqsRGB®Îé@IDATxì œåÇ}Š"¢DQ´¢H¤(m¨T*B¶-ÿ´H‹öU+Òb)•D¢,Y²DÙw²ïû¾½ÿó;z®;wî½sgæÞ™;3¿çó™¹÷¾ïó>Ë÷¿{žsΓÍÓ",$@$@$@$@$β§sÿìžH€H€H€H€Œ…)ÿH€H€H€H€â‚…i\,A$@$@$@$@aÊ¿    ¸ 3.FÁA @œX²d‰TªT)NFÃa@æ#ð×_É…^tb¦A±ð" @V'ðÚk¯I¹rå²:Ο¢F`ãÆÒ¹sç°íQ˜†ÅÛ$@$@Y•@Æ ¥ZµjYuúœ7 DÀòåË“¦ô1:v6H$@$@$@$¦)¡ÆgH€H€H€H€¢N€Â4êHÙ @JP˜¦„Ÿ!   ˆ: Ó¨#eƒ$@$@$vV®\)×^{­¬[·.æÎ˜1Cš6m*§Ÿ~º”(QB®¸â ùå—_bÞoj:ؾ}»:tH–.]jœÀ*ØÏ³Ï>+­Zµ’ï¾û.5ÝEõÙ#GŽÈ¶mÛ´¹{÷nyøá‡åâ‹/–"EŠH5¤mÛ¶‚ˆ÷H˾}ûí ,^¼Øx$çùHûII= Ó”Pã3$@$@$'vîÜiâb#–åǔڵkËÚµkåñÇ—GyD>l¢fðàÁ±ì:UmC@ûí·’7o^9묳|?¿þú«lÞ¼Ù÷¹T©R†±ñR~úé'9ùä“3Æ´aéS§Ž|üñÇrùå—Ëo¼!×\s|óÍ7&PçÎÑÐÛ´i#wÝu—Õ=zô¨ìÙ³GŽ;ѳ1¯ä± ø¨ÉÓÿ|½¿ÿþÛw-Ü›x+V¬ðÔºåi:oöìÙV]ÿÃ÷æÌ™ã©•ÑS±c×þý÷_oëÖ­ š[½zµ§V=ß5M>îMž<ÙS±à»†7jáò&MšämÙ²ÅÛ»w¯§–R»qb¼z0€wðàAOÅ‹]_°`7eÊ»fô—ZÅ<Œmüþûïöêîá÷ÜXU¨x*Ô<ÌcÿþýžZI=E ÚÜÏ;ï<¯|ùò¾fPÿŸþñ~þùgoÕªU¾ëŽî«õÒ›8q¢ÍÉUŒs˜6mšqDûþEE¸1ps¼7fÌoÞ¼y¾Ëà#GO\‚¾P!wîÜÞsÏ=ç«‹7àâ¸c]À|×®]Ö'Æ¢–io„ Ö ×U¤Û¼±~ãÆ}´&3gÎôÀÖ×û¼cÇoÍš5Æ\¨­-þ&Á­]»v^®\¹<ôá_À³P¡Bž¦8³Ëà„v°–à¼hÑ"_uÌñ†nð4hàé— ëúõëŒ9ÜXñ7¡V\oüøñ6N_üY¶l™Í'püþŠÿ¾'  ¬N ¹ÂôÏ?ÿ´ÿlëÕ«g¯‰pøïñsÙe—™HP+—W·n]âM›6™púàƒLÔ”-[Ö+X° —-[6¯L™2Ä% D@Ñ¢E½ìÙ³[ýš5kz °{þÂô‡~°þt‹Ý„ú®\¹²‰"T†«U«–µ“?~oÈ!Ö~¡:Øgˆ<ðå %ÜXÁׯ„çz÷îmÏEò+aÊ­|¥ÊB$@$@©% BŶ¹ß~ûmùã?D-¢–/4h¨åRæÏŸ/wÞy§¨µMTZwßÿ½¨ø-ZÈ /¼`¾›ØšÇs§žzªmÙb»üž{î‘ .¸@T<ˆŠ $ý O;í4QÑ&8^U<ùä“¾é¡ v¿Q£F柈­\”.]ºˆ {¯"Ù¶ìñŠvPÎ?ÿ|{õÿ¥"P®¿þzQ±#*jlžðç„odß¾}åÅ_޾GÔò(jµÛÆhèС¾{*ÄåµÐJ÷îÝÛíð¡Åx[·n-÷ß¿=‹zj•µ¶Á|.ºè"›’¸£lsÃoR…¢|ùå—6_G¾+Œk§VPùðÃE-Ö® 3q. è?_¾|‚q©…Õü?o¿ývÿD­Ü6—O?ýÔÖB¦ù»ª`; ý¢ãówðÅ\á[¬è—»Œù£`,ï¿ÿ¾±ìׯŸàG¿@ˆ~ ’Ûn»Í|…ñwé_"«~²9©UÕ|Œ?ùäÿ&RýžÂ4ÕÙ ˆ¨ÅJJ—.-76Qˆî3DNóæÍ‚Ɖ1ø>BÂÁEj±3ßGˆ†×_]fÍše‚´cÇŽrÆgX½{ï½7,rò@(Á§uÕêé«ß¾}{ØTk©ÂÕù&êÖ¶¨EÓêâYŒDzFêˆy5iÒDÎ<óLk}«ÕN~ûí7_ÿªÚAàNÖ‚ˆuE],°G­¢&Pq¢íÂ÷cC}ø‚ª5SF%Jºe/>ú¨Íã…ÏåM7ÝäšMñ+¾H¨UQÔjÜq|;á· ! ÑŒ¬ª0.BÔs_"ðå㤓N’»ï¾ÛÆ®˜‡?“H¨îV 사# ¾è T­ZU Žñë¶ÙáJ$cUË«ù³Â'÷Ö[oM°~áÚŽô$”ë‘ @º}kwa¡CÑ-i{…¥ Ö3PD~ã?uXaQE°…¸€Åµ[·nf=8p Ïº ä „e¸â„!ê@D!ÈÇÿ{º•n—×Õ |=ûì³í„  šqut{ß,£Ÿ}ö™YŒ/¼ðBwË^ÁRW0W žÕwÒ}´±ºVBÁ}O”À¾ÕÝAÔÕîUªTÉ^ñ â1âˈe·¦¸†uÅšº±! é‹/¾pÕcƒåã«^½ºO0¢Úõgâ{Hß@Ü+øâ‚â¬×u°(¾(¢þkÔ:G2ÖÀõƒ%9š…ÓhÒd[$@$@Y–€³T%V8X0ûôé#êO*ˆb@X`{ÛÏbÂÕ  Pñ5í¶k}Þø§ŽÂÖ³¿õ¿‡­[ÿûMÙGl᫯¢Œ1"Ñí×^{Ͷ‹a…øÑà/_Xùàzàß~8NNÄûøï „úÇ–:¶ñ£þ´æþ—Üs[Ø}ô‘û˜â×PãñoVr”wÞyÇ76¬\ è!Ìa‘†ˆu÷ð€5Ø•PÂ+ØÆWŸÎõñ¶úa­_¿¾h”5å¿Î»°¼»>]_¯Iõ#aØnr>S˜&‡ë’ @* ÀS—ä™gž‘fÍšY#4 Døx¿ôÜsÏ5ë*Ĭm|ðA…ß(|+“òëÃV>êÂU@ƒ˜l{Ý >†ðs„Xz÷ÝwÍ=ÀùŽ>ñÄ>7JŒþ†/|*!–!ñP´¼š(ØÆÇv°T™x‚õóLMA»°Ìa^°þjt»¹HŒ9Ò¶Ôá2¡AC6&ŒÛú¨c]ÂÒ !ï/þR3–Àga™¬R¥ŠôêÕËÖfáÂ…–,5HÈÆ K8øaM¦Nj–røy¢À ‹u‚ Ç¼ðÞˆq´ aÛ³gO³ÐÖ­[×¶å!>ñÅ)£ð% \ø…5}ã æïÜJÀÏb<þ÷ÃÕ¿nÌÞëDYH€H€H€þ#€ègýO7âtQ.Ú)~PTÙó.*é†Ð"æ]A„4®!-”+HA„¨gµHY$µŠEK÷„ûˆŠG„5žQ ›‡hj•ÔL¸®–6ëïq¯ˆW!ìK„m ¢òET#’Ü ¡¢ò1¤CÒü¥–®mãG}'= ªÁm+È2 ¹N}ãDô¶ n»È UPy.Z¼k×®–1À*ë/MÖŽZií’Y4¸ëÑáHç„vj9µúH›äÚÄ= ,³ë¯¼ò >ú X<ÿüó¾Ïx£>¼¾¨|¼÷–WŸRO¯¯>Æ®>œö™T Z?ÖQýN}uUÌÛººHv¥– 4?¬o^êë©÷Ô-ÁžUîË,€ˆvdK@ÆÇ¯çœsާQ»_ˆÊGf÷7ƒuõŸÿ×_mêv‘(*?ÜX™`mÁ;Ò‚9`¼*šC>’ w´ €ÀV*üTƒàœX$§‡eÏÛýÀ*¨9<ÍBéï Š{ðW„¥×á£Ú¹sgKŒŽ{® >kÉAlÿ:WÔïóÏ?—ë®»Nà ‚Æ=ñ+¶…aM…ÕþŒ[ó°PÂË/üH£UñŽà"Ì)|Q¥âÎæéß'Ü#„Ka¬ Öcëævµlþ}Á‰¿-XXý×u\çGêÿî!kü“ý Ö. °¸¶wXPa}ŘàRଯ® œˆh·õï®ã5ÜXýë%÷=þ.0GXs}‘][ ~r$øJ$@$@1&€mqøbÛ>‰B!Tà‚Ü–{àsÁ>¿ø×A”8~RRà^€ÔU¡ |ƒ ¬Põ“s)¹.¹ä’  Û Ò ¬àüP¯Gó3Ö‚4T° —®.¾0„b†{ø ,ÈЀŸp%ܘԊòÑpc ùP”nP˜F $›!  ¤À¹0‘WÔ¥Jê™`÷a! –Ï‚Ñû¡Tp/”8 Ö¯eL°ø‡Šî÷q+?ÞWˆã# HSi±•Ÿ¦ÊdµjÕÊú#ÝVZ$¼G^Y—È>-ûÎ,}E²•Ϩü̲ڜ d°Æ*Â>>$§÷Ï®.樂…iÊÙñI   %€€§ÀXjIêŸ{AA+W®ô%Ô‡[òo"Ç´®]»6Ë™3gÚ©JîÔ#T@"û¦M›úê¢ ÔÓ} úB€ úGÐDìôéÓeΜ9¾¾Ýè«Y |IòÝu¼b>6ƒ=T‰ôD¬PÏózb¦‰™ð @ <‘;‘á‡þgÝßrË-¾K8! ‘ôˆ(ò‚ÀDŽÔ«®ºÊÀ¡(ÈV€èú+¯¼RjÕªeÙËWÈÅŠA‹|¥5jÔ0ßYÔwAD/½ô’`ûGsâøRŽ!Ð °¾‘}!èÎ;­]ˆZô‹`*økŸ×=gþû…œ¤¸£[!‚YRO€Â4õ Ù dHË4|øpKK…¨pX0ï¸ãŽÇuF )¹púÒ]qžƒp˜'„",«ˆªG?þi”pD)D'Ž÷D²}Xdý R%áXU!”ýõW«ƒì­[·–ûï¿ßžE=\ðâ‹/Úãš›ÕÒ, :ÔÒn!°¢y`íðœ4…#Ho¾ùf;‹–Ô`´"»Fa'Ö"  ,My3q‚޵lÞ¼¹åH…\±b…h¢zA*§äM„oÖNXMÌ„<¤(°zΘ1Ã,‘ðëÔdõxäß>„$ÆÔ£G³–â8Näpõ/H™…S©¿[óœØâG}ô ¿UÜQ£FYoXWoºé&È=ö˜]üU¤HeÖ`œÚ„´N°ƒ„0D5Kò0]Tòx±6 dI8^¹WëÔ©c>›“É)°ZÿÄðHÄ?T”§žzÊ’¼£O ëéÀ­o׆}þç¿c›ßÿHOÿö‘_IX\ý ¬ž¬¸ˆÀwdž+8d aÆöƒqAdC¬ãPló³DN€ÓÈY±& dY:uœX…moœÕ¶m[  ¹Tý£çHXBå[=z´Ygá·‰S‚ !PýKÉ’%í#Ü\ ì#TûÕ8 iþüùæFW=2VàB€¤ô8|Àù¢mXo“*8³îØÞ‡«Xµk×.©Çx?€…i~$  HLÛëo¾ù¦EÏ#H [øµk×6‘ªç°':QóæÍ³ãS!aAŒ´àd¬.]ºØV8Ž5Å¡8qÊ¿ ˜ â´gÏž¢çÄËO?ý$ðõŒ¤èyôf}öÙg-¶á7nl~ªxþ†nïúÕW_Ù<1¿`QýèPð‘…À…*2 €U¸Ó·‚µÇk"¦ü+   ˆ˜,ð1…U–Al[Cº¨y×®c›½Y³fIx6z 5ÛáøAùßÿþgbÏÃzé|IqÏ=W°`AÒ“‚Ê˨Q])J3Óâr.qC€Ó¸Y „H€H ^ ¼úêy÷ÝÑÒ©S}éÖ­I¼“ã" O€Â4Ã/!'@$@$+ÇŽyòàƒƒdذYòöÛ·«ÅôâXuÅvI€”…)ÿ H€H€H £GI‡ýå·ßæË€m¥NJAjñ @4 P˜F“&Û" È>*íÚ}!ü±ØD饗VÈóâ$H Þ P˜Æû q|$@$@iJÛ÷mÛ~.“'/•¯¾j/5k–KÓþÙ de¦Yyõ9w  Dþ÷¿oÍR:xp©Q£l¢û¼@$;¦±cË–I€H€2·Þ¥VÒ©Ò¯ß}¥lí8ÜÌA€Â4s¬#gA$@$JƒO“7ÞøE^½…4hP%•­ñq ”`‚ý”Pã3$@$@™ŠÀìÙk[ø>Ø@Z¶¼4SÍ“!ŒD ›§%# ˜c%  hعs¿4lø†œyfqÝÆo'Ù²e‹fól‹H h1M,V% È|:w(ÈYúá‡wQ”f¾ååŒ2ú˜f°ãpI€H€¢Gà½÷ÆÈøñ eèÐÎR¬Xè5Ì–H€RD€ÓaãC$@$@ÀìÙ«5Ði¤<óÌ ŒÀÏè‹Éñgô1Í4Kɉ DJ';]sÍ›rÊ)…ä›oˆô1Ö#ˆ1nåÇ0›' ˆ?ÈWºzõ6ùâ‹6ñ78Žˆ²0någáÅçÔI€H +@j¨>ø]ž~úz9ýôbYçLqK€[ùq»4 @´ ú¾aÃ7¥hÑüòÝw£Ý<Û#H%nå§ ' È8>ûl¢,_¾IÆû_Æ4GJYˆ·ò³Ðbsª$@$• lß¾OÞ|ói×®®”-{rVFÁ¹“@Ü 0Û¥áÀH€H€¢Iàµ×FHÞ¼¹¥K—Ñl–m‘ D‘·ò£“M‘ Ä'… ×Ë€SÔbz›äÏŸ;êƒ ú˜F)$ ˆ'o¼ñ‹þZI.¹¤|< ‹c!B€Ó Px‰H€H søóÏe2eÊÒ4±–fbœ ¤/ZLÓ—?{' ˆ!XKkÕªHki ³iˆ&ZL£I“m‘ Ä XK'O¦µ4n„!Ðb$V! Èxzõ#—]v­¥oé8â,L€Ó,¼øœ: dVË–mÖcGÉ_´É¬SLÕ¼V®\)<ð€|úé§QMõ8¨^½zɈ#/Ûç?üPÎ<óÌ ÷bq±^½zòúë¯KÍš5¥eË–²mÛ¶ÝœvÚi‚œœM›6Mp=–fìÙgŸD¸/^¼X*T¨ 5jÔ^xAN=õÔˆºÞ¾}»(P@rçÎmëùÏ?ÿÈ{ï½ѳñX‰Óx\މH€H U>ýt‚;Z¿~åTµ“YÞ¹s§üòË/²oß¾˜NqΜ9|6EÊ”)“è'W®\1í;°ññãÇËæÍ›íòï¿ÿ.[¶l‘*UªØO¥J•döìÙrã7JŸ>}Éç 6H:uäã?–Ë/¿\Þxã ¹æškä›o¾1q:wî܈ú-Q¢„|ûí·V÷àÁƒ²ÿþˆž‹×J´˜ÆëÊp\$@$@)"°{÷ýzº<þøu’-[¶µë‡ Ö¯_/§Ÿ~º¬ZµJöìÙ#çwž;vLæÏŸ/¸þùç ÄÛÖ­[M@¢®+°öA€Àʇ‚¶æÍ›g"«T©R®šµkÚ9çœ#°”&C?tèÀê ÝÂ… eÇŽrá…Ú3hhÓ¦MrÒI'Ù!Þ0®“O>Ùׯš={v«çyràÀÉ“']C¥’%K†{˜û_ý%xÖÂB… YÛ˜#ÚvóÁéZkÖ¬1fx9ŸqƲbÅ È«V­š,XÐ7.´·dÉû¨X±¢ïº{S·n]³ ºÏ»ví’òåËËàÁƒåþûï·ËXðC¿X·«W¯¶q)RÄê+޻Ϩ÷n<3gÎô­)¬›(Ï=÷œ­õŸþi¼í¢þjݺµ\pÁÒµkW5j” ±ËØäÏŸ_¦M›&Å‹iüí`ž˜?8¶jÕJZ´ha÷ð+ÔøqcÄ:b½ðÖZ÷÷„ûéVtB,$@$@$i|òÉ8דּžðT ¦ÙœTú¨½÷ÿ¥Ökܸ±]?0;̯O?ý´ÝS‘êÝ}÷Ýö~ùòåÖöí·ßnŸu{ÞÖŒt[Ý+[¶¬§ÕÓ/IžZ޽ غªx÷Ú¶mkÏþzê©§¬MŒAÝ<¬G±bÅ|ësß}÷Ù#`‡ùal¯¾úª÷È#xêª`÷ÂTdÛßƵE;îoÇHâ×ĉí=ù)‰šÉ»Í­|]   ÌA@ÿ ”~ýþP«ÑÅj­Ê÷“Â1¦8Òñí·ßÖÓ©þ0«,Yƒ ²-pXOo»í6³ú :Ôæƒíh~rçwÊwß}gV5GfY…•­GfEƒŸ¢Š Q±hV7XÃXË`-…•VÚ'Ÿ|ÒWVÉeË–Ù}œl¥‚Ê,t¨Ð¥KQAmuU„©¥úqu£(ë{–MŒÕÿç믿XjUÜi€Úef±…{¶´ïºë.ãàk ÌXû°%mzXW£~ýúÙÜñVÅ`–ÀE‹Ù¶9¶ÎQÿŽ;îp„ÅÁ_±ù£öíÛW^|ñE;v¬\{íµ¢¢Úêa-PÜ+®ÃR&XXY17¬+¬Òغÿ÷ßm¼_|±=ø ~°( Öñý÷ß7+9ÆŠŸaÃ†ÉÆE¿ŒÈ—_~iÜ­ò¿ÂßÕÓ/(æß °~1‘O>ùÄÝJ·W ÓtCÏŽI€H€¢M`„Å*D¶Ê½÷Ö‰vÓ1iO-c¶µ®V:k[ÈQî3!Ä DD(Ê÷ßobäÖ[oµ­gˆ Ç{Ì„-i ¤pM-v注ÖU ŽéÖ­›=êžÍ—/ŸœuÖYÊï^ŸÐBýöíÛ›ØÄv2Æ áê| ±% ßL<«–;)W®œ}Æ/l»cKÙÿG-|¢–Os-@ÛpY€»AçÎM¨Ã¥ ’¡ˆ-sˆ*låcî(Ç—ë®»Nnºé&†àX~ûí7yøá‡íG­§òÕW_{l££@Ô6iÒÄ &jµ<‡¶±}Ñ QŒ€)p0á>|Gá’€íñ3f|¡€¿-°öîÝk}¸­ûà÷ |QÀ ¥jÕª¢YûŒqàKú WÂß=§–WsŸ€»þž?w?=^)LÓƒ:û$ ˆ ø–Ö¬YNAñ˜´íFቫŠó…„°DQä.x.ˆ‡ß',k|ðù6lØÐü_yå{–ØK.¹ÄžÇ/øc†+þò¨qBxÆÿ|Qà{IÅ`ÿŸæÍ››¨Ãóð+uÅù“ X‚õ`œ®@T«kƒ aD¹ëö½»%Õ«W÷½woÔýÀD08é¶·Yž!4üëðµõ/X/ŒM]Œ?¬£X—{î¹ÇD9¬¦N¸â9ˆxXŠaÇ TáSŠWX§ƒ•Ñ£GÛe}”@k7Ö ÿ¤Æoê¯@~ø‘Þ…Â4½W€ý“ D…Àž=eäÈ9Ò¼yðíѨtåFœE,©faùSLM?ØîF™>}ºåÀz¹nÝ:Øz饗lÛø”SN± ×¶ÛvŸ_ñ¼+ê?˜`;ÞÿDŠÿv½{.9¯N”# ÊA¡Àâ qŽí~W` ,ÁøAäC´# ÇX-“*öì‚ËÚ…øó¬œØþǼÑ¬ØØB‡˜½òÊ+–i|iÀ3°¨¢@`ª_ªm¹cnÈNË5‚¢°¯> æˆg À!nÑž óçL °6‡ãŸÔøÑŠûtüS|ü¦0uà(H€H€RI`ذYf)¼á†ã[±©l.®G$7¶Ë±ÝŽí_ø8¢ [°‹Øò‡Å¢ QñZŸ}ö™ÕEð™gž ;'´ Sˆ+ø¥bÛXe! !€ß}÷]³¾BÄ¡<ñÄ>ßN7øœBÜ%U`)……Bí¢oø_ÂÒ ‹"æ‚ùÁ…}?ÿüóI5é»à 7È?þhÛóp‡€9’1PÌnp‰€@†Õ¥Y³fö ñ á  Ž2! nÕ¬du'<à_zî¹çZ<Ü!Pzöìi¾¦`eVWˆO|!@Ê(ˆà—_~ÙêáD-,ÎØâ‡ÐÅxœ»Ü ð¥Ã_Ä㙤Æ:ñXŽïÄãÈ8&  Ho¾™®ÿ©W•Â…ó&ã©ø®êoÄ–ðÀmkb[⟵k×6‹*‚©pƒ-Zø2b«þ‰(Ø~v%˜¥ þ…X¶¾þBi… ¬°UÑ…à%×¶¾‘ªèæ›o6†¤ú·Ür‹o»Ú®¼B õïßß‚»Š õ°e A‰Á A !ˆºHƒ„äñ¡ ÆãÆ! Q‹€&ˆ8—ºÉ=l\°’Â?é— !´1ÔsX8Ýö:‚ÀÐ÷£\uÕUöÙYKqíÿûŸ¹aÀº‰ç‘²ËÁ"ú믿šÄ©+¨3yòäîàÿ[|ÁÀa~CÇ— øèb ¢ó±¾î Ëñ«Ç}”S;~×Và+¬ôøB_ÜÀܸu“ó™ÓäÐb]  ¸$ðý÷3õ?ôÂ}v\Ž/µƒ‚U)‚ (ƒ Ã`×Ð'¬b.pÆE‚‡‹«¬ü6ñíßÙÀ #ׯJ̹:¡^!pq²Sj úwJ)mh|¡W˜–TpÚe9XG°ñk7–×ècKºl›H€H MŒ€“óÕÚv<š=M:MÃNà× ñ‰óåSZ4‰ºmÿ¦(Â6½&ß7¬mÜó?é)X^‹œò+iV)´˜f••æÐhø´N:Õ’ÕG³ÝX¶Y©Ðbš•V›s% LHàçŸgk@HµÏ ™ §˜å¦„ü Ár™¦‚™‚‰óÔ¶Ëç£G€Â4z,Ù @:À6~ÆU$Gþ—–øSÝ%‚®B¤B ¦ÀdòlB¾Pr!h(° =î!ßg$1ÞñX>pYõ3ÿgÕ•ç¼I€H ذa§Ìœù¯ù—f‚éd™)à\{¤œºúê«mË>ØÄqÜ(¢ô‘é–pd(ÊöíÛ-g(ŽEÄz9Í꟣i®P‡ KÜf)\A.VôƒÈ÷À| ážã½è 0>S¶H$@$F~ùeަÊi£ñÓcšuƒÜ¢8Ÿþ´ÓN“Ö­[[š¡Ûn»-hÿØÊ‡?(Ò]A\âT+¤ÄêÑ£‡¥—BÞUξ}û DìØ±cí îÝ» Û#=ó£’Ò‡+8ò9L[µjecëÚµ«¥f ÷ ïņ…il¸²U  4 ðûï õ8ȳõ¤#Æò¦îu<¥Hu…”IHöcT‘ 9Qq¤'NN VPÇvÂú ¡ˆ\¢¶C‡µS\©{ï½×rxâOœÔ„”Vwß}·5 ‹+r´â^¸‚tU8¼c‚È…*ò–"0 9\aáeI¦iÙ½ D™ÀáÃGU@,M—„úQžJ¦nnæÌ™fEàŽðı›mÚ´± ÂMiª\qG|ÂŠŠ„îyO‘€÷¨¾zõê ’ô#±}¤TµíÚµ³,ðQÅQ©¾sæÌqCákŒ P˜Æ0›' ˆ éÓWȾ})Lcƒ7j­B(¾ÿþûrúé§Û9ðH…sß÷ïß¶œøäÊŒ3ì-¬¤ØrGà“+88¢–UTˆIÿ€'œ3{‘”}ûöÙ1©8^ǘÂG¬¦6Q$}³Îq¦üK  ÈÆ[¨§—2eŠfÈñg•AãHÐŽ;Z.VøŒât©öíÛÛxÅq¤ÁÊ[o½e–JKlýŸþù¶½Þ¤IÛ²2dˆ*½ýöÛöx³fÍLL·ÁPØúGð= åÇêú…˜mÛ¶­©S§N‚¤ö8Fùcñ9%G‘º¶ùš<tÊI/Ö& ˆãÇ/¢µ4NÖ"ÒaÔ¬YSðÑ9xð`éÓ§|ñÅòꫯ&jçÆ#ªé¤Ê”)#Ç·Ó©^~ùe³Þzë­¶eóá{÷îmüð)íÖ­›ôìÙÓÄìÑ£GM”véÒÅ×>Žé ,–‚@Æ [Í›7×€ºüUø9dSs·—F}±  ˆ ­[÷¨íY Li- ¤î<ôh Ñâ… –‘#GJ£F¢Ñd–iEyòä :ß]»vY@Djöì'6y!]–/_nVQ)Z4a5]²d‰YgK”(´mÿ‹ÐÂÉX,‘˜4i’‡Áç·téÒ‘?˜DMZL“ÄÛ$@$@ñGÖÒœ9³K­ZãopQ²„¥hb?VÏ BŸôuòÉ' ~"-¥‘’Š}½_?bß{   ¨˜:u¹F_Ÿa9L£Ò !ˆ ¦q±  @r@˜^|qùä<º$@€…iX$‘H€Hà;ö©ÿàF¦gž¸Èw$@™‚…i¦XFN‚H€²ä/E¹è" Ó¬³êœiV!@ašUVšó$ LBÛø+ž*EŠÄGJŸE‹6hJ¢>ŒU$“æ4H ý0*?ýسg  ˜6m¹\rI|ø—öî=^^~y¸ž „t9ž\{íµ)˜!p(L ¾’ Ä=ƒèq”käž{j§ëX×­Û!>8HOZ.]»6Ò“Œ®”,“®cbç$Š+Õn)L£Š“‘ Ä’À¼ykõÊ#z"P¹Xv¶í‰—¨ýBódÔÓˆ’óÎ;.Hq$& @êÐÇ4uüø4 @˜={µœtR>)[6òäéÑ^Ÿ>ãåöÛ?–+®8[~ù¥«O”F³¶EY™-¦Yyõ9w È`°Þy§§ù¨áBðØcßÈСéYì¥C‡«Ò| ì² Ó¬°Êœ# d°˜Ö­{NšÎfçÎýrç½eÙ²M2`@[íÿì4ퟑ@V"À­ü¬´Úœ+ d`°Z.^¼QÎ??í,¦[¶ì‘[ny_6lØ)?ýôEiþûáÐ3ZL3Æ:q”$@$å ÌŸ¿NŽ9ªÂ4m¢ß×®Ý.-Z|$Ù²e“~è"§Æ<¥YþbN€Ó˜#f$@$@Ñ €müÂ…óI¹r§D£¹°m¬\¹Eš6}OòåË­¢´3EiXZ¼IÑ#@‹iôX²%  ˜3gT­zZ {8ÞôæÍ»õ$§¥D‰ÂòõרÎó>Ù Àq´˜ò/H€H CÀÑŸçž‹–bWvï> wÜñ‰äÎÃ(JcÇš-“@0¦Á¨ð @ÜX¼xƒTªT2fã:t訞(õ©lݺG¾úª½+V f}±a ตœ ¯’ Ä kf,…éC ’ùó×þèT4ŽfÏ¡@Ö!@ašuÖš3% KÖR”J•NÉúô™ é þ6KéÙgÇÎ*“Á³QÈD¸•Ÿ‰“S! ÌJþ¥F*R$Ô§8mÚ yá…aòÄ×IíÚ£Þ>$ˆœ…iä¬X“H€H Àb K&"ðÛµûB®¾ú\éÔ©~:ÍŽÝ’ 8¦Ž_I€H€â–,¦±¦]º ”üùsË»ïÞ·sçÀH + 0ÍJ«Í¹’ @%€£H£ø4`À™8q‰|ðÁR¨s•fÐ? ;“ 0Íd Êé @f#€ôM{öòå‹Gmj«Wo“=~”ޝ’êÕψZ»lˆH u(LSÇO“ ĘÀŠ[¬‡²e£wéÃ%§Ÿ^Lºvmãѳy ä`º¨äÐb]  4'ðï¿[ô$¦œRºôIQé[øˆÄÿùç‡$W®Qi“ D‡-¦ÑáÈVH€H€bD`åÊ­rÆÅ$[¶l©îaçÎýòÊ+?KëÖuä¼óʤº=6@$]¦ÑåÉÖH€H€¢L`åÊ-R®\tüK_}¤dÏž[øQ^#6GÑ"@a-’l‡H€H &Ž Ó“SÝ6RN}ñÅ$éÖ­‰,˜'Õí± è 0>S¶H$@$E¦Ñ|zúé¡Rµj¹í¶‹£8:6E$M ~Š&M¶E$@$U{ö¤‹*W.uÓ ˤIKdذ£:¾¿ÿþ[zöìÕ6Ù dD?ü°\vÙe©:-¦©FÈH€H€bE`ÍšmÖôg¤N˜Â·ôª«*KÍšå¢:Ô 6È·ß~+Gމj»lŒ2üX½zuT†L‹iT0²  XX¿~§5[ºt‘7?vìBù믕2rä#)n#©¿üòKõ[-˜T5Þ'LI 3ZL ¾’ ĵk·Ûq¡ ¤P˜ÆÇ:p$@$@A¬_ŸraÚ»÷89çœRR§N¥ -gÍKýû÷—N:Å|ò=ö˜ôèÑ#æý$·ƒùóçË7Þ(eÊ”‘³Ï>[|ðA?~|r›‰Iý¾}ûJ£F¤D‰R¡B¹ùæ›å÷߸¯}ûöÉîÝ»­þâÅ‹åÚk¯•7Fü|¼T¤0—•à8H€H€€Å´T©äoåoÞ¼[~üq–ZKë&j3+_X´h‘Z‘'ÇÁ”)SdæÌ™1ï'9xž'·Þz«,]ºTÚ·o/<òˆúÿ£iÄ®’_ý59ME½n—.]äþûï—œ9sJ÷îÝm|+W®”† ʇ~QmÚ´‘»îºËê=zTöìÙ#ÇŽ‹èÙxªDaO«Á± øìܹ_öí;”¢­üÏ?ŸdÑü7Ýt¡¯½xxsðàAà€pX±b…Ì™3dž1wî\Mkõ—>|Ø®­ZµJ¶m;žÇÕ}Íš5²cÇ÷ÑÄDàÞ½{}×ð¢tëÖ­ÊpŸüûï¿ îãî]»dçÎÖߤI“V6W:ä³¶-\¸PþüóOÁ5ÿ‚¹¸±Bôíß¿?¤Â}´ƒ¹£ _ä~u<0ÿeË–é!“lìVé¿_˜ ¬šãÆóYq ãqí-Y²DSíΞ=ÛØ€³+?ÿü³,X°@¿°ü(O?ý´´k×Î,’¥J•’¯¿þÚª…câÚkŒgݺuî’ïÏÿöÛoËl`Á=¬IàZ ~¯^½ä™gž‘áÇKÇŽg0¯_¿¾<ú裶áÖëŒqa­1®J•*Y~]X_]ÁßΈ#dÖ¬Y‚õp×±vÛ·o— &ÈÚµkÝ­ôyÕÁ± @ÜX²d£WªÔCÞ‚ë’5¶£Gy\ÐÝ{啟“õ\J*9ÿÃ{º…Ñã*6¬~½zõìÏÖ©SÇkРﳞžã©ñ.¿ür¯nݺ¾v7mÚäåÈ‘Ãûàƒ<µôyeË–õ4wª§9$=ÝšVN ¬®Š&¯hÑ¢^öìÙ­~Íš5½ ؽ§žzJÙ\`ï[¶léU®\Ù+V¬˜—;wnëÿ¾ûî³{?üðƒ}¾âŠ+|÷PW“¨Û}üB:t°ÏcÆŒ±ú*ís­Zµ¼n¸ÁÞ«hòj×®í›æ‹yë6µçxèöº׋/î©H¶gU(y*®lüyóæµ{xEOݲvš5kf ÔMÁS‹°Í í¨õÑ+Y²¤õúškÖêüñÇøè+óæÍóðƒŽ îwëÖÍx.\ØÚÂZ©øÅ-oìØ±ÞÉ'Ÿl÷±&ºï©Ø¶{[þüù½\¹rÙsj õô †ÝkÑ¢…óÀöÙÿ—›ã'Ÿ|â…[¬úļ/½ôRWýòcÍ©[…ý=`­QëƒuA9ýôÓíï/Ož<¾5èÝ»·Ý‹ôúù¤ï¶ŸUPÛgÉòøã ^ ¶¦ÑŽo…•¸P¡Äë©¢L¶lÙb–HXQ‡jÑ»ï¾Û޹„5VVë¶]:®Àê 6ðÅÜóåËgýÁByñÅËí·ßnÂ&Mš¨Ïñ9¶M~ÆgÚVÁgìÎ=÷\ל=Œ ,‰/¿ü²¼óÎ;f]ÛéÓ§[ßú¾è¢‹Œ×òåËszã7ÌܺukÛªÇÁ./¾ø¢õ KuµjÕD…¡o îÍyçg×Ñž+ÁÖD¿¬Èm·Ý&M›6µ¿W¯°Bc >ýôS[CôwX]ÁÚ NoÒ/#ÆÅÝKëW Ó´&ÎþH€H€""°eËnbÅŠˆ¨¾«ôÕWSåÒK+H¹r§¸Kq÷ª–KuQ(-7¶±Á¿‚Ã}†€kÞ¼¹¨…ÔD*áØGǨU΂cf̘!¯¾úªlÞ¼ÙÄÈ믿nÛ´xÛÁ_¢¹÷Þ{CοjÕª&Ü xQ¯|ùò&ÝÏ>û¬ ½³Î:Ëîc;Ý•çž{ÎÄ >ã>ÆR®\9wÛ÷ ¡‹ùA|á>¶¦ DZ‘"EL¡„¶œ±UPµ4ŠZu¥sçÎ&èáàJÏž=MAôAÔ#è[Ú€ðшHµðÚöþW_}e×±U޶!ð¿ûî;ל„b¢–\ûÂpÝu×Ùµ–Ûß'+„¶è17cÌó›o¾‘›nºÉ'²!œ1/Œ gÊ5ÊúÄ<æ¬@\Ã5ëãJ¸5quü_!ÚO:é$⸎µÂXàBàŠZÊ¥FêÏ]Êç‡ëî¥õ+ì§5qöG$@$XL!Juë1¢ú¨´mÛ^=zž¼þzóˆŸIŠºÅlÝ"Ø¥bÅŠöêæª{&@!² š´£[ÅfQEE[X0aqÕíeWg]Õí\k¿‚Y1ÝMQÿñåÚÀõ3Ï<ÓwþŠÁÉ-nþc€ ,þ¾vð …-Š}'ˆÐSN9þÅVEç» Ëñ_|a×ð ø°^² q Ë"~P …/”`ŒŠ Ö䡇2A‰6ѯ[?7Vøvºë. |ZQ\`’}Ð_h_üý{íâ¿ Áu\Iîš`lÕ«WO nÁ ] ä1œ^å„O¯°_  B`Ë–=*>’wþü!©øÈ)MšT Òbü\ò·€…¶óa¥ìÓ§¨?©¨ß¦U=z´mÅb›S9¨N`¬_¿Þ׬ÿ6°ïâoüx`Ƀ•Ò_Dúߟ8qb‚{m…ú 7X]ñ·vºkÁx8ñŽ@&W0WX$ ,Ð(ØjÇ–4~PÛéH ÷õGMðØ…^h‚ÔßÝÁÎþL `ÑûBÛ°»/˜#ŠÐÜ>úè#³BBãž—ú‹Úxð ²€{°l †RßZ³£.Šÿø"YpD`„µ+àâ¿Înî~z¾R˜¦'}öM$@$’¶ò“ë_:dÈ oÕu;5wÈv3Ò믿^4pÉ"¶!ª RPà/Oø—Â?Ûû\c–1X=!½_FøQ†*(ðk…õ>‡ˆüvîxÛÆhnं¿‰¯©'žxÂçf€­rŒ‘õåšk®1?Ll)C a;>’â¶–_zé%{ã€5~œþD×,UªT±w̸U«V‚qÂ,a5Eô;„;"Ña‘ÄÖþ•W^éš11Œ ,—Ðÿðw…ÕÛðÈL€1Á>¨ `+,ÜÀ H°„ÅÙÀ®(p»@=Œyfáz€6àÏûù矛ï®ݨjMàîÑ Nþ}a}1oÜ›:uªYßÕØ¿n\¼Å›$@$@$Nî½÷S¯cÇþ÷þï¿[,Š„E?“ÚŠ)ÊWAi]«5Ó"©Ž¢>…öØ® R^ƒ§5wÉC´ºŠ‹°FDýùçŸï©¥Ýÿå—_,ÒϨ²(mÿ¨|µZ=D «ÀóÕE”ý+¯¼b÷\8"¼Ñ"ÜU8yšºÉ7†¤¢ò5ÇêªóTœYÄ·nÓ[ä»›‹Êw<ð€ YÏe@´¿nÙÛ0õôEÐ#3ÚÑÀ,ߘÔ2ë©@µë¸FŽ *©¨óÝ{øÁ4‘½‡1¢„c‚Ì *–í9dGÀœMãÒ ([µœÚ} ðòÍíj.RQï®_daðÏä ‚ÒC¤¾»W´¡VW]»ö«pI:"Ê”¥rÙeg%¿>‘f õÌwÍK{º\sÍ5‚TPƒ =j4ìô¨Oßý3fØ{XI±åŽÀ'WöîÝk¢–UTˆIÿ€'=Î4ÁéLî¹`¯8)¥®ºê*ÍŸÛØüW{õê%UªT V×b@€Â4PÙ$ @êìÝ{PÖç Û’ðOŸ¾B…i…°õx3} äÏŸ_:vì(z6½ùŒâ8ÍöíÛ ,™x…¿h°òÖ[o™¥Â[ÿ8bÛëMš4lÙ2Ä•Þ~ûm{¼Y³f&&á[Š`(lýÃG¾§¡üX]¿³mÛ¶µ1!Ï)N€š6mšŸóåKúK’k‹¯©#À#ISÇO“ Ä€„iá…éܹk4æ…i øÇªIœQˆNœÔ§Oùâ‹/äÕW_MÔeÅŠ-ªé¤Ê”)#Ç·´`/¿ü²YHo½õV۲ϕ+—žÖÛ"øáSÚ­[7éÙ³§‰Ù£Gš(íÒ¥‹¯ý`Ǭ~úé§&qTjóæÍbš%}ðHÒôáÎ^I€H€ÂhÓæ3É;§žWÈZŸ|2N·ˆS«Ú !ëÄú$M=aåÉüKÈ®]», "Y\ÁVýòåËÍ* +j EVÓ%K–¬³%J”p…|E€VÞ¼Ig€Ù@¿Í#Ii1ÍâLœ> Ä#XL“J®?eÊ2¹ä’òñ8|Ž)B‰R4©`ARB*„vá8ùä“?‘ŠÒHIžމ¯±ï‹= @DŽoåç[wÚ´år饡ÅI؇y“H . P˜Æå²pP$@$µ ìÝ{Hýü‚oï‚Ìòå›uwŸ\tÑñ\–Y›gO™‡…iæYK΄H€2 ¤‚Ÿþþ{•ù ž{néL3gN„H@„”$@$@qGÂ4\º¨Y³Viê Ò’+Wޏ;D$r ~J9;>I$@$#ûö ›.jÖ¬å‚ ÊÆ¨÷ä7‹¼š  I>7>A(L‰ð3 @º@* ýûác<øéÈ‘czfúZiÕªVºŽsÛ¶½š®j–ºœê;›=]ÄÎI  0Í‹È) @f"pðà›Nž<Áÿ‹š? NzZL'O^*: œ9sèéBÓô|ö32Óp.$nècšnèÙ1 @0‡µËH°¬Ìž½ZýOójËâÁnÇô¬¹¯½6ROúHO%*'cÆ«Qà|I€H€â†À¡CÇ-¦¡„),¦•+—²ã)ÓrÐÈzàþ2qâb=îòV¹óÎËÒ²{öEY‚…i–XfN’H€2ƒÛ`Cmå/\¸^Î9§TšNhõêmêGÚW¶oß+C†tR7nݧé°³,C€[ùYf©9Q Èœi(‹é‚ë,UTZÍfÆŒ•rÝuokjªì2bÄÃ¥ižýdI¦YrÙ9i ˆ_n+?Ož\‰¹nÝÙ¹sšYLÿøc±ÜvÛÇR³f9ùñÇ.Rºt‘Dcâ è 0K¶D$@$'„ibo3lã£T®ûŸFž§Û÷}äÚkÏ“¾}ï•|ù‚§¯ŠÂ”Ù À(Lù§@$@$WNlå'>Õ O§VT ÎÓ1þ´ný™4kv±¼÷Þ’#ÿ»Œ)p6Nÿà¿4þ) ÄÂ4±ÅtÑ¢ 1߯7n‘tìØ_î¹§–¦†j–æÑÿqµ ¤1 Ó4ÎîH€H€Â·•¿té&9ë¬áHÅÝY³VI›6ŸÉM7Õ矿)-ñQ ” 0M 5>C$@$3á,¦Ë—oÒÄú±¦½wÝÕ[jÕ:KÞ|³EÌæÇ†I€B 0 ͆wH€H€Ò,¦ðé ôëܲeìÞ}@Ê—þ‰OÛ·ïSQÚÇDï'Ÿ´JÔw:``—$% P˜fÉeç¤I€H ~ @˜K®¿lÙ&t´…éѣǤmÛϯŸ}ÖZòæMœ¦*~iqd$¹$ö,Ï\óãlH€H€2låK®¿|ùfÉŸ?”,yRTgôì³?|K‡ ë"ÅŠˆjÛlŒH y(L“Ç‹µI€H€bLÓP´|ùS¢Úû€SäóÏ'JïÞ­Òô4©¨N‚‘@&"À­üL´˜œ dØRô/żøT¾|ôŸ¦N].O=5D~¸¡4n\-3 ãH à0ÍðKÈ @æ"J˜þûïV)Wîä¨LvíÚí–ªAƒ*ò裢Ò&!H= ÓÔ3d $@$@Q$pô¨ÔbºfÍv)S¦Xª{‚ë}÷õ“% K¯^-SÝ ˆú˜F%[" ˆãÓl ZÚµë€ìÚµ?*Âô™g† ¬¯¿þÚUòåË ~ H_¦éËŸ½“ ¶•¿fÍ6«U¦LÑ€ÚÉû8tè_‚€§O?½OÎ8#:nÉk“ „#À­üptxH€H Í @˜fÏžð¿§Õ«S/Lq²Óã«9Këʵמ—æób‡$@IHø/?éú¬A$@$@1%aš3gÂÿžà_zÊ)…Rœü~ÿþÃrÿýŸKåÊ¥ä駯éøÙ8 @Ê p+?åìø$ @ xž§Ó„>¦°˜¦fÿÉ'¿“M›vé6þ£‰Do ¦À&I€RH€Â4…àø @l¨.MTàczúé)‹ÈH$@$ ØÊ,7î”SO=)ðrØÏÇŽyÒ¥Ë@=-ê zº6lÝ”ÞìÙ³§œuÖY)}œÏ‘@¦!°víZ=EíáTχÂ4ÕÙ @¬ lÚ´[…iáduÓ«×™;w­üòË#’+WŽd=i嫯¾Z.ºè¢H«³ dZ .ŒŠ0Mö˜iqqb$@$@…@ Átûö}rèÐ;©)Ò9Ìž½FÞzk”<ùdc©T©d¤± @: 0Mç`÷$@$@‰ øû˜b¥dÉȶò8,;K.© )¢®LÜ8¯ Ä-nåÇíÒp`$@$@ €À'œmIyé¥á–ꫯÚGRuH€∅i-‡B$@$ ‚€|ÿ(äÅ™ö… çMÏäÉK¥_¿?¤W¯–Rº4SC% ŒH Îp+?΄Ã! ¬NÉõý…é† »"²–©öc}ŸÂ4Ö„Ù> @²À¿Ç’º²uën=Ž´ ûòõw~Õ-üÝÒ³ç­!ëdÕ;wî4QÑË2eÊ™9sfD]`,‡²ºmÚ´‘»îºË÷Ü?þ(µkפ züñÇå‘G‘ǛȻ& HL {öìúé‰\¦Û¶í“bÅ $®èweáÂõòᇿËsÏÝ(¥JE$å÷xÌßùd»‡_èk„±Â²}àÀÉ“']óUÒ7Û¶m31Y´hQùçŸ$oÞ¼rî¹çJŽÇSwA€áÚÖ­[eïÞ½²ÿ~³èbÞ;w6«á˜1c|ã‚5ö‚ .nݺI‹-¬+.6ðOXWQ’Ã;9u­qý…ñ¢[±bEu)í.'9gTܲe‹­q`úçž{Nð·ðçŸÚz¸F[·nmóîÚµ«Œ5JvíÚeÜóçÏ/Ó¦M“âÅ‹kæ‰JV=%®ûí·VǵVX×R¥JIõêÕÕuæøa¸ŽuÆz"I~… ô¤´ÓÜci÷ªT,$@$@$7ÞxãïÊ+_ñ§eËO¼‡äûøFʼn׸ñÛ^“&ïxxŸE·Æ¡œ=u§bÃê׫WÏ^ñ¬ZǼ ø>_vÙežŠFO­e^ݺu}íªPôTÌy|ð§ÏS¡é©põTPxeÊ”ñ,X`uÇï©ôT4Zýš5kz*ZíÞßÿmý,Y²Äûá‡ì½n{*Fí}åÊ•½Õ«W[]\«U«–µ¡âÓSä 2Ä7ôÑ¡Cû¬ÂÑž7nœ}Æs7Üpƒ½W+§‡vU¼Y[˜sÆ }k¤"ÒÓmlk sÁýK/½ÔÓíz{?zôh_ŸîÍÒ¥K½aÆY*|æëæýôÓO[ÕäðNN]4®Âظ.\ØÆ‰uSˤõ›ÔœŸzê){sÅógžy¦wï½÷Úº«¸÷tÛÞÚ üåžÃœ[¶li\UÀûÖï¾ûî³G°.þ,ÝÜV¬Xa÷ÕuÀþ>ð,êa½TÌÚ=¬þ1ü½aŒ½{÷¶{‘üÂß!žQQIõu¸•¯YH€H€â‡@Ž }L·mÛ«ÖÃÐ[ùŸ}6Q-ù¤o°hcÙ²ev¿Q£Fæçk,J—.]DŒ½‡5[íVY»©¿T¬È<`ÖÐîݻ˯¿þ*ðwõ/*¸å¶Ûn3R0ÀxP`© ,°â]ýõ¶ÎðÏ/«f©ìÛ·¯¼øâ‹2vìXßc‘ðv•#© ׂ—_~YÞyç³:c~úôé‚5r%ÔœqŒíK/½$O<ñ„ùŒb-Á÷`¹…oi°¢_2ìòòåËí}¼ÿþûƵ_¿~ð×OT°K Kÿ¶&Mš$XƒO?ýÔÖþ§`§bÞWM¿Àêé—óéýä“O|÷Òê …iZ‘f?$@$@H¼•azb»Ú¿‘õëwÊ+¯Œ®ÒíëøO¤¯–/Ûúmܸ±Mãþûï·íR÷B¥yóæ¶Ý=tèP«ƒ­XˆCl³B˜a 3ئ‡{ýõ×eÖ¬Y&r:vì(gœq†ÕSKœ?ªDïŸ}öYÛîÇ‘ª¨«VO_öíÛ›ØÄv1ÆŒ-bçãˆ-ço¼ÑêâYŒ¥\¹r¾gýß”/_Þ‚y°íŠâ„§=ÿ÷‘úC‚O“&MD­Žö8æ7€ß~ûÍ×\$¼]åHêbÛbøºë®³/#GŽ´/ ¬®„šóÏ?ÿ,p»xþùç-˜ ßm•Ã5Źj¸¶Ü+ø£àß Ün¿ývûŒy£Oµ˜Û½P¿ žá¢q÷Ýw[¬ÖÑŸ—Z^ÍŸÛü·Þz« ×PíÅê:…i¬È²]  Ð-ÆÁO°˜-š?h[/¼0Ì£~øš ÷ãíbÉ’ÇÅsΜÇC<ࣈ‚9£èþ¦ PDÐ#bþˆ°ÂŠŠñ„÷°¸Â?BU·kÍÂ…ûºŽ+¡¬˜î¾tøŒ¨w]WüïAŒ¡8 ®«É+Úuþ¤(È Wà‹ÊÀ¢Ûûæ_ŠÀ)ˆAøÆúð3W"᜺XŸ‡zÈ„8‚µ0F·–®Ps†ð‡Øùò¢>ÖëˆJ´cÞ(“(¢þk”ÔúÀwý9q‹ç!@ýyù>ÊGŽñï&MÞS˜¦ fvB$@$)œ9³û„éáÈ*>t+úôòÃ3u{²©þg< &Ò>Ò«ž¿(7ˆO™>}úXГúmZul½b›þ¯¿þõ1µ` '(`åŠÛöuŸ_ýSGMœ81Áv¼ÿ=lí¢$%tÛÇg'¸ƒÝ u͉·#F$ªòÚk¯Ùö5,¹câqVGl­û3RÞh#’º 0w¸Z`»Ûçs üìÆ‹7¶àý-°~£ Ø ÛøêÓéËTàžCP¬šõë×—B… ÙeÿõH‡ÅÜÞîYÿWˆtX½!®]Áßÿs¡Æîê§Å+…iZPf$@$@È™3‡Zjާ·µ%ØVþ3Ï|¯~pgkJª·Q*ÂÛ¾Ï<óŒ4kÖÌ¢×1vøb þ¥ˆp‡ØHƒ% B ~‹ðE|RþØÊG]¸ úÛâ®ÀW>ˆ2ï¾û®¹8ŸOøH:7AŒþ¨©)Øê‡ØÂx`Åü‘ øØ:Ç\0NäùDÁx±=­Y&æ`EF¯XX{!`ñE~¾°`CÃÇ7©‚/˜øa®¯¼òJ‚ü¤={ö4_S |³myÔÁ¤ŒBðmu‚~ÉØâÇdZpî þ,]}¼â>êƒ-Æ1uêT³ÆÃ¿7ž …i<­ÇB$@$ [£Ùõ?úãÛ½;vÏ»(Lž&óæ­U½ã¾Ž™›³ÚaÛ>~BðûsåÿûŸÏ:AlÏ"–´þýû[@Ò3a‹ÛmûâÙ`–0¾ îwÜ!Cð}t‚Â)˜ À¾þúk_°â:¿Dä^½z™PvϺ¾ðêæãîù¿ºz¸ŸMXý`DÁ<‘ ¹<«T©b?_}õ•ùhf«¡†mp¶3Ÿ`qôŸ·U ó+ÜøC]°Â—€sÎ9Ǿ@0ÃO`°~†›3Ü3Üœà[ Áå•Wú¸bîƒ%ë:Èk ‹É“'ËE]ä¶ò‘Rë”SN‘Ï?ÿÜD®f°û,ÝC¸úÀxn÷øbâ¿øŒù&‡ž‰J ¯Ï$@$@$ú÷Ÿì{îSÖóԩ˽R¥ò6nÜé‰ní{Õª=«i{N¤0òÝL£7ÉM•’a©eÐSa˜èQµÎyº½îéV}¢{ºík)¥4×¥§‘Ú¾tQþ]º(´£–Ne»Ñÿ¶¥ Rkœ§V5_*ªbô©0nÿ¢–BOs¶zj™õ¥dò¿ô`H!¥¢ÐÓ-mÿ[1}ñ¨o¦¯ü=¨?¦ïs¸7j µ9!5X¨¢QúžZK­ ê#]”Šaë§® žFó'j&KW ãÖ ¹ m»:)yU7…¨¤‹:î}‰ËFH€H€H õ°•ï,¦ð/E)T(Ÿ¯áwÞm÷{¬‘ïZfzƒmqX$±m´DÁ68(X¥Õm¹»x-0ˆÆÿ>,²øI«ëm`›’ê‡*°ò¹À¡PubqÝ%´wmûûiºk¡^᪀Ÿp™ð®àïí`%KWÖpüÄk¡0וá¸H€H ‹ÀVþ‘#Ç·òwí: [û9t«6—ÑX³f»—gŸ½ASëÔÏèØ°=þᇠòŠºÔ>)™ü ƒåÅ„(Á6nàÖ­ë÷âY¸¸qfÕWˆbþ_Ó¡CGä¸Å4Ÿ&&_¯ÉÌÿVÿÒ{BúF&¯Ö&ˆG¦ñ¸* daî'ÓÝ»˜ÅôÕWGhrÍwy~\‘ApQΜE5þ…*¢Çê©:Lj«Ar0$P˜f ÅâPI€H +È•ë„Å©£ÆŽ] ¶‹›é㔥¯¾¬iÖêyé«¥dÉüÒ¾ý}ê{<{@Ü ”!4&T𫤆Caš!Þ' HSyò8azTÏE?$Ë—o–š5ËI½zç¤é8Âu¶páf=òs¥žÒ³UÓ:]/íÚÕÕSr²…{„÷H€" Àà§ ± @Úp>¦‘íÛ÷ÈÚµÛõøÅ«ÓnazÒqä½÷ÆHÓ¦ïi’ô“Ô’û„žá^¢4 3Þ"ä Å49´X—H€H æœÅôàÁÃzû=Ͻ€4hP%æý&ÕÁæÍ»U ”?ÿ\&Ý»7•6m®HêÞ'H& Ódcu  Øȓ縟æºu;dçÎ}ðT-¶FÐúĉK¤cÇþä”G³<¨Ç~–‰à)V!H.nå'—ë“ Ä”€³˜~÷ÝtÝ"Ï.5j”iI5>pàŸrÇŸèùôgÉèÑR”&Œ÷I h1M<>J$@$}N˜þúëëÖí©S—û¶ñqã¸Åô¨äÌÝÀ§—^.S¦,•~ýîÓ´T…}cà ø @‹i|¬GA$@Y–À?Ì”"EòËUWUö1€åôàÁCMk)¬²~ø»ôêÕ’ ô}¤ù†â‹-¦ñµ d9Æý-WSëè‰ÿ’.êÀ#’=û‰k©3{öjyôÑÁÒ¾}=¹å–š©iŠÏ’ Ä@tþÅÇp€lšH€H óذa§@4º '7ÓãÓ# Ī»—Ü×íÛ÷iJ¨ÏäÒK+ÈÓO_ŸÜÇYŸH P˜¦!lvE$@$ÀèÑóNµjULpé¢:b‘ú n¤àC—.5ò^tÿ.µÀ2?ù ¤ú˜¦jvD$@$H`Ô¨¹R·îÙ‰|Ia1…0Íž=oà#Éú ŸÒñãÉ÷ßw6?Öd=œÊÊ‹-’gžy&•­ðqˆݺu“êÕc{B-¦ñ³Þ d)û÷’I“–HÆUÍ»@Ü‚ÔNÈmšÒ2cÆJyå•Ò­[c©Q£lJ›Iñs[¶l‘o¿ýVöïߟâ6ø Ä#GŽØßòúõëc>ZLcŽ˜ #0nÜ"9|ø˜\}õ¹‰n»|¦)Í}¿Rä+­Wï xJÔA^èÝ»·³Z* {dW$]{öì‘B… E·Ñ­¥ü«hˆy™H€H€"!ðë¯sÍ’Y¬XDÕOÓ”ù„>øà kóÝwïHÔ6/ Ä/ Óø]ŽŒH€25XL¯¾ºJÐ9:aª»ùÉ._~9YÆŽ] }twšû•&{°|€H  Ó8øH€H -,]ºI6nÜ)µk'ŒÆw}Ÿ¦ÉS¦+Wn‘çŸ&:Õ—š5˹æøJ$AP˜f…â0I€H 3˜ùdÍqغ…Œ†8îÒ¥‹Üÿýú¥)§tïÞ]³E´—•+Wjº´†zøÃ‡M±M›6r×]wYÝ£G ¢å;ѳ¥…iFY)Ž“H€2 Å‹7È–-»U˜žvFyòD&L=&8Ý©zõ34ET½°mÆó̓šPàX±b…Ì™3dž á1wî\ù믿|biÕªU ¬z¨¸fÍÙ±c‡oŠ{÷îõ]ÈЭ[· D׿ÿþ›à>>ìÚµKvîÜiýMš4I`ó/›6mŒmŒ;Ö^ýïãžvp±@.×` –IXü ü¦OŸnsÆüQ0G<»aókõêÕ2qâD£»†×µkך5cÿçŸ|·Àå?þ°¹ú.þ÷s9r¤þ=n±+Ì ¢cþøã¥iÓ¦VmùXtѯ+èl™þöÛoÒ«W/;paøðáÒ±cGýõ˜üùçŸR¿~}yôÑG}œtáÂ…v߉b°ÆZbÍÖ­['•*U2Ññî Æ7bÄ™5kV‚/u¸Ž5Àx'L˜`ÌîÙ¸yÕEg!  4#ЯßÞÙg?ééúaû¬Zõi¯J•§ÂÖÁÍ>úÝ+WîQoùòÍIÖMË *žà 멈ˆ¨[)V¿^½zöŠgëÔ©ã5hÐÀ÷ù²Ë.óT¨x—_~¹W·n]_»*¦¼9rx|ð§¢Ì+[¶¬W°`A/[¶l^™2e¼ XÝñãÇ{E‹õ²gÏnõkÖ¬é(PÀî=õÔSÞ\`ï[¶léU®\Ù+V¬˜—;wnëÿ¾ûîóõ‡kµjÕ²6råÊååÏŸß2dˆï>úèСƒ}3fŒ=?nÜ8ûŒçn¸á{ÿÈ#X?+V´¶0gµ Ú߆ .{c}õÿì˜SE÷Æô¥ƒô¤÷&Eª€bW˧bë‡+*ôÓåoù”¢XÅŠ`±+½ƒ Ué½÷’ÿyOœp“M²ÙÝìn–}çy²¹¹3wfîïFysæœ3Ï>ëS±ë»æškìÆÄý>óÌ31ÑÇ9çœc÷ƒþU€ûN9åk_¼xqŸZ*}ƒ ´ôÑGOÁ‚Çe—]æÃ\1æþõ‚¯J•*6þO<áø*¦}tëÖÍ×±cGû¬®ÆmÜ}è«»üòË}*Tð©ð \ëfÏžmí_ýußgŸ}fÇèÓqÇsP1n<ñ<Ñw›6m|îû‚9¢¨{„ÍÏ íÀYŬÕáð=½â¾Ð‡æ×µºXþ¨û€]£¢7–æjC‹©>  ¬#0mÚ iÕªºî_=GiþüyåÈü{¹¬Y³Mžþµ˜ž!Õ«—‰Ü0Õ¨ˆ2‹Ö /¼`–>Xañzï½÷̺páB¹úê«Íòå¬{Ÿ~ú©nßšGTIÿþýE…ˆYÍ"‹¥{g ‡GŬ¼üòËfi{ã7¯Ï?ÿ<ÐT‘,[¶Ì¬´ð›ìÕ«WÀ²‰ekBÖVE²<ðÀ‚÷pãÜvÛm6–¸¿ýö[³VbnXö~ûí·ízÌ 0Xÿ`É|衇ÌÒêúUa©YžljÎ%K–ú‡õwÀ€2pà@³:‚úôÓOÛýÁùî»ïʘ1cÔç9oÀŸcT«VÍumKèð?;v¬ƒ•–Ð믿Þ8Üxã¶TóV[Œ‹sÓ¦ME…¡}öþiܸ±_¾|yàtrr²qÅüa)}øá‡EtÈW\aÖ[X½Vm°1b„µÇxK—.ßf*€u§µ_g¾¢B8P—H¦‰ô48 ÈfÏþ[ÅQÕTïKùX¦VúöýX’“KZz¨hírRZ.¥R¥Jrî¹çÚ´á—¡â>CªuÏDÔ'Ÿ|bmà‡ qßHÕLŸ>]ÔÊ(›6m21ûÜsÏÙò.®Å2rÕªU­DU¤Ò¨Q#ù׿þe‚íjÔ¨!jq 4‡$ĦZKs†€‚ËŠZ墋.²ãZµjÙ\¼"Ï*þùƒ~ï¹çQK£ Tœ† -£G–æÍ› ˆ>lµ Ë×_hzÉ%—ˆZaMŒC¼ƒ–ã¿øâ Y°`A`©âR-‹¢V]»?Ü'D/¸G*˜gûöíÂU-Ä&({ôè!xXrÇ=CBìªu[¾ùæëKð%K– Û5–ÿ!xñÕ~ýúIRR’€Ø«µÙU…}Ç“%JˆZ”­×a.ή¨Å[7´ha»aΘg"–|‰8)ΉH€Hàø$°cÇ>µ†mVëQ•To°P¡ü**"[L¿ür®L˜°@EÁ*jò¦Ú_Ni K¾6UX Qt‰ÚÞ…Y×IM€""Ñâðó„°Bq"×¾}ûšõtÔ¨QßI]¶vøÉЉ:1o)[¶l œ¯^½z u(΂¨ˆáÀë#Y¨P!»Âù™z/‡ß&ücáïé Äžã‚s°>º 䥗^jÖgøc–)sÌ¢ÿUÇÕµ‡8E€T ü ìa}ÿý÷­ˆcçSê“ÜõêFa‡ø±ê§ëÚ@<â~ÑÆ/[ðÁŒh÷Ó¬Y³ q‹mpï,®õr†è…NÄrLž'âì8'  ãŠÀœ9«ì~š6Íb.`ìÙs@I>Õ¥ëS¤M›cÿ °¼–³h÷‹ ,iÆ 3Ë¡úUZó &Ø.–Â0qê„ɺuëÝz—'ÿ9@€+°" Æ+d½õX"FñÖ»kS{÷ ËhmaÍ„{–¢Ý EŸá –±!À Î 6`ä ÜàÊà¾_p—€+,¬Ñ ÆÂr?\D׈@õ ¸Y¸¹©¿¨¹U ¾sçÎÆ/\ÖCA㇆+^¶ôJ+~ÌÀZ-®àÙ{¯‹•³»>»Þ)L³‹<Ç% \HËøÉÉ¥ÔzU4Õ»/X0Ð?´Þ þV£ÂI¿~ǬgÞúÜp|þùç‹.Y¤7“³6ÂÏ>žð/mРYW±Ü‹,›ðAEô>–ãùBØÀ ‹%zˆ<,U;wð…Ï#¬€DC† 1÷€&Mšú|Ж·ñó?jZ –÷!ž16„7|Ha%Æœà3Ú½{w‹4×/D'¬¤è®Îß¾¶¸ p_êp=Àr¸™ÀDˆŠ÷ =œÃr9,¶úpM€¯&ÊyçgH,Áú ×°BÄ? ¬¬ðûÅ3C¾X¸T@ÄÂwtäÈ‘æCëu#@?˜\4pÏè÷ÑŠ:oÁX`òØcYÝ”)SÌŠŸÔW2:Å‹I€H€H n¼ñ ^±”Ë.{ÕWµjŸMÿúk³Eá#º?‘Kz£òUPÚm© ƒùË¢¯qB}í3"·]A¤<Ú¨%Îò©%Ï"ÉÕBf‘Ý*},cõêi‘ö¸ÑçˆîöFå«§µCT¾.-Ú"ÊÞˆqDð»oDŽ{çZT¾Š;§OŸ>=î&¯‚ËîÇE#šsÅØjµõiBzûŒs*Ä}Ìä.õér}ÐÕrìS+±Ý'ÚªØó©¥ÔÚá"ÅŽ¾ÔmÁ§AVÖ— K»çULëw°ªEå»07ÔázoÑ\¤õŽ:¼hvWTPZÆW÷bÅŠù4¨Ë5 Dåã¹ ™TÌZ†4R÷;‡ç•¯bÙ¢ñÝ3QQêÓ.ë÷0xðàÀ8úãÅÆœHå +£òñk€…H€H€²„@‹Oøþïÿ&Æ4Ö5× ÓTG÷¦h{óÍ#5EÏ ßáÃGRÔ%Ò‰´ ÓôÌ]ƒ†|êW™âRµ úty]Sh-OQ±‚”Rºi¦Þ†¦<ãC?sçεTMÞzSµ¦ú $5Ý[÷cÍcj)²\ÇêOiBÛ›¶ÉÕ…¾cþ¸W¤šB¸…@t‚K­¾îcàiÔ ð9Öõ=5ÁŽ»ëÌðÝP‹lŠ”i.]æ Q¬îî²À;îÏ.\Áœñ#$ÜuáÚÇz.+…)ƒŸô' @æؾ‰Á·k€Š? $µ“’R?!ÕÔøñ³5…ÐÍ·3M­ßã¡ËâšÁ²ý‹/¾˜â–8¥¹NSœÇ ,ù»%÷° <'Ñ7 ÈSe‡XÚÆ+3 üA½KâxÅR0ï½Âç/W¸…:¤u —ÚÉ]驾Z·n©Ú΃—æÚ•¡ÁgîµF»ÃïÈÊ€WN.¦9ùéqî$@$ƒ,YâßÓ»ví`¡é . UXÑI€H€RXºt£æ¼,hyGST†9‘”TPÝÍD_Žh@J^ ¦™!sç®ÖQÇ¢«Ã\–+NuêÔI0=£A3Þ€&ׂo¢o>ÓhíX—6È“š‡@Z(ìÎø;ï¼3Þݲ¿8 Å4Ž0Ù @d¦±.㣗cÂt¿¦ÌY¨é¶éAgF€5Ç äõ&‡×!uU¸\¢ñêŸýdœ-¦gÈH€H€b VaZ´¨ mÛöj€ÏK¦_¥JéFb“œD@#Ð#NA^È㺣r”j¶ÑÔM–Ð>´øà¢›häyhuŠÏ‰º RЉæ‚¦¹à!óI€H » 8pØ,ži±˜:a:nÜlæß&wÝuFvßÇì´„-=»víª›$„÷gEB|ìù~æ™gÚF£G¶Ñ·mÛ&]ºtÍ£*Øý ‰î‘XÞ•§žzÊÚc{Pì ß¡CÑK®:ì;6À8Hhdþ,ÙG€Â4ûØsd È54)¾mÿX£†OõXn¼X1¿Åô穵´µn­9MN,ý±MöÀÖ š{Uà’åÆoìviw",åc#ì’qyûí·«¿ñ.ÑÄö¶kÒÒ¥KMp>Üvuúþûï[£>þøã–F ;!ag*´ÃOÑŠæmµ]±®½öZ››&þÍÏíÖe ÓLËnI€H€Ž@þRlGkIJò?!ÿ)­¥±RK¼vš¬^4‘¿åUmÔ¨‘L›6Mt''Û Tw[’¦M›†´îúd©¬°ß;„"¶á„°ýä“Ol‹ÎêÕ«Ûu×_½”.]Úòºb[Qä u)´`qÕ¬.ì ÿœÔ”dÔ¨Q6'Xjᇊí\%-CaáeɦYÙ£ @®&°fÍv´hÑ‚1sÈ—ÏÿOT£FÉ1§˜Š¹s6Ì23gÎ4ë(t›PÑ]䦛n$£VÏÓìa+êš5kBÒ[*T¨`uº+”4kÖLt»Õ@uÅŠc¤‚¨½å–[,e|TçÏŸ/¾óæÍ ôǃÌ%pìÉeî8ìH€H X³f›.ÛÆn-ªyóV±úõ+åbr9ÿÖ!u?xÛ­©[·n‚TPº©èÖ¨QonåÊ•úéÓ§Û1¬¤eË–µÀ'W¹gÏè…ebÒð4cÆ «sí£½cS¤”êܹ³åw…ÿêK/½$ 6ŒvëâH€Â4Ž0Ù @xXÊON.¾2ÂY=¡äÍ˪" ʧ .,wÜq‡mŸQlµyë­· ,™x_¸paØûø@† &o½õ–<ûì³)¦‰=ìUtR•+W–ñãÇÛVƒ 2 i=lÉ>þü2tèP‹à‡Oiß¾}eàÀ&f9b¢´wïÞþÃm÷9bÄÈC† ÑM.ÓÊ Úó k œ æîÔ|eíœ8 ÀqF ]»¶kS¬AL½{¿'3g®”åË7IÇŽu4µÐm9Ž"Ä<³víZ³Äå¸È¢ #°¨`Áð¾Ç;wî´€$ˆT¯ß(¤ËòåËÍ* +j¨EVÓ%K–˜u¶\¹ÔwC€V¡Bþ,YtÛ9j˜Ý»w«x1Ë {öÙggêÜi1ÍT¼ìœH€H֯ߡâ,¶¥üÍ›wËØ±3åΖÆkŠ FDÏߢH¢÷Œ©pAR°zÖ¬Y3"–O¦±qb+  tpÓX–òGš¬;UÕ´@•4ÐqïÞœ±wùر³t;ÌÏäÈ‘£Ò¿ÿÅR½úQ Üz2Ôx äN¦¹ó¹ó®I€H Ë8aZ¢„i>ÒÀ;wîר߹jq¼Èš(à_‡ÐƒªÛ¢4ÒõÙu~õêm¨5F~üq±\uÕ©òÈ#ç鶘I¶o;æ4nÜ8)U*m› d×½p\GY ²ªP˜fiŽC$@¹”ÀÖ­{l;ÒÔåþù,õÉéÞýØv“§°œîر/!…),¼XºON.¥™zkŽÎj)ž2¶¸d!ˆ…ilœØŠH€H vìØ“)–»vm(EŠËi ?SS$Ù¯P¡D:gÿ˶lÙ-wÝõžüðÃb¹ýöÓå¾ûÎgáu£µk×.hkLwžï$@‘ P˜Ffà  8Ø·ï¦:&6Ãu¹iÓ.ùý÷eºÐuAÕ¦(Ú¾=qvúí·¥ºÅ滜•Ϭ¤-Zœ4g~ H?Få§Ÿ¯$ ˆÀ‡LÄEk:~ü]ªÏ/§Ÿ^/¨™ó+M”mI‡ ™ ;XýOZµª.&ܧ[fR”=0~  Å4ƒy9 @tÖíý©Ÿ"µ7n¶tëÖ(E;ˆUø¦f·0Eð¶Iýæ›ùqß]®¿¾}¤[áy  0Í<^J$@$:ìüT @än°]é”)Ëå7nHÑ,¦¸ÁOÙU0¿ž=‡Ù¶ªcÆÜ&mÚDÞ 3»æÈqIàx!ùÿÇËò>H€H€²•,¦ðÇŒT¾þzž<~zýM`1EP¨²£,Y²A“ý¿nóûúë{-ú>;æÁ1I · inyÒ¼O È&F¦“&-ÒDôuRDµcºpÈŸÂ4ë-¦3fü%^øR¥Ji rBJ( Ì%@aš¹|Ù; äz~Šäc kêo¿-‘ÎSZK×ÁÇ4«…)\ ®¸âÒºu =úVK˜Ÿë$@ 0ÍÈ‚H€r3ÇJž<áÿ¹AŠ(l9I˜b)?Ož²4øiòäeºƒÓPÝ゙¦¯º>ªBn~®¼wÈ áÿO‘#±O  \IÂÒçó…½÷I“Jƒ•"&ÏGðÓ º”ÛÖ4l'q<9wî*¹æšáÒ¥K}yíµk$_>þ3G¼ìŠR%ÀÿâREÄ$@$@!a©LšôGDk)®ñ SÉ’¥ü¥K7š¥9J_y¥§¹Dš7Ï“ d ÓÌáÊ^I€H€þ!]zôèÑ<Ö¬Ù&Ë—oÒ¤úáýKq–òqifû˜b‹Ñ«®z]jÔ(+Ç_OKiЧÅ$5"çïÈšñ9 ÀqNÓp+ù0BŽÒæÍ#ïž‹é‘#Ge÷îý™F X×]7Â,¤#GÞdb8ÓcÇ$@Q P˜FÅÃJ  Œð Ó”>¦“'/—¦M«D .*\¸€>|D…鵜ú,*£ó ½þ®»Þ“eË6ʸqwK©R…C«ù™H p)? as( Èî ‘ù¡eÊ”e–Ž)ô¼÷3„éÁƒG,x*3–óŸ}öKù꫹¶|_³fYïÐ<&ȦÙC’ @n"€\¤Ø–Ô[¶mÛ+6BžÐhÅ/L[“xïþôÑGÓeÈ òŸÿ\&mÛÖŠ6 Ö‘ d Ó,ÍaH€H ·'L§N]n8Z¶¬ |L±sJ<-¦sç®–#wÜÑE.¿ü”¨s`% @Ö 0Í:Ö‰H€r%DÖïÛw0èÞ§O_)uëVHuG%XL]‰W.Ó„Ö@IDAT­[÷ÈM7½iÖÚ‡>×uÏw  @ašS  ã™@8‹éüù«¥I“*©Þvá­ vŽŠ‡ÅT·ßþŽõùê«×dJ0Uª7Å$@ P˜FDà   xÀr|¨éüùk¤aÃäT»wÓbÅ ª0Ý›jûÔ ô…À`ĈëŸ,Ö“@6`º¨l€Î!I€H 7ð/å ~Z¿~‡ ¡}£F± Ó"E 궤û2„íë¯çëŽNßiÀÓ•Ò¸qå õÅ‹I€2‡-¦™Ã•½’ üC xñ¤ eø ÖXM,SR,égÄÇtíÚíÒ§Ïûº»Ó©r饭¬Oþ!H<¦‰÷L8# 8®”(QXöî=ÈeŠeü*UJKñâ…R½O·”÷ô.åïôÎ;ß•2eŠÊSOuOuL6 È>¦ÙÇž#“ @® P²d’ݧ– ¬i9‹)¨Òk1}á…oeöì¿åµ×®åv£¹âÇ›ÌÉ(LsòÓãÜI€H €ÅÅùˆ._¾QjÕ*ÓÌóä9A J ÈäÓÅÚhÊ”åòâ‹ßJ¿~Hýúc½,níú÷ï/Ø’•/2Èéßûï¿?nÿ]DëˆÁOÑè°ŽH€H ÃJ”¶˜®\¹EªU+s¿°šæÏŸW6nÜó5h¸gÏù÷¿ß•3Îh(×]×>Mׯ³q¥J•T¿Ï.Ù d)‡~8ËÆ£0Í2ÔˆH€r'’%ýSä!ݰa§ù›Ö¨û¾ôð/Í›yLÓ–.êÉ'?×Äþ‡äùç/ÏVðŋ׀«K³uœ2Bà¹çžËÈåiº–Â4M¸Ø˜H€H ­ , Ì'[·î–+6ÙåÕ«§Íbz y®±ŒÿÓOÊ»ïþ&C‡^'¥K‰å¶!H¦ ð8 8Þ ”-[ܬ¥±ÔOåÊù–]ÔîÝû-²?_¾èá»wûî{_Î?¿™œw^Ó˜ÇaC ì'ý¿îìŸg@$@$p(W®˜ùˆÂbšk)n½hQä2õ…X–óŸ|r¬-áÔîá œC€Óœó¬8S ȱÊ—/®Ât§ùŠ&'—JÓ}Àb _QDöŸxbш×# Ԩ߹„‘+H ± ÐbšØÏ‡³# ã‚–ò!L±)DjZ „éáÃGì’h¹L9*=ô‘tî\ŸKøiìiûÎ;ïèfwzÎÄÿð›o¾‘³Ï>[ƒàÒÌ–‘™xïköìÙ6>æúzë­·dĈÒ»woÎ{]FÆÇµÃ‡—³Î:KÊ•+'5kÖ”‹/¾X&Mšs·‡V?í­ö×^{­|ôÑGÏÇË…éñò$y$@$ÀœÅâ4=ÂôÀÃvwÑ–ò‡ýQþúk³ pI“Hì©-^¼X~ûí·Läßÿ-_ýµþØð?ÓLìŸÎ½÷µiÓ&¿páÂR¹rå W‰%äÀj¡ßgWz¯ËÈj—>ùä“òÇØ õ\p<øàƒ&²06,¨°$ïܹӬ–e‘ÊC=$W_}uàËe´òòË/Ë{ï½'ŸŽö™Å}L›6Íž|g—/_nóîÓ§`®ø1€{€xw–mï°Øâ<®s%SK÷¬1vµjÕ\s³^_sÍ5öãVlXIiº;ø˜îÝë·˜†.å;KEÂ*µõISŸ‰Ü~•®ÀWËÓÎ_BÇ-ÉÃ/Käa6ðßÄÒ=Ä)„ n° 7a >›ÎãD[b‡?«+Ê(Î×ÇÞzÌE)n~^¡Þ[uêÔ Ÿ[,¯£@tòŠ{ƒejÁUÏ?ÿ|XÓ@ç!ð+…'–ê]àÄ3k¬Ïx!  B"–i,«G²JÃÿ>³hãJZ™‚ üJ]qß!pCÁ³qÅùùbÜD,Ç$z"ÎŽs" 8n¸­Aý óc¿-´‡û×bŠ]¤ úB-h-UˆTнÃo ¡KA`|G±Ä‹e|ˆRX𰔥aQ,íB°MŸ>ÝÒ! :Þâ]FöžÇ±×âˆev·D¬~.¢ó!Œán€eêÔÿþ¡ \@.oï&®ÃÜÑî™gž±q1o—ðâ ¢ýbpQÀò=î"¢×Cb£øŸBB¸ºy‡¾{ç€cÔ{™»öèR,‰cžðÝ…XGvÌçጠ3·„}Ýu׉óÅõpÏ@@„«·DbÚºukëcAð»yÁm‚œ`µÅÜáS aŽz?Þ±òXU7 d:ž=‡ú’“ïMó8«VmõU¬x·¯ÿÏ}=j׿öÚ÷¾š5ômÙ²;Íýeå*Ô|¨“iCª`ô©¨ã„õ/ôip”OlB«|ê êÓHmŸúaúTPú4p)E±>B÷©ÎÚz¨Èô©¨ñiÀOE’oÆ Þê c_°aëp ×ÀøêëÓìÏñ8PŸN››º ¤èL§NêÃs WÀR]|jõô©e7¨I,L5Ÿ©÷®h´¾O—ðíþ#îºXΩõÕ§?hbišá6´˜&äÏNŠH€Ž?°xb™uóæÝ’–È|g1ÍŸ?¯ZL÷Y²ýW_¤¨vj,rüŠñްôýå—_Z`Ð-·Ü’â*X;‘4\AŽÓЄúáÚá|YñŠT`‹wÁÜñŠT`] WB¯s[áÚ¦÷¬±x…+Ñ2 =8"¥Uj%S¸à®ÀR‹¬9½P˜æô'Èù“ @!Q”eË6¦Q˜ú}L±{øð âùISðÐåèÓsÈgÎ4á7¹%ãôŒ„]ŠÂ¥3Âu$qˆó¨wËÉé—× S? Óàï?‘ dò«¯_ ZÙ$­[ÇneCÀ¬­ê:gåõ×P_½v*šÒ–5“n+Ûº4hP\Ɔf¸òã?†;mçàK‰È÷Ì*ð‰…¿h$‹ozÇ…/&ü=áÛ™h%³™&ÚýFšOÚÃ##õÄó$@$@$…À¡CG4¿c¦Qš…­B’}ui´:,çßzëiaÛñäñA¨/eÜoSáÒ6Å} v˜n¦éFÇ I€H€ÒBËð˜Ë—oLËeÖ¶X±B¡í¿¬mÛšºt]<Í}ð‚Ä$mÇ%DŸÃeÁ›Ôw_e¸1ÀǹBC ¢ûQ‡ü¡ZâsjÉøS\À™F€Â4Óвc  /XL!0—.MŸ0u‚¶cÇÈ[hzÇãqâ@îQ¤žBŠ+,Ù‡+O?ý´mIŠ”Ô[‚¢ oh—.],?+ò¸"Ýòžº‚”Uh½â‘ãîHº­ ­ÆA>Öxæ>6&ë 0 Ï…gI€H€âL@³ãØv¤+VlÖ½Íÿ1Æ8,­3füe ú‹ò>KN$€< È7Ѝúo¼ÑË»äù¡÷ƒ¥|øƒ"!=Ä%vSÒÔOòä“OZ‚zäû„à>|¸@Ä"?Ü?þøã2bÄK‚­@ѹN£•«®ºÊv•ÂÆ˜[Ÿ>}DS?E»„u™D€Â4“À²[  `b‚ÀÄ’>"óÓRòä9A“¯oÕ€§bj1Û›–KÙ6› hîMyã7¤mÛ¶Ò¨Q#Û¾Éó±èÛo¿-M›6 ;ÃË/¿Ü¶…õB;AØb×'ì0åö”׬¶©Òg}úé§–’É%²¯U«–\tÑE¶;VØAþ9‰4K£F²9Aä »3ÁÂË’5(L³†3G! \OùH…|¤‹­OÍ›wÙµ•*•PBaš&xÙÜxæÌ™fEàÑ„ DÌËM7Ýd»#E›ÒQ¹‚]§P`E]³fMŠ|Ø/ušü^š5k´s¶ëŒ5 yF‘࣊->!|çÍ›ç¦Â÷L&@ašÉ€Ù= €Ÿ¶JDJåt[Éu1c9|ø¨ Ž­ºÔZLóm¡0™\b4„PDz&$¥ïÖ­›mª;J‰îTu‚+W® ÔOŸ>ÝŽa%EÒ|>¹²gÏÛ¦–UTˆIoÀ“î†d>§®}´÷½{÷Úöž;w–sÏ=×üW±µ*r½²d  Ó¬áÌQH€H ×È›÷[ƯW¯‚ZLc¦&,Ð¥ÔÚjªîË^˜Â4‡}“°—;öƒŸ={¶ùŒbW£[o½U`ÉÄûÂ… ÃÞÑàÁƒÍR a‰¥ìåu,ãcÉ Pé…^°ë±‡=Ää–-[, KÿðQ…ïi$?V70Äl¯^½lNwÞy§Ô©SGtkQ›3>'%%¹¦|ÏdL°ŸÉ€Ù= €Ÿ@¾|y5ÍOêÕ«¨ÙScÆ2jÔïêOXFEÈ!µ˜–µk·Ç|-&–-[ ^|ð 6LÞzë-yöÙgSL´víÚUtR•+W–ñãÇÛNSØXn=zô°%ûüùóËСC-‚>¥}ûö•š˜Õ=ãM”öîÝ;иݪ,Ë…&LüXΨ+R¤ˆÜpà ö XäÎíܹÓ’ Rá ‚‚¥|$à_¾|¹DÁŠêµh0@î½÷^Y²d‰ºÔÚ®Mx…ˆ]ì5Ï’ý(L³ÿp$@$+`×'ˆÑÆ“ÍpÁ‚5ÒªUõ¨÷>nÜl)Z´ µûì³Y&LüYŽ«,X0rú¯âÅ‹‡ ’‚Õ³fÍšïûÎãk¡(•Tæ·£iæ3æ$@$@JÂtÏžš'²”úŠQÿÁÕ©r;v–œuVc zÚ·ï åAݾ}Oª×± @Î$@aš3ŸgM$@9Ž€³˜bâ%kôôš¨÷°fÍ6™9ó/¹ð“uÇ(¿U­@|µoß¡¨×&JåÁƒ©o‡™(såe4ª -ç7iR9EÏ“&-’‚óI»vµ­‘ù(ÈƒŠ’HÂËö}ú¼¯{À¯k®i'>xŽiK=„-4‘“…r*¥K—J§N²dú´˜f fB$@$pL˜îµDé¤sæüÌwß-”SO­¥¹%ýG¼#A?ÒM+VÈÄmØ ³ð$Dòk¯}/]»>gÙ¾úê^0àâ QŠ›guVΊC‘@ü tíÚUš6mÿŽÃôH‹i(¬Õ·ïÇrÛmo«´¥`é¾nÝ iêƒI€¢àR~t>¬% ˆ# JȆ ;¬Ç*UJë¶‘Eu9|UÐÖ¤“'/“6mj¤µX±$¦²e)ÆróÍoš…wøðë-UŠ ò @† Ðbša„ì€H€H VåË—õë‘tÞ_°œ?kÖ_ÂnOmڤܮX>Ïê¥|XtÏ>{°ìرO¾üòŠÒÀÓâ ÄŸ…iü™²G  *T(°˜¢I‹'Éôé+­gÍúÛ|N# SøžÂ`ûvUàÂL:˜8q¡tïþ²-ÙñÅ=R«V¹L‰Ý’ €…)¿$@$@YFÀo1õ/åcÐ-ªÉêÕ[ õQ°Œ_±bIõ1 ö/E’ìÃbZ¢„iæû˜¾ÿþT¹þú*L›Ë»ïöÒà+.UÌ……H sP˜fWöJ$@$†@ùò°˜[ÊoÞü$É“'̘á_ÎDz~Ë–ÕÂ\)š¿´ î•5领ÿÉ’æ÷î}†<÷ÜeŒºûDx’âO€Â4þLÙ# @+–0«çž=¬E‘"m™Ü-çÏ»Zš4©öj?a/zø˜B 9r4l»Œž|õÕIүߧºçýùrÿýLŽŸQž¼žÒB€Â4-´Ø–H€H C\ ¨U«¶úÁrþŒ+-ÔºuÛ¥qã”[”¢±?]”_˜â3‚‘â]ÞxãgyúéqúºXn½õôxwÏþH€R!@aš V“ Ä@åÊ¥­3¯0=å”ê¶5©[Î$Lýé¢ö«i’õáõÇkvð)}ì±OåÑGÏ—nè¯nÙ @P˜¦›’ dŒ@RR~)S¦˜üý÷1‹)„é‡eâÄከûp>¦‡‘B…ò[õŽ{Ã5K×¹ï¿_$<0Fîºë ¹ýöÎéꃑ dœ…iƲ  4¨Zµ´¬Zµ%p–÷‘xËù'·ÀbŠ’7ï ö¯mIçÏ_#½z”‹/n¡âôlë›H€²‡…iöpç¨$@$k `Ç'ïR>@œrJ =·Mó„–È>¦(‡•üùójʨŒ[L׬Ù.={³´UÏ?yıYA$5(L³†3G! ø‡r”®\yÌbŠÓ­ZU“={öKÍš‘Ø;‹)’ì#—iFƒŸáÕU¯ë¶¨EÛŒæËÇù%%ì&Àÿ ³û p| Èe >W¬Ø$>Ÿ/pçÕ«—ÓÏU:‹)’ìûwJ¿Å©¦nºéMK;ÅäùÇÀÈv¦Ùþ8 È]jÔ(gÛŽbÝ•ün£²nݱ]¡\{ÇÎK'hC¿Å4I-¦é¦ýû.3g®”·ß¾Ùü[Ý|'È^¦ÙËŸ£“ @®#P³fY»ç¥K7îTøÎ™³*p.ô¢â4£Û’~òÉ :ôGyþù+¤AƒJ¡Ãð3 @6 0ÍFøšH€r#ìÜtâ‰EeùòcÂÖS¤‘úý÷¥Q‘/ždSô‘‹é‚ku7§1–<ÿ¢‹NŽ:+I€²ž…iÖ3çˆ$@$ë ÀÏtÙ²Mk×n“êÕO´ÝŸþüs}à|èA±b…Û’¦5* ùo¸a„Eà#‰> @â 0M¼g‘ ÀqOËùK—nÜ'|KëÕ«$ž¿ýÙjê·˜î³ÝŸ¶oOÛ–¤wÞùŽX½öÚ5’'Ï?N­ð€H P˜&ÂSàH€H —¨W¯¢üñǺÀ]¯]»]*U*)­[×”_,LÅÔŸ.*öà'ø”þüóõ-½VJ—.—$@‰E€Â4±žgC$@¹‚„éæÍ»dëÖ=–6jýúR±bIiß¾¶Lž¼,"¤ŒÚµkŸ”,‰¨üØ,¦ØÙiàÀñê[z¶4kV5b߬ È~ù² œ @n#aŠòÇk¥~ýJrøð)_¾¸Ô®]^žxâ3³¦Ö¯ïoãeƒ$û7î²ûûö”ƒHy½M‚Ž÷í;$·ßþ¶&ð¯.wÞÙ9¨.+>,\¸P,XCq ÈTuëÖ•&MšdêèœÂ4Ós  Pe˳ÈüE‹Ö›¥õˆ´‡-UªˆüòË;½Îo1ÅÎOIV…È|ô©ôë÷©Tí‘1cn·¨‘ÚeÖù?üP…ö™Õ=û%,#ЧOM±ö|¦Gašéˆ9 @8uëVE‹ÖÉÉ'û—×!L‘«ôÔSkª0ýSn¾¹cŠË`1ES´EÁr~$a:aÂ5êw1â†lM¢_¿~}å”…r*6mÚdÙÔécše¨9 €—–ð±”ïÒ>a›Q”ꘟ)¶ -ÎbŠè|wmh»Ý»ÈÃ$—\ÒRÎ>»qh5?“ $( Ó}0œ ï°ë,¦Û¶íQ?Ñ|’”TÀn¹]»Ú–D?Ü.Pþ¨|ðÃz® 0N8,O>yQ¸jž#HP¦ ú`8- 8Þ 4j”,{÷Ô|¦Kó¸çZµÊ™ßéÏ?ÿ™,¥‡±%laÎb:uê yûíßä©§º35T ‚|¸œuÖYR®\9©Y³¦\|ñÅË\G‡Ö )¶ºríµ×ÊG}ø|¼P˜/O’÷A$@9@“&UdÓ¦º”l1E²}XSúiqÐ]y-¦Èeê]Ê8ð ÍZDzõ:-è~ˆÀâÅ‹å·ß~‹ý‚t´üûï¿å믿ÖM§ãêô]⽯}ûöÙøk×®Mµ³ùóç òw¶mÛVªT©¢.$»õÓA»îÇ”å˃8Eê°wïÞšþìfÉ—/Ÿ<þøãrë­·ª ËJ9óÌ3åÕW_tYÐùqãÆé÷ûDõ±ö¯"@Ø»¹5Ìá(LsøäôI€H 'hÚ´ŠEχK Õ©SÝ~¦N˜ÂÇ´D‰ÂmIÁÿñÇÓå±Ç.ˆºT¢³‚ElÓ¦MKÝ´iÓt—«6eˆ_ýUV¬XaŸ÷ïßoÂæÀ[Â1ÄŽ.h‹vžòù|v8X½zµ¦äšlm1ÞæÍ›ƒêñc£Ï-[¶È÷ßoï®ц ìã¢E‹¬/¯HÂx€¸ˆPÌ'Ö‚ù}ùå—2kÖ¬s?räˆÌ˜1C~øá‡À½º~1ÞÌ™3eîܹ±]]¤wŒ…¹Â’úÓO?©kÉkо hQnºé&õi..Ï=÷œ\yå•v.ôîãb|ÌÑ•ï¾ûN^zé%ýn>&ãÇ—;î¸C·Ç½ß˜uéÒE}¢ï3–ј‚û.àcn¯½öš\xá…nÍËà²k×®Ày|§ð¬Ð?¾SóæÍ š_ a¢è—‡…H€H€²…Àþý‡|ÉÉ÷ú:w~6Åøš ßW©Ò=¾Í›wÕÕ¬ù ïý÷§ø|ðC_¯XÝ…þŸ¯{÷—‚Ú%ÂÝõɧ öcžÊ½÷ÞëSËœ¯ZµjP’¾ëÿï÷Žïžy¡B…Œ5®AÁw Ïóu÷§–ÚÀ÷Á;ŸHÇ­[·ö©å8Ru\ÏÓbªß"  ì!P°`>µ|²(ûдm[K—>ó¨+8m’ìïÜé÷1ÅRþW_ÍSKÐ ÝúóøÈYªâNî¹ç³uíÚÕ–zUœªux‡\vÙe2lØ0©\¹²têÔ)ÈÇÛŸ¢½Š³Îõïßß®𫯾²%zXIq^³YÕTØÊŸóõ>Xh—-[¦i¹¶›¤ L³Ì¹6ÉÉÉV·dɳ¨ªh³ª“N:IxàÁ;J·nÝÔ÷÷.;ŽöVa,u1ÂúÃÜ–.]*>ú¨]¦¢U7eøÃ^°ä^pÁòàƒšUc«VŸåõúýØ) 6”D.PÿQŒ ö*¶E…¢î@vªL˜0ÁÚÀê?ÓHåºë®Sw”$›ÆFÛýë_6/ÜCÓ¦MEÅrŠË7nlç½.ᘞ~úég ë®þp ôKè5×\có…Õ߸ôìÙÓ,Þhf·Ýv›Y†Á÷Ûo¿5ëz “: 0M ‡Á© @n$Pºtš¡÷^¸piÑ¢ZX?ÓÝ»÷[º(? üœ{nSiÒ¤rh9ò3Ä|ÕÂhâ‚F­^¶”¬–½ÀrþÕW_mKÏXâÅR<–p¯ºê* $+¤Á_É&îô£–2 4¶’jñµ|ê®XÛ;–¥ëÕ«‘|!1\£VG‹ð»t¥_¿~&ÈjÕª%juµ9 ŸÕšPôÁõ©•O?ýT¨”0¡åú¹è¢‹Ëá(jU”K/½Ôæ ®Öc[^‡û»ï¾kKæÉèb:?Rô{à 7èw­…æÏ­(=zô01Œó±,­ÿþûï€.ˆ@øŽBÔÃ`Ïž=š§7|0D,\Ô2*Ó@ƒ¸;`xVjÙVW–òïÿÛ\àfR£F û±ƒzTpJÄ’/'Å9‘ ä¥KÕX7«ßÛQÉ›÷Ø?Ð ?S$Ë÷ø™ÂRZ³f9J»Õ_r› ’«¼Mrô1Ä‘+–A·.YÛ)]Úø\^rÉ%æ¯aAÚ½{w'¤‚¸E­}ûöðƒÀ£fÍš™xqcT­ZÕ¦x¯^½zà„2Šóuı·ó„¿jFŠ›ŸW¨„7ü*áÿY§NÀ•*U²ètœ€è†e¬Aƒi ®ÂÜ]å3-Yýõ—] ŸÏ·ÞzËucVmø†"?’U‚þ¨hãJZ™‚ „µ+î;ä|‡½÷‡ï Š×Ö]—ïÁÿH„q$@$@¹Š@¹rÅõIŸ.7®Kqß;ÖÕ¼¤Ûmw(W aê~JҥɃrÎ9MÔ‚vL̹v9õâ3–ËâùçŸoK¼XƇ(-Z´¨-eci‘ïXÚ…`›>}º ]Qùòå•g0gï2rè¸^‹#–ºQÜò<޽õ¿üòKPêÓZÔ7S`‘U§ÅÀ¥t˜«Ç . Ô©ß§faèe÷!k –ÝaÁŒ¶ôèàŸƒX™‡^‡ÏÇ(/¾ø¢¹Às~þùçEýwu³‡ÎÄ.Û‚¡ ‘>Ë•´23^¹‚ñQªU«fï¹?ë ÿP˜f!lE$@$’@™2EÍR:s¦ßòäm¨ý’% ë±IuÅŠùÓD-^¼AŒÈ-·œæ½$Wc9V7 62ŸBÜ<,†Èq‰Hp< f2+*–“+|(᫈TEÑ–t*Äâ!CÖÕ&MšcÙKæƘÃyçguX†;üSQÞÿ}éÛ·¯»?ÈgúÅ_^¸ Ò2wD°£_Od¸âŠ+ì2ˆï±cÇÊ'Ÿ|b©šà‹‹ÌÔcUoXV‘Z í`-Îì‚erø³‚·[ –ÏÁ¾¯pÃ@>RMáG,ÙX⇸†;r¢Â׉[Ì5SM-¡…4o©?ªÛ{«ï¾û»F‘Õ¥þjùËkǪ‹û—¤'N¼_Å“9Õ{]"#Š»y—Ÿã9/Xᓈ<›°2z ¢Ö1.Ä’óQuõð=Ä Q°äa9XÓ.¹j{‡µ½sÎ9ǖʽAR=JBÐ|áBàõc ê(0wXr!°Âõ _Sò„Öá:¼œ*|^! 1¿Ì.ðKEàÞ!!ÖC "æaÕ,S¦ŒÍщK´‹…)¬ÃHò ¡þ¬xÞ¸WŸ9áÚ.=Ÿ8‡pOÈì’’ZfÈþI€H€HÀC þ|jÉË«V ê¸G-~E<µ"§VO£ÊÇXJ(¤‚€]»v›.Ÿ&kòø5tA.ù€¥o$¡‡À¼å–[RÜ5ÄK‡RœÇ #¼b)ðeÅ+RxŒwÁÜÉ/7¬«áJèu.`+\ÛxŸƒ… VÀ)­R+‘˜âÇ^á |U5Ïj¸ªuŽ>¦9êqq²$@$püÀ2>ï`=š>}eЬ\¹”ZÎÊÚr>*Ñv×®¥}ä4Í>xApS¨å0-<àé w×ÂJIâ<ê½?wßÓG€LýÜ(LÓ÷ýáU$@$@q"P´h! Ä9¤ËÊåU˜®Ûk§NõÂtîÜU*ˆ|êÓ×B#šóçZ‹é Aƒ,<üL3Rà‡.Ç(¶·D>Îp˺ˆ|‡eV}ôÑGY=¬ É=²dVÉN¦™uOéé—Â4=Ôx @Ü-ZP- û5½O ™:5’0­«{|¯Öš»tñåj5ó7-^÷ŠÐXjäõæLEPÐÊ•+‰Ý”UȵŠmSÐZfΜi–Yìžä R!]xá…î£õv»ví²`,즄‚ñ7lØ`"vÚ´iúÃf^`lw1Ú"¿¨K’ïÎã÷ƒÄøÑÒi!øŒ%¾(LãË“½‘ ¤‘‚™PYàÀaMFž2Ÿi‘"m{Ò/¾˜«y4«X{XYa1Å.P,ÙCÂ.ˆî‡8ôìÉŽ´N®@ü!ƒ" ös‡ÀÄ.EHB_¹re6l˜ÕÁw¶š&‡ïÔ©“ !#€Û^yY‘_‚©™Ë>šhïüe‘Z Ëï5²}ä‘f œ€Æ¦û´ÓN³±ºuëfûÌ£_ˆZ)!A>"ü‘¬ß]‡zW õØ~"˜%ã(L3Î= d€@©R…íꤤšh¼¤æ|\¶·6mjªUm«æËôG>Ãr a Ê’uÓ;!]îÂyå•Wš8Më,fÏž-ØQ »%uìØQø¥ÿþ&8‘^ –U$ÎÇ8Þ‚ÔI={ö4щÌ_}õ•Yd½m¾ 9[a™…PþöÛo­ ò€Þxã¶e+®E;$Çúé§ír¤ÎÂ9$òG:¬HYÛõÒK/µ|¤Ö_|±eJ %ÕûÒvLaš6^lM$@$g.=ö½oݺ† ÓeaGÀ?öð-­_¿‚ÕCÂÚš[£òÃBÊÄ“hHfíA‘ù2!±“ë/^<Í£ßpà fí„å²G–\Àê‰@#X"á׉@+iy „$æ„\±°–véÒÅIJ· Ò.!ñ>ržB ¢`i‚»BA\#¡=üVO=õTÁnT(Þ°®b§)Xdï¿ÿ~;ú»iÁ2 k0v±B*'X‰ÁB¢š%m(LÓÆ‹­I€H€âL tiòsä0…UtÚ´•º­¤*Ð2yò2ý‡?Ÿ&÷'ÖçR~ LþøÂ /˜ƒØƒÅKáØm*ÖDî°Z†oš+$‡* ²`»UŒ‰  T'Ožt¹}®`™ß[¼ý#Ï' ,¾Î§W¸à!\¤H›¬¸ØÒÓ·£“ûúÈ`0zôh¾°°B¬c÷+–´ 0M/¶& ˆ3|ùòØ’¼¦X¢G¾·lÞ¼Ûk³fUÕzæßŽÑ-åÓÇÔK*óޱÅç½÷ÞkKÜðùìÕ«—E9N½{Õ#(´Dʃ:a³ÎÂosƌ抭F½»U¡ÀÀ•Ð1"õ -¶gÅNIp#À [¦Â…‰ò‘ßù¢ïXÒDýòË/æ€å}w° ·ñ›+ßà0 Ï…gI€H€²–ó±”\¦'žXTÅçÒ Ñ'LX`ÖÒK.i¥)¥–ë6“ù-É>¢òéc„*Ó>Àjùßÿþע礄%|äÞ„HžöØ*Ó[µ`ÁË9 Á b¬eĈÒ»wo[ oР-ÕcOxoA0ÄéÀ5`n–Œ7Î|=½m"ŸwÞyfíׯŸ¹ `þÜsÏ5×\sÁØ¡°€â>qá ¢ú1> à# ÿTd«H;8…ë‹çü(LùM  ÈvåËרfš,çÃ*ê-¦íÛב3Îh`‘ûH¬AŠTS¦^R™ K#|LaÕ„e¾¡/¿ür jÞÍç±ÌŽà ,±‡n—jÍÄr¸s x衇LlâzX//)úv×ÁÇõƒ>°:ô}ÓM7™Ÿ©Û²í\nNî½iÓ¦6çÿýï¶k„*„.üUQ D!ÄÔq‰~0^hÁ¾÷èãŠ+®åË—[pîŒXÒG _ú.ãU$@$@$?*”PaºÃ:lÛ¶–½|iéy .Bê§Ÿþ”'ž¸P£³‹«…®¢µÅR>¶+¥0ßsHkOHÿ„Hv:ønz –ËÙ¾Rs—² RX]q~žî3¡ðBéСƒ ½©S§ZJ'ŒãŠ»îСC‚ü¦ŒBßðEÀ‘óS}þùçÝ%öëMù„`¨«®ºÊæ_TïøŒ~1Xj½uÞN‘¦ ó‰$€½my ÓØ8± @&(_¾„ú®° Lá7:oÞµbUÖtBK4jú€Ú4°úÓN«'#Gþ¢KÇ4*?IST1rT}¹˜‰(jרš4Üö¤øaIÔEíP+áë‰\§‘ "í!ˆ‹+f‘÷ðGø¡œuVcuAxTÓ$ù-ºÇíƒã‘@œ ð·\œ²;  ô¨\¹t@˜¢XM'MZ¨û™·HÑaÕªeÌÏô·ß–ê>èy³5eÔöí{5|¬Œ3ÍæüÝw÷›˜v“FÊ!D§³@N&€Í²¢P˜feŽA$@$*ªUKk²ô-vx;v¦4n\9pÎ` ?_¾¼òã‹5]P!Kåê²ò}ìØYòØcŸZªª¡C¯Õ݃š dëØ¹ˆ…r:ºuëfÉ-P˜f fB$@$ªUO”ŋךÁïT]6ÕÚ88€0…?çŒHÞ^"Ë-¦[·î‘ûîû@¾ùf¾\}õ©º¯ûù&ü碔Â4” ?“@d¦‘Ù°†H€H Ô¨QN¾ürn`Ä;öéñ }¿-pÎ`+ÒƒÛG,“geðÓĉ ¥OŸ÷Õ'6¿î‡œz걌n~|'H?¥¯" ˆ3š5ËʦM»Ëò ¬Ñ}Ò éÖËRŒä¢ñ6LÖ-K®IÑ0Ž'°»Ôã&×\3LäÒ¤(JãÈ—]‘P˜ò{@$@$jÔ(kóX¾|£½C˜Ö©SAfÎüK·=4Ç"Eüi¢Z¶¬fËø™•œ©]ôšÌ}²¼òJO2äJMîïŸCÐÄøH C(L3„“ Ä‹|Ja¿lÙ&ëþ¦Ø KöS¦,ƉÂfͪÈÞ½ÍÒÔ Ž0öYgýWöì9(_}u¯tïÞ<޽³+ / S/ “ dl3zÒI'Êòå›äÐ!ÿ.P'[ê¥_~ù3h^EŠøóƒV¯^Î"âW¯ö'æj‡H–Ùe¯ üùåÝ‚ü©,$@™G€ÁO™Ç–=“ ¤‘ëÿùçzËgzôèQA¤~‡uä—_–õä,¦ð/­X±¤lÞ¼;¨>ž}öK]²Ÿ wß}¦<ðÀÙñè’} ¤B€ÓT±šH€H ëÀ§ôÏ?7ò™bëÑöíëÈüùk‰ì]q>¦X^G4ÿÎû,}”«ÏÈûÑ£>‹ºå•Iòâ‹WR”f&¯%4 0M#06' È<°˜®X±É^%K–âÅ í#—)vyr%_¾<¶…éž=û¥^½ räÈQ™7o«N÷;"ïo¹å-Mì?KÞ|ó]Æo•î¾x! @Ú P˜¦¯  È$°˜"ØiîÜ5¶Œa N±ûÓÏ?‡ú™´€¤š5ËÙ–Ÿ¡õi¢_”Ž”~X$£FÝ"]ºpǦ´2d{È( ÓŒäõ$@$@q#‹)‚ V¬Ø(•*• ôÛ±cÂô€`YÕŸ~ZhŸÖX\o¹e¤Ž±DF¾Õ‚ÒÚÛ“ dœ…iƲ  8(X0ŸT¯^FÖ¯ß)eÊ ô ?SDë¯]»=p‚t÷n¿0…_èÔ©Ë5Ù¾7¨@£î¾{´üøãŸš§ôAnT ì!@aš=Ü9* @õêUÒ@§=râ‰Ç„i«VÕ¥P¡üAVSÓ={ L XO¥Ó¦­ˆÐkäÓ}û~,ãÇÏ–7Þ¸¢42&Ö@– 0ÍÌ„H€H VõëW4ßÑÒ¥ SXR!N½i£ L÷îõ[LÑ7RK¥ÕÏôÿþo¢¼ýöoòê«×ÜXH€²—…iöòçè$@$@!6L¶({—«ÔU#Ÿ©WxÂRê·˜ú·mÞü¤ zw]¤÷?œ&Ï<ó… x‰œ}vãHÍxžH P˜f!lE$@$:ªUËX£]»ö5†0ݸq§%àGEá°˜´w|† ;wµæ4 ¾u¡å÷ß—É}÷} ½{w•k®iZÍÏ$@ÙD€Â4›ÀsX  ðJ”ðo7ºnݱ@'´lÒ¤² ·éO?ùÓF. ‹éÁ€iÍše­Co¾Óp#¬\¹YnºéM9ë¬ÆòÐCç†kÂs$@ÙD€Â4›ÀsX  ðöí;hýµ%¨Á š ÉöŸ© ~‚å%Ož<Ò¨Q²Öç;õv‚¥ÿk¯nþ¨C†\é­â1 @ 0M€‡À) #°ÿ!û°E²qT@IDATlÙÆc'ÿ9Ârþï¿/5TðÓA)P ¯äË—×–õÛµ«-¿þzl‡¨Ðîºë=ÛÚtäÈ-Ê?´žŸI€²—…iöòçè$@$@!öíó Ó+6ë.PG‚j‘Ͼ§³g¯RßRðàúíÛ×–Å‹×ÉæÍ»ƒ®Ã‡W^™$ß~»@†½NÊ—/ž¢ž'H€²Ÿ…iö?΀H€HÀCÀ-å>|D.\ã©iÅŠ%m¹bÔµuþ¦­[×0ëi¨Ÿ)ò›"ÿÑGÏç®NADù‹…ib=ΆH€r=üÓbÅ Éœ9«Rð€Ui£üVR¿?ª©xoÚ´Š.ç/ \·cÇ>¹ãŽw¤K—Ò«W§Ày $ ÓÄ{&œ äj>Ÿÿö7®V˜ÂÏtÆŒ•jÍcSŸ^”tÌzŠ)¯Åi¡ŽñÉ /ü+WsåÍ“@N /'L’s$ È=4øÞJãÆÉòËSÜ8,¦Ø~tÕªmVŸÔ¤¤üe}Ó—^šh9OÁÿå—såƒn“R¥ §è+^'yäY²ä˜•6^ý²Ht•+W–ÁƒÇmš´˜Æ %;" ˆ¤}BiÚ´²Š½ mïí·B…R«V¹@¢}$Ù‡Åtï^¿ ¶.E”þ×_Ï—GùXn¸¡ƒEyûˆ÷ñwß}§ÖÝ9ñî–ý‘@BX°`|óÍ7q#-¦qÅÉÎH€H€2JÀYL›4©*GÕÝœVI›65ƒºEZ(¤BA”ó1Åg#ÿ+¯|''žXTÅéy8éåüóÏ—çŸ>ÓÇá$(ž|òI3fL\§C‹i\q²3  Œð¯å—+W\Ó:•™3ÿJÑ%üL—.õç9…0-TèØR>—-[L—ú·Êþs󕦠Ç$¸(L÷Ùpf$@$+ äÉã¦Gú¤yóªa…é©§ÖRkª?JÊ-å»ÄüØÝiÊ”åÆ®AƒJ¹’!ošr* Óœúä8o 8N Àú‰²ÿA9ùä“dÖ¬¿SÜ)™êÕ«`çüä·˜ú}LþVÙ-L§N]‘âZž H\¦‰ûl83 È•°Õ( ,¡-ZT“uë¶ëkG mÛÖ¶sn)ÓeË6Éðá?ÊC#uêTPaê·œ¦¸˜'H€’…iB>NŠH€r//¡ìÙsÐ’åçÍ›G—óWÚ9ïŸÓN«k7mÚiQù¦Œ“ÚµËKÏžmm‡'·¤ï½ŽÇ"7ß|³¦Ðú SQ<ðÀröÙgËĉSŒ3lØ0«{ýõ×SÔ…žX¹r¥µ]»v­UmÛ¶M·ªõo¬0bÄéÝ»·_¸p¡µÃ˜îuÞyçɃ>¨ÛÔ¦L;:NF>¿óÎ;rçwZ‡–­[·ÆÜÝÌ™3å_ÿú—fš¨%åÊ•“Î;ËsÏ=g±v‰I¬×'R; ÓDzœ €)â¦{÷°ûzõ*Êôé+SŸ)Êܹ«¥`Á|²}û^M5϶…Ÿ*¶'ED¿ó=MÑA.>ñã?Êòå™kMž¯"4´ ï%ê-ZZ•âóŽ;¬íÞ½{­âíÃ?´ãhV†}v¼eËkWºtiiذ¡½*Uª$o¿ý¶fuh#¸™U |ûí7ë~ܸqš âD9tÈïZm̯¾úJ:vì¨ßïéšÖìyê©§¤B… QQKè?“hc'j…i¢>΋H€r)Â…ýKù°˜¢4o~RØ(,ùc÷§?þXg>¦[¶ìÖ|¥uä´ÓêÙuÈgzèБ°»GYƒlü³zõjÙ½{·ìÚµË ʺuët»ÕŸUdo·Ï[«VoË kÜš5k¬Þ]«$®õª­¹ñaæ,Þv7nÔ ÆúþûïíÝÕïܹS !~ýõWÍû§«²wX÷ïß8‡~¼bªP¡B2~üxµ~ï ´™7ožÍ©`AÿsFîÉ;ô‹ù9r$pþþûoõöÉúõëßµ×^+Ï<óLP›»îºËÒv!u×СCåÿûŸñôæÛDÿsçÎÕïÕÌc 3œÿý÷߃æíž™ \¼ÏçÁùÄšÝ~ûí‚kaÅÃsݺuML¹>î¸ãkï>W¬XQî¾ûn÷QÎ=÷\›'Ä©+p!hÔ¨‘¯ù@àüã?.—\r‰k"ýõ—Í"Ö[ZµjeBÅW_}Uúõë'`­€ D2 Äu“&MŒMëÖ­;M™2Åê VѾS§Nö\0GgÕmÑ¢E€/CðžvÚivû1 f(œ/¾ø¢=çîÝ»Û}#ß-Ä)˜@Œ4HŠ-꺰÷Ûn»ÍX=Ú>G{Fјà{€g{òÉ'Ûw÷öØcYŸ³gÏ6ÆàŽçÚ¾}{©Q£F¶ï`FaôUà  ì&€exXCwìð/Ñ" [ΟÌJèæX´hAÙ¼y·L˜°@à‹ ëª·@Ô†sð¶É®ã+V–Ôá „Ö/¿üb"4oÞ¼æzÅWXv'7mÚ¤Û´þ`"ã£>²]w°$k'„-žCôôïß_-ɘ'¬žÑ æ«,µz½zõ2‹$®A?/¿ü²-™¿ñÆ‚×çŸnÝAÈÂBé ü=Ï8ã ÷QŸcó÷ôú³"!ûå—_ÖR¸0Âz¾|ùÌ’q®L˜0Á’¾cœÿþ÷¿&¤!ÚáwŠrÝuשOr’ÝØœrÊ)æãé¸A )Äúk¯½n˜°çN?ýtÁsA‹–ô!ñ<ÐçO?ýd–P,û;ë3ÄqhAF a¯»E¤g ¾ø~-]ºÔ¬ÒÇ—§Ÿ~Ú,ãnLXs7oÞlßEXQÝwÍÕgõ;…iVçx$@$@©(UªˆlÛæ_þ­Q£¬”.]$¬À,Y²° 7,ñn Ûg" SX=áûËZÍš5Í‚ K*üaÃ2+„„ž;Ÿ~ú© ³=z˜Ø„€¹ÿþûmùÖCœûøãÍú kÄ!–‰£,!ÃòZ¸paÝ)ëºóçÏ·K`ÝDp¶Š½þúëm\j”‹/¾ØÚÛýóÄOÈE]ä>Ú;D(–¥á¶+Ý’%KVßÌ*°PÞsÏ=özôÑGmYâ³lÙ²ÆVMˆTø¬BtÃr Ñ?Q<ø{>û쳂h‹@¤ôXiaG¤j×®mãâ¹Ã½"Ï'\Á ü@q%Ú3rmBß!2á« k9 ž|p½–sÕ’%Kš¥v|‡²³P˜f'}ŽM$@$–„¨¦h«éôé)s’&%òK±bIj;ªËÆ~ÿ=×iË–ÕÕ´+¢puí²ãËÞ®äÏŸßD‹û qé|¯ºê*³fA(!èKÁ%J”P‡–拈ånˆ+/ø[â:ø>z-q°F+N¸  úAq¾’¡ÖVÔ»:k˜Ê#ˆÚ±cÇš¸Y³fšÊ«NÔ«\@SÔF*¿øâ »0€øCû9s昋.ƒîx–óa9„(dž^xA0OUq…+.+\;‡ç AŠ ,Ìïø¡Ë$ú†¥¢8´ ÖU´q%Ú3rm¼ïð-ƒæÍ›{O›[,¤®à‡+°$‡úõºº¬z§0Í*Ò‡H€H f°„nÛæÂÆE¦3f¬Lq=܇Բ¤fS-Xò÷–Æ+KþüyÕjö·÷tBcî±ø&Âò†èv,ã÷ìÙÓ.›6mš4nÜX]æ R)Á·qÀ€¶ ßU¹â]vç¼ï.Î!È ToÄu\5Hå,‚§ï¿ÿ¾ ëpÖR°ðf¹eîTºNµ‚ø¾ûî³vpU€0DUAex͘1Â¥àg 7XY±<Žó¬ÎÚŒ¾¼s„å7µ‚göÈ@OX²a‘Å’:¢ña1}饗Rt‹&Ä9,Ò®xŸCè3rm¼ï˜/~DÀoÖuX†½Ïí©$Öl‰ çB$@$m`1ݺõX„0"ì×®Ýn/ï¤6oÞ©©¢ò[ª(œG”· Týú•TLýå=£Ž!ì°<Ž¥z,¹:_IDxcI"KþX&†ÐA´;,¨o¾ù¦E#âݼDºqDC Bä2Äš „†Hq,-C´Aœ!¨ bÓ 7|FÎÐp>Šð•…%â0œ0ÅÜq?°lbH›©À ±ç‰‘Úâ<ü¡oÌýcø`ª¯zõû}šnÊŠû»ŠŸFÅǽ_סFqÃyÖ§Á:îTàç¦NêSá8‡õ1ô©…Ò§âʧù)ízÍeÔÔÂçS‹¨O#òSô¯þ­>µÖ*»C>µèùÔ÷1Åõñ:ùª%Ô§î©v©Kä>µ¦Ú.Rw?š¯ÔîÍÛuj…¶¹xÏãXýP}z:Åg´S?ÎÀy«Ï¨O³Îyp/jÁõ©{FØûöŒ\?‘˜€+æ¬.aûv×§ç]ƒÝ|úƒ&=—F¼&_–¨_B$@$@i ‹é¦MÇ,¦¸ËùÓ¦­ ôòÉ'3Ôg°”.‘ŠZ›ªêðzµ˜¦ÌuŠRØýiáµjŪ¸>§`IVIXè¼¹?ÝüÃC,_.pÉ›àÞ]ú !^á \`MÍÌ‚ùz|¢×…Œ”h÷ƒ:dGW°Üï,¾áêÝ9´ÃËX;‘W6ReÔ¹NDjƒóÑžQ$&àËœ£›•u\ÊÏJÚ‹H€H &HŒ1¹sç±]…ZjNÒ ÖhPÈ! NÙ©;&-Õ%ÉrðÔ¼yëø¡mŠ-¤>|Á;(…¶KÔÏðA„øDžÓô,acùËÚ¡©‹ œÂDÏc)˜%{ D{FÙ;³øN‹iü™²G  ¨TÉ/ Ö®Ý&Å‹ûÓ*!õÓáÃØbôo™«Õg± ZË©ßßjõI¬f#Ξ½Ê,«¡Ã7j”lׄžÏ Ÿ‘û3£Qýn/÷о\NÒÐóøŒ€+–ì'íeÿìâ;ZLãË“½‘ Ä@rr)ëeÍšmÞ’“KêÒ}I™:u…F~ÏÐÈð¦Бß,¦ˆâG‰dÅ~¤ºÀÈ)ŠÀ%–Ä%@aš¸Ï†3# \K páºì\X„ob«éO?-6‘yñÅ-4¹~>ËcŠˆ}XOÃä3]´hZ\†«æ¹#€äòÞ$ðñšrxF²Çk ö“1¦ãÇ«I€H€2‰¬¦XÊ÷@Íšõ·‰Ö6mjj€I>Ñh{M%åÿçléÒæ›ê½ÇMšT±TR§,‰E@£à#NyO'Nœ˜b§)4×'sE³ XîÏЇuØ @ÿC«S|ÆL,‰A€Â41žgA$@$B råR*:¶mÕªš?´Ü¤yòœ ù)óÚR~Þ¼þΰ-éœ9)ƒœ+ì¼yá-ªAƒðC¦À–›ÈŠ|‘üX‘sù6±YrœŽ=Úæ…”ºtébùN‘ó³ZµjA 9?Úc‡¬-ZX4|h×ÐD‚}Œƒ¤ù±&î탟ãC€Â4>Ù @œ T­z¢îm¾%¨×ZµÊ[¤råüi°”ï·˜ú—òK–,”„ß]Œ”9 "*¥humøžùÌþž{î‘ääd¹ñÆm‹P—lþÿÙ; 8©ªöéîî° l±EE1^»»ûµó/Ø‚‰…¢" " ÒÝݹ ëý?ßgÞ3{gv¶`vwžçó™½qÎ=çÜßùÍ“ñ³cÊ=z´Ö’'Õ%W×­[§ ï'Nœè$7§ ¼'$ö‡~Ð*X$¬§‚•ª¨"E?*Vå$’¯UËwR¥‰µINZ'ùasºÄÚ #¦¬ k†€!°}$"¦¿ÿ>KM³›7§ëàeÊ”bº5Zù©U«ÚRBsv‰;th¤¹L6ÚÉC@’ÍkVrƒR‰J’Èkõ¨E‹¹jÅ£D“Ÿ~úé®sçΪý„(J­ÒDÉSJmúœ§”í¤ª§(¿I®ÏÞ½{ëh\)ç®F•h.*MQŠ5ArñC¥ÖÁì¨v…†×¤p0bZ88Û,†€!`ùD€R£+V¬wë×g’‚~˜,97+E féÒ?mú˜¶lY'¡Æ”©Ûµ«¯Pù\†ußN¤º’jG <úöÛoÝ/¿üâ.ºè"IV%Ç‘ÉÝé…Ò¡ZÔ Ä”,å|½zõ´¢” — ­_¿~ž© µ—\r‰9r¤ú¨R‚âû÷ß3I! `Ä´@¶) CÀ0ò@óæµõ¢™3—E/9rºä)m&æÙ¥¢AÛ(>¦%4·)¾¦d–$ûsçÆºÐÖ¶m}1ovóçÇTÑfRp@Ÿ}öY׸qc×½{wG*()*¾Â›rœtöìÙÑv)§©ûhIk×®­O¾‘ªV^üJ!¨ÉpÀÓ˜1c´Í÷Ïi+åP)¥ºté"éÈŽSÿUêØï¶Ûn9]fmIDÀˆiÁ´¡ CÀ0’‡@“&5DZR| #Ä”JP“&-’€™: &{4¦[¶DR@áGÚ°a ˆ3fN–…@L‘I“fi³‡@… Üå—_î(€Ï(eRûõëçÐd²Å_4‘<ñĪ©„X>ôÐCZ²ó:f|Lö}ô‘*=ùä“zù©§žªdßÒÛo¿]Mÿ̇ïiv~¬~^ÈìÅ_¬k"Ï)¯~ûí7]3ÇåË—÷]m[À1-`€mxCÀ0 mC€Hû¦Mkº3–êT{¢òÓ¡‡¶‘ÚßµÕd¦”ÔAhȈÒçšví¡˜›eÒJ•ʺFj(¹ÍÒh' Ž;º—^zI}9!žãÇw H8wëÖ­5ªžk¼?*?>|ðA-“Ú«W/%Œø„¾üòËÁFö–[nq<ð€«U«–Ã"{å•WFç`Œx!X ‚LùWæzñÅóš>V’´ð1· CÀ0òˆ@‹µ£ÄôÏ?g‹·²ËêBš+1ÝgŸ¦:ZSˆ)uï½›$$¦t4?Ó<_ÀÝ*V¬è.¸à}% ,òçÖ®]«D’êýF1å“€æÌ™ªE‹ÖhÞÿý®ÿþnÚ´iª­S§Nôn ±¼â²KÙV“¢GÀˆiÑ?[!`†@6ê—_¦j+‰õ=ÝwßfîÓOÇEÉ šTOL÷Ú«‰{ÿýß9M}~S?|ûö ÜСÿøCÛ¦eË–ÍvH% ’BëÙ²eËl¯«Y³¦ÉÕ̶=¾ÁHi<"Ewl¦ü¢ÃÞf6 CÀÈÖ­ëF5¦Tmjß¾¡^ѱc3·qcšDhG™(5 Yù÷߈Ɣ$üø£Æ ãÍœ¹TûÅ·Ù±!`=FL‹þØ CÀ0²A"¹qcº›={…A-w#mÚÔMZù(i kLéS¡BÙl+@‘?>q6ÓÛiCÀ(dŒ˜2à6!`†@ÞðDô矧hà„A;Š/éÔ©Kô³½œUM(m»ïÞ0aùQòœ"> Jì!`¤ FLSæQØB CÀ0â¨R¥œä¦¬ªN¿xbI?üL§N]¬—@L#>¦‘vß½QÂò£+–ÕñŒ˜Fp²¿†@ª!`ÁO©öDl=†€!`1ìºk=­ØÔ¸q W¶læ×Äô‰'¾Ö¾hQ]4±:ÄôÍ7M¹%A²…$ï|ðA²‡µñ ”E`„ I_[æxÒ‡¶ CÀ0 íGbúÑGc$we½˜Á0å{‰ä2õGN’±7ÖR¥S¦,–€©™ ²1õšÖ˜†í8ÈÈ(ãFŒÈpÇ?!Õ¥FmÇHv©!P¼ ]W2ňi2Ñ´± CÀ0’ŽÀ®»Ö—|•›\ƒÕcÆ®V­‚æ4¥Ä(¦|r˜â_Šà›Z®\i7a‚„ÄôË/ÿŠk[Èðê«Ãe}J@V%wÿý=]×®Éý¢ÞÖµÙu†@qDÀˆiq|j¶fCÀ0v"(%š‘‘á*V,宩ò1Nª/üL¶mÚÔ“j>YË6kVÓ-_¾Njµ§Kbö2YÆÌë‰_în¾ùC7oÞJwÅ]¥ìf×Wƒ¼Žcý C  ~ÊÄÂö CÀ0Ro‚¬¥$½™m©PSõ3õ·@["bÚ¤I$ñúܹ+}×|m!´·Þú±;õÔ祲Pm1ßß$•†º)ÍŠÖÙHŒ€iLãbg CÀ0R2e"_UëÖmβ"JŒ"ä8…›zS>çЦ~ûmÖàŒ&MjÐìæÎ]‘ÅoUrø3zôLwõÕƒÜÚµ›Ü³ÏžãzôØ'‡ÞÖdùEÀ4¦ùEÌú†€!`*kÖlÔù–.]›eÞ–-#yM'MZø?ÓÌ.íÛ×w+V¬wË–­Ë<){˜ïkÖ¬$Ä4ïS’òßu×׳ç³JfüñF#¥1¨Ú!LcšmCÀ0 B€À'_Îx)S¦¤ž¢ü(åHÃS_¾t„…îðÃw¹s~¢ñb:ýï`Á‚Õîâ‹ßÐHþ§ž:SLøu³s†€!LcšmCÀ0 ‚C³9BSZÚÖ˜‰<ÍÔ˜fú¡V¯^A“éOžœ5 sþ¼y+bÆJt0lØ$×­Ûc(5tèµFJdç $"`Ä4‰`ÚP†€!`ÉGÀ›òÉUš]þQ*9‘º©dÉØ¯5"ó§M‹”- ¯ŒdýÝœä‘G¾rçžûŠ;òÈöî‹/®‘ü§µsênm†€!Ì”ŸmCÀ0 ‚C`Æ4ßPLöTuŠ|@‘R¥b‰i«Vu–&­[·ª[´hMü0zŒVöª«ÞqC‡þíyä4wöÙû'ìg' C ùÄþ'|Ñ0 CÀØ.ÒÓ3„p–ü_^Ò1cEÒDÐÉq¯1%Ñ~¢ò£õëWÕÀ(ó‡eÕªîôÓ_P“Ý AýŒ”†Á±}C 0bZ Û†€!`ÛŽÀÖ­Ž '¢ì'N\3'¦”Eâ5¦ÓÕ«7JBýõ1ס1åÚ%K2#ýgÏ^îŽ?þ)Ѥ®vŸ}vµ;à€–1ר!`<FL c›Á0 C`;@cZº4Ä´¡ÓX)‘øˆ'¦%KF¢ôýt˜ò‘x?ÓzõªèyOLѪž|ò3®jÕòêOê¯ÓNöÇ0 #¦…µMd†€!°-lÙ²UMù»íÖÀ­\¹Á-^œéªŸdPOL}IR?O:U\•*å³SÎÑÏXS¦,Öü¤Í›×r|p™«U«’¿Ü¶†€!PÈ1-dÀm:CÀ0 ü!‘h´=•œp™QoÊoÖ¬–¶-]šIZõ„üiÞ¼¶T†Zæu‹¶FŠnܸ¹®W¯ç&ÿwÞ¹ÄU¬X6¦Ÿ†@á"`Ä´pñ¶Ù CÀ0ò‰~£)afoÔ¨º#a¾oÊoذšžš=;knÒfÍjº9s²ž¯T©¬{å•áâ"ÐÀ½õÖÅZÊk[CÀ(Œ˜ î6«!`†@ ÒÞGÏÇû™’Ûñ‰öUsB›OL©æDº¨jÕ*¸ûF£úó¸$ëf„€ÓÖ†5 CÀHS’ç#h7æ|žÈ}$ž€rŽò£áó¤„:ë¬]Ù²¥\§NÍuK?CÀ(zŒ˜ý3°†€!`䀀7åÓb:sæ2·yó½"ž˜Îšµ<ËHhL7nLÓ”Q\×»÷+z}×®íÜúõ›³ô·†€!Pt1-:ìmfCÀ0 < @r}¯…˜bÖ÷¥I½‰ëÖHÚ¨eËÖº5k6ÅŒŠÆ!Oéu×½§Ä–äù T—(ÿ1}íÀ0Š#¦E‹¿Ín†€! ”"¥ä(ÚQR:U¨P&šhßV¯9e¨É“c“ð7hPUÓM 0 2Ö½ðBo×¢EmW½zE·jÕ†\f·fCÀ(LŒ˜&Ú6—!`†@¾¨X±Œ^³aCš9íº+ "‰ö½Æ4##âcJ¤}|2}£ªU+ï>þxŒ»å–ãÝ¡‡¶ÑñªT)çÖ®Õ®æ{qv!`$#¦I…Ó3 CÀH6>·(Äi×®¾›4)¢õšR4ªH›6õ¢f~=!–.˜÷Ѷ^zéþ´æ,ݸ1=zl;†€!Pô1-úg`+0 CÀÈOL=‰$Ѿ7×{B A%Ê>BL—ÄŒvÍ5ƒ\™2¥4‰~¸ôô­ÑTTá6Û7 ¢AÀˆiÑàn³†€!`äÌóHXcºbÅzÕ„¦¥mÕªPlË–-­ä3lÊã_ÜO?MuGµ›[¶l]ÌŒžðnØ`ZÓ`ìÀ(BŒ˜!ø6µ!`†@îx¹n]$µSÛ¶õõ"Ìùh<Ñ”¦¥mÑmË–u$qþj·iSº›>}©»÷ÞÏÜUWåöÚ«‰&ÔÏFB*©‚–óÎ;Oýcñwµ—aPœÞ=zô(è˜ñKÅÙ!`†€!bPŠ´D‰ÑzjÜ×­[UÍùVÌô^cJ´=2særwûí«iÿškº¹Ï>ŸEcšIL Gcºï¾ûºo¼1ÅеåÙ#ðôÓOgßX@-FL XÖ0 C 9ø¨z*6yiÛ¶ž@í±G£ÿÓ-ZV´iÓšjÚ4h”ûí·YîË/¯Ñãš5+j.ÔÕ«7jRÆÁÇñÉúõ ÿÔ¯_ßzê©8ƒ m$O>ùD¬…›¹ÂLùÉ}†6š!`†@ Ÿs””QS¦,VS~¦Æ´”+]º¤&Îï½ÑîÜspW¤fÍJº]¹23o)¥Ù¯öÇ0Š#¦E ¿Mn†€!ªW¯ Uš2I%~¦Ó¦AL3Ô·tÓ&|LKëPA(Ù¼é¦ã¢C{bJДÜÿýן²­!`1FL‹øØô†€!`¹#€Æ4LLwݵž-¥»Å‹W»råJkðÛùóW¹… W¹úõ«9|S½à—ЬX‘InMcêѱ­!:1Mga+1 CÀȈe<1Å÷táÂ5š(ýú4Ý>ñÄ×BH+(Q …‰¿rårBL35¦%KF¾}õ¨pÛ7 ¢AÀˆiÑàn³†€!`äÚµ+»åË3óQß°au·dÉZǾÏqúÁ¿»ž=÷‘óëœO¾ï§°†K–(±‹61õenûöíëÞ{ï½Ì°÷ÙgŸ¹cŽ9ÆÝyçYFŸø@¯KKK‹F•óœ{õê%ï“é®_¿~®ÿþnüøñ®K—.î›o¾Ñþåš5kÊš-¹Î›Ÿ¾¹–¤©¸¦üÞšÓü"fý CÀ0 ˆÆ4Ó ÏÚ´©ëÖ¬Ù¨iŸV­ÚàfÏ^殸¢«#e2o^¬æ‹ Rë×G’ôÓî£ñK•*ÉaJ Z»eË–)Áþý÷ߥÊÕR]äkĈnÖ¬Yz¼yóf¹ïÙâºI¸Ùçœ'Wô6l˜›0a‚‹'áóçÏw£FҾ̷|ùò,807c®X±ÂýðúõÖ®]+Ï`^Ϻ¦Nê›tË|¤òfhôXOX8÷ù矇O¹÷ß_‚ÙÊFÏÇ¢E‹¢Ç\Ã=fddDϱ3wî\½ÇÅ‹˳^ï(lðÐCiŸ/¾øBRŒMrC† q·Ýv›»ä’KÒx½û.3cû5³ýóÏ?Ý_ý=Ç=$ê˺èGÿðÚü3áÏîï¿ÿÖ51ö?ÿüãÆŒ}^Ú Àö×_usæÌñ§tË3S4Ã?ýô“[°`žÏnM4²ž‘#GŠe!ÓÇZ/JÅ?ò¦11 CÀ0R_Ô¯u æüè:ß~{dаaÿà†ÞÚ·¿5hÙò†@ík{Ë–7ƒŽöe笳^ ú÷='UóÏ?çDÏÔNïÞ½ƒã?>ÏË6/hܸqЬY3Ô¹d.»ì²@´z̹Gy$˜7ož¶=÷Üsѱ_|ñÅ dÉ’¹àÉ'Ÿ *V¬T©RE¯;î¸ã!CÚ÷öÛoŽ]­Zµ@LÛAŸ>}´­uëÖÁ< ûeÊ” :è ³téÒA… ‚>úHÛÎ>ûì ]»vA5ú±® .¸@ÛøóÝwßé9Ñ|깋/¾8¨]»¶îÿ÷¿ÿÕµtÒIAÏž=õD‹©×0vÆ õüW\pÀÑ>¢õÔ>cÇŽ ƧûÓ¦M‹â^?ü°<ïþAÇŽõºj?ð ‹ö€—wÅ’{?!¿@4¨d}U­ZU×—¨ï”)S ®/UªTP¯^½@H¿NÅ–óGq„nÙ?äC‚£Ž:*zÌý‰ ‚öóÍ7gð¦o·n݂իWkï ®cM¬“ö—_~9áúÁ²iÓ¦A¥J•ñÉÄ…!r¾ý÷Ï<óÌ@\rì“ìFÓ˜Ê51 CÀHmêÖ­¢ \¼xmt¡mÚÔS Vzú¿ª9íÔ©…$Ûh?ëׯªûÑβS©R¬)ßû •Š"¤Ó]sÍ5ª™;òÈ#ÝóÏ?ª†ò´ÓNs¯¼òŠúJvØaîÃ?ŒÞflú !•êW·KYÖ{õ´k_}õ•jáÐ’rþ®»îrëÖ­sBl³h;£ÊZ¾3f8!Gîè£vB0U#I´Ï>û¬jñ^ýuÇëÓO?ÕË…¹n¸A´ØMõ¸{÷îêשòáé§Ÿ®ëBÉàÛºû¨žÈÇŸ%K–8!…NH¨Î¾T~¸¶mÛª¿I“&N~,¸—^zIªˆÕuíÛ·wB£8¢‘”îæ›ovBÊå½´X5˜»í¶›»ÿþûö=ÿüóE{_^ñ@ÛÙ¹sg'Ä.FK-?TÃ)?ÜÏ?ÿ¬šh4 ¸. ÑÄœ/¼ðB‡Ÿ/lðÅåà¾ûî‹ÞŽqÕœó9ôÐCõ>­Ÿg,DVŸ?óp¯BÌ£ã¤âŽÓT|*¶&CÀ0 êÕ«ªÇK–¬‰žoÕªŽîϘ±XNà?|×hD6Lbiˆ˜ò3MÞž˜z2½8Ev sÑA>1mã ¹YÔœO€¤Ó2D¿LÑ6J­r ÖÐ$8'ZPõåÜÿýh<%h¬‚/¶gu–’¶ìnŸLÖCß[o½UÍù˜ ‘:(#/¬h\ÅÏ·E4 ¨U«VN4—Jòè+šQ½ž}/'œp‚îz2‹²šl©^½ºš´ äD©. ÜÄ-LìÃó¾õÖ[î™gž‘œ¹ÓU æ>È*ÜÓ?Ä’`.Ü- “Ì¡Mj´+Ø5hÐÀ‰æZÏA>yFþ˜þü±o¤…?,ã‰6Õ}ýõ×ÑqD+í(q‹‚÷›6†vZ¶léþøã}¸j°ÆG}4Ô#õv­$iê=[‘!`†@8¼´hQ&1­V­‚–5k¹ÛEì‰Ò÷‘ “XÎG*Deµ¤§oÕî¥K§æW!¤Ã Z@‚z*W®¬§H•%&TÝ?å”SÜå—_®Ä r!íÑ£‡TÁ*­„2"RýàƒÖ@!|1÷Úk/Á$R–•Ð"f'Í›76A”ïc  í¾-|>»}13+1CS*nJÆÐã÷™lK™Lü:¹ß3Î8C_Œï%s]wÝuJðâçƒÀãÊuhUñ!M$Þm䀢]ˆþûÔŠy_Ûxž?ž'Â3õc{î¹zÎÿa,/¼¼ ¥Ín]þGÚ[n¹EIøÛo¿íÄÀ_žr[Ó˜¦Ü#±†€!`$B²¹hÑê˜&"ëÉM GC#ê¥n]Lù™fÎCL}ÀÇ^cšª¦|OVXkN"~­#Z?ÌøRÈæg"ë‰|'P’…öìÕW_U“n8˜ˆñsŠÂk rB¼y>܆vOü>£mÚ1 ‹¬S|%ÝÞ{ï%lþR°ð) 8dåûå´Å¬}ê©§ÆtÙgŸ}”â/kˆÝ¥—^ª)¤Ð6bžO$hA‘§žzJ‚îæé‹€¦Ç{,Æ%¹ ?H ˜õýXƒV× m^ßß~û­kîõ@n!¨©,¹#”Ê«·µ†€!`ì44hP- 1Å„ïÓ>U¬&¦UDkKLKIô½×’šßOUbšŸ‹9ÿûï¿wl伦 rCT:¦h4q>´¨èuÀÇí#þ«˜«³ùþé§ŸVíê{ì¡Ý!<øHµvéMÓ˜±qGÀoA šˆ{ì±JÆÐ8¢ÁŒ4‹d€|CJï¹çžø.Ñcî’&²4BÞÑšâw )ç¾Á Ó>®˜!äQ3|`ñËdK*&"úý¸á¾h”ñ?küA¹ìo¼ñƘì:x.ð…EzÇwhf² €'þÁ¹IxM¬ßçqÅ¿/©°pÇHe1bšÊOÇÖf†€!E€2£aS> $Ç/U*òUFÙR/5kR)*6½TéÒ%ä ?3½Ð† éÚ=LhýõE½E#Ö®±^#IøPâ/Ià"‘òJoºé&Ý'ð‡@´“4Ì×h!*wß}·kÖ¬™^ÇŸøù!4‚’HÁôZ;LùÿùÏ\­ZµÜo¼¡é™ð‰D D5¶ÈâÿJpÂõ~ ÌÑ'žx¢ž÷þ¥ávü(ÑТñ„`£éôâÇðÇŒ©Ã|M›Ç ÂÎy´˜h8¹oÆ“¨}‡/)²ß~û©Ë¤›ÔJŸq îÜ£dPó?AQᾸF`"ÇÇ \ Òàäç÷ëËiKß=÷ÜSƒÉ^xá] D•õðŒøûå?GxMø«òì½Í:ëôãä´Ž¢lÛEuÄI¥(Was†€!`¹ ðØcC%ßåx!77jÏ9sVHPÈ}òEož“ü‘÷ 9ª¤mÆMrçœó²hêÖ<§œ|üñ¯õú~¸Aû 2VˆÆ[b.}\ òÚ3rq¢u+A£‡Ö.R`x4™˜…!LÞGÕ·C¤x¡‘„¬â鉣ïCЄ­&šF®4µ8\ø¡š’×Úù>ÉÚBW2bÙœÓ5Äíi¼1Ö•6ˆ¶'u¾9GÉGÀW›6mô˜ "æÇ]"¾/šNp`ËØÞ—T/ÌçÖÉXø“òló*‰ÖôÛo¿i T~Æa>‚âÐ,øUXñ¾-¬ÙlCÀ0 C`@cºpa¦é×_G’”{õ ÁP^jÔˆhOW®Ü AQólÉ’»Ä$=_³f“«Z5g‚ãÇKå-æè/¿üR &Iãã‚•]° ZN^y4n¼  "V‚¦0¯Ä ó{vBV´¤Ù Dœ—ðó$•s>ø‹ýø¾ÉÄu¢ͯ$ZÓ˜ßaЬ¿Ó"ƒÞ&6 CÀÈ VÓÊMëÖmÖ}´¢^Ê—/5ésΛõ#Ä4­ñGÍô`[½z£­L2ëÇ*n[üJ©6DpS8Z;¿÷$þ§ñBz©01 ·£E$àÉÄH™ÿ¡ÉÑÆ1 CÀ0 ‚Ÿ´¦˜uÇŒ™£ÇåË—ÍU¬ÉÖÓU«2ISFFf ¢1­R¥økL|ðAGô5~¦Û#ä·$ =,¤S“Äþ^êÊÓ×ÿK_ò3|]xŸŒ>`Èã„Û zŸ,]»vMú4¸·4œ• é“ì„1Ý ºÝ²!`Å "šOˆé„ Å·1Mo£rå²â/ûuæSG­_ŸY—2U²df¿5k6І°øÓ‚z–D,EŠ)º '•œÈÙ²%3'lNk€Ð⃊àÿ¸-9Hs?·6|h‡ž[·|·FŠ+Óçº/0S~ŽðX£!`†@ª Ù¬\¹œ”t\%IØ—JÉͲBr¶hp“'©~­¤B“>)?–˜âcZüMùþž“¹…@R“èò~øA}ŸJI$é'¡?e?éC¾O|O Â¥€roú' í69Ui'ÌGÝ3?HAEÔ>>ªd@˜Ÿ@+’þ]ÎõD«p”“øxîøÈu®H£fN"û‰´÷ÂÚH{ÅõTT ‰e·Fmü–þñUñ}ì8{2:fßÇZ CÀ0 ”@­))£~ÿ}–¤ª)¢¬Í’ÑdùáEB\ÃÄ”ÔR>ç)ýð?­^݈i3¿ÿùçŸ+1ÄM ž ’bŠè{ò"ILåuïÞ]É$e5‘N:iÀZVr¥bú÷.˜ø¹’Ht³fÍ¢¨O U­˜ 2LZªìr­BbY+Ù Ÿñ’‘‘¡e=IcE ä‹P³žÒä Å4Ï>dÉiÚ!ÁŸÑ£Gk?¥X%îOp‰ !`Ä4†í†€!`¤6 TŸ¾U¢™›'ÑÑ•ÿç#HÙǬ¥"!¦ë×GÌýÜUZÚVñEÍ4.^¼FRèd öIm gu¾²R¢¨p´‘hÕ¢ y$ѧ–<Äóâ‹/V )ÄŒHu´«Ó°O“4VÔƒ'•©î»ï¾()¤/å<½)-ª'¼´A6!ÐÔ”G³Jr~Òù2Ÿô ÄÐo¾ùFs±’‹ß×Þ½{+i…„bž‡¸’ó”ùò²Æðì£e&?ê³Ï>«•–zöì©YФšäŽ€ÓÜ1²†€!`)‚ÓyóVJ¢ðb>.¯/gZÚ5뇗Y±bñÿ‹$Ñç<þ¦ádú”7­_?qú£ð8;ã>¹I!”+f-ã@^O4Õ^0ñ“Ÿ¤õ¾>;&úœ’‰¯ªOÕ§OÍ=Jú+/U2àëŠ)‹{¦˜*Qhtñ‡…ãKš¥Drýõ׫ìQG¥9[ Š"ù¦¼p9`MaÖ›í¹†ÔPC¯!=á„ܵ×^«>±o¾ù¦ƒ¤’®ŠµA‡ ¢Óç´Æ°–5¼Vî /¼ Äü¯Í$Û€IÞ0bšw¬¬§!`†@#P¯^$X‰ü£hLÑ”"uêTb«)£í߃èŠ)eZ©R$w%Só/B“p‡à¦»îºKƒ™&Mš¤ZMÊ–âë/{챚b ÍeX ©hQkÔ¨Cf1“㫊6M%ÄÖM6Ÿ“ÔE2ûìW¥ˆ¢Ç5,cŸÔí%äO/¤¬â<¤‚{òœÓÑǯ‘1ñW3gNt ?mó†€Ó¼ád½ CÀ0R*U"IJL™š‡”%A6ëÔ©¢D5¼Dò–†5lך5# ÚgÌX&>†5ÃÝm?Ðdz³|6]ô4Iöy%rœ&ž&ód d:œ- ~\ŸÀ?þ<Õø@,ß'¿k$ ßdÛ0ÓmÇή4 CÀ(d–.˜ë7mÚªþ£øÖ­[E´q³S´¥%Kî¢+Ü´)]RG¥©f•TŽjÝ:1Y*ä[*öÓí¿ÿþÑJOÅþfìŠÓ˜ù#°†€!`ä… Wk× 6ë–Äú$ÚÇ´ïÛüXhL½©Ù²¡­U«²š÷gÍZfÄÔµÛ‚¨C¿K²Ë‹1¦1-ÆÏ–n†ÀΆ€¼')BSÌø˜ø×®ä3õ˜D4¦‘¯9¯i…ÄΙ³B#û[µ2©Çʶ†@ª `Ä4Už„­Ã0 C Wx*S¦TÔlONS"ó©OL©Ed>’©1­$õÖ—¨ïi«VurÏ:†@á"`¦üÂÅÛf3 CÀØД’‹”-~¥D×7lXM (•‚Oi… eô©¤ªU« ý¦O_¢ù¾-|MAígdD|] j|רQ0bº£ùS´¢CUCzöÙ¸«®:RÓWé"ì!`ä#¦ù†Ì.0 CÀ(*0å{ßÒ Ò4ð‰µ”(‰z÷Ó•+×ë)AŠ)Ò¬YM÷ñÇcÜž{6Öãíù3tè?îᇿ” RK\¯^ݵ×­.Û3¦]kÎ1µw!`†@±Aóýô*I£ÓTç´?†€!<Œ˜&KÉ0 C €€˜BK”(á0ågGL—.]ë(?Š 2ùdz5uÓÒn8þ@IDAT>ûäP¾ûîoî>×k|°—Qí§•£ øVmxC`§DÀˆéNùØí¦ CÀ(žlÚ´Eƒ™Ê•+¥šÓæÍ#SLù>}wF~L÷Ä´oßÃ܈Ó\ëÖu£„UsøCŠ©þýßu¿ÿ>ËþÁîúëqUª”Ëá k2 íEÀìo/‚v½!`†@¡ ù$ÿQHè.»ì®OO%¦óæ­Ô`$Ò7-^¼Æµk×@ýB>¸MžÖúÚk?»#|Tµ³C‡^ëî½·‡‘ÒÀ‰ˆ{ÒC¡5-U*ò5†i™2%£+™??BL'N\ çš4©áþþ{¾T_jí“h‡þž=Ÿu÷Ü3Ä]zi÷ÕWý£é©õ·s†€!\Ì”Ÿ\Ÿ‘1ï“8!¡>}ð1¥D(Ñóø—vèÐ0Z J;þïý¯½ö]GnÒ+¯øà×¥K;=þƒFõ‚ ^sŒýᇗ¹ý÷Ï^£¾Îö C `0Ó‚ÁÕF5 CÀH2¾Ü¨Ä<¹´´­¢ÕÌô)%ÈÉkL§N]ì*T(먵dÉ©øTÛM™²ÈrH¬)åDO<ñi  ªå¾ûîz#¥I~^6œ!°-1ÝÔìCÀ0 BGÀkL«U‹hF}à AcšIL—¸6mêjš'¢÷.\©eL<0“˜>þø×îòËßt½{èÞ}·Ÿ£B”‰!`=fÊ/úg`+0 CÀȾiåÊeÅô¾U#óýeÓ zˆÆ´M›zî·ßf¹=öh$ÚÐIîˆ#ÚjÀZTr“~üñ÷È#§¹sÎ9Àa[CÀHLcšÁ–`†€!;^cJÕ§Zµ*ÅT_‚˜z­ç”)ÓºBLg 1mâFŽœîŽ>zwG®Ó¾}ÿÏ}þù87pàEFJs‡Üz…Ž€ÓB‡Ü&4 CÀؼƔ²¤5kVŽSüMW¬Xïêׯæ–/_ï-Zí6¬î&O^$R‘”R‡º«»è¢ÿ“èüénР~îðÃÛnËìCÀ(`Œ˜0À6¼!`†@rX´h´bÅWµjy!eôxÁ‚Uº…ŒŽ;G ëêÕ›$i7kÖ2wÀ­Ü 7¼çFž¡þ¤:5O΂lCÀH:FL“© h†€!PP• Á¿´R¥rQmh,1ëZ´¨íFšî:wnᆟ¢©¥Ø¾õÖÅn¯½šÄÒlLCÀHFL“¤ c†€!P° ýD(GZ¶l©Ætµ¤‡*#QùܸqsÝž{6v?ý4Õ5hPÍmØæÆŒ™í^x¡·3MiÁ>ÝHFL“¢a†€!PàÌœ!¦­ZÕ‘@¦­Q)„•\¤Ä´víÊš>jâÄbÖwî®»NvGµ[¯Ï&0 íGÀˆéöch#†€!`sçFLùûìÓT4¡é®bŲ:ëôéK¤ÊS]I¢¿Ø­^½QÛêÔ©âþúkhO›HÐÓ¡…°:›Â0’€å1MŠ6†!`†@"@Õ'|IÑ€â':hÐh‡æ¡é‰'îí~ùešEýñÇL·ysº“¬RnÀ€‹ t]‰Ÿ:uª?~|¢&;gì´oßÞí¶[ÁX!Œ˜îo» CÀ0vl¦O_ê¶nýWobúÌ3ߩɞs³g¯PéàÁFýKK”ØÅuíÚ^û62Ÿ~ú©»þúë {Z›Ï(4n¿ývwÏ=÷È|FL VÔ0 C ™L˜°@4 »¸ p®]»š¯_RÌøä7Å”?rä i«¯ÓRáé‚ Iæò5VÓ¦M…0ÏÎ×5ÖÙ(ì¾ûîºL#¦ ¯ n†€! þùgFâCL7mJSý©þTYLæó4:Ÿãµk7IðÓ<õ=­\¹œ;ôÐ6É˜ÚÆ0 BDÀ‚Ÿ l›Ê0 C`Û€˜BJ+W.ï–,Y«ƒÔ­K€Ó|×¾}I5Er›–uii[\™2%]¯^£•¡¶mF»Ê0Š#¦EºÍi†€!ga¤Tt"ET͚ݜ9ËõÚ&MjˆÆ4’·ôË/ÿM*¤´”[³f³ëÝû »ƒ‰'º“O>Y4âÜ®»îꮺê*7|øðìºÇœ?í´ÓÜ'Ÿ|s®¨^}õUwôÑG»:u긖-[ºž={ºaÆåy9[·nu+W®Œö?ï¼ó܇~=.Î;FL‹óÓ³µ†€!° ðûï³ÜÆéz§OJ“6o^ËýúëtסC#7þ Õ˜®_ŸæÎ?ÿà‘äÞâ”)SË_“;hÜhsçÎuC‡uÿùÏÜÂ… £­z~Ñ¢EÑsÙíàkÜ«W/I6Ýõë×Ïõïß_ téÒÅ}óÍ7Ù]=?jÔ(ùQ3;z\T;W^y¥ëÛ·¯XJ¹;ï¼Sï…uuëÖÍ=ÿüóyZÖgŸ}&þÖ5ÄÙ¸q£ø`GþGò4@ w2bšÂÇ–f†ÀÎŽÀÚµ›ÝŒ‘äúë×ovÕªUà§Zõé?f¹¹s#Z£]¤$TéÒ%Ýi§u*v¡ùZ¶l™øÐþë~ÿýw·téR½Èƈ#ܬY³ôxóæÍJ¬ÒÒÒ¢÷È>¤Æú y›0a‚d14!™?¾h™Gi_æ[¾<Dê")·ÖJðØíÃÜT±òñY²d‰NžH‚ý<¯E4AãÆƒfÍšÁ$ƒ%J—]vY f^=æÜ#<iÒ¶çž{.:¶’ dÉ’¤àÉ'Ÿ *V¬T©RE¯;î¸ã!-ÚWˆPtìjÕªbúôé£m·Þz«à»·îŸ}öÙA»ví‚5jeÊ”Ñk.¸àmÁK~ÈèË· Ñ z÷î­× yÖ>=ô^Ç®=à€¢÷ †<7Æáù€¹”¡Õþ܃h3æçUµjÕhÛé§ŸÔ«W/rÛïŒ7NÇz饗‚œ°Þ#Ì˽È]ßÃ?Ÿ÷N" Y3ϬuëÖz-cˆ¦6ú>ñkÉiÛ¡C‡€÷SA‰iL婘†€!`¤&¿ü2Mèï¾{#]àš5›4þ?ÿÌ×Èü­R’”äúTê×ïˆÔ¼‰<¬ MÝ5×\£š°#©‹/Vܼéœûr¬÷‰Ö äM7ݤZE¿H4×\‹Ÿ+Ú`®E»ŠR¢{ï½÷´+x9Ö9Ð@SSþþûï×64Ð{î¹§‹(ë‡n©¨Äù™3gFÏ%Âúˆ#Žˆ¾X«ü ‰öGš†t›K/½TŸ/®¸A yM1bš*OÂÖa†€!ç§¥m•/ßZš03þ{4vß}7QüêÒ¤Li ­uúé]ýúU³\_\N@æ0q‹†ÑA>!(øPŠ&NÒ_5çŸsÎ9RLà'%°˜â1I‹–S2”“TZ Ýk¯½æf˜úî¿ÿþî£>’à± J ÙžuÖYJð²ÃF4bîÌ3ÏTlE«êZ´h`tÇwÈ…òâNÑJ2 ôÑ50Ç¢µ‹%zD›eH¦hˆrXÆŽ« ÿQLþ¢±UŸTÈ$®Õ«Ww˜Ç ¤þ˜núŠ63JÔDÓèN=õT½?Ⱥhšh°£&}H.¤‘ £c=ÖA®ÆÜgŸ}CÑ|:ѬJÁ†Jêÿê×öà)G XÂ'âÌX:uŠ’»·ÞzKÍõŒM°f~ïW m«2f ‰…ðòžö’Ö¾=~›†ôçyò#Œ!¨ˆÇAŠøOæÝñBlzCÀ0 C ŒÀêÕE»³H+>Õ¨QIH[e)9:W¾Xk Q[¦Qø×mÙ’!Qå]×»}ü$½Ù3´žÂV̦ºÊ)§(¡€ðð‚öèÑCÏAH4h 5l!´øBx´×^{)Ñós qÌN .a,{ŸFÎ7oÞ<ÚÌ:ñWÍ@`!\O=õ”/ùkY'²ï¾ûúSòc#‚ $HúœqÆލv´ø’r¯øfò^€Ä¶iÓ&z=mhi!¹Ç^ ×AdΜ9:>~š¼ˆü‡@‚½¿Ž!u/ágÄ2 Éæýô%?ì·ë¯g‹ÿ)þžôñ’_¬sÃqyf^xÿ ©ägjÄÔ?Û†€!`¤#GÎPRº×^Ü¢E«E3VC¾Ô+!-]º”®µ”ä7=ùä}]“&5Sjíù]L˜åt­ø+ºN8A5„˜ñ!¥hö0Mc&ò38äè?þP‡©;>ê=l.ŽŸÏk÷8OZ8ožç\¸Sv¸ö¼Èµ×^«æwñCvßKÝ'`È Äi&æjÜІ†-'‘ú˜ÓÑ4B¢1µ{=z´cO¼²ÃÙy\*ü‹ ¥ð|Ù]ëçb GKŒ&’@£‘#GºÎ;G»A<eA  ¢HZ-/ùÅ:7 7/÷áç/Š­Ó¢@Ýæ4 CÀÈüKK•*áºwß]LKDƒX^¯?~žh¡2„ˆì¢„ãê«Êu¬©&e´kl¤þ—ÜA4ƒ)´«˜¢Ñê¡õó®øcⓈodN¦[È þ–øhýŽß¢RE!DÛ‰ybÌðýDH;…;ÂŒ3ô˜Hù[n¹E÷ãÿ°6 ˆR-¥oCSŠVÌþùGçÀì™-"„­)ímî0Ããþ€@Ô‰Úÿøã•¨c²FkŒhN‚/*÷B.Pî›50$?¿‚æ–lIëÄzÀÁ·×î 7~«iüRßxã õÑ ku³ÃÚk€qqðÚtÆÏ Cú¤º1Mõ'dë3 C`'Eà»ï&(íÒ¥jJÓÒÒÕŒ?sæÒè—q·n4uTq† Vدýøãðý‘˜KæbD¢è•°Ã>AB=¯foH¦n´xø˜ „2,a-¦|òÖªUKÉ’D§k@’ïOQæÇWõðÃw÷Üs6‘R bÌùQü_ œBÂãë ù³ß~ûEûÓÎÚ kOÈÓ‰†à Q{ì±ÇÔ$O4š;vtøu"J®Åå—Ü" ×Hü8ö8C Á•ñ¸ïûî»Ï=ðÀêSšÝµñãÑ39d˜u¢ýGŠà˸ ÅeÍ)5ÁQ¤€Å³ KvXƒsí±ÇJnýZrÃ0|ÏáyRiÂýSiA¶CÀ0 C`îÜB îÓjN?üp£D2ß¡æúš5+Š_â|ÕFñ%ûý÷× ËôÏLä NŒÙéŒ&ßË.ºHµ‡á{FÛ‡ŸRï£êÛñÓä…o$d³¯'޾ÚXtІ½¯¤×ΡùÃ÷’Ü ø2âBöWôclï–<ÜãC.=yôã$„Ÿ&ZWHh|;ýð5¥=¿ëÌϵÜ7ä{[…çÀËû»â‡ )åž¼OÍ0D˜~ž\Òž¬Ñ“¯/¹aß??Ç`Ž6Ùÿ ÉϵyéqÒÉKOëc†€!`ß|3A̯%$úºƒøäÍÕY!«kÖlü)u’ hï”#¥ ¦ë/¿üR & æã’rÈ!‡ÄŸÖc¯¼šFHv •]¿m9¦ßÑì„Lhs2l‹ …æµ½ÂsF|_ãa2ä&ÙaMæ†Di§/7 s›³(Û˜%ú6wÊ"@A¸âHÊ.Ôfä‚_PhÇŠ›|þùxñýWü÷”\’³$¨¥’TãIbºIo-Ùí·¿ûÚÞç€$ÁA7åWžóq¢´EhîxJ$-Ò%…5{‰úÙ¹íG`gÆÚLùÛÿþ±v@0ãd—Òc¼]»¥È‹/#Y\n“š÷mÛâWZÌÉJžÎ—4øéßñ9\«·qÁ‡ˆ`Ï”¼¥‚6å§äM'yQlá§™öw[§Ã‡O\-L¶ ‚6å[ðÓ¶=»j'@çw\°íe×÷@qýòýñÇÉb®4ìј.[¶NHi¤n:©¢®¿>3¥ÎNðq´ÓÝ"Eð‡M¶9 Qª¦dÏcãm;FL·;»Ò0 C øä“?uÔSOí$ ÔgkÉшù8«{ÕUGºªU#©£ `z² ˜*;!õî áÿô% —üm XŠ2ÐFÎP~Üä&á$ø¹õµö‚EÀˆiÁâk£†€!`äôô 7lØD©ý^Ö|pk©E>MKŽzrQ¦LII¿sd>F´®©ˆåä9%Ý&ûD‚ÕŠ¨|J’ÄŸ|¥¹E»víª¹ZÉ"ÐLR_‘ÛÔ Ñâô'½y=q Ù}Nrã7ê§´î…ˆÀ„ 4Ï'Qó^x¡æ#¥Äh"Á”?(Iè!——]v™¥’ë“tRäø„pRžûÃ?¸#F¸;ï¼Ó½öÚkš®‰Xúù\¦‰æáÜÙgŸ­U£(RÀÚ¨LEº,“ÂGÀˆiácn3†€!`dƒÀÀ#¤%äíûK>ÉÕnòäEr¼‹ö®P¡Œ™Ä©²ÎN§äÔ$_êè:tè >ÿ;’öS½iàÀ’£vÏ„«<ýôÓµœ'ÚOˆ"Õ¦ ¶Tu¢Ú¹\‘>}úhQRi}òÉ'âæQU“×ӆƕܫ´å$¤§zûí·uM\üPÛ·o/Zûƒ5Á?^“ÂAÀˆiáàl³†€!`ä‚ÀÆé¢ñš.ù+I¥¡–î‹/Æý/5QÄGðÚk»ç2‚5§"T=B;JàÑ·ß~+î¿hqò‘æ$¤¦òÒ®];ÝE‹Jüø<§  Äÿ'ݧÌi^© µä‡¥Æ=>ª$À‡øRʤp0bZ88Û,†@"зo_÷Þ{ïè N¥j=SpÒ†PpGÖ&ð¥zæ™gªæ…ÔK]ºtq>ú¨_äp|â¼ß&FꉛdEà³ÏÆi ÒÞ½ÔÆ·ß \)Uª„;ÿ|Ó–fE-õÏ@ÉAâúîÝ»;RA½óÎ;Zë>§Õ‡+gýñÇÚ-)Éê |òB¥*H/šU*dÒû$Óg̘1Úæûç´%‡+)¥ø??î¸ãÔ•2«ä}5)Œ˜Î6‹!P  >ÜÍœ9³@ç &|¡ôìÙÓ=þøãúaM ;¢|õÕWZoœ/Å .¸@KðñÅwà 7¨)1§hâ0Z‚*Hü¦M‘$ñá>¶ïÜ+¯ W éùç,¹W×JîÒ¥QXzõê¬yM£'l§Ø @ýv~ÐŽ7N}F©dÔ¯_?‡&“-þ¢‰ä‰'žPM%ÄÓ??ˆ1¯cÆÇdO‘~ð=ùä“z9uî!“”% Ó?>ªøžfçÇêç…Ì^|ñź&jÛShà·ß~Ó5sL9Q“BB@~U˜†@ò¡ˆŸQÜÙì%]I •¢©áˆó} >UÚyáÂ…äã Dc¦ÇbN ÄÔ3|ˆ’Ú$zŽkÄܰ KFFF0~üø@òõ´Brt_j_<ð€/^¼XÏÑOÌQÑ>œg Ö|˜bN DË }ý!Z&¨÷A_äÒK/ ¤ü] ÁÑvv$Ð;k ä-z<¾øâ‹@´¤u‰9Ÿœ¸ §µrßÜ?ÂzÄWM÷Y?ÉY é_ô\øçÅw,úÒáÓzÏâƒÈ—St½ÛðÏ=÷œÞ³]èéœÖ:gΜ dÉ’$]×q˜›÷ÿ\Á+üÞ`~î‘v ÞÐçvùÑRBŠósI‘õ?¥à}MpÜqO讽ö]9¾:ú?>öÿ¦Èš‡‰E£4mÚ4=wÞ.üˆõ s} ?ô²Q¦L™àðä޽þ¯5jÔ(b«ý$uT ¾Ÿz^Löú¹ÄX^n¹å–@Ò‹éÿŸMBJ£Ÿk·Þzk n¾kt{õÕWR4ø¿ÿû¿@4°Ñó¶“ñ„øgmHÒÔÝ&†€!‡@~‰©˜¨‚8 àÔB)õôïß_?9_*%LO=õTÀ©'L+iOô"f.ý  C µªƒ—_~YW&‘§D?ˆù0g\ñÒvOL¬ç=ôÐèZÄ7+€("yp\£Fh»hµ?¢1ÄL=®^½z ‘°zÌ=ˆË@´Íïˆé+2dH ~_zJ"fõ™ƒ/>ì!ßH^q¢oNkå Šû ‰Î!¦7%ÙÜçÁN4›Á¨Q£J±‡(TªTIûó%ç ¾h[‚Š+ê3âZѸ(9ýðÃu,~$Ä d[ªƒé³£-§µB —çþðÃëû²‹ð\ùò¥ ¬ÙJô°¶±v®“Àè,Ï&þ‡vÎæOq"¦7ßü¡’Я¿þ[ñoÔ¨¿7kv}ЭÛcÙÜajž6bš¿çâÈ'ºŠ}“'OÖhávþùÁÆb>ƒâ…ü0KO|SÂãðò„ìd‚&¦fÊ—O~C ˆvËaRÇ,E²æçŸ^ü1‹ÆL}@1'‘(œ¨RdÙ²eîÇTS¸!÷õ×_«ISQ¨¤E‘Owï½÷jêM‹VÖa ËIHw‚kÚ´ijÖºù曣ÝI‚¿æd"ey}úé§ÚŽÿ×UW]í‹/$þ`Üó&ŠžÅÄuâ‰'jÚ—¼¤jÉ N~9­•>$`Ò#êöüóÏWs×°ÖÎ;«o¨Çÿ6ù’s$Þ®[·®{ñÅ5õ &?ð¥j3˜ï‰È%Í ²ß~ûé6ü‡gˆ[CØ}"»µ‚e>Æ ,9¥½ñýäK[7xoáàß;¾}GØfdüëÞÿwW¹r9Ék¹›üïüME"uLû&;.b‰Éöæ¢D´üh‹éÃÿ`Ë–-õÿ0‘™ÝךÇ&/R®\¹¼t³>…€@ì“.„ m C`GE?K¢H‰å“¤Ð¤GჱS§NG~DŠ@ª -½zõR²É‡íõ×_ï~þùgM:Mþ=ÎáKi$©´h÷œ˜ªr„‘„Õ|X“*…ˆRȯÒµÌÃ=m\H‚礼º|Ww×]w)éƒäEò’ª%/8ù¹rZ+}Ä}ÁtÒIJ܈¢=æ˜cÁ Dð‡ÁóÀOT4–úc€¾0ñe‰' ‰€Ñ<ëõ¿cæò¯mežør¾¯ßroh.ÐèÆ‹ø=ºÓN;MÉo^Rµä'æÉm­d@ÄS·hA!ª¼ÀNLöRÎr³’m1ADCTÅTîxNÒ 82°å‡šIú ù†ÜÆ íhWéã%·µú~~ ÙÏ)íïÖøðcC\>|Ó³}ꩯ5™þå—wíõgª--Yr·xñwÞyˈÒ;̽Ú†@Î1Ík5òŒä3/Ò£GÕÔ½òÊ+Jæ(›‡t¢Et¨>i•R1az®U«–|I/Ž6!GO†v¸Þ 9Å¿ÒêØþí"µ¤Ãí¾-~ q6l˜½pe%pG#fó’ª%¯81Gø>rZ+„^­›Míl"y%àHÍ€äN¤ò fuÎCXÑ:ƒ)X:TË¢™F³J%ñÓU)©bâ…dݸB aö’×µúþh¬ùQ]Ú›p?¿¿#n'N\èfÌX&î®R¥²î…†ém^xáa¢EM-ª™ñwÄçn÷dd‡€Óì±ó†@!€iŸHÌí˜h1?#T4Á¤Ÿ&&Ìʘ’ñ¿Bƒ*Ñ¢Ú‡|øEæ$Œ)YüRI¯âbFÊ'LÑ5Ò­b¡vuØM€úÑÞ§ÒG_\ ðÁD;Êš®¹æÑj§•W¶5U‹_[ü6§µ†û¢­$Ï $R¢ò¥ZÐd]ë?Ÿ;’OºüÏHa#ÁjÚëÐLï½÷ÞªEå¹  E‹úôÓO»ë®»N $„—|±h_1«ã á%§µ¢™…ƒ_XrJ{î·#ïßzëGê®rß}=Åæ>½Õ&Mª»!CÆJ­ó5ÙþŽ|ÿvo†€!‹@©ØC;2 mA ^ Èqü¹ð¸Êß±…´ ˜Ã!z”ÀÃ÷Ó9A9˜rñ‡$ ?FD"Ýuëÿ0W88?D‰òVb ñ%רHÜþó­1MLÞ’Q@›ñE•È~õÝäZ]I뢚A´¹]rúùù½Ÿ*¾›¤b‹ï'ãbv&àË'”Ç$7œ²[kXËȼøz‚'LLõÁNï¿ÿ¾ârÓM7© šaðnÛ¶­{饗”L³^Ú!±¦|Ÿó þ>ø æm¥ h½!»þÙq>»µÒFp? ÂágŸøÀòƒ,O21¨o0?â%7¼âû§ú1¦úß~›),ÍUk:w.÷¼‹ü_$Úïoå½Ö5ÕoÁÖgÉF@´&†€!‡@~ÓEÅ]žë!¹4å9š²(|î’Ø9az”3fh®Krr½Oå¯÷é¢ÈçI_1]û&Ý’ÖˆôC´ ¹‹ÉqÓ1‡ÒZ IÖ4-ÙåûËoª–DÓmËZý}‘?•ý°pLŽYÑ\†Oë>ë%ß,yh ¹\É*î SÓäe­¤cœxÉ-íM|ÿü§zº¨Þ½_Ñ”Pÿ=?hØðÝ¿ùæ÷%×Í’÷uh~n5¥ú’.Šÿϼ¼J–¬”/¿kPµjIÕvޤ«”§ëò2¶õÉÛ30œòSAæ15©¼#M ÂD­()šÐd¢¹‹—Dç胶 ­BÄxnâû&ê‡ÖÏ%jÏéš=¢ýsLå¼’!ùYkN}i#KB"a­‡’}¹K4™TÉMrš÷ŒDÂs Q%ê³#ž[½z“ûþû‰ò>l(þÔoJ‰×@ƒœÒÓÿ•LeåÜÅö¶Ñgç·½dÉ&ѯ׎uòZ+.5›5AãÆ•äÿ»²;∣%²L±½w[øÎ.Q%FL Y×È|INË”M×lOcºÆüŽ/dX X¤:‚ì$ÊìDTÄÖZžÒ¶¯ñÊ+ßR2zÔQÜOD²=<úèiâöñŽä1=WÒ_rÆ{—×Ö­ÿJ–ùê®0zôL pœ%Dt½ø7—÷…¦â£¼dÛháöÙ§i±¾ßmØ•†@VvÁþ‘õ´1vnHèÜ»wïí";7‚v÷©€éÇð/&A*É‚«¥Â=¢…n$Ájóti]»¶—€º’1¡ºø _’JËÍóZ6lH“¬³…ˆÎR2:vìÍ,P³f%% ÐÎ[ˆ¯xCM•ç­£!°!`ÓèaÛ­†€! \~ù›ºŒéÓ—ê¶té’âÎPGrËÎŒýRa‰yZÃÒ¥k£$2:aÂÍÁÚ¬Y-% ={î«Û–-kçi<ëd`j †€!`……€7m£EĬ\ý1’ÅáKyõ’J\±î)…µ®¼Ì‘&‹€×ˆÎž½\5ŸT¨êܹ¹d»èªD´víÊyÎú†@Œ˜&ÅNí¼Œ9CÊþ!ù&›i¢{Ò#™ÅÉNrK¿ä’ì㢤ôøã÷”Ô[?»cÝCÒDEÒ–¥Â¢ñýë¯yQ"šéZFòÝ6•”aûªy_Q‚µL C 9˜irp´QŠ1Ó¦-‘ÚõH"ù1R"r•ø½5vS§~&¥(,ÆweK7"‡5U|L án¾ùC Γ\JÝP£FE)$Q×-Z´Æ}óÍu’»·\‘=¶uë6KU°ÙŽ %4¢ãÆÍ•ê^éRu­²jCñ E+ºûîÌ?´Èž’M¼3 `ÄtgxÊvYÀ„ýè£1ª!à H¯^õ‹2ËvÂ0¶ ôô­Röf—––!ãš9â˜cvwÇOqŸ}v•¤N«¿]ãç÷b°Ð‚FLó3¥ZØbÉð¯¤lª­æxOD961 ÂCÀˆiáam3¥˜êá¾üò/Í™ˆ±W¯N’z©e ¬Î–`츜wÞ«îÛo'DoðØc÷t_}õ—äô½@*†E*šE“¼Cò™I“…ˆè,µŽtÕ¡C£(¾¯&†€!Pt1-:ìmæBBsÜûïÿ._€?KYÏ%’?°™¤‚:ÐpÂ^JN i6!°Ó"€y¼Gg¢÷¿ß~-Åd>CJמâÎ?ÿàèùdílÚ´Å‘ª)¢%)œf9LõUª”×ÿLòhD÷Ú«‰ä”NÖÜ6Ž!`lFL·?»:…Ào 2úöÛ#Å|¸Õrʾî¼óv»íÖ …WmK3v,0·is“äóÜ¢7Ö¨Q ÕV^wÝÑîškº%åf—-[£ ý矒Ü>Cs¢vê!¡lÛµ«Ÿmñ‰¤,Ä1 íFÀˆévCh¤3g.sÏ=÷½4a–C#sêÕ+¤ÚRm=†ÀÀ)§<ëp¡A*T(£ 篺ê(wãÇnó½O™²8ª E+:gN$mSûö ¤ªZs}¡­_¿ê6Ïa†@Ñ `颊w›µ˜:u±”6üÆ}þùx×¼y-÷ðçi0S©R’›ÆÄ0 >ø-JJù?ܸ1ÝÝtÓqRvôÈ<¯³<ò>P‰Èù5k6iŠ&Jyb „ZÚ¦»¸( Êþ…~pÏ?ÿƒú⫆9oÔ2&†€!Pä´n}“Û°!M×Ñ Au÷Ö[}5O)çþü3-Å,O´|åÊå4Z¾cÇfJD1Ñ[5¥"Œ¶C H0bZ$°Û¤ÛŠþ£wÝ5X¿Ì®¸âHwñŇ¹²eÍUz[ñ´ë d#°ß~÷¹yóVè°{ïÝÄuÖþRÞwšçÉ%J”~“&5£šPȨEË'û)Øx†@ñEÀˆiñ}v;ÕʧO_ên½õ#÷Ë/ÓÜé§w–ýã%ÂÞ©Þv³)Ž@zz†ëÖíq)ç»HWê#ðË”)¥e<½6”m:URünly†€!PT˜ª©¨·yó„ÀÖ­ÿºgŸýÎ=ýô·’ ±žûôÓ«4ú6O['CÀ(0ðñö¾¡$°Ç,/–T¨¦tòÉ{»Ž›»=÷llV{ 6°!°ã!`Óï™î0w4vì\wíµïj0Äõ×ãúö=Ì¢pw˜§k7RœÈÈø×Mœ¸P‰(” ¥yóVÊÿc ×´i É#ºBLôVúüóç)Ý·8Ýž­Õ0R#¦)ô0l)¨ÒôðÃ_º—_î>¸µ{ä‘SÕ'Íð1 ÂA`åÊ QŠVtüø¹šƒ´jÕòŽÀ$4¡X0¾ÿ~¢{÷ÝÑÑE½ñF_1ç·ÛŽ!`ùEÀˆi~³þŠÀ_Í—äÛo»E‹V»»ïîáÎ8£sÎgƒ;;h:цþüóTÝ¢={¹f¹hÕªŽÐf1OîÐÖ­ëJ ¨Ý€#ôÇãúõ›£æûÿû¿>®{÷=vv8íþ C`;0bºÚåÉA€/;üHŸzê[·ß~-d{–³¼…ÉÁÖF1¬X±^üAç¨O($tܸy¢ MS7,hC!£{ïÝÔ¡! Ë7ßLp<ð¹›9s©TïSúòË}ÜñÇ) ceû†€!°mXðÓ¶áfW%ùóW¹K/¨Úš;ï<É]xá!I݆2Š$›GyðÁmšÊd?ø&LX¨$”ü¡˜å©+OÎ_¯ ­P¡¬ûî» ê#Ú¯ßîðÃÛf™ú×_§»üBÇ©Q£¢#(!uðСý%ê¾q–kì„!`Û‚€ÓmAÍ®IŸ~:ÎÝpÃû¢­®_p˜ M ¿þš'~ï ‰\ >Õ§m31]²d­&°G ?~ž£ …÷ íÕ«£fµØgŸfZéê«©Ÿ(x—,YB‰q˜˜äôøã_»Ÿ~š¢ òÉŒÿi¤ÿ.’Ÿôþ,ZUm´?Yxæ™gÄ]âç,çí„!êtêÔÉ]ýõ…¶L#¦…µMF`Ó¦-î¶Û>Òr¢}úâî¸ãDK)Èöw ¨z„&M)uß!‡ÊsÎ9 ×û'oèßÏ:[5¡Ñ Vi¤ü®»ÖSzÚiÕ,¯]³f“;õÔçd®9â#‰¦G»úí·i  ÈÿýïwnÔ¨šî©mÛúnòäH~RFU¦©S´jk¹>¥Ì¿ýö›1b„;è ƒ2OÚž!âŒ=Ú¥§§1MñçdËÛNfÎ\&©ŸÞp‹¯qo¼q‘Dñî¶#Úå†@ñCà“Oþ”gK³MJ32"2˜HHÏ„)~ìXüCç(yLOߪ…&ˆ”?÷Ü5bžjK9•ódœÓOÁÍŸ¿RýDÃsašïÞýqýß<ôÐ]µ˜ÅGÓ}¤æ=}÷Ú«©ûò˫×Ù~èØ±£{ÿý÷óØÛºEÀ9çœãÖ¯__¨ 1i¡Âm“}ñÅxwÍ5睊ò›o®U¾¡bìL̘±L´ï‹6rºj½ÆÒc@NP~´Qí -(/´¨-•.]ÒµoßPµ¡øbï»o3É#ZÓ_šëvܸ¹R"ô%ù¢Ùõ _„ÖtãÆtùíæüU*­Mæ'¥ßSOéК†€!PP1-(dmÜHIsÏ=ŸJnÒÝyç$û=ôK6¦“;0›7oQó8•ÌÐL"ñ¤4rÖ‰ùý­)ï5ÚÐ+®èªÛ=öØö*JC‡þ#A†Ü–-1dÓÏé·k×núM4 ç 3æNó'õ ÙÖ0 #¦­ ìXµj£ë×o€š!Ÿ}ö׳§U…ñØØvç@`ذIä÷[²dMóy<¥K—r=zìín¾ùxW·nrjÊ¿úêOîÎ;ëTÙ‘áð:|(ÎsÌîîµ×.7Û¾!`†€ÓƒÖ&Î?ÿ5Õþ r¥ëС¡cì4,Z´ÆÝrˇîë¯ÿÑ ¤ÿ¤YÊ ü9—-[ŸR ½ãŽO„Xæ?¼bÅrnذë]ãÆ5rZ®µ†€!TŒ˜&N,ŒÀW_ýíþóŸ·Ý{4r¯¾ÚÇ‘ÿ°8I“&M¤ø¼â´d[kŠ °Ë.%$ioW©Òþb¶/-« ôÇY^–™üþûqÛñμµjàJ•j’—i³ô¹öÚnFJ³ ²óœèÛ·¯;òÈ#%îô»é‰'Jš´kcÆ/Y²¤Ûm·ÝÜ\àvÝuט¶dÜ}÷Ý®\¹rîÆo”ŒJ*´Ÿ¢ÃV¨PA‚ûö’@Âs]³fÍ¢çsÚáÇæSO=%¥yßWµ—õúœúg×6{ölqµ¹T~D¾æ4hàV­Z%Ÿ!]™2e¤Æ8± ÜœðÒ3Î8ÃpÀ®’`â7Ü7ß|㈤öÙgö/'˜‡§T ×øüóÃÜý÷îz÷>ÐÝ{oOùr,Q ïÂéÔ 'œP,×n‹.:¶n Dë¹Ir~¦E_+V¤é¹U«Ò$·èÖèâJ–ÜEI(GÞ„^¢DY÷ %â¾\´_~vˆðæ™_4€ªS§òÅ6G}Kó:FíÚ•\¯^òÚÝúí€ >ܵhÑ¢@ïlÅŠ’¿z¨äåêׯ¯s­]»Vï*É;vlž b^ †ð!þù§’¾³Ï>[,Xàž{î9©Bø´ûôÓOݨçsúóÏ?ÿ(¹†6n¼í…&Ö¬Y£XlܸQ§«S§ŽMÖ¶lÙ2mëÙ³§(xb-U«V÷  œ‡$O™2Åýúë¯9-9åÛŒ˜¦ü#*^ ¤"ÌM7} ¿“Z÷'»‹.:´xÝ@Üj÷ÜsOÉ÷xjÜY;4¶’ÞSñŒÔM¼ØŸ;w…”ú\¦ûkÖlSþnâkºÏ6O´aÃ:wÝuJEµfù"¥Lˆ+ÉúkÕª´ÍóÛ…Û‡ÀÊ•¤óÊ'5%ðlŒd_hê +ZµæÍ›»Í›7K‡ÅJìÊ–-«“¦¥¥¹E‹IÖ“†dZZû@VêÖ­+YÚÇhãçÏŸ/ï¹ù’áa_·zõjm«U«VÌâ—.]*oU•üüõ×_bÛC×E'ˆ$Z~´äj­]»¶kÓ¦MôzÚX#k+Q¢„dƒØª/´–^ u;gf{ø@±Ÿ÷ûXþæÌ™£Ïͯѷ¥â¶xª±RI[“üãnÖT4C†Œ•_z{RjÔ((Ê—/ã¨rÖ¥K;ÍRqë­Ç»—^:OÜ_ç&Mº_ê#bFm¿]ÓÏœ¹AL–Ǻ Ò¶iœ÷ß½M×ÙEÉAàþûïW’Õ²eK%m™Ë/¿\ÉèÁ¬ÚÌG}ÔAºèƒ Ø &ÝV­ZIбjf†hBô fX€ =ÈwÜ¡¤ˆ¤ÿÞC9D‚ônðÃD·§®]»*±íÞ½»ƒÌ}üñÇÚ~Ùe—©)¹^½zò~î¢æ÷ /¼0zí°aÔ´úªWÜ×ç$ÞŒîÉëÔ©S•TAH÷Ûo?רQ#5W3Ɔ ôk<þøã•@?ôÐCÑáo»í6%loHóï¿ÿmK´CŸ“N:II(äyë­·”L~øáªÁ4œ˜Ì1¥#¸ðƒûKÈ-d '¹óÎ;Ý)§œ¢ûü,òãâï¿ÿŽžc‡JKMžÅóÏ?Ó–èà?þÐõÅ»ž‘ÿ¼óÎS¼y6¬åá‡N4DJ3bšR£ø.†¼‹'Ÿü_7cÆR7xð•Ûý¥Z|‘°•Û@¹r¥]åÊ™¥üŽH&Œ‰׿÷²˜þ#GÎŒ9¶ƒÂG¢qÍ5×84–ø{BR ‚¢ÓN;ͽòÊ+JÒ;ì0÷á‡FˆöŒþ˜¬o¿ývq§ºW¯ÁŸò«¯¾RSï¨Q£ôúhwñÅGµy“&MRŸÆM›6¹×_]_˜Â´‹,¯e„Ô¡! Ë·ß~«…(>ðøã;ˆ-äõ˜cŽÑn矾”Ð-/?Ú&©æÂwæ™g*Á~õÕWÝ´iÓ´ \ ô<ð€VˆÇø“.Y²Dï—ûÈM qÈôéÓõžY>·ü` ãÇw÷ÝwŸrÖŽ  e]ø‚BôÑv¢eÅ_–5äGX+ÚV\Â?nºé&© wNôuÝu×å8,~¦ï¼óŽº%ðl^|ñE±hÞ”+9ÏqÐBh4bZ ïèSL›¶D~…?­¹?ûì*ùGl°£ß²ÝŸ!ÒTªTÖÍž½A̱æÎÜɱlÙÒ¢ñ©âŽ8"ù'¹Íoí±@殼òJÕôA>1‡÷ïß_MÆGu”𮹲é„ÀBž~üñG‡o"GLÏhSß|óMÑÒ·VW€ý÷ßß}ôÑGªÉ„HaúÆÏ³mÛ¶± õë×OÉ%}o½õVÕÆbÚFÐÄByÿôéÓGµ¹ø¨"hnÑÒy-(~’\‚‡ à¼Ðpâû ÉC{9[‚‚FŽ©$7ˆa·nÝôÞñ§äÞÑb>ÿâ‹/¤"Ú%ÚBŽ!ç÷Üsj1ÁY‰*k Ø7ƒD‚võ™gžQ²üÉ'Ÿ(‘_¸pa¢®ù>‡éŸûô¯-[¶ä8Æ Aƒ$ÿñ>zÏé½÷& ³’ú«æxa7ši?€â>ýo¿ÍrçŸÿª˜oê‰ùþ"KÀ]ܨ­‡@`òäÅBR6ÇÜ .yDøV­ZÞÕ«WEHH}·ÿþ-ÅlØBHCͨ/]ÌEvP¤x_D qåÊ•uMø>z“<æaLä!È!„Ó=þ¥Rˆ ?náLjù™÷„—œL옜½@ˆ0$E»oÓ¹ü@BDH$m0d -(‚¶oÀ€ºÏÌùø®Îœ9Sã\·5ì AÇ6|ÜsnâMø˜ÔÁ !R?,ÌŸH ükæÄŸ2™ ÅÌà ›ÈÇ4»1Ð㣊k‚—jÕª¥üÿºSÿ´l›o¾ûn¢˜sÞP?¹çž;W~ÍÛÛ)ß &é´ áT#I6Ë0ÉH¯‚Æÿ)ÿ›e’'0×aªD“Âuøš]qÅêÓ– {–Sá91WúÔ*ƒ†ú†`”ìBáýé²ë“ŸóUbÒP|ãþ+´ÙyΊ1vì\!7cÄ—°ªˆ93?óZßä"àor•À$|GùáH)š1ÌÉ7ÈA7lѤòÿÄ{?Þß’¾U%’°ÖoĈÚÅ›çÃmü¯ák‰+Á¶Ä5Ä׈%‚Ví(éýá‡ÔŸM&šM4ÅàðÙgŸES@8†©²Ë¸ÚÕc=V÷ýHâ2ѬY3ňL¯ügÁh¤sŠÖÅÜ-ðÿ%@ BËç3³áÇ—œ\'|ŸíÙò,yFC† ‰C`Y»ví¢Ç©¸c¦üT|*Å`Mƒ•ä´fÌoh{Ð<€6…zÌyy `ìðœb´|Y–ðå€I“>nD/ûc¶y% y]oõêÄlW]îqu®¤têÔÅbjýRË wÜ“BZ~’¨üuyÊú¥¶ï¿ÿÞ}÷ÝwÑÿ/þ? ~Á´ŒvS.ZT´fÞॗ^’ôe›ô _Íì„ÿsˆæ{Ò)¡]õ¤¢†/#ÁVh !_Çwœ…¹ÿaH&B¾Ï[n¹E÷³û¡Dø\CËg ÷€uòäÉzOøâÚÀÿ1ZRî‹õãû‰`æ>ñÄÕ”N_È3AQøo†“?Z`‡o.A^¸!@Œª «Š±v—{ÃW7‘°H?[H2¤Ð“Q\)p5àXâbp?üPð×f×/§óÜ?ïæãÙàëÊ–D¤:§q ½MÞ¬&†@¾8pDаaÿàäëºâÖY¢<1äyÙ¨HA th13éµòˆÿW z,¿ì1£ÅŒ+¤ ‰žãù¥° ‹ª@>œñ³ÒÓBrÑ„bz"Ì6f=M‰¶ÓOü³ôœG>ìI È^ðË/¿òÅá›t+è|QEÏqôEzõêˆÉ-ÚÆŽh !Wø™òamòüøã˜Ø¢ç¸wù° äK1æ|¢¾\$ªz_ÀƒîYˆi š’€{å8»{ŽŸS¾dÑ^l½ðìä 'âsœÿöÎJŠb Ã%QrT2¬"  ˆP@  ˜#ˆŠ˜ÔgÄ@}fTT èæ*ˆ (HÎ9gúÝïŽ5ô“vwfwf·î9»3Ó]]]}»»ê¯þ°ïIbƒ'ƒU¦{d ÷iõnŸ/©|ë@IDATOÚp»t÷8"V1O,‡29cr̤9TÄ ¨]À @ÐS9ú ±ˆê„ÖNŠí~úq§{Lh…)zíþD}Úúécøî~ӷΙRÏwŽ‹6aô×î;À“¾C¬˜ávgÚ†¾ý~&ïÈ2y§ÚKxÿsÒf[?†€ ü©¸>WÉÙ£×1¾ƒ X)™±ªÈAãj«¤ºˆ7>|¸òÞẵ<€¸‡Äš ñS¸\ÈöÄ…ƒë…åúXBO:¥:!#× î§Ð„ƒPU“} a6î-êò/iG=P‰à ¥w ¥sÁ ‡Û/šøéUHB •˜0\F¸òˆe#Žw ¼ã“i­,çÃÝE<).»P! €íèÊJ¸k=§-Ë'±r÷IxYËèˆóAƒ;Ò ‰”`oì ßè‹v—~âš#›˜sC+C\—å6ÌT0Îı¨÷‡ ²˜eò‘­Ðƒýö+*n¼É²¬äóâv½W¨ƒF‰;t¡¶„Å0gÇÙ*W,•5€Z,ƒgi éýíÅ5G©‘ôïà N:ýS,!†Óf¬‡–%Ô†wR@l讄ü¶õŽÀw¿ðÛŸäDÌ©?qŒï6ŒÁ\V¾CL‡ª? ,ÒñèÛ¿ÈÉ`Äü"ôýÔAc !¸ôs*2Á–DÇcrZU®ŸùîæÊ)ÝIÒQŒ7ƒMX´ó@µLÇKÈ•6‹UD;N鵸r‚ËÚ‘á9Ob#élz€P–lt¬bTIÇÅ C qMýúõÓÎŒlO@#1PqZÄuEŽ¥ó#† —·Þz+XÔÒ»°}ÄeWEL@È/œ?–ØÁŠóÑ Ìù… qab‘TZO¬²gNçbå &5P&Ú5‡«Ý3ØvëÖMw£+’)è­p çF¸GðBŠuTuO ÞBâ×à–dˉp½Ä‚Á=É$äµ×^SRnm!Þ6RF°=/<¦#G.ªœK$¾ï-y~‚fƒþ³, 9ÑVç> 5ÊȤ%gܲ‘šÁs‰;}™ûÙb9ýo€÷Z7L¬¡›Ýo§lkÀÓl«®àøè£cÅÒõ…_(– ¥GÁ¹ú¬]©–ÎL—`w+N,Ÿˆ¸GL÷îÝ5˜ž€{2jH$aáãä8©Xõ°.2c·Ú…2þ™=ƒ–Y+¡ÖV"¥Ù¬Šà›kìÕ«—Z~PXQB-ö<±Êî±b†À£¸/u`÷G»f[Æÿi)sÎV¸‡âг?3 ô€mÀ°¸Õ:ÊJ*dýf79x’0_hÏ,[(&YPkõ’ŸN?½š€æQÂÿx­LféзxÜ-ó¦V­êI’DóÌݯiàå—ŸÊÑñÑÆC‘!“<œXNÒpû˜ :qH¤0M¤6óa]”>õÔE20¶È‡W˜ØK|Æ#dFZ®>ÜøX:\Þ92_¡8p ZÏpc1“˜£`õ~vp£ï‹ÄUÁ)áXo­°Ï ÖŽœÐ»Ôüô*¸Å'L˜ ÖR܇ìg…áüQG+KˆÀœu¾YâÏ/}ô‘R,±:Œ¥½‰vÍþcíw–Q$#Àfï]—Ü–±Ûío>áBÄÕNæ.VlÚ‰å™û xM”pß°˜²"tR«‡sÕ†;_Ñ¢¬K>G,å=%¤b‹dO•z~ºœ}”„$'J¡ÇתUQ²‘›†nv¿s áÃwIN*ȧ‡²êà–p&¡LFñPà1À»2‘>aô?xiž~úéxueRP{Í)Ø8פ¼Õ@ÿþãÕRê@iâï(.c:d@›]zxE,ctÒtÊX\±6K‰å B–¿Ã¥M¨›S,²¸ú =±Þ%”ΪËñ¸Ð£Ñ«`ÅÄÚ‡•ºxýpÉK‚‚žK2’¶Å* i8ñQX”! '†—0âe‡ªËõùy#]³ÿœV|BûBl)º¤=¬}ý¥ð#ÆŠÅ’MÛ°s h&X[ù¤ÙôË’Š¸H‰i%¶•8`,æ,×jíŽçUOÜÞÁmà„§n‡ÚC:\š„ M›‰ÏqdóIV>©|‡jÄf¨Û²l=v”LY–Ñè]üt.”÷gåÇC¯Bö© *Ú2Ù¡_!kWÀª'–MO€¯² @i«,ç«ÔP\ŸýƒI,–ìV‰uÍþs†fåà VÑ`Ö½€Ò ]Vè=kLD &ôË~ôeL$רtQ2)ñ$ƒ"K€x¤jbnÍÊwÀìÙ+ä/`÷kF>´Q5köö]T8mål[²³òsÖº¼9š¾F&žL”35@õ=“ɸnFq'«é»K_MÂ{HV¼Ø 衃óÓôÁ¢ÁûÅ~ÎuÇ;ɬ¼ÈÊÇ•ãÄi “ „”¾ùf€§.ÓÎô#«À4«ª J¿B=lví4ýõB5"DÕÚÁÒs<ÀÔ/¤A¡BY!”öïV`šô.Ð¥øIü r‡B["–Á`»¢•µ…Ä¢©ƒ‡lgâe¬k¦Lè9Ùf…vB§ª+»?«Ÿ zÙŽe°Ì‰È NÂ5 ÔÍÂÿØ×;âˆû¼“Nà]uÕkD?ö¾øâOOHô3bêÔ^¿~x‡~·¦™4“˜˜fÖ#4HаAONàã¤ã½E¢¸còN9&¾{­}«¯Url;¡ácl>…qC÷Ù *}¡¥‚“X{O Â5§ÀnË `êbLå‰v²W¯¿þdh¨”P.û~¯^ý —<îY\ø6£ÝŽpÛØO¼£uåâ%¶l¸r„Ïš,ñÓ¥pŒk(mI´²¶}$‡‘ýK"]sè9ýõq)ëØ_.Þïáè­rãX{ŽjÕÊIøÇ~âÒäo§ü­ʲõ’¹½È|ôÑT[,øY¸0뫳"P Yѧ’„¬–†™¦mÛCƒeܧDj€uÜq»Ë‚a«%±±ôPÜÁB"ÜÆæõ×_W† hçXɉPB{D)Åž­ª=Âj €#1’~f b ÇAH&$ÙVB†["|ÉIÞiÀŘæîSîÌ#Gþ"±g#Ìwt–—÷ø”k_~jKú>ã]R3ܵÃ;(Äõû$° w —´C=€@Y}$\•i»-Ö5§í…e³áEŠ2Í›WŒûèÝ»÷Hðv‰c]'Œóe¹Åi¿û¿¸w²ª;±Ž”Iì7"VNý´wü&Ñ h4¶d[oÙ:8& ?Ty´xn8“±NòVÎbš·úO™³òÉBñó޹÷°CÊ´+¿6ÄÒ+åäúÈÒ&[=TŽ;î8åÖ Ýn“ ”ß$Ö5ç·ëu=•*ȼc•‹¶ÿðëGÛíö9 äHdß#,N aCàFB=!±(î$ìI%–]·ÿ`âÀBj…Ä)+0jé$o5à,¦y«ÿ”8û÷ßÏ–Lâ×ÍE#Ô{3·S¢q®NNÙÒÀÉ'WWé¤lËA×\sb¶u: ÄÒ+!áÆ—%~Ä›f*ΊtX5YLÄ®VŽâΔ©ùeðŠ‹Þ VZV¢óg-²¶ŒûÌ{ 8`š÷÷ O[0}úq‹¼bN>ùpY¹æÜWÐi ;€XÓvíÚ©[ð w/”Q€HÿÂÑ(îˆ1%5àâÆgu7x¢Ù7hÐ m&Kþ:I] 8W~êÞ›¤·láÂ5,þ¢…×2âK"Æ$&½!îNHë×o•Áx•ü­þÍ™³B8ZWÊê\ƒ+3'Š5gçÎ]žbLmâÖRñâE$†¹Œ¬¾Õ@“ Ú/Xo<•o:xð§ææ›;ÆSÜ•qÈ–°ˆ²À«àN­O˜ YXÁ•ã7*‡3‰Œ,LŒ=ÂRÊ„(A°Ol½µ‚l±Â Í6,ZÂl «­ŸOŽ›ï/ç¾'WûÁÜS¸ÚSQkÖl– ÄÁâ&Ù_f“×˪ÅS±™yÚ&–ü\´h©tv5%c¹Ž‘W’Îldž¶É<=5À`WªTsSºôÑ2ðÙw•—öÈoW±W [µêm©Y[6¶lÙeð¾M2“—È*P{²¤¼† « hècÈØw’s ­.N1ztü–5}j`y`“`QÜ'W T[jA…DŸì|’7¡~!;ŸÄ&À§_€8XSY@£Q£F ]™ÍžüúÝ 5¡J¾\»Dg1Í5U§Î‰¶nÝ!–Ò—t9ÂaÃz:Prk–.]/ëŸO7 ^-³ìµâÚ-+ú””N­‚¬t Ô±ADH•î§Ó€j`öì æÝwçˆet›þÆÕð̽ñÆ3Y~ö¤O>¹³XšÞ’Lûß³d5ýóÏ¥BÕG,Sç™®]–©xÚêÊ8 dGø‹&Ñ(î"-_ʤÐ&ZE«ÛíK 8`š:÷"WZ"üìæÚkßKàqñõ’õ×sž½›+ OòI°(?M,DÓ%X~¡‚õ¶m˜Ë.koN8¡¡ÓrIn«¾ hà¶Ûö˜!C¾6?þ±X1wÅeÉ<äªæüóÏ“‰Rö&E/¿Ü]æX Ùù,.5ãö$«kÓí·¿'´fŸ‹kõ.çæŒK{®P¢5ÅÝ–-[]­«/E5à\ù)zc’Õ¬»î)›Ÿd]áë„ç°N²N“õNºÐŒ;UcðH8©V­¼éر±Þ&DîõÅUŸ5+-.Ö52å4°bÅIhú@\d¿©».ÑpR´haqm–5k×n–j ×bmÓ¬Ym ¯S§R¸C"n{ï½IB@þ®ZN#Eq•(QL:Ž6o½õ£€æÝBŸˆö¬ŽßÛvXˆõ»‘5à\ù‘uãö¤®œ+?uïM¾hÙ‹/N”3¾“àïË ,(Å=ùÁ¿J¦æ¯j5®S§²¸ç›È_SìóÅv‘l>÷\7Ó­[kÓ·ï{šü„G#T¬ÝºµïF#K GílY5ì+– U V£q˜žþQ¦V­Šâ xYV¼Ù¹µ–„+Â¥;!+Fm0ú‡ZN± vê4@VÞ9F²›/ m¦ûí4à4à4 8‹iBÔ˜ú•°’K¯™ûî;ÓôìÙ6õœÀ²šÍˆ“e_Ì_-35kV4]º4“LÎfÎú“@=»ª²¯À'`wûλ÷Œ_}u‡$…T ž:¨?þX,@u¾™2eþýóÏJÝÏó HÅ#ãF“&µ$á#sBe/¼ð³lÙº}Îõé§}µÞçŸÿRYZµª/ y…•¯ ž¿jÕò²BÔ}ÁßîKl 8‹il¹©§¼°˜:`šzÏAÂ[4mÚ"sÖYÏHŒÚÑæ‘GÎIxý©X!ëƒ7ÕàºüöÛ¿%[³”QéQG”ŠMvmr0¸÷ᅩXô º÷‹‡£ññ˜ñÐPYʲ¢XWW­Ú¨õzh5«ÍšÕQÀzÈ!U$Ky«ZN)0O½„ Ô’$©Þz'°ÞêmÔÌ™Ë$°ºdD/ÑØS +VD–o|LØ*\ÈK<.ÀtæÌ™²ÔëmñweœRBO?ý´aÉçÜÌÊwÀ4%n}ò±|ùsꩃd}ô*† üüNý‚ br\õÛ·ï4:4R@Þ¾}#@íMòž4Ws"5ðÓOÿ˜>}†øM[´8ÈŒsS¶ªÇÊ ð¨ZIìÛ²e‡&÷¬©5eßóóÏÿhý\ +À…žl̘)fÀ€…üµP^SPKIx–cï35j”=ÄýÑÀtذa![ÝO§Ô×À™gžé€iêߦôh!1dgõ_ˆ¶›?ìeÊ–Ý?=žÅVrQ)ƒ/.ÏK/miÎ9§…ZJ³X+î4¸÷¿þÆm¦W¯N iubý$°ÊßìÙ+Ô ­Î)§®Â€¨ß TBbú÷ÿX-»Ð¨Y!™’„A'NNN9Õ€³˜æTƒ)|üÕW¿®nì±c{™ŒŒÊ)ÜÒì5ØÑ¡C¿5o¿ý£‚o˜ºvmeŽ9¦nö*tG9 @ lÚ´]'tp÷²`•Ø5ªaŽ<2àþ?òÈ Yc¼’x"v)Ÿzj‚z%ì-�€ÓzPƒî’œ©L©Íª ¾ÂÆ›áï••_N¡–å¼)¸&Ÿ{î å=à€2'×Z)q¤Nœœr®–+þå,ªóôsúôŲÐÄ.‰5+-@5CÿêÖ­,1¨¿+Ë…=ã;ï\càÿuâ4à4à4] 8`š]Í¥ðqŸ}6CÀÚóÐCg›Ë/?.…[šµ¦}þù óì³_˜œ£ÙÆW_ÝNiž\ìhÖôèJ; dU¸í‰OÅš:yò<¬K–¬Ó˜u¬¨ÄžB'…¼øbwYî¸iVOáÊ; 8 8 ¨0Ígñb;2§ÖÔ<ùdþà7îw3pà'ºÞ÷‰'64×_ß>ßYóÙcè.§h€¥{±¨Nš4OÁ*q«–´¿Q£ªæì³ÒÄ­¦M3ǪÕ¸KtpÈ0ÍòRíзi~… %%IáKµ6f¥=PÕ 8A’5–*оå–NÚ'NN©§¬ª'4ÀÌšµLW²dqý†VŠÕ¢`8ê¨ ý¬R¥lê]€k‘Ó€Ó@JhÀÓ”¸ ‰iD÷»eYU&]@ú䓟þr¤½{wº«ªéz9®ÝNJÇÿ¨Ò\qÑWו­Xqmòä¹ÂƒºT9SYà裪¿† «Åäi-PJtë4P€5à€i>¹ù$;=ùäxµ”¶h‘‘–WþC}¨+Ú£Ö»÷I™V»IË‹rv(€hÜø.³ví½r&Éo¼ÑCé§6oÞ®¼ª“&ÍU J¼*žž2eöׄ* T¡«*Y²XÔœ»d§§LóÁ3ðÕW³Ì%—¼dx ‹¹âŠãÓîŠ Åä‘Ìĉ3 1¤wÝuº¬2ã\öiw#]ƒ|ÈÈè«™üðãÎúéK$)ê_ £1©ðªTùƒèFiܸFТŠuµjÕr™Žu?œœò§0MóûÊÊ.'ô¤9ᄆæ™g.I««Y´h­yôÑ„næ7Ͳ¿ûîÓ]RSZÝA×X§È æô ƒúø ”Àÿ?ÿéln¸¡}äƒd«Õíªs TU»ví6µjáþ¯«!|6hàÂ{¢*ÒítHS 8`š¦7Žfïܹ[ÖZ­}ÔË”(Q4-®fëÖb=ùLIºkÔ¨ ƒÕ©§6I‹¶»F: 8 į?ÿ\bÚ·ï¯`¤öèÑÆôëwfÜ•Ð_À©j-ª|ß´i›)_¾ä¿ U)Xe‰UÿJUqŸÀtpH) 8`šR·#k¹çžQB ÿ³ùä“[Å2‘+;ù‹Æ‘²^÷­·ž$<«Ç»5ì³vÛ]i§´Ò+D=ñÄÇÚæ¢E§û™‹.:Æ<þøyÙº–FÅŠª÷ÿ²eë”6mZ[W~ $VÕÍ·Ë0gKqî §4Ñ€¦ir£B›ùñÇÓÌ•W¾jž¾›9óÌf¡»Sî7kؤYµéâ‹5wÜqª[Ç>åî’kÓ@r4pòÉ•1„Ú+W.c6lتýÀ#œ“—J|êO?þþþ{¹fùC/ÇŸþù¬VÍÅ©&Dá®§$jÀÓ$*7YUÓ wì8@iv­Éj[h½ë×oÕĦaÃ~0Ç{°$h¥2¡åÜo§§ü«Õ«7I"ÓfÛ¶z‘MšÔ«ç7½ýöS~ákÖlV‹*@À:mÚ" }‚¦ €ÊýQ½z&üÜ®B§§œiÀÓœé/×¶q¥$WšÊ1U#FL6÷ß?F,Fbʺ˜³Îjžëúr'tpH ¼÷Þ$Ó«×ÛÁÆœ|òá†ô‡yì±sM×®­‚Û“ñeëÖâ­™´¨BSµeËvS©Ré P¬vXMS¨tXNœœòL˜æ™ê³wâ{ïeÞ}÷g‰~ݺd¯’$Ų¨wÜñ¾¬iÿk·Òä&x 8 8 l œ}öΕ8Ó=ªˆóÎ;ÊŒõ«ôiטV­êåšrvïÞ£|É?þ8GÁ*VU¬¬¥JWŠ*kUmÖ¬NJOþsMaîDN¹¨LsQÙ9=•+}î¹n¦K—Ô‹+ÅšK¶ý3Ï|¦K‡fÀ:ÙNœœœÐÀ_-3:ô×ÕŸÈÐ/V¬¨pªàp„>¦Fòy¦(âRmŒ*€*>øWÉö?ö؀럯Nœœ’§L“§Û„Ö¼xñ:éП‚êf’áš½lÖ„6(¤2’›z÷~×,X°Æ3vå•ǧK¬OŸ>Òþ!Wæ~: ä TªTI&ŸÏÓ b1W_ýF\é;´ÍšÕ’ï»4ƒ~äÈ”\?OøïɦT85“VSZÙ®qJ˜¦ðí&ëú뇙㎫o®ºªmJ´ô÷߉Ûm˜a¥•§žºÈUëÄiÀiÀi + V“Xôk®yÃ<ùäEŸþŽ™;w•,Wz¼yøá± Zo¸¡}VªÌó²%J3Ljþј;v+EU NuŽPæVŠª(£@µe˃¨6hP5ÏÛîà4JpÀ4•îFH[puáææµ@¯)˜ 3ÿ·ß¾&O3hóZîüNN9ÓÀé§až}ö 3nÜïæ˜o¾™%îýt©â§žúTâê[¤õJMÅŠ&HÝ|sGe"`bÿóժúØcã´'yʺý±¨6jTMCr¦]w´Ó@újÀÓ½w}4U¸ý~2C‡ö0˜·nòþY)+´ 33g.ÕXÒ=Ú¤¨Ö\³œœÒIXM/¹äEóÙg} Ë–™"Ë––âý±fðà‹Óér¢¶+q³fµõïºëNÔð…?þX¬nÜÿƒMþu”)W®„Z¬©„ªÃw¤ÿQëvæ; ¤vO¾Sw|´|ùsÛmï 9}kÓ©SãøJR)â¾:uzÒìÙãx(M’¢³QíUW]e†ž#³vÈŽ;Ä ÙOˆÇ’•r*™¶mÛÊ¢ ÿ1k×®ÍZEI(=yòdYš÷La‚¨%¸M›6mdñ‰ñI8SâªDoèyå•WÌM7Ý”¸ÊÓ¬¦N8TcçŸ{î Y6ôAmýÌ™Ë ÀmĈ_ÌŒKÒæŠþûßÿª¥“D®xþ *¤I^={¶3¯½v¥dù?bV­zK’Ó>6cÆ|`î»ï]sÊ)MÉ’qÕÏ9]™øîÓSÖôôÈ#$ô=uÓ„ª31•Ýzë»÷Î}÷™˜ ³QËÆÛ3EâÀNÐÕ›R=!—™Ö‡|õÕW²úWݤ^ÃÎ;ˆþú믮~Ú+eíñŸ%ð<Ç}ÎOBûS:©mˆTùèÑ£Í\ ô^·Ýv›Ù¼y³aÛ)§œ"Þ†wu_¤cór;zèСb)¼D’c¶KÒÌÖ¼lNžŸÚ«×;ÚÇtèÐX¬§ÓÍ]w”ûZCâOÇ x¿"ÏÛoÊ•+'I¡/Ç[é[oýh&Nœe>øàFS¢DÞð•’YzÝuoŠUg—yçkÄ uHäà=‹-2åË—W—Ü´iÓÌ‘G)Ë7K—.~ÆÙú)öùe˵êYu­Y³FI5tÇLŸ>Ý4nÜXâêªÙbb©féÄ?dšb²šÖ¡fÞ¼y¦zõêúÛÂú†®J•*n1Ó¬[·Î4oÞXâª÷Ë6NÐùóçk›Ë–ÍrƒÞ'Mš¤÷“v#,à÷%çÚ´i“¹ì²Ë‚ídvÛʱé*gžÙLÝö/¼0ѼñFS³foå._¾¤X¿ÿP«i*ÑäEÓ3ïï…§‚¢úÚ„‹t’NRD ®ñê׿Ã{è¡ó¤E2(zO=5Á“ÁëÚõeOøIó¤yuR!Ö÷î¹çž¸O/ÇkÙ²¥' QW4ž€P¯wïÞž¸ô·oêÔ©¢Ó§<zž€‘`ÝíÛ·÷Úµkç ¡¿wÒI'y=Ž^‘"E¼—^zIË ØóZµj¥uqü±Ç«ßǧûë×¯ï‰ Åûàƒt»¸±ƒmiذ¡' IˉeÎãwÅŠƒû¯¸âŠ`[zöìé X þ®P¡‚'ÖQý-`ØëÒ¥KpŸÿ‹XL=^ºé†nP]Øý̵M¿ýö›nš5k–¶=qU«Võ~üñG݇ŽêÔ©ã‰åUuW³fMïÏ?ÿÔ}½é HõÐ%ÇvîÜÙã9w½þþôÓOí)ƒŸœ›¶Q¢gôÇuñy÷ÝwkYÎO\Ÿ€gýŽ„ˆ^÷s;vìèÉd#¸ßÞµ^·nÝôîÇ?öØcÁ6|ùå—ž€ZÕ7σ€ZoΜ9žXKõÚñøãëóÒ¢E =.'m ž8Êá0•w»f”y·ë¥—¾Ý&÷k³÷óϳ½jÕzé_Û¶yßžw Ë™ŸyæO&‡Y8ÂuH Ô«WÏ{øá‡z!.ÆTF¦T‘^½ÞVλ¾}OÉõ&É€ ù/j~¿~]Ôrá–Ú‹}°´áR·–Àçž{Î|ûí·fùòåj$ô /T+ßÈ‘#µÂ•+WŠU|¢¹ôÒKÍÿþ÷?álüÄüóÏ?jY½õÖ[Íý÷߯Vµ|PâÎþT‹ Ö·Xn{¬yXKÿþûo­‹8P+ÔC nãW_}UÿpÅ#ŒÍÍ7ßl‹jÌ£2µZ ˜RK°Ý)ÓÔ?¬CÒÙ]Q?»wï.€z=\ –΋.º(xX1ׯ_¯VV,¿„ lܸQø{ï1è}_ýµùøãÕzÊ5"XWCËæé§Ÿ®:G—Ü,ØXu‡ bzè!#À1xÑU«Vé}ÄŠjï¦L™b¾ûî;%¥'~õÅ_ÔãÐåÛo¿­á è”öÞqÇj!¥®—˜\î÷–s 0@Ÿ æò~½!¡2·ÛÀ—œ¶5Seiöã’KŽ«w%Þ?ꨃ5ˆKX´h„gü&–íõivE®¹NNÙÕ€¦ÙÕ\‚2äkÔæŠëôb頮ϟ"bu?ýôéС¿  +e ½I×¹XØíȤÀ¥X2X$ÕÕÛ©S'Yšµ•&âLp½´z€PdÔ¨Q3VÄœ{î¹ 6 ´ÇýÍ7ßHVî½ ¢Ø6bÄb]U×v,— Çþd«îuÀ¯–YŠ¥N÷rÔÈÙgŸ-1}wÙ¢šè$VD†Ä˜úÁçk¯½¦«c±BÖÉ'Ÿ,<»×‹ôüðÃûIH =êºI’˜Ä‚hí”íß¿¿†¶IzóÍ7eéÇú¾qyÇ#€ÌÓN;ÍtÐAZœ°±›Ï?ÿkŽ8¢¶XÁúj–hnž?ÝÏec*¹b2OV—Ô‘èx—‰ED qã —ã³ÃX#þS\ÂzÜâÅ‹…6æ[ÆB„ùbÁ»H°á\VB­­œgÅŠvwØOÀ1–~GÛˆäðIü =€4«"ôüQ¸•Õ’(à³dæG¡@UÜìªO)1µ0ð ÀÇ"Ù A­ks¨`Ñ%) Œ‰·õ‹„¨…ÔnCWVö^aªíö'‹pMÄÚëAè‹{N)âãe²BÛ# @;§mTwºl¿ôÒV¢»ÕòžÌ’~¨¦PFâŒ7mÚ&“ïu¹Ït¹×N§§ìkÀÓìë.!G\páׯ_EÜ©‘®„œÌWÉúõ[Ä‘š'ž'îÒ3ĵ{…a‰='YÓ@$Áˆ뛌],™]»vÕÃHŽ!!‡§%K–hæ»Äë¨K»råÊš$cëÇ%M8Þ á·ijÝö€Mb?3í·ûB?±úbÁˆú×:ç°‚,Û$NÓîR@ɉµU—8 C¿üò‹º¶˜I‰ûT77Û¬X‡Iâš±B’Ü…Ë*îx\ø$„I¼mð<öËO<¡! ${Àÿýw»K3÷±Òúuƒ9’Dº¿$s-öOb 5ñ 9B\ÿÏ?ÿ¼ý¹Ï'mÈi[÷©4Í6Ô«w Ò°šÞsÏ^VBÆŸ–fW”ÚÍeÒ'±áIm$ï,þ?<·ß~»zK’qr œ¡òŸ[bÔe•±Þï¹™4J|¶†á ɉø)þè‡ Wò ^Œ8ècðfÑß4‰Ü#4MäÑõòX^)‘ta!`Î ™>}‰¸ˆŸ—ꉧ»ÑôìÙ67N[ ÏA–9V5ÜíXÖlÇI&>.bâ4tH¸ùÉîÇ‚Šëœ2ÄGoM¨›˜F,²dª3Xð C I'@­ä`аq–¸×é˜i/ÔP€_:Ê:d²¸ÒnÚI¸ ô°§ÖpØn¸½a óp–Ë“,x²×±Ò*ž”ã8&pdÛc•FXªÑ1¼´¿k¯½V¯ý–[nÑó£B'µ\3VY$§™Ógœq†ž‡ëE§L&˜| ó¸ø}ôQm÷·¾eàÜ~ O›’ÕVêNéÚµ•Ä\ÿ!Öþ2(™)¬iðàOÓå2Ò¢LÐ`»H¦ðn0±$|†>€?1Ö„äæ“h!^œ°(„þŠóóîqn&½_|ñ…z/ˆ]G0û×þÃñ®  Ùzôè4PPVB‰ðAËÇ9‰MÌÒ(‘ßIi@ÜVš‰:`Àø\kÁˆ“½ºuoóÄ}_à²îc)9«YùB3ä‘élE‰'ˆý©Ùö×ü-‰;d y½zõ nîMlz¶‹EU³¶%¾R÷“Åo3ñÙߺuk-g³òÅU¬™à6+ß–%ë]B<±rj=då“NV>õîÏ ¿úê«3eû³ò©@¸A=éõXÛNažJkFdðÄú©e`XNýn³òÅÒ Ï]Ý`Ô'–X=V’š´~±Nj»XCƒû$!HõBf<Þ<2â‰õ$H háIr—î矄+xÇwœî#ž:h7b³òëoþÁ` Bï/Ç•)SFËŠµÃkFðz¸w0$Xášd¢¡û9ÆÖÉ~ 3ÐíÜ|Ÿ0s7°' “zMô béóÀ¯Q,iÒ_¯þæ ¬2 n“ɧ'@3øÞÛb•ódâë `ó¨[À î’O&{ú]< žLj=™,é¹´ÚÃõ}³Œ"°eðÞÚwB2qõx¸„÷RByô;ïï¥Ljõ·ý'“EÝ.á=v“C×!!3Áíö ý™x›< y±›‚Ÿàô8®Q&‹ÊäÁN™¸êyПÚ+`O@$Çn{~®IâõÊ¢„í´“öÚëf;z™;wn¦m´Æ D&ðÚOÐN™Ü*ëûiý7}(÷Â/2‰Ö~‘cú+I Õrô«m -cÇŽõ$”H·ñ/V{¢Ý÷`%1¾$#+K„“<ÒÀùç?çpÂãò°ïû&ºI;wîšœ‘ÚÉßÿhy÷$úi__ViV/˜AƒNšÎ=TØÆàäïä(C‡Í 3Ç[`jë°À”²v€³û¦b­ÕŽWÜÚ™[&Ö'킆‰ÎØvΡÇÐVS©pBû8¿X´-þ2ìcðôÆv?2q8a°¥NÓPýQžvÑv ˆØ¶põƳûÂ@mÿ1 ®bö4C…>œ“ÙÖt¦èéž{FÊd"ò%Þ40•$ÍPU¦Ìï¬S¨å˜ eddè{ÍÄ š6K)Æ».a)z}ÐÆA{f…I eŸ®€DBSÂÒ­‰….H“Fy¨É _CüÀ”>"¥œí_"ÑщG@ÛhDüôs‘€)V®oèСz ï.çgk?Ä+¢àÌÒÆAÓgßu®Q¼(z,“[À¶½ÆpÀ”úÊœK˜4ø©}G¸óÓgs_(‹þ8Žk‚ ÎN–™  ÚBYÿdWbܵýì·À”ûL[) ôòý­·Þ¢X&‘\ǹ¬Û©Cx¤õ·ô=<´3”/V{¢Ý÷Lˆò#À4w|Ç¢q'™5ðÎ;?‰ûv¶Ä®\(îÉäfáã;ï¼g…,ÿ'¡»¹L×»/T(¾ØÈÌ­v¿²«\òÐá‡(?T؆ X:—L»ˆq$q)^eýÉ<þÊ žyV…v‘=O"®èpB[IÀ"I(œØóã’ç»_ø«ÌŸÀe÷ãÚ?þøãXí¦LŸ¸ý©“d£PýQvÑv@ˆÔ¶Lfá÷E#Â>GÉ@¦IZ2€í³°pzLf[÷iDŠn8ë¬#Íœ9+$îz±iݺž„uìÕßôé‹…ÍaUж<ëÍ">™° nŽÖˆá>ÿüóƒ«H‘(€(>Cx Ï:I~¸¤y9†pž- e²§´e¼sÿeÀ€Æ.’À–‰RŽc"ÑѯM߯'J?Ç6âÈa¦àïÉ'ŸTW5 [Ø&èÕx7iC(I„Å£N¨ !Äæ£Fú5B‰ˆeJúÔaþѰ txH¤óónÓv„p*hî áï•ÆÀÓVBåÉŠð É“ÄðsMí²ÂýæÜ侄[ß áA„K ¯r\4sö¸pŸ±î{¸c’½-ó(˜ì³¹úU+Vl‡j´ÄŽ´Ñlødªå÷ß ­Ï@Ù7®—dƒ‘ÌÓ¹º#h`ðàÁ Hx²+±h'å¯àF ¨ '6›Ån¿Ûæ4JhÖ¬¶0PT’Õï~.àB ÝD&2{'ïL²ó‹æXÒ‘Ä·¶mÛjÌ5É9€&X” •÷߯~G]ï~$º5 ÇCé¤ti‘$¥ÇD¢£ƒžŽXôŒŒ ­:”~Ž€J8ĸO È㺉3œRI(ùéä(Cü8«ÍÖà2”XÚ€TtF|:ØsÎ9GÛíº¤Ý€áXç­gذa÷—2à˜¸~âihùx~‹‹ˆa2Xœ8SâÖùCÜs+\#×Ì$$š9{\¸ÏX÷=Ü1ÉÞ–Ùl‘ì³¹úUÿùÏÿ\”’Yæ©IÕȨQ¿Jõ»f–ŒàË\Ö}Rµ½òœfsR;Yýá’$†R;öH-`@qâ4NèÒ¥™ ¸¿ˆ9],‰$©n²z–$$I@À:ÝGrTº‹Ÿn¯Þë`¢i àF²É’_Ê$3"â’×<ûHÄz*.á u•I«kÕ´¿ýŸx[ü Ä’kÅïÍ ~::[&Ò§Ä>*e¿„«è²Æ0”ˆ \-½lÇÊûúë¯óUÅÒÉ¡‰Ë×…H؆uÔz\ªìäZÁBKÀK€:™ðH¤ó‡ÖE"%àÏ`ØRÈ…–³¿9W,!y!1ËzÔì""ò£É þ:Ђ.è±(ñüdž¶'Ö}÷›[ßÅ4·4ýïyÆŽ*3¾iB•s¾ÌÖ»DsÚ$^ÔG+3å7M·n­…°§¥9Uª;>“ 9ÁúÁ€€› ”Ä–©#SÁ(?pËÑé"’X¤–£(ÅÝ®¤3Ïl.n鵺èHëÖAPjå¶ÛÞJ°À³c·¥ãg$/G¸kÁ/qœêÞg1˜!Htk6¤GbƒÕI wð{è¿Õð‚ÅÕdýûCéèBëŠök§Í2Ç•N–>‰N å„ ÔZJè+ÖY½A©‡À)l j,!´Š> žèXç÷×Pg"û®},½~PlÛ%IGz˜ÄÁ­ÞþzB¿41ÍŠPýûœæÊX”Ú9hÒ ;È vRG|©ŸnÅ*-Ä ânÆ:i—Ô S½r G¢”£|$::â# G°ñš¡ôsáÎ…!.‹qš‘èäe0ú Ê %áQch‰ËÇMŒ'×Gì%VåPŽk$–[h˜n¼ñF qàøXç­ +%çäóÃ?”%sG'ØÖò‰õK,±·¤†ÖCŒ9 {ÀfIcê"†Ê=ÂÐ9.ýhf.žöHBkD*ÁhçMê>±®9É% Üu×ï°ÃîŠÍI9#ôSmÛ>æ5mz¯d ÏKÊ9òs¥ÉÎÊÏ/ºƒ^J:UÍÐ÷_™ïP#I<”n–A$" ô-çå ¨õ ³qÀÒ¡p0·dº†ÒŸá.qsºŸóA«ÃñNbk ]²òí• ø‰öeü¾÷ÞQúýÐCÿÌÒ¯Y³·0Pd¦Ö±ÇæÅgV³ò¡ ƒÎ 4qb¡´?•öŒwÄ/ÐŽ PZ(»]ÜÙéÖÄÚ¤‰p§à6c¬|2Æ‘h”r6+_BôÜâFÏDGš•ï§Ÿ>Q=&”. Æ ú OÐóG£“ãý– ¯Öƒ> Œƒe„ëë¨'VÆ`V>Û W¢B,Õ:ããÅÂ)ÏÓ½™(©¢ÿóÏ?×céÏ(êįçç~ T&›á/@RË‹µR©WÐ5b)þø.^³÷j'Ë>`Û+ Oâw•bÎÒúë "Qâ±?Z{¢ÝwŽG’‘•O|†“\ÐÀÔ© ¼5zË‹òsRÎ6iÒ\½: NÉuI9G~¯ÔÓØwŠ#hR „ 'tÀtªP˜D£"뇖c ¡ã…:*$ý‰åe`bá\tÞba׷ͧt¦’¯ ”¾S¡|õÖßô£pšò×£Çk¾+ÌÛ¯Y¦Ùi­„ÏxâöÝçÐhtkpŠ2Ƀn Ž_ Lý•ð®F¢”³À”s„££óד“ïÔ‰NŽz¡”òO^%i).¡Œ¤úy]³Ú–Xç÷×G;hÀ¡‚Ì~KïdË„û¤¯ ¥Áã~AÇÄ;^ëmTJ¼Hí‰vßã=w2€©K~’‘-Ù"ÏŒ˜ôß—Ìéºâ‚9*á§ÃÝuË-ïHVg¡étw%üD®Â¯ÜS¸¦üqU~¥¸ÔŸ6– [܃ÐÚØ ¥H!›WÖСCu >ÜkV„T_ÝXÒ1+}ñ`wâ‰'“ N‘ÎVc«pq’™ÊJRNòpßרQAâî¦Ëós´$™ì—gi¡æ*%‰+Ú£q㦠ÕÎ2a¨š.<Ì•à&˺í‰Å K·ºß¸üYÂ7¡›X®|h¢L¸2ÙÝëܰ‹øE¬•ÁŸPÆÙ¾'¸1‹_bß_¡6í„LøÅ¿Ï¿=ô{8š9îW< \þºˆ%…u!’ÄjOV®=Ò9¹ÝŘ&R›êzå•odÆ¥æ±Ç΋P"û›Ÿzj‚ðÞ’œXïÞÆ`e¿Fw¤Ó@d Û…ðN,í‰XBuwv¨Hâ¡?y衇´ Bú­Ëøbä? ´oßHâgH¦yE¥•FÊ>[2‹ÇÏÈ„d/NþÓ@àŠˆ…jŽøÃnݺeû2‰Ó 7©ŒF)¨‰FG—íÆ¸ó\Ñî{^6ÎYL“¬ýeËÖkþõ×·Þ´v62T{÷~W‚¥À{®¬¹Û*au»Šœ"iÀÎÊ-•Ih9KF G jaÁ²à§  =>^úX+pFÊZµeÜgzj cÇFÂ*ò½°=ljz¿ÿ¾È”.½¿Ù´)@8þóÏÿHÆö_¦M›Ìµô¼âð­†ã4”s;w^ØÎûœ$¥\,:º}*Ëâqk’ J$ýÐÇDIÒIFñ $†AáD2‰PO?ýt<‡è2Ñî{^*ÆYL“¬}YTÌüe$k±CÂδaÃ6Y5âqqý!öU”&L³®¢X€¦‹ +ŽXª'{ Yõ¸Û·oäbÌ* Ö0Àk$ú{.k5³¿ÝgþÔì%ûï_T­¦¸ë7oÞ&“=BóSWÙFŒ#ûI¦úˆü©€|~UŽá#Ÿßàl^ž¦ÙT\<‡Mœ8ÓŒ÷»yä‘sdEħ/^'1zO Å*±–Þ¤q¥ñ´Å•qH”yä¥Bi×®.ø„×Ê(\ý,h% 1¦Ä¢†Ühô'¶^÷Y04(=î¸úL§Ë’³UåyY¥4RåÊ•ºOÿpéÿý÷ 3~||4eCséq•ýúõÓxr¬¥ÄÎöèÑCÆËG”ºŠå>mì9ߡВ%YÊ;`YµW¸`Á%Ùä »‡¹ì²ËÄ‹ø˜Ý­´NLtÇgàAµB¬<«>á¥!†—z9ÞIÞk 1h)ï¯#åZ€«ýž{F‰Û¤iÂÀãŒKÌ¥—¾¤Áÿ~ØËT«V.å®Û5(ÿk‹(DÐÝ»w7€S+¬XÂÊTð'ZÁ•g dÔú3`°¬*A8®$Üoï[+(ÀnDV¸a -á6†ÕÖÏ'Çòç$jàÄ OåG²JÏñ²ŽúVYª³‘¬v³N=Q+WnÒ{/Äòl}$Ët–?•¯ Iò#«/…®\„;nTøIqÓÓ‡°Œ)I“€G&³$Dⶇ‹”P8Cù¤ +BA´Ï±,‘ÊïråÊ)¸eu, vVØ””cñÖP-ÿg>T{Z\’¦IºM/½ô•.÷î»×&ä ÄP 5Š úµåe¼\\¥rå„Tî*qÈ¢§X°VðIGîû´Õ‘á ‰>Ùù 4Pj÷AÄ=xð`!P¯¨àÓngp` Áš ù4¤áÄ‘"¬Ôñ +£8É¿ÀO<éÆ˜ÒZµ*éêy]º4—µÊ•…vÊ:ò…$>q¹fðwêÔ8ÿ*#]™cøÈG73Á—â\ù V(Õ‘ð4hЙ嵺“ðÙËY9-ëDwíú’¸J“5{:Pšå¹²IÕ@íÚµñúÌ@IDATe³ÖaA©=±¥"Á2*$7` KB„¥¡eÜï‚¡’F<°¬RDñ\°+?5lXýßeI=;%Þô‰' ÖjPéü8†t¾{Ém»¦IÐïŒQ7ӵמ˜ãÚŸþKsóÍo›k®9A–l»DñÂ9®ÓUà4HU*’ܸvwŽÄj uëz†ì{II~*V¬ˆda×ĨâÅ‹Êïš 5cÆbM”JìÙ]mÉЀcøH†VóG˜&ø>þøã#«”˜è’ã„§üÐ<ôЇæþû»ݾ nº«Îi ¡ ~ÔŸ„ÐÊ]eJ­ZÕW`Z¥J9YXa“$BUQ jË–K¬}Y‰9Ü-€ÕÓ>wÀÚ‘‡cøH‡»”7mtÀ4zg&ç#„.§‘èg?ΉzzõzÇ ò•ùï/•ØÒ6 l¥«ÊiÀiÀi ½4€Å÷=–Ñ+6¨æÌ%ÀºiÓŽ`òÜöí»„jl¡ÅIêkÀ1|¤þ=Ê‹ºä§jýõ׿“„•†˜²+Û¶í4W_ýºdΖ%{HÖó¡Ù­Êç4à4à4/4‘QÙT¯^^–ÃÝ) ›%û ɺžkúô9E2·?Ɔ*Ò÷®Ð•ïŠ-$,_¹¾3 î¼cøHƒ›”MtÀ4AJ_¿~«yòÉOÌUWµ5t¢Ùˆó»u{ÙÌž½\2™¯“õrkg§wL40cÆ Í"ÏnkÖlZ’b’%ì苲«Cw\r4ˆ•ƒ’Ó²øj=ö؃Å?WãKéc-Zk7®®±¦ÍšÕ.Êš %ë<¨Åôï¿—+çi|µ»Ry¥Çð‘WšOÝó:`š {3pà'JYróͳUãêÕ›t5§µk7KŒêM ]¾4[ * 1Âð¯)RNÊšÁ¿Â…ˈEg„Xvö9Ç[—+ç4l Ô¬Y3Ù§HZýÍšÕQš(+ÉȨdvíÚ­”|XO·mÛ‡+˜š€ácË–-©Ù8ת„kÀÓ¨z(bœ.¾øØ,×6wî*¥Ï 7i óî»×(J–+q$M~ ]¸p/½ð£ÿ¢ˆ&í¸Š8ì°¦H‘BJ¶_¶ìþºÞüù«˜ü©9ï¼£$ñi‘dçïÒEXÎôÍ7¿—„:8¦¹`øpRp4à€iïõ7ßü%«üa†¿Vyô²RÝŸ.÷ýó¦fÍŠJœ_¾¼›ÙgEÉ(ˆâ:lÞ<ÜþÑB&_O¿“ìÄiÀi ÷4‡síÚ•4ÁtÏOI÷W¬Ø(Ë®@ôÀ˨µ”UñÈà¯P¡”z²®»îD´¹×Rw&§§œhÀÓhα_¿Ñ¦S§ÃÌñÇ’¥š~ûm¹ä’%x¿†fß—,¹ïª8YªÐΖbQÜó¸§NœœòV‡RUéæÍÛ˜–1+Wn4Uª”•¿r²|íS©RiMˆÂ`À»ÍR¥}4UÖCo–· wgwpˆ[n´[Uû|ûí5ƒþå—»ï»3Ê2K/½ô%C–)Ç:ÐEY Þå€h‚êªsÈE 4jTÃŒ?MãLYjåÊ zöC­jfÍZ¦¡5ð{^ QU«–5ôÓ˜æâMr§rÈ¡0ͦ Âg…‘Ë.kmêÖ âÇSqŠÝº ޽æ….s.¦x”–ƒ2ˆæ@yîP§Ó@“&5´EÓ¦-6•+—1$?!õëW1¿þ:_ÃmX-:),¨K—®Ëé: ¯U«¢–Mæ¿uëÖI@2uìêN- ,[¶,á rÀ4›*}á…‰š!Ú«W§¸k˜8q–¹òÊWÍI'¦ëÞãfr’X 0ýðC kžIÀ‚«Õ"mcDk>±úvµ9 ä¦êÖ=POǪO•+—6«WoÖ߸ø‡ÿYbÀY j›9ñƆ }Ài‘"…Í;ïüdn»í”¤6µ^½zæŒ3ÎHê9\åN©¦SN9EVbk˜Ðf9`š uÂ9úÜs_˜oì`*V,W Ÿ}6CÈ÷_“Ž«™4è¢,'JÅu’X(%K×ÑøP¸Kη°aO³f-7-[¬ÉN\,Ó·)]IO$’.X°F?Y¸„åûö=Y—.M–rN>ùdIÄ:9YÕ»z Œ0ÍÆ­8p‚Ð;í¯«<ÅsøÇO3×\óºÐBíŸãQX”2‘€(äÛˆFQœÛå44P¬X`Èb•'¬¢dß#vµ½¯i-³aÃV]ž´aÃjš,µ|ùsß}˜8+hÁ]‚Ó@þÖ€¦QîïØ±S%Û¾3Ï ß°aß›G=W:¾¢vsÄOê¸öÚ7M×®­„€ÿìˆåÜŽðˆDÏ=·…ZD<2Ã%…WŸÛê4¯4`é¼y+µÿݺu§^úì#¦¼iÓÚÂ}Üú7n5€R2÷_yåé/ê‹Uó°|¥w1NùM˜F¹£ç¯Y³I\öMm ”N<2ÖtÐÂ?zŒù×_Ë \zÇWŸš,(%AêÁÝL}…Ùà€h¥¸MNNªË …2jÏž=fǎݺÀEµjåe%¶µAÂýóÏ?ʼøâD¥jÑâ ÉæÿÝ\}õëÂmz¥9á„CFœRT˜F¸1p”’èøú÷ÿØ<ÿüæœsZ'ÞéØzcDŸyæs3fÌoæÕW¯0íÛ7 Öæ@iPQ¿8 U=n§Ó€Ó€OE‹î²–-[¯{`H)V¬„,TRA-¦]tŒî—+WB ›MçÎM°’Õ´i-M@2är ðUí¾: 8 ¤ˆö¾å)Ò Ti.!@)²{÷³~ýV¤ß©Ë˜LoféXS?øàW]ã¾{÷W„þ©›v‚”F¾‹K–¬ ®5ïÏš'FÔ¹æ#ëÍíqp0Á¥á0¥F0" XL—.]¯Ë:C%µmÛ.SªTqµ˜çß®‹ ìgÎ:«¹¹üòW„åRIF=BuÿœœRG˜F¸¬a*ÕíÛ÷˜ûïmž~ú3]ad¿ýö“ÙùééÙóu™'ö{å7uî{c¢{雿˜ùóW)¸w@4ôér¿œâÑ4{Õ«—Wå½Ùô+U*¥ ž°íCªè÷-2”2JºiM6ìG3mÚƒš¼zíµo(ÏéÕW·ã'NN)¢L#ÜT‘"…Ì®]«©¿TVùê«YÁÍtŽt~C†|+ñ¦õ lLi4 zÎ9Gºd¥àã¾8 8 dGôËXLÉÌ÷ 4QPù!ÐGÍœ¹Ô´iÓ@9LYVxÓ¦@ÿ„ ÈRÒ]ÜV,ý1šµÿðÃç¸ÅNüÊtßòP˜FPþ¼y«%Žü})‡°ë_O°†ÀÄÝ3ß~û·Ô¯5a*¸3E¾ØDD5'%;–àì³¢²æ÷ß?6ƒA¢ÚäêqpÈ¿ V´R¥Òæ›oþÒ‹,Z´°~Â)í'Ü'3¿oßS4G sç&†«ã?Dò¦j¾@ÏžmMíÚ•$¹u˜!‰õå—/WÒþü«9weNé¡L#ܧ¹sWš;w‡Ý‹+ÉÆŸ†- ï½w”¬ µS:½ö‘ŠäêvøþXªÐƒœÐV9 š«·ÍÌiÀi DÑŠKKXÕ.݃˜nÙ²]ûm,¦$>± )}1§dìCÛ7pà'šÑOü)ÔQcÇö’˜ÓWMÇŽ̳Ï^ª^­ÐýspÈ 8`Aí³g/Æ.ù‹J¡,Ù¶€û@н¿ÿû£~¤åí·Ÿêßœëß±,ÜtÓÛÂç·ÞÔ©SIÎ?Ÿª¢¹~»Ü œ¢h‹iÅŠ%ƒ%,·©]…oÓ¦íæàƒK—’¹ÐA•uùè²eK(HݽÛ3Ÿ~:ÃtéÒLë`9Óñã{›[o.ëÜ?on¾¹£¹å–NεÔ°ûâ4»pÀ4‚¾.\»Ï:DV|‚pŸý6è>´ à•8Ô&Mjšc=8tw®ýf‰>µÞ~ûÇÃŒ$­ÖøXÖ™'ˆ†ÓŠÛæ4à4*ÀbZ¬XQå•Þ¶m§¡¿Eˆ1Eà7­Q£¼Ëš Õ¸q 3cƵ„N™²@?‰3µÀ”cè×_zé2óÆßKÜéh®˜Áƒ/‘5À«±Û‰Ó€Ó@.jÀÓ0Ê^¹r£¸‰+ŠØÝ¸‹Èú¼ýöΦwïwìæLŸ6hPÍÜygç<åÉûüó2ëW3Ri¤ = A‹,ùÓOФ@¯b³æ¿ûn¶fÍ»ÑL·ÕýppH! ÐïܹK è¿¬”.]\¿nÚ´M-£Õª•S^S€é°a?˜îÝ[ øüJVâ;Áü÷¿Ÿ«a7¿_ºuk% S‡˜^½Þ1§œ2Púú“Ì 7´òVû˺ïNNÉÑ€¦aôʲ£~a†^µj93räâæy[gâ»ví?%I àG\Ówt6:5öž«ß×­Ûbî¾{”´u²v¦–ãÏ6+Âÿþ7YàåZµÚqŸNN©®ú+âÿ±Z’}Úl]úXQ‘5„û:4’øÒ5ƒÁŠô“ìýiÓ‰W«––õÿËȨlFºAAìã7ÿ4¡¼ÄÔ«ð—ußœ¯LÃèww¡Bû Øô4ΈÌÍ‘#oÐ¥G¿ÿþïà@êI<Ó HO9åðྼø‰tŸ>Ãe}èmzúPPÊF:ôI“æJç\U\YÍÕ­ן˚ϋ;æÎé4à4U @I|*]zé£÷m©MZµÀô°Ãjh¡Â…÷3˜¼ch˜8qVX`Ja,©ð›²šƈŽû‹¥õDIfí`J”p #{µî¾9 $^˜†Ñ)VD:&\F5¿ÿþõ2;/iî»ïƒ]:ÐÊÌúŽ;N5§Ö4L-¹·‰ìÓÛo_éP, Žvv:fGMCnŸÓ€Ó@ªj xñ"²òÞ.]¨Ãï¹")Ù LË+—é–5,OºpáÓ¨Q óË/óLÛ¶ ˜Î”¤ÐQ/+é‡Þl^yåk3`Àxñ6MRÔSOmõ8·ÓiÀi ûDgÿø|y$À”䥦MkÊ’£7)(eM÷1c¦¨µvíŠæ¹çº ÞyJGþÍ´ný°!˜ g% ½I6Î4t»ûí4à4à4êÀ»ƒ»ã ¨Öj1­T©Lp?#ã%ÒÇ;4y2ÀôPý$Q*–0ٿꪶæ»ïî2-[Ö“ïCÍ…¾ +Ke&øUÛï4à4Ÿö¦ï¿ÿ¾¾ð¼ôõoøð±2#_(ÈÛ4[=4jÔEfâkÌúõŸ˜¼G×[Æ•ŸW:*R¤´$c)î¥7¤M[¥mÄUùüZQî?q¦Ä—: h`̘1yvóêùqç-¸ý÷þ7ÞHÛ׿dÉbšyo:±„"$ŸE \”Rk×nÖPFap`±3›£>H'ñ,†¯Àd2xðÅfôè›´ÞöíŸëéhù¾%Þ*\9§§84Ñ•ß}÷Åqxþ,òõ×[Å YB:ºÃ‚8wîN“‘QTLà¶¼ü²i“g6lØ-<©žpôyò¹G?7oÞ£ßÙ¾c‡'…½­”ñHb¬ŠÈ2«»3-§º·DÁþööÛ$¶E|% ¶rÜÕç \zé¥i}-%K—>n‡XMwhhÀô¨£Òk*ZpÈ´·$ü”=è 4Ôéˆ#j©«æbOáx>餽ý|<ŠÁê ï)™þýû—%OÔxTbR!íwâ4à43 D…Ûµk—³šÓøè6m¼`çf/#Õ›kãÆbQÝ.ô(¯HÐ~ysÑE—k3î0—ôdï°,;pöÙ·æ–½qßò£.»ì²´¾¬R¥Š)óÚµ[Å£UBWt²D(“¦ä XM±˜ÎŸ¿J– ­¨ü§þ¹T8¦ë UÞ{h–>±:³ŠÔ¹ç¶xý¯%´ë óÚkß*µT÷îÇiük–*t…œ‚ˆLƒ% àÛ±¥û¥Óy–-[\ÿJ•Ú(«¥Õ™}º_—k¿Ó€Ó@ÁÕÓÍ›Wkü(ÜÒPAYÙµkÓ@„š%Ü'9”DU2ù—.Ý ´~U5)ªE‹ƒ$©é]ªD‰b¶Š,}r T—]ÖZÁiÿþ+ÍT¯^Í£«f©BWØiÀiÀÞ`§§§§§§4Ð+ïmذÕ8«T)«Ùö¶Ùx‰lK"ÐçÕªUQ¿/^¼ÖzhU3kÖRƒKž$×_¯ûrò¬ÿÿü§³X`ïbþÃÍ=÷Œ’8Ö”ÈßÒ÷å¤~w¬Ó@AÒ€¦én»kuppHs ”/_RA)±ò5kV ºò-±>tRˆåݺu‡®…%‚ýC­fpåÃeZ³f¡Ê90µ*=à€2桇Î6?ÿ|9ï¼£˜yäýæÁ? ²زîÓiÀi ¼œ+?¼^ÜV§§§§ÔÀtݺ­Ú2?7îwý¾u+Ì$&7Oü<áLl'< ·ÿòå` @%›ž,}ÉŽ¬\¹R¸P'F<ôCŒ¹ë®&€²Ü¼ýö·‹:QÎWY¨¦ÆÁF<ØípHc ´nÝÚT¯^=ÛWöÀt„ 2ûýSVç¸9ÛJˆ÷À¿þú˼ûî»âš%1NÔdŽ9æsþùç㚢յ{÷n=®lÙ²ZìÑG••—Z §^Ûh‡åÙ¾)SÈÒ|¿J‡^:&už5²žøÍ7ß4?ýô“Xcþ›´«ß²e‹9çœsÄZ˼øâ‹:ÀÛ“õë×O+ ‹»ò»)×?¿úê+óØc™?þXÏ}Þyç™M›6ÛQ²dIsúé§kBïÛ+¯¼b¦N*KK>,““/C† ²õÿ‰øWIÀ)#œÇM%ñåsâ‰'ÆU-ú¥?àXúú¯¡C‡ŠkºJ\ÇäBåʕԌ|tP·îJEæ=–QÄZJù8µÛqûHí‚(wþAæÉ'ÇS4Ë2}útíûã9p¿ý K» ­&ÜØwÆsˆ+ã4¶=z´9ãŒ3²Ýþ´¦ .4ü —϶â8 À€\±bE‰!:EŠÊê@Ç ýÛo¿™‡~8&ÕÐ÷ßoî½÷^óé§ŸjÙmÛ¶ýË?Gr©¤Ñ#Gþ"«]ýlXT¹òÊ6¹tvwšx4ÀĈg)™/îøñ»eË–æòË/žî—_~‰ù¬ 'é˪U«„êç›`í¼S 6š·ÖºméÒ¥ _~ùe!FÿN_¶ @ XÙ‚eóËM7ÝdžyæÓ¹sgY î>¡.Ú"”Aï˜N:)ð½îºëbÖÜ£G=îƒ>P€ ¨¶¼œ1.àp—#XAë×yHöíâ"~Ê&@ªuñ³À€J™¹sW ÍT†.QJ¿Ç*OÙ,§•+WÎΡî§|¥úÙý÷ß?Ç×”c`ºclj÷Y#1<ÈK¿B;ÿºuëj';þ|áÒÜ!kɬÙòåËeÖXBAm9/5ÛJ—.­›°0(RÛ­0¨Ì™3G-8Pú¬[·Nb„ªÚÝú‰“àwƒµ|ùòZžÔ¹q#™éÍ‚ ÔºR¿~}áõ ¬{Ìq´•ßÄ"ùïÚµË<ñÄB5RÛ<õÔSÁv1#8üðÃ…ty°ùä“Ot Z»v­tz¥Tÿüó^G¹rå´nö!Ë–-S3wïÞ½%Po6(×è@?VdÆ Â=ºK­+è€cêÔ©£V+-ÃÐÑ£5ï½7I¬7Ët=i»¬Ÿ]æ/‡§ÈW‡óò|°&Úg‰ç`1cÆ AMš4Ñg‰ý<Û¬nÔÉ1<;V+¿ÿþ»iР>s¼+Üw¿ðlð¬ò¬üüóÏúòì <Ï€¿›5k&DÎôýl€Z´h¡`™sdGÈhý裩j%øŸÕ lnAivê-Çðœ{ì±æ„N0_~ù¥^òñǯ",wVFÜÍÜ[Þ[p™‘‘¡–µãŽ;Nݨ08žçç믿6]ºtÑ÷{ÌsÀdËï®æœŽ±P¯…@ÊàŒ+Ï ƒÌG}¤ƒ –:u„Ál­°þßX);ÐéÿÑ~,TX>¬žœçè£V€Í`Â`ƒÐ6{~£+¬;7Ö vØaº  p] Ì °óœø…¾Š )1±Ü+ÎÇäŸ~Ô €Ÿr„11é œ¨ Y÷¬`‡(ý/€Kèºu[äÜëeC'²;LK—Þ_©£Øn-¦|oØ0¥Ïw'NNy¯[Lí%0ú˜ùÓñžvÚi 4ùà¾n×®ºÁÄqƒc™¡ÓÇ"BN' øÄ2AƒÇ^{íµ:p³ +( 7œdˆÅ¡}ûöº‹r$Š0Àa)Eu œýÖÂÅo¬5Vü¿±b2óŽ;ÁàÅ~+\›žè…ë`D®àkß.‰‰% .€Á¥G‚BýX¯3l%›7ïKk-ä*Šåõ­XÅ÷Ùÿþû“d üzŸíùiCḵ¬\V3€±†·Ür‹‚*ž~#Üs,èL”°ª_sÍ5:é:ùä“ÕKˆ “€ß©§ž)Ä,s,Ö|€BŒ'„pÂ$à„P0x´ X<ZxØÏ¤É qÓVØO[@¦•ž={ê{Dûq/û…ç6ï*€#!3¼VâÑï“0¬Œ1«31Þ,èï ‚¥P쬚S„÷ˆÉ OÀK¨DÒýýmÆú 8År Ðø¸mFh\3i_M÷¡Çó›‰ ýa·nÝt7÷B`‹8!ȹ瞛§Ih¶M¹ýY¼xaqÓî+®},¦¸íÉØ÷KÀz˜p—)S<LýÙü V7C‡~ë?Ì}wpÈC $ ˜Ú:‹ÅØAk. “A“LtfþÖÀÇ`ˆÕ•ë)û¬uÔHÔ-s5”¢€AÄÖÁ±0ò}þ˜má„:qŸc µ×eË1˜|±¢XñƒE;ˆùÛ`ËÙOkM³±l'Ž ±í³õ° ·!o²D©REEg‹åKÁq2!˜©ÇsOöì‰m%mÙò`-ô˜üøëód=1Æ>Kv2Uñ?óÜG&@dp"°:bQE?XÅÁº‡õÐhŸ;©£¬ßŠÉo¿íïm·ÁaåÀ km´ûÃ}r=< pCûë &,Ç<¿LNC%=ŽtíÚ5Óá„`qæYek…¶„Êí·ßž)Æ4t¿ÿw$Ùv`¹ö‡.ÐÀ7“ ¬˜áðˆk2V²ª{&¢„øÁ-ý Vd+ÜC+L8ÃMäqϽlâL±˜bI…A$T(‹”)³¿„»lÓïXL³;vìV‹)Äû6l‹kÎ7ôîŸÓ€Ó@¶50`jãX-Ámˆ Kªu³”°Ž`=!¡ˆx.;Ån=b$ñwà $Ôe­ C=8r äÚs`Ea Àš%Œ_ˆïœchÅßËÀy"µÛ‚zÜ™¶­vð³ƒz¼úµmý,ThĨmË×Uêò"¾ôÿ›$–¨yjy`Û‡ ‰µ¥X Ý—~ïÙ3_®=냻SK#qZÜx¿å‰óRÏD # ÃÇ]ˆ`©àaÅòú›—ŠÐ„#F˜çŸ^Ù¬@ˆ©ÃBÂ`d—"ñ_¸cy¸°pPÆZÖ8,M<˜$p íãC-´ö˜œ|âîºôÒ–’Ðq“èà>gˆÛ³ºVI"“Äj€™l’ï°.ÚžOàÉøa]%é ‹VO&pĆb‘GÈsŒ–I@‘‰’ 'àJp'SÞÞ že+Xq‘#¸ªi¤ph&T†Éž¬öLI^b» %n:+B›xWi+}a\ƒÍQG¥HÞ5tÁ5ð^åD"é K* ›¾ˆsÁf@øz"ˆz,ÛÜSú$ÞW:âv‡ª1ºÜÒ¾HºG_€Vî‹_¸fî#Ï û ©“ê$ 8K±t®Y³I7T¬XJ¿¯X±QžÅÌ!9~`ŠÅa‰P›Í}TõêåeŒ)!÷:²ÁCLó¼ßɦ™CEŒ‹LTyøc|#ˆ&ç‰ÎE¸ÂÌÀï&I™ö7Ÿä‹Ÿ*ÂDž~ßß_Òc/oNÕ¼yó4¤è¹çž‹«éÐÑYï^0E¼Ö¸NäB ³˜Æj§åD¤ 8ÄÕY¹øâ‹uP#)„‚U†L`jD<ê!vŒ‡ÎŠ­›ß LâܰNqƒy9°!OêÁŠCX1wƒ!Qâòƒ¡¿yX €ÁÕjã[©K) #tR š ®ƒÁ‰6>pÉ“äA=¶Ý®‘l\f|lÇ‚Ä@Œð;«“Îâ?:èž=Ûêß?ÿ¬°ú«˜ŸÍüùkÔÒ`ÝeY¬Ö Ø{ÆýÅϤˆûk $Ö:S€ Ï5‹! ‡w‚gŽzpcc1´bŸ~¦`¶€9‚òX˜p‘Ž0™c;Ï((?ÍÖÙgŸ­@Fü¦õNØk €ÖÝvíÚñSÀÆ5ÐfÞmÞÜáxFHTŒG8¡0$p«kÙ+¨ƒ„AÞcôA¼®usÓF˳Ê9üúwÎÐw(’Î8–w}p. Ê;O;±y¿m(e¸~ÚpõK$ÝÓ÷1™ Þ?ØœtÒIA«9÷‘APJÿƒ„^'mòß#ÿ¹óë÷%K`â|¾W¬XZžýÍò|–p“@L¶½ö;vÉsæJ—.®›¶Õª•S]rÂ2¥³f-ÓïÉú—ú4Œ<÷~KX¶Ù°.¼uÔ‰G/Uhæì³HÑ¿ÿ *± òÎ ><èe'ú ®qÓ/ÄsãI%DÊ?Ù£ ׎: g`†÷ˆ>Í uâIEÐ'ºÄHDߊ·’>‹+ï-ÉŒV×öøhí¥¾HoÔýCÏ£ÏÚ°-€'Æ+&¡´· ÓÑ嘶P¦•ÿ7ÀÒÿ›r¼D¸ŒVx0I|"Ù€fÝíìgPÆBÂCÁvL÷ÖÈãÏ õ2˜ñ°3 0àû…›N¢ ƒµJ;CãNd0½GÝXw2Äză* $€^€‚M^¡ –_^Lflö»=–óaÑâ¥m€cû’“øåp[ýûròUTz÷>IÿàõcÕ§‘#'ç¤Ê|y,÷Öoñæ™óÿ¤ø£î7µÐ³I .zfõ<×Ôc€Â$ ÛyþŸ“4k™ä7õòìðî`e·^ö!Xì@çOdϨ@’¿Ýþï¶ 7ÿ̛ډÕ`͹ÜXû¸&±ôÄsÈå:h§_€T{,¡F´nÚN"™_¢é Œu‰vðžSÖ?ñäºHÊb€!TU(4r¾HºgNRõ†>/LHI„ÄÍ`î¿gô=~a¢ãŸìø÷å×ïK—îµ2&+V,)!›5^ÞZBíµcYµ®ü¢EÃ`µpáBj%]½:`u­S§²ôë«íaIùÌ }¡?¼K¶Ÿ·žDƽT¦™‹´Š! m½Exu01yeŒ¦Oá¹g¢‹Ï;Ky@-ý&Æ%ÆDB…pÉÓÇðÎÙ d<7 #Çjƒ÷–Øq¼'´‡>…w‰˜ú-ÚÌû 6‰ÕÞhoŒíô‰Lº¼®x˘äÛÅ8`ü c( œ‡ë÷ ÏBA¢£+ä¿ødg`ÁtÛÞf˜ûÏ ø#[–Ž?T¸1Ì(º±„zèÐCA©=ŽÙ—”Úíñ|2Ð@8Pjë<úA©ÝÎuR ûàÔ”†+—Û?¼¦XzϵµÏSæËsà§¢#²“ÿByžè ý Ìî§S¦S¸Äê@ñ …“P€®Lv·qnÚiÏÍÄ*Ü;Oý ÿpúà݇¿7”ÆSo¸2Ñtf÷‘dÅ÷pÂ{LŒ<}A8Pj‰¤{ú H÷–É9!H~Pjë+èŸK—®—É{1uÇŠÅ”ØÑU«6IÈÇÞ¾uÏO&»ÜŒEІ;âé¥,0­];@¸Ÿºåg,|°þamËO4sLìð2ð‡§ï“pkD»Àõ²†¡†dCÀ€Ýd‰ç„ 'u±&u\¼÷Ï+†.&ÖLBñ^€1^#0$!ÑÚÅ[¸ö@“iC’І. ŽŽÎ˜ð=n8-&`³>Ü‹XE°dW˜°Î„ ³^òp އ4\ÙœlÂLÇ“Ÿ„SœdO 8tvÄ ú]¿Y­ €âÏJ·Ç3‘!á)œXp 4…;.¿o‹¦³D]»Ó}¢4¹o=K–¬•‰O9]ŽtÊ”…29¨¯…°º±ÝʦM±À.QŠ•!îñÓ:u* 8Üë=ÐIú‡5 ãñÄùfΪ † ,‘  €‰¡Æ²iàe:<ƒÄr³cá9XMŠLp±n²C €ÀHEgÛë¨ÍAÁàDX•Mj$¶&­½xNÀ¶Ç£Jñ¦•ÄñÏÑÑ””«À“{(÷`÷jŸ"˜õý.Q[€$…H‚5ÉË©\N·Ã&àÄiÀjÀÒ¢ÙßÙýdã/TpME\~¡î‘ʤíÑt–(=8Ý'J“ûÖ³dÉzvÌÔ‘ØãïÅbZ*XÈïÊ'É ±IOÖ¥oW¸ã8k1­U«’Z]—-[LŒ Všà/–iÅZâó#Í.jŒ)«Íž„«—=!)ÄYú³ô181‰ÆÞ«W/ —ÁØä¥¨²ß?I·`7;·ÉïÙÁÃjïuÙ¶ð=Z{ “²±ï”E¨×ÏÎØøÉÀ^À±eäñÃ÷‚DG—«®üPE»ßNNNNNYÑ€µ˜6o^G¬hk5AŒãqÙ“]oeóæÌÀÔZLqï#‹i ù W>²`Aò­¦ñ†iaÍ›(ì1€9¬‰¡4sX±JÞHžµa~º¤¬ÒÌùiÉü”jÙ¥™S¥Ê?<¤„ûXÆ,ÆÄ“7bÿÈÿ Äv€, ”}¸û­×Ç&eúA± fWl½±ŽÖ^&Äšûãé¹/V—ÜobT­øYMì6û  [áØütt¶|VïQ¬¶Ro¼:±mHƧ¦ÉÐjÔ‰;káÂ5²†ú]¦ôé§?“Œê÷…í`U´Þ5ÑiÀi  j€L|(žÈÀ/R¤°¸zi2S… ™ó6nÌìÊ·ú²¯ŸpK+ý $7ʶ!žÏüB3g¯PiŒd[Ú7èѰ¢²Ú!.˜(smÊú€‹J¥dPÇÙöEûŒÖÞXoXaIN%cß.¹nÏeãò¡¥Ø::º€frÕ•ooFªNºB’°În¿}šJ@ýœ9ëÄä¿7£ŸB)°aÆíâJØ*®ª­ò¹Eh)ª Vi™¹+Ã:ÍbµÍdÙ>ñ È‹±Ÿ0œi7»O§§§”ÓÀ´F J¨8ýöÛ¿5ó¾té½ÖR½aC€¯ÒZQmÒ“µœ’@µuë^¾]VƒJ`j-ªéH3‡+±× ?þý73V?–'æº'›͵²°ñž$@“0J HPܳ ¡Q±¨ãì9íÄþæ“m¶m¡ûùºÍ­½”ÁbMûÃQ¼±hTw$5eH‚×cÝõ$zÀ­5™DIGG' ”žI$‹ÎcsAþ+]úH¯bų¼B…ІÕCÙ²Ç{Uª\é•-{œW´hå°eòB²Þ»W©Ò9^µj7Ê_¯à_Õª7züù·…û~ gz ÊIÈK™{˜Ï;gÁëïd¹Õ´|½7oÞ®ýØçŸÏÐö?ñÄÇÞ1Ç<èÕ­Û×;õÔ™®éý÷'y}‚Û„§Y>}±n/‘ײåCÁý\ð¼×§ÏðàïX_„ÊIû IêU4Ûû%9Ê“Ë}Žë¡'Ùàž¸ê÷Ù'ÉFž$ yB³äIF¼'ôŒû”‘dOÀžG=bÉó$i8XFˆÑëbŸ¸Þ= îKô‰Ïô$ÞÚº}ª–l|Oâ4ƒÛ%É“Ìyý-TO\øžXXƒûsãK´öÒV®%œ¾„;Õ:¨°MdŸÿ:m!¡Ãò$„Âkª'‰}v³~ÆsÐ)Ï@8‰ÖÖpåãÝÆµ0ž0¦æDö±˜’TÅCA–3Ö ÑùŸB¸{›ðŒ5–™yf5Á÷àƒ¿ÉÌ«…ìk!%%$û@)€ÐP…§ëÉ-}îØ±Gè¸HlÒýaáÝo¿Â1OOb@Ë–õb–Ë  *èÏ|~¼¯îš"kÀŸ<¹TêíÁZŠàÊGÚ¶m ´KŸ¨KßÒBéùy>q¤Vöµ˜Íd1­\¹´x—6ÚâyúI,&É.ÐÌÙ'ü "qÊfû·óÝÒÌ…n÷ÛÒ¢…ÛÇ6,xɨù '°gøÅÆl²ÍRÇù÷çÆ÷hí…‰ƒ¿pµ¤µ&‡îg_8êIKGZ>ôw¤{3Z[Cëϋߙ—´€@jk^Ï‹¥Â9‰½|ñÅÅå½Y\ ÿH|Èõâ: t„¶}Uª4zˆÀòjË—oš‹…ÂÑ:_x3Äl´®-ÏÒŸy!ÂÆ%ÁØ‹…¤û¡ÝX¢ÄÓ±Úñö®ΪêëžOš‘îîi° •P¤SBA@R@¤DA)•TDþ4Š”ÄÐ!Ý}¿µöóܹ/g†yoòìßoæÝ{Ϲ'Ö{ófßk3S•kOŠÂÀö¤þ™OŠï»ÙsÂC€ÉN”9\ßÇ•+çS–'e¼©S˜qïTLuÒ“»+?")…Ši|pås†fÎùNšcO;I~ò|Çqž;w&…'G˜¿ N#&d"bBÜËÕ=ø` õ裬Ã/C Ù.Òæ÷#~f(.†‰âºtéf”@‹ˆcò1]H.•*• t/Á²Û|p)¼¾´='…ÙÕ´–#Vf!8â6Ä›/hÏušsƒ€A é"@rý´iSÙÙ÷Œ ¬Zµ€¢c5:TLTRš¿TÓFñ{‘eMµdΜSW%(}-®^5ÍIçgy§ÂÄÖ®÷R¦1Ò—hª³˜ÌëkÜ`^#5¤&§渑ER|–IkIïQL0ò²˜Æd°Är/¿ìòçÏ eô8ªAÜFé³K°€¾…JÝܬŠcÆ4…Ë|§TÑ{§ëÜ¢«Ð¶î˜m0Ó§ÄýeP»’ªU«(B¼“ªôýÁ|å>:t¨¡¼Œ(Ëß}÷—ÌíZ£ûLÌP¥[lýúpìs è-n¢Ôb:Ù/-©+æGðv»ŠŠûÝæÌ `0„–#Í™3‚DŸ3.|¯L|åŠ{q*™üÓrù²K Õ„ûL~¢²J?­¨™3‡ÅÅT¯Ù¼úF€\ N &ß½‚•U¢X(ÈHh0S?ø–(‘ÓV ©œ2{³Y³w@q±Í¾ƒ#C†4´ûÙ ÿð>Z]¯^½.uç[¶œ†Rkßxv ùy¶léQ®#²»¨¬YÓÃzêþ¶“}€ÕSFŒxY“½Qn,*tõB|m]ÙÛŒ¿‚Êc J/†õxJ•.Fû&á ùâ̓€Aà?¨˜fÏîV•:5ãúÿÞ-—›_ƒåI–¯Ó´i]yÚrª-©Tb/^¼*Dûz óuèuãS€£œ¼ª,û‰$&›{–! º2yKYÝÉS6nÜ(…BH¥…%Läüƒý.\¸ ´RHú‘®œŸ|¯TbÉwJþSÒQ9…}ÉJ}Oá~˜Aˆ{”ÇŒw %¸c'èÑŠÍîæþæS5¿ÀÚ·Ÿ…D™Bߎk ÔiN·¾¾6N+)-Ž<æ«9V®Õ¯_€CT—.u pÞe+¨´¬V®ìr‡q!äóãy·nuQ©«G¨µk_Q“'· êºuáªgÏOÐg$¸G¨Î?@­ãøÃßg¾Ôcå4“’&tå;ËŽ…ðð“  OK–{⥜• Ñ/ ¡Z1õD1¦] ʳݜûF€Š'kÛ“¯“Ê¡S†®š6mj_¢òW @Qy‘ \T0Y)‰äòÌqaA y?óçÏ/QÕ«Wú(ò}RXíéwÞ‘c*´LJªX±¢$1 B'‘•îwRP1±›´L?þ¸­@“ÌŸsשSGæbu*͵J¥–óÞwß}ЉXLôT¼¹Ò;±}üøñ¢ˢ̯!`S?ðQ1½Žì{§ðCɧ£Þ½?EySWÜ•º‰[ˆ;ÈÙ×yL7QºtiÔ‡v¾=g[l3®jذFjùò~ŠVa,_Â"K|bÜí“O–GÌêSjÙ²>xŠ +pO(¥µ$¹êÝwWà æm±ª6hð–>| *vlV:‹6¶÷iæ3´‚z*¦{öœ@ö{ÄpÀ‡c ½UT0uö>¯Q1¥û^ ¿ûœ¢¥âKœ©smñí˜VGr’’_4oÞ¼0LLS-[¶t+éÕ5oÞ¼YúJª<ÕªU ‰ÇïË­£F…“Š"-«Ù²e“yœã‚æJµiÓF”NP áÓ2±È:ûlß¾]uïÞ],³T”YUŠV[2têÔ †š.á8©Ø4[êµ×^“ÛAµ%×-Z„œ‹H€ÎåÖ>.^¼¸$ÏN:Uë&Mš€ç[ÑìNæ ZÅÔ\EŠdC‹»[ÂÙõµ×¾ý—r©téÜøp× h5;·3ˆtÓ;‡ˆÓãâÅsà¸/žt›K‚@™2¾);ü-’Ô,U«D¥Šz&ðçŸ#QEj¨(éåÊåÅSä^õ ÃÂúªªPað™ƒ/œ•Ãê©ðû›Ã\7 N¨˜fËæcº{÷ (DÙ%ìhîÜÕÒýøñsbÝò´˜†…E(¦ÎqyÌ8{ ÝùF|#@mèСRn“¤ñ,•Jepß¾}jäÈ‘*}úèÿëØ±£X;i¹lÖ¬™ß§LN«'h‰d\'8BÕ„ ÜFE’kzõÕWÅZZ¿~}Q–H§>X…Rˆ‚Ê6ºæ©pÒÅOåšs2n•VÕï¿ÿ^n§âMë*+RÑ"Û¿ç°öqÆŒ¥r­Á¬ìDê'Z‰IoEE˜Jµ‘è!`’Ÿüà•?qwŠ™1ãTTºwK¸è—8R>¥{&Ñ¿cÇQ(hùüÌ7—iímÛö$eU÷}LW‘7of<=g–ñ8ãr·l9 Êè† áp½ü,¾dùòåbeyÒM›6ÉÜTPûí7»{öìÙå˜á´–R<çð7>•j֪߶m¬å.ö† 6 \÷x?“ã!&ƒ Ëq£B…JMêƒ>‚-T‚ûöí«ºvíÊÛDãÊ“šü}¨©tfÍšN¬¥ŒÙ¤<öXiüq”8Rò›²ŽóèÑMÕÀK|)éš7žŒ'µSfMÜMùò¹,ªTпû®¯0,Zô‚êØ±¦ÄéêXÕ¢EÁâbX²d“WÆmâFÉìÎ `ðDàß]™ÖÎ(*¦´t2žBCÀǯ†kö,l÷¸}ÓÚêTLoÝ‚eÂïr-ŒA5Š©FÃû•îõ7ß|S²ç™¤D>95Yמ¼¨/ºóÀ2!êï¿ÿÎQ*Œ´ FUXõªW¯^â /Q¢„¸êYñÉ)Lf¢rÊ:õT^¿úê+ÅXϨHÆ Å2JNW† Ð OÞW†&P7n ö™/Õ¼yódŸþx_™ÕÏù™ÅÙƒâáh¶`D¬J`$zDüEFï¾$Ñû¾û²{%+Qá$i¢þ÷¿az®ìöåG«)Mú™2¥Å“S';ó„ü$¼gÛ#¼‰ã­IÃÈ6©­ª/¼Pß-Võ­·ZJè^|ñdDŽ«Á+b‘fHÀš5{$T ²ñM»AÀ 8`Ø…-,|R¸p6;©‰ šôd‘?šî}§P1uî_»vC¾»S¦Œ °§’kS'j¾iidŒ)­šL"¢Ûš ¡Îš×wñ:Ý쬬G{… t“¼z~øÿ‘? ²Éûi½Ô±¤lÓ÷1ÆõóÏ?—6ŽÝ¹sg±œêŸì§Çã}N)[¶¬¬ù½÷ÞCþǽào(YûŒW¥P¥"Τ.*—‡óyÊÖ­[ÇhÑ¢…Ú»w¯$Wq¿ÄÈÈ!`|¥pc”.cG…”º˜éêÒ¥¶Û“¶†±’Ç7¥Jgyê6>Á“tèÐE°ΖġAƒàïÛ•¡ïKj¯:Võ©§\_b¬œõ矇$€a³fý Kô9I6ccwu¼jY’\f¿$ëØ3AÉâ³sç10d·Ã£‚Õ£G=Ä.S%KºgQŸ9s –½ˆ˜Èk×nºE©˜šÓè}œHÿÄLv*tž¡t—3ÛYð´l2†”ÖD-:ÎSŸ3Š?Æ’RÑ[»v­P:q-ú¾7n€má’$Fqì°°0I8Òqªo¼ñ†¾E^©à:)Ÿ˜­ß 5¼¹F*§Î9x΄+¶ÑRëlsJš*®ÇŸììkŽ£†€QLàDÅ”‰L|ꢒD—<ÕÚµÇÁ5ÿ»¸Ÿ}ÝÞ¾} _—å¿T'LxZ)–ÿd ÓiÓÚ¡B‰÷“˜ßA’Xc¿ªT) ?z뇟váÿ)«ûÕgŸýO8Ti)_^+ªùä8T1´z-æÕ `=¤qò|اbúÐC%m‹).ÉBÅÔ3dÊÓbÊ^§’Ë‹é¿,a꫌)ÿúSê"›±žä:õ'Ì´§BÌQfÞ“LâõŒ@IDATĉrÍß=ž×É$PµjUÏËrNe³dÉ’>ÛôEmÕçæ5æÅ4†tñKYž|*×Bké›o~/Ùç3ºÇ¼è>‘½>óLEš)’Ó?ôРRjç¦xEvRo§e:W®rªQ#W¦$‹üõ­ªûEaýä“5È„üVžbù€Á¤*ZV™`U´h6Û”Ôq4û7$NŸvWLI¨¯­  ¢PÙ¤"Ä‚(ü.8xð´Äš²íĉó°ŠE„ÐbêªÅV—0Ɣʭ‘„ƒyOI)õÜsωUvðàÁ’t”pv`VꉀQL=qœó除øžòâ‹!®e­(§$œ¿S!Á=ãN_|ñS)w:th#üqÕ¾Óá’ô}táQñtQrÕ,øK+ª|eÕåË×'”ZÓ´¢ÊWgìY’ÒlÞ O8}ú²Ûß))ø(tÏkË'Ýð{÷þ+×ùð:dÈ"Eé³g/‹ÒꤚbŒ©¾OnÀ/†UQ©5’p`¬è§Ÿ~šplV)F1"ïL~¢[Рª]»ê¾àaóîø c¦XÇž =£F-EÉÐÝàm{V’§ßiZ#C€I>ZJ~Ø—aÛ·ý/€dÈ[ÔÛoÿ(1G¤›¡5U+·ŒOKžÜäF†±i7Ä´Ž:]ùtã“—”\¥ÚÊI‹)+A1Óþõ×›#Aç=dYÿ…䕬²L§bÊ{œ• Øy «°ÕˆAÀ ZŒbz‡ø>ûlU5gÎ*5bÄГ…ÒcSÕÊ•;T:Åîp¤ˆÛ*W. 5ìûô™'ãöïÿ˜êÙ³¾‰‡Œ€(èGŒæ{ç|ÿÈȤ42üþû?jæÌ_ŽÇRˆ:V• kÙ²y¼,.A_ Ð `øÀ˜!CDL?½,¬…I’´˜òï·P!—‹ )LV1c¥$6é²£¼‡ã¥OŸFß.¯.ÅÔh¦n ˜ƒ@,#`Ó^­Z!À—‘'òŸ×/%òŸRzíµ¯D1š:µµw_ –ln ÍàÏÓOW–Þ´ÂlÙrP¬ª›6íÇ?¹_‘ýyNÜ…¤«" €ˆIXG–fº’,—.1><¢J]ùô\i¡bJ÷ñ¾Ì3`Àc>‰ýc:—¹?z¸èª2¢ZHY¹ñæÍÛ¨¹|ø¿2lÄgâ{iã?ETÅW“X=¬Moƒ¸t麸ãyL7>•Hz,´ÐbzôèY©Üä¤÷c;i¢ÈÒѳçÇê“OºJö=cV=cLõXQy¥¥”~Œ ÁEÀ(¦AÀ“•FH5rä—È®o„#† Ǭ^½ˆ6l±”âdb##ñfð³*´µ†ÂhU¥E•?ÎĪR¥rAY`е¾ãÏŽÌJ ñë×oIq~R¶o?‚R•™mE•טuäÈY W±ü÷‹ާŸ®Z¡?ÔØ±ßHIiºòéáp ¹MI=gÄ `ˆ;ŒbìÉ…7räSPHf*f{ÓíliÙò~©Õµë\ÉÚóÍŠ.*#ñºðëÕ+.?z•LÌp…ìG¹»Ý  ûMþá’ÚÊeU¥²šW’:ô?a}¯y5$UèÆ§„…¹êoÛvD‘Ú))R$}>ä9ÿvÈKJKjÕªðw•Gõêõ‰7q¹õ#÷9ÖõëÞeJs˜cƒ€A ôÅ4H?üpIQ@Hè¼|y?qih{˜¢E³ƒ“¯$[uê45~«A!~Òd†ÛÅïƒQ£F¡:Õ_ö"Q¶YU®üêâÅø9§Ö¯?†‡-(­ê²Ø¤M{ÿ@OÁ‚s˾Ç$n ,¨Æ—¸7y»ÓõëuŒ)ÓfÍÜãØR¤¸KÜõθSNÅØR*§yóf&?ÿ<ˆò•ó$&œ„N!é>CŒ q‡€a"öäÊ#¹ó¬ â¨îCñKóõןV³fuTß~û§zøá7ÕŸrïdÎâ%¿þú+’¥6¸­-Y2 îÄë͸ˆx¹ÓPT!éí˜gÎ|Õ(¥nh%î“?ÿüSýøã‰{“w¸;])Y²ÿ“ÒýûOÁbšËm´äÉ“©S§.yYRÃÃOI?*¦”áß°ïõä,½zÕXL$óË ‡‹iÁ/P ‹êÖ­èI–©ÆË…”â‰nüòåóJ9ÓFÞB‚Ôã`¨k8Oƒø~†b¨|P±¶³ƒ€'T?ýô“çes´bz×]wIâ“’Å2œBÅ”™öžS 2e ³«é±*TŸ>©Ö­§«—_^ ¾þº·]ê”Ó”)Í¿E'®æØ Û‹iñŇ…´™¡B-¬bòùçÝQµ(ÃÍ›¿ ·•+ø?Ôs›ñ ƒ@l!pë–‹ôžI†d¿ Q>«;9åÚµë¨ÚtÛËbJÅÔY1Š÷\¼xM­¨àRAÕ¡L~J•ʸò¸šcƒ@l#`Ó #ÎÌÐ1cšªÅ‹7ª_ÝäÑ}×½{]yê'Jýú¯«… ×ûîh® ˆÀíÛ·eÕ´vþý·wâ/_¾Ž"'ɼ”P*¦… gsÛõ‰çÁgšNÍ›×M:tÊé QNi1ÕåMÝn0'ƒ@¬!`Ó@ýàƒ%¤"ÔàÁ å;‰+¤úá‡~ê™gª ëôSõÜs*Ö7b0:NW>-¦žñ¥Ü­ ´¤’ßÔ).‹©«D©¾~ìØ9ESþüYP£‡T‹jÑbo¢ºTjÝͼ q€€QLC:¡øTþöÛËC4ƒ÷°¤­b%ªÏ>ëÞÌpU·îëÈòÞáÝÑ\1  »îr)›´œ’\ß“*Š[¹páªa>K”2¼©P!wÅ”VRÍL2þ… ŸW{÷þ+ˆ¤LixLÐGÃ,5"`Ó½©9rd@BÒc ÇÿÉþ ÑT^ÃÖ¬YIÔ’ŠQÎ7—WGsÁ .]º †ùó=‚Ó4oÞ<0Tk5 ÊûÖúXµÿþH—ïc U?b÷ݸq#ê§? ×maTû¹nõ=AiW°ÝÑÏÁÍ›7ÕéÓ§íÖY³fÁÑË>7qƒ€NHb)Rršz*¦·o[Š„ùéÓ»æÓZÊ8ÒÂ…=ÓÓ¶bÊ)’M½õVKÙ ¥ãÔˆAÀ 7Å4„¸wêTK¾ð ZÂY|ÍŠ&¬õþûíÔ7ßlÁ?è×¥j”ïÞæªAÀ_~ùU{½‚x…I-[¶DÍòŠ<¯ 6„—ámU»vmdXŸ 8Û¿ûî;Ó!´hÅt×®ãHZºK+QŠ”3ÿóÏqª¸íå†ß¹ó(’™’+2¦8…Ó\¹Ü“§XƒÂÒ§ ¾¥X ÈAÀ ûÅ4„˜Óý4~üÓjõêÝjÑ"wþÊNë6t£FåàÎ$†¦M߇ß!–vëdNâ%‡BÜÜE¸(/à3´ño®ê7GU¿ýöbˆ] W¯^U´êvn†Ç¼¦,öùù矑8ò·Xœæ}zkË–-ÖÁƒ-X‘,(`öØÓ¦M³’½J¬5iÒ$+,,ÌbŽÓ A ”ô6l˜\ãýÿ¾ûî³:tè mEŠ±ÆŒ#Ç\CõêÕeÌ)RXiÓ¦µ.\(m­Zµ² Z÷Üs½VX,¥¿¸ç¬Y³Úç™2e²zôè!ç°Z2d°`™µÛ¹6#° $Ê5ëß¼y³¬ýŸþ±,X ÇË—/·ÇÑûª_¿¾\ò·(î‚#1"vûöí¼+Uª$÷qM,S§N-{â=(ö2ÿ“O>)÷r îJº´Gå,»VÅŠ£Ò5ÉõÒhåÈÑÛzâ‰ÉV—.s¼öDS«té¡V˖ﻵñü…>v»†XR  Ü®/Y²ÑÊ»¯\»zõ†Ì“/_?|Î×»õ3'ƒ@hˆxŒÄ7©‘Ð ðòË ¤ÌÝ+¯,ÍQ•%üV¬¨òåˬžzjªXO™`$þ"åH,tÛ¶mƒ«ò¦z÷ÝwÕªU«ÔñãÇaJ&1 ¹sç×7”3{#´:BFÍð0åSÜät}³ú­‡´FÒJJ÷ùˆ#ÄúGË¢§µÓ\ ­´Ô>úè£`~xN,ºì³}ûv5uêTq{Ïž=[ñgéÒ¥rû#<‚B/Ê11f󡇒sÓUΘP(€ Š7¨Ï¾F|ô(P‘UÖåoýö€8Ðë®Zµªó²3K Ÿ[X‚¯½T®\Ö2†\Sþüùí±®_¿®Ú¶m«ð  Îœ9#b®±M›6b-Õiu¥Å™VUZQ-Z¤›Ìk ÐÜ¢¬âT¼¸»ŸÃnÚt@èŸðïÒm–;Žzõ?tÈCœ;·»+Ÿäü ¢ÐB;}z;Xák)(¶RúÆØaXqÛ€91$AŒb ozXX*¸›‰;ÿ矷ÇÂŒþ§ EÊÇ?§&Mjš”u{ÊP#ñÖ­[«ûï¿_\Ô… B Ú‡Eicb)ºœ)ìG¥“®h*Ft5Ã’‰¢Ôˆ¥Ë…¶³ÔG}·f‰É䘰xÂõ™V ì9sæÀ…ÚXÖÁ¤¦@ë×ãñõÒ¥Kà°L.Џóº>fèy-ö¢û8_@¬y,ƨ”RõìÙ߇Վ̯½öš‚åYb]Ë–-‹8Eó·åÄñN™)O÷=™N<+;Ñ5¿}ûÄßmWˆâ¿$I€?gÎïPÂ#¿!–zÐ"ðË/ƒ?WYÈ3U×®¿XÂ>˜ÓÐO%ìÇ”ØGŽME™åTب–/_^¬t7ÓrJ ãûï¿/ŠãWéV÷':•îûÉ“'+ZWË”)#Ý©¤1ž.ó¡C‡Âºt]!ÉJÚ>ûì3É’×ã8Pb/if¬*-£ŒGe;YxÎuÕ­[7àúõx|¥5”a®«_¿~¢@")Lbp‰ Ýê 1Ðâo/ÚzL÷¼¶FóZJi!=z´âþg‹3 §pZbõøæ54dÌè¢trŽNÅ´|y—¥ßù GKjÉ’¹œ]åxïÞxðñ­˜fÍêm1Õ¤Nœ¸OãA¾-¬ûU:ãañwg Ð}Í«AÀ pçÅôợ;›6­„D•¢ê¥—>‹µr¥QY(•æ)SZA¹è¦6o> ÔXÔ‘þ_Tn5}B„€óŸ,§à¹ç5çÔTòñ®Í/‰OlC¦¼(…ƒ ’cÆÒºØ¢E ±°R‰#McM_}õUå´þq.§üž%J”P¥K—–ä*œz=´p2æ’$ùs':nÜ8IâV"Þ•ÉPZf̘! 4ÏyÌXÙ'žxå$Ó )>•ÆáÇ i õë¹õ¸T¾y_©ˆRq¦RÊ$0† PÖâo/Lž¢;ž 7•cñaHÄ_ý%ûçý Uà^ý ïõ\£¿¾æzä0–4mÚˆ÷PßAÅ´bÅüúÔ~¥Å´T©Üö9XÚôÀÓ œò¥˜Ò•ïÛbêäÉ']òeÊäA è÷Tÿþ_ I/‚ÍÙ× w€¬Fbd…ZEŠ ²Fþ*–gŽÚt—/_³Àw*Ô)MšLµÀµM¯€D—.*à`>ÏhA³@,ïÕŠ8H¡`ç¨W¬”²ê-ÄhZ¨¤dÓE9;Â’hÁ"jÁR(}m¤‹"M¸I-¸º-Ät:›£t .U ™ìB}åë†@ë÷ìk­Ðh­[·ÎBXg³PZùÛ ;#³Þâ|¾!¬ÃÖÎ;-âL1tQÑ,P ¿Uµê(·Nà#ê'”^¶ øÂB¼¼´#æ /Yàv믩¢À{êv'ùó÷³H©ùúëÍ ©fU¨0ÂúöÛ?£s«ék0øAÀXLï@™é-¹reýHcÄÖ­š“˜ŽìûÓ¤I©FŒxq§½%!êÁ' PÀ·†˜?Ø@q<ºðû÷ï/ù]»võ™¾š5kŠUÒ³‘VNZRYëž}ô9cYýeî3Æ“ÖTí×÷Då•Ì´ä23ß—Z¿gZFiñ$ýü‰¿½¤J•Jª?ùº,*TPE‹u³&ûêk®Ó§/É÷šÝeH­Ò*¸bu#‰õIïTº´ûç‰%J)… ¹[LÏŸ¿Š„@W•#*¯ ”•0¨5ЍÎ?PÍš½ƒ"G¢r«éc0øAÀ(¦~€ õåÖ­«)~™õîý©|!†z¾;Ÿ®ªo¿íÊ”ÆpÅþ†˜¿×ᖠƹ“1Í=¡A€q¥LÌar“33<º³•,YÒ-{]ßOz)*‡¾„Jì}5ÅËkö/lJ.W’Þ™3—Ü(¡6lÇCBvX{ÆøîÜyLYÏÔ¤û™<›¢|ά¯¾zQøªÉ¼²pá:<°…Ò|=Êc˜Ž„€‹«0v?Tb,¦¡B6 ãòËuøð'½Rmذ? wÄ]ÖŽ~ÿývHŽê WÕa¸]Ç!Éä'q—ÅݪÌ̃@R@`׮㨖M¶ª+7ݼy[5uâÂÕlEtË–H€Ëã -¦ž¼¦ìtèÐ!×gSL¥I“ŠH¶{ÿ¸s€óôó˜gî7Ä+È7ˆV0‹5Ó` ƒ1Z¶¼_8DûôùTýðC?)]ƒáB~k:Ť¬é´i+à¾úA}ñÅZ”µlꔄãÊ 9Hfƒ€A ¨ÐÒÉ ûÝ»O€Ò츪Zµ h»IÜi¥Jd.’ë'KöµcÇ1õüóõÝÖÀöÝ»ƒ¯ŽÛužÐbêY¢Ô«S4.°JUݺ9Ô(|G~;MWƒ@üF€L)¡c1 5ÂQŸ.}V7îÛ(ôŽû.,ث׃ú WUvÕ²å4¸ûgƒ†åTÜ/άÀ `HtЕ_´h6ù¡’JY·nŸèëD&RA‘ÞŒ4Q7oÞBU3÷*f,EÊP~gy -¦Œ=5b0Ä=Æb÷ïT&5ê)$BÍC-ô’¨…^8¬*ò%0aæÌPPwJü)+GuéR[½øâC^É‘–4z0Iéé§ŸN›5»ŒL^cµ.#îœ={….Š+ŸnøÅ4Ì .k)ï{,¦w©ÃÅ-ïY!jçΣ¢¸)â pÎB‹iµj%kmæØ `ˆ]ŒÅ4vñö;k×?öXi(uŸ*R—$$©]û>õóÏPñ§±úøã?TõêcÔgŸ­u«œ“öªµ’ÉYk=Tó˜q&¤¸ eBAÂDE‰ûžk/Rä^±vê ýõë÷A1ÍooëöíÛâÊg¼~ùòîôQì´mÛëgñ.ŸÕcKiýô$Ü綨Ìz–(åuMº¯ç൤(,¹û /„|ë¨ïàcn?;wV_~ùeÈ王 Μ9ƒòãî”a3gÎT,!MÎéB… Á Ó^ÇŸ£¼çÏŸoOÛ«W/äbtÁg.9è"‡«nݺ©ððpä—<¬Þ}÷]»_ *òmÚ´‘.( ~ß‹ŠŸÿÄ"F1‡ïä°aT–,wKU¨x¸¼h-©fÍ¢àò{IMœØO„Û`0ZÊ›^¸°âh£µiÓÙ `.Å4¢„(Ý÷{÷žpsãs2få3QŠY÷$ãwÊŸ’ÓR¥¼]ù‹J)ÑâRNŸ>÷EÁX·n˜Z\åSiûý÷ßÕ¾}ûìå8p@±¿S:„ýŸµ/mܸQýñÇ(+}ɾÆ*1T@O:¥8öþýÞÚçÏŸWçÎOõ ™›V9-´þiëÜŽ;Ôš5kÜ,‚䓽r劭(yžsœ:uê äë ù™¬›ì×@ëáYzÛ¶mv¾OÜÿ±cÇw¶O™2u†¡RØ× 4{^JIÃúõë«~ýú ¶0æûÆ÷”ïÝ‘#GD±§âë¬øÇ½pÿ›6mrËõˆÊíÅÇå@3A´•'ÏKÈ÷ãáêîlIW®\·Þyç'«D‰!òÃc^3b0|!%ÂÊŸ¿Ÿ5þ:»±ëV޽­¯¿Þb_ãA«Vï[¥J µ øÂí:O¦LùѪTéU¯ë¼Ð£Ç\«]»™>ÛbrñÓO?µ`‹ò}ûöÅw~ì7¿ÀõÖÖÂÂ!ç¼öúë¯Ëx<ð€åÎJ¬•,Y2|¿¾cmÙ²ÅÊ—/Ÿ† aVîܹ­íÛ·K_T=³2eÊ$c³¥J•¬°°0i2dˆU¾|y9†»Ý*^¼¸ÎJ+eÊ”2ÇŽ¥ ërŽdN»}¡´I;”Li_¹Òõ¿Ëó<{öì0éëüU¤H«Aƒr J¤Õ¶m['Eв·qãÆÙ݇*{K•*•ìL',‡”uÁ…Øé}²/ÊŸŒˬŒG<³fÍjAé–vbÿÐCY“ذ}úôéÒÙzV¬XaA±<ˆ9Üó”_û½ãzÆo=óÌ3÷õêU×ùkóæÍ2çûï¿o˜Ÿ ÎÁõ¡¼²½/<¸Èp¯¾úª`Â÷ŽýªW¯nA™•¶@{t®%Ð1qåC)qûˆdøF€åôúõ{T±´c£ƒ¤NBõèQOØCwú¬¨?€k´úè£Õˆ K}úˆµ” tíBë%iæ´«»uëÖbÕÓVÕÅ‹K<†båÜîæov‡xp`Óxð&ø[BÏžõU•*U÷îsa¶wžöwOB¸ž.]j5pà㢠>þx¸5‹‚úÉ'kŒ‚šÞ@³Fƒ@,!~RfÊŸ?³=ãÁƒ§TŠÉÔúõáö5œ9sY¸L™úº]ù¥KçÖ§n¯L~*TÈÃêÖ'TæƒKžª]»¶(*°¤ªôéÓ+Xólw>•TXõl¥Š®\&ÓÐÎdšõë×#dj¼„Ð?aÂqë2€îã¼yóJ¿:øÝe©R¥Ô³Ï>+ /û,XœÕ¿Øý_yå•&MðËF^D ©´ñœsÃòëóœéҦκ¯ç͛օ\¢4³ç*Tk°Ëurü~÷Ýw’$ÅêCTØYPk¤›3gNÁ£aÆ +Àad]ìËù´PQ͘1£(žT©¸iUX(ýräÈ¡š5kf·Z=†păû¦ÂýÔSOéaíWºà9·/a(ÀÍ›7eOºÝƺÝó•(2d€á§­4ñ½`ì®sÿþöè9V\žÅ4.Ñdn˜áÒ O¾W$*’î ®™q´¯½ÖñNCU\ ²¨£ñ%³FâÅ܆̂  "°ÿ))Ö‘9sDáµk÷áŸĬow›‹‰Oaa)½øH©°îßÒ-ƒ_ßxüøyÄë]ƒr?S*DZhicÜ`ºtéäÿÀ}*ÇT@™Ù¾`Á±þÑ"H+*.y9ž4iö\NPÆ0Ò HûW^ùK[5í Ž*¢N¡²¬-´¼®•?sŒªP©d '+ûý÷ߣràÛ"LEﯿþ« -ƒT®¨ÐöƒÛßm**§TÂ8Z§Àuî‡êŒÅ¤"Éä!-žmT)‘­‡}˜Ä¥¡ò ¡Ïõ+œñºú:_©i¡…’}ks*mºŸ~õ‡dëáýΤ'ºþß{ï==¬ýZ¯^=ÁÑû“¡R§N-ú†èbL%|ëÖ­ö ÇágÀ¹{ÔsƇW£˜Æ‡w!’5Ô¯_xµc³On‰·=Kœ¾þzsÛ‚:bÄÄ‹ÂøŠDÊÉÛmš ÿ8pà4Ó{l<þüó b¯Ã}[nîä°šî6Zî”'·bºiÓQnï¹'ÌG°ŠT–,é„sY_K(¯5‚…8L2¼©°Q©¡0¾áŒ/-Q¢„¸÷Ó¦M+–4Z=ƒÊì}ºÈu ¥¯=S¡¡‹œYàŒQd¦8’“ì®t3s†0«ž.t Aί•LÏs{ƒ,Y²H\,/SÉæ˜´sþÑ£G‹kœót‘s^®‰Jöˆ#]ØHÀ’5ðxáÂ…²^Z)Ä'&h=Œ-eÂØ±cE9åºéÖgœ/É[?KüFÁë|ïÈËÐ *´ŒÏ3gŽÄ¡R ÖâcŽI¥ÕÉÂÀ{øþ/fý³íÿûŸÄ×2&5AI(3«ÌØÁCàúõ›Öÿa=úèDëÆ[Á8kˆ5jÔR«páÈ}©Ë,T}‰Ç+6K3‚‰@ãÆ“­¡CÙCN›¶B2ïy¡mÛ’‰Ïc$7I¦þ Aóyê&ì×­Û‡n×ôIŸ>ó)ýž> êkt³ò_zé%É Ö‹@\¨K—>µ$$Ùâö0S ‡ œ}I@’ݢd‰Ãi!ÎTÚ£)™ö¼‡™âÌêvfåà .ý˜•ÏÌrfv³/3±uV¼Îç½l#ó- ÔKr¯g¾ç9³Ò‘e¯W0ck²iÁBkt^ÆçPº­1cÆè®–Î<4ß§ÑULëŠê1’‡,ds{uÿ¨… m ®z¯6*)¤”B²(»Z1uv¤bJZ%Ž׸Eº$-Z1e)‘2 ›‚þŠ˜IQªIå)¨|dS=9ÛH1†„& `¢à:Ûbzh=ˆGµÀëê“ <¦,¦nÓâi!Bîᚌ‰ ßC_‚˜RÁ-ïMl(¦î|PÝÄ_Hi2~|3Õ³ç'pqBf©ø»Ø ®ŒÕ^úôyìu%Övúô_PUj$Luî\ ñf÷q63”AÀ ¸uë6èvÎÃMážgâSÏžÊòy¤”¸óY¾yÍš=(QšL~œkgŒ*¼,>K”âºÄ˜¶o_ÝyK‚8¦›œÉ2tÛ¿õÖ[^kfâp| ]þŒçŒŠpÒùÏ)ýîô:ÝÞÚ%î9ãj=“ Ø‡1”Î"Ïûbrh=dI¸ï>ßÿ‹HÙå)ÌžǨçe¯sCAôê«/09Ž? ULŒi{çš6­„ŒËjRŠ_ºIIȃڦÍàïî»ŽàŠ»X³iPLÇ©?üÝÄ¡&¥ƒÙk¢G€J)\²gÏ {%ß(¬£vŧ4iRàá¼4â 7 –n¯TnJ™ÒÝÖBJ)RK‘ÚSöí;)ñªÅ‹GdÂ{ö‰¯çŒ%Ç)c55Ь•ÚUªTñº•æþ”,*<ÌìOI4^K ’:ÆîÅ äMKêË5ª ×¢Þî¿(Vƒ¤„ ¿i-á“fÏþM¹TŠPqo×®º”%LJ˜˜½TL)9r¸Óuëö'2¥iÓ¦AÎî"A K‹©û¿´ ö«R¥rûüŽäw3´‹Ížà #Ç)ù3c*L–q&4éñ˜tãOÃéEì¹~g$uŒÅôÎ>7qz³Q§Oo/ú$§OÊR¬Xdò? JŒá꥗…5u§ª[w<27§½Öµk.º¤Œ‘Ù»A !"pìØ9±ÊÝ{ozYþÚµ{…‹4yòˆ[ ãɘ1­XEo޼奀nØ®*UÊïsûÛ·gd³§ðÙn.Æ-¤‹b•§` ³á_xá…`kÆ "áAÔ zòåˬ&MzåØVƒc}è'Œç3ðŸ)µV­zY}þyw¡éÝ{*† ­È"PrDpòÅó­˜å @àß/ØJ'¡Å´JWE ½'9rdD¯Îc>´k¹rå†üÝW¬˜__r{ݺõ*YÒw™R·Žæ$N`‰Q'1|°Aú*_<¢ÁߌsŒbs ãl„Ç+­ºv­ƒòžóm¢è8[L<š¸fÍ¢jæÌ \'ãú ¡Þ¡|pˆ‹'+nøÝ.Ç£Õš¥ ¾`<)«ÃQNŸ¾^ÌR¢Ù³/]þš—>Uªëç¦MûQâñ–_‹)Ë”–)“Ûs8s Ãßï¬Lô"7¨³ê;3þ˜dúß~û­]ÕÊ9ãpÙÆÂLt‹Lt•§Èú™öÐ#`ÓÐcÒ†m$1T; .^¼Ò¹Úàü§Ö£G=±¢.^ܱdÙPõk¸‡K|îòå›Ò§ íM5ëM2œãA=­Ÿ ƒÒzÑfæpZLéúÏ;ªy×&§5öèѳ>“¢’ Àq¼QVl'Œ*1­¬kÏR£¬ ÅêE¬YO!Ñ~ýúõá+/åWó£>=I嵌9Rú·iÓŸ™ŠªfÍšRúT·ûz8p ÌÂ$Ã7wÅ4î°ÊÌÉ’Ý…êíÔùóWÕ‹/~”1ã U«T“'·ÄöH‰I=sæ’jß~–(©/¿¼1ªûã¶Íž  þfÊ”VÖO7>,Ó§wU7Ò›úý÷PK>5\¨´X‰µéÙ•¢ ¸[¥¤i»vídm(x ¶oßèÓ"Œb"`csØlÙÒK2Ô?nS ˜ŽÍ©Ü\iÓ¦TO?]¥îžWk׃å´6âv£DÜ[ªZµÑà‰ý%õ\õ³ÜæÌ‚ ‰ ®BéL#;Z¿~ŸMåÜâêÕ{DùÌŸßÅÙ8þZi_¹ªIBgEk)E–Ù¤b»hÑ")?Z €+æ¸C‡ Uª„Û•%Iɪi´hqE±ió9ÉQE üØŸÈš¨ä2•%]™!Ïr¡´ð‰Œb;8‡|~ñ$¬Ë$¦2ä&‚ HÜݫ׃Àk Z¾¼¿züñ2BàϬþ:uÆ#¹ìĵý›vj¶`Hx\¼HÅ45ܪ·àé8è•øÄýñÇn”§ñMÙàÞ½'Õwßm…òr¡MW¡´ô¹qŽgâK}B’‹7nT´Ž2ñhùòå¯Z¥:wî ¸‹qÁߤäKÕR¼xq9¤õðáÃ(šPA7É+JJ²ª3ÁVNB?t‡9rD9‘ŠJm×®]…‹1ª[·nUT|ÿúë/=œy 1F1 1À±9|‡5yýzôøH¨¤bsî„>WÉ’9£ÔH­_?\-YÒ OÉE„´¿fÍ1’8E%•ñlF ØA€áIwßJ”RÒ¾Uªä²ŽéÙÉCÊ©jÕ¨˜º’gj×.ª&Nü• ö" Ì/G©+ñÉ›t_m^ƒ‹EÔ‚—*N¨O¯H…’­(pp%àDáááv;JŒÊ1­¤Y³f•Ä'ÝxéÒ%QziY¥‚JeÒ™ð´aÉ9Õý½^¾|Y‘Rª^½zÂñÊøÕ)S¦€Á¡d ÛL[ˆàÖâ f¨¸C`üøæâŠn×n¦úæ›ÞФӉAÖ¬Yã3ó2T{£g©L™’ˆM:"ëSˆãýIM˜°LeË–ÖÔœpIy—˜ ÕZ̸„„ÆÆTèÊOŸ> ÷!;? ÷‹¿ÿ¾[\ñ¥KçÇ™®[·º¨÷>xM7øµ–F$>™øÒ˜¾GQ½?mÚ´êù矗*˜3fÌPݺu“˜QÆ—öêÕKÜæžãMœ8Q”X&#ÑõÏRªt¯7lØ¿K²R£FàÝš$·6oÞ^®=¢H2ª_¿~¢°®X±Â-9ÊsžS™}ûí·A7ø¹4?ûì³ð@¾Ž¢J¾º›k¡DOFGŽœµÊ”fA9M4;C¬ù>âì|‰VÊ”¹¬ j[aaeâlq‰™;î> {dPå{§xñ—­>Zmuê4ÛêÐa–ט;β¯¯ZµËÊ‘£·…„)«wïO­\¹úXï¼ó“×=¼ðÃ[­œ9ûXçÎ]ñÙ¬‹°Z¨5¬áÝ8/^´fÍšeÁ]o 0Àk)S¦´êÔ©c¥H‘B¾osçÎm¡Ú•ôu”…ØO¹¶+UªT2–äå—_¶øúõÒʯë¬42ÄB€îj¿öîÝÛBízëƒ>°`µ¯›w2eÊd½ÿþûîƒ|f,¦øÆOlÂ~³fuTÍš½#É<>ž(¶Ø´iS$--H{1›0$F7xð`Df|LöxùòuÅdE2ftî\Ëm(üD àÕ·ï#rdúVqjÞ¼2¬^kÎtR®yþÚ¸q?(ˆîõÊð÷ìgÎC‹@XX˜êر£üøJ,Ò×Ο?/ IEбãFéÊ'ÿÞ½{%!ŠVÔ4i"ÙFÏF_„_ý£ ,¨î½÷^{3Llâ§Œ;ŸwÖÏ>æû÷ŸVÉ“'ó"Â'Å[æÌwã¡;‡LÅä§4i\UŸØV£Æ}°’¥SÉ—nK¡¥•ß…+ÅÔ sbˆGÅ4½¡XÊ+¯<:•"B&øðÙPLaÆ4 AEàÖ­Û2^xø¿HvÉi+z’U«þAba}Šìn*¦)åœ.þš5‹¨1cš©¯¿Þ¬–-‹ ù!³“ªŒÅÔ†ÎâF1woIpt×]ÿ§¦Mk òá0Õ®Ý Å¸-#ƒ€A >#@7>eß¾“à¤Ìë¶T*­¬ê¤Ýøl¤+ŸÓ¿ÿ>‚r•—¤­NûT‹UÕ AóÅíÏ~ŒWeܪ¶´òšƒ€A ~!`Óøõ~„d5¤Œúè£.êĉ ª{÷¹nün!™Ð j0b€@„Åô$ˆÔÝÝî›7ò|§bÊnZLY¢”á´²RXt„e›‡ [,ç6„KX¯1â'&ù)~¾/A_«Í™ÓI2õ‡]¬Fnô9Ì€téÒÄü*–Ô •°†ôˆ#À±ú¾Ê›7ªÄZÒO?ý´Ô£uÏOORiV>ñ%ÜWûöí}5ù½FRíW^y%(—¬•Íd…úœ¯nݺàmÂ_~ùEø—-[fûÞ{ï©yóæ Ï!«Â<ðÀp‰2a·=P,ܼyS1“™%)¬ýM®ÇfÍšÅÒ b> òZDnܸ奘RùÌž=_²Ú¹,¦)QQè!Ü× éÓ§3Is`0”C)Ì}ê±ÇJëæ¿2Nvþüù!ŸÇL`ˆ-È)j1Ši¨ŽGãÓò0ujk$D}Eæ”]«V—¸–B‡4%¡pù¡üâw°]t›†ÕTxdÓ1–à[»v­jÒÄû!† Zt…ô.,' Ù¶mŠG„ùŠøÿûoôËÉr}¿ýö›=.Ë(²Æ7ënS' ÷_|òöªjÓ¦MŠ¥ã›|õÕWòžñ8 ¾se=CÿÏ$˜8¤Háú×D÷<©œBåÓi-e›ËbšŸö¨¡C9»ƒ ½$«(&ž={GÝÚCyBÅ”‰F ¨#`Ó¨c•(z²<¿˜_}õK•;w&”\C‰£D(§OŸV·nݺ]ŽŽ\vü'M…"gÎœŠ¥í®^½ªŽ;& †¦,!ÞÑ£GU®\¹ä;û¬^½UŸ²IÕÒ”h9tèâOÅŠ…OmY²dÑÍòJ’ŠÈ?ÿüSª—Ê„BË3…Y…J ùùŠ-*müEë4•‰ç¹Ý1’ƒ@{à¨pq¿,é甄#XeË–•c¿ˆqµjÕìµbQÖ@Ü ÉíÜ+®{¶CÙ¶X‡åЂURÚ¸b…„ÒÆ_¬ÖÂûøÃ1ñPac}êÔ)Yƒn‡’&ý† ÷Ú#,«׬×T¾|yy¿y#¬¥òyµQÆqþ‚õ×Z·n\â1?WüœpO|¿~þùgi#|ùyÐUhˆ±þ ?„8HåÝ>}út¹72L†*8âA@>ðÌY?þø£s?òw0~üø¯Uˆä1 Vå'VgjÛv†ÛŒpãK…§C‡N»]ïÚõC«víqVÅŠ#Ü®;OÀé,ŸÆûÆyÙ ñ Žoð¤(£F=…šïÅàžœKÓñD -M}úô ã=ß}÷]©Í|îÜ9q¯±^3Êܩڵk»U”bLûÓUÌzË£FÑ÷9©4ÂØCZO׬Y#×ãɘN(¶j×®]~q¤…–B(}êÑGE8Åsb¹â Û·oGˆÅTd_ ]ÇP:e¬Gy$á/ÚãzžÛ ~¸6{àzèªf<,­‘\­zΪ(¬¬Òºuk¯Z µpotÓrG‹.q^µjˆÑ‹ePמfÎÃØXÞÃzêxXü¸(©²oâ@+ß Aƒ¸N,¨¬äÂxRŽÉ÷ƒ÷k!^\û¢E‹Ä¢ê´8F¶Çþýû‹U—SO÷?-°P*Åj®çÒ¯\;khÓEN7?”sdƒŸ‘Ï cPÛ´i£h‰¥pmÝ»w—÷wøðáê‡~k¦ e‘´ó»X‹kÕª%1Ãl „ à ø>±½ü±„@µ?ËÄfzš ¬Õ,ĤÂÿJ/r|ºñiEe̼Sh1=}ú>SÞg;÷îýWU©RuÔÂ{½Ó³Ùœ ñ£˜Æ“7"¶—A—ç{ïµ…Û8›jÙò}¸^ÏÅöB>ÝÒ½zõ÷8•Oº˜Y¦Ž.b&âh冊ãé¥âD.,™âþ¤’Ë#X >1•ÔvFU™…â~‘BëžShEÖBEÉ@âÄ™ó9c<8s *°Z¨ÈR‡Éµ0öñ‰'žÐÍ›Êûù P¦L7¬‰=…ZZ™¯E·ñ<Ðù0ÂÏe-Tˆµ 4CÍ;W,ºkÝF%™{-\¸°\¢b©EãÁ‡Š3Ž–Ÿ- 㟵8ÛYï›{¢„Ÿ?'Îì¯ã©èûÞC‰ÉZ}Šk[¶Äß"¬"þEÑ*ºiÓÔV¯é5%©ðø áÏbºiÓ~X°oâóWH5lX|S%Sÿë¯{ãïÄÔG÷Ô\0Ä!Æb‡àLJ©©ˆ~úiWI ¥ Kû%¡Rabét,X Ô.TJi­cR]ÙÌp§›–VÒõë׫™3gJ"|œÂ¾þäÈ‘#v)ŠN4r¶éä,Ýfßäã@÷ùã?ÜZ™„Ca{ =P¢5”.x†=ðgÉ’%â*w0’“¨âÌaœÖSbIá:ié£[¯ƒ¯¤«"³“ƒè§â¡Eß˾LÒ¢Ûxh:IÍy/-¨ZhíeâÒòåËõ%y¥¥•nt*ðÙ³g—kLjÓ¢ñÏŸ?¿\Š í0a"ÞÎ;mL6ÀðçÞõzôk0ÖªÇ õ+SáŸ;wÅžŠ¤ú7oÞòÊÈg’êgÉ’ÞWÒ™}ÓÌÖg²'R§N¡>ø “T€êÖm.0 l÷Ëœ ¡EÀ(¦¡Å7AŒž#G¸ »Á…x\uîü¾ü#€± ,’îèŸ~úI!yĶ Ri#$$ZÖhM£•ŒYè:€¢Œåc\¥Ó=ë¹$ƒÊìwfsÓºJ+ …Š Ý°´|"¡E,³H²’¶Ï>ûL½üòËrÌ_ÎsZaé~F’"E\º½é6.Y²¤Ä@ÚCÆ Å:GnQR+ñ^Îëäðd,)¯{þ81{qQ8˜8q¢(‘Ü3×M èFoܸ±`χâÀ˜R> ð€m´3Æ”{ä}Tµ°®mº¾žÁv-öHÅ“ çbøß{ί…ñ· /èÚµ«bœ,-Ž´²2TJm‹-l<Çà{Ëu2>–c3¬!&bùøyáciñ§šï9…¡Ú+Às.еrü`ÊÖ­‡ñÀ‘¬Š)ãK‹ÍìïöšêÒ¥k^´RÎN,SZµjÄû‘-[zE^g*¬#G~éìjŽ ¸F_\F ‚À–-=<Èb†«ÎŽ/ÐD7+ñ‹’ ¯×W¯Ëœ>µàž–¬e}ÐÌŒ‡ÂhÁͪ/[ r—Lkf>óŠŽd³C¿~ýììsfeÃBfgŠƒòÉÎ*‡¢`1Û[g]Cy°@%s0+ ŒÌï ´Bö}ì¥È‚ò$}}à n!¼À^Ç`æ;bí{í µì‹÷ñ‡âH˜’{™•¯¯{¾jöâeÓž ™à¢/ YË‚‹YN‰C:u„™€ãÁâh!ñGÚ`)¶?kÏÇìvÍjÀˆµÛ`ùCvmK³@IµàŽ·ÛÉœ‹·¥³òí‰HvV>™`¡µà¶—5ñ¬àVýúõí±¹n¾—PÌí>Ì„‡¢*}8Üû–fJðüB™”~zmžø‘IAÏ&|_9ׄp a²&¼6ølôµyäMë…>¶gã9ÙD<åß/H¦¾¯6ö½qãþÆXŸ|ò‡ç­Ö’%%SÚ´^mæ‚AÀ 7ð‰ÚˆAÀF`õêÝB#Õ¿ÿçöµøp]Å4ºk¦2J%±ƒ^·"VÐ"%¬‡^mTàf¶h=öØc¶bêìH…Œ´HTJØ×)TL‘|„ž7DÙ¡‚|'Ö LU_hú^*a±!œÖ<·=/¬’B|îÖRkãÆ–/ú&¾°XŠ"©Çr¾Úã¥K—„ú ÖYç-nÇT~‰/B#Ü®ëXÍ-X-¸×}îK÷»“×@˜ð!l^ÂÏÔâ{îKB¹Ö`(¦›7EŒ!6]ˆñ­\¹úâa#â@ïmáÂõÒÞ¼5ú’ÛëúõáÒ¾gÏ ·ëúdúô•¢œÎŸï¢ÿÒ×Í«AÀ 7DD–ã±ÛˆA ZµB «i¡g™:V«¤Äútá³ô&“Uè¶õÆ8ÒeîKèÒձоÚ× É_ÂXI’Ñß©i€ÕˆüI =Dv¯¿1ïô:çã/a²| ãEub‘g;3Ó¾àOí‘L ¤~ $LPr&)yöeRÝþ¡@˜0Ú3 Šk |I(×êk¾è^£?,,bïkB¸ÜNW<…ßOž²b…‹ý S¦0Ï&9ÇÃ6B62€í•tèÙ©K—Ú¹v†Ï¦“Tq%<»˜sƒ€A 01¦±vB™Š%üÞ~»•š>ýÔ™ö]+=¡ì%*ëdl!c&™ÜHùˆl,*F¾â ™‰NÅЗ°Ê³¿ .HU¢DN$–e@,±‹Ænõêðà‘SGOœ~ýÕÅ|÷ݾqÞ[½º‹=Áó^}>hP)[Š0&T`Û§/›Wƒ€A 0Ó8=!LI®¿7n¢¾ôÏ›œ”EÎ6ÍI꼦™x”…Äý\;XX€ 9“kH~Ï„¢¨›XÄ€É:äŠeÒÛo¿•[MŸDŒÀŽGÿSL3‚6í‚씉Oµk{?ÀíÜy ‰{®b´²z 9×­Û‡§§<›¼ÎÇo.Ùý­[OM\x zõ1 Ð#`,¦¡Ç8ÁÎмyeXL›ƒ#ò;ñ¯H°û0 .¤ bh³ÏI¤ÏZò¬HõÅ_ˆrÊìô¨­Ó¬²E!ÝÙ Œ¨˜+–ÓôBÅÊtT@}볂Súô.îe†yʆ ᨌuÝ'Å”g_ò¦N›ÖNàV­ÞGõ²ˆ"ž}͹AÀ :ŒÅ4tØ&Š‘[·®&ÄÔÆ-R¤íÖ­n¢Ø—ÙÄ#@j"rŸ²,«3®’ôJ¤ÔbE'V"ÕBç¥2ÖÚµk¥C(¤^b•\ë“–‹U¡´³” î¡C‡$öVÇR%=Õ„Š÷—-[Vxgõ½æ5á"päÈYá.¥bzï½®8äåËÿ²}'Ý“Þá/¿ìÀûŸGýöÛ.á=Õ×õ++E‘»4_>ß¡4ºŸ~Mžü.‰±ïÕ딚K~GU·n1Ýl^ X@ÀXLcä„>E§N5Å6räRðuþœÐ·cÖH8?gÎ)êTJ9$Ýù,ÊZðtÓ³\&Kœ’ؽ^½zKKå•BžOV?0`€pÀ2,àÑG•6Þ Š&QrÉ/K¢úaÆIëÊ“¿•Õº›ËJ\¬œˆCVn4¿´–RŠÏ) %“ÚV­Ú¾ÛQZN§Li…Šxð9ŸŽàÍQ¹Íô1‚„€QLƒdb¦sçZ¨vÓ?_©©SJìÛ5ûóƒËdÒjé,ãé쪳Ûu,Vlš:uª¸éYÚ”?K—.‚|2°ä'•S§€ŸS,²¬Ïr¥¬´ÅJK+VD„“€IX¿Ëõ,Z´È9„9N P1Í™3#Üó©QÌ"™Ê•+# 2FȈwòÒÿþ·Ÿ«ë ÖwÅ4{*®lÛ¸q¿Ï€Èàa5®‰[À’_^¢¹jÒ¤"»Å´ ABÀ(¦A2) ÃÕcÆ4UcÇ~ƒêEîe“ÂþÍ•ç§ÀÀêW¾„U›(´tQJ•*%5ÜyR~±nJã=T2Y±‰–Q ïCñ©Ì%ð‹Š*×P«V-qåS‰5’ðصë¸TwÒ;É“ç¡rò•UÏøÒ"E²!y.™J“&¥¸ûõ}|¥5õúõ›w¤˜êq^}õITk&ŠiIX“n3¯ƒ@h01¦¡Á5ÑŽÚ¾} •,Ù]jР’T0x°«tf¢Ý°Ù˜šËŸë\וGõ#¹nv§dÍš™Ö'œ—ÜŽ[ŠªUn±«ìÀpòÌjqÒz¥I“FÂt›yM¸0Ñ©R¥üöR¤HŽØöÿƒ…ÞýsÄ+WîD¥‹¯ ï©}Ó¿þºá±ªžíQ=oÓæá@íÒeŽjÒdªúàƒŽvükTÇ0ý ¨#`,¦QÇÊôü~QOžÜRâM‡ [lpIBÐnüéÓ§ÃuÝmç̪g±Ƈ¢¬¦´±¶½”ØT›6mB"J>}Éë•–U*¯ä•ÕB+-**¹Ý§-²ºyMìÞ}\¬ z7—/_Ãðÿy%6¡ )Â=ލ:uŠ!yîšWü)ïgBT­ZÑ‹/Õóz¾V¯^D}óMuáÂ|¾'¨ŸÞîÙÅœ ABÀ(¦A2© Ó¬Y%P«´EŒàïÈÂþL2¬“Iu¿¨a¯kZ§NE·<•ÏU«V e•H'/,Êt*”c…;ö”:t¨(³¨e/Ð¥H‘B1ÕSÁ¥ñâÅRð€m“&M’þ¨cŸT!Oû>~ü<¿«ˆ½×ÞïÑ£gAu1É.®RÝ@7~ʔɑ\WŠéU<¹SE±’ÓöíGƒ¦˜rÞ²¨eËú"K¿¸jÓf†1b ¸žoé%™Wƒ€A HW~€LŠÃ4hPn­”Š.®sç®À‚ÚVâ½’"IiÏ´ˆ2ó¾}ûö¢œê½+VL­^½Z•+WN_’˜Òž={JS¦L™¯7N2õÙ¡qãÆBÒO‚}ºkµ”Š--¤Íš5“kT`i¡ex€Žaµ'Àïå‘„­¥ÆRNž¼º°3rü÷߇Q¸!¢Œ-Sº÷Ó¤I!SOr}¶“ú‰Šk0…ó¼ývK|îï“p&–;}ï½v`¤ð]î4˜s›± I£˜&•w:Dû¬W¯8,b]¡¤ÌT$¥ž3§“Ïx¯Mo†#¨œ³óIïD%TËgŸ}†É’ØDåS ]ù¿þú«XSÏž= : P@\$êU«Võ²Î÷ÝwúVóš€Ø·ï¤X>3g¾[v±f͉ggiÒ­[ƒr¬¸½;*žÝºÕ‘sZY=-¦,SZ±b~¯{€4iRQÆïÞ}®zøá7Tß¾ÈzoÄ `ˆæ¯(fø™»K÷-ZÔSíÞ}ü’ïH­&i @¢ûêÕ«ûTJ5¤…¢‚êTJuË—:•R}P]æT+¥ºÍ¼&N¨˜(ay¤bZªTn|vr+ZLµüõ×!XS/Àjé"¾¿téªWŒ)Ÿ|•0Õc㕤ýK—¾¨^|ñ!õæ›ß!”åMµyó` mÆ0$iŒbš¤ßþàm¾xñø’î…j?WT£F“Q•'"ƒ:x³˜‘¬òD+©ƒ@TÿWåÏŸÅîJÅôþû Je'ò‘jY¹r'äÒÙÄú.0ù)"Æt×®c¨(v.äŠ)×Ãp^½D2ÔEKoÆ“Q b±ð«êõšWƒ€A zÅ4zx™Þ çàW_½~É´ˆœ¬6lˆøgà6Ó”H`5'Æ”1D—ÅÔ¥˜2fÉK÷ß_HbI>±³2 ËÖ®í²–ò‚§+ŸŠk¦La¢ÐFeÞÈú!BÇ1û{¥¥÷‹/z âÙw(iºŠrºHïñ7–¹îŠ78$>~ÿý÷ÈþܤÝĘF &Ó)ªÐj°pá Š±WO?ý.ªþ´V=V:ª·›~ƒ@EàÀS s)¦k×ît‚«@ñÚ#”RëÖíSÃý6JžYùT\kÖ,ô„¸·Þz U©rÚó>h¸Ù´’,3ݵk×(ïØ(¦Q†ÊtŒ*Ì”=»#èIÆþ°að¡¬ÕÛM?ƒ€A ‰!púô%)Ø‘;w&ÙùÚµû$;?S¦´rÎ8S*¦,;Jú(_ÊFZLµ+ÿÚµ›Rñ‰å“ƒ->ú¨ M 6¨f¼$ÀÑ£Gbš$Þéx¾É»îú?)_ÊQ£¾R¬è2n\s‰ÉŠçK7Ë3bC‡NËŒ ¢P eR¥–ªU ©=)Ũ¤ÞsO˜nrã1e\ê•+×ÝW»£90Æbš Þ¦„»HZJ ºW\ûŒ!›9³â¿\VèîjáÂ…AwÏEw ¦¿AÀ ‡~8p­ä+¥Ò™3gF©G¿eËAÕ®]u»'+8½÷Þϰª^SO=UÁ¾~ëÖm±´jº(–)-Z4»Ê‘#ƒÝÇ  £˜&¬÷+A®öÁKHRTÛ¶3Uƒ“@Êß .±ìÑÚKïÞ½AEÕ4Z÷˜Îƒ@ì#={ôþ¶¹B*¦÷Þ›ÔaÉÔÿþÇj`7UåÊìÅ3 *uêàÎ=íf ¥Ÿ¡˜îDe¦ˆÄ({s`0$Œbš`Þª„½ÐbÅr œ_‰9mÐà-«? %µl”7uÿý÷#C7"á!Ê7šŽƒ@¼G€¥GI¤OY¿>Už2(íÖçµT©’#1*³p%Wª¡°jÅ4}úÔêèÑs¨v¥BŸà-F Š€QLè——ÍŒ}Rª ¾DÔž=DY¿Ç{>!¾™fÍ "püøy‡bºOUª”ßkôdÉ4}ND“VL™üD7~š4)…b*¢GÒ; GèTw5kÖ¬h°D§V­ZI©aç¹råu#õıÿppùòeuëÖ-XÏÓÉ’üq·*q´ä³r\§N|õpîC3›<,,Ìgq݇¯~ø¡b%;Ò§OT‹~ˆ‹¿ñîôº£]»v¡8Ä‹¨Ö8‚®2Àw:n°ï3<¦ÁFÔŒRÝt/Ï¢þùJ”1Ž/·Kï1ƒ@âF€„øÙ²¥—MÒbêtãó"cI÷ï?Œü[ê÷ßwÛ`hÅ4}ú4jÅŠ¢”Òºš”åܹsŠez©„„R~þùgTà:©J–,)?,¨AÎ×'Ÿ|R͘1#”Sû»sçΪM›6vÛ²eËwEÖÆBÇW={öD¨G]‚9o÷ tÀ2ËóçÏÔEÚî¹çU¸paùI–,™àŸ!Cûãƒ81¢ñâEuûöíø°4·5ÅÔ s[<óLõå—½Ôž='ÔC½!Ü„±5·™Ç `ˆ_Ðbš#GF~RJ³Î½SX¬ãÒ¥kˆMÏxõÍv“VLÓ¦M©~û-~Ä—^»v ûëݾ}ûÔ_ý%륰uëVÙ nܸ!×8àeuxН5òsÂÏÆˆTº©|ká}ÄiÓ¦MnÖf^§’O ò¯¿þj¯SßôWoÄ gœ={Ùj×n¦•'ÏKÖ´i+âlfbƒ€A î(ZtõñÇX ¬³òåëgÔm1¯¿¾ÌªRe¤5uêOVÉ’C,XN¥}áÂõVÞ¼/Y —²räèmíÞ}Âí¾`œlÙ²ÅÂ?^ ÊS”†ƒ‚%ýa™“WÞ[³fM롇²Ï«U«fAé°xà Ê=.E 7ëwÞ±8o¾|ù¬»ï¾ÛB$+wîÜÖöíÛ¥ï/¿übeʔɓô¯T©’—³´mÞ¼YæÂfÁÝn/^Ü‚EÏJ™2¥\ïØ±£=¯U¯^]ÆH‘"…•6mZ ì'v;çèÑ£‡œCé”ûW®\)çp[ýúõ³ûêƒ"EŠX 4S(¶VÛ¶må>ŽÏ½¡œ´-Y²D®×ªUË^× %VÚ¡œ 6Ü£ÞëСC¥Mï±yóæ‚Mýúõå•X#Aúðx„ rìü•7o^«P¡Br Š!>WUdéÓ§·’'On;VÚ °ÉuÎ?~üx+P_çø_~ù¥ÜeÙ¾ì¹Þ>úÈâø'N´ûp^X]å¼oß¾ò¾Kbƽ À‚¢.íÄŸ‰T©RÉgàé§Ÿ¶ ¸\#ßGÞ£1ÒŸS<<ɘ¯¾úªŒÅÏ ûñseVÚòäÉ#Ÿ_Χ×3}úti‹Ê/<,ȼx8‰JwËXLñ.‰;2dHƒ—Nk:zô׊™ûƵw٠ÛܸqKHòƒNË(yJS¦Læ¶ ]†´Q£²òý Ýù´˜2#Ÿn|&K*”Õí¾¸<¢#–%Zçh£õ‘–§O?ýT, ´òµnÝZ,P´\R/^,´YÏ<ó øŸGaOyÄâÉû8mÚ4±`¶oß^Ñ G‹ìÎ;mË£¯ýB™E¾©bñš={6ŠŸÌVK—.µ»rŒ={öˆ•–EhñÓ–¼^½zÁ£õô…’¬ €$´|ö½œû‹/¾ŽÛ²eKµwï^‰ãd'ÎËýr>ZܸþAƒ‰P¸TZˆiù¤UoðàÁÒEI,¡»wï«òÌ™3Õk¯½†÷z…¾U,‰Ä J®jÑ¢…ĶҺHêÕ«‡°ý ¹ ú™2/1¢ÅrôèÑàß#–Eºþ¡¨ª¹sçʾõ 4Ÿ³Ös®—á‘ ×ÄXaâFëë?ü VW~–ˆ±¥õóã?üiÉ ´F<ìøÅˆÖtÎÁ¸d¾´¬w(Àö2¡\‹µ™Öoý«¯¶Àªu –½«*mÚ°œBRKüRL5Ÿ+­n¸eånRy…OSÐÇ{L-X°@bi ¤rA¡’ÈcZ\Ë•+' (ã0i±¢8éóœVLitü¢‚㔬Y³*m¡åu­øñ˜mg»\ðó‹Êã"ùøÈï¿ÿ^16S'?Ñ2I+!•GþPÙɘ1£‹s~Æ;R §¢È1©Ô:…˜:c*K—.ílŽÒ1-—hÝ¥µlÙ²bÕq«¾ŠN__÷óZ õz&«9c?S§N-C2ΔøêÏ’ž‡Ê)cFït“Ÿ1b¢… ¨kçzø A‹s¨$b¡šÁŒkˆt˽ûnÉÚÿè£Õ°¼‰§wW@x4†1] ‚À™3®¤žcÇÎÂM} V5wÅô—_v‰²š\¥”&M*þ?{ׯSýÿ¿ö¾\™×ÈÞ${%¥ŒìYù)•¤BZD4ÒJ2B2"”™•½‰ÈÞÛ½ö:ÿÏûsÿßã<ç9ϺžçÎÏçõº÷œóÝß÷y¸ïçóý &.³fm"ÍÖUöÔG`þZµ¢‰_|Ù¶õ¼·5|BK2Í_ãÆ¹ù‚ ø(GÊp˜"SÕ·o_ÓYùǵ€x«3È[¬DÖZ#]ˆµÞÓ¸Nå‰T®\96 @=´x0™Ö?p"ÛP³»u~8Han`’ Ç'-pÜé@L׆q@”qì¯I=ŽªA²@À -…ÖדÒÖÓÖrìÑêìm¨UôkîaÒ@Þ!0ù4¿1]#?´äø²¤Ÿ9+ÖžÖ£Ûó*Ä4˜hÊXAC E‹Êt<׋җfàlQÇ/ ˆwÿÑm"HâíY¿gÏIþ÷^ @6—õÀ¾´víâfìÒŸx¢,¯aÛÔË—oP|ÊB¤9Mm¶IH7ðèF¬Ì÷Þ{ ›ÖŽÁÞ6ž°/-UªkWqÜÍHlPa›‰#roö~ 8êÅ=ˆ È6'N°=„M!ˆ <ëar éÝ»·if2„õÀÕ›dË–í5Ñ$žúÐc~Øp6iÒ„½»õ8ÊÇ>`Æ€¶8¾‡àŠ#f¤¢Æšµ'½•Ôê1pÅ‘7H®5¢ö…°V°ÏFä$ÆûÓv¬ wX/ú‚Âv¢# ¤óûjËø­'ö ò 3Üû#À{Ļė˜['ró¹F'Œ0'>x?ø bì5kÖ°-/ìvãDür‘’F‚@!@ÿ£F-5 |˨_ÿsòTöØŒ£åÈ´‚€ dà‰_ À›Æ+¯L0Ú´é2úþý§ÙÛžÒ”º”/[¶›Ë›4aÀ‹ÿÛo»Ôó!¦^ùD(yDlðÚ€4„B8ñ3¼ÒµÀSm(ü“.2È™…¢•äcixÏY4ȱ‡ë)N){Ú£iÞØ]{åëõÑb¯|x ÃÓmáÝ®½â1Æ%{PÓÓ^ñÖ5øòÊ'g(s½ú†·8B‘&ƒ4´FÓ¦MynÌO¤Û ;Knª½òáE:xÄIgÏr4@„‚Zµjqöp"ëÜ׺G. _àžÇ cz.˜Ö²5€39õè.i¥Ù;ãcmD’ ÒHt,Îm°ŒÌ|µÕƒj¯|AåNëE;ì ãcmDÄÍyßxã öŠ×cYävʉ‹´=ú’©†AZ\îkVŒì^ù¤çÏšöº'Rjã‹HÖx”È@/Ï畾0ðúýõʇêVDˆ÷6ÅÀ¡¼y{Ò3è?¯kñ~Ͳ@A@ðÀرË2eÞ%2È@X(«Œ·Ò(Z´AGüÖb¾GûR¥Þa‚J©HÝêƒU I…¿á¢b2/9¹dèÖ•4w¯ ·viÀÚ@tÉ#Þ em‡pQd×IøÝ4H3Ga¸®[«™˜’6Õñ±)—FAx F&Õ¥ES¬´°™,è*ó ň$S3É5+<Ü`|àˆ`~਱™‘ÒB1G9´ž}µÕ}ü½^»vÍ…(ûÛíÈIË °[_kô†™4ð{rznP(1¶Ê&Ú-"ÄgŠÉÁ^ûS¦¬¥#¬ßÔœ9[èØ¥)éÅçuËÚAÀ;—.]§£ì4tdzšŽóº4&Í(;C"cœ]^x¡6Ù\NãpQÅŠå²W'ˆg‹ÃóÇöo8NQ¬S{1?ãÈ_¹;6°boŽ7ðÈev"„½Â'±;hév°kDt…4¼þ65Û+ް9ÅkºN_mu¯ˆÈþ¬ãÂÙî…z_kô†¢Aà'®Åý_{\¯Hæ¼ ÜeËÞV=TŒbåý :uúžl°Î{é!U‚€ Ÿ¸v-: )`8†©^+lÊW¬ØCö¥ÑÞøº\_a‡ÑNQºàl^º­\Ýbꎉ”$"ŠÏEÇGíÉ^­ªP¡€êÙs2åԬƎ]Aë7ÑNe+‚@ÂDàüù+DfÒ09Õ;X¹Òs˜(´Y´èUºtôÑXX:•'O8…Ž«¥† ™¯._¾®‡‘ë= €ãì[·n™ÇÝÖ¡ ¹¤ÌT.185¹D;¤L…ÀöÔ“@{òG™š\šÀ¹ R-pœÒ‚ø¢Ð’"=)ˆ4 ÐÒN˜0AÕ­[—>Cž) H6R’j)Q¢kHa XKîܹùë÷gºŸýŠõ êL`‚'O&Î#FŒ°7•g žß¢¥‘Ü  hcbjåʾ¤9-Nÿ©Í&»¦T¿~3é[í]Cý„¾OY¿ ЈŒ1Mm.Duûö£ôÒÙñéìÙKä,s˜ŽksR ôԤ劳ôú둺­FŒXhŽ%71GÞø sN$ IàY#j-ÖIÐDB !ô$ m °p|Ò-íîÝ»]ú9‘ÍW^y…” =e«R ˜0 TªzÇ+H6H¦– 6ð< Âë:PñõgÜØÃ/JÃi:‘DcÝ]»võÐZŠ€Sù$)òåËJ¡Íɱ¢ŸêÑãq²ûÙ¦jÖÄúžFDb ®ÁLeNºjÕ֞‰ÑI–.ÝÅd4gÎ0:²½›¡'sætüozôèedGxÁ©«”€4¦]ºtQÇWo¾ù&·Ã‡Sh®)쨄cu½k§>ìRq|>°ùÔ•pD{TËT÷ÁùŒ3(&õ¯\M(ö™ÞkûüóÏ™hŽ=šµºpŽIEÜVOÞûØl^ÇÇQ(ì7á8¥µ ÒæÍ›sÆ5j󷆜Òs ¯5Sƃ)~`_Šàýp8±¾õØ}ÂS­!…éo¼Á6±ãÇW ©HÛŠµ8Κ5‹§õ¶F«–U¯WÜo¿ý–‰;â¿ h"þ#ŒÂn8üò i)Ä EÇI=¹|9}kO¡ÂÃ]ãÛÅd,é#$6ðÇÄaË–-AÛÚºuûÕÓOÉŽNK—öæqá¤X¿~Š›ù¤Ûaïixÿ#BrÐ#Ë•&Ïhèaƒ‹}ZǰΕÔîÊ+""‚¾t® Êš>·/SŸIƒ„„”8ÙD%¤=ÈZøˆÀ{ï½Ga×~ êÒþý÷$kK‘ù ‚x¤{öœ$‘&ŽólÜxV.SZÌ’¤]är”¯;Ô­[ŠbQ–¥P@Ó83\êÔ1Oõ©ÇLêW,},ï ‹Ì™3+ü8 bœ: ´™82– R€5Z€}\Ä\uhTíŽXº] kQ‰9bcs줧 ‚À= °gÏ  uéR´'=Žñq¬_¥Š³ ÂDÁN±K##¯R¡»6¦Öe ДÂGEÒ±®8BYq Õ}µjÕŽòE` Ä4(Ê‚€ #ðß§’bèOU¡Âý.ÎPÖAAL¡-…À>Õêüdm‘…v곇>æ -H剰H"‚@0b e A@€Ø¿ÿ4eÆÉÊPÈu¿jÕ”u§¨ã8µmÛ“˜Bc O|OÒ¥ËÃä¥Aö¨)ߺ¸RxÂIÊø†€ÓøöFd=‚€ $íСsäŒ}×®ãSø Sg{Ã%K¢ÃDé4¥Þ4¦€/EŠä”¦´Ú±ã(Ù£.NˆÊÄ€ÓÄñe ÄDLÀP B¼¼ôÒKnSÌž=›Džà Ùn•|÷Ýw<ÆÒ?ˆA8dÈÎqÀP÷Ü´‘o;Y¿~=y…?Mv‹ù8,bΟ??!bµ­}Ó½{÷X]C°&)E@|¤ †üõ×.ò¤NIq% ð³ýŽñ& Aõ!Иz:Ê×}„¿W¯†êh>yÕ×ÅrxŒ€xåÇã—#KKÜÀ.+Ô–7oÞ¬6nÜè$Òð€!¬Ê½ÈŽ;8ã H¶ŒÝ«W/Š û'ÿèòP_A¶‘‰!mì!iœæFœÂ–-[ª2eÊðz‘ue ؈Áˆºø&ö=", 2ð$DÁ1>¤\¹¼|]½z…zËOñ&ïÆÆä ú…p=Ë–í¦æuu‘ŠŠºîõ(_7|ñÅ:ôYßF~¢š3çu"¿1óÒïÑ£ÅVͤ‡•« ø‰@ ÿG‰ÆÔO`¥YâCàÈ‘#œ!$**ŠÉþÈCsmùòåWψowàÀ¥ëQ†{”!¾m/^Ldž;ø(þÿ/̳zõjn{úôi—<кr2cL•^²d _u²ˆ\¼x‘û#Õ²«XZ4̯ãèué2®Ø÷Â… yÿööˆý‡tX‹]ÂÃÃYC -)~¦NÊÁª1–5H¶§1ü}z^du©_ºt)‘“(.Æþu^n¼äá†Ä¡9·’p´õÕWÉû» ¿{Ü÷éÓ‡÷ˆ Û}ûöåþøå4Êõgs!Õ Þ5ã ö…ÿÏŸ?ÏyÅ­éÑâ Ô}zƒÒôq]Û¶m ʤbPpjs­”M„ëð‹òD”ÏÙ|&¢htëÖŸÛµkgPÐj³NßPv^;ƒ›Q¿~}CÏK™] ʾÂM‰|:tඨǞ)åŸÆ BgP6 óYß±ã¶Dd _cøû0ö²eË ÊDÃxSÜAÞ7}!0ðŒ?Ö¸ÿ~ƒ2Ê0n(Þ(ã‹A_x‰¤-æ¶ ,ÐK6¯{÷î5(^'¿COó¡1ÆÂØÏ<ó ω{¼úâÀca_õêÕ3(¦¡Yï/®ï¾û.Ñû¢Ì6}·=âóJnx¾{Y+àãÖD±,}´ò¿ºÿYFƒ_p‡xßÈ»½ßÝŽ 2ߨ\¹¿Ywøð9n¿yó!³Ì×ÍÌ™¹Ïܹ[}5•zA@ˆCDcJMD’.D`Xû†ŒЮ}óÍ7¬5C–i† hÞ¼y²JM›6Íê—_~á´wDH0€µšDX˵jÕ*Ö’¢¼_¿~¬ÙÓ¹¤ÍAl7X 4oÈ€‚DD8M ²® Õ4pȹŒìœH%yßÍ~›C"D¶Ñ=?b_üñg_†iúú÷ïÏš_Ì9iÒ$ž s#‡44‹ëÖ­3„–ZRüàõHÇ׺uk>úôg ÞŽè‰$“V­:k!¡E®Q£†jß¾=_õûÁ:‘°S§NœEØAÓ í(ÖDÿßR÷=¼~§ áöt…Ð:{šÚR-ÐdB« -.ʧOŸ®«L) I…fö«°É…xÃÚúr›+W®¨ &0¶ø<Ú÷¨'ò†¿kÕcÅÖ•È%Ç$Å|éÓ§¦,9É(dÇéa_Z§Nt˜(4€ãÄ—)7úÿ_O?ý åx¯NŸïÉ”šò¼µJîA ! Ä4½ YJì#@Er¨¨¦Û„±ø@vºråÊ|\U¡H'Ž‹ABpŒLšLοŒÔvpBA¾eÒ‚* ŒIOÎÃüöÛoóµM›6äèឪOïúÅ_TÈENÚRõÎ;ïð18Ò@B` REÚ3ο ÛT!ì*Ñ^ ˆ0iñøǘ¾c¡Ý[o½Å& ï¿ÿ¾"­!—ýüóÏœ {D*J¤{EÊ>«ƒŽª_ýuþr©£ äâÏþ¼‡M›6ñûN°!EÊAÁãˆé"­‚ãü¿ÿþ›íEñ>@NñnA€‘›[õ[ûØïý$ǽ žH] ì´ OvÅŠ)Vgnήë¼a;W¤n$­7¿o¼w|9@J?OŒµz;TåVbŠÄØ ™Ú±É:çùóWè³wX=òÈÝ;/^á&ÞÂEYÇÐ÷È(•+Wfõâ‹?Ñ{³¯ÖcÊU‚‹@Êà'£  - ; –Z@Ö ]ƒ4kÖL½üòËjÆŒL¾®I“&L@HA áÍU­Zµ˜¸Á ¨|ùò.9›óçϯ‡w»,XÐ,£#a¾×v“v')Ôë:³“à ìâœ<Õ¡•É ¦£` §ó5ÿ€¼¡ $vŽÐˆÂs] H˜•ð£DP ì>‘óšŽ~Aû5†?ïxB@ô´è~ÚS—cÝhxǧ‹Yû §ÎyM14®V¡ã}5fÌÕ¸qc.ö4:_b´À–ÊjËj¯ƒVâ WìÓú9D{Sl˜Ä6þ¬ÕiÜP–9i8Ou•ò­;ÿ9úë¯Ýtz‘Ì%ï}L4¦˜ŽU£Fu¢œîCéßìtõé§Ï†r‹2¶ ÄјÆ4é’x°,o»Bþghq”Šc|Rü±?qâCƒ-!´¤AbƒÜÐp(²Ê¾}û¬.÷ÇŽ3Ÿqü b­ƒ2]Ç <üB¬šB«` ” §8–‡Ã´³˜šº>úˆŸ¡¥ƒYŽ¢õψ#ØÝ:žõd¸k×®l–€rÆðç=(Og&-6là[Ý[Ek‡ f®máœRŠ#|h\çÎkíÆ÷Ÿ~ú)›Lè/¾æ†žÄÓ¾¼a‚ÏU«‹£x˜uày±ñ¶VOc‡¢üúu„öºLšä,|,û+Wn8NµdÉ?B*cÆ4f=BE¥OŸF¥Lé{³±íéLGŒh«&Nü›N9VÙjåQâÀÿUÇõŠe~A ŽÀqó¢E‹Øs]kÙ@nà ²í*Žº¡y…V„„v…°{„ýª¶mtÚ‚¶AA>|¸1Ò6 U8Î… (4‘ÐÌ’“»N«yïÞ½M;GhzaKW|b—.]šß LP†ýì šVØÆØÁÆ?ˆùеÂ4Á×|öõòì à‹½á=ã‹ 4×ÐÔÃÜĺG­ÍǼ¡\k ûò·íÉ“¹)Ò‘®_ý¥)*êÙbß.¡Ç‚Æô‘GîÚ—¢Ó,YÒé&_ë×/C¶¦õ ãéjíZ×/m&A ¨8Ÿu LˆŸصYx¶—YW‡$„F‚¦´nݺ\[@8ü€ô@@H[µjÅ$âÍ7ßd²»HëZ5{˜ËªÁºï¾ûøGÁ ! œz=8ʇ=%Žå±òŒg' Ì·”ì]gΜ©ÈÃjôèÑLa{ †ؗ°o…YÄ MŽÛÇŽË&0Q èìÌ…õÂ>Ä¡> ¨Ç<°¡…èõñƒå—6E€v9Ð10¦Ó¸01€Ù°…†ØØdBªV­ÊƒÌÉlâĉl«÷ 1´4æxg0;€dÍ8Ëyä~ö67°ý²®Ý¾Ì«çö… œÏðƒua_|ñÁ°ïs`L_ØØ–ÉÖµ:Õ‡²ìøñhbš3gfrÜF_²r¨ýûϘqM1ÿöíGÉd%Òžå.\ Èñ }ìÒ³g}¿K—±¤9ï©òäÉbo"Ï‚€ $£oÝFÌ+S AGžó %Ð^†B „&î…^`m›uh¡q ²Ç;„ý#~ ‰„9Ž]A~¬²øã?’í[CÖ’Y¤ ©Eðw<8ñà(Zkάcøº‡"ÖG*§þÐ*‚¨Aû¦ ”Çøp2ÂÜ Æ1‘`Œya# ¬ñ¡H‘".kű7´´ ùØt3\Af¡ ¶ L#ptͲ}<´õ6Ÿ}¬@Ÿ½a‚}@cj·7µïÑ:g(× 3"A@}¯òÛo›Éf{<ÙÚ¡/=ß°wþ¯¿®';çö¤aþ…9¾új}Ñú‹æüÐeJh:wîí˜5«;ýÛMèÒ^‚Œ€ûÿÒAž@†8‡="ˆ´vz衇ìÅüŒcm Cc‡'©¹Š©À4@ÛM:a%Ãözhñs/Œ10?´¶*Tp\ >~´øƒ´0Áð$ÞæóÔÇßro˜€xÛI)ƵïÑ:W(×jç^ïq”Ÿ={&&„[¶"S’J”á}A8á2ôÒ¥»(TÛ]o|]‰£ü@=òu_ë5C†4¤…|r}áKZö®1²[µŽ)÷‚€ poˆé½á'½“°;„ œ›¬žÖnv8^· ŽÆµ–Ï^W¬X1Ó‹Ü^'Ï‚@BDàÌ™Kôe-#™‰e§§Ê• ’ùJi·™Û3ÔºuûU:ÅÍ2}bH SÝÏé‘…ÈéÿÈ¡ðÇ8uj#e‚€ {ˆÆ4ö°–™0Êú™@IDATÚñ^·€ŸN¢c’:Õ!®¨ˆ ˜8{æÉñék>á)_ªTż]cnsåÊ=d‚q‡4¦NÄô ™Õø™ÞÐÑóMéÒFª#%TC¶¦áªW¯'<7–A@)¢1 )¼2¸ 8€-*<בM `—ŠFȘå¯À³Ñ HP€ŒU"I„‡1…–òÁïçMCcŠ û°û„,]º›LWòr;.°ü ¦ÆT[§N JÑ‚"b,P_~¹PËUb!¦± ¸L'$tö´Õ„,YðjGZTx¼ƒ êlU¾ö “8tAàЃZ"I­1ݸñ Ù GSh-á‹»cGôqþ_Á¾Ô][ „‚ecjG»eË* ¡9E½ø>ßKìÕò,±€€åÇÈ2… ˜@˜)xů^½ÚÅ éùçŸg'¢7ÞxC!£òÓƒhÀ¹híÚµäì’]Á^‚¨É…÷9bŒ¶lÙÒ„ @p9Â_Úñ žêpâBŒXôGP8 ‰$Ο¿ÌY˜öï?mS¡gË–‰´¨))CJ\qÚ 1½Bšúô!Ùp‡58]é{ïM'G¨äU;$óÈ ‚€ àŒ€Sg\¤T¸yó&‡µBÀ~»g<œºpø8¦GÜÕ7òñ>È'Ží‘;ÇöŠx­½zõâ+L–-[ÆY¨Ð1XñŒ/^äX± P›7oæªÏ<ó ÇgÅ ¼È”åäÁî°)ŠDF^c­'–¢òq_±âýlw oydv‚S”]5êÚµ›AñÊ·­ŸŸþ!²o½­ÞiòoÒgù1]%WA@1r”b€exA 1!€ïÐZ¶ÔI*UªÄÅ:õ*bˆ~õÕW|LØ­øA,LQ„rúé§Ÿ˜œZÇB`yhd÷îÝË ÞuàÀjÉ’»G«ˆ×‰Ð]pÃz¦OŸnBîã9ÈðtæL$Ç/ ¿«ù¬X±€Ú°á})ù—H¦,j)Üvrñâ.Ëœùn?·FA(èÚµ%“h¦>ùd.%ИF™ÌŒ Œ*C‚€/„˜úBHêAÀDþ!pxr$€èýæßºuk~†–YŒ¼E @_Ì'Ÿ|’“àýa ±dµ€¨b µk׿£|X‘„<í¯^½A&‘ôîò»,ºR¥džq‘ˆé.z·Îö¥Ð¶B‚ÇÔer‡‡Nj©1c:“-ô:ÒöÿÀÚS‡fR$AD@ˆiÁ”¡ÄŽ€ŽÁºgÏÇ­.X°€Ë‘A "j»Ÿ:uÊZärÛRd˜²› [4¤Z¬±dÓ¥KÇæºN®ñhK!ž%bêš´D5eÊädŸ|ìK£í‘í»A:RHlSÌÓ A"¦ÝX“Û¬ÙWLœQ."¡A@ˆihp•QD‰œŒpŒ?jÔ(3Ô“Þ(¼ê¡Õ|ì±ÇÌ´¬ÇŽY¦_!Ç–Mêþû£½°u?ëšVW$3Ð--R†Zûi¬n#ׄƒ´¥sç.¹ÓtéR©Ü¹³¨téR“£\.ÇMÅÖQ¾urD˜=û5eU¯Þ65°Ö˽ !¦ÁÃRF’ƒ "m×AÊÈS‡åA>W¬XÁ!£@"­É6lØ &Mš¤pÄÿî»ï2™mÔ¨ã”*U*ò¼ÞçFpqŒ?cÆ Î²‡©¡C‡rûgŸ}6Ià›Ø7 Ç%-eÊäÑ·¶k2ÛóÝG„ŠJ:%‘×Tw cá®@ljÞ¼ždbPLµióúâ‹?8²D,L-SI ñÊOR¯[6+Ü;Јþù矪S§NLNõˆ%J”P«V­RåË—×E|”ïüsçΩððpŠù19µTçúÆ“×óûD2R«dÉ’™v© ¶Ð6oÞœË@`¡¡…y€¶a5' ôÅHÂ@@Óœ9ÃÜB>Á6¦7oÞæpQ… ewÛŽòƒ•ŽÔmpéÓ§V_Ý^U­ZX}ðÁ N™úå—mIËŸÉGO©bê/RÒNL@N>ÌñHqE¨&«Ý§nX¶lY¢ïüâÅ‹3 Õu“'O¦,;ÃÙ± äS Žò* ÚÔ .PªÊR¤KÇÕU«VuÓRÍŸ?_w•k@áž Å‹çv[íÚµû˜”"\ÔòåÿÒwby•môçÁm€X*@¬Óòåó©®]¢/gŸ¨šPˆ³Š±4»L#$nä(?q¿_Ù Rè¾fÍšŽ¤TOŒ°P ¨ÐŒÚ%gΜè.)ÕõЀÂÑ ™¤4)ÕurMØܸMLK•ŠpÛÈŠ{èKNN¬ÿçŸ;ÜêQpáÂUr| m¨(ljm…åÊåS‹¿¥š4©@qN'Ò Â÷-ÒÖJA PDc(bÒ^üBYž®\‰ö ö«ƒ4Jè£üâÅÝ› %­U«k#{õšÊÎFОZÎO±å‘o×éNZ6UO=U^õì9™ìO‘µÅgÍàÔ\ÊD‡œa­Ž©ÁØ Ó` (c‚€°ì:ë¶hQWb §¦íÛª×^«GÙ½ Sæ¥;”TaÅ´}Àe´ U:R—‰x¨ZµZ¸ð-Zû7êÍ7»¹I´V8€!¤© 7nœêСCP×.Ä4¨pÊ`‚€ Þ@üRHÁ‚Ù\šýý÷üŒŒO žUªRü±Ý˜Âù !¥â› J@Æ÷«Ñ£o‘ìMÎlßÖ(낉@¨Ì¬ÄÆ4˜oIÆA@ðŠÀ¡Cç¸ô­²jÕUºt„© mР,i!wP8±ÛÖf|ÿ*yå§u)“A@H<ˆÆ4ñ¼KÙ !€Ô”¿üò‹`!AF`çÎAñر <Žê­²rå^ŽªË7.¯ú÷ŸEIvª'ž(«‹U|<Ê7'7‚€ pÏ1½ge€ø„BIø øôFd-‰ råÊÝóvNœÐÄô®&ôüù+j×®ãªOŸ†æøˆsZ£FJ´°Þ…˜â(?>xå› •A@*BLƒ § —üõ×_q9½Ì->¸}ûŽRɪ1]³f'I€]©Uôí·QQQ×(ÍmZ…þ—/_7^ùֵʽ W#ŸàŒ)£‚€ nÀñ ärëÖ]éêÕ{)‘Bn7ÂÙ¨Q9&¬sælá>8ƇėpQ¼ù%AE@ˆiPá”ÁA@` Ü¡ÁĬ\—.]ª°-ØËˆ#Ô{ï½§ ¡}ùå—Y« lAàß|óMÆÜöö9‘mQiräÈ¡§QøŒÌ;WmÚ´Ék”ãÝ«eË–¹¬ÍìW7ôA@BŽ@óæ_={þläÎÝààù<ß AsŒÚµ{û»ï–ÅŠõ1~ùe‘'OO¯mã²’Žm ú[nAókDB¸ý#<ÂWô}衇Œzõê™ÏÕ«W7ˆœ5jÔ0êÔ©cŽ{êÔ)#EŠ‘=ƒH—Ai!Œ3É’%3òæÍküóÏ?Ü–œBððp#yòäܾR¥JF† ¸îwÞ1|ðA¾oÛ¶­Q²dI#kÖ¬FêÔ©y~"‘\7sæL~®]»¶Y‡¶Dð¸¿0‘M~^¸p!·'2f)æy5jd2ÛcýË—/7ˆTDj ÊÄ}R¥JÅí?þøc³-Eã¾ûîã¹±?:ò6þûï?{fD²Ì¶*T0úöíËÏE‹56lÈûmܸ±ÏyЩÿþ<qž2Ø™c{›{ÇÚ°žjÕªqŸ|ùò1¾xO¨ÃÏ?üÀu-[¶4råÊe\»vÍ_ßlÞ¼™Çùî»ï oØÛçÔŸ'ú’ÃCa/xïx§˜»fÍš‘Y®ÃÚð9K“& ãu5J/Á¯kÚ´i ÊüäWÛ@‰Æ”Þ†ˆ ‚@è8pà i?sªT©RБã5žSOÚR½¢gŸ­LÚ¸Û¤Éú'Q× cŽŽ‰¬)h¡Ñš4ik@¡%l×®k¶ˆÐ1,°]$Ò¡ˆà¨("¬ñD?ØqŽ9’5˜:uRD>Y#‹£{­ùÔØZ¯DfY› M(þùí·ßÌ&yòäa -´ˆÐÖ½ýöÛfŽ¥‰èð3r§÷êÕ‹s¨ æ#êßÿ]eÏžm ?úè#uüøqU«V-vnƒ{Å\˜kïÓ§Z·nc=T®\™çÞ·oŸ"2§† bÎíí†H²úðÑ.Þ›§y0‘'…›ÀZÇúõë« &xÞ¬ƒ6¸U«Vêé§Ÿæw¦+ %EĘ'N¨ºuëšGôÐH?ðÀŠˆ¡nj^Ë–-Ë娫'ì=͉>ÐzÃ<àûï¿çw…ùçûÝwßÕC*"ÀÜdúÒ¡ˆ›uqy#Ä4.Ñ—¹A@H" <Ôñã‰@eUááèXú2“ÍÍ›é(è…ððôªyóÊô~w¢9Æ·n˜4—*""B‘V‘‹aw"¢ŸqÌGÒ¼©éÓ§sÙÂi†4‰ N3ëׯW°å<}ú4£Ï>ûŒoÑÇÄùóççv;w¶Nír_¦LÕºuk&¼hW¨P!&UºiÒP)RD¡ÇÓZúõë§žyæ~D=ÖR @~ñÄ=­à„¶ e œ铦“÷Œ#wiÒþ²'ÈLp´¹1&œ’š4iÂ}}ýjÖ¬™êÙ³'“uoó`iƒ ’–•Í&@Lñ ’SÍ)i*™èb\m€cÿ,Y²8 Óƒ[·nñ{Ð ¼a¯ÛX¯øâ’9sf3=Þ ÞL´À¬¢bÅŠ”â77ýûjÎÄU×Åå5e\N.s ‚€ $ Ž;϶€š˜"¨þ–-‡I#vKÙã—:!Òµk5qâßÏ4qØ—Z÷HGºü'Aó•Ž_ù M(<ŧM›Æ$vÐþA@l¡Á„Æ•Ž±Y{:qâD¥µ«t´Ìíð ÚLO"jh8õ(/X° Y "H°/f”ŽÝY; ‚Ö^úÐN‚4ƒxÂÚF- mØ?lk!°ŸÔBf | "iØxZÚG-ÞæA›ü‘›>ùä“|Õ¿½@¯]—é«}>]®¯øÂ¡Ä„‚/V;^ÝWGØ£–@±nåË—w!·  gΜÑCºØ¢Z×f6ˆ£јÆð2­ I C‡¢w@L³fÍ@N—Žñsä#²tŸO( ÎNµpîç³qk€#yÇùÐRÂÃE²›än ,à#Z>8L‘)Tír¨Åz<¬ËôÕê´Â‡+‘µÖCj­ÓcدhGv³ fZ`jУG~ÄÚ@Þ`€#eýÇ gŸ}–5hhuz‚öÛo¿eâŠ:˜>@´?8üò6ˆ1Hÿo¼ÁDd?mÚ´a -œôçÃtûr}ôQÆ×)*œ¡È~“¿ˆè~b/;p Ã—-ølXß™§µéöquõï_C\­NæA@H=z^¥OŸšI)Žæq”¿nÝ~ŸÇøÖ̓ÀFF^%òuÐZœdîá)›Mxrƒ´¼@`GOØ—–*Uе«éÓ§g´ž°A…÷>ŽÉ½Ù‚¸@ í+lAÆ´9æÁq2Æl7­šExÝk3P¬Ä¤GÊ0Oرc‰ãlØ}fÊ”I‘3lŒbˆ¹aƒŠ£zxŒÃ¶f 3rŠv8Ö‡M­Ö,CS m(ìZ5iÄzí"ïiÌ rÚµkW6a€ö?;väuÀFÖ×|ä¸ÅùÖH ö5èghб¼ShdarýÁnš[ìŪmõ„½§9ñÞ€%>+XÏš5k8Úì`ã½â)%mA@˜ ðÅÇù îÚ·ï¯Æ3Ï|i”-ûž1r俇kÕê[£\¹÷Œ6mFúÝ'6ÆÔ+_{•“6“½±á] ![C~†g¶xʱ0HÓ¦‹ :Ò6àeM0ö$/W®œAa£¸~þüùì•>ðІǸÕ+^ìxåÃÛÜh /{í¯=ÃÑudr`¡b{îL¿c«Ã½‘ÝAÊ^ïéã"%©7ÁÑ6~œ @XŽaˆ·yüÇÛ|vBíÏx0uðä\eíï {osb­ÞÖk?¾Ü‹i|y²A@1Ç_ VfÞ!®ˆKZ¼x.Ò~ù¯}iæÌéÈA¥‡Ž‚jRØ"ƒlïEC­Y•*UÜ`ƒ×»7âÏ~«&Ïm)  •I {!¦!ù(É ‚€ VNŸŽ¢ëÑÇ›yóFÓ.œÓÚÄç=ˆi¥#­U«¨ª^½ˆ¢¬Q>û$–?ü0DGàyhc*pŠY¼x±[w8×M©[9 ©Nïe^ǽÂKÉ‚-p4B<Õ„"q}\c#Ä4®ß€Ì/‚@"GÁõá…ß}y§9rDkN³e‹~ögûW¯Þ`-+4¦÷ßoL6•ûÕ¼yÑùåýCÚ$£Ôs3X+GħMÁ_ƹw„˜Þ;†2‚ ‚€ -…Ÿ­&¢ÿþW©IýØ—B 1…<ð@>rÈyB ͦ åw¸L~%Là¸äI`[ g/k ´½sç;€Í;—cŸÚûÃôuˆÅê·|oGžc!¦±¹Ì(‚@’BàôéHÞo¶lÑGùÈø”2erò ¿æ78Ƈh)îûö}’=ûÇ[‰G‘„âR¨#Î3'8p §?¥J)E!ðBì±Ç8u)¢ ÀSñ:µ F*É#(Rn"–*¢xÄaÅ<ˆJ€ø­"q‡€Ó¸Ã^fA I pöìeÞ§>Êß¼ùiOÃ(üÏ)¿÷oט¢#2A½ðÂÊb¤YqMEé÷ÀÒ0V@ý×_ƒæSLP"ï)è;ŽòÁçA.»u릢¢¢Tÿþý9½?5fÌ‹4­ÈkÿÁpô„JB˜,´CÂoBq\É:;ÔG@d€BØ,‘ØG@ˆiìc.3 ‚€ ¤@úQxt#)Ó¢Esi8á7š˜Z5¦èÜ£G=öìÇ‘¾HüDqTøágEð)ã×:v´B:ÒŸ~ú‰ãš:­¼eË–AÚOEd0±E†)dÒñZ;wîLŸ­¬N‹’p¦)¹ H‘"ƒ¡¶¼ ÅW'NTXH.ìP‘E ÎGÈÄä-£”·q¥.p„˜Ž™ôA@8>”&OžL]½z“~Ÿ$ÂQ¢Îœq ôîiXå§N’Òp¦ri’!CÒ =C1M×$ÙT¥.€ÄÇ7*hGáxDY ÔŠ+HÓýÙ ‡y]-Â$i)Y²$ßB‹Š ü ’VAp}Ô!@ùòåé³v—ÞäÎÛoG*ÄEZRD!€*߃ønÛ&NvV¼Cy÷Í…r[A É"€cv­-ݾýˆº}ûŽªW¯ ã±{w´#”/p 1Í”)­c³§ž*OG½ÅTŸ>¿SŒ$3t) A)Í&ϯ_¿>½ûzjÒ¤Iô%%ÚnØÓÒ8`V­_¿žï¡%Å‘»5ó2VôB³ ‚ 2iuxÚ°a×™ƒy¹¡´¥œ»žR”*„Ö‚ýêˆ#TéÒ¥½ô’ª`" Ä4˜hÊX‚€ n\¸pÅ …c|Ôråòòu÷nÿŽó£¢®¹8>Ù'4¨kbÇŒYf¯’ç8F }úôêå—_æ8¬°E£_|‘Ó§âºsçNÇRžyÖT‚X"Æ*²WáxÇø8²ÿõ×_ÙQièСÜÿÙgŸe2 ÛR8CáèóÁöÔ“«ždöÿû¯ qN‘p)^7oÞÌqO‘~S$vð?åFì¬GfA@Hd€TjmçÖ­Gˆ`D§,Y2‚lúµ[hLu¨(§… eW¯½VO}òÉ\ò®.Mš®lNͤ,ލT©’ÂHç”)SÔèÑ£Õ¸qãè½}â¶²¢E‹²W=ÂIåÍ›WÍ™3‡m•ÌÒæÍ›ó‘}ªT©Ô¨Q£Øƒ6¥}ûö¥ä ƒ˜ÌÞ¾}›Ii÷îÝÍñ2X!Õ+òðáÃU‹-È´HÜ Ä4np—YA@H2 ,”&¦;wUuê”བྷ/ŸŸ²ùçù S»ã“ÀW_­K÷·ªž='“ƒÌ+öjyŽGdÈA=÷ÜsüãäX¤Ë"##Ù! $UÛâ(ø÷íÛÇZQhQ­Í>úˆ>=Iƒ¾‡µ³HêŽMø± ÈnڴΦ"ö¶òZä(?´øÊè‚€ $y.]º®à¤„@øUªTcR¾|>ö̇C”/ñ¥1EÄF:´ 9A pAÁOgékR3Ò¤Iã±#¤Š/n’RÝZÏÂ… ³FÕJJu½Î1o%¥ºÎé*¤Ô •¸)b7¸Ë¬‚€ $ôQ>¼ñoܸEŽ$yxïИÂjÛ¶#>±ðGcŠAJ—ŽPМHc•*…ø¸½cÇš.uúÚRˆ·ûº­ýš%Kz ¾ÞI5i2‚‚ºÿAñ-ëÛ›í¹J•*jêÔ©AOâ;øÌ[„˜QOAÀä-?u*’<óÓ¨ˆˆ,.ux@žûáÃpž{U»À¾bŠ~>˜_}øaÊô«ªPá~3À?ê‚) i1EA æÈQ~̱“ž‚€ ~ éÉ“‘”2ònk·G-©ÎŸ¿¬6nöXIµ}ûQ¶EµÏi† i˜œÚë}Λ7\}ÿýs¤ý‡Ò–þhwi/!F@ˆiˆ–áA@Hê$§¿4p€òdc |jÕ*ÆiKçÎÝêWLb˜º b)¨R¥ Â±þˆ Õ¯¿®·ÔÈ­ Ä5BLãú Èü‚€ $r’%‹þS“/_V;M“&¥ªW¯´š3g‹[›@³>¹ àPТEer„zL½ùæ¿2O9 !E‚€ „˜†TRAà.Ñö¡i)ûSª»…wO=UžHâ>uæÌ%—ÚK—KGêÒÙËCß¾Ôã—Q:}¯ví:T ‚@l! Ä4¶–yA@H н/yä‘L^íÇù8ÊIÖ'_ó0ÑN•)“Gµm;ŠÂH]ðÕEêA Ä1 1À2¼ Iø£2fôƒÕºuK©Y³6¹@u-ÆÁõ]rxH:…;öyâܦÍHuñbtÌT‡¦R$±€€ÓXY¦A )#pëÖvlòƒfÍ*²Íç‘#wƒàƒ˜úClýß© ´±'þc›¶k7J]ºtÝ©™” ‚@, Ä4@–)A@HÊܸq˧}©ÆñL³eËH9ç×ê"ç§°0ßW³C nråʬ&O~‰³Bµjõ­ØG@ˆiìc.3 ‚€ d@0{d~¢€Q~í1O›6­HÄtÙÎOaaéÌçPÝ*”ÂG½Âø[¶ü– q¨æ’qAÀ!¦Î¸H© ‚@8~<Ú¡èÖ-ÿˆ)¦lÙ²Š:tè¬Æ ÎO3Þ[Ö'·R°`6"§/s S±9õ9i'!¦ÁÁQFA@p@@Ó«Wo:Ô:•(‘[•+—ì>WsØ|†Â+ßyv¥ Ȧ¦OE=¥žzj˜Ú¿ÿŒ§¦R.AF@ˆi•áA@î"€£ü RÓ±ø•»…~ÜuìX“‚íoV§OG±SR(Ÿœ–“?ÿ}4vºzòÉajÕª½NͤL‚Œ€Ó *à ‚€ ÜEàĉ‹*<<£[Ðü»-œïš4© Ò¥K­~øa97µó“Ó*räcÍiíÚÅT«V#Õ„ ;5“2A@"BLƒ¦ %‚€ àŠˆiŽ™(Ó5Ò|úœ˜¦­ZUUS¦D{çÇæQ¾uXÇ·ßvP=zÔS½{ÿ¢zõú% }XÇ’{A@ð€SßI A@"€£üˆˆ,ÜûÌ™¨€FéÔ©&9!E÷É!´á¢|-¬gÏúj̘Îê÷ß·¨úõ‡¨­[øê"õ‚€ „˜Æ4é"‚€ àИÂ^¢I¦=÷«X±7Ï”)v¼ò½­í‰'ʪE‹ÞR¹sga§¨#)Ãð?Ú€·±¥N¢b*ŸA@!ç¥ûï¿O%Ožœâƒž‹¾Aƒ2¼¶Ý»O„l Œ@üS¦¼¤úö}R}þù|Õ¬Ù×jÏž“ !mAÀ BL½€#U‚€ 1GàæÍÛl[š={˜Ê™3Œ³*:š63fY ]CÚ¾k×:jîÜ×Õ•+7Ôc}¦>üð7uù²¤2 )è2x’@@ˆi’xͲIA@bóç/ó¤Y³fPyòd‰1E ÓôéS«… wªø¢5ÕH–*¡æÍ{] ÔŒ´zh°š9s“®–« Ä”1è#]A@Ÿœ;w—˜æÍ›U9rÞg{xó‡‡gPùò¥U_}µHÑÖÞ$VŸW­Z¥† æ6g±bÉÕÁƒaª[·ŸÔ¨QC(þ©ÿÜ“A  еkW:Mx,àˆÆ4`Ȥƒ ‚€?X‰i¾|Y9ͨ?ý¬m 1Í!zíµzjÆŒjïÞSÖêX¿?|ø°úå—_ÜæM•êŽ*R䂪Xñ¤R7t¤ ©!0sæLµoß¾m[4¦1‚M: ‚€ øBGùÉ’%SY²¤W fWžÚӌӨ§Ÿ.¯¾ür2d¾9²ƒ¯©CZG®©S§†t\HÈdÉ".&{iLP“>‚€ >€Æ¤4yòdªP¡ìì(„¸¦ŠŽ÷­·žP³goV;w di+ !¦ èeÉRA@HHDF^S:cˆ)dÿþÓm!**ZcŠNˆ#Z¶l^õÙgóC ‚@ÂA@ˆiÂyW²RA@ÐvÂ>’-[F–.`QؘBcª¥W¯'ÔlWë×ÐErD„€ÓDô2e+‚€ Ä'®\1Mm.©xñ\j×®ãæ³?7Vr‹ö>ZRÕªULõë7ÓŸîÒFBLØ “å ‚€ P¸|ù†©1ÅšK”È#b ç'«|ðÁÓjóæÃ3Ô Š‡ûñãÇ«W^yÅCmðŠ/]ºD6ÀoÑ;.AÉrª-Z¨±cǪ7nø5É•+WTTT”KÛõëדÓÛÓ*,ŸÊ‘#‡ª]»¶š?¾Ùæ›o¾Q/¿ü²ùW7çÏŸ7÷¹bÅ 29yÂüiÔ¨‘êÙ³'Åá]è²¼Ž;ªiÓ¦¹”ÙÆŒ£4hÀ{/\¸°jÚ´©Z¼x±½™Çg+¦ÿþû/¯éäÉøŸ¥Lˆ©ÇW*‚€ ÷‚€]ÛY²d̈©6Ðk)]:BµlY™ÛÏVׯßÒÅru@`÷îÝ ±WC-Ÿ|ò‰=z4Ç­ø@½øâ‹Õâ€züñǹ?bÅôömda»¤îܹãO׸mcˆ‚€ !@ C‡ÑF÷îÍ‘W¯þÏÈ»‡qôèy³Ì×ͼoP:R·f'O^4 îm ¾À­.”“'O6(\”ßSœ={Ö8uê”AÄÀX»v­A+î{ùòeƒ´kÅz4Ç:xð öV¡¸©iäÌ¢ 6D4 "fnHÛh¬\¹Ò8s挱‰Äpý;ï¼c<øàƒ|ñâEãÂ… "ž›H+—ã×õë×'Nðó?ÿücüý÷ß\¦¡1ˆLñ>Pf}FyÖ¬YAƒéæ|%RjdÊ”‰ÛêŠC‡Ë—/7°-XsãÆ "oôÙ8j\½zÕ bg<ôÐC.k¸uë–Q¶lY£P¡BÜ•4‘FõêÕ "¬ÆêÕ«­[·šëÓc§¥K—ò¸º ×#GŽ‘‘‘¼ŽÍ›7›UžðÅ[¶l1PuhÁ;K‘"…1dÈ~Dš buʵ+"™E–0¶mÛÆÅØ³~‡öµv•Çxï½÷ô|Å;"bj¤K—Žß•·wfÇk>~ü¸ËÚñÙúý÷ß7º¼#”ãž;wÎøë¯¿+—…øñ9sfcÔ¨Q~´to¢Ü‹¤DA@¸wš5ûÊxûíiæ@“Ôˆˆxݘ7/ú³Yáå¦H‘ÞÆÏ?¯qlRZ¸p/úÃyα>…S'¬ 0Ù©íÖ­›AZ6~‰ùôÓOy©5jÔ0êÔ©c.„¤ç믿fRtÿý÷3fd‚Cš8ò΄í+UªddÈë¬Ä´mÛ¶FÉ’%™D¦Nšçî¹ç¸Dçg:.7tÚ‚¤@4Yɳ?ƒ`a^:¶fRÉ èÖ bÕ¡Cž#UªTÜþã?æ¦À¤ XT«VÍ ãz¾_°ÀýKÇÞ½{ß~ûǶÀ!OžR¤¡ããxÄ Åœ“&MR˜ scíDÒÔºuëoÕªU+¶'%M-Ï9Ê•+‡‹‹ÀÖò©§žâ¸¶¨o¼ñãBDWÍ;—¼a“¤… (pÁ\ÀT ì>?üðCJ!;Ê#¾h |IK©€iYU•*UTëÖ­¡Øc¬qÜþÓO?1>zlûµbÅŠ•"LÁüÀI¬k=è< ˆº5%1—[³*9½3;¦ÖH³Îæßÿ=¿cÌG„Ÿþ½k6#¬ÐŸ]Øö6ëB}#Ä4ÔËø‚€ $Qnݺ£H“æ²ûråò©­[»”yz¸zõÿñ·Û˜êö©R¥ òÑœÃGýùç]ï® q°i{øá‡™XÀ!D¶‡ ”8 ¯éÓ£‰6ìáürß}÷)28Á–óôéÓ î³Ï>cKô‡Pþüù¹]çÎ=bP¦L&U ¼hGÇâŠ4®fû÷ߟIX‘"E¸ž4¤\‡gÌMš_ÇgO8þÀÑ NLýúõcrRùùçŸU… Hi'™H“ö×Å™‰Ò/Ò°ê[ŸW줟LLU-`½sçNEZQ&ûóæÍc’ª¥Y³fl» g-OøÂ®Xá v¡ §°óÔ_ôX¾®x¯À×I¬k!S JLáœ9 ĘŽåy/zOïL×Û¯ ç¤ÑT¤Áæ*¬ë™gžQ‹-2›’&ÒëVT¹sçVÍ›7gâjV†øFR’†`^¤ŠÀíÛwÈyÃUÿñÀùH‹õ§_À«≘¢®fÍ¢ªY³J¬5}è¡bô‡?Šã•à»h×à,"6š7(¼µA–,YÂZFÔÑ‘.×uÐB‚B°6Hh‡q4¬FŒ¡ž}öYÝżâŸì\ùXÞ,üÿ²ÇeSMB=a;aÂõ矲¶óÁ„ÀS[ í _M|a × üÉÙIim_£Ó3BgA“\µjU§j—²G}”ß‹S4…9sæ0Ç-¾3²‘UÛ·o7¿aìÉú®½a¥ç ÕÕõŒPÍ"ã ‚€ $9nݺí¦1-S&͵k÷ùÄCkLÓ§w·µ³vFV©÷ßoL¶‚KÕÆ­U îö“°Ù$l&mš€Áæ°©,UªkWÓ§OÏš/h=ж¡8&÷f[OØ‚è"dbmjÁ±0ÆìŸ|òI®‚&æ×6’ÖgR #¼ÑŽ;xLha¿ Í09c1ÁÆxÐcnØ 6iÒ„í?19D),Ì íö°P ß8’ÇÏK/½ÄkÂѽ/Væ î°Ë…FGä°ÉuOøBÃŒ°O ÑÀv×®] 1H{÷îÍ& kÇ—kø'Øg"æ(ìna‹°Y0·¨\¹²Óô.eh{b|‡fØ?ì}üñG¶eÕ„=½3+¦Ö ð¾ñ€1ð&Ç,ÖÎÃÎ7^»gÉ/A@A ÈÔ¬ù‘c8§æÍ¿6^{m’ÏÙ(í(‡—:vì‚϶hкõH£víÁƵk7ýj“Fzå)ag=Ù…¤™Ò9 ±ç³Y@7ð”'‚Àa¡t99E±'7i²ØÓœ´ŠÒ õðb‡w5úÀ;žíV¯|²íäaà•OGÀf[xòkÏxíá¾ÞçDŒÌFD*¹œ´¹<–ýôdÊmО÷ˆ2@ZKnðC Þ¬'Âí^ ¸bN½V„g¢ø¥<ÆÃ<½—;¶o„väÅ¡›ÈF’Ÿ1€¶Av”Œ9AÅŠ3÷Žñ¼á Ox„¨Òë€×:Âii=ê€åÔ©SÍv(ÃÜä,eyt ÕD¶±ìÅ1ìkA‘t ¥çÄ¡·È–Õ,¾Þ™S»W>"ೄõal"¥fD¬í‹/¾ÐÓDÚyn³À›{ñʇ*WDA@:Õª ¤?¤‹ÜÆýôÓyDžº•Û –-ÛÍÄôâÅ«ö*Çç#GÎSè>ÆÀ³ëƒQ(1Éœ¤äxö¾ kˆUJÚ9{“ „ý´…9r‰š7o›.Žñ¡ŽœÒhÆx@é($B(^®òÂÊ×vEcê !©A@ˆ™2¥U—.]óØapT?oÞVÕ©S-·v ¦ÐzÞ«4mZQ­]»Ÿr·O¢8›o¨‚³ÅxHÄõK4ƃJGA@0© …Ü‚€ ÓÈHÏÄ4Mš”ª^½Ò=ç)µhPˆ)öôá‡MHƒ“C½ðÂXÂ+"ñ!¦ñó½ÈªA@HðdÎœŽˆéU¯ûhÔ¨œZ³fŸ:wî²[»{ñÊ·†Ø©cÆt"³‹¬9µ×˳ Ä„˜Æ÷ «A Ñ!曘>úh)Íéܹ[ÝöL)GúÓÑ£;«ùó·QJÔ?Ýæ“A@ˆ{„˜Æý;‚€ (ð‡˜¦K—ŠbŽ–Q¿þºÞ ƒë׃w”¯¯^½°8°©2d¾#Öíä*qƒ€Ó¸Á]fA Ñ#ML=Û˜jš5‹vN:rä¼.âk´Æ4ø>ºíÛ×ààûÝ»OR;ws™SA nb·øËì‚€ $ZÂÂÒræ'ØŠz“:uJ¨¬Y3¨éÓ7¸4»~ýVМŸ\¦‡š¨ î'‚:Æc¸*{yÐ# Ä4ôË ‚€ $I2gNÏû>Þ{°í)’«§Ÿ~PM›¶Î'xϧIsïá¢\ýÿÌ9zt'WÕ®Ý(uùòu§fR&±Œ€ÓX\¦A © 3goõÔ)çúVZ¶¬¢öî=ÅñFuù·Ø1J?ûЍ'vU§OG©.]~”´¥ÁXÆb€€Ó€&]A@|#bš,Y2uüøEŸË–ͫʕËGDño³-œŸR§¾©9ÝäÍ®Æï¢Ö­Û¯Þ|sеJîA b Ë”‚€ $’¶£'Nø&¦À£M›jê÷ß·¨¨¨h‡)¤3 Fæ'_XƒÕ‰"l ô¥ó|5—zA@!BLC® -‚@RG W®ÌÔÞš4©ÀͦM‹¯üPkLõºy¤„úì³jøðjØ0‰qªq‘« Û„öŒ$¶w#ó ‚€ Ä+@Lý9ÊÇ¢‘´iÓJjìØå ! È5bŠùaçzóæmÕ»÷/*yòäª{÷º(XD@ˆi,‚-S ‚€ Ô1=|øœßÛ~î¹Zj„UjñâÜY¡bSÚµ«Î„¸OŸiDN“©W^y,6§—¹$@ìþ‹Oòp ‚€ $-@L×®Ýç÷¦K”È­jÔ(¢~üq%÷jl ´µwîªoß_Õ•+7T¯^OÄöd>A É" Ä4ɾzÙ¸ ¡G ""‹:vìB@=ÿ|mß„N±ecj_`ÇŽ59†jïÞSÕþý§Éî´MHCWÙç—gA ©" ÎOIõÍ˾A@ˆ ÊÎÁëOžôËT/§Aƒ2*Ožp~L:ö5¦z­ZUQ“&uUýµ[5oþµ:{ö’®’« „!¦!V†A@P IJoßi¿á@ìÓÖ­«pû¨¨¸ÍÈT³fQ5{vuîÜeÕ°áPµsç1¿÷! A p„˜Ž™ôA@ðìÙ3©ŒÓªÿþ;ågèf?^†oæÌÙP¿P4.\8»š3§‡Ê—/«jÔh¨úþû塘FÆB@ˆ©| A@BŠ´¦hL­‹™1c£ŠŒŒ¸o-íûððôjêÔnêµ×ê©þýg©víFÉÑ~l¿™/I Ä4I¼fÙ¤ q‡4ŽÓ[·îð‚Ot̘¿ânñ–™>ªGÇÕÌ™¯ª½{O©Gù”ÂZýci!·‚€ p¯1½W¥¿ ‚€W ÊAÄ4°£üÛ·£‰iëÖÕÔèÑ©K—âÖÖÔºÁ îW ¾¥~¸8kN»vçwÚUë8r/î1uÇDJA@‚ˆŽò<«4Ùôghݶ]»jð^Å­©^{ÆŒiÔˆmÕĉ]Õ¶mGÔC Vß}·4 =ê±ä*w8¦w±;A@þ˜$E@IDAT P¼x.Nõ‰ãoÜû#š˜fÉ’^ýï«‘#—ªNj)<‡JÖ¯_O1K÷<ü+¯Q‹UƒÍ&rº@½ür)–:àq¤ƒ ÔÈ—/ŸªV­šË¶…˜ºÀ!‚€ ÁF X±\œ~ûö#~Ó[·nó2`cÚµk5vì õÕW‹Ô»ï>ìå™ã9’<î¿7Ÿ½I™2‹ºx±<%ÌiMí/í¤†@‹-Ô”)S\¶-ÄÔyA@6)S&'B𛼛5«ä×ð·oÓù= úfȆ½á š£^x¡¶BšÓPÉã?®þøãP /ã ‚Àÿ#ðì³Ï:b!6¦Ž°H¡ ‚@0(W.¯ÚºõˆßCê£|SH‡5U¶l™ÔçŸ iôDi($@„˜&À—&KA ¡!P¶l^µcÇQ¿—m=ÊG'¤&íÓ§¡úùç5꟎û=Ž4„…€Ó„õ¾dµ‚€ $H@L£¢®©Îøµþ;w¢ò;TKÓ¦4¯ýúÍÔErD†€ÓDöBe;‚€ ÄGJ–ŒP)R$g;SÖ‡Q+1ÅsÿþϨåËÿU ìÀ£ˆ $2„˜&²*ÛA >"&MJïü-[ûµ<ãÿ™i²dw5¦èX¹rAÕ¸ñƒœôæÍhÏ}¿”F‚€ bš ^“,R„Håš5ûÚˆ—rß÷ßoÌ™–¾ývI@c%¶Æ]ºtq µŠ=îܹS=óÌ3*oÞ¼]¡8EHxMýõ—ÿibÏŸ?¯nܸᲴo¿ýVÕ®][eÍšU,XPµmÛ–’04Û ŒÐŒ3Ì縸¹uë–:wîœ9õ»ï¾«žxâ ·X·K—.åòÛ·cÿ‹ÒÆUëÖ­U‘"ETŽ9Ô£>ª>ûì3uçNtæ4sñnì{ìØ±£š6mš‡Ö±S,Ä4vp–YA@HòT«V˜<ó««WoúÄ“Æ#"²pÎúáè#GÎû+±69Ü·/0¢(xÍ›7W{÷îU/¾ø¢êÙ³'i½·0úóÏ?ý„é—_~1Û>ÿüóª[·nLH‡ ¢š4iÂD·jÕªêøñhǶիW“=ò³O\ÜÌž=[Ýwß}”"úóºvíZ5þ|^»u=‡ârý™µÖ…ò~Þ¼yLî‘â¹çžS~ø!…RË¥zõ꥞|òIsÝÞÖ`ßã•+WܾDxëŠ:!¦¡@UÆA@pC ZµBœjÆnuöíüd/×ϺŸ7o¸zÿý¸ÓªA›vúôiÖN­[·N:uŠ—‡?î+W®45k×®Áé뀺~ýº^>ߣL“´Y¼x1E.ØáœÿÈ‘# D m1ß™3îd˜ãŸ={V-Y²„¯z²ÈÈH ü‘ûc]ÿþû¯®â+ÕÕ«WM-´hXä÷ß§(ÿ¨Y³fQrƒw)ÙAW^gîܹÕäÉ“¹þuøðaµbÅ …ù´€´aü'N¨K—.)høáB:nÜ8&T_|ñ…š;w.ïkøðáº+_±nô9zÔ=¢pY¾|¹ÞZ ™®={öð¼ü@¿ ]üûï¿ÕåË—u_±ß­[·r½Özbÿú}b<­Ì”)“ЩS§ºŒaÀøâpìØ1—*¬8DEE©U«V™Ÿ rìåÂ… .íÖ†x× ø%K–T›6mR}ûöå/“&MR_ýµiýé§Ÿx,OŸ §="ÉÄÓO?m®kÅ>ð°f-øìŸûÛ¶m£t¼AÒÓFDA@ˆªUh|öÙ<ŸsýöÛ&#wî^Û‘·™?›×vþVÒzƒìûÛÜ í¡A) ÀUË ,Ui Òò3Ê>ýôSƒ×a0Ç&`¤H‘ Bb :ÔÈ!ƒÆý5jdâ¶ï½÷ž9v–,Y :J7:wîÌuE‹5 Ä÷©S§6jÖ¬Éc¦J•ÊHŸ>½ñ믿r“D` :67Ðë" ×á×Â… ¹ŒÈ—ýïÿ3²gÏÎ÷Dn¸ëµ h?"IF‡¸æÆ¾>þøc®ÓX›O>ùÄÆ(#ÉõÖ_Ë–-3ˆäpp}ðÁy,²36ðC„–ëˆ,UªTáù€YÊ”)ÁƒsÝæÍ›¹œ‚·sŸñãǤá5î¿ÿ~#cÆŒ\F& ‘mn¿{÷nƘ`Ò8ô%À / üÎPŽýì߿ߨW¯žA&ÞÚ‰ä1ˆ`óœôÅŸ‰$2Îú}V¯^Ý ÒÆuØžõ{À;ÅçûÃ\èƒõB<­ utÜÎí,X€GÁgŸ“Ç{ŒË=}6œöˆõá=Að>ð®ðÙL›6-&Ђ5ã3…Ï ðÁÚñoGn¹‘_¤‰g<íÍðMFDA@ˆzô˜d4kö•Ϲ@L#"^÷Ù®{÷‰F… ý Eå³­¯1!¦øƒLZ>ƒ´Rü‡Ïýúõ3HÓÇtñ‡òÈ#ð^HCýúõ Ò.2a"­!W €Ä‘æÑ íÿÁÇx¤3&NœÈÆ1ˆˆ0H»Çm›6mjÐ14áe€˜b]¤Mc‚‚‡gÒ‚òœ¤Y4èø—É @hÈu¤3J”(ÁíAZÚ·oo€¤’Ö–ëñëóÏ?gR÷Ûo¿¤á3FÍíéè›Û€ðM˜0ïÉ®Ôxøá‡ùÞÛ/ÌRH3Ǥ°R¥JÜeذaFxx¸I.A¤H“i€°jbŠ5Ïœ9“÷T«V-Þ;i^Š+d'Ëc$V¨PÇ"ͫѸqcƒl^™`MŸ>÷¡I´&¦d Ëï쥗^â1¬Ä”4¢ü޾ùæžäû‘„`_ µx·d»Ëã€ô‘&›÷‰}ØB¼­ _Hðñùq’6mÚð>Pbêé³aߣ&¦ø²/\¤=å/xÆ}žø€×C¦%NËq,óDLå(ŸA@ˆ`gºqãA>Ò÷6#¼ñ鯙·&\ׯß3tœxK ð›Ï¶¡h@š8Õ½{wEFE„K¥I“†í0Ió¥ˆÈ˜ÇùíÚµSD:ùxGñ8…ÑEìÕ÷߯H»§ˆÈòÑtµjÕDEšOõöÛoó•Ȇ"Âåq°ÅzÐçwÞáãüíÛ·sû2eʰ“ ‘^EÄV*TÈt`‚ã ‘;ED„Û©åþx ¢ÄGÜ?ÿü³BºV˜`"0¦“ êˆÜñ>`JšNEÚI>òæ-¿p$îÏ{E"ÁŠ´ÀìÔÓ°aC>šG9°„]%Æ‚©ÌpÌl5! âÆGÒXGáÂ…¹=öSçÃAGô¸‡CÌ`²€=’vT¡ÄTŽ’?~ú¼ Pß}÷9ó­qiƒÏœÅ°^¼o©s«)Ö÷‹cx¬ sÖ¨Qƒ÷Y¹re^—¯µÁT€/¥ëÍà2¿~€Ii2õ#¿3OŸ ³‘åæXÞ5iÁ)ÁEjõꫯò>víÚÅ-ñzýõ×¹žH:—Á|â^%å½ ýA@1½ví¦Ú¼ù‡~òÔx©_žžHBSõòËãðW­Zȯ~Áj[K- ¤åS°C„XÉu³fÍh/³§9ˆ )œ~ðG„D^ö°‘$í“:Øg–/_žIž¤È“À»] DÛI‚DXõºÎZn¿‡í HI«V­øõ°Õ„×ü›o¾ÉŽQð¦‡-¢Õ6‘ލyÿöñàÕÛGI“nçà"!-Ÿ®RéÒ¥S°·„Àá yÖAöŠ+F©j³™íôMÙ²eõ­IÒÉd‚m1AªIûlÚ®ö®Z}@ÛØê2û$ cÀæ_Lþ¯½ó“ªÈÚp! *A1€(&T0c@0®¸ˆb@0aÄ5¬9‡UQAYWÔ5”U×°&0‚aM˜X³˜1çFPÄûŸ÷ðW{§éîIÝ3=3_=OÓ7Ô­ðÞöñ›S眊Ñ}øá‡‡I“&yÆÁï"]Ò¿æË#±ÄßLÌPolZx ¢9NüOÅd=ˆ¥Ðo#ÖIóÛ£˜u9s9Ž;ú8ó[…ß3¥~¦²˜Fªú(9å–[̃–}4¿EŠA Þ(U±® ´fØb‹nf½¹Ñ‚x*¦%òFJøB¢*¥M›6aàÀne$BQŠ5  „ÑÞ¤UÂJŠ5𪫮 K.¹d&J=öQ( ?hC+%}ë ±xÏ+äùË "0]°Ž©Oð ‰u˜à§ø¹ð çyŽºX â2ßHN3…¶Ì}ÀÅ\¼˜-AXUÖRr¡B_øZ•Ú±8Ž*Õ;çœ-ò|¦‰›»«T¿>*±„‹h°`#_¦f X#ɉÀ@„³ Ž ‹ct`ɘ¨yó[Ì,gç?ÑØDܳ|Ot;ÖÕž={zUDÛ,ñ"Ò°ÌZßcÙ«ß;ï¼ãçDÛ#Ü(ˆi¬¦„å"™q0–ïq] ˜_¦Ï‰ü—´?räHÞm óAPÓ'‘ä[,7ß|sÀ2‡ˆc9Ë'–ÙÊ KøÔ¥]–Ž´”˜á ûyÜ$˜ñݺuóP¸;`EîÞ½»³Ç%jÞÅqÇç.¼ ×sý„5›¥løÄ‚Å?ª°&’QK8ËîùÆŸËþ®llXI±°óžæH„0LùõêÕË]6b»ù~ù戥 )ï’ßÙ°Þò‡E¶…6öQ´oƒ­"" " uFÀ¶õÀ¦/¿Ì¸Á@ˆ´'*ßvwªò¸î¸ãyo—hýš”ê?uÔQ û2¿ÅĬñԣȉXŽ…"ãM0f¢´¹7bÄz6ÿÔ„å ôHwî™èÈDl dÖªLT¾-cg¢ßM`d¢ØM xÄ´¥#¢ ~21á}s›5Ïýì¨|‰Yk¹åå”SNñññl|žà*ó×ôû qï̳PaÈ!~/öi"Õ#Æc}¾‰À7qåíñŒb@ç&Î=À‰c"ÑaaÐÇÅø/<ˆh§=ºb1áëAGfáó@ ë|Ä}‚¥LfÆNðIæG?´g¢ÝƒÛˆÊO‚Ò–¢_›\Å9ïžwi›øXÉ8=/zþŽc›ÄYÂ|?-46*ÐAG¼{úãcVÔ„Œé ¨B¿ì92¾•ÏïÂþðvam¾È™L Ù¿}2п¥ýŠS©ô;_ðS3ž´ÆTD@D@D N`¿{÷“ÂYgí† Y/gŸ÷ßÿjØk¯«,ãfUü#ˆ#gåÔÅáÃÇYøͪw¬ù0Îõ{KÝ.x¸ß~û¹Õ ÿÀR,}øúÑÈtÁÒHÐ V¸lßK–¬ùà‹ˆ“eVr¦ AWãÆó rb¦ƒ¤° aµÃ…€–©£¥,ÝF¡c‹°Æb¥Äo2ºZ¤ŸÁb‡ß'í4•.,£³ËÏÇ‚+>’, ã¶P‚%¼˜'sÁ’‹U/úAf·E}äs?íoI=îÁ…ïlŸPü5ñŸ%Ñ~u ¬x&>‡Ï(¾«é€¤ª´Whlñy¬±Œ‹4`ÜÒ¥Ðoƒz…戯-œq;!H.×{O÷Uc\Dh+oºTôÈMßѱˆ€ˆ€”€ÀB -`QÈ+ùr~>a:ß|s}7«k;=zpØ|ósl9ö[úÞ££¯Y“,Ç$ò,cgÌÆoœ}ÙÏY¶æS•‚/+Ÿ\ŸÄtPP®:ù®‘eÀÒ5å»í× *â“«äž,wó©Ia.ÑMçcÙ‚,Ý.õ‰|ÏU qAÔñ©n!(+]ªâÏ›® -ÖAì§YÄëÙßù~…æHP®uYäcZ—´Õ—ˆ€ˆ€Ø|ónæ[ø¦Y©~ÏI¤yó¹ÿ{ÂÊXÒ¾}kó»ÛÕv*zÁ,„ÿ«Î£%­‹_)~€7ÕTŒ1@,b¹|üH?­sÙA$UÌ“ýŒÎB¿rœ¥,¦åøV4&h䈢?é¤Ûlyõ]·žfO7 ÓÙ³7KXöÝÂç}ûvµàšM,€ç¶°Þz+Xôyõ–a ·^³»¶3QÍÌzŠü›¹ ÛFæ+惙7…~å8}YLËñ­hL" "ÐÈ tîÜÞ|&—´Ô:SsÎtþùçþïé·ßæä¼_ÙÅN`Q×,Aøµ•&ó¯¬-ݨ;¦uÇZ=‰€ˆ€¤ ¸†åy|1g*žùçŸð4gNõ–òcó ,Ð<\zé0Kôe1bB¼¬o2' ¥ü2Ažˆ€4Vƒ­ÆŒ™dËùïͳcÓÓš S˜a1ýÇ?†˜Õô_aƒ V´¼½*EIô8Ñë*" ¥%@^YKO5O'¦ó Ѻ °ÒJKØ~áÃøñÏç¦5µ˜Æño»í¶ú4Û¿þ& êd©‰ G·“hí6UD@JO —0UÓÒsW" " yüóŸÚÖŽZîÑÓ-§áÛ{¾úê§¶óÑ9á‰'N²¼“…Ådž¦3—ýuŽíNtûšÞ}÷aL5wGŸLˆ€” ù˜–Í«Ð@D@D é`Ÿûo¾ù1ØnM&“ê×4ø)Ým»w°¦Ürš¾§cò" aZ^ïC£&E`Ùe³ÝŽ–õ¼£é‰·l9×ÓŒ]¢ŠQ:ujçÁPwßý’íùýp1šT" % aZ¨jRD@D ê‚ºï¾—mKÅ?RCµl9wëÊ_~)Ž0e4}ú¬l¹S· #GÞ=…¶ê£UMR0-%]µ-" "P)–óúéWÛ²óåLÝh1ýå—ß2׊qpÀ›š¿é–€ÿ_¶Oû×ÅhRmˆ€‘€„iaª)êXb‰E;A]ý“™‡\°øÓØø˜1»X@U‡0lØ•áûïgÅËú(¦eð4hêvß}KëôNÆŠY*‹)œiûškö 3gþöß\¨mJª¦þî4(& ÓbÒT[" " 5"°é¦«†ŽÛ†nxÚŸoÖ¬YhÑbþ0kVñ|LÓÃJ{Í5û†gŸ}ÏüNoOßÒ±ˆ@=0­GøêZD@D`.„èС½ÃÍ7O ¿ý6w·',›¥¦ôÚ£Ç2ᢋö0‚§ÂÅÿW¯BD  H˜–ÁKÐD@D@BØe—ÞáÛo “&½â8ˆÌ/vðS6çþýW#F £FÝ=Oʪìº:(= ÓÒ3V" " U ÀR>Kúÿþ÷Üå| Š™.*ßöÝwã0|x¿pøá7„gžy7_5]¨¦uY]ˆ€ˆ€TÀ°a†G}3L›öeXpÁùKn1£:õÔm-3@÷°×^W¶CU¨¦õÃ]½Š€ˆ€ä °å–Ýà +tW\ñˆEÏ/PRÓt÷ø¸^|ñ¡gÏÎæRpYx÷ݯҷu,"PG$Lë´º¨ý÷ïn½õÙ0ß|ÍêL˜2²-š‡qãö Ë-·XØi§‹Ýj[µ«–ˆ@±H˜‹¤Ú( Áƒ× ­[· Ó§ÿ\gKùqà -Ô"Üxã¡sçöa‡. o¼ñY¼¥o: aZÕ…ˆ€ˆ@Õ ô4lØFá‹/¾?þøKÕ,RÍ…néâ´k×%ÃöÛ_ž~ú"µ¬fD@*# aZ!ݨsûìÓÇwdzë­Ïë¼o:lÕª…%û? ôí»ŠûœŽÿB½ŒCŠ@S# aÚÔÞ¸æ+"  €Àb‹-lûÙ/n~ž_ÔÛhñ9½üò=-R¿O8è kÃÙgß’$©·ñ¨ch $L›Â[ÖE@D XsÍem?ûÙáÞ{_®×ÑŸzêvá¼óv1‘úHØc+Ý÷µ^¤ÎE 0mÄ/WS†L S§va‘E ÿøÇÄzŸÆ!ë…;î8$¼ùæçaË-ÏQ"þz#@c% aÚX߬æ%"  œÀ /èÑùo½õE¸ë®ë}6k¬±lxà£C¯^=ÔèÑ÷†Ù³çÔû¸4hL$LÓÛÔ\D@D  :þ×_ Ûm·F8÷ÜIeáßÙ¶m«0vì>aäÈÕW>¶ÚêÜðòË7"ꚊÔ/ Óúå¯ÞE@D@ò@˜þøã¬pä‘ý=Ùý„ õo5CeëÔ‡>6´oß: p^8á„[å{áè[jA@´ðô¨ˆ€ˆ@é´n½ 'Øg'¦í·_+Œ3±,¬¦qÆ$á¿õÖƒ=0ê¾û^ }úŒ²£&‡ßWä~d¤o¨.f–úBÿU—šê‹€ˆ€”œÀäÉo‡w¾$¼öÚH·Föí{V¸à‚]mG¦µKÞwu;øé§_L Þ®ºê1ÛÒ´½%å¿ØÜ>©n3ª/ ‚ÀÛo¿VZi¥’Œuþ’´ªFE@D@D –]tAoáûïgzNÓw\Ç#ô\#,°@óZ¶^ÜÇÙBõ䓆ÝvÛ wÜM6¾ÅÉ'ݺu+nGjMê‘À{ï½g¿ïãJ:YLKŠW‹€ˆ€Ô”À‡~Ö_ÿÌ0qâ‘¡gÏÎá“Of„7eþœÂðáýjÚlÉŸûòË/ÃRK-yäÛ9ªoÉûS"PW^xá…°ÖZk…RZLåcZWoSýˆ€ˆ€T‹@Û¶­½þôé?ûw§NmÃ_þ²‰/™Ï˜1÷Zµ¬ÃÊò’«CØêªQ0mT¯S“ÆC€¥üæÍç ß}733©¿þus_Æ'}”Šˆ@ã# aÚøÞ©f$" †@›6 …´u_Îcýs¸öÚ'Â;ï|Õh橉ˆ€Ì% aª_‚ˆ€ˆ@Ù ¡}Z˜2Ð]vémÁK†3θ³lÇ­‰€ÔŒ€„i͸é): €0>ý§ =Í7_³pê©Û…ûxâí ÷tR}ï¿ÿ~Øzë­Ã§Ÿ~Zý‡«ñÄ?þŽ9昰ꪫ†%—\ÒRí®¹æK«õk•ZùùçŸÃ?üP¡î³Ï>k;ƒm:wî–Xb 6›8qb¦Îu×]þú׿úùرcᇚ¹WÓƒß~û-|ûí·™Çï¼óNç7{öì̵BÌáˆ#Žë­·^hÛ¶mX{íµÃþûï¾øâ‹BU¸7}úô ··ÞzËû¯Îó+³ Ó2{!Žˆ€ˆÀrYL¹Û·o×°ùæÝL ŽsæüþÇ:ª6ï¾ûÎ2L ¿R–Ñ£GÛ6®WÚ{Û<œuÖY.$‡9ä*u»ß~û…=öØ#Sw„ ¶©AËÖð‰¹wk;„‡ˆì›o¾Ùë½ùæ›áÉ'Ÿôã_~ù%Ìœù‡¿r¦¡jÜu×]a±Åó¾x”Jðûý÷ʇŸþ¹e–Ø8\vÙeaà 7´ôgÿ°mm· ÿùÏ\ N:µJ£A„ßrË-^wΜ9¶CÚUê¿J×s% Óz~ê^D@D ?víZϳ”kŸ~úöægú¥'µ×â7‚ «%‘óÊ+¯ø4:•çž{.#‚¾ùæ›ðÑGU˜&Ö;ÄY,Ÿ}öYxðÁßéB{/¿ürxã7ü2}f[+9–7ê=ýôÓê ‹ñ2އ~Ø¿Ó}p/ZÉL€¤_¾/¹äÏyñŇ}öÙ'\tÑEá ƒ 7Þxc…½¾ÿþ{“|ðA¦iúûé§Ÿ\ý€?ê¤KeüN;í4Û0â5oóüóψíQ£Fù;f Gu”7Ç10À’þ±ŠÆòá‡:/D.‚´k×®.R«”øžï½÷Þy~+ü±¿ ,®=öX…ßMl¿Þ¿ÙùIED@D@Ê‘À)§Ü‘ x~Þ¡3)YqÅã’?žž·N]ß0aÇŽŠÉ£>Z¥®MüyýM7ÝÔ¿yÖ¬jÉ–[n™9ß`ƒ =‰‰™d¾ùæKL”dÚ6 d²É&›$&l³¾% ,°@ÒªU«dþùçO®¸â ¯gâ51 ·Çó믿¾›xI^|ñE?¶Ü”ÉøñãýØò¯&-Z´ðãÕV[-1çípm£6Jš7ožéç¶ÛnËŒ¥]»v‰‰M?7qìÏ[>×Ä”?3`À€ÄDj¦¾‰¼äñÇOLLù5[z÷±38üéOJf̘ám6kÖ̯1v³Púñ&Zý^|ƒ ò댣C‡‰‰Ãä¿ÿý¯óçÏØþN87ÑZï¯eË–‰-ÛÇ¡Vøf¬´Ã»Úm·Ý¸·oß>óLÌ{} ^÷hVè$Ž—±ð,¿îñ.ø>ùä“3ý˜Ëƒÿ®ã§¿øÉT*pðüóÏû3üVJUd1µ·¢"" "Pž:tX$|õÕywðÁ›‡ŽÛØ®K·å­ÓPn,ºè¢nÁ:ï¼ó‚‰5·Lbáºá†ÂSO=å–¶¡C‡háöÛo÷i}õÕWžÈ÷Ýw·Þzk˜4iRx÷ÝwÝ’‰õmĈn];ãŒ3Â믿î–T¬q+¬°BA,:u2Kõ O¤Žµò„NÈÔ7ä–Dî÷ïßßý#±ÜQðá4AíÇË-·œ/±óݺuëpÀ„{î¹'˜Èóåö‘#GºU—åxæ„urß}÷µÍ†‡¯¿þÚÇûÒK/…3Ï<3`eeîø“Â‚={úwúŸW\1 8ÐÛL_Oc­…+þ¡XsYZÇâú¿ÿý/S ë(ã°?0ü]ÀÜþxpÎTâ¹.]ºdê§rñÃŒ5+o®b¢Ù/óþ(¼/ÆI?W_}µ/mû£Ã2S\ë|½òÿÿÃûÆ"kâÜý`¯ºê*ç‡u;ûCÄ­°X‹ÙâòË/·Êâ[´,^ƒ!" "‹À\aúÇ2kv-šÛòì`dSÍϯjþyÙm”˹YÌLdw fUô!!Ð8ñAHÐÂJ¹ãŽ;\¤ì´ÓN.6x!lO9å(\3«¦û2â߉H̵Ôí þÿ?<»ÐB ù~è{ï½·‹ßx‰Ø4«l`Ì×èÉRµY½*{©ãWÅ"‹es‚‘¢n¯^½Â^{íåõ~,…ó< ŸW³»ØŽ}Çïì%ôx½ªß¸°ƒ|¿fU /¼°ûŠÆ6Ä'!Þ'cªjÉÅW mæ*p¤˜•Ó¿W_}uË@±‹Ÿóøc‘\¨Àp›m¶±-|—÷j,¸à‚ánþ›™Hu–¡ üÁzI€E,—#_|ñ@°L,q¹8žg§SG!"±Æ’¾G`%}?ÖKÓÑèDÉÇ‚õ÷ðÃ÷S„+<óaõ¥h–™ù˜Ï«å«=#>’ùf Ÿºød—¿ÿýï¾ü £|Ë4–çØß^x¡ý38óHUßGæÔAšQä‡E–e|óé¬PÆc,×cÕÄ¢½È"sóé6°³O}!ÎŒñJ€[,Xiaž~.-¾c½rú–0-§·¡±ˆ€ˆ€T …é—_æ_Îçöí[›Åt`;ö1ûsŨõ 6‚,ˆXøX.ÆÊGz$Ê«¯¾êK³ˆEDW¬¯èâTr†R‡(þ¿ýíoIÐ6>¤Xd‰ðgy8¬²D‰#€/¸à·¾F_ÏãŽ;.ãÿŠ ÂçßQD)V]ÜKöXO?ýtbX{éë}c¡Å7†ûî›ûdž)¹àf\ˆXæ@Z(Üð«äsàúxÉZ¨l»í¶^—–Ðð~¢Õ++b Y ¢;û™|üˆÀÇZkJnõF|"\I…ˆ$V,dcÀ–ñY“3‹n°à 8¦ qïÀuƒ{ø+SÒ‚;]¿,KU¥vE@D@D ¶fÏž“tìxDrï½/W©©Áƒ/Iúö=Ë"¤gW©~)*Õ4*ß,›>ùL´5Å‚•üœˆùXL¬ù5³8ÆK‰ ›{_¿nÖÂÄ–l“sÎ9ÇïÅ#ñMŒxd=ßD囥?C¤uŒÊu‰ì7Wª§!¢ò‰rÝDŽ[º¦ÌòEåSzó7õ¾è›hx2Üÿý™ç-¥”G®sŸ™ ÌÕïßtÓMžiÀ–ªýÜR)%–¿ÔÛ‰õMü&(”iH÷Xß‚Á³Xú=³@&;ì°Cf,ð2Ñè÷b”{|\$ÛAŒŠ7ÑìléÓDwbâÜÛIGåçãG[d+Xf™e2}ÓŽm:˜E”Û^ˆÊ·¥Êç>\cÖ*˜«‚?ϵ8^¢òÉr`Ád~Ï,¨ÎÒ6˜Û¨ýk.ɘ1c2çÜ3 mæ¼²ƒºˆÊGí«ˆ€ˆ€ˆ@ÙèÞý¤dܸÉUi£ºv=>1bB•ê—¢Ru…iMÆ€D°Xäö*}“”L)˃éB“ç¦é…)¢ºÌ%]¦fÅóN¹úN×ÍuL»úf[]Ý~Vˆ·Í7Kò¤b Ÿí=³K®kÔÁ·0Ô°l\Y‰usÕcYžOu ®ùÆÛ"mV:P+^çÛ,‡éS?&;Qõ5)leʧº÷>…J!~¸G•Ü*ã—û©y¯²›SÌ<0ïÝÆ}¥&ÞÆ=EÍND@D !ÀúiKôᦛ¨ò4°°nºéh ¨YÃòœîTåçŠQ‘”>X³È9ILh,È @:*×bZ«bÏMÓbU{" " E%бc[‹Æ®þ¦*" åO@QùåÿŽ4BhÒ:vœ‰Õ´]»VÕbѶm«pÑE»[âùKl§¤G-Á{¿j=_›ÊýúÕ]_µ§žr" aZNoCc˜‡S ~¦Ý»wœç~eÖ_EÛh ÛÝçnOÕ³gõÓUÖGú>i”þóŸÿ¤/éXvÞ*UQT~©Èª]¢X}õ“-7iÿ°×^}jÔ¦å–;ìpQøâ‹ïÃý÷eÛ`æßG½Fè!¢iQ0ªRXf™öáÿ­qóÍ×,\zé°ðã³<ù~Òƒ" %% aZR¼j\D@D –_~ñðþû_ת)õ_xánáî»_ ×]÷d­ÚÒÃ" ¥! aZ®jUD@D ˆºtY<¼÷^í„)ÃÙd“UÝßôÔSLJ©S?)âÕ”ˆ@1H˜ƒ¢Ú()å—ï`KùߥcŽÙ:¬³Îòa¿ý®Q~Ó¢U#"P<¦Åc©–D@D@JD‹)ûÞöÙwµîÓË.æÌù=|ðuA;sש¢0-J5$" "P*ø˜RjëgÇ×¾}ëpÕU{‡'Ÿœþþ÷ûâe}‹€Ô3 Óz~ê^D@D r:,Z·ni~¦_U^¹Š5zõêFÚ)üóŸ†{îy©ŠO©šˆ@) (Á~)éªm¢`9¿XÓ8¨]vé^}õ“pØa7üX»u«~ÿØ–¾E@jO@ÓÚ3T " " u@`…:„iÓ¾,zO#F k®¹œ%ï¾ýö§¢·¯E@ªN@´ê¬TSD@D  ¬ºêÒá7>+úš7Ÿ/\qÅ^ï½÷fÍš]ô>Ô ˆ@ÕH˜V“j‰€ˆ€Ô3UVYÊw*…pl×®•%ÝîÙ¼6°…©Šˆ@Ý0­{æêQD@D VYeiŒ¿‡·ßþ¢OWþÈJ+-®½vxxüñ·ÂqÇÝRùª!"Pt¦EGªE@D@JA€”Q-[ÎÞ|óóR4ïm®½ör–ãtÏpóÍSÂèÑ÷–¬5,"›€„in.º*" "PfHŒ¿âŠK”T˜2å-¶èÎ9ggO#%qZf? §ÑPº¨FÿŠ5Ah<€*¥Å4’2d½Ð¬Y³pÔQ7…Ÿ~ú%œ~úöñ–¾E@JH@´„pÕ´ˆ€ˆ@q tíºT¸þú'‹ÛhžÖvÞyÝЪU ß¶qú q±š§º.‹€€„i ª º!УÇ2áã§{¾Q¶-uÙf›^.N‡fÌø9\xáî~^ê~Õ¾4Uò1mªo^óH€mD)/¿üq~³ÍV 7Þx@˜2å½0pà᣾­³¾Õ‘45¦Mík¾" "Ѐ `%]f™v&L?ªÓY¬·ÞòaâÄ£, ³°õÖc“ON«ÓþÕ™4¦MåMkž" "ÐHôìٹ΅)è:uj&L8,ôéÓ5 zY¸üòG QMCʇ€„iù¼ DD@D  êK˜2´…ZÀòœ³ü£F݆ ¹4|þùwUµªˆ€T…€„iU(©Žˆ€ˆ@ÙÀÏ4@Õ× >x³p×]‡…O?6ßüœpÏ=/Õ×PÔ¯4*ŠÊoT¯S“ÆO‹)套> ›nºjOøòË/=ô÷»ÄÍ,Ïi›@Ôþê«Ú¶ý¥ÎÇ£E Ül¸á†áðïѰd1­6=$" "P_ÚµkºtY<üïïÕËž{î¹ðØcyßÍ›'a¥•f„ž=%Jëåe¨Ó²#ðä“O†§Ÿ~ºÆã’Å´Æèô ˆ€ˆ@}èÝ{…ðÌ3ïÖW÷&D{†ÿüç?õÖ¿:r%°ãŽ;Öjh²˜Ö Ÿ¨½{¯^|ñÃ0{öœúè^}Š€”ˆ€„i‰ÀªYÒÀb:sæ¯ušh¿t³QË" ‘€„i$¡oC`ùå:,bËùï4˜1k " •0­œ‘jˆ€ˆ€”!–óÙ&TED ñ0m<ïR3&E€mB§Ly7$IÒ¤æ]ÝÉ><Ü|óÍÕ}¬Úõ_{íµ0hÐ Û2v™°Ê*«„Ã;,<ú裙v.¹ä’pðÁgÎëò€ql½õÖÞå]wÝåǧžzêϽr¹ÇÏ|âgÿý÷<ð@¹ ±Vã0­>=," "P_úôY9̘ñ³üL+yˆ²wß-mþ8Øi§Â´iÓÂŽ<òHË3ûRØl³ÍÂý÷ßï#|çw /¼PÉhKsû믿?þ¸7þþû'†sÏ=7üüóÏ:¼á†üÞ#gΜéóàÂo¿ýåž{î ¯¿þz˜0aB8ùä“Ã_þòçÒK/nºé&¯ÿá¹gžy&¼òÊ+™¶â½Ÿ~úÉ­¬Ÿ~úi¼äߟ|òIøá‡cDðÆòÑG…É“'ûõx-~3Ï矾Âã=¾ÇÝwß¾ä)ÀZ¶lYá'¹ú‰ïfΜ9þ™…÷ø ð»IÞïŒ32—Î<óÌÀç‚ .ðy,°ÀÎ?SÁxAž-À©óÙgŸ…|пÓÏpœk¾ÙuJvn?4h?ü†dРÖéØmi<ÙrË-«Ü§Y“Î;']ºtÁç ™o¾ù’ƒ:(Yb‰%üœkÿûß~ïâ‹/δ}Ùe—%Í-‹¿‰ˆä¼óÎKZ·n,ºè¢þÜ€A^÷oû[¦í¶mÛ&¶”žì½÷Þ~oå•WNFåÇ-Z´H6Úh#oÓ„LÒªU«ä¶Ûnó{»í¶[²Új«%íÛ·O¨Ç¸öÙg¿Ç?&büš‰*¿fËÇI‡üøÚk¯õ{Œ7]L@'|(p°eþ¤S§NI³fͼþŸÿüçLõO<ÑûóÛ`ƒ }~Ÿ9P—ùo»í¶‰‰ÂdذaÞó€ÑÙgŸiË¬Ä ˜}­¹æšþ,þùÏúñvÛm—ì°Ã™gLðz}80FJ¡~,‰¼×ßtÓMý›¾6Þxcÿmṗ9üúë¯Þ–mÊàïœ9,¸à‚ÎÎþÈð{'tR²úê«;ž[ýõ“M6ÙÄïñýAásä·Áø©“.Ï>û¬ÏÓv%óË&€“õÖ[ÏëÁsþùçOÎ:ë,¿S³®&ñýsïŠ+®ð{…æ›î¯Ð1L‡ R¨JÁ{gV°ªnŠ€ˆ€ˆ@y?þy}G%?ü0«ÎVaŠ0Ë– Œ?ýéO.N;í´Ä,”ÉÎ;ïœ ¼(ˆ>±l¾ùæ."ÌR˜,¼ðÂɘ1cü"kÖÂä©§žÊ´gÇäßÿþ·‹”|´cÇŽ‰Yaê""[l1ã÷C‚ cœ¶œí‚ðꫯös³‚zŸo¿ývrì±Ç&fáõs­Yìüج{ɪ«®êõá{ì±G‚H5«­ßç„)í3æƒäœö̲çc6?TïûÍ7ßt1uë­·úóðA,Ûò{b–EÿFPÝyç‰Y>“+¯¼ÒÛš2eŠ×G”!ŰB#)»…ZÈçÉ7s§ Œ{ô葜~úéaJùú‰Âk]ÿÃùôíÛ×çGÎ_|ñE¸üaB]„*c°Y„)uyfiMàÀûýâ‹/|lN„$<£0µDö Ÿ-¶Ø"i×®óç÷D9ÿüóýšY±ý|ôèÑÉ"‹,’ XÍߨûâ!³€'Çwœƒ?r ÍתÂ?µ¦ZÊ·_‚Šˆ€ˆ@Ã$зï*¶ü™ØreÅeçr›ÍrË-=ôPKqÕ!ôë×/°\Œ¦Y³‚Y_3ËùݰÝ)Kî,ųäkb%˜…-˜ˆ cÇŽ ×]w]0¡æË³fY &ƒY>à 'œàß»îºk0‘˜> Œ‡gLùR7Kϳڅ]vÙ%˜( &là +¬ `Zi¥•‚ Û¶‹×5âÏsbÂÈ—Ío¼ñÆ`ÂÛ] èÇDj0qéõùgÙe— GqD0‘L¼úu\àBð”YE}þ÷ÝwŸ%üXØQfK.¹d ŸµÖZË™°´oÑ`ÂÝýCM̹Ëu»uëL †\» 8Л6qëßìäe–¾Øê'V„¡‰ý`l¿D°ï*ž›ðvßZ\2`b3˜È‡rH`~\Q`bÛçe¬³‡Ûo¿ÝïÝrË-¡ÿþÁþˆðsþÁ·”»™&æƒY>ý>¿#³¢ºkn¸~DWÞ©Y‘Ã1ÇãËü§œrŠûs­*óÍ  DÚ’´D`Õ¬ˆ€ˆ@é ´k×ÊþǼŒ 8¢©{”¾Ãö€¯e,f ¶ŒïB„k3Dùm‘ëwÜq‡ 3éöÛoïbAŠBø˜Õ-ôéÓDž؇~ÖXc ;±`¾²üòËgn!)ÑïÑ’.Ü÷Ò׳ñ¯Dl :Ô?ÜÇ¿uôÑG{`×p±07 >šÌÿðÓ&Mò¨~³\8¥ ×bÁM³:ÆKÁ–î%žök± \³ BñHÆsapqÆxÓ>±…ú‰í-µÔR~ÇË Þ+…±ðŽ(+ÅÑáo\¿%âQOPþÀf¥‹¹g¤O]´ãoŠ 'ØmðàÁ.|¯‹/¾x¦î:ë¬Ì%À?üÁ(ˆT³à»ok>®™J|Pñ­—¸35/" " Å&°Ùf«™¸˜Rìf‹Ú^)•5Ú¦M›€%AÂ3ˆR1ˆ ¢ÉmØ¿±¤^uÕUnA$¨*]¨›é{éÀ"‚œ(XP)é{ÌEoKÅ~¯Ð?gœq†[þ^~ùåL5,šˆ*ÄR,ù8\ýõ½¨ÄÂI`B3_anŒ™`«XÆï3αdó‰Ï ¤±0SñEe¼_¨Ÿˆ„u¹²Å+|Ì=ëEéòÿh?IýƒÕë5VT~æ[›º;ï!Öw¦ø}€†ÈEôò›"Ål)°@äc%'Ê\+ÂÈ‘#þûîëòq·ÇÒ\©œfiúU«" " "Pýû÷0ËÐôðâ‹s­REi´A<ôÐC1—»±Fî¹çžá /t "Š%aÄ[t0?Dš'_¨ùƒæÖ2–Ï&ˆF¬«,SKXæˆÚGÜ`™KÒ,ãŽ@Ú' –EóËôcÄ4BЂ°\ì½ÏXÆu¡²‚Õ‡%™ÌX†‰ÐÏŽjí Òˆ(GÀ3V„"žèöu×]×Å:×Xæõâ³éo\`kþ°nÝMßã¸P?Ùu c)ÅBÊ˜àŽ¨¥OƺâŠ+æ|¦æëL±~F s¬Lv>¸=ì·ß~áœsÎq 2‚”ÌXIùð[ zŸO–õùƒ?Jp‹@Œc펤Xóc¬Ñ·™˜UD@D@D AèÝûŒdäÈ»êdÕ ~:ꨣ<>ÎDbV©xšdDTy,Æo‚1•ν#Fx4· ˆ„Ï6ÛlãA4ܳår2!à‘ßf…ËDåÛRn&bÝD˜G¨Óu‰Â·ôD4á7&’¼oîP“ŽtÏŽÊ·”P‰ –ÌWÑÇdzñya,u•×Éæ@Àõî½÷^@2ñæçŒ¹Y²~2 _’ž™5×·b_&Ú2™¸o¹S3Qù™°óà÷lSÌbêýš•ÙÏÍúëÁRœê'?¸EáyÆÃu ^œ›%×Ïágbѯ1&[ºÏd,0!ž˜…Ùë¥ÿ!+mÄwÄ=ÆçÍ·Y¡=ãYb —%Û÷ßýÀ†wû‚#Aohñ,÷ÈÁo’Rh¾^¡ ÿÔ6ø©}ØàTD@D@D Á8ýô;m)xªå´œkÁ+åDØe‡@–˜8¾Ø}aíÂ+ÈtÁ:H>¥ˤ ˶|°€amcùØDoºŠ[ÅÆçAF,㦃¤°Ôb¥$Іœ¤ìÞ„5±:…<£Xc±Ô±\Œ´:…gñ¯ŒA>øx²“@¹ ù6 b¬`¥ ®°Âw³[@ú™|Ç…úÉ÷L®ëä}eL,Í3®Êøà/ŠÅ7í"‘«Ý\×p‡ /Þ1ï+6–ÚèÛJÐQXs³ÇQ›ùâ'ÍûOûêæ_¾kò1ÍGF×E@D@ zÙÒèÃæçˆØú#ШÁLàÿÊò·Y]`’¤>» ØðÁÌUXºM¹äª¯áwÈ'WaY7h”«N¾kø9\SÓB NºàïX¨õÏ'W!¨§6cI·Y¨Ÿt½ÊŽYŽÇ÷¶²‚»¿²0Xê§Êªç¼Ï{Œ.T`‰?Wqžþ£„ót)Ö|ÓmVõX´ª¤TOD@D l ¬½ör¾ Ô½÷¾Ü …i´Ž‘ Ëš–îݻ紒^*Z#³ÛFbeT©ìØ„¯0)Àl#úPŽ@Kùu[]‰€ˆ€”ŽÀI'Ýno‡G9®tXË¥^Ê/éàÕ¸”˜@m—ò«çüQâɨy¨)w\Ûü?7¼jÚ„ž«¢õɱIâøtyä‘Gü:öu]È™Jj%ü6±4o¶Ùf¥Ž¿nU þ˜é½éÉ€Þ *m¨NqH˜‡£Z¨gk­µœ “%,§iÅœžõ<¬F×½mûéyT:è  s#‰ž´‡Eô‹/¾ð¼¥ìaO¹è¢‹Üzçwz.N¬™Ç¼·GÞSJïÞ½ý;ýÛŸ’£“íYc¡O,›äóìß¿¿²±ûRô'%×gz‹PD1Qñl°Ïƒ]©ÕìÈ…µ4¬®äe>\GðªÔŒ€„i͸é)2%°óÎëÙV¯›%í»2aãLÛ%)°ê3Ï[„æ+¸0ž#i<‰ê9äŸ êcaËO’øcííÕ«W˜6mZ¼¥ïj0­&0U(oô´åÞÖá_ÿš\Þm£C¤!Ù «g,@~øán}ĺ8iÒ$ñ>ßq"Ž}ìX ÖÎDÅîO¯¼òŠû|â÷i[•º¤‚–~³3ЖKD1ubaG­XÏ”è_¯§¿YÖ§`y%Ž i,霳$±¯Ìq, ý[´¡¿A_D@D hn˯†ÿûi'ˆ¥ •tRX#¯¼òÊðꫯVØ¡èúë¯÷-[†-± L—ìóô½ôqÇŽÖ[néíÐÛ/> <Ø-”XL9Ï.ìœÄÒ¼íÝž¹õé§ŸfŽ T¢Ú]Šm])Ñß•ãçž{Ž/Ý~`ÿdoé¯ë»ú$L«ÏLOˆ€ˆ€”9aÃ6²èéYæÓø|™´áo5ÖGq„[5ãl°"Ö°$â—ɲ9Ëî1S¬W•ïm·ÝÖ÷‹Ç”¥÷‘#G†í·ßÞ}>±†><\pÁáè£v‰pÅ?W–Õ÷Þ{ïL74á—Êò=ÏàŽÀ¶,ÑSXž–Zα”b!¥OžÁ7W\ Ò–Xꪇ€¶$-Gµ"" "PF_|a‹_Óö, º^¬á%—¥ó´ÓNó"–Ô¹¿ë®»†+®¸Â÷cǪJ4;Kðäíׯ_Nëi®v¡EpY,¤ö›5j”û§r޵L°Õ¹çžË%w@¼²×ù –Q,ž••6mÚ>ÙáÊ'WÁJK—Jé ÈÇ´ôŒÕƒˆ€ˆ@=8ê¨þ–ó­0eJÅ}Ýëi8ê¶ š*—5´‡¤®s0ÍE—D@D@ 6XÑ|W cÆLjÒ,jL€ä÷äJU)o¦åý~4:Z8úèþ–Ï’‡d5­%J=.%' aZrÄê@D@D > ø„ÕôÜse5­Ï÷ ¾E *üTJª#" "Р {ìÖ–hý"ߪt³ÍV«õ\ØÏý–[n©u;j@2'téÒ¥ÆÓ’0­1:=(" "ÐP`10 W1b‚åÑ\ÅÒÕnÁ€vÞyç†2}Sê”@m„©ò˜Öé«Rg" " õEࣾµ-,ϲ]ˆ†ýöë[_ÃP¿" ÔîOÆ ë–ˆ€ˆ€”ÎÛ‡ý÷ßÄ#ô§Oÿ¹œ†¦±ˆ€ü? SýD@D@š CÝÂöEŸ?œ}ö=MfΚ¨4$¦ émi¬" " µ"кuËpÚiƒÂõ×?ž|rZ­ÚÒÃ" Å' Óâ3U‹" " eN`Ÿ}®¶}Õ?³(ýclOõe>Z OšYL›Î»ÖLE@D@þŸÀèуÃwßýFÒ’¾~"PN$LËémh," " uB C‡EÂgl®¾úñðÌ3ïÖIŸêDD rZʯœ‘jˆ€ˆ€4R{ï=6LúI˜4é¨Ð¾}ëF:KMKYLλÒHE@D@ŠLà¼óv Íš5 ‡r}H’¤È­«9ê0­.1Õh4Ú¶m®¼r¯ðÄÓÂùç?Ðh楉ˆ@C% aÚPßœÆ-" "P½zu¶RÛ…sÏü­¢´©FD@jF@>¦5㦧D@D@ƒ¾.<üða„CÃÊ+/ÙÈf§éˆ@à aÚ0Þ“F)" "Pb¿üò[:ôÒðñÇÓÃ]w–ZªM‰{Tó" Ù$L³‰è\D@D Éøî»™a»íþš7Ÿ/ŒHXd‘›, M\ꃀ|L냺ú(KmÚ,n¸á/aÆŒŸÃ^{ 3gÎ.ËqjP"ÐX H˜6Ö7«y‰€ˆ€Ôˆ@ÇŽm]œ¾õÖça×]/ ?þøKÚÑC" Õ' ¥üê3Ó" " M€ÀÛovÞùÒ°ôÒm\¨’ZJED ´$LKËW­‹€ˆ€4`|ðM<ø’°è¢ †›o>0,¶ØÂ x6º”?-å—ÿ;ÒE@D@ê‰ÀrË-î¸ã0kÖìðç?ŸÞxã³z‰º¦A@´i¼gÍRD@D †:ujî¼ó°°Ì2íÃÀ„‰§Ö°%=&"P ÓÊ龈€ˆ@“'о}k_Êßa‡µÃ¾û^.¸@Û—6ù…”„€|LK‚UŠ€ˆ€4VãÆM§œ2>l±E·ð ˆVâ0-Gµ"" "Є<óÌ»áC®³gÿÎ?—Яß*Mhöšª”Ž€„iéØªeFLàûïg…ã¿%L˜ðB>¼o8ñÄ¡E‹æxÆšš”ž€„ié«FH`“M6 >úhhÕj5K'Õ/|óÍ-fAý¦ÎTSªXk­µÂsÏ=WµÊyjÍŸçº.‹€ˆ€ˆ€TB`«­¶²`¨}ï¿Î1kéf•ÔÖmh¼n¸á†ðá‡Öz‚¦µF¨D@D@š*•VZÉðnªÓ×¼E CàùçŸ/Š0Uº¨ Rˆ€ˆ€ˆ€ˆ€Ô' Óú¤¯¾E@D@D@D@2$L3(t " " " "PŸ$L듾úÈ0͠Ј€ˆ€4^Ç·mUo.ÙǶÞzëðé§Ÿfúxíµ×üÚ5×\“¹Æc9öØc+\‹'{î¹g¸õÖ[ýôçŸ?üðC¼•÷û_ÿú—÷Cÿ¹>W_}µ_ÿâ‹/ò¶Q×7rÍ¢]vÙ%T·ÄK„Í6Û,œsÎ9á÷߯Òð~ûí·ðí·ßfêŽ;6zè¡™ó†p aÚÞ’Æ(" " µ$@ÎÕwß}·–­ä|É%— 'N ?þx¦ÒwÞé×H±|ÿý÷¡8ß|¹%‚í×_õêûí·_Øc=â£y¿Û·oïbA×¼ysï³M›6™k­Zµ ?þøc•^ÞŽŠx#{n÷Ýw_èÛ·oxöÙgÃ>ûìN?ýô°ÔRK¹€ßf›m,GîìJ{¿ë®»Âb‹-–©ûË/¿„™3gVú\9UPº¨rz‹ˆ€ˆ@£%ðñLJ¶mÛ†$IÂ+¯¼Ö^{íвeËðÙgŸ…iÓ¦…=zøýY³f…Ï?ÿ<,½ôÒ~  êuêÔ),°À:O>ùd@ vëÖ-4kÖ,Ã~øÐþŒ3üÞâ‹/ž¹ÏÁ—_~nˆµ—_~9ôìÙÓ ÷ŽŒ17eʔСC‡ÐµkWnyÁ*ÇgÁôsƆÈ\wÝuÃ"‹,žxâ‰0dÈ¿7iÒ$ŸÇ3Ï<¾ûî;ïóé§Ÿv¸ù曇éÓ§ûܰr}ƒ 6—]v™·ýÍ7ß„Ÿ~úÉ…VØŽ;z›ŒoêÔ©Îb¹å–ók |(ˆá{î¹'œzê©aµÕVóksæÌ lˆÀ\"ËÎ;{z#À«$^îÃαäê3Þãy’Êà æ0  ®÷²Ë.›áœ/´ÐBÞWznˆIòá2Þ‡~8,¼ðÂÞÆúôé>øàpíµ×z|ïŽß÷(ï¿ÿ~XqÅÖçø.¸žo¬‘ c}ï½÷ü÷׫W¯Ì8x¶ÎŠT¨&~ýú%&ªü” ¡Ä„WÒ¢E‹Äþ'Ÿ˜HMŽ<òÈÄD¥Ÿ/ºè¢ÉK/½”|ôÑG‰ ½äâ‹/δmb-1K`bâ49ï¼ó’Ö­['Ô§$&ª¼îßþö7¿Æó´¿Ê*«${ï½·ß[yå•“Q£Fù1cØh£¼M`‰‰Ðä¶Ûnó{»í¶[b)1+df¬fÁó{ü³ÿþû'&ð2çíÚµK:è ?7Ë^b»ÿø±-Á'´mÖQo'¶Ê)§$&ȳŒ&'tR²úê«{ÌÅÄU§Ñ£G{›‘Íúë¯ïm^wÝu>VÚ¥þŸþô§ÄÄwf,L˜0Áï™ÈÌ\7Ñë×Lt%ñxÓM7õk´³ñÆ'[n¹eæœ÷dÂÒŸ/Ôçc=–˜¨ö÷aBݹü÷¿ÿõçÌBííÙ ™qÀæÄOœgnæºàuxàLÝxÀ»å=š÷KùÞýòÞ™¿æÊïkuÖñç 524h?K¼ã·Þz+£Òïã?>óî+­\ Bn;ºHED@D@D ¸L,ø6¦Xæ°:^rÉ%aòäÉßG– ñ]f™e‚‰ÞŒŸ%#¸å–[Â[lLŸáŒ3Îp ¤‰À0ÖS,Ž\?í´ÓÜ/Ó„m0a‘wŒåwÞq«jÿþýƒ N·¨ñÀ믿.ºè"·V²ìÎK$…Ý®;ì0?æ|MÔù9VP×Þ–?¬Ûo¿}Øpà ÖS óåË!ëgÜÊ r,ŒèСa»í¶ O=õ”«"þ©_ýµ‘¾Î<óÌøHµ¾M؇O>ù$˜Ðw÷¬†XšÙÁˆþxGðÉ×'Ñaƹ•Ë/aæ…ëm*Ùs‹ï©wïÞó<†5KlÚ #×»Ãb}sY¾ïÒ¥K¦­ªŽ«+lqû`·ß~{¦º:0­+ÒêGD@D ÉØ}÷݃Yÿ|É–¥V³ø¹˜a)aÁ,…zˆN–f <òH0K¦/q³œÏ¦Yò‚YA>™´iI_~?á„ü{×]w «®ºª·—ë–‰Y gÉÞ,—¥sD"Ŭ˜„ýY\à +¬àb…{;ì°ƒ×瘂6K›¬Ã²9"!ŠÐÂ}áË9bœe}l,,}_yå•.Nãµ\߈$}áúÀ¼Yú‚7×3…®1gÜÌâìÕ¼°çˆ¿B}¾ð þ¾àȲ¿Y2Ã!‡âb÷7Þ(Ôõ<÷XÖŸþùýynÚÞ ¸ÄRèÝÅ:é搜‘ÏûÂו¥|8×u‘i]W" " M–~£± f–±`³N?ÝqÇݯðŽ;îpÿDü9±<ò ‚Q…B¨áƒHÐû”¯±Æ.b›ø æ+Ë/¿|æ¾—”裈MîÇ{éëÙÇøj"²ñ3eLX)XYm©×-ˆ°´0%`)ZO³ÛKŸðÁ~š ……¹&…À" ‚ßï»(ÔgÜkf,ñýòÇï*» ¦sþHA´#†9N,—ü‘‚XŒ¥Ð»‹uÒß•5ú´òîbáðGF] Óº&®þD@D@š,(z*@`Á<,Íò ¢ñ@PKºˆ> ßXR¯ºê*„úßÿþW¡iêÆ ¡ 7ì$Ö !I‰ÁDé{ˆ),n¸TV«ùnÒ7!²°”R°¾¨…KèX‡«[}X%YbF±Œ^“‚5¸²R¨Ïèv@ðXÚŒ‡ÒÅ–Ñ#ø¬ÈƒI®‚èD _xá…áüóϯP塇r— ,ձĶ9O¿»ôr¬ËwáùÆŠ¦T…‰W,á?•¿•v®¦E@D@D@r`9QòàƒfR&!̈´FÀ`Ñ[sÍ5Ý2Çò+~žŸË/¿Ü… þ«o¿ývîÆíjôAeùþ‚ .ðèq¢Ñ),|-YB>ùä“Ý2—¸oºé¦`<^Ž;î¸ ¾ˆˆ4ÆA¤¹Þx=+n \':>½,i(ÇVGDÙH™„UÑ‚§ÂW_}å‘÷Œ ÛR•B}b)E¸Ž9Ò] #ÝX=£V,¯äm"•ñ¦çF},༇£>Ú3%Xœ[˜ù ìq©ˆ%ß»ã÷AÁ• Zß9¯l¬Ô)—"aZ.oBãhÔ²­¥œg_KÀÚhï´FÑZI¾ND!ËâãCе !,¬ˆš<ÐýFGŒº˜å.úJ[ÄޤšbùÀgKùøK’fjܸqáì³ÏvNÚzÄü] †ŠÿPt,ÑzˆPN÷­§ñ~¬ûÌuþç?ÿÙ­µ<ƒ8# ëÒK/uwD#Bšyæ*ÙíæªSèc/Ô'¾¹¸Uú †ðÄÝ^¬”N1f–ÞÉOŠïnWznÔç R\ñM¿¸a Jy÷ä†M»ä{wøô²þ /æQÙXé?»ðlkö½Rž73E=ס¥”½¨mhd°ü!4¥(D´#hHÄÎxº`ÉdIŸÒ¸¬ï³,Ë‹b”’Ôc…8"?j:H 1„(™ˆÎ·TEüVc?uõÍR=ËÜqžäe\°´¯e)ÇS¨O"Ùy¸Zà/›㌉wErü¸œžgöܸG]æ‡ÿp÷îÝçñ¿-ôîx«,ùJ¯Ù¥²±fׯÎ9Aw÷ß¿[Û«ó\v]ù˜fѹˆ€ˆ€Ô3,÷Þ{¯ Ì¿üå/óŒÑa¹7ç¹Î¬œÙ õsV´‹ø²òÉUƒXë»`5N|Ts¥UJ×)öq¡> L#ÝU¾’K ƺÙsã:–ÑèRëåúÎ÷î®Ñÿ5û¹ÊÆš]¿>Î%L냺úð+%P…PéHéä¼…Å ÿÓìBz©|‚‰]žòEg·£óº'PèÝÕýhŠß£–ò‹ÏT-Š€ˆ€4¥^Êok4E‚¿pQØi§jô|M"ÛÀ9眓 èªi;õ¹b-å+ø©±þB4/h„°æâY×…ÝÈ RZ¦¥å«ÖE@D@D Ñ Ž:;–úÛo¿õÀª8yR=½o;[ŤílÿÉÖ™‘@žíA³ËóÏ?ïÛƒŒ )™Ø¦4Ú Þ?üàC*Q蟭^±äw%z>öŸ¥.Û¹ÆDúñ:ß̇­B ¥Ü"@M¥¸$L‹ËS­‰€ˆ€ˆ@“!@DÿYgå‡éBê#v°ŠñG=‘¾òLr²•);8‘zŠ‚mKuÕ¯_¿°ÑFyÖ€¸Í'¹[ÉãIAÐ’N‹<øÌR?îœD~Q–ßÉœÀÖ¥‘… è믿ÞûÆ%ƒ¾ØŠ´YD-ý’‘ŸÛõÖ[/óœWøÿØ^•û£Gvœ¾§ãš0­7=%" " M’VÇ»ï¾Û÷¬'×&Ì]wÝ5“P¾:P^|ñEß¹ˆdòäcesÊgœá‚¡ˆe•]£è']H‹Äö¤ˆNÒc‘h‹lºv‰¼®XUʤ3¢Î;ï¼ã9FIjϳÔ{饗{ÅSH¯ÅµÛo¿Ý·zíÔ©SºÙÌñj«­ì)ÃÖìÎD6YR3ˆª} aZmdz@D@D@šö[g(¶-Ýyç=o'bDî§Ÿ~ºo5Z]*ûì³OfW"‚™¦M›æM`õ$!=–Hü:Ÿzê)¢š}åÙ± 7>ãÇw6 y}ô…¥m¬·••É“'»{Ëû¸ À*׿•µÓÔïK˜6õ_€æ/" " U Àòú¹çžëÑó)±„ß§OL:ûì³}Ìt3l‰úꫯ†[o½Õ£Û± VµŒ;6zè¡n}ìÖ­›/Õ³ß{ºÌ„85jTxá…Â]wÝUåía·Ùf·ŒžrÊ)î*À2ü€ÜO•>¶ÝvÛ0a„pã7ú<™_®BT?ý…,ÿT2 À W•ê0­/Õ&MK#>¦X5± ²l}ÑE…5ápev‚ƒXbÏÞ¶3ÛšÉrxÜgþøãw±ÉóX/£/)mÇçØ›þæ›oö{´½ß~û¹ŸiÜŽ“z±½8¦øÝ«W/ó¥—^ê;k!Tºø«R¢q‚º—´CÙeêÔ©6†Þ}÷]®b¾0R©íüT3nzJD@D ‰ Í©ˆeM½à·É'[‘š‰(x,›øV§àë9eÊ÷e%ÍTv™={v`ëÖu×]×Ûnݺµ‘ÂiâĉÙÕsžcñ$ú_Ôì>ˆ¬ç–Úì{±12°·}>ë5…ïbíü¤à§¦ðkÑE@D@D „š7oød¬–ùD]vÝìs|=Éu𝠱p.²È"y?ê˜1c2VÏ|Ï¥¯/ºè¢¡wïÞéK™cÄf÷îÝ3ç¹¢u6×=]«-å׌›ž¨gä=íСƒb‘t«AG* —€,¦ ÷Ýiä" " "Ф à+zà 74imò²˜6¶7ªùˆ€ˆ€ˆ€ˆ@% aÚ@_œ†-" " " €„ic{£šˆ€ˆ€ˆ€4Pò1m /Nè¤%"§§Š4u씕½ BM˜H˜Ö„šžhòÈcÊ––*" !ôèѣƩÁÒü”`?MCÇ" " " " õF@>¦õ†^‹€ˆ€ˆ€ˆ€¤ H˜¦ièXD@D@D@D ÞH˜Özu," " " "& aš¦¡cz#ð=¶f»A IEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1UseQueryResult-members.html000755 000765 000024 00000036165 13515046515 027236 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::UseQueryResult Member List

This is the complete list of members for mysqlpp::UseQueryResult, including all inherited members.

mysqlpp::ResultBase::copy(const ResultBase &other)mysqlpp::ResultBaseprotected
current_field_mysqlpp::ResultBasemutableprotected
disable_exceptions() constmysqlpp::OptionalExceptionsinline
driver_mysqlpp::ResultBaseprotected
enable_exceptions() constmysqlpp::OptionalExceptionsinline
fetch_field() constmysqlpp::UseQueryResultinline
fetch_field(Fields::size_type i) constmysqlpp::UseQueryResultinline
fetch_lengths() constmysqlpp::UseQueryResult
fetch_raw_row() constmysqlpp::UseQueryResult
fetch_row() constmysqlpp::UseQueryResult
field(unsigned int i) constmysqlpp::ResultBaseinline
field_name(int i) constmysqlpp::ResultBaseinline
field_names() constmysqlpp::ResultBaseinline
field_num(const std::string &) constmysqlpp::ResultBase
field_seek(Fields::size_type field) constmysqlpp::UseQueryResultinline
field_type(int i) constmysqlpp::ResultBaseinline
field_types() constmysqlpp::ResultBaseinline
fields() constmysqlpp::ResultBaseinline
fields_mysqlpp::ResultBaseprotected
names_mysqlpp::ResultBaseprotected
num_fields() constmysqlpp::ResultBaseinline
operator MYSQL_RES *() constmysqlpp::UseQueryResultinline
operator=(const UseQueryResult &rhs)mysqlpp::UseQueryResultinline
OptionalExceptions(bool e=true)mysqlpp::OptionalExceptionsinline
ResultBase()mysqlpp::ResultBaseinlineprotected
ResultBase(MYSQL_RES *result, DBDriver *dbd, bool te=true)mysqlpp::ResultBaseprotected
ResultBase(const ResultBase &other)mysqlpp::ResultBaseinlineprotected
set_exceptions(bool e) constmysqlpp::OptionalExceptionsinlineprotected
table() constmysqlpp::ResultBaseinline
throw_exceptions() constmysqlpp::OptionalExceptionsinline
types_mysqlpp::ResultBaseprotected
UseQueryResult()mysqlpp::UseQueryResultinline
UseQueryResult(MYSQL_RES *result, DBDriver *dbd, bool te=true)mysqlpp::UseQueryResult
UseQueryResult(const UseQueryResult &other)mysqlpp::UseQueryResultinline
~OptionalExceptions()mysqlpp::OptionalExceptionsinlinevirtual
~ResultBase()mysqlpp::ResultBaseinlinevirtual
~UseQueryResult()mysqlpp::UseQueryResultinline
mysql++-3.2.5/doc/html/refman/doc.png000644 000765 000024 00000001352 13515046516 020062 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÚ}\ˆ±IDATxíMOS[…Ÿžsúa?-XZ(PD4‚ AWbu`b 77wäHFÆCËÔÂÿà/`vo„ˆAPòq‹P @ ­ûÝè980 îà¤+»§Ýy×^ïZï9SW¹\83g‰3'°Nâçl¹¸_b¯p ïåûÆVÜÖ¡€Ÿ×"¬Ö†X€d]Ðà3“ÉÃÄÌ™xŸ ßMàœ[<çSPkvc—hÈ'…™˜^Åm™hØ7 `Û™¦ èÀåráq›‘œ¾!daeKŸþÆÕ˜:Ì*³_דâèi?I–eP*B7Ÿ¿åô!¹Ýgr6Ër6oKbëþãðôrI”ËTˆüªŒ¨xóö=›ù¢&‰(e+ßóÄkýÇ`ëÁÜb.“¸ÐW×w0¥°jÑzN™¬|©WEãµ¢a¯6[öX†AkÓù*/œ¨‰€ÉY­ ÿV’§–u²jÂ>1W *½·°PGŽzÿ¨/Eg{ ŸÇâaoŠÁVú:è¿™¤1$ôR§W,–ªà¨@ŠË56¾ÀÔÜ-¾,mê¸Î/æè¹– òr5¥T*S(Vf8ö9u’ Õ£w›ùóa=Í<{Ò¡UŒ÷r¯+ÉådDÏF$è°…£é¿`zþ»ÎúöN‘µÜ®0Q3£~_^Ëóâ¯N=ˆvpTà±LžT}ˆîkq†Òm<¼ÎÓ?Zh¿X£ï_þÝ¥[)ƒ `gêÃa_Ô*äÔ2`'=õ´Fÿ2EâÁPú ÷»›l=8‹Wv°%THqÉ¿<"¤ïG¾ÆxH{#ÆÖ«aÔJÕÞ‡—m‹„ çñKsÿàñVŠØ¡°·MâÒ^ TÁ– Ý›r¥ß½ømüÿ_™?ªWİ÷#uIEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1DBSelectionFailed-members.html000755 000765 000024 00000014617 13515046515 027513 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::DBSelectionFailed Member List

This is the complete list of members for mysqlpp::DBSelectionFailed, including all inherited members.

DBSelectionFailed(const char *w="", int e=0)mysqlpp::DBSelectionFailedinlineexplicit
errnum() constmysqlpp::DBSelectionFailedinline
Exception(const Exception &e) MAY_THROW()mysqlpp::Exceptioninline
Exception(const char *w="")mysqlpp::Exceptioninlineprotected
Exception(const std::string &w)mysqlpp::Exceptioninlineprotected
operator=(const Exception &rhs)mysqlpp::Exceptioninline
what() constmysqlpp::Exceptioninlinevirtual
what_mysqlpp::Exceptionprotected
~Exception()mysqlpp::Exceptioninline
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1ReadTimeoutOption-members.html000755 000765 000024 00000015311 13515046515 027656 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::ReadTimeoutOption Member List

This is the complete list of members for mysqlpp::ReadTimeoutOption, including all inherited members.

arg_mysqlpp::DataOption< T >protected
ArgType typedefmysqlpp::DataOption< T >
DataOption(const T &arg)mysqlpp::DataOption< T >inlineprotected
err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
set(DBDriver *dbd)=0mysqlpp::Optionpure virtual
~Option()mysqlpp::Optioninlinevirtual
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1BadQuery-members.html000755 000765 000024 00000015206 13515046515 025762 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::BadQuery Member List

This is the complete list of members for mysqlpp::BadQuery, including all inherited members.

BadQuery(const char *w="", int e=0)mysqlpp::BadQueryinlineexplicit
BadQuery(const std::string &w, int e=0)mysqlpp::BadQueryinlineexplicit
errnum() constmysqlpp::BadQueryinline
Exception(const Exception &e) MAY_THROW()mysqlpp::Exceptioninline
Exception(const char *w="")mysqlpp::Exceptioninlineprotected
Exception(const std::string &w)mysqlpp::Exceptioninlineprotected
operator=(const Exception &rhs)mysqlpp::Exceptioninline
what() constmysqlpp::Exceptioninlinevirtual
what_mysqlpp::Exceptionprotected
~Exception()mysqlpp::Exceptioninline
mysql++-3.2.5/doc/html/refman/inherit_graph_7.png000644 000765 000024 00000005271 13515046516 022372 0ustar00tangentstaff000000 000000 ‰PNG  IHDR·$Ëœ«rsRGB®Îé sIDATxíZu¨]?OŸÝÝŠ‰ŠŠ‚"b‹"ú‡ ‚­`bw‚v€ÝÝÝÝÝÝÞïüÎÇfgã­ovõízìÌÜ>÷7çžšQLdÈ …$ŠÂ=™-#ÜF¢#ÜQûjÍÆŒpˆZb;;räM˜0ÁYmÊ@“&M¨uëÖùóÒÜ>{™Jƒ@"`„;_ša98Œp‡“éáŽÀ—fXˆîÅ‹S×®]ƒÛ­Ë^'Nœ ÆSžÔ³gOúþý»¼ˆåË—Ç5ü¯µãêÔîׯ_éóçÏ®y9þ<=z”J”(!¿|ùòÑ’%K¨hÑ¢„T²zûö­(ŒOŸ>¹™æÿ±øW 8ˆ Ú«>ùòEݾ}[ýøñCݺuKq¾QúÿüùS1еbÍ!uwïÞU/_¾ô˜ÁP¬]¬º“'O*Võáëïß¿WT/^¼P?~T|Â¥}àÀªlÙ²òÌÀ¨7oÞÈzP,øR ¿XõäÉ)_¾|Y>|Xêt‡_¿~)To½Ì¡X[«êÕ«{ŒÁžK•*¥ ( §‘ñgÏžU7nT÷îݳê5N˜Ÿ5œØ“&à€õ_½z¥öîÝ«„º;v¨‹/ZMÀ;qâÄjüøñ²0~šÀK|xíܹ³bAÖÓȘb-ÖàV=ö·gϵ{÷nõîÝ;«þÖ>sæŒÈßõë×=ú*”+WNõíÛ׫‹—ÿ®póMa¦V­ZrÇÁ€Ô©SÇ*W©RE®jÕªªf͚Ϟ=@¦OŸ. ³P©S§V111*wîÜ €ð²3dÈ %J$ý+T¨ R¥J%mvánÓ¦*V¬˜Ê˜1£Jš4©¬ß±cGé·nÝ:)³+aµ¡/„ ÁïxÎ2»ÒÆ ¤Í~ nذAûŸšßAƒIwI“=`­,Y²¨k×®I;0K–,™Õ>gÎiÃÁlß¾½ð$Ii3fŒÅ„'S¦L²/`W°`AuóæMÅZ[Æ€Ÿ±cÇ*¶6 ØÜðêK¸q0Ó¤I£ºuë&óïÛ·OÖÇ{Jž<¹ìu×®]q®Já™[’6mZ1Ù'N$Ö.ÈÚ‡–-[F¬%éÒ¥KÔ¶m[âM 5¿[¢µk×O­Zµ¢áÇ‹/ ³„qÙ²e£Y³f‰éïС±v&¶7äéÓ§2Þ×…M›6MÌï‚ ?>«k®\¹ˆµ;±f ¶"Ô¿iƒi…»;È^F_PéÒ¥ån¿° QÆ ‰…І*û„ïÉÂCóæÍ£#F Ÿ5„58±ö$>°‚Ñš5k¬6~±ÄÖIL;üùÙ³gKö±¸À¥_¿~tüøq™øT¬XQöÅÖ“°kkÁ)66–-Z${³â·¼²õ¤M›6É. >}³¦–;||>ŒÄJàóã²b£víÚ ¿Á¬mç5ÞÏr”l—øjîcÇŽÉ,ÐDÌŒâ@OÊ0—(³ ‹I„æ™9s¦´Õ®][±`È3Ì Nø¨Q£N/\üØ·“ñ«W¯–~¸ 2įæ.Y²¤Õp ±´æÖÖmX".šö~ø_4ôÂ… År±ÿgo&àM­ kjJ‘"±ï©‹’Ñ´±O/Eö‰ýeÉÔèöôéÓ‹µ`?\ªX¸t“hI«àãã ×¼“+W®ø˜Hódÿ,ž#Gé « <.œ|Nü›•!sKà^CpMد¥¹sçkjÔ¨‘ ƒ°*¦”µ±F!×Âðøñckz˜^dO!!â>}ú´Ça°·sPçÑæoN¸#ìË vö7nœ¸ )S¦”ƒdÿL7Ü(ûa „“VÎ5ræÌIì‹»‚l~HǵhÑBÜ7ô‡Û§ n [G]ôºƒz7¼zMj«ÐŠÎ>?Þ)Ê'˜µmÓÅû18‰Œ÷ôÞ៲)£ÁƒËËaWD:é,üíâÅ‹‹–‡À”)SFÀ€O_™£{Ëõž ÂÀŸÆaÿW¿~}«+»42Òcl*©AƒÒ!D˜1¯2´øEÊV‚„_—.]dŽ=zÈÌ…8‚](YV!tCPàû9r$5mÚTüYøÚˆ#F-<¡_ïÞ½ÅòaMv Ê8Ø)\¼b hl`>/\¸ x#N¯ˆQ¹¶}!Ë–èÔ)þü.R@¼ ø¼RÁø¥¨CÊO¢købˆö‘é`m)é:´#[ßcXë(vQ<|n¤‚@È– S û"c¡³ ÚçÆXÌ_þ¾N9jŸÐW¶ssN[qÀ©3`<~ð‰9`E³²?œ ·øD惭´i?Tã„ʺuëZ>zÞ¼yÿ^úâ‚qÈ>€‰hÖ¬™µ®ŽM¤‘/ÀŽpiÇ»ßÏÁºÔ‡^½z‰ïŽqnx…ÏLS ž™3g¶°(T¨•¦ ´6R“À6A¤mÐ_k:É;Û!@†p@œ„\36ŽÃB ã$7Rm˜ùv¤Ð4iáFÒdq‡zœóŽû©S§$‡Ž\­“GzA„2”„<7òóHã9 9wöòéNB~Á¹“ÂÉ+ÖÂ;CŒï N¬B¹¶¿mqLþÎ; .ȤI“¼ú#EÊÈÁ}ñ•ŠóÕóðÇ_MRç :ývôÑW iI¿¦7Ä–Ír7œóóùBè¬GiU_N^±Þ™3pÔ|„{m¬óG…þôŒ3$·Œ MySQL++ Reference Manual MySQL++: mysqlpp::ScopedConnection Class Reference
MySQL++  3.2.5
mysqlpp::ScopedConnection Class Reference

Grabs a Connection from a ConnectionPool on construction and releases it back to the pool on destruction, and provides access to the relevant Connection pointer. More...

#include <scopedconnection.h>

Public Member Functions

 ScopedConnection (ConnectionPool &pool, bool safe=false)
 Standard constructor. More...
 
 ~ScopedConnection ()
 Destructor. More...
 
Connectionoperator-> () const
 Access the Connection pointer.
 
Connectionoperator * () const
 Dereference.
 
 operator void * () const
 Truthiness operator.
 

Detailed Description

Grabs a Connection from a ConnectionPool on construction and releases it back to the pool on destruction, and provides access to the relevant Connection pointer.

Constructor & Destructor Documentation

◆ ScopedConnection()

mysqlpp::ScopedConnection::ScopedConnection ( ConnectionPool pool,
bool  safe = false 
)
explicit

Standard constructor.

Grabs a Connection from the specified pool.

◆ ~ScopedConnection()

mysqlpp::ScopedConnection::~ScopedConnection ( )

Destructor.

Releases the Connection back to the ConnectionPool.

References mysqlpp::ConnectionPool::release().


The documentation for this class was generated from the following files:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1UnixDomainSocketConnection__inherit__graph.png000644 000765 000024 00000025405 13515046516 033103 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÌÄÓqΟsRGB®Îé*¿IDATxí¼UÕòÇpI%;±»[ìÄÖ§bww`c`çÃV|ÆÓ'ðWL ô‘"ˆ€R‚4’Òìÿ|‡·6ûž»Ï¹½ÏÝ0óùœ³cÕ¬ßZ3kfÖ:÷V „œ‘!`”ÙÕK’Ëò†À L`l&¥@À¦`YVCÀÆæ€!P  2óþðÃîÙgŸÍ|mφÀj‡À½÷ÞëvÙe—Bý.²ÂüñÇ®C‡…2Ùƒ!°:!°dɕɓ'év‘Æçhß¾½¿µ«!°Z!0{ölרQ£Ø>YabsÙKCÀPL`l"¥@À¦`YVCÀÆæ€!P R/0ï½÷ž»îºëJÑå²g8p ;çœsÜÖ[oíÖ[o=wøá‡»§žzÊ-_¾¼D•.]ºÔÍœ93Ì{á…ºŽ;†Ï•qÅgðàÁî¸ãŽ‹ý\z饕Ñ|±uæ“b™Ê‘!õ3bÄ÷ý÷ßçèbÅ$õèÑÃrÈ!®ÿþî’K.q=ôÛ`ƒ ÜwÜáN<ñDG(²8êÞ½»kܸq˜÷ï¿ÿv‹/.®X¹Ò£øL›6Í}úé§®~ýún“M6)ô¡/ù |`Rž~f +—´ÒE‹¹I“&¹M7ÝÔ?ÞÍ›7Ïí¼óΪuùåG:›?5kÖÔô5×\Ó­½öÚaõ&Lp¼óa<´¸/³Æk„ù¨wÈ!n»í¶suëÖu þæ›o¦s3gÎÇáëzõê¹ÿþ÷¿nÝu×uÛn»­æabþõ×_nýõ×w¿þú«›5k–Ûc=\­Zµ4r .tµk×vÕ«W×zü3€Þa‡\¯^½”_ ]uÕUî ƒr×^{­{÷Ýw5ÏÔ©S]Æ ø¥ï u‘;ÖmµÕVîÕW_uuêÔÑw|ÑÇhÛ{î¹§NlÞ³*ÁÃZk­å~úé'-³ãŽ;º5j¬Ä*Ç RPPàvÚi'íƒO˼¶nÝÚm³Í6™¯Bªo¼±ŽþüóOÅhuÖÑüãÆsŒëÞ{ïíü;_{x¤Óç ø×Úï|`¼6l˜kÚ´©Ûpà C~ÊuÃñþ(Éþ Çý£¯rÞËÉÍØa‡é•²|ppÔQG…Ïûï¿ 68à€‚fÍš…õÉ dЃ—^z)‰ˆ"3&%<ñÄZ®OŸ>˜yÚ/¢@„]ËxË-·h¿d’kYê8úè£Ú†(+Bˆ°ëG&§âIZŸÏ?ÿ\û1räH’ŠÐ7ß|£<Þyçšöí·ßê³çQv¾ulh‡±8묳‚eË–¢à‚ .¸@ë¦ÏôïñÇëOx:æ˜c¿(‘àõ×_ù)îF”©öå³Ï>ËÌ:«ˆd”U`N>ùä`âĉÁsÏ=§11eõ>øà}í¼üòË ô”)S”‘×^{M;5}úôàŒ3ÎD[ëPhØàÆoTAÛb‹-ñÑ^Áo¿ý¦-›À0™hÐÞzë-mû£> ¼Àˆˆ)Œ5J'èyç§¼ð,æ•Nd^DŸ}ôQ­GV0Í›ùuî¹çð196Úh£@V‘`þüùÁi§¦“yîܹAçε”ä† פI“ Iã™{Ñô¬L*0ôKŽ,iú< õŒ=ZëA@O:é¤@VP-‹bb2CqÓ¼yóåý 0 0`Â#<²:Œ#X"”ð€rãÙk¯^½‚gžy&`RvëÖ-Ÿ$xã74¯¬òZgÒ˜´k×NÛG.X° @€¥W0ÊTޝDƃƒöXq6•%Yâõ¹K—.‚Ô¿òÊ+švä‘G D§Ð¬LN„‹‰ÃçÇÔòhiO÷ßÖFÌŸM¯[n¹¥N8/0~Õ"‘6YÉŠ#&‚‰Gh3 h“Cü›0›˜XÊß¾}³ Œ_¥ÅO Ëù,Xaè‡'9²¡uz Èj…2a >üðÃ@Ì5U>ä˜ÓO?=¸øâ‹ }¼À  `HŬRÁ§ž[o½UWnî=!4â#¬øûì³O@_ùˆŸ§–‚Ç!iLúõë§+áÙgŸ°ª¢¸œ’R.)·#¡äFZŸ½,æ•> ³jË¥!2$+Šúº¦ËÀº3f8Y¡ÜÝwß­>Ñûï¿Úýûí·ŸæãKL·ð>óF&V¡Wø1Þw AV‚0H¾Pq„¿A4G&¦úÑüø[¢}5 àßGÛ }(ʃÏç¯ø~~‹'os‹’ÑWðêÉû="ÀúJ”‰ã  LL‡o¯¹è±Ç‹õa(ƒwþùç;Q&NAˆ5<ú1õu1„ð[ð¿dUôIê“ú±çe’˜ˆ;Y õ#¦«ú´·ß~»kÕªUÈ_Yo*,J†£\ȉŸàdÙVçYL -&þº˜kêøÅApüDÁó$¦ˆ¿-rÅIõDjРAá ó>š.6z¡4_.óJt EЦM›Ì$÷ÕW_9Ñ^NL¯0-ÚÆwß}§ïs ¹W6 <áüCbªé5:ùôÅÿ¾D”ÍÕW_­ÁYÉœhûh–RÝ#® Øˆ` 7‚ ŠâŠ+®Ð¨¡˜ N|V‡Óï?`uæ™gj^¾’ÄDV < :TÛ½æšk´OðV^*Ù,/o+‘òb‚9¢_÷ÝwŸêµeÛ¶mÝ 7Üàˆš¡%‰,íÚm·Ý4ÚõðÃkd‹(‘ø>‘ ß2ÑXµX­ÐºbÖ¹N8!Ì$æœÖÉl1C4$L"“öÿýwÍ}f…¹üòËÝ /¼àn»í6Ö¾ØÊ°ë®»:1qÂ6Ðnbš:Œ2›m¶™FŽX ¢t¬¸žXYXQ˜¨”!‚GHmGLb&4W´â³å W£°>þøãB1ï”§‹.ºHW¢ŒD ¡ÃÏ©§žªW0Ey¡­ÅÌÖÈ!J,0p§ä'*é)ILˆŒaÁ ¬À…•…ÇêYnÊ´ëÊêôãàC8¢ÂT€]á(óŒá‰ÈïdÿÄ¿R§'˜6¯„&ì~HöÔ~¦ Ñ1Ï ù0Ö|8±2Á¼DÖ|´Æû0”¥ltü'1%´¬÷d2Å>ãÌâlÃå}¢EµZH¾H'j‡ãL"q¾Ÿbþi ÷"˜R%£} ÓjúˆO$¯Õâ?àØ{ò6ö'Ÿ|¢¯pÔi—r²’wÝu—ö¯eË–êÃx|ˆòyÞ3¯Q^|ñEM÷õâJ?!Òv|ðAmƒ²øTJ×÷Qnø:½/êùM|‚ð/DeƒÙ³SìÕãë}ÄHòGÉ"••øöæ›od¯¦H~ÙkD+¨Ðe&â´zF‰~ù(Y4sÊ)§Ô#æFŒ|ºÒ˜¬>RçÓKz%8–L”Lbrà z4ÀàóáTüˆ#úˆÓŒ#-ÀWŽwÔI9O„ì‰ÌU4Qg¶°´˜sªädߨP³ùÂü „”Ë\SaN¿Hs±„¹ƒÍùõüóÏÉϲ)!Ñ"ïy鯆XIˆzØ<ÍF™lùâÞK”¯D|°QÇ'“0 ²™ô‘ÍÔ²&,O>ØàŸ+êÊ&s¦óïëfóšO6J“í·ß>+e~Ÿ¨ÀàŸÈ^Œ“ÁÉFW™™&çØ²«£GL&"mÙœç¸2eyGщ[–:Vµ2«&ÕX;£„3,›^…œÒhºÝ«:þ—BKGÈþ_ »5ŠE ñ°r±YC  #`SgäÈÉnâÄYU3c)«Óc”Æk G÷—ËïUæå‡Õ¼U~J‘Ь0„£G²´÷•‡À”)õäìÙÊßU^KVsl þÈR4O‘(Y4Ñî“G`À€q®yó{T}úÜ%?‡^yè2yn¬Å ,J–HÞ»t ¿v¬¡ŸÎWÀÌ;SÆ@ˆ@“,L±›ÄP:„dÉ’eúéÐΈó` æFÀ&7>‰¦~óÍH9¼ò¤‘²ÁƒÇ'ʃ5–˜Üø$šŠ9VP°ò[`šué20Q¬±Ü˜ÀäÆ'±ÔE‹–ÊoY˯%WüŠ’†1Í:uZñWdcÄʉ€ LNx’KìÙs¸ür³èO‹gΜ'?„ú-9F¬¥œ˜Àä„'¹ÄŽû‹9Vt80Ñ:wîŸ#ÖRNŠŽPÎì–XÌ›·H~â;¬9æÛÁDÃTÃ<3Ê?&0ùףǷlYö¿Ï<þùáÝð*À©±`Sæ@‡ýsþ°­  š™eU`œ`Á&Ï1cÆ<ùcê£r®0K—.wŸ>L~MZ¹¸<ÏP¤¢y˜<S·nƒåÏ#úÑk,G‹/•¿¼ÿslš½L;|™Ö±-Íž½ ÈÊqóÍÿ‘?rXÛ=üðÊ?HaÞÕ¯¿ò¯ýÇVh/+ÙYS™­ZÝ+hذ®üu™º+_È]:5å_zÔ’?îWô¯ÎÊh‰#`&Yâ[ƒiFÀ&Í£g¼'Ž€ Lâ[ƒiFÀ&Í£g¼'Ž€ Lâ[ƒiFÀ&Í£g¼'Ž€ Lâ[ƒiFÀ&Í£g¼'Ž€ Lâ[ƒiFÀ&Í£g¼'Ž€ Lâ[ƒiFÀ&Í£g¼'Ž€ Lâ[ƒiFÀ&Í£g¼'Ž€ Lâ[ƒiFÀ&Í£g¼'Ž€ Lâ[ƒiFÀ&Í£g¼'Ž€ Lâ[ƒiFÀ&Í£g¼'Ž€ Lâ[ƒiFÀ&Í£g¼'Ž€ Lâ[ƒiFÀ&Í£g¼'Ž€ Lâ[ƒiFÀ&Í£g¼'Ž€ Lâ[ƒiFÀ&Í£g¼'Ž€ Lâ[ƒiFÀ&Í£g¼'Ž€ Lâ[ƒiFÀ&Í£g¼'Ž@âÿP©ÿþn̘1‰w4M N:ÙÍ[ÃuèÐ!Ml'Îë¶ÛnëvÝu×dÛ ¦‹/¾˜èhàÜsছnJxö³_aPÇwœûä“O’Õ ÖÚ*…À—þ˜“Ø­Ñ´"`“Ö‘3¾ó‚€ L^`·FÓŠ€ LZGÎøÎ &0yÝM+&0ÅŒÜå—_îÚµkWL®ŠI~å•WÜ!‡âÖ^{m·Å[¸-Z¸qãÆULå•PËÒ¥KÝÌ™3Ú/¼ðB×±cÇðyU¼1)fT{÷îíF]L®ò'_zé¥îšk®QAyúé§Ý©§žêh{ß}÷u“&M*•PC÷îÝ]ãÆÝ’%K´ö¿ÿþÛ-^¼¸Zª:UVyAƒM›6Í-_¾Üõë×ÏM:5œï¾û.<5°páB7vìX·hÑ¢]îyç”<={ötÆ s²ãæãf„ î‡~м´7}úôBé<Ð6uΘ1ÃõêÕK¯>Óœ9sÜìÙ³µ<|9Ò'é•ö,X ýàÚ~ ¯¿þÚ½õÖ[AyçwÜ%—\âž}öYÝ«‚^xAóñ5oÞ<$ÊÌ;7|NS¦LÑ N?ÿü³[¶l™¦{Àð÷ßwðG=Q‚Ÿ!C†¸†å¢é¬t=zôqw?`Lݯ¾úª;ùä“Ãbeá5,\Uo’Þ*e§_6.KÜì-·Ülºé¦A“&Mtg¸zõêhâ`½õÖ wŠŸ|òÉà?þH{饗ºeƒ5j¢¡ƒçž{.Xc5‚ h¹N8!AÖ¼÷Ýw_Xw£F‚í¶Û.€Oh›m¶ }ôQ½¯U«Vpàj5kÖ êÕ«têÔIÓÄ| vØa‡@Ì©€|2ÞL|MãëË/¿Ôw2ÑõÝW\¬»îºz/«‹öG´³>G¿úôéˆè+îé7ý¨S§Ž– iàDûðKŸiÿè£Ö>Š"ÐçSN9%L£mj-;bÄ-K™‚‚‚`ƒ 6(ãéÞ{ï ªU«Ô®][1>묳´?àMÚ“ãN:NO<ñ„++¯¾Íâ®ûï¿~4m¢TaPDË¢ÑtðܪU«@4zÀà1I Ã;L?¾CGqDpÌ1Ç¢ýƒ5×\3­­I &ƒýí·ß}ûöÕA§¾ùóçï¿ÿ¾NŽl³ÑF¢Q5ïi§ˆIˆ¦øúàƒÑì¬úüÑGi›£F î¸ãX¼@ÐyäM¿%8ôÐCõ>Û—¬ª4DƒÏÜo¼ñÆhû¡}úHú< ÏbNêä'íØc þúë¯@L=U?þ¸6ÇäÛc=‚áÇbV'tR >” XQED¿èϲÂ;wÖ{/è(6¦<¼fëæ{˜LDþ÷ÌDØ|óÍÃÔÖ­[«¦C 7ÞxCµ"÷mÛ¶Um'¦I f•Þ¿ûî»:X5š6mðÌŠÃ$3$¸í¶Ût¥`=¡©³ ÌC=ä³ Ð ƒÐ!0;í´S˜ÆÍ–[n©¹Ð˘‡ƒ:(@hr‘_%Ä, ³ùUkðàÁÚíyš¹÷Þ{ÏɤpD½D#:™¤îÓO?uãÇw»í¶›3*lc³Í6 ï3oˆ^y³Fo½-/Ö'é•tŸV(!ãA„Ù‰ «Oâû峈€:øßzë­õÕž{î铜ÇÅû[à≾CÞá>š^·n]MóQ8üü'O›l²‰úXà#+¸­×sÎ9G¯ø‚qD¨<¼ÆÕ[ÞUy§Š’PÆ ]óæÍ5´ÉÑx"MbŠ9ѶéB@Ä$qb9~fðæ›oºõ×_¿H*WTìÏ?ÿ YÁy†dÔk4ˆÑ AƒÂ4Íåkï½÷Ö`Á_|Q(N¼˜mŽÉ+~…¦á˜{’Õ@oÅ¿Ókq8¡D2ILL}õüóÏ;ñõC½ dð‘Õ$ VÈJìÄÿRü2ëòÏÁ«¯«ª]‹"XÕ8,%?çwžûꫯœ˜+îüóÏ×Ò¬ì´iÓFW£Ýwß]µ¶8øî¨£ŽÒHÛk¯½¦Q¬—_~Ù‰¿‘µU±å56tèP^±í²Ë.šŸ‰&æŠFÏÄQÖ•L‚ 𤾡á†4JÅ‹?üÐÝ}÷ÝšFHY|wå•WêžZ|'N»[guÜÙgŸ­ÚšELRGÛ³fÍÒ¨¶ÕV[i=eùbUSU±ù駟ܯ¿þªXÝyçNœ|U:´Eo‹¯§+¸˜­áªL1ŸÂæYY*ƒ×°<ÞTyAkF5#÷™ÏQüıuk­µ–Ôy䑚ÄF “³eË–º)¸ýöÛë!‘IüwõÕW;‰z¹|ÐyMáÌöÙwØqÇÝÎ;ï¬ad&¾×ìL¾ë¯¿^'ùÛo¿íÄ©vbk+„­X®DË4”Ì=f&~ü žX±$à$úäÄQá†7ÌJÂÅ´ ˜{´eò©/s|‘ŸmH CÃئ¦ýçÃ?\1gÞ±µoß^CÞ©Ó="Ì<†DÉB*š×ÝH>)—cUi¥’•–"9¢õƒ¨sîë[? êãþ=W‚8¹{{§?š‡p1¯h\ÍMÃé'l+{>˜M)Ц—ôž€N3N{É^Ž:ç8Ýôµ¢Èó-û0Ú‡Ìz‰ú0t4à ¸ÆQeñJ[æôW€®Àã‡i8Á˜7™„V–èPæk}ÆôáSÂWâG¬¬e%4vÔ9Ϭg󭢩8¾ñ3xÀlãG•Åk\[I½+Hª¡$ÚÁoÁ)Æ©Ï5éŠã›ÿ&“öÛo?5…2ßóÌïËqôVmV)yì±Ç*d´žzê©Øz8Û•î¿ÿþlIö~B Ê;ý«ÖÖ•U˜*8ˆsæ,”MÃ'€« {«5Ky1ɈçÛßÜÊ>ïúöâêÖ-³gZÍS81žÊ‹ÀÈÙ''‡&óÑßT´Ù¸ñ™²¸H~œÕ-üæ‹Éã?>ñ¦«ÓN¼Uk0+S¦Ì‘°q+ÙP¬&ˆ­åÌÜŠ3aY XB’Ì6&I¸KÐV·nƒd‡½šœÝ Üǯ<7V‚¢–%L`¹4M´k×O……2;ö/MQË›&0 €\Ò&ÆŽî~ùe¢dd…éÛ÷7ùyöÊŸ!—´ËWy˜ÀT¶¥®¹K—rså`šuë6¸ÔõXÊC`åèT^Vs èСŸüqŒåanV™öíÿ>ÛMþ0Éÿ(C‡Nt˜dQ"€ùóÏäW¡ùÙsˆòb÷+0©"3¡k×ò»—E¸ÁDëÚuP‘÷ö"?˜Àä÷"­[²dÅß‹&b¢µkgfY“|Þ›Àäýÿµýã£åדs²r2fÌ47|ø¤¬é–&0Éaµ%¢cqæ˜/PPPC~G¿â^øwvÍ&0ùÁ=luÙ²å* qæ˜Ï´té29¬ÚÏ?Ú5˜Àä|šîÝ{„ü=²…ºÂÔªU ‰¥è‡†3fýúÉ3·Ö|^N+ì+ÀkÙrÅŸbòo»w,¿“¯)f©©¥W;&[޼<Øiå¼Àž»Ñ‹.j«§”Û´i‘;£¥&€VNqk/ݘ“îñ3îFÀ&aÀ­¹t#`“îñ3îFÀ&aÀ­¹t#`“îñ3îFÀ&aÀ­¹t#`“îñ3îFÀ&aÀ­¹t#`“îñ3îFÀ&aÀ­¹t#`“îñ3îFÀ&aÀ­¹t#`“îñ3îFÀ&aÀ­¹t#`“îñ3îFÀ&aÀ­¹t#`“îñ3îFÀ&aÀ­¹t#`“îñ3îFÀ&aÀ­¹t#`“îñ3îFÀ&aÀ­¹t#`“îñ3îFÀ&aÀ­¹t#`“îñ3îFÀ&aÀ­¹t#`“îñ3îFÀ&aÀ­¹t#`“îñ3îFÀ&aÀ­¹t#`“îñ3îFÀ&aÀ­¹”#Äе×^H·ì“'  ÿ<áÏÜ¿ûî»c$#˜•õ\6iÒÄ]xá…)Wƾ!Pz^ýõ¬…² L£F\³fͲ´C`UEàƒ>ÈÚ5óa²Bc †@QL`Šbbo ¬˜Àd…Æ ¢˜ÀÅÄÞYÈêôg-Qžzê)·çž{ºÃ?¼Ò¸ûå—_ÜÛo¿ín½õV·þúë‡íüý÷ß®U«VîÌ3Ït{ï½wø>îæã?v¿ÿþ»»á†â’Ãwï¿ÿ¾ûé§ŸÂç:u긭·ÞÚ}ôÑnƒ 6ß'qóǸ6mÚ¸–-[ºµ×^»Ø&¿úê+סC7iÒ$·ùæ›»}÷Ý×qÄåæûá‡vǼŽs±LD2,\¸Ð-_¾ÜÕ«W/ò¶ì·«Ä Ãäb€*“fÍšåúõëç,XP¨™E‹éûiÓ¦z÷°dÉGþâhäÈ‘î·ß~s[l±…~ \×®]Ý•W^é†Z\ñ Mg²ÑgÙ”(¶^”Á#<â7nì.¹ä·ÿþû»N:¹›nºÉÍ›7¯Øò¹2 8ÐMŸ>=W–Ø4”é£>›V–—²ÂÌ™3G¥¸AƒŽÁF¯µÖZé5j”[gu܆nè/^ìfΜ©šªV­ZʯG&ÏL ʳT­Zµ°_LJ>Ûn»­i 6 Ó¹ù믿Ük¬¡ƒ|¸#t¾é¦›†å™´_³fMW½zu·lÙ2ýx^ÃŒ9nਇö7Úh#·îºëj‰cŽ9ÆvØa!k®¹¦ã1¡˜˜L6 ¯¾új½ç • e÷Ì3ϸ·Þz+Ä…ö˜¨”còxñžºé|€ý˜1c†›8q¢ââÛ¦~!­Q£† )ý‡6Ùd÷àƒ*†~¬Ö[o=UPŒ%mÖ­[Wó¶oßÞmµÕV®uëÖúÌ×N;í¤+ê°aÃtµá]6žIsø Ê2'âˆ:àÑãÅØŽ3Fçš_…gÏž­s%…°1ÇÊKñÜ”²Öÿûßî믿ÖL™2Eí¤“Nr½{÷Ö¦:´#Kó¹çž«žrÊ)ÚʧŸ~ê^xá]Æ{öìéÚ¶m«õ`êì·ß~ª˜L’÷Þ{OëfyÅ3îÄOtÿú׿ÔÔ¢¿·ß~»öó7ÞÐI}ÕUW© aþÄÂ}ÐA9&%j›m¶qï¼óŽ~˜øsçÎÕ ÆdE`áAEÑO”& æ†ÿüç?u‚Ãë}÷ݧ˜†`Á#“ĈZ×þóUvÔ{຾}ûª¡°^|ñE,çäÉ“U˜P“žºÀÊÅ3üÞ{ïU…‰Òb쮿þz#-ü¿¯.]º¨™xË-·(®_|ñ…*ú‰Àíµ×^îP¼¿ÿþ{-uÿý÷»—_~9ZM™î+Ì$Câ±ãé þÄG}äN>ùd÷ÿ÷®Y³fzewÝuW$Ï-BE~´>ÂÂRŽ­È?þø£‚ÇäGX8yðÉ'Ÿèm0Ïðh{Ÿ}öQ0hüøñîÆotŸ}ö™ J=Üwß}§ih¦³Ï>;´·ñIN?ýtM+Íš‰ÏäÞe—]\÷îÝ §¯wÝu—›0a‚ö‹~£ùï¹çÕð…2Gvß}w}b…øùçŸÕ§BØ»uëæPZ¼§.OàŽo‹ïÅD¬ƒ¯Î;«°öêÕK³"´LlÞƒ}YÙ©/±Ò0¾( ÌÌ>}úhV°B›·hÑBäK/½¤‚…bCà‹ãa7nœ õ#˜¯½öZ!sEá „èó“O>©÷”¡V\æ ¦ ~-õT„°ÐÉ Ya¨ÂO.„¿m&Câ=¨Gu”N`´˜U¨]»¶šçÈ#T@h7ŽXÝü²|Þyç9V –kˆÉÀJ±º,¼êÆo¬­‰òŪTRò¦ùÑäÛm·=ôÐCuu̬gÇwtçœsŽ 6i7ß|³¶Ÿ™/úìµ4X|ûí·ºj€àˆUÒXÓD:c„`@¬Â¬‚ ÿðŸþš»šóu饗ª¹Ç8³ 1i!Æ AoÆ•ñëØ±£š¥nq<“ŽrõýÄ*A™²r@¦4Š“±ƒh‹túîù Ïø›Q“V3WÀW… L4‚Â$G£ÄE&¼iDGåàƒM§7ß|Ó=ýôÓª¹vÞygÕS§NU[añÄàg#o áSD‰tŸ}Ÿyïû‚Ù%ïÌútÒ|›Ü3¹Ñîqt '¨À°â Š#V.ad…Äð¾ïÌOÞ¾ç™1Áñ„€xGžUž• |‰leã×—Å¿ôDÿ0;)ƒŸBù3Î8C?¬>˜Ù?þ¸ æz6ž©?#Ê#>DZÇë› ýcVFV1ø¥N(ê7ñìýFî+’*Ì$‹jØ\ bopÀj–á÷ pq Ñn,¯˜0=ôÚϘ &K”È›¢ÑUòMóA ¿e«÷¾<“"JøOç¾$X0YŸ}öYuD¹/Îd`B¢aiÁàêé'=íú€ ÷PIø@Y ,˜Ï˜vðÁê“‹âê…| êðÄ„&ÐcürñŒà£h0ÉN-ï0–zÌ[Ü/¿q풎ÄÂ$ ªƒé1©¾üòKÕÄL–s‚ þ ް¯íˆ}1è¬xÌÑDðp|±Ó1ó¼ ¦™KðÅäïß¿¿îo\vÙeêoá³y"êã1B±01s°Ý!xfµ#Â*Çä4hP™ö¢Ðî(%p§oøtÞ òüwe¬ðÁ›òøŒDöxÆ—Âÿ*Žg”'fæ; lY¥X!Šê´ÓNÓq úGèÚcLð=–ðÅXyK ¸~—^!&'jpŸùe`ëׯ¯+ 6*Dd‡eů& § M…?DôŠÀejô¨Ö£®‹.ºHMìa"$>“ ¡ ª„0¢µpJ!-0±ù™  y –}"nØüžlâü¾~õé<ûw\Á… ôꫯªö¥L&Ì"V×wß}Wó#ðD× Ì=‚„w=^`^ø 1“žµ÷#}›Q>ü}ôŠ ¬!‚‡9Œr9õÔS݇~¨ãÀ$ÎEÑþaDééòÞøøuP.žQô›„‚:ÿüóõ>ÚC(öX^yå â \ 0ºøâ‹õžS$ ÇÏ+M(ãW5Ñ*Ev¤®»î:ÕLÎÊ ‡þ‚ .(Ô68Ë2š$ê‰4>Lf&.ËqfX™Õ‹]i€ÂÌó$å™ðh>&m°ƒ0––Ðþ¾<‚ŸOVDVÀ¨oQZž¨‡ËïK¡­ñOüKiêCñ°BD÷ ¢å‹ã™ò¬ ¥éÊD}XÚE9²JeΧ(OÑû+®¸B•H¦_$yfWÈ m¬¸{Ì0–K@kÞ¼y‘ìDÈЦqDŸ’«Ÿ8<64ËJìiøèSY먨r¥Á$W›™õD¹ÊÅ¥ápçrº3Ûʬ#WÙ̼þ9טT¤RË‹À'Ç©/ñÀø+~Cœ@0‘1ÉâˆLIަĕµw†$.0,wAÙbìÄû³Qi~rÍ7þAOL;ötðª*az¢ÆÌ,éAϪڗªÊW^¢dU ÏŽ>G2ˆ®àkp j„¿D䬪Çp†!„ÜVS…¢B¿_a*”ûJ¨ŒcDÑØ‹à £ üãÿÐh‘$ÿ3‚„®qRñ‰ˆ0AÅRĹF±­1OÙ¼eÃχO©#î0!ï!Ò~ýõW=xˆi ù <6üAOM”¯²òêËÛu&03P2Àjâ……,Lf~“AtŒÀ"q},rp‡“ILÈ” 3väsR$LàƒýBÌLföš+>Ív˜Ÿ þ»r8¡#Ex•ö¨‡³W\ÙäÈϘjeå5žÕþÑL²Œ)à7-ã¢h„³9¥À¤ö9äÉÉ66=e;¤H:›¤ì®sÄߊML6gi?ÛaBêcŸƒMR–r‚˜wíÚµÓý#öxØ´ÃŒŒRyyÖµºß›ÀdÌ´sIˆÝhv™}̟À˜XÑì6¬ ™‡©Ÿrl²ßÀaQˆ#™‡ 9¾ã²raza²G‘VÎâå¢òòš«îÕ-ÍL²Œ÷wœvõ'}V¢O˜kØå©ì/yІÍý!EŸÝçÀ‡Vï‹dnš±7Á!TÈóȽ?}Ì}Qgyy«wu}g“1òœ9CëÿðÃEˆ‰Oè– ÏY&O8ÚëधèqÿÎ_³¥EúiBÜøLð;6 0p”S ó.ŽH+/¯qõ®®ïÌ$ËyŽÄs\‡#ä¼dròád1æf„9†ùÄ0B¸2„š5k¦×²~å:LHäŽ#'NMp–ÊGç(‚ð¥Êâ5ÚÆêro+LÌHó3j¢P8Óþφ ã×þWÈÄqoÕª•˜¬–$05Ë|õ¬(~UáŠæ#ÎÐñ‹Ð¸Ã„¬nD»h“Ã…œóâw4Äà8D /Ñ6ÊÃk«ó»¼¾L à8ܘY˜`Bæ$'¼Ì!CÌ¥&²„®(Êu˜p4Ñ4œ~ïÿøvÙ‡áh7ßüûÊäÕ·±ª\«ÔáË4Š d:öQþÑâReP®Ã„ì EOaGÛÇŠ£Êä5®½Uõ]¼]°ªöÖúe”˜rhÅW/L`V¯ñ¶Þ–˜rhÅW/L`V¯ñ¶Þ–¬û0lŒï72V7rý ¯XasΟ[ZÝÀ²þü…›lgôb7. 2CÀˆE`¶ù0±¸ØKC ˜x\ì­!‹€ L,,öÒˆGÀ&{kÄ"ðÿUn2N]òÃyIEND®B`‚mysql++-3.2.5/doc/html/refman/tcp__connection_8h.html000755 000765 000024 00000010506 13515046515 023243 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: tcp_connection.h File Reference
MySQL++  3.2.5
tcp_connection.h File Reference

Declares the TCPConnection class. More...

#include "connection.h"

Go to the source code of this file.

Classes

class  mysqlpp::TCPConnection
 Specialization of Connection for TCP/IP. More...
 

Detailed Description

Declares the TCPConnection class.

mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1SQLStream__inherit__graph.png000644 000765 000024 00000012623 13515046516 027450 0ustar00tangentstaff000000 000000 ‰PNG  IHDRŸm¿A³òsRGB®ÎéMIDATxíEÇ›(9HÎYrD@@°D,Q$— b‰Z€ Ÿ€PD €€ðI,ˆ QÒG’œsÎ9Í׿Gõº,»w{3ÇpýªövfºûuÏ¿ÿýBïìmm;XòY&Ä–|±½íØ’Ïr ÖHè¥çÅ‹«[·nyQaÛ>Àd̘Q)RÄõx"½fË–M¥I“ÆõlÃz¸gò¥J•JeÈÁó@¬‚ 'Nx°ùþM:bœ|W¯^U ,Pÿý·2Ôìß¿_Ž=ª.^¼(øP¶}ûvµcÇŽ{ðºyó¦BˆqãÆ s*: ëÂ… ƒZ³µkתåË—«K—.I›S§NÉ1ÖïðáÃríСCÒöüùójýúõªE‹ªoß¾RvúôiuìØ1±Ô«V­R7n¼g³ýøñãjݺur½ŒÑH8`ÁãöíÛjÙ²e>¬¸÷ 6(î!Ø?ûolþÓ§úÞ»w¯Ôß³gŒ—2toÚ´I­Y³æ.üL»ûþÎ#UnåÏ?ÿt4@a7}z©kÆ.]»vuŠ+&mÑ£ ëlÛ¶Íwž0aB'sæÌΊ+dLzÑ:åË——±€/åŸ}ö™”Q:t‘wŽ+W®ìÔ¬YÓwÞ:ì‘úáüÑÆÃáåAf±¢\KTȧ-ˆLú Aƒ¤?ÚB¶%K–È9`;VŽû÷ïïèOMœÉ“';Ú*:õë× ù~ùå§W¯^¾q÷èÑÙ2eŠ£W¸“;wn§^½z$çëOadò4hà<õÔS޶޶lÎã?î´mÛVô4jÔHê¥+qâÄÎÀe’ ä^˜0úç|÷îÝŽ¶¸r_AÀyöìÙ¾’ùóçû€ýðÃÅöéÓÇhÆdV{0òqÍH ùòæÍkŠ„œLæÜ¹s:8ùòåó•aÙ±Ò/*@>ÈÉí.å>¸yApú…p'OžtvíÚ%ÖhÆŒNóæÍ¥L‡>ò­\¹RtépFÊÆŒ#ççΓsp¸䋱˜/Q¢DJ߬ʚ5«jÕª•¼k³W,¤TÄ4šlJ»ZNEJ•*e#|'vD´EóÕË’%‹ëÉQzâTÓ¦M•^ù š$JÖW7ð xñâ—|ç$F´{—Cb0b®œ9sš"¥Ý¹ôÅ…p10óçϯ’&M*§ûöí“÷áÇ+mÁäE ªC‰µÕUÕ«WW%K–T;w–Ïè1ïÚMË¡^èò®­»¼3FDOÞcêOŒ‘à€æÌ™£¦µë”­“‘#GÞu¯“:uj_PLa¸[,\r#ÓˆvÇjÞ¼yª[·n’,p‰ëÒ¥‹©¥w3a ˆÿD’8!áb¨“s-¢Ý«:pà€¼¸‡(íQä¾ *‹L[%Õ±cG©ïÿG‡9þ§±~c£Ññ“dŒC‡•‰)]º´XóD Vrjפt,£¦M›¦Æ¯´»ñe™­ &ÜEíN•ŽÅâaéz÷î-YœŽ¹–+Š•3{uX'J—.J–,™¨¥2]Úx‘gŸ}V “µsçNÅØŒÕŠ cÐn^éEÙ÷Ö­[Oô?òÈ#’¹êäF0e‡@ÇĢ Pg¬Ÿ‡ëãƒÕ‹JÂAûž={JÌ¥ÁrxÕ©SG’Ê6l(q‡v%ŽÞÆðen ÉŠÉPMÌ׺uk'S¦L4ñÏv‰ñÈ0iGB£]—/+c¼9räL”d¢D‰ŽÞršÐ’!Ð#=ö˜ÃXŒË‘M"WªTÉIbAf|$CŒ—þÉÔ‰sÛµk'õÃÅ€ØÎŒÅtDœJ¬I_¼¸3~mÕ%˧O²|2n0â>L,LrÑžë‰çS§N•ópþDGÌcÙ®¹!cHÀ  Û6& #Õ{PT`½ÈÎõf°älM Ç_´%pH`˜€@ÑûwAÇX/¢små$ñ _Æ*TÈÑá…¯Y¸øø0~V8zŸÏáØ_8g;‰,!Y!á¸ä‹ÇÀ4ë] ›™ze)½Â\µájqé:uR5jÔPÚš(âZ6œÁêa‘Í›7Ë­xx’Ù~u2ºÉ@†:bÄÉ¢õÄfÓ§O¨ˆ]˜y~’9ºò0éi¡?Šãe%bb,Ûx¶4."`ÉçaÖoÞ¼í¡µmjÉç’äiƒÿæ²µmžc>ý¹¢â×dóæ“ê›oVêÎëݸ¹†ý?bt3ÿžÈ§+ºëc$7xPÛüòË,ýÌÜ uêTb½¥RðA½ Oãæ“/â‰||œåÆ[jîÜ;Öþ÷ßwªW_}*.Âàùžã¦¿ðÛlÕOKßy2yÞ¼¿õSÐÿ<¥ìQuœjnÉçbº'O^£&¼ÝÍ›·ô“:]h±M,ù¢È+W®k—»Q?wxg›…G«&Mºߪ‹âð¨ê–|Qœ®9s6éǾþùÏ\·nÝVK–ìP§Oßù2RÕÅéê–|QœþÿþwµŠÿΓ¿þM§O_çjÃ@À’/ L•3g.«?ÿܦ¿‚øÉ†£&N\eªÙ÷0°ä (ªÍœ¹>hmý!õ¿ÿíS‡y{ :¨ò‡ø¢%_&wâÄ•!7Õù”cêÔµQÐf«Zò…É#GÎé/2íÕß•þìí·uÖk]o˜pJ5K¾0Ñš6m­oo/T“íÛêïq,T±½€€%_ ¡NÙË3{{¡ê(O‹îÎW5C×±%OŸí%ûû©Sõ—·©%²ûn•×:£Ϭ¿¿4~æŸ{!ž¾@¡æ‡¼pîÜMêµ×F©ýûFêŽr(ÜÞžý‘[äl;ïؘÏ;†VƒK,ù\g›yGÀ’Ï;†VƒK,ù\g›yGÀ’Ï;†VƒK,ù\g›yGÀ’Ï;†VƒK,ù\g›yGÀ’Ï;†VƒK,ù\g›yGÀ’Ï;†VƒK,ù\g›yGÀ’Ï;†VƒK,ù\g›yGÀ’Ï;†VƒK,ù\g›yGÀ’Ï;†VƒK,ù\g›yGÀ’Ï;†VƒK,ù\g›yGÀ’Ï;†VƒK,ù\g›yGÀ’Ï;†VƒK,ù\g›yGÀ’Ï;†VƒK,ù\g›yGÀ’Ï;†VƒK,ù\g›yGÀ’Ï;†VƒK,ù\g›yGÀ’Ï;†VƒK,ù\g›yGàžÿLºbÅ 5hÐ ïšr /&R‡§Ðÿ—ßÞþêr¢t{cÆŒQ¿Ï;ûòMš4I½òÊ+ªjÕªQRn+[‚!pêÔ)µiÓ&ý±UòäÉý«ÌùÁ?ùäÿŠöØ"à ¿þúK}ôÑGAÛÚ˜/(,öbL `É(Û>‚"`É{1&°ä‹ ”mA™p­ý/¼øÛo¿©-[¶¨¶mÛÞ×Ñ]¹rEýðÃjùòåêÂ… ªdÉ’ê‰'žPÏ<óŒJ”(‘¯ï™3gªE‹©mÛ¶Iv—/_>õâ‹/ª2eÊH«W¯ªîÝ»« ¨òåËûÚùìÝ»W9Rt$I’DêU®\Y•*UʧãöíÛ*Y²dþ͸ãÞò8p@Rùûü¸qãôïíεjÕJ¥M›V 0@}ñž®9æZÒ¤Iõ¯½¦êÖ­«Ž=ª:uê¤uªÔ»yó¦Zµj•:qℯÿã8ªGú§µIû—_~YíÚµKµoß^ÚQ·ÿþªOŸ>þÍÈcÏ–ïúõëêôéÓ*C† êøñã ‘7o^ýÓ ·Õ¾}ûå¬þ„ ªcÇŽÉĤJ•Ê“Àd¥H‘B®mß¾]ݸqCtpÝz™„9rÈfåÙ³gUæÌ™M±¼_ºtI~k5L“&Ô§X¬G}TÿdÕ~Ùw*P €Ïj1éŒ+?~|ÑcÎi;mÚ4Õ¨Q#Õ¤I_Ÿñô®Í™3Gˆ±víZ5eÊõÖ[o©† úê¼ôÒKªK—.ê믿VUªTQ‰'ö•;`“Ÿñ;VeË–MªÔ©SGt.X°@oj?¦°ž×®]S'OžTéÓ§"³‡Æ=9rDåÏŸ_Ú1`Î|ì±Éi½‚n>wîÜêƒ>PÕ«WW•*Uâ}Wß¡C±ÀóçÏW½{÷pÙ#FŒP[·n+ùÓO?©÷Þ{OMŸ>]ðä:sa„qb,~Ð1î­[·$d€œ“'O‚þñǦª§÷h#_Ó¦MeåW¨PA„«`™sbŸ§Ÿ~ZontáÂ…L§NZV9n‚a¿üòKqa;v츩~ýú*S¦LRkJ˜ 5jH?ÔË’%‹XNS¿E‹â¶±*”kÍ9Ê/ðB³âILòѲeKÅÂ@p…®Íô 9Õ”)S Q°ÒåÊ•+mˆH"Jpé•Eûûï¿‹»d¡ªà)EV®\)¡È?þ(Ɇ€eÅ…ÁH` såÊ%x3ŽbÅŠÉ(T¨Ì‡©ëåݳÛ5sÓˆYùÆeà‰! " òÙ1;E /.«‡[€¸”+F a(Éš5ë]EÄ}F†\SFŸ‘ îðáÃbå°tqîðáÃŲ°0 ùÁƒƒªâ:qcàØ‚U&Î">ƺñBp={ö”¸1ÔgîXW#Äy,Â#ÄiÌó0lØ0I^ g0k.]:ÓL擸ЈÑaν¼G›å3$‹l0¬*H‡ëÃá>Õ«W«fÍš‰Ëøæ›o„|¸ Ü ŒDä¾üW0ÖËéO8=„ÙôG½6mÚHœi®±ØL|‡Nb-ú¢®, ÷BHEÃòG&Ô%fó’ HáÃHU¶lYYÈ,f^XntÌ›7Oˆ‡[å:n=pîÏÃéÓMh#_¸?ùä“â¾ûî;Ãï³fÍ’ —l ×IFŒ«Àe`1‰±x2‚‡(”`%ˆw°h£F’˜Ñ¸~ÚÐ/zpùÄIÄX±"n•Œ.ðœ$—J¿gϱbX3ˆÂ"!Áú1éX2`HƌՄ d<Ä“þY"Ž=CÿÉøÐc‡ÔdµŒWjöù°Œ,2î#˜ ƒ6xp;Ü8õÙ…ÀÍbõ9Ç˰HI.bZ¢ÍíF6p³š +D€,Ê™X¯^½dKpÉr žÉ®Øª ì…^UJÜÁ1º9ǵA"&’É&Ë,Z´¨Z²d‰T‡\èaÒHÏV ±!ƒÿ9“ŽÛ#ã|ýõ×¥>áãøÏþãÛª`;…°_¿~R‡?ëÍ>±î!xçå/Œ»V­Z²ˆ}ÙnA¸Ò¥K œ3n‰ ÷ïÛA$xÆ‚’쟺äÉ“G¼±/°Ñ÷ÁBsŸþzè+ðœkÑ%!Ÿç‹®Œ&Ø@I&X™X!!³bŽ˜ÃL’)g‹ƒŒ’ë¬h&*p«…ìŽX¢°ÇÈž À#ÕϤ™ýFãÒM‘½3>ÈK–ÌVÄ &X,©YDL2$!Y1±p°vþרVºBrâ2tø ‹‹²ˆ>å`Ÿ ¸}K¼ ^!!$Î61»]/Çæ‘*0 HÈB?Ïç¥ÃPm™8öÏp±¤ú“U,f¸{Kf‚éáZ8°¶èÅ"G&X*ÿ‰úÁî7"=Lî<”’)X=Ü>¯`!ýÅ?.ö¿~?cÌír¸2>)À-à^Ü ñ ./PÈʈ‘‚ +¼páÂÁŠìµXB VÜn,Ý«í6ˆÈíÞHÄÂàl—qK¾¸;÷±~ç–|±>qw!³Gw¡±wø¢¨ïò‘‚ó£‹@t ÀV» ìyÊ=Ùn`{n¸O̶1ß}BÖªK¾È1²5î–|÷ X«6r,ù"ÇÈÖ¸Oüä´vèêšjIEND®B`‚mysql++-3.2.5/doc/html/refman/hierarchy.html000755 000765 000024 00000141176 13515046515 021466 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Class Hierarchy
MySQL++  3.2.5
Class Hierarchy

Go to the graphical class hierarchy

This inheritance list is sorted roughly, but not completely, alphabetically:
[detail level 123]
 Cmysqlpp::AutoFlag< T >A template for setting a flag on a variable as long as the object that set it is in scope. Flag resets when object goes out of scope. Works on anything that looks like bool
 Cmysqlpp::BeecryptMutexWrapper around platform-specific mutexes
 Cmysqlpp::CommandLineBaseParses command line arguments and holds the results
 Cmysqlpp::examples::CommandLineCommand line parsing mechanism for ../examples/*.cpp
 Cmysqlpp::ssqlsxlat::CommandLineCommand line parser for MySQL++'s ssqlsxlat tool
 Cmysqlpp::Comparable< T >Mix-in that gives its subclass a full set of comparison operators
 Cmysqlpp::Comparable< Date >
 Cmysqlpp::DateC++ form of SQL's DATE type
 Cmysqlpp::Comparable< DateTime >
 Cmysqlpp::DateTimeC++ form of SQL's DATETIME type
 Cmysqlpp::Comparable< Time >
 Cmysqlpp::TimeC++ form of SQL's TIME type
 Cmysqlpp::ConnectionPoolManages a pool of connections for programs that need more than one Connection object at a time, but can't predict how many they need in advance
 CContainer
 Cmysqlpp::Set< Container >A special std::set derivative for holding MySQL data sets
 Cmysqlpp::DBDriverProvides a thin abstraction layer over the underlying database client library
 Cmysqlpp::equal_list_b< Seq1, Seq2, Manip >Same as equal_list_ba, plus the option to have some elements of the equals clause suppressed
 Cmysqlpp::equal_list_ba< Seq1, Seq2, Manip >Holds two lists of items, typically used to construct a SQL "equals clause"
 Cexception
 Cmysqlpp::ExceptionBase class for all MySQL++ custom exceptions
 Cmysqlpp::FieldClass to hold information about a SQL field
 Cmysqlpp::Query::MaxPacketInsertPolicy< AccessController >An insert policy object that triggers a new INSERT statement if the object to be added would cause the statement to exceed a maximum size
 Cmysqlpp::mysql_type_infoSQL field type information
 Cmysqlpp::NoExceptionsDisable exceptions in an object derived from OptionalExceptions
 Cmysqlpp::NoTransactionCompile-time substitute for Transaction, which purposely does nothing. Use it to instantiate templates that take Transaction when you don't want transactions to be used
 Cmysqlpp::Null< Type, Behavior >Class for holding data from a SQL column with the NULL attribute
 Cmysqlpp::null_typeThe type of the global mysqlpp::null object
 Cmysqlpp::NullIsBlankClass for objects that define SQL null as a blank C string
 Cmysqlpp::NullIsNullClass for objects that define SQL null in terms of MySQL++'s null_type
 Cmysqlpp::NullIsZeroClass for objects that define SQL null as 0
 Cmysqlpp::OptionDefine abstract interface for all *Option subclasses
 Cmysqlpp::CompressOptionEnable data compression on the connection
 Cmysqlpp::DataOption< T >Define abstract interface for all *Options that take a lone scalar as an argument
 Cmysqlpp::GuessConnectionOptionAllow C API to guess what kind of connection to use
 Cmysqlpp::NamedPipeOptionSuggest use of named pipes
 Cmysqlpp::SslOptionSpecialized option for handling SSL parameters
 Cmysqlpp::UseEmbeddedConnectionOptionConnect to embedded server in preference to remote server
 Cmysqlpp::UseRemoteConnectionOptionConnect to remote server in preference to embedded server
 Cmysqlpp::OptionalExceptionsInterface allowing a class to have optional exceptions
 Cmysqlpp::ConnectionManages the connection to the database server
 Cmysqlpp::QueryA class for building and executing SQL queries
 Cmysqlpp::ResultBaseBase class for StoreQueryResult and UseQueryResult
 Cmysqlpp::RowManages rows from a result set
 Costream
 Cmysqlpp::QueryA class for building and executing SQL queries
 Costringstream
 Cmysqlpp::SQLStreamA class for building SQL-formatted strings
 Cmysqlpp::RefCountedPointer< T, Destroyer >Creates an object that acts as a reference-counted pointer to another object
 Cmysqlpp::RefCountedPointer< MYSQL_RES >
 Cmysqlpp::RefCountedPointer< mysqlpp::FieldNames >
 Cmysqlpp::RefCountedPointer< mysqlpp::FieldTypes >
 Cmysqlpp::RefCountedPointer< SQLBuffer >
 Cmysqlpp::RefCountedPointerDestroyer< T >Functor to call delete on the pointer you pass to it
 Cmysqlpp::RefCountedPointerDestroyer< MYSQL_RES >Functor to call mysql_free_result() on the pointer you pass to it
 Cmysqlpp::Query::RowCountInsertPolicy< AccessController >An insert policy object that triggers a new INSERT statement after a given number of rows have been inserted
 Cmysqlpp::ScopedConnectionGrabs a Connection from a ConnectionPool on construction and releases it back to the pool on destruction, and provides access to the relevant Connection pointer
 Cmysqlpp::ScopedLockWrapper around BeecryptMutex to add scope-bound locking and unlocking
 Cmysqlpp::SimpleResultHolds information about the result of queries that don't return rows
 Cmysqlpp::Query::SizeThresholdInsertPolicy< AccessController >An insert policy object that triggers a new INSERT statement after a size threshold for the length of the INSERT statement is exceeded
 Cmysqlpp::SQLBufferHolds SQL data in string form plus type information for use in converting the string to compatible C++ data types
 Cmysqlpp::SQLParseElementUsed within Query to hold elements for parameterized queries
 Cmysqlpp::SQLTypeAdapterConverts many different data types to strings suitable for use in SQL queries
 Cmysqlpp::StringA std::string work-alike that can convert itself from SQL text data formats to C++ data types
 Cmysqlpp::tiny_int< VT >Class for holding an SQL TINYINT value
 Cmysqlpp::TransactionHelper object for creating exception-safe SQL transactions
 Cunary_function
 Cmysqlpp::TooOld< ConnInfoT >Functor to test whether a given ConnectionInfo object is "too old"
 Cmysqlpp::value_list_b< Seq, Manip >Same as value_list_ba, plus the option to have some elements of the list suppressed
 Cmysqlpp::value_list_ba< Seq, Manip >Holds a list of items, typically used to construct a SQL "value list"
 Cvector
 Cmysqlpp::FieldNamesHolds a list of SQL field names
 Cmysqlpp::FieldTypesA vector of SQL field types
 Cmysqlpp::SQLQueryParmsThis class holds the parameter values for filling template queries
 Cmysqlpp::StoreQueryResultStoreQueryResult set type for "store" queries
mysql++-3.2.5/doc/html/refman/stadapter_8h.html000755 000765 000024 00000011303 13515046515 022062 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: stadapter.h File Reference
MySQL++  3.2.5
stadapter.h File Reference

Declares the SQLTypeAdapter class. More...

#include "common.h"
#include "datetime.h"
#include "null.h"
#include "sql_buffer.h"
#include "tiny_int.h"
#include <stdexcept>
#include <string>

Go to the source code of this file.

Classes

class  mysqlpp::SQLTypeAdapter
 Converts many different data types to strings suitable for use in SQL queries. More...
 

Detailed Description

Declares the SQLTypeAdapter class.

mysql++-3.2.5/doc/html/refman/exceptions_8h.html000755 000765 000024 00000033001 13515046515 022253 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: exceptions.h File Reference
MySQL++  3.2.5
exceptions.h File Reference

Declares the MySQL++-specific exception classes. More...

#include "options.h"
#include <exception>
#include <string>
#include <sstream>
#include <typeinfo>

Go to the source code of this file.

Classes

class  mysqlpp::Exception
 Base class for all MySQL++ custom exceptions. More...
 
class  mysqlpp::BadConversion
 Exception thrown when a bad type conversion is attempted. More...
 
class  mysqlpp::BadFieldName
 Exception thrown when a requested named field doesn't exist. More...
 
class  mysqlpp::BadIndex
 Exception thrown when an object with operator [] or an at() method gets called with a bad index. More...
 
class  mysqlpp::BadOption
 Exception thrown when you pass an unrecognized option to Connection::set_option(). More...
 
class  mysqlpp::BadParamCount
 Exception thrown when not enough query parameters are provided. More...
 
class  mysqlpp::UseQueryError
 Exception thrown when something goes wrong in processing a "use" query. More...
 
class  mysqlpp::BadQuery
 Exception thrown when the database server encounters a problem while processing your query. More...
 
class  mysqlpp::ConnectionFailed
 Exception thrown when there is a problem related to the database server connection. More...
 
class  mysqlpp::DBSelectionFailed
 Exception thrown when the program tries to select a new database and the database server refuses for some reason. More...
 
class  mysqlpp::MutexFailed
 Exception thrown when a BeecryptMutex object fails. More...
 
class  mysqlpp::ObjectNotInitialized
 Exception thrown when you try to use an object that isn't completely initialized. More...
 
class  mysqlpp::SelfTestFailed
 Used within MySQL++'s test harness only. More...
 
class  mysqlpp::TypeLookupFailed
 Thrown from the C++ to SQL data type conversion routine when it can't figure out how to map the type. More...
 
class  mysqlpp::BadInsertPolicy
 Exception thrown when an insert policy is too strict to create a valid INSERT statement. More...
 

Detailed Description

Declares the MySQL++-specific exception classes.

When exceptions are enabled for a given mysqlpp::OptionalExceptions derivative, any of these exceptions can be thrown on error.

mysql++-3.2.5/doc/html/refman/functions_g.html000755 000765 000024 00000007001 13515046515 022012 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Class Members
MySQL++  3.2.5
Here is a list of all documented class members with links to the class documentation for each member:

- g -

mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1MultiResultsOption__inherit__graph.png000644 000765 000024 00000021010 13515046516 031470 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÉ·¸îz´sRGB®Îé!ÂIDATxí]˜EöÀ’‘œ” ¢Ày€ A$üA9‘C9‚¦ÓSO”“¨?Pä<ð@Â)Áï$£€dÉ9J8‚dœv õ¯ß㪷wvfºYfwf¶ßû¾Ùî®z•~U¯^¨žÙ J©ïIH!p-ƒ(WÒA€â2 ‚€ ’àøH® @"$²bòÞ}ëÖ-š:ujØû!=3f¤–-[†¾â×ñŽ{||ù$}ÿý÷,,Û·oOZ ÀSáÂ…iòäÉœ‹3©«W¯àôp2ÞŽdºvíÞRVúœÄU7ÁàÀ• öï߯¶mÛÆånÞ¼©~ùåµaÃ¥°8íÌ™3êðáÃIê={ö¬:zô¨•¦5‚Z°`ÂÕN¨oëÖ­j×®]œŒ6õ"S[¶láþîÝ»—Ÿõbæ|ð­^½šÓL=zÇWè/ú±xñb¾š<\‘gúªßuÏ=÷¨&Mšp’Zuá®gÅŠj÷î݆U:tHeÊ”IiSZ+©¸¸¸$}0cœ={vœ ÆÈG{¨åï„ô9 ÷ÿNÊ„‰7‡sM˜;’5kÖ0ƒ øŠ²zÇU7¶žkժŋæ‹/¾PúÕe2€hÔ¨‘ª_¿>/F½3óDæÈ‘CÅÄĨQ£F1VçÎSz÷æúPþ±Çãû9sæ$’3fpz½zõT–,Yø¾bÅŠêÈ‘#\ÒêÔ©Ã  íèWp8òå˧þú׿òóÂ… ¹üÏ?ÿÌ}Ïš5«Ò¦•Åk¿éÙ³'ó¢ŸíÚµSh3þüV^}õUf×Z„ù0†O?ýTuéÒEU¯^óP8 ýÀµW¯^œg0nÑ¢÷*THíÙ³ÇÞ ÷Ñ$$éÖÜÊ;7;vŒ†JË—/'˜ZCФI“Hïè´sçNjÛ¶-eȦM›¦ç™èôéÓ¤!µoßž¦L™BóæÍ#­HkêÚµ+õíÛ—Oüû÷ïOZ3^¸téÒ%*]º4—ô§X±b¤wsÒÚ…ëêÞ½»Åª5ýú믜ÿÔSO±O¡wt· …›ïK”(Aݺu#\µàñÀñGz¡s2úB_ÿùϲ)5vìXÂgÖ¬Yì»há§o¿ý–ëfæÿýÁX‘Ö¤†FM  %K–Xlz#­iéҥ܃£Å^n‚Š{d¦T“¬[·Ž{ÝMÏ•?~|8i?†´}OÚœ Aƒq9h¨š5kryüÑBcÝû»)Uª”• Gm²ç¡ ЩS§L¶ßk™2e8šÉiŠ“Ë–-ËW_M‡v‚µ7¯1ƪU«&©˜BsÂX eÏž´bÓÕ5Ýš[Ú†v5QÏ>û,¿eüõ×_³©Õ¡C.§5 U®\™%B8WûôñdzÉV°`ABtÉ1k̳ïÕÖN.›L†Çž·råJN†IŒråÊÅa_í#Yá[ÃèÔ¢E‹HûV¤xN¶·¨ÛæÍ›“ôÁ”5W`AÒA“DZ“’vú“”s‹±UI”Þ¸[IQ:87ÝΙ3'i”úôéÃg 8ãíØ±ƒþô§?n‘"EXA+isŒ5˸qã˜özïÞ½ƒ6…ºá“@SÁiÖ¬™Åm¥MBÆaƱVªR¥ çkÓÌò—°@á£À 8}í\³&„ @Æ‚þä“O˜´Ǿ|+í|³`=ýôÓœ×Õ!侯¬£Ú$åïò ¾¨U«V|õÔGã1Ì )õILW/¶ÏaGƒ´£Íψ<š;w.§½ûî»&‰}D¥ôbPúû, ‘ Áƒs>¢a&¢…|D¨p…O‚°0î6Ñ-à û_›sjEEðI~ÿûß["D¡V­Zeõ!PtË0 âÿí™Ïƒ>¨´¦0,ì“hóŒ£[àAÚl´òÛ´iÃe‘¦ƒJ8O›cªnݺœ‡È|5}ØÈyÆ'1#‘@_†™ü‰&Ÿ$Ý…€ÌIÐd,L, »ƒm As>aÒqn¡wu>?ÀùÊCHìd„äÆÌ‹s;AHt´þÚ¶ó»ÇyÎ*|ëG„€ªEpf„³_‚Лó{ƈs8è8£ %E“Dü×wõâKU‚Ù„(Ì,½ 'kË_˜01Ì'2¼þø(À'¥„ÀSð¦"|,sÒaŒ&Hà/ß+iž÷Ià@FŒ‘â9×§Ö¤(Ù§±WR @Ò¦ ”=ÝÜ#<©IåË—§ *¤fé¾î¨ùŽ;¾¾Û¼yót?!^ u_~ùådƒô|Ç=Á“.yÏ›[‘6ÏÇ_ˆ´.y¾?Qã¸ã¼ï_¥gÒÑ#}Ê¿“ÞyçáôL°©S7øÏ”Ô4C@„$Í NÞЉiƃ„_'ñG0Á`ŠÁ$ "$áÞü™2%uØýu'˜Iæ_ÒB‹€Ihñ¼£Úðú‰þ9]Ê’%“õAT+sæý|û-#Q®;‚5äÌQóª|ÈGæ ½jÝúÑ$½€ùõÕWK¨S§ÿÓoç²òð]s¼ài~XÏÊ›4A â_•O"¤‘;ŽëßþL«Võ¤’% FH¯<ß ùú®ç—€àˆ€ø$Ž ƒ×!ñú ñ;" Bâ‘0x¯¯¿#"$Ž ƒ×!ñú ñ;" Bâ‘0x¯¯¿#"$Ž ƒ×!ñú ñ;" Bâ‘0x¯¯¿#"$Ž ƒ×!ñú ñ;" Bâ‘0x¯¯¿#"$Ž ƒ×!ñú ñ;" Bâ‘0x¯¯¿#"$Ž ƒ×!ñú ñ;" Bâ‘0x¯¯¿#"$Ž ƒ×!ñú ñ;" Bâ‘0x¯¯¿#"$Ž ƒ×!ñú ñ;" Bâ‘0x¯¯¿#QùŸ®²gÏN×®]s\´1d̘Uÿ¯Äû(>þ¨þ÷o7¢­ûŽý-T¨:uÊ‘/Ââ¢ö&¾ýöÛôÄODžÒ@Ì›7fÍš(;¢Ó£VHjÔ¨A­ZµŠhp¥s‰œ>}:j…D|’Äy”;AÀ/"$~a‘DA ’D,äNð‹€‰_X$QHDÀBÒ­[7jÚ´©õiÞ¼9½ÿþûtôèÑD$RxwðàA®÷øñã)¬Á}±M›6ÑóÏ?OeË–¥Â… SÆ iðàÁtëÖ-וœ?ž®_¿ÎücÆŒ¡Ž;º.ëUFOÉš5k‹¹ZµjüA¼~Ô¨Q„YBBÂ]Íýŋ駟~¢+W®ÜU=N…çÎKõêÕ£ 6Ы¯¾Jýúõ£¢E‹6€fÍšÑîÎU \“'OææâããéêÕ«NMK¾ŠBÊ–-›úæ›o\÷üñÇW­[·NÂ?lØ0¥g_-_¾ÜJ?r䈚={¶Ò;¶Ò»³•Ž››7oª­[·rþáÇ­¼-[¶p={÷îµÒ´à¨•+W*-˜Vš¹A=7näºpoèìÙ³êĉJ/\µnÝ:µmÛ6¥˜³õÁ©º÷Þ{UõêÕUll¬)Â×áÇsû£Gæg´}áÂ¥µ…Z±b…Ú½{·ÅèÐ!•)S&5dÈ®'..N9sÆÊ4F´àÀÆ`ß¾}\¯o?¬JÜ Ÿzs Ñɱúd7ú(BÒ½{w£ô 0зo_•1cF•?~•!CU§N…… :w_¿>ççË—¯½zõâ<_!?~¼Ê‘#‡Êœ93/Þ&Mšð¢ó²eËTTÖ¬Yù“'OäuéÒEU¬XQ•+WŽ2e!¬S¦Láº,XÖ$„ü *¨Fqz»ví¸Œ#K–,\NkÎÓZ„Ÿ1ÎO?ý”Û„à‚Qkb.×¢E «oXð{öìá²nþˆ¸A)„<)’bÅŠ©–-[ªçž{N=úè£, :uâ^aÇÅ¢7n?C+)RD½õÖ[ü >,°ýû÷óóرc™ñâÅÊ.$Øe±0Á}×®]\Ï{ï½Çå xÚRÚ/`Q»vmKÃAHЇÏ?ÿœµÀ‡~ÈÏhsàÀ|éÒ%®Ç÷Ï /¼ J•*ÅÉÔ3iÒ$ÞùM_gΜÉùØ&L˜À÷hÓI°1!yê©§¸ïK—.U¹sçVƒ òíJÀçhOø$zÑP®\¹¨|ùò¤w]öKp¯mß¾¦OŸNzW§_|¬ìë]“-ZÄÏÓ¦Mc»_/D~~å•WHïÔV>'ê?àƒSŒ²Z`ØO©U«á• ^œôå—_’BnS›EdwøK—.M;w&­…H (—ïåË—I/nÊ™3'§ùþÑ´e%WªT‰|­1}E½za[ùþnÜŒqÀ€”7o^ö~÷»ßñýÕ•ÞÒ¢öµ”;LªÞ‘­bXÌÚ¼!mËóB}ä‘G‹ÊöHÛë9:vìU­ZÕdñN3òí¤m~~ìСƒ=™Š/ÎÏS§N%m¦é—³ÐC=”,h§ÚÖ–|«ý*S¦ ój¿€ï ®p¾µÇ פC(ìäôb!¢cnÆhï^2Eß¼@‰«Â £µ UûôÛo¿q”EÛ ‡v®©D‰,8XdÚ‘¶ò°³k‡˜ó­D}ÁB½;wî$àÏŒ3¨ÿþüökÏž=YChûŸV¯^ÍÑ5{yí Ù­{Dµ I …| Ú*mFZYví„¨ÛæÍ›“õÕbÖ7Ø܌Ѿ‰ØË§÷{Ï‰Ž‘ö!ø³§Aƒ¤}6Kž~úi‚ÉÒ»wo‚ ´víZZ²d µmÛ–ç!V˜dÐÐ@C‡åtß,Á‡rŸ>}/ôéH¡n„oAرµ¯Ã×~ø´Ÿ`Y0C€?Ð$¯¿þ:éˆiÿ†BøŸÿü‡Ú·oOÐ’0« AÀµOÂc‚æBŸÑL9íç$k×íMžºô´"8#%Ž»žTvhq…s]¥J¥ÏJ¬Qöèу£Z‘‚G ˆÒ;4ç#V·n]N×»)G¦ôAç!, ~1bç›ö7nl…mõ™·:´–R&ÂöÁ¨®]»rDÍta\Ô1gÎNB8Î<únꆮUÙz8îZ¨8J>Dãìv›6m¸<ÒЦ>+r£qÜõá«éžzòÉ'•‰šY‰An¢Ùq÷D8ÈÜ%É™6ƒÔÉ“'“¤ã¡VD¯ôažÒ&L²|{"[XX&fÏCö³ àœ9h­Àaãõë×ûí„¡Z}¸Èg-8wñ%œÇ _º“1ú–uzŽf!ñŒã®wUGÒg„?‚¿³Ç éð(Õ¬YÓ/«oðî„`.i-èX>LåÊ•ýòÁäóGw2FåÓkšI:›Y„¶Sû™t™ãpDH!Š. „B‹€g¢[¡…Mjó"$6Û î_{°®§ÛîˆDØÔ~öÙOÖ#éŽüîV­˜˜¼úäû%}:?Z¿òq9‚zš®8½šVB^KtþîÖĉÓå{CóçÕ§ô‡éÍ7êß»7ä³î ñP4RTj’hÚMŸëÔHœ¦J•ŠÓüù]ÝžÔG N|’ÔÙU ;wgóöíGéС³®Ê Sê# B’ú»jaÆŒMúåÃÛß ‰‰ÉDxŠ DH"cô3¬×?æpûû 7õ¾ë"¤gÒ ’XëÖ “'/%éÉÁƒgô÷RRÿgŠ’4*~!ñ KÚ&ÚM-Ó2L¯éÓÅä2x„ó*BNôuÛ7oÞÒßßh™Z¦;0½¦LYoåFDHÂ>š^¾|]ºäÿâ`‚Á /"$áÅ_%x£þþzâ/Ø»sÛäÚhO’û0 BÐM“×®ÝÐ'ìÛô÷âýÿêL.ø%0Ʉ‡€Iø°§… wꟺýãÕºSlÙ²=²%= !I5áÆ1ǯ Á± òÍÄ0aS*6öšþúí®C7âãç#¥Jҿߕ觜9ÿÙL~—+LCðL³ò‚cMõŽÇ©qãÁ´jUO*Y²`õÌÓ]‘==ý2xWˆOâ &aò2"$^ž}»+DH\Á$L^F@„Ä˳/cw…€‰+˜„Éˈxyöeì®!q“0y/ϾŒÝ"$®`&/# BâåÙ—±»B@„ÄLÂäeDH¼<û2vWˆ¸‚I˜¼Œ€‰—g_Æî W0 “—!ñòìËØ]! Bâ &aò2"$^ž}»+DH\Á$L^F@„Ä˳/cw…€‰+˜„Éˈxyöeì®!q“0y/ϾŒÝ"$®`&/# BâåÙ—±»B@„ÄLÂäeDH¼<û2vWˆ¸‚I˜¼Œ€‰—g_Æî W0 “—!ñòìËØ]!ì?]­Y³†>ÿüsW……)´ÄÇÇСC÷èw‘2g–ÿ¸ZtÝÕÖ£Gzä‘GìÌqÉþgâ‘#GhòäÉôÄOØå>È›—èüù4jLš±¸yó&­X±‚^yå_!¡dBbJ}ôÑGæV®‚@ºGàêÕ«ô‡?üÁï8Å'ñ ‹$ ‰ˆ$b!w‚€_DHüÂ"‰‚@""$‰XÈ à€Ž»_îLœ?>íÚµ‹:uê”j½‹‹‹£~ýúQÆŒ©oß¾”5kÖ$m 8.\¸@o¿ý6•(Q"IžïÃàÁƒ©ZµjÔ°aCºvíݺu‹räÈAˆ*~ùå—ôÁPþüùiÀ€téÒ¥$Å *DµjÕ¢ºuë&Iõƒ½±±±”-[6’Î쪙ٳgÓÒ¥KiÏž=<®2eÊгÏ>KU«VuU>&®*H¦¨×$X\Û·oOh«¼~ý:­_¿žÖ®]K8G²ÓhÁ‚œåD[·n¥ß~ûÙ°!`  ",J)~Þ´i]¼xQŸ™”âÏý÷ßO¿þú+õîÝ›~üñGæI­?ö>¶hÑ‚~þùgWMýãÿ !C†P¦L™è¥—^¢æÍ›Ó‰'èý÷ß§3f¸ª#&®*H¦», 83&ÿþýÜML:ÐîÝ»)!!ÓNž<™lw<}ú4a§6„hÇŽ¼`L®X@,ì6hÓ—._¾Ìu¡½_~ù…wgÃsãÆ :wî?>|˜vîÜIH3„ÅÏ‹i¾ÏHÃnºxñbÜZ„gû.‹:Ñ7ŒßЙ3gÈW€Ì80ä/^œµT^”üp¨õÖ[oñçoû}öÙg”;wnZ²d‰aáë©S§x¼¿/={–6nÜH¸‚†²?cîÌ\1_ àü ù«mLŸ>:tè@Ÿ|ò k¶mÛÒˆ#X‹|õÕW\O°ypƒ Ö 6ª½{÷Z ú…tÌp†ã9Tt׿־}ûØÌÀ„nÙ²…ûU¹reÊ’% Ozè!6lõïߟbbbè‹/¾`>˜( ezöìi AÁ‚yQ<ðÀ<è^½zA† ¨lÙ²„…>wî\®ÇüA½²óú4“ aiÚ´)uëÖµvá*Uª°€ uc烃û½÷Þ£¡C‡òa’ý| °.[¶ŒëΞ=;§a—EúÂ… ùÂ÷î»ïÒ÷ßÏõ"§¸5jÔ ×^{yðgܸq´jÕ*~îÓ§½óÎ;Œãwß}GE‹µøì79sæ¤{±E:ú“»7ûÏþ3½ð ,¤0Ý0`ÞÎ;S³f͸mà4|øp®Ò¾}{úúë¯[Óæ›o¾ÉõŒ9’¯mÚ´asÐ_0³òåËÇõ˜ò¸byã7èõ×_§•+W2O y˜8qbPL¾ùæÂ'W®\, •*U¢?þ˜7˜º˜§mÛ¶ñ†Mªk×®<^{RrךÄ4Š ÄI=:‹]“‚…‚Å…sðàAjܸ1‹´|ùr^ô 4 o¿ý–ÀF=°Ëg͚Š}РAT®\9Ÿ)oÚ¶_!<ðOæÍ›ÇÂAÂä‚ðÁ\™0akµQ£Fq&Ö,Pßg0=öØcÌk76ˆ£G¦èíü’:uêðnËûü) ­Ïœ9sx“¶6‡^ع!œX(o—.]x¡ÿ÷¿ÿe¿&"0ŽXàX`ÆœóiÊï#ê‡Ö½{wzþùçƒÖ‰¾bóÂæèK¥K—fa1f&òýÍC0L°¦þýïóœb<˜¿cǎј1c¬æ0ðë°î°þðÃVÞÝÜ„LH°aàf!aÇÂmž±[Õ¯_ŸA‡p€° c‡Í“'+VŒM3L*4 v9ìdP«( Û¸H‘"ÌíˆJ–,I5âvÀwï½÷²&2ü°•áx£=äí‡gìxFH|ŸQ6ÆcÌ\±Œ¦1m„êŠ8às¦0ƆZ´h•/_žÓà¯`‘ÂÉ^·nÝwß}̃rØ]_|ñEÂN MœR V'ÌFìðþèÊ•+¼»ÛÛ4þÊ# ¯Œ`#nÒ¤ ³`~ÀF†°yT¨P (À„(t׿–év~Ô>ƒ`°ƒAjÖ¬É;L,Ph„ 6)´ÈèÑ£YÀg´L6C–@d&ÒäÃÆ7u Í6ï„ õàlÂXS/PJèü#û#¦,4LGhB˜nð`VÂL5„… ̱X°3Ãa†ãŒšòå—_6¬Ö~¥ V'p‡6ñGðW`þØçæNçcÅ&ÍfkÎ>vã…¯ Jlñ.k3ÂàT L.&v=Ì Ð† ØéƒŠ‡ -v.ÈîhÚÕ6gÚþÀ 6„Å MdŸ{=PáÁÎÔc¿B“`#€ê?~ü8Ahìdp€¹ 2N±'¥÷>ú(k.´ ‚V©^½:o,Ø\𩉠&´|Ÿ)S¦nüøñ'}4ÁÔhq#ÏNÁêDˆ掿HãêÕ«ÙÜÂièNç@Ý\„_eŸ?ƒ½i#T× ‰ÛÕ®]›M‚±cÇòd67ìID%Jj“ Q˜Ø= 0Áؽ1°I€ƒŽö*ƒ1ùPí-€ç ø2aíûÌLúú„2S§Ne³ÇhL“( f"ÞŒá1W8Ôj{tÏäº Ã,1œK`¼ÀN1òjðÃ?dÿ úá†#{,8”ƒ€ÀÏ Dè#6%Œ!X0‡±±!H@Ê€>ü%ø4jCæ!&˜CDåL9ø¹›7of¿ÎÔ™Z×™[N4R¡ÀN‡Ú8 (‹ˆ Ðà`(ØùˆNÀðÈ{æ™gx|ðÁy’M›¦nâjîÑ>7L#_²›&&vf„eÛµkÇ ñ£>âlÌ0˜¦Ð"À¸cÇŽ,°çù‚Àô å`–`ði ÙûMm„9yî¹çÖ‰²ðdAجôŠv 40ïŠñÂaŸ4i›oèwË–-¹Zƒ©iÃ>“–Òk²/]alݺµåœ¦´â`åàˆbÄ®`'˜&8=‡ã‡ÛN°›±ë!; Á7Œ(ltœŠ:tˆpgÎ0àøa—Å¢„}‹É3¦œ½PÝcgÇxŒ¯¨^3vxl)%˜PÐH/BÄv‚F„ã ß.t0[ éÐ?J0‚@B³CP@ê4u@“ASAë¡Oöìf‚a\!`X¡œ?¬ln°h|üÌä_º2M+‡h:‚s_ÂbAìÛAá7„z°“"»ˆçnÓ±@Üï¢vSÆ—§pá„?òÕ‚† ×w#2y¾W_AT§) Žs/' 4Á0®n±ujßm~š™[èL˜™3g²Ú4¡<·µóÁä€ÉåK°µqêêlÅŠýeIZ"ós+ çDš\!ÌÜJóè–« “ AˆDÐdHW"’ÈœéU!ÐqG ]Hð Á^aI&$ˆk·jÕÊ+ØÈ8 ¬{añdÑ-«„Ü‚ˆŸD‚ à€€‰@’-ˆÈ!qH²ÿ£PžE«hIEND®B`‚mysql++-3.2.5/doc/html/refman/bc_s.png000644 000765 000024 00000001244 13515046516 020223 0ustar00tangentstaff000000 000000 ‰PNG  IHDR€_ kIDATxíËkQÆÏ¹É̤I&“¦mš&156*nÄ…”ܸR,4 +Hµ(U­b”ª1‚ŠˆJ.º(E·mßúhëJmKS'C›(‚èäÑ…¤ï &äÖþ ‡ïrÎåü3gö(z÷ýÒ&_9ó}’ÕŸ@‰mÚu ` Øh`ñ÷Ô¯  „ú&·ññ×Ù~“½—Üò‡ÎÝÑM4¸%‰3²§?Êêh)€ÿù™\ÄYi>Jb @gûßiÞˆú²Ñkg§ãê\è½­šEUæv+?E€î"pæÖÛB\ƒY&ðØó$vM+ê’Dn¼)}òþ:§Xoâ ƒ3ŠÚ¯'¯¿.‚fÁ0ìuŠ9òLýj€f6¸%«3Gf”Ô#Ôsm(,ùÃk*Ê’³Jª…¯¼JË¢o䆔¼u_~ °r]%%mnu]z°r5[ÍÆ°«Úò•Xeµ’†Iù<ÈèÐÅg@IÔÚÞàµë3‚:/<JÇ’ÐQ) ñ¹…tÚß÷(Mû\63éCgl!ýí;ÿ¸4Ùhâñ=÷Zë29­w’ÝÒ´·ˆV;ÊL3ƒj&7©·º½÷a!I†)ëë$-öÇÓú³›‹7tIV¾VàñÔübf¨8¡ÈƒB<﫵imnÿœÈ‡„ lߣù‡ÛD —#É5“­'Æ4?쬲øM’™›°»g¬‚|5Åçµ½GNdÓÐr|ô”Ã&„ì"7+'³@ 5‡G➑Džâɬ^;õã–.3Òr"ý_R³¿Â@²oI¾å$IEND®B`‚mysql++-3.2.5/doc/html/refman/nav_g.png000644 000765 000024 00000000137 13515046516 020407 0ustar00tangentstaff000000 000000 ‰PNG  IHDRô1&IDATxíÝ1 ÁOHf„á_ ->~¸åM iËMèÀƒS½ü‚<IEND®B`‚mysql++-3.2.5/doc/html/refman/functions_func_z.html000755 000765 000024 00000006131 13515046515 023053 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Class Members - Functions
MySQL++  3.2.5
 

- z -

mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1UseQueryResult__inherit__graph.png000644 000765 000024 00000023453 13515046516 030621 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÌ·^DZðsRGB®Îé&åIDATxí´E†/QDDQQÅœ0a‹ù`Ä0`Zs\s èêêšp¨è®®Ȭ`Q‘ $$ƒ 9H®½ßÕû 3óÒ0ýf¨{μ®ð×ÍÝ3¯’sî= ”¥•T`\IZ†6€€,¨@JŽ@˜’cZ$L`‚€@)¨šÜvêÔ©2`À€äâpXï8ꨣ¤^½zE×MÐ¥÷Þ{$@ø Ö{øè£¢¢Áùüµ,Œ'­ô§áX¯X°`lºé¦)×b˜”°„€@j‚À¤Æ%”R"&%,¡0  0©q ¥”I K( ¤F ïæÍ7ß”n¸!õê²\úÝwßÉ\ ;í´“l¹å–rÌ1ÇÈã?.kÖ¬)ÑH«V­’¹sç&Ú^zé¥Ò¹sçÄõº8‰â3lØ0iÖ¬YÊÏW\±.†/¶Ï80)vRä½ÀŒ;V¾þúë KÌNÕ| <ÈúöÛoåòË/—|P¶Új+¹óÎ;å”SN‘•+W;Ðÿþ÷?Ù|óÍm—.]*+V¬(ö¾ò4ˆâ3{ölùðÃeã7–m·Ý¶È‡µÄAq`Ržu¦}SÒN—/_.3fÌ ÈäÉ“eñâŲ÷Þ{›Ö5j”P߸qc©V­šÕתUK6Ûl³D÷¼Y@™Ï{£Åý=m´Q¢ýŽ1BvÝuWÙpà …Íoذa¢ž“…  ÏjÖ¬)ƒ ’-¶ØBvÙekcΛ7Ϟ܎3FæÏŸ/ûï¿¿T¯^Ýê¹oÙ²e²ÁHåÊ•­0 wß}wéÛ·¯Í—›®¹æ9âˆ#äú믗7ÞxÃÚÌš5K6ÙdÃù²v„„¾¨ƒ&Nœ(;¼ôÒKR£F +ãk2dˆ}ÀcSŽUbuêÔ‘áÇÛ={챇T©R…j#¬¤jÕª²×^{Ù|]òñᇖwÞ9¹ØðáÄ6ÛlcûEƒéÓ§FuëÖµö“&MöõÀ_æ;š2eŠPÏšk×®í‹mÝq`_Ž9RöÜsO©_¿~b>å:QF)BþI‘ ´'ÂG}tâÉð‘GéŽ?þøÄõ¡‡ê”aÝa‡æš6mšèMÈ馻çŸÞ)#8§Âã*UªäTºÑ£G[Û~ýú9e§Œlí›4iâT˜¬î¾ûîsûí·Ÿ·hÑÂ)S;H§‚`ã«5°ºîݻ۵Z‰Dmu“­þÓO?µúÏ?ÿ|­ku›¬î“O>±ºèeT§BìŽ=öX+fÜÃ?Üæ©J©ðº.]º¸>}úØüu³¬îçŸvªdÜc=f÷}ñÅNÝ<[— ‘Sa·{¨¼í¶Ûl]Êäv/}œpÂ Ž±!îU¡t*ìöQæ4<©‹âóñÇÛ:~üñGªÖ¢/¿üÒæx×]wYÝW_}e×~Ž÷ß¿í ã°çž{®[½zµSç.¹äë›5³§>úh¢ÿ\cœN<ñDçñW%â^~ùåÄ|Š;QejkIõ¤mV„Ê*0§Ÿ~º›6mš{úé§m0S­‡ëر£]«ös/¼ð‚ýË/¿Ø˜íÛ··Eýúë¯îì³Ïvª­mèG5¬»ùæ›MÐvØa§ñ‚SíåÆgŒ–N``&Æ´×^{ÍÆîÑ£‡ó£1ˆSWÈýôÓOÆ ]t‘Í…ku¯Œ E¯yäëG-˜Õ%ÿ¹ð s„`Ž­·ÞÚ©qK–,qgžy¦1ó¢E‹\×®]­”ä†Û~ûíRÇ5çªéZ&ÖõÔSOY}ëÖ­­Ÿ &X?èi§æÔ‚Ú½(&˜J%0§žzªC¹D?(  `x„G­³cÁ¡d(7®ý¾öíÛ×=ù䓦ìÙ³§Ó˜Ä½òÊ+ÖV­¼õ™kLÞ}÷]eøÛo¿9Xzc“Êð''ãÁA{¬›6%5ñvÝ­[7‡` õ/¾ø¢ÕwÜqŽÍƒXšæD¸`>ß|óÝ–öÔªU«´FÝßÌŽ52†óã­•Œ‰%+Ž`:FIEh3MXÌ¡ñM¢™ºX6}¡5­Àx+­qRâ>oñÀ Ã:<Íœ9Óúô!G™°ï¼óŽSwÍ”íS ÌYgå.»ì²"/0(²^u«Lðéçoû›YnÎ=!4#9,þAäX+óÌSð8ä“Áƒ›%<ÿüóVÅ…à””2 L¹c#4*Ðví}du¯ìZ'k¾v B-A¢žL±PqD¼A6GÓbh{â-Õ¾–ðåÑ1ŠÎÁ·óGb?ˆ¸Å“÷¹UÉXsõäã`+Re"ê.Y¬AlÃ\3Ñ?þñ”1 ÷Ã]|ñÅ¢ÊDT$°fŽ~O}ßd !ââ/µŠ¾ÊbR¿÷æ`QKhu]-¦½ãŽ;¤M›6‰ù•õ$kY2å’º@¢q‚¨Ù¶àY] »MãÛtu×,ð%‹ƒàxF!€ó¤®ˆ?]ëHê‰,ÔСC›Ny´^}ô"uþ¾ä#Ù1Á³Ï>›\%Ÿ}ö™¨öu½uÑ1ú÷ïo噄Ü+’žþ!uÕìe>+øã‚ˆ²¹öÚk-9ÀW3TÛG›”êÁ )@rÅÆ¾@¼æNÆä„¢øë_ÿjYCuAEcV!è÷°:çœs¬-r‰‰ZK<ýðÃ6îu×]gkbn奒qyyG‰Ü¯.˜ýzà P¯-;tè 7Ýt“5CK’Y"Ûµï¾ûZ¶ë¡‡²ÌY"}"==…ѰZX+´®ºuròÉ''©;gýtêÔIÔ ±”0•0ã?ÞÚF¯±0W]u•<óÌ3rûí·[¶ðÕWÀ>ûì#êâ$Æ@»©k*l÷l·Ýv–9R×ÄÚ¥Ãâz²`Q`Tî!ƒGLcG01 Í‘4­ÆlÓÕ(¬^½zù¨{gsjÙ²¥Y²ŒdI¡3Ÿ3Î8ÃŽ`ŠòB[«›m™C”X"`àÎ:hOVÒS.1!3†ƒ²,# ëYnJöëÊôàC¢:)‡_(sM á‰ÌeúüÄYPIL† ŸWS“¿Ògæ?sÙuÏŠÄ0š¶v±Ê`‰¶dÖ|¶ÆÇ0ÜK?øèÄOêJؽ>fPfJyM0K°Íܸß÷¡ZÔÖh7éêÉÚ8Ó†Lœ_§º–h \Ó© %²dŒ¯iZ»‡5éÆ[·Äöž¼Ý»wo+"Pg\îSKæî¹ç[ßÝwßm1ŒÇ‡,ŸŸ{ò‘$ÊsÏ=gõ¾_âQMá;"§mÛ¶6÷Si*ÝÊI¢Üð}úXÔÏ7ט³¬`>Ì…ì£>`öÓ)öèñõ1bä†ùh•"TZ)rs /n½õV§ÏjÖj­ÏœjºäJ‚6RÏ Ù/Ÿ%‹¶C`š7oîèGÝËùz/0ÔÁ¬>SçëKz$Á<,a”d‚9†=š`ðíªI~¤"ÖHÐL .Áê>Êè“û<‘²'3—m¢ÏtiiuçLÉés£"ÃÆ… ø“)-–™&kA¿Js±„»ƒÏûÕ®]»µÚc65%ºV9¸n<+ ÑOÓQrb ]»Tåšå+Ñž|²Á_gëÈCæäàß÷ÍÃk>é(טì¶Ûné¦Ræòœ ñ‰>‹uDt•yÒ$R¶<Õ'ÐOE0™¶tÁsª{ÊRÆQÆ-K…vO!a²Öù ëC/ mãÂz%AÀE™Dié…ò‹€NÅ"ó´r±3 4}»TŸíÿös€*÷¤apÍŃ@ÿþ3õ쪚øý áxf±þŽš.‘´C(êÖ=OB.×'÷Ýã™@5-kýi[†Šœ 0}ú|iÒ¤­~×¥²|ÿýCúÔ½fNÆ ƒ”ô—¦6êÑc¨¾Æñ{h٫ןï–åp a¨ „ ?8qTuê4Xô[–ÖïÔiPScf@ Lpr]5nÜ,3f† Ëš5Nž(3g.Èõ4Âx“œ\Wuïþ~—þÏïéW©RIzö–ëi„ñ2 &8¹®Â[¹ò÷/…1öêÕkô+Á-Ëõ>d/L&trX7|8_¾úóû# ÍWfFž®ßôüý[—9œN* A`Ò“ëânÝŠºc~üªU«èµ~ÿö¥/ Çøö‰‘õË#ҥ˷EÜ1_¹jÕj Ù2FüÇ 0ñïþ‹ÄñúÕÞÅig2iÒ\}ˆ95m}¨ÈA`r‡uÚ‘ºvR$;–ܰZµªÒ½ûÐäâpA`b=:$Y±ž=‡¦tÇ|»•+WéL ö—á#A`bŸ¡ûö£¿éµÜ,LõêUô·ÅªØ9ÏcªW¯jÿÙ³ÉÀ¿ÿ¢MÌS^¯‡Oû¶òzJ_»v iÛ¶y‘;v¨¿aPMëìÏö£(^ÂÛÊñâŸrô–-;è/÷×Ðl‘²>Ɔ@x[96èÃÀy‰@ˆaòrÛ¤ãB L\ȇqó 0y¹maÒq!&.äøy‰@˜¼Ü¶0é¸òaܼD L^n[˜t\‰ ù0n^"&/·-L:.‚ÀÄ…|7/“—Û&A`âB>Œ›—ÉËm “Ž 0q!ÆÍK‚Àäå¶…IÇ…@˜¸ãæ%A`òrÛ¤ãB L\ȇqó 0y¹maÒq!&.äøy‰@˜¼Ü¶0é¸òaܼD L^n[˜t\‰ ù0n^"&/·-L:.‚ÀÄ…|7/“—Û&A`âB>Œ›—ÉËm “Ž 0q!ÆÍK‚Àäå¶…IÇ…@˜¸ãæ%9ÿdÕªU“U«Vå%X¹štõêõĹ5úbgçjȼgóÍ7—_ý5—s_Ë?M¼ùæ›åðÃÏåBÃX†ÀÇ,ݺuËùªb˜ƒ>XÎ9眜/6 X8Ì™3' 1LáðPXI“Ã…ƒ@˜ÂÙ˰’ & ‡! X‚þ|oâĉríµ×J‡dë­·^gÓnß¾½tïÞ½HÿµjÕ’#7ÜpƒÔ¨Q£H]6/®ºê*9î¸ãä¼óΓ¥K—ÊêÕ«eã7–ùóçË\Pd¨M6ÙD9ä¹ñÆ¥J•*EêÖ—‹`a2ìô‚ äÃ?4FÊЬÜU#GŽ”¯¿þZöÜsÏħR¥JrçwÊi§Vîþ3uЯ_?™0a‚5¹òÊ+åâ‹/¶óeË–ÙÚ7Ø`9à€¤qãÆ²dɹõÖ[妛nÊÔeA×Ux 3uêTÙtÓMõAž“ï¿ÿÞ6Mœ1c†Œ7NöÞ{o«'͈†lРAbÃæÎ+¿ýö›l³Í6VÆ=0'ŒY¿~ýD»5kÖÈ?ü Õ«W—ÝvÛM°,ÉeÅŠ2oÞ<©W¯žŒ3Æ4ðþûïo÷ÐѬY³ ¼xñb1b„1Ö<-_¾\*W®,<¸…’¯ëÔ©#O<ñ„onÇ /¼PÞyçam¾¯… Ú\YSÆ ‹´‡É<æ¸Ç{BǼ§OŸ.Ûm·Ï \o¸á†Â˜ž/ê™+tÑEÉÙgŸí›É‘G)]»v•çŸ>QÆ}ß~û­ì¼óÎká–jNþÆLkñm*ÜQ1§TµjU×±cÇ©à=ôP§Ìì<§Âãn»í6§Ì`×µk×vÇwíÚµsºÉnæÌ™‰¾=öX×´iS§n†;ñÄ2««Y³¦c/¿ü²µS¡r‡v˜õÅýêrØyï޽ݰaÃìü§Ÿ~rê2ÙùQG•˜Ëî»ïî¦L™bý0?}ëÔUIŒÓ¥K—Ä\”9Ýu×]—òZ]§ÌŸ¨ó'÷Þ{¯õ§ŒeEo¾ù¦ÍŸu€Å 'œàÔu²º§Ÿ~Úm´ÑF<¨;ùä“*§Ä®Uñøn º£oH™Ü=òÈ#67)¨r±û:uꔸoåÊ•NŠS.QF?¬ÝË^7”nNÔeZ õÅÑ‹/¾èT‰×,ÛõóÑÜ9¥²ÌV[må àFåÔ·wêÓ»þýû»_~ùÅÁˆl‚³¾ð ¶Õøvýꫯºwß}×6æV êîºë.§ÚJ] ëãÓO?ujœjuk›N`Ô¯wjÉB´å–[:ÕÀ6L£VÉ©urªqÝ™gžiºhÑ"«oݺµÓ'Ó ¬£× ›Ï<ù¼ýöÛ6GÖæûWkjŒ©oI8uÝèÑ£Zwûí·; \žzê)ëÿ‹/¾0åñÕW_•X`¸‘µ~úéÖ‡£ÜYgåN=õT·ãŽ;Z¿ô!„˜#$cÇŽ5eÔ¹sçŒsÊ´ë¸â˜ ï’a’q 6!Ý4sEÔ*Øõh.nÈñÇ/ºY¨óÚ„ §¹ÊÜæžÜqÇrùå—K«V­¤M›6V¦V@ÔúˆZ#ëO…OÔÚyª?Ü‹;³ÓN;Ée—]&o½õV¢Ù5×\“p“î»ï>s]põ˜;ãE)ùwø"ðž={¶à**£ZnîUóæÍÍ¥Pµ¹|ôÑG¢ÂÜN’uëÖ5pOY¿*»¿¬TYÉ.»ìbsQ+bî!88P¶Øb Q%fx¨‰Zzså¦M›f‰ ÜÆTsRÁN»–Ǽ¬SÍÉ}y!0Ñxƒ_Ù~º*$»lÑ¢…´lÙÒ˜M] c6âŠ&Mš˜Ïß­nŒ¨[&lºjyasÉFyÂ×ÏD;ì°C¢Z-Œå ¢u0DlS"ö"vò¤–Éâûï¿_Î=÷\™4i’Uù Ü·ÛvÛm-.RGR²^ÖGaA»o="L%¥äF-½ ¬Dp½å–[Lh™ñ$B ±Oéæ”i-%W\íòB`Š’Ðgœ!hùW^yE>ÿüsÁz@ƒ¶ÍDÛø£á~øa¹âŠ+L#«;—èÞgŒI'Ä^0ÔåIXšQçÉköäÀÜ×w$µ{õÕW›PÓ¥¡nŸitê !C†X"‚ù3o2z$8¢<Ô•ýöÛÏÚRa½~þùg;/ˬ Ęÿýï…— ±.$x ¯O7§Lk±›+ðŸ‚J+kÐk. n׬Y3ƒžÌ™˜× …&$Û†Åyýõ×-{FVíȸ]ôÍ3 ,˜Æ=rÊ)§$ÚcÁ~üñGËb=óÌ3–™" iÜd.šoœ|íË£GÜ+Ü22oŒC2>îZ¯^½D{ùàƒL.½ôRyöÙgÍÚ"$hx0ðÖXp³R¤ª½ðDÇâœ{zÖç‰ÌdŸ>}l­¸~Œ‰ÐœtÒI&|dÓ°´¤à±pdÌ49qN™ÖâÇ­°ÇÄWYm¢ŒZª,™ºH‰`–‰hÌb®ŸÙ/‚UOÊ@´««à‹,'»¥›` ‚uõ•­ždÏŒQO¦‹#A?Ù7ΣY2ß–u“(€ú•Q-ÑÀ=dÐ4ÅkuüÉ”%Óç)³dÏôõÚk¯Y?×*äVF¹ÆlÎ'Ú¶mkk£ž2¥SÁ°ûÔ’Ú=èà°×^{9en«ÓøÄ=úè£v®)l ÚÉ¢ cD?¬á˜cŽ1\¸±õµ!á˜cYb@­ºË4§Lk±Éó'® ¿ÂgÉŠÁm­j˜”M&‹”L” 4(‘öôõ¤_Çï&OžlÀýL”|Z™Ô*mÉÐE !]Nš7ÕØÑ¶å9'C¦·Swg­nôËTŽ –OCGPGæ«8"ÍžêþL÷‘£O‹9µ†v™iN™ÖâûJwŒK`ò"†Q.áZ©66WŒÉ”ªŒ6ÄH5²æ¸Å‘o›ªI>ëŠp‡¢IŠè8<Ü$–HEþÁgªºh™Z‘èe‰ÎÉ¢E)·ešS¦µDû«HçÃ7 jîËŒ1ïH‘®õÁ«ïˆ'=œ.A]I™Ò÷Žù‡@AY}2_îàEG^/I&Ò´¤TÓïd*| ÊÂþv…Æ@˜¸w Åø«W¯IQŠ*A`*Â.$Í¡_¿±úöïĤÒpY¿KVv!iuê4Ó–Ëõa`Ÿ¤špE€$‹¦­£Eëú<÷¿KÆ÷;xz(5+W®‘{î¤o"T–öí¯Ö—KöZPêÞ »”75rM9Ï’é«â¹^c^׳ç0}f ¾^²F_ãi,M›®ý<)¯T`“ 1LÛÐ.]¾ÕïËW6 Óµë 6»0 0ˆ.\&}ûŽV ³Æ>ï¿?B_” ¿C]¶H‚ÀT Ýxÿýa‰ïö0­åËWè[Â#+Ð ÃT‚ÀT èÜù[˜?'Äk:”ª8© {1kÖBùæ› šAüSbV­Z-Ÿ}6J-ZVAf¦¦‚ð@ÃR¦ Þ½GTY†i© <ðÞ{ƒR>Ÿâíèà–UMÒi©{1qâ¯úéiEâ?-Þ+0`œ>Ñ^ì‹Â1F‚Àľº{÷ï칋¿N>bezôš\®c@ L  '‰;Ƴ—tDÓ©ÓàtÕ¡<‡É!Ø©†9rºLœ8'UU¢L¿×®¿×ø`9÷Üs5 [Ý׳gOùꫯŠ,aà 7”=öØCÎ8ã ©^½z‘ºl^|üñÇ2zôh¹ùæ›eõêÕ²dÉ©]»v6‡HÛWnQN;u[1|øp™1cÆ:dܸq2bĈµÆøå—_dðàÁ²fÍšµêJSðÍ7߃üüóÏròÉ'ËW\!›m¶™´oß^î¹çYµjUiº+wÛ‰'ÊÈ‘#e‡vH|*Uª$/½ô’Ü{ï½åî?SS¦L‘~øÁš N?ýôœ­?'föìÙR«V-qÎÙÏ]vÙÅ4М9sL+ó<‡ú ÈòåËeË-·LàµpáB+Ûb‹-¬Œ{جí·ß^6ß|óD;fªV­šl·Ýv2sæL«ç:JóæÍ“6ÚH~ûí7› co²É&ÖMÅkÔ¨alÓM7• $nG›ññÚsÅŠ¦Ù«V-ŒéÖÀ@³fÍ„Œy1OˆqþùÏ ¸a-ýø§všì½÷ÞòÌ3ÏÈG}d‚^+W®L`Ã|ÁüªT©bý±N°ª[·®>ÝÊÊøC;ƃɓ'K:uL(ýxÌcîܹví7Þxc¹öÚk9M–´OŸ>¶—Q\SÇMô ó3{ŠÐ10‚¼å乚1=q/û ±ß[o½u¢½o“ícévºŒ£_ýõ¶a¸hB6夓N’N:Y5kÖ”ýë_2tèPyá…¤sçζQT¶mÛÖ˜”Ü9o|÷Ýwƒê­·Þ*§œrŠåÔѲh<ßm·ÝŒá}ôQÁe‰î õ£F²¶ô…F<ꨣ¤]»vÂÙй6kÖLî¼óNë‚ú/¿üÒ\, Î:ë,9öØcå–[n‰‘ö¡N·ÖóÄOîŒ ÓbE.¼ðB0`€1jëÖ­ÂâA»víÚÕ˜Ëóúë¯Ûžþyk#]tÑEòÊ+¯ÈN;í$Ÿ|ò‰<ùä“¶6„©I“&B¿(,ðÜvÛm‹¼çž{Ö7Ýt“4oÞÜúúðÃM8ý¾ù9Dõë×7¦õŠ*Óxìs‡¬ýÒ¥KåC‘GyÄöLß{ï=ãúg:è ¹òÊ+ñßì t饗Ê[o½UD$fñ$g..šðßÿþ· ~ý³Ï>k›á©+1 SBóçÏ—aÆÉñÇ/ýúõ3׿í·ßüçóÎ;OþóŸÿc½ñÆ2iÒ$c¸^½z™¦É„sÜ÷ßß6B@ 4+¾1Aùàƒ¤ÿþVwàšØ…þA``¸’R¦5tëÖM>ýôSyøá‡mlb!˜|̘12uêTbçw^k(ðÂòLŸ>}­ºäb,,J¦G†ßøñãåÍ7ßL42dˆ\vÙeÆ ûì³áî+™?± ® fì¬ÊË/¿lý²(ÁLã! Ëå—_.ì¼Ûé]-?f¦ã~ûíg •6ìWÔZfº¯š`CØÁAÛþå/IÁ‹/¾h±Â%—\bLÃ|ñÅÖ÷x¶hÑ"#&¸2€‹ë…öÅÁe€¶W·«c]Иh\+tñÅÛ9Z¶l)Gq„]3â—Jµ†Ï>ûÌ7 &Æ0¿AƒɲeËl>é’Œ]’ñÁ«ÉœafúeOˆ±<±F¬0{Áž—aqq—Q^Çwœoj–KÆç¹çž³„ɈÃ;ÌÚd77±wïÞfU±lX0æS‘)'.Dã „€<±Ù¸ ›„+…uùüóÏåÐC5ww0ÓX¦;î¸ÃüÙóÏ?ßL1þmèzõêù®SOÄ)÷…=SGë}/KuD£"xɱ>˜=Ý<â4ö}÷Ý—è7‰{™îœ÷Ó þ8AØ“çíÛàç{b +%R}?л©0> &?òÈ#·cµó„ÕÀ5Âr}ôѶ&êRç]áW_}Õ<\Râ1,`*B¸+åL`J¢íÇÆà.¡Ñ|ðAà ׄÍÄG' Ŀŕ "¸$õTœ{‚€yò.€²h›ôÓO?™ÕóíÓ¹ÁÂÝ‹ $)`¼fZ–…>¢ÌEÚ– †íÒ¥‹Üxã6úÅ‚1±HmÚ´±rpŽfÌÈ(yÂjÀ¨¸²8äSÔ¾MôˆÀb-°øôËÞ`ÁÓ}b½Ù#(Óxìû„€ ,XÒ¿ÿýïæžyדrˆX eQ(g.YIˆ°1€Î†ù ÌÁé÷ßon F"¸$Ž Ö@Ó¢å_{íµŒÃa¥`$ÚxÂÐ;ÝCÐO, ‚¦„ùF!ütâ O¤tq!´1.Ôc=&¤˜aâ$âŸO<ÑÚdZŒIüs26Êà°ç-¸°(‚{\¥Âü‰¿`0ÜV\(§ÖH|ç k óœdÉb‡t„Å'ÑÂÜN8á„tÍå(/¼¬e¦ñ\< ÖD{Ö@{î½’  8{áI ôÇ ÷@ÄžÞKù£jrba’­KòuòÊØ$˜–£¤iÓ¦&dm2md‘ˆ®¹æ Œ !b£(1^tLrááæ Áù^„¯Çµ!cÇÛ¬lÞUW]e#úÃâ¡õ)ƒ°‚0ÂS“á!­êë™ç©§žjcÑ>Óˆ»¨6X î%#ä]MÜQ4vÇŽÍÒЄ #@0Þ™gži‚ƒB Ü@ohK\DBƒ˜k÷äCÉ8QFfŠT.ŠŒ¶ž<^þÚ}*wš0Ýx>ÖÄJò蟄kGA°>7–í5¶ŒŽéÏÁ·^@A¥sMýüÊ{,ó÷aðÇ×Õëý¤ o¸ás`è(¡Ið•É á¦xB»à!`l0€§J+#„¤v±\¸Ñþq‡RÙdÝxÃæ•–ˆ°<ÔKuº50Ïap ;úÌÁÏ‹Çý¨œÆêׯÏ}¦OŸ^eÉ’EÍž=›Ë:tè *Uª¤òäÉã̵K—.\†?ÚDRúÕ ç>wîܪgÏžJn•1cF.w ­ÄÀynçÎSóæÍã´~ËÀcbíèË`R§N¥ë8p€{6lãƒù¡Ö¡ŠË€q“&MxÀ øL˜0ÁšEìImúqý„<öŠ)\tš’Ko0Á¼t…7n­^½š¥¨ÞLö Š-ʯ.Ìš5 M˜ 9Ÿ|òIÒLAšhøðá,Ý!-ZÄšÚùÞÐNš¹bH}Ó®˜Ë¾}ûë©§žb¿æ h×®]ôé§Ÿ²žéغuk‚i“ Œ‘-[6B4fÉâÅ‹Ùé„¶§‰'RÁ‚ νM¶ cç# g×Ì4 È.ƒc Ç×”q/0?˜TÚÆ'ã\›jp’!Ý7nLÙ³g7ÙÑÆy×… "h7mò;}ÀÙ·ÛÅc§&‚’9²0­p –.]ê„5¡^yåúä“Oø€Ô¨Qƒµ Lhø°±qáÏø’☇ñIpØ>úè#Ö2ÕªUã)âÀM:•M-Øó8ìÚñç²iӦр8?ÿøÇ?hΜ9|È||¾˜ ‡~ "P|ðÓ ˜Uðy °ÎV­Zq9´&Úšži„9À<ƒß…²uëÖq´ >JHQ â>¡Ñ*mâ¨Ñ£G;ýjCõíÛ×¹×Hi;߹צGŒÐNÇú|Dk´™ÅD‡ôR¨ Bˆà胢´y¡J–,éD«tHT9’ë!Z¥‹£U¨‹H‘/s¢UÚDâ±Q†h”i‡ ¯½öšÒZŠëâ‰V™ }È•*ðÐíû(­}L'Z…hÊÔ֔J¸Žf@ΫY³fŒh•fL^£‰FiÆPZp;OŒµo¦´¦rÆ+á–h$cª¦„2GB†Àf¿ûî»1šj‡]ég1Ê´Ý®t´Ii[[é'ËsØÁZ3(-}¹®]æÐN®ÒÏ.ÔÖ­[ƳëÄ'­5ˆÒZCáÀy’ åb 1óZ!_oëC_X¿Ždymç9VBîÝÂaZ¢„,ÁœÂC.8šZRÇÀ!oÞ¼ü$:FÎÈ—/¼•yæÁ·ÁÇiiNU«VõV¯<ÍØ±L'žÎ¿É×É$c\±~|B•Bš9`k©ÍáY;ú’ÐÃðàƒz ­"ôëëpá‰4œð@ÆÆBÁyŽ®ø9B§üq Ö/}¦W#ê‡ç-òòØRH*!ÊM*€þlüø½—"ýÙ§ô•x\ásà9bôÁNß~A-Z£Ü¹3õRñ6²ÈÌ'Õø3¥I¦íð×ôɹú•ûß‚y©®Y[ªwÈ]ƒd'úÃ[ô»_é— ê—!ßNboÒ܈ÏáýÐǬY¿qÈ5"â”~þ¤z”.’Š€0GRôCûË—oÐò廸=®ôéÓé7„7ú¡Wé"©s$A?´_°`«þî6^"ýUØ(ý]pñ9ük’»æH2„Iï`Ö¬ðhœ8q6n<-On’aŽäÇ<Úˆ‘‘—õ×T#ÍB1­¢A”b7Â)ý½çÏߤ¿&ýËY0­fÏÆ0)<Í^˜#…·}æÌß¼2Á… ×ô˜¼6…§2à s¤àV>|–¶m;íë¨f:aaˆZm0·rM„9Rt3ä¼y›Làî܉¢ï¿ß¬¿:å­Xò’aŽdÙ×Ó§¯×¿Úáûð_»v[¿N²ÓWsÉ0ÂØW÷»vÐ?Ô高óÃÂÒhÇ\L«XA `¡+^< àúS¬kãOdÈ€-¸÷ÐüŽùæ´ÊÒ¥;ô/ŠÜÔ¿ÂÜoê¦ØFÄ2°0G,ನrå"4lXÛhC|øáBzâ‰JúWïÿ*\¸p]˜#RÉs#oå&Îñ¥J•AÔ¯_ ý3œõâU_*ñ9‹¯ôîb„9\¼y2õÀ" ÌX|¥w# ÌáâÍ“©aŽÀâ+½»aožL=°s_éÝÅs¸xódêE@˜#°øJï.F@˜ÃÅ›'S,ÂÅWzw1Â.Þ<™z`æ,¾Ò»‹æpñæÉÔ‹€0G`ñ•Þ]Œ€0‡‹7O¦X„9‹¯ôîb„9\¼y2õÀ" ÌX|¥w# ÌáâÍ“©aŽÀâ+½»aožL=°s_éÝÅs¸xódêE@˜#°øJï.F@˜ÃÅ›'S,ÂÅWzw1Â.Þ<™z`æ,¾Ò»‹æpñæÉÔ‹€0G`ñ•Þ]Œ€0‡‹7O¦X„9‹¯ôîb\÷Ÿž~úiý/ˆ¿w1ä¾§ž1c ýßeÏSTÔ%ß•\\²yófz衇\³WþOÀ† Ò믿îC}¢'Nœ Þ½{»W2G‰%èùçŸwØ¡:á={ö¸réâs¸rÛdÒÉ€0Gr ,c¸aWn›L:9æH”e W"ôÌѯ_?jÞ¼¹óA(ø­·Þ¢£GúeúuëFÓ§O÷K_±urùòezóÍ7©víÚ”+W.ªU«uïÞN:[³he×®]#ô‚“ \Ò>Zg!pô̱víZ:xð &¨üùóÓ„ øÝ¹s'É[¼råJÚ¿’û‰­ƒ“'ORƒ hüøñT¯^=5j5kÖŒf̘ÁëÚ¾}{lͲ®]»R§Nø>**Š®\¹BwïÞuÊ%W†r£/!î»jÕªÑ{ï½çTă(ÄÝÁ8>ú(çã lذ”R|à²gÏîÔÇ„¶©Zµ*+VÌ)óL\ºt‰ë)R„rö$ôqàÀ#K–,\|óæM³€âÅ‹s˜sÌ–-—:”vîÜÉó­Y³¦Ó嫯¾J5jÔ >}úÐ?þHóG¿ëׯgAP¾|y®öìYºzõ*]¿~Ž?NÈŸ9s&×1bn[·n¥Â… SõêÕ)Mš4\„ü¼yóÒ7hÛ¶mT¦LÂú‚ž4˜®¢Ö­[+-ýâ=g-qÕ /¼­~ÿþýUXX˜:}ú4ç¯ZµJ(P@eÍšUeÊ”Iií¢–/_ÎeçÎS5RiÓ¦U¹sçæë AƒœþÊ•+§FŒÁ÷S¦LQú`ªôéÓ+}pTÓ¦MÕ… ¸L3ŸÒ&ççÈ‘ƒÇÿàƒ¸L3)ç·mÛV¥K—ŽÓ˜ƒ6}Ô­[·TÆŒ•6¡œ1íÄÀ¹>æÙ¡CU©R%•'O•!CÎïÒ¥ WïÙ³§Ò‡óêÔ©£Ì˜šQ¹|ذa¼6´E½úõë+ÍP\¦…jÒ¤ ÏÃÌOk_.‹ÏŸßÿÇÕOÈãS=ÕÔ¤q%†9´”SíÚµSÏ>û¬zøá‡ù`jÍÁëÖR[•,YRµiÓ†"î‘F-)êq´éÄõ'OžÌm˜Ç0GDDHÔ¿xñ¢Úµk—*X° êÛ·/·;v,3òA~ø¡ÒÚIiÌA}ê©§Ôùóç•6ÕhäÈ‘jïÞ½<Þĉ¹çŸ¹sçryxx83˜rêÔ©J›MÊÌuþüùÜìÅ_äµáÆŒ æX½z5÷ñå—_r=Œ‰¹ÿõ¯å{0˜ch­£ô J›¨\Ÿ?neŽ ÷9 úažÀŒ¨P¡›3HëƒÃæÏ¦M›Ø'éÑ£i‰OZâR¯^½èرc´{÷nš3gµjÕŠJ•*…®¨sçΤ¥+-[¶ŒïÍÔÓRž´ô'Í(ç·nݺlî NÇŽI.¶ñ,X@;vì`ç¦!˜~p¶ñz Ì*ôS„|os ¤5_«T©Bš øs-]º4Á/Š4ƒQΜ9éå—_æjeË–åuØkÔˆ±ƒÉõÜsÏñÜbë3ÊBÂçÀAÓ¦³_8ÄÚü -I›œgÝH›]Ì$¶üB… Ñ™3gtèСCœ6¯)(Z´('á´ã•0˜3_¾|¦ŠsÕÊIgΜY¿€Åö=2µ4wÊìÄ’%Køf° ¬#6:|ø0û†ÁPØkôœ›?‚±Í)5”…„æðÚAÛñìã ƒàˆ‚cÂAÃá²Ë ɵ™ÃÙÆaB¿pœ9ŸyóæÑðáù/í§<´†6·8ßþcN“­‡ð-"l`j›à\Cº7nܘLζ!h/hFoSW`€€ƒ6‘œl``·3ιS!!Áˆþh?ß|ó =þøã¤m6? 1p°ßÿ}> Úæ©öMXjä‚Ù1{öl>œcÆŒácáùâ#êAš2„"## ¦SË–-iÑ¢E\/h ˜nÐ&zvûöí8´4“ °‰Ð~‡sÁ¬Ú±wúÀ¡Ö>ÁÜC‚¡0ÆF[¬Ñ&”£þàÁƒ¹lݺu´bÅ jß¾½]-ôÒñq¨RSÄ8äzWÙáÄQÚUv´eéÒ¥J\®ƒ¨”6Q”–î¼lD´t¸×)CähÒ¤I$ÚDbÇãÆãˆŽýÐëjó‡{ôˆ˜f"vzÑÞ8Ç:dêô«Ÿc(iB&æ¨M4g£bÅŠJk§ ¢U:ÌÊÑ*”#º§ÞдiÓ8¡ÍDgL­0`G©L4J3†Òš‰›ê³=z´é†×`B|É­¹+¿ìçô믿Öûï?B &ÌØï¶‰£?èƒÄ­\¹2›G¾F†ƒ ­Ý8ñ¦.4 ÆÐ‡šM0˜EèÓø8¦^lWø0Ût”ŒÇ°ëÂé‡&Áó ̘z6éhé0¶c†ÙeÐÐj0'm4žÆc.òe§Ä — ÚhiNžŽ·™ìm<øŠé,=òÈ#^«âPâ¤!ø ø$„ð ŸØãàa¥7ÒÚÄ[6çáA>B÷‰hU¨l6¢`pÂ…üƒ€0‡pL½  ä?B"Zå?¸¤§PB@˜#íö;ò†l*ÚæHE»ñùç+ô[³Ñô¥¢é…ÞTâ«N-õðœCïRP~ è¢2g®”kÞ¹í­\×=çX³f ?å 61vèÐ=z«~ç+7õèQ)Ø–Çëѯðó ŽnYœë¢UæEA·ßy2—«îÙs‘ž|²%åÎ}ï‹Pñm/õü€øþÇ4Á=Þ½«ô»[÷^vDã ¶$¸ià„9üi‚{\³f/?ï{xUeÆŒõ îCøaÿcšàçÌÙ ßwJÇí EÂÃê×é/&¸ià_„9ü‹g‚{»u+Jÿjüfýº{”Ó6,,-ÍŸ¿Ñ¹—DÊ Ì‘2¸;£.[¶S¿ý;úëßúÍÚp§Ž$RaŽ”ÁÝõžIuï'pL&üŽ]»ŽÓ¾}‘&K®)€€0G €n†¼zõ&-Y²C›T1_2ož˜V«”¸ s¤êŒ¹xñ¶h¾†=ø µ²Iþ´0Gòc"¶.8räœþq‡#N}I$/ÂÉ‹·3Ú¹sWõ$ìÕ?¿Ó¤2•Ò§O§ÜAL+ƒGr_…9’ñ?ÆCø6®q¾};ŠŸœÃAJ~\÷nUòC˜÷ïÔ¿jXTÿVÔýþ#"NëŸïɦÝðþ{UéÒ¥Õ¿.xZÿ BÁû%•,¸î­ÜdA%…©Reõë×Bÿ,g½š k# f•†¤ a I 6Â6’,„9,0$)ØsØhHZ°æ°À¤ `# Ìa£!iAÀB@˜ÃC’‚€€0‡†¤ a I 6Â6’,„9,0$)ØsØhHZ°æ°À¤ `# Ìa£!iAÀB@˜ÃC’‚€€0‡†¤ a I 6Â6’,„9,0$)ØsØhHZ°æ°À¤ `# Ìa£!iAÀB@˜ÃC’‚€€0‡†¤ a I 6Â6’,„9,0$)ØsØhHZ°æ°À¤ `# Ìa£!iAÀB@˜ÃC’‚€€0‡†¤ ÿÙiíÚµ4zôh«Š$“ }ûré{vræ¼™\CÊ8 P¼xq5jT4rõS]öÿþ÷?ÚµkõîÝ; s{çwèúõë1ÆÈŸ??½õÖ[1ò•±yófš:u*ýóŸÿ¤ƒÒ¸q㢠•.]:*Y²$5oÞœžL.Ú³gM›6~ÿýwºzõ*•*UŠyäŽ|¦M· ŽŠŠâv9räà)/X°€öíÛGo¼ñFr-!Æ8qÏ:F“Ô•qäÈ‘!¸@ÌpÆ tîÜ93ØŸ}š¥kéÒ¥éîÝ»tèÐ!By™2e(,,ŒN:E™3gæÍ4hEFFr^¶lÙ8 À Ô5© IR¬X1ʘ1#]¸p *dŠù ‰¥”¢L™2±6É•+×G!ú¼|ù2oÚáÇéÊ•+T®\9JŸ>=·E;Ì÷tž÷¨T·n]zõÕW¹¾·?X æˆZ¶lYJ“& WC>ÖgÖƒ±±0™Á¯@tâÄ ÆmM]t€:Ð ô6,µk׎*Uªä”­^½šLëׯ§§Ÿ~šó1/¨|ùò”%Kgì|ùòñþܸqƒq5÷fnkÁ=žäΛµ“Ƀƒ–;v¬3oŒ[µjUú裘Y[¶lIçÏŸ§¬Y³òÚ÷ïßÏ{œ3gNîe 0ô<@Íš5£ÇœóðÇÛü‘oæ~¨—J2sDDDÐßþö7ª^½:AåƒJ† ÒT¹reiøðá¼ „Þ¾}{êÕ«·8p A2b“°Aÿú׿ô-[¶Ð AƒXíbCpxpÀ-ZÄý˜?èÌ &$$Y¿~ýÒ ¦Zµj´sçN.3OEqH7nÜH}ûö¥1cÆðZ<ï;®ÿùÏ0˜°J•*ôþûï³ èÞ½;½ôÒKôüóÏsóï¾ûŽ`6|ûí·dð«_¿>ýúë¯,Tp`>ýôS*Z´(aíÀŒÂÚã"#4° ­[·ÌBà óŒ{0ñ+¯¼B#FŒ`ÆŸ3gýûßÿ¦wß}—4h@?ýô¿-ùâƒç×®]£:uêp;ÌuÀ€c˜ùA ÏåË—˜—+V¬Èøc!0ÑàÌ™À|€ ÚaíÐ>¾æ_£F8ñ3sIÌÕof$ž®ƒQ ö!©g̘Á‡‡’¯I“&¼P#%~þùg–H_ý5KRôµŒ Á9r$Kùÿþ÷¿\Ï´÷¶`0 ü˜` 0К5kœª`º~ø¾ùæ‚Y2aÂ.㚃åyJ«V­âCo>Ççõ~õÕW<挾;ƇÉ8Ž$àüùóù;Œ?~ûì3êÑ£íÝ»—UmÛ¶mÙ¬@=h_TR;£7æqP¯páÂΦ£ $Ì2Ó9¸íµ×œñ¼G[HM˜‹öy0c š6mŠjÜ÷£>ÊÚˆ3âñæ´ÎC=Äf(˜ y÷îÝ,q±.h=o¯õÌš5‹ñf8ÄÀ f%Ò0gaæ@RÃl|æ™gèÌ™3¬}±?ÌÐ(jÐ`0Ê¡ ].\H€@£-^¼˜-h#`SÖA¡ÜæÃú83(Çë¾(®ù›vÞð3e‰½&Ù¬2ÇÑÒLi¶råJÞdlÌ%€‚I­1qâDÞ ”-ÓÌ/Ûå°WmÂ1} ß–J(Øñ%xo>Ìû_}ã@yìxC`^0 -Ý7³ šÕHn´Ã‹£&Ú? næóÃ~@Ûa,´…ùí¿cÇ‚¯„rcþ`_ðr¤9LgøÀí Ìž›q Í¡Àð† ¬ ½?¦Ì\ãš¿ñͼágúHìõ>K'¶‡?Ú&ˆ«˜V` ¨U, ’ Ó S§N4wî\¶3!©`ÿšEŸ={Öéá‹  áBòØ a÷I£™~⺂ ý Á÷1}(CÆ1÷¸zÃÂçÕqªÍ½ç úç?ÿ™³¡}ŒÐB Àæ.°Û!Ð`êÀÜ“!ú3Ú k€ƒif€iŸóB›aLì›'Aó€A࿲÷Ǽègp2uìk\ó7u½ágÊ{õsÄwõêÕc•:yòdÖÆi„Êþä“OXZaS°AP½”8$S¦LáXH:_„_ºt)KE˜ðYŒi‡6Ñ"˜t ‚¯òñdz¯àíž+ùøƒþa˜¾ácáE¶'žx‚[À ¶Ä…‹t|Â> ÖùƧ­yV' }€±vàW¡B–ôÐR¦ oø8d`ÜÜ 9 à$C ʇ<˜Ð0¡gÏžMŸþ9¯ÒN8ü2D*m3xÞ¼y„ð;æs¾‘‰fìƒ-dâš|pLl¿™UqMÀp6˜v3å-Z8Í Îß{ï=–z‘¤>}úpd ”µnÝš7‡Æ¶SMßè j‡#l^·nÝØ…_‚4E?v0:wîÌù0! ý6lÈîyÏ•|üßÔ¡C>€x@3A„XAäp8»víÊ’õ½iÓ=Öƒ4+Ö>tèP^ò0?„hAöºM[\±nh00Föp¨Ñ¦ ®!0ž—€I@`´> 0Ö‡à… `ÔªUËa~<¨Cû ¾ÐŠ`? ¡¯¿üå/ŒöxÈ!<'˜Í0³`¶¢Ì}@@Æ5Ó·¹¢­/lLø\}~ŸÑ@GH&HZ›àâi7lbÛ6E¨gHäcãÀž¡\l8B¸8ˆxÆ‚g"æ9†‰ýC«˜ç-Æd³ç”4lx0æèÙ7æ†ó´Ëã3ÌC¬mqðCÿ Ž‚áÐ^B ëÃ< Íö$hi”ãZRkh%›`R¿ýöÛÌt0ÕÀ6aŽØ?cNz–%uþvv4½1óLÙ}–69¼âàÀ… õúë¯Ç Òv¯7‚Æú¡GbP“6!€0GHl³,21s$5is„Ä6Ë"ƒÀÿä÷Îo†ŠIEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1NoExceptions-members.html000755 000765 000024 00000010062 13515046515 026657 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::NoExceptions Member List

This is the complete list of members for mysqlpp::NoExceptions, including all inherited members.

NoExceptions(const OptionalExceptions &a)mysqlpp::NoExceptionsinline
~NoExceptions()mysqlpp::NoExceptionsinline
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1StoreQueryResult__inherit__graph.png000644 000765 000024 00000034134 13515046516 031157 0ustar00tangentstaff000000 000000 ‰PNG  IHDRR·@+ÖjsRGB®Îé8IDATxíœÅÆ› "ÑŠ˜PÌ‚bÀ³$QAAÌôé3¡`à‰¨OQAE$˜#("(& JPQDA óê_¼^æ–ݽånowö®êw{»3ÝÓ]ýõÌ×ÕU=3å‚ xÑ™†€!`W*Ê‘gõh;Î0 CÀ}_Þ@0 CÀ(F¤ÅÃÏŽ6 CÀ‘ÚI`†@1ÀGZ@æÍ›çÆW`Ÿme#Ž8ÂmµÕVe±éÖæ D`="…DÏ:ë¬ ,Ʋ¥·ÞzËüñ¥¯aÖ¢Œ#°‘údY”ÿi߆@™Bà÷ßw›nºi™j³5¶x˜´xøÙц€!`X°ÉÎCÀ0Š‹€Y¤ÅEÐŽ7 2€i™? CÀ(.F¤ÅEÐŽ7 2@Þé3Ï<ã.»ì²¬tä_|áÎ=÷\·óÎ;»-·ÜÒ}ôÑîÞ{ïukÖ¬I«þU«V¹Å‹ÇòžwÞy^Šm—Ä0>_}õ•;餓~.¼ðÂ’¨¾Ð2sI¡JYC`È{">}ºûøã7°Ùžý7Þp,Ðþì³ÏÜ\àn»í6W§Nwíµ×ºSN9Å­\¹²ÐB_yå·Å[Äòþõ×_îŸþ)ô¸âdã³hÑ"÷æ›oºêÕ«»m·Ý¶À‡¶äBrI.Úiu–n’®#M·Ù+V¬p .tÛm·ûþûïݲeË\Æ ÕJ›2eŠ#}ï½÷vm´‘¦W«VÍm¾ùæ±â¹“Š}~ÝVŸ?¦jÕª±|”ûõ×_»ÝvÛÍm²É&RØa‡béüøã?ë_«T©â>ýôSW»vm·ë®»jë·ß~Ó;U¦M›æ–,YâößW©R%Mç¸åË—»7ÞØ•/_^ËñÛ$Û{ìáF¥úrPçÎÝa‡æ.½ôR7pà@ÍóóÏ?»š5k*èKÛ!OÊ" ™3gŽ«_¿¾{ôÑG]åÊ•uÿhã矮upÀJxìÇŠE‡Í6ÛÌMœ8QÙsÏ=]… HVÁ*Æâ¬X±¢kР¶Á§ÅßqÇn—]v‰ß­ø°†r›m¶Ñþ" £Zµjiþ¹sç:úõÀt~Ÿ/è‡~p¤Óæ5jøÝÚî\`ÂyùÍ7߸½öÚËm½õÖ1}ì‡!q„@ È‹/¾ÈJüûRmŒ?^óuÔQúͱ‡~xpÜqÇŶ7n‘‡zhдiÓXqB,AðÈ#Bc ¤”+W.‹)˜:uªæýàƒ!‘@Nó7jÔ(’Õ´›nº)Øo¿ýôw›6m!»@ˆ:‚ÔúÅzÔ´áÇë¶X•±4òÊůéï¾û®¦=z½m™~kÚ;ï¼£iáB`{pÌ1ÇènêmÒ¤‰ê)ƒG ¤ :4xÿý÷Uð¡Í³gÏdð î¾ûn=îÃ? Ä] ír dÐcH¼òÊ+µ]B~z,eÈ7u#+dÈ  !-Å“´0>o¿ý¶¶ãÛo¿%i=3fŒêxÝu×iÚG}¤Û^Ç=zhßP}!wÀ«W¯dà Ú·o¯eÓfÚw×]wÅÊÏ6&èt '\‚Ç{,¦Oa?dÕ¶ÈM…eµtCî[1‹J¤-Z´æÏŸ<ðÀzBXbmƒ Òm±–‚~ýúéøÓO?)üýû÷דý—_~ Î8ãŒ@¬;½0)G,² {÷îJÀ;î¸c þÈ@¬`æÌ™J@Ɉ’¡N.¦'Ÿ|Rë1bDà‰T|œL©ƒ3f(qµmÛVua[¦éJpìoßyçZŽX¼š7þ_ëÖ­tD ºuëbuþùgpÚi§)É-]º4xùå—µÄ)DT¯^½ Ic›ßbbÉ*‘Ò®ûï¿_Óo½õV-ç»ï¾Ór îSO=5‹[eÀ‚äDDÚ¼yó€A'üa AÀ"„TÅšèG°„¬ÑAm߯£F z÷î@V#GŽ Äç 0@óʬ@ËÌ6&/¼ð‚ÖÏ ù÷ß `éU*Å?#ÒàXR"î˘T.X'âš5k&×›s:uÒ)¢ß Lïá—‹Ô ¡hž!C†¸O¤ÀoÚÈtŸãpñ¸®]»:Pn„v\qÅšÞ¥KÝ'd¯ßÏ>û¬{衇ÛÆ S·SòdBùñŸß/. ™a¸üQ]`)ƒ‘ºd.¹äÅŒ…LµÏ¬n\¸d† îü±^²‰ XɬÆ]sÍ5NGŸË¬û¼>ömdbûH½2>Xñ>8NhDh\ “¨1‘j±@ÕßÈňx‹ÖÝxãês}î¹çb~ÅC9Dóñ’J&\DaÁOê}“ìË1–Lä_kaÉ]†Ðùü¹b­i Êï×AýHXŸÏã[Fð‹zñ>=±Öuºzñ~U± u—¸œL»•ñ¢k*ù÷¿ÿëŸø|øˆÛµkçÄŠs2=Ža޾Oý1)‚_ÿ®XÑ>I}Þ¾ïÙ™MLÄõãÄrÖa@ƒT{öìÓÏ~™D c)VK:"Siµeú§V‹LIõ0ñ?*È´_.D•!TO ¼È”Öÿ\ï;l‰ÇÚ o8]|€ÒÖ+ìÿ;ˆÖ3@`õÅË{ï½çdúèd K ×1vìXÝÖ!–ñÿ?ü DpÊ A'Ä[ÈaRòyø† „°R JaÉtÐAá,ôÂ$EP~Axœ+j! ]t‘Î"˜‰ˆOÜlò°:óÌuo±É&&&LЀ'³êÅŠ¦Mèfb”é±_kÿœcŠ|óÍ7ë…æ­«'žxÂuëÖÍÅǪ"Ò%±ï¾ûjôýöÛo×)+SGñ­&ÕÂÊe:•F´Þ»8ˆi{Ü âÔ¥Kì‡$¨Ö¬YlØÆ ÅUÑ·o_wõÕWëê.JñÅ9†}öÙGÝz üÃ’€ŽNç9—‘l¦ÓÓu,t/X¢X \ì\üèGDŸÈx¼ì Cnß,'bN»“Éhqg¼öÚk><2:tè Ö$«X‘ÀR/ôiÕª•~ƒ)ƒÖnÜ †` ñ‚;í ?«$¼d"õÌxÄÀKškÛÄ(â=§E 6XB€ˆ¢Ñ|„ Û{¼IgŸ¬ÿô»4˜AðE,/ Øñb]iºøÚ4Ï1D‹eš_ j/˘4Á!žX^"ý>zìƒMK9GºÈ”TMµ'A‚èÂjñ·{u ýöøZÔ¾P¨,ÃZе/ ’4 d­éz‡ÊZÉ@¬%ãøD¢¯,‘‚˜‰Æû¨}8DÚ²eË€rdš¬lŸî‰”4H̯ðéé~UG™>jô?þ8Hƒˆ6£_¾ÎCžU ‰„6ŠEˆu¬‘ñDy’í£LŽóÂÒ2V dZ(3Ùò)q èà'.†Õæ ðgå« 6DŒH7-Ë+Ü—±`“Œþ… Óf|ŠLãûôé³^~¦_²tg½ýìÀÀô8¡n H&ñ©dùí'ªžŽ,@ç/L/“M1i#7 Ep…ðñâƒ\~;SßÜ<tòesSŸd’mLvß}÷dªØ~C £d•HñÊZR'SO' ¸‹ÜP‰*ÜÅD€)‘@2Dþ“mS”}Ô&´¢”QÚŽ1LJ[Z{â(‡aÞI†w6Åíg±ß†@©FÀ¿jÄÞÙTª»9“ëõ¨}&µ·² CÀˆF¤Qè…8–,ùKÖ¦þ4©¸ÃlÓ0r„@R)S|“Ü 0vìrkE <­}âRn´(»µ&ó³—]D¬å…!”HíÝö…AWréµj-‹ëWÈJÃK®+Ù02†ÀzÁ¦Œ•l  –¸FzÉCPÊ»I“n—»Œª©;È0²†€›²ušñ¥ÜθÖuýÚkëî½OópËf9@À‚M9=U•C†Lpr#Ž.?2äÓTY-Í0"‚€iD:5fÎüYh²PItÍšÀM˜0Gž ú{„44U C F¤‰PÉѾáÿ7¯{S… åÜÈ‘_åH«Ö0ÒEÀˆ4]¤²©üÊ•kÖLu«W¯‘GõÙô> Ð[†@±0"-|™;xâDмîù”ÌÍ»S§.'ó¯}J~æj³’ C “‘fÍb”5lXÁi½/ªbÅ òåµOË÷ûìÛ0¢…€iúƒÄ úYi½WkÕªÕò4›Þ{<ìÛˆ"F¤è•qãfÉ+:–%ÕdîÜŲ8^ÒtK0 Ü"`Dš[üµö—_þ¼@´>^¥6ªè†ÿ2~·m†@D0"ÍqG¥9òË„Óz¯ÚÊ•«äÅrü¦}†@Ä0"Íq‡Œ5MÞ ¿B-ÒJ•*È›F+èoÖ“VªTQ?œ-ZêÆ_û†Ó«lÕ†@IŸþ—Ï6K5*»^½Z(}РñòŽªÜi§P`?ÄjbÑCÀ®Ì÷É!‡Ô—wIÕ/ Åر3]õê•]§NGØo†€!MljÍ~1­ C 0"Í£Î2U C š‘F³_L+CÀÈ#ŒHó¨³LUCÀˆ&F¤ÑìÓÊ0ò#Ò<ê,SÕ0¢‰€i4ûÅ´2 øÀ}÷Ýwš¥cÇŽ®]»vú{ùòåÚö7ÞØpÀnï½÷vþù§»âŠ+\·nÝRii ØrË-Ý!C¤¬ÝE?,Z”›uÃá~Oª`†ry®g¨ ‹‰¼E:oÞ<]ÇÇ}“&MÒ‹š‹{áÂ…næÌ™®aÆšÎrFÖí¶Û.ÖÐÅ‹»¿ÿþÛ±á:ÂÚzë­cùÖ¬Yã&Ož¬ÖÂî»ïî°Dã-ÐþùÇaUlµÕVnÚ´ij±í¿ÿþ1 ãçŸvXlË–-s_ýµ ƽ°t¢|ùòŽøíÍ6ÛÌÝwß}>»~·nÝÚ=ÿüó޶ù²þøãÕ•6í°ÃòC~2:î¹çž2Fï ¸í·ß^ëç¶7ÙdG^¨¢/ÒÑiÛ¶­;ãŒ3|6wøá‡»—_~Ù=òÈ#±}÷ÙgŸ¹]vÙe=ÜéäLÕŸ'ß¾µ÷ûï¿—,÷ã?êùÁlƒí3fh[X¸a…Ÿ‰øs…ò·ÝvÛXvÎIÎ{Ž§Â”ÙÆW_}å–.]ªë¸9ãûÝŸ÷\wœÇ\'ûêI¥óçÏw5jÔPýgÏžíöÙgŸ˜.ñ?V®\;ßÃiéžë‰t@_0ðíeðá÷Û\ó`ÇÀå…ëÛŸÏ~_Æ¿¥C³*+V  ”vBŒAãÆ™qV ‹£ƒ+¯¼2’ÐméÔ`âĉAŸ>}+“5Vö1Ç4mÚ4(8á„9q‚*UªèðØci>>8ôÐCµ,Ž—»ô÷믿ÈI§¿å„dê­¿8∘.{ì±GðÃ?h9è'72åÕ3tèИ.rò—\rIÂm™*Bб4ÿãÆoÔòäâÐ]Ï<óŒêO;Àâøãd°¦=ðÀLð ­Y³fœ@X:º-'¥/6  lD.âàÎ;ïTÝ<¦` ƒŽ'VTì8¹0hqÄöQm÷õÒWà$Ó‰´Tm!½0ùÏþÈàRX¶b¥3&A%í2’µW.jÅ’óëî»ï„ ôœ¦ŸøxàúÍ9‡\tÑE¬]ÕëÏž={ê¹Å9ë…óšsI…©Ü¦ç'õ‰!ˆû&xòÉ'×ëwÊéÕ«—^K›o¾¹^gœ×èŒp¾œ|òÉz®ÉlI÷…ÿ Ƀ¸ö®¿þúp’þN÷\O¦Ãm·Ý¦º Yjy2[ÒkBÝnÞ¼ypÎ9ç¨WŒ Õû®»î*À2¥±Áµ>nܸD9ïcdɪ…HëÔ©£ ˜2eJ £y #u0vìØà§Ÿ~ 8ɸ˜!PH¬_¿~Ú±uûñÇ^xá=QB,®àºë® dS¢‘©ª–ñî»ïbMbÆNêDD*~Ã@,€rå‹MëƒLd4Äš ÄB N;í4½Ðeô×ô[o½5ä1¬ÃÛœ\zòáDDGÚæËë[ Kî Ä2 ¦Nˆå\}õÕD .÷ß¿–ÿá‡ê… ·8¦M¤HÛZ´h¡ex"?mpúé§œ õë××r)œ!_0‡<§OŸ®ƒÔK/½”R§TmÑ‚Óø5"MÕ4‡óþÙgŸÕ–‰/T ±ì±Vƒ–-[ÆÎ920ÿë_ÿÒ¼üóçʬY³ïÿþ÷¿š&Ö˜–Ëva˜rŽAŒœ7œçmÚ´Q²f° ÷;ç dëëà<ç<“XÖ ‘r®÷îÝ»)ÉŒ.¸üòËõ<ÆX‘"zPè_:çz*dæ£ú}úé§z08¡/ƒ=úÀC5XíÊbÉ+^­Zµ ^{íµØ€_ sм'RÈ‹L%‚ðHˆUù!'žxbpôÑGëoqjëÈ‹Å6aÂ=©äÖB%:‘)oŒ‚ŽIf‘r"zìè„“‹ÑÒË矮å$Á|6ýæäâ„€ˆùpâúbEî¹ç-oÔ¨Qeóá×F S›`·Ýv Äe¡'$ˆeÀ¨®EJá Ê)Äzà 7(±sñ1#€\¬ð`ð@/fàзoß”:¥j‹œÆ¿¨iª> 9a"=òÈ#cç,iþœc;•ˆkEgäyôÑGÕ2d°. Sfv_|q¬h™¢O=õ”öa¸ß¯ºêª@\TH†ãvÝuW="%?Â5$ؘuå:`À%8Íà_:çz* ~®qƒ¯¾új ®µèo¿ýv5¶¸n0¢ ƒý[o½¥×;Æ×î-·Ü›U&:&¼/‘FÞG*'X&~éLv«à”Æêo¹Ð]‡Ôic_¬(õ[ ŧÇGˆ×Ɉ鮹æ'#½ú|ˆŽ{Á—˜JvÜqÇX2~˜p€ œæo+ÄwšŽàÛÅ7ë?~Î=z¸³Î:ËÍ;W“|0ÈçÃ_&2­s7Ýt“# Ïè°ÃÓ`‘ÏþƧ–®ÄûHe`pâ qrñk„Y¬''§úíðW ahÑ©tJÕ–tõŠZ¾Tíå|ó‚ÿìˆÐ{Á™®´oßÞ]zé¥)þsnµÆçš S|„ø6… cÕà =ï¼óbÛþþ\ôBò»ôú ?†~F¾øâ wá…:±tÝ;ï¼£«?b¥øQعžJ®w1˜Á9™‘:V;ˆ[Ì=Zý¸â&IzK/mâúçƒÿß¿?ês—K OZ‡Váys–ðÒ1ÙÕA/£¢ëIG,R JP""¾JwÇw(˜µjÕÒ €/ßG°ývü7Ç{áé@t¢—p N÷ùÒùf ’XN¦sš§¿X{NÜNFFý°dJFbÕ½Ya@ðA¦†ü·F,H@À‘QÙ$(ªÈÔI%p"SUÇÃCdª¯úŒ92VéÉtJÕ–¢ê•ëãRµ7¬ AI§^Ô¥+'KÏÄǯ¸c8 ©0…@Ø9w¼|òÉ'N|±z>ø}|‹Mƒ™Þ8aŸÌ~žÇîÃ?¬^ñÕºãŽ;ÎIüC–—®ÄŸë…é >Zǵ'³ %RñÇjõ7Þp¤¥Žƒü%¾¡×–Ä[ô:KuL:iyA¤é4„<¬Ó“é®s]#ù't’J¤žÑr“iZ´œÐDÿĤÑ|"~7ß|sÊê(›'À`ñŠ_ÕrÊ)±üX¼ß~û­žˆ2½ÕH9ˆqh´ÛgŽßöûÃß<Ö+¨k†ú±‚ÅÇã$ ä8y X¬‹‡zH­óýöÛO­TžZä­w „¨ÕÂ’*OªáºøUÅ`~ üû￯m• ”Ö ™rÂBÊ\¤XæXHXÄDð‰Ö¦Ò)U[âuÊ—íTíõØ2°0[`IÛˆ#œøÂuP“ HfbiŠß?¶/|®@ÂânÑôzõê9 4i¾Â0ÅÈ NV\ ËØ8 åp¿sNç:à<€p!,q‹Åôñ?°´±ŽY @¾vÚÉuîÜYIï0qûc’}‡ÏõÂtàšeÆÆ„EÊ“ä ~®ïDDÊJÎ],rð‘@›ZéâëU½“é•öþ° ¿ñmHÔ¦¢ ΰϔ¨¥÷Ù.ÄÂ<_ßl#ˆl²ßA"þA*©'?ßøHY ÀïpÔÞç¥`pÜ#r!B`àâ"úD ½øÈk¢mY—ˆåê“bßm(‹è*BP‡ˆ+ûøˆø`QNÚF:¹°ÔÿÅq2k~CàРAƒ@H$õ}ÍDäV_Q}pñõøoÚ€\ê&jJ:>êÄo+äª~éT:¥j‹^È¿¨ùHQ7U{å†Å ¬ ’tÐA1|YaA°ÐGíñIâôîÌ©/,©0%ê.¤£Çqàk•A_÷;;Þ’‡>¥b >¦€¯ÔŸ/áºýo®ü¦\'2hûݱïtÏõT:Púã÷õÂ*0Ç/B°ê•Á!ÙX|rÚÛ©|¤‘Ú§ÝÊÿg„¼èüpPÈ—Á>¢}8ÃøDD‰ r"p¼?©}>¿ü‰È y¹Â‘2@ÜJTw8oq~±?~| VÅzŰąˆº_.Î@¤Â„¥5‰ŽOuÑzÊ÷BðÉ/OI¥Sª¶ø²’}G‘HÑ5U{œJ!œƒ6õ£f(â¿Â0e¥Eü¹KUñýN;”&Ê›®j<‹#™ÐúÑ#þš/Š^©ˆ4/‚MBli StLv¦ô,¬—Dûȃ–i ÂÔ´0ñyåcêŧ¤„iu88®‡Eû,˜O$~A¢´ð>±~›iý18@¬ëØq©tJÕ–Xyö#U{q+yÁ%Â!™–Â0õ ×ãëïwÚ‘î9_–߯uVÉ„Ô_\=ÒiC©ò‘â—„,eŠ“NÛæÁg$‹Ê×{*:*Ó•X0%þ`ÒŠ{âÅ—iÛ†€!”*‹§wqEüŒŒ/‡åD,ýI&,Ç01 ²‰@©²HËfZ« C ב溬~CÀÈ{ŒHó¾ ×6`ôèi²®sM)i5£¤Xºt¹ûôÓÙ%U|™-×Þk_Jº¾zõCåÖ×=å‘j“ä3YHµðÕùÞt‚{²D¦ÄšÁ]0ÜQdöì%rSÅY´>ßÝpCc·Ûn›—†fe½ ÄP,ÇIößkÏ]Ü­c’YV¬Xízöü\î4j,Ï‹Ò&M±,«­%ÅÍò'ÓþJò´ûCåžü&²`~Ý“ûc»òúþÍ7'ÉûÅÆ¸ñãgÉS¸Ö¤¾)l_pÁa2kiéwÙwæ0"Í–Ñ(é7&ÉÓmžL¨ÌFUЬ–)ÿnj¥uÔîIo0HX€íŒ ,‘©ûxÇldñâ?Åê,—0èX­ÚÆdâa>ë鹯ä¯BF¤ùÛwÉ5oÖìyßμ„Gyk¥nÝÍ\ÇŽ‡Ë“}¶ ,9œ‘L;v†}Þ‘È÷2ݶùƒÀï¿ÿ­$J0,‰âÚÙj«šîüóËŸÆå¡¦F¤yØi…©Ü¨Q=w ÔòL–·|ùròÊŠòpæ‹ÜÎ;¯{ãb²ü¶?Zœ|òÞòt÷V…*ÑöìÙBú:q´¹Ð,CZ‘¦SþeêÑãÔXÀ)‘ö¬ê0 ƒ¼.¤^¢dÛ—\xáá®K—£eÉ[â7HT¬X^–Ám'OþÊäzyù4÷È#íä¥ê¹íiá“£LãìÑ!ŸÍj¹]”{®¹»%‘ ü‰»öÚeª°»ë®3“Fkû²‡ÀgŸÍ‘[|wŸ~ºSÌúŒ×€¾æ–`“¬!ý§?e­iVQ –Ç$#Q2A øS;w¨‹óûõkg8‰¡ø²/½ôÆÖ?F¢Ùï3ó‘fóHÖÈR¨^袑üsÎyÔqçŒI4xê©äÙO¹³Ï>È=þøù6ÈE£[ haSûpØÆÌ™?k4¿jÕÝàÁÝÖ[—Ü«¥ í¸óÎWÅßù¾»þúf®k×c ?Àrä»×>¨G¹Nn}å•îúT¨SOíëfÌXû@à(ë\uch׮ϹþýG»lm$ñN¶©}Ä;(êÕ©SÓ ÞÕm»íf®E‹Ý„ ³s¡F™­sÙ²®M›þòtûɲ4í"‰Ò7*³XäKÃHó¥§²¬'K¦ž¾‹kܸ¾¬7}Ô½ýö7YÖ lV÷ÓO¸–-tß~û“6¬«;âˆ]Ë&yÖj#Ò<ë°lªË:ÄÎW‹ˆ‡E4>›Õ—¹ºp£4oÞG¾ýê«ÝÝ^{Õ-säkƒmÅn¾ö\–ôféÔ=÷œ)Ï´¬á®¾ú÷óÏÈýÝÇg©ö²S Ï=8ÿü'äížuôÆ {’}~õ½i~õWδåiQ)/×cúyç§ÛkJ2ÔÜ/ÙeϺcÝË=üp[»#)C¸f³#Òl¢çuµmÛØm±E5]ÎýÞýúµ×ûöó¼Y9UÿñÇ?”/Ð'Øßv[KœrÚE¯ÜÖ‘»2{$ÓÐ×Çñ=ýtG}`F™£ ¿í¶‘º¼©Gæò€æ£ŠQ’šcìåw9­~úô]ëÖýõ¥yƒ]¬Óþ¼mL–çM®Ý»r¯¿þµ¼3«µDé÷˲V]†°ù´ÌGPdäÈîú"½æÍû:îˆ2)žÂÅs`ߪ¬‚¸ØH´pÈò"‡-Ê‹nЦ’Ûl³©1¢›«S§†®}ü⋹ÑT4"Z-\ø»Þà0{ö/zÃ=¶0"“5ŒH3bY.‚e:/¾x‰¼Ò¢ž;ë¬~î½÷¦”e8’¶WkDyî+·àòj“Òƒ€iééËœµ¤råtíc‹ûIôùIyŠÔ§9Ó%Š7K-Ñv¨¥|ݺ›FQMÓ©Øò§b€g‡®C€…û½{Ÿã¶Ü²†»âŠÁ²p©=hCà1âK ,xbCyøH[.¶î”)U¿ŒHKUwæ¾1×]w²Fð{ô¦wA•嵑<¹‰%N:)kE[ä¾sLƒCÀˆ´Ä -»wèp˜«]»ºÞ­ÃÂý‡jãxwTYÞàÉ"ûµ‹í[(‘–•¶—ÕvÚ‚ü²ÚóYh7¾AîoØp[õ¡¦zÝIÔÉJÿü³ZwÞ™¬SùæÍ÷ÍJ½VIN°ù9…¿ T>uêB]¸_»v5÷Üs«¥ZZ›ÍëY8¦N]àžzª£;øàJkS­]°ùñ°­L#°Ç[ërŸ¿ÿ^)Ëú:ÖP–F™?‰ã?ü°X#óF¢¥±—“·É–?%ÇÆR2„OÚgá>õÔ…îÀwLï@ËU°ùe¡—ó¡“'ÏwmÚôw[o½©nX*™7ï7¹©àQ·|ù*}óÎ;oÕLh ` ò£Ñ¦EƒÛèLž ÏÂý¹s(“&Í“U} ä]óF¢‘è–È)]‡Tä 2…Jí·ßB^_ÒÍÕ¬YEîCb¹”Ñ£§»ÓN{X^ò·µ6¬«Çr©Õ]ŒH£Û7eR3¦ôC‡^êöÚk]¸Ï‚÷\È!\ûöÜÉ'ïížyæ"WµêƹPÃêÌŒHó¤£Ê’š›ìäN8¡k×n€Ü1ôeV›ß·ï;ú0æK/=ZV´ŽôJ‚¬c•%EÀ¢öI¡Él³Ï>+ÓÖ‘™-´ ”6{vM òTéõ⬴vÍšrîë¯kË­žÉgYVê,M•ôíÛW†eî}TµÏÖI|Í5׸þýû»ý÷ß?[U–¢zÊI[ä­qY“l×—µ†•XEË–-sŸþ¹›>}º<´e׫'¢÷¶ùYì™m·ÝVžœÞ3‹5ZU†@v˜5k–ëØ±cv*‹`-æ#`§˜J†€!_‘æW™¶†€!AŒH#Ø)¦’!`äF¤ùÕ_¦­!`D 6E°S¢ Ò½÷Þ+9À}ôÑ%ªÎœ9säµÅk´·råÊî ƒr‡~¸Ûwßµoß\½zµûóÏ?]5JL×^{Í}ðÁªCÕªU]ýúõå©÷­r²Ââ_ÿú—ûã? ´µvíÚ®qãÆî°Ã+°?“?þø£»ÿþûݵ×^ëjÕªå–.]*·ÅV–×ho”ÉjJmYf‘–Ú®-^Ã&Nœè.\X¼B 9šg{Þzë­nþüùrKè©îÌ3ÏtD¯¼òJ7aÂ=úã?v-Z´p«V­*¤´¢%?øàƒî¾ûîs›l²‰¼ô|ÕRa¹ÚðáËVh1Žúâ‹/Üï¿ÿîvÜqGýl·ÝvŠÉÍ7ß,÷ú¿ZŒ’SÊò%0_±b…flÙ²¥¼ftêƒ,5†€Y¤1(¢õ«dÍš5j‰}ûí·n«­¶r›m¶™,N_îf̘¡V Ÿÿùç·xñb·ùæ›»J•Ö>~Îïò¨X±¢æ™9K…\° Nl«)è’%KT¯‹/¾ØsÌ1òˆ·ÖòÚŽn+yóÍ7åÖÆ¾nÈ!JHO<ñ„–ó×_¹C9D^‘q§–÷ä“OÊ}äÏèoÈ2„|®»î:-Çÿ;묳Üî»ï®ä„3DÉ|òÉ'kiï½÷Öt,Çí·ß^­<.P,¬«¯¾Ú=ðÀJ}úôqcÆŒQkâC 4O¤´·òÍ7ßÈkIúèïóÎ;O¯÷œ¼šägµbP ôƪÝo¿ýÜ‹/¾è>úè#€ õ·ÞzKñêÝ»·Z´äoÔ¨‘æ¯V­šcJÏ`sÆghþ¤¶:urcÇŽÕö\~ùåZ¾'Ú‚µ“?üðƒ<5¿‡ èÏ@Ä}Ï=÷\O'H›3^zé%Å›:{õê¥mñmõzøo1ÈÜ”©êcð½þúëwú â¼âŠ+”€ÿûßÿ:åGyD‹fpjÛ¶­<¤z€¯J¿Ñ‘rГïsÏ=·@ºm¬€Mí×Ç$2{°˜îb5á¯1b„Ns™â5mÚT§z\ØXn¬~“$zÁ(i@®Ö)$ A½þúë¢àM&Ló!2ê†@ '¬/i X>=ö˜&ažsÎ9r»åZKðÀT‹Dü~L]!YÈ‚ç6Z,o,)È’A E,)ò@ö¯¼òж©Aƒº+Á ÃJ…Àïž{îQ»§Ÿ~Z§É´¡½X×ÞzÔÿÿÇ~5÷Æ]wÝ¥Ö)åƒå{ì!¯!¹Ýa#aŽ;î8¸Lů¾úJ^ wœnó½°>ùPe¡ÇÉ'Ÿ¬yRÕGß3EXËŸ;w®ö ûýÀÖ «ŸAη!ò#<Ò©Ö$V#Ü ¸9¨p™Vî„ã8'Ú·o¯`ºí‰)a?6›Úo\ÙÍÌEç…‹ Bõþ@¿ŸoÈÉO™±$˜ùöSp¢âT˜æ5lØP­4¦È;ï¼³’‘/ âN&áQ âý—üöDÉoÒ!ôÂ+:²2À¯`ê‰ „É…²Ð ßËíý}¾>ˆBG¼¯ïŽ;îÐmÿÏOÏiÓ¼yóüîßì/OLeF 6KšAÊ Äç­ä°N¤3ðaUbâ¾Á2ÇÕà…àZØG ñMÇâgE’Õ·Ûn»éì‚@3°`FСC=.üÏëÞg¿‹†€iÑpËÊQéZ\„‡z¨Z9ƒ†D°`Á‚JœÂ§Ÿ~ª¾;|ƒLŸ§M›V äõÄT A6°ú¼à@ ^O$7<ÙNš4IÓ|þdßTK_­HŇ/~`!²U‡@¼H˜Èu‡ü#?DÍÔÖ@©ˆ!<@ú2À ä…$i/3.C_«o7„‰\vÙe±é9Ì—_~©n MŒûGÿ0ØAŒÌn»í¶¸7±Öq5Ð?…ÕGŸ’(}‚ßWnÎðêo1¬Í¶Š‚€Mí‹‚ZÁÊ!°CàæøãW !,Ÿ—_~Y}dL ÙñbÙ@X6DŒ±`˜þ&Ò¹ð˜ÎCrD‰N{ !(,,tÀÊB˜r³ÄÈ—Í4Õ7 ÊÃËEûÞ{ïÅÖ‘¢¯/ý!Gü°G}è†Õ/èé¡Ö߸qãÔ!81ÝtÓMjMâ*¡]Ï?ÿ¼{÷ÝwÕ’+\"Á;0ƒ|=©2xàÏã™3gj{ÿýï«×C"aƒL!;ÊÇ-P˜À¢½…Õ7G|Äß,ÑÙ ºðÜp+З dÉÜÁ÷3Y>Û¿³H#z&`=0M÷ÂïømŸÆ7 ,(.Ro­±ˆ(ü!i´÷·â“äÃt<<µ§~>^(‹é!Q\|©·ÜrKtˆ²yóæª#ÄÀšL„€Á Ü‘u"â>Lj… ÓUW]¥Ûø4Ñí /T_Ñr,8h豄§îaq]tïÞ]}C‡Õòh¿× /.›»ï¾[Óù†ƒÖ ŽEÇ6V(Ôò¤.H "Ú„à:èÙ³g¬¿Â:iùÇÀYóí Ÿîg¿ pa¤ª ú7ÞÐUô1>`°£=XúènLù:ê( ¾QG¼ŽMš4Q¢G7V…˜¤FÀ윟Œ¥â¯bJݯ_¿Œ•.È/SiÖ¬™Âi\|A ?Åõé¤ñä ),¾øåO\ì,© q„ƒR"Á"HŸ¤'!_~:߬óÄ' )1-'|y¬ðë[ÙÆò¢.ôŽÏ_'åÓ~ÈÄ»âó`ía=C´2|fykœ°p½‹!\û©ƒoÚ@[R K»pàJã™ê˜pZaõÑ–»á* ãCô«š6x_r¸Üðoúš4žèÃyüoÿ={©Gľó¦ÃLW¹Ð± ãŠJ$¤y‚J”Þ‡µÈ'™$ Ì$Ëï÷c51=O&øýJòð;pJvœßOùX¶©„vÅçèÂ’ '?„ó'ûÅÈJ fE!QÊ-¬¾dåby&LâõM4`Äç±íµØÔ¾œ )S^¬®¢ ÓÕDD Á$»×raݤIúàf`àðËÀÒ?ÒrF›Úg©gJzjŸ¥fX5†@BÊúÔ~]4#!<¶Ó0 C 0ŒH CÈÒ CÀ(#ÒB²dCÀ0 CÀ‚M…!”Át–øô”5|&†@iC€åceYŒH³ÔûË. HïéE¥J ˆBAEÁ`AB‘¤•h¢Q‚‰¨ôŽ!€Ò–¥÷&ué,,}—›ù™»wß»o ûê}ç|ßÛ;wfî”ÿÌ)sæ¾·†aÌ$!A@ð J  ¯´$‚e AÀ{ˆ@yKiI %k@ð&QÞlÌŸmíß¿ŸvìØáÏ.¥/?!P¥JªQ£†Ÿzór7J„"3Áù8ƒwß}7—$9d-ôJùòåéðáÃ^V1Ò\ øÕ¯~Èî3Ý·%2 ¡4 $# •Œ…¤L# •i¥A ¨d,$%d¨LC( Ɉ@%cáÓÔôéÓéwÞñiºñÉ“'Ó3Ï0ÆØÑ>0Þ¹s'%%%™åa‘Õ#i¼)¡vÓ=ü~ýú¥K—6Ê–-ËoWdÉ’Åxûí· å™o[|ôÑGƉ' ”7Îl[-(#22Ò8sæŒñé§Ÿ9sæ4òäÉÃϵlÙÒP‹Žëª…l¶/_>C½BctîÜ™ËÞ{ï=£víÚœ~íµ×ŒjÕª 0¢££ù™7ß|“ËæÏŸÏ÷ 64ËPã­X±‚ËÕbæûnݺ… ætûöíbÅŠJ(øÞúgÛ¶müÜĉÔúPŠ‚ç¯?ÏY)ÆíÏþ37÷Ÿÿü‡1Ù³gç¾ñ c¬•*Uâgц²Œ&>\)?uëÖ5BùM‰°±PÐŽjQRß¾}Y?õÔSì)¡bkñòË/Ó—_~I¥J•¢F¥Ø3Ìš5‹P_-"Öþ£GægÔâ¢eË–±+«„ü#F°ÖV™Âò +íÝ»—ÆŽËÖæ«¯¾"|.\hV)Y²$]¹r…H$\AO?ý4õéÓ‡Ó°t5kÖ¤lÙ²ñ½õOõêÕ9ÿÈ‘#f¶]76çK¨Y–§S§NT¿~}º|ù2cðøãSÇŽI[tÌ«G~ü8ÕªU‹™î¤L™2:évų„\ï]_®\9³ãÄ~,-BDϺ³ÖÇþ ûÔÑ”Ñ>0GУ>ª› ©Þ+b¬š€(œöQa%PšôPÞ¼y©uëÖìúÀ݃0åÊ•‹âââ.Ó?üÀ.¬Ò–-[aê¢E‹’Úc¥hÞê^¥(P7§OŸ6³`å ýµ‡kùÚµkS”™º$š4iÂíØE¤ÀoÑ¢…ùTFûPû3~Öúµ™˜˜ÎÓ®az16á°DX TFx·Z]x€gáâàL‘4µ·&d`«7K»ŒjÓÏû„¨Ssu°g̘Áû£!C†pdL8Ì!Âà 1´jÕŠË~‡Ûªß²ÿî»ïhðàÁ\†¨ž ¼°2€%EärÏž=ì†N:•÷^°ªš<õy‚àÆažš`™`‘Þÿ}Úµk@¼!nµ|º~X^ÓºmqF£|ýû÷74h`Îçã?6”E0ïUP€#S:C¹q…Sn›¡\mŒ9’£[jÿeࣺº –6”†æh¢‡Jk§ˆòÕ©S‡ë!ʧ ·¯‘?~óéœÚ—q;Ê55”µ4T¨šË]£|o½õ–¡¬#—á²:YC»ú£ÜZC@Ì:iõ¡ÜK3ú©×:ʇþ *Äm#ªöt†:>à¶]1V ë-]ºÔì;­D¨Gù B’2*P$„ iÔ¨Qnªý‚ð±Ú軕a1ªH—¡†r¯L²V„@µmÛÖPçZ†rŸLD½ØQ†Å¬Îu¬¦;Ŭ\ECY·°uzú@èó´#ý3”…5”µL¡lìêf4/Ô*¤¿`è+—®žÒªáSÀ­¼Eðä“Oºå#Cioþغd"0‚p¶'r \xªg—} ²ÈvE)ò<õ(>v„½˜²¶vEaŸ'e³°gÁÆAkÔʦjªY?ü°m»råÊn·{Š0¼/7÷þèÃnná²?t‰³˜I“&™›óp`V8Ì.«·VBrºå I¶É ƒ¨`åŒe\7oÞUç^7,9’ VBz…WmpNãtн¨ö\‰*ÈPÔéSåóPždH ¾*€—ZN ´Qïàe§Ï>ûÞéS ùù…lP"ä‘OçâãoªÐúõb+¾Ç5\½œkÿòk:›“j>F@öP>8³Í/Y²_ÿ‰ŠÊB lÍlsò¼ò1À™m~öì-J "”…2hæÌÍ™mNž÷1"P>83ÍŸ;w•6n<òÿ¯»ê«qtèÐ/_ÝÏL»ò¬ïò¶™nyÁ‚XŠŒLþÊIÖ¬‘4wî/_—ÈtãÒ€Oò ¬Þi.žzG×lìîÝ$uL°É¼—Dð! |<á;vAýªÒ©ßGBÁ©SWhÛ¶ãA:j–T®ùó·ªßÖsgܾyó$Ú¤l“ ¬Œ»‡³'W‚Û7gNŒ›år­'÷AÀ]fÒ«Ý»O«_rÿL]åÒ¥Z·î¾•k! DÌÐC™7/FýVE¤¾u»FEÁí“hŸ0A!LpsáÚy¢ÄÄ$õ£˜±©Öñô¬äû(ßâ›áÖq‹]X¡èè_>°VøDGGñéë×ï¨ßWß›áöåß"Òo›ûšÀ´¡9²mŠÎáÞá;Q:ÔK‘Ÿ'OŽ÷rxämóÀó Íôé3CýÞ š6­Kšu¥B`—/°øKïC@Êa •é¨Àâ/½; (‡1T¦XD ‹¿ôî0D ÆP™N` ,þÒ»ÃrCe:E@*°øKïC@Êa •é¨Àâ/½; (‡1T¦XD ‹¿ôî0D ÆP™N` ,þÒ»ÃrCe:E@*°øKïC@Êa •é¨Àâ/½; (‡1T¦XD ‹¿ôî0D ÆP™N` ,þÒ»ÃrCe:E@*°øKïC@Êa •é¨Àâ/½; (‡1T¦XD ‹¿ôî0D ÆP™N` ,þÒ»ÃrCe:E@*°øKïNCÀúæ›o Å·ýdÍZ؈Ž.²ãöŸþy¬4Ûÿ±Iß~û­ÓôaḨk×®!1No 2l*K–,ôÒK/y3i#ƒôêÕ+ƒO„nuÙC….ïdäAˆ€T2E†ºˆ@….ïdäAˆ€T2E†ºˆ@yàÝž={¨mÛ¶TªT)ªR¥ õéÓ‡Ö¬YcÖNLL¤K—.™÷®‰P‹-èìÙ³®E÷u?yòdzæ™g¨H‘"T¡Bzá…hÕªUénëÆtíÚ5®ïí±¥{aPQʆÉêÀ„^|ñE:tèuïÞúõëGÛ·o§&MšÐòåËù‰E‹QÁ‚éîÝ»6-%%%QBBÝ»w϶<#™½{÷&„ž£¢¢høðá<¦cÇŽQóæÍiüøñéjªK—.Ô±cG®ëͱ¥«ópª§m8ØÍš5kº§ª„…Q•@™Ï¨Eh”,YÒèܹ³qóæMc„ \Gi{e'Ož4®^½jÄÇÇÛ¶m3”3Μ9Ã׋/qqqÆíÛ·M›6;vìà|³q•PĈ‰‰á6îܹÃí |ÅŠÜÏСC­Õ¹-%PFŽ9̶ÑhïÞ½ÆO?ýÄupáÂã¹çž3š5kfœ:u*ÅØP:qℱdÉcëÖ­†R¿dª¿é»YÙC¢hÑ¢as°K0pTvFê믿æE ¡±ÒîÝ» |”«e¨s-®£Œ£G•*U2ž}öY#gΜ¼x7lØÀå(SΨV­×A}¥° ƒ^¸Ê•4”µã|~ýúõB… q×íÛ·7Š+fܺuË:NCpÑÖĉùóçsºaÆꭊhN£OÊÛo¿mDDDp^½zõ ëØÐÐÈ‘#y> àz 4`ABYZcG´(œJ\>w¤U«VTµjUv­Ê”)C:u"µhI- z衇¨qãÆ4{öl~RY+*[¶,§•5¡Q£FѤI“ÜZUVƒzôèA¨· ®#Ü6eµØSBDʒвeË8_7€ýNÍš5)[¶l:˼V¯^ó9bæ)+JW®\¡ƒ’².4hÐ 7n½òÊ+Ô¦MR–ˬ‹Äºuëx}›âª\LBpoh6l)7*V¬HÊ=¥Õ«Wë"Ûë¼yó(oÞ¼¬4PÏ!³råJ³¾§±›$a"Ì 3K;wîäE­Žè´¶ÚßP‰%hÀ€‚ÅðDˆÎiÊž=;'P{/N?øàƒº˜j×®m¦ÑCÿv„E6PGS¹råt’#‚çÏŸ7ïíæZµj¥ÊâÅ‹³µÔõ=]—Ë5¨d,ÌÔèÑ£ÝÞû«S§Gþî7 ®ö0fûÖ„Úñ­Ú™ÙVBd166–Ö¯_o–ëÄâÅ‹ ‰ð¼¦Ó§Oë$­]»–¬‚jXè×®]ØK›¹PÖç<Ý|@&"P&ɉ֭[¬”Ь‘ŠÔñ¾Öo«7jÔˆ+ª?_÷íÛ—b1&·’¾T5‹úƒ>`ÁA8~ìØ±æÃ={ö$¸šÓôéÓI9gdØM:•È–S?—{¨Y³fötØ‚àjBØPf¥–-[òÞ sEÙÆéÇä=—µž¤Ó‰@Z'”g4ʇ9«…i(íÏ‘1¥¡öU†:L5” Åàª\!.?|ø°Q¹rec̘1&\ÖHZÿþý DÎ4©…ËÏ-]º”³åS{ÎC›j‘sˆ^×W‚ÀQAŒCrçÎm(ÁÓUÌ(¢x¨£Î¬ %„†: ã:ß}÷ç)Këå¦n·3fÌÈðsÖžxâ ·C[k¹¤ýƒ€X(ÿà,½„ "P!Â褤̿µ"S éaŠ@…ûbb~V¯í ‘ÊÃf…ï-…ê†=oÞÆêÕ ìtùò2Y±AŽ@‚|Œ™ÞWáHàΠA›Ôïч>FÑÑ¡éTàýD¼xët …¯`àŠ´fÍ~õêÓze]‰r媬¾‚‘üâl(ÎÇécMuçt®Xæ7wnŒúê{$¿ >{öK‰$ƒ¨`äÊÿÇtûv"-^¼M}ç)I}Mãžú‘˜}3ˆG,C â5°rååî%š#Ä~jñâíæ½$‚¨àã‰9¢9sàî% ñ£Y³6™å’>D ‚'<¢„„ÛêûL»•»—| {ïžA›7S¿õw5HG-à Ò5°lÙÞ7¹/22‚,ˆuÍ–û A@*Há:ŒY³¶ØD#81sæf×êr$ˆ@ #¬Ã¸x1Aý†ÄA[ …ÀÄž=§ÔWá/X‘t $Œ°cáÂm¶ÖI×Á¹Ôüù[õ­\ƒ¨ b†ÊÌ™›Ôo¢{~# çR3g†æ«TzŽN½Š@gOž¼¬~üòDš¿¤ôóÏ—Ô/3 ²ÑËpÂâ]¾PbslìÏê‡'K§°Pqqñ¼Ÿ*Y2ù7!²d‰`ª^½T(MÏñc ‹·ÍC‹}úÌP¿™wƒ¦MëêSqüøÅås<‹e‚þD@ÊŸhK_ŽG@Êñ,– ú(¢-}9(dzX&èOD ü‰¶ôåxD Ïb™ ?ò'ÚÒ—ãr<‹e‚þD@ÊŸhK_ŽG@Êñ,– ú(¢-}9(dzX&èOD ü‰¶ôåxD Ïb™ ?ò'ÚÒ—ãr<‹e‚þD@ÊŸhK_ŽG@Êñ,– ú(¢-}9(dzX&èOD ü‰¶ôåxD Ïb™ ?ò'ÚÒ—ãr<‹e‚þD@ÊŸhK_ŽG@Êñ,– ú(¢-}9(dzX&èOD ü‰¶ôåxD Ïb™ ?ò'ÚÒ—ãr<‹e‚þDÀí?nذ>ùäŽAúJ¸¸œê_‚FPÉ’ iÔ”b"еkWjÖ¬YŠ.ÝþÇî‰'hÖ¬YÔ¨Q£å&pdQ~>çÎn ÒsJÖ­[GM›6M™©îÜJ×1b„NÊU\hÓ¦KÎ/·²‡²…E2ûC@êþp“§[D la‘LAàþº?Üä)AÀA ÛÚA˜¹|ùrÚ»w/õéÓǧ£»yó&M:•~úé'ºvíÕ¬Y“~ýë_ÓSO=EY³fM³ï[·nѽ{÷è0ëîß¿Ÿ¾þúk:pàݽ{—Ê”)C¯¿þ:=öØc\gþüùtìØ1úýïo>ˆæ›={vžçÎ;iúôéæ0²¨ðcéÒ¥©^½zô裚ù~ø!=þøã©F‹—,YBkÖ¬áù— *ÐóÏ?OuêÔ1ÛI-aÅÑé/¾ø‚þøÇ?RR{̧e!o¡ä®]»| Ÿ1ca€Ù8ÈŸ??ýå/¡Ï?ÿ<]}üñÇôÁ˜u×®]K½zõ¢ .Ы¯¾J/¿ü2%&&ÒþðZµj×;}ú4ù$ 0‰ŽŽær×±yóæÚxóÍ7u“Ô®];ûŒFÍ‚õ·¿ýó!¯¼ò kj<óÞ{ï‘ ‹L‚´}ûv2dA` „bÙ²e)¦Žv±`._¾Ì̇ÆoÑ¢ 86nÜHC‡¥5jО={Ø mhIhÙ­[·²–ýôÓOy.Öû*Uªpß°„`‚^(:u¢Æó th .(#Ùï~÷;êС/´õë×s½aÆÑoû[^ð°FVwÏ#("<‚€#XÜÌ1cÆp‚÷ý÷ßóxnܸAÀnBß¾}YÈ€¬*®'|aå/0ųX”úÓŸ¸½îÝ»³rœ8q"_]•ž´lÙ’-ø¿ÿýoêÖ­+¸o°¾®cB„…‡{k%`ñÖ[oñ³88EO<ûæ›oÈŠé;ï¼ÃëðÛo¿eE;mÚ4ŠŠô‘G¡÷ߟ ë¼ß±c+X·þýûS«V­¬Ã¹¯´×\>hC¼aÁÂÏÆ›9s&3 Ú¯i`Xð ÿþ÷¿Ì ,Jì%°°áV¡X’… òÂÇ‚5X¨§Ÿ·›1öSÿú׿X t`Ž&êâÅ‹éŸÿü']½z•&MšÄEX(X¸zÁXïa)á’àµ,èA@±¸xñ"A`AAã®X±‚™†¾¡¡¿üòKÚ·oï`q4h@ãǧS§NqŸ°b®T²dIÞ{hm A‚;\àjB1À5‚–Å¢ÂBZ´hゾ€©&(´Î;óbñ„/ê_,r,À¥K—RµjÕX°!Ô˜„lРA,ºm×kåÊ•y7ÕŽ¬cC)jÅd­L X°ªšìx†}¥S]W¬¿©j¿ >a ×À|Ê”)f5(¬Q(Y`è òš@AÛ`âØœ‚ í}Eð›ßü†™£™¿phD,$¸.X®qãÆ´#öx~<\ ÔƒÕñDp‰ðJê/^œ-œ®‹G·£­*@¹ÞCHá¦AëÂõútébZ‹•+W0€›mÓ¦Mºkó ˜^Â^套^âÅÚ¼ys~ î, J ‚†9kK†Šp› ŒPN˜¾À íÀ-…u¬[·.cŽ~ÒK°®èØÚ‘u,èG»ø®uaiávj…‚rO ì)&L˜À–ÂŽ½ n•&,=‡+¢b lî5Ó9CýÙ²e [#X®Ikt$ð;v,·!†fרëúV è _-ÜÐäØjB›poÓK’“'OzTvÖ±€Gž„– c²ò1£</ Ð `4a}Zy Þk‚€{ƒ’{Ìdkv Ç®I¸}$¸]p¥à°°I…‹— ~4‹Z“ÕÐyújÕÐ`2,œ•!Övà¤&œºMÔëÝ»7ï1tôâ‹/ò-ÚÄ„f‡BÐX5»—Œu.¤+ÁB#x¡…Ǯث@ ±7Eˆ zª‹><á‹qƒà:êqà îÑ£‡)ø\!?p­¡Pà.¦EØÓÁ岋ÎâX.¯¦Œò ¼9zô¨¹E;Ø[[yVºßû¹zM ÒÛ9Î&à }õÕW¼ØôÂïŸ{¸mˆÂ 4 ,ö,ˆÌЦžÀa/mŸ ívâô‹vànBÖ¯_Ÿ›ÂÞ .6ýÖ{øØp!t£°?„6ƾJ®æ…ö`}Ñ7Æ‹ 5ú!Ê aÇ=¬?þø#+cj‰¾6ƒ`\¼´ZšmªC`¾vä _¸ÄÀ{îܹŒ-æ3$•˜`ìPb˜·&Æ À¾ØÁR#r™¡&"zâ mÌ}bÿ‰@†t´å‰gVL­}‚ߨëçàÒ"´=—¯Ék._ZÕ­ ?V¢aˆ,!t  …Aä~e­[·f- ¦aakÒm㮘‹È\.lä~øa‚_ ‚À ,FhAlÚAdXGøúpW­÷ˆ`"$‹sæ…{…qŒ5Š™p:ň#¸=,Fì±´«Š¾ èV`á`¾Ø/ J‡3.„éÚµkó=æeu[¬óÄ2¬<ö¨ƒ½(¬=¬;Æ‹ºÖúžðÅ<à¦"ú¬@X옇îí"$¾hW ü¡öŽPøh²öí:¸X#áÕåOûT+yâ™Sëá7°?Œ¶P>|!,²ŽMß»æqÅûøãöC˜}ld¡=}E8@›CƒX ~,ΠÁ¡9­~7òa 4®as„Eáv`ñcs½ŠÖ²(X ,jøØ`žv'­ý¤–ÆøÀ\h?¸mhÕæ†%Bß8G±„ Øú¶¬ æk AÖ‹Øú\ji< k+BẟBYjø¢ ˜áj·Þý@¨¼I°®PŽ?0³.ìôðÌS=>x àÖLFy­ÛðtE´÷£>â@–µŽwѱ¶l“Æäà&Àý€ÏîJX8/°#X6,âôÚ±n‚]ŸÑZÖ5?­{´ Ë™!*‡¹ ê@p$p¿¤úyë~Qçékjø¦…™:é¶¼u…¡=©µé‰gv˜êv ¤ZÑè<__ý*Pp£ðÆ̱kt+#žÁÎWÇi96ôv`Ó³a¶{Vòƒ@(ò, ._`Ø#½ ÞCÀ“Ëç÷(Ÿ÷¦$- Á‡€TðñDFˆ@…0ódèÁ‡€Ç Î!„AÀœ!Ú‘›@! ›ž“z»Æ$Opølw4ãå @dž‚€/=”/P•6è°e½L܈@ùUi3l [ÖËÄ}Àÿrcþ%p*CIEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1Row-members.html000755 000765 000024 00000051500 13515046515 025012 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::Row Member List

This is the complete list of members for mysqlpp::Row, including all inherited members.

at(size_type i) constmysqlpp::Row
back() constmysqlpp::Rowinline
begin() constmysqlpp::Rowinline
const_iterator typedefmysqlpp::Row
const_reference typedefmysqlpp::Row
const_reverse_iterator typedefmysqlpp::Row
difference_type typedefmysqlpp::Row
disable_exceptions() constmysqlpp::OptionalExceptionsinline
empty() constmysqlpp::Rowinline
enable_exceptions() constmysqlpp::OptionalExceptionsinline
end() constmysqlpp::Rowinline
equal_list(const char *d=",", const char *e=" = ") constmysqlpp::Row
equal_list(const char *d, const char *e, Manip m) constmysqlpp::Row
field_list(const char *d=",") constmysqlpp::Row
field_list(const char *d, Manip m) constmysqlpp::Row
field_list(const char *d, Manip m, const std::vector< bool > &vb) constmysqlpp::Row
field_list(const char *d, const std::vector< bool > &vb) constmysqlpp::Row
field_list(const std::vector< bool > &vb) constmysqlpp::Row
field_list(const char *d, Manip m, bool t0, bool t1=false, bool t2=false, bool t3=false, bool t4=false, bool t5=false, bool t6=false, bool t7=false, bool t8=false, bool t9=false, bool ta=false, bool tb=false, bool tc=false) constmysqlpp::Row
field_list(const char *d, bool t0, bool t1=false, bool t2=false, bool t3=false, bool t4=false, bool t5=false, bool t6=false, bool t7=false, bool t8=false, bool t9=false, bool ta=false, bool tb=false, bool tc=false) constmysqlpp::Row
field_list(bool t0, bool t1=false, bool t2=false, bool t3=false, bool t4=false, bool t5=false, bool t6=false, bool t7=false, bool t8=false, bool t9=false, bool ta=false, bool tb=false, bool tc=false) constmysqlpp::Row
field_num(const char *name) constmysqlpp::Row
front() constmysqlpp::Rowinline
iterator typedefmysqlpp::Row
list_type typedefmysqlpp::Row
max_size() constmysqlpp::Rowinline
operator [](const char *field) constmysqlpp::Row
operator [](int i) constmysqlpp::Rowinline
operator private_bool_type() constmysqlpp::Rowinline
operator=(const Row &rhs)mysqlpp::Rowinline
OptionalExceptions(bool e=true)mysqlpp::OptionalExceptionsinline
rbegin() constmysqlpp::Rowinline
reference typedefmysqlpp::Row
rend() constmysqlpp::Rowinline
reverse_iterator typedefmysqlpp::Row
Row()mysqlpp::Rowinline
Row(const Row &r)mysqlpp::Rowinline
Row(MYSQL_ROW row, const ResultBase *res, const unsigned long *lengths, bool te=true)mysqlpp::Row
set_exceptions(bool e) constmysqlpp::OptionalExceptionsinlineprotected
size() constmysqlpp::Rowinline
size_type typedefmysqlpp::Row
throw_exceptions() constmysqlpp::OptionalExceptionsinline
value_list(const char *d=",", Manip m=quote) constmysqlpp::Rowinline
value_list(const char *d, const std::vector< bool > &vb, Manip m=quote) constmysqlpp::Rowinline
value_list(const std::vector< bool > &vb) constmysqlpp::Rowinline
value_list(const char *d, Manip m, bool t0, bool t1=false, bool t2=false, bool t3=false, bool t4=false, bool t5=false, bool t6=false, bool t7=false, bool t8=false, bool t9=false, bool ta=false, bool tb=false, bool tc=false) constmysqlpp::Rowinline
value_list(const char *d, bool t0, bool t1=false, bool t2=false, bool t3=false, bool t4=false, bool t5=false, bool t6=false, bool t7=false, bool t8=false, bool t9=false, bool ta=false, bool tb=false, bool tc=false) constmysqlpp::Rowinline
value_list(bool t0, bool t1=false, bool t2=false, bool t3=false, bool t4=false, bool t5=false, bool t6=false, bool t7=false, bool t8=false, bool t9=false, bool ta=false, bool tb=false, bool tc=false) constmysqlpp::Rowinline
value_list(const char *d, Manip m, std::string s0, std::string s1="", std::string s2="", std::string s3="", std::string s4="", std::string s5="", std::string s6="", std::string s7="", std::string s8="", std::string s9="", std::string sa="", std::string sb="", std::string sc="") constmysqlpp::Rowinline
value_list(const char *d, std::string s0, std::string s1="", std::string s2="", std::string s3="", std::string s4="", std::string s5="", std::string s6="", std::string s7="", std::string s8="", std::string s9="", std::string sa="", std::string sb="", std::string sc="") constmysqlpp::Rowinline
value_list(std::string s0, std::string s1="", std::string s2="", std::string s3="", std::string s4="", std::string s5="", std::string s6="", std::string s7="", std::string s8="", std::string s9="", std::string sa="", std::string sb="", std::string sc="") constmysqlpp::Rowinline
value_type typedefmysqlpp::Row
~OptionalExceptions()mysqlpp::OptionalExceptionsinlinevirtual
~Row()mysqlpp::Rowinline
mysql++-3.2.5/doc/html/refman/noexceptions_8h_source.html000755 000765 000024 00000053175 13515046515 024206 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: noexceptions.h Source File
MySQL++  3.2.5
noexceptions.h
Go to the documentation of this file.
1 
15 /***********************************************************************
16  Copyright (c) 2005-2007 by Educational Technology Resources, Inc.
17  Others may also hold copyrights on code in this file. See the
18  CREDITS.txt file in the top directory of the distribution for details.
19 
20  This file is part of MySQL++.
21 
22  MySQL++ is free software; you can redistribute it and/or modify it
23  under the terms of the GNU Lesser General Public License as published
24  by the Free Software Foundation; either version 2.1 of the License, or
25  (at your option) any later version.
26 
27  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
28  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
29  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
30  License for more details.
31 
32  You should have received a copy of the GNU Lesser General Public
33  License along with MySQL++; if not, write to the Free Software
34  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
35  USA
36 ***********************************************************************/
37 
38 #ifndef MYSQLPP_NOEXCEPTIONS_H
39 #define MYSQLPP_NOEXCEPTIONS_H
40 
41 #include "common.h"
42 
43 namespace mysqlpp {
44 
45 #if !defined(DOXYGEN_IGNORE)
46 // Make Doxygen ignore this
47 class MYSQLPP_EXPORT NoExceptions;
48 #endif
49 
70 
71 class MYSQLPP_EXPORT OptionalExceptions
72 {
73 public:
77  OptionalExceptions(bool e = true) :
78  exceptions_(e)
79  {
80  }
81 
83  virtual ~OptionalExceptions() { }
84 
86  void enable_exceptions() const { exceptions_ = true; }
87 
89  void disable_exceptions() const { exceptions_ = false; }
90 
92  bool throw_exceptions() const { return exceptions_; }
93 
94 protected:
99  void set_exceptions(bool e) const { exceptions_ = e; }
100 
103  friend class NoExceptions;
104 
105 private:
106  mutable bool exceptions_;
107 };
108 
109 
118 
119 class MYSQLPP_EXPORT NoExceptions
120 {
121 public:
128  assoc_(a),
129  exceptions_were_enabled_(a.throw_exceptions())
130  {
131  assoc_.disable_exceptions();
132  }
133 
138  {
139  assoc_.set_exceptions(exceptions_were_enabled_);
140  }
141 
142 private:
143  const OptionalExceptions& assoc_;
144  bool exceptions_were_enabled_;
145 
146  // Hidden assignment operator and copy ctor, because we should not
147  // be copied.
148  NoExceptions(const NoExceptions&);
149  NoExceptions& operator=(const NoExceptions&);
150 };
151 
152 } // end namespace mysqlpp
153 
154 #endif // MYSQLPP_NOEXCEPTIONS_H
155 
void disable_exceptions() const
Disable exceptions from the object.
Definition: noexceptions.h:89
bool throw_exceptions() const
Returns true if exceptions are enabled.
Definition: noexceptions.h:92
Disable exceptions in an object derived from OptionalExceptions.
Definition: noexceptions.h:119
OptionalExceptions(bool e=true)
Default constructor.
Definition: noexceptions.h:77
Interface allowing a class to have optional exceptions.
Definition: noexceptions.h:71
~NoExceptions()
Destructor.
Definition: noexceptions.h:137
virtual ~OptionalExceptions()
Destroy object.
Definition: noexceptions.h:83
This file includes top-level definitions for use both internal to the library, and outside it....
NoExceptions(const OptionalExceptions &a)
Constructor.
Definition: noexceptions.h:127
void set_exceptions(bool e) const
Sets the exception state to a particular value.
Definition: noexceptions.h:99
void enable_exceptions() const
Enable exceptions from the object.
Definition: noexceptions.h:86
mysql++-3.2.5/doc/html/refman/nav_f.png000644 000765 000024 00000000231 13515046516 020401 0ustar00tangentstaff000000 000000 ‰PNG  IHDR8³»`IDATxíÝK€ EÑ–·[†øBÑmkâÄÂH—prÓ¼.‚Žó‚ꎤR6Z VI±E‚5j³„lóš›iI˜¬ÞêçJ0ŒÑÑ/Žû›™uøñóÞ¿6sH ÝõyIEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1mysql__type__info.html000755 000765 000024 00000072542 13515046515 026343 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::mysql_type_info Class Reference
MySQL++  3.2.5
mysqlpp::mysql_type_info Class Reference

SQL field type information. More...

#include <type_info.h>

Public Member Functions

 mysql_type_info ()
 Default constructor. More...
 
 mysql_type_info (enum_field_types t, bool _unsigned=false, bool _null=false)
 Create object from MySQL C API type info. More...
 
 mysql_type_info (const mysql_type_info &t)
 Create object as a copy of another.
 
 mysql_type_info (const std::type_info &t)
 Create object from a C++ type_info object. More...
 
mysql_type_infooperator= (const mysql_type_info &t)
 Assign another mysql_type_info object to this object.
 
mysql_type_infooperator= (const std::type_info &t)
 Assign a C++ type_info object to this object. More...
 
const char * name () const
 Returns an implementation-defined name of the C++ type. More...
 
const char * sql_name () const
 Returns the name of the SQL type. More...
 
const std::type_info & c_type () const
 Returns the type_info for the C++ type associated with the SQL type. More...
 
const mysql_type_info base_type () const
 Returns the type_info for the C++ type inside of the mysqlpp::Null type. More...
 
int id () const
 Returns the ID of the SQL type. More...
 
bool quote_q () const
 Returns true if the SQL type is of a type that needs to be quoted. More...
 
bool escape_q () const
 Returns true if the SQL type is of a type that needs to be escaped. More...
 
bool before (mysql_type_info &b)
 Provides a way to compare two types for sorting. More...
 

Static Public Attributes

static const enum_field_types string_type
 The internal constant we use for our string type. More...
 

Detailed Description

SQL field type information.

Constructor & Destructor Documentation

◆ mysql_type_info() [1/3]

mysqlpp::mysql_type_info::mysql_type_info ( )
inline

Default constructor.

This only exists because FieldTypes keeps a vector of these objects. You are expected to copy real values into it before using it via the copy ctor or one of the assignment operators. If you don't, we have arranged a pretty spectacular crash for your program. So there.

◆ mysql_type_info() [2/3]

mysqlpp::mysql_type_info::mysql_type_info ( enum_field_types  t,
bool  _unsigned = false,
bool  _null = false 
)
inline

Create object from MySQL C API type info.

Parameters
tthe underlying C API type ID for this type
_unsignedif true, this is the unsigned version of the type
_nullif true, this type can hold a SQL null

◆ mysql_type_info() [3/3]

mysqlpp::mysql_type_info::mysql_type_info ( const std::type_info &  t)
inline

Create object from a C++ type_info object.

This tries to map a C++ type to the closest MySQL data type. It is necessarily somewhat approximate.

Member Function Documentation

◆ base_type()

const mysql_type_info mysqlpp::mysql_type_info::base_type ( ) const
inline

Returns the type_info for the C++ type inside of the mysqlpp::Null type.

Returns the type_info for the C++ type inside the mysqlpp::Null type. If the type is not Null then this is the same as c_type().

Referenced by mysqlpp::SQLBuffer::quote_q().

◆ before()

bool mysqlpp::mysql_type_info::before ( mysql_type_info b)
inline

Provides a way to compare two types for sorting.

Returns true if the SQL ID of this type is lower than that of another. Used by mysqlpp::type_info_cmp when comparing types.

◆ c_type()

const std::type_info& mysqlpp::mysql_type_info::c_type ( ) const
inline

Returns the type_info for the C++ type associated with the SQL type.

Returns the C++ type_info record corresponding to the SQL type.

Referenced by mysqlpp::operator !=(), mysqlpp::operator==(), and mysqlpp::SQLBuffer::quote_q().

◆ escape_q()

bool mysqlpp::mysql_type_info::escape_q ( ) const

Returns true if the SQL type is of a type that needs to be escaped.

Returns
true if the type needs to be escaped for syntactically correct SQL.

Referenced by mysqlpp::SQLBuffer::escape_q().

◆ id()

int mysqlpp::mysql_type_info::id ( ) const
inline

Returns the ID of the SQL type.

Returns the ID number MySQL uses for this type. Note: Do not depend on the value of this ID as it may change between MySQL versions.

Referenced by mysqlpp::operator !=(), and mysqlpp::operator==().

◆ name()

const char* mysqlpp::mysql_type_info::name ( ) const
inline

Returns an implementation-defined name of the C++ type.

Returns the name that would be returned by typeid().name() for the C++ type associated with the SQL type.

◆ operator=()

mysql_type_info& mysqlpp::mysql_type_info::operator= ( const std::type_info &  t)
inline

Assign a C++ type_info object to this object.

This tries to map a C++ type to the closest MySQL data type. It is necessarily somewhat approximate.

◆ quote_q()

bool mysqlpp::mysql_type_info::quote_q ( ) const

Returns true if the SQL type is of a type that needs to be quoted.

Returns
true if the type needs to be quoted for syntactically correct SQL.

Referenced by mysqlpp::SQLBuffer::quote_q().

◆ sql_name()

const char* mysqlpp::mysql_type_info::sql_name ( ) const
inline

Returns the name of the SQL type.

Returns the SQL name for the type.

Member Data Documentation

◆ string_type

const enum_field_types mysqlpp::mysql_type_info::string_type
static
Initial value:
=
FIELD_TYPE_STRING

The internal constant we use for our string type.

We expose this because other parts of MySQL++ need to know what the string constant is at the moment.

Referenced by mysqlpp::SQLTypeAdapter::assign(), mysqlpp::SQLBuffer::is_string(), mysqlpp::String::it_is_null(), mysqlpp::String::operator=(), and mysqlpp::String::type().


The documentation for this class was generated from the following files:
mysql++-3.2.5/doc/html/refman/tabs.css000755 000765 000024 00000021747 13515046515 020266 0ustar00tangentstaff000000 000000 .sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255,255,255,0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;-moz-border-radius:0 !important;-webkit-border-radius:0;border-radius:0 !important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px !important;-webkit-border-radius:5px;border-radius:5px !important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0 !important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}}mysql++-3.2.5/doc/html/refman/functions_func_o.html000755 000765 000024 00000043733 13515046515 023051 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Class Members - Functions
MySQL++  3.2.5
 

- o -

mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1TCPConnection__coll__graph.png000644 000765 000024 00000034222 13515046516 027571 0ustar00tangentstaff000000 000000 ‰PNG  IHDRCÅέvsRGB®Îé8LIDATxí}˜ÅÖö–œAr΂¢"‚„+*¢€¤+&$êwAQ Š"DÅK ‚ò+ ^%«ˆJ’“äœsÎ,[ÿyÖ0;;³l˜é™9õ<3ÓÝ•N½5ýö ÕÝi 'Ò¤(Š@d#0/md_G¯(ŠÀu” õŸ (Š# d¨E@P%Cý(Š€"ÀDy¢0~üxzüñÇ=ë¾"qüþûïôÐC¥Ê¸7lØ@GŽI•¶ƒÝh¡B…¨\¹rÁ#ÉýÇ#CÛÂ?þh7õWˆ(.\¸@íÚµKõ1çÈ‘ƒŠ)’êý²ƒÝ»w²;¿öå“ [¶lé׎´1E T8}út@DŽŽ¦|ùò¤¯@urðàÁ@uå÷~ÔgèwHµAE@E” CqÖTfE@ð;J†~‡TTPD@É0gMeV¿#òd8vìXz饗üŒ·W®\IO=õ•)S†òçÏO÷ß? 0€bcc½w,&&†Nœ8á:Þ¶m[š0a‚k?56ÜñY½z5=òÈ#^?:tHîoÚf00¹©P!VÑï³gÏú”:ÿ3Ÿ‡PFÈ“áæÍ›iÑ¢E©ùôéÓ©nݺ´|ùrjß¾=½ÿþûT @zýõשqãÆtõêÕ›ÊðóÏ?SžG¥ß~û²eË&K:°¬Ã~0–`¤``Œq¦fŸÏ=÷µnÝÚgøŸùì<„2|.­Iì._¾L§-Z”öìÙCçΣ*Uªˆ¶„…¥È¿í¶Û(}úô’Ÿ5kVÊ;·«ù}ûöŽåÌ™SŽAû²u²dÉâ*‡v×®]KåË—§L™2NìâÅ‹»ò±qæÌÂCx2gÎLK—.•e vñ'HçäÉ“tË-·Ð¦M›èÔ©StçwR† ¤ Ô»téa¹CÚ´i¥»¢ƒæT±bEš={¶È‹JÿùϨvíÚôâ‹/Ò˜1c¤ Òbý˜•c¢-»Èv×®]TºtiúüóÏ)cÆŒÒ?¾PgÅŠÒ÷]wÝ%¤…ãÐ&!C®\¹hÍš5R§R¥J”.]:dK‚v Í/**Š*W®,c°yž¿ýúõ£²eËz|°¬¤páÂ2_(pàÀÁ(oÞ¼RëÈ0¯wß}7Ùc¶¡½{÷ò1æìÙ³ÛÃ2î``‚ÿåßÿM·Þz+,XÐ%O(oxžÇ§óçÏÓÅ‹e®0'˜³%JÐÖ­[å?äþ?ÃùfÿëÖ­“ÿ!æÛ&œ¸€â‰6ðÀyˆÿUØ'|œÄ‹­ñH¯8ÇÚY²d‰”¯W¯žü¢n:uLýúõ]û5kÖ4LFæÞ{ï5÷ÝwŸ«9&Ã'´>|¸á“Ü0¹&F“&MËٸq£”;w®a"0LRR¾Zµj†'HòÞzë-sÇwÈv«V­ –a²5LrÒ?kq’7eÊÙgíΕ‡²|Kþ¬Y³$Μ9ñöÙ”•¼™3gJžû“a‚6<ð€F¿µjÕ9ù`˜˜ÍĉÍŸþ)òŒyçΆ/ æ£>’zóæÍ3lz˸øhxý™ÔAf×®]e\L`Rmð}#¡.ÿÁ ¹|˜xOä¹ã3cÆ Ç–-[/ÍŸ?_dìÑ£‡ä-X°@ö­Œ½zõ’¹A?˜ ¾SÉ\»vÍðÅË´iÓFÚÆ˜1¾?üÐÕ~ 1L 40>‘ÍÈ‘#]òÜlƒ/”2¾åfE“Ï$mðIlòu~têÔIæÿ‰5j¾ Šì¼NX޳›$Îÿ ÿ9œ›˜CÌêYl˜X _ÜåŽã<Æ/þ»‰M“É4±ÅTnn<ÖK.6mÚÔìß¿ß 4HéðUÈ|÷Ýw²I1b„œD‡¾øâ ùÃ;vÌ<öØc2ø#£ÖŒÌ+¯¼"$Z²dIÃþ9ÃZ‡Ù¶m›L®/2Ää¡O´3zôhé{êÔ©Æ’!ûü › †¯šB>Ï<óŒÈ‚}6y…¤pÀ}ÿƒ>vX󔲞_O?ý´ŒH8ñùv$ÃÚŸá+¶iÑ¢…ût̤I“¤\,‚Lø*l€!ò°m¾bÖ(… 1®Jþ»ï¾+íìØ±CÚù6iÒİæ+uqÑQ!y#ÃG}ÔàÂáþÁÅ à$1²Vm0À„ pá¾×Ù³g›ÿþ÷¿„óÓO?öšQ£FIYÖÎ¥Í@còÃ?Hÿ¸Ð±Æd@îÀÒ^gˆžþy1·ì>ƒ+÷<ó‰FL R÷A?üðâ¶Ãl„?޵1/^,Á‰U«VêÂ-V¬˜¨õÏ>û¬Ô÷öA˜º(WªT)bÍÒUôwÞ3Aä³&(yØGß0 Ü÷a†ÀLp7Û¥Ð?_0U0.›`>ć¹\¿~ýz›ïc„éŒzp'0yPçΉ/ bÒ£ÆÑ¥KÉïØ±£´3iܸq4tèP1‹&Ož,.˜J¾Ú÷üزð…ÂÀš>:tHÌ`Éqo°&"Øc&D™óï¿ÿ^\0·`Ƴ¦.®ø'm $&ÀŠ­ zíµ×ˆI0ç|•cVžPûõu~ø_À‰ ÒåÒq/Ÿ7Ü0p0É 6Èç‹™œ··ß~»œÝ»ww¯öÛ~sX¼õ-XŸþ”H|áÒC4TLkrB!ß’k–Ô³gOñA~ûí·.?›(& Dã+áDpO¸ÝÉúêpœ58W6"Âð=Þ,ረ'HÛî þMÖš$¸b»÷ao·r—Á–³¿ðµ"áj“õq±Ö,‡ «MÖÏÈšb3œØ„‚ƒ/²&”ú÷ïïÕgˆ:ð™ÂÏÚ±©éòËBF;§¶m"ü„ðwâä³ >`;÷8HLØB¬ÁÊZÀE ÄøÞ{ïYñBî××ùÁ¦¬×±Àoï+¹ÿ—à·ÿ\|ÝÏ-÷ÿ£¯¶Âé¸ß4Ch‰Il–Š6Ʀ”\µØ¼“j쓚Mh " Ê R´ç~Ï#›‡>»r׈EƒÖå>Áîùì‹“ç«QD‘Aòо<Óü!Îk6‡]Yî},\¸PŽ»Ëà*øÏ†½ @d)H%þÑT݉ŖÁ/H' ´EZ QW¯^ݽH’¶Az° P…‹æ '8Ö¨AÂEà…^mû¡ûVî÷·“eË–IÚ8ú…6‹1A¶PM¾ÎäŒÇ× sÌ&²«I#)%ŽÁüˆû«ÄÜ|ûí·åd±ZÎW_}E/¿ü2!Úí/\Ñ«V­*Qá>}úˆù3Œ}>%‰À|ƒi m Qdkª£L&D’a¢³ŸL–Åà8Ntô¿}ûvìÆÙ‡6³È!Ó¤…‹}Sr‡YánºC+á …˜Æ¨óV˜¦Hø“AS¶Éš,8aqC>D±õÔDm÷_þÈøÅR˜´·¯4‡]Ó¦M‹óÁ㪠S»ví$²h<"å0© OóæÍå˜âÂ- &9Lj\Ѐ%ȸc(è½MÄdX¸h´¸˜Aë ÕäëüÀxàZécžR’` `NñÁÿ®šˆJ|ÄIÉ   X‚§>heFBÐû`Ø„/Žñú@{HôpîòUK‚L†µÉgß“DˆQQLDÍÜ(¼DFÊ! Àäá*‹´jÚ ê¢>9  lÞIÝ„¢É(€ÀLhRß¶¨{`ùˆnÛH"Övœl’KÐu™t “¤+šŒþyY„´1²ÏÒmìÖ­›D¨EPþâ?½”ûõ×_å‚èõX5o¾ù¦Œï7ÞŠÅÑpôíí<‡ §]DÙŒ2LÒOïÞ½¥Ôgw„áåDr)Šl»ˆ†#èdS 1Aà ÈYغ0¼8ÞŠsÓ_‹¯“¢É`ù:?þ÷¿ÿÉ|cžÍŸ´Éý†mâlb’5¼îTvñÿä5³òßżã|B[öÿkë$ôÑÑä„€ñ•ÇÃ>xÙ¼–ÎðÕ\Õ3QA âA”Ø’¡{9L^³fÍ ÚaíM"«6ß’!ò@D6¢móû‹h/ä`SL¢Òžõpâ#ÒŠÊ. r/ƒè0¢çÞÆÈš­,M@Ä6) mº/iÀ²%DýЦ¯¥9lbËŒÍõ8Ý àˆvR±t"ЄÎ`î~QŽ3‰Üù믿ä¼Áÿ}ñ:D!Cà‘ØÊdè· _Anš`‚ÂÇ•ðàÁñÊÔáe!ñŽãÌi˜š‰Ih'!²g%1mÚ20I#ãã™`ªù2×0F,ON‚[›làÆîûë ä=)¶mÖ\$ðe÷= //ñ!¤÷:?° ?¥ @^&E°ÁWÏ–!péíœÒ¾œX? d ¯5$6ãˆé&L”· î6AÐÄ[Q`b}9½ÕIÎ1ôáNJÉi#Üê(&¡1£v9çæ >ïHIi þºÖ¾Åã°{ÝVÂÜ‚†¥A©ý€ˆ`a8%aáØÛ`ChlóM!pTTE@ˆ ” #h²u¨Š€"à%Cߨ8:çÚµX;vß=¸g):z0*\²¸|æmv"YuµR||PR;Ð_=’TrælÀ‹À ðc–æð!»“Z]ËÜ=”Ðmš>Å‹MC§§§ãÓ£)Ï£—h–›?KÓg[©;’B1Å   â‹[º49íÛÏЧŸ^D•*¹©E‹’ü0…нËÂiˆã6LÜÁ’‰×Ê-ImûÈÊK´vø):·ÿ*¥‹NCüPˆ¢2:ËÀÃýÎX‚bi^<2 ±D¼¸Õ«÷á[Oð-YןšÓ¹óƒü„8¢—>â± 'Îì»L‹?ÞG{ž¦4iñðCšæ¥Ú½Š…Ó0ƒ9&}ôýÌ35…¯^½ÆOþÆëÂfRÍš}ù¾ã5þh^Û2WÏÇÒÒO÷Óøhß_gDkȰ«¸B‹ëO²ˆaÓ½j†!>•ž¦jÕzÇyðü½X'Z£FúðÃóš¯à¼ß$Ä¡ ®ø¼úwóOÇiéýtåÜ5нæ¶˜ç7g‰ŒÔrBÅàÊ^½«fêóY°`~–b9~¸ì ¿‘]0¿|ùN~ƒßz÷Ý)üö´K¡>Ôˆ‘ÿЪó4ñ©4¿ïnº|ÚƒæBºõqÕ ýý‡¸qù»em/`ÀT¶Ïtï4&†O$~¬×ÿûóùöÅ>ôý÷¹gë¶Ã8è*ýÑc'ýüÜf:¹ã’˜ÂlÇ“-Ó0w¼ãz e¨™œ2üQ¾ÂÊ•{%¨ý]_*eøMqEøY‰mø5ù!» q-l/过 ?¼<ŽIìPÚ¨4TêÁÜT¯_qÝM!j&§@GTG$ù‰'ª»"ÊÞ„ºn:§á{a ñÃfo<ÝÆ[Y=xŠß—“òVÌÂz`|MÐ]šØCÓùsÇÄ_Ûj&û É ·óä“÷H4Ù›ð1!õìÙ˜ö?õY§ý:"ÎùŽÎžŽ,K¥ëçæ¥3ÞåÂ`w˜”*ÎM€ÆW±b¡x(C`šãW_µç7 ÞÓv´@ð€ \¯_ ªÚÁû ï±¾°bKuo¤Ö )¦²Ah·uëšüÏÔ@î?**¿o&ƒ¼Ú³páœAH»L—OÇP¦ÜQ”6]š8Z"Lèrjà$9˜&¦Ž’abP ‘2Í›ßå"C˜ÂeÊä§?ÿìÁ‹°KSÛ¶_ñ‹œN‡ÈH"WÌõß¡ãQížÅ¨ágü"«Œé®“"cñº9)c.Ÿˆ\Ðü4r%C?é„fräÈDºÿƒ¼â:N–îø}Pƒÿ°t~KË—ïâwUçw<×á÷G7q¾À"á¹CWhjÛÍ”§\fj0¤t?a„@à„aê:C'ÌB d€V8pàS¼èz6}ûí’@u«ý$„/+œÙueÊ•žø¨¤aBX¥ržzcS`§5ß¼ù´}û^s8J”`“¬VY§‰Yò°Ù[£[Ê^4šÒgV~0'_}†ÁD?ˆ}wê4–æÌÙD?ÿü*•.­Žù N…ví ÔgèŒy¼—/ÇÐc §'ÎÓ/¿¼J¹re¼Ú£"àÔg蜹¬$ÑÑQü4›r _‡£}ÞÊX©´7E x¨“"xؽç¼y³òöž§õë÷Óë¯ÿtyTE ˜(}ô]¾|^”Ý–&LXNÆýá‰ÂW„˜KúZW'Ï®’¡“g'@²Õ«Wz÷nFýûO£éÓר×Èêï8žÜjmšt,²B£U2 ¡ÉJMQÛ·¯Ã·ëÕ¢ÎÇÑÚµ{S³«ˆkÏ œÙmÅ\Ž¥âÿÒf8õ dèÔ™ ‚\}û¶ {î)¥uð3öózï¡ã[.ÐÃCÊP¦<º´×Ïðú­9%C¿Aú áñ_úPÿÎãŠ/Òö'èÁKQ®ÒýÛ¸¶æW” ý gè7–5k´D˜ñ¸/,̶oÚ ý‘~[§ •#Rí7‹Qá{²^í1I(& ®È(\´hnYƒˆ;Túôù92íçQY{žæ÷ÙCUÛ òÍ⿳$&&†}³kiåÊ•tí¿êŸtòäI:tè¼ÕpÑ¢EtùòeÚµk—änݺUò°sîÜ9~:Ñ\¾‹h¿ì¬äãëÊ•+^Ë» xlœ8q‚Ž=*ý-[¶ŒŽ9"%.\¸@ .¤;wzÔ :sæ A¶Ý»wÇË»té?CóOúûï¿ã]H0±ÉŽ6?I¿|åפxE`Ò¤¦`ÁW͸q‹½æëAßð‹ßÍê¯y-°yófS±bE¼ùÉDEE™ ˜%K–HÙ·ÞzËT®\Ù•¿téR)ײeKÃo84cÇŽ5óæÍ3ùóç7Y²d13f4ùòå3L@RŸI#^y¯Büs°k×®¦hÑ¢¦D‰R/mÚ´¦S§NÒ>äÃçã?v5þ3gÎlÒ§O/y=ô9uê”ä4HdÊž=»ä5jÔÈð«j “½iРÔA]ŒyäÈ‘R‡IÝT¯^]Ê£òú÷ïïêïwÞ‘qC޼yó .)!] $~c.Ø[“"ছbź™ ¶ø,£IC fÍšæÎ;ï47n4¬é˜&Mš˜’%K q€ qâ·jÕʬX±ÂXr«P¡‚™2eŠ9~ü¸WÓ¦M k†µ$ƒíÂ… ÖÊâ•g­1Aá@†èoÈ!†50rÃþ{ï½gNŸ>müqS¶lYicÛ¶m&C† æ•W^‘<ÈË-·˜îÝ»ÖMÖ¬YÍÀ¥,ĺ`ÁóÃ?H›{÷î5/^4=zôyA”ƒ6¹rå,Pñ£>2Ù²e3 IÖ|¥Þ°aÄp‘Ù:vì(}$„£HÚ—’aÒðŠÌÒ;Žá+rO³mÛ‘ÈÀ£f³SNhÈœì8ÉA.82I"Y2œ4i’ìCƒDÙéÓ§Ë>¾Øô”c(ëYÞUÈÇȰxñâ®Ü~ýú™èèh!75j”hk؆†ˆ¾gÏží’½Y³f¦J•*BÌåË—7·Þz«3fŒaSXÈ™ÍXÃæ·hwO>ù¤™1c†9þ¼"ÚHÑ@1^6}E„f‰hyß¾}EÄ«W¯]$‰þØ_)Y0¥8zÅ! 6µU8j¹Ñ)ÒÕ :KÑ`ö->c&·Úh.ŸI4ðëñÉ,¾1>)%š»xñõˆ=|†®ØÄ„)å˜(ì!ñ"²ŠºR°Y->7ðVÞUÑËürµjÕrå 0 ŽqôèÑ&]ºt®ü#FˆO}ãS¿~}cƒ4½{÷–è6|Žø0yJ€>ºuëJyD¿ G?H3gΔ}Œyˆ#(Ã&³ä39J`ùLøâ“ìÒ¥‹ä%„£HÚ×\}Ò5Ϩ¦¤!0zô|zûíÉl=˯&½îËJZ áQúä¶KôS‡Íò>ãûúOÒ  aqÀD4-˜ðÕ%%Á¿s•#¸âcd²ðZ¾8ok÷Pš™»OÎk^b!d‡o‘£àqJp´[ä‚oÏúmhÁX íÖ]^`±pÄ\4LŽ8‹Æ íu|ðAñA2Y/ISºC‡Ò¬7™ùÕÛã˜×VüæÉ“‡rçÎí~Ûú¤kODt?qôì9‘~üq)MšôÝv[ÜW[&®…Ð.uñX Mi»‰²ަ†#ÊPÚ¨ÄùÝ=jøóàwó–@„ðU:5Á4®T©’[xà‚>HÖ%ØâKn,Hoß¾½¯lâ¨6µhÑÂ3_ÉÐÝO¼ÊZ·ÉWôƒôë¯]Ø•#qàžKøËs[èêÅXjúuyÊ-]ŒÊ™C@Ä—êˆæ ¾Uc*$%ÃT5bš×Ž9Bÿx”ÒgÖÓ#Ù †`E휴P¹^½ Ô»w3êß?æÉûý±NË®?OÑÒO÷S.Eø…ï‘s‹¡Óæ!ò(õê³}û:ü¼¾ZÔ¹ó8~Ü^Güèú 4ûí]Téñ|Tùé|Ž–U…ó?Mö?¦Ú¢¡ðP‡³®ÐÔ¶›)ß­™é¡¥)ª ³ö»ú †°Ÿb‡ ÐÉuà×zÒÔv›)*:-=úe9ŠÊ¤Lè¿M ÅÐ¥5D;’ûròC®^ˆ¥l3Pƒ!¥•#øOªfrO~0†¾|ù.~ÚpzöÙ:ün‹&ÁAûT¼! š¡7TôXê!P­Z 8ð)~‰ÑlúöÛ%©×‘¶¬$}PCÓâ)G@êr µÿ# žbÿcª-&}¨C"@Ò"E@}†…[;sG@êàŽ†nõy"ºû@?Ôáòék´°ÿ^Šá9iR<P3ÙÝ(z¨CìUC3ºn§½‹ÎÞn§IðD@ÉÐÝ8x¨ÃœwwÓÉí—èáOKSÆ\7 ø$‡@‡ú¯pà$:tˆæÏŸï@ÉRW¤fÍŠÓˆ3)gΣí¿wǦ³s Q–‡iæòÍDËSwNj=S¦Lü:ׯNɱ²hÅS3}útjذ¡%K}‘Ò¦ÍH±±—üÞQ–¨ìt>æŒßÛuzƒ… ¦}ûö9]L'ȧ/„rÂ,ø’áìÙ³”5kV_Ùz\HÁƒÓ'Ÿ|’`ͼ€ú o`¡[Š€"Á(FðäëÐEàJ†7°Ð-E@ˆ`” #xòu芀"p%ÃXè–" D0J†<ùþúرc饗^òWs ¶³|ùrjÚ´)-Z”òçÏOuëÖ¥ß~û-Á:ÁÎvΜ9C§OŸ–þ.\H[¶lq•vtøðaÙß´i-Y²Ä¥1ÙB É#Äq\ºt‰ß°×™ªW¯.2`û7Þ  P•*U¨gÏž¶ ^´Ëoâ[K¿þú+íÝ{ã|'äoß¾ ÆdpQA“›7ož®Í³¿h}bœž ÇþøãÚ°aƒ+ xc¸«}µmÛ–>üðCW~reu5 þC€'J“Ãà“Øð ^t(ɘT¤|½zõäuëÔ©cêׯïÚ¯Y³¦a22÷Þ{¯¹ï¾û\í9rĤK—Î >ܬY³Æ/^ÜðBo“&MS¤H³qãF);wî\“+W.“6mZ)_­Z5“%KÉ{ë­·ÌwÜ!Û­Zµ2+V4¹sç62dþÛ·o/yS¦L‘}6m]y(Ë#ùøB:u’ýY³fIù9sæ6…e{æÌ™®²vcÛ¶mæ§Ÿ~2L,†‰^Æ9­¼½zõ’¢§f͚ɀS¾|ù ¶ä³é-˜EGG»òGŽ)yL¤¦M›6"Cúôé%ŸIÍŠ`fÏžmòäÉ#ãv¥K—6L¸†µB©y>úè#ÃÚ¬vH)‘ÕÕqƒ 2|J%4Ë ¹ªúïºô–²gÏ.Ú Ÿro34!h;ß}÷hzÐXžyæÑz˜EÞÉ“'Ÿ¨ôÄOPŸ>}ÄÍõn¹å~<ÿ碩µk׎˜ðDó„Yl5³˜ÃøEY¤Ûn»M~Ý¿˜xèÑG%&!~i}oÑ̘ EþòË/©oß¾Ädåª-óرcÄOÀhÒ¤I®¼Õ«W‹Æ þÈ/¾øBò0àˆq@{.ÐL—-[&mŸ»ï¾[ƵcÇÑdq÷pŠŠŠ¢1cÆÈX\ñFJeuoK·ý€€3ê¦CH®f¸téR4þklÈ>“›ì3ñ&Íæ³Ï>“¼|Ð0‘Èv=LÆŒÍ|`˜D“„6ù×_Iý‰'J9|½óÎ;>5ÃÊ•+»Êa£T©R¢YÍÐj›ÈCŸÐ@o–† "20¹$XÚÕDmAh©Ð^­fÈA›%ôsÏ='û¨ ylúôÓOMŽ9dÚ›è†]òAРßÿ}W»ÐdmbÜ̘1Cv™ ͸qãdÛ]3L‰¬¶Ÿ„~U3Lxyªúázâ˜& ( ²@A*[¶¬üBcBâé'6å$à0aÂÑŽ 1A[DbÂmh–U«V%h\ðëY¿[5¤¾ ­ùJL~q²Ø%«‰"£dÉ’®|Ž=êÚ÷µQ¾|yÉúý÷ßãaÓY4[ø1\¹óÎ;ã”.ÐmBŸ6á©.ðµÚä™#Yð‹H6>ljóÓurŠ6 ¿ R¹råä_ìŽpi¸®ƒnð¦TV·ætÓ¨™ìÒÌÝÄ$ûáhÔ¨Qò ˆ&MšH5 û×Ä´CÐ…56 LX‚8xð «y˜‚¾Ò\Y ¨U«VÅ!O÷|#"VÛÌcöAJPij¿ü±˜®™3g&/‚'6!³Þ½„p²[ßþ*THÈ û:t(¿ö´¥¸PÎ=p³šµo[=Þ/dH©¬ñÕ)B qgOŠºÐÊNCþ5~ÐÛo¿-'3›Æ"¢]a¥J•D‹Á@Kĉ Ÿ"|}hqùÒ¼ D ÿü WD‘5jä*Ê&¶´ƒå&lZÆyÞ›©.H >DD~ ,(òb "Ç |:vì(mtéÒEÚdzûàe“^ú…–‹ÒJI²B£Æ¸úõëGÍ›7—È3|…ðƒöïß_dB¹îÝ»‹ÿ}²[‚pñî)µduïC·“€@<ËYäú ™ÄDv>ñÄ¿/ù}øìl‚_ÿ&†×ÚC†—“ø± E$˜µ1ÃKl$Ñ\øÞP‡µÃ&sŸ!›¦RÑdDRmYDtmÔÕú QíÀ—%/9qÉà+šŒ¼äÆðúBñy¢>>ðéq€ÆUÑq^‹è’‘a&yÉ·>C‹6hÐÀåc,V¬˜8p «-ÔË–-›ì³†kZ´h!í¢_ë[µ…œ$uÜý–œ’ãÀ¡[·nâ{D½”ÈjûMèW}† ¡/o.üHš†@RÉ09â³&ex}^¼ª 8ÿA¨ž‰£¨²üä ²KkÜË ±tí°¹j°$Å&K†Èò“›Cl=Ï_6} ¯…4¬9ö÷yfË,·A$æÏÄþA¹@`YŒgbÿ¢áõ“†£ÕžY†×J@Ê3ËRKV%CO´ÜŸ«ýçË|$%˜œX “ÿôL¾Àùï-Áœö¶´Å[Y´ƒÅо’gÅW9oÇaºc™¯¿‚?©‘Xsv™¿žíózM²Ï<,Sò–RSVoýé1ß(úÆ&,sà1b„¬íãEÄÉ#‚*¸Ä3!¢Š ‰·„H6"Ò¾‚Þêè1E Pè;P…tú±ï@ÑÇþ'4-ûØ\5ÝyM¾)FZ@P"%ÃH˜å0ãÅ‹q—ª„é0uXB@}†:9Ý`½œ]˜œúá\çÊ•Xš6m¯õ+ÎÃLÑØpŸµ¦Ä# d˜x¬^2%Ž€ à3e*O9rÜOÿûß›¼<ìÆítÃñÝa1¸¦Ä! ”Äᤥ†@ëÖ£x‰Ðúæ›çø6¹[&Š‚h%'-âE>uêß[½I–èLœ¸"âñPüƒ€Püƒ£¶@¦M»þ ¾Ÿ€~ÿ}?¤A)„?l»R2 Û© ß¿TG†^¹r_µ>|«# J†ƒZ;ò‡Ÿá§Kïâ÷œàÙÄOéNÃO’YG@É0Âÿ¡6ü©SWQºt×V Ù¯]‹å×læGiy¿0ÔÆ§ò%Ãàa¯='\&èYuÚ´5ž‡t_HJ†I‚K ;ñÃS÷³¿0®¤Œ¿,îAÝS’ˆ€’aÓâÁC`òäü¦¹tñ€ÿpÙ²tðàéxyz@H,J†‰EJËD‘cb¼ßm•–_ã¹*è2ª¡‹€’aèÎ]DI¾nÝ>Ú½û„Ï1ó¯ þDMŠ@rP2L.rZ/ L™²Š_¬äûVzø 7n<À/:P¹´³ðA@É0|æ2¬G2aÂ2ºzõú;Œè”)+ÊÖ«h†"Xöï?I5k–‰Ó)Ž­_¿Ÿ4¨çxb3NÝQþA@ŸZ£…D`âÄåünâhçÎ!)¿ í8ô©5Ž›HP‚‚€ú ƒ»vª(NC@ÉÐi3¢ò(Š@PP2 ìÚ©" 8 %C§ÍˆÊ£(AA@É0(°k§Š€"à4” 6#*" %àÀ®*Š€ÓP2tÚŒ¨<Š€"” ƒ»vª(NC@ÉÐi3¢ò(Š@PP2 ìÚ©" 8 %C§ÍˆÊ£(AA@É0(°k§Š€"à4” 6#*" %àÀ®*Š€ÓP2tÚŒ¨<Š€"” ƒ»vª(NC@ÉÐi3¢ò(Š@PP2 ìÚ©" 8 %C§ÍˆÊ£(AA@É0(°k§Š€"à4” 6#*" %àÀ®*Š€ÓP2tÚŒ¨<Š€"” ƒ»vª(NC@ÉÐi3¢ò(Š@PP2 ìÚ©" 8 %C§ÍˆÊ£(AA@É0(°k§Š€"à4” 6#*" %àÀ®*Š€ÓP2tÚŒ¨<Š€"” ƒ»vª(NC Êi…›<Ÿ}öÍž=;܆ôñ?ž‰eÈN?þxÐe GúöíKåÊ• Ç¡ù“’¡Ohü“±lÙ2úã?¨J•*þiP[q!P¼8Ñ‘#®]Ýð—/_¦%K–P—.]üÐZh5¡d€ù*[¶,½÷Þ{èI»PR†ÀÑ£G#VÛVŸaÊþ;Z[PÂ%Ã0™H†" ¤ %Ô᧵E LP2 “‰Ôa(Š@ÊÐJÊð »Ú  »îº‹î¿ÿþTÛþýûiÈ!>Û®P¡µoß^ò§N*‘ø;wR–,Y¨råÊôÜsÏQ$Ò¤IùtoìÖ[o¥| .ì:|îÜ9úòË/iíÚµtøðaÊŸ?¿Œï‰'ž  2¸Ê9iãÒ¥KK™3g¦½{÷ÒСCé7ޠܹs;Ḭ’E5ðšÎ”fÍš5tðàÁ”7䣈Ê~–/_N§OŸvíçÉ“Gj~üñÇ4xð`*X° uìØ‘êÔ©C­S§Ntüøq)³cÇÚ¸q#•,YR> É™3gRëÖ­yÉÍõ57'Nœ ÿû¿ÿ£Y³fQݺu¥>Ê3†úõëçCÊàÆEéƒ>A@Š/^$cLð c T3tØäž9sF4‚ìÙ³Ó–-[è–[n¡\¹r4…­[·RÞ¼y… ®\¹B8Ñ¡)XíÆC™¨¨(Âþúõë¥~‰%(Mš4®Ñb >XX Í y9räpåcãäÉ“¢‘áDñ”*UÊUæüùórrf̘Q)gΜT´hQW}œ¸è?}úô”6mZºvíš|òåËG¯¼òŠ«Ü/¿üB5kÖ¤víÚ¹Ž­^½š¦OŸNÿùÏÚ›M?ü0½ð 4qâDùÅq`²´iÏž=ôì³ÏÒo¿ýFmÚ´¡o¾ùFÆ9zôh*R¤ˆkÔ¨}ýõ×’·yóf*_¾¼Û·o'r™2e\xá8æã… "Œ óCÙ²e“º˜‹â¼2]ºt’/`íóbµZ› \¶mÛ&dÍ󆋿kþŽ;&r÷îÝÛ…=ê&GVÛ§þzG@ÉÐ;.A;:nÜ8š3gŽL:T“&MhîܹtêÔ)‘ šÎ<@O?ý4½üòËÔ¬Y39€ :~üxúóÏ?髯¾’v.\¸@5jÔMíÆŽ+mà ¡Â¼ìÑ£Gœqã6l²8Q{öì)´65d Bxä‘Gèõ×_—6V®\IÝ»w§AƒQÕªUEË›?>M™2%NÞv Ý\ÿýïÇÉ.]º´´ç¸û.È·XA#|衇\DhË>õÔS„õŸViâ“5kV:{ö¬˜äÐA‚/¾ø"+VLÌl4µnݺQãÆ óõ×_ ÑC£F^µjÕš-°ÆXþûßÿ >¨‹¼wß}WúéõêÕK.X¸hßÎ;zÑ¢E"ê;ï¼C/½ô’Èðý÷ß ™&WV;výõŽ€šÉÞq êQ\õ[¶lI“'Oÿ|gM›6%hQ÷ÝwŸüB3¹ýöÛ…$­° Løû ­á{›6mš$NXh‰ 6aÛ¶mé×_¥W_}U|R¶ Ï_œàß~û­ôY½zu9±A~HРåýþûïB‚Ðæ.\(yЀž|òI—&t÷ÝwÇ#7)èåkß¾}¢]<Óm·ÝæÒäYpÇ> ž>}úÈ1ø ¡9ãBõL ÌZµj‰¶¶nÝ:ÑAä?ýô“|›ÀÐ&hoðÛýøã~þùg›%8`~€p…éèÐ!B E&æ$Íø#a÷îÝò‹|ÈóÅ_¦ðÙbĈ®~°‘RYã4¦;qP2Œ‡3v Ý@+‚vƒÖ- AhÖ§W¿~}ÑV AË€y €©²Ù͘1C´"h•*Uò´jÕJHå¡õøJÐJAl ØgžyFÌB˜|H%Øô†† 3Z!ü{ðë!Á' Öš…ð×Á——˜í*±þ1˜‘0!ñ8p  ‚,kbÛX°``  ²×®]› ÝÚÔ°aC!ah’ÿú׿„èlÆ‹Èx!С CcF[ F˜¾ ·h"¡_\Ü€¦L™/¸PÇWJ©¬¾ÚÕãDñ/½ŠJÐpÂ÷R„9ë™@00WqÒ@‚4XsÔO>ù„®^½*÷FCKA`þ0¬M __ 'ºM ä‹ß™{B¾Ís?žÔm´,hužã†6…ñÌ‘à§D0Ä[q¡>ȧyóæqŠ màÜÀÚ„9ÀÆ&;vìãb“×&÷<ë¿¡£]$Ï@ .TÈ·þ@Û|Šð‹&”R*kBmGzÞÙt$4~øš“àߺ÷Þ{EÛƒŸ4 ˜‡“æÜûï¿/~(˜Ì8Øh¬íe}%œ°6ÁÌF²äéžg8fR[ÿ#¢¼ø@;±šÊ¡wMmµãe/0ë`¾"ºióa&ƒð}Ñ>ÿüó•F;!S>8ø3q⣌grò@ðBKB@Ä&˜²X¢°ÉÊb÷=¡ù½÷Þ{DB¤ uàã„O /D†¿ûî;k½zõ\Ï>°oá×S~i”¿ /L 9,BÂ<`é|›¸Ð ºŒ„ǼY¿ê=÷Ü#š®]»JK ðWJdµmè¯wÒ°æ +9½cã—£ˆèBÓ€¦– $…e"Ц°®Î=Acƒ†“ÒÓ÷†<|@TX.óËsi ´NÜõ€&ª{ ~0DrAZè¾;w?¤»)Ù†#˜ß1¹ 8¡hZXˆ€gÐ’á'…;Á_ ë Út÷ÁÚöqáÁ{ö‰‹ . žs‡z©%+dA°K{ ÙFPšwãA£—¡Â4Æ’œ>úh¼aa5–xKÈó\dí­ŽAëÃÇ[ÂÉ í+µ“$’Ó´7B))˜$ÔŽgV Šì+ùòBã÷•RKV_ýEÂq%Þe!Ö­!@’Â(ÁKd¼‘N`˜ÉÞîæ€ÏQ“".(†ðLâÖ4$÷ÛÙÜÛKè X\¬I'4šN³©cQd# d˜lè´¢" „J†á4›:E@H6ê3L6t‰¯ˆGoa­›&EÀéDrPLÉ0•ÿxZ‹ç]©Ü¥6¯¤¬µ6KQC!VY]‡Ø„©¸Š€"*ÌSŸaªàª*Š@¨! dj3¦ò*Š@ª  d˜*°j£Š€"j(†ÚŒ©¼Š€"*üøÈc.µ²MIEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1SharedMemoryBaseNameOption__coll__graph.png000644 000765 000024 00000023236 13515046516 032312 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÓÄÔúsRGB®Îé&XIDATxí˜TÕÙÇ_–¢P5***j+½€b F0B,ì¨A£bĨT{b¡)ˆTAT@º R¤÷v¿ó;x®wîÎÌÎÎî°3;ïû<;·œþ?ç­çÌl Ï()Š@AèŸSд¼" ìC@™IW‚"PH(3Z" Ì¤k@($JR=ûµš H·nÝök›ÚØþAà¨£Ž’gžyfÿ4VÈ­d¤fZ»v­ :T¶lÙRÈphuE‰À¬Y³ä“O>)Ê.¨íŒÔLnÄ}ûö•:uê¸G½f8ÿ÷ÿ—ÑÌ”‘š)Ã׌v¿˜" ÌTL'V‡µÿPfÚÿ˜k‹Åe¦b:±:¬ý€2Ó~À|È!Ò©S§ýÐ’ÈôéÓåÚk¯•zõêIõêÕ¥E‹Ò³gOÙ»woBíïÞ½[ˆ–:4hÜu×]îQ¯qPfŠNa%Í;W&NœXXÕŬç£>’sÎ9G¦N*:tÇ\=ôP¹ï¾û¤uëÖ²k×®˜e]Â{ï½'U«VõóîØ±C¶mÛæ’õ¬`&ÄâÅ‹eÏž=²hÑ"ùæ›o,$HëÙ³gË´iÓüųtéÒÉLÆeË–Éúõë}‘þ_~ùe®}®Í›7[¦ùå—_dëÖ­²dÉ¿Œ»Ù¸q£lذÁ¶7a™7ožK²×U«V ý¥Ž1cÆØk0iŽ)8ðÏBg¼¿å–[ä¸ãŽ“3fÈ< ;v”7ÞxCØB€Ñ·íÛ· íCàE½íÛ·ØDeŒãÆ“±cÇʦM›l^>Æ”aS±‘7«ˆ¯`dMž<™¯x†1êú¤I“lþsÏ=×^){öÙg{\pÿܤIoçÎ^Ó¦M½æÍ›ûõšÅå•,YÒ3 Ò›9s¦W»vmï€ðJ”(áÕ¬YÓûþûïm^³À¼Ê•+{9996ÿi§æU¬XѦ=øàƒÞ)§œbﯿþzÏ,x¯J•*^™2elûF‹øíñ®Y³f¶ŽÒ¥K{*Tð†î§ÓÆŸÿügûüé§ŸÚòfa{Æ ³÷fÓÓÏënÌ÷4hàwÞyöU¬6Fmû>Œ|»víê1hüøñž1í¸Ê•+çU«VÍ£ ä0nÛ¶­-K¤aaÓù¸ÿþû½SO=5‘¬é˜§_Vh&3±–<ð@Y¾|¹¼ð òùçŸ[iŠÖAz£i¾ûî;¹á†Ä,_B9R ƒÈÕW_-O<ñ„ÔªUËjÊÕ¨QCú÷ïo5ÅM7Ý$†a¬æÃ¬[¹r¥k6×Õ0 ôéÓÇj•W^yEø{÷Ýwý|f[éŽ6¼øâ‹åöÛo÷¥<þ‹6¯alkÂqu®qãÆ~=îÆ0¾4jÔH.\è^Ù~¢A‚mœ~úéb˜ÒæAã7Ä ‘víÚ‰:²nÝ:‹Ìy4«xFk_Ç%yƵuf÷ßE»Aû•*UÊ3¦l´d.òLP¦ÅkÃ,~Û゜fršÇ˜‹ö=N3‚…K7þšŸŽö¿õÖ[ýç¼nT3e¼Á‡Ì¢³×úõëÛ+’2“mï–-[Z „ÅoA[AfÁÚ{4ÛÉ'Ÿ,G}´˜E$?þø£M?óÌ3í•´E,â0gŒ9äkBÞ×­[×O& r¾ŒŸº¡/DâÐjaBC mÉã(¿màKBh8G‡v˜½'GD•/_Þú©î¹¸_³ÊÌÃ\K„`ìŠñ¤M›6¶‡0zè!k´0>“uôÝZ±b…_}Фò_þzóÓO?ù¯T02_0G ¦û…7Dñ½{÷¼ÝwûÙgŸY“òòË/÷ÓòÛ†DFuPÐLcWGqº&¶ºŠÓˆ‹1ëÄäᇖ+¯¼RŒigK¹=ü¥ã?Þj1 °Z ‚O…b2`À€˜-±ñÓˆØÁœø#­Zµòó}Ã"ÒØ«W/9òÈ#夓N²éÆòý|3|(|´Îm·ÝfóßsÏ=¢Gc¾õÖ[V›6lØPn¾ùæ<Û0& Í3gΫ©]4šè©§ž²ýbœø‹øYAçògãU™)0ëNªÂþ’!4P"ýˆÕFÙ²e…¿hÄѼJ¹Pf a‚ÉôÒK/ٯų¯’,a*qƹŠsÌ1ötD®„__Ä„J%í6RÙÿt­»ê7];«_Æ|± ›>IŠ•_ßgî›¶.J˜½ö{©?BéC¡7Š@Ðh^Ô⊀C@™É!‘Æ×1cæ¤qï´kŒ@ÜyçvsÕ ¦8^7o.-óçl6†WÇáEŒ‰f6Ë3•2’™Ì×ìÉ„L=?ý^½º‚91^F¶o/eNbìÎOÑŒËK8?|n1“‘‘ѼL¸ }mذ»¬^½É|Õ¢¥Ü}÷…­N˧æ¥Û‚×0ÿU∞–*•#ÕªUŠx§EŠ@ÿŒü F‘B–ÂÆË–-e~è1ò‰>¸‚ùí9Éõ>…ÝЪ“D@ͼ$ÓbŠ@e¦0"ú¬$‰€2S’Ài1E Œ€2S}V’D@™)Ià´˜"F@™)Œˆ>+I" Ì”$pZL# ÌFDŸ$PfJ8-¦„Pf #¢ÏŠ@’(3% œSÂ(3…ÑgE I”™’N‹)a”™Âˆè³"$ÊLI§Å0ÊLaDôYHe¦$ÓbŠ@e¦0"ú¬$‰€2S’Ài1E Œ€2S}V’D@™)Ià´˜"F@™)Œˆ>+I" Ì”$pZL# ÌFDŸ$PfJ8-¦„Pf #¢ÏŠ@’(3% œSÂ(3…ÑgE I”™’N‹)a”™Âˆè³"$ÊLI§Å0ÊLaDôYHbÿÏζoß.ï½÷^’ð}±©SWKNÎ^:thÑw&ÉqÄÒ´iÓ$KgN±bÿo8þùgó_÷Ëœ)†=½ôÒKeÔ¨QÅpdCÊžÃ9~üx9ûì³#F¯©Gàú믗-["ÿOoê[-šÔg*ܵÕbˆ€2S1œTRÑ  ÌT4¸k«Åe¦b8©:¤¢A@™©hp×V‹!ÊLQ&uóæÍrï½÷ʱÇ+5jÔ«®ºJ^}õUÙ¹s§Ÿ{ݺuÏ~‚¹™7ož´lÙRV®\|ôýôéÓåÚk¯•zõêIõêÕ¥E‹Ò³gOÙ»woBuîÞ½[Ö®]ëçmß¾½ 6ÌÖ›ÂA@™) ŽÏ>û¬ 8PÎ;ï|¸e,úI»Œ‹>ÕªUËö›‚ÆS±bE¯\¹r¶o0#ÔµkW;¦úõëû}¿ð -6CÙÄLjæ™U$³¨¤cÇŽòÁˆYôÖ÷yê©§Ä0¥œuÖYR¢D ë •*UJlÍ-ÊÏž=[N=õT1FÌÂViï9#h4‚æ#éeĈözã7Ša ›†I·xñb¿,¾Ô¸qcÿ»¡5’… ºWbE,X ëׯ—‹/¾Xn¿ýv9ýôÓ}ÿÈh)©S§ŽŸ°]»v¶}|@£í:úD¡ï¿ÿ^î¸ã¡ì#<"üqDýÊôF”™¢,‚>}úˆ1ǤS§NbL yôÑG¥aÆrÓM7Eɽï•1­ŸCE£'Ÿ|R>ø`ëÿP—1ùdæÌ™²téRyì±Ç¬Oƒf4˜_œc80- Œ&FÛøIÚµk‹ÑJb´¥“Ç¢3fXÆ œÑfVà._¾\æÌ™c‹uÔQÒ¥K›SA?üðƒ½êG$ÊL‘xX #“ɸ_¶l™ ­_ýu™2eJ¨Ä¾G"måË—šÆKŽÈG‚z!ÀÑ)§œânåè£"qhœ0¡98oHGuëÖu·V«ò`ÌSÿ]øF†ÐpŽÜ¡`´(ì·1í;ú®”e¦&0bçÎë§¿ûî»í3æ^2dü–\ňÊA_ýµŸæL;^ÅC3õîÝÛOw7Ÿ}ö™5½.¿ür÷J~úé'ÿÞBì}QýÄ_o\û&°à'a¦BÎÄœTJ bÿ}¦Ä`ø-ŒtÐA ¡ð~ýú‰q¾ÅDïlHSÎDÖlfÌ"ü•àÞÓoµ$vwÒI'Ù0·‰Љ ZM…‰yÀØ Ð:ô£W¯^–©ðo*W®,'N´~ æâÍ7ßì7f"|ÖL¤O”9òÈ#…6œÄt3?? M„OˆÀ¨Y³¦˜ÈŸõ³‚Ï/ 7qPf Áƒ´fC“E쌃#o¢crøá‡ÛmÚ´‘îÝ»ûÁ†üHpòòÓ¼õÖ[rË-·Øà&~SPS¡•xÏ~×óÏ?oÛF[]vÙe2hÐ ë˸!°—tüñÇ[ÒDåÍ7ß´íÀ ‹…ë+¾Õ!Cäšk®‘O<Ñ| 1Gð‘Þyç[%ù¢iTמ^C$ÝÌè,ù »Á²Wd"Yvß(¸'ãÒ¹²þP²DÙ?üÐ[½zµ¿ïcԻ袋rUI^°ðŒÏæ±/&Bão¼ñ†g"y¶ßátö¬ÜÞS8½(ö¹Œik÷¡ÂéyΦиj¦pqHŽÅ#L£‚Hæ#3Žýýï·ïÂõ’Í’a¢ò¦²eË шÀB¬(d´üú.:¹½âèùômŠ0`€¼±'„ÏÓ­[71›¥ùníÌ3Ï´áõ|Ô…†€j¦Bƒ2¹Š"ó,¹ÂRl+-ª™Šm½! Ì”“¹jÕÆ è¥v1kÌûÌæuõ€uƒƒ«Ë¥ñÌø,X‘ÆÂ¦o¤3FÚ†Ïà&p§.ðˆFhËÑ£GG$ñÌû0Åj‡¹÷­[·Ú~Ð&ôË/¿È¬Y³"æ÷ôŸ±ÁÄ«V­â•%pvcX¶l™,Y²$"L¬ ÚstÁÈ-·Ü"úÓŸäé§Ÿ–N8AÆï’핾¡•׬Yñžú:}út»ž.S¬ñºôd¯6óæÏŸoM†“O>ÙŒŽœx≂d™6mší*ºW¯^òÄOH©R¥äÅ_´ï17®¹æéܹ³-óàƒúÌrÈ!‡ÈóÏ?/Gy¤Ìœ9Szè!»¸J”(!õêÕâ£>²õ¸êe­[·Î.˜ªeË–rß}÷YIýðÃËI'd;iÔv©V­šþž{î‘^xA áž‘n˜$Ƶk×NÎ=÷\×¼] ŒÇM.fà3Ïÿüs;@äàÁƒíÄaJQ ¿ûî»vYõë×—ÿüç?6Ÿ+ïÚ^YŒøO,H˜† îXäï¿ÿ¾üë_ÿ²ÒðŸÿü§-~衇ZÆæ ŸYŒmÚ´±mD½C† ±ÁÁ$A0ÑUW]eÍA¦–“È´ÒuĈ6½N:¶¶ ùŸcŽ9F `%4þOëÖ­­F|ýõ׭ħM¨ÿþrÔQGÉ«¯¾j¡&4qâD{Eè¡XÐŽ–/_ný¬Xík¦Íø‹,j|C-ã`áŽ3ÆVGašÿûßòÞ{ïɽ÷ÞkÇ7cÆ ×œÕÖÔ›o¾ÙbÆüCô Ãúp£ <xà+´è{ûöím2Œv:uêdÛbíÌ™3Ç®'˜FêСƒÅ™¾3høDÆëÚOæZhÌtà 7 ÕM"„TsÏ,ªæÍ›Û p ")Ï8ã 9è ƒäˆ#ް&! ¸ØÈ;v´~eÛ¶m+5jÔ°ùÐ6±ˆEzÞyçÙvÈwØa‡YIîò3!8å´G:“ñŒIá˜)ü ƒâá#íY\·Þz«¯y¨£zõêrå•W û /ä•oj¢Iîºë.» ?޶Ó`äƒaÑ„0éh‚³Î:Ë.ÌZ$/¾æ ¦e¬hÚ ƒPDÀÞ-v®0 ÚØQ¼v\8m¬“ÓO?Ý |Æc=Ö˜`Mš4±xSl+Uªd5¼« Ø?üpiÔ¨‘ÕR¤Ñ Áq LkÖ¬iÇHûŒ!|ðÁó¢ùÎ0 Œ žh|Ö݇~(§¨ã¿ÿý¯C"ãµ $ùQ`3ϵëÔµ‹¶<ä¤6v+L¨z€c!£¹ ˜UŽVB…iN ¨#˜*1QAxWï³pOZ,ŸƒtGøÐBüA,j& £CU«VµW>œ)èü&ÆŒÄÄgaa"åƒ^.ò†o =õÔSÁ,ÄBvÍÌ# yã"¸ÂB(^;®îà˜˜[§#æ–yeŒ,d¬‡ ±&‚øÂÌŽ`R,'}ƒ1a_Kz¹ð£ÑDX=˜Ý}úô±ÂN½nÝáF ÍXC˜ðXHÌš>‘ñºþ%s-4frL“W' U©…4nÖ¬™-ÂÂo¼ÑJg¢b¨gL#¤Ä‚8Ó#¥=º‚ލm11ñÓ•!6=ÒÐIvÊW\ampê„ba3ÃH˜ˆh[&Fq& kÇ]©›EA{Hdˆ@L†p8±Fˆh[, n3èGR(3Å€èR^§”a0Bñძ.Îiç¬4`Ï*Ú>Nq´C­ì-6GؤÄÏlÕª•â¹¢ÌK/½dGÀ=Ž?”6‚‡|Ýf%ŒI€{ûí·û#§ŸÑ¨ôÁ©'—z)¯ýê3EïBz¾E<ûì³v‡ý‰0q!ÖÁUöEЄmYÈ8æœí# “AhÅB±_b–q†“ ˜uAÂÑÿãÿh÷`0áФ±ù²Q CÀ€\anËò;ÄLØ™½.Êâ{ÂØÁ“Á~eó½j¦³ñÅÛï.±ËMçup•` {Kì]±ÏAà…ì4oÞÜ^i‰ëP+ŒˆI-ØBYÍ# Å:äK`l6>ùIKBŽw@ Eÿ9•OÂ_…Ö—Í÷ÊLqf¿k×®VŠcj…)¯ƒ«SBsyä[¹8þìß–åëÎÔ‹wøÒ1q¬}$wîÍm³·ïox <'r@•ïÑÆÁö@)7jæåÆÄƒ)Å.;Ç’‚‡.É€Éïàj0ÊÆþLÞ<¤çÏD;Ôêölb-^6¾!—/¼F›Î_³C˜m‰P nn³K9¥Ü(3åÆ$â Ú„/²ñ:G,м®†â¸²ák¼Ã—œŒÀÄãûA˜Œh7GDã`&¾Fï˜4}ŒvÈוuW4 —×ÕDÇâêÍÖ«šyy̼;c\pA:#±9B“×ÁÕxMäuø’ïL¡½ø¡NWÃ0DÕøò ãNÕÓF¼C¾ŒÓŸ'Hù= ,«÷‘¨fŠÄ#×áN’9ÒÃÁTy¤4Lïà*yœCyîÃϼ‡ò:lJð‚¶œ„îҥ˾Bæ“£4œq¤¼£X‡|I'"Ç™2˜*Ø¿xTOæêçJYþ”r# ' rc’ð›ü\Wq"‡/ÑPl*–ú1Ôï¯k—}&†ÂPAÊïÕ`Ùl»w"ÕlC¦€ãeÏ…?GøÉR"‡/‰æõeÆx‡|ƒA‘`?Ñ4.ˆ|¯÷ùC@™)x¥mîx‡|Ó¶ÓŬcÊLÅdBÝ/÷“ádä04š—‘Ó¦NG”™ÒqV´O‰€2SFN›v:ˆé3=úè£éØ_í“"P¤¸CÅÑ:‘‹™Ø dCRIPr#À/KÅ:xœkÓ6wq}£( Ð_}¦PÒ,Š@"(3%‚’æQ@@™)4‹"ÊL‰ ¤yøgq‚‚^ê%ÉIEND®B`‚mysql++-3.2.5/doc/html/refman/wnp__connection_8h.html000755 000765 000024 00000010624 13515046515 023262 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: wnp_connection.h File Reference
MySQL++  3.2.5
wnp_connection.h File Reference

Declares the WindowsNamedPipeConnection class. More...

#include "connection.h"

Go to the source code of this file.

Classes

class  mysqlpp::WindowsNamedPipeConnection
 Specialization of Connection for Windows named pipes. More...
 

Detailed Description

Declares the WindowsNamedPipeConnection class.

mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1MultiStatementsOption.html000755 000765 000024 00000031051 13515046515 027145 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::MultiStatementsOption Class Reference
MySQL++  3.2.5
mysqlpp::MultiStatementsOption Class Reference

Enable multiple queries in a request to the server. More...

#include <options.h>

Inheritance diagram for mysqlpp::MultiStatementsOption:
Collaboration diagram for mysqlpp::MultiStatementsOption:

Additional Inherited Members

- Public Types inherited from mysqlpp::DataOption< T >
typedef T ArgType
 Alias for template param.
 
- Public Types inherited from mysqlpp::Option
enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 
- Public Member Functions inherited from mysqlpp::Option
virtual ~Option ()
 Destroy object.
 
virtual Error set (DBDriver *dbd)=0
 Apply option.
 
- Protected Member Functions inherited from mysqlpp::DataOption< T >
 DataOption (const T &arg)
 Construct object.
 
- Protected Attributes inherited from mysqlpp::DataOption< T >
arg_
 The argument value.
 

Detailed Description

Enable multiple queries in a request to the server.


The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/inherit_graph_6.png000644 000765 000024 00000011345 13515046516 022370 0ustar00tangentstaff000000 000000 ‰PNG  IHDR=1¨.~RsRGB®ÎéŸIDATxí ÔUSÇwR’„JƒyžËQV‘¹¾eX†2[dJ>JdÊLE"²ˆ)ÊBIB¤ÁÜ€’ ¥B…Ríïù=}û®óÞ÷œ{Ï}»÷vï}÷³Ö}Ï9{ﳇÿ9ç9Ïþ?Ï>o+b¼x<J‚@ÕJ2N?L€GÀ# x¥ço€G R!à•^¥ºÜ~°€Wzþðx*Õ“Gûâ‹/šÓN;-9Ù{²†ÀªU«L5²VŸ¯È# 唞;yøðán×o=YAà“O>1÷ÜsOVêò•x*Š@¤Ò;õÔS+Z§?Ï#Š€·îBañ‰yFÀszyÜ7çðlX¼ÒÛ°øûÖ=<#à•^ž÷Íy<HNoÃvË·î(<~úé'3iÒ¤Âë˜ïQ$»ì²‹Ùwß}Ëæ³ö6(âµe-n0© ÷‡j/»ì²¼ôQ¼ö¤“N²7¶[mµ•mÕª•3fL^ÚÎU#·Ýv›å&ßÿ½mß¾½]°`AXvÆi¯¼òŠÞ[²’ñ¹…p‚ë?χÿݺu+wë½¥7sæLóÁ”Õä989r¤9ýôÓÍ^{íeºwïnV¬XaH;öØcÍóÏ?¯y9h6çU~ýõ×fíÚµ¡íüñÇfìØ±æ¯¿þ ͯ¬‰>ΰ8®ü!‡ÚÑõæôV®\iæÎkÖ¬YcÄ20Ÿþ¹6ăôÅ_˜O?ýÔüûᅳöÃ?˜%K–”éÈ?þh~ÿý÷DÚÔ©S͇~¨J%‘(;Ë—/Wå¶xñb}çÍ›ÌÖý?ÿüÓð ÒÓY³f%Êp£þúë¯züÍ7ߘ>úÈæD^æï¿ÿN(€àñ?ÿüc®¸â sÐAiØ¿þúëÍûï¿oöÞ{osà 7¸jôüÏ>û̼ñÆfþüù‰ôLpJ×W*_°¢­ Òâ\®2{ölóË/¿è~TyÍ”?K—.5ï¼óŽA ¦0æ%†ªó|žG `H¶ý2ÞŠòPS¿M›6 “Ÿi_»víLJz¨•‡Ñ¶lÙÒ¶nÝ:ÑäÂ… mµjÕì#âˆ#y”Ťùo¿ý¶æ¿ûî»åŽÅÚѼ·ÞzKó‚æÌ™c_{í5+JÅŠB×ñÑO×ß›nºI‹g‚Sº¾¾÷Þ{vË-·´o¼±þ6ß|sņ¦OŸ®}•8KÅñ™gž±©ÊƒÙŽ;îh7Ûl3-/7¦=óÌ3u<®.Qž:êÚtÓM­ÄÛiG}´•–æÅùã¦‡Ü Å(ÅÞÿbÄ|}ú|ðÁÛ°éíz[zN{שSÇ÷cî¿ÿ~3qâDƒeƒ÷ÜsÏ©åöÕW_™³Ï>ÛÈhDÙéirQ:5ìÓ§iÒ¤‰Zjœ·Í6Û˜G}T­¶sÏ=׈bSK’鬳Ø\ÛÁ-–ÊÃ?¬VÛ“O>iø‰RJÙvÛmÕ²Ä ÂjìÑ£‡æ‰ÂÕi+[$xLYdŸ}öÑmð( sâ‰'QÔæ–[n1ŒS¡Z´ƒ6—™ñãÇ'N‰ƒ“+ÕWú|Øa‡©‡åµçž{šÛo¿Ý¦[,nðíСƒŽ1Uùo¿ýVWJ`qs¸fœÊ\pÁ梋.2¿ýö›Z„ò¢ÒñËù}@Á#¬I+jé}üñÇZ•L)Õ À*@dº©Ç¼%åaQ+aàÀš×¶m[+ C÷¯»î:»É&›Ø;î¸C­¬~“'OÖóGŒ¡åøÓ«W¯HKO8·D9vvØaÕöÎzrÖ#y´‰S"<ðÀÚQ¶)‹ŠÒ¶Î²t±:±F¥§t}ÅÁ ÓKK]Â'Ú=öØÃ~øáÚ¤³Î^~ùe×›ª<–ÞvÛm—(+4…Z©W_}uÂjÄÒ»ûî»QàV( ý‰Bµ2½Oœ›n‡{@½®éÊb~±÷¿1ÍeŸrné5hÐ@|õêë|#;ï¼³c!28#S2%þ_zé%µ°€°þQ º¥¸ß~û,(x7Ç‹IIgé‰IDÉ•I/k²$cûí·Oäo½õÖfÑ¢E‰ã¨]wÝU³Þ|óÍrEdÊ«–*d?–îP¦ ¸`9‰ƒ“+ÕWyú$/ Ó¿³zõjwJb ×è$]ù ¶XÞ\;8¾ 8¯S§Næä“OÖß”)SŒÐ Áb9ÙçÞY´hYNêö•V>²6½åa‰#(9áÍÌã?n„¿3¢§¡<„ÿÒ©+αÀÔA€bB~þùgÝòç»ï¾Kì'ïKåE4mÚ4ªº´`>ŽˆT ÔôV8BuN¸4· H§ÒÂu,Ž'xx™ŽÛˆ‹u„õj€Ä¥—^ªShœ>8X¢$Nyçø ±®Õì3é 6T ˜¾ó"â'©N‡Éυ̘1ßôî=Rh…^fР ¹h¢¤ë”Ù–¹üòËs:F™Ù¨!CCØŠêÊ+¯Ìi2­<ž¦Ê´Öåá¿°zöìiø¨LiµôO<¡àÀçÉtM­B VÊ® Î é±Ç‹l… '_‡å!>þøãåej¬õð -q^˜N8AóPN\¸+$xÌO_xáUÄ<øüP<Ô!SA=‡ºà°¬h«©èÇ¢úŠ'Γí¨Q£4t†ö¢$]y,j¸O”¬¿o5á9AalX”ô ëøõ×_W\%N1Xl½÷çÌY(üâXQä}ä!êg† ™(V§™©°Üùçâå¸ÓN;éOh#”Kâ˜t¸}¢" J’çÔåôDYiUb…)o‡…Ñ®ÇðTNà½+Ä%©‡N Ï-žW±®¬X1š÷nŒsÄR²2+ÃéÉ”RË9O¤+‹õ®»îÒ<Ç“q.õÈ4\ùD …ÑüTÞ[ HŒ•ø¼„ç’:𚊲Ðóùƒ7nÍõïª(sÍwœ^œÒõ•~€XÈMgű¡ã‘0õâÒ¾ó¸Òxªòby«÷o°Ã塇Ò>ãQÖ5`Àõ“Æý²eË´lœ?QœØ‚Kí€ãl›6}mÆ]mÓ¦×è–}~ÍšýW¨GÅi"§e¢úÕ¨¼<”O•—…å¹Y€…7G“z ÁoÂÑÊ‹ºLUDÍHƒKå™q÷¬ËàHˆ–ræ2»°b¹k\²‹l€[ÇÓ./G+3+ ÑnE1Y mÒc8ož;Ò‚ÂX8!RAfQ–q…{IœjÁ$í+\>ÂøxF8>Úqäô™>Q²H˜›Ǩú’óÒGqzpme$S¥Wæä˜äa8Š…‹6xy[èEѸ•`“(=Èuêá ^8§HÈk.xðü8û\ ‰Ó›&ù¢s>7a,ÜÐÜ‘8}åF Þ¸ÜL©Pºò<˜<ˆÉTrÿyxPàa×(¹lòqPi,^¼Ü:I^<ýU±5iÒÍ6j´NÉ9eç¶ÅªôÜ‹®ØÃ¹¸Ž]ºtÑKšl ¸ë¦ô!Ä aÃÇ/M^ÚÔ)–“†Ã áÙíܹ³¦"Eh›3`´@Œ?QJ/¯+2˜:ËT>Yp‚H,_r²3   +L=A"?¹L²³#9?Õ1SnÂg¢Ç N˜lIT_q ñsJÒ•—›JW›¤ªƒÝOþÃJ” B9bH%ðß „øÚš5k*'Gþ³Ï>«éüA19«£/¦slyä‘Ú><²Ç¡KtüÔ;lØ0„'x| Ÿ,‹,*¥Ç %ެ"X•9‡›ÅÝ0Á .Z”צAÒQù¼õ‚âär¼q^<øàƒÉYY?N×׬7˜‡ ëÕ«%VÉnâxé-ÖÃxñüN’k¯Š8dlÂâ‹êJçÎ-Åk½ÎéU&×éB;˜ŽËÏPÒµ'L‰ÞO¹N9å hÇÒAPš8æpŒ±ä‘ ~V! 9B©DIò¬!á\QmE¥ãtÂŒ …‡p/8ËŸ)–ž-ѺuëfÅhÉ»÷Ö ¸Ð¶Ü,Eç…*4côgíÚ•âÍna†ï"/À[eK¡-ë™5jT‹QCñašG˜â[8WœqËÄiacù¹ð(¶â`«p$D°ñ®FðŒÙ‡F™‘Ü|óÍ *Àb>óFbßý.¼ðB#DªžÃGÛ „vãÞ¸L­ùÐSŽdá¢Ȳ±(IîST¹RI¯_¿¶ðJ­Ì˜1ÝÌäÉ=Í5×´>t]\f©*ÀT×®Pù賬^JL=ƒá\©Æ³>y𖄃aùbå²Ì²cÇŽå‚æ+ÒF¥RzâÒÏ@±’!ÕT8 HÊñ \€æÍ›«Ãn)ßôÓÕLM™F¸ÿúEüÜ9眣œ $¬„ÓDò!8j ­YéPÙ¤I“zÂõ´•uÛ≠qÝ%²iРŽÂ°jUù'¥„³qÖ1µ•¨u2¸1òEd/aR†¯±Î›i!ŽÖº‹wU90f+A ZVÜ—|!¨~ýúæ©§žÒ—¸| $Qœ5ãÔƒs¥uëÖæÖ[oMäá`À ‰ÀÍc ° J°-—Nš_pŸ|Ò]ž;vçÁûó¼ãJáe‰j™©¼+›ñ6Ùó›•ä6s},Ÿ¸²]»vÕ/“ð•YJ¥ëJ£Úãz -kr ák# Ù«ñDBJ[YÊ¥Õ ©¬1t|‰…°¹y´¬[ƒìƒxÔôK4Ô%ž2+N(§,[ŒûÁ•¸ýŸ2e®¬]a÷”œ•«Hÿ3íL1‡se:Ö8å‰Ó#n/e*Q!+%k鱪€U„ÀàµbÊôg…|m¹ü'¤3|]8/d0 DÖÕ „'ÀE¸)n*/Tr“x´™ó½?ÞrwÞy§zýXïÊÔ¸2JóæÍä-ÿ±€£C1J¹ ¤á\n…Op\.œ+¸Ûå»p.çpéa[ÎŲÊ0ÁĹP(‚ÓG h¶¤z¶**´zøÀ&ŸBb:ɺ^¦´Ù”\z¡ø˜ ¥w,¥#<eHœ–—ÒDÀ‡såﺖ¬Ò#’ïêÁEsÌ1>Ø#ÈPb‘ÖWÂø‹°:ñBaòiy'„>ÈLÝa¹-œ Á£ð.ìóM<¸>/¥‹@!‡s•ê%;½eåÎâå›|ê\@q`¡±%æ.’‰Š€T¦ÆLa ¨/¾øb%‹‰ÎGq{ñxÖ’µô‚ÐÈÚ?ï_¿~ú¥¬?,©¨¨ò0+.èy îÓN:/Ô—_~™ˆ/‚‰òBá±Â›6nÜ8å ƒcðû@v¨‚G$XÖKb’’ƒEJbŸðœùâôXÓ_EÊæ»Où»kgÝŠ†ŽúÙ-YDî’‹fëúsеÊ^ V²û˜¼,¯RXza—&Ÿ öñBñK%ùîSª¾ø¼hÜúÕè>§¨´J¯/Šï[a"€C©Ôg@…‰|v{U²ŽŒìÂäkóxJ¯ôJåJúqx<±ðJ/L¾GÀ#P*x¥W*WÒÃ#àˆ…@¤#ƒ°/l"@ÈŽÀ†F œ¥GXEEÿeᆌo¿°àÓßÜ[ÁÏ v}ïJrÁÉ¥8H?&€GÀ#à(gé¹ ¿õx<¥ˆ€Wz¥xUý˜<H¼Ò‹„Ægx<¥ˆ€Wz¥xUý˜<Hþ-å¼…¾Ã½IEND®B`‚mysql++-3.2.5/doc/html/refman/functions_r.html000755 000765 000024 00000015001 13515046515 022024 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Class Members
MySQL++  3.2.5
Here is a list of all documented class members with links to the class documentation for each member:

- r -

mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1IgnoreSpaceOption-members.html000755 000765 000024 00000015311 13515046515 027633 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::IgnoreSpaceOption Member List

This is the complete list of members for mysqlpp::IgnoreSpaceOption, including all inherited members.

arg_mysqlpp::DataOption< T >protected
ArgType typedefmysqlpp::DataOption< T >
DataOption(const T &arg)mysqlpp::DataOption< T >inlineprotected
err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
set(DBDriver *dbd)=0mysqlpp::Optionpure virtual
~Option()mysqlpp::Optioninlinevirtual
mysql++-3.2.5/doc/html/refman/manip_8h.html000755 000765 000024 00000042373 13515046515 021212 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: manip.h File Reference
MySQL++  3.2.5
manip.h File Reference

Declares the Query stream manipulators and operators. More...

#include "common.h"
#include "myset.h"
#include "stadapter.h"
#include <iostream>

Go to the source code of this file.

Enumerations

enum  mysqlpp::quote_type0 { mysqlpp::quote }
 
enum  mysqlpp::quote_only_type0 { mysqlpp::quote_only }
 
enum  mysqlpp::quote_double_only_type0 { mysqlpp::quote_double_only }
 
enum  mysqlpp::escape_type0 { escape }
 
enum  mysqlpp::do_nothing_type0 { mysqlpp::do_nothing }
 
enum  mysqlpp::ignore_type0 { mysqlpp::ignore }
 

Functions

SQLQueryParms & mysqlpp::operator<< (escape_type2 p, SQLTypeAdapter &in)
 Inserts a SQLTypeAdapter into a stream, escaping special SQL characters. More...
 
ostream & mysqlpp::operator<< (escape_type1 o, const SQLTypeAdapter &in)
 Inserts anything that can be converted to SQLTypeAdapter into a stream, escaping special SQL characters as needed.
 

Detailed Description

Declares the Query stream manipulators and operators.

These manipulators let you automatically quote elements or escape characters that are special in SQL when inserting them into a Query stream. They make it easier to build syntactically-correct SQL queries.

This file also includes special operator<< definitions for a few key MySQL++ data types, since we know when to do automatic quoting and escaping for these types. This only works with Query streams, not regular std::ostreams, since we're only concerned with making correct SQL, not with presentation matters.

test/test_manip.cpp exercises the mechanisms defined here.

Enumeration Type Documentation

◆ do_nothing_type0

The 'do_nothing' manipulator.

Does exactly what it says: nothing. Used as a dummy manipulator when you are required to use some manipulator but don't want anything to be done to the following item. When used with SQLQueryParms it will make sure that it does not get formatted in any way, overriding any setting set by the template query.

Enumerator
do_nothing 

insert into a std::ostream to override manipulation of next item

◆ escape_type0

The 'escape' manipulator.

SQL-escapes following argument if it is of a data type that may require escaping when inserted into a Query or SQLQueryParms stream. This is useful with string types, for example, to avoid bad SQL when they contain special characters like single quotes, nulls, and newlines. Data types like integers which never benefit from escaping don't get run through the escaping routine even if you ask for it.

◆ ignore_type0

The 'ignore' manipulator.

Only valid when used with SQLQueryParms. It's a dummy manipulator like the do_nothing manipulator, except that it will not override formatting set by the template query. It is simply ignored.

Enumerator
ignore 

insert into a std::ostream as a dummy manipulator

◆ quote_double_only_type0

The 'double_quote_only' manipulator.

Similar to quote_only manipulator, except that it uses double quotes instead of single quotes.

You might care to use it when you have MySQL's ANSI_QUOTES mode enabled. In that mode, single quotes are used only for string literals, and double quotes for identifiers. Otherwise, quote_only and quote are quite sufficient.

Enumerator
quote_double_only 

insert into a std::ostream to double-quote next item

◆ quote_only_type0

The 'quote_only' manipulator.

Similar to quote manipulator, except that it doesn't escape special SQL characters.

Enumerator
quote_only 

insert into a std::ostream to single-quote next item

◆ quote_type0

The standard 'quote' manipulator. It is the most widely useful manipulator in MySQL++.

Insert this manipulator into a Query or SQLQueryParms stream to put single quotes around the next item in the stream, and escape any characters within it that are special in SQL, if the data type of the next item in the stream may require it. By contrast, Date objects only require escaping, not quoting, and integers never require either. The manipulators won't do work they know is not necessary to ensure syntactially-correct SQL.

Enumerator
quote 

insert into a Query stream to single-quote and escape next item

Function Documentation

◆ operator<<()

MYSQLPP_EXPORT SQLQueryParms & mysqlpp::operator<< ( escape_type2  p,
SQLTypeAdapter in 
)

Inserts a SQLTypeAdapter into a stream, escaping special SQL characters.

We actually only do the escaping if in.escape_q() returns true but in.dont_escape is not. If that is not the case, we insert the string data directly.

mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1Set.html000755 000765 000024 00000022620 13515046515 023347 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::Set< Container > Class Template Reference
MySQL++  3.2.5
mysqlpp::Set< Container > Class Template Reference

A special std::set derivative for holding MySQL data sets. More...

#include <myset.h>

Inheritance diagram for mysqlpp::Set< Container >:
Collaboration diagram for mysqlpp::Set< Container >:

Public Member Functions

 Set ()
 Default constructor.
 
 Set (const char *str)
 Create object from a comma-separated list of values.
 
 Set (const std::string &str)
 Create object from a comma-separated list of values.
 
 Set (const String &str)
 Create object from a comma-separated list of values.
 
 operator std::string () const
 Convert this set's data to a string containing comma-separated items.
 
std::string str () const
 Return our value in std::string form.
 

Detailed Description

template<class Container = std::set<std::string>>
class mysqlpp::Set< Container >

A special std::set derivative for holding MySQL data sets.


The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/closed.png000644 000765 000024 00000000204 13515046516 020561 0ustar00tangentstaff000000 000000 ‰PNG  IHDR à‘KIDATxíÝm @!†ÑGk™É7À-`&séts¦Àñþòð@åk}ª2€… P%Á_Ëþ¿N² .:0Dk¥‹Â›x" Ö›)¡xÒ5õIEND®B`‚mysql++-3.2.5/doc/html/refman/row_8h_source.html000755 000765 000024 00000234165 13515046515 022277 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: row.h Source File
MySQL++  3.2.5
row.h
Go to the documentation of this file.
1 
4 /***********************************************************************
5  Copyright (c) 1998 by Kevin Atkinson, (c) 1999-2001 by MySQL AB, and
6  (c) 2004-2008 by Educational Technology Resources, Inc. Others may
7  also hold copyrights on code in this file. See the CREDITS.txt file
8  in the top directory of the distribution for details.
9 
10  This file is part of MySQL++.
11 
12  MySQL++ is free software; you can redistribute it and/or modify it
13  under the terms of the GNU Lesser General Public License as published
14  by the Free Software Foundation; either version 2.1 of the License, or
15  (at your option) any later version.
16 
17  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
18  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
19  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
20  License for more details.
21 
22  You should have received a copy of the GNU Lesser General Public
23  License along with MySQL++; if not, write to the Free Software
24  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
25  USA
26 ***********************************************************************/
27 
28 #if !defined(MYSQLPP_ROW_H)
29 #define MYSQLPP_ROW_H
30 
31 #include "common.h"
32 
33 #include "mystring.h"
34 #include "noexceptions.h"
35 #include "refcounted.h"
36 #include "vallist.h"
37 
38 #include <vector>
39 #include <string>
40 
41 namespace mysqlpp {
42 
43 #if !defined(DOXYGEN_IGNORE)
44 // Make Doxygen ignore this
45 class FieldNames;
46 class MYSQLPP_EXPORT ResultBase;
47 #endif
48 
62 
63 class MYSQLPP_EXPORT Row : public OptionalExceptions
64 {
65 private:
70  typedef bool Row::*private_bool_type;
71 
72 public:
77  typedef std::vector<String> list_type;
78 
80  typedef list_type::const_iterator const_iterator;
81 
83  typedef list_type::const_reference const_reference;
84 
86  typedef list_type::const_reverse_iterator const_reverse_iterator;
87 
89  typedef list_type::difference_type difference_type;
90 
98 
103 
109 
111  typedef list_type::size_type size_type;
112 
114  typedef list_type::value_type value_type;
115 
117  Row() :
118  initialized_(false)
119  {
120  }
121 
123  Row(const Row& r) :
125  data_(r.data_.begin(), r.data_.end()),
126  field_names_(r.field_names_),
127  initialized_(r.initialized_)
128  {
129  }
130 
137  Row(MYSQL_ROW row, const ResultBase* res,
138  const unsigned long* lengths, bool te = true);
139 
141  ~Row() { }
142 
147  const_reference at(size_type i) const;
148 
150  const_reference back() const { return data_.back(); }
151 
154  const_iterator begin() const { return data_.begin(); }
155 
157  bool empty() const { return data_.empty(); }
158 
161  const_iterator end() const { return data_.end(); }
162 
169  equal_list(const char* d = ",", const char* e = " = ") const;
170 
191  template <class Manip>
193  const char* e, Manip m) const;
194 
200  field_list(const char* d = ",") const;
201 
208  template <class Manip>
209  value_list_ba<FieldNames, Manip> field_list(const char* d,
210  Manip m) const;
211 
220  template <class Manip>
221  value_list_b<FieldNames, Manip> field_list(const char* d, Manip m,
222  const std::vector<bool>& vb) const;
223 
234  const char* d, const std::vector<bool>& vb) const;
235 
244  const std::vector<bool>& vb) const;
245 
253  template <class Manip>
254  value_list_b<FieldNames, Manip> field_list(const char *d, Manip m,
255  bool t0,
256  bool t1 = false, bool t2 = false, bool t3 = false,
257  bool t4 = false, bool t5 = false, bool t6 = false,
258  bool t7 = false, bool t8 = false, bool t9 = false,
259  bool ta = false, bool tb = false, bool tc = false) const;
260 
269  const char *d, bool t0,
270  bool t1 = false, bool t2 = false, bool t3 = false,
271  bool t4 = false, bool t5 = false, bool t6 = false,
272  bool t7 = false, bool t8 = false, bool t9 = false,
273  bool ta = false, bool tb = false, bool tc = false) const;
274 
282  bool t0,
283  bool t1 = false, bool t2 = false, bool t3 = false,
284  bool t4 = false, bool t5 = false, bool t6 = false,
285  bool t7 = false, bool t8 = false, bool t9 = false,
286  bool ta = false, bool tb = false, bool tc = false) const;
287 
289  size_type field_num(const char* name) const;
290 
292  const_reference front() const { return data_.front(); }
293 
296  size_type max_size() const { return data_.max_size(); }
297 
299  Row& operator =(const Row& rhs)
300  {
301  data_.assign(rhs.data_.begin(), rhs.data_.end());
302  field_names_.assign(rhs.field_names_);
303  initialized_ = rhs.initialized_;
304  return *this;
305  }
306 
314  const_reference operator [](const char* field) const;
315 
328  { return at(static_cast<size_type>(i)); }
329 
347  operator private_bool_type() const
348  {
349  return data_.size() && initialized_ ? &Row::initialized_ : 0;
350  }
351 
354  const_reverse_iterator rbegin() const { return data_.rbegin(); }
355 
358  const_reverse_iterator rend() const { return data_.rend(); }
359 
361  size_type size() const { return data_.size(); }
362 
371  template <class Manip>
373  Manip m = quote) const
374  {
375  return value_list_ba<Row, Manip>(*this, d, m);
376  }
377 
384  template <class Manip>
386  const std::vector<bool>& vb, Manip m = quote) const
387  {
388  return value_list_b<Row, Manip>(*this, vb, d, m);
389  }
390 
399  const std::vector<bool> &vb) const
400  {
401  return value_list_b<Row, quote_type0>(*this, vb, ",", quote);
402  }
403 
410  template <class Manip>
411  value_list_b<Row, Manip> value_list(const char *d, Manip m,
412  bool t0, bool t1 = false, bool t2 = false, bool t3 = false,
413  bool t4 = false, bool t5 = false, bool t6 = false,
414  bool t7 = false, bool t8 = false, bool t9 = false,
415  bool ta = false, bool tb = false, bool tc = false) const
416  {
417  std::vector<bool> vb;
418  create_vector(size(), vb, t0, t1, t2, t3, t4, t5, t6,
419  t7, t8, t9, ta, tb, tc);
420  return value_list_b<Row, Manip>(*this, vb, d, m);
421  }
422 
430  value_list(const char *d, bool t0, bool t1 = false, bool t2 = false,
431  bool t3 = false, bool t4 = false, bool t5 = false,
432  bool t6 = false, bool t7 = false, bool t8 = false,
433  bool t9 = false, bool ta = false, bool tb = false,
434  bool tc = false) const
435  {
436  std::vector<bool> vb;
437  create_vector(size(), vb, t0, t1, t2, t3, t4, t5, t6,
438  t7, t8, t9, ta, tb, tc);
439  return value_list_b<Row, quote_type0>(*this, vb, d, quote);
440  }
441 
449  bool t1 = false, bool t2 = false, bool t3 = false,
450  bool t4 = false, bool t5 = false, bool t6 = false,
451  bool t7 = false, bool t8 = false, bool t9 = false,
452  bool ta = false, bool tb = false, bool tc = false) const
453  {
454  std::vector<bool> vb;
455  create_vector(size(), vb, t0, t1, t2, t3, t4, t5, t6,
456  t7, t8, t9, ta, tb, tc);
457  return value_list_b<Row, quote_type0>(*this, vb, ",", quote);
458  }
459 
466  template <class Manip>
467  value_list_b<Row, Manip> value_list(const char *d, Manip m,
468  std::string s0, std::string s1 = "", std::string s2 = "",
469  std::string s3 = "", std::string s4 = "",
470  std::string s5 = "", std::string s6 = "",
471  std::string s7 = "", std::string s8 = "",
472  std::string s9 = "", std::string sa = "",
473  std::string sb = "", std::string sc = "") const
474  {
475  std::vector<bool> vb;
476  create_vector(*this, vb, s0, s1, s2, s3, s4, s5, s6, s7, s8,
477  s9, sa, sb, sc);
478  return value_list_b<Row, Manip>(*this, vb, d, m);
479  }
480 
488  const char *d,
489  std::string s0, std::string s1 = "", std::string s2 = "",
490  std::string s3 = "", std::string s4 = "",
491  std::string s5 = "", std::string s6 = "",
492  std::string s7 = "", std::string s8 = "",
493  std::string s9 = "", std::string sa = "",
494  std::string sb = "", std::string sc = "") const
495  {
496  std::vector<bool> vb;
497  create_vector(*this, vb, s0, s1, s2, s3, s4, s5, s6, s7, s8,
498  s9, sa, sb, sc);
499  return value_list_b<Row, quote_type0>(*this, vb, d, quote);
500  }
501 
509  std::string s0,
510  std::string s1 = "", std::string s2 = "",
511  std::string s3 = "", std::string s4 = "",
512  std::string s5 = "", std::string s6 = "",
513  std::string s7 = "", std::string s8 = "",
514  std::string s9 = "", std::string sa = "",
515  std::string sb = "", std::string sc = "") const
516  {
517  std::vector<bool> vb;
518  create_vector(*this, vb, s0, s1, s2, s3, s4, s5, s6, s7, s8,
519  s9, sa, sb, sc);
520  return value_list_b<Row, quote_type0>(*this, vb, ",", quote);
521  }
522 
523 private:
524  list_type data_;
525  RefCountedPointer<FieldNames> field_names_;
526  bool initialized_;
527 };
528 
529 } // end namespace mysqlpp
530 
531 #endif // !defined(MYSQLPP_ROW_H)
list_type::const_reference const_reference
constant reference type
Definition: row.h:83
value_list_b< Row, quote_type0 > value_list(bool t0, bool t1=false, bool t2=false, bool t3=false, bool t4=false, bool t5=false, bool t6=false, bool t7=false, bool t8=false, bool t9=false, bool ta=false, bool tb=false, bool tc=false) const
Get a list of the values in this row.
Definition: row.h:448
list_type::value_type value_type
type of data in container
Definition: row.h:114
Holds a list of items, typically used to construct a SQL "value list".
Definition: vallist.h:186
const_reference back() const
Get a reference to the last element of the vector.
Definition: row.h:150
list_type::size_type size_type
type of returned sizes
Definition: row.h:111
insert into a Query stream to single-quote and escape next item
Definition: manip.h:72
value_list_b< Row, quote_type0 > value_list(const char *d, bool t0, bool t1=false, bool t2=false, bool t3=false, bool t4=false, bool t5=false, bool t6=false, bool t7=false, bool t8=false, bool t9=false, bool ta=false, bool tb=false, bool tc=false) const
Get a list of the values in this row.
Definition: row.h:430
Declares the RefCountedPointer template.
~Row()
Destroy object.
Definition: row.h:141
value_list_b< Row, Manip > value_list(const char *d, Manip m, bool t0, bool t1=false, bool t2=false, bool t3=false, bool t4=false, bool t5=false, bool t6=false, bool t7=false, bool t8=false, bool t9=false, bool ta=false, bool tb=false, bool tc=false) const
Get a list of the values in this row.
Definition: row.h:411
list_type::const_reverse_iterator const_reverse_iterator
const reverse iterator type
Definition: row.h:86
Manages rows from a result set.
Definition: row.h:63
Same as value_list_ba, plus the option to have some elements of the list suppressed.
Definition: vallist.h:226
const_iterator iterator
iterator type
Definition: row.h:97
Interface allowing a class to have optional exceptions.
Definition: noexceptions.h:71
const_reverse_iterator rbegin() const
Return reverse iterator pointing to first element in the container.
Definition: row.h:354
value_list_ba< Row, Manip > value_list(const char *d=",", Manip m=quote) const
Get a list of the values in this row.
Definition: row.h:372
Row(const Row &r)
Copy constructor.
Definition: row.h:123
const_iterator end() const
Return a const iterator pointing to one past the last element in the container.
Definition: row.h:161
bool empty() const
Returns true if container is empty.
Definition: row.h:157
Base class for StoreQueryResult and UseQueryResult.
Definition: result.h:110
std::vector< String > list_type
type of our internal data list
Definition: row.h:77
list_type::difference_type difference_type
type for index differences
Definition: row.h:89
list_type::const_iterator const_iterator
constant iterator type
Definition: row.h:80
Row()
Default constructor.
Definition: row.h:117
const_iterator begin() const
Return a const iterator pointing to first element in the container.
Definition: row.h:154
size_type max_size() const
Return maximum number of elements that can be stored in container without resizing.
Definition: row.h:296
Holds two lists of items, typically used to construct a SQL "equals clause".
Definition: vallist.h:60
size_type size() const
Get the number of fields in the row.
Definition: row.h:361
Creates an object that acts as a reference-counted pointer to another object.
Definition: refcounted.h:82
const_reference front() const
Get a reference to the first element of the vector.
Definition: row.h:292
Declares templates for holding lists of values.
value_list_b< Row, quote_type0 > value_list(const char *d, std::string s0, std::string s1="", std::string s2="", std::string s3="", std::string s4="", std::string s5="", std::string s6="", std::string s7="", std::string s8="", std::string s9="", std::string sa="", std::string sb="", std::string sc="") const
Get a list of the values in this row.
Definition: row.h:487
value_list_b< Row, quote_type0 > value_list(const std::vector< bool > &vb) const
Get a list of the values in this row.
Definition: row.h:398
This file includes top-level definitions for use both internal to the library, and outside it....
value_list_b< Row, Manip > value_list(const char *d, Manip m, std::string s0, std::string s1="", std::string s2="", std::string s3="", std::string s4="", std::string s5="", std::string s6="", std::string s7="", std::string s8="", std::string s9="", std::string sa="", std::string sb="", std::string sc="") const
Get a list of the values in this row.
Definition: row.h:467
const_reference operator [](int i) const
Get the value of a field given its index.
Definition: row.h:327
const_reverse_iterator rend() const
Return reverse iterator pointing to one past the last element in the container.
Definition: row.h:358
equal_list_ba< Seq1, Seq2, do_nothing_type0 > equal_list(const Seq1 &s1, const Seq2 &s2, const char *d=",", const char *e=" = ")
Constructs an equal_list_ba.
Definition: vallist.h:553
const_reference reference
reference type
Definition: row.h:102
value_list_b< Row, Manip > value_list(const char *d, const std::vector< bool > &vb, Manip m=quote) const
Get a list of the values in this row.
Definition: row.h:385
Declares interface that allows exceptions to be optional.
value_list_b< Row, quote_type0 > value_list(std::string s0, std::string s1="", std::string s2="", std::string s3="", std::string s4="", std::string s5="", std::string s6="", std::string s7="", std::string s8="", std::string s9="", std::string sa="", std::string sb="", std::string sc="") const
Get a list of the values in this row.
Definition: row.h:508
const_reverse_iterator reverse_iterator
mutable reverse iterator type
Definition: row.h:108
Declares String class, MySQL++'s generic std::string-like class, used for holding data received from ...
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1UseEmbeddedConnectionOption__coll__graph.png000644 000765 000024 00000016075 13515046516 032510 0ustar00tangentstaff000000 000000 ‰PNG  IHDRõ{¬ ÆÍsRGB®Îé÷IDATx휔EÇ‹ ‚¢ ‚YA0+& "ćù™1cVÌ9‚ ˜ATTÄ„‰$˜怊d%g%ªÄùúW~=Î-»{»¸¹½ª÷îf¦»§Ã¿»b÷l¹ úŠ‘!`ä ãÊ9¦re46CÀ!å CÀÈ-Œ©sk>m4†€SÛ"0r Š96žŒ‡³jÕ*2dHÆå­`éA FÒºuëÒÓá"îi™ ”MŸ>]5jTÄpZuq@ Aƒ2cÆŒ8t¥$ú`²ñãÇ ö—tîܹ$)VmšO«é°Î…GÀ˜ºðZ †@¬0¦ŽÕtXg Â#`L]x ­C VSÇj:¬3†@á0¦.<†¤†9sæèÞë‚ н½±cÇÊ™gž);í´“l±ÅÒ²eKyøá‡åŸþɸíeË–Éš5k´|¯^½¤}ûö¿k ‡€1uáðÛ`o¯X±B†*«W¯.Ö69Ó¼ys=z´\xá…Ò±cG©W¯žÜ|óÍÒ¦MY»vmFí# úõë§eÿúë/ùã?2zÏ cê 1da¢-×­['³gÏ–ï¾ûNßD{Mš4IÆŒ.øyóæÉ¯¿þš§æüQ–/_¦¡ ¿ùæùý÷ßÃ4n8éöõ×_Ë/¿ü¢ çwcš:0M‰à‹–!h¡‰ † êM¹E'µk×ÖHµ3gUãà×¢½!·xõM߸qcáã|bï[tÐAZŽhÏt´ãŽ;†Ù¦–.]>Góœ «éøÁ鈾üý÷ߪËáïb}PÆS¶mà+cåì»ï¾¾ ½‚)šÙcñT­Z5cøg»æ€™ßùc”§ft&;?Uzöì)| xüñÇëkÎ_çCªiMpÍiW Hù…¼pá°ú¨©&Fn¢Û[ÇÏ#¢yœ ü„Qo„U÷îÝ#­ü{ûñÇk@íä“Oó²mì0É<(ÄÕˆö-SŒ}vÍ‹@f+4ï;ö”ÎÜä’»îºKN=õTq&·¾å÷lñ§wÛm7Õê.¥Z›Ïìjòì³Ï¦mÉ™çZ–­#ðÒ-'ÿÑj|d"óݺu“í¶ÛNöÚk/Ív¦ºx?†ÂÇÆ7F _|ñÅZþÆoTæÃ‚èÓ§Z{ï½·\pÁ¾ ˆ§jùê©ÛbÄœ›¡{,ŒŒŠü|”\Í÷>q¶ÑoÇŒ ‰Ó¢ê§âB+W®Ôg"ÓžðÝ4n‹Ê'΄ ð+‰|ã—:F ¼¯ëö¡üKÞqÚ*p¦xèS5'=ý&Ÿ4üW|v·¦íP¯ ¸…d"ãÑ>¤Š~ó²3¿ƒ{î¹'ŒªûúÓéý@òkõon++¸á†‚&Mšè«ì4kÖ,c•*U'è4ÏûÔcñã}p-œâŸùÔÁ`|À2IÙ2uA@ºîºë‚=÷Üs½WÝqàLâÁHnÏX·½/¼ðBÈÔÑr~K‹zœ† \´9š­ é¢ñÓøávYž<¼CŒ5*p^Ö{¦Î¯ ·O­AÀÄ—ÙsÑX²ºËgólL .³?gä4P±¦,>(¦v×®]×k¿Õíe¯—Nfº7““HH¬_¿~BÊ5kÖþ B˜Ï™ô#]l×%#‚ŠÑ€[²2–Vp̧.8v)ßÄ_~úé§ußøÜsÏMY.¿ ‚gÎl]¯Ñu¢ä>âžX€<Ê'mˆ6гÿ¹\w™ÿ2~ΈQn ÀqT´Øo”åÆ|Ú( CÀ!`æwYK–¬,##µa–ù@Ù|žyÎÕå°fÍ:éÝ{ºûk—\b8.ÿõ\˜PoʼO]æ¼Zµ]dÓM[¹Lzº#—Åû=vð$²^–}ê2«©9³íö?ã°‹½gŸýœû j² “óÏoVìíY%‹€ùÔ%‹±·¾lÙj÷!ÆTm§oßQÅÞž5PòS—ükÞBXÿøñóÜWRËÂg»ÉMŒ©ss^ÃQõí;2t3*V,ï>¦æÙMn"`L›óª£Z¸p…ûÁ9î÷Çþ¸o5ÄLðžðÿ͘:‡çøí·Çºï££S¸¨ðb·…·(‡GmC‹Î¸¡‘c •Ý/åU¥JÌσHî=SçÞœêˆfÎ\*S¦, ýi?̵k×¹ßãí횃Sçà¤2¤ÇZ9-X°LÆŽ]ÿ÷Ä“•µ´Ò‡€1u雳ŒzܯßH÷³Ãë’–…Ù ²(xRpr ј:&1q'Îw¿Nšz?fïßtO|ßžK7ÆÔ¥{þ’öž½èT¦·aùòÕ2|øtÿh×BÀ˜:‡&“¡pž}À€1õ®\¹¢¤ú)g&xŽÍ½N™ý ÃkWÎz·k×<ϰfÍZ*ï½7A®¼²¥T¨ðŸßxã¶8Oa{(õ”ÙO/KýÌe1€aÃ&¹ßëî%sç>’¯YžEµV4ž ùOldzƒÖ+CÀÈcê,³â†@Ü0¦Žû Yÿ ,0¦Î0+nÄcê¸ÏõÏÈcê,³â†@Ü0¦Žû Yÿ ,0¦Î0+nÄcê¸ÏõÏÈcê,³â†@Ü0¦Žû Yÿ ,0¦Î0+nÄcê¸ÏõÏÈcê,³â†@Ü0¦Žû Yÿ ,0¦Î0+nÄcê¸ÏõÏÈcê,³â†@Ü0¦Žû Yÿ ,0¦Î0+nÄcê¸ÏõÏÈcê,³â†@Ü0¦Žû Yÿ ,0¦Î0+nÄcê¸ÏõÏÈcê,³â†@Ü0¦Žû Yÿ ,0¦Î0+nÄcê¸ÏõÏÈcê,³â†@Ü0¦Žû Yÿ ,0¦Î0+nÄcê¸ÏõÏÈ úöí¸:ì/‡0(_¾jP¹rÝ \¹r6¯94¯ðéo¿ý–ÀÁÁàŠ©„À=÷Ü“*ËÒ C „˜>}º¼þúëI{‘’©[´h‘ôK4 ’G Zµj)™Ú|ê’Ÿë!P¤S)œV™!PòS—üX "EÀ˜ºHá´Ê ’G e ¬ä»–Y>øà™[]¿›6m*ß|ó2?ùä“*@è3k€ñÂô0ãÆ­Èú>«W¯Vì·Új+yøá‡uÝSϳÏ>«õ±îÀgjAûêÇ_Ðk‘™ß,2‹s Í莜êB†‰üø£Lƒ‡¾üòK__ŠE‹_B=hÔwÞyGAìÒ¥‹jÕ7ÞxCËù÷“ ¦Á¿6l˜23ŒÿÕW_…EÑZï½÷ž.Lš÷eÑV¯µŸÃ Òܤ¯0,Œ—_~Y,»îº«.X«§§Ÿ~Zxà<^0R†ÅˆpÄeq4Hºwï.o½õ– ŠO?ýÔW% ,Ë.»LÇzá…ÊǬxãB°Û´i#o¿ý¶öaäýpbhÀ_|QÛòæ1/Z´HqÃ<¦Mê%ÍSº120gÇŽ¥OŸ>*´ý{Þ­¡ÝDÚzë­åCÑuvÔñÚk¯É»ï¾+7Ýt“ögܸqákhlÆ…€g ~ñÅakã„NеqÞyç .ýO‡ õ1.„ë†5Hc8p âް“(¶¯Ñº²½/2¦& ÃtÐAÚ LêŸSjh)˜Â!‚DeòðM…ôÔSOé¢ä8ïâ»`R훊0ÐJ´C¹-·ÜR¥§/ÏdÂ\¾o]ð|饗†LøìßOwådc ÿ¶káÔSOU|ÁÂH‡ f6VëaÖf騰}MWw~y…6¿}> ã}„i¡‘`^ö矮‹†Â$… ˜Þhi|(y^+GÍÔT¾õ`E ¿Ú×Aº×ÄÜ“G›™þ=š=‘0³0ã¡Tcð‹ËcèСaA¤¾'üÇT>5eðç5D¾÷“aBœò}äAšŽ¨³°}MW~yEÆÔžyókmƒŸ„)£àAL[0øµhgÌÌž={j „|B0„šŠÓZˆºöÛo?Ÿ¤õ ±!Z:¾änßÿ}4I#h]4&”j ,H誫® ·Ä4˜,–¨‰«SüËc^÷LÆ=f(Á5*ÂKóŸºÀ_…ù!Êz¬£‘}ügÆÈ¢õeɧ^_>ÙÑúhOêõ­×R±™Ë ædÛ¦ŒÖ°ÀÒ‰n3¦Ã(U‚!&¤CsœûèƒrÞìÆ”OF`Sؾ&«7Ó´"3¿3mÿˆ zá…T[{‰‰Ÿ‰HÀ„EÀ¢ ÏÇÂÃB¤"I}ô‘Jo‚:h&ïðíR¦?þ*æ„¿E É›k‰ÏD6©_†áþî»ïVKÄGfS!˜ðCé?uwîÜYýù¨ÖCb¦FÿFŽ©ýËöÑúƒÃWÇ" vÁxñÇÁaB[ø„‘ÐÐh:‚Jô|°ªI=B‡éý‰Rqõ5ÚFªû"ÓÔ©ðé^JÂÄøiNˆÞzâðÑ`|€Â¤½á†T›pðƒ¼ãŽ;N™ˆÅǶ†'_7Ϙß0'¦&Ú“v÷Ýw×}PòaZêAš¢að!„ ¸yóæê¯&>Ÿ|òɺß|óM Öñ‚ÿŠí%(ÕÐŽD”ôÂܽ÷Þ{µ¾ÿDû ÁV¾ŒÏO|öéþŠ0„ùˆÒ2VDøm-‰Ä,  Å±dÀË ¬éý¤ ðð‚¼˜‚DAø®”ËoŒ—\r‰2ó!h›'°#ºLÝžá ¾rðfŸ}öÑbô Hÿh“uÂÁÕ‹šà¾NÊðqõÖ…Ï÷W°J… VQlÚôyä‘¡2@Ð!èéK´ÂôÕ÷« ×rÎû/üêjÁ§%P¤´òTï± xh‹(¡AÐ0Hno"û|4 ¦éHj—Å%|"L²:h”ÓÖkB709hq|(pÔÿŠÖ“îž>"P0]ýwÞK7ò0×¹â›ÂÅI´à:0Þ(¡qé $bÛBÌ‚`L$\!‚jìS³˜£”nŒ˜íÔ 3'¶éë mæ™2´ŸÈˆ,W"ûX[;8ë¦+*J‡ ãB!€¥·.}»`€OÄ¢8ûŠeuë­·†ÊË÷Å]‡ä‘HNqÜ ‘JÌB|¯Db‘§ B¤ßƒM|/ñ™z’mørɘÑçåw¥îh'±|º1äׯĺ ûL{0^2B FƒiÑ20Tt9šÇ=B7´‹æ§# šª?¾ÚN †ù<®hC„¦Å}:L—ˆ&¶åƒÄ‰éÅÙ×Ķ¢Ï”©1iÙCd‹%1 íT~÷!¢Z_žoªczøåì ¹Ž@‰˜ß¹jQ-\‚s˜ýX,'t’ì»ï¾5…I‹éË»˜¶$1ÝRi˜Œ*µB%Š@:ó{ƒG¿K‰RØ8±޲bþqp†CDß9Mʼn²Lˆ`Y§N´(ÌMÜ!!”’I5V¦” °AÍïR‚IlºI0‘ˆ<û÷ÉôÄI.¢Ôl­æTÑ~4/1‚Hþc¢Âhjܶ¡pQ$âŽxÂ-â¨(~2ñ|Aˆt@)Ù&AÔÞ(ÞSÇx~0»‰NsR-JDô9Òʶ {¿”!²ŸìcÎIýõ×ú:[j(9ŸÏ¡"¹Bá(7‚@%»03åqÒŒè/Zž-$ŽÅ3¿ã;7êÿ¢9·Pè²?®=]Ç!‰ÄUø!ǰŸÊ!”(q¢ŽCØ æ@‡NØ¡àÐŽ'¡àƒ³/ÐàC £x#`LãùÁlN¶OL—9¨öô¦2i©>V!/±wÏ6Žß‰`«ˆ=¢Hp@ˆí-Ls ÁôFñFÀ˜:ÆóƒK´:áocG÷Ü1§=±í—씕ÏçÊ!,èüòè{Ô㉃£x#`LãùaË ó7ÙÏ5qfßš£›ž8éå)“U``NÇE#ál›E?r‰Z¾n»ÆcêÏßm&ÒÍ,â?ÏqðÃüæû¯£FªU8¾H䛨x”8Íç¤þ=¾ùæË1ÿJ´¬Ý—,úã¹ÂÜeÛŠ_Þà«.Oœãæ  D 7ÙÇ*hsμ_ýõBàÌ?PÁé>d|D9Ï—\l™A‰ZšçÄ4_—]ダ(‹Ï\¤í ZS™ýe>T‰2W&«°]Åÿ u´1|hYä#—h]v¿aHw¢Ì4õ†™ƒB·BœgÌ¢³hY¨¤"Eô0Jªr–^:0ŸºtÌSÚ^Âö±JZˆÊT¦iê˜n4xâÁ’– ¡€˜¦. pöš!WŒ©ã:3Ö/C €S8{͈+)}j~hÍÈ0â‰@ôô`b×cjö@ýO²&¶gCÀˆü9;‰?vHïÖ;|.[/ C € 1Ÿº€ÈÙk†@\0¦ŽëÌX¿ "`L]@àì5C ®SÇuf¬_†@øh¦6˜IZ8ªIEND®B`‚mysql++-3.2.5/doc/html/refman/inherit_graph_4.png000644 000765 000024 00000012443 13515046516 022366 0ustar00tangentstaff000000 000000 ‰PNG  IHDRY1p"ÚXsRGB®ÎéÝIDATxíôTÕÇ/*¢Ø€ŠØö1Pl TÌ¿yŒ£ØŠŠÊA±;°»PAE 0 ÁÆï>ƒó|û~ûvßoÙ]vÜ9g_Ýžwßܹ3ß{·™r*ÂY*’kÈ4p p p p@9„lèä@²dnÈ:p p p ÙÐ*ÈÙ’yßsÏ=n×]wM>÷eãÀŸþéš7o^¶üBFµÌBÖ*{÷ÝwÛe8”…ÇwçŸ~Yò ™Ô R…ì.»ìR/mõ¬íµN^T¨fY9l²eegÈ,p p p —AÈæò#Ü”•AÈ–•!³ÀÀÀ\¤Úds£…»ÀÀ¯¿þÚ½üòË©hÓ¦Ûpà sÂë^ÈÞzë­îµ×^s—_~yNÃ*q3bÄׯ_?÷æ›oº?þøÃ­¸âŠîä“Ov[mµU%Š«Jžgu––sÊ)§4(ï³Ï>s‡rˆ»þúëÝ¢‹.Ú |f{ðúë¯xãÌöÒÙ^dÁc=–“ªî…ì|à^y啜FUâæÁt»í¶›[yå•Ý 'œà~ûí7dz­·ÞÚÝyçV‰r+çèÑ£Ý?ÿü“·˜ŸþÙ=þøãî÷ßÏ>³> 8ß™õÍn÷þûïïÆß ÒtÛdÑèÐx¦NêÆŽëÞyç-„÷Ýwßuo¼ñ†û믿ôÙçŸî~øá‡œJ|ùå—î§Ÿ~Šž¡%6L…XôP.~ýõW¦ßÿ½~ôãÆ‹ëõ¤I“‚ò˜Ö}øá‡Q>Œ &èý˜1cÜ«¯¾êxfÄfd“'OŽNü~Ê”)îˆ#Žp묳ŽÖë“N:ɽôÒKn•UVQmÖò¡Ý£Fr>ú¨ûâ‹/ì±j¾YùT¬®dJ9ðвâB’´”}ôÑGî›o¾Ñë´ø(‡üÑ=ýôÓ¡[ˆà1ƒZ>þJÂfZ°Õaœd[Ƽa¥ñ7ÝtS=“Vl~‹-¶ˆî×[o=/¿_ýõý&›lå7qâD?묳ú+®¸Â¿ýöÛ¾}ûö~î¹çöÍš5ó‹/¾¸—^ã>ÿüó~þùç÷³Ì2‹Æ_k­µü\sÍ¥a2Íõk¬±†^ï¹çž~¥•Vò ,°€Ÿ}öÙµ|]4ìÐû6Ú( #®B ê©§4ü¹çžkp/Úœ† :TÃâ‡?þØ?ôÐC^„˜—DÛG=­¾§žzªFo ŸŠÕõ…^ð .¸ oÑ¢…þZµj¥ü£ ‘#Gj]ç¬|sŠ/ž-³Ì2~žyæÑø¼¿=öØCÛcy‰°Ö6WË–-½à]µŒ®]»z 5,ËaðàÁšŽ¾PTïõ¯Gž×S÷Ûo?/æ‚UžnMÖF§yç×}õÕWîâ‹/v/¾ø¢jnh©wÜq‡j¦ï¿ÿ¾Ûk¯½œ|ðN„«&“NëD éT»víT%]ëÖ­ÝÕW_­Zé¾ûîëDª¦ŒyÀ4R+;~FÃ>‹Vzà 7èO„`e±ÅSÍ-­¸wïÞ&^Íœ¡ø=q¡UW]UÏñƒ(×½{w'ƒëÛ·¯£"xUc8p ;óÌ3ݳÏ>%ÉÂ'‹œVWêܹsgÕRÑ,;vìè̶ji™QÀßvØAÛX(þ'Ÿ|¢+±˜Qðxg¤q8àwàºï¾ûN5^µ}ñxá:p p Á¤Ø-U“§€f%StÕVÐz ™¾ë=Z€|œª]uÕU¶ùæ›{Pz}â‰'ú9æ˜Ã÷ïß_µ1´~âÔÒô÷ÝwŸÆãpÚi§¥j²b3âq±ôÒKûc=Ö›vhÚ1a”‰Æ\Œ  uá^0ª Þ4g‹ˆV¶mšl>««˜e¼L×=y‰=ØwèÐÁo°ÁZ¤iŸ÷ß¿UÁŠ&»ä’KFqÅì£Zø1ÇiÅh²çwžò@ /& ý‰÷b.‰Ò» H÷Ó÷Z,n-†×{ýk‘§M©N×d.@³Í6Í—¶ÜrËé=$Ìt2ÅUGѽ÷Þ«ÚÚ-„w›k4áÕW_Ý¡!b75»f§N4Ó6£± ª±;ç^xáHs&`©¥–ŠÂYd÷í·ßF÷i+¬°‚=ñÄ ¢ˆ A5qœChòk®¹fNø‚æg”…O7­®2à8ê$ƒ”»ä’KÜßÿmI¢3¶b£bñã¼efÁ»ÃF'³Áî½÷Þnûí·×h 1ÛÄ£UäzêÔ„‡¿V$ïià@¥9P6sgBŠÝÓ]wÝuNì¯n»í¶Ód+±_ª)g™h˜êPBBq¯Ý§Ÿ~ªÏòÀ2!øÞzë­¡ÇqUH`[>˜ ÄÆ«Î,{fgÑðÔ4!¶Jè8¢Œ@ `Þˆ—‘•O䑯®˜Z€VáDÄIˆC.²Ä7GyÈìA—ñ:ó¼mÛ¶ÊÌ! |üDãVóá• áÃÇJ[ïçb7hÐk•(¢Iç ¼ñðïx·ÙfUž@Úð.2õe-œA¾WŒðà[9ùΘ<òÈbÙT5<›d,c•°_¢ýôéÓDZ ˜4w°˜0{¬LUëEp¡Õ¢b+Äfˆðšk®I­›"öV„6/nÛm·â‹©AóaKGqv¹nݺiÂò±=Bñ{ õ½ë®»Tð#hø!èÈC¦Öš†¼°e¢9R.Z9Têf;iu)€ÍšóÃ?¬P²B´X|f دêbZq )€«Å‰¶¡1S'´ÿGyDùšÄÆÓ”r=zôx׿ÿ±ÁŸ!Úò¥î¶Û^q“&M)%«™> }¸ðFú>|̰ð™€Àg¸¼»I™ÞÊßd1bð_vÙeõ'f0vÙî9ƒv¢.5EI›H©6YŽš•h™jwà “õ;£vKa‚—`ÔŽMdÈѽhiŽwÛ&iDô2½Í±ÉÊ]ã™§Üââá?çœs4Ì윤%1k¨=X a^]@…yÁÇFžuòÀ«/ÂIÓs-mÔê‰÷_ 7›l>«+õ€GðB:G˜¶G`eŠ2 |CPx¡ø2³PthãËe—]¦uñÏëÊ+¯T4Ïø ùå—_4n–CšMsܸïü€C}çÎgù¶möíÚ§g®ùµo¼¿ôÒ§²QÑ8iõO+T+µ‡Ëàäù.d–£Q±{‹cÒ‹¹%²OccÅ '+/¢áEϰ…óÍXŸµÞ@Õç!³'/3 Â`È|# Ad0ö2ƒó"€-¹Áäê§÷ø,øîx'ÚBZ$Ì=í€è ²…¥^ÛALkúüŒ3ΰGz¦M ]¨§metÁäô'|zq¢«_ÇâÆÏô]ìñGÊ|?ü䛤žø/̧BÙð€w’¤be&ãÇïÓl²ØJs¨±B6'qÆœ*ù&2:K¾ÆË褡`3W¼H„,Îò¡CÇ;Š .ÂD[OŸåš$øTí¤ÖÉâéè€Àºø€èˆ¥P–ºÒ‘â ©À+AÀ‡Ÿü€“õçceÀÈ÷Ž’q“÷q!5qâ$?pà ¾k× þ¬ÇæV°õ,dm`­wx#ï…åÐCÕWšTHò Y".±Ä äš~%f-¼‚°Q¥àì³Ï&È‹«ÏQÎ=÷\ýn÷Ùg}\lÊ’&ø÷OÈâäâ qâ†c—:’?m°òx†CBVd)S#§Ò„lUW|1ðŽi‡M’pš –6ùXï1+äƒPå‹L>qÇO2NÒ9– /t 8YáèÃiW.J«+ND~F˜T Q±øÒ‘u5[¡<‚¶îºë‹–7|òä¿]Ë–Ýÿþw85?ø^31yÐÿ˜"ò¯:›–‘wcÆŒwC†¼=ívGŽüÏÙ˜*lO5- V[ÍbÀ“¬¦'|ØO±¡3uÆì$BAÍ6|°Âe`SØ~ ll€nðÆo¼QáŽLÑÓx#¦4LA7ß|³Ã¾‰ÓÈ ƒ8püÄ® aJÃtÉì)î¨ó6Ûl31÷ܦf&àŒ@!©ËÑñeoĬ€y½†oºé&'Š’»è¢‹´ž@/±÷Ò6 ƒä·öÚkç))ý¾A¹Ýwß]ë2s¢]ë{ O|C½zõRØ'¼)G™ÉÚTUÈbo¥‘¼<5’uÉ|O'ÌçìY~ùåS—€"dð¢Ú!sa3 b=Õ5+{&L˜$܇®U«.⬛f÷–Y\¦äLH~C™T(R‹³–”3ŽJö~À7€ýžf¾‚±b[ä/ŸŽ:ê('Ð;‡PÅ>É:xúƒö!Cœhy*tpvB8uI+Ól'Z£>Ãétá…êuòÀ’p„ D<„œ,ôq}{ûœsΩ6NÂo¿ýv}ÎÁd„퓺#„©˜Ìt°`Áƒ½{þ{ï½çdæ¥6Û$BeРAŠÒGø`Pjp’³Ä»±B–Áao¼±¶¿ƒ,¾qbîR~ÓŽr–™äKU…,g²¾§sZ'¦“@Œ~¢ÑGAÀ¦Ð¾ÐÐØ²ÞN^>¨‚B„FÀÞi„Ó‹†QgU»®¢²Ä­—8­[Ï+Â¥ƒÛi§~âd*ûM7bÄgò>šÉ’lŸó¾’mb`ìÝ»›h=]’AU½3ŽëÑ#¿+T‘,°=„)Þrà;ï¼³.`A³‚Ò8rq¤²!‹v€h½P‚‡PI£ä¬¨ðÆ´²xη¤-œo-eh¡…JM \PÌ 9Zö|óÍW’‚„ÓÚˆ. ¢_™œ(g™Vž«Ž.°‚+y®¦·Sœl‘wÎh+±èæ: þ@ì¹0E¦Èë "âHÙ×ât Ýeú8íChÞ<ÛXo|DÈd!´½zƒ7¦µ ¡Å dH´d0ãh±Ç|ZRÕúÑ2™êÛOœ±%¡t²Î\™i”«Ìdò½ýdªºGVÞÚ9b…í—ÍZ˜¢°iŒÁª,& –ƒ©5b#F86WA@ñÂÁÖÆa)Lèü:è zúé§GÏL“e× ü ËŸ š&BÙÔ©_’(«Ø†,iöŠíÛ,¦ Èú.ÏÑv"bs‰VÏ’ñ=z4X £”éPÑ2“޲j  ’e6ö8‰ØP|—.]<°¥$ ß@JˆSio§l}ˆÂ †6ª’y˜E€6ÊÛIY7dÛ—ïÙ³§Á•[‹qtA¡úõ…ïÛ÷AA ô‰õá²wŸ¶gü¨Ex#u+†. ßÛo>íecÄæJ¢h¨‡ŸåóbÚób>ób:Ð(âŒÓô @åì¸ãŽQ~¶ÜÞò²³¬>lá:î¸ãÅ@®ÅgÑU&ˆ9%º¥rÊZf”8υرónƒÆ–Cµ,deëDôÑGëT2 ÷0™µúIJ²â‰Uè0.ÑpµãØ^@G؉ ¨ ŽV<£z-޽g·- Nâ‘Ô`ûh$9d²Ô½€\±‹÷âTP, 8?¼,iÕìè `aÅ¢aÔ“N)Ó,+.:‹]Xw8#/ñ{Ù '_EœÁY…¬U8ܰaû^½î–ç?Lµ…WûÜØú—R¿z†7k/ߨkƒV"ØdL” ¬®aqyfÌ.»ÛU‹¦§Ì4![󿼑¬FÚ…w”i¶ŒvºÌö–[nq«­¶šÈ–l”ôv²öžiLÒ̭ۙç1·Ø½y;q:àÄûŠ·˜6!3àefêÄ.Zìê…IA¶ŒtùöO©¹}rñH þPíZì3€y£^ {Z§NËÜg߬W¯ÍÈToà×^{­Âma<¡ÁãûYX¸ÁÍ¡cÏó Þ˜æÐÅ9†i«DÙ¶Dü±ÑÆS8†1áàæ+Z´=ªø¹eV]P ‡Ø˜š-öp0±¿›¢”Jõæí¤Ê8±§C±¤Ëd Àl¾ØºÕ6¼±¶ßÏôÔ®æ…,hö‡4¼å–[*  †pF¬dÞNÀÏPÜÛ €=€xå#N4EÈ`¾vΨg5o.uØa‡)æŽ?Ld:ƒà@qf£–|TïÞÎÆlÈSSIVè€r@3bÕS ÀÀȤA¹–_VWœSl¼"öÝüÄžÛYØy&¹®–·Ó_æL£>æa]Ðo'i³nÈ"+‚<ë¸cI²š¥j8Ž*Ùøz¯%yòö>ÍñÕ æÄe€îIRÝ ÙdƒÂ}à@¥8€#±^fx•âAÈ·ñ¨yÇWã›RÔ‚­wj88Ð9„l|©¡IµÃ dkç]„š4A¤:¾€q ('€¿ ˜Ù8Ð@“¢Tê_XÏlÌ ímø;úVÖM¬—{ˆ8P›h°¡6«j888PŸh ÉÖg3B­j“AÈÖæ{ µ h"B¶‰¼ÈÐŒÀÀÚä@²µù^B­šþm§sOk{hIEND®B`‚mysql++-3.2.5/doc/html/refman/functions_k.html000755 000765 000024 00000006474 13515046515 022033 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Class Members
MySQL++  3.2.5
Here is a list of all documented class members with links to the class documentation for each member:

- k -

mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1ReadDefaultFileOption.html000755 000765 000024 00000030671 13515046515 026772 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::ReadDefaultFileOption Class Reference
MySQL++  3.2.5
mysqlpp::ReadDefaultFileOption Class Reference

Override use of my.cnf. More...

#include <options.h>

Inheritance diagram for mysqlpp::ReadDefaultFileOption:
Collaboration diagram for mysqlpp::ReadDefaultFileOption:

Additional Inherited Members

- Public Types inherited from mysqlpp::DataOption< T >
typedef T ArgType
 Alias for template param.
 
- Public Types inherited from mysqlpp::Option
enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 
- Public Member Functions inherited from mysqlpp::Option
virtual ~Option ()
 Destroy object.
 
virtual Error set (DBDriver *dbd)=0
 Apply option.
 
- Protected Member Functions inherited from mysqlpp::DataOption< T >
 DataOption (const T &arg)
 Construct object.
 
- Protected Attributes inherited from mysqlpp::DataOption< T >
arg_
 The argument value.
 

Detailed Description

Override use of my.cnf.


The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/sql__types_8h.html000755 000765 000024 00000010055 13515046515 022260 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: sql_types.h File Reference
MySQL++  3.2.5
sql_types.h File Reference

Declares the closest C++ equivalent of each MySQL column type. More...

#include "common.h"
#include "tiny_int.h"
#include <string>
#include <stdint.h>

Go to the source code of this file.

Detailed Description

Declares the closest C++ equivalent of each MySQL column type.

The typedefs defined here are only for the "non-NULL" variants. To get nullable versions, wrap the appropriate type in the Null<T> template. See null.h for more information.

mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1DataOption__coll__graph.png000644 000765 000024 00000013311 13515046516 027161 0ustar00tangentstaff000000 000000 ‰PNG  IHDR»mù÷XsRGB®ÎéƒIDATxí]”E.rÎY‚’ƒ$É Š$ ‚’$("ŠAøƒ€€‚„<2Š HI’‘%9瘿¿Òæöæö–›½eç®ê½ÛéÜ_]]U3wÇPB"‚@,@ n,˜£LQ`„ìB„Xƒ€=Ö,µLTÈ.ˆ5Ä–™¦OŸž._¾,Ñqø .P† üØbÔš ²cø­[·¦jÕªEm&R+èØ»w/õíÛ7hÆTdùå—©aÆAŽ ÄkÖ¬qÖ€Ÿk‹Íîg@¥¹àE@ȼk##ó3Bv?*Í/Böà]™Ÿ²GÐcÇŽQÍš5éÌ™3Q¨ýtUnÞ¼I;v¤R¥JQêÔ©©D‰ôñÇÓùóç}nèêÕ«ôàÁ.?yòdjß¾½ÏucRA!{Vóúõë´dɺsçNjû^åܹsT±bE7n•+WކJÕ«W§Y³f1é÷ìÙãSc3f¤Ù³gsÙû÷ïÓÝ»w}ªã á­Ç`téÒcÇŽõy('Ož4”Ö3nܸa¬_¿Þ¸wï×UÚÖX»v­¡´ß_ºtÉ8qâD˜vÕÃ+ãÔ©Sfê,_¾ÜÀ·U=zdìܹӨ·o'=zÔPd1vìØ7EC‡ñ½"%ç£Ü† 8M·£40 ãX¹r¥o«„††Š|fæ¡´0ß·iÓÆH ±uëV3!!!FŠ) õL‚ÓÕæ3®]»ÆõÖ­[g8pÀ,üøq#^¼x†Ú(Œ×­[·ÂŒAÏqÑ¢EápÆjCW®\1T1 ff^.V¯^Í8©‡J^J.‹ו÷žž–ìÙ³g7Ê–-k$L˜UG¼Ñ©S'#Nœ8|Ÿ2eJ&êˆ#Œ¸qãšE•*UŒÊ•+Xh¥)™PI“&5âÇoL˜0ŠVÚ”ÛBý2eÊðõâÅ‹Ã}Á‚œ^©R%s, 4@ÆW¾|y&ˆ‹~æÎËyøP&‰¡ž.š÷iÒ¤1Ú¶mËÄM”(ç›™–‹ž={r¿g³fÍ ô™6mZs ­ZµâÒJ«›s2dcT²dIÎC]à€ù¡_|÷êÕËìW­ZÕÀ8°a°Á5>f!/ÁFvW›1JÓ\àIÝÇI ¤4Û³jqè矦&MšÚ4oÞ<>•/^¼Hj¨yóæ4gÎZºt)9r„_Uèܹ3õë× €ú÷ïOJSÓŠ+H”+W.¯§zÖ¬YIiWRÚžÛêÞ½»Yã<|ø0çרQƒmn¥a9fI‡̲°§ÁHid‚É[ÝNa9c‡`¬£GfeÊ”)„Ÿ… 2jÓ´iÓ¨k×®\V`®ÀN¤ˆO“&M¢ЪU«tR§©““Ôæ%µ¡iüøñfžë.¼lÌ€fEE³wéÒÅc±bÅŒºuëš÷8â›6mÊ÷Š`Æë¯¿Î×j±XSáØß¼y3ŸjCË–-3nß¾mš9rä0®EÙǬÙ"ÒìÚÔAùnݺÙ²eãªÐì_~ù¥n†ME6wÌD› m*© i“kŠ˜<žmÛ¶±f/\¸p˜rjs²G"N¬éÓ§s>N?­Ù¡¹õ  +ãtÀ©A>æ¢eÔ¨QFªT©ôm¤ß¢Ùý¨²dÉb¶¦LÊ›7¯ym®VƒïÕ1Ï'´:µ:uêZ4‚v3f íÞ½›ßÉÁËJƒæz§OŸ¦Ò¥K›í)ò›×v9sæ4“á¢/-Ö<ýB^Žò&¹sçælœv¢| NΓ'{ž<èÇ[?&̯hX%sæÌ¤ü 3 sÑ’$I>Aõ½Û¾]mƀоHýúõ)qâÄ4qâD6aZ´hÁÕ”f§"EŠ¢#*[™HÊy%¼…‰hˆm.è{ÏoÔ×SêùçŸ×·aB”0 Ö|³ å"yòälÂ(Ù êlDSþøãR¾)G•“­ý#J´}ûv¯}(ûœßDܵk—n–ÔÉFʹ SÏWŒÍF‚øÂÕd÷×dÉ’Q½zõ¨OŸ>«FŒòÏ?ÿPƒ Ø&Í”)Ÿ °o•CÆš~êÔ©\ölïÞ½½v‡¶a³ãä€_»vm³ˆ9hÐ ³žŠØÐ?þÈþ‚r2yƒÔªU‹óqêa³êX»®„1Ο?Ÿ”ÃÌyÇ笘ú2^P½õ¨Á—oOƒ{Ï4k;pHg̘ÁŽ)Ò¨Q#¡+T¨Àš_EpØ1ÅÑýÍ7ß°³©la.«"*ü»~à䩈a³`3);Ý,¯ü*T¨©è©¨ ຠ8Ë*¢C 6§œ×·ß~›5·ò%¨eË–Âk)P ýõ×_T¼xqÄt»víØÑÄ8`Ž©hç+_†7ºò¸_hu6 496<Ò€ Nmé1raõ2º®NsÕw¤^F€ <­ƒú´ÃRä`‡ÎêHê6¶iÓ&Eê4|+»ÖPQŽ?#>­Ö€ƒjzD¼eW· T¥q9n×·µ¬·kÄËC÷luzT'—1(³$Lœ_·‰Ð«Žßë4|cŽˆÛoÙ²…cêÖ<§×Áæ ºV³?FöF(ZÑSìÒPšM;~0"]Ö®büDU`úDæ$ãTb'0ÓìsÔΰ]~LJû÷<‹I3²™ ìdqø¨ âö0 ð~ŠU`¢¨N¦YbÍÃ5òP&:%_¾|”?þèì"F´+4;Œ8Ds`'{ ì}õŠ€g²yˆßÖs,9±B³Gƒ”ˆ ÙŸÁ*?|øøô*] ÙŸ† [ò z•.ã ¼ 0Ä–¿7n"Ê”écõHþg õþÊ@0¬‹?Æ 7ÆE„ñ–_L—/¨'!Ô¸ñçT·î“W bò¼ñ°.$h4{0€ˆ14l8V½žpˆ2fL©^Ÿíˆ.¥ÿ›=€T¸té– S†p.Ü ÿ}=€CˆÕ] Ù¸ü n7>%HO½„µ-€½KWBör`֬ͤ^EáCC)²oU/‡I2PK dÒ'O^¡]»Nš¿P‚noÞ¼§^Ý= H7Böq&Küøaá†)3wîÖ@º ‹¾àmÀ„ñ|r Sfñâ]ê—¤C£­_iø Bö'XDÛÕþýgÕo Ù?@zð ”–/ÿ'Úú–†Ÿ d‚E´]Á„Éb'ñâÅUÒc³]–¤ù!»ŸµknöìMêÕ€GvYlÚ¬^½Ÿ®_¥’ΕèI²G®f«[¶S¥à†yowד-Úi—%i~D@ÈîG0íš‚ Ù_ü@ì}Μ-vÕ%ÍÄŠßTò#^OÝÔÙ³×Ôï…f3ëá!RHÈõû¤i)I’„f:"5wî< ¤IŸ¤™™ráäE0¿Àè{#W®Ü¦Â…{©¿ ó™úýÔÿê—ïµ¥¤ÄŒq‚žÔuBvW-— Ö Bv'èI]W! dwÕrÉ` dw‚žÔuBvW-— Ö Bv'èI]W! dwÕrÉ` dw‚žÔuBvW-— Ö Bv'èI]W! dwÕrÉ` dw‚žÔuBvW-— Ö Bv'èI]W! dwÕrÉ` dw‚žÔuBvW-— Ö Bv'èI]W! dwÕrÉ` dw‚žÔuBvW-— Ö Bv'èI]W! dwÕrÉ` dw‚žÔuBvW-— Ö Bv'èI]W! dwÕrÉ` dw‚žÔuBvW-— Ö Bv'èI]W! dwÕrÉ` dw‚žÔuáþóÆßÿMß~û­«&á¦Á>z‡NMÙ³ßRÿfFþÙot­]£F¨Aƒaš÷?•NžêСC´Ž²[·nd†ÙGÚ´i©P¡Bôæ›oRüø¾ÁxS…`'NL $0ÛñvqðàAš9s&8p€nß¾M9sæ¤Ò¥KÂjqãú¦§¬}.Z´H…=Sûöí½uë·¼Ó§OÓÈ‘##l¯@ÔªU«óýábþîÕí!TºgÏ?¶hßÔ¦M›èÁƒL¸9rÐÕ«Wy!;vìÈD´¯6µ^½z´zõê°‰Ümܸ‘70ˆ^³fM&6Øøñã©{÷îôðáÃj†M¶öJ÷ïß[ ï&LHY³f5¶lÙBׯ_7ïÓ¥K½‡oÚ7•¾ž™\¹r…2dÈ@.\ »wïR®\¹èñãÇtüøq&HîܹYû?^=HIB)S¦4ë_¼x‘Ó’'OÎiÐfX´²ZÐ.´RöìÙ)Q¢DtíÚ5Êœ9³Îæoh?h_hOhûÔ©ñð&;ç¡Mh9æÄ‰tëÖ-Ê›7¯©eQsÖ…Öô¼G#eË–¥Æs{ø@<·k×®ü\¢eË–f:ætöìYÊ—/˜;Xa.znve1ޝ¿þš°©FŒa–­[·.)R„7ÙÒ¥K©V­Z¼é’%KÆm9r„qK•*÷åÙgõêÕéµ×^ã<|`Ž=JðΘ1#çé5Å=æ1çɓLJـDž>ùâĉÃ9à„õÄýí·ßC+VÖ&=zDñâų&ùõÚ1ÙCBBèÓO?¥âŋӎ;xpXìê­[·ò=Ž{gýû÷gÒc! l“&M¨]»v¼ˆ={öäïÞ=JŸ>= 6Œ|çÎÔ«W/Ö Àƒ°¿ÿþ;·£?Ð.6 ´.í­BBSöîÝ›Š-J{÷îåbýúõf)l"h˜éÓ§Ó7h„ œ‡SOŸž÷f/½ô;wŽ •0öS§NÑ÷ßÏ×­[·æ~° æÏŸÏ'Lwß}×kY´)X° GoÄxáÄ8s挙í;cÆ žW©R¥XIØõiVP#N^Ôûõ×_éóÏ?ç±nß¾Ý, ÿË/¿ðé‚“qíÚµfæ‹%„ ‡µªR¥Šíf0+ErñÆoðiŒHà ®X±‚à<Â.G0¥´¦C¿è› 4Ì-lý Ð;ï¼ÃÚÔóe@ ö*6 rÀ±ƒhGN"ìnŒ¢Ã„HG=Ø¿ÞÊB›c\Р8)«U«Æ&H&…Քø+T¨ÀýÌ™3‡f”Xûä„ÿ>`ÂÀœ,Y²$aMPRY™šVíþ_qó ckÛ¶-}ôÑG¼Ñ¡´`fà$Ãzb3èH“YÉÇ ˜^˜óªU«¸|8öN´¹µë€‘]k h>¼> Çd´ b1`ÀÖ†X ØÂ;w樢 È«S§›Eˆ>XmRÝ6Ú‚ 0jÔ(Ž6à8Ä¢àuOh`ìN´í“J¿!ÓšQ ,¨ç=êÂÅ$Ç©¢ÃÖ…è9èMpDaã"Êâ£üÔ©S™€‘•…&éŽ>c†F‡ã Œ´@1À¶ÅnˆˆhL¬}" m@€ 6tß¾}¹,ÚÞ˜»ÙQW·‰úˆ” °€l`(+àW¢D ¯äÔý£ O¶pš±y*«M‘ÏâYÏ×ûp¿¼› ÞµÞ]¾6ô4åà|B«BËZñqØV;eptC³"6?íz8p ;„ýúõcРmtø dG¨ Z„öÑ&’u N¯18¦ úÆCÄôµm‹˜5È rEVcÁ©à'lg«À,ÄQ‹¶Ñ¯§Xû´æÁBTã³kÛZÖ—kÌNcîKk¬1”¡SÃæÿßÿþ¦©'ê!LrôÜ@«Â €øì³ÏÂu‚#»páÂáÒ‘ôÑl[À’ˆvð$"ñtb#*•tôm'Èi%¨väÑvdeQ›ÂÚÒì§~ìÄÚ§5ššÜ_‚ùà'ªâ¢{ë; d‡iç G?ìШ œ+˜2ž‚=‡Ýo·ölÃm÷ˆRYŸH»müï31c9Aé+ö!‘ó¯·ûðÇB„ì±pÑcë”…ì±uåcá¼#tP܈^5·“pdGlƒE·"€÷üñ ÑSÂEc< Ƚ S›=¦¬¤Ì#R„ì‘B$b Bö˜²’2H²G ‘ˆ)üÊpÂ2«›IEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1SecureAuthOption__coll__graph.png000644 000765 000024 00000020641 13515046516 030364 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÆ·Iå!9sRGB®Îé![IDATxí]˜E®M$ÉH"AÒÄSA ¢ *¨QQAD% *çˆ Šç Œ€]`— 9眗 sý—öììÛ7owáí 3Uß÷vfº{ººÿ®ª®ª™÷6Â0Œ $$ɈPŠa$+‘ A@ HÁ@R" Š‘)dǼ!í­0TÊ6nÜH¿ÿþ{¨ GÆáG*V¬H•*Uòc~î Áw¨Ò‡~ˆÄ€|ˆAïÞ½CUìx\!½cÀT¨P°s9*Uª„üd$øù%’QŒ` .nÜ8zóÍ7ýØ£}W£G¦Çœ (@¥K—¦fÍšÑÏ?ÿlƒG͵k×èäÉ“fiÛ¶miâĉæµÛOD1ü([¶l¡eË–ù±Gï]uîܙڷoOÑÑÑÔ¯_?êСíÞ½›êׯOÇ÷~“GéôéÓ)_¾|tõêU®¹pá]¹rÅ£•{/¥°€ÇŽ£7nP\\=zÔ\ô¥K—Ò®]»øúÒ¥K,H—/_6Wç.-(h Œ'ïê‰Ù'û÷ï§+Vp[ð;~üx²z\€7ú4cÆ êÔ©½ûî»ÜÇc=FÝ»wç¾}ñ@_Ìx1‚š4iÂ<ðçüùó´xñbZ´h;wÎ,Æ;úÆëׯ§ëׯ›õŽ9 åÇxò­ð¥yˆÝºu3Š/n”,Y’Ÿ–GFFo¼ñ†¡Ü óéù?þñcß¾}ê¾úê+³o%FTT”qèÐ!cðàÁÆm·ÝfäÌ™“ï{òÉ' %<ÜV ¤ÙwîܹråÊíÚµãº^½zwß}7ŸgʔɨU«÷cd˖͘4i×M™2…û¨]»¶vJ˜xžhþüù\¦„’¯_{í5#þü|Þ¢E £P¡B†n¾¶þIHHàûFŽiøâ¡žç¾˜³2ŒÛßÿþwîî—_~aÌ€A–,Y˜7îc¬IÙ²eù^ô¡v*n”ÊŸÊ•+¡þäÛQ;¬•.êÚµ+[ĺuë²k¡”ƒÎœ9CÏ=÷5ŠŠ+F?üp2Ÿ:66–Ð^ [ã>úˆïQBB³fÍb »ʕ²UŠE[·n[¯„jÇŽtúôiŽ”€³%Ö‹-ÊuÛ¶mãåƒ>àª;zôèA8‚4h@]ºtásð«Zµ*eΜ™¯­”ÀqùÎ;Íbo<}ôQsîØ™”!1Ûc'hÓ¦ Õ¬Y“N:Å<ðÀÔºukÞÑpÓ¦MÔ±cGÞÕàÊÍ;—w[³œ8N1 LðÁ•…eá‡)+GÊúS½zõLwªU«V¡‡KW.Ë/¾HÊB„i̘1„`ZYF‚ÿ]£F RŸ”å'0Ž/¼ð•/_ÞV àûcP©R¥Øø  ‚r;‰’tȬ .lÎÁ)²69räಈˆ3^hÞ¼9/üäÉ“ (ÄÓO?ÍePˆ"EŠp€‹# ñÂÞ½{©Zµj,,šI‰%ôiŠãwÞi–AQAڷǹµãD¼’!e·K!þ€¿6šÒËsÝsÏ=º Ò˜êX cÕÜ@N‹3§þ´P®\¹¨qãÆìRÀ‚RdÏž>LpEfϞͮv‰U«VÒ£ $ƒ$ëÞê¶$«P4‹üƒ´{„ský’%K’Õ¡ÞÕ©S‡`Õ½e¿ŒCP6lhÞš^*~á{×­[gö±zõj>×.WZ16;ÃÇ)FzÖ vهƽpÓGæGŤ‚iÞEà¾hWL·ì_#5êË…Ð1ܧ!C†v뛥ps@11†Fñð‘ö…;ˆøôã?RÏž=ùY(•``¥ÆÎ†8oý;v,Ç&Øå4ÙñÀGßÊ3”ÕO‘.M ¤|1Oo¤²U†r¡ µ{ÀÉŸéZGíé±Xp¡fΜÉ©×_=Å­°ö=ôPŠrÜ~ûíüñZéQˆX;‚5¾YB¿êYIª·Ûñ@ÆÎ[Ú"V©^½zª};µk>=L×Ö,Kzß[ö–>EzÊåPŽzí¾xks«eàq«c åûCú×ú÷ïOãÇ—¯¶†²ÝÄØ×àõ<, UruV*TEÆ|D1‚¿<‚ÄÄËê5“?^ ‘!¹z!cà5äùNqqÇTZ×P±GÒSe§Îï­…:…¼bà¼üçtÊ—¯™šb$ $_ …µéà; ÄNžLTOÄûòè„„þêÈ?Þí oáá‰1¼ãÐÒiÓâUêVí‘ê s|@y 3ïˆbxÇ% ¥&ĩ݂Ô7é ¹PðÅò8pŠöò×KÕkêŽý´gω JØ‹bY&O^£~Ô i¢££Ô ƒk‚<*aŸ´"‚EPˆSߺKzíûÚµëâNe%’3ÅHŽG@¯¶n=¬¾Ï_ IR `×®cê5˜¤/9tPŒŢ ÀЉ‰J1”‰;•–€ˆbîäÌbcW©ß¦Jù›L(ƒ‹%<D1‚„ýš5{Ôw¾OÙr?rä,ýöÛ.Ûz©ÈXD12_ÛÞá*ys£ô âNi$‚sÅîx7iÒj¯n”Ü©Ÿ~Z­^,¼¡‹ä@D1¶fµté6õÓ<‰üü"S¦(õ# Q¼{`—È”)š?8?{ö"ýú«ý/êþäèBþíZÿO9ø=fÉCýû7M6ÛØIZ´¸/Yy¶l)Š3Y¹ÈäíÚ 5ývìøzÐwCý¶îKé¿Yîð;âJùRéÐ ˆb8ae~G@ÃïJ‡N@@à «(sð;¢~‡T:t¢NXE™ƒßÅð;¤Ò¡ÅpÂ*ÊüŽ€(†ß!•€€(†VQæàwD1ü©tèD1œ°Š2¿# ŠáwH¥C' Šá„U”9øQ ¿C*:Q '¬¢ÌÁïˆbøRéÐ ˆb8ae~G@ÃïJ‡N@@à «(sð;¢~‡T:t¢NXE™ƒßÅð;¤Ò¡ÅpÂ*ÊüŽ€(†ß!•€€(†VQæàwD1ü©tèD1œ°Š2¿# ŠáwH¥C' Šá„U”9øQ ¿C*:Q '¬¢ÌÁïˆbøRéÐaD_|ñ…¡@wä'&¦€Sç÷ù矇‘¤FØý¾ûlØíæ¿óÎ;a7}‰1ÂnÉdÀ@@#( °C@#ì–LD1²ð;­Ó§O§† &û¼öÚk4oÞ<¿,Tûöíiüøñ~é+µNFM?þ8(P€J—.MÍš5£Ÿþ9µÛÌú .йsçøzëÖ­ŒÉ‘#GÌz9IŽ€£c÷îÝ4{ölºçž{øs×]wѲe˨Aƒéªä%]-^¼˜vîÜ™TAg;w&(att4õë×:tè@˜[ýúõiøðáiâúꫯRëÖ­¹íõë×éüùótãÆ4ÝëÆFa—®½™EúøãÍÛ PåÊ•£©S§R:u¸²aÃÚ¿?U®\™Š/n¶Ç Ê×­[G… ¦jÕªQDDD²z}qíÚ5Ú¸q#áXµjUŠŠŠÒU|LLL¤U«VQÙ²e©H‘"fúÏ—/]ºt‰Ö¯_Ï;BÑ¢E¹~Á‚4tèPêÓ§ 0À¼§K—.Ô¸qcêÞ½;5oÞœð|çÔ©ST°`AÚ¼y3>}šªW¯N™2e¢'Nx_¼x‘R‚IÊ"sÝO?ýD5"%Ä|Ý®];R»Á…™œxt…b ß\¤-?ûì3Rþ6»p£àNLš4‰”MƒæuÆ‹ŠO>ù$gtB–gåÊ•´páBjÙ²e2Y€«Q©R%Î!sƒ¬PÛ¶mIùþ¤b¶®Øu`yUlC½zõâ,35êÔ©gÉ7nÁ=ƒ[öÁÐØ±c©G¦b¢/¸R+²NóçÏg7åpƒ 4¨³RZçh½ÇçÞ‚¥P-Koð­Òœ(ª…ä#²Q%K–4ÔC>C=ìâi=zÔxðÁ¹^ /³cÆŒ1!@6 ÷錌R C¥=¹^Å-ƧŸ~ÊçÈ)1ù!àTqׂiŒý(e4T¬ÂÙ®¸¸8£D‰Üj¦àŸ#G}É92Az8¢~ذaf•BÖ õî•2êy·ùñǹ kðJ_sToÆÈÄiRŠÅýÏœ9S¥z ÇàÛÑY©TWìÏH=ª`—³BÈ(y’Š)XÈÕ“bϪd×j0”[f¬Y³ÆÀ¹'!…¾4© ÝP±„¾Lõ¡DIíH)Ò¥Z1ÀwÇŽ†·±"5­v¯|Ò:G¯7§RŽŠ‘<T¦ÆÚÀzb€‡oø¤F¨XÛ2cVB“B†LYïTokçðÐŽÒ:G»ûVîŠÃi‹æm>låF¥ê½µ•²Ô#uŒÂ¢…Š“øYJX 6 );F,’ 1ðˆbs¯UüªÞvEÂG(Å…UPcX±b'-]êì×,Bê4 #ìbŒC‡92ÀÌ»®Z°HõnnšNe,a¥x O¿~‘±°¶wõ’,õìÇ®Ôðᯨ÷¨¼ß#°£ò/7|?%œ(¬_ðÁÇi4oÞïêeÃåjZêMÚ ê-]ûg!N›{¨ÎGbŒX™I“V«w™¢x§À¹PðÅò\¼x…æÌY¯¾>z]½j~C½ø÷»zÁðrG%ìE1‚,³goPoõ&}·áÚµëê-àõA•°Å² Lš´J}*)ØÆ{['® ò¨„½(Feàôé ´xñõ}¤Ÿ±Áù’%ÛÔ©ƒ82a-ŠD˜1c­-÷iÓâmë¤"ãÅÈxŒm9ÄÆÆ%ûÚ¬µal¬¸SV<}.ŠhÄÿäwèЊ‹Ûåõý(ü\|üõC §‚4:a+Š$€«mLL$M™"îT–G½œ#&LˆSA·ýÛ´W¯Þ  ~ ÊØ„)ÞZ 8;vS?ÊvÐ6¾ÐÚ¶íá#xÂê]©ÀÓ1׮ŜO_<øÇÏÚ)’ô«ƒx¾‘°W½V0c"½Ú"x°­•Š€!бãwüJȨQ/Œ§0²G@\){l¤ÆÅˆb¸xñeêöˆbØc#5.F@ÃÅ‹/S·G@éq1¢.^|™º=¢öØH‹ÅpñâËÔíŰÇFj\Œ€(†‹_¦n€(†=6RãbD1\¼ø2u{D1챑# ŠáâÅ—©Û# ŠaÔ¸Q /¾LÝQ {l¤ÆÅˆb¸xñeêöˆbØc#5.F@ÃÅ‹/S·G@éq1¢.^|™º=¢öØH‹ÅpñâËÔíŰÇFj\Œ€(†‹_¦n€(†=6RãbD1\¼ø2u{D1챑# ŠáâÅ—©Û# ŠaÔ¸Q /¾LÝQ {l¤ÆÅ¤øJ+V¬ Aƒ¹’àLýðáìêò.|>8p1×.]ºP­Zµ’!âðíÛ·bccéá‡NÖP.2ÈÈ£Ìà臌e&½›,^¼˜ž~úéÔCßñá‡êS9 ŽEà±Çó:7‰1¼Â"…nG@Ãí ó÷Š€(†WX¤Ðíˆb¸]dþ^H‘•òÚ*„ çÎK›6m"¤Ü2’.^¼HcÇŽ¥åË—Ó¹sç¨jÕªtÿý÷Sݺu)&&&#YßTßçäÉ“©aÆô裦¹K—.Ñ7([¶l´{÷núâ‹/¨ÿþ”+W.Û>þ÷¿ÿ²;[·nåûJ—.Í™žêÕ«ÛÞc­°òDVtèСôþûïSÞ¼y­Ízö;€Ü°aC†ƒöÃ?‹Ý¾}{Ê“'}þùçôå—_f8ï›a€”{\\§ÞÓsÿgŸ}Fä[.\¸@k×®¥+W®Øvù‡¨¨(jÛ¶-=õÔStøðaz÷ÝwiÊ”)¶÷Y+¬<¡”0Bê‘nyÇh'Ož¤üùóÓQ•„ǤJ•*ÅVgÏž= *,Htt49r„²fÍJ9sæ4§|ìØ1.Ëž=;—Áê\½z•û@[MèwÇŽT¼xqÊœ93>}š *¤«ù˜˜˜È€fÉ’…w‘ܹss{T¢OXzX¡½{÷Òùóç©lÙ²¦µÇB`.°þ‘‘‘ܾƽS§N¥çŸž^|ñE“gDDÍž=›ºuëF8ÌÜvÛmf[œ`|›7o¦|ùòQÉ’%¹}Ÿ8q‚ (À|QxüøqžcŽ9ø ŒïСCT¦L¾Ïf||<Õ¬Y“w¸ýû÷S±bÅRå¡„õ¾|ù2oøóÏÁƒ¹ ˜éuY½z5ïJ­[·¦—_~ÙlÞ¼ysêÙ³'ýë_ÿ¢Úµkæa‡ý™3g’ñÄ8=w(`€µn˜¿Æå%¬ÓÎ;©H‘",‡æ@náä–cûöíÔ©S'ªV­%$$ðP*W®L™2e"ªX±" 2„>úè#VlÏ wË–-é­·Þ"ÜÓ«W/Ò@Ý~ûíôÏþ“J”(ÁV«wïÞ,Xà@¸gÍšÅýè?èŠuêÔ)VÐk×®±+Ñ£GZ¹r%õéÓ‡ªT©B7n$Ô¡oX;(õš5k¨{÷î4xð`ž‹õº\¹rÌ;sµiÓÆtS àè ®¬'ù•W^¡^xÛ›~ýú¬0xca)±¸o¿ý6M˜0Á\TÕ}÷ÝG¯¾ú*uíÚ•…–»ž/ùâfsæÌaÕ~î¹çhÞ¼yÔ®];ænÇÆbÙ²eÜ®oß¾ôæ›ošçPhvÊaÆñø±ƒâºU«V\§ÿÀ¸¼þúë¼³.]º”ÛØaÿŸÿü'OÈÓÿû_6|ß~û-áà åúË_þBŸ|ò Ïí°†ëÖ­£ëׯ³1~çw¨Q£Fz(7}ô›+«†íƒ]¿~=[h,6‹µ^½z< .è×_eí‡üÝwß±`lôË>mÚ4¢O?ý”­;ÀB;}¿·YCao@8 P,Ž&(ÜŒ3èûï¿§³gÏÒ×_ÍUØ} ¤z²^ÃBÂEÀë2Mš4á~ÇÇ– e…??þ|^4ðÆ.2jÔ(Þ! L˜ ¼1”?^Ëç‚E÷Å@!Á˜Bhï½÷^V Ÿ þ¬„ÂÔ©S‡Ÿ>ܼý`¬Ø0nÄ ¸±0RÚP˜7¨ì˜Pìrš¼aoÇ÷@ŽÆª¸ëYÀš8p€ÆŒ£»$fÄ$5½éÓ§›u·râ7Å€ÕÀÄkÔ¨ÁãÖÂëklï<ò» PТE‹Ø2"°+Z´(mÙ²……;ÉW_}E:t mÛ¶±ÏÚ´iS*X° ·C@iGpQð4îÚ.\˜wÝ~0\1ðC½Þåp +§Ãóʯè@Z°`Ýu×]Œ¶} \ºß~ûîU‹-˜7x`÷x衇ô°|áŽÀòÃXøâƒN°³@‘€âC1p !»Y‚«W¯|ùò|ášàviسo쌰âÚíA½öž÷êë%K–°Y¿~}.š<øàƒ¼»ë6O<ñ¸Yx ŠãºeWJBgàF€0 – €ƒÅÁ$ ”ØQ@P,¸QØ-FÍJ…:½;ÀÓ±#¸(VBœ¡û@¹|œ£î & æx„øH\Ù“ pV‚õÕä‹Ú æÁ³Ü)=vk9Î=ùyÖCè4aw@,ÖØ5¼v9´³®Gz±Ç\a``ä4Aάk†5Ôƒeô%q¼ÅÞ´¤Ö Ü)(\ ¸(ú­ÆU«V,\…‘#G²bÀÁ6‚pj²nϺL¸j‚cDZ.ˆµXQ_J¦ûA»Î;s\£Ë°@Ï<ó _¢Oì–ýë_Y±¡Üø`—Ðs€;© óD@¯qCŒÂÂbwµ#_| ˜0:Ø]à»ëvÐ… ²{›^~‡¾ÇsLˆyàÊxË "] W †PSz±Æ»víb÷P÷ÒºfvcÓíoöè7ÅHëxàv1¾ùæíŸÎœ9“}E£Ø®‘m€+‹>=‚C,üM;pðõaUà‹"ÐÕîî_ô7V ™b¸Jz+¶^ÃwE …  !†;xÊØóBLðÆxp‚\4R¾P´ƒ¿÷Dg‹ HP­$<0?¾ø€7ŒAãÆÙRÃZãÓ Ab¤Ôø!{ã‚q§FØ)á.cwBÒ óC܆8Y<Ì[“öv<±npõ}ˆU‘mC”Ñä7W*µj͆"ÀŠ"(†¨ Ù›?þ˜ýp…l‚Mÿý[ìÛ¹÷ÝóÞ¹Ïë¼{ïÛëûÎ=çìqíµ÷÷>ïó<¯8ppH‰Å ãx)Õp…¤¸££€£@êpŒ“:Í\ G§qÜpÈJ&Vš?¾|ûí·‰ÉîÝQ ÈRàˆ#ŽÃ?<~üüЧO‚îr4pkàß5ðÈ#øYDŸshËV&×>º»£@‘¥Àa‡–tì.8”,.ÑQ w 8ÆÉ>.×Q )ã$%‹KtÈŽqr§ËuHJÇ8IÉâr§@Æ3Î;ï¼#·ß~{î£, ÜñãÇKƒ dß}÷•=öØCN?ýtùä“O ¨õôhÆ„^åÉ'ŸTdÚ·o/\É gÏžrçw&ËJ)mðàÁR¯^½¸ë¦›n’áǧÔNÔ…3žq~þùgùæ›o¶;Ý>úè#©Y³¦,X°@Z·n-÷ÜslÚ´I'üƒ>ØîýGÕÁ´iÓšßÿ½ ,’Á† äï¿ÿN–•RÚœ9sTøT¯^]¸9äϺuëÊ矞R[QÜÇ ‹\¸p¡Já¹sçÊ_ý%Gu”lݺU˜ò>úh)Uª”_¶lYÙm·ÝbÍsR´ *hÚĉcuvÞyçX9Ú2eŠT«VMvÜqGYºt©ì·ß~±|V¯^-ì?í´ÓN:é•*UÒ‰ oãÆ²råJÙsÏ=eÆŒ²jÕ*9þøã¥téÒdk½õë×Ë;ì Å‹{§îwÜ!'žx¢Œ1"V§U«VrÜqÇÉ< W\q…¶Ã¸úé'a\Ðí¤B§TÊjãægíÚµºÈ>ø`Ù{ï½m²¬X±B|×]w•~øAÊ”)£»à%J”ˆ•Y¶l™ÎÍ‘GKËë¡Y³f±1‡écóæÍº¸sÌ1â{ì±X—0óŒ°:óÌ35ºNž_}õÕžÙ°ò cz†!´ÿ믿^ó¨ïƼŠåQÖUó Chþ¨Q£r¼sLóŒù yþŸY³fyƒ òÌÄzféøÀÓâkL-ž R)Kã†quLfQ(žÐ{Ë–-گьJÃPJ;³P¼sÏ=Wñ¥ô#‹úûï¿¿wÝu×i]æÐH~}Nü¡]æÈ«£Áú0 ß«\¹²Ç_|QûÖ—Œ–Ó5н{wM3fŒW±bEÏ5½Ê—/¯ë…LÆ ŽF0{F`jû=zôÐzFy×\s¶O>kí‰'žÐ¼°?‡z¨—ìä’5òË8Æö÷Œã=ÿüóŠ( ÔH]¯wïÞún¤…×­[7]ü‹/Ö>! 2Ï»ì²Ë÷ÜsJˇ~XßÁÑHv}¾ÿþû=Æö /è{~'¨€‘vWAí/ºè"eP„eœK/½Ôã:ûì³Uè°`ÿüóOÃi§¦uŒÅàÁ àFiž1“g 1=ƲÏ>û¨`xöÙg•6£é¼×^{MËTë†ùÙîŒc‘ùå—_9ã´+^ ¢0@Fyå•W4"Õ¯__Ÿ°1#¼Î;{0ŠkìØ±Z¿ÿþ±q>ôÐCŒcÔx¬p€JDË8V‹‘GŸh¶¼À.¨¼†¶ζ‰öCª[fC§TʲLðÅ_x]ºtQíÎŒ ,,Z´Héùé§Ÿª¦GsÓ†]~'¨ó &L˜ ×Ë/¿¬iàm§mÛ¶ø¢AO?ý´¢EMh÷þûï{æÀ¥ Y2ǧe7nì}öÙgž1Y•ÈC#ó:Ö/𠋦cÇŽd‡‚ ÆùÏ>Ž!Š‚Q¿zǰµC½,Ũ[u¦4£aÄL´í ù†°²|ùr1K}|ƒ^½z‰1ç4ÿä“OÖ;?‰¾M,Ã<˜ ô¿ ~Žmƒ £½bùDÆð•òìmÀ,6iÚ´i\q¢?¯¿þº¼ùæ›8ÀoòtÁ‡°†N©”…®-[¶TÜŒP¿ÊÎm‡qZÀÇŒvc–ªÝoý<Ò=öXn)CPøÀ«¯¾*o½õV¬]pŧ´`¦}Ô»a 1̯A#45ºžœRÆO²`˜CŒ©¯—1AÕ¿Å÷ìСƒú5øÆDB-àKÛ5iÓòs÷°òÓ¿uµ ¦Œi¤fÔ¦ŒÚÖ¢,@BŸFª‹‘Laqºí„àüY0f†}Ìqÿã?biÆ,I“&Å1š?ÿ«¯¾ŠË‹ULx ¸Á¤ :4!Gä©§žÒè ˜”†v"T~FK'ÚSöÝwß#iÅøê³$ÇÂZ(2#õ5cqŠ¢Ùü {P6Pa4¡â‡£Îü>óÌ3j'ž åª·Þz«¾óÉ A F㨰 ÃܶhÑB:uê¤õèÛøi±~i˘Ýrùå—Ûêù¾ã„ÅÀ˜fB´ìÁÔX h÷ˆF!U˜T#ùè£j$ŒÈñ»cRÐbh/‘ˆØ\+ỏ`Z ôÌ5lØ0iÞ¼¹3M5T"jDC¹³ïC´ úDÒ°^¾þúk-ƒ¥ƒÆ¥mÆÇü`á°`¨† jtÕö›ï{¢¡—ßàN*€Ói‰EMLˆXßñ1,àPÆì¿Ø$È >‚‘\j£)ïé¢ùDµð¨c‰g̶8Ç ªvàÆÊÙ²QëãP—vp ñ¯Œ*׺¹EÕ(`¢ðѨÏEt‡€¢„8,žDŒ@Ðlë·„¡S*e׬Y£ú$jd˜×»øâ‹•NØÿ÷Þ{¯‡smÁ0Šâg´§&³&6¢]µk׎ùiDßìXýwcj»ø@^}à³âÙ6˜g;·6ðbó˜ÿªU«zfÔclA¢¤Ì=‘W|!æ¯M›6êÓˆ¢>>² 1߈@Ä%—\ë×úÐÚhÈŸ ç?GÕBöWÌHhÏìqÄ¥ñÂâ4’#•ò bBÈFd±Úp´¿ ŒÃ¢¡c2Å9½–qÈ3ZE£HþºaŸq>Í^“F¯ˆb%‘""8¢L\T@4褂D’€1qtLc¶Ø9v<§ Œ1Z@HYÆ"@Áƒdsbö•QÙ.H‚§À‚†ãóÌ ‘#G f6o" bM¨11Yß1éð5Âí°ù‰„ rÉÒ1Ùô l}£õ‚²·[:;î~ðûUþôdϘ¢‰›†ÉÊý—´¼æ$¯¶1ݹ,`¾ûÁ,pÿkÜ3&®‚„HÿÅì7ˆQµb6¦ò=ìy¿ƒhbñHÈ\›¬ŽKs¢@Ž?HˆÓl6—0á‚ê¸tG"C>6›æBPÉ‘GÕü»gGL¥€cœ4¹-[¶š}‹µiŠC+ÐÇÁdsPx˜1c•,Z´NêÔÙvÒ¹ð°)º=›È]ÒÁ2~ŽƒÂ£@… 發Š&˜Ò«ðp=R Gp °¤ËˆŒë×o2§'Ú›³\ÍG]í¤jÕÝ#ëÛuŽÎÇ G§HKÁ€Æ)nŽðLŒ´o×Y8 8Æ G§HKõï?Þ|!YÜœÞ*}ûŽ‹´o×Y8 8Æ G§ÈJ­Y³Þœ®˜¦LC§sæ,3Ÿb/ˆ¬×Q8 8Æ G§ÈJ 2Ŝ޶ù\ªTIg®EFýð9Æ O«HJöëÿWe6mÚl>SˆO‹×I®pŒ“+y¢Í\ºtùßD³â4,Y²ZÆŽ þx/Z,]oPÀ1N­ƒAƒ&›ÒþùÔÜV©R%œ¹æ'H<;ÆIƒI°(ôéó}mCÞ¦M[ ãLˆ lyw/< 8Æ)<ÚÇõÀ¼yóæiÙ Ÿd¸úË‚ÏÔ©Såï¿ÿŽ%{ž§ÈâHÐ “ Ð÷qÂkÖ¬YrÛm·É±Ç+“'OÖjì•.]Z€„Ã?\^xá>|¸tëÖMúõë'»í¶›–}ä‘Gt>÷ÜsÒ¦M™8q¢”,YRüÝwß-^x¡¬Y³FÚ¶m«]¬X19ôÐCeúôéòÄOHÅŠµ~ÆŽ+>ø }ôÑÊ4,²ÿýïòÌ3ÏH¥J•„M]êÂP´C?<ð€œ~úéÚÆ¥—^*gu–´lÙ2Ç; µ}ûöʸŋ—òåËËc=&p€´jÕJH{íµ×„ÅwË-·H¹rå䥗^vÑÁÉ.Pè-<ð@y÷ÝweÔ¨QZwñâÅŠÓE]$£GV†‰›o¾Y7n,]ºtQ惹h‹±Õ«WOÍTEÖ÷„+óó¶k×N… ºûî»Ë³Ï>«t‚ö÷ÝwŸ<ÿüó:Ÿôùå—_ÊÀ}­§÷cÆhKÆwÞYúöí«L„DDôéÓG uΜ9ræ™gêâ`2¤-ÌvÎ9çèbÁäzï½÷dРArÅWÈ[o½¥ ñí·ß–ßÿ]`È!²÷Þ{Ûn“ÞY ü±.L¤z=bå0gzõê¥ù'žx¢.»¨aœ5jÄÊúßaÒvØAq:t¨žªxôÑG5 ¦ž?¾¼óÎ;Ò³gOÕ–,Î%J(3yä‘òᇠ¸W­ZUñ² ™.¿ür0`€T¯^]>úè#iРâW§N½Û²hÑ»îºK>ýôSe˜aÆÉ×_m³c÷ \ajh‰æ ½Ê•++“rN8á™Ç8Mš4QéuòÉ'+ÑL}Çœa’XHTbqÕ®];Æ ¯¼òŠJék®¹F8ša̘1:‰ÔÝqÇåꫯÖúA?Íš5Ó½Ï>û¨T¶šòHtF™2eœa,LJàÚk¯;-aßÁæ?餓Ԍ‚‰a0Ò‘îHò+¯¼RñE›¶hÑBè€î¼óNe,Æ‹çdì¹çžº8+T¨ ÇsŒžD3"ˆèÃï·ÀthD´Úf¯½ö|?ä…+xa># \‘ACä¡á,ã ‰›6mêo>íŸ3ÆT³”´¦ŒØ…ÃÂvډȤa¦œrÊ)R¶lY©V­ššH˜˜>HwL˜€…Æâ´ÀbË ìÄS†‰OcÅf<Àú6=ñÎbÌŸ|òI,Íf}€ .¸@†<ûì³ceh!Îî·ß~1ßȰtãÚÓN;íd³ã–²‰¸ç…+Âz m^ýun˜ ˜·ÙÇ8–Aò">çß°ó1¥Ð;vÔ*8Çø o¾ù¦š:˜y˜>矾úÖé§ðü‘k7,ƒ`6úÍ/íúé'mÇŸŸ¬a¸ýöÛ•ñyfÁ`Øwß}U(à£Q ?îÞ{ïÕ20 ¦RÆèÔ©“j*ÚÂÒ²~ÜñOfΜ©œ< yኈÁ—¡>þ¾þX6@Æ™ja‰Ž©óÀ hÌèá‡ֈѮ»î*UªTÑ…†¤ÆdÁžÇ¤Â´zã7ríŽ|L"4:´š4æmaVí±Çꨓ߽{w5 mYûb&á§ Á×xüñÇÕw?ü’ñãÇkp£yóæ*X *ƃÆýæ›oÔ'ñGîl_aîDÂFŒ¡†¤k Ûúyናà[1&‚hI€q½øâ‹²`Á}g_¦Ê$È8“qý’sÀÈ€# sà°±ño¸á]tHkœï믿^Ëâl[ð·kÓ˜øúõë«/c^wÝu6K ¾ šˆÛC=“úhA6ÊæÇW¡ì7Þ¨má¿uèÐAˆ†½úê«R·n]•þÇwœúpO=õ”:â8þ Ì"˜´aÆòþûï+Ó;þŠžßmwL56Z ¡.Gq„¡-.´Z®´}ÕUWi4à ´‡hGf"HÁø1µ±¾úê«Ø˜µPšÿú‡lDŒ¶×gì`ö5câü€Ô[·nrÈ!q‹‰£Ìdï²Ë.jÂá+YEL2¡_˜’vCÚ[€Q ySÓ/±o[.èξ֟ *oÓñ)Д˜uþ>ø…L<˜šð=8Ð&rÕ<Âù„ò­IÔN*éÌ>i‘þ-‚¥R­‚¹@(8ÙÂM–FûHSëÛðqnýÚ²ÉÊ ­¹R†IØóá²`ƒö=•{Xr+Gž_k§Òº—Í:SͼÿþAû/aN&ž([ââgqæöÕ*u°é3ðùŠú±¢0ó–Õ¦ZnÀÑ9r¤:ïø9HFnˆ9·ú™ÇÉ„[o½UÃÓøM—]v™jàDÜ @œzꩺϕ˜—Žïé`ªmóÓ‘BÛ 'jŽy`w³°jÕª¥|l(&ž]ÛN(DÒ,›–ø9DÅ8-Sž 9'žÇKVÎ¥m£@ÖšjÛ†ÿDÿ‡ çwžÜtÓM‚‰ÇÀÇa÷ ˆ`7 qÀ‰–aŽºe†à€Ýó`Ã:é”ÕŽÌ œ}Ú.y¤Ó'›¡rÅ¿"êfÀQAü4L®°pÏ=÷èžåóêƒ2%ÌÎ8³IC3¶°P䇠8͉g£8 É¡C¢Pö{`¢C0 ï„S94™JY•EÌ&-ýÑ7¡rB»‡\ j€8Á¼„x9vƒr–#;'$ÂáfÂ×çÉ­Úƒ~ÖD‹{_Ð%Ñ Ûw¦–+r¦™#)v_Ç?qaÁa¶tîÜY÷.¬ñH³G_ÌaM†-ËHð#|Î3>Œçî±1ÊÆ"'Àü´(ácNH|ðÁª ücKå9¨ö­0saT|Dðä4'/Š9ÆAJÛólA“Íög8¨ ƒ±Dæ( Ž)€y†ÖB{åuh2lYö8EŽß~û­Ì1§`ö›,p4æfo„C«v÷òìî㯱Êù»üBPEÓ°ïF¿hD"ˆøOE Šœ©†©Ãqy£õYì¤#Aa{pÂýÇäLåÐdزø5:tP?ƒGÿžŒÅÿ7ƒY‰¹ÄÅY9:è û˜ò=Y4‚0Ø$õƒßÏò§gós‘c¤5£œù²G^˜`vø19ø»v¡c†ð‰@°Î0xX[–saLÅ ÂgàÌþŒ’µÅ~åíW±”·A ݰÏÉú .tA° `¬Ð¡ÿW©aûÈôrEÎTãXþÁ¬.‡ ‘¢„mùÄ ÏGph þÑ#Gýa:«¶ÇÄc¢‹_Çú˜Gyû0|lÆÞš«wïÞ9ªÀX˜tþ‹óhaC¬h7·æ¦ö iØv²¡\‘Ó8HgÎañ™3çä,`Úð\X´\|ꌣÍO$0áek¢ðžxH2ñݶ›JY{0ˆrÁØ͇‰5ï6:>ŸYø;þP6iœºæò‡9m¤ûŸí»MƒF|ÊGi„í4²ÿp«&Ÿ"{r€¹å[¤3æ—5ÏüsNÅÈ!I4Ÿ9üå ò‰NŸøb%8þ‚Ƴ>Vn}¡±ˆ¬Á0v)·òùÍc‡~ػڞýá—'ŠœÆñOï?ÕìÏãà HÌßïhDö”,°{K6-ècï¿ÿþAÙ–Î%ÿ—²Öp5Tä|œ š‡jSÀ1NOŽC-})à'}çÆa–ÆpŒ“Æ“ãPK_ 8ÆIß¹q˜¥1 =ªÆ”àÛ}Ža)à?»¶NA—+4ÆaSÓÅòCªæON%;Ë—Ÿ¶òS§Ð6@󃬫ã(.p>NºÌ„Ã#£(à'£¦Ë!›.pŒ“.3áðÈ( 8ÆÉ¨érȦ þ*×Ã_"(ÒIEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1Query-members.html000755 000765 000024 00000056043 13515046515 025357 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::Query Member List

This is the complete list of members for mysqlpp::Query, including all inherited members.

affected_rows()mysqlpp::Query
disable_exceptions() constmysqlpp::OptionalExceptionsinline
enable_exceptions() constmysqlpp::OptionalExceptionsinline
errnum() constmysqlpp::Query
error() constmysqlpp::Query
escape_string(std::string *ps, const char *original=0, size_t length=0) constmysqlpp::Query
escape_string(char *escaped, const char *original, size_t length) constmysqlpp::Query
exec()mysqlpp::Queryinline
exec(const std::string &str)mysqlpp::Query
execute()mysqlpp::Query
execute(SQLQueryParms &p)mysqlpp::Query
execute(const SQLTypeAdapter &str)mysqlpp::Query
execute(const char *str, size_t len)mysqlpp::Query
for_each(const SQLTypeAdapter &query, Function fn)mysqlpp::Queryinline
for_each(Function fn)mysqlpp::Queryinline
for_each(const SSQLS &ssqls, Function fn)mysqlpp::Queryinline
info()mysqlpp::Query
insert(const T &v)mysqlpp::Queryinline
insert(Iter first, Iter last)mysqlpp::Queryinline
insert_id()mysqlpp::Query
insertfrom(Iter first, Iter last, InsertPolicy &policy)mysqlpp::Queryinline
more_results()mysqlpp::Query
operator !() constmysqlpp::Queryinline
operator void *() constmysqlpp::Query
operator=(const Query &rhs)mysqlpp::Query
OptionalExceptions(bool e=true)mysqlpp::OptionalExceptionsinline
parse()mysqlpp::Query
Query(Connection *c, bool te=true, const char *qstr=0)mysqlpp::Query
Query(const Query &q)mysqlpp::Query
replace(const T &v)mysqlpp::Queryinline
replace(Iter first, Iter last)mysqlpp::Queryinline
replacefrom(Iter first, Iter last, InsertPolicy &policy)mysqlpp::Queryinline
reset()mysqlpp::Query
result_empty()mysqlpp::Query
set_exceptions(bool e) constmysqlpp::OptionalExceptionsinlineprotected
SQLQueryParms (defined in mysqlpp::Query)mysqlpp::Queryfriend
store()mysqlpp::Query
store(SQLQueryParms &p)mysqlpp::Query
store(const SQLTypeAdapter &str)mysqlpp::Query
store(const char *str, size_t len)mysqlpp::Query
store_if(Sequence &con, const SQLTypeAdapter &query, Function fn)mysqlpp::Queryinline
store_if(Sequence &con, const SSQLS &ssqls, Function fn)mysqlpp::Queryinline
store_if(Sequence &con, Function fn)mysqlpp::Queryinline
store_next()mysqlpp::Query
storein(Container &con)mysqlpp::Queryinline
storein(T &con, SQLQueryParms &p)mysqlpp::Queryinline
storein(std::vector< T > &con, const SQLTypeAdapter &s)mysqlpp::Queryinline
storein(std::deque< T > &con, const SQLTypeAdapter &s)mysqlpp::Queryinline
storein(std::list< T > &con, const SQLTypeAdapter &s)mysqlpp::Queryinline
storein(std::set< T > &con, const SQLTypeAdapter &s)mysqlpp::Queryinline
storein(std::multiset< T > &con, const SQLTypeAdapter &s)mysqlpp::Queryinline
storein_sequence(Sequence &con)mysqlpp::Queryinline
storein_sequence(Sequence &con, const SQLTypeAdapter &s)mysqlpp::Queryinline
storein_sequence(Seq &con, SQLQueryParms &p)mysqlpp::Queryinline
storein_set(Set &con)mysqlpp::Queryinline
storein_set(Set &con, const SQLTypeAdapter &s)mysqlpp::Queryinline
storein_set(Set &con, SQLQueryParms &p)mysqlpp::Queryinline
str()mysqlpp::Queryinline
str(const SQLTypeAdapter &arg0)mysqlpp::Queryinline
str(SQLQueryParms &p)mysqlpp::Query
template_defaultsmysqlpp::Query
throw_exceptions() constmysqlpp::OptionalExceptionsinline
update(const T &o, const T &n)mysqlpp::Queryinline
use()mysqlpp::Query
use(SQLQueryParms &p)mysqlpp::Query
use(const SQLTypeAdapter &str)mysqlpp::Query
use(const char *str, size_t len)mysqlpp::Query
~OptionalExceptions()mysqlpp::OptionalExceptionsinlinevirtual
mysql++-3.2.5/doc/html/refman/field__names_8h_source.html000755 000765 000024 00000055113 13515046515 024067 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: field_names.h Source File
MySQL++  3.2.5
field_names.h
Go to the documentation of this file.
1 
4 /***********************************************************************
5  Copyright (c) 1998 by Kevin Atkinson, (c) 1999-2001 by MySQL AB, and
6  (c) 2004-2008 by Educational Technology Resources, Inc. Others may
7  also hold copyrights on code in this file. See the CREDITS.txt file
8  in the top directory of the distribution for details.
9 
10  This file is part of MySQL++.
11 
12  MySQL++ is free software; you can redistribute it and/or modify it
13  under the terms of the GNU Lesser General Public License as published
14  by the Free Software Foundation; either version 2.1 of the License, or
15  (at your option) any later version.
16 
17  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
18  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
19  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
20  License for more details.
21 
22  You should have received a copy of the GNU Lesser General Public
23  License along with MySQL++; if not, write to the Free Software
24  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
25  USA
26 ***********************************************************************/
27 
28 #ifndef MYSQLPP_FIELD_NAMES_H
29 #define MYSQLPP_FIELD_NAMES_H
30 
31 #include <string>
32 #include <vector>
33 
34 namespace mysqlpp {
35 
36 #if !defined(DOXYGEN_IGNORE)
37 // Make Doxygen ignore this
38 class MYSQLPP_EXPORT ResultBase;
39 #endif
40 
42 class FieldNames : public std::vector<std::string>
43 {
44 public:
46  FieldNames() { }
47 
49  FieldNames(const FieldNames& other) :
50  std::vector<std::string>()
51  {
52  assign(other.begin(), other.end());
53  }
54 
56  FieldNames(const ResultBase* res) :
57  std::vector<std::string>()
58  {
59  init(res);
60  }
61 
64  FieldNames(int i) :
65  std::vector<std::string>(i)
66  {
67  }
68 
71  {
72  init(res);
73  return *this;
74  }
75 
78  {
79  insert(begin(), i, "");
80  return *this;
81  }
82 
84  std::string& operator [](int i)
85  {
86  return at(i);
87  }
88 
91  const std::string& operator [](int i) const
92  {
93  return at(i);
94  }
95 
97  std::string& operator [](size_type i)
98  {
99  return at(i);
100  }
101 
104  const std::string& operator [](size_type i) const
105  {
106  return at(i);
107  }
108 
110  unsigned int operator [](const std::string& s) const;
111 
112 private:
113  void init(const ResultBase* res);
114 };
115 
116 } // end namespace mysqlpp
117 
118 #endif
std::string & operator [](int i)
Get the name of a field given its index.
Definition: field_names.h:84
std::string & operator [](size_type i)
Get the name of a field given its index.
Definition: field_names.h:97
FieldNames(const ResultBase *res)
Create field name list from a result set.
Definition: field_names.h:56
FieldNames(const FieldNames &other)
Copy constructor.
Definition: field_names.h:49
FieldNames()
Default constructor.
Definition: field_names.h:46
FieldNames & operator=(const ResultBase *res)
Initializes the field list from a result set.
Definition: field_names.h:70
const std::string & operator [](size_type i) const
Get the name of a field given its index, in const context.
Definition: field_names.h:104
Base class for StoreQueryResult and UseQueryResult.
Definition: result.h:110
Holds a list of SQL field names.
Definition: field_names.h:42
FieldNames(int i)
Create empty field name list, reserving space for a fixed number of field names.
Definition: field_names.h:64
const std::string & operator [](int i) const
Get the name of a field given its index, in const context.
Definition: field_names.h:91
mysql++-3.2.5/doc/html/refman/doxygen.png000644 000765 000024 00000007303 13515046516 020774 0ustar00tangentstaff000000 000000 ‰PNG  IHDRh ;ˆØŠIDATxí]y\•Õº~45%TL Q”PE"q–Û11±]8a„w*©¨(*â" ˆzÀè`8 ¨‰¢mÅ,’òà„p$%”œBó(8k†Ü÷ýÜû6lòö»§k÷Ç÷[ÏÞß·Ö;?k½ëßÕÕÕPxÑêÏ't´ÏùÈ€zÀÇÅ3_€Q4€g@œmÿ ¾ò‰âci‰ôçÿ{ ðÇð¬ù~½Á€4:õHcÂü ðŸÁ³„ª'ÕPÆæ P7^h،♠zb„cóP¨„ 3‚† Ò}çÿO²qÁºNkÝTÛ(É?d Ç~z<’«4Óǡ؞Þv­zµÙ¦õ¬ZâdÛ,Ë6Ók±]Fz< ¾ZçƒsÕ?ìƒsUø2SÉåwê1”c`[ì—}%ѽ.Ô¼6‚BLZ˜û!F8[ ¹…×TéÛ— »Þ#gó]å:vžu?‡vèbÙR˜?wùŽŸ¾ÊÐgbÑÉÌÕ$kF~Ê;عÆ•¢ïX®?ÉèlÆÙôõà»Nʪ¼­,ìHC§gAz•ÆlÓº­gÑú ]œjÎñåM…3ÓÚæoÒ³'=‘$Ò÷f}G•ŸS_‡öèco.Êȹ :ó£ Ãds®Ù:1=¼{ƒå9?÷ý…zqÛvîÓi‰D’p¿Ë šmÙíoÛâýaÖüEqÒµwÌ}¿~{òj€ç{ôºŸFNëí[ëOq·ÇOSúXO]°>‚‚muæÄ¾e¤“5Ë{¨JÕ¯£(›´«bÂçû’ÍlÓÅ}žïú`éUÞy„ac§Á†ÔCºŠóAkl‘±y¥†ô¢ùôs÷Aø¬7ÄõôoJ±äÄ ù.¥Be. Z¬Ð×ÇÈöå¹­ù'Ù-PëìŠyF.ž‚žÝÚ€lp&.êˆð•jò7’re’z19»ã§HGíø%œüq°ïüz׈c¬_k_")ŸHJnÐÑ~ˆÐÖ˜á´äÕ5 µÁq€ÿ5#¸·îà¶+9T‘‚ ðŽ÷Rܸrz“Ï´Ì =Ï…{ðáO£Èf ¡Íwg|Ž’Ü/¢Þ$÷¯¢ëðúÀ;¿à¨Ö™âÒÆ­]¯ÜW"Þ/< ‡÷DÏà°½üB}çyIEc^—ƒ=[V“Ýh²ëMä$l];Kû®¸ýr¦È*Åò ÿtÒõ$]•MŸ÷´;×I€1èó!‚œõ¸M õ¨(fÌæ<ÁÎÎò5~z¿ù¶ž mÌêÕ >–âÚ©âëˆIÎÞçz;ãu[i·eç^ÆÜÙÓ³NÞëF6B\}7†»+üŽÓ,Ã'a ½˜-yHY¿,‘^—ñfú~ß?Hcø¸…¸ñó{Z+4\såƒû·¯Ù·nߣð«íFÆ¡sغëû§D¾?ò<–Ævkx0ÅM±ælذÁIÓxÿd”žÜÉ÷EE»AªM«g*È£YEí7Û™^[uíý®v[wGå†=Ed¼n×¶ÆæÖÅl¡'¨pGÚk+‹æ¢À¬¨C8ªâš2 dz3H£ß ¡¨BÒûSÃÅù[wŘ ~xpçútÁæmö¤Å£¥iQæ­‰AB1ÉfÙ‰›4u¹ïìIÒ]Ë6äò%ÿ†† 1t.’NJph¬zÌ ÎR1Ž"3-"¸‡‹&ìó°1âüžìó[:‡ï„¼‘……N m–“W0®_èÜœ ×õ6ùò&»)Æìꦬýæ}¬ñ~»{múù]z½£M•ºP~^Îá:eQTÙ_*7ÕÄ9É8—·Ëï 3°¶47E•î¿u÷“SÉ»U¯ _ NíºôW¬e¸ÄNÓ|»;™¿;ŒæÅd"ȉôøòÞµõï¾®½"èÄ´ÖMM+bYµ‘_ÉæEÝüÎ]P»¹XKÐI½Þ¥oE<_¹(„EP±Œ|mÇÁ¡‘Ý,ŠÓ©ººZ±Îߺ§×kÝ,kÍMš`Äø…jzeU»æ ™Át3ÓÀ½˜6—ÒöùË·r¨¹Ñ}““wö:Χùë¼ ¿|‚TܵÉQˆKßç_ÁâÀ™œ”pÑÐóໃ¼Ydâ0!®àa –øöçW$ÃÁ‘Á$/\¬$ð 2ÞímÞLH‹Ÿ èd£HVÜ,:ò½»RÍZšJ­a„z*>‹_…NT(ù‚^SVF­U¹8ñEþôñ܈óùnd;«®8™\C]ø=Èêm¬Æ:‚´ÆbãDd=Áãßžˆ‹UU5O‹|]þð®Pèêv‰á\]2ßìÿ"yÈ[ïyʧz£g{Y«{„Ùø5©ÿ;w{N3é­nâĨw§Á¢ÍK¢Ý­ûÏ29Id¿’ì y)ìPÞò8ŒÅ©¯‰±@mPÔñwjl,6 áhWÕ˜d öà uõmÁp®.™á£Ç…twöR x­BδYcŒxg*vo  yò‘•“[¬?ÜVœ˜0ÒN¡O난~Žó’¯·h#´Hkýœ±8kÓß^Àq@]àÓ“ø,56´¯÷Í-κU»n…[>]@nîøÏœp›[œ6# €4tën¯:ŽÒþ}…—8äT9_žY$/´G’K™©ù†•(óÑ’Mø©`ŸÉdѺ;ùO‹B Ó&P{qöhJÉ+Úé–§¦l2«MïöÝ_1ÑÓ«’t¸½±l€ëØya ¦ô©«®½ÆL^¬žêñš¸ùy.¾Û½Š[ u/]½‹iS}øN>²e1™q‡jfÚ&¢©iT\=kÏ›ÀXô-.84V5ðu!TE˜ þ.ŒOH´¶4—zwTr.ï‰¦Ë xõµ·œÖ„HÆù£žÈHùg Ñhñ’T$ßyq¸zþ¨p¿´ë< q•ró÷š‰wÿÍÑð–I]´–æI²é²˜sÂ"×:Õ–bÕ¦“ÈÙL6¢9VÊÓWž§<æ;”3?ý©Mê3AV#µ±ËÞ¯‘ž K£UrÝ9!›qát¦H£Ù+6ÇV…/TS^pÃùqgLP'Ú5E ‚–ÀÞºîÄ Ën"2|Ÿ;®W»Îý"Ö¬TwÖâµtúŽO'› á+W Ã+¦âZÌ–<ÕÆ&nOÝ,IŠ£06.ÁZ.Çñúøh*INÚ’Oe½ÉgBXÐÔZóäøä9èü“hÒíDSš¥¡Ê µA¯/Ôc¸ö“`A§¯"zå|‘ €ÅŸ¨ú;HÍ#‚Î|%ÄOˆƒ«OàÌÉÐÜD ž mÜðâc–ƤÉÂqm¶uË&~÷núÒË £ÇÏ€ZÕj =«_n[‡‡÷nN§ÏÝ$_¾bE˜‚€Õ)ù8¾?6‘lú“ÍÙæÖ}#bW( œ³d-®•p&¡ý’œÖa”"9öõņÐ$’Ú›AÜ!ä;ÐÑõè{~á¹8‘ÛÞ£1ÛÓÉ0ž`²#´kÒuäNÅÖ Q¹bhæ ”8ûÓMáŽa›•¿”w±h²¢®qŠæ°(bK ‚’Z¾Ò%ÐÆémáãÖË(Éý‚ÛJ)@> þ›7% ï{y Á“¾ÆÒîohfòô>{pÿ.­_Î%±ÉèägëlZØ\B2B #™¸ÚüÒºp‚hÝšü®[¥Ü<‹#SpñÌA7’ãØHƒt4:Ÿ|g¨tÓL¶*($Æ©»ì…®ù’ó÷$;b›ÔÙ`=¶£¦M„MÌÄ5ò«·Ç¾“H·ÌH.¼žHeAîº5}r­dõ¨±)ÀT};€Q5iÖ2…O0ü…0óñÃ;óæ,Š´²µ냔}g‘£]‹7å9ˆà©_{üèîêžC>úhê{Ž .ÈìðIIð€?[Kswz6Òuíý¬;µ€ç§OåâJÉa˶zv°éd† ¤µâ‚l´é舊«Åüy¾c÷ÁèÖÍ'ràúÅ™TWÕôÓ°¡L €|ʽŒ¼ì­høBã ÝTëî'ò]Kø£ìâÏ(=¹Kx €¿ LÌ,Pý¤Êµu‡¹…׈ §Å¾÷à1Ý«Äý;¿pGDäxZYÛ kfæ6¸ùóæ7®œ®þ6·ÕoÚ¾ÔH~ò®Þ¸â 8Uø“p<ºw3¡a£ÏÑ’‘3èÏ"€bˆ-ÎܺÏ_ªÅ]+ËM©zü°s“f-êçhÇãÑýÊãôÿ5}ZQNb{Ó?å%ÿ\SUõعIÓæ}~}p[œoÔÄ„êÐMMZáNÅå@>Œ„²á6(?¡Åé âK½+ü?À%ÝÝ·/Ç1‚9áUø?B)”ÕèâÞlÈÒêÏ @=àùÄÞžk­®ÅIEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1UnixDomainSocketConnection-members.html000755 000765 000024 00000043126 13515046515 031514 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::UnixDomainSocketConnection Member List

This is the complete list of members for mysqlpp::UnixDomainSocketConnection, including all inherited members.

build_error_message(const char *core)mysqlpp::Connectionprotected
client_version() constmysqlpp::Connection
connect(const char *path, const char *db=0, const char *user=0, const char *password=0)mysqlpp::UnixDomainSocketConnection
connected() constmysqlpp::Connection
Connection(bool te=true)mysqlpp::Connection
Connection(const char *db, const char *server=0, const char *user=0, const char *password=0, unsigned int port=0)mysqlpp::Connection
Connection(const Connection &other)mysqlpp::Connection
copy(const Connection &other)mysqlpp::Connectionprotected
count_rows(const std::string &table)mysqlpp::Connection
create_db(const std::string &db)mysqlpp::Connection
disable_exceptions() constmysqlpp::OptionalExceptionsinline
disconnect()mysqlpp::Connection
driver()mysqlpp::Connectioninline
drop_db(const std::string &db)mysqlpp::Connection
enable_exceptions() constmysqlpp::OptionalExceptionsinline
errnum()mysqlpp::Connection
error() constmysqlpp::Connection
error_message_mysqlpp::Connectionmutableprotected
ipc_info() constmysqlpp::Connection
is_socket(const char *path, std::string *error=0)mysqlpp::UnixDomainSocketConnectionstatic
kill(unsigned long tid) constmysqlpp::Connection
operator private_bool_type() constmysqlpp::Connectioninline
operator=(const Connection &rhs)mysqlpp::Connection
OptionalExceptions(bool e=true)mysqlpp::OptionalExceptionsinline
parse_ipc_method(const char *server, std::string &host, unsigned int &port, std::string &socket_name)mysqlpp::Connectionprotected
ping()mysqlpp::Connection
protocol_version() constmysqlpp::Connection
query(const char *qstr=0)mysqlpp::Connection
query(const std::string &qstr)mysqlpp::Connection
select_db(const std::string &db)mysqlpp::Connection
server_status() constmysqlpp::Connection
server_version() constmysqlpp::Connection
set_exceptions(bool e) constmysqlpp::OptionalExceptionsinlineprotected
set_option(Option *o)mysqlpp::Connection
shutdown()mysqlpp::Connection
thread_aware()mysqlpp::Connectionstatic
thread_end()mysqlpp::Connectionstatic
thread_id()mysqlpp::Connection
thread_start()mysqlpp::Connectionstatic
throw_exceptions() constmysqlpp::OptionalExceptionsinline
UnixDomainSocketConnection()mysqlpp::UnixDomainSocketConnectioninline
UnixDomainSocketConnection(const char *path, const char *db=0, const char *user=0, const char *password=0)mysqlpp::UnixDomainSocketConnectioninline
UnixDomainSocketConnection(const UnixDomainSocketConnection &other)mysqlpp::UnixDomainSocketConnectioninline
~Connection()mysqlpp::Connectionvirtual
~OptionalExceptions()mysqlpp::OptionalExceptionsinlinevirtual
~UnixDomainSocketConnection()mysqlpp::UnixDomainSocketConnectioninline
mysql++-3.2.5/doc/html/refman/functions_func_v.html000755 000765 000024 00000006644 13515046515 023060 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Class Members - Functions
MySQL++  3.2.5
 

- v -

mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1DateTime-members.html000755 000765 000024 00000032474 13515046515 025750 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::DateTime Member List

This is the complete list of members for mysqlpp::DateTime, including all inherited members.

compare(const DateTime &other) constmysqlpp::DateTimevirtual
convert(const char *)mysqlpp::DateTime
DateTime()mysqlpp::DateTimeinline
DateTime(unsigned short y, unsigned char mon, unsigned char d, unsigned char h, unsigned char min, unsigned char s)mysqlpp::DateTimeinline
DateTime(const DateTime &other)mysqlpp::DateTimeinline
DateTime(const char *str)mysqlpp::DateTimeinlineexplicit
DateTime(const Str &str)mysqlpp::DateTimeinlineexplicit
DateTime(time_t t)mysqlpp::DateTimeexplicit
day() constmysqlpp::DateTimeinline
day(unsigned char d)mysqlpp::DateTimeinline
hour() constmysqlpp::DateTimeinline
hour(unsigned char h)mysqlpp::DateTimeinline
is_now() constmysqlpp::DateTimeinline
minute() constmysqlpp::DateTimeinline
minute(unsigned char m)mysqlpp::DateTimeinline
month() constmysqlpp::DateTimeinline
month(unsigned char m)mysqlpp::DateTimeinline
now()mysqlpp::DateTimeinlinestatic
operator !=(const DateTime &other) constmysqlpp::Comparable< DateTime >inline
operator >(const DateTime &other) constmysqlpp::Comparable< DateTime >inline
operator >=(const DateTime &other) constmysqlpp::Comparable< DateTime >inline
operator std::string() constmysqlpp::DateTime
operator time_t() constmysqlpp::DateTime
operator<(const DateTime &other) constmysqlpp::Comparable< DateTime >inline
operator<=(const DateTime &other) constmysqlpp::Comparable< DateTime >inline
operator==(const DateTime &other) constmysqlpp::Comparable< DateTime >inline
second() constmysqlpp::DateTimeinline
second(unsigned char s)mysqlpp::DateTimeinline
str() constmysqlpp::DateTimeinline
year() constmysqlpp::DateTimeinline
year(unsigned short y)mysqlpp::DateTimeinline
~Comparable()mysqlpp::Comparable< DateTime >inlineprotectedvirtual
mysql++-3.2.5/doc/html/refman/functions_vars.html000755 000765 000024 00000021651 13515046515 022546 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Class Members - Variables
MySQL++  3.2.5
 

- a -

- b -

- c -

- d -

- e -

- f -

- i -

- l -

- m -

- n -

- o -

- r -

- s -

- t -

- w -

mysql++-3.2.5/doc/html/refman/functions_func_c.html000755 000765 000024 00000020544 13515046515 023030 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Class Members - Functions
MySQL++  3.2.5
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1SelfTestFailed.html000755 000765 000024 00000031354 13515046515 025456 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::SelfTestFailed Class Reference
MySQL++  3.2.5
mysqlpp::SelfTestFailed Class Reference

Used within MySQL++'s test harness only. More...

#include <exceptions.h>

Inheritance diagram for mysqlpp::SelfTestFailed:
Collaboration diagram for mysqlpp::SelfTestFailed:

Public Member Functions

 SelfTestFailed (const std::string &w)
 Create exception object.
 
- Public Member Functions inherited from mysqlpp::Exception
 Exception (const Exception &e) MAY_THROW()
 Create exception object as copy of another.
 
Exceptionoperator= (const Exception &rhs) throw ()
 Assign another exception object's contents to this one.
 
 ~Exception () throw ()
 Destroy exception object.
 
virtual const char * what () const throw ()
 Returns explanation of why exception was thrown.
 

Additional Inherited Members

- Protected Member Functions inherited from mysqlpp::Exception
 Exception (const char *w="") throw ()
 Create exception object.
 
 Exception (const std::string &w) throw ()
 Create exception object.
 
- Protected Attributes inherited from mysqlpp::Exception
std::string what_
 explanation of why exception was thrown
 

Detailed Description

Used within MySQL++'s test harness only.


The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/functions_enum.html000755 000765 000024 00000007154 13515046515 022541 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Class Members - Enumerations
MySQL++  3.2.5
 
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1ConnectionFailed__inherit__graph.png000644 000765 000024 00000021234 13515046516 031037 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÁ·«9:@sRGB®Îé"VIDATxí]˜TE.rN’³dñɧ§Àq¢b@AQPOý”PÐõ9‚ ‚AdÉxHF‚(°’s–œ3ôÕ_{ýx»Ì ;ovßNÕ÷ÍÌ{ª«ÿ®ê®ê×3“Æ3†”èE`G6½ýמ+›VAP¢5‚h×í?©¨D=éý„—ƒúI䨓5]ºttÓM7ùªß¾2‚Ë—/Óï¿ÿî+€£MØÌ™3SÍš5}Õm_E¶Zµj”'O{«Ÿ)]»v^~# ü6b*oØP#;¤ÊÐo¨ømÄTÞ°# FvH•¡ßP#ðÛˆ©¼aG jàâÅ‹tøð᠀Λ77n4?%g9r„Ο?/"6Œ^}õÕ”,n²ËµF0eÊÊ›7/]¸p!à à¡Ü‚ æ¥ôÄ PLLŒˆyîÜ9:sæLJ9Yå‹ #Ø»w/Íœ9“ð :{ö,íß¿_®·mÛFx‚¬X±‚:$÷î7¬¨g eÝ„üU«VIýK—.I1”ÿ£GÚjr½{÷n§ÍãÇÓ¬Y³hÍš5N{¼E‹ÑöíÛm’|Bvð†œsæÌ‰'ïŽ;OÖ÷íÛG'Ož¤Ö­[SïÞ½úè+äœ6míܹÓI·²"óæÍ´páB©ïHÍ8JíbE3<è†Ý˜D‰ÌÊh5jd2dÈ`²fÍjÒ§Oo>ýôS3{öl“6mZ!7ü˜ßlݺհûcrçÎ-iiÒ¤1Õ«W7Ù²esÚyá…Lþüù{~Xg^zé%¹_¿~½©T©’ÔE… 2K–,1§N2åË——<6 súôiS®\9s×]wÛ^LÆŒ Ú,S¦Œaž#FŒ™!;älذ¡ac’<”¯S§ŽÈnû6nÜ8ÉãU@Ê£|ðéСƒ¹ãŽ;$¸Ý}÷ÝÒwÈ2ݺu“<È‹vš6m*|qþnذAòóÆFe/^œ˜¢)©Ìj̾!«8‰5‚ï¾ûNƒÃ.éܹ³)Z´¨áÙÎŒ?^òØw–þרQÃÔ«WÏð± 3þ|S¬X±xF%ëÙ³§ƒU÷îÝÍ„ ä¾V­ZæöÛo7k×®EðÁM©R¥¤( ­k×®¢0¬7EÉ’%Í_ÿúW©C„l/¾ø¢Ù´i“Æk¯½fŽ;&| ,h:uê$íÁŠ)bx•C{ä‘G Œéĉ’Cüæ›oäÚmà#Ù²e‹ä >\0À¤`òpL!“BΜ9 ¯"R61oj‰A)‰e®×~ùå™aŸxâ 3cÆ QÈmì:H9«Ôȇ¸W¤"(/fM(ùòåËå5pà@IƒQ€ºté"³.fÞ¡C‡JšU:vÓäo삈œ~ø¡ÔǪgyb†®R¥Š”…¼÷Þ{N=” vfÅ‹7mÚ´qêá‚»‰ìVžeË–9ù˜Ú¶mëÜ_ë¯Fà˳C<à‰"vhРAòbw‚Ø%¢7Þxƒzôè¯>ÏüâGójळ;ä\‡º°þú!C諯¾rŠòJâĬHôþûïSöìÙ©E‹R¾;ˆÝ%ùÄ[íÚµåzÒ¤IòÙªU+ù´oài‰W{Iì¶Èµsœ ×|}Ä"¼b¹R‰Øu‹w2Aµ¥,Y²olZjüLÕFÀ+ñìI±±±÷íÛ—zõêEÏ=÷\¼±Ì—/ŸÜ¯^½šØÍkÔM Ùòü1µlÙRª@y§ *ˆqµoßž ÀØ’íØ±#ñj@ìÞHYÄ!vÅèË/¿”Õ€sš>}:ÝyçÄ1ýë_ÿeÇîûübMš4!výèwÞ¡ÐÔ©Séþûï—zV¬p´Š÷ïߟJ”(AU«V•l–‰ý~çY­¾ìòÇ7’ׯ_?ÉjÖ¬™-Ÿ×òóRRþõÆØ©_¿¾øË|Î]‚Â>úHºÄÊ%÷<ê²#ƒ˜ÁîÁwgÅ0< ;Ýo×®Apjɽ;ôÛo¿6iüà{Ã?GŠ]©gžyFªa· »:<ÓKÀ‹Œ`Ô¨Q²ejƒo›g?ìÛ/›†OìŒa÷ 0¶lÃI~5‚Tð,)T±bE{ïî ^–8Ã5º‚›…øãz 1b‡@Ä[”ÄÏeIZ®\¹¯@÷.ñóâç²¢6-UÇ©uTñõEùP Q±„ª”Çû”‡€®áÃR9ù5‚d¸={®®KfQ¢¶y_ºC8•‰}t¿Ó… —ø¬ ?KxÂï]ùqjÕäK#°Gü¸[æeËöñQé-4{öR~X—ÍåÛküîßÈWF€íD> ì7ŒƒÊ;rä—’·wojÞün¹Ö·È# 1Aä1—O:G?þ÷kzcÆ$îœR2‰šê›U#H¦!þá‡Õ×Ä}mÛ¶ƒüó’WÄ%“HQÛ¬A2 ýرËOoA2¤ãƒmË“ImV tàðáSü%þ|V?î»ÍØ%‚Q(%jÉ€û÷߯¼ªÕýûÓÏ?o¹*]¼G@À{Œ¯j!&f)§áDóŠs‰V\IЫˆ! F1¨ãÚ½û(-_¾r%¾À%š8q…ã"EX¬¨nN ÂÃ?iÒ þv[º€­?~†æÍ[0O½C@À;lrÆ3‹ãâ„à§»D qñú^Àk„]ü7mÚÏß ÞÇ)ñ]![.Ñ´i«øW*ÿ4¤-§ŸáE@ ¼x†ä6~üry&ªÐùóø‹ùqO’C•Ó¼ð! F>,¯Éiܸeøf̘Ží"î(cÆôÎ LôÁÙ5¡ k_  kÏ#Ì g…Ú¶­¯U—øâ‹ŸèÍ7S¶lW¾ë £PŠiðk‘kN[r#°xñfzôÑüÛA=ù¿SÇQjwÿ|r«îOFJÅô5ï°UÎ>A@À'¥bz‡€wØ*gŸ  Fà“R1½C@À;l•³OP#ðÉ@©˜Þ! Fà¶ÊÙ'¨ød TLïP#ð[åìÔ|2P*¦w¨x‡­rö j>(Ó;Ô¼ÃV9û5Ÿ ”ŠéjÞa«œ}‚€OJÅô5ï°UÎ>A@À'¥bz‡€wØ*gŸ  Fà“R1½C@À;l•³OP#ðÉ@©˜Þ! Fà¶ÊÙ'¨ød TLïP#ð[åìÔ|2P*¦w¨x‡­rö j>(Ó;Ô¼ÃV9û5Ÿ ”ŠéjÞa«œ}‚€OJÅôüSM¤¨aÆøW}ýƒ´i³˜Ì™K™4iÒ)&.½èСC¤Tí¬ŽøŸcÝ{ï½Ô®];ÍZYû®]»F\üˆA©R¥¨Y³fï¨6èúöíqA5&ˆ8äÚ`JC@ ¥ˆÊqÔ"¹6˜ÒP#Hi#¢òDˆÆïa|þùçé¾ûî£æÍ›'Kèª  iÓ¦,„vŸy晀y^&^¼x‘Ž?Î0~“4Óºukzàè±Çó²Ùdã­+AèçÍ›G[¶l Q"éY«W¯¦¥K—R±bÅ®zåÊ•+é ܇)S¦PÞ¼yéÂ… RûôéÓtþüùàä*)z%صkåΛøAYþô§?Q¦L™hïÞ½´iÓ&ªR¥ŠäŸ={–öíÛG… –|@îÜ9)W´hQÊ!¡Ì¢E‹¨`Á‚tË-·Pš4iœB;xÿÑ£G%/_¾|N>.öïßOPÊ“'OÒªU«¨jÕª¢(Èì ³fÍ* ?~*_¾<²„0³â•9sf¹‡liÓ¦¹P¼xqúì³Ï$/áÛ‘#GèØ±cdûü={öPÆŒÉʸ}ûvZ³f ÝyçNšå³sçNB>äÍ™3§$C¡ÁX¬[·Nú|ûí· Oà„¾‚¶mÛFeÊ”¡!C†8²#,_¾\ú ÌräÈd:|ø°Nž8²¶iÓFòðö /6 瞕ļôÒKrÏ.—©V­š“—ðbÁ‚Ò·Î;KÖO?ý$÷|ðÜwëÖMðàÉAÒüqséÒ%Æfž~úiéä½{÷–:'N”ôúõë;òB~à8{öláœPgëÖ­ã`Û›?¾)P €àÉF-ýBÆ|€ê‚ÆÜb-…®ñV³fMásbáÌ^ kŽ݈*TÈ,^¼ØðLg²gÏÎÇ 2›… š?þøÃ@™ºté"òßsÏ=/KüdÚ4jÔÈð,-õø!Œda¡ðP&ðÅ@õèÑÜ:uÊŒ9R*˜)RÄðì(eyäÃ.ƒ9q℀ϨQ£D‡.÷“&M’6a,={ö´¢™îÝ»› &È=Œ€gRá>î¯RæÍ7ߥ‚Að c ¼PtôíÂøqöq?gÎÓ§O“>}z3yòdëá•FòØõ2Öž|òIîŽÙ¸q£(vË–-¥½ñãÇKY^1äÞ ëæ›o6=ôAîqÍ«”áD”ík䣟¸g—Rø$æ-9Œ ÅÇ<0ÄÀÏ0²4³!QíÚµ‰g#Yþ±dƒPŽ•B–òƒÒܹs‰J–d¸Æ £#FÏRÿüs d»)ÔnRKì’É%V;+ fM›'’ðåëÕ«q¼"ýûñÇ…Ûõë×ûÜr€›ãéVƒ cûÂv¬ûÜ–[fv¯)/»¦Ò6,!@±›$Ÿ‰/)œBÞR¼\Np‰fÍšE3gΔ™uáb`Ÿ €UnVÌŠPühèСtæÌê³Kf8^t¼Þ-_l(Ø.#E>h^E »OR—Ý" ”‘·yófÁÓî±±Þš•zh—ã óûï¿K½Ž;ÊšÜð‰”³²ÛôPŸÉÃÒ#F×k×+ÀäUUÙg•Ýì%$ úÚµke¥qãÆŽ¸ËÁ°û‚EY7Á8Ð5üpÉðì혻Œ—ר¡‚q"v¥dŒ÷ðlkJ޶„„Ý`ˆxÕ4¼òvÅâM6Ê^oZrAŠŒy6JÁ Âñh¾´ƒ' õêÕ È 샧€\‰ˆ=‚=ÉåU๊Gä±OÂÙ6Œ ¯`”0 ·åŒãˆðbç)µPª1ø´ð¡øºw(®w *W®,þwÂzØR…!"<F0ìB?Ð?±^`œË•ŒñÄö‚É`GÕÑ´èB€OÈs ~Ø©ŽÇ¦ªÝ¡H¡¦í¤.Ô’y}®cHfQ¢·ùëÝÂJJyl‘2Òúú?20… ¿Âûü™—^Dúw‡"ó)H9ƽSNüžOœ¸æÌÙÃýÊRWÎÜÄ/}wØmããå‘êxlD R½òK;Õª½Ã‡ÖNðQˆò4fL܉K¿ÈžŠäÔÝ¡äÌ%K6‹ ýE‹6òùž“É%JÔ·«q2©À„ +ø _Ü×ñÐjòäß’ImV tÛ¢'®àïãÆ³çoz²;´4$Ñ&€A2èÁܹëèĉ³NËxh¿råNþ²ÿ•cÎN¦^xŽ€ç_ÝÀøñËWÈæÂ5‚‹¤yÔ"Œù™3húôÕŽ+d›‡kó‹½ÕÏ" FA°ÑÔŒ±ü­³‹[Ý´éþºä¾€yšèjÞaóØ±Ëø‡®üð—»PœK÷]wº^{‹€·øÆã~ìØþ–utéRàCsq.ѲxuôÆ{Ô¼ÇØiáûïWò×YÛ€{÷å/ío˜§‰Þ  Fà ®¹ÆÄ,u~%`Näçfò !X¾¦‡TóõÊðC^ާNc þr1‡ñéÓçù7ó/Àà­½2íÙ£Ï "p¡è"r°&/ÞL>:ç'ÿœb¶`Å4Ý[ô·ø*w? pe öƒ´*£"àj€ª,ý…€¿ÆK¥õ5@U–þB@À_ã¥Òz€€ *K! Fà¯ñRi=@@ÀP•¥¿P#ð×x©´  Fà¨ÊÒ_¨øk¼TZP#ðTeé/Ôü5^*­¨xª²ôjþ/•ÖÔ<UYú 5—Jëj€ª,ý…€¿ÆK¥õ5@U–þB@À_ã¥Òz€€ *K! Fà¯ñRi=@@ÀP•¥¿P#ð×x©´  Fà¨ÊÒ_¨øk¼TZP#ðTeé/Ôü5^*­¨xª²ôjþ/•ÖÔ<UYú «þ©fÉ’%Ô·o_õ§Ҟ>žvíÊÁ×tŒÿÖ5ð?Zú´k)Vì~ýúQÑ¢EÝòÅ^e111ôøãÓŸÿügwA½V|À©S§hÙ²e´fͪT©’»/±Aÿ¸¯Gî‚z­ø­[·R›6möAc‚€°hb4! FM£­} ˆ€A@X41šP#ˆ¦ÑÖ¾D h`°t Lœ1c­]»–^{í5Ï¥[¿~=}ýõ×´aúpá•(Q‚Z¶lI5jÔð¼ímàĉ”9sfÊ!M:•6oÞL¯¾ú겓zãÇ'l¥¢×_ .(KÒvîÜI  üãtþüyÙŽóÍ7)_¾|AëÊøí·ßhÔ¨Qôá‡ʾ®4߯566öº:}#…úé'zå•WèàÁƒôä“OÊ6òÅ‹©sçÎ4{öìa‘:M›6¥¹sçJ[0ÜsçÎ%¹Ý-[¶ÈVcþüù)á+}úÐóêåË—éÌ™3dŒ¡“'OÒ/¿ürC2;vŒV¯^ä¾€Ah‰Ñ¬ùðáÃÆþýû¥ƒ¥K—&tvûöíbíeÊ”!€óÇP–,Y(gΜçHZöìÙ%Íβಖf±âÅ‹S¦L™èèÑ£T¨P!›-ŸØ ¸˜ù°:äÎ[Ê# €Yñ¦›n¢;vÈ”+WNfHä£ú‚3mÚ´ñî¡ìÿùϨbÅŠÔ§O§NóæÍéù矧Ï?ÿœþò—¿€ôÛqèúP @I·8á~ïÞ½‚YÙ²e>¢úHÆÊ8tèPá\€%î1!ܨ¬¶ÿÁ>ÑðÆ€  L†p)Ñ×o¿ý6^uLR¡ú¹¡À…ÍÂÌ„§Íè –)tj̘1¢¼xJ nР ²,X@PjÌNðµ±´ÂoÌ4“'O–AíÝ»7aÖp(gë³<âƒÿþ÷¿¢ü0”… :Eá{~ÿý÷ôÍ7ßÐñãÇéÓO?•<¬*0H»º¸ïwïÞ-e0'$<‚¯]»¶ô㫯¾ƒ9r$M™2EfJ´ó믿:Õ`P“&M",0š?¾“‡ þ2pƒ±‚h„ 4sæLêÕ«—ô«C‡ôÙgŸÉÌ~À§B… Ò/`„´ï¾ûNêaU{ë­·Ä…s⋤ÊzèÐ!‘2Ù—u !Û­·ÞJˆ0žX™€C( ÕGÔ2dˆ¬€_|ñ…&ÐpQØŒ"¬fÍš"f0(µ½ß·oÝ}÷ݲ,BùAðUTbF„2a–À ¢ƒƒ ¢öíÛÓÆ uáÛbD9ÌîÁ€ß{ï½ÒÊ!HÃ,b©uëÖâNY>võÂ}»ví#pßc6M A¡kÕªå†h?G޲ªØú˜ÁáúU«VMfFk`ÈÿÛßþ&Ê —ÇVlÞ¬Y³¨|ùò‚/\BÌ‚pù–.]*+ ܸfpa¼XêÕ«g› ø™TYíjlì 36‚ï]»vƾ?b©Pªpçàêá8ÆD8õ$Ù²ÃÌ Âr ‚,0X¡ìwÝuÍ›7O:„›‚ÁÂ*„<;ëÃ¥²Ê'„+à&Ä–ÒíLkä¡Ík₸† Æ+Žó(˜íà*a ±b¹ ¸¸ÛÈ“'“ ¥u䱄<(J×Êe †láCƒ¬Œ¸Æ,ŠÐfReEl—'a|‡ &®cÉ’%~*kÓBõî1™¥éYe·Bû„Kå‡K‚À>2ÊÔªU+YÂá³Â°¬Z¥Áòk e0rÏ8ˆ-°’¸ßÍn[(ƒ²mØÀ>ж V.ì¸`f†#¨µÅÅî•»P8Ëà {ÇwÈI/¸|˜ ->p7-Áµ€ËŒà"%UÖ`¼1áÀzè!qgOyƒÕ ÕGLž 7¶ðÂEas‡+üg(ÌðáÃe4¦M›&þ0P,yØ)A9X<@1b„,«ð›+#ÆðŸ1ûb0[— uÐ.–g¸bÜá¾€K`Ⱥ î{¸'O?ý4Í™3G  ‡Žœ#€nÖ¬™ð/,ÿ˜ áï;VÒá&…€d_ô X`F?0;B°g™Pî“O>qv¥°+‡Iò¸É+YÑV'VÿE‹IL†qE×ê#ø!®Àø[,Bñ»ž¼°¹C×jÔÎrPzÌ`Xá[ÂNGÏž=Å·ÅÀa§»#Y³f¥.]ºHÞ< .[{–,oÜÂ2c÷.¶0+W®LØçAÉÁ³!\³gŸ}VÒa|˜Aëׯ/®\Â{ȇÝœP86°óT½zu¹G[0ž=zˆœèú×ÐíIa~ƒÜVvû(;LPpða‡ªmÛ¶d]DòЬ®÷ÝwŸcÜXiLB´~ƒ’"+ê'”i (+&´ ·nÓÃ?L£G–MˆºuëÆäw7kõ:€>BnÔÃ8!& ý>f=¯A/¬³²›àc3oÂ§ŽØñ€kẗPô„[¤Ø¥€ ‚}hl[ÂO¶[š0( V øŸPëJ¸e¸Ö5\,ÈU Êm•ÊÖÃì·gÏ™¥±¢Á·Áÿ‡»‡~!àv°ƒÃõ³««ÍG`‰•†à&/e…Ñc÷ÍÆ*Øìîg?nYìu¨>{Œ+p·Ï•l½k}Ú£Ô×õ}‚k1½‘| ܸ>ÿû߯b :XP‡…ožŸ@Û™¶nÂàÙ¦'æÊŸ0øu×Ã,e7Üéá¸Æ¬ŠW BŸ±z"»i‘0ÏKYáÂZ_íºƒþ„r¸ïCõØc+8Üj7÷üàb `ÃÒ—p—%AÑ·Ô½S` ãid°cß(²Õô3ÊHw(Ê1×î'¡Ü¡ˆï%CÿµIE $j!áÑÌh@@ FYû 1öd•Ô‚€=}¨?WöuíÐ@4Mð+¥ø{ îï²Ø~\µ;d3ôSˆb5&ˆ’‘ÖnG@ 86š%¨DÉ@k7ƒ# F͉þÄ…¥[*IEND®B`‚mysql++-3.2.5/doc/html/refman/tab_s.png000644 000765 000024 00000000270 13515046516 020403 0ustar00tangentstaff000000 000000 ‰PNG  IHDR$ÇÇ[IDATxíÝ ‚@@Ñ£?Q…¤"š¢%¦I‘—Šf–6[´HÃäQƒ<Þâõþ]ždr Í’s?ˆO=Ñññw'ÌF‡Ž íðö-~rÃ[œèŠ­ì¬mƒÖ¬ƒݯнŠÕF)Yº% §`nÌ,9B ™’©!ÑŒ\ý<Å#üîî•IEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1Connection.html000755 000765 000024 00000207470 13515046515 024723 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::Connection Class Reference
MySQL++  3.2.5

Manages the connection to the database server. More...

#include <connection.h>

Inheritance diagram for mysqlpp::Connection:
Collaboration diagram for mysqlpp::Connection:

Public Member Functions

 Connection (bool te=true)
 Create object without connecting to the database server. More...
 
 Connection (const char *db, const char *server=0, const char *user=0, const char *password=0, unsigned int port=0)
 Create object and connect to database server in one step. More...
 
 Connection (const Connection &other)
 Establish a new connection using the same parameters as an existing connection. More...
 
virtual ~Connection ()
 Destroy object.
 
std::string client_version () const
 Get version of library underpinning the current database driver.
 
virtual bool connect (const char *db=0, const char *server=0, const char *user=0, const char *password=0, unsigned int port=0)
 Connect to database after object is created. More...
 
bool connected () const
 Returns true if connection was established successfully. More...
 
ulonglong count_rows (const std::string &table)
 Returns the number of rows in a table. More...
 
bool create_db (const std::string &db)
 Ask the database server to create a database. More...
 
void disconnect ()
 Drop the connection to the database server.
 
DBDriverdriver ()
 Returns a reference to the current database driver.
 
bool drop_db (const std::string &db)
 Asks the database server to drop (destroy) a database. More...
 
int errnum ()
 Return last error number associated with this connection.
 
const char * error () const
 Return error message for last error associated with this connection. More...
 
std::string ipc_info () const
 Get information about the IPC connection to the database server. More...
 
bool kill (unsigned long tid) const
 Kill a database server thread. More...
 
 operator private_bool_type () const
 Test whether any error has occurred within the object. More...
 
Connectionoperator= (const Connection &rhs)
 Copy an existing Connection object's state into this object.
 
bool ping ()
 "Pings" the database server More...
 
int protocol_version () const
 Returns version number of the protocol the database driver uses to communicate with the server.
 
Query query (const char *qstr=0)
 Return a new query object. More...
 
Query query (const std::string &qstr)
 Return a new query object. More...
 
bool select_db (const std::string &db)
 Change to a different database managed by the database server we are connected to. More...
 
std::string server_version () const
 Get the database server's version string.
 
bool set_option (Option *o)
 Sets a connection option. More...
 
bool shutdown ()
 Ask database server to shut down.
 
std::string server_status () const
 Returns information about database server's status.
 
unsigned long thread_id ()
 Returns the database server's thread ID for this connection. More...
 
- Public Member Functions inherited from mysqlpp::OptionalExceptions
 OptionalExceptions (bool e=true)
 Default constructor. More...
 
virtual ~OptionalExceptions ()
 Destroy object.
 
void enable_exceptions () const
 Enable exceptions from the object.
 
void disable_exceptions () const
 Disable exceptions from the object.
 
bool throw_exceptions () const
 Returns true if exceptions are enabled.
 

Static Public Member Functions

static bool thread_aware ()
 Returns true if both MySQL++ and database driver we're using were compiled with thread awareness.
 
static void thread_end ()
 Tells the underlying database driver that this thread is done using the library.
 
static bool thread_start ()
 Tells the underlying database driver that the current thread is now using its services. More...
 

Protected Member Functions

void build_error_message (const char *core)
 Build an error message in the standard form used whenever one of the methods can't succeed because we're not connected to the database server.
 
void copy (const Connection &other)
 Establish a new connection as a copy of an existing one. More...
 
bool parse_ipc_method (const char *server, std::string &host, unsigned int &port, std::string &socket_name)
 Extract elements from the server parameter in formats suitable for passing to DBDriver::connect().
 
- Protected Member Functions inherited from mysqlpp::OptionalExceptions
void set_exceptions (bool e) const
 Sets the exception state to a particular value. More...
 

Protected Attributes

std::string error_message_
 MySQL++ specific error, if any.
 

Detailed Description

Manages the connection to the database server.

This class is a thick wrapper around DBDriver, adding high-level error handling, utility functions, and abstraction away from underlying C API details.

Constructor & Destructor Documentation

◆ Connection() [1/3]

mysqlpp::Connection::Connection ( bool  te = true)

Create object without connecting to the database server.

Parameters
teif true, exceptions are thrown on errors

◆ Connection() [2/3]

mysqlpp::Connection::Connection ( const char *  db,
const char *  server = 0,
const char *  user = 0,
const char *  password = 0,
unsigned int  port = 0 
)

Create object and connect to database server in one step.

This constructor allows you to most fully specify the options used when connecting to the database server.

Parameters
dbname of database to select upon connection
serverspecifies the IPC method and parameters for contacting the server; see below for details
useruser name to log in under, or 0 to use the user name this program is running under
passwordpassword to use when logging in
portTCP port number database server is listening on, or 0 to use default value; note that you may also give this as part of the server parameter

The server parameter can be any of several different forms:

  • 0: Let the database driver decide how to connect; usually some sort of localhost IPC method.
  • ".": On Windows, this means named pipes, if the server supports it
  • "/some/domain/socket/path": If the passed string doesn't match one of the previous alternatives and we're on a system that supports Unix domain sockets, MySQL++ will test it to see if it names one, and use it if we have permission.
  • "host.name.or.ip:port": If the previous test fails, or if the system doesn't support Unix domain sockets at all, it assumes the string is some kind of network address, optionally followed by a colon and port. The name can be in dotted quad form, a host name, or a domain name. The port can either be a TCP/IP port number or a symbolic service name. If a port or service name is given here and a nonzero value is passed for the port parameter, the latter takes precedence.

References connect().

◆ Connection() [3/3]

mysqlpp::Connection::Connection ( const Connection other)

Establish a new connection using the same parameters as an existing connection.

Parameters
otherexisting Connection object

References copy().

Member Function Documentation

◆ connect()

bool mysqlpp::Connection::connect ( const char *  db = 0,
const char *  server = 0,
const char *  user = 0,
const char *  password = 0,
unsigned int  port = 0 
)
virtual

Connect to database after object is created.

It's better to use the connect-on-create constructor if you can. See its documentation for the meaning of these parameters.

If you call this method on an object that is already connected to a database server, the previous connection is dropped and a new connection is established.

References mysqlpp::DBDriver::connect(), errnum(), error(), error_message_, parse_ipc_method(), and mysqlpp::OptionalExceptions::throw_exceptions().

Referenced by Connection().

◆ connected()

bool mysqlpp::Connection::connected ( ) const

Returns true if connection was established successfully.

Returns
true if connection was established successfully

References mysqlpp::DBDriver::connected().

Referenced by ping(), select_db(), and shutdown().

◆ copy()

void mysqlpp::Connection::copy ( const Connection other)
protected

Establish a new connection as a copy of an existing one.

Parameters
otherthe connection to copy

References mysqlpp::DBDriver::copy(), error_message_, mysqlpp::OptionalExceptions::set_exceptions(), and mysqlpp::OptionalExceptions::throw_exceptions().

Referenced by Connection(), and operator=().

◆ count_rows()

ulonglong mysqlpp::Connection::count_rows ( const std::string &  table)

Returns the number of rows in a table.

Parameters
tablename of table whose rows you want counted

This is syntactic sugar for a SELECT COUNT(*) FROM table SQL query.

References error_message_, mysqlpp::Query::store(), and mysqlpp::OptionalExceptions::throw_exceptions().

◆ create_db()

bool mysqlpp::Connection::create_db ( const std::string &  db)

Ask the database server to create a database.

Parameters
dbname of database to create
Returns
true if database was created successfully

References error_message_, mysqlpp::Query::exec(), and mysqlpp::OptionalExceptions::throw_exceptions().

◆ drop_db()

bool mysqlpp::Connection::drop_db ( const std::string &  db)

Asks the database server to drop (destroy) a database.

Parameters
dbname of database to destroy
Returns
true if database was dropped successfully

References error_message_, mysqlpp::Query::exec(), and mysqlpp::OptionalExceptions::throw_exceptions().

◆ error()

const char * mysqlpp::Connection::error ( ) const

Return error message for last error associated with this connection.

Returns either a MySQL++-specific error message if one exists, or one from the current database driver otherwise.

References mysqlpp::DBDriver::error(), and error_message_.

Referenced by connect(), mysqlpp::Query::error(), select_db(), and shutdown().

◆ ipc_info()

std::string mysqlpp::Connection::ipc_info ( ) const

Get information about the IPC connection to the database server.

String contains info about type of connection (e.g. TCP/IP, named pipe, Unix socket...) and the server hostname.

References mysqlpp::DBDriver::ipc_info().

◆ kill()

bool mysqlpp::Connection::kill ( unsigned long  tid) const

Kill a database server thread.

Parameters
tidID of thread to kill
See also
thread_id()

References error_message_, and mysqlpp::DBDriver::kill().

◆ operator private_bool_type()

mysqlpp::Connection::operator private_bool_type ( ) const
inline

Test whether any error has occurred within the object.

Allows the object to be used in bool context, like this:

.... use conn
if (conn) {
... nothing bad has happened since last successful use
}
else {
... some error has occurred
}

Prior to MySQL++ v3, the object was always falsy when we weren't connected. Now a true return simply indicates a lack of errors. If you've been using this to test for whether the connection is still up, you need to call connected() instead.

◆ ping()

bool mysqlpp::Connection::ping ( )

"Pings" the database server

Return values
trueif server is responding
falseif either we already know the connection is down and cannot re-establish it, or if the server did not respond to the ping and we could not re-establish the connection.

References build_error_message(), connected(), error_message_, and mysqlpp::DBDriver::ping().

◆ query() [1/2]

Query mysqlpp::Connection::query ( const char *  qstr = 0)

Return a new query object.

The returned query object is tied to this connection object, so when you call a method like execute() on that object, the query is sent to the server this object is connected to.

Parameters
qstran optional query string for populating the new Query object

References mysqlpp::OptionalExceptions::throw_exceptions().

Referenced by mysqlpp::Transaction::commit(), query(), mysqlpp::Transaction::rollback(), and mysqlpp::Transaction::Transaction().

◆ query() [2/2]

Query mysqlpp::Connection::query ( const std::string &  qstr)

Return a new query object.

Parameters
qstrinitial query string

References query().

◆ select_db()

bool mysqlpp::Connection::select_db ( const std::string &  db)

Change to a different database managed by the database server we are connected to.

Parameters
dbdatabase to switch to
Return values
trueif we changed databases successfully

References build_error_message(), connected(), errnum(), error(), error_message_, mysqlpp::DBDriver::select_db(), and mysqlpp::OptionalExceptions::throw_exceptions().

◆ set_option()

bool mysqlpp::Connection::set_option ( Option o)

Sets a connection option.

Parameters
opointer to any derivative of Option allocated on the heap

Objects passed to this method and successfully set will be released when this Connection object is destroyed. If an error occurs while setting the option the object will be deleted immediately.

Because there are so many Option subclasses, the actual effect of this function has a wide range. This mechanism abstracts away many things that are unrelated down at the database driver level, hiding them behind a coherent, type-safe interface.

The rules about which options can be set, when, are up to the underlying database driver. Some must be set before the connection is established because they can only be used during that connection setup process. Others can be set at any time after the connection comes up. If you get it wrong, you'll get a BadOption exception.

Return values
trueif option was successfully set

References mysqlpp::DBDriver::error(), error_message_, mysqlpp::DBDriver::set_option(), and mysqlpp::OptionalExceptions::throw_exceptions().

◆ thread_id()

unsigned long mysqlpp::Connection::thread_id ( )

Returns the database server's thread ID for this connection.

This has nothing to do with threading on the client side. The only thing you can do with this value is pass it to kill().

References mysqlpp::DBDriver::thread_id().

◆ thread_start()

bool mysqlpp::Connection::thread_start ( )
static

Tells the underlying database driver that the current thread is now using its services.

It's not necessary to call this from the thread that creates the connection as it's done automatically. This method exists for times when multiple threads may use this object; it allows the underlying database driver to set up any per-thread data structures it needs.

The MySQL++ user manual's chapter on threads details two major strategies for dealing with connections in the face of threads. The Connection-per-thread option frees you from ever having to call this method. The other documented strategy is to use ConnectionPool, which opens the possibility for one thread to create a connection that another uses, so you do need to call this method in that case, or with any other similar strategy.

Return values
Trueif there was no problem

References mysqlpp::DBDriver::thread_start().


The documentation for this class was generated from the following files:
mysql++-3.2.5/doc/html/refman/inherit_graph_5.png000644 000765 000024 00000005455 13515046516 022374 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÀ$ß 5“sRGB®Îé çIDATxí[u¨Tߟg·¨ØŠÝŠ]؉`w+ØŠ(ØXv‹­Ø‰ØÝÝíùÍg¾œû»ïîÞÝ}ëúò ìî‰9q眙ùÌÜ÷Â2ˆ£ˆGŸÛ<¶‘€HÀ(€¹qZFâôñ›‡7 `î@œ–@çÓŸ8q‚¦OŸîl6u#/råÊÑàÁƒÃ=‡‡xøð!­]»6“© Ät À°;vÌã1<<€æX³f.š_#/Ö­[Ó?<žÃÃxp˜#X,£±øpÍ£ù—€Qÿ22±XFbñášGó/× ØÿÐèÁ±|ùr:yò$Í™3çŸoèôéÓ4aÂ:{ö,}ÿþ ,H#FŒ zõêýóµÿÕ“&M’©GŽé±Ä½{÷¨wïÞ´dÉÊ’%‹G0 ·nÝ¢~ýú¹-S¦ ?Þµ?Ô1Þ\¿~Ýkz+Ô‚Ú¼y3U®\™?~LC† ¡AƒÑÏŸ?©~ýú´zõêP/ió]»v®\¹âu½÷ïßÓÎ;éË—/^ûƒiL’$ åÍ›×úìÞ½›^¾|iÕ3gÎÌ´ÁÁ_ƒÚ‰ÓŸøëP{“Ïò·oßÔÝ»wÕ¯_¿Ô;wÔÅ‹…ÿ÷ïßêÒ¥KŠ­¦âô“´Ý¿_½~ý:Ü|üÞA½}ûÖj;sæŒâ|­úôé“Õ†ÂÇÕÑ£GÕ«W¯ÔçÏŸ['égË¥J–,)e>0õîÝ;YïÈ‘#Š•CÚñÅ[={öLê|èêøñãÒ¦þüù£ø ö ²×¿~ýª²gÏ®ªT©n ž¹X±b*wîÜzáµmÛ6õàÁ«="rò·WLŠ}BVXKïí‹óݸqC=}úTÊnümÛ¶Uœ"ToÞ¼Q{÷îUW¯^~|?^îÂÍ›7­6Èç åouø(èó÷Æ’(Q"5vìXo]ÒÆFƵ/"­ZµRÍš5óâqÓ#ªü‚A„T½zuù…òà¢Ô®]ÛªW¨PA.eÅŠUµjÕ¬M¼xñBÅ_Í;W2GŽ*EŠ*,,LeË–Mᢂ<¨Ò¤I£âÅ‹'ü¥K—VÉ“'—>»à0 *¤Ò¦M« Xì¥K—.·iÓ&©W­ZÕê/„Ãÿ<êl¥oÏž=Ògÿb—®¶lÙ" ƒK„çÃ>õ~G%ì‘“¿½:tH¥K—N%NœX>©S§ùa!}i›7o.rdˆ¨|ñCfyòäQ)S¦~È M›6òTboDÇ—>V>6øÙëà/^\~í_|y¨Q£FÄJKãÆ“çÎee Å‹ÓĉiÿþýÖ@䤙ÝöŠ=WªT‰Ø£Ñ‡¨H‘"¤±¼ËÞWäÛ´iSyF_ü·oߦiÓ¦‰\ãàÌp6vO×®]©{÷îÄ^˜ gö>ò|v>À©ö~Ä|ùì,*³‚Rúôé©cÇŽ2'þ”k‡Œœ¬8uê”L·Ë›S° ¸LÔY _`=æÏŸ/}µjÕR|y¤àÊøõë× ¾ÆŒãêŠ-jñ¡x+¢­ªö*èÚð4þhÖ¬Y²V<Ÿ¬€IÚãhFx#x)í‘“¿½âNb®U«V©Â… +ŽOdImµ7lØ · È gΜ/ ¼_bË›ÀL:UdÀÊ,Ð ð‹•K "Ê žgÍʦ-Z$goMìRðçô0@[6ˆª|ùòÖË–-Sð4Ð?÷™2e¥Là¿ÄR¾|ù¤ËâM»m ×­['V–^„,Êð %J” XVüýþ6 Ä.¿øÒVÚj°øÂÛj$ÖC{täÊ•ËêÏ!ƒ`VƒK¡@Ò³k×.†EâÁ("@.UªT8ÈSS rÒ¼n{ec@Øš9s&q,¢‡X¿›XeüvÙÂ#ãì8.³Æ£À $õöíÛS“&M䃬CQÉŠÁÚÃ;CQ·nÝÞ.TÄ0zöì)hbûöítùòeêܹ3ÁÓý … Ap.9ãlb AŒ÷©qãÆ2 ‚c¼,ð†­ ±e–#.)ˆƒ9ùÅÛVÙYxòä‰Õ„Kyîܹp cïÇAùR&= [*‚àÄ–QàccQ6NX,¬Ë¥°¯¨œ0‰·½B™a,žÌ¼,[¶¬µ¦³?ÒšØëÊ¥²ï}ÈÎ@€²0Jø°§è ƒØ [·n]âøO``h¨g‰”w5¨AƒÄ^‹fÏž-ðïoÖìÖþÍ Ž±À˰£G&Ôi1rÍýû÷üÏ.]¼.„ l ìܹpáBǬÿ¯By€aï¡P8PLÃ'™ñÊ/5lØPº`½°>°.È^Çác¿Hw"ïK€.!ææa.`gX\¬ oÂsCn{å •ÄHøÝºu+!E‹õÜÈ?<-â%(Ò» +Ä«ÙçóÁÓ`OH[r–KäºcÇÂ9õéÓ‡~É;xá^½z‰Òಠ–`é{ôè!sõíÛ—òçÏO ýd-Ô“&MìÔÿsâ§`c\e*¤ByfÁ¼hà MêÀµš€“Áƒt§&d*€¡‘.d«+©Jô# ,1lAÚ³@ ;dÑмÀ²S¦L‘>«5†d¨&ñ‡N·úÊa¤ã8ÿoe@°d_øâÈüøbk+X\ïY`cŽ‘“¿½bdÁ–ZqP¬ð<ȶ -Šõuækûâg,idd•0ó°eÅ0¹æÍ›'Y'ðáƒLÒÓÞrųCÞXßðüâË­[ 0@b à}¤¿ƒ%·Ø<ET °‚ ùs'á’!Ç %r-. —N+€ €À óà}„=m¦/úØÊ+­}^{‡Ào‚åƒ=ÿ®yðþ©Q¼ÿÀ{…`(½â}{)kz(ŸÛe“?~¼ÓÀ{m¬‰$5 ÌÞÎÈÁjU T­¶Î=䦑ú§€ûöí¸ƒàÍI ù]³Yê€JÞÒÞ˜1=tò8eg¿¯:Ü=R²n„ |¨Èm¯H(࣠0Ñùãç÷1Ä4_SH[ügUDˆ=aDØÃñjˆ®1„•HUä÷ÙJ^ºC‡A?coð!‚%o„ €l‡ÎJyã‰.m1i¯ÑEfÁî# îÅ>Áa‹-$mio7e#˜,ýaHPØ)Ò³@öÅMÙH ª%` ªOÀ¬¥0 ¥â7‹Gµ\ƒ`ĆŒb‹ð²ÿlã$Àëì`ß\:'7u#è"d½¥o=²@ÑeÃfF‘!D†”ÍÑVF¢íјE†ŒD†”ÍÑVF¢íјE†þªæCë£xiIEND®B`‚mysql++-3.2.5/doc/html/refman/functions_~.html000755 000765 000024 00000017524 13515046515 022054 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Class Members
MySQL++  3.2.5
Here is a list of all documented class members with links to the class documentation for each member:

- ~ -

mysql++-3.2.5/doc/html/refman/uds__connection_8h_source.html000755 000765 000024 00000050147 13515046515 024635 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: uds_connection.h Source File
MySQL++  3.2.5
uds_connection.h
Go to the documentation of this file.
1 
4 /***********************************************************************
5  Copyright (c) 2007-2008 by Educational Technology Resources, Inc.
6  Others may also hold copyrights on code in this file. See the
7  CREDITS.txt file in the top directory of the distribution for details.
8 
9  This file is part of MySQL++.
10 
11  MySQL++ is free software; you can redistribute it and/or modify it
12  under the terms of the GNU Lesser General Public License as published
13  by the Free Software Foundation; either version 2.1 of the License, or
14  (at your option) any later version.
15 
16  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
17  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
19  License for more details.
20 
21  You should have received a copy of the GNU Lesser General Public
22  License along with MySQL++; if not, write to the Free Software
23  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
24  USA
25 ***********************************************************************/
26 
27 #if !defined(MYSQLPP_UDS_CONNECTION_H)
28 #define MYSQLPP_UDS_CONNECTION_H
29 
30 #include "connection.h"
31 
32 namespace mysqlpp {
33 
38 
40 {
41 public:
44  Connection()
45  {
46  }
47 
60  UnixDomainSocketConnection(const char* path, const char* db = 0,
61  const char* user = 0, const char* password = 0) :
62  Connection()
63  {
64  connect(path, db, user, password);
65  }
66 
72  Connection(other)
73  {
74  }
75 
78 
87  bool connect(const char* path, const char* db = 0,
88  const char* user = 0, const char* password = 0);
89 
98  static bool is_socket(const char* path, std::string* error = 0);
99 
100 private:
105  UnixDomainSocketConnection(const char*, const char*, const char*,
106  const char*, unsigned int) { }
107 
110  bool connect(const char*, const char*, const char*, const char*,
111  unsigned int) { return false; }
112 };
113 
114 
115 } // end namespace mysqlpp
116 
117 #endif // !defined(MYSQLPP_UDS_CONNECTION_H)
118 
Declares the Connection class.
bool connect(const char *path, const char *db=0, const char *user=0, const char *password=0)
Connect to database after object is created.
Definition: uds_connection.cpp:45
UnixDomainSocketConnection()
Create object without connecting it to the MySQL server.
Definition: uds_connection.h:43
const char * error() const
Return error message for last error associated with this connection.
Definition: connection.cpp:185
Manages the connection to the database server.
Definition: connection.h:59
~UnixDomainSocketConnection()
Destroy object.
Definition: uds_connection.h:77
UnixDomainSocketConnection(const UnixDomainSocketConnection &other)
Establish a new connection using the same parameters as an existing connection.
Definition: uds_connection.h:71
static bool is_socket(const char *path, std::string *error=0)
Check that the given path names a Unix domain socket and that we have read-write permission for it.
Definition: uds_connection.cpp:67
Specialization of Connection for Unix domain sockets.
Definition: uds_connection.h:39
UnixDomainSocketConnection(const char *path, const char *db=0, const char *user=0, const char *password=0)
Create object and connect to database server over Unix domain sockets in one step.
Definition: uds_connection.h:60
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1SQLTypeAdapter-members.html000755 000765 000024 00000041335 13515046515 027052 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::SQLTypeAdapter Member List

This is the complete list of members for mysqlpp::SQLTypeAdapter, including all inherited members.

assign(const SQLTypeAdapter &sta)mysqlpp::SQLTypeAdapter
assign(const char *pc, int len=-1)mysqlpp::SQLTypeAdapter
assign(const null_type &n)mysqlpp::SQLTypeAdapter
at(size_type i) constmysqlpp::SQLTypeAdapter
compare(const SQLTypeAdapter &other) constmysqlpp::SQLTypeAdapter
compare(const std::string &other) constmysqlpp::SQLTypeAdapter
compare(size_type pos, size_type num, std::string &other) constmysqlpp::SQLTypeAdapter
compare(const char *other) constmysqlpp::SQLTypeAdapter
compare(size_type pos, size_type num, const char *other) constmysqlpp::SQLTypeAdapter
data() constmysqlpp::SQLTypeAdapter
escape_q() constmysqlpp::SQLTypeAdapter
is_null() constmysqlpp::SQLTypeAdapterinline
is_processed() constmysqlpp::SQLTypeAdapterinline
length() constmysqlpp::SQLTypeAdapter
operator const char *() constmysqlpp::SQLTypeAdapterinline
operator=(const SQLTypeAdapter &rhs)mysqlpp::SQLTypeAdapter
operator=(const null_type &n)mysqlpp::SQLTypeAdapter
quote_q() constmysqlpp::SQLTypeAdapter
set_processed()mysqlpp::SQLTypeAdapterinline
size() constmysqlpp::SQLTypeAdapterinline
size_type typedefmysqlpp::SQLTypeAdapter
SQLTypeAdapter()mysqlpp::SQLTypeAdapter
SQLTypeAdapter(const SQLTypeAdapter &other)mysqlpp::SQLTypeAdapter
SQLTypeAdapter(const String &str, bool processed=false)mysqlpp::SQLTypeAdapter
SQLTypeAdapter(const std::string &str, bool processed=false)mysqlpp::SQLTypeAdapter
SQLTypeAdapter(const char *str, bool processed=false)mysqlpp::SQLTypeAdapter
SQLTypeAdapter(const char *str, int len, bool processed=false)mysqlpp::SQLTypeAdapter
SQLTypeAdapter(char c)mysqlpp::SQLTypeAdapter
SQLTypeAdapter(tiny_int< signed char > i)mysqlpp::SQLTypeAdapter
SQLTypeAdapter(tiny_int< unsigned char > i)mysqlpp::SQLTypeAdapter
SQLTypeAdapter(short i)mysqlpp::SQLTypeAdapter
SQLTypeAdapter(unsigned short i)mysqlpp::SQLTypeAdapter
SQLTypeAdapter(int i)mysqlpp::SQLTypeAdapter
SQLTypeAdapter(unsigned i)mysqlpp::SQLTypeAdapter
SQLTypeAdapter(long i)mysqlpp::SQLTypeAdapter
SQLTypeAdapter(unsigned long i)mysqlpp::SQLTypeAdapter
SQLTypeAdapter(longlong i)mysqlpp::SQLTypeAdapter
SQLTypeAdapter(ulonglong i)mysqlpp::SQLTypeAdapter
SQLTypeAdapter(float i)mysqlpp::SQLTypeAdapter
SQLTypeAdapter(double i)mysqlpp::SQLTypeAdapter
SQLTypeAdapter(const Date &d)mysqlpp::SQLTypeAdapter
SQLTypeAdapter(const DateTime &dt)mysqlpp::SQLTypeAdapter
SQLTypeAdapter(const Time &t)mysqlpp::SQLTypeAdapter
SQLTypeAdapter(const null_type &i)mysqlpp::SQLTypeAdapter
type_id() constmysqlpp::SQLTypeAdapter
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1SQLQueryParms__inherit__graph.png000644 000765 000024 00000015343 13515046516 030327 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÚmÇÒsRGB®ÎéIDATxí”ÅÓÀ›¨’%0QIFDÄ€‚JT0¢(H0‹˜PyL€`%ƒ$%) (I@” A2’“H´¿þ•_ss³{ ìÝÍézoofº{º«+WÍì^m@9ppÈL ÌÈ™™³»¹þ¥€S4' ŽY@§hY@d·„£€S4'ŽY@ÜÁ56lØ ~ýõ×`³»vpHÕªUSG}tšÑéÍö–/_Þžº££€£@øûï¿ÕÒ¥KCGÆT´¢E‹†ÞàÂ)°cÇŽðÓêr´˜¤qŽÉ£€S´äÑÒÍä(“NÑb’Æu8 $NÑ’GK7“£@L dª¢íß¿_mÞ¼9æâß}÷ºöÚkcögfGF¸%{íß~ûMÕ¯__•(QBuÖYê‘GQì?ï¿ÿ¾ºæškÔ 'œ N?ýtuóÍ7« &xÃvíÚ%4ûú믽6N/^,íÐ3ìóÔSO¥Ÿì‹­[·Êº=ôP†S'‹ïYÍà 7g@¦*ÚW_}¥Š)¢öíÛŠÂÆÕ÷ßÚ—Ùá–Ìõyo»Aƒ¢ ÷ß¿j×®š3gŽºòÊ+Õ7ß|ã-õðë{ï½W(P@=û쳊±üñ‡ºúê«Õ;ï¼#ã å˜1cÔªU«¼û8á¹Ígœá}˜—g¢¶­xñâiÆ'ûâ‹/¾¼Þ~ûmµbÅŠ¸Ó'‹ïYÉøJ¤“·÷ý°~ýz=qâDSBçkÖ¬ÑcÇŽÕóLA¿÷Þ{|3@/Z´H8p@ÚwïÞ­gΜ© ±õÀuþüù¥?ôíÝ»W®ÿùçm¬·Üg„MÏèãdåÊ•zË–-^›a®6J«·mÛæµÙî5j”6‚'M±p3åYýí·ßÊþ·oßno×{öìÑË–-“kö²víZ¯/xÞ|ü`Bè`¼Ž× =N9å}×]wIÛ¸qãdÌ+¯¼âᄵ¢écŽ9F¯[·NÏ!ãŒçK3.x‘7o^ýÌ3ÏxÍË—/×›6mò®9±4„fÌ íøá½páÂ4ã¸`ÌäÉ“5´ ƒªU«ê:uêè;wnÝ«W/mÂ3gNŠ\¹r‰ šAwÜqÒ–#G}þùç§Q´Â… ëV­Z JVð|óð\›pÊC¡=zôÂß~ûí2'm¬õÒK/ycŸxâ ÍZGu”àÓ¨Q#ÍÜAÜ`ò‰'ž(øï ÍsDÙÍž=[æoذ¡ÌõÉ'ŸxóÛ fÂ==cÆ Û,Ç?þXîÇðøÁ¼£ù7Ö&¬ÔJìú={ö[·lÙROŸ>Ýß|P癪h_~ù¥lŒÍ£É:uKÅ\cÁz÷î-kN›6M,$DG˜0Ÿþ¹ôauü¸a9Ë”)£ëÕ«'VkÎñ80Ä :Ì€ùx>€õðVŒ…±¥J•ÒO>ùd:¯Š5å^p)Y²¤nÞ¼¹x{¼ºŒŽÉ­ìeš#¸c( í¡z4zŠqùóÏ?en”Å Ü kõíÛW®‡ ¦ñÂÐÚ䔲/<ËI'¤;tèàáŸjèR2—ߨÄãû믿®1°Ì Àë‚ jÐ*ZÓ¦M%ºA&0†Íš5“±~ÒP½zu]¹re™‹hèÆoÔ§žzªx/ ¼Ø+U>úè#1bL¥J•ô[o½•&b Ž»ÎTEÃà1š4i¢M^ ®ßºN?!g Daž_ѧmõêÕ"$~ø¡ ©U«–69œ_xá…b!lrmrݾ}{±Ò2ðÿÿ LX>?nX=ŒE¶`=*Jf{Â0‡"ÒÁ<Âf„4Àø~ýúé{î¹G—-[VÖãÞÈ-gžy¦xµ°û1ZxÙÎ;²¢¡P(Ö»ï¾+K\uÕUú†nsðÇÚûá´ÓNÓ&—Ô/¿ü²àŠq²46E]±bEŽr™üO·hÑB ß2bctà-ßÁkÉ’%b|GŒ¡mtB„`Í*!óal0ЀŸ‡¬ á‹Åe¡ûiGáCYÕ®][ÖcM>&wSFÉ” q”Re<‚Œ5!¡ºï¾û”ñzi–5a\…ðÚ"ȹ )½6{òàƒJåÐXJeBB™sÊ”)¶;ÝÑ(½àãï0J%•HÊI3ÈY³f)SŒð†Qy4ÌVÜoò§tsx<1Š£Œ@*^KeÓ(—w'¼³`¬¾2©Œ(ª•&tT<ž°ô5žFpb¼1–ÊäEÊx%ïóé§Ÿ*c´¤¢šßM­Œ¡TƳɷFLHjÑðŽ~Ü x9L(êá _}õUyœ뚊)ôæŒQjy$c¢€XÃojêÁC>øà‰Ù©V:ûæ  L4m'¶Ç à!µ¸ö{4býAƒ JxóLFr¨Fáú±|Œ³@N„%# yî¹çdM*TãÇ—óG}T,$¡—a¼Äÿ~ÜÈjÖ¬©!Øœxý¢‹.’e‚Í®M.‡W #,6ÌÑ$ò6‡³ãl1„ –šðOING! `„+$ ©y ÜË• ¡-Xf}Ù‡ýø+³äUþª#kÒSpÀ›êYÀ£ÿgŸ}&4lÛ¶­ÐÍá…#¼8²ÁZð°’ï¬2â ð,¤Ð"ß¡Ý%—\"û§¢k #„ç6tij’Ÿã‘Öür`.Âjã½½0úbRD1Ï í<þ#ÆÎŠFžª‰ÜƒY@ÑX%§Üü•[RÊ®Ž(ù ŠRÁ<”#ï\dšÃ;è„b’³ZE#LemŒ,y%sA¢`ðØâ Í0¸¼‰šÓÏþQhBÐC…LU4‹„x;X ¾ÆÓX@1D[A´í‡{ä9Dõ[u;'Bµ B7,>¹9QpÁ{c]SÀÓ…Ï¢Ø;o~¼{è^x”xж^XÞÊ2l?ŠF¯@ô†?¸S4  Äã;ëbÌìºO<¿U4ú1Ô¶bê_?ÈC»Œ牂?Lôžà¸,Q´à¢î:Z LOXOèHùÞVÑümQ8÷+ZðɇxŠó‹ŸÆý:H! ðʯq™|UQXòƒ Ó¨¯ïñ³&<jO´Ô—‰{¥úcÞ"ð7»sGG (`RE¥3ä7Cܨf@;×í( ös´¤`á&I˜û÷ÿûL0áÜÀHPÀ)Z$Ø8Çÿl¾n³>ñÜÈHP f1„7D½{O5_-lÞ*9;zÈ9ŒbR ]1Ä<ËP¦Lóב}زe—ù²èæÕ²BæK–­³·r\ P-5àýcf¤óhæ å~ÓÑO£èœ5™7yÔÚµÛÌ{¥»Õy界r“¸H£vqGºÎl§ÀÀÓå™Rž<¹Ô!³²‡@âpŠ–8­²uäêÕ[Í3šåæ›ÚüË5hÐ ñnÙŠ”[œ¢EŸGjðà™ŠHvîÜ£&N\lvפ€S´2%ˆÒ€ÓB=WîÜ9¥(ﮣG§hÑãIŒfÏ^¡¨8†9Û7ßÌ3_qÙÖíÚ"D§hbF*÷8p çDç ½9—.]ªæÏŸ¯N=õTù+VL;V5oÞÜ<š8òžMd›GÛ°aƒ*P €y&¤LÁ‚çÍ›WmÚ´Ió´ÓN“þ½{÷*„ËN?`ÛN8á•;wn¹Æ.\X•)SFåÈ‘ÃÖáÃü;wc=ÖëçdË–-*þüêï¿ÿ\XÛŽù믿G¼‚sÜqÇ©’%Kz÷#ø|ü¸åÌ™Sð¢¯X±B}úé§ž¯[·®<›™0a‚(Ô‡~(cðz¥J•òæ½îºë%æwÞyGá}3‚DçÙ¾}»Ú·oŸ*R¤ˆL îЧhÑ¢*W®\ÒÆžQpè‹‚X`t‚gì zÇâ ÷ÐÿÀØÛåž»îºK3FÝ~ûíÒþÏ?ÿ¨Å‹ËÚ(%´vìØ!xBïß~ûMá 7nܘÌÈærK.올:f›¢µnÝZ˜»hÑ"µÿ~a Â5`ÀÙ{¾|ùÔ›o¾© *¤n½õV±úõë×—>õÆoÈX¶OŸ> B§jÕª)ÞRAÙÇ>ùä9g>„†uêÔ) }5j$Úa(÷¡¼=ö˜ºì²ËÔ믿®ÀeDÁõÚk¯õžÒÿý÷ß«¡C‡Êœ¼MP«V-Õ¦MgΜé)‚d‡¹Ø ÊçW2î!|d.”¡‹3Ï| ûyûí·eÊuëÖ©fÍš©Þ½{«3Î8C¼N÷îÝeŸ(á…^(^£Ø¶m[U¢D y1:Κ5+&_Âð=餓Ì[-G©­[·J÷ܹsÕ“O>)t¥c_O?ýtÕ¿õÃ?(¥þúë¯U¢2Ãý„Ù±ä" ·ÌnËÖБРÂba*ÂÚ£GE|@Nœ8Q”‘Š7O,pN~…—˜ä2„^ÌõÓO?‰CiP²;î¸C5JŸü'€ËgŸ}¦FŒ!y†b0ú‘Gfó@~ôèÑjòäÉÒG˜‡BXàáªW¯.Þïµ×^S(3`øðážçýóÏ?Åj—-[ÖÞžæÈ› Àš5kÒ´/’5!îË/¿,Š?lØ0õÑGI¨ -`4ðJ¢X|±y%ôëó!lìÚµ«Ð”< @¹+T¨ ü†eL4‚a±@~K$Ò³gO/bHDf0¸±äÂÎÕÇlóhl´víÚª\¹r²g,8¼ʅµ‡àãUP@Þ©Ä+a yP$B=AÔ«W/±ž·Ýv›Ê“'$á~‘‰}È¡l˜„…ÇKÙüÀKx3æ!Ç»øâ‹Åëù¦QwÞy§wY°`A&”åo‚ ²go6¶Ç°1´Yƒp¸ó°g¼ã%—\"á;sÃrCâå1@,¾H§ùC¨×¥K{)¡h‹-<ž?þøãA¬ZµJŒ‰ íí ÇsŒêСƒðѶ%"3ñäÂΓÕÇlU4›'°i”ƒ°ÄÂE.ØA@Ñ $•;â‘ß¼úê«â*V¬(V™„›P%³€"Ç‚âÅ‹{]äŠ œ|òÉr´è·}¶-ìHî ŽT6mu“0á{÷Ýwa€' îÀûbUØDæ ÎAcÏ<ÿüó¶IŽ3 ä¯bñÅö“Ë~üñÇö2Ý‘ÈÏJ—.®Ðþ5ýˆÌÄ“ ›‡úçÌŠólU´Œ,µ%ùA5$|ä,.ÖŽ" aá >%ðçž{NÂHñ Ø)äÈX?£üX_ $ЀULßîÝ»Õï¿ÿ.¡«ëˆv’+Z ºüòË%‡`„‡„“ 4‚àcéÉÛ¡kÖ¬©ðŒñà`æ~x- þpš!%d´Þ‘Çxš0ˆÅ—°±Á6 JV¯^=uÿý÷‹¡EÁmo¯‘™xráóíœYqÌÖí`6HÈ@òMvõÕWË­ÅK/½$‰÷#ס  Œ„iñž={$ÿ‹eñ™Œü¡#\$‘>ñÄ%)§o2nÜ8µmÛ6•¢ @1†\ÃùĤI“äãÀ|ÕTðÿñãÇ{ÏÑ¥ð$O‰)|`ÅŸyæ)ÜsÏ=vj9ÆM:Õû0èú¨ä½²HÈŸ0¾„ m¢ÐA„wS¦L‘¼×oBoJ 1ž\$p{¦ É6´LÁëànyЋeÇzS¨H’ƒ‘ñìChÂr |÷¬‡bëù×d.ò+˜Oð©§žòú ©€¢(1ewªnÊAu̾íM1…œ‰° ƒ€r÷ë×ÏKò¹ÿüóÏWíÛ·—û1T!»uë&U=i4X«ÿÖ[o¥ÁÅŸó0–<•ÚDçÁ›bTPdɳ=€P›¢9ä Aƒ¤ zRü‚4£-Œ/´~úþÛòß_ŒçŠ„Ï„þ¶›nºI}ñÅÂKB¼àý]ÛÙãÉ…“ÕǤ}ñ³N:âþ3ëk2(@Ó¦MÕõ×_ï=ƒ±ÄÂÓ,_¾\ņ<þ>ú‰÷)@ËûXåÎ;«ªU«J8ê/µΠ88kwøó>»N¼#Ï¥HøròÌ0À³ñÁ(°÷ 2DÊÚ“[d4o-‚9x/{Eü¹kÎñø6>Øox¶gŸMâIÁ ƒz¸O.2šÃÙ¤I©”f46þä}ñ3Åyáe{wà 7¤›‡Šã¹çž›®úìÃçоF¼ Ÿ0°JÖ—Qym©>ÞX<®ßë"|¼5r°Ñ{jµ†' ©µG·Gl§€S´lgCàH €S´#ËnÙN¤æh MySQL++ Reference Manual MySQL++: Member List
mysqlpp::NoSchemaOption Member List

This is the complete list of members for mysqlpp::NoSchemaOption, including all inherited members.

arg_mysqlpp::DataOption< T >protected
ArgType typedefmysqlpp::DataOption< T >
DataOption(const T &arg)mysqlpp::DataOption< T >inlineprotected
err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
set(DBDriver *dbd)=0mysqlpp::Optionpure virtual
~Option()mysqlpp::Optioninlinevirtual
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1GuessConnectionOption.html000755 000765 000024 00000023011 13515046515 027106 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::GuessConnectionOption Class Reference
MySQL++  3.2.5
mysqlpp::GuessConnectionOption Class Reference

Allow C API to guess what kind of connection to use. More...

#include <options.h>

Inheritance diagram for mysqlpp::GuessConnectionOption:
Collaboration diagram for mysqlpp::GuessConnectionOption:

Additional Inherited Members

- Public Types inherited from mysqlpp::Option
enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 
- Public Member Functions inherited from mysqlpp::Option
virtual ~Option ()
 Destroy object.
 
virtual Error set (DBDriver *dbd)=0
 Apply option.
 

Detailed Description

Allow C API to guess what kind of connection to use.

This is the default. The option exists to override UseEmbeddedConnectionOption and UseEmbeddedConnectionOption.


The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/inherit_graph_1.png000644 000765 000024 00000005662 13515046516 022370 0ustar00tangentstaff000000 000000 ‰PNG  IHDR²$-µ`6sRGB®Îé lIDATxíœw¬ÕÅÇ—.H %Ò(B ¤†€tD:ä:¡„"$´HBïJ ô€‚‚1‘&¡£€Šô^-ô.mß|æ½ýåô{¸´{y¿IÎùývgËììwggæ\Ha…ŒO¾’·¥LÞòûÒûø¯| ûHx-4àùµØF>} ¼HºŠ;wš‰'†Vûe_IFýû÷7*T’'Ì"Ÿ;wÎ|ýõ×Aü‚¯¤ 'Ož(6/\¸&N˜Ev-¾úê+÷ê?} $ ¯]»f|¨Cž>}Z×4aÂs÷îÝ i–.]ª¼Í›7ÕG+dÏžý•§lŸÈÿþû¯A)X¦S§N™ßÿ]×KÎïÀæ—_~ñ”wöìÙ «@ÃóçÏ,ž£½{÷š;v(P\ÏÛ·o+`¯\¹¢Š?sæL [ßoÞ¼inܸ¡ómÛ¶Í=zÔkƒÅøë¯¿´ŒÅᇟ@+ÂÞ»wÏ 7Z¦ 5zôh3nÜ80ªU«f¾ùæX‘‡ßºu«A–PÂ*þöÛo†5†ZrÊè ð8°ÑŸœé­[·t¼Ý»w«®Ñ¹#§úüý÷߆2:Ú´i“>iÇA„±Wn”‘iíÚµ¼zDê•CëK~éÒ%WÔ>ŒƒÌì)ºúóÏ?u\£Hz`¯sÀèŸv…g&"ˆdüYgP]¬‚BÛתUKŸô­^½º­W¯žW®\¹²¡m•*UlÍš5½áD¹6UªTvÆŒö×_µùòå³3f´)R¤°¹s綇Ò¶?ýô“Íš5«M™2¥¶/_¾¼}óÍ7•7tèP[¦L}oß¾½-Z´¨}ûí·mÚ´iuþO>ùDy«V­Òr5<mE‘Ê_¿~½òHaeÙDåÉEÊãK€c‹)bëÖ­«u Û©S'm'¹N•óóÏ?÷ÚËÍ¡²¡ŸÔ©SÛœ9sZt]¾|ÙV­ZUû €l¦L™ì¼yó”÷þûïÛ† êzÑ):@_ŽfÏž­s!#kftŠ 2d°+W®´7nÔ~Ì O Ž:uªŽÙ´iSÛ¢E 7œîíÐe®\¹´^\7Ë::~ü¸Êºoß>+ÖXß‘K¸¥¹Átþ]»véP”ßxã {ðàA7tÌ':G61¡í†!6±@F!rÚì¤I“t2#'ÐÊ5¥åýû÷Û™3gªBÅ2ª _|ñ…*œü裬X8+§\Ç‘+ÜöîÝ[@þüùmíÚµ­Xa‹óäÉÈ,”90P^½zµu@nÛ¶­•«Ô;vL7A¬¬ÊByàÀºÉT–+V¬h[¶li7nl ,¨kÙ²e‹ö—+ZºfÍ+VÎΙ3Gç+ª|€P¶lY=œÌߤI˺Ä:Úž={êáãàÊÍ£ Ê–-›ò2e|±zƒÁÇQ:ulýúõµH»wß}׊µ´bå âNX±èºùèƒäôéÓ«®xÒ2dˆ-Y²¤9rd\@¦sñâżªœ”#éAn<=Ì%J”°rc¨þ¦L™¢ýâùz)@v&×¹n a*›\õZþöÛoÕò`)fÍš¥<¬ € ¤§sìØ±Уp>œ^6ËâhøðáQŒ’©@¶_¿~•§ sbù"dëàÁƒµë­·Þ²€â–ßÿ­¸úùùçŸõvX@ÖÀíáøÓ§O×:äá`vëÖ̓0þ|µn™ÃçhîܹjÕ0ÿüó¾/\¸PÙ™ù1óŠ«È /Y²D»½÷Þ{VܧD9–˜`Ïž= |ÀÎ ÃAŽ—b9êOÔ¢€§"¹*µ½¨OÙ}Š› OVƒ ¢ÿ+V±ÀêÇX@²ÉêÓ‰E7bŒl®åz¾]¥J•´_â‚xï¡/Ü *±lÞ0Ä z|‚ƒWNè¹áË‹»dðÇñÙñãìŽmè†õ;^ܳ`Á/‡Hý}üÆB… yõbUMçν²XHï]nÓ½{w#†ÁÈunäj6Í›7÷øëcíó½F/âÊ™?üÐ,_¾Üˆ«eäÆ3ü±Y¶lY@«àWb‰hKô ›Ò¥K9è¦k×®ªŸhc=Mý3{n2”¹z J”+V»ýøãfذaô°É°AbõÉ×É“'½÷З‹/zUDãâÇ?OPëPxEyÉœ9³rtŸX ^`øL›6Í´jÕJy4$]çx¬qüøñ '~¢7‹ÜBæÓO? i%K#·˜þ¸ £GGëã€A ­‘T"Y™/¿üÒH¼aœrcråvtÅ  Ú«üßK,=Є}gíÌ1`À€ˆAqè˜ñ”ãC_<#ÅÙ†M@Í|öÙgºÉXH®LMeÙ+VL­·+zzÙèQ£FivC‚B#¾uÔÙPVžÈƒÁ`q‰[¢ã ðL£F”ETÚ‰'"–©$##“öHÇÌŒéd}‚ÆJt!Ô?Il°G`É‚Ô/s¹¤¡´L°åˆL‚l%ÿëª,A¾" |=ÉÕªoG± чèXÜŒ ™ Âo%#kA[2.sà‚=úÂÃGÃ?'¸‚be-²èøalP²-Ñ¿kC4Ž¿ï¿ÝñY+¾+$À×ë'ëC¬‰Ëá­A+ä‹ÌkjPëêÑ2ŒEVÆéÚeä°Z¹-4«áú¶k×Nû°/~+o .¬|2!]ºtÑw²PëÖ­µŒ®céáƒ>Ð`TÒ­ÚÏ%Ö­[§å„¾bùÈÏœµHhòH|Ò.DÆ¡„ rêaåñÙ—~ l›5k¦©1É×ê†;¾2s°‘.sâøÏë)yU¨ä^Ædnä’<²ÊÚc\ddq``ÇX™Œ @ jÝ<’OÖ€Û•ŸæIPÈj$â°œ;Š¥׿iŸ±€üÜ‚=± ×6W"nþb(( MySQL++ Reference Manual MySQL++: tiny_int.h Source File
MySQL++  3.2.5
tiny_int.h
Go to the documentation of this file.
1 
4 /***********************************************************************
5  Copyright (c) 1998 by Kevin Atkinson, (c) 1999-2001 by MySQL AB, and
6  (c) 2004-2007 by Educational Technology Resources, Inc. Others may
7  also hold copyrights on code in this file. See the CREDITS.txt file
8  in the top directory of the distribution for details.
9 
10  This file is part of MySQL++.
11 
12  MySQL++ is free software; you can redistribute it and/or modify it
13  under the terms of the GNU Lesser General Public License as published
14  by the Free Software Foundation; either version 2.1 of the License, or
15  (at your option) any later version.
16 
17  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
18  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
19  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
20  License for more details.
21 
22  You should have received a copy of the GNU Lesser General Public
23  License along with MySQL++; if not, write to the Free Software
24  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
25  USA
26 ***********************************************************************/
27 
28 #if !defined(MYSQLPP_TINY_INT_H)
29 #define MYSQLPP_TINY_INT_H
30 
31 #include "common.h"
32 
33 #include <ostream>
34 
35 namespace mysqlpp {
36 
53 
54 template <typename VT = signed char>
55 class tiny_int
56 {
57 public:
60  typedef VT value_type;
61 
65  tiny_int() { }
66 
70  value_(value_type(v))
71  {
72  }
73 
75  operator bool() const
76  {
77  return value_;
78  }
79 
81  operator int() const
82  {
83  return static_cast<int>(value_);
84  }
85 
87  operator value_type() const
88  {
89  return value_;
90  }
91 
94  {
95  value_ = static_cast<value_type>(v);
96  return *this;
97  }
98 
101  {
102  value_ += static_cast<value_type>(v);
103  return *this;
104  }
105 
108  {
109  value_ -= static_cast<value_type>(v);
110  return *this;
111  }
112 
115  {
116  value_ *= static_cast<value_type>(v);
117  return *this;
118  }
119 
122  {
123  value_ /= static_cast<value_type>(v);
124  return *this;
125  }
126 
130  {
131  value_ %= static_cast<value_type>(v);
132  return *this;
133  }
134 
137  {
138  value_ &= static_cast<value_type>(v);
139  return *this;
140  }
141 
144  {
145  value_ |= static_cast<value_type>(v);
146  return *this;
147  }
148 
151  {
152  value_ ^= static_cast<value_type>(v);
153  return *this;
154  }
155 
158  {
159  value_ <<= static_cast<value_type>(v);
160  return *this;
161  }
162 
165  {
166  value_ >>= static_cast<value_type>(v);
167  return *this;
168  }
169 
172  {
173  ++value_;
174  return *this;
175  }
176 
179  {
180  --value_;
181  return *this;
182  }
183 
186  {
187  this_type tmp = value_;
188  ++value_;
189  return tmp;
190  }
191 
195  {
196  this_type tmp = value_;
197  --value_;
198  return tmp;
199  }
200 
203  {
204  return value_ - i.value_;
205  }
206 
209  {
210  return value_ + i.value_;
211  }
212 
215  {
216  return value_ * i.value_;
217  }
218 
221  {
222  return value_ / i.value_;
223  }
224 
227  {
228  return value_ % i.value_;
229  }
230 
233  {
234  return value_ | i.value_;
235  }
236 
239  {
240  return value_ & i.value_;
241  }
242 
245  {
246  return value_ ^ i.value_;
247  }
248 
251  {
252  return value_ << i.value_;
253  }
254 
257  {
258  return value_ >> i.value_;
259  }
260 
262  bool operator ==(const this_type& i) const
263  {
264  return value_ == i.value_;
265  }
266 
268  bool operator !=(const this_type& i) const
269  {
270  return value_ != i.value_;
271  }
272 
274  bool operator <(const this_type& i) const
275  {
276  return value_ < i.value_;
277  }
278 
280  bool operator >(const this_type& i) const
281  {
282  return value_ > i.value_;
283  }
284 
286  bool operator <=(const this_type& i) const
287  {
288  return value_ <= i.value_;
289  }
290 
292  bool operator >=(const this_type& i) const
293  {
294  return value_ >= i.value_;
295  }
296 
297 private:
298  value_type value_;
299 };
300 
302 template <typename VT>
303 std::ostream& operator <<(std::ostream& os, tiny_int<VT> i)
304 {
305  os << static_cast<int>(i);
306  return os;
307 }
308 
309 } // end namespace mysqlpp
310 
311 #endif
this_type & operator|=(int v)
Bitwise OR this value by another value.
Definition: tiny_int.h:143
this_type & operator<<=(int v)
Shift this value left by v positions.
Definition: tiny_int.h:157
this_type & operator -=(int v)
Subtract another value to this object.
Definition: tiny_int.h:107
this_type operator --(int)
Subtract one from this value and return the previous value.
Definition: tiny_int.h:194
bool operator !=(const this_type &i) const
Check for inequality.
Definition: tiny_int.h:268
this_type & operator %=(int v)
Divide this value by another object and store the remainder.
Definition: tiny_int.h:129
this_type operator *(const this_type &i) const
Return this value multiplied by i.
Definition: tiny_int.h:214
this_type & operator ^=(int v)
Bitwise XOR this value by another value.
Definition: tiny_int.h:150
this_type operator/(const this_type &i) const
Return this value divided by i.
Definition: tiny_int.h:220
tiny_int(value_type v)
Create object from any integral type that can be converted to a short int.
Definition: tiny_int.h:69
this_type operator -(const this_type &i) const
Return this value minus i.
Definition: tiny_int.h:202
this_type & operator *=(int v)
Multiply this value by another object.
Definition: tiny_int.h:114
this_type operator ^(const this_type &i) const
Return this value bitwise XOR'd by i.
Definition: tiny_int.h:244
tiny_int< VT > this_type
alias for this object's type
Definition: tiny_int.h:59
bool operator >=(const this_type &i) const
Check this object is greater than or equal to another.
Definition: tiny_int.h:292
bool operator >(const this_type &i) const
Check that this object is greater than another.
Definition: tiny_int.h:280
Class for holding an SQL TINYINT value.
Definition: tiny_int.h:55
this_type & operator=(int v)
Assign a new value to the object.
Definition: tiny_int.h:93
this_type operator+(const this_type &i) const
Return this value plus i.
Definition: tiny_int.h:208
this_type operator|(const this_type &i) const
Return this value bitwise OR'd by i.
Definition: tiny_int.h:232
this_type operator >>(const this_type &i) const
Return this value bitwise shifted right by i.
Definition: tiny_int.h:256
this_type & operator/=(int v)
Divide this value by another object.
Definition: tiny_int.h:121
bool operator==(const this_type &i) const
Check for equality.
Definition: tiny_int.h:262
tiny_int()
Default constructor.
Definition: tiny_int.h:65
bool operator<=(const this_type &i) const
Check this object is less than or equal to another.
Definition: tiny_int.h:286
this_type & operator --()
Subtract one from this value and return that value.
Definition: tiny_int.h:178
this_type & operator+=(int v)
Add another value to this object.
Definition: tiny_int.h:100
this_type & operator &=(int v)
Bitwise AND this value by another value.
Definition: tiny_int.h:136
this_type operator &(const this_type &i) const
Return this value bitwise AND'd by i.
Definition: tiny_int.h:238
This file includes top-level definitions for use both internal to the library, and outside it....
this_type operator<<(const this_type &i) const
Return this value bitwise shifted left by i.
Definition: tiny_int.h:250
VT value_type
alias for type of internal value
Definition: tiny_int.h:60
this_type & operator++()
Add one to this value and return that value.
Definition: tiny_int.h:171
bool operator<(const this_type &i) const
Check that this object is less than another.
Definition: tiny_int.h:274
this_type & operator >>=(int v)
Shift this value right by v positions.
Definition: tiny_int.h:164
this_type operator %(const this_type &i) const
Return the modulus of this value divided by i.
Definition: tiny_int.h:226
mysql++-3.2.5/doc/html/refman/functions_func_b.html000755 000765 000024 00000012311 13515046515 023020 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Class Members - Functions
MySQL++  3.2.5
 

- b -

mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1NoSchemaOption__inherit__graph.png000644 000765 000024 00000021442 13515046516 030522 0ustar00tangentstaff000000 000000 ‰PNG  IHDR·@CsRGB®Îé"ÜIDATx혔ÕÕǰt®éÍŠÒ "‚ ‚AÅ‚Ñ`hŠŠÒ4 jÒl!b = bAzQ©Št¥ƒ€4éð~÷wÈggg¶°;;3»÷<ÏÎ[nÿßÓßwf³xž7A929YŒ x™·|‡€du8âÁ1CœEp|à0ÄE# Û¶m“o¿ý6§ææ”JÊ”)#7Þxc*{ Cs‚åh£>ø€Þýe@ Ú¶mmì¦ó‰J‹€¼gÏž]NŸ>Ñw]F »îº+RC'9®‹’„ÈUÈ 8AÈ »ìÖ˜$N’„ÈUÈ 8AÈ »ìÖ˜$N’„ÈUÈ 8AHƒ]?~¼téÒ% zJº‹ï¿ÿ^î»ï>©T©’\zé¥Ò¨Q#yõÕWåüùóI765Ξ=+ôÕmß¾½Lš4ÉwYOœ ¤Áί_¿^/^œ=%ÞÅÌ™3¥Aƒ²lÙ2騱£¼ð R¼xqéÙ³§´hÑBΜ9“x¦tÆŒR¤H_ÝãÇ»4µÁ%jŸ#$¹£~ÐpçÎÓ ^¾|¹”-[Vµ%›¼bÅ )Y²¤”/_^[ðÔ:_¾|R¸pa_;vìÐ{ Ô{hÝS§NIµjÕ$oÞ¼¾zÇŽ“Õ«WKÕªU%wîÜò믿êX¾ æäÈ‘#bžÐHžÝW¿T©Rj 6nÜ(^½zi– 7‡#tÛm·I÷îÝõ|Æ z öžŽZÕÞ[¶lÑ:|0ÏÍ›7ë8M›6#TR»vm_<ÀÜŒâðÕÇZµk×NêÖ­«V ܌҇zH­Y×ã?®ëêß¿¿|ùå—jY|ÄòIr¥9=ë]ŒE@“[4hgÜ Ï¸)z˧çû÷ïWk3zôh½6BãÝqÇzþì³Ïª&œ Dßž¸E'Ý }8Aˆ¾=q3ŠN"º2úp‚}{âfœ Dt7dô!à!úöÄÍ(8AˆènÈèCÀ Bô퉛Qp‚ÐÝч€„èÛ7£ à! »!£'Ñ·'nF@À B@wCFN¢oOÜŒ"€€„€î†Œ>œ Dßž¸E'Ý }8Aˆ¾=q3ŠN"º2 ðb€>ýôSþk†ü‹‹+ìåÈQ*C®=ëÔ©S p˜çÅÔ¿Ž?~¼äÌ™3 Õ‰›R0ìvTÞ‹)A¸ë®»$Ožù¤tëÖ-Õ{¿~ýzY¼xqªûIªæúè£J\\œôïß_LN^~þùgiÒ¤‰Œ5*©æZ>cÆ )R¤ˆœ9sF¯?.§OŸNVÛLU)žvØj†™“5ÝÝ»w몉'Æ«_¿~}¯xñâ¾{Æ:x«V­òèÛ¶m¾ûöäèÑ£Þܹs½9sæxGޱ·½>}úxÕ«W÷]sBû x‡ŽwŸ‹cÇŽi?;wîŒW¶}ûvÏ0¦g4¶7oÞºŽ‰ `Ë–-óvíÚå5hÐÀ3®œ–aqn»í6=ü@³#<Ï>û¬!%K–ôŒÛäa5MáwÈCÛO™2EçÃ: ÆD’Z#‚€½þúëŠqÍôÚâ¥%ñK‚!cëÛ7HªT©"W]u•Ô©SGŒV–gžyF‹ ƒH‹-¤|ùòzÝ¡C)\¸°|ýõײbÅ õÅñɆÃhÒµkW1®üôÓO¶{=~ôÑGR£F 1B"ÆÍÃÀ’/_>Q “Ë?þ(·ß~»”™3gŠÑÐÚí¤cÇŽBS¢D iÓ¦lÚ´I‹ˆi ,h«Å;7M‚éËs-[¶¬>y7‚*Ƶ‘µk×ÚâÇ䬱B… WÁã?®}lܸ1A_áFL½b‘RÀ|ðAe.ÛnÉ’%R¯^=1¾¼2# ìOŽñ¡Åøûzµ£B”ûÓ/¿ü"Æçc1|·a`c p;å‰'ž/¾øB.¿ür¹öÚk5ðõU4'dƒ,¿_œk2DƯ·EñŽ+Ù/êX²Í5íÛ·OÁ>’³Fÿ¹÷P»aÜŒH¨”Œ¸º€5a f1 ¯˜lZ€üË—/_®÷ŒË¤Gûa\1~¾˜À×÷7bĹûî»åý÷ß—/¿üR­åÆ}R±m9"0Á¨Q£Fj™‚e§>ùä1I[2®•=•E‹é9k EÉYc¨¹…ê3–ïghAX³fæÜMF,Í›7W÷W·hêÔ©b‚JM':T÷¶®Ê AƒÔ½à¹„ɾHíÚµãia´lÙRèŸÜ<îmZ·n-¿ýö›jmÜ4«É& . gS™‰1NçÎÅøóbâá¹… tÕÍêÕ«—Œ7Nzöì)¡¥‘#GªÁ>|¸”)SFÓÆ¸u.ÊRJÖhÛdècñNT§4X&­h6-Þ™!£e5]Ê¢ŒUðH§RÌ Áç;ï¼ã[/éË¢E‹úÊ+UªäýðÃZN°lÜ*='ýIpjÇ#Ãd„NËV ÃiY#|^«V­t¼¥K—z†Y5µƒ2~þüùí¥Ðdjlß)ã7|u8!X&¸f êí1–Dëüú믚àþæÍ›uL›5JlO=õ”f¢ì@Fhߟ}ö™½•ä1–‚å ™>Mr‡þWT  N5kCyxãyd{ÈÔ$F¬G{ò÷–Èî¤$'.\¸Ð3Z=húAøðÃ=ê­[·Îã;Úg ¾~')Y£_³dÆ’ dè`ÙhÁD Ø?à ¬ŒPֱ׸1ü#2Wþ”˜ïî_Ïž(P@Ìs{òH=þ‰/3ñŒR²Æ`í3ʽ #d”MJj¤†yÂÑÅ#©-ÂÅÃ]-ÍëÑ5¡œ³1¸inÊi€„´Ç4Å=ž={>Åm\ƒ´EÀ BÚâ™âÞví:$ümŠÛ¹i‹@LÅæMд]}ô–/_-󔸂<ôP½(˜MÚO¡jÕªißizŒ A …9a„0,?ò]¾ôÒ Ù³ç„Œ;^  žâŒü,/~‰¥§/¾×´o‚À{1¼úÑhÓ¦}F.|ÓíܹRf7g´%ÆÌz\ŒÁ­š2e¹yÍ;›yñNŒÅû.‚3qC;Aˆ Lš´Ì¼€wμæ"æÍ×=满_›Žà43ÅÐN"´Í+Wn“;þøu ,ÃÔ©ßGh6nX'âiÓ¾W·Èe˜8q©½tÇtFÀ B:ÎpæÕMóý…åêù…Xµj»ÿ-wžN8AH' ý‡Y¼x“ùÑ­cþ·ôü‚{tá›p ݰ"à!¬ðïÜf‹Kq°X Gé‹€„ôÅ[Ý¡éÓW$p‹ì4°X Gé‹€„ôÅÛ|‡zùÞrèŸ\Ìž=ÎeÒyOÎ B:ƒ>yò2ó“.ÙBŽzæÌYók¡-FȆ® U8AH|)k|üøióó.?˜ß.Jü·Ž;¥–#e½»Ú©A &Þ5JÍ£©íêÕÛåê«KšŸyùãûû÷3?vRÊ•+ê›*ߥæIóm·]ã»çN‹@~Ž ¼C¸ÞCàå—?3¿‹ô£|õÕÓ‰UseaFÀ¹FaØu8Aˆ}r³ 3N °ë>6p‚ûäffœ „`×}l à!6öÉÍ2Ì8A3À®ûØ@À Blì“›e˜p‚f€]÷±€„ØØ'7Ë0#à!Ì»îc'±±On–aFÀ B˜vÝÇNbcŸÜ,ÃŒ€„0ìº œ ÄÆ>¹Y†'aØu8Aˆ}r³ 3N °ë>6p‚ûäffœ „`×}l à!6öÉÍ2Ì8A3À®ûØ@À Blì“›e˜p‚f€]÷±€„ØØ'7Ë0#à!Ì»îc'±±On–aFÀ B˜vÝÇNbcŸÜ,ÃŒ€„0ìº œ ÄÆ>¹Y†'aØu$ø9ß|ó¼þúë±1û 0Ër›•]Ê–=’VKøÓŸþ$;wŽ7ÙÿCmûöí2qâD¡²£ôA wn‘}ûÒg¬Ì>ÊÚµk%·ÿüóxCÁ 0FrèÃ?Ô>jÔ¨!>ú¨*THþñÈ?ÿùÏ$›ÿøã²gÏž$녻·ß~«J‡u7kÖL:vì(… –±cÇJ¯^½¬’¢Å‹ËwÞé«‹¢9sæLRÍÂZžj‹púôi9xð +VÌäÂ÷ Z¯B… rþüyùå—_„òŠ+J\\œìÝ»Ws¸V°²_ýUïåË—O S }ïµD¿›7o–Ò¥KKΜ9åСCR¼xq[¬G´“çy’+W.µ ÔúÒ'Z˜MÛ¶m›yˆuL*W®ìÓÄ´c®hf4¼ÿµ„~ÇŒ£Ú«@öv¼#ëÞºu«®‹5`E S§NÉÿû_¹ï¾ûäðµÁº \=zôPKƒ¶Ü´i“âxÍ5×(n¾Êæ„yS^ªT)ÅÜ¿Œõ3vÑ¢EãaÆàËš¶lÙ"UªT‘9rÈdçΊµÅŸþXcdË–Mµ=x@àóÊ+¯H™2edذa¾ýiÙ²¥\{íµ2|øpùâ‹/¤yóæòÛo¿IÞ¼yuŒ `F”AvÉ’%uíÌÇ{ AÌ5Ož|XÐlæk¯½¦ ¯ZµJúöí«æÆ©T©’2óÌ™3µûA¿@&Ú ­Õ³gOA“õë×OªU«&hWÊØP42Büý÷ßËÓO?-C‡Õµø_3ô—¿üEþõ¯ɨQ£TûÙqíAcŒÕ«W+À˜0ý#<¢ÌÅ5Ö f°KuóÍ7k¬uRDy€ k€pDb]¶ì«¯¾R¼XÂT«V-éß¿¿ ûÃÁ†rôöÛo×§ô£a•PXÌ5€Ä}ºnÜ!CT{ôÑGZ϶¶X´=ñš FAX-Z䫊€}òÉ' *æÍ7ßÔ2¬ Bi­Là5•hûØc)C®X±Â×§=ù÷¿ÿ­VÍ1c†<óÌ3:ua4'¯°À4Ìmüøñª•Ql¤mÏëqÓM7©Ë&‡öï߯LÃÕ¬YS¦M›¦÷Ñê0C‹-´í±žôo ơǙF¢íˆ#”yÑøsæÌѪo½õ–`‰ƒ½(W®œ®Â;vh+¯¼RþÌí½k×.ßmÆ ð¾á†TPŽjöÈâÍ ¬öàÁƒåꫯVüŸ¹p屿àG[iÙ²eiâ2¦™ <øàƒÊ(uêÔÑ ³)h!{lذ¡º4wî\“‰©ÇÂìXŠ‘#GJ§NdãÆºÐV­ZÉe—]¦õ¬ÔN>Ø8‚J6—z%J”,Š%Àõb<Ê­ãú¯ý«oc¯mû;î¸C7‡÷±ìæØ²ùóçKݺuuLîÑ?ë! h^´¦ÄÊ èÐÂ… #,‚Ã|À-5iÒD-'±¸"xR§~ýúzmŠ&®±„â®k«]»¶®ƒ¾`N`•ÑÐ0=ýâŠ!€ý‚+.b0B±X7ŠrF§>üA9®[(b¯qŸi‡Á*‚ã#ûy÷Ýwk9õ + zq‘©vì¸hp¿lÈš,´ O–dÞ¼yš!€ q €Â5À¼ýöÛ*D”YíÏ&ZB B>§?'Ø>¸ï¯(cÌ”ë!sD°Kðk w… #îð'pa üq´%ÚŸ?7WíÆ¦ÒþòË/÷5Ç5mÚÔw]¤Hß9. š‚y AƒéÑ~ ˆ,ù·eüÇaMÖê°7ï¼óŽ2!BcÇ °ehz»¿¶” ‡L˜%˜ÖXCþ{aË쑲X²ó¶ûdû¡Üº—ÖU´m.æ˜fÁ2|R“@3!˜K´æÂÄ=ôÐC2uêTuØDÌ4 ‚‘,±¡Èj/ÊÑ`hæ÷ï.1¡ 5VçþûïWA k¡ Ù$CKh}ʃ±Ð´V³Q!iÓ¦V‡AhO‚Á.%1ŒeÆPÓ—EÂßßÿþwMl_¡ÚÚrŽÌ!ÀõÀ-%ÂZX"¾bìQ aõÿô®ÿ^ØÌ^bx[eŠ[gÉfäì&g¶mJŽi&É”|1¦òÝwßU«`¥ú³Ï>SŸ• ŒFf‰zªXü]›1a“BÀÍš5Kµ0›ŠË`Ý3Ú0.ýà–ÌãÊ@0(n‹u7¯µ’ßA0›cëSD_¸hUüÝI“&i‹†Æ%„‰ˆ£`lÜÊ1éÄF(„ªU«ªkƒ{„‹…õÀ=¤žµ²~ÃÇ;e\„…µáVÔ’Ê$ARB»¢|°¤9‰¯¬k†Àå MySQL++ Reference Manual MySQL++: mysqlpp::InitCommandOption Class Reference
MySQL++  3.2.5
mysqlpp::InitCommandOption Class Reference

Give SQL executed on connect. More...

#include <options.h>

Inheritance diagram for mysqlpp::InitCommandOption:
Collaboration diagram for mysqlpp::InitCommandOption:

Additional Inherited Members

- Public Types inherited from mysqlpp::DataOption< T >
typedef T ArgType
 Alias for template param.
 
- Public Types inherited from mysqlpp::Option
enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 
- Public Member Functions inherited from mysqlpp::Option
virtual ~Option ()
 Destroy object.
 
virtual Error set (DBDriver *dbd)=0
 Apply option.
 
- Protected Member Functions inherited from mysqlpp::DataOption< T >
 DataOption (const T &arg)
 Construct object.
 
- Protected Attributes inherited from mysqlpp::DataOption< T >
arg_
 The argument value.
 

Detailed Description

Give SQL executed on connect.


The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1TypeLookupFailed-members.html000755 000765 000024 00000014061 13515046515 027464 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::TypeLookupFailed Member List

This is the complete list of members for mysqlpp::TypeLookupFailed, including all inherited members.

Exception(const Exception &e) MAY_THROW()mysqlpp::Exceptioninline
Exception(const char *w="")mysqlpp::Exceptioninlineprotected
Exception(const std::string &w)mysqlpp::Exceptioninlineprotected
operator=(const Exception &rhs)mysqlpp::Exceptioninline
TypeLookupFailed(const std::string &w)mysqlpp::TypeLookupFailedinlineexplicit
what() constmysqlpp::Exceptioninlinevirtual
what_mysqlpp::Exceptionprotected
~Exception()mysqlpp::Exceptioninline
mysql++-3.2.5/doc/html/refman/common_8h_source.html000755 000765 000024 00000114157 13515046515 022756 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: common.h Source File
MySQL++  3.2.5
common.h
Go to the documentation of this file.
1 
7 /***********************************************************************
8  Copyright © 1998 by Kevin Atkinson, © 1999-2001 by MySQL AB,
9  © 2004-2009, 2018 by Educational Technology Resources, Inc., and
10  © 2009 by Warren Young. Others may also hold copyrights on code
11  in this file. See the CREDITS.txt file in the top directory of the
12  distribution for details.
13 
14  This file is part of MySQL++.
15 
16  MySQL++ is free software; you can redistribute it and/or modify it
17  under the terms of the GNU Lesser General Public License as published
18  by the Free Software Foundation; either version 2.1 of the License, or
19  (at your option) any later version.
20 
21  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
22  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
23  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
24  License for more details.
25 
26  You should have received a copy of the GNU Lesser General Public
27  License along with MySQL++; if not, write to the Free Software
28  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
29  USA
30 ***********************************************************************/
31 
32 #if !defined(MYSQLPP_COMMON_H)
33 #define MYSQLPP_COMMON_H
34 
35 #if !defined(DOXYGEN_IGNORE)
36 // Doxygen will not generate documentation for the following stuff.
37 
38 // Enable SSQLS by default. Turned off below on platforms where we
39 // know it doesn't work.
40 #define MYSQLPP_SSQLS_COMPATIBLE
41 
42 // For all platforms but Visual C++ 2003, the following macro is just
43 // an alias for "*this". It needs a more complicated definition on
44 // VC++ 2003 to work around an error in the overloaded operator lookup
45 // logic. For an explanation of the problem, see:
46 // http://groups.google.com/group/microsoft.public.vc.stl/browse_thread/thread/9a68d84644e64f15
47 #define MYSQLPP_QUERY_THISPTR *this
48 
49 // Work out major platform-specific stuff here.
50 #if defined(__WIN32__) || defined(_WIN32)
51 # define MYSQLPP_PLATFORM_WINDOWS
52  // Windows compiler support. Tested with Microsoft Visual C++,
53  // Borland C++ Builder, and MinGW GCC.
54 
55  // Don't let windows.h (via Connector/C) #define min/max
56  #define NOMINMAX
57 
58  // Stuff for Visual C++ only
59 # if defined(_MSC_VER)
60 # define MYSQLPP_PLATFORM_VISUAL_CPP
61  // MS *still* doesn't ship stdint.h, through VC++ 2008 at least.
62  // This means we have to take a wild guess at appropriate
63  // integer types in lib/sql_types.h. See test/inttypes.cpp for
64  // tests that check whether we've guessed well.
65 # define MYSQLPP_NO_STDINT_H
66 # if _MSC_VER < 1400
67  // Workarounds for limitations of VC++ 2003 that are fixed
68  // in 2005 and later.
69 # undef MYSQLPP_QUERY_THISPTR
70 # define MYSQLPP_QUERY_THISPTR dynamic_cast<std::ostream&>(*this)
71 # undef MYSQLPP_SSQLS_COMPATIBLE
72 # elif !defined(_STLP_VERSION) && !defined(_STLP_VERSION_STR)
73  // VC++ 2005 or newer and not using STLport, so #define
74  // portability flags indicating features we can use from
75  // the compiler's native RTL.
76 # define MYSQLPP_HAVE_LOCALTIME_S
77 # define MYSQLPP_HAVE_STD__NOINIT
78 # endif
79 
80  // Disable complaints about STL data members: VC++ believes
81  // these need to be __declspec(dllexport) for some reason.
82 # pragma warning(disable: 4251)
83  // Disable complaint that VC++ doesn't grok throw specs
84 # pragma warning(disable: 4290)
85  // Disable whining about using 'this' as a member initializer on VC++.
86 # pragma warning(disable: 4355)
87  // Disable whining about implicit conversions to bool
88 # pragma warning(disable: 4800)
89  // Disable nagging about new "secure" functions like strncpy_s()
90 # pragma warning(disable: 4996)
91 
92  // Disable warning about exporting a class from a DLL which is
93  // derived from a non-exported class in another DLL. This is
94  // safe to do with Standard C++ library types per:
95  //
96  // https://msdn.microsoft.com/en-us/library/3tdb471s.aspx
97  //
98  // We don't hit this any other way in MySQL++.
99 # pragma warning(disable: 4275)
100 
101  // Squish warning about passing no args to MAY_THROW() when
102  // building with newer C++ support. We're doing it on purpose.
103 # pragma warning(disable: 4003)
104 
105  // Prior to Visual C++ 2015, we must use _snprintf()
106 # if _MSC_VER < 1900
107 # define snprintf _snprintf
108 # endif
109 # endif
110 
111  // Define DLL import/export tags for Windows compilers, where we build
112  // the library into a DLL, for LGPL license compatibility reasons.
113  // (This is based on a similar mechanism in wxWindows.)
114 
115  #ifdef MYSQLPP_MAKING_DLL
116  // When making the DLL, export tagged symbols, so they appear
117  // in the import library.
118  #define MYSQLPP_EXPORT __declspec(dllexport)
119  #elif !defined(MYSQLPP_NO_DLL)
120  // We must be _using_ the DLL, so import symbols instead.
121  #define MYSQLPP_EXPORT __declspec(dllimport)
122  #else
123  // Not making a DLL at all, so no-op these declspecs
124  #define MYSQLPP_EXPORT
125  #endif
126 
127  // We need to use the DOS/Windows path separator here
128  #define MYSQLPP_PATH_SEPARATOR '\\'
129 #else
130  // If not VC++, MinGW, or Xcode, we assume we're on a system using
131  // autoconf, so bring in the config.h file it wrote containing the
132  // config test results. Only do this during the library build, and
133  // even then, not if included from a MySQL++ header file, since
134  // config.h cannot be safely installed with the other headers.
135 # if defined(MYSQLPP_NOT_HEADER) && !defined(MYSQLPP_XCODE)
136 # include "config.h"
137 # endif
138 
139  // Make DLL stuff a no-op on this platform.
140  #define MYSQLPP_EXPORT
141 
142  // Assume POSIX path separator
143  #define MYSQLPP_PATH_SEPARATOR '/'
144 #endif
145 
146 // Workarounds for deprecations in C++11 and newer. We must still
147 // support systems whose contemporaneous C++ compiler only understands
148 // C++98. Because of the large gap between C++98 and C++11, it will
149 // likely be years yet until we can start using C++11 unconditionally
150 // within MySQL++, then years more until we can use C++14, etc.
151 //
152 // C++11 deprecated throwspecs, a feature of C++ that is only used by
153 // the oldest parts of MySQL++. We can't drop the throwspecs until
154 // MySQL++ 4, if we ever get around to that, since that would break
155 // the library's ABI on systems whose C++ compiler still supports
156 // throwspecs. This feature isn't completely gone until C++17, but we
157 // don't want the warnings on certain newer compilers expecting C++11
158 // or newer C++ dialects.
159 #if __cplusplus < 201103L
160 # define MAY_THROW(what) throw(what)
161 #else
162 # define MAY_THROW(junk) noexcept(false)
163 #endif
164 
165 // C++11 added unique_ptr as a replacement for auto_ptr. We don't have
166 // the ABI problem above with this one, so we switch to it with the
167 // oldest release possible. As with the above ifdef, this one only
168 // currently works for g++ and clang++.
169 #if __cplusplus >= 201103L
170 # define UNIQUE_PTR(what) std::unique_ptr<what>
171 #else
172 # define UNIQUE_PTR(what) std::auto_ptr<what>
173 #endif
174 
175 
176 namespace mysqlpp {
177 
180 const bool use_exceptions = true;
181 
183 enum sql_cmp_type { sql_use_compare };
184 
185 #if !defined(DOXYGEN_IGNORE)
186 // Figure out how to get large integer support on this system. Suppress
187 // refman documentation for these typedefs, as they're system-dependent.
188 #if defined(MYSQLPP_NO_LONG_LONGS)
189 // Alias "longlong" and "ulonglong" to the regular "long" counterparts
190 typedef unsigned long ulonglong;
191 typedef long longlong;
192 #elif defined(_MSC_VER)
193 // It's VC++, so we'll use Microsoft's 64-bit integer types
194 typedef unsigned __int64 ulonglong;
195 typedef __int64 longlong;
196 #else
197 // No better idea, so assume the C99 convention. If your compiler
198 // doesn't support this, please provide a patch to extend this ifdef, or
199 // define MYSQLPP_NO_LONG_LONGS.
200 typedef unsigned long long ulonglong;
201 typedef long long longlong;
202 #endif
203 #endif // !defined(DOXYGEN_IGNORE)
204 
205 #if !defined(MYSQLPP_NO_UNSIGNED_INT_TYPES)
206 typedef unsigned long ulong;
212 #endif
213 
214 } // end namespace mysqlpp
215 
216 // The MySQL headers define these macros, which is completely wrong in a
217 // C++ project. Undo the damage.
218 #undef min
219 #undef max
220 
221 #endif // !defined(DOXYGEN_IGNORE)
222 
223 
224 // Now that we've defined all the stuff above, we can pull in the full
225 // MySQL header. Basically, the above largely replaces MySQL's my_global.h
226 // while actually working with C++. This is why we disobey the MySQL
227 // developer docs, which recommend including my_global.h before mysql.h.
228 #if defined(MYSQLPP_MYSQL_HEADERS_BURIED)
229 # include <mysql/mysql.h>
230 #else
231 # include <mysql.h>
232 #endif
233 
234 // The Unicode chapter of the user manual justifies the following.
235 #if MYSQL_VERSION_ID >= 50500
236 # define MYSQLPP_UTF8_CS "utf8mb4"
243 
246 # define MYSQLPP_UTF8_COL "utf8mb4_general_ci"
247 #else
248 # define MYSQLPP_UTF8_CS "utf8"
254 
257 # define MYSQLPP_UTF8_COL "utf8_general_ci"
258 #endif
259 
260 #endif // !defined(MYSQLPP_COMMON_H)
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1SharedMemoryBaseNameOption-members.html000755 000765 000024 00000015366 13515046515 031441 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::SharedMemoryBaseNameOption Member List

This is the complete list of members for mysqlpp::SharedMemoryBaseNameOption, including all inherited members.

arg_mysqlpp::DataOption< T >protected
ArgType typedefmysqlpp::DataOption< T >
DataOption(const T &arg)mysqlpp::DataOption< T >inlineprotected
err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
set(DBDriver *dbd)=0mysqlpp::Optionpure virtual
~Option()mysqlpp::Optioninlinevirtual
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1NoExceptions.html000755 000765 000024 00000017750 13515046515 025242 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::NoExceptions Class Reference
MySQL++  3.2.5
mysqlpp::NoExceptions Class Reference

Disable exceptions in an object derived from OptionalExceptions. More...

#include <noexceptions.h>

Public Member Functions

 NoExceptions (const OptionalExceptions &a)
 Constructor. More...
 
 ~NoExceptions ()
 Destructor. More...
 

Detailed Description

Disable exceptions in an object derived from OptionalExceptions.

This class was designed to be created on the stack, taking a reference to a subclass of OptionalExceptions. (We call that our "associate" object.) On creation, we save that object's current exception state, and disable exceptions. On destruction, we restore our associate's previous state.

Constructor & Destructor Documentation

◆ NoExceptions()

mysqlpp::NoExceptions::NoExceptions ( const OptionalExceptions a)
inline

Constructor.

Takes a reference to an OptionalExceptions derivative, saves that object's current exception state, and disables exceptions.

◆ ~NoExceptions()

mysqlpp::NoExceptions::~NoExceptions ( )
inline

Destructor.

Restores our associate object's previous exception state.


The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1DataOption-members.html000755 000765 000024 00000015274 13515046515 026315 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::DataOption< T > Member List

This is the complete list of members for mysqlpp::DataOption< T >, including all inherited members.

arg_mysqlpp::DataOption< T >protected
ArgType typedefmysqlpp::DataOption< T >
DataOption(const T &arg)mysqlpp::DataOption< T >inlineprotected
err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
set(DBDriver *dbd)=0mysqlpp::Optionpure virtual
~Option()mysqlpp::Optioninlinevirtual
mysql++-3.2.5/doc/html/refman/files.html000755 000765 000024 00000037544 13515046515 020615 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: File List
MySQL++  3.2.5
File List
Here is a list of all documented files with brief descriptions:
 autoflag.hDefines a template for setting a flag within a given variable scope, and resetting it when exiting that scope
 beemutex.hMUTually EXclusive lock class
 cmdline.h
 common.hThis file includes top-level definitions for use both internal to the library, and outside it. Contrast mysql++.h
 comparable.hDeclares the Comparable<T> mixin
 connection.hDeclares the Connection class
 cpool.hDeclares the ConnectionPool class
 datetime.hDeclares classes to add SQL-compatible date and time types to C++'s type system
 dbdriver.hDeclares the DBDriver class
 exceptions.hDeclares the MySQL++-specific exception classes
 field.hDeclares the Field and Fields classes
 field_names.hDeclares a class to hold a list of field names
 field_types.hDeclares a class to hold a list of SQL field type info
 insertpolicy.hDeclares the InsertPolicy classes
 manip.hDeclares the Query stream manipulators and operators
 myset.hDeclares templates for generating custom containers used elsewhere in the library
 mysql++.hThe main MySQL++ header file
 mystring.hDeclares String class, MySQL++'s generic std::string-like class, used for holding data received from the database server
 noexceptions.hDeclares interface that allows exceptions to be optional
 null.hDeclares classes that implement SQL "null" semantics within C++'s type system
 options.hDeclares the Option class hierarchy, used to implement connection options in Connection and DBDriver classes
 qparms.hDeclares the template query parameter-related stuff
 query.hDefines a class for building and executing SQL queries
 refcounted.hDeclares the RefCountedPointer template
 result.hDeclares classes for holding information about SQL query results
 row.hDeclares the classes for holding row data from a result set
 scopedconnection.hDeclares the ScopedConnection class
 sql_buffer.hDeclares the SQLBuffer class
 sql_types.hDeclares the closest C++ equivalent of each MySQL column type
 sqlstream.hDefines a class for building quoted and escaped SQL text
 stadapter.hDeclares the SQLTypeAdapter class
 stream2string.hDeclares an adapter that converts something that can be inserted into a C++ stream into a std::string type
 tcp_connection.hDeclares the TCPConnection class
 tiny_int.hDeclares class for holding a SQL TINYINT
 transaction.hDeclares the Transaction class
 type_info.hDeclares classes that provide an interface between the SQL and C++ type systems
 uds_connection.hDeclares the UnixDomainSocketConnection class
 utility.hDeclares utility functions used within MySQL++
 vallist.hDeclares templates for holding lists of values
 wnp_connection.hDeclares the WindowsNamedPipeConnection class
mysql++-3.2.5/doc/html/refman/functions_func_w.html000755 000765 000024 00000006634 13515046515 023060 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Class Members - Functions
MySQL++  3.2.5
 

- w -

mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1UnixDomainSocketConnection.html000755 000765 000024 00000151030 13515046515 030056 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::UnixDomainSocketConnection Class Reference
MySQL++  3.2.5
mysqlpp::UnixDomainSocketConnection Class Reference

Specialization of Connection for Unix domain sockets. More...

#include <uds_connection.h>

Inheritance diagram for mysqlpp::UnixDomainSocketConnection:
Collaboration diagram for mysqlpp::UnixDomainSocketConnection:

Public Member Functions

 UnixDomainSocketConnection ()
 Create object without connecting it to the MySQL server.
 
 UnixDomainSocketConnection (const char *path, const char *db=0, const char *user=0, const char *password=0)
 Create object and connect to database server over Unix domain sockets in one step. More...
 
 UnixDomainSocketConnection (const UnixDomainSocketConnection &other)
 Establish a new connection using the same parameters as an existing connection. More...
 
 ~UnixDomainSocketConnection ()
 Destroy object.
 
bool connect (const char *path, const char *db=0, const char *user=0, const char *password=0)
 Connect to database after object is created. More...
 
- Public Member Functions inherited from mysqlpp::Connection
 Connection (bool te=true)
 Create object without connecting to the database server. More...
 
 Connection (const char *db, const char *server=0, const char *user=0, const char *password=0, unsigned int port=0)
 Create object and connect to database server in one step. More...
 
 Connection (const Connection &other)
 Establish a new connection using the same parameters as an existing connection. More...
 
virtual ~Connection ()
 Destroy object.
 
std::string client_version () const
 Get version of library underpinning the current database driver.
 
bool connected () const
 Returns true if connection was established successfully. More...
 
ulonglong count_rows (const std::string &table)
 Returns the number of rows in a table. More...
 
bool create_db (const std::string &db)
 Ask the database server to create a database. More...
 
void disconnect ()
 Drop the connection to the database server.
 
DBDriverdriver ()
 Returns a reference to the current database driver.
 
bool drop_db (const std::string &db)
 Asks the database server to drop (destroy) a database. More...
 
int errnum ()
 Return last error number associated with this connection.
 
const char * error () const
 Return error message for last error associated with this connection. More...
 
std::string ipc_info () const
 Get information about the IPC connection to the database server. More...
 
bool kill (unsigned long tid) const
 Kill a database server thread. More...
 
 operator private_bool_type () const
 Test whether any error has occurred within the object. More...
 
Connectionoperator= (const Connection &rhs)
 Copy an existing Connection object's state into this object.
 
bool ping ()
 "Pings" the database server More...
 
int protocol_version () const
 Returns version number of the protocol the database driver uses to communicate with the server.
 
Query query (const char *qstr=0)
 Return a new query object. More...
 
Query query (const std::string &qstr)
 Return a new query object. More...
 
bool select_db (const std::string &db)
 Change to a different database managed by the database server we are connected to. More...
 
std::string server_version () const
 Get the database server's version string.
 
bool set_option (Option *o)
 Sets a connection option. More...
 
bool shutdown ()
 Ask database server to shut down.
 
std::string server_status () const
 Returns information about database server's status.
 
unsigned long thread_id ()
 Returns the database server's thread ID for this connection. More...
 
- Public Member Functions inherited from mysqlpp::OptionalExceptions
 OptionalExceptions (bool e=true)
 Default constructor. More...
 
virtual ~OptionalExceptions ()
 Destroy object.
 
void enable_exceptions () const
 Enable exceptions from the object.
 
void disable_exceptions () const
 Disable exceptions from the object.
 
bool throw_exceptions () const
 Returns true if exceptions are enabled.
 

Static Public Member Functions

static bool is_socket (const char *path, std::string *error=0)
 Check that the given path names a Unix domain socket and that we have read-write permission for it. More...
 
- Static Public Member Functions inherited from mysqlpp::Connection
static bool thread_aware ()
 Returns true if both MySQL++ and database driver we're using were compiled with thread awareness.
 
static void thread_end ()
 Tells the underlying database driver that this thread is done using the library.
 
static bool thread_start ()
 Tells the underlying database driver that the current thread is now using its services. More...
 

Additional Inherited Members

- Protected Member Functions inherited from mysqlpp::Connection
void build_error_message (const char *core)
 Build an error message in the standard form used whenever one of the methods can't succeed because we're not connected to the database server.
 
void copy (const Connection &other)
 Establish a new connection as a copy of an existing one. More...
 
bool parse_ipc_method (const char *server, std::string &host, unsigned int &port, std::string &socket_name)
 Extract elements from the server parameter in formats suitable for passing to DBDriver::connect().
 
- Protected Member Functions inherited from mysqlpp::OptionalExceptions
void set_exceptions (bool e) const
 Sets the exception state to a particular value. More...
 
- Protected Attributes inherited from mysqlpp::Connection
std::string error_message_
 MySQL++ specific error, if any.
 

Detailed Description

Specialization of Connection for Unix domain sockets.

This class just simplifies the connection creation interface of Connection. It does not add new functionality.

Constructor & Destructor Documentation

◆ UnixDomainSocketConnection() [1/2]

mysqlpp::UnixDomainSocketConnection::UnixDomainSocketConnection ( const char *  path,
const char *  db = 0,
const char *  user = 0,
const char *  password = 0 
)
inline

Create object and connect to database server over Unix domain sockets in one step.

Parameters
pathfilesystem path to socket
dbname of database to use
useruser name to log in under, or 0 to use the user name the program is running under
passwordpassword to use when logging in

BEWARE: These parameters are not in the same order as those in the corresponding constructor for Connection. This is a feature, not a bug. :)

References connect().

◆ UnixDomainSocketConnection() [2/2]

mysqlpp::UnixDomainSocketConnection::UnixDomainSocketConnection ( const UnixDomainSocketConnection other)
inline

Establish a new connection using the same parameters as an existing connection.

Parameters
otherpre-existing connection to clone

Member Function Documentation

◆ connect()

bool mysqlpp::UnixDomainSocketConnection::connect ( const char *  path,
const char *  db = 0,
const char *  user = 0,
const char *  password = 0 
)

Connect to database after object is created.

It's better to use the connect-on-create constructor if you can. See its documentation for the meaning of these parameters.

If you call this method on an object that is already connected to a database server, the previous connection is dropped and a new connection is established.

Referenced by UnixDomainSocketConnection().

◆ is_socket()

bool mysqlpp::UnixDomainSocketConnection::is_socket ( const char *  path,
std::string *  error = 0 
)
static

Check that the given path names a Unix domain socket and that we have read-write permission for it.

Parameters
paththe filesystem path to the socket
erroron failure, reason is placed here; take default if you do not need a reason if it fails
Returns
false if address fails to pass sanity checks

Referenced by mysqlpp::Connection::parse_ipc_method().


The documentation for this class was generated from the following files:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1SetCharsetDirOption.html000755 000765 000024 00000030725 13515046515 026516 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::SetCharsetDirOption Class Reference
MySQL++  3.2.5
mysqlpp::SetCharsetDirOption Class Reference

Give path to charset definition files. More...

#include <options.h>

Inheritance diagram for mysqlpp::SetCharsetDirOption:
Collaboration diagram for mysqlpp::SetCharsetDirOption:

Additional Inherited Members

- Public Types inherited from mysqlpp::DataOption< T >
typedef T ArgType
 Alias for template param.
 
- Public Types inherited from mysqlpp::Option
enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 
- Public Member Functions inherited from mysqlpp::Option
virtual ~Option ()
 Destroy object.
 
virtual Error set (DBDriver *dbd)=0
 Apply option.
 
- Protected Member Functions inherited from mysqlpp::DataOption< T >
 DataOption (const T &arg)
 Construct object.
 
- Protected Attributes inherited from mysqlpp::DataOption< T >
arg_
 The argument value.
 

Detailed Description

Give path to charset definition files.


The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1ConnectionPool-members.html000755 000765 000024 00000017700 13515046515 027200 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::ConnectionPool Member List

This is the complete list of members for mysqlpp::ConnectionPool, including all inherited members.

clear(bool all=true)mysqlpp::ConnectionPoolprotected
ConnectionPool()mysqlpp::ConnectionPoolinline
create()=0mysqlpp::ConnectionPoolprotectedpure virtual
destroy(Connection *)=0mysqlpp::ConnectionPoolprotectedpure virtual
empty() constmysqlpp::ConnectionPoolinline
exchange(const Connection *pc)mysqlpp::ConnectionPoolvirtual
grab()mysqlpp::ConnectionPoolvirtual
max_idle_time()=0mysqlpp::ConnectionPoolprotectedpure virtual
release(const Connection *pc)mysqlpp::ConnectionPoolvirtual
remove(const Connection *pc)mysqlpp::ConnectionPool
safe_grab()mysqlpp::ConnectionPoolvirtual
shrink()mysqlpp::ConnectionPoolinline
size() constmysqlpp::ConnectionPoolinlineprotected
~ConnectionPool()mysqlpp::ConnectionPoolinlinevirtual
mysql++-3.2.5/doc/html/refman/structmysqlpp_1_1equal__list__b-members.html000755 000765 000024 00000013265 13515046515 027431 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::equal_list_b< Seq1, Seq2, Manip > Member List
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1ReadDefaultGroupOption.html000755 000765 000024 00000030711 13515046515 027202 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::ReadDefaultGroupOption Class Reference
MySQL++  3.2.5
mysqlpp::ReadDefaultGroupOption Class Reference

Override use of my.cnf. More...

#include <options.h>

Inheritance diagram for mysqlpp::ReadDefaultGroupOption:
Collaboration diagram for mysqlpp::ReadDefaultGroupOption:

Additional Inherited Members

- Public Types inherited from mysqlpp::DataOption< T >
typedef T ArgType
 Alias for template param.
 
- Public Types inherited from mysqlpp::Option
enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 
- Public Member Functions inherited from mysqlpp::Option
virtual ~Option ()
 Destroy object.
 
virtual Error set (DBDriver *dbd)=0
 Apply option.
 
- Protected Member Functions inherited from mysqlpp::DataOption< T >
 DataOption (const T &arg)
 Construct object.
 
- Protected Attributes inherited from mysqlpp::DataOption< T >
arg_
 The argument value.
 

Detailed Description

Override use of my.cnf.


The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1FoundRowsOption-members.html000755 000765 000024 00000015277 13515046515 027375 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::FoundRowsOption Member List

This is the complete list of members for mysqlpp::FoundRowsOption, including all inherited members.

arg_mysqlpp::DataOption< T >protected
ArgType typedefmysqlpp::DataOption< T >
DataOption(const T &arg)mysqlpp::DataOption< T >inlineprotected
err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
set(DBDriver *dbd)=0mysqlpp::Optionpure virtual
~Option()mysqlpp::Optioninlinevirtual
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1Transaction.html000755 000765 000024 00000053554 13515046515 025113 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::Transaction Class Reference
MySQL++  3.2.5
mysqlpp::Transaction Class Reference

Helper object for creating exception-safe SQL transactions. More...

#include <transaction.h>

Public Types

enum  IsolationLevel { read_uncommitted, read_committed, repeatable_read, serializable }
 Transaction isolation levels defined in SQL. More...
 
enum  IsolationScope { this_transaction, session, global }
 Isolation level scopes defined in SQL. More...
 

Public Member Functions

 Transaction (Connection &conn, bool consistent=false)
 Simple constructor. More...
 
 Transaction (Connection &conn, IsolationLevel level, IsolationScope scope=this_transaction, bool consistent=false)
 Constructor allowing custom transaction isolation level and scope. More...
 
 ~Transaction ()
 Destructor. More...
 
void commit ()
 Commits the transaction. More...
 
void rollback ()
 Rolls back the transaction. More...
 

Detailed Description

Helper object for creating exception-safe SQL transactions.

Member Enumeration Documentation

◆ IsolationLevel

Transaction isolation levels defined in SQL.

These values can be passed to one of the Transaction constructors to change the way the database engine protects transactions from other DB updates. These values are in order of increasing isolation, but decreasing performance.

Enumerator
read_uncommitted 

allow "dirty reads" from other transactions

read_committed 

only read rows committed by other transactions

repeatable_read 

other transactions do not affect repeated reads in this transaction

serializable 

this transaction prevents writes to any rows it accesses while it runs

◆ IsolationScope

Isolation level scopes defined in SQL.

These values are only used with one of the Transaction constructors, to select which transaction(s) our change to

Enumerator
this_transaction 

change level for this transaction only

session 

change level for all transactions in this session

global 

change level for all transactions on the DB server

Constructor & Destructor Documentation

◆ Transaction() [1/2]

Transaction::Transaction ( Connection conn,
bool  consistent = false 
)

Simple constructor.

Parameters
connThe connection we use to manage the transaction set
consistentWhether to use "consistent snapshots" during the transaction. See the documentation for "START TRANSACTION" in the MySQL manual for more on this.

References mysqlpp::Query::execute(), and mysqlpp::Connection::query().

◆ Transaction() [2/2]

Transaction::Transaction ( Connection conn,
IsolationLevel  level,
IsolationScope  scope = this_transaction,
bool  consistent = false 
)

Constructor allowing custom transaction isolation level and scope.

Parameters
connThe connection we use to manage the transaction set
levelIsolation level to use for this transaction
scopeSelects the scope of the isolation level change
consistentWhether to use "consistent snapshots" during the transaction. See the documentation for "START TRANSACTION" in the MySQL manual for more on this.

References global, mysqlpp::Connection::query(), read_committed, read_uncommitted, repeatable_read, serializable, and session.

◆ ~Transaction()

Transaction::~Transaction ( )

Destructor.

If the transaction has not been committed or rolled back by the time the destructor is called, it is rolled back. This is the right thing because one way this can happen is if the object is being destroyed as the stack is unwound to handle an exception. In that instance, you certainly want to roll back the transaction.

References rollback().

Member Function Documentation

◆ commit()

void Transaction::commit ( )

Commits the transaction.

This commits all updates to the database using the connection we were created with since this object was created. This is a no-op if the table isn't stored using a transaction-aware storage engine. See CREATE TABLE in the MySQL manual for details.

References mysqlpp::Query::execute(), and mysqlpp::Connection::query().

◆ rollback()

void Transaction::rollback ( )

Rolls back the transaction.

This abandons all SQL statements made on the connection since this object was created. This only works on tables stored using a transaction-aware storage engine. See CREATE TABLE in the MySQL manual for details.

References mysqlpp::Query::execute(), and mysqlpp::Connection::query().

Referenced by ~Transaction().


The documentation for this class was generated from the following files:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1SQLQueryParms__coll__graph.png000644 000765 000024 00000015343 13515046516 027616 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÚmÇÒsRGB®ÎéIDATxí”ÅÓÀ›¨’%0QIFDÄ€‚JT0¢(H0‹˜PyL€`%ƒ$%) (I@” A2’“H´¿þ•_ss³{ ìÝÍézoofº{º«+WÍì^m@9ppÈL ÌÈ™™³»¹þ¥€S4' ŽY@§hY@d·„£€S4'ŽY@ÜÁ56lØ ~ýõ×`³»vpHÕªUSG}tšÑéÍö–/_Þžº££€£@øûï¿ÕÒ¥KCGÆT´¢E‹†ÞàÂ)°cÇŽðÓêr´˜¤qŽÉ£€S´äÑÒÍä(“NÑb’Æu8 $NÑ’GK7“£@L dª¢íß¿_mÞ¼9æâß}÷ºöÚkcögfGF¸%{íß~ûMÕ¯__•(QBuÖYê‘GQì?ï¿ÿ¾ºæškÔ 'œ N?ýtuóÍ7« &xÃvíÚ%4ûú믽6N/^,íÐ3ìóÔSO¥Ÿì‹­[·Êº=ôP†S'‹ïYÍà 7g@¦*ÚW_}¥Š)¢öíÛŠÂÆÕ÷ßÚ—Ùá–Ìõyo»Aƒ¢ ÷ß¿j×®š3gŽºòÊ+Õ7ß|ã-õðë{ï½W(P@=û쳊±üñ‡ºúê«Õ;ï¼#ã å˜1cÔªU«¼û8á¹Ígœá}˜—g¢¶­xñâiÆ'ûâ‹/¾¼Þ~ûmµbÅŠ¸Ó'‹ïYÉøJ¤“·÷ý°~ýz=qâDSBçkÖ¬ÑcÇŽÕóLA¿÷Þ{|3@/Z´H8p@ÚwïÞ­gΜ© ±õÀuþüù¥?ôíÝ»W®ÿùçm¬·Üg„MÏèãdåÊ•zË–-^›a®6J«·mÛæµÙî5j”6‚'M±p3åYýí·ßÊþ·oßno×{öìÑË–-“kö²víZ¯/xÞ|ü`Bè`¼Ž× =N9å}×]wIÛ¸qãdÌ+¯¼âᄵ¢écŽ9F¯[·NÏ!ãŒçK3.x‘7o^ýÌ3ÏxÍË—/×›6mò®9±4„fÌ íøá½páÂ4ã¸`ÌäÉ“5´ ƒªU«ê:uêè;wnÝ«W/mÂ3gNŠ\¹r‰ šAwÜqÒ–#G}þùç§Q´Â… ëV­Z JVð|óð\›pÊC¡=zôÂß~ûí2'm¬õÒK/ycŸxâ ÍZGu”àÓ¨Q#ÍÜAÜ`ò‰'ž(øï ÍsDÙÍž=[æoذ¡ÌõÉ'ŸxóÛ fÂ==cÆ Û,Ç?þXîÇðøÁ¼£ù7Ö&¬ÔJìú={ö[·lÙROŸ>Ýß|P癪h_~ù¥lŒÍ£É:uKÅ\cÁz÷î-kN›6M,$DG˜0Ÿþ¹ôauü¸a9Ë”)£ëÕ«'VkÎñ80Ä :Ì€ùx>€õðVŒ…±¥J•ÒO>ùd:¯Š5å^p)Y²¤nÞ¼¹x{¼ºŒŽÉ­ìeš#¸c( í¡z4zŠqùóÏ?en”Å Ü kõíÛW®‡ ¦ñÂÐÚ䔲/<ËI'¤;tèàáŸjèR2—ߨÄãû믿®1°Ì Àë‚ jÐ*ZÓ¦M%ºA&0†Íš5“±~ÒP½zu]¹re™‹hèÆoÔ§žzªx/ ¼Ø+U>úè#1bL¥J•ô[o½•&b Ž»ÎTEÃà1š4i¢M^ ®ßºN?!g Daž_ѧmõêÕ"$~ø¡ ©U«–69œ_xá…b!lrmrݾ}{±Ò2ðÿÿ LX>?nX=ŒE¶`=*Jf{Â0‡"ÒÁ<Âf„4Àø~ýúé{î¹G—-[VÖãÞÈ-gžy¦xµ°û1ZxÙÎ;²¢¡P(Ö»ï¾+K\uÕUú†nsðÇÚûá´ÓNÓ&—Ô/¿ü²àŠq²46E]±bEŽr™üO·hÑB ß2bctà-ßÁkÉ’%b|GŒ¡mtB„`Í*!óal0ЀŸ‡¬ á‹Åe¡ûiGáCYÕ®][ÖcM>&wSFÉ” q”Re<‚Œ5!¡ºï¾û”ñzi–5a\…ðÚ"ȹ )½6{òàƒJåÐXJeBB™sÊ”)¶;ÝÑ(½àãï0J%•HÊI3ÈY³f)SŒð†Qy4ÌVÜoò§tsx<1Š£Œ@*^KeÓ(—w'¼³`¬¾2©Œ(ª•&tT<ž°ô5žFpb¼1–ÊäEÊx%ïóé§Ÿ*c´¤¢šßM­Œ¡TƳɷFLHjÑðŽ~Ü x9L(êá _}õUyœ뚊)ôæŒQjy$c¢€XÃojêÁC>øà‰Ù©V:ûæ  L4m'¶Ç à!µ¸ö{4býAƒ JxóLFr¨Fáú±|Œ³@N„%# yî¹çdM*TãÇ—óG}T,$¡—a¼Äÿ~ÜÈjÖ¬©!Øœxý¢‹.’e‚Í®M.‡W #,6ÌÑ$ò6‡³ãl1„ –šðOING! `„+$ ©y ÜË• ¡-Xf}Ù‡ýø+³äUþª#kÒSpÀ›êYÀ£ÿgŸ}&4lÛ¶­ÐÍá…#¼8²ÁZð°’ï¬2â ð,¤Ð"ß¡Ý%—\"û§¢k #„ç6tij’Ÿã‘Öür`.Âjã½½0úbRD1Ï í<þ#ÆÎŠFžª‰ÜƒY@ÑX%§Üü•[RÊ®Ž(ù ŠRÁ<”#ï\dšÃ;è„b’³ZE#LemŒ,y%sA¢`ðØâ Í0¸¼‰šÓÏþQhBÐC…LU4‹„x;X ¾ÆÓX@1D[A´í‡{ä9Dõ[u;'Bµ B7,>¹9QpÁ{c]SÀÓ…Ï¢Ø;o~¼{è^x”xж^XÞÊ2l?ŠF¯@ô†?¸S4  Äã;ëbÌìºO<¿U4ú1Ô¶bê_?ÈC»Œ牂?Lôžà¸,Q´à¢î:Z LOXOèHùÞVÑümQ8÷+ZðɇxŠó‹ŸÆý:H! ðʯq™|UQXòƒ Ó¨¯ïñ³&<jO´Ô—‰{¥úcÞ"ð7»sGG (`RE¥3ä7Cܨf@;×í( ös´¤`á&I˜û÷ÿûL0áÜÀHPÀ)Z$Ø8Çÿl¾n³>ñÜÈHP f1„7D½{O5_-lÞ*9;zÈ9ŒbR ]1Ä<ËP¦Lóב}زe—ù²èæÕ²BæK–­³·r\ P-5àýcf¤óhæ å~ÓÑO£èœ5™7yÔÚµÛÌ{¥»Õy界r“¸H£vqGºÎl§ÀÀÓå™Rž<¹Ô!³²‡@âpŠ–8­²uäêÕ[Í3šåæ›ÚüË5hÐ ñnÙŠ”[œ¢EŸGjðà™ŠHvîÜ£&N\lvפ€S´2%ˆÒ€ÓB=WîÜ9¥(ﮣG§hÑãIŒfÏ^¡¨8†9Û7ßÌ3_qÙÖíÚ"D§hbF*÷8p çDç ½9—.]ªæÏŸ¯N=õTù+VL;V5oÞÜ<š8òžMd›GÛ°aƒ*P €y&¤LÁ‚çÍ›WmÚ´Ió´ÓN“þ½{÷*„ËN?`ÛN8á•;wn¹Æ.\X•)SFåÈ‘ÃÖáÃü;wc=ÖëçdË–-*þüêï¿ÿ\XÛŽù믿G¼‚sÜqÇ©’%Kz÷#ø|ü¸åÌ™Sð¢¯X±B}úé§ž¯[·®<›™0a‚(Ô‡~(cðz¥J•òæ½îºë%æwÞyGá}3‚DçÙ¾}»Ú·oŸ*R¤ˆL îЧhÑ¢*W®\ÒÆžQpè‹‚X`t‚gì zÇâ ÷ÐÿÀØÛåž»îºK3FÝ~ûíÒþÏ?ÿ¨Å‹ËÚ(%´vìØ!xBïß~ûMá 7nܘÌÈærK.올:f›¢µnÝZ˜»hÑ"µÿ~a Â5`ÀÙ{¾|ùÔ›o¾© *¤n½õV±úõë×—>õÆoÈX¶OŸ> B§jÕª)ÞRAÙÇ>ùä9g>„†uêÔ) }5j$Úa(÷¡¼=ö˜ºì²ËÔ믿®ÀeDÁõÚk¯õžÒÿý÷ß«¡C‡Êœ¼MP«V-Õ¦MgΜé)‚d‡¹Ø ÊçW2î!|d.”¡‹3Ï| ûyûí·eÊuëÖ©fÍš©Þ½{«3Î8C¼N÷îÝeŸ(á…^(^£Ø¶m[U¢D y1:Κ5+&_Âð=餓Ì[-G©­[·J÷ܹsÕ“O>)t¥c_O?ýtÕ¿õÃ?(¥þúë¯U¢2Ãý„Ù±ä" ·ÌnËÖБРÂba*ÂÚ£GE|@Nœ8Q”‘Š7O,pN~…—˜ä2„^ÌõÓO?‰CiP²;î¸C5JŸü'€ËgŸ}¦FŒ!y†b0ú‘Gfó@~ôèÑjòäÉÒG˜‡BXàáªW¯.Þïµ×^S(3`øðážçýóÏ?Åj—-[ÖÞžæÈ› Àš5kÒ´/’5!îË/¿,Š?lØ0õÑGI¨ -`4ðJ¢X|±y%ôëó!lìÚµ«Ð”< @¹+T¨ ü†eL4‚a±@~K$Ò³gO/bHDf0¸±äÂÎÕÇlóhl´víÚª\¹r²g,8¼ʅµ‡àãUP@Þ©Ä+a yP$B=AÔ«W/±ž·Ýv›Ê“'$á~‘‰}È¡l˜„…ÇKÙüÀKx3æ!Ç»øâ‹Åëù¦QwÞy§wY°`A&”åo‚ ²go6¶Ç°1´Yƒp¸ó°g¼ã%—\"á;sÃrCâå1@,¾H§ùC¨×¥K{)¡h‹-<ž?þøãA¬ZµJŒ‰ íí ÇsŒêСƒðѶ%"3ñäÂΓÕÇlU4›'°i”ƒ°ÄÂE.ØA@Ñ $•;â‘ß¼úê«â*V¬(V™„›P%³€"Ç‚âÅ‹{]äŠ œ|òÉr´è·}¶-ìHî ŽT6mu“0á{÷Ýwa€' îÀûbUØDæ ÎAcÏ<ÿüó¶IŽ3 ä¯bñÅö“Ë~üñÇö2Ý‘ÈÏJ—.®Ðþ5ýˆÌÄ“ ›‡úçÌŠólU´Œ,µ%ùA5$|ä,.ÖŽ" aá >%ðçž{NÂHñ Ø)äÈX?£üX_ $ЀULßîÝ»Õï¿ÿ.¡«ëˆv’+Z ºüòË%‡`„‡„“ 4‚àcéÉÛ¡kÖ¬©ðŒñà`æ~x- þpš!%d´Þ‘Çxš0ˆÅ—°±Á6 JV¯^=uÿý÷‹¡EÁmo¯‘™xráóíœYqÌÖí`6HÈ@òMvõÕWË­ÅK/½$‰÷#ס  Œ„iñž={$ÿ‹eñ™Œü¡#\$‘>ñÄ%)§o2nÜ8µmÛ6•¢ @1†\ÃùĤI“äãÀ|ÕTðÿñãÇ{ÏÑ¥ð$O‰)|`ÅŸyæ)ÜsÏ=vj9ÆM:Õû0èú¨ä½²HÈŸ0¾„ m¢ÐA„wS¦L‘¼×oBoJ 1ž\$p{¦ É6´LÁëànyЋeÇzS¨H’ƒ‘ñìChÂr |÷¬‡bëù×d.ò+˜Oð©§žòú ©€¢(1ewªnÊAu̾íM1…œ‰° ƒ€r÷ë×ÏKò¹ÿüóÏWíÛ·—û1T!»uë&U=i4X«ÿÖ[o¥ÁÅŸó0–<•ÚDçÁ›bTPdɳ=€P›¢9ä Aƒ¤ zRü‚4£-Œ/´~úþÛòß_ŒçŠ„Ï„þ¶›nºI}ñÅÂKB¼àý]ÛÙãÉ…“ÕǤ}ñ³N:âþ3ëk2(@Ó¦MÕõ×_ï=ƒ±ÄÂÓ,_¾\ņ<þ>ú‰÷)@ËûXåÎ;«ªU«J8ê/µΠ88kwøó>»N¼#Ï¥HøròÌ0À³ñÁ(°÷ 2DÊÚ“[d4o-‚9x/{Eü¹kÎñø6>Øox¶gŸMâIÁ ƒz¸O.2šÃÙ¤I©”f46þä}ñ3Åyáe{wà 7¤›‡Šã¹çž›®úìÃçоF¼ Ÿ0°JÖ—Qym©>ÞX<®ßë"|¼5r°Ñ{jµ†' ©µG·Gl§€S´lgCàH €S´#ËnÙN¤æh MySQL++ Reference Manual MySQL++: sql_buffer.h Source File
MySQL++  3.2.5
sql_buffer.h
Go to the documentation of this file.
1 
4 /***********************************************************************
5  Copyright (c) 2007-2008 by Educational Technology Resources, Inc. and
6  (c) 2007 by Jonathan Wakely. Others may also hold copyrights on
7  code in this file. See the CREDITS.txt file in the top directory
8  of the distribution for details.
9 
10  This file is part of MySQL++.
11 
12  MySQL++ is free software; you can redistribute it and/or modify it
13  under the terms of the GNU Lesser General Public License as published
14  by the Free Software Foundation; either version 2.1 of the License, or
15  (at your option) any later version.
16 
17  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
18  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
19  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
20  License for more details.
21 
22  You should have received a copy of the GNU Lesser General Public
23  License along with MySQL++; if not, write to the Free Software
24  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
25  USA
26 ***********************************************************************/
27 
28 #if !defined(MYSQLPP_SQL_BUFFER_H)
29 #define MYSQLPP_SQL_BUFFER_H
30 
31 #include "refcounted.h"
32 #include "type_info.h"
33 
34 #include <string>
35 
36 namespace mysqlpp {
37 
40 
41 class SQLBuffer
42 {
43 public:
45  typedef size_t size_type;
46 
55  bool is_null) : data_(), length_(), type_(type),
56  is_null_(is_null)
57  { replace_buffer(data, length); }
58 
60  SQLBuffer(const std::string& s, mysql_type_info type, bool is_null) :
61  data_(), length_(), type_(type), is_null_(is_null)
62  {
63  replace_buffer(s.data(), static_cast<size_type>(s.length()));
64  }
65 
67  ~SQLBuffer() { delete[] data_; }
68 
70  SQLBuffer& assign(const char* data, size_type length,
72  bool is_null = false);
73 
75  SQLBuffer& assign(const std::string& s,
77  bool is_null = false);
78 
80  const char* data() const { return data_; }
81 
84  bool escape_q() const { return type_.escape_q(); }
85 
92  size_type length() const { return length_; }
93 
95  bool is_string() { return type_ == mysql_type_info::string_type; }
96 
103  bool is_null() const { return is_null_; }
104 
107  bool quote_q() const;
108 
110  void set_null() { is_null_ = true; }
111 
113  const mysql_type_info& type() const { return type_; }
114 
115 private:
116  SQLBuffer(const SQLBuffer&);
117  SQLBuffer& operator=(const SQLBuffer&);
118 
120  void init(const char* pd, size_type len, mysql_type_info type,
121  bool is_null);
123  void replace_buffer(const char* pd, size_type length);
124 
125  const char* data_;
126  size_type length_;
127  mysql_type_info type_;
128  bool is_null_;
129 };
130 
131 
137 
138 } // end namespace mysqlpp
139 
140 #endif // !defined(MYSQLPP_SQL_BUFFER_H)
141 
bool is_string()
Returns true if type of buffer's contents is string.
Definition: sql_buffer.h:95
bool is_null() const
Return true if buffer's contents represent a SQL null.
Definition: sql_buffer.h:103
Declares the RefCountedPointer template.
Holds SQL data in string form plus type information for use in converting the string to compatible C+...
Definition: sql_buffer.h:41
SQL field type information.
Definition: type_info.h:148
static const enum_field_types string_type
The internal constant we use for our string type.
Definition: type_info.h:270
SQLBuffer & assign(const char *data, size_type length, mysql_type_info type=mysql_type_info::string_type, bool is_null=false)
Replace contents of buffer with copy of given C string.
Definition: sql_buffer.cpp:37
SQLBuffer(const std::string &s, mysql_type_info type, bool is_null)
Initialize object as a copy of a C++ string object.
Definition: sql_buffer.h:60
const char * data() const
Return pointer to raw data buffer.
Definition: sql_buffer.h:80
Declares classes that provide an interface between the SQL and C++ type systems.
bool escape_q() const
Returns true if the SQL type is of a type that needs to be escaped.
Definition: type_info.cpp:283
size_t size_type
Type of length values.
Definition: sql_buffer.h:45
const mysql_type_info & type() const
Return the SQL type of the data held in the buffer.
Definition: sql_buffer.h:113
~SQLBuffer()
Destructor.
Definition: sql_buffer.h:67
bool quote_q() const
Returns true if we were initialized with a data type that must be quoted when used in a SQL query.
Definition: sql_buffer.cpp:56
SQLBuffer(const char *data, size_type length, mysql_type_info type, bool is_null)
Initialize object as a copy of a raw data buffer.
Definition: sql_buffer.h:54
size_type length() const
Return number of bytes in data buffer.
Definition: sql_buffer.h:92
bool escape_q() const
Returns true if we were initialized with a data type that must be escaped when used in a SQL query.
Definition: sql_buffer.h:84
void set_null()
Sets the internal SQL null flag.
Definition: sql_buffer.h:110
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1WindowsNamedPipeConnection.html000755 000765 000024 00000145622 13515046515 030061 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::WindowsNamedPipeConnection Class Reference
MySQL++  3.2.5
mysqlpp::WindowsNamedPipeConnection Class Reference

Specialization of Connection for Windows named pipes. More...

#include <wnp_connection.h>

Inheritance diagram for mysqlpp::WindowsNamedPipeConnection:
Collaboration diagram for mysqlpp::WindowsNamedPipeConnection:

Public Member Functions

 WindowsNamedPipeConnection ()
 Create object without connecting it to the MySQL server.
 
 WindowsNamedPipeConnection (const char *db, const char *user=0, const char *password=0)
 Create object and connect to database server over Windows named pipes in one step. More...
 
 WindowsNamedPipeConnection (const WindowsNamedPipeConnection &other)
 Establish a new connection using the same parameters as an existing connection. More...
 
 ~WindowsNamedPipeConnection ()
 Destroy object.
 
bool connect (const char *db=0, const char *user=0, const char *password=0)
 Connect to database after object is created. More...
 
- Public Member Functions inherited from mysqlpp::Connection
 Connection (bool te=true)
 Create object without connecting to the database server. More...
 
 Connection (const char *db, const char *server=0, const char *user=0, const char *password=0, unsigned int port=0)
 Create object and connect to database server in one step. More...
 
 Connection (const Connection &other)
 Establish a new connection using the same parameters as an existing connection. More...
 
virtual ~Connection ()
 Destroy object.
 
std::string client_version () const
 Get version of library underpinning the current database driver.
 
bool connected () const
 Returns true if connection was established successfully. More...
 
ulonglong count_rows (const std::string &table)
 Returns the number of rows in a table. More...
 
bool create_db (const std::string &db)
 Ask the database server to create a database. More...
 
void disconnect ()
 Drop the connection to the database server.
 
DBDriverdriver ()
 Returns a reference to the current database driver.
 
bool drop_db (const std::string &db)
 Asks the database server to drop (destroy) a database. More...
 
int errnum ()
 Return last error number associated with this connection.
 
const char * error () const
 Return error message for last error associated with this connection. More...
 
std::string ipc_info () const
 Get information about the IPC connection to the database server. More...
 
bool kill (unsigned long tid) const
 Kill a database server thread. More...
 
 operator private_bool_type () const
 Test whether any error has occurred within the object. More...
 
Connectionoperator= (const Connection &rhs)
 Copy an existing Connection object's state into this object.
 
bool ping ()
 "Pings" the database server More...
 
int protocol_version () const
 Returns version number of the protocol the database driver uses to communicate with the server.
 
Query query (const char *qstr=0)
 Return a new query object. More...
 
Query query (const std::string &qstr)
 Return a new query object. More...
 
bool select_db (const std::string &db)
 Change to a different database managed by the database server we are connected to. More...
 
std::string server_version () const
 Get the database server's version string.
 
bool set_option (Option *o)
 Sets a connection option. More...
 
bool shutdown ()
 Ask database server to shut down.
 
std::string server_status () const
 Returns information about database server's status.
 
unsigned long thread_id ()
 Returns the database server's thread ID for this connection. More...
 
- Public Member Functions inherited from mysqlpp::OptionalExceptions
 OptionalExceptions (bool e=true)
 Default constructor. More...
 
virtual ~OptionalExceptions ()
 Destroy object.
 
void enable_exceptions () const
 Enable exceptions from the object.
 
void disable_exceptions () const
 Disable exceptions from the object.
 
bool throw_exceptions () const
 Returns true if exceptions are enabled.
 

Static Public Member Functions

static bool is_wnp (const char *server)
 Check that given string denotes a Windows named pipe connection to MySQL. More...
 
- Static Public Member Functions inherited from mysqlpp::Connection
static bool thread_aware ()
 Returns true if both MySQL++ and database driver we're using were compiled with thread awareness.
 
static void thread_end ()
 Tells the underlying database driver that this thread is done using the library.
 
static bool thread_start ()
 Tells the underlying database driver that the current thread is now using its services. More...
 

Additional Inherited Members

- Protected Member Functions inherited from mysqlpp::Connection
void build_error_message (const char *core)
 Build an error message in the standard form used whenever one of the methods can't succeed because we're not connected to the database server.
 
void copy (const Connection &other)
 Establish a new connection as a copy of an existing one. More...
 
bool parse_ipc_method (const char *server, std::string &host, unsigned int &port, std::string &socket_name)
 Extract elements from the server parameter in formats suitable for passing to DBDriver::connect().
 
- Protected Member Functions inherited from mysqlpp::OptionalExceptions
void set_exceptions (bool e) const
 Sets the exception state to a particular value. More...
 
- Protected Attributes inherited from mysqlpp::Connection
std::string error_message_
 MySQL++ specific error, if any.
 

Detailed Description

Specialization of Connection for Windows named pipes.

This class just simplifies the connection creation interface of Connection. It does not add new functionality.

Constructor & Destructor Documentation

◆ WindowsNamedPipeConnection() [1/2]

mysqlpp::WindowsNamedPipeConnection::WindowsNamedPipeConnection ( const char *  db,
const char *  user = 0,
const char *  password = 0 
)
inline

Create object and connect to database server over Windows named pipes in one step.

Parameters
dbname of database to use
useruser name to log in under, or 0 to use the user name the program is running under
passwordpassword to use when logging in

◆ WindowsNamedPipeConnection() [2/2]

mysqlpp::WindowsNamedPipeConnection::WindowsNamedPipeConnection ( const WindowsNamedPipeConnection other)
inline

Establish a new connection using the same parameters as an existing connection.

Parameters
otherpre-existing connection to clone

Member Function Documentation

◆ connect()

bool mysqlpp::WindowsNamedPipeConnection::connect ( const char *  db = 0,
const char *  user = 0,
const char *  password = 0 
)

Connect to database after object is created.

It's better to use the connect-on-create constructor if you can. See its documentation for the meaning of these parameters.

If you call this method on an object that is already connected to a database server, the previous connection is dropped and a new connection is established.

◆ is_wnp()

bool mysqlpp::WindowsNamedPipeConnection::is_wnp ( const char *  server)
static

Check that given string denotes a Windows named pipe connection to MySQL.

Parameters
serverthe server address
Returns
false if server address does not denote a Windows named pipe connection, or we are not running on Windows

Referenced by mysqlpp::Connection::parse_ipc_method().


The documentation for this class was generated from the following files:
mysql++-3.2.5/doc/html/refman/tab_a.png000644 000765 000024 00000000216 13515046516 020361 0ustar00tangentstaff000000 000000 ‰PNG  IHDR$ÇÇ[UIDATxíK €0C'o¤(Šˆ[Žà%Üxÿ#Ù©­ç ùÁöó¦W¦e# 3t I 3+¼øEã~\D½9¯Ûàè’wM·¿öÿ}Yõ_êA4Yžã}IEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1WriteTimeoutOption-members.html000755 000765 000024 00000015316 13515046515 030102 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::WriteTimeoutOption Member List

This is the complete list of members for mysqlpp::WriteTimeoutOption, including all inherited members.

arg_mysqlpp::DataOption< T >protected
ArgType typedefmysqlpp::DataOption< T >
DataOption(const T &arg)mysqlpp::DataOption< T >inlineprotected
err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
set(DBDriver *dbd)=0mysqlpp::Optionpure virtual
~Option()mysqlpp::Optioninlinevirtual
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1Exception__inherit__graph.png000644 000765 000024 00000253130 13515046516 027573 0ustar00tangentstaff000000 000000 ‰PNG  IHDR¥€;5ÁsRGB®Îé@IDATxì]¼TÅ÷?´Ò©4‚(H#-%)-HIw Š?i¤CêÑÝHwIww7ÜÿùÿwÙ÷x±»oûù|öí½wfΜùΜ{j"\H‹" (Š€" (.D ² i+iE@PE@P8ô‡ (Š€" (.G@—C¬(Š€" (Š€ úPE@P—#Õå#芀" (!"0aBºsçNˆõZ¡x1cƤG…‹8ŸvVE ü4iÒ„J–,~BJApëׯ§‰'†›² á†P (Š€">ræÌIÕ«Wí­¸Ç;EàP-’UE@P7¨Àñ ½RE@P! ‡‹€U²Š€" (Š€"ð8Þ`¡WŠ€" (Š€"à"Tàp°JVPCàìÙ³T¦Lº|ù²K§Ö¥KcáS±bEêܹ3]¼xÑáq‹+F»ví²ôÇõW_}E©R¥¢÷Þ{ .LË—/·Ô{ûÅøñã©mÛ¶ÞÎf þTà‡Þ(Š€" „„À½{÷dSFÔ‚+˶mÛ ¢wðI’$ ;–òäÉC/_¾thè 6Ð7¤ï‚ ¨`Á‚téÒ%‚pÓ±cGzñâ…7³fÍrˆ¾»;={öŒžµ<Â<°é›%kÖ¬Ô§Oùàm¾wïÞÂ'Æ1 øÜ³gðŠk낃Ð?N'Nœ°~,c¶iÓF„à‡ë~ø6oÞLŸ~ú)ýøã–ö&K—. „%x&¨?uêýóÏ?²&èxóæÍ·41HìáÆ,÷ïß—µ;wîœùH¾ÑîêÕ«B¼™‡¹·Nõë×§þýû[ú;«¥³».p<½E@PÏ AcôèÑ6Î&#þüFôèÑ Þ'Œøñãü†nDŠIîãÆkìß¿ß6l˜9rdƒ70 íâÅ‹E‹5^½ze”.]Úˆ-šÁ$¨Q£¬Av,”Ÿþ¹ÐBÿ|ùòÉ5oºÆ¾}ûäš7q# @®Ùaáåã?6XÈ:à¯@F”(Q,ãÌ;×ÂKÓ¦M Ö\XîCË–-å¾P¡BF5,u¸èÚµ«ðÉ‚Œ<߸q£‘(Q"#FŒò‰/žÌ•,ÜFÀŸÜ¹s[æÀf¹^µj•бþsòäIcáÂ…oÞpVÀ¼á»[·nÒœ…¡Q©R%™ÆÀ\XÀ1zöì)óE³kà„2eÊÁØ£_©R¥ ¥î§Ÿ~2²dÉbGÔ±&)ÄušçÊ•Kú9Ê«t¶á'ýžmhjÕpðªjQEÀ—8sæ ÁDpäÈ11Œ5JÞСqà ž`¨Y³&±BóæÍ“©Áœ€Œ‘uêÔ¡9sæÐŠ+èôéÓ¢yèÔ©õêÕKÞ¨¡Iø÷ßEó7ñtéÒ… MŠ)D«M´,XÚƒOh uùòË/‰… ‹&€7aj×®¥-ü¬³­BkP­Z5ªZµªh#H­Zµó :ahD#>3gÎL}ûöz&L9`îçÏŸ'ðhSã JÐòá‡R… 7à|Y!ÞÐéÏ?ÿm ´5f† ¬´¯nݺ²&0Û  ~Íš5Ô AÁ¢Q£F„̲xœY8º&ÍC‡QŽ9h÷îÝ´hÑ¢×ÉloGyµ¦á–ëPÅ­TE@p)Žh8¾ûî; OÙ²e3Ø©Òr7æo¾ùFîy“7¾øâ ¹3fŒhð6½sçNш°Pb¬\¹Òà32 öv©S§6ðÜ,¼ÊÛvHÞ4ͦÆ÷ßo¤L™Rî¡áøùçŸ-u¼ ­[·Zž…t GÆŒE«ÍFóæÍO>ùĈ'ŽqðàAéÆÂŒÁ& cÇŽÆÌ™3¥žý2¤®H‘" ð€…ˆ.×,œIÛþ@“Ô°aÃ@Õ|î-„©á`ÇSK=xnܸ±Üãº\¹rr íU¬X± 6 ±Yh1€>Ð’°)GÚ‚6æÍJhëd­á¯2PTÃáqLQEÀûH–,™…)VÍÓG}d¹‡Vƒ÷¹¯]»¶¼}C»1{öly{gÓ±*žFŽI¼y (¢5€?úÁ× oÞ¼z,€X®ƒ»H›6­å1¢=LÇL<´®ƒã' |;l),HQ¿~ýäóÇÐÞ½{…OhPØÃ|Íòî»ï›ªä¶^½zZp²eaHÒÖÇŽ›LŸ hA!ƒ¢eX 1ÉPúôé ´PBZ'Kc¾€ïFxxµ¦åêk5©¸a¥¯(Š€“€PaK©\¹2½óÎ;4nÜ81§`£Cá7gq„ú!®ì;!æ8¤&NœXÌ&}˜]B+Ö!²p¼L“&¥¹u„ëzKC.XcBì¯!Ž£ZX@-Z´skMÄì2ìBª L™Å:¦Ђ#hЉüÀɨà8kœ”zìØ±@ü³_‡YèçâÀ´…Èö5¡o¿ýVê!(bl˜jàЋûˆCl ÿÒ:Y;ƒ‡ððܸ®zÐ4¡fÐ-Y²„ØôBË–-ÚAÿ„¶NÖmÃë5—_‡aºÑjE@P"`¯|,† báÖ>ˆˆàMÙRÏ›™ø ´oßÞò >ˆšà Æ` ˆÁ¦ƒ2¥Q-fd êi‚oøp ú×ÖQ*f[Dº°Ã¥Á!»B>Ÿ}ö™%Š‘êiá¡Y³f –û Q*Çü€ *–HtâüƒèÖšX¢X8ÄÕ€çì°ô‡?›4dèËá·ÒߌÁ8ˆragSTKA4 |BP‡1 Ãá¹Rgúp°Fèÿ[Mbíó¼Ð—:-mpÁ¾BËœ;ÊŠêàÃÁf\J mØÑW戆áåõ¿ÑBþë,ŽH‚'®EPEÀ°#"ýòË/İKF‡¹Ã\E;)S¦@c òy ¹–µyÛ4ðð?€ Y?Í ´'ÈH´±öi€¶„7**[¶¬˜A‚ŽmÒ Ï7¢bðÉ!ƒÖþàšhD`±ö%±¾0“@ß k Ð8À¤ ;­Z|+¬i8r¨ð¼BâÍšnHëdÝÆU¼bŒI“&‰Ù f¥ð”¨áé¬}E@P¼˜F" A!¸ ?¸g˜ |DÌpX[6³mpHÀ¼€+ çá |Ìb:¦âÂBeC+FX bà€PYgΕÈ17,ú!­“u?Wñj=Fx¯Õ‡#¼jE@P¼øM`³BžG œ9јø€XÓÀFÏæN¬Ÿ›×¨³ÌçúqP GÄ]{¹" ø9œ4Ü3D” Òl-8‹æš ’aiQ¬P ‡5z­(Š€" (.A@—ÀªDE@PEÀ8¬ÑÐkE@PE@p ëX•¨" (¶!€°SKn]"EŠÊ¡šY9[e$)ŸHÚ†Ó\§óãëÔÿPý%(Š€"à&öí;OmÛNã£ÉP×®å©Nü|æG$7®Ã(žE@5žÅ_GW€ÀË—¯iذ•ôÛo«ùäÖô4kVKJ–Ì5šE8uŠ>Š€j8|tá”mE@ð Nž¼N­[O¥“'¯ÑO?U  úãÊ¥"àdTÃád@•œ" (&+V¢6m¦ÑG½O+W~ÇG¾'1«ô[ˆphjó·ä:aE@pC‡®¤† 'P¥JŸQ@@6ܺŽáÕ¨†Ã«—G™S_CàñãçâŠüýûW£ºu?÷µ)(¿Š€KPÃ%°*QE@ˆˆ y×7ߌá$^èï¿[j¸kDüèœCD@Ž¡Ñ E@PlGàìÙ›T³æhŠ= -[Ö‘R¤Ð$^¶£§-#êÃVYç¨(.EàðáËœ-ô7J ûk´UaÃ¥h+q_E@_]9å[P¼íÛOS•*¿S¦LÉhîÜV”0a,¯àK™P¼ 8¼mE”E@ðöZ«Öh*R$MÚ”bÆŒî3¼+£Š€»PÃ݈ëxŠ€"àÌšµƒ7þ‹ªWÏMcÆÔ£hÑ¢øÅ¼tŠ€«PÃUÈ*]E@ð[ÆŒYO:Ìà¤^%è×_«S¤HzŠß.¶NÌih”ŠÓ TBŠ€"øãuÔ»÷BêÕ«25iR8"LYç¨88œ£Qˆ€€)lôéS…³ˆŠSÖ9*NC@M*NƒR )Š€?#0zôšÞ½UØðçuÖ¹¹8\‡­RV?AÂÆÏ?/dSJjÔH5~²¬: 7# ‡›×áEÀ·€ƒ(„Ÿ®¬Â†o-rëe¨Àáe ¢ì(Š€÷ a£W¯"l4n¬¢Þ³2ʉ/" N£¾¸jʳ" ¸ñã7‰°hW K–,¡I“&¹|N:€"àß|ó UªTÉ‘®ú¨†#z£(ŠÑ¼y»©GùÔ½{E·„¾?~œ/^¬Ð+^‡ÀÒ¥KéèÑ£NáK5NQ‰(Š€¿ °nÝQIêÕ¢E1ÂÇ]%a„|¤ýßîNÇQlB }úô6µ³¥‘j8lAIÛ(Š@„@`×®³¬Ñø‹ªVÍEݺUˆsÖI*îB@w!­ã(Š€W#pìØUªWo.œ‘ úÚ«yUæ_D@_\5åYPœŠÀÅ‹wäÔW1ÿÇõ(rd=Å©+1E€PCŠ€"¡¸uë!Õ¬ù%N›#ESŒêÚ¡:y—! ÿ²\­VoGàÉ“çT»öXzýÚ éÓ›Sœ8ïx;Ë^Áß”)Shûöí4bÄ—ñ³hÑ"5jT ú©R¥¢êÕ«SÉ’%=·õ¦W¯^ôÎ;ïÐ÷ßOûöí£®]»ÛµfÍšôòåKÚ¿?ýöÛoÁ¶1ž={–‹[Ðøñã)yòäæcË·õ˜Ýºu£Ý»w˼ҦMki³~ýz>uøW‰TŠ%Šå¹¿]¨†ÃßVTç£(6!`µj5•.]ºC3g6 ‡Mµ;vŒ¶lÙâR$°‘/_¾œræÌ)Ÿ 2Ș¥K—¦µk×:4ö‘#G„wt¾qã†Ð3&¥L™2Ð'^¼xôìÙ3zòäI˜ãÜ»wOè<~ü8ضÖcîØ±CÚ¶lÙ2PÛóçÏËsü&ý¹¨†ÃŸWWç¦(!"ЧÏbZ·î_EmI©S' ±7Vܾ}›^½zE‰%’7æ4iÒÐ{ï½GØôöîÝ+oÚxƒ~úô)]½z•’%KƦ¢2l¤W®\¡)RP´hѤ „‡÷ߟ>ùäŠéÿÊÅ‹ lúwïÞ•ºÄ‰‚äþýû„76Ô$I’„”çÏŸÓ;w„6r9€FŽ9(zôèR~à¼EŽY´ Ð,@ a–>}ú˜—!$cÆŒ´`Áúâ‹/,ÏÁã™3g„Oða]nÞ¼IØÐ³dÉbýØrݳgOúôÓO-÷æÅ£Gèë¯;_¸pÎ;GY³f¥¸qãšMßúmÌ8qâˆpè5j¼Õ×|€ñwíÚE}ôQ Í æ?~|ÁüàÁƒ2gà‡5=yò¤ÌõÖÅV¾­û¸äš\‹" ( iÓ¶É’µ7æÎÝåó2dˆÁ€Í¼tìØÑ`ó‚ñÁà•ØàÍÚà·fƒ…¹Ç³¼ÑHÝÈ‘#-´Gm°ÚÞà Ê:t¨+V,ƒ7OéW®\9ã5Û—Pºwïn¡Í˜Á½Ñ A©ûé§ŸŒÏ>ûL®k×®m|üñÇç1X> 6”º€€¹/\¸°¥mÁÊêÕ«¥žM rß´iSƒ¹fS†ÔÉÍÿÿá Ø`È3fŒ7n¤eË–‰ÙbÛ¶mòoÿ< XÙPC*ÿþû¯øsÀ1aÂù,\¸ÐÒÚh7xS¦[·nY|' ™éÒ¥ áæ’víÚYúá¢Zµjòß>ÐpÀÇåÏ?ÿšóîÛ·/õë× €&÷ð׸víšÌZ å‡~ :uêX>ß}÷]Ð&2·éÓ§æ„9²ÐFè·sçÎ@mm¾),,Yp°&réÒ%b¡‰† &Ú!˜¯0Îüùó-Í0 6Ì5ÐÞæÍ›ežð™5k–´…-|[»øB¬äEÀ{8}úŸ‹ò•-›•:wþÒ{s€lÒmÛ¶„ ¨ÕùMWTýؘÍÍ›)„ &PõÃA‘µb¶€ gG8Bu“L¾|ùhîܹb"S%L8K#S¦L!r sE­ZµÄ,ÂZJ—.lˆf‡=zлï¾KÈZ‰zð€‚{8K²¦Fî«T©B¬!kóÌ3øÀŒÁÚ ñÁ;v¬Tcn0;°V†pÍáÇE@‚™÷ª~þùg17+Ì7hÁ†þ懵 A›ÐŒ3Ä„þp$eíÅŽ[L#Öm3uêÔ"±¦Fœo­iÀ$A¢lÙ²²nan‚ bÌëÄÚ"b •*UŠ>ÿüs™gîܹÅô„¶¶òmÒuõ·úp¸a¥¯(^ÀÝ»%±WºtIøíñ¯à)E‰qÝÕà{Àšq …_€£%sæÌâß´?6F8ŠW Ì |ÓV'Çàhè3ÿA@ÿYK‰" ü?ǯâÅ£¼É¶ŽN¢Ö?$‘rF³fp¡!„Ù² "¤j}ÁP#‚-¸NWðwÖ¯?Æ‘ Ë9±Reʕ럮ÎOð"®žÑg–HU[Àɯ­ZMáŜѲ ­Ý´" ¸8ܲ¡(®G€Ï£–-§pÒª¸4`@ȧpºžAP‚C@M*Á¡¢ÏEÀç†éÈ_úÜ|”aÿ@iUTàp’JGP<†Àöí§é·ßVqȪ|šhRñáèÀˆô0³o‚ƳgQù°®Øœ3%Jô„Ï ¹í(ií§„ "ÚÁ}ö„DötÐ¶Š€" x÷î=áãÖrˆ”|,zCobÍn^Nž¼ÎGÁ¯¡yóv‹i¨yób|Rk>ÖpøžÆÆîÉk¿G@5~¿Ä:AEÀ¿èÔi&Ÿ©aÐàÁ5}v¢/Þ¡_~YL{ùÈö÷8ÊækªR%'Ÿªnv>»¨Êø[¨Àñ$ú@P|©S·òi§‡èï¿[P‚1}…m ŸÈ† SÐøñ)EŠ’¤¬\¹¬š(Ë‚^ø*pøÓjê\„Ì8¶M›âôùçé}jæ/_¾¦I“þ¡¡CWßÝ»W¤zõ ¨FçVQ™µõá°1m¯(GàùóWT¶ìñmX° ­O¥.ß³çuì8“λÉÇ­áãÙKPœ8ïxSe@p5ªáp5ÂJ_PœŽÀ AËèüùÛ´fMgŸ6ž‹€ >»tʸ"à? 58’|µjUœR¦Làñ‰Y sæ´òzaãСCôï¿ÿz7eÀ;Ș1#;`gõ8s*px| ”E@è×o1Åÿ.µhQÌã`6|áhù™3gRß¾}=Ž2àtêÔ‰ äqæTàðø(Š@ÄF`ÿþ | ìN=ºžÇr‡°Q«Öhºrå.ÍÛšÏpñ3J¶lÙhß¾}ûǤ³ ¼yó¾õÌS4µ¹§×qE@èÞ}åÍ›Îãy-ÕÂD}MØÐŸ’"à ¨†ÃVIyTüyóvÓž=çiùòŽáÓ§/øxùq*lxttpG@_aŸ"à¥ü´·" 8€Â`S¤H@v ·sº ´œÏEù‡FªK… epQ¥bS¦L¡Ö­[ÛÔÖÑF‹-¢2eÊú4mÚ”V­Zå(IêÕ«ýúë¯ÒáÂ…BûÅ‹Ñ+V¬íڵˡ¾¾ÚI_]9å[ðQ¼H ì¥,OQ£zæ¿ ñã7Ñ!+äˆù²e=ŸÉG—Òa¶;F[¶lq¸¿-Ïž=ËÎÈË)gΜòÉ!ƒŒYºtiZ»v­-$ÞjsäÈöõ9&ÏÏœ9#ô_¿~ýV;[lذnܸaKS¿iã™í~ŸNDPìEŽ¢0_”)ó©½]Ò~éÒÔ£Ç|êÖ­‚8¬:…¨¹}û¶lvØ,wîÜIׯ_—<~ü˜ýYþ!l¦(OŸ>%lÜÏž=“{üÁ5ž™oöhƒ üðáÃd†¥..^¼HÛ¶m“¶Ø\oÞ¼¨74oݺEëÖ­“o³ÑóçÏéÚµkr{ôèQ¡…gfÁxOžò>|8-^¼˜O"ŽÆïë&Âç¦M›óZÀóž={ÈzÜ mLLÀÇ©S§Çj^?N'Nœôܼ¹ÿ¾DçÎ3Ñ;waŠË—/‹£¥“_¨ÀáÅ‹£¬)þ†Žw߸ñ˜löž˜ÛÞ½ç©M›iôí·©eË/<Á‚WŒ‰¬¤xóÿðÃ)Ož<”,Y2N+ߊ¥¥‚ RºtéhàÀ²±¡Íøñã-|Oœ8‘Ò§O/‚Á°aÃ(qâÄT¹reŽ4ʹT*X„Ž=zPªT©¨@ôÞ{ï±ÙªuéÒÅBǼ@›âÅ‹Óûï¿OÐ>¤NšæÍ›'ÕË–-£¤I“R‘"E‰ÍòçÏOÙ³g èÄŒ“ , `èRPA)sæÌÒäÑ£Gœ&¯ðY¾|yŠ/õïßßÒ½[·n”$IÁ ß΂+H¸ìªV­JH#nbh ð€ê iæÖÂÙÔ©Se Š-Êiô?îÝ»'BðïÞ½» axM˜0!86¼þ™ ^¿DÊ "à?@»Q¼ø'”/߇nŸÔ… ·å˜ù>¢Þ½+»}|oðÂ… ì´ÛA4 %J”`_–Q,„µ$lt5jÔ qãÆñ¹6)e³Ÿ3gŽ…ýÙ³gó©¾%(V¬X²öîÝ[úlܸ‘ ÀT­ž÷ìÙ“%K–”6ýš5kJõŸþ)œCƒyCëׯGO="hpÿý÷ß‹–ó15?&í ßÐö@#s ´¦àcàþüùóì¿ô& ónÔ¨5iÒDú¢ÝþýûE+Áå»ï¾“´ä›7o¦† Š0ƒg¾XTàðÅUSžD`áÂ}tèÐ%ñÝp7û÷î=¡:uÆò[d<3¦EŽÉÝ,xÝxؤ۶m+oðРĈƒ:vìHqãÆ•ÙÜ\ëÔ©ÃZ©"˜`3]¿~=Õ®]›Óп#'´pýè£Ä$‘/_>ÎÔ:W4  øæ›o(S¦L!bмys?hûÓO?‰PéÌmÉ»ï¾+š• ¨ƒ¦NœÐ  T©REúËÍÿÿF^Í|0ÆŽ+µ˜7a Y²d‰h Á¼{U?ÿü³hh€•µ `=†y óMüøñ©pᢑ9yò¤TÁ”S¶lYÑACѹsg³‹!0×TªT‰ÐfhrV¬X!m0þÇLp2½zõ*Mž<™¿¾¹uk˲ë…" ¸ —/_󯰔7„œüŸg2W ,Ý/^ñäþü9ŸÙÒ’7®èÁ¶‹haF1KÔ¨QeS'Ž<Š)’Eå3LóçÏ—‚L(ð…€ oçØ4ñFGM¼ÅÃô=ú¬C3uÀa˜.PL¿\[×Ãb’Bo0íÀ„5OX¯…]¨Àá!àuXE ¢ €æAýöÛ’{Ãóþí·ÕüŸ÷V¡Ë*ý7oôîäÁÆ‚éaÍš5´zõjyÛÆœ°IÖ¯_Ÿ~ÿýwц|öÙg¢õ€Iþ0ÉŒ3F¢Hàb:P‡‡éã3 ´І@»`˜Tàß<ÀÁæ˜:à2sæL6Ùý(׿8–âÿ’Æ‹¦á«¯¾A´ÐÖ€?˜DPàXZ±bEšä9›?ä¾Y³fkWäš!©M|À x`‡Tƒý4¤ k „7ÖLÈØN6<ô&CFY¤Ô¢(®AàÏ?7 á&MЏf€`¨>|øŒÃÇsÃ{¬¯L }d0¥ð¶ø9°á­®ðu@Žà ÌÖŽ˜Áµ1ŸÁÏŸ rƒ¸¢ÀÇÂÚ|Ÿ|Ì k[ó¹½ßðï0ó×¾%È âÏE^]›"àAóTàðžµPN¿BÀÚ–qÒ¥c¼9¶Öˆ'ýš~ùå§P² µ&ˆ$Y!„Ùnݺ5¤j}îc¨Àác ¦ì*¾€€'´Ë–ä‡U…PƒSQ§ñ˜ÂÍã¥Kw% gÍš§á¦¥W# ‡«VúŠ@DÀÝÚ³goRûöÓ9dósÎj™Ï¯‡0‡ÓvçÎÝE;vœ¡ br¶ÐHœØL³øõÂûÁäTàðƒEÔ)(Þ„€»µÏŸ¿¢fÍ&q6Ê$œ†ÚÏHÙ¾ý4MŸ¾ó4ìçèBâ3G²Ð¤I©hÑLÔ³gš:õ¶ä©ð¦ß‚òâyäÌ[Š Þ²ʇ"à'¸[»£æÏ»ÅgOtâdTþå$Štì³gïäÓA7qbªkM‘ŠD}ÅÙ>s¼åˆ‹Ù8tM‹"à­DB¯·2§|)Š€o!íFžát2§ÓnÀ‡c½ÉLéò]<N¶?~gÎÜÎY/_ñ±ç99«gA«Lîâ‘•¼"à:TÃá:l•²"áÀ›8Š;ònœ>}ƒOÝœÅéª û°qüøUN¾FAq²m›6%ødÖ|N3Âý–tÂþ‡€ þ·¦:#EÀ#<}úBÞÊ¿ý¶à[ê~g3„±š6ÈG¢¿OÝ»Wt6y·Ó;xð" º’ÍB‡øÔÒ¤mó WžƒOgµí€5·3¬*  ‡ iE@xY³vÐÇOEãðv­sŸtï>ŸÔºK+W~Çoù®ßÆ©S7hÀ€¥´xñ~Ê–-ûj4ä#ȳ8,¥¦x *pxÉB(Š€/#ðúµA£G¯g§Å<œ52¶K§‚|8î~üø†”2e—Žå*â7n< _]JÒÒ§_您-Š€?# ‡?¯®ÎMp‹í£‹oS‹Å\:âõë÷Åo£víüT¦Ì§.ËÄá:nÜ6lûe¼Ëßµ¨J•œšºÛ`+M¯C@¯[eHð=FZKåÊe£4i‚?ÃY3jß~ð“ómTrI·ÑAÊõœKW¯Þ£V­¾àèš/èw¢¹m|Hð4*pxzt|EÀÇÀF §ÇAƒ¾véLÆÛH›7Ÿ … ÛòižÑ]:–3‰ß¹ó˜þ÷¿š3g'•/Ÿ]•K‘âíCÌœ9¦ÒR¼8¼qU”'EÀ‡9r-)’‘>ý4¥Ë¸>vì*õë·ˆ:v,EÙ³§vÙ8Î& S´Ñ£G¥‰S©R™=„ÒS|8|f©”QEÀû8pàkŽË[»«¸Cêò–-§pGjjÛ¶¤«†q*ÝGž‰ ,¡8ß¡»±cÇpêJLð5TàðµS~/B`Ĉµ’n»`Á\ÆU¿~‹ ™7׬éìy)vï>Ç>Sø0µç4eJ*^ü—a£„_B@ô¥ÕR^/Bç—,]z€Z·.î2®p*ÎféÓ§ ¥J•Ðeã8‹0x­Råwu}Ö®í¢Â†³€U:~€j8übuŠ€ûøë¯M” 3fl§öíK¹ÌÌÄX7o>äèŽV^ ÊɓשQ£ tûö#Ƥ9¹Ò¼äÕ@(sŠ@¨I% €´ZPÞF2_½zMß|“ïíJ'<Â`{ö¬DI“ÆsE×@Jò2e†PܸïJšu6\ƒ³RõTàðuÔY(nE§ÂV«–›“p½ëôqŸ={I:LçPÛ T³f§ÓwÁAƒ–ËrHç>~Âé®ZE dÔ¤26Z£(Á °ví¿„£áÿú«Q0µá4pà2ºví>ÍœÙ"üÄ\@áɓԮÝt>Ùõ øµï‚a”¤"àw¨ÀáwKªR\‹"1è GÃ;»ìÝ{žÆŒYOýûWg‡TïËÆ‰´äß~;^Ι5«åË÷¡³!PzŠ€ß" &¿]Z˜"à|à ‰Tæv:qø„ Ò£@¼Rk°ÿö×JOž<§%K:¨°áô_€ôwTàð÷Öù)NDÚ´i»$¿Ž·?{ö&Û^݉;‡ÔÊ•‡9¿ÆÊœ9¹®>¤Î9\+EÀ»PûÖC¹Q¼{÷žÈd r:È$:tè ³õ¶Í|êÔ­öZµj.š<¹‰¦(wúê+Áˆ‚€úpD”•Öy*áD`ÆŒm%JdúúkçGŽtí:‡R¦L(G¶‡“M§v8p¹B;—áÈ™RN¥­Äˆ†€ mÅu¾Š€ƒL™²•ªWÏM±b9÷2ä²X·î(͛ך¢Fõ¥+üIºtù›fÏÞEƒפZµò:ˆšvS8L$ô[PBD`óætæÌ š0¡aˆm©xøðŸ¤:_6ô¼yÓ9BÂé}¤I“‰´eËI>R¾}ñÅÇNC *8"âªëœ;˜2e åΖ2fLjgÏЛÿòËzùòuëV!ô†nªÅ™(õê£ÿ½Âþ*-){öÔ.¹F¬E™íÒ1”¸"à,*V¬H ,p˜œ C§ˆÎ3Y¾ü ˜œ9c„™Nšô V‹âÇéLÒÑ‚SlíÚc¬sç¶¢L™’9DÇÞNùòåãCê:ÚÛMÛ+nEà÷ß÷x*p„B% ø73gn¿ ²;u¢?þ8—`F©V-—Sé:BìÖ­‡œF}4ݽûXÒ”§K—Ä2õI•*ûÆx_(°C“ÑN~‹ÀÂ… éþýû᚟ á‚O;+þÂBá,#†óþ»øûïtàÀ9ðÌÓ"{è×_ÿA/^¼¢€€6”"EO³¤ã+~‰€w¸„û%´:)EÀ÷X¿þ?‹êÖýÜi“£hß¾‹„æÇ»Çló6Ð+R¤H*l„’>Wœ„€ó^YœÄ’QïA`êÔ-’Â;}ú÷œÆÔ!+ähû.]Ê8¦#„p@\µj#YsM|6&Œåí£(6" ÒfŠ@DCàúõûlò8ìTíÆ©S7hüøœã¢¬GE17Hd6{vKRa#¢ýºu¾ž@@O ®c*>€ÀŒÛ)nÜw¨\¹lNã¶Gy”!CRªS'¿ÓhÚKèÆì“2ŠÍ(Ä¡¯­(qâØö’ˆ°í›4iB³fÍréü-ZÄ‡ä• ôiÚ´)­ZµÊáq{õêÅgôü*ýáüú/^¼p˜ž#ïܹCÏŸ?—®ûöí 4?ðƒ9®]»–^¿~&ù³gÏJÿË—/ÓñãÇåúÚµkaöót8<½:¾"à¥LŸ¾MœE£Gâ¡-AFÑ>}ªPäȼÛ{  š×¯ 6’$‰ã.|wÈ 6ÐéÓ§]:l¦Ë—/§œ9sÊ'C† œ„m •.]Z6dG?rä;vLºž9sFèÛ²±;2VH}Þ{ï=KΕ7nx–9sfÎo“Qp-^¼8Ù~zïÞ=éÿøñc6O¾¢‡Ú$¨„Ä›»ž«‡»ÖqB`ëÖS’¢fMç¤ôFHÏžT©R …õ<匦£9ÑØkI£þÞ{q=ÁF¸Æ¼}û¶l0‰%¢Ý»wSš4i›6ž½{÷RòäÉù4ß´ôôéSºzõ*%K–Œ}TþKEÿìÙ3ºrå GᤠhÑ¢Iläï¿ÿ>}òÉ'â8k2wñâE›þÝ»w¥.qâÄfµ|_¿~âÅ‹'›Ý(kÖ¬¾P>iÅŒ“vìØAI’$aÍV©ÃŸ—/_ÊçwÞ‘gAïñ°OŸ>R‡?B°)#éÔ_|!Ï!0@S5jTÊ’% ±ßŸoÞ¼ÉÏç¥ÎB(È…‰IêÔ©9“îÁ,[¶l|@ß­° 'ÌóСC‚)ÖÂ,—.]bí`\Át$H ×Xfùî»ïèÓO?•[à•+W.69ާvíÚÉ3Ìô±h‡ê ¸"y06˹sçBVîܹYƒ—ئ߃Ù×¥ß0xƒ öþ·ß~“ö–J¾Øµk—Á‘DƘ1cäñÆ n ¦ä±ÿ~K—Ÿ~úIh`\Ì‘…0ˆ &u,HÛ¶m“ëJ•*É<Ð|±™Bh…†Ó”)SdΘ;ú•*UÊ`áLú§²eË ÆœÓ²>X/6í+W®”>,¨YxÆE­Zµ e-X¸4Š-*ëÈ‹|wëÖMÚ³ %ýOœ8a™ 6R‡6À Ø`<Îfk°êïA:†ñ§N:æž©K‹" (=zf|øá÷Æ„ ›,ÏÂsÁùÉàPØðq¸/kWŒo¾cdÉÒÍ8qâšÃt\ÑÑ›Ûðáà Ö0È&‡ûž={¬f—Í›J±bÅäcòÍêz"KüVnð¼1dÈ©ÂæióæÍÆÖ­[e#½GÓ¦M“Í+$ƒ5*k¤m•*UDxðà|MŸ>Ý`•?ÿ–&È=k(dL&¬Á0YAż7ŽªU«ø”(QÂÀ†›)S&™#:AÐÁæÇ~k)ŒÏ?ÿ\æŽ:ðƒ±¿ÿþ{ƒý+Ü›sNàøòË/…›ŒD@éß¿¨8r=yòdƒEkÁ¾î¡ñÀÛ>›5dĦ›¸Y ©07ë ŽŸþÙlf°‰G67-8ØÌa©ÃEºté s3 TäÆ8°ãƒ>”ðÖ>pà@i·y¼µ³¹Æ˜9s& ´Ÿ ”:l¶ÐÞXÏÍH–9'p@ƒb–B… 7'h‘ÌóÆZ6{àm…u Nà€¼â“4iRã믿Aý É²Ö á4FÐÞ„$ptêÔIÚ ­Y t°ÿJˆ¿³]XßÎ8Ô‡ƒ5ZEà ,pPÉ’™ Sd&@IDATÙîþóMØ„"a°Ý»W¤8qþ³×¿ÉõWß?‡C{Ñ´iÍØÇàmû·ë9pþðË0 üàÃ'ÎίH`ƇT³v€ZµjÅ©Úç‹ü%*W®,þl Þ¸øTÜ&9Á›µ8!Âç!{öìÄoçæÿ† üEÌbúÀ·… ³J¾QoÖªá†M7jXð Öìȹ3¬!áÿº Ÿð?ˆYÖ¯_/þ$ÖsÀœB+ÀÐ,ï¾û®øÉÀÏ%$œà#R·n]³›|§L™ÒroúfXs±sçN‹‡u5|7à’#GëÇÄB Á7%¤‚õca'P5 >r_à~»ø&°—‹SòŠ€"àÝàà²mÛNqªï­;ˆ2V%%Zƒ3éÉ“'4jÔ(bÇÄgÏæ ÉH h  A´ ¢hXO·nÝmrP°sªÔ±„~üñG¹ÆŸ ÷x†œø,[¶ŒØÄAlN¡¯¾úŠ À†ŠÍßÈÛè3ÇŽPGd ûp„öÇ GrT„†SùòåE«Ò£GBˆ+ûaÈÜÀkHo&Ÿ!µ3Ÿc h§ ¢;°J›áÌ&o}C¨ÄÜ¡ýàȾ8BƒÍbÒ6¸ßÃ[D\ù ,»Ö+Š@ÄA oÞÞF¯^ÿ9ö…wÖU«Ž`Ǿáá%cwÎõÁöïN °Ôî¾îî`¯lôp˜4 |ø×¼çLD¢˜~ °û³ N„æsN„e°‰Eü?àGÀ››ÅçŽð—à}Gœcúpp¦‡JÞ V,ÑðõàðQ©ƒLJ~(cƒœ>Í~hЬY3q²”ÆAî9…Œ~ø€ð€È8¤¢téÒEƇ³+æ_øHüðÃRß¹sg øF)RÄâ‡[еŽRá°Sé‡?ð1}'BÉ…1ÁÏä“…5 Ö8™„៶À“˜ÉõÁƒÍê·¾á ¿ôÁ<±NðËAADž¥žÑõ𛟎YBú=˜õ¡};ÇC£TBCXë„ÀÖ­'9$¯½qôè•pÏzõêÃBkçÎ3á¦eƒ/éÓo´m;Ížnkk¯Àa/£ˆT€°aíÜiÒ`_Q ¦Ã©ùßp2EäI9 ¦Eà°n‰E[ëN”œÍÓ@è§µ§u»ð\ƒ8Cš´)àk7Œ={öˆó§ÙÆ‘ïÐpBdBkÍH’°è#b…µa5³Ô³Ç@D œZÙ,eyÖp0C{­Û†ö{°nܵ3ue1P‹" §¬Þ!Ž•3& 7¬]àtËŸr"£ÂMËVpP­[w'«ú€Í)5míæ·í`JYºt©8²Fá­yÂ×#2ÞzŽH4ÑW° ù!|ð ®À©ÕçÉàú†õ üãcÓiÕ¼‡Ÿ…µƒ­ùÜÞïÐp‚_IÞ¼¶'ǃÈžÖÙÓEÚÂW'¨óhX¿»q ƒ €¦]CàÙ³—l‡>Àvï²ážÚ¢EûØ™î ûÔ 7-[ pî>Ÿeo@±Øù±Û}FlåÓíà·§CøXGaØËRoÿ#hÉ—/_  ߺÙ/á(ªÅ{pÖï!<3ŠÕIxh_E@ð}–,ÙOÍ›OæôؽÄiÔѱ˜Šû•ßjSÒˆî8ð_Xýúãys½Àoô8*æíÍÑÑù¸ºg”!þþûoW¥ôp!€`¤r‡ƒ®£E5Ž"§ý?BÑ$ |.apÌ™³‹£nÒ¤I݆NïÞ‹hóæãü&ßÚ§„ ·¤)^‚€{cÕ¼dÒʆ" ¼AàáÃg:yDV{óÔþ+ІPTäðøàƒÀ}ÙOͶ3gî Ñ£×Ñ A_sxgÈ ªl£¦­EÀ•¨ÀáJt•¶"à,]ú_r¡²eÿËŸà(ËÓ¦måL’÷©C‡RŽ’°«ßöí§é‡fóÉš%©J•œvõÕÆŠ€"à~Ô¤â~ÌuDEÀ«ØÃG~ÌÇi;žzüéÓœøiG‰|î³ÆÅ‹w8Ô_T¢Ä'Nqtõä‚àhq[³‡FŸ|ÏÌ©·Ò£Gû=ɶŽ@Rµð8ƒžöU|[·Ò¦MÇ9£dà3!ìÖ¤Iÿ°CÙjÛ¶¤½]ínˆšF&p¦É¸ SÛîþÞÔ烄–9¼>þšöï¿E[·^£S§îsÄH ´RpHkøÃ—½ åÅûàÓÃŤ á‚O;+¾BXßy'Z¸ÒC»1räZjРP¸NmA³K—¿ùìŠÛœòº#§¹ŽnK¯mƒÐR|‚+û÷_àCç¶rTÀ>>㥬Q¯^y©hÑL|›mç©GWŸ)žB@O!¯ã*^€¢S¾üòS:egÊ”­œsáµhQÌQ6÷›8q3G£ìæS<›Pš4o’>ÙLÀË"ÄwùòC|àÜzÚ±ã4eÊ”Œ¾ûîKªZ5%LË˹WöÐP#t|´Vð[™s×®³l)áðñæ=jÔZñÝpõ†ÈiÒéÿ à ¸4çúÿárOÚ?~Î'Ûnç¤eE{S²ä'4o^kÖ~ØŸeÒì)IEÀ)¨Àᕈ"à{ì¥ bR‘"ŽoÞ8þýÞ½Ç.×n ú¥iÓIâÜÚ¾½{¢`ܱ¢7n< ±c7ÐÔ©[èÅ‹WT£FjÒ¤¥Mëž°bwÌQÇPLTà0‘ÐoE ‚!ÿ²e³9œ$|7¾ù&§ÎŽë2ô½YPcÇŽA¿ýæÛN¢&H4FŽ\æ¡­ô.µlYœµDùÙ!4¦ÙD¿¿C@¿[R"6pºD*ð,vãZà°7lœ­Z¡…s°”£4.ðY/í)NÇCwÃMø¨Ü»÷„S¾¯¡ 6ñgï þuêä§1ô¿âð!«½}ý•ûÂ*)Š€“X¼x?›Sbq:óôQ~õêµlœÈ*š,Yð'…:D8H§õërèë8°†8P©ö™[øºÀ?cĈլQŠÂ ËÊQ½zŸ« á3+¨Œ:8œ¢ÒP| ¥Kg¡(QK6Œ3S®\¹KmÚ”pÙ̯^½Çô§IQ˜m|µ,[vzõZÀÇÄ?¤fÍŠ²ù¤ÅŠÃW§£|+# ‡ÃÐiGEÀ7¸|ù.íÛwž:u*íкùûï«©Zµ\”2e‡h„Õ ~-ZL–PÐ_­Vs¯¬?uêuí:‡þùç„MݺUde^ɬ2¥¸8ܲ¡xK–_ˆB…28ÄÞØÏž½E“'7q¨¿-~ýu)û˜\¿˜1}+¹×óç¯Ø¹u•˜œGcÑ¢v”#G[¦­m¿F@¿^^œ"ð6K–ì§R¥²P´hQÞ®´á "S¾ü2 ¥K—ĆÖö7Ù¼ù„lÖ8¶/•={ÎQûöÓÙÜt~ú©<§`/¬YA}i•W—"à˜×¥,)qE@pÈgZåÊ9v2ìÖ­§hïÞsì‡ð…KX¼sç1'"›FåËg£Zµòºd W…V£oßÅôÕW¿±™)!­_ÿƒäÓÐä®@[iú*ªáðÕ•S¾€9& œÇáHAîd¿t•‰à»ïfŠ#ë€5aÏ#}àÓ®ÝZþý«SíÚ¾ëàêuЃ€ f©u¢ŠÑЇ8-øÇ…c=z…Ö®ýWÎ1q–S§neþÓœ9-%G…+Æp&M8¶¾Š†]IŸžž¦OoN)RÄwæJKð+Tàð«åÔÉ(!#ððá3‰˜:´VÈB©5je̘ŒŠÿ$”VŽU!¢£gÏjÝú Ÿ8?‰ÓZ·žJ^äó]¾b_BŽM\{)8"ÐbëT#6kÖ!ŽhuH`@(m@À<øk§ƒˆé­ZM¡ ’òÁleœNßÙçÍÛ-á®ðÕX¶¬# aI=„ÒSü8ürYuRŠÀÛÀœÿ ¤Ô¶·Œ»žÏK‰C•+ç´·k˜í‡ YA'O^§U«¾sø\—0qBƒ'O^ˆ 1{öNv-ÌiÉ+PôèŽEú8%¡ø*pøÜ’)Ê€ý@‹ G—.eíîüàÁSš6muî\ÆéÁÞ½ç%¶oߪ^}Bê‰×XȘ(gÇLžÜØ!-‘ÝÀkEÀÏаX?[PŽ"[¶œ$ÈŸao™1c»tqv˜êÓ§/8ºc,ø‘œ+b/_îjF™2CøT×wD ã wÍEÇQ<‰€j8<‰¾Ž­¸ åËR–,)8ŠÂ¾TäHcŽ“MkÖÌëô“Zû÷_Bׯ? Y³Zº û†Vè§Ÿæ±vg+5o^ŒM(å>{ƾ‘µµ"àŸ¨ÀáŸëª³R!°jÕaN¤e~ˆåË"2œ…±mÛ)7n# VË¥§ÍÁŽʱcWiüø†i†ìN›*8"Ä2ë$#2GŽ\&D™”,i8ë¸q¨D‰Oèƒ; ÂÇŸsúïrZmõê¹F×Y„¶o?MM›N¤øñcÒÒ¥(}ú÷œEZé(õáˆÐ˯“¬^}„#LâRÖ¬©ìšîá× šˆ&MŠØÕ/¬Æ½{/¤Gž‘7fŠrçN«ÂFX ©õŠ€¨†ÃNÀ´¹"àk¬^}˜£*>¶›mh7pxœ:U =À¦>bDJœ8¶³È†›Î«W¯©Gš8q3Gã|ɘRá¦éjíÚµãC⮸z¥ïg$Nœ˜Få‘Y©ÀáØuPEÀ=ܾýˆöì9O-ZØwØÚ­[iÁ‚=| YU§1úìÙKNì5KBJ+WÎá4ºá%tÿþSjÖl¢j7vl}>Ø.[xIº¥ÿ²eË8E} úøcû…I·0¨ƒxÇŽ£íÛÿ‹:ós*pxuSpëו܅ g°kÄI“þ¡Ø±ß¡ªUsÙÕ/´Æƒ/稔ûô÷ßÞ•röìMª[wÁ¯dþü6ôé§)C›‚×ÕÕ¬Y“#i~ò:¾”!ïD`РAôûï¿{Œ9õáðô:°"àz‚좱bŰy°—/_‹Ù§žÆˆáœwœ92zôzêÖ­‚×D¥ìÞ}Ž*T.á¾Ë–uð9aÃæՆЀ—  ‡—,„²¡8ø%@Ãao¢ªeËÐÍ›ùÍÿs§°>:ušI¹r}à4šáeléÒì:Rxš;·µ8Õ†—¦öWÐpÎëKèch­" x]»ÎÒ½{O$¬Õžá'Nü‡¾øâc»“„…4N™ÅY)kÖt ©‰[ŸÃ¶W¯…T¿~êÓ§2EŠÉ­ãë`Š@DE@Žˆºò:o¿GÚ äÏH›ÖöÇ_¥­[O²I¥‰Sð9þ'÷ZI;–¶‹§  ‘ž=p± Ô½{ÉL}¤(.B@M*.VÉ*žF`ݺ£T´h&»Ø€v#eÊ…Ñ7P×®s)uêDßÜaÖiÓfš„½þñG=óVþþ¬I“&œÆ~–K§Ù¥K>÷¦ŒåS±bEsîL/^txÜbÅŠÑ®]»,ý÷ìÙÃY{kqB¸ôlŠ{µ_ÐÀéõë×–6a]ܹs‡ž?.ÍÆOmÛ¶ «‹_Ô«Àá˨“P#€pX8jÚ#p RcΜ]T»v~§˜/Þ/>$ýûWsú)³gúŽ•ÿöÛñ„ód ¹©X1{è´Ö%lذNŸ>íÚ&ÑmÛ¶ÑÙ³g)gΜòI’$ ;–òäÉC/_¾4›Ùõ ¾oܸ!}Š\¸pa@6lH?ÿü3%Mš”OaîBåË—§/^ØD‚ÊìÙ³¥í³gÏèÉ“'6õóõFjRñõTþ`0ÃaíIÚa'¸:ãT؇Ÿq"­ù|è[Ê›7]0ºç|XêÖKgÎÜdaªeËf_¶U÷péžQð–?~|Â|” y<<ìäÉ“¥ó©Ôߺu‹Ã„SªTo°º}û¶lŠ)R¤fÑçðáÔ9sfŽ:Jf™Þò:DÑ£Gç¤q™dóOž<¹Ü›ðf7ü÷ߟŽ=JwïÞ¥9rXÚÜ¿_xŒ3&íØ±ƒ 4dÈð&¬‚>ï¼óŽÄ†9rdŠ-šÜgÍš•}sú˜ÃñšgãS‰ÛqÖÜmœÄ® <ŸûöícA8*j˜Eú›€Ï‰'Dèþè£7Iï0N£F$ïɺuë8lü¿ÄuÍ›7º­Zµbv²´¹~ý:Å‹>|Hà,¿Y)Q¢D2Äùóçe~W¯^•úúõëÓ×_m/š`ˆõš˜ë€ñ{êÔ©ù÷|†Ðs3ù°ðæ W‹" øl>0ªVa׬J”h4nü—]}BjÜ­Û<#K–nkZBjâòç7o>0Š`äÎÝË8qâšËÇs÷¼¼±Ú<,o\Fþüù  Þ“ >ŒŽ;ì4+÷qãÆ5öïßo 6Ìà Üà ÍB»xñâFÑ¢EW¯^¥K—6xs7X 0xÃ6Xƒ íX(1>ÿüs¡…þùòå“ë¥K—J=øíׯŸ ÏYS`á…“—.\vµk×6pŸ0aBK=k,¼4mÚÔ`!ÄrŸ A£eË–r_¨P!£F–:\tíÚUød!@žoܸÑàÍß`aK>,ȼQÉ–`|ðÉ;·esæÌ‘ëU«V ë?,À3fäß[qy Œ (`D‰Å‚Õܹs¥ŽµBýú믲¹rå’:`œQ‡yá»[·nRÇ“ô«T©’ÐÀáøñãRoË6ý,°ØÒÔ%mԤ«¦Eð76l°Ïcß¾óüÆz‰êÕ (ì鯿6³cfEJ ¦G Åi¯•+ÿÎoå/8¡W[=€íÿWoÆ09rD´Hq½yófºvíñæ(>H&†ÈyóæI/˜Ö¯_OuêÔa-ÑZ±b…˜F  éÔ©Güô’7öÞ½{Ó¿ÿþK«W¯&h)Ò¥ ]³m ´Ð&€ –ß èŒ1B´*&L |.\(õ,ðˆÆÂl ÿ‡’%Kš·ôÏ?ÿPµjÕ8i]U1¥À¿ÚhJP0 ¢!ŸÐÒôíÛWê0ÆÆÜ¡‰05:¨ä]ÚäÍ›W¾­ÿ/˜q¬MFÀúÔ©S2Ç/¿ü’l* ` Í ´!0ÅX`‰µÆ Z¥?ÿüS´5Ш˜åéÓ§¶~SÖZsÌzoþVÛWGyS@‡®Ý¸ñÀ.ÿ©S·rI*TèêÚ¡¥Ë?ÌæÿèÓRž9 öÂ…ÛT©Òï²´áM#¾£Sñ»~Xó f?üJ•*E¬•çG~›LØÀ!\ ÌŸ?_6Hlâ"°¹ÂsÓ¦Ml6ë!›#žñ<Ÿ\šŽ‹s¢¹Xôã?†Šú¾ûî»â|Ù AjÌ0sÀ1“ßð u‚J•*UeWíÙ³'¯w%³«˜`‚aƒ¸† 3ÊÔ©S%Û&Ì BÏåË—¥nñâÅT¶lYV+‹)ó4Ë£GÌ-¸¡ B›Y`jI“& Á4„l°¨7y0Ûý†ð_´iÓJæÎš)_ci sLcð%I‰¯8|e¥”OEÀFà¿‘$I¶Mÿgo«Nn ØË¾ùÃjfýŒÛÅYµ_?çÁæ V Nº!ÂŽ–Ÿ;oµq¬jõÒÚß>Ö> X. ±YC6xh7àÜX¡BñI`Õ?9R|@ ¬@kпéwéÒ%ö×yóö_ƒÐй©¢ œ(MÇLÜÕŽ`øEØR° ³éF>üñíÝ»Wø„¶‚„‘%JpÈö0‹3)üB àe–ìÙß8C@Ch.‚hØTChcëù™Ú•Ðæ¿`ë§Th4̬ÌÍ\æ­×«ÀáõK¤ *ö!°qã1~ûÉhs§ùó÷ÈZ5jä±¹Op qZ¿~‹ù´ œ2\W>Cr1ö[ÆìÙ-ùÍ0ø7QWòàí´!TØRð†§ÌqãÆ‰æ¡nݺÒmçÎâȈ7uhØwBÌppÄ)¤pd4‹µyÁ|fýmjð fhÌb]V Öõf;[¾áÀj:ÇbǶ¡E‹b²Øºu«˜]@f8z¡Ö,Öá°Ð( Mpg‘@Hh_Ìb=2(¡ÍÚ&p25 ´*8pͺÚùjñ]Î}qå[p!8‘uçÎ3v)sJùòÙýA¸LföÝwe\8ÃàICبVm$ÿÇœˆfÌh.ç£ßRŸÚ‚Ì0SÀìõ=r[  2¦l 0½@C‚M:4ýõ—´ÿA÷îÝC ´a΀~0%˜e÷îÝ4}út1C°Ó¤ä¬(W®œTÏœ93¹æûï¿äÇ¡gíÚµòùy4à— 4 àß‹-âS‘Xrb oîg̘!š hoÌír‰ >œO=þNvt¿˜ª Y Ä,ÐÁïÂú@ãƒhh— ™¹8Ì>ÀfhaP7tèP©ª^½ºÙħ¿5,Ö§—O™W#°k× m-XÐ6_ äê8pà稘wG^‘¤ZÔ ¸qÿ W´“„ÃÍ­…éÓ›ÙuPÃú`Ç Ú Ü}f=-l¢Ó¦MgQ3ä”#@D¨@x)4 ÙBp…šΙð‹€ÿ 3­ Ʋ~;‡ïGbˆÀ9-Ì“J›6mD 6Øø9ÂFªáÀÊ‘.b2Áha~jj`Ú€ Šž‹\¦ŸG‡D‚ BN[·n-¼Ã™ã@¨úæ›o¤?„ë°Sh70×_~ù…,m pA#„^&N¨@ì'Ÿ|"ÚCŽº!J&Þl p?k\@ uÀ ôÀ;’ŒÁ$hA_“fÐ:¯¼wIì‹U ðË/‹9¯¯Íc#|µ`Á~6·©a•*#Œ2e†„Tí²çwÍšµ»ñÕW¿>uÙ8ÞHØÞ°X{ç°eË8t¬x«+žqŽ “µ®Dx(GfáÁëñPú›a±f;3,–“dI[ŽÚ0«äa±ýD=› öTïŒö‰0xc·BÈìƒä¡¿¬•0Xa©zÁÚ ¥e“Á&Ÿ ÕÎ˃58Áâ‡; ²0f°9'XÚAÛÛsïé°XÕpx¥¨L)Ž!°iÓ 6§Ø¦Ýxñâ«owS³fÅìÿ{-\¸“*¢%KÚ‡‹Ž½Ïž½É'¾Ž’èh6bÆŒn/ m0 ²š$ð Z‚{†6xÛ6>áV1Ûך$¾rEöÁLÄú¦S'®¡Y@¨lhšÓ<Z;ø„à\Y'¸ ­Oƒkã«ÏÔ‡ÃWWNùV‚ ðàÁS1*ô&;b&nW¯>Â6ô'¬¾Íè¹=7ðéÓg!gJÌCÙ³‡•`ݰÚ^ºt‡ÃnGq–ËxæØT…°³³>*§ÃÑ‚Q˜Aàb]°Ñ#47$S€ÒjÝÇ×®1?kÆ×øw¿ªáp²JWp3[¶œäðDâ¼ ¶ ÿ½ƒón|$›¶£¬Ž³žÓT?¦~(ë( »û!©Wµj£øÍ1¦8ˆÆŽÃnÚ!tö;¼>l–y‹ ü?Roƒ¯3gˆ¯ÏÃÙü«†ÃÙˆ*=EÀClÚt\roØ’ÝóÖ­‡œLè_Ö8 ‹äb¿ÿ¾šûJ°#]\·Ì|C³#FTŽhÁBÇ»nWQð# Gø1T Š€W ðÏ?'92À6íÆ¼y»9Ëc4¶Ñ;n#ÿõ×¥¬.É)›‹¸eþ0Õª5š½þ úûïáãu Ó:ˆ" XPÃ…^(¾‹Ž£?~ü*›SÞd: m6ÿ½“iÿŒC£…Ö,ĺ#G.s˜ß·PÞa!¦§ØÖ¯ÿ'‡>͆»4*Á°¢EÀAÔ‡ÃAà´›"àM JNxyò¤ “-œµ‚ƒÚúöu<ýøÿþÀN¢©8ÿ@à4Ìaî@ƒW¯^³eç'¸ÊùÚPÊ”  âŸ]ÛOxå”ÛQØ—&:G[<ñω꬜‚r|x²¨ÀáIôulEÀIÀag§Ä‰vÒ­Ù³wH()Xs¤¬\y˜3Mžà,î ƒm×n:;žäŒ”-9³eð¡„ŽÌÃ×û*T†Ž}À©¸ß¥{÷¢s8§Á&®çœ,ÊwÎÖðõ5ð5þq† RÐ{ª¨Àá)äu\EÀ‰lÝzŠÏO ;ÿÆË—¯9mònjܸ°C£sN"ÖŒ,sLΜi¢aO'hR/ÞOS¦4qkØ­=<º³-r,Z´Ÿ1ÙÇ‚FdÎÔ™œSŠB_~ù)-š‘ýr4‰;×CDz8ìÃK[+^‡ÂR‘ZÜ–ÐÔ5kŽpºèGçÞ€ïÇ™379yc—ã0zô:úóÏ4zt=ß [˜r9CaÀ{8IÛ2.r~‡Øì웕Ï*©È>;éY³aÛlb_‡U,¨ÀaB/ßDÀôßÈ›7l‡ÑÙ³wJ$KŠöûA É× AËøœ‰|l’q­Z›kïÞ‹¨gÏJ|4zvß\˜ppýøñsB×¹sw±9é›ÊbÈ{=zTädZ*d„ZíêATàð ø:´"à àß9sò0MƒfcÕªÃ4dHM‡†0ag&}L;–r¨¿­O¤}ûéÔ¼y1>Ó1Ó­cy[;ˆþ‰Ïô ’%³°–§Fö1ûfDñ6v•EÀ.Tà° .m¬xؤ Z«,Z´7­¨T¶ìGd‡ÕÞºþþý§4bÄЏ4ÉÂm5úK´Ý»W°fÁo¯!"ëë”)[Ù\uƒÏèHEݺ•ç œšØÌoW=bNLŽˆ¹î:k?AàáÃgtäÈÖ„­uX°`/•.Ù!Ç‘#×pØ-QË–_¸ ¹k×îS½zã([¶T4th-—ã-„÷ì9ÇG½oÐ1¢QÕª¹øˆó|†I2oaQùPœŠ€ N…S‰)îE`×®³ÄÇYSîÜ¡‡¸ÂñpûöÓ|hC»„ 0~üFêÒ¥¬Ma·vÀà³a#V¬Š€¯  ‡¯¬”ò©ƒÀÎg$§F’$q‚©}ó›rt+öñ›‡6^ ¼‚Ã/cÑ·ß´±‡}ÍjÛ¼ùdºråžq7nعDìÁó­=zÆ&“-4vìºy󡤔ïÙó«0EÏs®(ÎC@ça©”·#°cÇiÎ.ºvLì•M.ztûOŸ¾ÁNŒÛ9:åk²·¯­`ôè1_‰Í™ÓŠR¥Jhk7Ÿh‡Ãæ dLšôk¢ ªS'¿ä@Iž<ð‘í>1eR'*p„@í®x ¨ç¡–+½ø… ·¥]çÎeìfµÿ¥ôá‡ïQõê¹ìîkK‡‰7‹Ãرõé³ÏRÛÒÅ'Ú@‹1jÔZš<ù1Á÷"ÔÞøÄ‚(“^€ ^± Ê„"`?‡]߇°ÎOvÉ¢ ²í$Y“$™BFK$ùÂ9-Î.íÑ#€¾ÿ¾,•+—ÍÙä=Baÿÿ¾†1Û,&,Ì­nÝÏÝrÀG&¬ƒ*v  ‡`iSEÀ›رãŒéÓ¿*[ î•PØ(Qì;¾Ù²¥æÔÙ™C¥ïH%L5M›NäéÙ©mÛŽðª>Ož¼GPDóD•³¾–cA#¿ ^µJÊŒ§PÃÓ+ ã+"ÿ°¢SNž¼.'Ãþüse»F9pà"­\yˆ¦NmjW?[#§ŽšO—î=<ر$d¶ŒãŽ68ÉvÆŒí<ôðáSIVÖ¢E1Š3º;†×1ŸB@ŸZ.eVxƒò84jz&NäÞxÿýx”/_ØÇÖ¿¡L¼.gŸŠ4ôÅöGµXÓ z ÇIh6žð±©>|™`R6웚û|àÀå”#GÎÙ‘)ØzGΛ·›ÆŒYÏ)ÒëЧŸ¦t”ŒÇú!ù¯¿.eceÏžŠjÛûUdÇ€Õ# *pD˜¥Ö‰ú»wŸ£O>IjvJ8‹¦L™P„[ç¾ÿÂöÓ§;W»ˆ—Îÿ‡*UrÚÊŽW´Cø1R²\ÒÂ^KÒ{sÊ„"àC¨ÀáC‹¥¬*&»wŸ S€ÿÆW_}fv±é{àÀel¦ù€ŠužvšF&ˆƒk·n¾u Ì&?ü0[ü4pzm›6%Ô!Ô¦_’6RÞF@Ž·1Ñ'Š€W#ðâÅ+BŽo¿-"Ÿ‡]’M²BÛó[ìÝ{žÖ®ý—µÍC¤ko…é$9rd=ºEŽìü|öòdK{I½z- Ù³wòñ™%ZÇß² Ú‚ƒ¶Qœ‰€ ÎDSi)n@Âijg/YÃñAˆ£-_~>GÛZ ZN¹rA»‘ÑÖ.a¶û?ö®<Š£ Oq·Bqw‡"ޏ[‹-N)-®þÅÝ­8)îîÜ î®ûï—ÎfÏrwÉ]r—Ì<ÏewÇçÝÍηŸÂŠ„ÌÚµDœ8ÑìÖ÷„ ÐÑ2d-s2H®B…ìž0-5…€×# ¯¿…ja Dˆ/:m‹osé0Ù,_Þñ&¶Û·ûPÜ”66ût¶s€{ï±cë³¾‰³íƒ»¾Ï]òzú7H-Z#“ J|Ü7AªpÎõ`¨†B-N!àœ = W$ă/x߄Ҫ'¦ƒ¯Š_],€ÕÈ‘uE½zßë4Ç/æÍ›¬cªÁ®F nݺbÉ’%Nu«§àR•!‹sa#·åüßÏp|Gýh@©3iÒ¸Nû밆… ÷Ä￯íÛ—v©kc&–=Æý#¦MÛE ,bùòv"Q¢Øé*ÈmªT©"Ö¬Yä~T @ N:V‚M5R„ Ðß°ÅÝÀŒ ¿Q¼xÆ=Ê™?zôоP±‚¤³¡ëeò½ eË‘#™èÖ­‚Ìö˜#¨J§v'í@8ñ±‚jÑ¢ÖÂU^S:TWiÙ²%Yõ”?üðƒÛÖ¹víZrƒ?Ѥøy€5Ä÷ßo’ïèÅ€D”(QÈ]}w1nÜ8±~ýz“¦ õë×'uéLòCêbÒ¤IôÜ.¢ÀŒgDìØ±E¡B…ÄСCEÊ”)Ý:¥7oވϟ?“>WL·ŽƒÎ‡Ãí«®AG¶lI­v¶mÛ9‘)Sb6qµZá¿LøðwîÆ¡DØóÛyóö±‹ö·5ÁyYµj‰´i¿[·þ¦ˆÀÞX+ívîÜ)®^½j¥ÄuYׯ_7nyòäá_† ľ}ûÈÝ|9RôݨÎ;'.\¸ÀmOŸ>-þ|rx—Qܺu+Pý»²QóæÍI,Ù–â#¥£F5jÔÀý»ï¾#˪»®Ê¢¯-ZˆFYä»#Cî@Uõ©p1ð0Š)Ù²Y×ߨºÕG”.Å7ŸcO¥Aán€«Ñµëv˜U©RN»cº³ÂÇ/ÉÊf2>H—¤2;ûúëÀRîœk`û~òä‰xøð¡øòå 9u;L\¥Ü¾L÷îÝK÷ó_¿{÷N`ã~ÿþ½>Α÷ñãG½6ð³gϲ9½"ܾ}[8p€ëb¼G‹ùc£ÏÇS°¿í|”•^¼x!ž?Îí1¯‹/Ê">‚0|ûö-¯Ÿ>}"nÔ;“:ƒø;VüóÏ?"bĈä˜nµ^;vLœ:uJïG/¤Ìå>|0fóù7ß|Û96ôÉ“'³è1Íž=[¯k«ÿ§OŸŠ{÷îñ˜ „°¤×¯_3aàëë«÷`ùêÕ+â:¾dÂIÞ»wïÏž=ÓëïØ±CÌœ9“ç6gÎѬY3ñçŸ2Gë2¡O"hƒ¾eÂ3b$L€-î;8òÀÚ®\¹ÂÏ úAÂ}Äð,™¯AöíÒ#§’B@!àáìÝ{IKœøíÞ½ç3½qã—íÛwÙ¢Ì<£V­ñZÆSͳºþñÇIZáÂC42Ãuª«+c½9söÕ ¢‘VWwï¶þèkR#Ç_÷ÿ믿j$^ÐR¥J…]N .œF_Ãm |¼#Fhô¥Îe&LÐû¦U >¼F›‘6zôh-zôèZ¬X±¸]¥J•4Ú„¸nŸ>}ô¾ãĉ£Ñ—¿Ö´iS.KŸ>½F¬}>)ÝûÂÜ'Z´hÑ´åË—sYƒ ´Ì™3kñâÅÓPó¢Í“ËðgË–-œG›%çµjÕJK Ÿÿõ×_\Æÿý9räˆF6eÊÎÙµk—öõ×_k‘#Gæ‰辟ԛôîÝ›ûÀ¸X#q ô5Xˆ×¤W¦Úd5#h:t°Û?úΖ-¯ý¡¤õêÕ‹×)ñ$F<÷…û…k‰0Å}Äzäüä܉»Á÷’ˆ$ãôô9‘©Ÿãžã’¨ˆ±#â‘ËÚ·oÏãÉ._¾Ìã?~\#"’Ï«W¯Î÷ ãw"ù9’s"7å²¹ÝcíÚµ5ò4j·žyÅá ôURx:gÎÜ!HL‘0a,‹©‚»åÏ|ùR[”3ÐmÒA22e÷1aB£¦ Jݺy͈îjË7‰qýÞ|¶çΙ»} è;€Ž\LO›6Š“‘Ó·âd¢¼L_êÒ¥KYÿ‚6)ADÓÄmhó&'qøë\ ä÷ïߟ¿š‰`±àNèÒ 8*øRÆWzùòåéyjÅ_ó¨ãããCâ­ñÌÉÀW;~Ò£*ÄݺuÓu .éÔ©“±kò‘R›ÐÛÀ"ü‘ëôìÙS±ÃœpS 2d—!6 Ρ¯qÿþ}^äüÈð%=ü Nþ¸8"Ô?Ê¡[ñí·ßŠ£G2'eذab̘1܈nÀ}Z¹r%ªrÂøàF@´ŽîÙž={x~DênÁ/]º$ˆPcnŽl+E‹¥(Îy™cÓ¸qc ÈXÇÃ}‡ŽD!’{"ÛØ:‚›Ž æ„6+V¬¸×À·Zµjbÿþý¶šº,_)º JÕ‘BÀ}@#{v[â”s¢hÑ "B„€¿¦NÝI/¶$\703={Ö—\ƒ¯#qJ‘3gòÀtä6Ïž½!ß é¥y^ôí[5ÈŠ¯AžP0u€ÍºcÇŽ<ˆ lôÅÌŠ~ؘ±y 5lØ ˆ>ˆ¬÷Y³f±òdÒ¤IÅŒ3ˆpÏ›9Øè"D £D,T¶|y‡…ÞÅêÕÇè%ìÿÂ5–Û;‡åGÛ¶sI¡/ÅJ)e¯º[ÊáeµeËÙü‚^±¢Í%¥[ÆñÄN'N¬O Dô¤UôˆuÍåµjÕíÚµã/mlb°Ò€"6)Œ«è8)R„5oÞ„»ü\¼QËAR¤°åPl”‰Xó|*õJÒ¤I#‹øˆrYfR`ã€1¨‚Ž$º!ß*¿ó<³dÉÂ\Y—Ä4ÄåÊa²¬É˜À- hs¨ôkHÀû—_~!/ÿ2g){öìL¼qáŒ÷ ø“hJ/6Þ3ÌkîܹÌm‘÷TV…¶Ò’Jµ2Éþ­éÚ@WÆ<ᙑ ë€~Gp§€?‰‚{6j<…€BÀøØ¸|ùs'Ì !"A{N·fÍÚÃþ;jÔða™÷ÐõÀkHqñ%™6`‡aÕuG,b`…’.Ý7ôÕÛ5LÀ”# æ” ± Ä) 6bĈÁbp` 6WÒ‘Ó§O'1]B…CŒUŠQ¹Ê¡HàÀ ËÀAÁ—¹,ã Nþ!ý…Hˆ”@,µiÓ†¯ÁþÏŸ?¿Þév°8Ü™°>Gˆ¢€ú7ïÜp_ÀÝÀÜ 62¿Gæ×æ}Èkp; Ô»yóf™ÅGˆ†À•€¨,Q"?ÇuP–• ¢$Òí᱊²æ »¨g‹‚:îNŠàp7ª…@¸té>}Í}&™u‹ž¶n=GùI­êvÈÊpÐ… û§ŸŠÐ`x™íðq×®‹böì=bøð:ÁrþÇÏlƒX-:”a+”xñ¢;<÷°Xb•­[·’#¸-º¹#Ä Mš4aø:Ï;79ƒÅ‘ ô H9“u/ k±…­$u< F÷Üp° .\¸­ÀÀ&HÊ©\=ˆ: ÿ´xñbAŠ—|.ÿÀ‚?è—À\säÈ‘¬_€/r Žp„ßX¯ÈM"ˆX Ã¢gøðá¬+!ûuäPÿæíÁÀ®ô)@¬@GDZ™×è&±Ð ùùçŸY¯'2eË–eñt,ÀÙGz*Àk…¥ ˆˆkÀ=åMàŒ8šÀAfèÓíÉ\‹T]+ž…ÀÒ¥‡ÉB¡«FD‡ÅÄ ¬QÈu‹|cÆÜ¹{Icÿ7íñãWÆl‡ÎŸ?«åÉÓ_ûùç9Õwe%ŠìªU¬8ZË¡‡¶iÓWv¢}9k¥Ò¥K¶ ‘“¦MX#®¼ÔH1“­dé?°¥ºÕÊÈ[7H+Ê•+k¨‹D:º,!è«Y·ð ½ 6p®« "VtkX¥™(—ÁJ…6?›6.-nܸz;T0·R¡ V#‚Û’c.È„ôqx°d!ÅN®C §lõA=¯Ÿ”<5/i¤ƒÂå¿ýö›Þž8éºèV2°RÁ\JõO…FDÞs""€Çƒ°„æ«`O¦­z}" c™A ³éºÈK8JZéÒ¥õù àL ½ð#ý®ƒqHÌ¢‘ÁåD0°ÚÁrF87Z©‹ÞÆ—DDø1ŽÆõémœÖJ²(• F`À€ÕZÙ²£,fxåÊ6‡=xðªE™1£hÑ¡ô²[bÌrøœBº³éé“'¯n㊊\Ñräè£+6LÃ:CSr–àpví0ÍĆG_¹MIÞ¯Ñ׳FVeä{C#+"l?i*TÐ cEÄÁÐèk˜ëË@p`Ó¥¯|Þ(%1c¬ÔsÌŸ8%z7$ Ñ dbã%?q>ô:ΜØëß¼/Ìmd"ߌŸ¼vöHb6c%ŸV›’n†F\$Æ@šàÊŠÄ¡aÂæ¾Î&[Y}&lõX‚C)¨’BÀ“ðññµª¿è°±cG%³¹T6§:Ðÿ˜1£™Í:¶ 6l8M,ÚäÐÖÒ¡€p¶úq6â›~ýV‘~ -߀¬";ÛE˜­Q Ì>id½9Ðu€©¥µëüIÐÁÏZ‚R+”(Ý‘0üd’J«òb©L)óœ9Úëß¼/iU#󃢯‚> ¢1*wÊ~åJÀ¿XKÐ1*ôZ«c+¸Q¶Š\𝗩:S¸sç|EÉ’–‘XAL/ž‰dɶ &³éÓ'tjbÄÑ Ÿ ³7QlüÁ‘ Û£ÇR’c¿ýVž|4|ƪ1 ·ÅB(…´qÙ[4|\@¿Ã<ÁÌÓ¸á˱ùBQT%…€-Áa •¯ðHï‚­C2gö7‹Ä´ ºÿeñǶÍ\oÝzB x>ä;à'§Wb#jÔH¤|VÃé¶i§y󙤸æK ªÍ™»˜~Âz8£rE‚²¦µŸ¶Rß¾}m©|…# õ (<p7²d1µP9xð 9Gú$J”Èhsösæì%sºX¤ížÕfkË—!+ÓdVÙ6XÄçÏß% ŠélÚ÷Ï?T8yk7Eå)BÊ,6ÜDµ„ЋÀÅ‹÷‰…ƒÆUîÞ}‰7æo¾±tuŽz F/>HÞ ’ÇFÇÿÍá ì÷ßW·¡(¹NNgÒ-ç›7Ÿ%¿c9Êíúõ±á”U§ Ï@@q8<ã>¨Y(¬"páÂ=«›ðž=tQ¾fÍqò\øN4hPÐj¿¶2áï"nÜèäæº²­*.ËŸ8q¹–^Çz"ÆնëšÝe{@Gð{Ç\!•ž>}/"GO.ÍÕR÷À›Ç…›xø_q6©§ÍYÄT}…@0"pñâ= qÊÓ§oÈùÏr÷\ÎæL ,Z±b‘ AL›uÌ V¯>N®šÏeJ;Òßð‹×`^Çן>}ag^ÝôëW\msE·^Õdãz¸{òáÃG'§oɉÈHÎÇðác‰/¶“³ª“îZõJPG(½±jYa î’{jS3¸}û.±eŠ-‘Ç©S·È¥ô næ(rPÚ„("˜‚Ó:ÚÌéz/^¼cåPÄE¹mÉ’™œîÃÛ n~îLÀnïwï¾HJ/’çÐûäY4U­–»"V3 N¥¯ê÷ä–º#ÍÑÔòÆc„Õ>`R|øð5r‰}ˆŒKd{‹œ:"zkRRÎÆÖFùó§fË£°Š‘ZwÈ# Ž¿j «@)CS‚cÏžKîÛ4¦ìáÛ!éß¿šÌ²{„âæÊ•Ç(üw+ ôå'['NÜOg«™¿ÿn`ì»V8tÛ±ã<…ª¿Àƒß¼yOŽŸ°nO»v¥Xé7Nœh -…€Ç  ¹j" S@pÄSƒ•ݹóŒm=¤Ðâþ¡®­–,9ÄÊ—µjå5fÛ<‡bi÷îKEíÚùìFœµÙ‰˜Ø¶o?Ÿ7À)Sš¢b$;-T±5^½zÏ"’íÛ}ÄöíçÅ;OÙÓl‘"˜À,Q"E ‘Öæ§òöP‡=„T¹B „¸t *¦B!%"¹3OmuVsçîuêäsxSGØùÏŸ¿˽ºÕþ‚š9uêNê{ q7 Q¨íšzE êX¡±½Ï]Šüzޏ9r"¥j"W®älÙ#W® ÓÐxãCéšÁJo¬Z–÷#–¹5qJ¾|©­*ûíß…¹Ó§7uhñ¨¿`Á~öDêÖ{ÿþ«©ï¬¼úóÏ%šSX¯²{÷^¢Ðòç˜Ð–F .š4),ŠË¬qmÂúýPëw-Šàp-žª7…€ËÁé²!@IDATÓVc‚ÕAóæÖÍH.<À_¼Ž(c~øð™D)³Ba¥J9Cù Œ:-¤ b§ÄĉDµj¹ƒÜghîÎÖ6m:Ë?p°à´-GŽäâÇ¿cïPVI!PGh¸‹j ¡X§’&õ·:€9,œ}Y GqJµj¹ ¶Q tCZ´°.š h bêÕ›L ­°ç˜þBK›C‡®'ˆûtJܽûL¤L_T¨]Œ]o¥ä€u¡e­j {(‚ÃBª\!€Ã‘&M“‘ºJºß›äáNžÎž½#†¯cQfžñ÷߇ÅWI¿â«„‹y}G®1>8©SÇsæ´ óJ 2Ö®‘qRÜ»÷œ¸T Ùªú8æQÁWÕQ„ÁZî¤ZG¨BŽtéüÅ)Ð߀ûqkÞC,8À |1”Ð~àÀÕ¤cQĪX& ¶¶Ê`QÑ´éLËXǸ3‹­9xBþÙ³¾bÕªcät호}û)y‡MÌóªTÉiaiä óUsP„Šà ÔÕ˜ ;@Æ_­š •ƒ¯²¸$[¶d&-aF‰®k×ò&ùÖ. XÍ><ºw¯h­Øé<(=¶i3‡D9Ä_5SÑ^Ö{èÏ€ Lž<ž¨Y3žÉcáŽÞipU…@(D@¡ð¦ª%y7pîtóæQÈ•€àÈ›7•…¬{˜QÚó,zàÀ ‡~X̘ÑÌ!=9®­#<švíº„ƒ½ Z+Ìè"@1võêLh @<ÁÂÍüŸúédØÂKå+B(‚C= CΞ>|øÄq1äÔ¼"ê×/ /õ#w•/ŸÝÄý¹^øß <‰ö굜]—Ca1¨iÊ”ì=´cÇ2äËÃ5Ü’ ÎÉíAÐmÜxZ@ÿÁÑàšúݺUà¸%Ö”xÝ9Õ·BÀ[P‡·Þ95ïP‹ÀÕ«ymPÂDòõ}Æzß}g6õ!tÑ¢Ö\ÏÖŸ™3w³Ò™3›Ùªâpþ¬'ñÉŽÝѲeq‡ÛycE` ®Ðš5'Ä›7ØÛç¤IÙ”U…u÷Æ;ªæÒ(‚#¤ï€_!`†ÀõëÈÒ#ºîÆ!‰1¼È;…IMl†‰Ç!‡QLòŒµQ´m[Z¤JåGÀË9ïÛw¥˜5k›tÖ­›Ï™¦^S ŸÀ?ÜX•üúk9Ö͈?†×¬CMT!à‰(‚ÃS˜FÑ`ÄÌ,áìËÜ1ÔòåGy#üꫯlâ5hÐZ&\:t(m³Ž½MÓH|°”D ‡¾ð+Wv­+t{ã»»Š·0a]´è ™ __ƒqQ¥ÌXݾê?,! ްt·ÕZ½«W™øà€Â(Ü]6ÆÛ·ŸPdXÛaèÑnùò#Ä•hnA¬û èúˆ‹‚  §eÊd ¨ºW•ÁÈÂ…YôíÛWfΜ¢dÉL"|øp^µ5Y…€7  o¸KjŽa ë×’‹r?“ØgÏÞÄÝèÕ«’ `ùƒëaMVV¡Ð³ç2V-W.›Ìvêˆ lmÚÌ;vœsç¶dI§:ðÀʈ93Vxf…³48å‚kñ:uò¨xëKQSRxŠàðº[¦&š€øþ¤Hâ$8Ö’éÝ»ä.û$™¥VYÇ *ŠbŒæÍg‰#G®ÑæÜZäÏï?¾Å`^e 26l8Í1gà~ذÚljìÓWST„ Á*n£ZDhA\ÁY@Ì $ˆE2fL¤+"· wP³¦¿c0äËôøñ+VmÓ¦”N¸È2GŽè»qãiâÜ9_Ržlë2¯¤ŽŒíÊ:𬠽Œùó÷÷H|ûmJ1xpMæÁ´U%…€B xPGðâ­FSˆÀÍ›¹)ª¯çá×ì|jâÄFzžñäÌ™;üU?n\§ãš¼~ýž6æ©‘_—/oçU4t3à˜kþü}L,›1bD]öjnÝcÄK+Á‡€"8‚k5’BÀ.àp$OîÇÝ8sæ6‹W°yÊ…ÇèÑ#³E…Ì3á+ãÛoSP<ëâc]ãù«W1…õG@l@™ÒÒÑ£7H¡u/Gg!<¯{âÄÆ"kÖ$Þ0ý ÏqÞ¼y$þjä~TaiÓ¦‰-Z„ØbÁbЫ–€àâ”cÇn°å„T EmˆS»Ãš§K(’BçcýúΖóòå; Ÿ>YܹóŒÅ(Æ(µ4 ±"蘀ðš={[šdË–”\­×`ßaQ7#bĈbÁ‚!v?ÔÀÞÀO?ýâUGˆß5…€? 8råòó(Šà`ò5` EÎ!Cjù7øï ñ>\#j×Î+ræLnQn+ãÅ‹wâÇ'‰û÷_°%Mš¶ª†x><Ξ½W,YrPÀЦjÕÜ,61÷Àâ æ „ ŽÌzëó¨j8oC eË–!>eEp„ø-PPø#l¤HÇŽÝ4qìµjÕqven®DŠº“'oOŸ¾½{WÆ¥C œ~˜$>ô#6Œœ‡:†J0޶͇]ªoß~^$MG´kWšÙÅ‹=f †P(\…€"8\…¤êG!D *€RhŠ_ ˜tJSNÙíš5ÇYœ"¯å܉qã¶ Doýæ›X2;À#t6 FA¬•+Úëbœc!”@/>È p}ŠÍ |îûï³’ ۮ܃qŠj(…€BÀIÁá$`ªºBÀ] ,=R²dqÄ)HR¤rêÔmè°Ò)þ÷gذud"]üüs c¶ÍsD>…‚(t6<Øðñ¹K.Ôw‰•+‰‰ºuó‹&M O×+± ¶*P(tÁ¡C¡N!‹€?Áb—œâx*2bìêÕÇÙ˜¹~t:–-;"&LhhU‘Ô|Eð³ÓWèC,_Þ^¤N´²æýæb“M›ÎŠéÓw x……L¿~ÕX%,*CÕF!à (‚Ãî’šc˜@¡ÑcĈ"bŊŽܹýÍa×®=.jÕ² ÔEQ!Õªùé}D6 N—/?`Ñæ@¬O pñI©R™éºµ(^}út"ö—‘ûÿ#ýçÌ™S´oßžžãRzubŠ€ ‰hЇºR„ˆþ q Ò‰7…´¾8rä:E†}jAT ¨Ú®]Dß¾UíÎVMšLgK¸+I?×®=}úÀ_H²2YÏ„ÆîÝ=É;hKElؽ“Þ]áÂ… bß¾}n]Ä»wïÈýÿFâøEyòä!×ü9Äëׯ)H_gÒsꨱ=z$vïÞ­·E?°úˆ#Y‡ ­[·&®áuòSVLœ8Q¯§NLPS<Ô•B Ä€NEÒ¤qYWQb¥Ã/ˆS@ dÊäïfbˆAƒÖŠ ²[¸>7_b³4o>“}V€Ø@l–H»w_d±É–-çȹY< >Wž¾D¿c7ì!1Ÿ°8æ“'OÄçÏŸIççkqôèQÓ¥$EãoÄ›7oˆ«v\$I’„Äl~únÞ¼Éj¼xñt¨nß¾ÍyqâÄá¼cÇŽ‰÷ïßó¦=º¿ÕЫW¯Ä©S§èYËHo£’2ôCKïˆN^¼x!ðG‹M:tH$H€¼Ûfà*>| ««§"a„âüùó\‹o¿ýVDŠäí@X€¨€Yð§OŸø%J}ˆ† ’X®¶~]´hQÒYZAâÇ zÖsíÚ5&L0cºΞ=k1ï­[·’’ö81räHz†»êM:uê$ªT©ÂyµjÕqãÆ¾¾¾¤ž‚爊¸(C¼Ï;ÇGpH$÷kÇø¸7`\Þ¾}Kÿ7þ&︗ÈKš4)÷åèÆ©¤PxÕ«ÿ¥õè±T[¶ì°–*UWíÇOÚë×ï´9úhþù¯É )ò©–}Öš5›¡eÌØS;yò–y±Û¯±†%Ki¥JÐ'þE«Ys¼F[µ/_¾¸}ì°0Àܹs5Út^꯿þJÏMrz¾Ri´Ai´YkmÛ¶Õhcãkä1‚û+T¨V¢D ½ïh´!j´aÓ³tR#bE£/|í«¯¾Ò’%K¦ùøøp]?h´¡rߨŸ7o^ˆ.ëÝ»·–;wn>oР–9sf ¿Y³f\¶jÕ*¾.V¬˜^†º·nù=Ã[¶láò;vpýV­ZiD°ðùÝ»w¹léÒ¥|??~Ô2eʤ•)S†óˆ ÒòçÏÏõbÅŠ¥EˆA6l˜^k ¢ŠË±>ÌY®á‡~àõ¢OótâÄ n3eÊ }O"jôjD4i½zõâkâöðúQã'J”H#â‚Ë€S¶lÙôòQ£F1ž÷îÝÓû*]º´ÉýÑ lœØG#O£6Jƒ'[‰Tèn«¤nºtYL¢„ü+\x}éO¡/Â[$>,ƌـˆÃs2˜ÊB$ç^HÐÅ9r$K›6} ¾±:}z… yعó"‹+räHfµž;21§¿þÚ"òå(~ûm‰È’%‰Ø¼ù7Ö)_>› —¸;†U}:€mÚ,^ BÐÌ"":ÄóçÏÉ*¨® M‰{‡`×®]d:ý€¯W®\É_ê´áwmm£ ¸àDLž<™\ñðhI4s B¹ÿ¾ÍY‘ÂúøRŸ9s&ÿÖ¬Y£×Ç×;¸—.]?={öä2pfºuë¦sÊ•+'Àa0&Ú¤™ÃQµjUâf"qâE?öå*п@Ÿk2dˆ:t(‹^Pá·ß~Ù³ggô7À¡‘ ý Œˆ™¥‘®ËÕ«Wõ<['À ÜÌÜ"€X÷ÿ·HgΜa®8Q¸øŸ‡ ó!b‹ó9ÃKþ(‚ÃKn”šfèB ]:°ŠïÑï.½˜Qpž ‰×¯?Pð´û¬Ø™$ɯNý^øÄ‰ÛxóF¨uœCá" ø«(^|˜Ø³ç’@¿ýö7)¹&_Í©­›Ü¢’‹3`ºÛ³ç2o;#ûá‡üÄ.ïK,èa&¾‰‹!uywج¡ƒFñâÅyƒ$Î)+Ç"?'ß3¡€AA|€Å/79âˆòå˳8&mÚ´¬,ùÇðæ·ÿ~1@,E»víX”€zM›6µ¹úŠçMbÔK“& ý/ìÔëƒ@À¦œ.]:.Ç&‹„kŒMœ¾®Y³&9½ëÍçòq X‘%KVÅú@H a‡²'qÚÈ"l/_¾äÒáÇ0A[ˆb "‘ ú èËZQ ÖÊeô=€Y… Xœ¢úÀDR̘1™øƒ( î ”T‘@üà1ŠŒ¸ÀÃÿX’h>a5=…@h@ÀÏ[¨ß—Œíõh$o÷«óùóñèÑKѽûR’ÿFg`qãF£M}å¿"Ï›“鼉¨X1w¥LÄ]³¬"EÒÛÂE%\S¦ì`óVÄ‚éÝ» ¹LÏO›…ŸÌÝEèn\€@âÄþº@Ø´ '€Í ›¥ü†ž6DlrØØ¶oß..\Èõ°¹ƒã0zôhA"æv ž‹ä†À"D&8¶ c$û@¾Ô'Á9æiä4 / ¢Â¸!cƒ'1™^ïe]¸ƒ¿sç%ñãÇ×»W€ã 862aÎàŽXKȇn‰ùºd]èÊ Ý¸qƒà Í™3‡Ïñ‡DSÜç ª@lÉD"(®0ñ}XÇxSRoº[j®¡9’ÓKÏyz/Â'O^‘ùèú:ýƒ8[&-[Φ ^!°BØ—.Å)ÌHµÂáú ‚àn½|ù?)pÚxíLŸÞ”^è½èk´ˆ"6F2x+‚¨p4aÓWbXd@<´yófñû￳¸,l” <@ ‘ñ' ñ”(e’Š«FÅX¾gÏ]„"Û8s”\ Òƒà¹c3‡õ CÊŸ’ø8}ú´Þ=82Áìʲ˜L°TéÞ½;‹š d bFâ åO$(낃å\¤1cƈ¸ðŽAÑÖZªQ£†€R,îîI£F¬Uóè}úð&*­@f̘Ábèo@ìn¬ÀÉš5+[»` Xâ4iÒ„‰è€XK¸Õ«Wg=ôî“·%EpxÛSó 5.œž^xá½ÈŸ­%x,={ö޵"›y&l¬S§î ™ò«õ?~E/Õ "oÞÄEù‡dÎYɧBoå4Ö]°[m¨2=ƒÐ— çæ×² GKàëœ,Hô¢=z°-¸`ëÄvÀ€,šs/ø¬€é'ô 0&#AŠθ°ùcó†s­‚ êÕ/_¾ÌýÔ¯__”(Q‚}^ „LSqDÂ?”N‘dÿà:%ë>€s}Ì œ p# ü Qüt@7EêI€“ƒ5€`…T²–Ñq’f¼ðñ!õN€ úÂðÃ]è4oÞœ•b!‚ÎtV0?èÆ@ Æ æ´€p’÷C®ƒõßpœp/p±ämé+ú*rœ‡êm«SóUx0ðKh­îHpV³f^âXüH/7ÿ ÆÚX°&>|áeGb­Z׫B©Ñh¡=zdÚxŠ’,¹m¦~ ôê$ØÀÆTÐpW‚ò$¾òáWØàCþ3 bÔµ@Ì:òÁQ߯„M ˜à^@i¢égcõêÕü5Žƒô"Å5Æ>‚r.}`À‚ãÂRÜ©ã|d€`’~GÌǃ… æŽöèÿ?°¤DZàÞ` @Ìæ€ö8Ú²|1¶‘z(hƒñœIX¯-Z8ÓÌ¥u#¸´7Õ™B@!à0yó¦â”-NE@Ñ{ØÂ¶k@cåÊ£²z‘#[ÿW'ÿôÚ¨w„¹Œ¿•u0Μ¹CN’¶’ׯ3dqOôï_,òÑW¯÷}Yé T'#qœ\A|]ó…S(aZKàŒ€sàHB?Ølm%[ ˜¶ê;šqsçè¤ Nù °;pwŒ ²¨ Š1AÜd+Ù[»±Ý¬Y³˜‹QгƱŸ<·þ É©±aXpÀ?Å™3·Z18öˆ°cAt\½ú€ÌìîÒ‹ÕßC¡ â‘1c,u6 ”Z½ú8Žç‚hµS¦4fëk,^Ù—:†> ®€x_ì7ôÁ™0Z|ÈŽàUTZmÈÊUR„FÁïªZ“W!P´hàð#44r –’<^çu4jTˆü^Ô&³ÄÛâĉ›ÄR÷[BÓCO‹½—è ì7ÑÛ€M‘ Ä,ð ŠM žL=‘à€>ÄBp@âs¾sçÏÙÕàè }ƒC! ãÄEååaA&NGçFdϞ̄˜A±—+œIáþ©¤ðt,”FµN:SñôɇÕùÁ¡Ž´÷6 àÑÏÜžßÛÖàêù>x•¼ÆcÎCĈ~º©S?'?q)FÅKrçü‚‡¼x1Å™ˆJ>Þ‘ñœ\MûÉôíÍçòå8ôÝ¢ö¨>“ÏÄÆÿL:_øºE.Õ³Šÿý¯é²¼fó`˜8pEœ|¸Ø°aƒÕrOÍ4_W“&MÈ!SQ»vmœ2dÛk֜͛õÈùyò¤FŽ)òäÉ#J•*å¶i®X±‚6ÓVûǸåË—·ZæÎÌÏŸ?sèðX±bñ0Æ ãÈ Å‹wç°}Cïâûï³ò…ðâãs—‰Ã‡¯1"C&øÊPI! ðLÜJp¬]»–<ÿÕ>| 3’&MªÛž?}úT<þœó$QãëëKŒ"‰øñý<0Â9ιsç8´¯ÌCH·nÝ(Ï‘#‡_sÈÇÜcÇŽM¾^±£*”#d²µuMž<™'ùǯ@›£Gòðu3¦ŸËé'OžðKŽ»°‘¡ ÌÇw¹#ü lÙrV,[vDlÝzމ x ”^#±.oK>$W1KlÌi{ûøñc2¼#Ò¤IÃå ø€/¸i(G’y¸çð]‚kˆu<ïrü{÷îñsœ)S&=õð,ß¿Ÿç+ èxݼy“ל>}zî8a­Hèׯ¿þªÏùÀàÂ… 8eÌ¢E‹ÆçøÏü•+W¸ þ×]õŒó fÀ)S& ÿÌŠÔ¥B@!àIÐÆn’èå¤mß¾Ý$/  z‰jåÊ•Óèå§ÑKG£¨6uêTmÛ¶m½PáY£—víÚ5D(½ˆ9^èZîܹ5zêÝÓF µmÛ–¯·lÙÂõvìØÁפˆûÇ8è³lÙ²9ÁÒˆCÂãtïÞëíÙ³‡¯ÿøã¾þý÷ß5ŒE„ ç×­[W܉¸ÑÈ“!÷…>1Gïpü¡A+\¸0ç˵-_¾ÜêºÈI‘&ÇÛµk—F›¯‹6-A‚Ü}ÒK[Ëœ9³F/vîW®ƒ<&¢Ø¡D„ŠF/z½.¹TÖ¶o÷Ñ:t˜¯¥NÝMK’ä-yò.ZâÄ¿XüôF!xR¦L­bÅŠ4çíý€eü\/Ú(P€ï æÑ¨Q#ÎÃs‚þq?IŒÁýq«µhÑ‚ÏñlgË–ûÄó‚gjÀ€\†u¥H‘B£VŸk… ¸l;Až35"ôk"¢´jÕªñu¥J•4"Èõ2Ô7þþúë/^[½zõ8_^·jÕŠ¯6l¨?ÇXC‰%´­[·j›6mâÿ¬óÅÿcË–-¹Í Aƒ¸ Òú|1àøçŸòxh‡6‹-âçXŽ7vìXþ?žøßÀºÐf;Í÷ý7ùÿOÞ u¬QÇÞ÷ÿ+*)¡ [©,[¶Lüûï¿üŇ¯Î.]ºz zéÑ—ö2zgù} á‹_pÙ³ggô7ðEiL;v$Yí÷œ…¯¢nݺ1'_JÍ›7ô²ä/;|A‚C7ÙEŠ]»v£FDlˆfÍšéy× ÎøñãÉÛâ1þ|A/TADç-\¸tÖð׸=zô‡û™âaD$ñW¼{BŽN/\æ’˜¯K®_†pÇ\°`AþBç¥P¡B‚64æì æÞ¦M³_¿~‚6æÉ>=B~Ý»÷ â(ý.êן"V­:NÜ—ô•-,¼0:Ú§§Ö÷Œ691{ölæ¬ZµŠb|ŒÐ} M¢en'¯œ DΜ9)ØØN}8‡ \‡3fð³±nÝ:îëàÁƒÌíç 7¡‡³~ýzñË/¿0×KïÄìsY°`™mþ#òçÏOŠÿã{‰jàÁÃÿxv¡›´w/GãMÑêÕ«™eL\nC_ˆ|‹Ä<^B<â/Y°îñÒΗ/×kݺµ.ºÁ‹sKÞV‚Kfˆ&Mš¤ë¬tèÐX½eô—<ð¢/o³K—.9äßÊr3gB\r•D ¯iŒð´øiéËàQ¶æ†üŸžPq°”=~ŸDn~±AD¨|fp¿&LÈ›ÚC„¶?ê€8÷ÿĉ‚8_ÌÖA‚"lô¸ÏôÕÏ,Äv 4à{†{ÄVªZµª¾gu@˜"¨.]º4ŸwƒûÁ³Eœ2Q¬X1Η~úé'yÊGˆV¤xŤ࿋¦M›²b)"Pxî±F4_àIŽñq9XÜ¢D;þ§Ð±7ð" Àú+æ €žUü/ƒx‘ó­Q£ý 4àvŸ8|¼æÌ™Ãñ™¼Õ?/DýQ(‚Œ@ ¼¼'L˜À?sð†ÍÜH<`–à*sˆ¿ 嬱É;’ cN1%K–Œ/ñÂD6ïèD^€K“$:Ð'dõø“ rwO2ƒÜ`ÃB’z)²Žñ(_¸øª–I¾d!sG2ƨÁË ²}•l#€ÍS& ò¾#÷ Ï6õ1cÆ0€ÍúPÄÄÆØ«W/&nÁ ƒþ¸àà~b#&Ñ÷? hl%y?QŽçIê;˜+—¢\–qÅþà¹Àók+a-øÿ±ä:`ó7âö’è@t-@,Ë¢ÚøŒË~PŽù‚+P’Ï?t]d’÷G¶•¸ \ê¬ ÐšJ …@ØF ȸxyãËìf’å2 "cÂWXÂòÅl_뚟ã%ØßRJ™òeŽìhƒ¸_iøÚÅÆs¼ì°A)ˆF0ˆmÀ‘ ¬zÒ±—ôÉW?—¬q´Â µ$_Þ`sË—>扄¯_$ãËž3œø“9sb ämÛ¡!¢X¹òq]Ž+ü-mªáíŠR¦LiâÄhî©úý÷ó©c?¥NGGp3l¦aA”‚6·E••Iq/A`€ØÀ>Dm@"Æ„ºr5æã\Ž8—Ü.I Ë \ n€‘øD›À&{ ¨Ö1ˆ}Ìçò't<ØLÿs˜þ7d‚Ø‘t,Xì<ˆA%…ÿM¹Yßü(MÜÁ1‘k»xñ"W“Ï¿£÷˼ou­P„n‚¬ÃËøŸÀ†Œ—8 ø¢×A~Ýà…Ž—£|ùÍ Ù²Ô…ã b $hÀC§/6„ª†æ;Ä5ÐûÀFAŠv,#Ç×-ØÓøªÂF‚M¢è]€Õ‹#)Ž21® äÚ *Àê•sÀK/eÔ—D æÎ ^¦ØX C€5¬UŒë’_ר0^Þè m06tCðE +W&ÄŠ:´éà  þLœšÜÄ.D-BŽù¶ºrªÁÚÍcÇŽ±•8HxáïÏî—|FA à¹„Hº< HAtÂúÅVB9,› FÁó ΄¼·xVðLáK:#xfI9•»"%jÖŸýN™2…¹~òºû÷ï·øáùÇœ1Ìâ:ø7‚CÚb<<ÇÐsîžU_ xA `NõéÓ‡ÛÉqgΜÉ×Ðû@]ˆ*‘¤¸ļñgDˆ`€9;û˨¤P(l!dY}ˆY³fñFLKIž_Äß}÷±IãʼnêçÊ•‹9Ðá€,]&(´áß·oßfÅ@Ô³!(~B÷,s$l,И8q"+ B>±ñâ…ò êb^¨ƒAn  L{öìÉÊ«RÖŒ¹CñMn_¹Ð€ÈDÊâÅ‹ùËÙ|]ò‹ú#Xã?þÈ›¸*SrQPy®LáÇ%JdâßÈ‘uiÃ;G¯LÍb?ö^v¶ÄVbf~-óåŠœà‚³!¿Àñ\@GâüP§Z¥à™=z4ÿ@¸¿ò1žqLôlê ‚e9¸fà.ÀÜÄ”œa&Ž}p‡EMˆ;¤nˆˆ}Ì”•±É£=ˆ<»PHÿPtÆ| '%h¼ˆ¶ŠõcÍ×I§„6ÖJ7üLc.H ®à´Ï%žkèŠ á¹J²rø?Á<¡7Âù’ÈF;\»úG¿Ž¤×¯ßaõ–¸—þ.Ñi§ê(ÁƒÀWôõâ'ÿo?@pÈ®·¢£^ˆ¬ç®#ƇÃ\ŸãAïâÌIŠ$Ap€ÛŽ Ä5 PŒÏ?ÚA<ƒ~¥¯äÉ„23hÌ\ùŒƒ`¡à€<Œ:tDJ׉Ãz‘Êн«L"ÇR5Se …@!d‡œ·ù†,ó±qã'^ô`c&áë/{g6~kÄúÁK?[ /[k/\óuÛƒ €LH¦˜1£)e~þI׿!9Ÿà"˜»‚pÀW»yÂ}·ÍZ²uŸ­ÕÅ󄟵¥Vib­Ü]yØø­:~¶’Ô©2/a(ŇÖÊì½æm‚r ngÏÞaãàÁ«tŸ/³¥8*!Jk­$Iü?‚2žj«P¸—®ŸZÈöÑŠäÊ„ìL‚>z‚1ÃDÝÝoþµî Š©HÁ×A1ˆ^k ›=¸^Þ’@`¤=mÞä—ŃGŽ\#îÅeR6¿M—OÄ5 Gâ,Xvù‰ Á •ÄÖ Ä)žv'Õ|þ¸L¤âߥ:s'ŽŠTÜ9‡ ôín‘JPæ¦Ú†<ûöÝ!ÅØDPDçÉDŠäçkÆTðk{ž‡õ%NârØFH•(B×j0†Ü:ÔÈ …@(@ P¡¤¤_s†QÉÜŠ G‰ ˆWNž¼E^Vo“¸åU(@C-A!ºP"•Ðu?Õj^@„ÏIiý+v%Ë¡Mõب§ak#F + YzqäȈp‰Ã?ˆZ’&C"—¸,vÁ5ÊâÆ5UÖ«…€BÀå(‚ÃåªÎ#pÿþkÒ‰ÄÖD8úú¾¢Ñºbªó½{g‹,Y’ï’ŸH/ç!™ÃobGwd½KþMüô7ÌW•>ý7dnü Y•=£ßsÂð)Y =££ßÏÇÇ—óŸ>}­7-’N€A’8ql"Nü (`«¤P›Ì:Uò<`â +oNpÌ%}Cxó:\5÷OŸ"‘éj2Šíò‰üXhd.þ€ÌQcQ0¾(ää–>Ìýû)ˆ(yJ¾8^êyŽœ¼xZ£’5ÇGú}¢q>òÏïü“#]køà1¦´iOžd¦\‘Ž[Ä¢EØß‡QYâ””)¿&‹¸"Uªøü3öa<ûö!~‰$F@¤€89qâ*0+—)FŒ(:WÄ(1å” „K@ Ž a†¬’B 4"Dâh/Y0÷ È„Î^‡ªÜ½Àw‰ô¥àÞ‘ÜÓ;œ¸Å‚Ä=³ Ù^>ŒF¾jbó$âÄyOÄGlò3óœÌ@ã“UFtòó” ‘¯¾ GxÓ‘¥ÌÚPŸóÑ‘™Çÿ¹oM^zýÍÓí"DøBæ¯ø}¦ û3‰Ÿò£F >Âñà¼Ï³ˆ§fÍ<äÕ´¡µê!š÷äÉk¹ìäß›7D¿~Õ("r‰`›¼šúqHžþwôß \“wï>êóyøpŰñ!B$±ž§NÞŒ Â}"SÃs³½¤{©r…€›(Rd(|øß(°Îðsþ Ãïë=<±+“(¡ &£Fm`=°¯R¥œäµR€_ìèüË‚. BæŸÿ7 ÝæM]i|Ï“ñǬY{ˆ+’œÂ d´»žà¬¢Q·m;@á~¤ó[ŠàΠÆr+ÎÊ,Ö­·Cu®|%ûƺ_éœpΞõ%ï©cÉåw6Ý8ò‘þý÷ ÅdF¢†E¼¹{1ž‡ ÷q*ë÷ï¨?³Sc¹ù9šB…Ò{4±9C©³cÇ2Gl`nñâE§¸JÉÈ»rbâùÝ/䫤‹(‚#,ÞuµfAàðákfsñãnH.éBr§ãƇ¢~ý©¢B…ì,^‘ ¥ècùrD{Lʉ+)vŠu?P®9ò ÒV„/eÖŽè·C‡ÒÖŠTžB@! pEp8 ™j pP@„ÿk "cúøñ )”¾;vœ7qç-ë€(®”)óåC„äu=U–ƒÕíÛÛ&&À‰?;вe†jìO+ {(‚ÃBª\!àFöì¹Dăm s/›à:À‚"|ø¯ègýßuÞ¿ÿD–Û(zó1uêN«+èÙ³…º¯`µ ã¦OŸPüòË" ˜8HL˜°Í&ñbµ•éÕÌ›7ÒöÁ²†#GŽˆjÕªqMXH+VLlܸ1XÆì OŸ>åhÊh?cÆ éu lWz»qãÆ÷²‚ÕßµkæœP½Ÿ\¼x‘Û!òóuŠâŒ~|}}M+9pµsçNnë@Õ@U±þÆ TWª‘B@!à  Μ1õ9áH{.A ˜Ùjƒ:šö…•)mÕùå—²lÝa^Ž€K–´û÷ÿ.ªWÿ–ý_€xùý÷ôB{d^]]‡2à7dß¾}n_L*‹)BºGwˆøíFzH¿þ‘7½%K–¸}üÀÂfÎHÚøöíÛÀv¥·;}ú4ý¿íç¨ÏiüEŒQ¯gíäóg|ˆ¼b3qDËÁöæÍkUÌ{ôè‘Ø½{w€u‚Rh—”U[…€BÀ!Nœ¸iÓk¦½ÌÅ-æõ¡ð=z$&räHf^lr SRø¦èÑÃï ÎIÛ¶¥Ø<îÀûô©BAY²’9(¦Oß%fÏÞ+Ê•Ë*Zµ*AÜ4&}© × €MìîÝ»üÕóæMÞL²gÏÎ œ2¢H‰ ˆ 2èå<ˆ>,û¼Œ‘¶1.Ì­1WD÷}÷îù{‰Ì‚:ˆüùóSdà-äÆÏyÚo¿ý&rçÎM&ß½Ä?üÀã|¡ÁgΜXpHž<9çKœR¤H!À¸wïûp‘ÑžQsÁ˜ØÐÓ¦MK^dM-®°>ô|kk?|ø0[!Z4ðÆ:0ÖܤI}ž(ì\Ñ6Q¢Ddæ= §6Ö„µæÉ“‡Îù¹æÇý„{ƒûažZ#0<{ö¬ÅÚÍûpÉ5§’B@!Œ»YK‘¢‹–8ñ/.ý%Oþ«–={íÒ¥ûN­jÉ’CZ’$µ´i»i¯^½³Ú–¸*Úºu'µªUÇòœË—ÿS[¹ò˜Fb«õU¦{öì!~“ЈÍí$àú%K–ä#Ú-ZT£hËúuÁ‚5r¼¤*TH+Q¢„Þ/m8Zøðáµ &h'OžÔhÕhÖHaX£¯fÍÇLJëû\#'|\?oÞ¼#\Ö»wo6}>oР–9sfˆ¿Y³fúxÈ+\¸0÷AD…F› ¶|ùr½c´mÛ–¯‰°àö;vìÐè+œÏ7oެו'—/_ÖÖ¬Y£Ñæ­‘é%¯ó”óýý÷ß¹ªÄ©zõê<>p¢MW#—a˜£—O:U£‘èˆç‹y£mÙ²eµgÏžqùöíÛ5"VxÍÀŽˆíÊ•+q7¸.æóÇhĕрRPæÚ²eK?îÇÚ"n4"ÎxìX±bi"DІ ÆU%Dˆh'Nœà:—.]â²€Öˆg€ˆR®5âžËgÀÚÌó?~Ìmɇy‘Õk%R¡§L%…@H °oß%v®رÁÅ0O#†#3ѨqHàêÛ™T·n>1qb# €Vœ¸#Ö½’B™´bÅäË££X·®3Ñ¡Ã|úJDb—­âéSçÙ¸ÎÌ1¬Õ¥…Å £GfV7¾Fñ…»páBf¿ƒÛѰaC±k×.ýËvåÊ•ÌQw`РAÌ ›í&L(&OžÌb‹Ÿ~ú‰9 øZ†ò[‰ˆ2©Ï¢ƒ™3g üˆ Ы£ÚŒmÖdº]ž¸_­øë ß@„×¢iCä #ˆ‡Ê•+“»ÿÔ\ ãC|ï–2ø §p‹âD&âÆ°ø^k×®­—¡_¸æÆÜP:Ä5"¿6ÿRLd†~CtíÚ•EM˜ïßÿ-jÔ¨!»µz ê\?}úĸ@,#G!Á½Dþºuë˜Hxùò%y&~au.È h 0!.‚Þ ÄEÄAµjÕ²Ù—+ ”‡+PT}(œDŽ¼Þ¾ýèd+¿êpž%KRz¶e³ÕÅ‹ÌLˆÌ™“°Îâz,XЊ6ˆ)di0Ÿ,L9äè+P“¡Fˆ=®]Ë‘ùiíï¢ñ÷“2`Ñ¢E1úºÍb×çG`Çíí ÓGÂ5Rúôéù*H \AXÀ*aÙ²e¼¡âË$¹ùƒCè>,X°@ç†(P€ëá[ †1™ë HbuP†dM—€ þû½$lð5ú/×ï@bædÌš5‹9<ß~û­I9pGC&cü/è¢@‰R&ó2lêH (Ìdž²&ô4Œº*$ºâ<[@@ù5(sÅý‘÷Î|pYêÔ©Ãc`^ñãÇ7¯bqÐÁÃó™ ;ãΤ8îDWõ­°ÀÁƒW¹ä¿}ÃF-Ól›1£™øë¯ÄU¸,޽A›M ú*É+ HG_3HyÏ/0X¾|©Å¼y-ŦMgE§N ùÅbڛ믠xÚ¸q!úòíA/ÍÖ¤ž¾šgˆÂ…‡²²)ÌyUrùuk¯¾~I/‚¡0YµjUn‚›ôX pôèQ¶|á!7a°ðe†f+M,Á ‡ÄH Ë!¾@2–[ë¢(Š®_¿Þ¢xĈ,¾Ç [e‚" cÿá$‰3Ù^ÁñÀø×@܂ߪU«X ÑÊd‚HiÒ¤IòÒâˆ9u®2pALЂÜ{) 5J‚Ê´2ãáΤw¢«úVØ@àöí'$~HÅ®ÃQ–!ÒˆèP R›6ê¦ÜC»v¥ˆýÙ¾d³‹²e³R»t$/^ÅeݺU$ ’Ö!Ò LK1Fš‹þ9A/§à51,Q"£˜?¿éô%Jdǯ§/¿þìÕº+w^ŠúH ïë“>}úðWp”(Q¸'é#ú`›ƒ‚M\ýº–1è -Æ9زRA´Yj¤DªI+´'[”RõþauC¾:ôyÂâ„).—Ö'd–+WޱÀ9é§hþù'N9¡]̘1å¥6qâD ýa\ü`Dz\ìhCæ|´1ZæB.ç‡.]º°õe®°Rv¶¬y`!ƒ{E¥F„ÏÄ+šÄV*°LÂZ¤•J@kÜ´i“n¥‚~‰ˆ3ÁÇÖ\d¾³V*`µª¤Px½{/תWÿ‹Lë^3ÁB‰<†Ò‹¨%Æiv츀7ð÷ï?³­žoØpš6ž.Z¯^þæŠV+º9“¾Ò˜ÐÁ\ 'nÓž>}íæ‘C¶{g ŽÀÌ–8dÝ¢)6ush ZÌ9¬â  6yk&‘ 8`vŠ~H´¡‘‡I7 8ˆûÁæ¤ÒäÖ¤‚$&ÑÈWˆFô/,Z๩,)Mj$Ò±(JY|ð†m â€hçÏŸ×È ÆbòÃÁfÉæîœ+î y€…#¦Ö­Ø“(…þŸš/Åîµ"8ìB¤*(<yòôçÉ.ãÍ™¢ÂšLùiÒtc‚ĤÀÆÅúõ§<‚èÓ»råÖ§Ï -C†¼ŠvËÜYšŽî$8°“8Dƒo#gÀYüì¶ú“‡­r•zp–àP:Ä{RI!à $K¼¾`s§$ï×yZP…GÏU«Ž™Lù­[—cÆlvÈÿô?¦LiBºûÈzÁßOI§Áx‘&M1p` R@ÀîÕ»Iú)£ÈLq­õ8ɦý- ‚qZ^7ô3ˆm.zöìIJ»=(’-dG°ˆ%2Ïx„¥ tCTRØCà+Ð^ö*©r…€BÀýÀÕyÅŠ£ÅÁƒ}ÈÇÀ9V´<~(R]Mî™±r9›7o>éòS“”ÈjÊì$^!Beûð2ı6vèÂÂ}û.“S©Ýd*yFÄ]Ô¯ÿÏ3Y²¸.%ø»‚åb†ÀšÊ’*)BpÄb>QJ•*ewIŠÃa"UA!<€ÃtûöS²èHE}Þ’6ºŸ÷ÇJ•r’Füg ÊtÆd2Ñ¢E∯sçîÓëšT°rNÇäÉžÃé0NÖ7°Ì9t¨/›Øþý÷a2ùL¾¦‘ý¹`1ï5ÎG+®C@®ÃRõ¤ñãÇQ¢D$ODÖ¬I˜“¡HñâEÅ‹g´« ¬^½ïØ•yß¾+qéP2¤HêP›à¬qQ×®åɸ/ù–ø‰Å+MšL'ÑÒ òC²…|¼ Î騱   €¨ºP¸ äÉã‘—ÃÇì—Q^áÜK¦5¾%çNçÉo™ÅG864¨9ܺ`Á1©hv!‰xíÖío³Rϸ„ÌsñâÖbÏž^ä'!'é¡ì WÕýI,4—â‰\ñŒ‰ªY(vP®ÍíB¤*(‚”)ã“ËåÇ< Ä*;wž×/_>;Ç)ù矓¤×PPÏÇ <‹Ö¬™‡õM*ظÀfF«V³Yd3zô놉¶m牜9û’Ȉ¶*ȶ·ÜQ5OOB@žt7Ô\„Ž/_¾èŠ£9s&g/£æV)eÊd!®#â†ô°j™:uG€õìƈ™ýtäÍ›Šu¶o÷w»n¯­7–ƒCwñ üLVÑ¥K9qúômò÷1² `¥Sc¬o\£š³B 8PGp¢­ÆR8€â©àKûÊ?ÅQxüD\s‚ùØ/>`¯ÐÃèØ±ŒøóÏMrCìä¿B8Øš9³™•æb?¶Ü¬;Ò—7Õ³µ–-‹‹ÿí"vïW¥ÊV6…øåìY_oZ’š«B ØPG°C®TŒ¾¬žÖ2(`©8в ˆë×Ù5ëlÛ¶4y.%z÷z(zDp…¨0LJ§MÛ)§&ް·Ц›7ÿF"¦oÉšç8ŹÉ>>þ÷¿Å¥K÷Ãj‘ gߟ’3 T]…€BÀýlÞ|Žô„([6+†óéÓw‰zõ XWÈôõ×18X¬Z*WÎ)³-Ž à¿cذu"sæ$J’AMp.1Ë€kHßä“(Z4CP»ôºöß|“× â«dÉ̬X ×øñ[œŒÁM=”mÁ!QI!ÖPGXÔú=ãÇo°5‚!aÚ8q›È–-) ÆI‡^Lš´]4n\˜¢‘F2™œC´rçÎ31cÆnæŒÀ zPô9àDkÈÄ­[OHA5 »_j¿ÞØqoJ–Ì$Zµ*Ξ^?~üÌœ ¶R„ßcâîÝg¤‹™¹W™©¤k(‘JX»ãj½^8ƘÐÈ•+éq˜šÇb1Ч@¹­ø*Æ÷í[•¬U>3`ÌÊ9‚¦ÍžÝœ¾èÑ3]¼yó!(Ýy}[?ß)©Ù©ØáÃ}źuÜÍoÜxš|}Œeï¦Ýº-Pºýðá³×¯W-@!à(Šàp)UO!Œ¤K—P<~üJ<}úFÕχeükŠýz]['qâDÖóæí Tp7[ý–*•™ü}´g+Žš5ÇÚ»©­þ½9±iàãcÏž^bǎãÔ Á‘%KoÑ¢Å,ö§‚û­’B 4#ðÙ“;Ý)4#¢Ö¦ðà‡¡ÕW­êHV©yF;v\à`jÇpÆeL°€Ò"t0±—°ÙA¼²ysW g®J0¿mÐ`*ëtÀœ´T²ŽÀÝ»ÏÅ–-gŦMgÉŸÊ%æv€8X NÝ >SI!šPŽÐt7ÕZB I’ÄayÿåËþÖ $"EŠ@f™-Ö™5k¹ ª#iøð:âöí'ú®L)R|M¢•NLÁú¡C×\Ù}¨ê –H"nSK2©LJÁMEÆŒ‰H<µ—”…G‘—ÓþìhlÆÓâÕ«÷¡jíj1a¥46ï»Zµ °~ý)=zdQ¼xFž-8ð,ŠÈ­Ð °L_‰)Svˆ&M ³N‡e¹NìØQ™x g•*¹\¥»*AÄS£FŒ¹¹2$rU÷¡²Ü[pƒÊ–ÍÆA÷pÄ=:|ø9lÛÉ Ã 4.ž={Ã_ÀrÑýµ…CÎÃó¥y‚²&Üowï^‘ôŠ™[\ù¢‰ŠG3q²re{v6fQ)Ööí»Š…í½zUíÚ• Boa·)ôxvî¼@J¦>|„›{X-/ž‰~Ø"F™Ý†ÝçÛV®8Þt·Ô\Ãpµk×E⦬àbT­š[À‡1á+b’ÏÐÂÆ"«ç°¦øöÛ”bÔ¨äÛ#*Ÿ[­ÈLôeR|©¼–tFž²nB¸pÊ$ÔHÁ1‚pµZ·.)Ê—ÏÁ©3gîpD[ˆÅÖ¯?Í‘|¡‘—0al—êå83WUW!ŠÃ:ªL!‚@v †Ë—ÿ ÿy&àJdÍÚ›dûÈÚ¡¨Åìë£\¹ÿ±ÅHÁ‚i-Ê­e@¬2iÒ6±uk7ö©a­NPó¶n=G›å\Ö3®ˆ•‚ŽÀÛ·ÙåýÎç‰ûqQ\¸p—Eeyò¤"‡déé—‘0O.àøM%…@H# ޾j|…€ à=´pá!ıøUäÈ‘\¯"äÓ§/ìûBÏ4œÀ×¾r§MûÉkû}•/ÿ?"¢¡ÒÎvÅ –œ;çK~:¦q ºyóZ¹¸ â4½ºùýû/Èüö")_â#¬bĈ"q¸pátôKOk—‹Ï¼45ù`C@ÁµH!àÐH›¶»€EIݺùôÆsæìeÇ]>>C¬~¹®\yLtê´P<؇½Zê 8g¤R¥1bР¬t@Õ AÿÎÁ ú™1£™C&¼A0?{³ãÍ!8AJ¦ïÈcí3Šíò‚8eÏÉÚå#|HA5é$ácˆNP ê(]º4‰üâY_üp¨¤Px&d© ¸ÆdrW®<Ð'þE;tèªI¾¼ ¸&ZŽ}´áÃ×É,‡Ž¨Ÿ.]wˆ‡ê¶)·jÍ›ÏÔR¦ìª-Zt0°Ýx|»cÇŽ‘F…ð˜éÔh#&ТGÏ­Å‹WU‹%ÇÌÍ“pRs Ú3»ÿ~›ÿ›J°gS¹ @æ¤ËSš4 D²dq­úã@=(6lXH,Xp@ ž‡£©sçr"iÒ¸ u‰£MUú(ÐãhÓ¦¤øõ×E¢_¿Uº)¡5]ºt‰ñi!þûòå 9{@\ŽcäÅvµxûöJˆÏÉpQspͳyóæM»ÿŠఠ‘ª 9`páÂ=‹ 2«5`²b£FÙ¤víÚ2Ëî1R¤ðb̘zìõÒQbv;  Ìw'On"0VýúSÄóço¨­Š oG@Þ~ÕüC5ð< sRsO“°>8vì†Í@i‰Åf3JøÀp&!@8¬pSîîTµj.rßÞA˜ˆ}‚Ö¹{lÕ¿B@!¼(‚#xñV£)œB$s.La]²ÿe›ý5kV”‰’S§nÛ¬c­à·ß*° OÁnvwÊž=™Ø°áW?~ R\MñEι{HÕ¿B@!(‚#@WC*Eº1cFçÎÝ1i§_Y²$¡è£Lòˆ½’9srå—: ãÆ5Çß$ÿÛ]ºíÄÆ²eíDåÊ9ÉiÙ 1zô&·¥:V(BEp„ îjT…€Ã€°@4XóTºtfrÖ07 iÓ"bõêãż}@×™3'àtŒ±Aœ?oª´P» ”Ðùßÿ~$¯¤5H—d™çN/^¼ J—ª­B@!àA(‚Ãn†šŠBÀàRøøX¥Jeׯ?"ý‡‡Öšq^­ZyÜ¡ÃbÅÙÔ¶mIö Ú¾ý|§¬]œǼþO?aO©ð R¡ÂŸÁFð˜Ï#¬]Ï›7O´oßÞíË®X±"Ý× ú¯iÓ¦¤<<™ž±úØk×®ÕËeÝV­ZYø59w^½úÿÙ» 8©ª.~¤»¤»»»C¤¤¥)¤»”TZZZBR)i¤D@º¤%¥¥ßwþ‡ï³»³³3»3³3»çþ~³óÞsÏý¿Ý½çºµ•šOÚÍÆùgºqÆÕ:ö.._¾,sܸøoËÞ¸€m<àèŸR={ölêÚµkÀ.NßOš4)ÐúM.]ºd—Þ¹sçdìíÛ·ùÿCÈ×1§+‹ ®DSi)n@ŽÓ§k NO IJ«åˆ3š„ÈÂyÔ™Y,g¡LœØTÎèÀ©¯ž,XÛ¦M½ä˜û5Ƴcéžœ>BÎuöìYÚ»w¯Û×¾aÃÉõ㌧¹DHÀÆØ¥KªP¡k´ÉüØ(7nÜH… ’OÖ¬Y…·*UªÐ¶mÛ¤ü‹ê×¯Ï ÍÎsÚüŽbÝ“Ž=Êç÷¼G¿ü¼IîáÇ2ÇÓ§OCµæ¤I“ÒòåË…ÆóçÏem¡"ȃ?ÎþYûD‚0eý‰õí1AÍñúõkv2Ì¡æo8ò+äk¼{÷.GÂ9gŽ Š'K=?4-Š€"àÅ:tY}]¹r7—:Í76œ¨Þº‚Ó[iÓö2–-;`]íð5‡­©Rõ 2јÄBÐñիׯgŸ­’õþù*ƒ…¦P ›!fâ/ÎÃáÏž=3øíÕxõê•qñâEãØ±c2Ž7ƒ7 ãàÁƒ¿IKÝ•+WŒ{÷îù£û×_ü¶m©;tèÁ„Á›¥ÿþû¯±gσ7ãÉ“'oîÒ>hÐ £@rÍ•Á™Re¾Ý»w,ŒH½ùƒ…ü‚ òm¶ám&¯¼ñ¼©X o>ÆØ±cåÚü±iÓ&©:t¨TMœ8QîÍv|›hÑ¢¬AjÖ‚H8,Ý0GªT© ÖšXêXsb° b`k–#GŽÈxëçù$ Þd ¬?`AÝ–-[Œ“'OZšð"GŽlŒ7NpÖÀÄ,às¯[·Îm³˜Ïíà㹘¥}ûöklÌÛ ¿ñÌwíÚ%ÏÑì„5Þ¼ySÖjkXž¿ùÜÍqø_À køñÇ9I\lëf»×Xž­½Ä_ðB×¢(^ŒÀÓ§ÏeÃ_¿þídÍêŠ dì|üø™uu k6‹+~¨ÞÑŠ-fÅ‹vGé9ÛoåÊC§y7jÖop˜°³Ã俳Çþýûå6¿éË7þy—)SƨT©’å¾D‰²‘—,YÒ(_¾¼e]ÿý·l|S¦L‘ .]ºtFœ8q då·cãôéÓÒ—ÕäF„ H‘"IÿÂ… [6k£Y³fFŽ98#i"ÙäÁK›6m,óaã/Uª”Ðà7n#V¬XÆŠ+,혣S§NrMãwìØ!÷¸(p !mÚ´üŒ3I[.¬gúôéÒgþüùB—Í1roþ€@` ”°Ì%J#yòäpF±ÞŒY3a´lÙRúa="Fm’4¶oßn¼ûxŸ.\0X»!c€ç˜1c Ö²ÀåþýûòŒÐfb>xð`i3Ÿ5›ƒd.ð—$IƒÍ!ÒœÀÁ¦hÑ¢2w¼xñdm£FòGšõÑÈf3yVX#æ¬\¹²–hÃïF‚ ¤k„ðéjCM*ŒºEÀ›€Y$}úw9R%°­¹|ùì‹cìí•?./ãí% ³7þ›oÓ“'Ï©ÿíus[[ݺ9t¶‡8‘rºwV«ŸvÛ\aM˜7νr#u¾•6Ôô×®]£Å‹‹š~ Í›7'~³å³RþvW­ZE¼±Q£Fø<œ/)Mš4¢NǸdÉ’Y|$Z·nM¼‘oFj}–`Ϊ°B“'OÁœ9sŸµk×Zºƒoºœ`î>ü¯*ÁǪ|ø1° $×,üPß¾8‰8Üõ¦Öðïó+K˜Lð-|à§Ñ¸qci¯Q£eÏž]Ì),¬ð=-‰…YoΜ9¥Ö3fL6Ižs oÒÔ¤I¼h[æÀÖ |±>˜{àSÒ¿úý÷ß øƒN‘"Ed­¬}"Ök5?dˆ…Y£5ÑaÆñßÜ)1ù°ðÁÙug±CôpbáÅÒ tX› ~'˜gåÊ•–6ÖRÈsƳ6?K–,‘vÐB[¬‹5|¶Ò9r$ÿ>±ŒxgÕ¶m[baFæÄX˜ ÀJŸ>}(Ož<ì ~Rø¹s'hß°€´½WÃQ¤´Ÿ"†Àq4`h,ØI”(6,˜Ö®úåÎJN 6mn.[0¡)ÿC<$§ ¸`@–,É$_GÅŠ9‰5.üögzýú ({ Ö4PÊ”)9'Iua › ,÷Øè6lÈ÷E¶lPð!À¦Ïoá|à_&bmñ7aÓ€/k8Ìù4:wîLØ Ñ›A•ܹsËæ Aý2fÌèÏ!~"X»Aà™Mfa“–yió‚´TXuÁ³…FÃ,p85 41ìÓaÞÊs3Ÿ©¥òÿв4hÐ@æ_‰'Ø%Ð=ÖˆÒ¢E mÀÚ2ü^A¨3 „.WÕp¸Q¥§¸¼ySË‘îö¨‡ÀqûöC~»¼nwfôƒ–`úôvûÙk8°¦d!íÔiA˜j7.Jë×÷ü"•* VÃcoMÞÖf½áÚã o¹ìA3gΔ·ñZµjI÷Í›7û È[+;Ê ÁÃÜÜ ª7 6® Šu¸(Þ†¡!±P¬ÛÙ QÈX·E×V=6ÃÕ«W“µ0d«ÌM0OÀüÓ6]ë‚ LEСŒ?žØ¹R>À¦˜f¬ úÂdcöÃ7BSA&)˜GÌÌwß}gÞúÆ3„ÆŽ¿–6˜; ¡±ÆÈÑgm!òÿ <_(^ xAÀ ®¤H‘B4¬Ã\'0ަÀ‚è³@ãáꢇ«UzŠ€È;µP=qâZ ê0—$Kß¡M·C‡òb¹{÷­­=±`*pÀ4 HæéPÙ€¬áœ¤Dï½¢¹2doDÿÙÿöo÷5kÖ$vê£!C†ÈÆ#F Y¢™ þPC³GþüùeÄ¿ ˜àóTÁæŒ7l˜J°ÁAošy0†T 9`FÖf˜>Púõëg1÷`“…O|Ì‚qoEø*x`GK?`À³‹|£>¥m×®˜† …Àf‹õcƒÄú!DÁ÷æ ˜GÊ•+'& „ÞBpÀZÏœ9ÃÉäZ o0ÝXkìÜ*#¬>0™ Ç|7`Òb§L:Ð7¦LÙj“Ó^½–œ¯Âf›uå³g/ܹœAÔºÚéë öJäÌž=Ž…|:=“V­:ldÍÚßxッ8„󦓣ÝÓ=¤Q*,(C¼‰Á³ÑUÁ9*äžßJ- #r}þj„Iòf(ˆ&a!ÀªÈ¹-$òcøíš#Š["¥Â!ƒ(Db J}eaµºˆb@4Ú bÍCpQ*c~Ø'B"`¬Ã[YH°´£¢&ÐSý…òæi° eé‹y?üðCƒ}WdˆÒ`Ó¥¸˜a›¼±J=Âb¶‹q&O ÉæR =å YÚãÆë/b‡u¥øôêÕK¢G0‘C¥K—–6`ÍBŽÁ Ð4£TÌgJÎ1b¡‹(`Ta-–DÈ€.xàÍ+òû‚u°¯ŠD,áÚ ý:uªða®“µ:3ºw_,˜á÷ž,ž0©xr=:—"`5©8%zigEÀ»H™2{¦Ç¥#G®Úd´jÕùd¾W™0âĉÎÙ:›pŽ’v½pš£YÆ;¹:²$í£(n@@M*nUI*îB @´A I’ÄeûkzÎOñ_ì¿=>:w®Èá|w9S¡cýíÑ?¾©øté²Ð^·0i«\9û¶ôc{wN õ‡Q®–0aF'U"0Q"ðÚu銀Ï!?ZZºô@|ðA^Ή°Y’rÁŸÁ^É”) Çáçå<[8s>{]ƒmƒ?Çôé­8mò$>Ò~ ;’¾ìOv€ßʬYId(ݲå'€j(éÞÝÍò˜ÙCÝ=—ÒW ä/ ¶Ø³Éh›" x|h™ø$Ü¿o;GØÃÏc×.ÿljµ Žz‘þ ëŠ2kÖ.>´'çdøïÈpWÐu% ÎÊÊùf˺{÷^jô2D“¸`ÐÏ?•óX  5ª>U©’ÛT•„" …€}kP£´^P˜phZPŽ£` f•ƒ5Э[%:pà"q”‰Yªoe‡Íæ†*ì6TL80f¤;ûóɘY%gGÇŽóùlŠ¥|w`:í¢DxTàˆð¿ €¯!?Ž?þ¸$ÛÕªå¡[·òÑÝoO‡ ²ãÿ  )^<û^l®«CíqãÆ 9sÚp’²ëôÅkV$ˆ%§Ï.^ÜQð*Sf$Ÿ,º'Ô‘;aµWðfTàðæ§£¼)6ÈŸ?] Göì)8‹`‡£U0E×®•øˆó3|º¥íL¦6ذ[•5kr‚¦ƒ}:8ûça»}½¡±|ùl¢íhÑ¢$nµŠµDã‹¿¼5åA7¨Àn¥.$¢ P°`z>íñ_>®þAK†–Ѭ£&l¸Ðœð9+fU¨¿kÕÊÏf•òœùs)>ýß‘è¡&ì&1cF¥kpK>]5š® Gž¹iF%«D,TàˆXÏ[WÈ›75ŸÛ™¼äjàÇqéÒ9F>ÈNúö­Æ›íI»Ú“C‚½2¤&Ÿq‘–Ú´™ÃG¢? ¶¿7tÈ’%)Þ™M-MŽ¥0³,[ö»7°¦<(>€ >ýø”ùˆˆ@ŒQ)gÎTtèÐå —_°`:Îýß)³ ¢^8lìØ AÒu¶ 3f´bçÑ×|¨Ú|âÃ3%fý‘‰u÷$õ굄ªUûV¢oÂŒ!XðqTàðñ¨ìGL Ø8€ R;›E´OŸjâËaO{â,âï¾GœHÿý;‘®uvx˜ö/†„ÃÌ‚äfµkO”î|®M˜ò¥“+¾ˆ€ ¾øÔ”ç@¡Bé §¡>{ö2H,j×.À¾7èܹ[Aö Ø€QD¬¸RË9pÒ-޳Ÿ1cŸäz0à´^Ÿ-[rZ²¤£œËÂÉÒØÌ2оújƒœ]ãõÌ+ƒŠ€—  ‡—<eCpB…ÒÑË—¯íF•+–‘pà›³Q"Ðrüúë9—åå0×U§NÂù-}û.s©ŸˆIßßoÏeéOýú}ÀZ›_Y8ÎBÈn¯Î7â \tEÀTàp%í£xiÒ$’,žÁ™Uj×.HkÖüá÷%Jd’3Fðïê2p`u*Y23'ÚšC7o>t5yЋ%á„ܽ{Qݺ…hذ5¢ñX¹òæïðÈÐI|8|õÉ)ßGü8`V¹|ù®Óh9öí;ïòãÜßyçš6­•øC´n=˧MÈú:thmv,DÒºu[LH+ÏçÒDøßM@°…€ ¶PÑ:EÀ(\8C°Q¡Í”))­^í\ò­¢E3P¹rÙØ—Ãuy9LH‘ö|Á‚ötãÆ?Ô¥Ë"³Úg¿S¥J IζmëKéÒ½K8›Î¥;vœõÙ5)㊀;Pè*MEÀ-šQ€]ºt×îlÐr¬]{Äiu?´8ceçN×oœ0 á¸x?jÔ:»üûJ#òw̞݆#ƒzÒ»7m:jÔO[·žò•%(ŸŠ€[Píð*qEÀ}@{3f4 ìÍR§NA9[eÿ~çgC.ŠsÒèÑëí‘qœZ¿úª!Mš´…–/?‰µ HK vàL¯= !Á-ZÌdÇr2±ƒê\â߈<”KxXˆ®Aˆh ©Ö®]çèÉ“çvV‡¯Á¦M'8Ó§ûär ¦9RJºóÌ™“BC]]råJ%Ñ6#GþL0ãà$ÜðRx­nÝ‚œ"=ŸøÑL˜°…Ckãägo(K–ä„nZˆ„€j8"ÒÓÖµ†;°I;r¬<´ëÖuú ;GŽôᇅX˱Î鱎‚Ý¿uÉæÙ¶í÷Nå q”~X÷†“&5c'ÜÁ¼Î¼ôí·¿P¡BC9´vy¸\oXã­ó{/*pxï³QÎ`€YââÅ;t÷îc»}ádzLvîéô\>ý´"'íÚ¬ùÆiâVÇbÑ¢yӳ竖ð}™4i<êÚõ}~ŽƒiåÊO ~p¤ÍŸÿ3Ö.Í–l±~~AŸ›¾ÑÑÕ…4J%¼ 8¢@@A_-Š€·# ‡·?!åO$ÿZ¿þ¿ù¾ÃQÙíöÎ! ûüJqâÄ'R»m4"o²–ž>}“jÖÌo£‡ëªZ2$f3CJ×÷1JxÆùó§¥FвSmI9øèÑ¿húô,€lg§áˬ z.B üz´(Þˆ@ÐúWoäVyR›àÖ}û‚w…†Ú‰¥KP§NïÙ¤e¯BÍÀ5د`‡w–w»æá“O*н{©{÷$]¸³‰Ëì­Å—Ú7nÌÏli –#EŠÉ Ä2°3p&>4î8ûœåðçÍúi…"`ÚµksÛj{]\Ò¦‡K`T"Š@Ø"Q ÿþûL6f{Ü4n\”æÎÝMüq•†ÛÙR¹r.9bþóÏWÓO?usv¸Óý®Iùñ‘ðó؇äc9™Õi"á`@±bŨW¯^A®äåË7ôüy Ö^µ²6(˜8qbÀ*·Ý«Àá6h•°"à9Ì0 Žr¸lúr8dfË–BÒl‡DàÀª† «ËéԿ戊C!r@u™1c°ÐñŒ}fÑ?v§RgiøzÿÔ©SSƒ |}Ê¿—!ÍÆ“'O<•†ÅzfDp/H•={ É^éÈLÐr¬Yó¿¿r¤{ >¹r¥¤&MŠIè¦'Â5ßyçš<¹¹ø4m:£549V ‡¢Š€—# ‡—? eOp˜U.Û‘R¯^a 9…³iHK¿~ˆÖá»ï¶…”„Sã¢D‰$I² iØp*?ÿ·Sãµ³" „-*p„-þ:»"à2J—ÎB'N\w(;eâÄqè½÷rвeBÜB!¨ 0κL›6€ËV¿ÇŽãd{‡…gë>‡nþé˜)Õz¬§¯Uàð4â:Ÿ"àFpž |ví:ëÐ,9s¦”œ‹ïw¨P2gNÊGÊ—£1cÖÓýûž‰é7yYeÙ²Nb^©Wo2o ÷̦û=bÄ*T¨Ÿ­“‰Š-J)R¤ Î;sŠø ¬*͇Âe¤±cÇÊF‰>³g϶`5wî\Êœ9³ãǧĉSݺu)wîܜξ¦Eèøì³Ï(Mš4TªT)‚† L™2Ô·o_ ó}*V¬HÉ’%ãÜ-U(mÚ´l‚[)Í:uâDn%Ø'9;1¿Çùa²QÛ¶mÍ¡Â3ú›k°¾;6tWÕŸùóÙ³gÙÔVß&f—zõêYî¯\¹"X?~œC­‹È&Þ§N*Z˜70xJ”(ÿ^‘±º€×!CäBÖ7gÎ m{ƒ zµjÕ¢T©Rq½’¡¥@|ÎÑ”@Ã!LäÍ›—òåËGHþíÉo¿ý&ý Hà–5kVyÖ@¼µ¨Àá­OFùRB€ñB0GÍ*˜¹ýôÓ‡¢[ì±Ô«W9­vÔ¨uöº¹¥-A‚·BG¢Dqؼ2™.\ðN•²[Q¼¡÷èÑC´ï¿ÿ¾l¦Øà¡Qhذ¡¼có*W®œÅw¤`Z@læØX¿üòK³k×.Ú°a‡^ï­ê‡ÊÙmÿ•2 vš-hT.\¸Ài×ÿ¡C‡mÂéÓ§9ÇÊdòóó“›÷Úµke8”nÝþËfð›u£F„/S;ðyòä‘MØš‡ ®oß¾Í'ïF¡ùóç‹À^`’à š‡þýû‹¦ÂZïÞ½iܸq¢ýhÓ¦p¨3ËŠ+øoª¹¿ÌKׯ_§Q£F„8hJ Aû´jÕ*s¨ÍïÖ­[S̘1YƒxZ´- ›4i"‚°B=8hj ÄxsQÛŸŽò¦„2e²ò?CÇÕ«õê’ÓFC" 6¡Yùì³ÚüÏz?á`1Oøt@Ó‘"E~#Ÿ$Ìyšoš/]ºt|¶JWŽ"J"BL ={öäãq6ÚJ³ 6G0}À$¿‡fÍšñ-1dƒöcÁ‚”%Kñ•(^¼8aS+ 0@¾›6mʉç‚>8°cÇŽ|úo:é‹·|˜WNœ8!pAs‚ 4R¤HôÑG‰ö&”?ü}ƒɵ­{ÔAë‚b )0§@ iùá‡øŒ ‚²ö£GŠæ!Nœ8âš_|ñ$˜ƒàœ 3 ðn\C²þDŽYžÃ©S§ØçéÁÂúB ªÀ|³oß>qB…9 ÂEåÊ•åÙA`) ô ‚¦¥OŸ>A‘òŠúÿPò v” E@-åÊeçèÙæëØ¦“H4(Âÿ8÷†vj>®/ž‰7¢-ª÷Pu‚@¼x1X½þ ¿Ý&'˜Wp^LD-0£˜oð0{ÄWª¹ÕT½ÃÔ5jTyÓÆÛ6 l`¨ƒ ‘2eJBÔ¾!¨ÀoÓùóç§hÑ¢™Sø3uX*ÿSŽY ¡˜~%0ïX´›mÖõA]C¨^½º˜UþøãNw^48AõG=4A˜[`j?>uêÔ¡ 0CàÖ¢E ñÆ‚”uvÐXÐxwïÞsȤ—ñ›6mÍŠõØ€×àÅôï?£G³ 4:0éÀ$d<o.*pxóÓQÞ #G ÉQ±}û‡G·lYRœGwîtÌ÷Ãá‘#ëI2W0öæ ª š–… ;PáÂ$9˜#§èEË—ëÍ 2¸5Ä_´É„9&6q¼½Ã€H˜ Õ@¸å¬Y³ÄÃÚ sØ‹J±vÄ&‰bnÔÖmx‹‡Ð`¶IG~à4]ð9cÆ ÑH@c]€…‚z{æS°‚IÊüLš4ÉrŽ „-øÈÀo˜!2Å‘²páBúå—_D»ºÐÈ÷ŒÀ Ì0&/‡“N®\¹ØY:¾GæüÞkò§‡‰„~+áòå³³jÜq#kÖ䢙˜?ÿíf( ]èØ±<Û«×ñ›êþ¡¡éìØèÑ£°?@vVÌÉæé´iÓ[õ½³t"J˜U¶nÝJ[¶l‘·o¬Ú 8Ob³ÅÛ9œ¡õÀÛ¾i’™>}ºh àli/JÎØäaF™0a‚hCà‰‚ Ú˜Y,‚4(K–,¡ʵ­{³fð MüS pø„€>`±.X&%pèè ž \@ƒÐàS 8 þðã€oJp10¡@Ó?˜Š±bñ´?,ð `ÞA~<“~ýú‰¦¼®Y³†sÒü fh?¼º0€ZE œ!À³iÒô2øXw‡W¶zõa#uêžÆÍ›ÿ8<&¨Ž~~/Œbž4øHù ºx¤žíèF¿~Ëe]‹íóȜ} 6}8Lš±78zÁÒŸ#R ÖXîÙÙÐ`¿Ë=›I ŽÆ082ÃàÑR?lØ0ƒM,›äÃ!Ÿú¢°£¤Áoè‰0x5ØT`°†´qÄ„Á›Ÿ\³ `°°"ó¡/û?ìx*mì+bpԇ̶„ ZÆ¡ÃÇlpt‹ô xÏ›°Á~$–6ö#^Xp:vjåçžZ®Y‹b°FBÚ1|b>Ö¦H;ðÅ=xf-‹Á¾#r:¬äÈ‘ÒJ¥~ýúõrÏ‹Á !rÏ‚ˆÁB“\üÁεGÉx`,Ù\c°b°ó¨`ÏÑ02Ì¿#GŽ,xXøa_ ƒý:¤;¼ìDjicAÍ`í”aò[÷ÀM5¶š\^‰M‹" „3WOâ¬Àáìü2 lð› ¡ìHj°S) ¯µqî ƒ ÎapvM‹ÀaÝk0 ÖH_ë6Øtù-ßàpV‹0cÝÇU×>!Œ@ °UØ„d°†ÃÒĦÙØ9ôÔRçŠ vö4€©YØ1Tð3ïm}›øpÁʺžkŽdmÖõŽ^{RàˆÂœE@g L´@´œhé4{¸çqhu©mÚ´˜D™ôèQ™"GÅfÚµ pHár6ïôçо¨ñáŽN½{Wå(¸¬Æ^É ±þe•z`íçîàÃi”Âoġ…@,¾ûî»’c#PW G>Žøàc«À©¡¬î,ð—°v^ 8ò„XD}àãê‚|ÖÅ{øÀL³‹/”ÐýGñ…*Š@EÀY?ÀÔ¼yIö»ø×e>_|Q—íÕ~ôÍ7›Âü)´jUЦOoÉ¥{9IÙ÷œÁòe˜óä À_ɲà ÿ‚lzHа ŒB‹­‚ÍΗZ"ï@í1–ª«T"‡_¡5ÆsåþœCÁÿÛ›=$Z¶œÅ¡/%¼Ô^?GÛ­2xðJŽ"èIÈlÖåÀKÔ¦ÍlŽ„HÌ¡Àíx3ŒÖ,;?¢0ÞŽŒZW"€œ+p^]½zµ+ÉÚ¤¥›°h¥"àûÀ¤‚³F¶l9åÔbZµ*)‰Ã.^tM¶N„Ü*”Ž“N-áÒoÓ8;Å‹;-š3«v稃'œ¿a<çmx{Έ‹§QrŠ€"8¢·Š@xA6ë r8-p¼÷^N,”Ð%‰ÀL,¿þº1‡#ÞâôÚÛͪ0ýÎ!1giìÎ&„¸9Á©Ì¬aʸN®ø0*pøðÃSÖà¨T)Ÿ×p‰Ï`øïÄÍàÆ@P/wZÌ;@IDATRûù¹ÆÏ!cÆ$|EUöåØè5ó¤Ù ²³³ìtš;wwpÐh»" „8BžU¼8Ž¢ ZřҬYqqª íù*ÖsvìXÏÛHɦ•$’u[X]#AØ”)-DBKÿþ?z…ÙÇpê„0¨ÅÀ•¿Hºæ©¢N£žBZçQÂúõ§Èf“&5sŠƒ¾}—ñ© 8ó§ÆÙë|æÌM>¢ük>…´GŠ”µ×Õãm6§.]I8ñôé­ÄÿÅãL1áþýû%µuÍZ­„ œ2[²dÉPÑpd° Ž ¤}F`Ú´í|ü÷V}ü’S+¿=€Ê‘åüùçm>et4àÕ^R„;2Æ‘>_½‰¾ûn§ÒîË‘"¶Ã%¡ãŽ>§NÝàKg‹fÖ¬(o^×çapßJSðÔ¤â OIyTBÀûïç¢û÷Ÿð™—¢‚PZ˜dfÎÜåÔ¸à:wíú>¥OŸ˜OÎ\ì5¦“g„ínÚÔ‹2gNÆIË&ò¿™Mú­(¡D@ŽP¨ÃoG s椲Á;‹uuèPŽM*gùШ›.[&2šNšÔ\ŽŽŸ6m‡Ë躊²´.ZÔ «À¾K©oßå|¨×kW‘W:Š@„E@Žûèuá Ê•s…({(4ÐtÌœ¹Ó¥påÈ‘B5¿új=={Ë¥´]A Nyýú}@³g·áÓ8óñíãéòå»® ­4‹€ öÑëÂ#U«æ‘<—.9¿i¶o_ŽV­:,fWbÖ©Ó{â#Ñ¥ËB΢ö Ál­­jÕÜôË/½%2¤rå¯iíÚ#¶ºi" 8€€ €¤]_G hÑŒu±qãq§—R¿~aŠ+Í›·Çé±öÀu„¦tñâ]úúëöº†i[ú©5lX„Í,óXó±œS¿¿ SžtrEÀPßšò¬8‰6w$ ‰À#FTjÑ¢¤$ÆrõF çÑ!CjJ Î~ñÖ¿“áÃ?ËÚµHhïÉ“7¼•]åKðJTàðÊÇ¢L)®G J•<©r…!ì4ñ6mÊp¶R?É>êôà`àײe³QçÎ ù©çÁôÛæjÕòpªø¾¢-ª^ý[BȱE@p 8ÃI{)>@¹rÙ™57m:áôZ’$‰Ë&…¢œ?c;½yãú¦aZ°LŸÞ^R¥JÀG¹w§×Q£Ö1.ßÑÿx;ÛÊŸ"æ¨Àæ@P<ƒ@̘Q9‘W¶™UÀá'ŸT «Wïó¡gG]ÎpâÄqhüø&¼‘¤•+¹œ¾« "ŠåÓO+Ê©³·o?äCòÆhÎWƒ¬ôÂ*p„»Gª R‚FÑ*»wŸ£§O_Ý)ˆø[Ô¨‘ÏÙDÐUã”Z¤;0àGNã}?tÄ<4:oÞÔÅ‚ÃîúôYFÍšMWm‡‡°×i|8|ï™)ÇŠ@ˆ€ãèë×mÞ|2D4Êzüø5Nv.Dãƒ4xp-J“&uê´ÀkQ ¸˜©àøºfMW” íX¸p_Ànz¯DxTàˆð¿ @DB aÂX|HSæ›EðFOœÍâŽ-ZdöiI8ÓdÜ8ï •µµöB…Ò± ×G"z\!©Ñ]™¡ÕÖœZ§ø*pøÒÓR^ ³Ž«÷ó{"j;¿'f™cÇþ Ñøà!³é°auhâÄ-´cÇÙàº{U;´ƒ×d?™ž¢¡A²°¡CWs„Ï3¯âS™QÂ8ÂuSCÚ‰|Û¶ eÊd• ¡“'o ÑxG5o^‚êÖ-ÈÇÅ/¤[·:2Ä«úà8$ 9²;¢R¥Fð©»{ÝáãU Wf;¨ÀamRÂ#ヌŠÏb³ 0éÒ¥"­_Œp„½»ÊW_5”|Ÿ|2ßgü9¬±@$ §½{Q½z…Yó±’Oß-¸Y÷ÓkE ¢  GDyÒºNEÀ ˜Upzì³g!3«T¯žOu?þ+ª®½D:õ3Z‹“êèÑë]K܃ÔâÆÁf•Úìh;€òäIMíÛÏ¥êÕdz¹èŒ¹Ð©°G@ްÊ"àq>ø ¯øplßòM¯GÊ™q„.\¸ã6þ³eKÎf‰ú4uê6Ü6‘ãL–)SZpâµ^-SÓ¦ÓEðغ5d¦-°¬S(.E@—©Äß@™C‹Í@ëÖ…<‰WÍšù(S¦$œ°Ë}Z ‰CÓðéÖm±Ïäç°÷[;w*š?¿8–"áY‹39qØW’8ÌÕgÕØãCÛO# ‡§×ù/A fÍü’æ<¤fø(tï^™V¯>L!9öÞFªOH)ަ͜G×83Ÿ'úæÍ›†OàmG[·ö¥|ùÒH³"E¾à“s7ѽ{Οwã žuE 4¼cp «(¾‰6µüù?gsE ‚ð’‚sUÊ•M… ¥—Ôä!¡áè˜k×PÕª_Kzv˜&Â[¹sç_úþûÝÍòøñ3q4mݺ4A#¢EDÊ%<,D× (Î!§Ìƒ/Óùós’ªÎ þoh9âÇÉÂÆfÞ ñu¬ÑqdP¼x1yóMM80-Nœ"ä82ÎWúÄŽÃg³°§ %OŸÃjЄ ›9uúIzõê eȘbĈê+ËQ>@¨À­P"ÐP̘±“7¹²r’lHVž={ É5qýúªR%wHH8<Ž—ØtGŒøYB{‘=¼•(Q"Kž“>*MeÊd£¿ÿ~D³fíâ ¬ÛèìÙ[„¨àaO‹"àK¨IÅ—ž–òª¸ÇŸóæ6„7ðzÔ¤I±S_ºôõí»Œ~ýu¥Mûnˆé8:°cÇù´gÏŸìxÙK|;ç‰~ƒ âü$ºtª7o"Ñ;1éöíXœµ4%IâGÙ²ùÆw.B‰ù éÓ§§¯¾úÊ¿*pøƒCoˆ‡òB<|èGË–}âÅ¿~ý†“ZaŸ´4iR³Óqt Ÿß >¹v¿å­]Û`ò–R¼xqzðà;‚æs K~~Q9Ú;lVrþÄ_·0¤D?~œ5‘1è?þð×¢‡?8ôFˆxlØp\’Q>ü9%M/Ĭ]{DNyݺµ¿}'1G„S­Ú·ìË‘ŽæÌiã5&¥J•âh“¯]ŠöSÂÐò­_¿>À¡a±áê1ëbçxï½;v4IâåüèÿFÔª•ŸräHAcÆx&+hªT EÐ@ÆNøthQïF@ï~>Ê"àvpÂ)2®Zu(ÔsõïÿûU§#G®†š–# NÏš„Æ’‰~$ZEÀ{PÃ{Ÿr¦x :u ŠpùòÝPÍY±bN*R$ƒ„®†Šƒ?ü°g!­Dýú-§ß~»èÄHíª(žD@O¢­s)^ŠŽœGºsd m0 :G«œãSRχ–”Ããûõû€*UÊEmÛÎqëÙ.3¤E *p‚D+ˆ‡@¤HïHò¯<êÅ/ž‰#V²{T˦'NlÆÉ±’P³fÓéî]M îèƒlß¾=-]ºÔÑî!î÷ï¿ÿR=ø Ÿ¢” Avö-D:tàPßÛš#FŒ`œ–û€-[¶dÓߪ€ÕNÝ?}ú”À ®«U«&|Lºœ˜_~ù¥C´•ôâÅÛ¨!\ƒæ¶mÛ‚{îÜ9é ^½zE÷ïÿê<{ölêÚµk°4._¾,4nܸAÖô‚èD‡aƱoÖ'FØîª‡m\´Vˆp4lX”.^¼C¿ÿ~)Ôk‡/Ç¡C—嬖Ps@̘Qål’(Q"Qóæ3x3ѰQG Û¹s'?w÷š¢nݺÅIÌÊдiÓ¨dÉ’4nÜ8NW…C±—‰àqâÄ aõôéÓtòäÉ ÙþçŸ,{‚ih×®˜÷65þË—/Ùçh#Íœ9“æÎëoä¡C‡èðaÇ4~I“&¥åË—Ëx???¡  ¸òúõkzüø1½yó†3Ëþħ¿Kà åùóç|n_p$8¤ý¡ÌáÉš^°èpêÔ)N:wÖ‰¶»ªÀa­U"8³#gΔ¼ üêµã`²Zµ ðÛêOüOðM¨é9J Q¢Ø´xñÇtãÆ?êëɹå1`¿k׮ɦƒ·î½{÷ÊFƒ>7oÞdÓÔ¯„MåÞ½{|Zî_rmþÀñõë×Í[³eËù¶Tò6´cÇŽÑ™3g¤oÅæ¹u¿¿ÿþ[æÇ\Û·o—9ÍöGÉæ† qÏž=ò6m¶áoèÏž=³TaÃ47Oh °iaÜøñã ›þÈ‘#Y(=ĉÌQ¯^½,ãp-ÁÖ­[ ˆuÁ[Íš5-U˜ë‚`€ÍÖºàôwìØaáëzòä‰h6¬‚8qâPŸ>}X3´“‰!Â=­ŸÃÕ«W ÚU<_XÓ®]»ü=¯¬Y³Š /^<Î(û· ųÁ\­Zµ¢Ñ£G[È¡ëÄzqm«˜ô á÷´¬?àÑ,ö°C`ùlýž˜4œþÆámZE@œæÜÈšµ¿ÁÚPråÊ]#]ºÞÆ÷ßÿjZÎ8zôª‘)S?£GœêþÅŠ3zöìé04iÒ%J”0¢E‹†ƒ4 67ÈxN].÷¼G5x£6"EŠdð¦a¡]±bE£|ùòo®k Œ¨Q£±bÅ2¢D‰ÂÏr†ôc¡Ä`­‚ÐÂxÎ"×¼qJ{–,Y Þüå ;)S¦…ùóç‹fÇÒðÿ Ðó9þ¼øYÌš5‹†.}áÁalß¾}•{ D»ÍHÙ²eiúôéþú±À)Ï•І -¸u0`€$“ƒ†kÍ•+—]_Œ…&Z |À?J—.]äÛvx^ð£^Xž~'\QTàpŠJC'À$ñþû9yƒsMN‹îÝ+³ú×àtç[<Žš׈I·°ïÀvÏïÌ„¡”5ÄoøT¹reñu€jœßJE-ž,Y2ÙÀ!\ Ày]ýúõEˆÀan0 À óÙgŸÉæˆ:ÖPˆ¿kC8Á[lâ·O»¬uìØ‘‡KÇéâc2FbÃ6},rçÎ-›:¿á³0ù‘Ì A åÃ?”þ&q˜QXC & ÔÁQÔV}ÐDÁfûñÇÌ à•5 "|IãÿÀLΙð]€`̰1Â×`õêÕÔ AÊž=»¬gz@ˆ1M<Ö´Ìk8°"C,ÖsuÇvJÎ ÕX;kzÄìcÝ/¨kÖ‰¯JŠ)äyApq¦,\¸ÿ†&É=xî0³Y›„lÑ~ð aMˆ †à»vëÖ­̾øâ Î<œTWS¥Jek §ë¢8=B(Š@¸FΣmÚÌa[ó>-a¨ÖŠ£ë!tŒõ3µlYÊã­5lX„ßýx^ŧ¬Æä–â¡Z»c#2 ›EˆÍæ­h5 ©@a“áíÚ 8)ŸÕë-Á”)SäƒÂ„Ï?ÿ\|ØÌc¡—6mZ˵­ sSE›H¤‹é_P;‚v³Í-ÔA€B ê@»Í›7K{æÌ™å‚—Y „ ø?X¼…£À uÞ¼y–¦Ô©S‹¿ø3˜ øDØ+ÎØÔA àß×Q–®ð—½‚ ZêpÁ&»>Ö±q›Zh±œ)Ù„Clòb?«œ‡`Á š*sMö°ƒ|^òæÍ+s™<²yļ Õ·j8BŸVÂHÞMÇòå¡w:­[—âÎñÙn]˜€Õ®]YêÝ»ª$Ãy/ÞX°Ù9RêÖ­+‡b!ªƒmñûï¿Sžùä1ç@³”yÊz<¢W`J‚0 ³”©A²‡]¶lÙD+‘µcêÁƒ¡—o*pX?!½VVÓG¢zõ »$ZpF™ÿaÖ •+ñ?íka‚pÏžU82¢ Û°r~ÿ‘aÂP'…If ˜L`¢€I¡¤0­@@€éZ˜[ØÁPL ßÿ½ôATË!CìÎM ò9ÀŒÂΔÞxQ°©có‚oܪW¯.mK–,ñg®€éo‚ˆ¼Y—/_^|U ¸ÀG~ؼͷobGJñ Av¾•È—FÉæhZàÇ3Lˆ¾sbÍÌÖ¬Y#óCÀBþ˜Ià h›Ñ?&Móf˜u¬520§À”MÖüí·ßJwhP@ó¨¤ÑÁÐ^ `-¦FËŠÍÏߟÅÚìÍ…~ðgà€ßa¡ÂÒn¥‚è Þ<-ôÐÆoÿÒ—"£B… ÒÆÚƒs€¼éJ FB—M$–(3ÇœˆýR$JÆŒRa-ƒQºti¡Çš‰á]³»Á‘´Þ¤åzÑ¢EÒðùb¢fPÌ(ö=1ØL&Ï ëfÇYƒ ÖdH?ö¿È ÌÍZƒHe ¬‘hŒ±ŽR1#WPoýaMг‡:°9Î2Ñ?åÊ•3¬#’„ˆAE©@’Ò¢(Š@ *WÇ›Úâ@õ!­àÝŒ”){œ>=¤$B=Žórphä|½ìkìÙóg¨éÙ"à¬Àa‹†½:ØDøí5P7Ô8p@Âd­ùW61ÎapĉŒ7ë~8¢‰pÑ€ô!p`fÇKƒÍ k ¬‡:|ÍšøvüÖäöq0Ø”"¼ZwbçE媃 狾¬ûâšMJ6çA˜+G{ìn÷²O„Áæ¨/;Ö:ªw¦‚}( „ôÚ*¨G8«Y qîóÖéïà°ƒà\C²¦ uå¿\-Š€"¦M‹³wûZú⋺l_¸ƒ“5ùò¥a5o1¦·–Õü¹8¤ñ­ ÙI2¡êŽî“&5§Î°ëLZ° •(ñÖ©1T„=4¦„¢Â”‚Œ€ÅVúÀ‡Àtø„ #¸GT|l˜jà/Ò >ö Lˆˆ±.ˆ4A2+ÓmÁñTt"_œ-ÀÐt€µ5&Иƒð±Uq‚YàWšvðý°vfÍ\æXõá0‘ÐoE@ð‡ü8x«’\þBq3p` ¶Ù?g߀·‘ ¡ â¡:¦LiÁΌØér&û \1-O„O„ äéiÁf޼¶ÂT!b½©YϨ8†Ußü àO¡Å7xzßd]¹Vw#ЧÏ2v6»ÌŽ–¶…dþÙ³ÍÉŽýØ9/qHH¸d ›W8šcGIœ¦E‹:P±b]B›6ò9|ýõ×.¡§D_CQ5H<†(&ë¢k4ôZPü!ТE öš¿é’ÝL“͘1 {ϯ6«Âä;räH¬)hAH†fwí:&|褊@DA@Žˆò¤uŠ@@Šp|æÏß‚Ѷ‡`£>üCNµ}’µ ÿåJ°ÝÛ½µàå»ïZ°OD^«œéÑÓmÝ»2¥®x*pxß3QޝB E‹’´nÝQÎöøÔe|•,™YN“…–ãåKÿ§|ºl Aè˜4©5jTLN˜E¾-Š€"àzÔ‡Ãõ˜*EE \!àç÷‚òçÿœÃA^å\¶6!_¶ì(úôÓŠ’þÜe„CAhøðŸ8]övN¬OÍ›—%øp w¾|ùB4^)¾Ž²Ãr>˜@>‘ù€¡¾¾8å_P܇2…Þ¼ù3á3Vʸl"„ÚF…¾ùfŸÞYéŠå2Ú!%T¶l6ÎF‰†]Íÿ0£q é N“ÂbÈ<©Eˆ¨ D¸P¡BrØ 5ªá°FC¯EÀ&§Oßäó.¾âÙÎ|ŠéÛC¶lvt²‘"U«~ÃÂFlN¥þ‰“£Ý×}Μ¸ºšOD-ÍyCêH ÷ͦ”ˆ€úpDŒç¬«TB…@Ž)øDÒô.uCÐ&ŒÛöî=ïÒ|¡Z,†&gúô–´pá^ñëxþܹÓ=C;¿ŽWÂ#*p„ǧªkR܀ޗ߰áŸ^ùÈ¥ÔóçO+'Ê¶Æ¥Ž©¡e²zõ|´dÉ'" 5nühå:§ÙÐò¦ã_D@_|jʳ"ÔªU€Ó]Ç¢¹sßYîJú÷¯Î~‘Ù|±Æ•dCM ÉÀÖ¬éJׯ?`?“‰òj¢J@ˆ ¨ÀA¼.[phÑ"óù#%ùü‘½|4¶kCYãĉN#FÔ£¥Kо}Þ•jÏ~-‡]AVi(áõá·V¦¸L™’JD |-Ê—Ïîò‰öùèÑë…~Š \>‡+"º¦Aƒ"œ£ã }ùåZºÿ©øu ¡™E@ð€šTüã¡wŠ€"à pîœ8q ûZ ¥X±¢98ʹn¾`Z1WôóÏG©gÏ%lZIF3f´&ø£hQÿP1ü?,ôJPœ@ iÓâôêÕkúá‡ßœå\WÓ´òÕWÞkZ1WT£F>Z¿¾‡8‘âÜ=æÞDF¿·¨À¡¿ Š€""$ˆE“ˆÂæŽ-ÁСudŽýû½+!˜­õfΜ”6nì)f–.]É9,÷ï?±ÕU뇀 î‘ë‚×!бcqî\½Ú}“Mš£*Ur6ðGž¹Žy7QŠ#*çé¨Ë>.ŸÐ‘#Wé½÷¾¢-[N¹i6%«ø*pøÎ³RN¯C uê„’ kÊ”mnåmܸÆl¾y#YHÝ:‘ ‰—.…¶më+ ÌZ¶œIŸ~ºnßvíÁw.dWI)nG@·C¬(áÎߣ3gnºõ->aÂX4aBS>Óä-_î;iÅm3qbSš7¯¹eZp8EJû)Š€]>ýô}Ú¼ù$;wËn¿Ð6âÌ’Ï>«%Çž=†–\˜/U* û¤tcÑÇtçο‰ó5µm;‡Nºf<éÄŠ€;P“Š;ÑUÚŠ@C |ù1b€ƒ§»ËÇÏ#俨²¥%I×ÝÓ¹>BgÇÛ(šŽòå³Q»våÔÇÃí¨ëžD@O¢­s)áDôêµ”öîD™ugÁ9.U«~MÉ’Åó„/úsØÂgëÖSlrÙE»v%$kÛ¶,5lX„ýVÜ“>ÞZ§¸8ܪÒT"(È8Zºô(*U*3¿­7r; 0?Ô¨1ž>þ¸<õë÷Ûçs÷÷ïß§­[·Ê4·n=¥;oq8튙¨V­ôT²d2w³ ô åË—gíaË}h/Tà-‚:^Pü!°téêÓgíÙ3Ò¤Iä¯Í7‹ï—ù.ìàó&ˆýû÷S‰%üÁ)R >/'>»GÏž]ôצ7Š€;رc•+WÎeS¨Ó¨Ë TBŠ€"ê×/,æ”ñã=E‚CäêÕ+Ì©ÏÒÿ„‹‡põêU2 C>¯_ûÑ¿ÿ ?¿ –:³M¿ßb¤8¸‡¿ÿþÛ-G*p¸V%ªD\"GŽDÝ»Wf¿Šƒtõê=1fL}Jœ8.uì8O³xzqDp8œÇLG(Š@0Ô«WH´&l¦§kšáP9kÖGœbý ¸Â5D•Š" ¸8\ §S -GžÕr ¢còäæŸŽyóöèƒP/C@/{ ÊŽ"^€_œFÇ÷Œ–¸U®œ‹H«rb°U„tëZEÀ{PÃ{ž…r¢„+£{÷JôãéÊÏør@øTª”‹g}O8·D‹" x*pxÇsP.p‰´iÓBËᙈÄI“šQÒ¤ñ¨M›ÙJúÒ¬Öo#°`ÁúôÓO]L50¹Ç³æªeÏž½%ãDh éûï¿§/^îl£¦}ûö´téRiù믿¨k×®B]?ÚðY6Õ‚ü<{öÌ5ûU¯^½"äS1ˤI“‚¤éÒ%³›ÍïsçÎÉØÛ·oÓåË—åúÆ çSßïܹSÆÚœÄƒ•*pxlJˆh@ËѳgÑrœ?ïžP;[˜Â‰ôûïÛеkxþ%¶ºh 8{ö,g•ÝëJöIŒ3†³¯Î¤Š+Ò¨Q£X˜LJ"ºtébàÿ[±á^¼øÖÄ6cÆ >¿fµhтҥKÇÙ\3Ë›ÿ,÷¨ççO#þé§ŸèÝwßåh©·‚îñãÇiß¾}ìD:Ð'jÔ¨vùýú5AØzóæ =|ø6nÜHOŸ>µ;ÆVãÝ»wé×_µÕäѺ(M'S‡@ݺiêÔm4räÏ4gN­?mÚwiúôVÔ´étIÁ'¼•çÏŸÓÍ›7ÙW& ‡ _•Í)Ož<²A:uŠÐž7o^ÂÆ†ö8qâP¢Dÿ%c»víšÔ%H@ 9|ø°eLìØ±-paÓ;vìeË–S¬ÇäÃæîÈfméÀ=’´§OŸÞB Í›77Xp°Ôñ†m´lÙRh&°=z´´³æÁ¨R¥Ša®#J”(kNŒmÛ¶ N þ,@¬‰1XP³Ð xõ-ZTæaÆ-ÖâH7óù‚Α#G¤ÏŸþ)möÖ‹gÆB¤ôÇóÄ32ŸYÀùmÝ[¬ø»²¨I…QÕ¢(îE B…ì|Hf1â'÷Ndƒzóæ%ØÏ "*·„Õÿçmôðý*¼y_¿~¾ýö[QãíoÌ‹/u>´¼¡òp»È|S^µj•h 5jD_~ù¥hI ¶Ç8øI@s³@ëÖ­‰7,yû† þAR84y2gEõcmÖù¬]»ÖÒ7Nºpá± ÀïU¥:ˆÖàWÁ‚’ôÅ[yß¾}åíš–Ž;ÒºuëäM>#FŒíBéÒ¥E»šmÛ¶3 Ìàƒ…(>|¸en\|ýõ×|îÎÇÄ‚¬Ç_c€¬ø¬xôïߟ~ÿýw6þH›6m3ͽ{÷øw« 6ŒX “6Âj„*´PÀßú³dÉ[S߬Y³ˆ…áøcm,Ñ“'Od¬­Á­þ.ÐtAÃs4RÞPTàð†§ <(ÁƒkJ¨ê/¿œôøj¬A|—7¥9üÏ=è Ó㌹hBÖ4PÊ”)‰µBþ 0+˜÷ØèáhÉoÝ´råJéU=6}˜5 ú?xð ÁW›|ÆŽ+&Œíܹ3;ÿ¦•~}ôQ\çΛš4i"‚ úe̘Q6ûì3™7(Ÿ8’ÂÃú“ „`6U°F˜K‚*öÖ Bks(gΜÄ/Ný_/(R­W­“)üùÓòÉ®ùÙéo½ÿ~NÞ”œwÈ z&4ãMw*ÿƒŸÁÿØ{p*ô8¡!çUcá#€Âêxùf‚|› «ÅE°€voçõë×§íÛ·Ë<:š›?4$âн4âXijCŠ/.ôðCP±u‡Iõ2d°4›§Z·[­. À=´l’‘lªØìçÍ›'Â|,Pà‡a]à¨Òšðù¨]»¶…|]€)›•ˆMQòaÓPàB“­<¡-±UàÌÚ AÑPÁg#qâĶºù«³·^h±ð¼ÙLcaÉŠj8¼á)(Š@A ÿxóø›–-ûÝã+Ž-2G®´e§Äȼ1Íd•wø —5ß–ƒoÓ8x[¯U«– Ù¼y3 «W¯S‘9ÆÙohŒ`â1éᥠA€ÉÚ¬‰}OÄ‚>ÎàG\˜‚ ÝèÝ»w°$ì­×Xcðë Eox ʃ"AȘ1 G§qã6pôÁ+¯:aÂX„cì¯]»Ï¶üyôúõó–"2>C† ‘3FŒÂÎìٳŇþPÃÃ̳GþüùÅo>ð»€iaúôéA. Þäa*ÁF 3‡iÖÁ h[õ„ ÄLƒèD¡˜æðé€f¢[`&† šðyøâ‹/(nܸ¢m¨Q£ÁlÓLB0M`Þ 6íü€0ÆÎ«¢Âzà[Q·n]zðàð-„&?Ð(A»„¨>(gΜMCpsÔ!Pe]¦ß‰Vkk¼½õ)RDx¿x^ælÑñx+=P•–" (Á!ð÷ߌL™úqtÄÖ຺­ýðá+FæÌýŒÎX¢Ü6™„C¥Â‚‚ÌÂÚ‰.@t ûÈ=¿íË=~ r„7ƒógXêX o°Ú_"8MÂB€^PØgA"O0‘*l^±D< J…ý¤¢TØÄÒQ'fT:€.¢%½Zˆh±æ!¨(Œe ŒD•`>ˆAÔÍ/¿ü‚f):kð†/íèƒHö…66UXxA$ "L6Çø‹Ra ñá‡Zè±p&‘.ÇFÙ²e¥ õ¬ 2ØçEH²À#÷à&‰RÁZƒ*XÆ[Ðb¡É`!ÆÏÖQ*,<È|f”нõ3JtY+c°p êÙÌ%s±6,P[h* iQEÀ£Œ³ÞÈž}€qïÞcÎk=Ù¯¿žãM¬·1`ÀÖÕazí¬Àf{ôèa°9 ÐP~£6øÝ€Ð° Ž>±Öý p°Ó¦:œgÃ@X©uÀÁÚ U5Cn­Ûƒ»]Œ%µU8ÊC6i[k°Õß‘:„(ã¹pöÐ@ÝÁ' 3&k]8‡ˆÁ&ë*»×Xð51ƒ°Ã¦»cÐho½ŠØ”b°F&X:;¸KàP§QCµ(Š€g@˜ê?üF_}µF®ïÙÉÿ?[éÒY8!YKÍœË*û˜¬Òÿ LøðÔ¤0Olݺ•`>?~| ia`­A zTÀôbš>lv°ªø7U`ÁÇÙºHmn¯ <¸X±böº8݇O|l• øiG Öf/|:ð ®Ø[/Lbpnõ¦¢>Þô4”E ‚ +V4ŽŒ¨Á‘ûØÑïF˜­ºZµ<œ›¡1Mœ¸…}v„ž˜þÈØ‰lœÐ*ÄS‘Ô:Â$„ d" ª ÒÅ:³hPý´>ü"ðT)áwyº2E@ðfjÔÏo‚QiÅŠÎaÊæÌ™;ièÐ5"|4nü_8¡§™b›=!ÒõVíižt¾ˆ‡o!X²•+WÎe¨†ÃeP*!E@p/¿üöï¿@?ÿ|ÔÙ¡.íß¾}99Ö¾OŸ¥´jÕa—ÒVbŠ€"ðõáÐßE@3 HËI¨ sˆãZÎy‹µa÷/©OŸªªû’Ã1I8㇠3\tbE <"vÝáM]“" 8|9J•Iß}·M´ Npá¤_GéÖm±|‡•Ð<êï @„öÒª‡†8BƒžŽUP#4i<Þà+qäÄ/Ô¨Q1Îé|C¨™°"¡é«»v ;¡ã“O>±âH/ð€:†ç¨«P|/^óI›£ù€¬´œÒÿyaµ°#~f­ËvŽ`iJa¥é«µë¼Š€;P§Qw ª4EÀ)pÎÉçŸ×‡M8‘zC©§S§ ¢éX±â 7°¤<(>€j8|úñ)óŠ@øB eËYtåÊ]>ÿ¡²æ «Ãé¶“'o¥áÃ?¤>*í ,)Š€O"y(Ÿä\™Vp‡@Ñ¢$ »PPñ♼b}eÊd•è™aÃÖˆoG‰™½‚/eBð5Tàðµ'¦ü*áxñb²f# }óÍ&ª]» átWo(E‹f¤äÉðqç?ñi¡Oé½÷rx[ʃ"àS¨Iŧ—2«„pd|•*_sXhZºÔ»¢5Ö­;J;/¤š5ósTMŠYÝàÂÿo¤®ÐUè_‹«T:Š€"à°‰Ûˆöì9Ï)ϽËY³zõ|´`A{Ú¸ñ8ûsÌ¡gÏ^ºdÍJDˆ¨Àž²®Qð1Û²eI9ß䟞z÷ðéX¶¬:t™6œJ÷ï?ñ*þ”EÀ[PÃ[ŸŒò¥Dp ¨NQ¢DæèŸ¼ DkÖt¥;wÓ|KçÏÿíu<*CŠ€·! ‡·=åGP¸qcð+uè‡~£ß~»èu¨dΜ”Ö­ëNÉ’ÅcŸŽñ´{÷Ÿ^Ç£2¤x*pxÓÓP^EÀpÎDDHïÞK½Ò_"Q¢Ø´|ygá±iÓé´xñ~üë" ü‡€†Åþ‡…^)Š€"€¼S§n#ør”/ŸÝë8„“+œI]ƒ\Ïž½¢²e³zŸÊ"Ö¨†#¬Ÿ€Î¯(vÀan_|Q—fÍúÕ+M+&ó½{W¥I“šÑÌ™;©U«Yôð¡ŸÙ¤ßŠ€"Àhý5PŸ@›øŸÞ¦­[ûR̘Q½–çƒ/SÇŽó(R¤H4cF+ÊŸ?­×òªŒ)žD@5žD[çR#0vlC1«Œá}Q+Ö‹*\8=ýòKoÊ’%Õ©3‰fÏþÕºY¯‹€úpDØG¯ W| ر£SŠ häÈuT²dfJ“&‘×. fÌhT¯^!ÑrŒù3:uƒJ•ÊB±bEóZž•1EÀݨIÅÝ+}E@p)mÛΡ'®Óöíý|bß·ïu불ž>}ÁN¥uX)ìR<”˜"à+¨IÅWž”ò©(‚À˜1 éÉ“çìHºÖ')Q"íØÑŸÍ+Yðøš5›Aׯÿã¼+“Š€+PÕh*-E@p;‰Ça³J}š?oägÜ>Ÿ+&€)eøðiõê.tíÚ}ï-Ñ,¯^½qy¥¡øjRñ‰Ç¤L*Š@@>ýt!ýúë9‰Zâ+åÅ‹×4aÂfúî»m|ä}|4¨†äñðþ•OE ¤¨ÀRätœ" „)?§J•ÆQÆŒ‰iѢÔ—L³ÊèÑëhåÊC„È–Ï>«M… ¥ )£øjRñ‰Ç¤L*Š@@âĉÎH[°–ãOš>}GÀf¯¿O•*$ Û°¡'EYÎci×î{:vìš×ó® *!A@5!AMÇ(Š€× 0yòV7n#ýôS7Ê“'µ×ðå,#[¶œ’u;ö—¤pïÚõ}*^<“³d´¿"൨ÀáµFSG0 ƒ5šF7n<„[¾žëbçγ4qâڷ8Zzö¬ÊH6G Ð>Š€W# ‡W?eNPAàöíGôþûcù““¾ý¶‰#C<Ò'W®\œôëTˆæŠ-%ʼnS„^½z@í  ¤xL™2Ñùó烜RŽ ¡ÑE@ð%`’hÙr&ûu´äœ¼‚uø4hÐ Äü@ƒóÎ;ï„x¼T<ÀêÕ«ùpÅßì Q<ÁˆÎ¡(Š€»€v£mÛ²Ô¯ß2>0- ¥OŸØÝS:D?gΜ¡8šD;)aŒÀ… Dà°Ç†F©ØCGÛEÀ§2¤‡É&¥6mæŸßKŸâ]™UÂ;*p„÷'¬ëS"Ñ¢E¦Y³ZÓß?¢Þ½—D •ëRïG@ïFÊ¡" 8@ªT ÅcÍš#,|¨³¥ÐiWEÀ­¨ÀáVx•¸" „eËf¥¾}«Ñ—_®¥.… :§" @@F¢·Š€">@â¬#G®ÒÇÏãü½(I’¸ácan\Eûöí9´ø}ÎkÒÈ-³Ì›7–, ÚÔÕ£Gª\¹²Ëç|¸KiO›6nÞ¼IÆ s)]D5=~ü8ÍT©R±ÖnV zëŠÙ³gÓÑ£G9—ËDZ°`8rNž<Ùº‹C×XSŒ1Ø »ŸCýé¤GPÒ>Š€"à“LœØŒbÇŽF:̥ׯõdÖàâÎ;éâÅ‹Áu q{¢D‰(sæÌò‰92mܸ‘âÇo©Ãµ;ÊèàÁƒ.'}òäI:tèËénÞ¼™nݺE©S§ö÷IžÌ­E]Þ¢‘P)Ož<Ò~ïÞ=zúô)¥I“ÆBâþýû²Ñà-oÞØ‘$EŠ–~oÞ¼¡'NP´hÑ({öìtùòeJ™2¥Ü›^¼xA< dÉ’Ñ™3gèŸþ¡‚ Zú²´wõq¦Q»ÝÔ¤ÂèjQð@íÚ>}û.£ýû/xõb/]ºD0m@¥ MÁÔ©Si÷îÝtûöm‚béÒ¥Ô¸qcyË^¹r¥¬åÎ;´cÇjÞ¼9ýøã´iÓ&1@Ò«W/ñ1à@Þ˜OŸ>M[¶l‘·ìŒ3ÚÅoãxcÿóÏ? ´ `é:ð €ú~Μ9òÖ…êÖ­›¥o×®]‰7}˽­ ˜Ê•+'ü›íË—/ŸÓ”l` ø`_a©ƒ åY°`›Ö;î8ÛølWFÆŒ–,Y&L˜à“$Û£3‰¡ ˜5Ä|[Ú„‹.ºÈ¯/ô‡k[·ní>ö´ëJM,‹À€nÊ'vQ”~ýú{bŽEÃĉm»ùÚ—³»=½Û>*k\q@‰2k@Zψ#|©„¥êG ` Å‹e Ú@q`¹É,E®x¥øÂµ,_ؽ—`,øš,^¼Ø¹²Œc–ÏÃÿ„6È‹‚′ÁrËm·ÝÌz³Š‹ñãB³´–M²NdΜ9aêÔ©®rïQÀV¯^íy…þÌ›7Ï—ÅP"QÆÌòáË=øÑ°´ÅïáÒK/õß "å*-òá¨4QÕ'"Ðh \uÕÉ6Nów®Üu×(ó hÝèúšõ·`ò²eŽ´( X*&â!C†¬Xð`r4sz°e ÿ ¬09£|à+±jժУG´¾N:¥ßó}‰“0y(<´%×:‚ŠB9Ò¿ÿpÎ9çøDÏ„‹Hß¾}Ó*³ý¡=„6ñI@èÇø«I1a2‡ þ)YÁ¢‚¥‹>ô% ÷‡¼(X¸GøË,_¾Ü•˜—=¢e¥6~Œ»Š#VüpØ:KXm#ü_úôé“ÅDŽߊ>1Ô…qWZ>¥XéšUŸˆ€42­Zmn¼ñtsPÜN?}¶ýGÝø"W˜ê"LHLÈjÊ/êÖIDAT3gÎô #N¶˜Èq|äÉŸ§^óps;ŽíÛ·w3|¬?šèãyî1ûÔ̲NÖ3›ÇdÊd›ÍÏ­«.ç(L(NXnP¢ctºäúl›,w ´‰ÀdÉÒN‘|x™X¡ Û/´?((.8„FY·nGgP/Š£’G¢R²ãÄ’B&~–u6lØàUQ7V—(,Ke%;–Mᇂ…u笳Îr…è‘G Ý»wÏV÷;ŽÁXÅ"ŽXIÁÅùK X”úˆê‘Âéê("PØãW¿î{t𢷦*˜À1ï³ìÁ“jÏž=}([ð²ö´ûqÆ'™0ͺ’oOðZ£@'((æÀX£³¨x¨k¾ñRØöºH}ôÑÄ–Šj\[Û LÌÙ4±e„„‰9WÌg#±¥‹$—Cn¹ÜsÛ[ÄëÍM¯?ú„bÅ)*X1-ß‘ûÎXγn$Ë–-KÌÒ“›Uëy]9Ú¿6‰ˆ@u>ü0Ûèèíð½ïͱe‰m,ÔðSÍÆN„¥ÂQYJa¯\É—F|D¢Ã"þ µI,›¯K5ø‹TJXJ1åÇ2ÍJ’·Zü<øä6²Ê:Åæ+“/ &D|r7+T6›Î2V±zËá—Û§èD›m?ßw6%ËÝØ,–Ã&ë´Ó+u”G¥Hª&Ià²Ëú†^½º…¡C¯·õöMf ø0 T°OG©B˜%Nø€d…ÉŒÐÜB¬ì*Ú¥K—ì%ùŽß>øS“úSʤŸ­£±|¯/~e|…úÑ ;I¡L¥‹€ˆ@5 ZeðàY®pÜqÇH{*ý8ä²Ü±³!·ìC!-™Ž¦lšÆ>(…DŽBd”."P5Z¶lnÿY ;··Í¬þ×ÞƒñNÕŒ]†" …£¡H«FM uë­ìuÞÃmÇÅV¦tL·pÁš55êΫs"ÐHáh7I]h8ŽÎ›w¦mý¾í1ÃÞòéÆM Óµ"[.ùpl¹÷V#(‘ïZéÓç*{)Ö.á†N·M³J èǃͥ$"P ˆÈ)æÃ!…£~£ˆÀ&xî¹Uæðyµ½gc7 ?=­$¥ƒ·¶ò6O‰T¶¡;Þæ¯Ž|T”&" Fà™gV†O¼¦,¥C E@>& ýD@D nÝ:†[o=;,[öF6캰~}íoå,P•’E ê Há¨úŸ€ˆ€#«t¼ÿþ‡ÅŠ+OD )À(YD@"¬Ò1tè,{3§”ŽÈFG¨+)u%¥r" UM *Ë—¿iÛ _'¥£ª |)¤p”BM׈€T%”Ž[n9+,_þF4h¦ï×Q• 4h(€¢TJ€¦KD@ª›!³'Ÿ|mèØqû0gÎa‡ÚT7^ê@@ G ©ˆˆ€äxýõ·ÂI'M÷ý9æÎ:t¨ùÆÕÜò:j' %•jÿhü" %àEowÞ92´lÙÂv%b;,®)©]$ÕB@ GµÜiSD âvÚ©mX°àܰë®;øVè8”JD@ò‘Ÿ‹RE@D NÚ¶me/|:¨³m…~Mxà—êt ‰@µÂQmw\ã¨8V­¶²÷­ GÝ- <3ÌŸÿDÅÛP…"ÐÔ ”ö Ħ>jõ_D@*L E‹æaÊ”“Ë,çž{s ’eüøÞ¡yófnIÕ‰@Ó$ (•¦yßÔkFL`Á‚eaôè[ÃÁï¦OÚµÛ¦÷V]†! …£a8«*#ðì³+Ãi§]Z´hfÏöÝwç*# áŠ@Mòá¨ÉCg" "P]»v ‹]vÞy»Ð«×ä0cƃ!I’ŠÔ­JD )…£)Þ5õYD Éøè£$L›¶8üüç‹,’ew÷ó`‡R‰T)ÕvÇ5^ÍBàùçW›3霰råÚpÉ%džzl–~¨QØ\¤pl.òjWD êðZû+¯ü?s$} ôè±Gøñû…/~Q¾U÷C¨ÒKá¨Ò¯a‹€l>O?½"\|ñüÀqàÀCÃØ±=ɲùn‡Zn R8´š\·ß¾4\~ù]aÆ]é8õÔC,ªE¾ü¹œt¾e±eÜGBD ‰X·n}øÅ/î³f=h-íÂyçi[¤l/…“âÑDo©º]€€Ž`”,"  I`ÕªµÁrO¸õÖÇ]ñ9ò 't—âÑ7AmÕ+)õŠW•‹€ˆ@q+V¬^xaZhýúaÅŠ¶áokÚ´ù |å+zí} G_6Ÿüä'a=ö(«}Ùìʧ‹E@D <ï¼óN¸ýöÛÿþõ/¯hë­? {íµÖöìX:uú8­¼tµ”Nà?ÿùÿ>×®][z%Ÿ\©—·•Pˆ€ˆ@ù&Ožl!²_,¿"Õ $ðÚk¯…=÷ܳ"5ÊÂQŒªDD@D@D )Åè(OD@D@D "¤pT£*(F@ G1:ʨ)Á¨JD@D :¼þúë¡gÏžaõêÕõ:àÞ½{‡›o¾y£6ÆŽÆ¿Qz) ³fÍ GuThß¾½;Föë×/Üwß}¥TUö5Ǽs…mîÇÍ-A¤pl wQc"@ï¢E‹Â»ï¾[¯-Þ}÷Ýá•W^Ù¨Ç<<ñÄ¥ojÂÈ‘#ÃðáÃöÛn.½ôÒ0bĈ€2õÝï~7\sÍ5›Z]Ùåï¹çžðÖ[o…Ž;nôÙj«­Ê®¿1T °ØÆpÔ¨#õëׇ¿üå/a×]w o¾ùf`Ÿ„®]»†>ú(¼ð ünݺ&)ò™PwØa‡´ö•+WzZ»víi™5kÖ„í¶ÛÎûH]ôkÇwLóékóæÍ½¯Ôóßÿþ7l½õÖž–ªÃ—Bcøàƒœ Çý÷ßßÞSÓÂk[¼xq˜:uj˜4iR=ztÚÂyçŽ9æOëß¿Ø~ûíÝ’Ó©S§´OXvàA^6o{ã7||mÛ¶õä÷ß߯íܹsxùå—í}9Âg?ûY¿oñºüãá½÷Þ :tð¤¾}û†‹.º(f×8æÖG]~øa =ØýùÏö1r÷Þ;ï¼³m÷•ЬY3¯kÕªUyË×h¨>O¬£ÍDàÙgŸMìÿøÄ”…:õàÑGõòßúÖ·üȵßüæ7“#<2=?äC› ’C=49âˆ#ÒzMHlÒM®¾úêäé§ŸNLHL!IlBJìÉ:yñŽìƒ>˜Ø„š˜2àå:è Ä”Ï{ê©§¼›D“SN9%±½CSh’Ï|æ3ž>lذ´=Ò¾þõ¯{¦%¦˜$óçÏOóiãì³Ïöó{ï½×¯àüÜdâĉiÙøåðÃOlÄO‹á¥—^ò¾Á§e˖ɾð…vȉ'žèã5%Àϳâø®½öÚ\oxZä«_ýjbJŸ›Â” 4ÈË0>ØÚŽœžë±¥ç{ê©§:Ï¿þõ¯i]ßùÎwÒûcŠYrùå—§y¹_rë»é¦›’½÷Þ;éÕ«—ß[‚òK.¹äo‡{Â}…ÿÛo¿íyùÊç¶“{þꫯúøÌª”›µÉçZR±_“DD@šžlybeð%K–¸•‚'Û¹sç†GyÄŸìm’ =ôPÀÒ€,X°ÀŸÔm —]v™?m³DÂuŸÿüçÃôéÓýI|È!á€ð§f›¸m›õ¿ÄcJJ˜6mš?©_ýõÏwÞ™–çÉÛ&­ðÏþÓý%Î8ã ·xP€e S”¼,Öü3r­(iEy¾E–ú‡%¦{÷îaÀ€n øÓŸþäV!SD6ªkV–ºøM0nx3^,ð7n\XºtiZ¯)”ÎÝ·4üæ7¿ñ<,F¦\îQ”[n¹ÅÏI‹Ÿ+®¸"fû1Öwì±Çú¹)j¾$4cÆŒðûßÿ>üèG? ×]w]0%#0N–¥~øÃ¦ud˧‰ ôE GV3" "PI_|qØe—]ÂÑGíÕâ€i>ž3ÑŸp ¾Œ'9¶PÇI’e vÄâ§?ý©/— ¤°Ä°|ùrW4Î9çÛZ½“—:thÁ®ï·ß~>‘³4B9Þ·a–´<¾(,»Ðg&Âçž{ÎóÍ‚âĹ×^{y_X‚¨«¾ŒçK|MP:ðÍ€ Ôºuë|i!_;,?ÄO¾ülÚ¼yó‚Y<œ»Y[\Ic —(( }úôq.(W¿þõ¯= å…ç¸ãŽ‹E}iɬB!ûkVb}´ƒ°ôsÁ¸ÂH,a™ÕÅó` _–¢dËÇ´†:n¬Þ5TËjGD@D d¶Dàׯ§t3—û9“%bönW,˜t™ä˜Øî¿ÿ~"'?NþXHðÀ'„¨h ùÚ×¾F1—bV‡ÜzáÇëàâÝwßýãJì/yH6ßòüÁGå$Wx§Ö¤ÐðgA°8Üxãþ?8dâ'BŸñ«È'¤Ç2ùò³Î²ømàë‚BߘxHÃbÅ– Üò‚uå„((…|8b™l}¤eÏñÙÁg#«¤àÇ3j”lù˜ÖPÇšªSCµªvD@D@Ê"TŠU„iÓýÌ™3ÝY”pS„¨Lí,—<ùä“>3Ùí´ÓNžcj”bË ÙðX&c,$Y%›ÉÉæÇ6rX:°Rd…e ¬ñúBcÀòƒüò—¿´7ï®ðcüÙÏ~æN°ßþö·ަ?üpZ=‘*ßÿþ÷}© '[ÂT£â€s+‚“&V’(´ƒÕ"¶ÁgT®Í'8…¶jÕÊï÷dàÀùŠ•œ†Šõe3 ㎼bÚæ:JáØ\äÕ®ˆ€4ž¢‰>aï &B&<„u~|(ðßøÒ—¾äÖ–=xBÆ~,˜eÁž2¡áÇ€5†hЏ¬ÃEæ ê¾L„S¦Lñe¢U&ø¸ÜÃRýÁßaY€%|°$  `@ 8餓¼L¡1`Áøò—¿ì“?ýÿãÿìíáŸÁrËOX&n¸áW"°ð\yå•aΜ9a̘1KE´a¢ø˜D僠¼á‰ñ›Óg@©(ôfUîK&Lðú±>e¿ûÝï6ú`©‹À~p¯¹w=ö˜[µ"¯ºÔQ¯e6ÙÍTˆ€ˆ€TŒ@©Q*1r¬E#0ÌAÒÏï¸ãŽ´DŽØD’üáHÓÌ™4±IÖ#ˆ&1% 1‹‚盂GžpYR[^I£Tˆ !=F©˜EZ–¨“¥AEÔkΧ½Á5D´dûP,J…ëÍ31ÇOoëmƒ®$;®bc ªÃôZÆÇGÝæp[#²‡úm'a<”5‡bÉi§æu˜¢“vØa‰ù¬$¶”ãyfÑIl³°´ Sæó±ð¼,'OøäÏÂ… ½ü¨Q£²É‰)8i=ô%ûá~ä«ÏBkð¦B"hè+3ÔaÊFb–!o+_ùÈsRÉ(L/ÍD`SŽRºyþùç'¶v¿Ñ¥„…Ú2G‚Ò’+LRLr(0y’*Ùr„ÅÚ{B=¶ïCB˜hVP8Ìú‘ØÓvr›Í¯ËwêFy`âË'ÅÆû…òÀ÷|BßPDÌR“˜3©OÎ((TQÌ"±%¦xºÑÑ|'¼ÛWc£¼Ü.[ÊͪØ9ýeL¶\Vv•T8ä4jw^"" ["–'ˆP`é†\ÁáÔöêÈMös–^âÒGÞ™Dê)挈cdÖ92si­_©›M» I±1ÔÖ/ê¤_YYÒXBÉJv³²lzüÎr ŸÚdöìÙ6ÌRʾûî[[ñ’óéom}.¹ò2.”Gðt©ˆ€4føg°M÷~ðƒ4T²”þâHÊ>¹Â®¢ìDZH˜ÈãÄW¨¿õŽ ŠÆæØ:½¾ÇV—ú›ao©KA•¨<œ)±°-¹ù8T¾Õ(e B)îwrà–QS²p”…O‹€ˆ€ˆ€Ô…€ŽºPR²Há( Ÿ.¨ E©Ô…’ʈ€ˆ@=°ÐÕ‚ï÷¨ç¦U½$ÀÖí•)•"©zD@D „eÚ »„êt‰T”/‰ã÷i›´•]¯¢TÊF¨ D@D@D@j# ŽÚ)_D@D@D lR8ÊF¨ D@D@D@j# …£6BÊ(›€޲ªÚü? [“õ•º/IEND®B`‚mysql++-3.2.5/doc/html/refman/inherit_graph_0.png000644 000765 000024 00000005372 13515046516 022365 0ustar00tangentstaff000000 000000 ‰PNG  IHDR­$ûºSsRGB®Îé ´IDATxí[ŒÍ®ÃÝÝÝ!@p î–à.A‚&@pwA\ABp—àîîîîîô«¯’žÌê¿··ÜÝæu%{3Ý]Ý]S]>s!Š ¢­†TÃá€Z#AÇ#´Awd†`#´F‚ŽÑœ)>~ü8M™2Ź۴ "„:t ªU«:ìíbi=zD«W¯v@2 ÈàÀÆéöíÛ.[»XZ±jÕ*}k®†ÂäÉ“»Ý×ÅÒºÅ2†‘ˆFh#ÑaR|ã€Zßød°"ŒÐF¢Ã0¤øÆ‰˜oÓ#kéÒ¥tâÄ š1cF¸³eËš9s&µk׎7nìóž_¿~¥?þPüøñÿsÎôéÓiÛ¶mnñfÍšEãÆ£Ê•+S“&MÜâº|=<.[´hQ5j”Çñ@½ÐÞ¸qƒŽ=h¾x\oêÔ©´wï^zÿþ}¨„õFî† <®­.]ºDÇŽ£Fé.ë=zt:pàeÉ’Åêû×7±bÅ¢lÙ²YÛ@q *D%K–”¾Ô©S[cáqf¡ýñã={öŒÒ§OO>¤ÏŸ?Sþüùéïß¿tõêUÂxÌÆx¼xñ(I’$Ö³=~üXú%J$}gÏžµæÄ×Âú/^¤œ9sRìØ±éÕ«W”1cFk7?~$|´'N:yò$¡d’#GÁùùó'½{÷ŽR¦LIׯ_¡+\¸0ňCÆ1ïû÷ï3fLŠ%Ьcoéþýû´oß>ªS§mÞ¼™nݺEÙ³g—ùoß¾ºõþþý›ðlà üË—/ôíÛ7zúô)¥I“Fæ`Ï„9 ¤éÇŸT©RÑüùó­¶·ðúüùó-Z4Ê—/ŸÐoÇùò¥ì‹sÁyDUžÓŽc¿×þizÒ¥KG°þæÍ›'<>|¸îr¸þúõKÎÛ¡3 &и>‹Oú¼5ø šàW¨PA®˜[¶lYU¥J«Í©XhT©R¥Tùòå­å˜™Š¨ØÝª .(BÅB­˜YŠ¥®]»&¸lYTâĉ “à)RD±@ËØàÁƒk½Ü·hÑBåÎ[±R(FÙ¿}ûö2ÆNÚåÊ•³Æ€Ë/Sd|÷îÝ2¾ÿ~·mtŽ9R%MšT½xñBÖ6l˜àâO÷îÝžS»TYïܹsªk×®òLàM‰%káy@+ž·téÒêÍ›72Ö±cGÅÊ©—r¹²¢(¤ÿàÁƒB+›Â/a„ÂK= 4b}ì,Y2áèq¬P²nÖ¬YÕéÓ§Ý¡Hx;bÄã¹råR;wV§NòˆãËè…l8CÀ± Г'OîóСC¢Ñ°$+V¬W«Û²eKb&4°~ýz± ˆÍF-VéÇb¡`çÌ™CÐÚ¶mÛŠ;ºwï!`¡‘ùîþ° K| «¶hÑ"ùmÚ´ÉBM›6­X>XI8p ŒÁj÷ë×ϲÞÎmf-Y²DâÈ)RPµjÕhÙ²eÖºÞn7mÚ”êÕ«'¼8räÁJ-\¸Ph¸yó¦¼ù2dˆµ ¼øeÿ­\¹Ò×7 Ÿžž?.ž&oÞ¼4vìX¯kÂJÂÚ÷íÛ—À<‹ÄÙˆÓëׯO2dž7oÞÜò /4WЄ±.Â}èÎ;Önßh Ƀ@àª.ß@Á/_¾ìà¦ñ̾Ðb_ÊeïÒ¥‹Xx§bÅŠY(ØnÚhº8§Þ½{K¸À1(uêÔ)àU('Â;yòd AfÏžmÑçïMÀ„ÖWy£*0tèP)é œ@|׳gO‰ga1`•Q€e€µÄÃÃõqÂFsçÎõ¸ VÚ AÒ! &!<À:M8ù"m9+c%ÀÞ†ÀBp9¹pÖ¿6mÚHEbëÖ­âY®\¹" Áp®[¢z…ÁÞ ôh£ÎŒªâÞÐÂÄÿ¸¢¢/£´ò „õÆ3£ÖÚ¿zðàl°‚„<!X™2e¨8‰’=5­ìEäYQ=ÁXÅ!…à¢z€Ê†'à2žõ\œ}RlUÕÎ;W,…@9jÁ‚®»Ž‹xçÇ[×·½ û<æIh–ˆ±µøO€ëE†ŒPI€3 ‰ãZ®s·´Fà%…/€uPH÷ÎÉš'¼Ðö#®µ'zÎóÙò;t!Â/¬à¼Ž®  †ðUƒJ•*ÉÛ8„H¾¼*<øù xAó/!\cZÄ5xˆ:ž.÷øópHÎì ‡^o¿ô»,*¬ÿ@ñ*þ…н” ÷ê·„ÁʇØj;ñ¢Q·sê¶£˜{Ãpá<¿9$~ƒç°_¸ZZ‡MÃpÀO¡õ“qfZÄqÀmÄñÞìì' MySQL++ Reference Manual MySQL++: uds_connection.h File Reference
MySQL++  3.2.5
uds_connection.h File Reference

Declares the UnixDomainSocketConnection class. More...

#include "connection.h"

Go to the source code of this file.

Classes

class  mysqlpp::UnixDomainSocketConnection
 Specialization of Connection for Unix domain sockets. More...
 

Detailed Description

Declares the UnixDomainSocketConnection class.

mysql++-3.2.5/doc/html/refman/functions_s.html000755 000765 000024 00000031037 13515046515 022034 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Class Members
MySQL++  3.2.5
Here is a list of all documented class members with links to the class documentation for each member:

- s -

mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1Connection__coll__graph.png000644 000765 000024 00000024765 13515046516 027235 0ustar00tangentstaff000000 000000 ‰PNG  IHDRC{îmâssRGB®Îé)¯IDATxí]xTUÓ¡‡Þ{¯AEAA, ¨€H³~VPŠü *Š Š"ø!~‚¢ ¢ˆH•Žté½÷¡&äüóŽžu³É†M²›m3ϳ{ËisÞsïÜ)çž›Á3‰”E@o6e`ahÂí½" (´(BAPE@ Ra¨W" (Œ€ C½ E@`2¹¢pàÀZ¶l™ëi=V PáÂ…}ÒïsçÎÑ•+W|R·¿+Í–-åÌ™Óßl¤¸ýD‚°uëÖ)®H (¡†À¬Y³¨I“&>锎cÇŽù¤nWZ¬X1ªT©’¿ÙHqû‰„¡­AƒÌ ݆gÏž¥L%K–¤}ûöQLL Õ¨QC´¥M›6É,ûn¸"##%3ÓóåË稓OqÎÎë‚ö…:Q&GŽŽ|¨s˜*W®L˜áŽ»téÒŽtì`V?æGfÏžV®\I tLþ„Ð9}ú´¼Q°eË:sæ Ý|óÍ”9sf©å._¾LY²d¡ˆˆ©ÇCÐAsªZµ*ÍŸ?ß1»þÙgŸ¥úõëÓ /¼@ãÆ“<˜H›;wnÁü¢€¨ËN²Ý³g•/_žFŽIY³fuô}\³f´]«V-ZH„6 òæÍKëÖ­“2˜Ÿ–1cFGYh§Ðü2eÊDÑÑÑÒG¢ËÎ{ï½G+Vt9K‚æØ/^\Æ :$(P@òïÝ»—0®·Þz+Ùs¶¢ýû÷ÒÑç\¹rÙÓÒo`‚ërãÆT½zu*Z´¨ƒŸ`Þq½?Nž¦fÍš²ß®];Ã˰°5,ä¤}Öâ$í§Ÿ~’cÖîiÈË7°¤Ï;WÒ,Xè˜MYI›3gޤ9ÿ±2, ÍÝwß-§Ñn½zõ„O~Ìæ‡~0óæÍþú¼{÷nÃóÁH¹E‹6½¥_|!äR‰Ý»w—~±“²¨ƒßŒ0h„²|äòcÁ#x"ÍŸÙ³gK?¶mÛ†¤D´xñbá±wïÞ’¶dÉ9¶<öíÛWÆí`,øM%síÚ5Ã/Ó±cG©}Fÿè¨?½1OM›65¾‘ͨQ£ü\o‡”Ò~åzYSÎBÚàç)¹»?žþy\uêÔ1ü@Þ[µj%çÙM’à:Ã5‡{cˆqB9‹ VÃw9‡ó¸±Åµë)O¦žf¤| I½Ô ÇzÈíÛ·^pÌ&¯)œp>~ÿý÷¥Ö<%¯ë_Û¶m xáÆçב k†ŸØæ‘GAÅ>3eÊ©†&ü6Ài8Æ>?± k”" ѯÁƒKú[o½%õìÚµKêð}ðÁ k¾R*PR°yóæç `€›‚‘_©2G` ðà±×ùóç›?þØ@àüüóφ}€fôèÑ’—µs©3½1™8q¢´kLÂXÚ‡‡0•Ì_ Cw÷ºk× È Ã*UªÈ5ëÎ^gHÇ>´ìî1¬AÊøâ^±ï]®UÔ‡õý÷ß/8†‹0ôšÏo:Â;‰<ðß3D]ºtsË3¸òÎ3ßhÄBAò|ÿý÷tï½÷ŠÚ³þ8ÖBÄÆ;ÒNüñÇ„²0EK•*%jýSO=%å“úƒ‰ˆ L]ä+W®±féÈúæ›oŠ™ ÒY”4£m˜ çc˜!0œÍvÉôÏLôËÌg˜ð0× Ò7lØ`“mÑG˜Î(w z饗ˆ “„~¼òÊ+’þÜsÏÉ9˜A ¯¿þš† &fÑ?þ(.˜Jîõ»þl^øBá`MŸŽ9"æ?°äЏ7Xl1 Dóo¿ýV\0·`Ƴ¦.®ø'-¥'&ÀŠ­ êÕ«±P'Œ9?Dåœå'ضîîwýà8±€t¸tœóÁç 7 \,d¤óÃLîÛo¼Q={: ù}¯9¬Þú¬O %ˆ<"ôÍDƒÀZ…ÜPH·Bƒ5Kzýõ×ÅùÍ7ß8üll ›;ÂàLðZ_γçHFD¾Çë.DD=!”±ïLðo²Ö$Á{Þ¹ ´ræÁæ³[øZA¸@-YkÍr ¼Z²~FÖÐä›áÄ&¬8øÁkr4`À€$}†(Ÿ)œñ¬M›š¿,x´cjë†@ÁO'n>Kð۱ǹôÄ„Ý(Ĭü°ÐJŒýúõ³ìÝÖÝýÁ¦l’}ßÞ9_Kð¿Ûë_ç{ËùztWW(÷šfíÁb³T´16¥ä©ÅæcœÜÐlBKÑNE;pp†[bóÐî&Ú:kDˆ¢Aër`çtö‰%HKTÙ?'E†‡öåJ¿ýö›8¯Ùv$9·±téR9ï̃#ã?;öAâü’;) 2ÿhªÎ‚åŸb²ÅmhÔµk×vÎ’¢}=X¨ÂC ãÂRVp¬#PÂCà™gžmû¡ûVì·’¼øKOLV­Z%AXx8ò"m£š6€‚²¨‡oƒ@›wR6¹h22 0€À 4)oë@ÔÎ9°‚tD·m¤kÛO6É%hƒ²,t IG4íó´©}dŸ¥#ÚØ£G‰P £üǽäûõ×_å‚håX5¯½öšôïÿþïÿ$€bñA4m'õžÃ‡OP/¢ÎlFÒÎÛo¿-m <»# O'’óH!PdëE4A'Ké Wü€ðÂÖ…aÿ³eçº[‹o E“Àrw|÷Ýw2ÞgDsÑo-9_gØG Î YÃóNå×'Ï™•kãŽû uÙë×–InÖÑää€q—ÆÃ>DÉ<—ÎðÓ\ªk"¢‚‚Qb+ óaðZ´haPkoYµéV" ‚ÈF´mº§[D{Á›b•v-‡‘VÜPvjsD‡=OŠÐGÖlej"¶)!Ôé<¥Ó–Iô6¡NwSsØÄ–›ë šõ&Àí”bˆÂ€&wsç‡r‚ðð`ÅŠrßà:D[<Q„!ðð”‚Yz-€ÂOëLPøØ ò2$Q~˜2<-$Ñyœ€9 SÓB=É9]ƒ,žÔióÀ$ñ„L2ÆÏ•`ª¹3×ÐGLO Á­€Ÿ%¸±ÇÞÚb‚¼k ÅÖÍš‹¾ì±ë6½1áé%®,õqr÷&ä§•äiR„|õl —I]Çim+˧«0„?ç›qÄ“tS*© –GÐ$)‚ ÀÀºs'U&5çІ³PJM¡VF1 ޵ӹ qaÜàóJôyð V‹Ãí§"»ì¿/¿‚WA¡¸ì?,œ üÊ¢t&'¸êô@PA@…a€ DJÙPÍ=¥ˆ…f~ãÙêq¡Ùy/÷Ê­Ïæ²Rà"a8nÜv^S±8-þ]Ý'p9ÎÜù½ÝL\÷ä (wíZ|‰Îì¸JÕžJ¨sWÆ×ç1¿fr0’[a¨ßNüጊªKk×ÞÆoÀläÅ=—ÒµkI¿'áÉ!|“ø¥”®ÌHǦd¥Ë{2R‰ç.ò2eRZ…Oó;/ßæÓ†¼\y¢Š—ë×ê|ˆÀ§9ªþŽ´#GfŽÒ7ã7HêóB ¿îæµj? pùt­qˆ¶üÄï«s|3G‘ÌÔvz´8 É&5€ÌÃZ¢D^ª[·¼¬"sáÂU~ÕðGºóÎü~ò߯sß”÷0¼îÆú¯Ñ·Í7жi'EfȘª·ú{sê^ZÐJZÐ €²íÛßî˜ohÏžôè£Ãù]êÿñûªi{W5ºö,ì[|Ž&>¼‘V =@q—â)>îŸ)oì3®ÔüßIöa”P3Ù ú³Š+Wâx™ÿ>¼ô{Â…"#3йüòËMxÄFüÖ‹[÷°?Ù×¶Ý pfÏeúýÃýtpÅyÊÀ*‹sÔ8‚µÂ’õsQ“Á —“sS•žö 5“=Ã)psAȵly+¯Ê’1“±±×x™­8^ w&Õ«÷>Íšå~qÙõÀ¯\=–}t€&·ÚD‡×Ä/΂'⯪ú¨šÈÞ(5“½¨ê{üñÛxοzumËz9r†—CmÚü——(»þb¶®uè±ï€ÀÛüý ú¶ÙÚ4é¸h‚“Ø¥ùìù"©DÝ?¸å’¬‡©D@…a* ¤b7ÜP’?SPØí{×ð%‚/ÞN÷Üó!¯Õx$ØW^ߣ%÷ÑÕ˜k¢ù¹%"SªÒ²€˜ÎîòèùÔ! Â0u¸\©nOvJMÆŒâ7=ú)^ÅÚ?ßH8Ј¡è¶…¨Î+%ˆ0+*™™Q0‘+?¤_ C_ ê‡:}´k†I7Œ`Jþü9yeëWX3¬–t&=ëwj´/DñT)Öþ2$1WçŠ×Ž¢œ<¿PÉû¨0ô>¦~©1_¾ü’èDV Œâo™ôä%úCãCê~8-Ó(·ÄLY#D(:7‹W0«µÔÀ‰3&ÞÜWaèM4ý\W»vuRð&J­Z¥9€r–¿k±ÖÏÜióž {1žVó[&9 ERTÑ, b–¨LTºAOªÑ<©@@…a*@ Ô" VsØò÷ÒK÷°|‰?ŒÕœÞyçgÖ7Ú$Ý ˆ(ÿÖ{7]:K÷¨@]… ߘ“ð¶ æVy8?eÐé¢>9†>ƒ6ý+†&í¦ñ°aíøÛÇ÷ ˜té7Ï??ž6m:”þŒi‹!ðûûéðç©éòâŒÌA|V‘*ÞŸ_"Ì•[ð¨Í”:ô ”Ôá°¥öî=IGžãÊ&à1..žÚ¶ýœvï>Δ—ù:O-@~>X?þ­øô û ËQ醉—äÚ3ï •¹KMdÓ"†>D7Ъ>{ö'zEEe¥)S^äuç"ŰägÏü34·×nªÓ½8aŠ’_Ð×ñü»ŸÍ;ß… =ví:ÁO\h³ àùðŒ9BU[PA˜˜ô?PÍ0ý1÷{‹Ë—ïäWóFÒsÏ5røýÎT3O™²Gè[%þ½T3ô/þþi½Nòôᇭù3shòäÕþaB[u €@ V¦Qò/¨÷/þ~k½uë[iÇŽ£Ô³çDþ†J>ºí¶r~ãEV5“aüÈCçÎ_Ìf¼ªWº´¾óêǡЦý‹€F“ý‹¿ÿ[¿t)–~xTê*M›ö2åÊœ_6ó?’ÊA# >à À4³Ÿ-[$}õUgЉ¹ÂŸ ø’¿°§âM3¨n*Àb­q—_7ðøý´ºmý>þg pá\"׬ÙË_ØûÁÿ … Gÿ¼@3^ÜA[¦ð—픆9,éÏTttq1¢=M˜°œFZ˜þ „p‹çö_¡Ù=vR)þnIôã:©:P‡Z…a ŽŒøjÚ4šuh¦‹:xû+g¯ÑÌ®;)ªxjÔŸ_‘t³æ¤›ÔªR‰€ ÃTªÅtQïl|¬[,¾1«JBï¡ëýšTzÓ ¯qÀ€–T³fizâ‰/èØ±sAßu`a¿½tjÇ%ºwXyÊ–O§ôúkLsçÎ%l]éÀüÁ²Å„v] <ýù矂Ò‰%w8Úôm™a%E Ix¹/S­ZÓ¥Ëÿ’LדÉ#À‚O2ÃÖ­[MÕªU!)L¦L™L‘"EÌòåË%oŸ>}Ltt´#}åÊ•’¯U«V&C† füøñfÑ¢E¦P¡B&GŽ&kÖ¬¦`Á‚†”g¡‘(’Lüs²{÷î¦dÉ’¦L™2R.""Â<ÿüóR?øÃïÃ?tTö³gÏn"##%­I“&æÌ™3’þÉ'ŸO¹rå’´xÀ°P7,ìMÓ¦M¥ ʢϣF’2,ÔMíÚµ%?Ê!mÀ€ŽöÞ|óMé7ø(P €àþ@Éáè¨Àó…ÞJŠ€[–-ÛaJ—îiœî6&¤ ºuëš›o¾ÙlÞ¼Ù°¦c|ðAS¶lY†¸ñÛµkgÖ¬Yc¬p«R¥Šùé§ŸÌÉ“'Ep=ôÐC†µ@ÃZ’Á~ñâÅ ke‰ò³Ö˜,s†hoèС†50á†ã~ýú™³gÏšÖ­[›Š+J;vì0™3g6ݺu“4ð_¸paÓ³gOÃڢə3§ÙÖªUK¶ø+Zôﯲ`!6%å¼ÍïȔ̎-,l¦ò*è…xà()Á¦¹Ã÷gyïСC‚ÚÀ;›Í¼VæxbaÎo2ußeýúõiæÌ™tË-·ðÖòcÍ“ØTæk©±öI»ví"vÐÁƒ©R¥JþÑüˆ¥J•r´^nºé&9¶¼$‡££ ‡;@ñ¨pÏöúëÍä›Ë:•ÅaÃÔö¿X±bR”ÍCb³Q~¬ÒG}D¬Y]·Zö/J_,¡<ˆý~²M鄌'¡Éf2Gg“ƒw6Ý©ÿþØ`ƒðCè‡~ Õ«WÓ_|AÌ@8oذXããoñ}:q„Ød!‰~ _lšòÔ¬š¢-æÉ“G„\Ë–-%:Í>Fb¤h è/¢æÐf¡Y"Zþî»ï ‹±±±ÄA‚D{쯌¬F˜V“Ä!6µfU ƒ™ÿýرþ™‰‹»öˆ,rÀü¯ÁŸæÊ¹8±€_ofññM)ÑÜeË–Iyø \±ÄSò± °§ÄGˆÈ*Ê"HÁfµøÜ!©üŽ‚IìÀ/W¯^=GÊ AƒøÇŽk2fÌèHÿì³Ïħˆ¶ñkܸ±±Aš·ß~[¢Ûð9âÇÂS<ð6hÐ@ò#úH8ÚÍ™3GŽÑ¤!zŒ  ›Ì’ÎÂQ3Hg/>ÉW^yEÒ’ÃQ2¤ìo¡®gÈ#ª”26l8H-Z £G©Å+f·JYáʽù‡´äý}ÔèݲTá¾¼)ê4,˜ˆ¦¾º”ü‹0W9‚Kð1²°H²8|qIÍÝCfhfÎ>¹$+Hâ$æ‚wø9 ž G»…/øö¬ßÑf€Œ9‘Ðnùè GÌEÃ䈳h¼ÐQæž{î$ Kâ)IbJwêÔIªM G–ìãÞ™À¼¶<`›?~Ê—/Ÿó)ìëz†®ˆè±gÌšµ:uú’M˜é™gîô¬På¤êYÝvÒÍÏ¥šÿöãb÷àσß-)‚ „¯2P ¦qµjÕ$Ør÷Ýwü“ðA²F(Áw|cBúÓO?í.™¿ÿÓ†並«0tED=G`äÈùìãù…¾üòijܸºçƒ<'^±›öô6ùŽñýJyo›}DÜyªŽhŽÐ á[…`ô©0ô¨aU%¦ÛüôÓZš:µ+?ÅÿŽ”†2OÄÒÔŽ[)W©,tÿðŠ”!eÖm(Cì}Saì#èoþãââ©mÛÏùÖãü•—Ù”Ëß,ù´},Ðsä*=ô¿Ê”9gFŸ¶¥•§+* ÓîmììÙKÔ¬Ùv˜g¥)S^”B´«tþàUY“0ªXæPíb¸öK¿®#ïÍ~çÎß>è"“±»vàͪ®®¨â™IaÀ ‹WJ:µ’pB L™4fÌS4kÖzúàƒ_éëÚ×A@…aˆ d t£Nò<ï°5 :‡&O^,)Š€Çh,Ìc¨4£'ØEzöœH%KæÓE<MóªÄ0„¡°¨Ã•3¼ú4^ S T†ÍP§oGƒyQ‡Ø ñô˶ъO¦/hÚš_PaèWøC·ñlÙ"åÃô11Wx}»/ùûñAÑYà áÜWwÑå³qÝF¿qƒæ%&Uz H­&1… ç¸fÍ^zíµgÀ3K죣ë.нC*PŽÂ‘È¡²ä+Tú Y­WˆŽ.Î+·§ –Ó¨Q •uÿ;J[§ž¤»”¡üU®4ÐŒ+s^A@…¡W`ÔJ’C iÓhêÛ·½óÎÏ4gÎÆä²ú-mל3´jø!ªÛ³•º#·ßøÐ†ý‡€ CÿaV-?ûl#züñÛxÉ÷ñ¼É¡€ê;Vª^øÖªÞ¦ U¬`@ñ¦Ì¤º¸kúaö-ì¢<…fÛ´“T©y~yï8ì*<Ð…ÂsÜý×ëpZÔÁ(kË©@@jHhZ$ „Ó¢i€I‹úõúôpoRu÷+ 0û¯Â00Ç%ä¹ÒEB~ˆƒ®ƒºPCÐ Yè0ìEâc EDzöÑôÐAZ{â ªz‚’æñ鹨ѵ1ô݃éü!^­ZIpA@…¡ z˜þ¤Ç¢g÷^¡Ù=vQárèJÕé?ÄAÑ¢ à¦ÐfÒ׋:\>G3»î *hrëÖ­#»êC¿ÐOW¹5kÖО={IÀ„~£­¦M›Ò3Ï<ãHO-¯Ž tÇk¨™ì5(ýWÑŽ;è…^ ›nº‰ðö ¨F”9sf¹9q\­Z5:t(õïߟ2eÊDC† Ái:sæ µiÓF4.”éÓ§CØ(P€>þøc1E!úöí+B C† ü–H‚@ÃqgB½0aOŸ>-7?Û}÷ÝG¯¾ú*­X±‚Þxã ºá†D" fîG}D þýí‘G}”î¾ûnzùå—iíÚµÔ³gOúä“ODB8A „¹i “Òѧ½{÷„'„:Úøë¯¿(GŽÂo»ví¨S§NdqªW¯-[¶Œ ˆrçÎ-µD‰‚!øAYKÛ·o“¾¯Â… K>h{î¨L™2¢Ý¡ä+Z´¨hC6ÿO ©A˜ÙòA€!ˆãÜFr8¹KƒÆ ó ûƒ+Ú£ÅnK0«aŠ»#hÍiåÕ]Ýz>u¨0LnA] þ5ޱcÇÊÍŒ@ è×_0usåÊ%ù`B£?~¼(àWƒ/Ñ!€ÿ´±1cƈÏÑšê(ƒv耉Žè+ÌZKÂÖ‡ß#"ÈðÂlíØ±#ÍŸ?_4~ƒ¸U«VRꂚ/üX¬ÔÝi!`^Q/ú,ü@?ᆰœ0a‚ð„|ÿýï©P¡BÒ$„8àÇ™|Å«sºï9j&{ŽUÐç´Z„4»T˜í"£ï¾û®ø¾p#²ŠhjöìÙe¤5oÞ\LCLÛ±dëÆ1Ìd1DKaJvéÒ…ªW¯N˜'‚pC=ÐŽ`²?õÔSrÐV¡Í5hÐ@¦¶@ÃÂ>L~ð‡%©˜€à!h„HuÍš5åmAˆöë×OøD?Дw6•%3ÿoË»Ý&•†ˆ4„/ê!¢Ý¹sg‰Òã‚iè ´í{î¹Ç!ä¡yùå—¢Ù¢ ô”^¥ýó*º¸«WáôNeVHASóÕ^Ž@ƒ–æLð‘ámhb|8"¤09qžëÔD[!ÌÞ~ûm‰êÂf§Â@Bh@k„}³&¦s;×Û‡é > ÝBÈYábËÁ7Š5ü µAÃ…ïÏ[ÿ Üè3Îì èá°Ú¶MÇS“tÓ²ê˜IEND®B`‚mysql++-3.2.5/doc/html/refman/inherit_graph_2.png000644 000765 000024 00000027534 13515046516 022373 0ustar00tangentstaff000000 000000 ‰PNG  IHDRpâÜ,¢sRGB®Îé/IDATxí ÜÕcÇ*•´H©)E²…Á¡K¬m#ee˜(ed Ù4–‰•¥( šDfhOE´¡EÏœïy=ÿ{ß{ß÷ÞûÞw?çó¹ïýÿÿÏþûß÷9ÏsÎyÎÙÌ 9#CÀ0 C 6Ï e1 CÀ0cöC0 CÀÈcCe CÀ0ŒiØoÀ0 C cjfœÓ2†@¥C W¯^nñâÅ•®ßÖáŠ@=Üa‡–ÐÛi$Àa7†@ÕBàå—_vÿýï«Ö l4e‚À3Ï<ã,XP¨-Ûi‚ÄU ®]»º¿þõ¯UkP6šRG`‹-¶HÙ†í4RÂb CÀ0R!`L#*öÌ0 C %Æ4RÂb CÀ0R!`L#*öÌ0 C %Æ4RÂb C <¸è¢‹ÜÓO?]MW˜6+:Æ4*ÌOÅ:b“&MrsçέÖ@Tt ŒiT럧 ÞHD`Ñ¢EnõêÕnÕªUîí·ßvë×¯× _~ù¥{ë­·Ü7ß|£÷Ë—/w .L(¼bÅŠ„ƒ„”yõÕWßqúñÇÝG}ä>ýôS}<þ|·aÆx½ÿꫯôùÞ}÷Ý„<ß}÷ûöÛoÝÆÝ”)SÜÌ™3ÊoÚ´É­[·.zÆ8ȈtúðŸÿüÇýðÃú˜<ô%Œ‘‡\s8’>C|S†²áÏCYêš7ožûøãy¬yf̘á¦NµÏX‹›ŒýIÕ×X²öçwÞqkÖ¬‰ã¼üûï¿ú˜ŒG”1— \£†@ÕD`·Ývó7ÝtSƃkÕª•?øàƒ½Øè2Á7jÔÈ_yå•~³Í6Óû øéÓ§û;î¸Ão¾ùæ~É’%QÝGu”?òÈ#½LœþØcõµjÕò[n¹¥¯Y³¦à4Ÿ0È!‡h]”?è ƒôúÅ_ÔôwÞÙ8Ð?ÿüóúü׿þuÔ—víÚyaTšï¬³ÎòÜ7nÜ8J?ÿüó£¾\|ñžiÓ¦ÑýÖ[oí/½ôR½ÿì³Ï´,ã£oÍ›7÷”¼Lº~—]vÑ4a8~íÚµžþxà^&]ÿæ›oúm¶ÙÆ×®][? 6T,¨”òÔסCýæúðÃ÷¿ùÍo¢{p†QìØÔ›®¯¤ñ¶ß~{¿ÕV[éûÙn»íüÿþ÷?’¼0km÷7ÞÐûd<ôa1x#GŽ,”Ëvòv CàgX)#"á$9+Ô{ï½×MžÕ·0Dmï/ù‹‘‘~„ñè³ÐÖu×]§»(vBŒ+eÅ­†ï½÷üSO=åwß}w/~™49ì4HƒD\¦u>þøãz/¢4½î¹ç¢Fh ñ±…Fq}¥L:utgöá‡ê.†L¾Èv¹rU+gT3~ñ‹_D#–‰ÃÉ$ݳ»IIïeâÖ »ŒQ£F¹O<Ñ‰ÈÆµoßÞ 6LåúÂdœˆ‰Ü-·Ü¢åЈ¸'ªO˜Htê¢M›6Ñãm·ÝÖÑV ä] í|ýõ×!9åwð¥ÄŠü¤“NÒ}fé@.¼ðBÕˆhÍ ƒŒêyöÙgÝ®»îêŽ>úh'â9Ý…E‰?]ˆ¨K¯Dì¥ß;pƒv\56Ò‹ë«0>ÝÙ±«ÙgŸ}\Û¶mU÷CÙÒ$O•&ºV·!P \q]?å”Sœ¬t݃>¨¢©sÎ9G‹ÈNÃýò—¿t(€ïˆ.AÅ8ˆPš4i¢âPwq–R”„ˆ,ˆ[xOýƒ›6mZBz(ÿnÑ¢…Þ2é£È烒ú¶ÛnS†À¤þÇ?þQ™ŠnDk̈Iú’K.q(ü5!ÖJ&Ù$?J{ïòØ(T\_'L˜ "4”êŒÆ'»¤´íå+!óæ«E«Ç0ªõêÕs'Ÿ|²:C…¹;þøãu\Ÿ|ò‰;í´ÓÔª 9;«mVÞ¢@vìÜjz°žBþþƒr|°“ƒ—]Z{‰òYËaFÿD\çÑIˆbY-µÐuÈŽÇ‹b\­¯z÷îYOÉ®e©‹ºÑu@¢8×{¬Â‚eXº± (—®¯¤aÍEßeg¨ýÚk¯½t¤%[O%ãAžâ(N›‘!`TQ²eÙ g9t2Œ+uCv“˜VÇÉvq4ìÚ0ò†–H¢wâêCÏ$0ù„³yk¤œ+·!îƒ>Ð^`ÁÅ'K§Ti•í™1ÊöƬ¿†@%@à‚ .Ðó`ã g:pMÂÁ¾d†•`8i»È˜ÂCQúG $¹îDp XȘFUx‹6C !€*ä0 |9‰#A'f¼N,¤œX9t!ð¨ËÄK<ëâ “1g"8,Nzsˆ¯¶âb#dÍÊÃl(„žvãìHãÌ“ûÊ•+˜´&xí%i>uñ…• q„“çcã@çJqñŽ'|[áe¸BîÌJj–eå C â"PÚ&·©F.» ÏÙŒT~8[€o*ˆkòÉ!A=ÏWÚ×_]Óð¬Ë„vØAMz9Á9 òË䪟ÁƒkÞà÷)³À·^|ñØK]xŸ fÁ´‰gZ<ÙŠ’^Óƒ‡^9D¨yCûœaá:˜ SŽs,©ˆñˆ{Mâ½ø˜ màÓ SdUxÆä•úIçWYS:“[ÛiÈ[12 ü!À*¼L:…*wáꛊUö¹çž«–S¬ê‰é(®Hå@¸øèÕ«—î2ð÷„•.IÈÛµkWu_o ³ø¾4húŽ¢]NN³ÚG‚QUr Nw3´NFœj»'9{¢'Ë匉ÃKm®D=¸$aWÓ·o_=…N,Np#Ú#z»2òqrýæ›oε©¼—3¦‘wH­BC z#€HIVÅE‚€Ÿ(&Iü<Á\°Ô¹üòËU‚3ág 7œ…8âˆ#Ô͇¬ÒÕý8nÎã"*Ã7þš‚+&^&öpO~êÂ=y§NTü„‹üEÁL!NÛo¿ýŽq‡2{ölM;v¬–C?#;wÍ5ׄ"Ys>†ÈØaÌWó0TܳÐ.â8L’q5_QÈ÷U”7aý0ªx‚}ì±ÇTGQ¿~ý„Qõë×O'ÊvÚIŸ39 ÞuYaCážk±‰hÊ…ú8 ˜Ì˜2ñ0Kqy¢“0þ8HÝq¢@ÄÝ ¦t)â%$©gÙè&Ë‹x8}„ÐkFpþª¥¯…l§QQÞ„õè"ˆ¬_C›â…5N(³0† ž°©p@‰C¿3õ¶«™åO&f ¨„CB”܈ŸÚ”ÜNò=õÃXpû¸ò,˜Úr-¥jƒ:`”ìºØ Ñ?>âvDƒWeÛFiå7¦QZÈZ½†@9! úTY±.w'~*+ä­Ë¼Èä÷Ýw_'Nò4Êò&i<Üâ¨AüCä;\¨ãÉ–0âB”±š‡¹°ÒG7‚H K*ñáTl“ŒJ=Û>ùä“* ÖPñ‚X|7.áÖÏ›ê/¾ìj8ŒêB¼<í¦*SÖÏ÷eeݺµg9#°dÉ·RuiÒçke7˜pÖªÕ*çús-Ȫœ¯è`~õ«_©X9>±ÒtDDLäÈùq7±ï¸N¾õfúMy‚*áî¿X¸0ÁoúB£¢7IÞÄÛ…IàÒ=fb2—øÜQó”ˆ îÛIDF[¡ÿÉc‹* ‰”¨!lÑwóBC¸ÜŠBæF¤¢¼ ë‡!•+×*S˜7o©XÖ|1ˆyó–‰’´Àʨ~ý:r⺩¬Ð›ÊÄ»­\7‘ëm庩 úU¹ºá| hDNÄ¢H¦uëÖ©(†É=G˜X“óåûž³qçƒè›1¹E(ù±h"nE<ò^QerIãœí°#*ÍvŠê[:7"¶Ó( 5K«v<ÿü4 Ìó…ëÝ» ˜OY°v톈1°s˜3‡Ý“í29d¶F»P§N-‰J3hê:tØMÌÁ `ÛŠÈççÕnYô7›6˜ôâJßä²(e•5áð0Nñˆ€ñçÉ×05‚8•6a>‹[ÚíeS¿1lв¼U >%í1{üÊí²K³¼3 ÄEè ÄI;˜;ÄLP›‹)gceûí·ƒ˜{¶×Œ¢E‹F…D'UöeØÀ*4Æ4*ôë±Î•6ï¼3G,Sþå>üp¡NÚ´·`ÁŠœšÅœsÑ¢•‘)®oX´h…˜Tþ¨óæ •1ì´Ó¶¢ÞC¯+m¿ý6b¥c¶)9o…Ê ceµ5T‘øè£…º³˜Ä ³±–K—·2<ÿç?ÿéøù@ Ð9 V$x42*3›o^G^µwõêí#ÃÈ~m´~ý<‰{PpÐŒƒU.µ2ÿ¬ïùD í“­Lò ³ÕU,_¾N¬™ÖègÁ‚UâÇgˆ+PTרÁ®ÃIŸÔÞX[´h'n-ÎRO¤åÑwkÓ¨¨¤e§Ÿ~zEí³õËÈ,ŸfÌX¬ŸéÓºiÓDç$jÖä4°ß??Š_¢ îÔSO³FÎH[ÁªŠ@Z¦QUlãªÞl»m×±#Ÿvß}·N| -‹©ESÜiÓ>WóY”çF†€!ˆ€1D<ì®"РA tÓV?aøëÖm´Ø û6bÓˆa—†@@_OF†€!PóYP{b†€!JÏ4ðÉÿ§?ý)Íðòû˜H]'t’ÆÆs'Aç_~ùåü6Rεa^zë­·j/®¿þzÇ'=üðÿ9UZ6ÏÆŒ£1 ˆk>_|±KŽú–M–×0JJÏ4>ûì3÷öÛo—B?ÕLp˜Ã;Lа…÷Dûb¢{úé§K½ý²j€(c` ½÷Þ{iCZ®_¿Þ}ÿý÷%îÖüùó•ñÉ.«yŸÇ{¬{ýõ×K\¿U`ùE Ä: &/¿üRWß„u\½zµkç:é{íµ—Fê"`+7ŽF±hÑ"}Ö¨Q#}Fä«P¦^½zQ>ê%ž0Aë öN(Ädø.ÁÓ(R˜ðš6mª“•lذAb¬Ô@0Ÿ~ú©†—Ä?F ʦvíÚ&~OÙË/¿\Úà^}õÕ¨Ì5×\ãˆFvÝu×¹ßýîwZã&|%ã""Y«V‘Ó²Á)›¼Ú¨ü!d%;¡wÞYÜh·å€Ú en[o½µ›>}º#~Áî»ï9é#ã²eËïfÏ=÷ŒÊwqÞyçEcΤ BXò{à›èdÉÁnˆFÂ{†QwìØQƒë‡~¨±šégr°~ƒ¸Ë Öq–ãDœe‚ìð;$N‘!`”™HõqÚ)áYQ7ï¾û®æïСƒ~SöðÃ÷¢0º?øàƒ½L¼þCñGydTDõò2yøaÆy™Ð¼0/LÅK8D/Q´¼D®Ò¼“&Mò2éy™(4ûöí½0M“¿^&n½>묳|»ví¼0%/Ì@Û?ÿüó5M‚³ë½ˆ”¢4òÊ„¢é 4ý7Þ(t/"(M‘‰¦ÅÿÌž=ÛKpz/“š—ÉSÇG?CE¼£Ù³Á)›¼T.LKÇ$¢ö¼Å Ÿ¶+;"ÅD˜‰bÇû‘XÍÚ_2€ÏøP^¢„ùßÿþ÷Z–w(+~½NþC½¼¨¸6dç¢}  ê›7oî#t×]wiÛzóÓa~ú>|¸>‘øÒ^¢¬yaèúiذ¡þ^HdœôQ‡zY,hýÎSË óõçž{®ÖO:¿5 Ù©i™þ‘° ^Dv™f·|†@•G oâ)Vp‹/??CÝ[o½¥»VÛO<ñ„{çwt•yöÙgk€yB@BÏ=÷œ®Y¥÷ïß_Wå{§¡! 4¨{÷'l$¢“¯¾úJ˧úCˆÄ{î¹GE'<òˆã#“z”µeË–ºË˜5k–[¾|¹øê£iìZ;…ÝKüž¼+ÕdjÛ¶­;ñÄÕ<}«ia$ºÂ衇ÄýöÍnâĉQ±Lp ™3É æƒ ÒxÂì¤Àçý÷ßWlC=`rÉ%—(&}ûöuãÇw¬æY}0À]{íµŠ)ïŒs¡tmPïÝ!yØ ²cëÖ­›îîB[§vš:Mã!™Fˆ/Í;:ôÐCåÞ-Ïn‚~CÄ¢~å•WÄí\}ŸW]u•ÆS–ÿ\ýðûãý#Jã÷Ô»woÅ'´k߆€!yc²bU±ÁÖ!‚Ê3A‡{&#|Z!–=z´æÁÏÕqǧ±z™|¯ „Eô£2dˆ´š¦Ùe—]æZ·n-FÛ:Y kùT]0!!¾ Áêe§eŇñˆI—…¦qOÛÄ2†â÷ˆF2!ÆÕ¹sç(¦/õ#Š{íµ×¢â™à2g’ŒªS§NÊ_zé%;Ì$¨^VÛÊì(FŒ¡;­äxÇà‚Î P&8e“\{öì©}‘žêQÂ;õÄc4£Ó€ˆ!Ãd’zžï³þ²§tm°›Xå?úè£QÅôR †KýÆÐàÎ;ïTƒƒgŸ}V­¸è'úô"DDæD¼©˜ú,È7Þ¨;)taX¼Bw~“á™}†@æäm§‘¬˜L×DTLV>ø ®úºté¢Y™|1ïDô4uêTqI½20¡è „("…(é¬lÙ©Ä™L<}òäÉ iéê ë‹/¾X(ËàÁƒUôÁdƒBYå4+æxû™âD™äeޏIäþâo¡Šb’'ÅäûÐ?˜8"£øNŠÝ^.”® ”¿ãŽ;´ô‘÷{Ûm·©*][ˆæP°“Ÿâ5îÙµ° „(ƒŒx·—^z©Š®(GÛˆº¸v,æW- g߆@öäidÚ4òD"7Üpƒþó†•o°ûGŸÁj’ ‰˜•/“1òvĈDAš¶9&$v/ìZ`BX>…_P¢1,¡'ALîˆgæÌ™Sèkú‹i-» ÄA|˜È¨ÑD]ˆOXÓ.»&¨4')v 0˜+ú &X˜º â† è4˜pEI\H_ÄN 1VüÃØ3%v~è ˜¬ywX®ayE›Xª¼–âµ /¼PE“ì%ÂÔÐqñ͹¬ªÀÂbŠ]ë”)S4;\vZÔÍøx?ìlù= 9å”SÔŠ.´k߆€!%ɪþ\­§d²×ªd Ö*Á:FŸzõR ,š¤›^ìñÃ#…Œˆ¤ÔjË'YÝ{YUj:ÖKXDQF&H/¢ªë) i>¬§DçåÅ‚)XËë)ÊRV<ÂÀ¼ˆ/´lQÖSdIØ‹¢\­t(Ï+Q´kyþ` &g9¢~bí#ÌPÓƒET&8e“wÕªU^Î7h›X ãò'Ÿ|²â$«p/Ša/Jä¨Â$4¯ìšô™ˆrôžñ`ÕtÄGø`q†•Ukü[ÄaZ¯¬øµŽâÚSY/Ì#ª‹÷Þ­0“è9mÈŽÅ‹^ÉË?ÏØ pç7Á»—]›Ÿ¾?Qj{a‹8ÊÊÄ óô¢ Ór²Óô¿ýío£úI1˜¦eúǬ§2EÊòUÐ5$P¶L#¡p†7²2÷"R(”›‰YVŒÆ“Lbý¢f–0!&ê`rÏÓ`¤yL.¦Ašì&¼ˆÁBRVßLRr–ÄËÎ$2kW «a.f£LZeEôGt'Qs¢€ö"û]†Ž ³èÒ¢ðNÀŽël‰±1Æ@0èÀTx&b6/gsR¾9ƒ¢L “èlɘF¶ˆYþªŽ@Þá²Ò+–ý`I„( w2!V³Éõ1º…Lˆzs§£deyº|©ž#2à '!ÛÇ«¬ Ë£8Åõ(ñç©®¿%ˆK•¯$ÏŠ{'ÅÕ¸’O D–q’É=~›pQ#CÀ(9eÊ4ÐWÜ{ï½z6B]åÜ{ä÷qeh¨ˆ‰åw*bÂÁ+Â6U{f†€!ˆ@Úá²ÅJÌiw†@5D@¼è¹‹^ _¾ 9%en=•²öШ`lØðƒX{-+­Vr8t­}¸‚õкc”e*ž*Ÿ!Z«†@Ѭ_3Å/4Ô+!_?ø`žœ*_úÓù•Ýå,Ëz×°aÉ=úÝ K5*Æ4*Ç{²^æ ¸ñÑG bîÜeÊ jÖ,ØxoÚw³™œƒÁ­L³<õÀª1*7i™†)Œ+÷‹µÞ'"P«VÙ-%þ·pwƒkß| (‘Y„§’C²´iÓäçUàŠšº42ä˜B‚ƒÓâ)Ä4Ä­¶“³Å•³tC Ò!°zõF‰¸Xâ’¦†øßÊÌØCÝ»v¨ZL#¼¼Ûo¿]]ö„{û®^àß-[*d=•m–ߨl,Yò­¸x/îfÞÑÓfârE¸B1T§N-eì8vØ¡©î<`$mÚ4W +)wØià†·=FÕ3Ï©~}œon§Ÿäz׬Y/Œd¹2˜ "¯™3—H ­#ý[ÍŽ9|‹"‘Ì$ˆ¿¶ß¾‰Ä ©•\m¥¿Ÿ?¾Æ¯ÁÙiìUõøãËïè߯>—þf3nüî_§~ýú¹4•qcCe«¸£{þùb]Rð©,Æ_¯^m9?ÑB?Éí}ÿýFa"0’Ä]ÊĉŸJ­o4¤2 ¥Y³ »“`ñµå–[$W[)î 0Fl÷tI+ê î&qƒrî^6ã&xøHˆœÛˤ 1LP²<Õºu+ÆDËŸdÂÊ‚¢® òâ{òäYbõõÍO.QœDÁ¬¯"¯FˆnØ*¹š´÷›ÆróŸÄ{ðDSÄ|—tBÔªUKÓ·Új+Ñ÷4ŽêÃÃ5ψÑI\•¨ ‘<Q/!“wÝuWÚHäÈd7ÿSG$a $†ŠFöŒ‡X+r³¡ö‘ºèWÜ­>}EüG_qÌJ¬z"=ò bœ˜"sø19d@IúƘ\ÇÊ•+5êfË–-µOä#’¦ E¾‰ÌIXf¢T†]‘)y.q‡´lxžP0_7U=`ˆÏ¨îlذÉÏšõ•Ÿ0áÿÀ“üu×=ë»t¹Í×­»‹—É1#xB4É:D‘?üp/1Ø£{9ì ä%1qü‘GÕKÀ,¢J6L©}QˆFiÜn»í4€™'Mšä‰¶I„Fò·oß> ¶FôG™ód³<ÁÖÄû°Fè$¢#ÏC´IêáÑ*©Cƒæâ%3IJ´!±äõ:±SD;þØcÊÝóÐ|ªØçÒo ¿ì%þN‘u¼õÖ[:f ¬ù&Ož¬÷·Þz«›D 7­ãkРŽÌé7ã‘]¦>#:i¦Ô­[7 \—i~òÁi C š!³`²Í–iHÜv¿xñb?tèP-O¨]B?ñÄzÏ$'1stÒ Ñ1‡®1Ñ%ž»†Df¢£B_qÅÊlÚ´iã;vìè,X Ñ/eW“–iÐwÚ¤"yr/±ãõ-Â4d¥íE á€ ù+;(Òcß¾}½fÓ¼0! ϛ7Ï?ýôÓZÏÂ… =‘B™Äeõï‰Æ™k¿ãL#]t„>Àä` ²kÒÆŒ-Î4Àƾ¤ÉÆöÌ3ÏèX`¼ŸlȘF6hY^C #+Ó ¤.4sæL`EÑ«÷"{×{&c˜+üûî»OÓŽ>úhâ‰'ê5qˆÕ΄È΄(‹µ||G 1LÒ2=÷ÜSë ˆAå•Wê-L£_¿~!ÉO:Uëq飄¤‹÷ß_'å3Î8Ã?^Ìʵßq¦‘®ê™gL0v0<(Î4_MXcÒ&Nœè%ú©î:Ĉæ-+¦a'‹d‰bd™!м9œc)P‡"W‡PÀC2{©þàøãw²vÂ@œLpr8òlM—IT¯e§"æÈûhhd}9YÝk:Ñ5‰8(\úNÙLø_td×.UçÁM<=JŒ]ˆ8̉Í}üñÇî˜cŽÑr·Ür‹æÈG¿ÓÕAèTÎ9ç9´É‰ˆ¬‡<`Û³gO1rØAó¾òÊ+Ñ{ ½¬È˜FY!míU ,.n(0‰7ÞxÃ=øàƒªïÒ¥‹™0a‚»þú눮œìÔY¢Èé!œ!”ÐæÎ. }£(„ÅдiÓ&Úxú”)S4kQLˆ ²ÓPåþŒ3T™,z7`Àehùèwº:hãÚÂfKÞd9r¤˜^wo¾ù¦öé…^ˆ˜urÞÒ¼7¦QšèZ݆@5E@ÄQ«¨n¸Á~úéNDRŠç,zôèá°¦ÂQ"VMXA±ë`·Ð¿qÁò°œ.§ô‡§E†#: 9]¿\™ˆ¸Ü 'œågÇ "4À“këÖ­ÕŠŠ "&r£GÖ¼˜ÄÒŸ9sæ¨Å”èÄ·Ø1[n¦ÖIì¨Øä£ßéê`ѽ{wµ,Ãì°Ãs¢ØW¢É…è1Ô ‹).;,¦6nܨٰƒY‚_©’ Ãì!`T+rÕi Œ…d z¬ª 1ƒÕ{9# ÷üÁ¢I&//ç¢g²Jö(¸Qè¢{sXt rC-¢(ƒV@Âx´,ÖK<ÖSmÛ¶òb %b¤¨ êÅb Å2e°´Š÷!õ”LÀª€¦ z™œý!C´Þ\û-»ßwß}‹¬ãž{îÑ~¾øâ‹š}Qݺu½0µ6 ã^µj•pÏØ:wO`…>æ©§žRHh/¤ˆ S„Ž%†ÀÏdË4~.™ùU¯^½¼œå(T@VÆ^VóÊx’Q<à `BXE¦χɭòÔ#ç0< â8Á4°¬’wdÎO/îe3 ,”âTÒ~SWQuÄÛ*ê«)Œ ¡]ˆÞ®X±B± iÅ}çÂ4ìpŸ°m#CÀȈz^{í5鈅O¡ŠùÈYŽBÏy€‹Ãx™õpÀ0qÀO¶´Ûn»¥,’~UGÊFS<Œd$9®«‘]TŠù}dL#¿xZm†@µG}…œ%p}úôqçž{nÎx »?à€ •gÒ,ÊXñà…*(åéú]ÊÍ–Yõ¹¯Ì ¶† Šƒ@YGîCq‹•”^w' T1-ç!ÜÕW_­ŠæŠƒLÉz"'æ%°×UòŸzê©j"‹ m2wÞycïåI¹Dî3ë©ò|cÖ¶!P À¼VN~«µ“œÎvûÛßÔ¯“À‹ÎoTÄЏ·_ªM8XdוШ)añUɘFe|kÖgC ‚!À¡4ÿÂ) (}õö¦›nÒÉsÒo¼ÑáU,}T|Å™Ìg1ÉŠ‘ž»%nx¬åqf(Dê5–ú!Îu°{‰›™Š2X'nœ)rö"êc¢ÆœV\†Dõ† Ú¥ž¸Ø‹6DɬNÑÓP–>ĉ>bÚ+V]ñÇÅ^ßÿýN\~h>ÚÆÑ Ž 9ƒ!îU •çð£ø¤r8k,w*N»n醀!PõÈ·õÔÅ_ìåœETܬ·]tQ”.d‚VQø ‚„¹¨©­xÇU“\œÊ9 MÃLç|XFɤéÅ[®º Núh«+w"ä—“Óš“TúaBKY>ƒÖ¼Â¼èMôuˆ¢Ú4HÓ‚“F,µ‚ù.cÄ$¢oô)Ô¹ÿþûë5¦³Xnñü¡‡Ò¼Éè !®qü(çA¢v‚£D,ÃD/¤uáš…~ÄÍ‹“ëÍö>ë)ÛiÈ›52 ’!€Ü^F•p`N&B=ùÍêxï½÷ŽÒÂ…œEpœÇ7«xq$¨WØcõ>{öl=¸ò³C@üƒ>† ÊvV߈¿d2uâp0dÕÓbò«» ñ}¥y9án¥k×®zRÌ2©ë.AÌl5SÙÔCs¡2vP¸C¡mvá` ˜;Êqωn\›çJâcJ1`G!N £ƒr†CÅzœþf7Â¥wïÞºƒÊµ­’–3¦QR­¼!`8tœP„JVèQð<Ý·8:TóØ`mµÓN;iyLwášË(9¬§>«ð…é.ÖJ²ÊWQRÈ‹*Œ‹SæGq„*Ûeâd7¡Ì,ˆ¨¨“؈²Æ§§ÂÅÅ@7ß|³žÖf2‡ùÁÌ ±cǺN:¹SN9EãŒ\sÍ5¡ù¬¿9ŽÞ‡ø(ÇCO>ù¤“ÃzÊ8%/‡Õ- ú’ò"3¹-/ä­]C  À$ÈDs½Ë.»,aÄLÎ\pcÀJW"qßV”e…( —ÁY"é8LÑLÈš<‰³0–5žÿV¸9A€)o“&…CûR6»#Üy°Óaw„¥T úŸ+%·Aý–fèQ‚þƒg²b åEÆ4Ê ykר&à=öõ×_WEyðAÅÐYE³ºGä‚÷\ò0ñ‡ yüàZxž l™æÅy"ŒæÄAÀ1cƨ2:ÞFœ‘…ç0"òã7;–\)]ÝÄ ‰ª&œ+»­ò"O•òÖ®!P…ÀŠsâN9Žy)zâe³«1b„CçÀyÂÂâl]±„’øêR³¥Iˆ¥Ø]°sÁ Q,¿Šj} “9ÌqWp£/C¸Ycüƒ•T¦D]P=ß‚:ÄaÙÔ‘i[™æ3¦‘)R–Ï0Ò"€tÃp‰ô¸ú5j”C$QºrÆìV,wœXi L%4“8º qȧz 2$¯Ä¹O~Úæy|wÀuò}È sCéŽè ÷%Çwœz¸E‰ŸŠâíÂ$Äq¢ã€ñ=hƒ8èqºë®»tŒ%|PäÇû¿¦l¼¿œª§OˆÐÀ¦FàS^d'ÂË yk×(GÊúD8CeUãÀ‚ ñ .Ñ“‰Õ4+~&Ḝ?9_>ïÑ€>§Ä¤W­”ØíÄu(éÚcLXP1–xà§tùs}ŽUzâmäÓ¿T.'ÂM§‘ë[´r†€!¬ ±Š*ŠðUÖ~£ÐOÄ$¢ãà“ 1¦=öØ#“¬%Ê#g9ÔB«D•ä©°‰§ò¤Uc†@u@À˜FuxË6FCÀ0ò„€1<iÕ†€!P0¦QÞ²Ñ0 MySQL++ Reference Manual MySQL++: Class Members - Functions
MySQL++  3.2.5
mysql++-3.2.5/doc/html/refman/datetime_8h.html000755 000765 000024 00000030650 13515046515 021675 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: datetime.h File Reference
MySQL++  3.2.5
datetime.h File Reference

Declares classes to add SQL-compatible date and time types to C++'s type system. More...

#include "common.h"
#include "comparable.h"
#include <string>
#include <iostream>

Go to the source code of this file.

Classes

class  mysqlpp::DateTime
 C++ form of SQL's DATETIME type. More...
 
class  mysqlpp::Date
 C++ form of SQL's DATE type. More...
 
class  mysqlpp::Time
 C++ form of SQL's TIME type. More...
 

Functions

DateTime mysqlpp::NOW ()
 Returns a DateTime object that, when inserted into query will yield a SQL "NOW()" function call.
 
std::ostream & mysqlpp::operator<< (std::ostream &os, const DateTime &dt)
 Inserts a DateTime object into a C++ stream in a SQL-compatible format. More...
 
std::ostream & mysqlpp::operator<< (std::ostream &os, const Date &d)
 Inserts a Date object into a C++ stream. More...
 
std::ostream & mysqlpp::operator<< (std::ostream &os, const Time &t)
 Inserts a Time object into a C++ stream in a SQL-compatible format. More...
 

Detailed Description

Declares classes to add SQL-compatible date and time types to C++'s type system.

Function Documentation

◆ operator<<() [1/3]

MYSQLPP_EXPORT std::ostream & mysqlpp::operator<< ( std::ostream &  os,
const Date d 
)

Inserts a Date object into a C++ stream.

The format is YYYY-MM-DD, zero-padded.

Parameters
osstream to insert date into
ddate to insert into stream

◆ operator<<() [2/3]

MYSQLPP_EXPORT std::ostream & mysqlpp::operator<< ( std::ostream &  os,
const Time t 
)

Inserts a Time object into a C++ stream in a SQL-compatible format.

The format is HH:MM:SS, zero-padded.

Parameters
osstream to insert time into
ttime to insert into stream

◆ operator<<() [3/3]

MYSQLPP_EXPORT std::ostream & mysqlpp::operator<< ( std::ostream &  os,
const DateTime dt 
)

Inserts a DateTime object into a C++ stream in a SQL-compatible format.

The date and time are inserted into the stream, in that order, with a space between them.

Parameters
osstream to insert date and time into
dtdate/time object to insert into stream
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1Date-members.html000755 000765 000024 00000025621 13515046515 025125 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::Date Member List

This is the complete list of members for mysqlpp::Date, including all inherited members.

compare(const Date &other) constmysqlpp::Datevirtual
convert(const char *)mysqlpp::Date
Date()mysqlpp::Dateinline
Date(unsigned short y, unsigned char m, unsigned char d)mysqlpp::Dateinline
Date(const Date &other)mysqlpp::Dateinline
Date(const DateTime &other)mysqlpp::Dateinline
Date(const char *str)mysqlpp::Dateinlineexplicit
Date(const Str &str)mysqlpp::Dateinlineexplicit
Date(time_t t)mysqlpp::Dateexplicit
day() constmysqlpp::Dateinline
day(unsigned char d)mysqlpp::Dateinline
month() constmysqlpp::Dateinline
month(unsigned char m)mysqlpp::Dateinline
operator !=(const Date &other) constmysqlpp::Comparable< Date >inline
operator >(const Date &other) constmysqlpp::Comparable< Date >inline
operator >=(const Date &other) constmysqlpp::Comparable< Date >inline
operator std::string() constmysqlpp::Date
operator time_t() constmysqlpp::Date
operator<(const Date &other) constmysqlpp::Comparable< Date >inline
operator<=(const Date &other) constmysqlpp::Comparable< Date >inline
operator==(const Date &other) constmysqlpp::Comparable< Date >inline
str() constmysqlpp::Dateinline
year() constmysqlpp::Dateinline
year(unsigned short y)mysqlpp::Dateinline
~Comparable()mysqlpp::Comparable< Date >inlineprotectedvirtual
mysql++-3.2.5/doc/html/refman/graph_legend.png000644 000765 000024 00000063240 13515046516 021740 0ustar00tangentstaff000000 000000 ‰PNG  IHDR¨Ít‚œsRGB®Îé@IDATxí|ÅÛÇŸ4BI½÷^¤÷Ð‹Š bEÀ‚–¿JÓ׊X±+ Q@E¤ˆT¥÷z/ j !…Ô}Ÿß„=.ǵ\.ÉÞÝ3ŸÏÝím™ýÎìγÏ<Ï3~'’$„€B@! ŒA`²¿1Ê!¥B@! „€™D@•– „€B@!`(" ª:¤0B@! „€ÌšEô×_w“x確uì$›…€B@¸—À/¿üB ,po¦’›‰@XX}÷Ýw¦ÿ²àŽ5¨{ö-_îž³ùb.IIDüAté’/^½\³B@ä3Ý»wÓŠ+ò¹Þyú£GŠðŸKUëXƒŠW¯Nôûï¹T/ÏöìY¢Š½ü"åò„€BÀ¨üüü¨fÍšÜK?îî:úúë¯éŒJr;ÇT·ŸR2B@! „€¶ ˆ€j›lB@! „€È" æt9¥B@! „€m" Úf#[„€B@! ò€sNRNlúôé4{öl›{1‚zöìis{^mHLL¤ôôt ué”]ºt¡‰'R‹-\:^B@!`DFèÇOž}š*W®LXŽŽŽ¦*UªÐ‰'èܹsÔ¤I Qûâ+..޶nݪŽoРi=hÛ¶mT»vmÓ[ØåË—Õú$ŽOz–C@éogÈgïÞ½ª"U­Z5K>š¦©ò"Tò’$„€BÀ 8êÇqͶúKôÝÅŠ#ô™{8†zóæÍ)88XõãˆÚ¨Q#µ]Ïû.\˜¶lÙB¥K—¦:uêd ijj*™Žq¦ì¦yÁòxóm²œÿܪAut9àªÕéÁäI•êªÀÁ`û÷ïo:ôÔ©Sj4î]»v©elÇþ:t 5j(a¬ZµJý¿óÎ;é¶ÛnSšÚãÇ«¼^ýuÂÛTß¾}•ÐÙ®];ÊÈÈ ±cÇÒÂ… yîå¦ób– È;wVÂs¯^½opH111Ô¾}{u~Ü<­ZµR7ŸÚ(_B@! |ˆ€½þý,ÌøJ•*¥úÍråÊѨQ£T®”?˜4éÙgŸ¥¶mÛöéÚµ«êc‡ âI´C‡ͱ™]ãÆiøðáJ‘åÔ‰e§<%§ª~e>ÿâéSï¹ç}•ÝßëׯóDL—CëжÎ;Wý>þøãÔ²eKºzõ*A0Å~ü19s†Þÿ}úüóÏéÊ•+tèÐ!¥eÅ9'MšD?ü0õë×6nÜHÇŽ#Ühì8„興š0a‚*Ó´iÓÔ:œ322RÝhv +…€B@x!Gý%.£è«÷ï߯FA'OžLëÖ­£óçÏLÿ~ûí7ô·tMôµøØš’Ê¢/¿ü’ T¶nÝšCÀ^©CÐýIðö¡æ~ðã€Ý©ž`²gž`‡záÂóU4`Àå/òæ›o*ŸhaÝ`BˆQWLYúÆoЇ~¨ú~ÝdÐÝç“üœ#`]jsîX·ì… ¦ž>¬/š~¡ý´LeË–U« )…f Ch¼p¼Z¶l™ÒžvìØQ šÐÀZK¸™°?òÑÃNmß¾]™@¨Eä˜$è NW’„€B@ø{ý¥Î}º³ ŽÊzÂèåÎ;©{÷îú*õ‹aÿ©S§*a,gÓ>h>¡DrW‚ !ª~úé'¥üˆ*lS%å/[%¿<.Þ®öíÛGsæÌ!§ãÇwª°Ç=Þz \®X±B ÷CX…†B-4¯pv‚Ã<ú᱇„·:ܰ5éÓ§`á<…ÐQˆe‚CНW¯•,YR °x#‚A54 °MÅ›Z·nÝ”M+4¯S¦LQ-އöÛo¿­Îv4ÈÃ|µµz²R! „€Ðûnø€Øë/õýôKÓûký¿å/úÔÿýïÊëÚKô·ð±ÌÇÁÛÿ•W^QŠ,(¤Ð·C¨u”¬å¥')äûßÿ©|‘¿>:«ï#¿ùGÀíAn„X+Çk¯GÌ%Ú±ÃÚV·¬C`8†Á3; ÚR87U«VMÅ[3?Y4b|`?ƒa˜À»Cøú°>âºÁ£ZW„Â2OO…mˆ×f¹Í|?«ËÂ`M/[\Çݰº‹¬B@![ xACÌpw${ý¥³ùÙ #›Ðb¢…(Ìí²“ào‚8«®¦œóB`‡í*¢Hr+ÉùnƒŠËÁN¶¿ l¢a[KæTØn€¿xñâY)Z´¨ ]‘eå?КBK+I! „€¯°×_f— Eö§íå—áùæôx{e“m9'`5ç—!9! „€žB ¤ìNeê)×&åtPÝÃQrB@! œ$ÇdIBÀ\w’²wrÙ&„€B@! , ˆ€jIDþ ! „€B@ä+¯Pwì8•¯åäB@! „€›\Þ䦌$O&àœ ê‰D>hÈë<—@¯í/IKnÏ:=ša keêVÔM "„€^O¡;ÆÝ¸1ûqË ¾’&moIçB,7î?Â\JÊŽ5¨Oµ;gwC®ó/¢ÝñAt4Ñ9YÛ §Ì^ˆëÊ“p$âì'{ ! „€pL>c9…¨²Í•,JN º%.Q‡J‘¹’¿»3­U«–šqÒÝùJ~‚Ôa ~ƒSêÖm"ù=K#Göâ©N{¼´RBÀ#Ô͛ӥK×n©" ó/X°óÁõ–e…B@!` û’œü5ÓîÔ²D)±DÑË,×Ê à‘*œ¡tï}Ë:ŠO¦•+oxZn”ÿB@! „€±œ_I”|Ó§$Káüy¯’|Ž€Ç ¨ii4þ›ZÒÀ@öæ—a~ŸkÉrÁB@!à™`gj9¼¯_IïGÍ%JOÒ×ȯð8uÕªƒtíÚu›ÕvéÒ=”””bsÙ „€B@€@F2;Býn}x_/ö9³Pÿ'¿>BÀãT„’‚–Ô^JNN§%KöÚÛE¶ ! „€ùMàì?Di JáÇ1Qg8ØG6{û’žÁ®ZÑ¥K÷´¤ö“F˜eJ’B@!``ðÒw”4îó£—¥^u´§l÷"~²Éc"Û'&¦ÐÑYðoÚtŒÞ}w! ¤/dѬBËÚ¤Iå,ûÊ! „€BÀ@bØg$ÃÂ$oyG¢ÛÞ$*ß3kA‹5$ ,šuüóV“Ù=ÎsRá¨yóªY |ñbf¸)¬w4ôŸå@ù#„€B@ä/Ío=¿é­MTªí­ÛdÏð¨!~Ÿ©¹P! „€B@ø0P}¸òåÒ…€B@!`D" ±V¤LB@! „€ða" úpåË¥ ! „€BÀˆD@5b­H™„€B@!àÃD@õáÊ—KB@!`8Å(n¸bIò–€G…™Ê[4r6! „€B Ï ôæØ¨’|ž€hP}¾ ! „€B@‹€¨Æª)B@! |ž€¨>߀B@Ï%pøðaºãŽ;èüùó/"11‘®]ËœÒáβC¾Ô|Å/'B@! rB ==âãã)##Ãa6O=õAH7ožÃ}e‡ü% Ôüå/gB@! ²A 555ËÞuêÔ¡?þøƒÊ”)CÉÉÉtòäI%¬;vŒÖ¯_¯„WpùòeJHHPêÙ³g³äáŒp›åù“ëD@ÍuÄr! „€B ' xΞ=›ºwïNcÇŽÍ’Õ¶mÛ¨|ùòE»ví¢êÕ«Sÿþý©nݺԡCªQ£9rD·páBZ¾|¹ÚnžÉæÍ› ‚î‡~蔩€ù±²œ;D@Í®’«B@!à Ø=D©WÕ‘ûöí£#FPÅŠiÈ!T¡Bzøá‡æzýúuºté­^½ZiUçÎK“&MRÇöë×6nܘ%úõëÓ<@_ý5UªT‰î»ï>ú矜2È’‘üqP݆R2B@! rJàúü¦4í³—©]»vtÛm·ÑÖ­[éƒ> èèhúù矩I“&O1aÂ*V¬…‡‡«ý=j÷ìûî»ïÒ©S§hÑ¢E¬´¬U«V¥qãÆÑéÓ§í/ÝO@œ¤ÜÏTrB@! \$°ã$ÑqßQ‰%Ôp<†õ³›`ª§B… ©œIþþþÔ³gOõPzÿý÷Óøñã Y ÿKÊ;¢AÍ;Ör&! „€BÀÛ«}=þ1ª\¹2õêÕ‹zôèA3gΤ¤¤$GÞÜ AÓÕ´nÝ:eN€a8Z9’† æjvrœ‹\¯AO(‡ ! „€BÀÂÁ~ôÜàžÊá ÎKpr>|¸r„Âïþýûmêp}PPÁƒÿêÕLWý€¸¸8zï½÷”£Ìàp5mÚ4:sæ }òÉ'ª ú¾ò›7D@ÍÎr! „€B ›Z´hAS§NUö§Ÿ~ú)EDDÐôéÓ³•‹ŸŸáƒtçwÒÎ;©[·nYòØ»w/M™2E9Q?~œ–-[¦œ¦ (e?ù“wü4Nyw:÷ŸiÉ’½ôä“?Pdä'(ò¶û KŽB@! òÀì ¢¶,„V`õ¤9'&WÓ•+WX^¤ÐÐPSÈÚÕœ˜˜2“w˜,NRîÀ(y! „€yB 'Â) X¼xñ[Ê™ÓL`q3¢³ÿø0¹tUÚB@! „€¡ˆ€j¨êÂ! „€B@ˆ€*m@! „€BÀPD@5TuHa„€B@! D@•6 „€B@!`(" ª:¤0B@! „€" JB@! ŒC X#¢ bÆ)”$_æËYå¤B@! „€°F ÷kke ªU¸\®B@! ŒN@T£×”O! „€>F@T«p¹\! „€B@€¨F¯!)ŸB@! |Œ€¨>Vár¹B@! „€0:[¼ø###ióæÍF/·©|»wǨå9sæP@€Ÿi½Ñî½÷^ ¼¿[ŠýßÿÑåË—Ý’—d’7Š+F=zôȵ“ýóÏ?”kùKÆÖ Ô®]›n¿ývës¸öúõëtíÚµæ"‡ç'*T¨Û‹pþüyZ³fÛó• #P¥Jjݺµs;gc¯¤¤$úû￳q„çìzÇwîóä§q2_1sæLzôÑGÍWzÙÏ/ˆÓ”–kèrZîêÕ«f¹Ú-ÿÛµkG7ntK^’IÞhÒ¤ íÚµ+×NV£F :qâD®å/['ðüóÏÓW_}e}cמ={–>œÃ\äðü$P«V-ªT©’Û‹°téRêÝ»·Ûó• #ðÈ#d)w§3gÎäJ{qw9]ÉÏ2¼Ð›¥ÉVUxÐ쥦¦ší'‹î"°lÙ2êÕ«—»²³™Ïˆ#èÓO?µ¹]6‡Ào¼‘'oÅ|ð½òÊ+ƹp//Ixxx®_aPPµoß>×Ï#'p?M›6¹?S‹ãââ(44Ôb­üÍM÷Ýw_nf¯òÞ°aµmÛ6×Ï“'ˆˆˆ°9Ê$6¨yQr! „€B@§ ˆ€ê4*ÙQ! „€B /ˆ€š”åB@! „€NÕiT²£B@! „@^5/(Ë9„€B@! œ&`Õ‹ßé£oìøÀP||¼é°Â… ÓÝwßMðf+Z´¨i½µ…õë×ÓØ±céßÿµ¶™f̘¡â²~ýõ×ôÃ?<¾¾üòK«ûb%Â7!ăyB8§6mÚÐÿþ÷?I`¾I–™@NêÏÀ+W®P‘"E¨@¶vq¸>--à…Z¢D ‡ûZÛ¡K—.4qâDjÑ¢½üòË´gÏÓnð~®[·.½øâ‹^¶Ãt±., 4b§š'x0€ÇZræþ´vœùºìÔùÂ… iòäÉæ‡SåÊ•U{Î͘²YNèAßú­·Þ¢©S§â4ê ±T|ðABäž={ê«þ5¿Ïœ>È€;f§íY+¾'s˜>}:Íž=ÛÚe©u®¶ ›ZÙ`Þ×[ÙlwÕc=¦dŽûï¿ßî~9­c»™tã'Ÿ|BG¥)S¦d)¡þüœ;w®[cñ¾ýöÛT°`A·DŒq‹uùòåJ0lذ!áƒÂ!þ¯:J—.]¢Õ«WÛÜíСC„ HÉÉÉ„@µö‚W/Y²„‚ƒƒ©yóæÔ¸qc 7Ø /¼`ïPŸÝ–“ú³­L™2ôÇØÚìÔzÜ@%K–t9äÚÕŋչÒåäÉ“ªM ]”.]š¾ýö[jÕªÇÐMsª<¾´„y4ú=]µjUúå—_”Pe…3÷§ÕÍVf§ÎQŸ¸×QŸøÔ©SG=+Æ “UHÊJàÂ… Š—¹2{à™ Ž§OŸÎz€“ÿÌï3'1änÙi{Ö.À“9@ €O| ÄA{€bG_—[1»Í9š÷õæëYNLL¤””‡»æ´ŽžÀ€; ¾¶µI0)ê9==Ý­¥Þ¿?¡.ݑܢAEAºwïNï¼óŽ©Lï½÷½þúëtðàA‚°‚Ϋ|ùòj;< ¡íÐâ®îرƒ222¨iÓ¦JÈÕ·é¿xKz衇ô¿J»¶uëV•oƒ Lë±0pà@2›êر#áMaÒ¤I¦ý0³Î¶mÛTpØ *˜Öc‚.ã²eËòöó»9K´z{÷+:noHöêAÞ¼ZµjtäÈW¯\¹rJk¾}ûvÂ\ôx{høXwîÜ9µ>;›S§N©—KÍ:Ö£a·lÙ’J•*¥ø£CE‚ R³fMò÷÷WÂ$öCBp{s8Ήò¡®,þª|ð²2aµŒ/ *„×:¨õöÚv@E[F^Ðë å±U.}OûÅ}ûñÇ›Š{ù¶Ûn£Ÿ~úI½[¶ ýþ„Àƒ™lpOéttØ÷ ´×¸ÏñàDÌe䉺Å=—Ý:GáÌëmšñùóçS×®]MeÇó b„ÇØŸ;ßÊ4~`ª|ÐFYHÖX¸TùðÔ®ªa|XÐU¿RûÚ«7<+°ï=÷Ü£Ú"–ñÜâl²ÝöqP…qðųýi,H;ØËµÍ¬S×ÊBe¶3à—;u,¿p›Žµ×ï¡nÐç /S~ÑÐPgzŽû÷7öA@»B_€ûîÏ?ÿTÛÌûzµÂì‹…KmÖ¬YZ·nÝ´ÿû¿ÿ3Û’¹ˆ2 ¯A²Õ~­=_2Îü†Œ0lØ0•^櫳½ÌÓ˜klf˜íãœ9€…oŘ•gÎì®öaeÆJ¶[ög³I•¿,*ÙÇÕg!ê õŽê}ÍOÿüsâÎ^½©â-Ù™¤ké0ÓÞžYx°yÞ„üq¥mƒÍ) ³ê Ø\ÛƒehPûöíKÜðÔ”€°uEÂtaüTå„­$ÔÑÐÄþõ×_êÍþÍ7ßTÚ`”ªñÅ‹+m* À4dÈâΛðÆÀв‰5×àØ,´Á7€£úÃÛ1ÝyçħšÉüÀ Ó«4Hi¡=ãΞ~þùgeû ûaLû†7sh×ð¶ËÅœ_`” û@#‚aäßÿ]iFçÌ™£¨áhoQ瘷Üñ6áyØs£&îèÔzhÉñ&g®ñÑÑÃÞm¢ÿþêXا>÷Üsj¸ß^›ÀñàŸºV¼¡C³Žë@²W.µƒ‡~A›¬· Ô ìO¡ù¯žô6Á¾¾J8ÀîW¯?l€}ì¡UŽç4X¨G˜¼ûî»>ýgê\?!êØâ êÃ?¬6ÿý÷J«Ž6ƒvŠó`t׆saJHù¤ºG`òá\ìÝg¨K<÷Q÷H°_ijRw€Å3™PÀ<†µžêÂЪ£„a}øà>íÔ©“Bf-z®£ÏÐ;Egê ˜@ðÆ¿~mæepÔöìq0ÏÇ–é÷pŸá¹“<+ñl†Ò¦øÀSOx– >ajÃÚ7õ²‚g°žðç2ŽÇ1”G˜¦ÃÏPz Î%[í×Þqh·;ЇAp† ý/¶=5™ß×¶®ÁÕg!ž©¸—ǯê÷¨5å­ó:Zï6THÐæ6¨öN íˆy‚¶ =áfÏ£2$tJzBcF‚VÉÒöAĹ^zé%%XòP­²‘A`ÛÁ74¥HaŸa B1¬yBžžœ©?Ø!éü!äéI·ÝƒfÂ2lŽ Üê näei/ªGa€0¡'=´–ð8ÕØ#oÔ+F=ÁöÍ2áÁJO¨[èPÑaBXÅ ¶½6«ïi¿º8´—æI×éÛ± ‚…ž0j:ÂÇÞ}†{÷^4õ„çž xAÐë@߆ÎvËÖ^BÍ“þ|Á:<«Q>½¼xŽèZXgêÍòÚ¬9‰Øk{Î>oÌËïÉË: {ýžyý 5¦›×8˜Û ã… /±z‚?´¥P\Àóì&Ë:¶õŒ±–/ž{N!Ï@û¾íÏOL¸O`Çm™pßã^ÅsÏÕgáªU«”bÏr=Yë{õmÙý½ù$Éî‘ÙØ €ž0ôcžÐxððÒ“n¯ÿ·üÅð*4:zÂÐŽe}~¡AE‚ L  =ÅÐ:Q”Qߎ†Ã×èL¡ƒ›óâ8| pV0W'ð‚/h§‘`ä®'ÔRµjÕÔ¯ù:"h9tfø… ‚ê/t`HrØ›']£ ó=œ¦"†„á=Y¯¯7ÿE]²-œz3·×&p ”xXaç…` 3{åƒÎWAŒP`è/›XÁ„ýgžyF=4ñâ­§µä*[Üëx £-¡Î `AH F]ôÍ lho Á…ÃUh_öÚ¬~¼§ýBk…ææI¿wõíØ¦?Í÷ƒ`hï>Ãs,uaÇ"o䋎P¥ÐóD”Üë±Ý¼€vÝŒq?¸ú,„ƒF3õþy;Ó÷êepô›'*Þ¦Ð9 ³‚p u°eBÇÎÚ1Ø|Ú³3ÁÔÈx˰ˆ¡DØz‚°‚aElƒ†…”ŠNS â- viè0a“†¡&-x«‡…-†£ñF_Ÿ>}”C_õ6òEy})AsЇ:stHxƒõ‚á$0ƒ Nš3ÔêÚ‡¡x¼àÇCÀ´W*„fS+ƒoÝèP/0À:Ô4¿|p˜ `ˆ7"†„,nR´ | Â& 7„'{mùÀäÃö†Ö7&Þ<14b¯\–eð¥ÿ2ÃP(†Ïa§«'<Ìðb‚_„}A½éÂIvê\ÏO¯S܇O=õ”Ò¤C[Á瀰Œö¡G·ǽŽg†¯ÑI¢Á(*^žð¼GAÙS|.0 +ô¸÷ ;á^ÔG0\}â>À½Ž~Ï<[ ǹ-q%eI®xñÃkŒ,ù˜ÿá‚+`.´òÚƒ‡–áÅÏ4xó0ºZ‡õlƒª±À¨²`áQcûEµÌC†Ê#àEΊ:†UØÛœ¨}X1僼ð)^¼¸Æ!gLž„ðZCÔlƒ7!߀ʳ“ß$”C$ äç*ògEƒÆš/u, ¯¿ªõØ|XPQÛÐày‹cP‡x梎Юàù­'ÔÚžØ^QÿíÕ›îÅÏB‡~¨Šâ ÷Ùi{Ž8˜N`gÏÖÖÛÙÃõMîðâç—wSìõ{–í…+ŒLÇÂ;œ•ê?ž»ˆÊ£·Dom»å: åÄÎÏÜÉ yó[¹éÂåÆôß|6n­[·6_å“ˬuRÞù¶.ææ õk«ŽánnX¯‡áV|ô„!X[Ž9¬%SC•ú¾®üÚk8·îŒg™·½rYî+ÿI™HàÓ“î,ÿÙ©sýx{¿¨ó!D ýã£'8eÚJöÚ¬­cŽ ùSð›e¹`€Õõi‰øùŽØæ;Wš³ö$G ! „€9 €`þ’x”(,-¸D~~äÇ®ê*†[bjÌF}ìL^1¥éf:ýS¥5Í À‚yâçžoUæÝW—oXåÄB@! „€¸•@ùf!¬! -M£ŒÒñIååt-K˜¶,G²™¤ѯQïS¥ÇS½^8ŵ‹€š¥ïO\Üuf™Ã¯œæ¸­‡9ÜÍx²Æ+­”H! „€°GÀ/€¨r‡0òwr Û?ÀŠU ¦öŸ–¤Õ3§·—¿·l³Š‡½®\ŽCç-`rã:®\I¦-[öñtª59¶Ú.ŽýH 4c±&q,±DŽ!¯>W¯&ñTŒI›59ËÛTáÂÁÔþæLHöʈ8s®Æ´—¯·oKÉH¡Mç7QHP…`CþŸ ¼ºæRbÏÉ\Ê9k¶ˆ ìm"véR*ÌÁ½ƒ,œò²^}Þÿcoö\?)žÕ:'×ÏãîÄÄ$plá ’\ €`ÝøcŽÓ…cæÒ$þ$ÜøÅÌȈuæŸ4þŸÍäÌüÒÙÌò–Ý15+>Þ–Zq`ï{9Hÿ’¸8ZËndرßÊëkïÖ )÷fáCmOJ›6á¹ÖwóÒ•<®ìžÄeÕ±ëå†Àãï_èÆ§°Õ߀€^Ÿ¹ÍÏ/ë‹yRÒ^V¨ü›Eq¢ç-¿7 ØPa_z>"žN­‰¥S«®²ÁéÍc,—üÙ>5 ÈŸ:¯JÕº˲ÛøBòCŒ*_¸P#]㯿n♓æªÙ‹ÒÒ2§øtT>¦&ÜÇœöŽv•ín °lÿ2êûu_JIK¹õaÌíAAj:H¼X¤¥g•H§šJO‡?í†RHÎHäÙ‹&7iÂ{*¶hAwñL5Ey*ZIÆ"­é+¯üÁ/Ϊ`sç>OmÚÔ4V!½¼4—.ÅóŒaoñ讽õ»¡(ñSJά‹Æu¦qãúy9!÷_^j|EmŒ£HJ£ÖÇÒõØ4*Vµ U £3›ã(æh’rŒ2?3LJ×/BÝ?¬AEÊe}I0ßÏË—'‹€šO5 »Òçž›A;wFÚÕœšoãÆ78VëÍØ‘æÛdÙýÖYC½?ëMÉéÉêáíÌB †Ò¹OÎQá…Ù]öq_xšÍs<5bÇ<õãO· ¨Oa+Éþùg75›SxJétžvºOSý.kê”ÿ²1 é#¥9r›úlc‰sÊ`5ª73ðä[–W®$òüéÓé©§~d»úëJ8ųîÎ;‰pšOµ2|x—l §o½u§.ÖU‘²AÔíýê4hEcêómmj4°ŒI8E–U;…™„S é,H}¦Ö¡æÏø¼pªˆ‹ÕņçÎȦaæӉ­>8¨lÙ¢„!2xñ×®]–ºt©G:ÕSCd… ùì€;«Áf^»Ïì¦Î;Óµë×nÎ7?ê鉧©lhYóÕ²œbŽ£iááYÎäÄ¡\ QÏ>¢ºwße›üÉ}K–ì%hëàì ­©yúùç¡Ô½{óU²œ‡zhŠRx¤¥e­ó"À^õ£¤Gmc¾Z–oHMÌ Óúèš2e¥Ò,d~ñc×'¨k×ú´yóqZ½ú­Zu8ËÓBR«V5XX­«Ö† +å’¼ªÏ¤N;QLBŒU!5(0ˆºÖëJ³†Î¢â…‹{Õµ{ÊÅ|ËÓÇYz¶r' ÛÔz}ûR>à‡¿kÓ+z #”I^{mÍ›·S=Ë,?ƒƒƒèàÁ÷Ô³Ëåõµ2$%¥Ò{ïýÍ}Ê«—živáG“& ¤~ýšZÝÇWW^;›¢lI#ׯRôöx¶Õ¨ÇÇ5Ô°½«L¶­4§ .íjÞzœ¨F«Y Ï>;ƒCÇÄ‘î@…9Ÿñ@ ¹9'=Ê}áBœŠ a1R/]ºF¥K‡Rxx]êܹ®úÅIî!pâÒ ŸNçbÏYRË-C É ôd‡'iD÷T½Tu÷œXrqŠÀêwÞ¡Ó¦qÐë[ccøÂé]_~IÕ:wv*?Ù)û–/ßG/½4‹C]çç×­Ú9Œõêu}÷ÝãÙÏ\ŽÈ‹¯qô„µ4cÆe ³1„64÷“†p ‡Üï¿‚zôh˜£óyËÁWO^§#Ç(Á4æX  Êm‹*¡´r»0Ñxæ^E‹€š{l]ÏCbðòÿí·-*“¦M«²çëK3Ü»÷ŒI»ºuë 5¬Ö A…ÚÕºÔºuM*P@†‚´³Ãé+§•&52&Ò$¤r´å {ÐïÃ~§ï×~OŸ¯øœ°_ÿæýitÏÑÔ²ZK;9Ê&w8½y3;ï>›Ùùñ‹žÆQ³mj—qã(ˆÃSIrÄr~ýõ¹4wî6«ZSý,6ž4iÝshæt&¹ý{ð`4MºŠcoïPÎi?Þž¼­X±_™`èn¦xøå—¡Ò°vnËcò?úO mÿ6:ÓÁ©c•oÊŽ˜S|O.¨¨F®½eËöш³ØÁ œ{f«¨°U…S´«0 8rä<l. lV¡]íܹž²eÍV¦²³"pþÚye“zôÂQ“ºúåÕ§*¤´Œ4š³}}¼ôcÚ~j;…× §Ñ½FSŸÆ}xÎeñZVrá ÂçW Pʵks¯Ø²%=ø`+V˜æÌyŽ0âæ ó/ìN Ø’^óÌ-Ûe…{Àõùçáh#©·Ø B@}ÿýûiàÀ¶î9™äb"EÆÏ?¯§\§¦Î†së;8¬_¿/ø¸§xzNïvÒÉ0Ì¿šFa•0¿(µ|®"‹šÔÔ Œ± ª1ê!KŸLЪBÊa¡S§.±CVA5µª zõRù[Hƒž=1%‘‚ƒ‚)S8‘¢c£é«ÿ¾¢oVCÉiÉôd{v¨ê1‚j”ªáÄѲ‹#©‰‰ôUýúY4¨p*ÈRá<=àm2…³#„9ÞÓ¤aÃ~bxLß|3<ìO#"ÆS©R!9>‡dIàØ±‹ìp¶šïoå!ú 4¨-=ùdG*S¦¨Óˆ’“ÓLÃþNäa;®yûYÌóÞss4Ìg{Ò°j2’eàªÕÀ•“oE;uê²²[…ýêúõG”G.&€° s€jShhÁ|+Ÿ7œ8!%~X÷}¶ü3ŠŠ‰¢{›Ý«ªZWoí ——¯×0gÀº[kŽÄ?5!®?Nƒ—-c/\‰l‘[„`ü=zLdm\ªW¯¼iÈŸmØÞ±ŠSΞ¹U6oÊþp|‚ƺZµR4th8=ôPkö3˜ØÖêŽN˜¥©rû¢Ê ßÚ>²ÎpD@5\•¬@ˆÇ ÝÙ*""Šç 'eH¯kW›6­"³Â¸XoéZºÉ¡jÛÉmÔ¡vÓk ÝÝänq¨r‘iÄŒ´üÿþ PSž6~ôQJ¼|™¦wïN•Û´¡>S¦¸˜³æˆÀ!ÓÔôÍ+VŒ¡%Š( Cþ;…‰à¨#É5xÏŸ¿“ŸVÓîÝQ•¥kª»pØ®†üLöÝáé”ké”—N¡ ¸VŽ2*PZ3F-‚pÃ@XÏœ¹Baa…X«ZGiXaŒ_±bκŒzí¹]®Õ‡WÓÇË>¦E»Q²uhd‘4¸Ý`*(Úêì°?wŽþd¡‚hÉ:uL‡B«úkW{~ø!5â_Iî%ðÝwkhüøùÊÙ“žà ùÌ3Óéë¯Fb$e´Ò¿þºQÖ¿páÝuWcž>¶ 5iR9{yÑÞ±'“•ƒÓ)vr:¯B@uŸx³ÍyÑ¥úò¥ˆ€ê˵ïŽk?zô‚IXŰSbb²ÞÓÍÚµ«E… Ë›mvX8wÀäPV(Œžëòœú”,"»³áÅÛSË´Žg“Úþý÷4©Ì…WËýäöìÚÉÎ6_òœí½é…ºßr0¼ú3g(ºe“¬°A **†毡™37)v´áƒXPÌÆÞ»šš(zǵL¡tM,ÅE%«Ù—(NN•Û†QPˆ¿÷ðÍ+Õ7ë=w®qõ¶lÉœŠ±W1qâ¶hQ]Ù®BhmܸRîœÜ sE¼Õ¯þýЦ¬šBI©IôDû'”CU­ÒÅÕêÖÒÓivÿþ*V꣋Q`AÑN»ÊR?N·;­U« kú†é«å×E0©‚}éâÅ»©|ù0%”B8µœIÐÅì=ò°äØtú¥Çn*V½îÙ¹©Jx•iT„íJ=òr¤ÐÎÕ9N²—+0Uýƒ©YK– á)XaPO™”-ë¼·©+eð†càP5mÝ45CÕÉË'éžÛïQÿÛÖp=®ÔoÜ™3ôsT÷÷KÊK»Óœåæ›GCüdÉåT¶mÛIåP†a| ç#<—$¢¤ËiT¨ä­£"ÂÆk ˆ€êµUkÀ ;p ÚÊ šÖë×S•§¯îlÕ¦M *Å€E7D‘àP5wÇ\øˉ-Ô¾V{%¨ömÒ—üE•­::²x1Íê)ê;u*ÕéÓ'[ÇÊÎ7 ز;½¹‡,Ù#€IXfÍÚ¬BE>}E9<Áñ©U«êöóšmé)Eo»F°%½í¡2öÉkjÖ-"ª[0J&Ù&átÓ&˜dÆ^Ŭ'ˆãç ]`­_¿|¶óõ•ÖYK—N¤¿wÿMµÊÔRUµ{Œ ÀÑ]&NIDATò9¾Î¯½Fþú‹[¾œŠVÓ“ìudwšÝü|iÿèèXš6m-Ï{¿ãŦ«Q…QÞž/¥²-iœ²'=³%ŽÒ’2¨T½ÂÔvte*×´ˆ·_¾\ŸóD@už•ì™›΋¥5k+‡«µkÌÊ–åàêÊ ®Za )+Cç)‡ªgPhÁP“CU©ïïè²’Èþ¿ôädú…µ§Al‡ú0 ªÖœª²Ÿ«o!v§®Õóž=§U˜¨ vr®TÁõ1Õ¨·§¨õq´mÊYºÄS‹ò§Š-‹²=)>aT¸´ÄoõöúwáúD@uš’Ë0ëž=gLѶm;ÁÓ&fÐm·UT‚*& hÙ²:97{S.×Ù_¸v¾þïkš¼j2av+hS¦ªv™Ú†(ŸQ sô(ÍèÝ›š>ñ…¿þºQ‹i¸r‰ÝiöªdÅŠýʾtÆ£júQLCzÏ=Í|êvng[£Ò -C9N±ïÆnÍ^ëñÙ½E@õÙª÷  ‡f´Ò­Ž»À¡«‚©mÛš¦èð –DJ8ýqýôÙŠÏèÄ¥ûTþoW³à±A`ïìÙ´tôhºæLާnc/Y­»S„ý_˜1Í™³5¦«S’"F4ÓŽoÆæµŸƒgmM¾šNÁÅDiàYµfèÒŠ€jèê‘ÂY%g}¢€uëSll’ššUدb*V_2³ çÆÊ -ƒþÚù— ü¿éØ&j[³­r¨Bq¨º•ܢ瞣Èuëè±+x¸±ô­;ÈE@ìN7„K—âéÇ×ÑÏ?¯§„„dêß¿…šA«ví²Žö =ø£‚äëö¤ çShÐÙTF4£TF.ª¨F®)›cϲsgä g«ƒjó~c–]`mÞ¼ªO‡jYl½r¨Z±j”ª¡b©"¦ª8TÝl_© 4½gO «R…˜5ëæY2»S « ‡ŸSñKçÎÝÎ1K ÒãwàO{ZÏê¸SŠžÞéàÅ¿Éqi|Ï܈Mʶ¤å›‡HlR¬WƒYTƒVŒËEèDa +>˜%4´ Òªê±W«VõÍ™Ÿ?LŸ.ÿ”¦o˜NE‚‹˜ªÊ„ŠyšÛùÝ»if¿~ÔnÔ(jýüó.¶@ï=LìN­×-œ;§N]I+W$hI‡íD<Ð’‚ƒ½/fç‚'ÓÅý T¾iHfÀ|J‹V¶Æ€k»téB'NäÉcZ¨ÒmÛ¶ÞyçÚ±c%³Ód½zõè5ŽîÑ›íÒ‘f̘A›7oæiz¿Vÿå+O ˆ€š§¸ådyNàĉK¦PV\1ä†P.z(+˜øÚ -ã/Ò¤•“Ô'þz< n;˜FöIuËÖÍóú1Ú ·û-­~÷]zdî\Ö57Zñò­h§ÑS¤µ~¯µöǶ?4¬÷Å”£MiÖL㙦|ñò³\3; j­Z× ø&Ëz_ûsüøEíÿþï­fÍ—µúõ_ÓÞ}w¡}Õ£1\Ø› q\Rmî€ڷͶkÓÚïÔ¶|uÆék9r¤V¹re…<¶ú'…KíÙgŸÕXHUÿ±î£>r˜ßêÕ«Õþ,ø™ömÆ÷µ«ÿŸ}ö™ÆV´hQµß]wÝ¥e°óÁk,$jAAAj[Ïž=µ«W3ëåòåËZÛ¶mMeiÙ²¥Zf¨¶dɵ¼|ùr•ù×Ñ£Gµ ¨s¼þúë ¬js||<ß ­Ôq(K`` öþûï«m,Øj½zõRå@y°íÛo¿UÛ"""4Þµ•Z¥J•´˜ŸR–­˜$ªu0²Ö ðlVüPYÅñT­F—•Àþ¾6vì_Ú¿ÿîד½žÊú£ëµ{'ß«ù?í¯Õxµ†Æ±Uµ„䯿nË ŒÜ°Aû˜;’]Ó§[nò©ÿO>ùwÐã4ž8ç®[¿ØM›Ži?þ½V±âH­M› Ú?¬ñèç@Ò•Tmõ['µÝw+¡tæ]{´uDj‘ëbµ´äL¡O¿vG¿P!„~ñÅÚ… 4‡øÿÖ[oi±±±Úƒ>¨±ÖÒQ6š=•µ£J°ûôÓOU>kÖ¬Q‚ðºuë4’¬ùÔ^|ñEu>}¬aÕF­öe[S­X±bÚܹsµÈÈHíž{îQ僀úÕW_©åóçÏÛ-Ÿ¹€úùçŸk¬Ñ5 —~ø¡ªApýí·ßT~QQQZRR’öÊ+¯p›©¨„Üûï¿_ëСƒ!öÌ™3k^U™ížX6‚À$ï³âæ;D’p…@:åxاœrrHIIgãøc¦Ø«ß¿FÕÆztLàm ñRç>3—Ž^<ª†þÇÌCcç¥g»Ç³ùÎdzz-\¡ìK#""Õ¤ ß}÷8;ÎÜ–ehÙ+¾@‘Š?—J-CU:„QñZstÖá…T:uâçåjbÁ•SC©GÄÂaŽò/ȳ¼aèþ‡~ R¥J©œÒ¸Sò¥»Ó И1wPëÖ5|âÒ¯]»®f{bM)ß׿°Md DF°ãÌ ìTÓÈ#„S-U˜vd/ÿ ?ºsJ-jòxÙ §hæv–aƒ á ¶ü¬SËÙý‚ŠÄC÷Ê“ö¬C‡Uv­|áqêÔ)µÏ Aƒ¨GßÀ^ù°ïLKKãh.ëù墥Ú_·ß~»i¹nÝL‡P³–‰‡ý•ƒQótüøqêÚµ+û)4¡—_~™NžÜé$^ºDÿ²7¯¯$„j6lº Íö ݽþ²1ñÇ[oÍg§—·Y+·Œîº«1mÜøkPc‡™*†¿þ¤˜4:¼0†V¼|‚~îAÑÛãó¬Ìîp(Õó€Ð‰G%8!!;wŽ ²Í(]¹r…þüóO%„~ÿý÷J8†sÓþýû9œ`”ú@CаQ–ÔÀ¨2â/¯z‚£Ž…‡¾eb»Yâaz‚öÖ<Á£Ž[—øyí)›˜6oݺ•5j¤œµààŶ¸ô.GA¹ ðâX6'PÎdlƒªBY™–›D@µ‰F6Ûàµûì³]é÷ߟáä{ôë¯Ã¨}ûÚìº~x {š¾N>:•µ­« ¼== ,HÇÑñè¯gÿ¢˜„êôQ'jõ^+ú}Ûï”®¥{ú%Z-{âöæ¡Ä=¼ÿ ‡¥ñ…4bÄLB¥¯¾èÕ—‹ >†ÿ™§LžÀšÒšîÉÄ8Vï¡J•2½Ç àÒö”ÿîÍ|ˆ~í¹‡Ö¿IiIÔòù T¼fVÁʨנ— ÞõHÐ0B+ í¤.¬BˆD(¶UÚXxØC«Ê¶¥Ô§O¥)Åpúŋհ;;PÑâÅ‹U~}ûöUa£fñ½ W×hb#4¿o¾ù&±í¨!äâóÌ3Ï(¯þ#F¨<Ì¿`3œ‘&L˜ 6§¦¦*•mM•Ö‘pM’ƒƒƒ•yÌ àýˆz`éýo~Y6# ¶¸B@¸—¼ÿ€µP**¢ÀÑ䥗fª¨Þâp²ñØF­ÿ”þÊ¡ªú«Õµ/ÿýR‹OöNgÖ j_Ô©£]=yÒ½Å`¹ñ {Ôàä Þßÿü³[ë×ïKåÙ«×'Ç3ÕÒÒ<'bEÄôóÊÁé×Þ{´µNi§V_ÕX8Íóê5j”Ö¾}{Óyá”ou=M›6M ÐÿÚý2dˆr2‚—{xx¸Æ±I58(!½ýöÛk35öÔ‡SXµmòäÉj‹4êxþר.Tmƒ”îuíðþ‡'=œ¤X°ÔX6EÀ>¬uÕPn=¡ ˆ(€D(@´”‡cå”Åáª4Ž¡ªÊ<° û»í×§.ÖÞjl‡ª¶É—]“ü°™¡JB àöŠˆˆ29[mÛv’‡°2x8¨Ç⫧⯶hQß¶=w01T?[ñý¸þG  ¦g:?Cÿëú?*W´\.ÍŸ,ÓÙc&kd0ì?`ÁžoÜûüK½9ÞiRR _ßBß}·šµt—ÙN°¡Š_ê‰öµˆYŠaý’u åÏÍͳ²G?±—¿Í£àhM)‡…bÍ}*ÛùßúÜÀ6h8aGªÛ¸êÂI‰=ø•ý«eÜUh=± KËmúñ°w=Äqa»Z«V-S,V}»ù/l[QÌ8…2ÀÃZ™lq<¨§#UéŠãqÜ–-[Ô~¶Êa~YV$P¿4!—0“ÕºuGLë‰ùÁLíÚÕ2E¨Q£t^Ém纜p™&¯šLšŠb“bi`›4²ÇHjP¾ÛΑŸ]a[¸<bcvxèÌÊޔ`wÚ£ÇDî Ë(so¹6؈O›¶–m6°Çwšš‚ôé§;³°RÊp—§èñtåh5|Ä3ŸÖ ">ǵ¶I­ãðMÊùÉæ²ÁW ˆ€ê«5/×m ‘‘—•°ºjÕA¶_:Ê!K’Øþ­„V;w®«¦P,ZÔ³lÊ®§]§gÐ'Ë>¡ÃçÓî¤Ñ½FSç:=¥Ø?g-~é%ºï矩:{ôzK2dÏþÉöwc¼"¤Ô¾}gU˜¨ùówðlDE8ôOG4¨/gù'¿ëšÐ¨õqµ.–NoŠ£”øt*Q«Ý÷k}òó>%}~ã–ó{P=«¾¤´ÞLCÿ;vœ2 ¬0 @‚'q§N™æÍšUå¡#ϘŠUc³°… éãeÓÚÃk©yÕæ4¦÷º¿ùýàà±U¹˜ã£žøï?zŒ5CEØ!ÂÓâŽ?_Å;õÄ!osþÿýw€CE­âQŠÃT¿~ŽFЙã`6S1ŒÍ÷Ëïå=3.бåWèÒþDBè§ -B©JÇ¢T™c“†VÈœv3¿Ë(çùL@Ô|®9½°I€§™TíªU‡Xh=È^ W¨hÑB*ü& ÀÇèÞÆúÅm9¹…>^ú1ñ”ªT¹Dez©ûK4¤Ã Ñwñ˜ßT¶YÃPÛÊ=È^ÀðÑcÊnYPo°;EH·9s¶©øÄGŽœW¶ÝÆu¡ðð:–—k˜ÿëßâx¥ ¥aT¡U(ô\tÃ@•‚xP½­Fåz¼—À±c ¦«W¢ ŽO½Ê3˜”VÚU˜ÀŽö¬FNÇ/§Ï–g:TÑðNÃÕDåÃʹط”íÂÞ½Êiª ‡iÃCþž˜<ÝaÐO?­çÏ:Š¿N÷Ý×\iL1\~§Œ4é<÷Å%¿ùÉù…UšðDˆS¹uë %¬B`ݳ紊мy5“ý*"èA°v1‰14eÕúê߯èJâz´õ£4ªç(jX¡¡ÑŠj³<;¦M£Uo½EqððŠf3ÖØ<À`<ÕîZRÄþóOÌLƒ·§'žèÀ1*óOôÜŽxâ9í)rmÕ¥¶£*¬Æ¥8BÀ£ˆ€êQÕ%…6ÄÄ$˜„U¬çÏÇ*g—Ž똢`šV£¥ä´dúeÓ/Ê¡ S¨ö¾­7î9šºÖó ¤y<ï6´©ƒ—-£‚<ÜS’'Ú"úÅ7߬¤•+RÍš¥ Þø÷ßß‚gü ÊìI—Ò(r}ì §k”š˜éà„9î«w/F¥êË!+_ ÉI…€ëD@u)ŒKààÁh“ÀÊA×éúõTÂÐg¦íj]jÓ¦f¾uìÖ¨Á¡jÑîEÊ¡jõ¡ÕÔ¬j3%¨>Ðâ ô7®;óuŽ8ç/ËÓÞÃUOHždwŠ‘‚ùów*ü}ûÎ(38>õè‘¿šöØ“ÉôÇýû) ˜œZ²ƒ ¥Ðš†”'O¸¤ŒA@T¨&)¤È8‘@H…f6¬^ƒƒ©uëšj¢€Nêò|rp÷ºíÔ6åP5gûªX¼¢r¨zªãSêÞ¹)·3€û7žæ°ËÛoSÓ'žpS®¹“§Ø^½ÊŽh36Ò?®åîñÔ·oSÖ˜vR\ä™ìçzzã5*ß,D ©Ù?ZŽBÀP’ÍBÀë xùš5™Âêš5‡•P¦LQöz®ËÖºê7?íùtà'/ŸTU?¬ûiXø0z±û‹T!Ì8´^Ö<øfž/üÑ… ©tÃüÕîée²ökt»Ó“'/ñlOkxŽô-ÊŸ}´- Î3ðäyÊ•ã×Õ°}Ý{JQpQÏ ‡f­þeð " zPeIQ…@®€ƒ•Ê S±bXµaà ¦è-[Öàiýò¯£†Õ7«¿¡/ÿý’0[Õ€V”CU£Šr…‡K™ò”¶¿?ø ÅŸ?Oƒ–,¡ žZÑhÉÈv§[¶œàaü•´té>:í©§ÂiÀ€6k'ÈO»SÆàðôí·«Tˆ³Æ+«0Qè> {jBÞ§¼î£ÖÇQâåT )[€*·/ª†î«vÊ;ïku ë„€p™€¨.£“…€°I --ƒ¶o?©â®Bhݽû´r|iÖ¬ªÉ~µI“ʹæ ‡ª™›gªªöžÙK=ô 1½ÇPú=l–ÙÝΛG?÷ÝûãT“…Õ¼Lùewš””Ê!¢6«PQxaéÞ½ Þ…Ú¶­™+—?ûî}”p>EyÛëÁòKÔ.”+ç’L…€ÈS" æ)n9™ðQW®$ÒÚµ‡Ud¬gÏ^UÎU:Ô1 ¬+æÎT¡Kö-QUÿø—Wj¬4ªÐ¬äþ™KG¢£< êcü )_>Ïj?¯íN/\ˆ£iÓÖªàú˜µ Sb*RLIš›éâ¾D*Z9Xâ•æ&dÉ[äP󇻜Uø6#GΛb¯b–«ÄÄBøªNê©ÉÚµ«E… ¹×vsgÔN%¨þ¾íw*VNÙ¨ë4,WªÒ®_§½zQ¡’%é¡9sÈÏß}ÃÛ¶ZP^Ú8­ìKçÍÛAaa…è‰':ÐàÁí©D‰œÅNQ¶¤Åk¤r<[“$! |Ž€¨>WårÁBÀ`RRÒiË–ãÊ~±W÷í;˳¨¸˜eg«FÜçìI_üû}·æ;òóóS^ÿðþ¯\¼r®¹tàýÒ§µzöYjÇÕÜLyewºråA%˜bF²ºuË«0Q÷Ý×Üå ´4¢sñʹ NNWŽ'Q"Ô|xºm@îjas³>$o! \& ªËèä@! r…À¥Kñ7¦bÍœ,àâÅkT²dˆTõ蘚5§)6)–¦®Ét¨:wžGutÏÑt{åÛsšõ-Çïš>þ}ã zð÷ß©rÛ¶·lwNJܶ;ŋĜ9[Ùñi5>|NÕǰa]”ÆÛÕòÇF&Ó¶Ig•£¼î‹U+˜,¿CQ*×4„ü%L”«lå8!àáD@õð ”â ¯'°ÿYSthZ““Ó¨~}LÅšÊ ³\»d=5=•fm™¥ªvŸÞMÝtW‚j¯†½ÜÊvÁСtvÇzlÅ žJ³¸[óFf¹ew“@Ó§¯§\GqqItï½Í”Æ´^½œÛÔ&^L¥5ã#Ù㾨LC+º×¬Ãí%C! òŠ€¨yEZÎ#„@Î ÀK|óæc*:ÀªU‡”&¯`Á ‚ &uë–sùDËö/£‰K'ÒŠý+¨Q¥F4ªç(Ðj€[ª’ccizTº~}º—5ªîL¹awŠin¡-…Ö´pá4hP;ôtéP§‹žŸAA!¹owëtdG! <…€¨žRSRN! n%k²]E”hûÊ– 3 «ááu\r؉8¡ª~Ûö•)­f¨>ŒÂ å,®æÙmÛh6OÚ‰‡û›³FÕÉÝv§6¥o¾YEÿþ»ŸªW/¥¼ñx %;­9õ æHRf°üõ±taw=8·!…Vͨ;êZò>D@Tªl¹T!àÕ~ÏžÓ*:ÀªUUVÄc…ƒ•®]ÅT¬pÀr6¾rZ9T}»æ[BþOu|ŠÆÞ=–Šr=$Öæ¯¾¢ Ÿ~ªf™*Û¨‘³E±ºŸ;íN-Š /¾XN{÷žQiÄ/íÑ£r$³zò+Ó’2èÌækÅi$;8%\H¡Â%ƒ2ƒåó÷¾,(ZT{ e›·õ$²B¯ L˜Ñ qWàøñ‹"E‚””ç_‰\BÀ;ˆ€êõ(W!„€B@¯! ª×T¥\ˆB@! ¼ƒ€¨ÞQrB@ä1)S¦ÐO?ýäð¬'Ož¤—^z‰by&)w¤÷ߟ»V«¬®_¿N‰‰®…—Úµk½üòËî(’ä!„€p;q’r;RÉP_ °ÿ~ŽZÔá¥B€ŒˆˆàØ¢)÷uf¥©7â§Nœ8‘’““i„ ΚeÌ{öìɲNþ! ŒB@T£Ô„”C%GiiiJÇŽ£ PÕªU9ð}ÖY«Îž=K—.]¢ÚµkóÔ¡…L×›žžNдâ·fÍš¦ã ˆ^¾|™Ê•+G§OŸæ‰ ÓÈ‘#Uþ0!¬B@Ež¥J•Rù%ð'NœPÿqœy‚Œó”-[Ö|µ, !  G@TÃU‰HO#ðË/¿ÐæÍ›•€Mjfª>úÈt)cÇŽ¥ƒªÿ˜ à믿¦ *PTT½ñÆIþþþƳLA#Ú A:uê :”g½ê¤†õ_{í5úî»ïèÞ{ï¥óçÏÓ† T~È{òäÉ´|ùrLÂ2„]ÌŽ5nÜ8 QZÜ×_gŠJPÇÔªUËT6YB@€Ø ­F¤}hþüù*?hsg̘¡Žùæ›o¨Fôã?Ò_|AW¯^5å% B@£Õh5"åBÀ# `ªx€©oß¾ê0,¯§AƒQ™2e¨^½zT­Z55d¶¬­[·VÃõИBë‰õЬê ZT§æfú6ýwíÚµÊÌûAXÅð?´°[·n%Ìííƒ>¨Îݸqc¥•Õ•_! „€ÑÈ¿ÑjDÊ#„€G(V¬˜©Ü°AEÂP¿žJ–,©/*RlÓ5¬ , %K–˜¶ÃžÔÜ© šOG CþHï¾ûn–]K—.M»wïVë ëI†øuò+„€ ˆ€jÄZ‘2 !àqüüüì–ÙÚvݱéù矧=z¨ã¯\¹B;wî¤Ê•+gÑ¢ÚÍœ7–(QBioa*g*¤C‡Q||¼²mŘ èçÄ6IB@£!~£ÖŒ”K¯'³ ÷Ï;—Ž=ª¥çôÛo¿¥   ‡×sxðCmÛ¶­rŒš6mš²/ݸq#½úê«Êy šSØÀ™ çÙ¾}»ÉÖáId! „@>5 Ë)…€ðºV¿ðÀÏNÂ1CÏz„Œ‚)œ« ^ùÈOÏß<_óu°]=räˆ =…!û_|‘`./xüÃ4à‰'žP¶«ø *Î3fÌ‚ªy^æçe! „@~ðÓ8åw!äüB@ü$"œ“fΜIÐjæuBH(8HáB¥eüT{å¹víšÚ_ÖG)ä©åµÀq Û*V¬¨BOÙË×r­ú÷ïOkÖ¬¡Ž;Zn–ÿB@w˜,6¨îÄ)y ! \ ÔG(kYcróT¤Hå½o¾N_.X° Õ­[Wÿ+¿B@ÃÈÞ˜”a/C &„€B@!à-D@õ–š”ëB@! „€—ÕK*R.C! „€ÞB@To©I¹! „€B@x P½¤"å2„€B@!à-Ä‹ß[jR®C0`@Žó „€B çD@Í9CÉA'€O¿ÿþ»‡_EÞ¿~ýúys"9‹>M@õûtõËÅ ! „€BÀp&‹ ªáêD $„€B@ß& ªo׿\½B@!  G@TÃU‰H! „€¾Màÿ ¿x]¸­A§IEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1SQLStream-members.html000755 000765 000024 00000012210 13515046515 026051 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::SQLStream Member List

This is the complete list of members for mysqlpp::SQLStream, including all inherited members.

conn_mysqlpp::SQLStream
escape_string(std::string *ps, const char *original=0, size_t length=0) constmysqlpp::SQLStream
escape_string(char *escaped, const char *original, size_t length) constmysqlpp::SQLStream
operator=(const SQLStream &rhs)mysqlpp::SQLStream
SQLStream(Connection *c, const char *pstr=0)mysqlpp::SQLStream
SQLStream(const SQLStream &s)mysqlpp::SQLStream
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1ObjectNotInitialized.html000755 000765 000024 00000032332 13515046515 026672 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::ObjectNotInitialized Class Reference
MySQL++  3.2.5
mysqlpp::ObjectNotInitialized Class Reference

Exception thrown when you try to use an object that isn't completely initialized. More...

#include <exceptions.h>

Inheritance diagram for mysqlpp::ObjectNotInitialized:
Collaboration diagram for mysqlpp::ObjectNotInitialized:

Public Member Functions

 ObjectNotInitialized (const char *w="")
 Create exception object.
 
- Public Member Functions inherited from mysqlpp::Exception
 Exception (const Exception &e) MAY_THROW()
 Create exception object as copy of another.
 
Exceptionoperator= (const Exception &rhs) throw ()
 Assign another exception object's contents to this one.
 
 ~Exception () throw ()
 Destroy exception object.
 
virtual const char * what () const throw ()
 Returns explanation of why exception was thrown.
 

Additional Inherited Members

- Protected Member Functions inherited from mysqlpp::Exception
 Exception (const char *w="") throw ()
 Create exception object.
 
 Exception (const std::string &w) throw ()
 Create exception object.
 
- Protected Attributes inherited from mysqlpp::Exception
std::string what_
 explanation of why exception was thrown
 

Detailed Description

Exception thrown when you try to use an object that isn't completely initialized.


The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1UseQueryResult__coll__graph.png000644 000765 000024 00000127137 13515046516 030114 0ustar00tangentstaff000000 000000 ‰PNG  IHDR.ÓNlRrsRGB®Îé@IDATxì¸VÕÒLJPDÄFQ10PQ ;1®ÝÝñ]»[¯^;ÅnE@i¼¢‚¨(%% û›ßÖË>û¼u NÌ<ÏûîZ{Åךÿš™U#Š¢WÅÅpGÀpGÀpGÀpЇÀŸ5”¸ˆ*^½¼FŽ€#à8Ž€#à8Ž€#à8Ž€#àȘš‚#à8Ž€#à8Ž€#à8Ž€#à8'.*ê•ñz9Ž€#à8Ž€#à8Ž€#à8Ž€8qá7#à8Ž€#à8Ž€#à8Ž€#àTXjWØšyÅGÀp*,ýû÷— &TØúyÅå@:uäÐC]EyŽ€#à8Ž@µFÀƒsVëËïwG dtéÒE^}Õ'¥*z~VUA`•UV‘™3gV•æx;GÀpŠŠ€笨WÆëå8Ž@EGàˆ#Ž&¦òŸcPï§Ÿ~º¢?¢^?GÀpG Ê à1.ªÌ¥ô†8Ž€#à8Ž€#à8Ž€#à8U'.ªÞ5õ9Ž€#à8Ž€#à8Ž€#à8U'.ªÌ¥ô†8Ž€#à8Ž€#à8Ž€#à8U'.ªÞ5õ9Ž€#à8Ž€#à8Ž€#à8U'.ªÌ¥ô†8Ž€#à8Ž€#à8Ž€#à8U'.ªÞ5õ9Ž€#à$8ãŒ3ä•W^Iì-ŸMf›Øo¿ýdÍ5×”6ÚH?üpùôÓOó.lΜ92kÖ,KÿóÏ?Ëþûï/ýõWÞç—$aŸÿþ÷¿V&å&]»v-Iö¥>gE`RêJ{Ž€#à8Ž€#Pf8qQfPzFŽ€#à8/¾øBÆŽ[îÕ»ð  víÚrà 7ÈÙgŸ-ãÆ“N:É£>šWù§Ÿ~ºœp –vñâÅ2{ölY²dI^ç–4QŸ#FÈ·ß~+Íš5+ò[uÕUKZD©Î[˜”ªÂ~²#à8Ž€#à”)µË47ÏÌpGÀHƒÀ´iÓ%|õÕW—AƒÉl` Œ¤2DÖ]w]iÙ²¥Ì›7OþüóOYgu¤^½z–Óüùóeâĉ²ÞzëI:u,Í7ß|#k­µ–l¾ùæR£FT‰¿ýö›ðÛn»ídúôév¬iÓ¦©ã¬Lš4IPÀ!†.[mµ•Õ‹c3gΔ(ФAƒ¦¼¯±ÆÒªU+™,Z´Hø­´ÒJE¶?ùäÁZáºë®“›o¾yé"]t‘tÐArùå—ËG!«­¶šüý÷ßVÿüÑê¹í¶ÛJݺueêÔ©òÏ?ÿÈܹså?þ°²_{í5¡Ahõ£m¶Ù&Õ~öƒ/B>`ífq!ïÊ&›lb˜ÇÅ××_}yê©§â»Rë”æ!ï ˜EH“&M¤aÆv‡jV#»ì²‹]³p2ØýðÆáÖ[o-µjÕ²Cä±¢0‘>Ö6êþä“O†*Dÿþ÷¿­¼€ÝÎ;ï)™dÇãø¨ÅH¤¤Bê¼äÊ%—\bù0À±­DN¤„D4eÊ«eSUVY%zöÙg-ÝO?ýdØrL-R +Ú‡¬L† )­¼òʆ¥Z˜D#GŽ´úäó§.AÖ¾|ÒzGÀpGÀ(£ÝUD{P.Ž€#à8å€*æ¢J®Y<ì½÷Þæ:¡ŠºÌ˜1C”±~Üvß}wyýõ×SÂâ€ôŒ†cÍpË-·Ø9_~ù¥¼÷Þ{‚õ…*À¶ÿÆo´‘~%>„ø™D‰3fŒY;B ³À ½*¯òðÛՃ*ݯwïÞ–Õ¾ûîk!ßø6åaE,EB–[n¹¥í»«`±€UȨQ£ÌÒâÿþïÿ„zsÌ1rÈ!‡H¿~ýâYHß¾}Íýä™gž±ô”7zôh¹öÚkSé°t X+1"J”رßÿ]î¸ãùÏþc– J"Èwß}'o¾ùfêÜø õü׿þUä‡EŠ@f rÚi§ÉçŸ.>ø Üu×]¢ä‹(±bø!Ö#|°\uÕUfÅròÉ'Kýúõí8ù´k×NŽ=öX;Ê^ž˜paYÂý‡ H$^°@yÎ&¡qòL!w‚O¬ K°½øâ‹åƒ>°€›X€p 2 –Xšd’í·ßÞðFñçZpý  Bì’“N:)Eü`Ñðüóϧ²Å†˜A–'&°R÷#Q7³¾èÞ½»ì¶Ûn¡:¾tGÀp ‚À²¡Ÿ R!¯†#à8Ž@ÕDå6Áª€`–¸‹à&i¡q,h'. rÄÊÅ™éG1ó'€g\ânñý¬ø2®HüXŽY‚ {î¹§Åu%)ï¼óŽ0X‰—óõ×_§ÊÇ“KŸ!X…‚‡ã!ÐiH› ã_|Q>üðC³¶À×—LiC^Ù–î¤l‚|^qÅÔB%Xv„s5†¹áp}\U(Ÿçß{ï½¢±HBòBØ—7&}ô‘¹Ù0Õ,uDÀpqGÀpЇ€ïšxGÀ¨öà.‚•ÂÇœšk Få½mÛ¶f…{Fp5!¦3r0õ(±#2Iˆ@Œ¬3˜UA‰íÑ£‡¹?Ë jÇ^~ùåBÊm|+, ]° Á ÷ ÜWºví*W^ye¡™³˜ñtéÖ±ö€XÀ"ƒ˜XàÚ²páÂtɈèÓ§$ÌfB»pñ!.È»ï¾k–"Xs L½zõ’ž={Úô³Ä4aÆŽ-¶ØÂ®Å47®%ñ/â1A–'&¸áºD| f§aF\‡\GÀpG " ?GÀpG XwV‘Ë.»Ìf›…h,H­¦Í<ÁÌ!ATÙµ™=”PHÍ|Á1fÕ` f¬à§Ê~DZD§MÍÈ¡ ºÍ`fQ÷…èÎ;ï´tJ€DJz¤fÞ`Fµ’°cÌ*¢îV¶~²#º4u Î:ë¬H­,mºm%"Ý`3p>?fÖÐ`Ÿ©s ÌÂqfØP²#ÒéY-’!¶O§H-2«3ƒ¨¥DªîÈ3R¢ÆÎ«ûï¿?UŽ*æ©Y/fÍšé±V8ƒ›ÆÇ°J4HgLJYEBÝ“KðÔø$‘º€DJžXYÌôB:%9l†“=öØÃ¶©§º]Dê>cé˜YEÝpRy3 ŠÆ½°c+£b3ÝPOî %®RõI˜eÅgÉŽrGÀpÊÑ5ÈO;.Ž€#à8Ž@ÞèÔŸ³!>ûGÞ'ç‘x Ä;8ýôÓÍ ~ VX2l³Í6©á8ñø1ÂåîÉX ŒðcA JÜKâA<±ôÀ+HâÆ›ÊɵĪkަM›Ż¸[ ÕÄÚ¸¸ÁÄcS7®0Ä 1@âåÑ~¬IˆÅ‘{®Ž€#à8Ž€#PqQßá8Ž€# b\¼ú꫹’ùqG oVÚ Á6Ò¨³±0®ÂlíK$Šjh Óü<['MzZ§éw™¥MÈtµ>jiQôóGÀpœŒqâ"'FžÀpGÀp–ãÆM‘ .xQ† ùUp ÉW6Ø`ué×ïÚ|“{:GÀpGÀ¨<xpÎÊs­¼¦Ž€#à8Ž@ÕG E‹¦Ò»÷Erà ‡J½zµ¥NÜÖuêÔ’=öجêƒã-tGÀpª)¹{Õo¶#à8Ž€#à¬p9ãŒòÙgWÉV[­/5kÃ"³,Z´X'O?ý¥ŒõWæ„~ÄpGÀp*%î*R)/›WÚpGÀ¨DQ¤„ÄWrÛmo«ëÈY´hIÚ†ï³Oùî»±2}úYgÆÒ¡C+ýmjËÕW_9í9¾ÓpGÀp*ã¢R\&¯¤#à8Ž€#PÍøå—)rá…éc_l²ÉZòÅW[LŒaÃ&È—_þ¤Û?É AãŒèØb‹uÍ•d=ZËöÛ·”ÚµÝà´šßNÞ|GÀpÊ…€•ëzymGÀpê‹@õÅ—j}ñŽÎ6ÉÂ…‹5F-9å”ÝäÆ)Ìœ9 ä›oF‰ñÙg#eìØÉ²Ê*+Én»µ’Ž[™±Þz‹œç;GÀpG B!àÄE…º^GÀpGÀȉÖÌ<2thÁÌ#ݺ!{ï½yÎóÆŸªq3FʧŸþ¨„Æ(ØhÕjmÙsÏÍdŸ}¶víZJ­Zn‘HOà8Ž€#à,_œ¸X¾x{iŽ€#à8Ž€#Pë‹»ï~O§N½IV^¹^±²]°`± 0FI ˆŒ‘Ô³Q£új…ÑÚHf)iÒ¤a±òôÄŽ€#à8Ž€#P.8qQ.°z¦Ž€#à8Ž€#°\˜úŸ|üñÒ¿ÿ‹±Ýv(‰±…ì¿ÿ–²ñÆk–º ÏÀpGÀpJ„€%‚ÍOrGÀp*‹À?ÿÌן?§ˆŒ)SfɆ®!ûí·¥ý 4˜²ÕÅpGÀp– N\,˜½GÀpGÀ¨”à’2pà8yÿýïåƒFX€O,<:uj£$F›r•¡.Ž€#à8Ž€#Pn8qQnÐzÆŽ€#à8Ž€#På5ê/yï½JdŒ¦^%¶$FçÎ[Y|Œ•VªSåÚì rGÀpV0N\¬à àÅ;Ž€#à8Ž@%E`âÄòî»Ã¥OŸaòí·¿¤3”pÀVà³aÃâ ­¤0xµGÀpòFÀ‰‹òFØówGÀpªÀ”)³Õc¸Nµ:Zj×®)»ï¾©tÐ6f‘QÜYOª>bÞBGÀpG oœ¸È*Oè8Ž€#à8Ž@üý÷ùðÃïåw†iÏŸ¤fÍêF²ÙRc qKŒ<@ô$Ž€#à8ŽÀ2œ¸X†…¯9Ž€#à8Ž€#P¶̘1×âaôî=T¾þúg©U«¦ÅÂ8è ¶j‰±…4hP·l ôÜGÀpª‡€Uïšz‹GÀpG ""0}ú›äí·‡ÈW_2w’½öÚ\=´­°ôÀžñªyGÀp*N\T€‹àUpGÀpj†î$ÄÄèÕkˆÅÄ€´Øo¿-ÄØ}÷ÖFjT3H¼¹Ž€#à8Ž@&œ¸È„ŒïwGÀpG`y @`Ï·ßj$Æwßý"7°éU9¤­´o¿±ÅÈXõð2GÀp Š€ôÂxµGÀpG "ðûïÓ¥wï!Fb >AÖ\³‘@`vض²Í6Í«!"ÞdGÀpG@œ¸ð›ÀpGÀpŠˆÀر“ÀèÙsŒ3IZ¶\ÃŒÃßN6ÜpŠXe¯“#à8Ž€#P8qQ¨zžŽ€#à8Ž€#à”%X_ôì9؈Œ¿þš![mµ¾qÄvfU†‹#à8Ž€#P…p⢠_\oš#à8Ž€#àT1¢(’¾}G+‰1HÞ}w¸Ìž=_vÙec9òÈí-.FÆõªX‹½9Ž€#à8Ž€»Šø=à8Ž€#à8Ž@¥D`Á‚ÅòñÇÿ“7Þ(Ÿ|2Òf"Ùwß6Jbì :´’ZµjVÊvy¥GÀpnq‘Ä7GÀpòD iÓ¦2uêÔ×âa}ô£~ýºñ¤¾î8Ž€#àTTƸócE½4^/GÀpGÀpJ‰@Û¶Íå¶Û—¡Co–§ž:YV^¹ž\zéËê>r½\|ñKòÍ7£KY‚Ÿî8Ž€#à”?µË¿/ÁpGÀpG`E"P»vMÙÿ-í7mÚ?òÖ[ƒåµ×ª É#Ò¬Ùj ãè£Û©%IÓYM/ÛpGÀH‹€iañŽ€#à8Ž€#àTMš4i(§žº›ýFúK ŒïäÕW¿“üHÚµÛPºti'¼øÔªUóú{«GÀ¨Œ¸«He¼j^gGÀpGÀpÊwþûßÊÀ×KgÉ:묪ۯËÖ[_/^ØCúöU¥xŽ€#à8Ž@ép‹‹Òáçg;Ž€#àT¦HÑgžyFgUX·ÜjüÄO¨ þ[…ò_yå•eÇw´Y(VZi¥BÇÒmL˜0Aî¹ç1b„|öÙg–dàÀuðàÁ2þ|iݺµ*—ÿ–ýöÛ/]eºïï¿ÿÖ‘÷†R·nñ9ÞtÓMB›¯ºê*ùïÿ+ï¾ûn¡ºí¼óÎrÜqÇÉÆo\hº ®Ý°aÃ䡇Jw¸Ð¾ÒÔ¹PFÕh£FÒ±ckûÍœ9Ï\I^~y€uÔ£êJÒDè‰%Æúë7©F¨xSGÀp* nqQQ®„×ÃpG Ü˜1c†¼ÿþû2gΜr+ƒŒÿ÷¿ÿi°Ãod‹-¶HýP¯¼òJ5½?8¯²Ÿ|òIéÞ½»œp –¾W¯^²ë®»Êï¿ÿnù\z饲páBU°¿¼òÊ+yåYšDk®¹¦º¼V¢,~øáùé§Ÿì\ˆ˜¤pÙ`ƒ äÅ_”M7ÝT kr „Íܹss%³ã¥©s^TñD­$'žØ^‰¦Kä‹/®–ƒÚF¯U?Ùi§[-&FÏžƒdÞ¼…Uož#à8Ž@EBÀ-.*ÒÕðº8Ž€#P…øí·ß¤qãÆE‘Yl·ÝvR¯^=™8q¢Œ=Z¶ÜrK;>uêT#Ö_ýÓ¦M3¥u½õÖ³}œIA°Î:ë¤Ò-Y²D¾ÿþ{³À*K‹¤…Å‚ „ùµÖZK~üñG"rºl»í¶)‹‚I“&ɪ«®*³gÏ–áÇëì [Éꫯž*cÑ¢EÂ/XO P׬YSêÔ©ciV[m5¹÷Þ{SéYÁªàå—_Úòš9s¦Õ•6¡Ä#”9~üxSæ:è UçÉ\ qÚÉÇœªãW\!mÛ¶5«‹.]ºØ¹¡íà –?ÚûÇHóæÍ­ž$f»~ýúB]Á"„u,h׿›o.µjÕ’_ýծןþiuÃzh ž`Ó¨Q#Ûþ¦L™bçµiÓ&ìJ-!âØ€?éºví*×]w¥ƒAƒY¹Ü#«¬²Ší?餓tÄ¿ ­%©s:¼ÉBˆ6p_þòË/ê"±µ•çàJrÝué½v€Zý¨÷ñ¹ä’—tû 9ä¶zo落-{V7GÀpG \е‹#à8Ž€#PlT}ôѼÏSE:R×€H]"ý EJbDj=©E‚m«ò©âýç?ÿ‰”ˆTYNå½×^{E;vŒ/^í»ï¾‘’Qƒ ¢ÚµkGj¡`éT™Ú·ooyqþN;ídëêž :ÔÖG©+‡­wèÐ!U—Í6Û,ReÜò¡~»ì²K¤Š{ªœ7Þx#U—3Ï<3Zc5RÛªðGçž{®m+É) ‘:VÔ­ÃòSåÙv½ð VÚ:uŠ”@)„G‹-"µ±ã}ôQÈ*µT²'êÝ»w¤„EDÛÁ‡vS–×^{­¥ýâ‹/,%4Rç*QQ'„k@û7Ùd«c¨ù*Ñ`ç’ß]wÝ)Ix≶ºƒÑwÞ™Ê÷šk®±cäÁõlÙ²etÊ)§Øñ3Î8#RëŠTZVÔ&Rb"7äË/¿´2Õ5%RÅpþôÓOíõÜ~ûíSëùÖ™2áÍ1Úݹsçˆ2Õ*†]9E kçwß}—3mUL0eʬèñÇ?‹vßýÎhu.ŽöØã.}?¦N]›ëmrGÀXñŒvWí]¹8Ž€#à,ÑVEZp!ÀjA‰ùúë¯å¯¿þ²~\Ž9æÁ½¢gÏžV©É“'ËçŸ.ÿú׿äõ×_—>ø@ÆŽkÖ —]v™GA¿§bäÈ‘f™Àèú†n˜µQX:`m¡d†åõÿ÷©ôÔs̘1vœ8JV˜Å ”8‘‹.º(•ö /”}öÙ'µÅÀ«¯¾j?¬,®¾újyì±ÇäØc5ëò=í´ÓDyÁ::cépë­·Ê}÷Ý'gu–•A¨‚eCR6Úh#5á?Ȱ0Årk„§Ÿ~Úò 12’ç&·©1@pŸá†äÃ?4k®‹’CÒ­[7sSyøá‡5€cQÂÄÒ>þøãÖ>UàÍã¶Ûn³xœwË-·˜C¼¬þùÇâ\ë7,QfÍšeK,C”â^`ƒ{Qæ2ƒUKRò­s6¼CžX³Ü|óÍ‚›ŽKnV_}e½O;êsy•ôés‰l¿} µ¤y_­€nÐûº«YfðLº8Ž€#à8e…€e…¤çã8Ž€#ȵ„-oµ40å‚vØÁ”e\8  )7ß|Ó”ç#<ÒÈH \%¾úê+¹þúëMYgŸZE˜Â¯ÖL’à•Ù„sq— 0¤Z9ÒŸ}öÙæ¾¡V¢VFlà‚‚~øá¶/¤½ñÆåÐC ›¦t_rÉ%jN‰\|ñÅhE’AIçˆân ¬CÈ$÷|„<<ð@Q KN{š4i"Ÿ|òI>§®Ôw $&ñ ^zé%s«ôlÁ]÷â‡ôéÓÇp‡àzBèמn,G}´ýÀ²åöÛo·{bÈ!výÙO=Š› ®¸”$b*Ÿ:çƒ÷G!ÄáÞs)mÛ6—»ï>Z†½Y‰·côY™-Çÿ„º7Ý"÷ßÿº%M/^†žÚpGÀHƒ€Ç¸HŠïrGÀ(âñ(PNÕL?UäC¥=þøãåä“O¬- ‰ÒOÜ uGyÄ~ X  à2{Gb:d“ ä“E›²‚Ä©[ˆí&öE>Bl‰q[#ÄŒP× S؉ „à›!]³fÍÂjjIàJR#™^ÝG̲â¹çž³¶§#.k¯½¶YtÄ÷…õdRÚ$ÄîP·œ°+µ¤îX”rÈ!©}Ä-áÚ}®V1X†ÄgÙf›mRéX¡=éHŽO!®Ep¿`™’”âÔ™s“øÅñ&&ˆKé¨_¿ŽîÜÞ~cÇNVËœþÒµk_%/>Ô™J6U2cg%*·PË*3+Ò~¶#à8ÕÿzTÏëî­vG`… €‚›vØa$ò©§ž2…8(¸$ dbý@€I-!¸'0’ß´iS!ˆdÜI² çÁ]%Èd_üXß¾}-Yüx8/Ÿ%Á%qÿÀeAG¹ÇÚ€ —ü˜B׊¤" 9(éî¾ûns×€¼\!h\2˜Íƒ:̃»„n(q iâûÒ­èk˜Po–LszÔQGYÐQÜ7âV"L㚯@´ ñv¤iÑ¢…-ãùÖ¹8xÇó÷õ’#°á†k(Qw |£ºßœd„$.$Ûmw“ÜqGu+šZòÌýLGÀpj‰€Õò²{£GÀ¨Øh Ds¥Àƒ}¦þD˜I—ÈÌú±Ø ³“`õiˆóf©ÈÔRò&ÆÄ8ÀÕ"V?ÿü³$>ø ÍÈâL·"î†rÕUW¥âq„ó“KHz¬(‡ø”•.p€¼÷Þ{ÉÓŒä Äþ LÈ~¸sPg\%òÄ¥wÜPxàÛ¡¬Z؇ÅS³ÃåøÃ2ˆ|™Ò•rqãa†H#H&\a8žàñ£A;-vIŽìS‡±´€d Oˆ)ò"†.D¸Gâu.ÞÅ)ÃÓæF víšÒ¹óV:½ïY:îµfuñúëÕ=ì6µ>zLzõ¢÷UQËžÜ9{ GÀpꆀ»ŠT·+îíuG`!!g;¹/^5âatïÞÝ‚r¢ˆ"ÄG€œØu×]Í"ƒi,±TÀmàž{ aN$•]ºrˆ/Á #Äf”¥¸w`@<ÈŠ.XH›Á*B‚Ø!MÈ',ƒ» $ ñ'r é 3¨X¬°‰è ¶ ÷ÄÝ„iDï¸ãÛÛ̳Ï>+{챇m³ HÎ/M¿!(eBÈì¶Ûn6i¨+Ëd™vÒÒ? H¬D` 1!‚àVbT°Û׺bA±ûî»Â$[9XŽè윫ÒÇ¢W¯^dmù„ó‹Sgˆ”lxçÊË ÷¿R#°Þz«éý±Ÿ\vÙ¾òé§#õÙî§1LºëT´o˜{ ®$L½êâ8Ž€#à¤C 3›¤;àûGÀpl`Ei‚9fK[’cýúõ³À¸´nݺPÄI@™g”>(³$à“†Š;Á) ‰›E°Ø Š01.\hqH—€õF×®]u¤¸³Lœ8±HÙäQÂÌ'´²ã152åM\ È ¬Q $âíæÚŽe– . ´9¸dÄåZg–ð ."Ä!fäO\À —¤>~<×ú¼yó̪„ë’®¹ÎÇ“u..Þ!ŸtKb˜pÍp]"îŠKɘ4i¦’‚ßZ<Œ_ªÖ5-Í*ã ƒ¶Ñû·€¬,YÎ~–#à8Ž@C`ŒUìŠzsòD€Î:Jê3Ï<#øº——à3ŸÎ§Ÿò˜>“YÖÈèr6aôvÀ€6Úš.£ÕŒ£ä1«AŸxâ‰B#Ä”U«V­œnéò¯êûÊ“¸Àª‹âCdºráKœ‡\ÄÖI ÄÓ—º8épâ"*¥Û÷ÕW?«F¡f„º~ÕV ¦íŒÄhÓf½Òeìg;Ž€#àTÆí±U…fyG \˜1c†M{˜œ‘ ¬ 1b„0ÚÌÑãù3‚KùøÛçF§¿ù曌ɾøâ ‹1À(4Ó9"LK‰)‚¦SnÃq_–Ä• ¶S‘–T œ¸žÄȈ n LÉ\%âÇXçi\G`ù!°Ûn­Ô©•ƧùGãÎ|gVÏ?ßW§ÜÝ@N<±½ÆPiëVËïrxIŽ€#àT8œ¸¨p—Ä+ä,C…:njM@=̰± `ê@üêñ'èû8NAÎÁ,Ÿ´AX8wî\Yo½‚,òÂ_}‹-¶° x!ùŸvLô]LZX@‰˜ícžÎtŒa*D¦ŽÄŸ:2KõŠ+ƒÔS÷оä6æìÄH'ì S6rœ@‡´ŸåÖ[oméÎÔ~Ô¨Q¦°†€…ñtŒÎã£5Ö™„,pGÀM¿|¤8×&䛫ރN]SÜ’’¼?’Ç+óöСCK]}î‘tÄñ1 Æ2 „V¾rÆgÈÞ{ï-]ºtÉ÷”b§Ëeô駟ʰaÃ䡇Êšw.‹)bl€1!˜ºÒ §¸ ñ=îºë.yçw2>gY+á4iÒPgáéh¿ÆJ·n}õž|M§<~KcÜì ÓÚ¶÷X90ôÃŽ€#àTE G«Š-ô69• `¢ /.(s(ò#hd@‡d¿ýö3_k‚á¡Ð¾øâ‹6… ~ÞAlHÀCˆ ÎaªÄC9ÄfL$dÁû 4±¦ÌO>ù$dcKf@Á÷HKºm¶ÙƦ¥$„É^{íeÄÆ¾ûîkeôìÙ3•³\|ñÅ·SÒ¬´mÛÖ‚ rˆ™À:ì¸ãŽÒ¬Y3sIžiC°F|ò[µj%íÚµ³˜ñtÌf™pÙe—Åw§Öq=  ÚÆL3Ìœ€çÚ>[½!zZ´ha×’:CA%…vŸ}öÙRœ)'“yøvé€äÈ5íjéJ HÜÛÉÄï É\’Ëb ò+%äÛo¿5+$¦› „)ÖI+ŽŠ¯—;¾ëO°iU/¼poÑæ}/Þ©n$ë,:ƒ}F’òÞóuG "àÄE¼(^¥ê‰–Ì2€53`ápÌ1Ǥƒ™ŒÇô†_}õ•).XôèÑÃF’Q@8Sø@0í"£¥LeøÁ˜Â…eŠ:£­(#[$` SÌ‚$›P_¬-°d /f‚U˜1cì8DÉ™gži¿ð € i“ÛXƒP×øB')'Ÿ|²!¤ÎÔB‚ØIÅŠx ¤”¯`uÏÌMîÖ­›|öÙgñC¶þôÓO[;É%¢ƒ 4‚äsmH›­Þ\ÈÊàºbÕ‚•IRÀ¥—Š@æp-ªª@È%|°ê!P'Ö(ñ÷ÏFÀƒ{“€’qÌâ9 Â9Ü÷,ãÑ™È#,Ò¹*aeDù”ÅýÃ2÷&ד60•+ÄU\ ÌJ„|âí HŒñDÆI'”"ÐÂù´õ믿¶g"ìK·œ2eŠ*…(€E]¯ˆ/Iñꫯ¦;5µû‡)Pã’ïµ ç€8SfsIJ¦ëÒq¾KÕD+ŒsÏÝSŸñk䥗ÎÖ@± 墋z¨ÕÛrë­o«Uà”ªÙpo•#à8ŽÀ2´sïâ8+%4Ðe¤Ö Ìîéèz¤JI¤ NÚõïßßÒéh¨WåǶ5¥msù¼ùæ›¶­dA´çž{ÚºŒ4è`¤Š\¤‘ð#%5"%7¢?ü0RÅ#¢.HóæÍm¿m蟺ŒXž 1R«[W’"Òé m]•ø4RóH)ÛV—‘H§—LS³sK¯&ú©}™VÔü>RŒH ˆB¿W^yÅNQ¥>R‚!RbÄòÔ8ùóÓiSõb¿*ôvŽZ¢DÇw\ªHU-ípÓ©*#URí:¨UF¤Šd¤–‘Î@aç©’))É©©|tâ‰'Úyª°EŹ6¹ê Žj²))b˜«RñË$ªPG:ef¤dL¤3IDJöDª´gJ^fûÕõ'RW‚2Ë/SF`5:ýôÓ#µ0)’„{ç‡ûk¨ñ,¢K/½Ôîo¶•HŠÔ"ÒiG#uMŠt¶‹TjuìØ1R%9R« H­ì¾Ó˜&‘N%jé”܈ڷooys¾Æ¿°uîD]Žì:±Nx†5¶F*¯7ÞxƒCÑñÇé´ª‘ÎÌ‘ªë©§žjÇøSR/Ò)SSÛ:SG¤Ö¶Íó –B©cÉÚ«ÖV¶[ Ô}I{¨‹ZÙ±øóËž0 8©eU¤ñ],­ZuEj¡pÀ‘’&öŒpàù矷ôJªXºÿûßÖp&®x"ù^Òª¥‡áCàO™×†ëC°Ôý÷ßß C6p !Rxþ²]Ÿx}ܽ{wsõ¹õÖ[Íuˆg™`¬]»vM¹ÅÏñõÊ@Íš5ô~ÙB Û3•à½VIÊvºþž·(!öŒ|úéÈ"®ƒ•¿ÕÞGÀpªùi?Õo±#°\@¹9ï¼ó,°#JtW²D)( h¡ü ˆ1%$Š‚Ò™€B‡ÅJœº’˜ÂðÜsÏYF½¯»îº¬U oâ`ÑA|‚VÁª_~7¦·D ba¤7ÄßH·m‰rüD™u%QyF[É›¶Ä¸W¯^êý’)D!¨fÅ· ÅM¶X)Xµ1£ ß“ðŒ…²VÔ²Y³ÕôýßY ß•¼=Q‰°j½ö¤’·ª×ÇJ$Î^QUórGÀpJ‰€¥ÐOwÊ :çŒj€îþûï7E\ýÉK”}|$–O:¶,Qê\.g$rr‚QUF¨ï¹ç#PFa¦³$©ü°Ÿ‘iõÇÎŽ; #¸A8Åë\3äH|¦’äv¼ !¿° yàÀ+(]Œ¸Ó‰¦œp~H QËõDä8#Ñq ç°â—‘p>û D bZˆÒGÀÑ0’Ïñ|„2rÕk!C†ØÈ=JOM æû¸¦ 

C0½@• B© s¤þív~FÒ„àœé#`¥Ž†C¶$P¡º½XP¿teJ\Ê ê £‹‘Ž2F!h`º,i'ÁFÕý%Ýá¼ö‘?ÁCð?U’"UHó:7™([½9¦ŠoÖº¦îùÓ¢hªlý½O}>ŠFÞEC®Š¢þ§EÑGѨǓEÞõX½³y}Ô!о:"о=;І_§Œ¢q=¢hFÑ{‡ Tù-·àœJàYPIµ¶° šÏ .ã•'¤}©]©ÔØ©mÎ#Èku7±€•ªt¥žª…Q¤„O¤®Nö,È–à¨ÜÓjI©"h÷º}Dª z’Á9Uѳ@“:n<Ùæy¢\Uâ#%Ú"‚¼ê B–Ï'¢–@‘Q¡š‘ÆóHµ·8Á9•„´£š¥µX±rŠÎÉóÌ{AÝ"u툔(²ídpÎT…tE­`, çq‚“’Áa pK9¦.>vZ¾×FÝ`"%"U¦­Ž¼/,¬.7v=²]ŸxýÀ¬ÊO­.,qY×5>Â_‰¬µW‘"R÷Çø"ß_p¼ÖJj.ÒTd% †ZO,ë6.rn¡Ÿ-¯ –$X·¦¢%î± â’Ñg;¹/žË#¬t’H<+Œ:+aaÁqãH¸1ªŒ¨bÏÎÊŠ[ê+#¬œ°‰[ñœàvVJX1jŽÐF%Í„m,ŠÚ/ƒãq¡½á8V8XF ÚƒÕ 1@pÂ;wF؉%Þ:óN »tª‚k1Bp)à8ÖKX%ñÁ*ƒ÷SIêÀ}ÄÔÙÈ9çœcÖXÜ£XN`flŸ7¾po^É sCckDŒ%4ÌŠ Kྗ-V ׈x(àÕçaå’t¢ŒŠ$+­TÇâ_cðàñÒµk_+ó†Zö–.]vT “]C}wº8Ž€#àTHœ¸¨—Å+å” tà NHÀ’ JÊ~òqAACJ§ˆŽc¤©Ö²dˆ&õ×Í Å¯¯©›† ¦Š,Y\8]]%}6:#-q‘J¸Áq"ëv. *j¯œÚ]V¸¿0ç§V.Ešâ#„:"Vm™ JH4b AÁE#FʬY³Ìœ>({¸Þ¨U„ùÿãj…É|ÜÅ(¼•ü 0ÝW‹‘"d!äqIÔ¢À\µâñ%˜ýƒ_¸‹ä@6x‰F@QÜ(’‰K$ ᦃ!©Ü}÷ݦŒb&¸’‘€xI§x°^pÀ½7%žõð¼sM([œk³õÖ[[ N°!)XE8Ûõ‰×÷"ˆš!s§-2‚bòÿ(Iñ®ÿ# f-Ö÷£HÍÚ5dñÂe¸×¨%ÒpMuÁ*¡à $´¢ áÚCðqoᦖq‰Ç_òÂõ áY ÷×âŒX)AB¬î\qø®¨…‹¹•@úñ¬­h²(Ô5×rÛm7и-È7¢1uúK·nß(Yø…t츩»*³yÆo[®¼ý¸#à8Ž@ù àÄEùàê¹:5 /u=裸%…Ž*Áï2I˜-!Óñ*µÿïÁ"??l–FTÌÇRB g4s±Ë+™›Ü¸N9¡APÍJBGü‚¥–5 â’d>YÔUÅ”_—”…I Û¹¼,²Yµ²)acrœ†Å¿\‚"Wfs¥Ow¼U«V…v3ª_É…M& ±PVPâÃvy-ÏdÚð…ÒyíSå—ÇjȆËÜ©AÍ:5%Z´D €‚ÒYÆI ö6lZWj”"ÂX&²˜`› Ì…% ¤3ASÇWPýÏtn*ÁÒâŽp h‹ ¬ˆ º ° * Y2ãVQÌNS™¤I“†rþù{i¬=uJòÔ ãkñçµ(YM§”n¯VE;)YÙ°25Éëê8Ž@•E qÁh&–.Ž@uE€ ™ƒs©F`1ùË¥ÄÃRÒ}€h²­ÈŽÏddñ<‘¹«l¢K%â® šg>—#6+øeOåGK‰@yZ QµlVF(÷˜Ó»T~jÕ­! gE²óêÊô¡jR!ˬ–,\6‹G¦–®Ú¢^¦C¥ÞO°U¬„X2£ ÄdCq…Y˜˜Z™éƒ±vÂKÈjfÃ!p'L¹‹FÒ*¯¸e®Èô:L©Êï—_¦ÈóÏ÷•GùD1x_¶U2cWmgŽ÷øŠl€—í8Ž@5@ qÚŒo©‹#PÝÀ?8ù¿ºµ¿R·w‰º@4@8`í_‡Dh•e$pÆ÷"_)RGÝaVRÒ‹~M¶i¼uvhš¶éø~ö4~t…#PžH4.›•Ó»T”«Xk—ºrÃGÊ{ÿ ÓÞ«/³ÿ,pc –™ZZSg»X4o‰ zb¢4Z¯ž¬¢¿FëוMó°¬ÒLQ°ƒS² Ü>ˆ}Á½ÆtÎXÜœþùf}Aì“ä¹äÏ+¾ž-V å’?³‡!ÎÅ1Çcë•ý8¸0­ê›o2ã€PW«õåä“wÕ8.mÕ%)¿ëUÙ±ðú;Ž€#P‘¨AÎx…‚ÅEbw<‰¯;U:aL-éà/R7‹@@D:Š 9I¦P§ü ­©¼,–kè¹;<^øx|+Â?\_…52r¹ñÔ¾¾óÄ’.Ž@uB÷‹– “oÅvÛn/£úL“Aÿ!³'-ÐW‰2…»V)hjÖ©!knÞPæÏ\,³þ˜/‹æë»M¥v½š²ÊºJd4«+í¯\_×KCg¿~Á…g©HÑ@IDATòäÉ@8›%U¡+éb¥„S(ƒ`¨ë$NýFa*'#¤ Kb #¦2Ê AóüZÞ~{¨Æñ¨«$ÍŽf…±þú•³=•ñxG Ú#0Æ{éÕþpåü(&ÕdÎx‘þ§/µ’Xj5±X€ «n.rÀÿÂVÑe£Ö"ÿ­e–XXÔa&“,eÆs!Zž‹#à8%@€x­j"›tn"?¿=U Œ‰2gÊBÍ)*Â_,Ñ [ž°¦´Ø£ ØñœÉ eæo dÖïóe¦þfý6_êÔÏã‡W§HÝ••èÀZCõ›îÊÅ¥Ò\;J*Ùb¥PÎn»í–Êš¨°ÄÈ$Xd„Yr2¥©¨û·Ûn Ú[̳{÷þœôQç âyÚitF"utqGÀ(W íʵ(ÏܨÂ,™§¡ãWL4û *Öcž- æ- wÕ¨§³‹øSæªÖj ²rKµªh·ÌJÂÜ5Ôb"ÄŠÈ|vI±Þ²è÷Ù’ú1GÀpÊøÏM]]Z¸ºüØkŠ Vw¹/, /b¶­š-‹qÑ`:Âoí¶ ó®ÒO½§ÈßcæÉâK­5”èh„µ®'j±Ñî¼õ¤ÖJy’¶y—š;!UÝÍxõÕWÖ¤{[0Ï÷ß¡SÂ~¥qáUë–µå´Óv“#Ü^­[Jn-“eOá8Ž@õEÀ‰‹ê{í½åe™MbÔ"GüU‰] ´<{ì2× J# 0{Þ¹[fÄ«÷w/# VÛf™Dƒõ2ŸËHŠvOfOãG+$Ì$ðÙgŸUȺy¥òBë‚L‚ÇÙfG4•MVãM%0žüSæÍT4†ÒÈa/ª…™¾’ÿQk ,4 ,5¨åÆ|™òéU/;i1æý¿µu­õ›x7°$×¢V­šrÀ[Ûï‡þPãK¹á†·äöÛßI¹‘4o^ͧ/ °~Ž#à8Yð/Vpü#¦¿yŸÈøW4‰ö ‰Á0ª*îkeòÉ'ŸÓñí¼óÎBÄnä±Ç“—^zI¾ÿþ{YuÕU¥}ûöÊØßnó§ç“gIÓ,Z´HfΜYâ@YLÆ<ñLJçmöìÙ©ª4hÐÀpÁ—µQ£F©ý™V˜V <òÈLIliëœ5ó¥³çÔŽÞïï¨eÁ]:uæ7ê¢QÅ—àǼT!²j›°UvËÅ:…"3ed›R“¡¼>‚`– §+‘¢dJ° RyøŸº'ËHÜßC–ZLhÚêìöpó¥#à8eˆÀây‘üÚw†´Ü« ¾Ef]¼¬°ÖøKckWC­4,¾†ÆÙ`]'-‘Cžß4c~‹çG2mÔ\#;Vjìc_适œ n$ýú–M6YËŒ£ŽÚÁ{¦;Ç÷9Ž€#àäD òçüé§Ÿä›oT‰,ga¦‰fÍšÉî»ïn%-\¸Ðæ3æ™g4@Ó“6—y®*œwÞy$kï½÷¶¤§vš<ûì³râ‰'ê['yèŽ;î(C† ‘uÖY'W–%>þöÛo[¬ ØüëÅ͈iÿˆTŽ|ôÑG6Oü.»ìbÛ'N´)Øžzê)éÛ·¯íËö7gΡ¹¤´uΕÆã‹Õ$xl×Wˆ~U¥~i Ç8iÁÉ ¥‘¡WŠÌUrÁÜ4[òc}‘H]Öª_°žüǹzÃSDêj‡ë‹ ¡„ʼnÀ\5¾ÕÚ&sõmGÀp2B€¸+œ´ -Xk¬­Öú[g»•‹Õº¿ÇΕ·NúÑΩӠ–e:×(tµë+^G± ¯$‰kÖ¬!;oe¿‘#'j?ï+¹ùæÞrÇ}Ô¤ÎF²›Nñ]vqGÀ(¥¦ËçÏŸ/(ªDžþõ×_mä}Ë-·TsÈ%6MÇ·Új+SŽ9Nð¦øtX¿ýö›íkܸ`bðàÁÎÁ3#úÇ—M7ÝÔ¦õBiÞ`ƒ Âa[bAÀt\Œøûí·F„éÀPŒÿþûoYk­µäÇ”éӧ˶Ûn+uëÖµs9oÞ¼yR¯^=›×<¹M¢Ž;š• ”·á†Ê+¯¼Rˆ¸`ú°ñãÇ[»ƒÅõýóÏ?ë‚Ö­[ËçŸn¤Å½÷Þ+—]vYÈÒ ê…eÆwÞiûiû Aƒ¬mÛm·M;Æ,@À*X$€'ׂu®KóæÍå—_~±²·ÞzkÚvNš4ÉòfJ·6ÚÈÚÌ9LmÆ’´µj-UÐ5%xŒ5Êæßd“˜Kå"j¹·M‹¸tÓ¬F®¹æÚö"ÔkH}™>9å‘Ç\çD_ÉÖIC¤rê8bÄ«–-Å­3×û?þ-ZX½™ªmíµ×¶2òþ›û›ÈOk ‹GD°zÓZY²ÔQ9™Ñ__¨ÅƒÆ¹€pÓxÚr)Ñ©ŸÎy—¥“8}¸v(ÕŠc%­gã-‹5 îÕd±©íͯN­úŠ#à8Ž€#PÖ4mÝ@Ž}§Í„¬5°Ø˜8h¶üÔkª4ݬt~tãŒÅbu°õV]ֿȘ¸ Øl³u´ßx´\sÍÒ£GRµ¯<ýôW²çž›Y0ÏÝwÏlÝRšïMpG L(5q1tèPÙi§× é±PD‰Gp`„þØc5¢ ¤C™G±|衇t*©]åàƒ¶¹Ç z…²Êù(½_~ù¥zè¡2cÆ SvÛ¶m+#GŽ,äž@9çž{®@|üõ×_v åõÔSOÕ IÏÈ{ï½gytèÐAú÷ïo#ü›m¶™|øá‡fIEÊ7„VÉmòO ¤$LPº)ïŒ3ÎPÿÆnFÔ@ÞÜvÛm‚û.ÔŸ©Â P Ö\sMN}a¡l!yÀ§~ý‚‘õ¯¾úÊ\(ÀdñâÅFZ@”€÷ 7Ü`„F°8,ÙxãÍZBƒënX*p.S¢a9VŒ=Úð -¸Ö®][š6m*o½õ–YP×<Ð,L8g‡v0"ƒõLB¾È”)ª´«Ü|óÍrÓM7 íÇ%¦wïÞ†×óüóÏ—+¯¼Òö‡kB½±h¡]Å©3í€Áåõ×_·kò¯ýËê’ëo³µÔ¢ï±"¿¾ªIÕR˜¹¤¦>J?= n³”pБ³tP‹,iǤÖ(1÷tùu|?Ý^ßç8Ž€#àT t¼aåuêÚoÝŠñKeÿÎýúõ ùøª±:kµ†YjÄ,6o¸’Åí(ncéOҫȬ´—_ÞZe¦iŸx‚ö‰×Á´úrÎ9[h¬”¹aU°n Ò‡®¬Â*ºŽ‹#P™ØgŸ}Lo,ÔI/$êªÀW§Ð¾lú`XzóýþûïÑ<`ÛJDª G=zô°m%8¢G}4ªY³f¤Ä‚eùÄODuêÔ‰T¹4¾A¤äE¤Šªå£–ÑE])µlÙ2ÚsÏ=#UÌ#U²#}¡Djayè¨~¤Š¯­k +‹2ÉGÝ0l»W¯^‘*á¶®äI¤® ‘ZDJDªÌÚ¹l«â©uBÚm­4C¤¤ý” ‰ÈK­¢ž={Ú9÷Ýw_¤J¤ y¤Jw¤®V¦ZØqµ$ˆ4¿­ƒ$¶žéOɇH‰lÁmÖ•Ô‰Ô!Re?RR(u:ØpíÔÍ$ ×e¿ýö‹”(ˆ”8Š”h‰ÔŠÃÒSgÒ’/B>jé©Âoø(‰d¸+ùi,‹H k§ZÍDJpعï¾û®«±9"%¢>}úØ{@ɇH­="Îÿúë¯-ýsÏ=géÁZ-_¢sÎ9Ƕ¹žwÝuWj] –hàÀ‘ZLDàĽ€§ÎÜo´zpí5€ å‘õo΄èÇÇ[DQw½ÿ‹û{¹n ½Z³_œµ?è8Ž€#àTWæÍXý>`f4òÉÑ€>¾rlÔóø‘Ñó»‹žÜvPôå-ã³C³$ýa%-ì›Ïw¿²üêÔiªý²]#µ>­4u®,Ø–¶ž]ºtI£U’½/¿ü²ßS•è]PÚûµªž¯ÞÉ'nt©-.,ÜÖ]w]ê¹ä’KÌò« ¶%t®ë£EÉQTÎ>ûlyíµ×Dks À]áwÞU`Õ/°sjtŸXœ‹KnÈ)§œ¢œuF‡4Ò¦M³ìàén½õV³öÀÒ¹þúëÍš|ŽwïÞÝö³MÙA’Ûì'¸&.ÈܹsÍr€:a1€d7Ú=lØ0ÛkÌûï¿oV –héÖJâÄwY§í¸rÀS ;~Á˜eî.ùíÇÊöãþuER(£_¿~jÊxok…N:™E1D¸.\“Ã;ÌN½âŠ+Ì#žÖJdØ.,6°šÀRw7ß|ÓË[¬;À3`%ƒK BÀÎë®»®H²\u'è4ßà©¢3g<ÿË2õ§w䉛ùã=õÇÑÙC˜1$ˆ3–Ã\4[·²_ÓÜ—Ž€#à8Ž@uC ^£Z²n»Uì—lûü™‹%—ÅÆˆ'éì,š ¥Q³º2gj-©§1 &Lo֥ɼ}ÛÈ\âóͧ"¤ î¡.^G _ÔB2YÉ—qâ ´"!Bˆc ”‰ûï¿¿™îóbàRëKÒ”xÖC<‹à‚Á¾ )I¡Ap?Áõ")Ô!ÖÄóÏ?Ÿ:L0RÚƒ{I¼Ý¸`$w˜[n¹%¹Û¶‰mÂ9q¢†v¤k'$ëŒËHR²Õ™xsâ­GGµdðoz=¶¼¹à·H]?&})ò§’,•Ș¡„‘’1RCïóxpNÜIæÄ )NyžÖpGÀpÔ£RI\²þ®¤¶N'k3¡LX ¿÷Ÿ)#5ÆÆ‚Ù dõºåÐ×…z#ÿùÏRõ¦¬\¶Øb ³– Pfuã«y-iÓ½B^!ÿøu ûYÒ!¾/¹ž­ÎBe&µ•ÄXW­†¶½_䀑"G(9±ËK:ƒÇÉ:=i³‚b˜n”¶Í]v–Yùž‘#à8Ž€#à[®$›ÑTÚ]¸žì}OK9¬Gk9é‹­e£[fËŸóÆ;JŽ€#à8U2#.òÅHãD³…`þOàÄØ’šª$päæ›onÖÌÂH=VŒæ3.#cq(ÄXq`½‚bÜU8 WòÁMåã?¶ “ìÇ%‚ò ‘Ü&M:!ˆ%A7Hò$$å˜÷ ‚Q&…©Pq+9묳lV¬B BžÇsŒYZ`™@>(þÔ«H\k°jùßÿþgåAZ`©‘¯„ÙTp9i©V(,àË>f?ÁŠ‚YVh—Æ 1WÜvÂl'ù–þàÁ5§  0kÚX)N‹“o±Òt³y‘vOŠ:A'¼ÿEdG]ß@÷Õ¬W¬¬<±#à8Ž€#à”Z #Yµ(-}Ξƒ#à8Ž@EA`¹aä¢7\ˆeäꫯNYGh°G›Z•Y(p£xá…„Ù5V[m5Söƒ E87>B«q Pþ»víjJ6³š!ÆùwÜq6½iPö!LPÜY"Émö…6°R…º1ÕéÿýßÿYÌÊÇr‚ q7—.5Ä@Çú@ƒuÚ¤|ð¹Š@ÜÐv¬py`šPÜ^hŽœGyÄÙ€É&à°ÚqÇÍš‹HÜrpÝ€(bF îcm†¨€(3ð¥ XË y†íäw¬gÀ\ÀƒYJÂŒ*ñóãëäCY³âÔ9™O²Ne¶Ý°…Z_œ¦V/‹ìY0‹N™åí9Ž€#à8Ž€#à8Ž€#àH ÂuÆqÀ š‰Ýñ$¥^¿ôÒKÍ2!îA¦Ä2Ð8,ŽVq!nVìGᇜ þB\pCaÚPÚ@€I\Â(=„Ä=EÅ;¸¡Äó(‹uÜD,Bù$¹2K†êþ¡³mINÛøá«3¤MPäIÈu"P%îa Õ"dØÁ”©`!‚€?¸±„( ñJ8F0QŽA¦$¯ Çó¬.tF#?JŠ}qêœO’i°2a*Üï¾û.yÈ·GÀpG " 3§Ù`ý)”\’"À  ý_ïŠ# .Ö¸uó¤I“†Å9­\Òê ˆ6(êÁ9Ë^Ï´œÁ9ñ¢H Ê)ˆ¤YÎÙã†ÁL¸…O!)¼(Ú·oŸÜmÛXj`O¶ ŒÉžùäYœ4å—¯ ÄgSäi{âÂ¥²Æ² ¤Dn ü‚dà ²w’ÒI IJšOqê\Ò2ü}úØl–„àžÇb°™ô¸Ò–—í|,ÿgΜY( Ä.ž»îºk¡ýe¹Âý÷ß/W^y¥YÚ3ºl˜!³4e-7W*‰û/+\*ÂÔ˜%©+¸$-ŽÁz¡ÀGFƒƒ@f€nÝ{î¹gØmùáJ Á>qIW§p<[[Bšâ.ÇŒ™l–¯½ö­ÎÀ÷·â]KÝÏ ²d»² ÷÷>×·|î7\ݹ—pñ&>]¸ÎÌ~Ƚ¿G¸¯Ùâß‘®ùÜgì2wî\Sœ¹G¸G¹ŸÃ Š! .ÿÜ/ŒÐc…Á3î)òdôžg1<·LTô-Îã™a›û?¹ÊÈg™© Ähä~e‰5E­Z×·ôųÏ>[ºtÑ€ýKåˆ#ް8=ö˜tèÐÁb7â:™žQÈEð ®#’© Ú`Â{Š(ioÜjŸkÉs\æˆ]ˆõSð%f!nDÄ ‚›×–k‡qœúÒfBËyÊ¡.a›:s„rC¾ä‰ð¾àúÇ8ËåJ\§bË3-.ÃEbzR€ç¢Éf¥ñÞ{ïYPÍí·ßÞbCp£ãÅ_”wß}·ÐƒòËw‰9Ýᇞzó=ÏÓ9Ž€#à8Ž€#à¤G€A4¬p1qvÛm7S–Â4õ˜S;ãØc5¢ ¤£HžÑUŘyŽ= nœßºuk›)Ž‘F¬èGDE,®¼S»sÏ=׈:øCa@ ·jú˜äÂÓ¿;FuLëQZJêøÈ#˜ÅÂÞ{ïm£› ¦N?C„ò 0ºuëf  ,³Ùó‹uè°„@$-–Ó¤¿á†e-XŽ@z‡mÈ!…¬›™ ¥³q–éðC .É` ‘C}±Ü`vAùg«S¶¶¤Ã"×¾‰g(™2Ø,*~üq¢bP˜¬Èu~e9ŽÎˆ8Š4÷!÷+÷5÷?äÂ,ˆL&ÀuÀµ<¸üsœýè>×\sÝó÷ÝwŸ4oÞÜf-d¶G®-ùs¯@>pÇ…|Ñ¥ ìPt!Äöß»p¯ÂZr Åcä}ï½÷šÂ xùå—Ë<`“ $·ãådZÇ"!S Ähõ+&“€€c6L\Dh/1RâÂsv<3}ûöµú^|ñÅzO½šRòqaÁ“àôÓOWR,sœóõ×_Û3@ I˜i“ØXeb ž³p}âua}‚$Ÿ^0kìã#À‹>°”äØ.>¬l¦YlCÞÁŒŠ7/L73ŸᦠaØçKGÀpGÀp*ôuèó Ð!‡  OÅôôtÜQŽèŒŸþùÖ'£ÿŨ*ý FUé”ÓÏ;v¬uÜQöð—¿çž{ää“O6²‚>ýNH’L¡Ñ£GËóùçŸ7â"ƒ‚~ "uÝe—]Ìåš83´Ñ÷CèËAÄût˜ÀÓ>bäã?¶úÞu×]¶8”Ý»wo#)¨/JÄ}@fº£ÿŠRvã7 Š V¾‚"LŸ»«ÎˆGÌп }[,.P€‘§Ÿ~ÚFúÁèî»ï6å1S²µ%Y¸°¦`6PÅýA8pœ*l5U,˜Ç XX¤ËG»ÌÚŸ &ø…-CÒ¥-ï}ÆMS%t™åO>åAÈqŸïµ×^F\aýrÒI'Yì[\ ¸>Ä!yðÁXÀ*ƒ™Ñ;¸¿‰kÀˆ;÷:÷Ï 3b!áÀó–IPÊ!È“kÍõç¾½H}°T ÎO>ù¤•…õu VÉíp~¶%^º6PmÀ2‚g«f¦„È¡½<#X+ Œxìç@׃hÉ&ÙÊàx@Òð Óöt^¡¼ä’ü¹§ @Ê"†Mµ!.Pø—!/¯;î¸#‰m™mwêÔÉnL>*Ù`ˆ€tl6L$,<»Î4®Ô L/sÈ ><|D0‚$¸)/ ØSnÜ?þø#5S ³Åp.70ǹiù˜ò£ÎáÆäEÁ˦•›2ƒÀvò"ƒã£œn”Ö—U:7¼@ãfqeÝj^ÂÄÅI'| ø6ÌF¿Ò¥ ûxÙǃ……ýaÉsĺlÑÄùØò¼¸8Ž€#àTnèü<’Ž8ïv¾i¡cŽâN߉ ={ö4ŒX ûí·Ÿ™H3¨„E_Œ¾\pIÆê€sQ‚¢‚Ï;£Ïé¤M›6©‘HÒ1ŠK "ÁKú†g û A8‰° ø(+Š }Eê„òÒK/™’B»ù–²“FºQJñÑÇ „zPûJ+Á†þ9ʃ~(a B@”~.Dn*˜É3à†˜©NÙÚ’q1aÂ4ío7QŒpogå,Z´$料øb?í_÷Ë;}y&¬SgÍbeO·„Kîî}\t°*‡ÌC:ªëäÊ2D–X  Ørñ pP‚Ãh<î&ŒÈÓ z÷V Ô,ãØ_ µhBÿ@H‡>E}Â$ è!”Çñ`%ÅvPÈ97¹Í¾\’© Ô?™Ü—X Gì ÖûÉ2ò}^r•A¾¼xFh?‚ï ˆ ® ÏRÜÚ k ,Xž5ÈKXô<„÷Ï"$Ö&¼Cè cíÄ5DpsáýF|Jt¿|Ûc'—ñ_•'.xÙ¡ðsÓóÂæ¡ ŒncY(;˜jÈ”ªl p&6›‡Ó\E¨w°ÁBÆš¼ 21;ιÙ",%û/»ì2ûÐò¢€Iåå‚©7&Äûa !7xñ¡d”}ƒÜ¡¬¸@¢ù™6Q˜w>ân‰Gªz¬ó²¤QžÂ½KŠg!˜Â…òøPrÿòŒä’d°°dz>H|t0ùãÅð|Òi‚˜ ~{”éâ8Ž€#Pù#³˜A#¡3:æXžâÃrDŸ +aE >°pÅÂso¬/ ‚Å,î(AâVa_X&¿£|oB¤!°^”¾‹ù ƒ`¡oÇ9Á*“nFYQÀPfâ †ŠÊ'?{”XH È‹¤äóŽŸsûí·Ç7m°‘|ݰ`¡¯‰…IPªBâluÊÖ–p~¶åúë7ÑÁÂ)jq\WÍáÏUÅú[U˜'h|™‹H¦óárî¾ûè 1«HÁt¨ÿÉTÕ´ûãý+”_îd\N¤„BKÿ/Ä.D@ œèkAî¡{qs ² ¡$a;¾„LŒKœ ûÂsË6Ç(3Aé‡üJ ¤X 3µf„Áaú¤APø Æêk­tÂ~‰“í i!=ˆ $SƒX ¤ÛX1`¥µzÖø!ÖÇy®Ñ÷‚`AU„+úQ<»¼Ë‚p>Ï?VP¸µX”çžrÑ¡Ñ9“ËCj.B–wÜÏ>û¬YÀbs‘¸¨˜¼`w}(¯ºaÚÆF™ÏÆÇ™c˜2ØlˆðÑLÖ¿$>6˜ð`A $ÌЂ²…/$ì/nf>´iù0óÑeÔ€Œ´”…K 7:æXA xøx$_,¼ ‡…Ž6’–2dI¦‡6äëË’#ÀK/)àM‡ƒ—.¬/l*½ÎýÄ‹ á™§á8ûXg_È—4ø±BöÑY‹ åàžDZ:L˜ç%…NyÒ‰£cÇ2 >,œ_`Ãq¾ðâf_r›}t”¸÷ã?îa˜wžï¸@üá˜îOG;`£ã/\È8Føyæ™–œ{;ìãã„ d\À¬sµ“sHõ¢ƒ•”l×€´áÙ<Ï·GÀpŠ@¾.(3(|èÔ3ÒŒ0Ò‹bFç«âN@`@. |‹ƒ Œgø ôɰ؈ñã|ÛâÇÂyù.! ¹f A™¢¿Èw3üøÞAÐ&nƒfÔ„> éè§Æ¿Éïz¾õ épÛáÛJ?LQ2ùFÓ'‰»cg«S¶¶„ròYÖ©³D-[vÕø —êÈóõZþþ: ±– ‰Q%“Þ‘®­Ü/Xâür‚ª¸Ü£s0P qÁ3ƒK ïÆŸdñ>&ý",6âdE<Ÿ#FÑU’ù…mòà~Š ÷ý± ïdj‚ËÄ ?,„  ,Ñ˨'õ ‚[8 {¢¿1Hp}o,áa‘«Œo|É€5ñ*¸\“\ÁX¡{†w eB†6±Ä RŠ€À¤e€}Cúû´ƒ¾zÞ ËCª$q"‚E~}|TxÉÃ*ñR\^ÂÍÃMÌG‘‚™ Îe €‹˜cŽs³ñ'•°x!'xI ø€á×ÿð¢T…k QMnD2ˆŽ 0ñr uâA›8ñ¡Ê&”I}!exPa±ÞàcçR¶`®…ù*÷JRp â:ðâáÃÁKK®&¦tnˆÂ=I+Á¾‚à«ÆýÄ€ >äÁ\Ó}Ü+¼€Lã¥LþtÆ`[›Ò`ÚÇËŸ/°×dÈ1ê‡5,.ÏhóÎ;/Åv³/¹Ò¥[R?,~:Q”M9Œ $ÍfCtŒxÞ0³cIg(!°P0§$=ÏW 5kd.W;±”âåãÅ9àF ²]ƒP/\µ}¢Mt”]GÀpʾ‰ô‘ ˆB[òM%Æä5£ÉXg0JMߌï þïÚ˜¹£ÀdH¾!|ù6ñ- î*œÃwŽ|èËaŸ €˜á[K¿—úR"Sy|ï÷†&ÁÊ^¶:ekK¦ºåÚ߬Ùjxr/u•¸Ze®REuýŽ7¶Óª*‰‘ úž< £à†@LJ€úEè]¤£¯‰þÒË`ƒ¦Xdî'îIîQž1ä¸õå’d"ÏýK½ˆ ¹Xê¤Û¦ÏEÞ(â¬ól¡ÑgD2µ¾ý6ž5êOYX¦C^pŸ¢ÛqÏb¹€EÄ }f\i – ž!¨.Ï2uà½HŒ\eXûk擨²¥áƒ+Š7)Ì „âš±•´Ý˜Õ„‡,œ9ÎU>J ,xP0IÏ͘x><¼0`;y¸!* ^2˜Ævúò-Ž@¡|â>ÂG ¸oYqòò´…`Ô—/£"¼„`=Ó‘œ^\O^îDüæÚ Øò‚Ád —`Ãy¼4‰O:c\^Zø1Ò‘À*+ öcí€U梼è3 uá^ ƒ™€ÅBx9—…ç’ç¿ðáâ9…á ’Üf?}õ ¿øL8/î–E9Iã¼$)Á3JçŒ8ÑFêžP>3^F òBœLížH(ˆ$ÒÑ™¥C¶|(Ò]ƒxâ®Z\SÜgøÈº%F%_wª(˜q…°zµ¾|[†èK¡À3:J¬‡ |_‚uÊÊ ñ’]EÀò‘?Y(oq #¯ìcT“À“(>]uP¬ ŒqE‰| ñ' èãai‹@  8² Ú¶YBªP7'bHñ½†¡|¾I¸qЇ%Æ (Fñ¾ xÐßä<âbÐÆ ñ¶±B—špŒ~4ÔŸo+J ·™¾8Ò¢~'ôç³Õ)[[,ãRþmºéÚÚ§8@ûÚ7ÈÛo_¬Ï»è@dA0Îl;KYl¹ŸÎ5‰ß'¬'·ã•@‡ OI߃ØA¸?!šèq]é'“2K$Ò é2À—p_°½‰>0d$ý¦0ã Ç!&ȇ>:e &ôÉX¦Û¦ÏÄàdKtú×(ç!æJ¦6П†” ŸL}$C±ç¾+ÞÄ‚ƒKäCPQˆÚƒž6 ¨ÛÔ²B„öç*ƒ6Åq²FêÏׂep{ Çâ×1ìcð2]ƒAnb”ÐÏoÞ[‰±¼kÐ¥!Cyé·Óå]ÄõGå<ðnv”‘¬#Ÿ+襕ªô² 'S^ ‰Ý¥-g…%/u,¸x0^\€¸ŸU¼raV„%/R”*F¬“ÂÅá‚‘/J#Êl97&J—›š€L˜ øeŠ4°ááÃ÷ÆoØG Ÿ0ÊB±BÙ‚UçAgÅ%‹×n$$”8n~QÒ%—(õÀ,– e‰ 8ð"aDŸ‘›—zòÐñH3w”C>¬|H)öÃ’Æ5‰QeÚæcÉ@RÑÍ« ó'‰Ô+^0¤d¾0—Üo0ºt,B œd‡'œ‡eˆà¿Ê œŽD¨ @GŸ[^8|,¸xxáð"áÞņ—íçÅÇýÂ6÷&Dãp}yvèÐ_ü^a†ûšûá>Åšûœ{†ûŽež'^’™‚•…tXMaUÂ/ÌÍ1ðÁ ˆ®&p´Â{¬£¾xyè8||ÙÇK;´ "€2hWˆîmH!H„)È?>ªDÊ/>L¤åyËÔNð¦LÜh‚õ] ÇL×€YRø@ÁàsýøøqéLó,ÒGÀ¨>ð]盜ŒIU}õã]¢Ä·¡<„ÁÞ»ôÉâBß~ß…–±X¤ÁÌœý @N2?äÁwƒ)"éChC„ïßr¾“ŒTBŠ0¢ÜPÂùeµd …òéÄ…¾*;ßô¸"Ä7åïßÁl }cî×|\ùöâz  F0(ÎH¦:q,[[8žM dèÿd Ò?É’H‹F©Â¢ŸÎ3Cßžå@Ø@€ÏDRò)#~VH¸° gR^I„w'ƒjà aÚ‚ }þäóùIв ýmú¾`’Kxñ^äþŠ¢zÞ˜Ügçʽ‚ǼžSôð Cbpa3™'Y"nlØk^déˆ šOžüX3$ð0ApSÁJ#°r͆IFù€Íf?e†#í,㾈ñú¡”RyÁÎs£bÆ Ò?.™ÃÈï'Fàè$gz·…ò|é8UÞѼãé<ÒéäýÇ7!t"yï`¢Kg:˜£|óŒ“Á ‚RÁ{”c` h‘}F>ãßp¼ª.!—±Àd=ô™âm¥#޹u:á; –ùùdûÆ%¿-ùäYœ4(,üÒ äA:¡¿ÿî§Kö…a;×<âØ¡¤ÆÉ‘Lu"ßlmÉUnq׬YC ‹Vö+1=J%S ¤¢,'…~+ƒ­é„>W&]*™þÿÛ;8©ªëŸ¥-½#EDPì ¢bWì½`EEbû›`MÔDýKŒ=»KLÍß[4šX°¢ðW°!E$ Òë² »ìûßï]îøff‡í;ó;†÷æ•ûîý¾Ùݹçó;´“é3ŸÊáÜFº÷´î çdCeýâ|ŒÉÈ“Yñ»8esp.ŽîQ™¾Ÿ‡ãÓ-™o¦sЦk—Ÿÿlÿ¤rФëK¦í9︃'ĉ6¯0ûâËä"ˆ*H÷“ÂxÉëü¢%¢"•˜I ^ÇTžcž¢ò¥„/"|¹ |/äù…kà™ä)O‘ùOþÐ…ŒäÄdx:ƒwŸsâxˆÜHgxÛùR“α‘î¼F¿½Ìå‚-çœïU8)~èÜÊ®’E÷4œ˜%]²«ž‰žkòÝÈ›ÃÛ?|øpu‘é):¿8²1> „ÖñÔ‡spZðË•/¼äžâ¨àgƒ%Ÿ ¢ø¢‘}±éþ`±úCN,R—âû‚ø?[5iô+qBÛD$-Á¤>?ODr¹>ËDgÅCñ©–8 ñÃa Cœ•ÁÒ“ßüÑæ RðfãMf2‘é•Êxò€Ó“rb|9®T-¢L2ý>MÕom\"Àï°ð¢>ÆE”-ˆæ" Ç%[ÐÛÁs‘8¬qpò»‘ã‰å÷^p˜>ÃÇ5ߨÎïÆNÇ:¿‰FdljÇñù`°c¼<„ bèU7ßµ˜\$O1ù›˜Êø[E„c¶çSµ¡m"P“Hà ˆï‰<@©ªñP)•ó‰ï»é¾Wð=6D¿Võº¹vóK¢¤’ŠåÚ8ÃxòÆqÌ2<‰ˆoK·Ž—Ïmº‰ZºóRmÏäNõÃKôµ²þò‡W²1©a"L¯Tíó4%—x»•õ%~l£^/ž³.šÂM¾ç1[æR‡ÈªjÒÂ-×T8+`¹sX`M𛵩ZxVEÿEˉ,‘A8ˆ¾ "†4¾`VǘpvŠá À˜L“«Ç5ù"J®*_Nù£ÂuùŒ3…/l|¦p’‘‘ʤ}¾Ø’Æ—6<1a’ŽÖ ãã 1Çñ1œ4<$zK~ŸêZ©¶á@ õçLrZVüI Ç‘²Ej ‘G|Y'ì0[‹ µ}„ã Xºqâ¤$mŒWrŠ¡péîAh—eªT-~Æë+U G0“%™ä+»©„“늿·ø}ýØc©"8%øýAˈP~Œ(R"ˆxã‹.W˜|ÆÌïgœ‘8)ø]Ïßë8‡ÔT¾ð@eÔ¨Q>B“<è|˜P“Ëàzu¿wáo^¼-þ&¤3þÖ’n)†B€èT¾›V×Ðp‰ë¸„öø.”ΈH‰(û@MÜ‹ZkøkM~ë·‡d抟3šÔ¤ŸBÍÏ _NãÇᓼGé<édò·tã )Z¤Zñäh.œ:0Ítâm‡T-î ‘/hu‚Oy‰_ëü~!òL/1ȧϓù†h8§ƒx0©#ü.k_ ËCä¿ÏIÄñÈ,ÛÞ¹¨O" " Ÿ@^F\4þÛ–Ýjâ AvWÊ‘£ÚmmoÏd;̵C·YêfÄ. ¤¼4»ÁEî¸5‹“Ã9=Z9¡ŸÂ®î¼ìR82]€ 3‘¼R…Α¶7Ââ¢*Â6rFImàIYÜáÀ‰IcÀ›R8áOœ(| F?gF°ä´"œ<­#:9ÊgF*ñ1Ú"úW°ø{,™R²p>Ë”–…“ ÞjÏD[iB>&O-“ÈŒø9ñý„,2¦ä'™Æ™)E+Ó=×ÍÛT­@KŒÒi…“âi¡q"þ–¤Ó"¢„h:^Dgàôàw=‘2¨+r\Ôi]§Qø¾d{òÍ-íÐ_<åJʸ´…™qÑΕeî?_¸ 4/ŒÔ‘V.4ÁNœðãŽ×Uì«âÿÕMÓ!í Éš't‰h‰ýöÛ/eïæ•1¡ç•Ê*KuNU¶eJËŠ·‡¨P¶ÂBá¼Ê„Ú8.Ó83¥heº´[ÝÏmÈD@r—¿{Si…Ç5xâ:D™ôH‡Á!KdNiÄÎI÷£¿k’‘ê’,*Úú§¾4|hšÄ#K~Ó÷ˆ+™46h¿¥39.Ò‘Ñöü&ж¿Ù^®,æ€ë;üÙ×D”»GNp3ÖÖfÅß¹×Üõ—«fæ¹ìs³~ìf¦®œj«î®ôLx¹÷¬“†Òʽªa¡ŒB>É"®Ó,Šòè_$bL¼SY&ñ±TÇ7äm™„Úriœ ù¨o" ? ZŒÔ1tƒHK¥eŽN§C”I(¹l;‘w8g‚#uÍʵ¶ü?«mù„fvLÏ ìÑ+_°±‹þ†«¥T‰@®8.BµÀ*AÐI"Ð ¸0èuÉû½#”ûÔSOMÝÇ .‰@ %åôäJ¶zÙ”»\áð»]5‘±N”3~åÓœ*xÓÌuÌ㇯·¾rškûNWôÝ D&^ó]úɲŠÃzlvðë²ÞÄDç½é®~=¯–ë–UíÏzë¤&@å›I‘‰@>˜9s¦¯ÆUßâœ0Gó†rï”Eço "ÉH D‹#¤âhÀñŒ2ú<¨óSâ“t·ââbïðxöÙgýmDLJô5tƒ¨x.Úl'¢TôêÚ–~SbŸþižsV”Ø2ç°(YRñ0¡I³k׫ж8´£ ¼ÄE9ÊD@D@rÀô´8/d"oøB×wHŒgÀÎ7šm¥‹¾¸ß¥„¸(ŒRçTˆ\Ö¼]ÕœO„Ç@×n²•¯®pd¤r”Ä]â´5Æ]àœ*îø¸5kSáÄè}¼ÙnÎñ’ÎÖ:§KY‘+1Ò¹BÛ#ÝqÚ." "Р ‚ŒÀ0"¿X:-#ö¥Ó!ʤ„¦Eª²í0ÏŸïìi Ðl„ƒK‹ÊmÅÜÕ¶ò»5¾PW߃R§rþä®^VfÝvhcýìlí7+´›µ´¶=[xYª4]©÷ÍôûÛ·–ÚgOÍ·çö°Íöm_ï}RD@D ±ØÀqA¾"*õ2ÈG8n¹å–é‡ÞÌ}ÙØþWfÛüÌlúÃfŸ;gF±‹’@Ç¢6¬I¡KéSy˽Ž2;ÍE‚”­pŽB„¯°^Y³_tUTÎpN §çÑÜ¥´tz-\ÚG!/·Þý ³~çVÞ! ”Oȉ á sM”·N7LJ?ÿüóëíæÉ7¥§ò“Ÿ¬W:w½ƒbo(;‰(îäÉ“m̘1~ÏG}ä£[&L˜à…z¿¥•‚jÛÈ7mÓ¦MV“Ð侪ÌSz"(­ŒÎNÜxÚæ™gZÿþÎy[‰qï&Nœh÷ÜsO%GšU§Ï•6ÞèÞÝ¥:«Lˈc2éeÒJ\&Ú„2ªéì®»îÚàg‰ ͵•sKmå÷kÜr­^Q5A;Ýwnc™¶li‡ßáotºÎÔÓöÕË×Ú”çÚçO/°¢y¥Ög¿ÖªË_½ë©wº¬ˆ€4.üö$Oýé§Ÿn\£PoE ® ‚±õH³­.6ûæqWMdR]÷ õõš¹È¶¼¶H½?ÝÖC̆¼éœ‹Ö½œ&‡_gé hvd²oŸ2ûä—…î©‘¼p|°ì:Èlçü‰@=àé0Uv{¯MûüóÏmìØ±vÁ.jÍš5Ë®¸â _¾–¶•“ÁÑ£G{çǾð vÚi§ùê7´STTä·¾ÏÓvöÕ¦¡‰óØc­WV3ÛëQ©§†#fܸq‰ÂT±xâ‰'|I`K• =RY‰”†l¬:}ΦýªƒÔY¯í¬Ë6îoH-X&-£L:DUéÊþ{d·Ü×V-(µ¢ù¥~Y¶¦Üv¿¨gÚæ¨”µèëbkÛ£…:`ÙÎEK´íŲК:çyØ’%ö¹‹®˜úÊb#e›ãºÚ§u³v›¶ÈÑi" "P?6p\ÔO7tUh¤ š›m1¢‘v>Öm¢*ªãXè4Àl»Ë“cqEYXœ«f¹ÇžŸV¼§Tl¦ög9géW¿wNŽN©_Teé´[¬ÃZmŒ6EØi%&±”w%ï~®«T0mÚ4_¹€ý‹-ò†øDvñâÅ~Һ馛ú¡sNröã•aÊËË}õBÔyBÌ„89 žÈó”áÁ¥K—Ún»í–ˆ( ü§ÒL¬I#+.<[VVf¼ˆ$À˜P£#JêvêÔÉâez9†¨œ Œ-´µ|ùrßWÆDX=Æ5)M¹Í6Ûøê%%%6räH4h1) ¡÷„üïºë®>ê"8.ÂØáLˆÀñRM¢OŸ> ½Þ“@_a[ZZê׉h`\Ûo¿½5mÚÔpºp¿(L߈Áˆ ¡Ÿ°I®â@å"ΣÌp²áPˆ³?Çá¹öÚkýá\çã?ö×å3Ò÷Î=÷Ü„“¦*}NÅ› Ι3Çq¢ 1`€û}Vƒ¶dº›ÄþuMyi¡•¯‰ìÐßmQkŽ‹›o¾9mÏI÷¨®•®*·çÎüÊŠ®±²b—ÿ°Îš6±ÖÝš[ûÞ…aSÊeaǦvìÃ[§Ü—+‹•Ù³§éÓXö¼´·m}lgkÖªI® Oãú#àþPËD@D ~ ,x?Š&\EžEïœE¯EÿÜ9Šžß,Šžnëö]ž¹3G»s¬8÷ƒáQôñÏ¢hò¨(úêÎ(šñ§(Z21óùÚ[%n=ðÀYŸë&Ò‘K ˆÜäQèÈ9)¢Ë.»,rOaý{7ŽÜÄ9r!æ‘sDn²œhûC‰<ðÀȉ F‡~x䜑˽\>ä"üqn2 <Ø·Åùî ³_wé ѧŸ~ê×§N¹T¿¾ÿþû'úâ„ #7÷íп}öÙ'r÷Äu\5žD_.¼ð¨[·n‰÷nò]rÉ%þ½s2DÎ ‘ØV\Z‡oÏMžý¦ÇÜ÷ŸqÀâ°Ã‹œe=NÙ>rQ"~ÿk¯½šJ,³'rå#ç°ˆ;|7ýayÍ5×øc݄շá‰s£&¢O÷€ñ»j¾¡?´ë þ\Ú»õÖ[#礉Î9翾ÃȉB&Ú½úê«ý>Úà~öë×/:ï<÷síÌE¡DÎ!“8–9ÇD7Ì @úkº(È9PÆ}ÔQGE\ÓU×`S¥æ~œ.]"å±åk£è›7—F/þhJôÇÝ>Ž4Á/ÞcBôÕs SžSW§½º8š2°xç`°?ü0m߈t Ú‚'îÎQá+(¸ ®?ž~NŸ>ÝœƒÂÎ>ûlß–s.øˆç8ñÑ ¡aú»Ë..*h1R.‰‚pN¯pÆgøèÚýÑ~äÇvýõ×ûhçt°n¸Áî¸ãmÂõIm¹ï¾û|«D6$zø`9‘|nò{¸ýþ÷¿÷:7Þxc"}cÞ¼y>’$¤ŠpÌ“O>iÎabn²ï¯CZ ×!š‚sѳpNaòÓŸþÔ[0Ò\‚ÎQ”g^±b…H!2Ä9E|• *œ¹o@¾Êüa–lÙö9o´D0¢YˆV8묳’/³QïW/#d¡M½ÀV¹¨„‚¦©kËðs8¡&†îAu,r’%KËü«ØiFøõ°\Zj{_¾YF¡Ê÷nžeÍ[6õZ ­:7÷ËÎý[ùeë.ͽfA†]FTèiTg ¹~n×íZçú5>¨sr\Ô9r]PD Æ t?Ä©º¹WU­M_³.{UTŠÁÙ±ò'tºÜ9=Ü:ïq|dr\|u»«6óÀ:ÇΧ3‚1W–›íReLß;ªÇ0S õ(Çmذa†ScÒMŠ„‹’ðï÷ØcŸÚA Ç¡‡ê8.ž{î9_)á”SN11á4d |u„#Fø’8/ØÆ$§‚‹Îðí!^É$;Qî‘t „!]T€×•Ç^|ñʼnô Eà(Ÿ}ö™ïûI'óK®7ÒP~þóŸûM”Äñ‚ãØcõÛpÈ0I?ᄼ£ˆTâ i ûó²1Ú<æ˜c¼Ó‚ãå*kÄáR™m±Å‰>ÃG¬û9'HÜžzê)ŸVƒÓ‡´ÒUHÁÉB z8cHiÁ¡sÛm·ÅO7ÒXâUËh禛nò\Ñ¿ µçþçi7¤É 2ħô¬×{“mŸ³á}òÉ'{gKò5²}¿xj±«±À¦þs‘w¸à\À¢µ‹ŠwÿÇÅ(I·ÀÙQ²¼ÌWË`}ó:X“æéµž8l’¹(‡D“8C ;8GDÇæÖ²S3ŸÂѼmzÏùoÕl*L¢#y°RîPß¼¾ÔÿºÞâ°Ny0b QD@9.νPOD@ê‹â¤¼ªjD‹”»§¨8;JW¸K÷*qO‰Y ’Éq1y”«Ps‹+©ëòÃqz ²_ö¿Ð¬÷‰é{·Ò]§d¾;Çé4[÷âü& éO¬û=q= 4!\˜~¢8xÊŽñä{øðá~ÒÏÓw&ýDi¸T»ÿþûý‹ 9¥Ñ{¸îºë|äÕ;‚¡éÉâ“r¢p0‹ï#êËTú1œÇm &àÁˆ(@3Â¥nøI;Ú‘qëÝ»wü­_Gëé‘|¼K±‡~ØG=5‚NGÜzôèaèM¤²d‘RÆ,hwàtI6úNDÉñÇŸØ…. ÷ލ"C‚Ä#QxÏxеHeèb`èZ Ÿ—TãØ˜>Ó^2¿8o4A6Öš4³¥Ø‹÷O±y“м#ÛLÆç{êK‹ìëy‡ÅÚÒõS8!ÎøÇŽÖ¦Gz'æÁ7õs¿*šX+ç¤hÙ±™wZXz?G¦îh_–¨€òåßÚ”çÜ}sUP¶?µ›Éq‘%<&" 5D@Ž‹©fD@ò˜@uS]¶î">Ü„›r¶Þñá–aeÓJ_ßëÄMïÞð4iZáÈØåV³þm¸?l™ûŠÙâOܱ®úƒáüpë8Bšº%Ujp­c‚›xâ‰FÔÃC=ä'ÄDS`”`d’Iô¤.ž@ê©#ˆH›1cFXM¹D 28(HW ™̾`ï¿ÿ¾_ïû²Y".yÑEyç Ç3grOjGžDŒ’Hd ŽÒ+’'ÞD31‚óç B¢ÁHɘ2eŠá˜#"Šá %ná˜ø¶TëÂJ'Á(ÿêô&¼ãg Q"NÃ歷+)%ÙŽŒq„¨¸`}ûöõËøÙöycxÇÛO·N”Ä7/¶›wü‡}óG÷y.(ò‡Væ´à Èù‚ZunቒhÙÁ9ÚW8 Yoç~f+ùÙt/ç””Õ Ù,·/žvb³ï-3Òh¶?µ«m{RWkÝ5½c©N:¦‹ˆ€ˆ@HK˜‡04d¨íÜSõÞ'¸Ù™{¿Õ%fÛ_i¶ó îѳsFìù¨›é™¹[n2;ñ?fÇ|ivÄÿ¹Ò¶cÌü‡Ë?xÂl×ß™u«D?dñWÖ÷1³/œƒcÂåf 3{û8—ø°{Ôï*³þ–ùúµ°—”R)Hçà‰>¥?1*‰2‚3”"6œ@§¯NBÚƒ~B¨R‘®{´ÆhjŒ¨Ž¯¿þÚ;Hî¾ûn¯it&¨BJ04HGÈd8U˜Ð­Àu¨JÂõ‰òxùå—í裶W^q¤$cÒÍ8Ðþàš8;x‘ÎAŸCJ m’Rƒƒ‡4”;ï¼Ó·4tèÐDT Ûˆ˜ ¤jpb$].å["cpÑ®¯ô×Ek„ )8p2áta<áãljvÙ‘Œ—6qLÑÖƒ>h¤-lÛŠ÷ycxgÓ>"zìWh/ÿˆu5°Lé¡]".Z´kb;œÞÍúÙÙznoÝvlí+P¶¯ÜiÚѲö ¼0|нò“iVZ¼Ö¹¥ŸñòŽ¶Û…=å´¨}ôº‚ˆ€¤$ ˆ‹”X´QD@¦­Ýc\^UìóW›ñŠ[y‰‹úpO’ËVºÈ‹Žñ=U^O~BÎûämñƉ=z´`"Š¡€sbß}÷õe;)ÅùÛßþÖ C¢.C(Éàf°T×AÈ’r 8>pŒ Í ½Ò;ˆN šgEhƒ”¢ ÐfÀˆ Á!öE8&´–!Ý' úˆnâtpTü!hz +…hÿÆýwÕUWyKʈ†r—¤Í<úè£vÐAùÃØN„N·—«¶âõ;8€ˆ®‰Cf¿ýöóŒB_Y&_Ó7ºî?8YˆùÕ¯~åC8D0ÒJ‚FïIÛá>ÐW"(8à€õ˜dº‘#ˆ£ž~úé>ª†cѱÑñ~Æ×¹n²ÅûŒ#%ïÊÚJn›÷­6ibo/xÆn¿äJÛ}×]|ªOç¿}g©¹Jþ”&N˜3UF\Ÿ"UÛÚÖ0ì:¢‡µïShûVñÖ0º«^ˆ€ˆ@Î(pÞÿÌ ™9@¨ ¢pðô¿6ìƒ>ðÂT âHÜÐI@;‚§ôñÉ0ÒHƒ`âÞ¹sg/IšEˆØ  &ÂDs”––º ˆKÆõ í±Çó)¤£$_;Þê¬»Ò¨ÆØ¸vHYÉÔº8'ˆFAP4>nÎcìDF©€Ó…4’¸!Á˜CJF|_eëDNÀ38\éXŸ‚fΟ¸ÁŒ”HáøøþÊÖKJJ|T ÷%Õ8+;?ìOîóÆòí¤Z¢aÂ=#u Ý•¸­^ºÖf[n³Ç:G†K1Xí*€4sùN¨“o\m»·°3þ¹cü­‹€ˆ€ˆ€d&0]™i¯ˆ€ˆ@= ª‚ˆ©©¶ÑMžžó”Cç¡2 Ǧ:ލ^µeD‹ÄÅD+» TñHgŒ=SJQ$U5Òrâ†)¯TFº¯ªQÉB£Ui+¹ÏË»*×äœÂŽMmËÃ;ùï‰À˜=v…Ízw™‹ÌXéSØ.«?ó&Ù’éÅ^¯¢þz¡+‹€ˆ€l 9.6†–ލèJ m@)ÒªZÓ¦M}™Q42âÆž’¬LôSûª3ÉOÕ¦¶å/Îý[¯ÏÙÄÖ–Döý§.ýJV爄ùúåE¾2È’oŠ­û€¶r\Ôù]ÐE@D ê丨:;)" "PK>ýôÓj·Ì“û±cÇnÐú¤¡¤³·ß~;Ý®ŒÛÑg7nœ×SÈx`5v‰T†6ÄÞ{ïm?ýéO}ªKrÄAò9\p 2ÄN;í´ä]Ä5ï½÷^9räûÜKqm°]ËÔš¶,°Ú¬ ‚N Ÿ{t=’ ±Ùl?Éç6æ÷ß_a_¹2¦3Ç,ued ¬ÿí úZ—m×O¥jÌcTßE@D Èq‘wYc¨uèO¤r”Ôä…©Bòꫯz!P4'âFZ b¢…RÁ¤2Ã9‘.UfáÂ…öî»ïúI0:ÁxàŸ®‚ƒ«NJHhSËš#@Å4PRÙÆ|6Rß·½qÕ76ãµ%>ºbß«7³-íìªK§Ž´jŒãSŸE@D ŸÈq‘Ow[c!t¥ãé”@erFšÇÇl›o¾¹¾DÔò“O>±^½zyAEÄdÒ'FyPD%7ÝtS/(É18!ˆZ@è2~Ù³g/„AÂdB¥qC’>¢K1~üx£ªÈÖ[oí¡¬(åCi‘QÚ@Óªçq}ú†'¥Syñ$=بQ£|åð>,?•KB¶ÓÊ‹26˜¤3PJ6~LïÞ½}ÔE8‡J%Ç{¬]wÝu~â¦p;Q`ƒ°&}OÇ ´WYß&L˜àï ¥hSMÈ­Šh¸~.,q2qB50&>cÜSÄ_?üðC4hPâ³AY\4?âªᾅÔ*X9ö‹ñÙ¥Ômß¾}}ŸvíÚUIì5ô±¶—;ën»_ÔÓ:öûág§¶¯©öE@D@j‡@EññÚi[­Š€ˆ€ˆ@À¹@éÏ­¶ÚÊ˜ÔÆíÆoôÎ*™¤á˜øñ줇]@©N&zóÈ#$N§Š‘TÞ D)ŽˆO<ÑO™¨G eA¥¤Ô*BJ‹^qʼnvÂÊ%—\âÓ6¨àqðÁÕ7(IнòÊ+‰R¡ ðÇí²Ë.ÞÂþ7ß|Ó;<ˆxÀCŸ>}üzeÿ}ôÑG~ÜL:±'žx¿?ðÀýdóð÷eË–mÐÌ;ï¼ãû„3§,³±3Î8ÃN>ùäÄ¡D„0©}òÉ'-NÈÔ·I“&ùv(§ kÄXqò$“ê‹/¾Øw>Ú5×\ãïW¸oT9 vÇwevqhÀô(~&øl}ôÑvæ™g†C½ó‰Ÿî ΉsÏ=׿øì┺õÖ[ý±TÁ¡š e‰ùL¿þúë‰6âJ·[ËiÑoŒú$" U ÇE éº#@ÁK/½äK˜2ðÁý¤ çE²1)ûùÏnóçÏ÷ú ¤60f²Îd롇2¢˜?óÌ3‰Ó‰R@ï§ú×^{­/óÊ9Lèq4}ÁSkÊ¿í@)Öûï¿ßÐ HgLòî»ï>+..öR¨’òâ‹/&'‚h‹©S§z‡IЮ âgHˆ|ÀÙ€6AÜ®ºê*6lXâõ‹_ü"¾Û¯OŸ>Ý;KвÀYC&Nœh7ÜpÃÇþò—¿ôD\B‚"£0‚7öÜsÏùH‹ ›‘ŽAe}ƒ3"î‘D§pß“ f“'OöB®T\ážÀ4ŒhLèYPúf”Ž‘6Dó"zØÎ9çØo¼‘`õ÷¿ÿÝGáÌà3‹ã‰Ï*Ÿ]¸óy‹;E`ν¦¬p}Xñ¢2›ÛÞ{ï½äÃsêýË/¿ìmü,ýÃçžÏnÜHåÀY—\^–Ï?Á^xÁþ¿ÿû¿vÜqÇù芧žzÊO[8ºpñ³‡¶J°›nºÉŽ?þx¿=l«íåÚ5‘Íø÷{õÒéöä‘“mÂCs­yë&V^Õö¥Õ¾ˆ€ˆ@ ЬôA] Üyç>mƒ‰4ël„ ãÇ4kÖÌO蘼ahQ„”&æ¤`„ô#H A/‡eX‰T lž4&m8RHéˆ?¹Î”‘,|I FˆL ?„Ücâ™m”çÜ~ûí)5.B{,y"1‰'q#b.¤×c²š¡'rä‘Gúè•SN9ÅÆŒãŸÖ‡sÓ1@{K×7ø“¶Ãgà׿þµ¾=z´wª„¶ãKÒpZu€³ ‡3fÄË©u]¤ÊÄ?|>ㆠçX²áÜ!ˆ¨#>´¢øÜ ðŠc"ºq—vÚ)ìªõåüÉE6å…E6ãõ%VV\n½÷joÝØ×6? £5mQPë××D@D@9.Æ}P/D@D@’üä'?ñÑ ùË_|déÇ·Áƒ'ùÃÛøäꇭ®Qí &nœƒÓ‚§Êˆv2ÙÅQÁäš%‘?ü°OWˆ‡ËÓ*Ç2 Leˆ ¡Lƒ±?8/ˆ©!au—8q˜ÔRi"8oH@´1nAX”ðÿ0–äqÆO^çé=‘%<Ù‡!OcÀd:Sß^{í5ï€@ aU> 80‚îGh?,q*ýùÏöe`Y'Êí‹\6œFp"ꆨŒ(•£Ž:*«a­‚î ÑE8ÎHIÂø ðY Ñl{þùçm»í¶ó¢±¼¯KÃi±àóU¶û…=mKWÊ´Ug}u­Kþº–ˆ€4Ji(wBýXé Ι3ÇOŠIó úôŒ[n¹Å?^ï„|Ä›<Ó&ÓÞ{ï½> È¢0xâRMþð‡?øÜô3ЧHg8 Ð r€(¢7E Fªz ¤WЇcŽ9Æï¢¬*aÿè@`ýë_ý¤Ý¿Ùˆÿh”®C4©\Ÿt›¸í±ÇÞ)ƒ^©ô%®ÿ?6Õ:   2tèÐõªŸ¤cPYߘLÃ} ÒW˜¤“ž“l°ã¾à"RæÂ /ôçI&âÉçäÊ{D|~иÀAÄÏi?ÙÎ:>ïTˆáóOÊF»á3Àg—ÏÇ&;¼²½NuÛçÊÍ줧¶µÏÜDN‹êÂÔù" "И ¸ðP™ˆ€ˆ€l47™ŒÜä}£Ï«Î .Â!ri‘Ë¿\TÀzM]~ùå‘«žØæ4"÷ä8ñÞ‰cFnr–xï"*"W1!ré‘Ë÷OlÿÍo~¹Ô‘Èécø—›dG‹9ÌÈEhT¹§Ô‘Ó¡ˆœ>…ßG¿œ–€_wQ‘s¼øö9Ö•ŒÜÄÒïsO¯ýùN7Ã/]JKä&ÿ‘ Ï÷ûݤÑowáûþýE]9qJ¿îž°û}.:¿OþÏ ˆúýÎÉãwq}àå&ù‘õû\yÖDŸþýïGÎ9ãqOï#瀈\”Fró‘›èFNSaƒí#FŒðç:ÓľL 8(Sß\úJäÄ9=k®éR""§s‘h;¬ÀØ9 ¢À*l¯í%|á™ü¬íë&·ïDU}?è‹«`9]—ˆ{Å?¼Oþl°Ï.纨ÞzsÑA‘ÓUI´ËςӴðûœcËow»uGWo±jQi4g|Åç±z-él'0­€º?Z2Ø(¤ )ð_ÿõ_u^MŒ° /žWÕ±çIýùçŸï+‰ÄÛáI3)h„4‹°1O^wm@ÉS*†ÄhŽ¢¢"MAe 4B_ Á'•AMÒH¯ T¿¶lùò徢ש)©®E: cF“1„=yJOÓ`™„c2õh‘ñãÇ{m“tý&Öº¶™3gz–¤Ô 8°®/¿Þõ(LŠB¨DÕ”Q¡‡h'>»Îñ–²Yöó¹IeÜ—T0%KËlæ›KmºÚü~ÂJkÕ¥¹ùÊŽ©šÐ6¦+Q0 ÐRD@D Ñ ¬=„¶W¥Ó¤ˆüóŸÿôѰA¤& šÊpØ]ˆTûãÛÍ$d˜,^?·¦Ö©¾²çž{VÚ©; '–¤vÜu×])¯‘‰A¦¾q^&=.VN‹”ƒ¬Çh™ÄEikª+”£å•ÉpØ¡’ÊpZ "‹­^ºÖ¾³Ôf¼¶Äæ~´Âš8QÍ>ûv°ƒoîç—©Î×6ˆã"NCë" " yA DPâ´:Ñ;ì°CÊè—†‘öI4NÊ«f+$Úoh}P"±Ç¸eb?Në—Àµ×^›Uç_9Í–Ì(¶Íöéà*‚ô³Í÷ë`M[ª"HVðtˆ€ˆ€' T}D@D@ªD >SEªÔa$5D !¥ŠÔÐjµ™eß®¶6Ý›[³–Ò„¯UÐj\D@r—€REr÷Þjd" " " "P‹œJÚüÉEV¾Ö¬Ç®mÒ^¨Ãæu¯C’¶3Ú!" "Ð( (U¤QÞ6uZD@D@D@êž@iQ¹Í·Ü¾}g™ýç½åV¼¤ÔúÑ9£ã¢î{©+Š€ˆ€ä9.ríŽj<" " " "PƒJW•ÛW_h³Þ_fߺÒ"aÑ}ç6¶ÓÙ›Øæûw°ŽýZÖàÕÔ”ˆ€ˆ€lH@2Ñ, qAÙP™ä+†Pµ.د]ÙÓ'~n=woë6{ïÝÞ ;4­‹Kë" " "ér\èƒ " "P%/¾ø¢­^½ºJçê$ÈC† ±N:5ú¡¬-‰|‰Òig6ú{©ˆ€ˆ@Žã"Go¬†%" " " ) ”•”ÛüIEöÝG+mîÇ+lþçEvô[YÝÚ¦<^E@D@D ž ¨ªH=ß]^D@D@D@jÀ¼‰E6óÍ¥6÷“•¶hÊ*+/‹¬Ãf-­çÀ¶¶Ý)ݬSÿVµÞ]@D@D@ªJ@âœU%§óD@D@D@D ‘øîÿV¸j +\TEÛyØ&® H[kÝ­y#齺)" "ï¤q‘ïŸ_D@D@D Ñ(ú¾Ô§z4oÕÄznßhÇ¡Ž‹€ˆ€ˆ@JÉG»D@D@D@D ÁX½|­-ø|•{%–«•Z“¦¶õq]ä¸h0wJ¨iЏ¨i¢jOD@D@D@j˜ÀÂ/WÙsþò­¶ëUhÝvhm›ìÐÆºíØÚºn×ÚšµTIF®æD@D@Ui8÷B=ÈW+ç®±¶=[¤þÚ5‘¡SâeGI”¥¥" " ¹H@Ž‹\¼«“ˆ€ˆ€ˆ@Ã%PZäÊ‘N.²y®$)ËùŸY骵6üí]¬iË‚†ÛqõLD@D@ꇀ4.ꇻ®*" " "oÆÝ=Çf°Ü–L/±¨<²ö›Ú&;µ±Ý/îiÝݲI 9-òí3¡ñŠ€ˆ€dG@±†ÙqÒQ" " " "P=åf½÷no»_Ô˺hc­:ëkXõ€êl|! qÎ|¹Ó§ˆ€ˆ€ˆ@(/‹|…ï'¬´^ƒÚy Š¿ˆü& T‘ü¾ÿ½ˆ€ˆ€ˆÀÆ(/¼&ÅÜVÚÜ +¼NEYI¹µéÖÂÚöj!ÇÅÆÀÔ±" " "%E\d J‡‰€ˆ€ˆ€ä7éÿZbïüæ[+[]î+€ôÚ½õØ­­õܽ­µï]˜ßp4z¨=ª*R{lÕ²ˆ€ˆ€ˆ@.X>{µ}ÿI‘õØ6céÒ\³Æ"" "  €€ à&¨ " " " õD`mIdó&»´—úQ¼¸Ôö½ºO=õD—HC@iÀh³ˆ€ˆ€ˆ@"0R‘Í·Âv½ Gµz…ż‰E6÷ãîµÒ k®--·ö›Ú¦{´«VÛ:YD@D@D v¨WípU«" " " 5@€ˆˆñ÷ϱϞšo­:5¯¶ãâ©c>³’%eÖ¡OK¯M±Ý)Ýü²Í&Ík ·jBD@D@D 6ÈqQTÕ¦ˆ€ˆ€ˆ@µ ¾ñÖu3­hA©Yd>•cÅì5Ö®w‹*·=äÖ-¬Ãæ…Öº«U†¨E@D@D Ž ÈqQÇÀu9ÌJ‹ÊíûæØWÏ.°‚&•;¯…³‚&fß¹mzwI4À±ßê4*Ö¥~ìvaOÛlŸö‰ýÉ+T‘‰€ˆ€ˆ€4.r\4®û¥ÞŠ€ˆ€ˆ@N˜=v¹½íJŽ’Î§ë6çƒÖªss›;ÁiT¸ˆŒESVYùÚÈ:mÑʧ|´î¦H XÉD@D@D —DÎri@‹ˆ€ˆ€ˆ@ã#°fÅZ{Ûl›úÏEÞA‘îëIó6M¬lŽ §QáÊ’öܽõÜ­­µì¤g1ﮫÇ" " "UÉ “¨53Ç,³woøÖV¯\믑ÎiÁNRCN|b;ëº]«ZëhXôx¢aÝõFD@D@ò†é ïß2Ëf¼¾4c”E:‹§­’ã"Eë" " "ã”*’ã7XÃ\"ðÙgŸÙõ×_ŸKCÊÛ±ô\¹ƒm»àPkVÞr£DNŒ³íöÙ&/%Î;î¸ãlذa‰÷ZÈ)ÓÝs ™ˆ€ˆ€4óçÏ·¿ýío¶zõêÆÑaõ2%6kºXë5m^Û¯laëé¶¢p¾­nVä*ž–'ùmåk-*XWY$jbWõK÷úë¯Û¤I“ïµ"" " "{”*’{÷T#œ'ðè£Z—.?”ÄÌùçÑé\µ¨ÔŠ–U,Ýú*·^ì–+篱UóJ­dY3ûÓ=£­Mæ6hР<¢£¡Š€ˆ€ˆ@~ã"?ï»F-" "  ’@‹vMWǾ ²{ꔈ€ˆ€ˆ@=PªH=@×%E@D@D@D@D@D@D@²# ÇEvœt”ˆ€ˆ€ˆ€ˆ€ˆ€ˆ€ˆ@=㢠ë’" " " " " " " ÙÆEvœt”ˆ€ˆ€l4ÇÜÆg÷ÝwßFŸ»1'uÔQEU78¯G¶çž{Ú~ô#kÞ¼¹oêÿø‡=ðÀë5»Ùf›ÙСCíÐCõÛo¾ùf{çwÇ´nÝÚvÙe;ûì³­oß¾‰íÉ+<òˆMœ8Ñî¹çžä]z/" " " Õ& ˆ‹j#T" " "šÀ”)SlìØ±©wÖàÖW^yÅŠ‹‹m‡v°m¶ÙÆæÍ›g#GŽ´ƒ:È–/_î¯4sæL{õÕWm÷Ýw÷¯­·ÞÚ÷íð÷7ß|Ó3aÂûôÓO};´Õ¢E »ÿþûmàÀÇAyZ®/Ú  ˆ‹Ú ª6E@D@&ÔsçÎ5" fÍše+W®´vÚÉÊËËí‹/¾0öï¼óÎ>*ýmÛ¶µÎ;'ú>{öl¿­cÇŽ~ûpN›6mÇÑî¤I“¼Ó U«V¶`ÁÛ|óÍûYÁ@TQ ãÇ·nݺÎlÍš5¶dÉëÞ½»}õÕW¶téRÛm·Ý¼ãÀàþãºMš4ñ}¥’’+,,ôÛ8æ˜cޱ_üâápû÷¿ÿm8%î¼óN»îºëÛo¸á†Ä:Î /¼ð‚|ðÁ~{Ÿ>}ìöÛoOÃXl]t‘cii©}÷Ýw>cêÔ©Ö®];;÷Üsí´ÓNóÎ œ&½zõJô±qü¦›nêû^VVæÙ³0`€5mÚÔ_‹ñ3ÆM6ÙÄ>üðCÛ{ï½­   Ñ­ˆ€ˆ€ˆ€ä/E\äï½×ÈE@D ç =Я_?Ÿ ±Å[x'ÅþûïoGq„w`IpÀ“ñ3Î8ÃN>ùä&ì¤G<ùä“~ÂÎ:Çî³Ï>¶í¶Ûz“ZÁd¿ýöóŽŽ!Z!Ù.¹ä?''R90"&ØÎ¹Læ™´“¢ã$XÏž=íg?û™K„wß}7ìÞ`yØa‡ù~‘®’Î-ZäÇžª¿á,Ǽ}öÙg>ãË/¿ôLO=õT?†×_Ýþû¿ÿÛ3ýæ›oü¾Ñ£G‡Óí‰'ž°þýû{gÎ×_íïc$•¥wïÞ>•†ƒï¸ãŸvÜqGχ‡LD@D@D@ Ç…>" " 9O }ûö6gÎ}ÀdŸ'û8pJ|ðÁ>`ذaÞ 1þ|Ïã¹çžóÑ Düö·¿õQË–-óçñàƒúIÿðáÃm×]w5&í¤†qΘô£wAZÅ£>ê_/¾øbâp¢ˆ¶ ’§Â¯~õ«Ä¾K/½4¡EA4ÇW\±ATGâàu+8H¾ýö[#º!Ø)§œb¼Ðµà…åôÓO»S.C4Æ´iÓû'Ožl0:á„Û¶ß~{ŸVòÌ3Ï$¶ýõ¯5œ(DaÀŠˆ82hÐ ï0 ú8Gˆ4ùøã}4I¢­ˆ€ˆ€ˆ€ä59.òúökð" "®¾új?q>úè£ý€/¸àŸºÞãt ‚€´…gŸ}Öó·¿ýÍGtéÒŶÜrKûè£ìÖ[oõ‘8;~÷»ßÙ'Ÿ|â?þñ}tÇwÞyi¡M@d)GÈÛo¿8žÈ&öD(°ÿ­·ÞJì5jTÂIÀ~úBH$žN±¤§ð"EÇΖ?þñ™šñ&@ß‚ÝtÓM>ƒôš¸sÎ9FNœ@D‡0ÒRàvä‘GÚªU«¼ó‡FpøÐi'=ôw^ÄÛÔºˆ€ˆ€ˆ@~ÆE~ß^D@ò‚iX³fö¶Új+ÿ>h(ðÄ“j¢ˆH3fŒÈà@D@ ñë_ÿÚG_¢3öÚk/ßÿ%k[$v¸q# #´ÁvÒZ‚¡õ@ºJuŒT"p”Ãá·Ë.»Ìî¾ûnc™ÎhÛc=ìûï¿÷ëh…¤23—_~¹I‚öG‡ì¸ãŽóºO¤ÊŸÿüçÄ©¤‹ ×á‰;GiED@D@D ¯ üðM&¯1hð" " ¹L >qÏ4NÒEˆrà©?‘L¸±×^{Í®¹æŸB“m80@ƒÍ˜1#¬n°D¤2QDlÄñýï½÷ÞzûÂyÙ.Iyþùç-îTIu.i4‹/öé3©ö“fBU¢;H‘©Ìºvíj”gÅDšŽ ¢>HÁîºë.ûÏþã_°D”t™ˆ€ˆ€ˆ€¤# ÇE:2Ú." "wŽ=öX£Zȵ×^kC‡µ–-[z<òˆ¡1.:Dg މ€&Qh` M1qâDûÃþ–ut5ˆÞÀ‚eHWá$REh‡4Ò-¨ìÊ+¯L¤±ÞA¦OŸv—¤ePM„> <Šhh\'ƒƒ9†‚ çŸ¾OyA|3D: =Áþ7ÞxÃ÷ãCñé,8s²5ÒE^zé%/Š®F´ " ÷Þ{¯çDõª‘0.2HG@©"éÈh»ˆ€ˆ@Þ8*HA8sĈ‰ñ_uÕUvÖYgùˆæÍ›{Íœh2PµãÌ3Ï´N:ù” t#® ÒQxÏä}äÈ‘>Âão¹å_A„r¤â—l'¥…´•믿Þoç?¤^œtÒIÞ‚€*(èj„ýÁ¹@tÑ"D…Ðú#"¼'Úƒ(*z„m8Â1DcP…GÊ!CÇø•Ø´²‡ %d‰²À‚¡Bz ýÇáƒQ¦öé§ŸNœúèwê?XG ÀåõF¢!" " ‘Lª.\è£j£Ïh=í0iÒ¤õš'ebüøñFYÒ¸¡Ñ@ÄÛI‘À9“!n8ŠŠŠ¼€ª¤G´hÑ‚ã‚ê”e5k–OS i(ñ6raŽŒŸ%:Aw¤ªcÃQtàÚm·ÝVÕ&tžˆ€ˆ€ˆ@Ã&0] û©w" " uD€´ Ò#H A‡!Ù˜`<8y³O¤U:²1ÚI'lÉùÉžÙ´Ù˜Ž©lüi,꫈€ˆ€ˆ@Ýã¢n8ë*" "  œúˆP¢ FCUH ¢’¤r¦243ÑTªD*:Ú&" " "ï”*’ïŸ_D@ºHiD8ÔUG@©"úˆ€ˆ€ˆ@Θ®ª"95@h¼ä¸h¼÷N=œ' ÇEÎßb PD@D@D@D@D@D@/‰s6Þ{§ž‹€ˆ@Þ1b„æíø5ðL›6Í—Cýa‹ÖD@D@D@r€¹vG5ÈaTì:thPCÛXC† ɺíÆ¶­ãE@D@D@Ui÷A½Ø€ªŠlÈD[D@D@D@D@D@D@D@ ‰s6”;¡~ˆ€ˆ€ˆ€ˆ€ˆ€ˆ€ˆ€l@@Ž‹ hƒˆ€ˆ€ˆ€ˆ€ˆ€ˆ€ˆ@C! ÇEC¹ê‡ˆ€ˆ€ˆ€ˆ€ˆ€ˆ€ˆÀþj©¯¨ XIEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1NamedPipeOption__coll__graph.png000644 000765 000024 00000013177 13515046516 030164 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÆmú@psRGB®Îé9IDATxí”E׆/9眳dDPI¢ "‡ QT‚’”>’**ˆ‚€¢(zP¢€DÉI‚äœãüõ” ³³3Ë.ºÙ­{ÎNwWUWÝz«nìžÙxEbÉ"`@üWöÂ"`ÐXÁ°Á"+@±E+vX àjÁš:6à‰'ôåÎ;u_¾›’ñ®]»¦çA#´;ü@¿þú«Œ=Zú÷ï/óæÍ“:H=t5jÔîÝ»ë¾Ãƒ¾ 6̼Æ'/¾ø¢ƒË—/ËòåËeÙ²eréÒ%o9Ã;ýƒñÖ­[åÎ;ÞúXsÂkçn¥AƒyŠ+nöºvíêÉ•+—'oÞ¼¼Jï‰?¾ç­·Þò(wC_S6|øpÏáÇuݘ1c¼}«áI çØ±cž‘#GzR¤HáQÏPô}Ï?ÿ¼GmÝVmHoßiÓ¦õ.\ØÓºuk]ׯ_?Ïc=¦Ï'Nì©T©’î3Q¢DžäÉ“{fΜ©ëfÏž­û¨R¥Š‡vðU´hQÍ –,Y¢ËÔ¦ÔíÛ¶mëÉ”)“>oܸ±'kÖ¬µ¹õµïǦM›ô}ãÇ÷„5†x=ÆeÎJahÜ>üðCÝÝï¿ÿ®1ƒ¤I“ê±¹cx-T¨¾—>”¥òâ£Ýç£D‰pt3Å*‹¡IÔ¦—wÞyGkÄgžyF»J8äÂ… Ò¨Q#™0a‚ð4½jÕª!|êéÓ§ íÕfÐÚxÈ!úµIdÁ‚ÚEÂJP®VkQ%X²{÷n† HX¨}ûöÉùóçu< 6¸ÖĦqŽ9tÝž={´EéÓ§®Ê“'ôìÙS8Bµk×–.]ºèsÆ{ôÑG%I’$úÚ÷£dÉ’º|ÿþýÞâ@cT«VÍ;w,“R$ÞöX‚–-[J… äܹsƒŠ+J‹-´¤áŽ;äÍ7ßÔV WnÑ¢EÚÚz;‰'±N0ØLøàJÃêÍÏRZNx‚^³fM¯;Õ¼ysaÓãRà á24kÖL”†6Ó¤I“„`ZiFÁÿ._¾¼(/Jó ˜cÓ¦M¥H‘"A·¾?üÐVY½ù·mÛæmÏûBÉ’%“‚ в:š*¹VÚÛ»a ¬¹ºråŠ(K¥Ïý?.^¼¨Ý.e)½UÁÆð6ð;Ù¸q£Þäð®,(‹&:u’£G n”?~­|¨G@ „;6Ñ=cɬ²eËæ Á)Y›T©Ré2^HTæ[Ÿ7hÐ@/ü¬Y³„?¢~ýúº Èž=»p9"PÄ ‡’Ò¥KëÍbÉ;·9 uÌ—/Ÿ· A…ŒoϹo=|¯ÜÈ@³RÄøû´1Ñ1˜#T¶lYÓ…LM,¯†À ŠmqF¬ 6x(Mš4R¯^=íRàF!)S¦”ãÇ ®ÈÂ… µ+•X¿~½Í’%‹¨$D÷¾nKˆ uñï¿ÿz‹þ!ãqî[¿bÅŠuÔ¢êÕ« Z=Pö‹`œZ§Nï­CÅ/úÞ-[¶xûذaƒ>7.Wx1övðžÄ:ÁˆÈàN¡eU°«}hîÅu §Oæ뢂imEp_Œ+¦‚[í_“ Ë…01îÓ¨Q£ëRªT)/‹¸9Ä&<Ô­[WבöÅ$>~üñGéÛ·¯>' ¥ Z¨±lÄ1Û·o×îÝäÉ“ul‚•3l æ á+Ê5– 1tèPoø#cõÄO„°D´Íäú·k#>šÌ׿æÜÿÚ·?¥K—N[ o(}úôzöîÝ[zõê¥Ëˆ&Mšh¡!Š_ŽKa´¨n¨>|µ)Ï TVM»*“£7¸oýÞ½{õø¸|hyóÖ)é`w·h™ŠT–I† ¦c’µk×Ê«¯¾ªƒd3.îâ矮ӷ¦Œc°1Ê•+§ùGP@ÃñÇ| æÁ˜bΜ9º[Œ}ÇŠUçnN™©ìO„Òµ‹ò‹=J‹{Ô† u«ò§=¤-U@ªNÅ•™ñ¨ç µ¡½éZ߆¤a§NêQW·õ­3©TõÌÄ£6¥G=ð­÷9}+Ì£´~¨tixÆ åË<‘ÊVy” åQÖËNQICº6VYŒˆh,\¨ùóçëŒT»víBÝŠ¶¯\¹r¨r 2f̨ÿVúËðŒÐÆJô«ž•Ü÷ö`c± ”ö¥Cb•2eÊÜ·ïØÚ Î >=&Áµo–%¢ ]¼xñ€éSÒ»W ¢œzã¾jÙ²˜#²<ºùþx˜H·2Èw¾§M›¦_Ëp+–¯ˆ#@ìBÐÄTï!úïˆÓY©è‡×Žð°"`Ã%+‡áv±ñv J1džŒ˜Ã:Ì‘V¯Þ'+Wî ³­Œ9\|óð*:ƒÔ˜ƒ:ì‘Ò¦­©œ?¿8솱¤–ÃÍäêà¡àû±ÔcõäúO5MzˆWN})|¯µ≮ðà“Œž[ÉÕðø‹í´hÑßê%ÅÕjšñÔ“ðbêõ±}Ê®ŸŸ1\°D3g®WV"¾¶œ[r+¯Áµk7Õ}¶©ïQÜÕ‹ÿ­¾sqï+·³g‡·‚áðÒ/X°U}wüÞw¦oß¾£^yßê0Wvx+ï™37¨¬Û½e 7}ºu§^ûN.À¹sWÕ×kw…øöÛ;weÅŠ=ê7Ÿ®8ÉZœûžªŠóPÄ<?ÿ¼9è sçn Zg+¢+ÑqЦMû3Èk õ•ÛuAï³Ñ€ŒèÇ8àÇŽ]Pß%çÇÎB¿ÜLÙ† ÿ¨_æ8ð^[ýXÁˆ~ŒŽ0gÎ_úÙEÀJU˜0aõuÒ¿‚UÛòhFÀ F4¬ûiÓÖ© ;´µ0íy®AKÎ `ÃÜ÷î=©~ãXøÂ0äQ¿u\ý É¿qkJí1fpõ»R1A̲eËaõÃm¹BÄÿþû_<‘=û½_Œ?žlÞ|Xýb–˜g2Žèê·kãÒÚ´oÿ­”/¿l—¦íÚ¹ZWʵKcs+N¢oÇv-V0\»4–1'°‚á$úvl×"`õKcs+N¢oÇv-V0\»4–1'°‚á$úvl×"`õKcs+N¢oÇv-V0\»4–1'°‚á$úvl×"`õKcs+N¢oÇv-V0\»4–1'°‚á$úvl×"`õKcs+N¢oÇv-V0\»4–1'°‚á$úvl×"`õKcs+N¢oÇv-V0\»4–1'°‚á$úvl×"`õKcs+N¢oÇv-V0\»4–1'°‚á$úvl×"`õKcs+N¢oÇv-V0\»4–1'°‚á$úvl×"`õKcsPÿQiÍš52bÄ'yŠ“c;–BÏ;[¶+qrþNNúí·ß–Š+†`!Ôÿà;|ø°LŸ>]ªV­¢¡½ˆ^$ø¯ÿ“'£wÛ{H–/_. 4Y¨®B †i1hÐ sjX‹@õêÕÎÍÆa±…q+q}ØùDÀ F@Xla\GÀ F\ßvþ|líÂÂE‹ÉŽ;¤K—.ÑÆÝõë×eÀ€’9sféÖ­›Ä‹Ï;ÖäÉ“%~üøÒ²eKoYLŸlÚ´I¦N*Ç×C8P®]»æe#iÒ¤:Y¹reI‘"…üüóϲoß>éܹ³·MdNèìÎîÝ»%yòäR @©_¿¾”)S&\Ý‚ïÝ»wõ½dEG-½{÷–ôéÓ‡ëþèhôÐ[ €Ü¶m[t`ãíóöíÛ²nÝ:½¡.\è-çd×®]zC„(Œá‹ .ÈÖ­[½£nذA._¾,ùòåÓ‰'–Q£FI¯^½t›[·nÉ7¼í#sòÙgŸÉÇ, T¾¹U«Vò /ÈñãÇ¥G2{öìpuýÑGɰaÃt[¡öx<áº7ºEÚbܼySΞ=+™2e’“* Ϥòçϯ5À?ÿü#Ô£A&L('NœdÉ’IêÔ©½ó9uê”.K™2¥.Cë°pôA[Cô‹–Ë•+—$I’DΟ?/Y³f5ÕúxåÊ (+’6mZÝžJú¼té’ÖB‡Ò§P¡B’(Q"}/ ¯\c|¯uõA¿ãÆÓÚ7Mš4¦8Ô‘9;vLyä} "‚“éù8p@2fÌj®ôwðàAÉ’%‹iâX¶lYyýõ×½eß}÷Lš4I˜{íÚµ¥Zµjº.,ÌÌÍÁø@gÍš%-Z´×^{Í4×Ïúöí+_|ñ…T©RER¥J{„‹ ž>}ZræÌ)ƒ_|Á“µÏ!ƒ,XÐk±)g/Åþýû%{öìzz‰ÄI¤cïÞ½Ò¡C)]º´`Ò¡’%K Z à bÅŠi5dÈ- Ÿ~ú©.gs7iÒD:uê¤ïéׯŸ Ø Ÿ|ò‰äÎ[6oÞ,ÿûßÿ„ÂxÁ‚ºóA¿Ö¹sç´€¢éëÔ©#={ö”µk×Jÿþý¥T©R²}ûv¡Ž¾Ñvõ_ý%Ý»w—‘#Gê¹ø^3ôÆoÈ×_-cÇŽ•>}ú˜a½G„·k×®²sçNí°àlΦM›JDpB‰,^¼XÏ>ïܹ#?þ¸à"¡@À¬À2üy p’'O] ¾óæÍÓ}Œ?^ÂÂŒÂâ*]ºtÒ¼yó#¢\Úµk'mÚ´‘•+Wê6Á°ÿþûïeÕªUú~ÜÕŽ;êýôÃ?heðÍ7ßÌÅV¢D :t¨ök¸eËÖW·nݺ!øy‹(s¥ð]yb³˜u4ô´iÓô†f#¢ÝjÖ¬©'ÁÆ…þøã½ÑÑ^ß~û­Þ €M?ø—?ýô“ÞÀ|ð Ý‹væþ@F`ˆ7~ùå-‹ccc A/^¼(_~ù¥®Âú ¤Æ ù_Óˆ{Û¶m+Ä57n4]zð~äȽœ#HŒƒÀ NGÕñ &Ü—|´0škõêÕZ W¯^õ6 Nàƒ¥xê©§ôFÀò`u‰sp[±H5æÊfôúΊ+´K‚[ÂæBãbe|†©`˜…Å÷—qM_æÈœ±t¾ãÃÞÜãd(’Zµjé*ÖL°æ†ž{î9)\¸°v³ÀÁ‰ Š´+e˜0‚0ˆI@|vüÆråÊé “`Sâ"AlÌ<ÖbâĉZ¨¨3Öa(˜_M=~¦/g˜>(7Ÿsê3"Ä|0׸ d‚| íÈ«4ø¾ÄB¾~²iœˆÅ \_BÑà6@EŠñVr¥^yå•1†·q€“`˜aõ¡@|PÎ}X@„‚ðí;¢Øƒs#æ3~¾kÆBá!ŒQAQ&FîÇZ•Xw†à ­_¿^qøùX \Ì?:s挶Hœûšg®}‰Î¾D ÑVÂT‡%dæÿ#–¸Á …Ë5„‰Ç­ÀýA“â;›¬¨ðàÄâgà[“þ„È~‘i2›„` mêôÉ~ÃŒ¹メHÇâÖ‘ôwѰ˜¸R(B,QìÁ—¥jp#†ô]3S®ˆÂ{¢…†Õ¯÷’Ýùꫯ´ `üÓùóçk_mËF#Û@;4šÿšO‰¿ŒnÉ’%Z«°QqIŒ;Ç=ŒK?¸qhµ *è®ð³I=Sìí?^³fÍ´õ1í©GCÂ+›‰XÃÄð‚'4¼âV²ÉöI `)xñ·Á‚9ð !2 ³°ø`<Ü[¬(â.ÖAK·ãaµŒðÒ>öà…p².¾ÄºšûˆU”`/þùÞÙó(³÷cÄH6‚€EPŒh üÞ{ïIãÆõÆ"ۀ˂Æxêðïé‡ÍAÓé›kL7œ Z‹S¼xqÁ_…ØÈôƒæE›µnÝZ—#¤I/âú^—Èwæ†Ì˜‹ÍÆÀÀ Êb™û|Œ2 @œ5sæL]ÕƒW¬,x R.s£=<ÿù矾݄yÎ=ÆòÐ0fÔãƒ:\R²$GÞÿ}Š4Á#yÈçKÁ°gPfdô|ñ$þD¡°Î(5æ5qßõ`®ýË|ÇÈy¨/*áãØ-]º4"ýD¨- ަCøZ’çä«»cê tñg)GC²ùýÓµøÂ»œp3ÉÆD……YX|˜ñNž_Ý‚aÏCÀ`„°«¬MT—Ǩ`àž˜bM îA&D&Â7+cúà©i°W¶hÑ¢¦©=þ?aaU =ŒØ;âJEà¶‹@dæJÅxV*²±÷[b+1²ã¡CÀ ÆC·d–á˜@ hðMžÜ’E ¶#ÀSõ@J0ÈA7lØ0P[[fˆu°×Ùóþ*+åßÀ^[â"6ƈ‹«nç|_¬`Ü"Û ."`#.®ºó}°‚q_ˆlƒ¸ˆÀÿŽýFÛÔF[IEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1OptionalExceptions.html000755 000765 000024 00000034557 13515046515 026457 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::OptionalExceptions Class Reference

MySQL++  3.2.5
mysqlpp::OptionalExceptions Class Reference

Interface allowing a class to have optional exceptions. More...

#include <noexceptions.h>

Inheritance diagram for mysqlpp::OptionalExceptions:

Public Member Functions

 OptionalExceptions (bool e=true)
 Default constructor. More...
 
virtual ~OptionalExceptions ()
 Destroy object.
 
void enable_exceptions () const
 Enable exceptions from the object.
 
void disable_exceptions () const
 Disable exceptions from the object.
 
bool throw_exceptions () const
 Returns true if exceptions are enabled.
 

Protected Member Functions

void set_exceptions (bool e) const
 Sets the exception state to a particular value. More...
 

Friends

class NoExceptions
 Declare NoExceptions to be our friend so it can access our protected functions.
 

Detailed Description

Interface allowing a class to have optional exceptions.

A class derives from this one to acquire a standard interface for disabling exceptions, possibly only temporarily. By default, exceptions are enabled.

Note that all methods are const even though some of them change our internal flag indicating whether exceptions should be thrown. This is justifiable because this is just an interface class, and it changes the behavior of our subclass literally only in exceptional conditions. This Jesuitical interpretation of "const" is required because you may want to disable exceptions on const subclass instances.

If it makes you feel better about this, consider that the real change isn't within the const OptionalExceptions subclass instance. What changes is the code wrapping the method call on that instance that can optionally throw an exception. This outside code is in a better position to say what "const" means than the subclass instance.

Constructor & Destructor Documentation

◆ OptionalExceptions()

mysqlpp::OptionalExceptions::OptionalExceptions ( bool  e = true)
inline

Default constructor.

Parameters
eif true, exceptions are enabled (this is the default)

Member Function Documentation

◆ set_exceptions()

void mysqlpp::OptionalExceptions::set_exceptions ( bool  e) const
inlineprotected

Sets the exception state to a particular value.

This method is protected because it is only intended for use by subclasses' copy constructors and the like.

Referenced by mysqlpp::ResultBase::copy(), mysqlpp::Connection::copy(), and mysqlpp::Query::operator=().


The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1ConnectTimeoutOption__coll__graph.png000644 000765 000024 00000021472 13515046516 031257 0ustar00tangentstaff000000 000000 ‰PNG  IHDRâ·S‚“sRGB®Îé"ôIDATxí]˜Õ>°ôŽôŽ4Eb@ U(APBD‰ª*M4 R"ˆ†„–¥ 6ôÞ{ïui»Ëäþ‡ÜaÞÛ×vy/ÌÌ;çûÞÎÌ­çþçž{Î=wÞÛt†aL'!A@x˜ħSŠhC† 4dÈêÞ½;>|˜5jDãÇ©ÿ®]»R‡¸lrr2]¿~îÞ½R])äQD…ÍÅ‹éܹs<¡Ö­[GgÏžeİúÿüóÏtèÐ!~¾uëOÜÛ·o›ˆâ“911Ñ, ³cÇòþbËñãÇ oý ,ú;þ¼Ù޾AßhóÂ… ôÓO?ñUç]½z•®\¹ÂõÁ,’•’’’/]º”ÆŒCƒ ¢ùóçS=¨ÿþÌOƒ ¨_¿~lÙîܹcZ¸Ý»ws>Ò@à)!!€ËÉ“'©B… |V ëª c\¸p!mÚ´ÉcüH¿yó&]ºt‰V®\I'NœÐUä ð5(·Q›6m u ò°úôéc¨×¦ŒÒ¥Kã+aFúôé·ß~ÛPŒŸ‘öé§Ÿêµ9Î7nœÙöW_}e¨ƒfãÔ©SƨQ£ŒìÙ³¹råâz/¾ø¢¡¬—U `¶'Oã±Ç3:wîÌyåË—7þøÇ?ò}¦L™ŒZµjq›3f4²eËfÌœ9“óÚ·ooT¬XÑxä‘G ”_]ºtá<üùÝï~g(PÀç³zÅ(\¸°¡ÕÌ×7›7oæ¶&L˜`Ìž=›ïëÔ©cö>1v`’.]:ÎW¯šjQá{µPqSÆ c|ÀÊaJy9ø6lØÐÈœ93 ¼Oœ8Q³ÒrQoÖ„TÖa…fŠET3„wS{÷îÍÖð…^`WMM<¶@¯¼ò }ýõ×T¼xqª[·.ÅÆÆÞ«¤þâU:”W ÈÖføðá\«þ¢E‹hõêÕlU>tèPÞ_)ENaÍÌÕ ,ðèòå˼ŸS Æ. ÊìÚµ‹ÆŽËÖåÛo¿%|æÎËÕ7nL½zõâ{ü±>ÃzV­Z•”"˜ùú¦råÊœnu‹+ÆýïÛ·-áÀ |·k׎Z¶lIkÖ¬ÑÕù w÷›o¾áòèoÿþýôÁ˜å”³‡¬•¢“R|3/ÚoDÿ7J•*Å{(eQXÙ0a•¥$eÝH­ä¦{úú믳k®åòåËIY*Ê’% aòb"N™2…”•c/)+‹Fʲ&3®¯½ö=þøã~çönàeßÿ}žØÛ·oçòO>ù$½úꫤ¬)‹JeÊ”!ì1A¼ ¼&ë3\Je‰u–Ç./ÜX´©iðàÁ”5kV*W®÷ƒq¢Y³fQîܹ©cÇŽ\ õZµjEp‰5)ëMÕ«W§"EŠð+ˆPT¡{ÜG>ÊÁäЄ`ö=9sæä$åf™ûÖ­[“r (àK/½ÄiPÀ¢E‹r@W(0ö{G¥§žzŠ”;©» ’%Kš÷Þ7>ú¨™„…¤÷­P<+!_çYÓ½ï!õÞSê2P^PF“•`=m Òc´*30µîƒ­{I(9”_袈ÿ› P¶P«~‹-Ø=…[ %Ì‘#>}š#Ÿ‹/怬àúõë Ç… "µ‡ôhÞêzd¨B4ÁåÁB‚¬yš (¢ó¸€Ÿ?õë×ç²p•½ Á,(8ŠÐdígÕªUAûPûO‚ÕV{3ÝmذÁ£^¨› DÑ(b„ ÷VdÉ’%f(Ö®S§N™Äd|úé§ÙJÂÔ®-öDˆâ¨{/¤÷˜Ø£GfëY¥J.ŽÉ=uêTvW±ÿBDS…8_zï½÷Ìf­Ïˆ’â{|XD`¹±ݹs'»Ë“'O¦°5וášbŠÅãlÞ¼9gÁ€’"ÏJàQUDe‘ÏQ_ì)…B@ÀaÑ¥ØMmÔ´oß¾áÓöÙg†²2úÑPŽôéånräR¹—†rét²¨¡²,DtPM^eAêxÀŒ8"‹­ŽšªccĈ\ÑP¥ÄfdKeÅ8QSå>rßJ´FÞ¼yÍz(ðæ›oÊúrY_ÏJ ufÈ‘NÔÇG¹ß† þ˜utÔQQä+7ÝPÊk¨óB.ƒ¨%ÒªU«–"jª#¢È¨«”ÐP ×Vê{¢f?j/Í}› !ܸ9j*Ç!Lï"P>L¬?üÐ;ËP{"CEL I‘§öY†Šzjod(7ÐTDkA(¢²x†²*\ÖšETCC[·n5•ÜZ&”{´­ÜMCšÇ+ºžVDô¡"·†zkFg™Wuîês|(€ñ«ˆªÏzfi¼q³"ºö‹ÁjEŽÁ%Å5‚Ê¥è#_¾|T»víéHÈŸ??|fz%b/Š/B0 Gi%´«Îø‚V÷ é ÊëÛWŒ¡Ô! Š˜:¼x¿¤¬IX£€©l†*Uªäó8Çþ&2ÞdA€&’„¾ÁƒV"‰rʶ]ùÃ8€WÞüTFJy;:?•@• ³F~`ØÑ3S˜w r|ápQž<éyŒàðáD-û®Ý#âmÿhøIŹs¨wHó©ƒó®ŸÄØn¸•\«ˆøºöŠn&T ìJóæíS/š/wóP]?6Wk\/µÿ 0>þ zÅn åÍ›¶m®^Úí5½hÁÇAã”`ƒ„•‚ÕÙ³7RLLzõnk‚úz‘ÿWæRT”Û! ÁÛ‰$4†’“ïªolTßš¸«~ú"FÝo­¢”²%¢ˆ¶Kp¦V®ÜKW¯Þä‚IIÉêËÁ›Õ àÉÁ+J [" ŠhK±g*6v½²„÷ÅwãF¢úFÈÎॄ-¸/I[²'LùBàÖ­Dõ¾ëVõÅÚû¿ž–!C:Š‹÷Ô^NHEt‚”¼xü׿v(74Ñ#J‰ô„„û¿0çQ@l€(¢­Åã›9¸¥ˆ–zöŠ‹oóN–g Rš`:šY¼zõ–úæû.·Tãþ3ÖëG¹:QD ¬.X°Åãwa¬ìã(cÕª}ꓬÉrïD $+‹±±ë”"ZSRÞÏ›·9e¢¤ØQD[‹Ç“¹³g¯ª+>¨þ5@ M4húôužåÉö¸ö¥oÛ#ŸçÌÙÌniÆŒ1êô÷ÐÖQ£îé¦MGÔÿ–¸¬~ðØ÷ §¡k©aD# p8›/U* ÖÊ£Éñã—QÅŠE¨^½Šé7oÞûÇ1‰ò`[Dm+š”Œ5jT)EâwßÅSµj¥Õ¯‹×M‘' ÎA@öˆÎ‘•pêbD],\šsEtެ„S# ŠèbáÊМƒ€(¢sd%œºQD W†æD#+áÔň"ºX¸24ç ŠèY §.F@ÑÅ•¡9QDçÈJ8u1¢ˆ.® Í9ˆ":GV©‹Et±pehÎA@Ñ9²N]Œ€(¢‹…+Cs¢ˆÎ‘•pêbD],\šsEtެ„S# ŠèbáÊМƒ€(¢sd%œºQD W†æD#+áÔň"ºX¸24ç ŠèY §.F@ÑÅ•¡9QDçÈJ8u1¢ˆ.® Í9ˆ":GV©‹Et±pehÎA@Ñ9²N]Œ€(¢‹…+Cs¢ˆÎ‘•pêbÒŠ\<>ŸC+^¼¸úó'|æ9-1sæâ”œœ@II—œÆºO~{öìI£Gö™çâĸ¨ý×Ý:u¢_|ÑŲuÞÐì<¦ÃÄqÔ*bÕªU©M›6a‚Qš _~ùe8šqd²Gt¤Ø„i·! Šè6‰Êx‰€(¢#Å&L» QD·ITÆãHDCÛܹs©iÓ¦”˜˜´ô7èÚµkAËEªÀ¤I“¨I“&T°`A*[¶,½üòË´lÙ²»KJJ¢‹/šå]Ž5Ÿå&2ˆ"†€ë¡C‡hñâÅt÷îÝ ¥»víJ:tZ.p×­[7Ê! 2„ºwïN‡¦FÑøñãCêrÞ¼y”/_>sÑÁÂrçÎêJ¡´#µÇi…ìöíÛtêÔ)*Y²$AAOŸ>M8 É‘#]¸pèæÍ›tòäI*Z´(wsõêUÚ¾};+VŒJ•*åÑ5ާسgeÉ’…J—.MW®\¡ìÙ³³2¡ ¿ºx!!W®\„úàãüùó4fÌ4h}øá‡f½zõ¢-ZP¿~ý¨uëÖ”7o^ºté*TˆvïÞM—/_¦jÕªQ¦L™èÖ­[töìY® †Eýꫯ˜7Ýàõë×iÆ ÜoõêÕ)gΜœ+ íoÙ²…ë<ñÄ£«Ê5x³&ÚH)„1räȇýÅ_àí#CMTcíÚµ|ߪU+CM2¾/P €±wï^ãí·ß6Ò¥KÇi5kÖäö§L™bdË–ÍȘ1#§+ëd¨ÉÏyJq_ýêWœŽök×®Í÷Ê• Z·|ùòF³fÍ ¥´Æ¯ýk£mÛ¶FáÂ…™GïmÞ¼™Û0a‚1{öl¾¯S§Ž¡”ï+V¬h;vÌ@¿éÓ§ç4ŒM)¸Q¢D ãOú7¹råJC¹¼Ü§Z8 Œ[óÚ§Oí€/ ƪ¼ovü> eÕýæ»8c¦¸¦V©y°°B+V¬ Xɸ¸87nµk׎Z¶lIkÖ¬¡Ðo¼Áî"ÊîÚµ‹­ÅG}Ä-Ã}DšR¶jÚº 3X]”Y²d [¿‰'’ZØ2gΜYT¹reBúÁƒÍtXgXÃ}ûö±%8p Õ«WÏܪÃBk‚{Ú±cGzöÙgÙ¢Âr?÷Üsì†cü Œå­·ÞbcûñÇ –U(8¢ˆÁ1òYÊ”'OR–…`ÿþý)ÊA91•õ$äc¿…‰üÃ?pY°§ƒk‹I÷QS°º(WSY"v3áƒ_÷AeíÌl¼N–5kV*W®uîÜ™–/_næùºÙ´i+öʺ³+ûÎ;ïð;»pqAeÊ”¡Þ½{s>E Ž€ìƒcä³¢’š0¡“““õ£y=räß{oðÒ9û<ëž{.MÁê¢,&ìç`}ÑÒ¥K™?”Ñôè£ê[ްž;wÎ|öusôèQN¶òX¤HNƒµY1Ážä Î?ˆ"zÀúƒÕºø«…‰Š ÈÎ;Í –€0[ªI[<««ëèkýúõ©ÿþ´zõjvu:®óçÏçà Ž`Ö­[ÇY&ie\µj•Ç‚`­«ïÕþ“o·nÝJ 4à{Œ¤]Xµ?ægù“zîû*©¯+5| · “û¯æÍ›³K7gÁ‚üE‹qÍÆÓ¬Y³øƒ¨*\=MÁêêrúÚ£GRŽªï9±`ï7yòd0`€ÅEðg̘Á{Mô¢ ‚#|?°„X>þøcŽ£."ªÏ<ó GWÍ‚r“6\‰ò;´ÔFMÕ÷ã8’hš?~Ül_)”Ñ¥K~ž6mš¡Îñ u$ÀÏêüÎP®¯$d4lØÐPþœ§”ÓP ÀQFåÞíÛ·çrʪ­[¡BcĈ\NÿQ €H%úÑ2ÆŽ«‹˜QSDuQ¼ªã CKpð„È(òTÀÈPÇ4fÔT‡Œüùós¢«jiìØ±ƒëõíÛרU«–ÙRT.·páB3-ØM4GM±êE¥VS :S3T€Ä¬¦"Œ|ì¡¢–fnâãã åê*Bi¨38cÛ¶mÜ-]ºS}“?ð?„IL¼«þaÎvõ.màr ËÃCG *ß5}訧‘={N©_/áqDqøðyõp²Pþü9ÌVcbÒóá~eÌ4¹±7éð‹[öfQ¸ „@ýúŸR³fUÔÏõ7 TLòì@œ¸¦öp%ˆ"F‰ e˜öF@ÑÞòî¢QÄ(´ ÓÞˆ"Ú[>Â]” Š%‚–aÚQD{ËG¸‹D£DÐ2L{# ŠhoùwQ‚€(b”Z†ioDí-á.JEŒAË0í€(¢½å#ÜE ¢ˆQ"h¦½E´·|„»(A@1J-ô7¢ˆö–p%ˆ"F‰ e˜öF@ÑÞòî¢QÄ(´ ÓÞˆ"Ú[>Â]” Š%‚–aÚQD{ËG¸‹D£DÐ2L{# ŠhoùwQ‚€(b”Z†ioDí-á.JEŒAË0í€(¢½å#ÜE ¢ˆQ"h¦½E´·|„»(A@1J-ô7¢ˆö–p%¤øÁk×®¥‘#GFÉð?Ì#Gr©ÝHùòÝtþ`¢dÓ¦M£ôé=l`\ Eœ1c½òÊ+T·nÝ(E†)ü8wîíܹ“’’’(&&ÆÚi\ë“õ~èСÖG¹D`åÊ•4dÈŸ­xØGŸ%$Q"Ž€(bÄ!–àˆ"ÇHJG@1âK‚@pük‚WµG‰ü‘víÚE½zõŠ8C{öì¡¿ÿýï´wï^JLL¤’%KÒ믿N¿üå/#ÞwZ;¸víeÉ’…Ξ=K£GöÛÌã?NgΜ¡çž{Î6óäädJHH \¹r™|߸qƒ¾ýö[Ú¾};?~œŠ-J*T .]ºÐ#Íí·jÕŠ–/_N™2e¢bÅŠ™Ÿõë×Ó•+WÌç|ùòÑ­[·xIsga®¸zõjjÙ²%‡ûÑôÅ‹YaæÎKO>ù$½õÖ[ôÌ3ÏðøÞ|óM:tèPHhLP êíÛ·CªÉBlïܹÃ(P€WÝ›7oR™2eèîÝ»täÈB~Ù²e)C† ¼âfÍšÕc…ÃÙ ÒräÈÁãÔÖm ]ÚÅÊU¢D Êœ93]¾|™ .¬³ùŠÕÓ0 ¶°’yòäáòÈàX ±j=z”®_¿NåË—'¬Š Ô¯xÆa«õ ÷å—_¬ÆçŸnÖiÛ¶-uëÖ&MšDõë×çv0nLŒ c(X° §kœð|êÔ)Ƭ\¹ræQ+?Ê|˜¯·õœÌ& Ú&ú€ ä‹Ï¥K—Ð4>}šñ˜¯ÒX™óçÏÏ“îß–-[èƒ>`€Ó¥KG˜ÀP¦E‹y íB‘!@€ jÚ´) 0€âããiРAT¥JóPmÿùÏ&Lø7R¿~ýhÔ¨Q<ë3”ÖO+.:Ædذà@ðPnô±uëVV, íÛ·§7Þxƒ4NµjÕ¢5kÖ°ÀsçÎMcÇŽ¥âÅ‹3†àu1©1yûöíKÍ›7çE| GŸè m¾öÚk<~àŽó)¸m3Ü5LHÈíL˜0¯°ä‹ÊK/½Äu ðD›P|Lx¼ðÊ–-/NP:x%d…¸>úè#‚ܱøùÃ‡ÛøÃhúôéÜÚ}ï½÷ØÕ¯^½:éyÒ©S'úÛßþF‹/fybQ°,}ëÖ­éÿø÷‡EÓß<èÞ½»&˜+˜_À(¯Áägå'-÷asM!( ܶmO ðÃjµlذ!O4½Òýûßÿ&(V$ì½ xøìh– .&Áˆ#Øz}÷Ýw\N×÷5`L¬ü?üð+ ”õçŸ6‹BÁa ´«W¯Òĉ9Ö‹‚¶²ÖgX,‘7a`_…q`²@)ÿùÏÒ¼yó¨ÿþÜϦM›ÌjPê9sæð$ƒEÀ!¯&{̘1<1±`  ЬY³hÉ’%ôñÇó¸úôéC_ý5Á¢=àóØcñ¸€Ò¾ÿþ{®Å8p +—î'Ô+,7ö•°DXfÏžÍüÅÅűÂýôÓOÜú‡Ãø.\H+Vä F(˜øâçé§Ÿ¦aÆqd |¼_„ñƒNž<ÉWóXúÃ$^É;N㟰)"‚˜ä5kÖdV°’C±ô3Ü ¸> Z®ö.t`Å„F0 –rܸq„Õkß¾}ìšÀ¯/T¨—ƒ•óG¥•[Ö AîåŠ)Â+ž.Õ“ý!_[q0‰5Aq¬J~4!VEÃD„ë® ØbßÒ<âÊ‚  r… ­ }C¦PD¼¸Žš°h`‹ &º®¨ã‹ô|Ò‹“w½ Òå‚ÍïúC(¼’Ÿw›©y›EÔ ¬s¬²P@¸‡Æ`Ï„îС»Sðסˆp¿ôÀ±©×—ÉLM*,ªUù¬íÀ…¤ÔºlÂ7S¼ Q7X((š <° Ö>áä/“V‹”þÀý†ÕÔøV®¿&¸_p”üñcm¼~ÿûß›¼ÁÝGD–4&º}¸œ ,?ÖºpÃ!/ì!àöÉ'ŸðÞ­@˜h ‹Å ˆØÊ'x¡MXß®]»²w€s(Sìűè"ؤ)Ð<ð‡I ^u»‘º†Í5 Æ ^I xP@Q°'Ò„ "mØë(D5Dt‘4äµhÑ‚Ý1L>뙑nmÁ%B!÷ ©T©áEC;Xá&wîܙӱÀ’Ô©S‡÷CÞÏàQIA0éAP!"‹À}aÒ :”ùÄ80¸KV÷” «?à[󮯾òy…â£]&8&¥vס”ÈÃX`9^xásÇñ׿þ•1ÕQVnDýÑû)ýlåÁz|ïg].+\æÁƒ›Šoü ý@˜  ÌðA€ J­ûÂø`¥°/C ‘TDƒêÝ»·fÝrİhkò7oÅ}iñL~ºß´^ý~QGÄÒÚp z +7¬“•àšàüH¢UpóËeó>¾@Tî ¢m`ߤ ˆ˜°°–ØsaÂj·N÷Ê+/ø€µ†‚i!êºX¹¹ƒµÂ¤Â^/\„ý ¬Æ… •€¸áÚËÐù8G„‡¡-ŒNçýs\]Ö±ô LrÔÓq+_;d ¯ÈJ!ð€Uõ–c y Ûð‡I0^uý´\ B 'V|T[þ¿˜–Ž‚ÕÁD+7{ osþ ˜\Ø«…BhÇ×Qƒ®ë½‘×é¡\¡€Þk=¬°:``MÇ=¾õ ÞíaÌð"|‘¯ î«Üƒ¤Â<&ÞJfår÷^X}·uïm­£ïñä“`¼ê¶Ã}ÍîµwA¸ZÞÑÇ@õ¼óà®ø:OÂêèïu%ç[BîG Ð<°ëèŠkjW0„/A ’rMÿïQÓHTÚœŠ€(¢S%'|» QDW‰SãTükp$$áCÁJ”BqF¥ßñWIÒA õàè /—àˆÄ›RDM½ ȳ D8Ù#Fcé@Ž€(bpŒ¤„ qD#±t G@18FRBˆ8ÿÏÑȦ¨ MIEND®B`‚mysql++-3.2.5/doc/html/refman/functions_func_n.html000755 000765 000024 00000010565 13515046515 023045 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Class Members - Functions
MySQL++  3.2.5
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1tiny__int-members.html000755 000765 000024 00000036632 13515046515 026250 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::tiny_int< VT > Member List

This is the complete list of members for mysqlpp::tiny_int< VT >, including all inherited members.

operator !=(const this_type &i) constmysqlpp::tiny_int< VT >inline
operator %(const this_type &i) constmysqlpp::tiny_int< VT >inline
operator %=(int v)mysqlpp::tiny_int< VT >inline
operator &(const this_type &i) constmysqlpp::tiny_int< VT >inline
operator &=(int v)mysqlpp::tiny_int< VT >inline
operator *(const this_type &i) constmysqlpp::tiny_int< VT >inline
operator *=(int v)mysqlpp::tiny_int< VT >inline
operator -(const this_type &i) constmysqlpp::tiny_int< VT >inline
operator --()mysqlpp::tiny_int< VT >inline
operator --(int)mysqlpp::tiny_int< VT >inline
operator -=(int v)mysqlpp::tiny_int< VT >inline
operator >(const this_type &i) constmysqlpp::tiny_int< VT >inline
operator >=(const this_type &i) constmysqlpp::tiny_int< VT >inline
operator >>(const this_type &i) constmysqlpp::tiny_int< VT >inline
operator >>=(int v)mysqlpp::tiny_int< VT >inline
operator ^(const this_type &i) constmysqlpp::tiny_int< VT >inline
operator ^=(int v)mysqlpp::tiny_int< VT >inline
operator bool() constmysqlpp::tiny_int< VT >inline
operator int() constmysqlpp::tiny_int< VT >inline
operator value_type() constmysqlpp::tiny_int< VT >inline
operator+(const this_type &i) constmysqlpp::tiny_int< VT >inline
operator++()mysqlpp::tiny_int< VT >inline
operator++(int)mysqlpp::tiny_int< VT >inline
operator+=(int v)mysqlpp::tiny_int< VT >inline
operator/(const this_type &i) constmysqlpp::tiny_int< VT >inline
operator/=(int v)mysqlpp::tiny_int< VT >inline
operator<(const this_type &i) constmysqlpp::tiny_int< VT >inline
operator<<(const this_type &i) constmysqlpp::tiny_int< VT >inline
operator<<=(int v)mysqlpp::tiny_int< VT >inline
operator<=(const this_type &i) constmysqlpp::tiny_int< VT >inline
operator=(int v)mysqlpp::tiny_int< VT >inline
operator==(const this_type &i) constmysqlpp::tiny_int< VT >inline
operator|(const this_type &i) constmysqlpp::tiny_int< VT >inline
operator|=(int v)mysqlpp::tiny_int< VT >inline
this_type typedefmysqlpp::tiny_int< VT >
tiny_int()mysqlpp::tiny_int< VT >inline
tiny_int(value_type v)mysqlpp::tiny_int< VT >inline
value_type typedefmysqlpp::tiny_int< VT >
mysql++-3.2.5/doc/html/refman/result_8h_source.html000755 000765 000024 00000210473 13515046515 023002 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: result.h Source File
MySQL++  3.2.5
result.h
Go to the documentation of this file.
1 
5 /***********************************************************************
6  Copyright (c) 1998 by Kevin Atkinson, (c) 1999-2001 by MySQL AB, and
7  (c) 2004-2007 by Educational Technology Resources, Inc. Others may
8  also hold copyrights on code in this file. See the CREDITS.txt file
9  in the top directory of the distribution for details.
10 
11  This file is part of MySQL++.
12 
13  MySQL++ is free software; you can redistribute it and/or modify it
14  under the terms of the GNU Lesser General Public License as published
15  by the Free Software Foundation; either version 2.1 of the License, or
16  (at your option) any later version.
17 
18  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
19  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
21  License for more details.
22 
23  You should have received a copy of the GNU Lesser General Public
24  License along with MySQL++; if not, write to the Free Software
25  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
26  USA
27 ***********************************************************************/
28 
29 #if !defined(MYSQLPP_RESULT_H)
30 #define MYSQLPP_RESULT_H
31 
32 #include "common.h"
33 
34 #include "exceptions.h"
35 #include "field.h"
36 #include "field_names.h"
37 #include "field_types.h"
38 #include "noexceptions.h"
39 #include "refcounted.h"
40 #include "row.h"
41 
42 namespace mysqlpp {
43 
44 
47 
48 class MYSQLPP_EXPORT SimpleResult
49 {
50 private:
55  typedef bool SimpleResult::*private_bool_type;
56 
57 public:
60  copacetic_(false),
61  insert_id_(0),
62  rows_(0)
63  {
64  }
65 
67  SimpleResult(bool copacetic, ulonglong insert_id,
68  ulonglong rows, const std::string& info) :
69  copacetic_(copacetic),
70  insert_id_(insert_id),
71  rows_(rows),
72  info_(info)
73  {
74  }
75 
82  operator private_bool_type() const
83  {
84  return copacetic_ ? &SimpleResult::copacetic_ : 0;
85  }
86 
88  ulonglong insert_id() const { return insert_id_; }
89 
91  ulonglong rows() const { return rows_; }
92 
95  const char* info() const { return info_.c_str(); }
96 
97 private:
98  bool copacetic_;
99  ulonglong insert_id_;
100  ulonglong rows_;
101  std::string info_;
102 };
103 
104 
109 
110 class MYSQLPP_EXPORT ResultBase : public OptionalExceptions
111 {
112 public:
114  virtual ~ResultBase() { }
115 
117  const Field& fetch_field() const
118  { return fields_.at(current_field_++); }
119 
121  const Field& fetch_field(Fields::size_type i) const
122  { return fields_.at(i); }
123 
125  const Field& field(unsigned int i) const { return fields_.at(i); }
126 
128  const Fields& fields() const { return fields_; }
129 
131  const std::string& field_name(int i) const
132  { return names_->at(i); }
133 
136  { return names_; }
137 
141  int field_num(const std::string&) const;
142 
144  const FieldTypes::value_type& field_type(int i) const
145  { return types_->at(i); }
146 
150  { return types_; }
151 
153  size_t num_fields() const { return fields_.size(); }
154 
156  const char* table() const
157  { return fields_.empty() ? "" : fields_[0].table(); }
158 
159 protected:
162  driver_(0),
163  current_field_(0)
164  {
165  }
166 
168  ResultBase(MYSQL_RES* result, DBDriver* dbd, bool te = true);
169 
171  ResultBase(const ResultBase& other) :
173  {
174  copy(other);
175  }
176 
178  ResultBase& copy(const ResultBase& other);
179 
182 
185 
188 
196  mutable Fields::size_type current_field_;
197 };
198 
199 
208 
209 class MYSQLPP_EXPORT StoreQueryResult :
210  public ResultBase,
211  public std::vector<Row>
212 {
213 private:
218  typedef bool StoreQueryResult::*private_bool_type;
219 
220 public:
221  typedef std::vector<Row> list_type;
222 
225  ResultBase(),
226  copacetic_(false)
227  {
228  }
229 
231  StoreQueryResult(MYSQL_RES* result, DBDriver* dbd, bool te = true);
232 
236  ResultBase(),
237  std::vector<Row>(),
238  copacetic_(false)
239  {
240  copy(other);
241  }
242 
245 
247  list_type::size_type num_rows() const { return size(); }
248 
251  StoreQueryResult& operator =(const StoreQueryResult& rhs)
252  { return this != &rhs ? copy(rhs) : *this; }
253 
260  operator private_bool_type() const
261  {
262  return copacetic_ ? &StoreQueryResult::copacetic_ : 0;
263  }
264 
265 private:
268  StoreQueryResult& copy(const StoreQueryResult& other);
269 
270  bool copacetic_;
271 };
272 
273 
280 template <>
281 struct RefCountedPointerDestroyer<MYSQL_RES>
282 {
284  void operator()(MYSQL_RES* doomed) const
285  {
286  if (doomed) {
287  mysql_free_result(doomed);
288  }
289  }
290 };
291 
292 
297 
298 class MYSQLPP_EXPORT UseQueryResult : public ResultBase
299 {
300 public:
303  ResultBase()
304  {
305  }
306 
308  UseQueryResult(MYSQL_RES* result, DBDriver* dbd, bool te = true);
309 
312  ResultBase()
313  {
314  copy(other);
315  }
316 
319 
321  UseQueryResult& operator =(const UseQueryResult& rhs)
322  { return this != &rhs ? copy(rhs) : *this; }
323 
325  const Field& fetch_field() const
326  { return fields_.at(current_field_++); }
327 
329  const Field& fetch_field(Fields::size_type i) const
330  { return fields_.at(i); }
331 
337  const unsigned long* fetch_lengths() const;
338 
346  Row fetch_row() const;
347 
354  MYSQL_ROW fetch_raw_row() const;
355 
360  void field_seek(Fields::size_type field) const
361  { current_field_ = field; }
362 
374  // it was successful:
385  operator MYSQL_RES*() const { return result_.raw(); }
386 
387 private:
389  UseQueryResult& copy(const UseQueryResult& other);
390 
401  mutable RefCountedPointer<MYSQL_RES> result_;
402 };
403 
404 
406 inline void
408 {
409  StoreQueryResult tmp = x;
410  x = y;
411  y = tmp;
412 }
413 
415 inline void
417 {
418  UseQueryResult tmp = x;
419  x = y;
420  y = tmp;
421 }
422 
423 } // end namespace mysqlpp
424 
425 #endif // !defined(MYSQLPP_RESULT_H)
ResultBase()
Create empty object.
Definition: result.h:161
StoreQueryResult set type for "store" queries.
Definition: result.h:209
SimpleResult(bool copacetic, ulonglong insert_id, ulonglong rows, const std::string &info)
Initialize object.
Definition: result.h:67
const Field & fetch_field() const
Returns the next field in this result set.
Definition: result.h:325
Declares a class to hold a list of SQL field type info.
const Field & fetch_field(Fields::size_type i) const
Returns the given field in this result set.
Definition: result.h:329
const FieldTypes::value_type & field_type(int i) const
Get the type of a particular field within this result set.
Definition: result.h:144
virtual ~ResultBase()
Destroy object.
Definition: result.h:114
const std::string & field_name(int i) const
Get the name of the field at the given index.
Definition: result.h:131
const Field & fetch_field() const
Returns the next field in this result set.
Definition: result.h:117
RefCountedPointer< FieldTypes > types_
list of field types in result
Definition: result.h:187
Holds information about the result of queries that don't return rows.
Definition: result.h:48
Class to hold information about a SQL field.
Definition: field.h:46
Functor to call delete on the pointer you pass to it.
Definition: refcounted.h:47
Fields fields_
list of fields in result
Definition: result.h:181
Declares the RefCountedPointer template.
StoreQueryResult set type for "use" queries.
Definition: result.h:298
SimpleResult()
Default ctor.
Definition: result.h:59
ResultBase(const ResultBase &other)
Create object as a copy of another ResultBase.
Definition: result.h:171
list_type::size_type num_rows() const
Returns the number of rows in this result set.
Definition: result.h:247
const char * table() const
Return the name of the table the result set comes from.
Definition: result.h:156
size_t num_fields() const
Returns the number of fields in this result set.
Definition: result.h:153
Fields::size_type current_field_
Default field index used by fetch_field()
Definition: result.h:196
DBDriver * driver_
Access to DB driver; fully initted if nonzero.
Definition: result.h:180
Declares a class to hold a list of field names.
ulonglong rows() const
Get the number of rows affected by the query.
Definition: result.h:91
StoreQueryResult()
Default constructor.
Definition: result.h:224
Manages rows from a result set.
Definition: row.h:63
void operator()(MYSQL_RES *doomed) const
Functor implementation.
Definition: result.h:284
const Field & field(unsigned int i) const
Get the underlying Field structure given its index.
Definition: result.h:125
Declares the MySQL++-specific exception classes.
RefCountedPointer< FieldNames > names_
list of field names in result
Definition: result.h:184
Interface allowing a class to have optional exceptions.
Definition: noexceptions.h:71
const RefCountedPointer< FieldTypes > & field_types() const
Get a list of the types of the fields within this result set.
Definition: result.h:149
StoreQueryResult(const StoreQueryResult &other)
Initialize object as a copy of another StoreQueryResult object.
Definition: result.h:235
std::vector< Field > Fields
The list-of-Fields type.
Definition: field.h:153
const Field & fetch_field(Fields::size_type i) const
Returns the given field in this result set.
Definition: result.h:121
~UseQueryResult()
Destroy object.
Definition: result.h:318
Base class for StoreQueryResult and UseQueryResult.
Definition: result.h:110
void swap(StoreQueryResult &x, StoreQueryResult &y)
Swaps two StoreQueryResult objects.
Definition: result.h:407
~StoreQueryResult()
Destroy result set.
Definition: result.h:244
const RefCountedPointer< FieldNames > & field_names() const
Get the names of the fields within this result set.
Definition: result.h:135
Creates an object that acts as a reference-counted pointer to another object.
Definition: refcounted.h:82
Declares the Field and Fields classes.
const char * info() const
Get any additional information about the query returned by the server.
Definition: result.h:95
Declares the classes for holding row data from a result set.
UseQueryResult(const UseQueryResult &other)
Create a copy of another UseQueryResult object.
Definition: result.h:311
This file includes top-level definitions for use both internal to the library, and outside it....
void field_seek(Fields::size_type field) const
Jumps to the given field within the result set.
Definition: result.h:360
std::vector< Row > list_type
type of vector base class
Definition: result.h:221
const Fields & fields() const
Get the underlying Fields structure.
Definition: result.h:128
Declares interface that allows exceptions to be optional.
ulonglong insert_id() const
Get the last value used for an AUTO_INCREMENT field.
Definition: result.h:88
Provides a thin abstraction layer over the underlying database client library.
Definition: dbdriver.h:57
UseQueryResult()
Default constructor.
Definition: result.h:302
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1Exception__coll__graph.png000644 000765 000024 00000017271 13515046516 027066 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÀ{"ѱsRGB®ÎésIDATxí]|UÅÒŸP H/¤ úÐÈû„`h"JQAyˆ ‚€€)Š  Š‚>Ô‡4¥·G$"]z¯ÒôÑ«!9ßü'o¯'×{onÏIîÎïwï9gËìîìÎîÌœ=;a†a|K4B”aÌFˆ¶]7[S€rhh „24„rïë¶ë@Ц@„}óoݺE—/_¶ÖÏ¢@îܹ)oÞ¼©Ñ… èöíÛÁÙHA3ÐÎ a þ]»v™Óè{‹Q xñât×]w¤V¤k×®wf#­P¡•,Y2]5þÂ*¶Q£FêV_-D_~ù%àµ)[¶,á— ))Éas´ì,:0T(  TzZ·Ó!48$‹  h•žÖítHÍÉ¢C…eؓϟ?ï”–kÖ¬¡„„§ñV°oW—.]hÖ¬YV­n¦Õ ïþøã‡åïß¿_úþìÙ³ãƒP˜?>ÝqÇ”œœì°=¿ÿþ;­]»Öaœ•íÛuýúu§måvºnEŠ¡™3g:,&%%…®^½J©©©ãƒè78}ú4­X±‚pܼy“Î;'÷Gµ5oš·lÙBÿýï%Îü‡8Å,ؤzãÆ [>¤ÃKºõë×Ó±cÇlÙ0˿ʇˆS§N˜KÒ/^¼8]˜Š;qâ­[·î/o¿QwÔõ\µj•­¾ŽÚ5iÒ$zä‘GJéX¬n«W¯¦+W®ØÂ±bÆÃ¬¸qãFÚ±ca duMV®\)/PÕæâãÇîÏœ9#ô@?á}X±bEa0 è¬ÆÈ¡C‡èÇ”ýôSƒ bäÈ‘[­ððpãÈ‘# £@fÔ®]ÛˆŽŽ¶¡/X° Ñ³gOyff’t<ˆäyÚ´i‚åg||¼qñâEƒW)gÀ€’޳<¿ûî»ò} æ|cÏž=ÆwÞiôë×OÒ"0˜· 6”A®ˆ`ð1cƳΛ7Ï`™Þ˜}ºÜƒÐÖŽ;›7o¶ z3<üðï2Q‚¡Ô„Ô«W/¡ý¶mÛd<4kÖLpY‚x)—¶C‡ƲeËd°€æÂËŸ¤SñÐæaŽ`Ô¨QÒ` \?ÌÕ«W—ä\˜]@pƒзo_£P¡Br¯þÀ˜AëÖ­k€!¾M›6Ig:T’‚Ô=ȯÔÓµ qŠÔLÆâ‚ÔJ†Îà §¢ Ð8—.]j ËèÆJ &¯T©’QµjUcêÔ©‹¿Âè˜Pö /_>ƒõ%‰S´23ú@fùnݺÉcéÒ¥ª(YQA70€Ï:$âVäYKˆ—.bÎåú¥žD&äAg‹`ÈvïêFÉü:uYò6‹˜y$‹7„8XgX£2eÊH8äPÈšfxâ‰'d#pB.ü˜¡ˆÅ3bqÉ–¼\¹r¶{´  ô[„éåêÔ©c -V¬˜Ü+2¯‘ä6«ê,‹¦„ÍyÝ»w—k“&MD¦Wm4_±Í~7¦9ÞL¤Stùõ×_m}Šôfúšó{sï3@™ã™˜vîÜ)Ê'Ëð4bÄ‚ri†ØØXyÄ S€¼îÏÈ´{÷nÁ Üß}÷ 6L²cà¡LžÄ¹|ùr g1‰x¶·)ÒP¶ž{î9at: ¸ÔoüøñÔ¶m[[• L+€bPÌ¥ÂÍ×¢E‹Ê£yï¦6—™Ìœ7+ÞC©eñ–,YBPrYGÚN™2Å«æ°øä0ú‘WP[”aã=ÀŽ­Ó?þ¸hî¨(f\^ú³2-ÆJx T^ÆÅbdo;gýXl’<¸½{÷&XZ´h!³ûo¼A¿ýö-\¸XÙ˯‹ôôÓOËìÍò;±²D]»v%VéÑG•++ÂbJLL$ÁˆQjÕª•­°ô ^HŽT€• öj0÷|@¼S5Òµ å+ÀÌf.äA`!º÷Þ{©|ùò*Y¶¹¢ñ耫VRîÁ °zùXÕÑoø®/¾ø¢/èÒçµ Vÿ»ñT †‚¥“±°z@û=z´`ãÁj³ð@AY ,ñlk@.TàÊ ôÑG‰%åàdz·(¤&LçE‹ Xxù4˜)äù­·ÞÅ y CV@…b«ð¡îo¿ý¶Äá:¬TP®‘ÖXö킌ª¬@ùyµ“oذÁ`±R¬Œü¾Ç`1Z}ã.8c§Ä0‡y•+Wv˜¢~ ø]ˆCêÙ“+[xèoû›'Y$->…³W†¶à~Î þü„Ÿ=Ø·Ëå–g;sP¶¾ÇÛ~¶Ú8l#Ä^_6[Ó;ï¼CP”yÕ¡zõê9ìOËòxZ°ÕÓƒÀèX ™OÈü° °í}Ì À ±•Aƒ5(€Õ–ß8¤2>[R+TS Hi¸|ùfÈÚÅ$_ÍÜŸ®¨ïT‚½=»Ã°a‹ù}B5VX+ÁV£lêP² ³ýÕÿ‡ça7lŵ Ì9FîÒÁÙ¶k§  g…‡ß¢nݾâ×ø5©aÃÒîÒ2ÓÓÁHÀvW[>Ü*;5ŒÎ͉¢KI‘TêÅk¼UÚšÛ¾CútèÕ«÷Ñ“ON’þìÓ§ ÐÌ­¾Õ‰\SàÖåZÞïÞ|•ÂXÈ~f]m ús•ëÜÁ i F?O ?~¯_ðF®ìy,`°†Õ¥£·hî“{éìö´Óåò—ÉeÙÁš„4*M±±i²ijªAK—bwèüõ×Õ`—lUÎɤ+4§ÓºvîJ½mPŽˆ0*Z+seÿŒÒ âÔªUÚ¶úöíTÚ³ç45nüo‚;“ít¼‰»þý-é}€nß4(5;x³_ ßÇ”Êz·!Ï5k–æ]‹á¶žINN‘ !a,AGÐàšKŒk‡§õï ÖN^IÌ…ïNûfC…Yíò P½zIÞ®›^î¿};…?ê¿M;~BS§®·ZŸY¦>·.¥Ð‚ç÷Ó¾y|ÀÁŸãÞV¿ðœaT¨BúãÈm‘¹Ñ À àx—¡ìq8p&%&~'÷ŽÒ…jØÅ#7iNÇ=tnç5ÂLï ”ÏEaN íŽr?,ä X±üãz–ú쳨sç)¼Ë·;‚ß½)ñäúË4·Ó^ºþ[²(»ŽJÉÁ³ÑšùEY*,ä½Q«Þ;·Só'ôŸÿì¦gŸýÜR—•¹ròZ1ð0¥ÜHu:øQ/ƒß{®jmõÔ ÀD€"ù§" Â(ˆˆ'|«Ú­[Cúä“§UpÈ^󕌤¶³ªRÙÿKûì1Ì1ÙX!f8 0€Å%´àŒ3(ÂÉÉéa|¼=àÞ{Ëñ‡ñIi¼§FÖ.%ºHNj<:ŽNý|E,@WÎÜ’ß\ëˆ\9¨¿³:è€{ ›µ‚ððT¨Pþ &/Ïú]ôàW„±»¿/UjKùJDQxdyñ¥’ÄVfñǹT©’eúU3wA™2wPž<‘,ê„ñç›Ô·oS>´w0ïºÌIo¿½ Ó;ɪ¸v&™¶~qš*µŒ¥ößW¥2¦}:ŠÕóΚֶÿ+šjø%°/(!¡ï2˜^z)žöÈMo¼ÑŠfÌø™Ï¤9®è¥¯& $=IÑ…#©Fç"$bѨ8jþqEŠ)I±U²„ônPS_²ƒk,öüµÓ{l"oK¦ ^2'ùû_ºB‹^8@ *RÉûÓ›;±?èVë×0Ht4øQôðámø ¯|”÷Æ ÕÄúÅ`p¯u‚ʱ%È~ð£öØ—¿ÔÕúäÎÜV©RŒÏ}€O{[À¤oene,RúŽiçè*ïø¼¿oÖù’Îéô àŒ2¦ðþýØLšBcÇ.3…†æím~¶íË3T»k1Š.š3ËAënvá—_þÈJñ\ö3€ââÒNŠv3k¶K†}@1¥¢Ò™=³j#5¸Ùsø`&>þ=*Z4?MŸþœ›¹t2«S@‹@nöÞ@!^¹rŸ*½ÛÍ\:™Õ) W{¨G©ìXã$,3 ݇4¢ÑÉ-B½xØx9vöì%úôS}t¢‡¤³drÍvKñâè…¢÷ß_Ægç\ö0·Nn5 hð¢Gzöü?yk<|xöß'téØ-Jáݳ+hð¢g±a.1±5ûÄÚD›7óCÖÈ‚7¾Ë^>DØóã À—[£FlÎÅ=É G‡p(,Ð à%¥ª³?²Š4xðìlû½°zã[»«gßB°GÂñòìEÇcêΟ?_ü2°'óz“A3€7Tû_žaÃeÏ•§èßÿþÙ,ÖÌŠ­Î[>;î/œ ÂQ… k~ÆÌm¦(œä±sºz5ýac8¬vË–-šêàZ0ŒÊôèQ[¸*/ Ww},étŽ)ðúësØa÷ëì+Í9¸ãTY/tù«‡­w)É©¶ÊÃq8œ*GØìÓ`—W6§x-[¶4à0]9Àƒ#rþ6 „Á®’ 8JÀŸ{ß±9ÖcT|ŸÁñ5 "=âÁ‰v A¯>N+ýú%ˆ4fÌ1Y';¶:ùÏz ©tÛš5kFo0s³C<Úºu«¸,‚{ZÈî{FüƒÁ!9â1»+·¸¯½ö±·L‚ŸaàaOóâZöÿø‡- ;$å[Yá ÄUì#Ucbrɩ҃ͦ§žz€*TøÓ¼¨3%»«­Îpü‡A §uUp_²dI~)¸Z|CCÌyøá‡Å70*ÿÌÊ !ù¤MÓ§O—ƒð  þ”qð@f€f?P½cÇz4mÚzbqˆ¾ù¦‡0fŠ oòùž©·:ãSG pÌôgÏž%ÌØeÊ”@‚.\ØÆp®N=Øe¬<£<˜޶ï¾ûnY=Tº`_3‡í‚ÝÊ—‡ÎÇ>¡5köÑ’%;\Z`ÑßQ97u˜_ÍéVgˆ8ëÖ­ã]±«„zè!b¼´xñâtâjéhVÇÊÁN³éŸÿü§˜;“’’ˆu…À6ÊvÍ.ˆãIŽOiÓ¦û°ýžÏM›é<Éo¥´ÎÎúAãããEØ´i“0dyVTù[êÿÂÎÚ«Ä'\aöüþ{Ð,íÔ=¬ €½{÷ż¬ÀY/y>dHKö­u…&MZåE¥@tÿý÷‹l_¾|yñW&À€f«ËF`¥„£ë—_~™¿­xCòÂp¯^½D±†r GèHS£F b+K|þˆÔ»AýAEŽ?\Aø­]ûáÜQ Ž)€w øÝu×]’ïrçÎMyóæåCnÉ{ƒˆˆÛ{GX ¨ÃQ¼;ašÜ¡’i þ<øàHö_´gJ˸ˆýÐù7èñ™UÒíöÌ8göK¡W€ ôéˆmx¿ÌAZ¸p{Js]„³­Î®seßXÍAèÛ{î)C?^—÷ Íã}ñÁùÔÏY³Â£Â¨ÆS¼ÙîHsgé³{¸‚ÔÃ8B¥~ýw¨GFåXƒ5( W€ õC‘"1ìy¦ oXÉßÑ^ R©º˜Œ(  # ù1¾{÷eƒÜСßû«Få 4øB=óæÌÎz@kÞ¿’’y˜['´ªf€³S§ÉtêÔEZ¾¼¿(˾D3hOVŽÖ+@&ôö :tަNý1J×Eš) ÀL Ý—+KÐFZL.\X©×βwËç®S@3€cº<¡ÈÈz÷ÝE++iÌIÙêœû}ø‡3"kpF™‡GGGñÑ -y»t’¯èïâô_÷(ª•`÷è°T-[~ žfæÌéå·2°Õyv»=T°|.j<:Îox³#"½dr¯â<¡ óÑ [ýV½ÕÙ}RjpŸVIY³f)êÐá>6lݸỲª·:{ÖMš<£W@Rã›+WnÒøñ+|Æ¿áƒ_)ºp$Õ蜵Ï(õ™n"Ð:€›„ t28ÝÃç“kÖ äC§ y]\ýq%… WËã5ŽPʨÀ"½}ûv*=ôÐ(ªXñNš2å‹Ô*ûWò €CSÇ—ý{ÀÔ‹£øD´(>r\{Ÿ4‘Åå-;è /¾øÂeW‘–e€o¿ý–Ú·oϧ¬=èªþ:.„)púôiÂN6¼Ë¿"LLLô¶m:_6§ÀÂ… é“O>ñ©•Ú äùtæ¬NÍY½uý}¢€fŸÈ§3gu hÈê=¨ëï,¯ûÔº f^¶líÙ³‡úôéÐRß|óMÞ2áø¬Ñ—^zÉçóò½©<\§Â ^Μ9ù죅ü±Ï!êÝ»·7¨‚žG¯~"ù‰'hçÎÀ;ÈÛ¼y3¶{I¼1Â#£ù*™­[·O‘(;99Y<¼dF=¼)3s(æMM3È[0œ®ÅÄÄÐþýûÅgUÁ‚ÅA3üÑÆÆÆò‰ in;áâîxVÙE€'iU:̾˜áàÿ6**J|Ü-ZTEËõÚµkâà ³"VøÕBzpbÆ,T¨?~\\U¬XQfOÄ߯a6…—Eûg¤iРû$~ ·éùà|n†ðÀw/êÌžÙêtx.[¶¬¤Qˆƒ_.ÐÊÜ&Wí-çÏŸ—rš6m*ÎóNô p‚¾ %üPWäÁ3lù¸¯P¡B:Z+¼f€óåÕì°ƒ‡l­ZµŸ¶pÄ xþùçyçeÞy9L;ÃÅñ‡Ã¶êÕ«‹O̲ðnŽÁ0fÌ*]º4mß¾]üÛb@?: ƒ.Bͼ`  .È €õ„„êß¿?o}ÞÀŽ3^'p»wï¹ÀýÞ{ïÉl/ìýúõ“·àµjÕçqægs9ö÷l¯¾úªÐ`òäÉÂ<=zôF?~˜Ñ°ÔÀ è4 |V8kÆ T¢D >Ê|Ÿ r¬ 'Näã {Ä(ˆwQÒaVw/àDå Ä/ÌŒ ºté""”ƒÙ€g¬TŠ쟑²¾ýåàyƒnÖ¬YÔ³gOÁ‰+#¶—@t~¬§@Ìüõë×fÀÊ<7nœøË¨=¶„¦ f¸TU¢'è/_>YÕT2¬XeÐ_p» f &dDƒ\­ <<\›¥ìþh׬Y#{0ø† "É [CüÁì?eÊY §f{ `g`ï½z€ÂÄ(Äpö €ôN:‰9ƒò´ê(ø¶U Võl¾¢ó`FÅ bôf<;vìUE¥÷å ¥yìØ±¢»àþ£>tªþGµ¡‡øñƒ+ D0>~ÇY]%Ψ=*ºbEc>|X‰>k™yâð¤Ïlˆüx“­Àº<ðÀ"3þùç² (‡Ë‹-â/³Æ‹ÕË>,E˜I¡ðbå€\ Ë D èÎJ0üÜb¶ƒ,£^½z¶ä(x ~Á´ QYûÃ?´‰öÏHƒAÅÑþ‘ LæÙ "2,!q»wïNU«V¥uëÖIrȺÀƒ:B{æ™g$Š MySQL++ Reference Manual MySQL++: field.h File Reference
MySQL++  3.2.5
field.h File Reference

Declares the Field and Fields classes. More...

#include "common.h"
#include "type_info.h"
#include <vector>

Go to the source code of this file.

Classes

class  mysqlpp::Field
 Class to hold information about a SQL field. More...
 

Typedefs

typedef std::vector< Field > mysqlpp::Fields
 The list-of-Fields type.
 

Detailed Description

Declares the Field and Fields classes.

mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1StoreQueryResult-members.html000755 000765 000024 00000035121 13515046515 027565 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::StoreQueryResult Member List

This is the complete list of members for mysqlpp::StoreQueryResult, including all inherited members.

mysqlpp::ResultBase::copy(const ResultBase &other)mysqlpp::ResultBaseprotected
current_field_mysqlpp::ResultBasemutableprotected
disable_exceptions() constmysqlpp::OptionalExceptionsinline
driver_mysqlpp::ResultBaseprotected
enable_exceptions() constmysqlpp::OptionalExceptionsinline
fetch_field() constmysqlpp::ResultBaseinline
fetch_field(Fields::size_type i) constmysqlpp::ResultBaseinline
field(unsigned int i) constmysqlpp::ResultBaseinline
field_name(int i) constmysqlpp::ResultBaseinline
field_names() constmysqlpp::ResultBaseinline
field_num(const std::string &) constmysqlpp::ResultBase
field_type(int i) constmysqlpp::ResultBaseinline
field_types() constmysqlpp::ResultBaseinline
fields() constmysqlpp::ResultBaseinline
fields_mysqlpp::ResultBaseprotected
list_type typedefmysqlpp::StoreQueryResult
names_mysqlpp::ResultBaseprotected
num_fields() constmysqlpp::ResultBaseinline
num_rows() constmysqlpp::StoreQueryResultinline
operator private_bool_type() constmysqlpp::StoreQueryResultinline
operator=(const StoreQueryResult &rhs)mysqlpp::StoreQueryResultinline
OptionalExceptions(bool e=true)mysqlpp::OptionalExceptionsinline
ResultBase()mysqlpp::ResultBaseinlineprotected
ResultBase(MYSQL_RES *result, DBDriver *dbd, bool te=true)mysqlpp::ResultBaseprotected
ResultBase(const ResultBase &other)mysqlpp::ResultBaseinlineprotected
set_exceptions(bool e) constmysqlpp::OptionalExceptionsinlineprotected
StoreQueryResult()mysqlpp::StoreQueryResultinline
StoreQueryResult(MYSQL_RES *result, DBDriver *dbd, bool te=true)mysqlpp::StoreQueryResult
StoreQueryResult(const StoreQueryResult &other)mysqlpp::StoreQueryResultinline
table() constmysqlpp::ResultBaseinline
throw_exceptions() constmysqlpp::OptionalExceptionsinline
types_mysqlpp::ResultBaseprotected
~OptionalExceptions()mysqlpp::OptionalExceptionsinlinevirtual
~ResultBase()mysqlpp::ResultBaseinlinevirtual
~StoreQueryResult()mysqlpp::StoreQueryResultinline
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1ssqlsxlat_1_1CommandLine__inherit__graph.png000644 000765 000024 00000016042 13515046516 032441 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÎ{<¿sRGB®ÎéÜIDATx휵ÇÕ†¢(–¿X±" @숽÷Þ+6i*Ø»¢¢`El€" 6TDEéEš‚ÒépÀüó}’qvoçnö8†e.ïóÙÝ™$“—ü’—W’¹+åyÞâÈ!àÈ RFp¼¬žp…)í0p8²GÀ Nö˜¹'Nã¸9à( eÓš6mšüôÓOéÉîÞ!PbØo¿ýdß}÷Mí?Á }ðÁ ÜÇaàæÀÚ9pÿý÷ED¯ói+V&×^º_‡@‰E`Ÿ}öÉØwÈ‹KtŒ€œ‚ñq¹Œ8ÁÉ‹KtŒ€œ‚ñq¹Œ8ÁÉ‹KtŒÀF/8]ºt‘›o¾¹à^Sî!Cä´ÓN“wÞYªV­*Gu”|þùçÅT{nTcB¯òè£jcZµj%|2Ñ«¯¾*·Þzk¦¬¬Ò>ùäiܸqÊçÚk¯•¯¾ú*«zâ.¼Ñ ί¿þ* Xï¸}üñÇrÄGÈôéÓ¥Y³frÇwH^^žøûï¿¿ÞùÇÅ`ìØ±¦Ð Aƒ„Å"­X±B–-[–)+«´É“'ëâS»vmá³×^{éxžp òÍ7ßdUWœ…C÷q¢6g̘¡«ðÔ©SeñâÅrÀÈš5k„A ¿fÍšR®\9!¿B… ²õÖ[ûÕsR´J•*iÚ°aÃüg¶Øb ¿õŽ5JjÔ¨!›m¶™Ì™3GvÙe?Ÿ‹…  ûO›o¾¹ú¶Ûn«AÞÊ•+eþüù²ÝvÛÉøñãeÁ‚rðÁKùòåÉÖç–/_.›l²‰”.]:åžgo¹å9ôÐC¥oß¾þ3wß}·tÐArï½÷Êyç§õÐïÑ£G ý´” NÙ”ÕÊÍ×’%Kt’ï¹çž²Ã;Ødùûï¿UÀ+W®,#GŽ”M7ÝTwÁË”)ã—™;w®ŽÍþûïï§vqÙe—ù}ŽÂcÕªU:ø=ðÀ%È^íÛ·÷Y"LŒ3‹ÕÑG­éà:bÄ)[¶¬ÐNÆ(HÌÁ1cÆ»üÕªU fÉŸþ)S¦LÑyX±bÅ”¼"ߤo‰Ú“ééa÷?ÿü³î07jÔÈßi>òÈ#½ãŽ;ο¯[·®g&ŸW¯^=¯aÆ~U³gÏö €Þ /¼à™AõŒ xFˆ¼R¥Jy;í´“7nÜ8-ûÝwßyfà=––¯S§Žg„JóZ¶lé™É«×]t‘g6¬<#˜žåå•Wj^Ïž=õÞ˜W~e ¨šoBóûõë—ïÞ˜cšgÌÍ ~Mœ8ÑëÕ«—gÖ3HûG;m{©£Å³Á)›²TnWûd&…¶¼W¯^­|fTLŒ@)vf¢xǼ¶—àGžßu×]½+®¸BŸe Íʯ×é_ÔË8@…ñ0LÛ3ñ½í·ßÞ£ÐsÏ=§¼õfí—Ñr:^~ùeMéß¿¿W¥JÏ,júÙj«­t¾I?i£Y˜=³`jý¯¼òŠ>g ïÒK/ÕúÉg®=òÈ#šõkï½÷ö2`eM¡¢ ޱý=cÆxO?ý´6” jV]ïwÞÑ{³Zx/¾ø¢NþY³f)O€¡CfÅóÎ>ûlϘB õµíÝvÛm*p ¦Yy<³jxLT³Š‡ ƒO}íµ×”·Y¹<+8\p·téRo„ žñS¼‹/¾XÛ½1Á¼?þø#ßýóÏ?¯õØvk _´—:'M𤹖¿19t¢Ð¶(8YÁ‰RŒYhÀ–>3I™œÝ»w×60©áûÔSO)–mÛ¶Õ{ÚhVv½¾çž{<úöì³Ïê}Q'Œ@v×…ìO=õTP+8gu–ÇçØcÕE‡ ûÏ?ÿhêׯ¯Ï‹ÁCX€Ï=÷\Í3f²¶™ИŽ}ÙqÇuaxòÉ' 6£é¼N:iYc‚ê³Q¾Ö»àØÆüöÛoÚ8ã´k»è< ~ôÑG* ÊK/½¤y€tÊ)§è56f„÷ÐCyŠÏÀõù=zøýlÓ¦M¨à5î—ãb·ÝvÓÑ ŽÕbäÁÍVÙ U˜à ÐVÃÙ:Ñ~¬êV¢à”MY&}B¾ýö[ï™gžQíC›! ,Íœ9Sñüâ‹/TÓ£¹©Ã“®(‚ƃ…ˆñƒ¡C‡ê§C‡šF»­à´hÑÂãC{Ñ ,?þ¸6‹:X4Áî½÷ÞóÌK]dÉC]Æ$VHø¢=¡â(­(Úc1f±N2–PyaÄ¢Etј¬:éŒã¬ Wð94rïÞ½S>ô=*aébÂ2vD4‰ÈÁ“¦%BÏ|>ûì3¹úê«Å˜iª)ˆ Q#Ê/û>DÛÀ"’†õòã?j,4.uÓ?Æ ‡ù€@qÆ]µ|‹ü›nè58€“ átšÆøQ"Ö{| Kø”1û/6É#r‚`V.µÑÍ*ï™ÕEó‰já+ðŒ™$ž1ÛR|Oˆ¨Úî»ïî—%²e£(ÖÇáYêÁÆ¿2ª\Ÿ-(ªF35x€Æó|ˆî°D”‡m'Q ³ h¶õ[¢à”MÙE‹i žDŒðz§Ÿ~ºâ„ýçwz8×–Œ hûŒöÔ$cÖøý!ÚÕ AßO#úfûü5¦¡Ö‹ÿÆŸÈÖÁ8Û±µ›ÇøW¯^Ý3› }ƒÚ%e쉼â 1~Í›7WŸ†@Ïã#›Ä÷Dœyæ™>_ëCk¥¿Â|œuŽªEäŸR̬ОÙãHIã†ÉiV?*,@Ä„5‚Èdµáè`‡IC=ÆdJqz­àg´ŠF‘‚ÏF½Æù4{M½"Š•NDŠˆüáˆ2pqÑ4¢“–IŠBÆÄÑ>ŒY_dÇì¸Î–è}´Ä"e‹4 2‰Ù?TAe» [ œb ‰/”0ƒ¾þúkÁ,ÃæM'T¬ 5¦'ë=&¾F¢6Ã(=€V.S:æ#›ža„­o´^XözKgÇ=HA¿*˜žéS4}Ó0S¹uI+lL «Ó%Ì÷ ™ ¼M¹&Ðħ8)VÁÁ1û bT­˜©"÷{>è ÚŠ˜<2 ™ sb3=ãÒaäûƒ„8Ífs .ì—î(1ðê´Ù4‚JAŠ=ªdî®+NprtäV¯^cö-–ähë\³B}L6GñãÈÌ™K¥aÃÿN:o¸Ö”\Î&r—±ó¡‚ƒŸãhÃ!P©Ò‰f#¯Š ¦tÝppœCÈ-é2bC`ùò,‹\Ó¸q3dÒ¤9ªqÊ—/kþUþgÅŠ<óWüÇ™{°ø=]|,\M…!€@4oþߟ°¢|¿~ãÍŸ1ZbþœQí”Ç+TøïO*¥d¸›Xp§£c…;:³-ºË„ ³Ìß»)úC®dl8S-6¨£$!à'I£éúNpbƒÚ1JNp’4š®/±!à'6¨£$!à'I£éúNpbƒÚ1JNp’4š®/±!à'6¨£$!à'I£éúNpbƒÚ1JNp’4š®/±!à'6¨£$!à'I£éúNpbƒÚ1JNp’4š®/±!à'6¨£$!à'I£éúNpbƒÚ1JNp’4š®/±!à'6¨£$!à'I£éúNpbƒÚ1JNp’4š®/±!à'6¨£$!à'I£éúNpbƒÚ1JNp’4š®/±!à'6¨£$!à'I£éúNpbƒÚ1JNp’4š®/±!à'6¨£D!àå ½û¹DÊ”©è•-[¹DcÀhÓ¦MÎPÏËÙÿZªT)1 %j‘rÉ—^z)»b,³‚ 6Œ Ç*×èÒ¥K®5Éoóq|(Ü…C :Np¢cåJ:|œàøP¸ ‡@tœàDÇÊ•tø8Áñ¡(úÅ—_~)Ï>ûlÑ+Ø@O®k»gΜ)Íš5“¹sçÚƒåË—ËÒ¥K -·±p‚S #õçŸÊèÑ£‹¡¦x«X×v/^¼X,+V¬(´á?þ¸<ôÐC…–ÛX $Bp.\( ,5kÖÈøñãeþüùŠ?«Ü/¿ü"3fÌðÇcÖ¬YBù Í™3G˜–~ûí73fŒ,[¶Ì&é/÷È?ÿü#ÔÍŠ›NK–,ѺV­Z¥¼™œ–òòòäï¿ÿÖÛ©S§Êرc…4Kf§O'!ý€ÒïI›7ož :T¹Òº´ÛÖ“^Ç¢E‹´ŸôÇ 21"E Y¼À,ŠvÊTo®¥åô>NT°Þ~ûméׯŸ”.]Z 6OO=õTùî»ïT ¨çºë®“óÏ?_Úµk'eË–•gžyF«GàH¿å–[䀖-[ú‚±Í6ÛÈ“O>)ÿûßÿdäȑҪU+A0¨=ö&ÿgŸ}–ÒLêeò!¼L"&\ãÆÕ¤8p ´nÝZjÖ¬©BCu?ñIJí¶ÛʰaÃ䮻Ÿ~ZjÕª•rÏ3Í›7×4ÚÀÝ~ûíròÉ'Ëï¿ÿ¾Îí«ƒIÛm·)F×^{­.Ü_sÍ5rÈ!‡¤ô½sçÎòþûïKùòåÕ,Ûwß}åù矗×_]  eÙÔ~ñÅSžÛo¡q­qÎ9çÈG}$µk×–?þXN;í4ùôÓOu#•_è¸ãŽ“Q£FùZéûï¿WAhÔ¨‘¼õÖ[:{÷î-ݺu“­·ÞZzõ꥓ÿ‘G‘=÷ÜSÌq -gµšVšö…@1¹¾øâ „ëÇôK!´Gû½òÊ+š·ýöÛëå Þ³`ÁŸ6wÞyòæ›oªV*Žv‡ÕÁb/íýØcéCZÀ¿k×®róÍ7Ë'Ÿ|¢¡ýÁ·iÓ¦rôÑGKýúõ!4ô;1‚³ÝvÛÉYg%•*U’$æY°ýÚó…?Ö¡C¹à‚ äÁTíÈ8$•#8¬¼Q AA`0—6Ûl35!xvÈ!rÉ%—¨¹÷òË/«ÙÖ©S'©\¹²Vcn)p°iö7¸Ê⣱‚“-XæOABhëÄìÙm·ÝÔ_èÞ½»š¡œåB¨‹£ÝauÀ¿³rçwÖ‡²éôÕW_©°–gá!‚–͘¤×—ë÷‰œl€®W¯žlºé¦òÚk¯Iƒ tEåù>}ú¨3‹½Ž¹U±bE-G MÅD%ú6qâDõ3ÂxèÛ·¯j’W_}U}¤Ã?Ü/_êÁL$BV·n]ÍÃ7zî¹çdúôéùî'Ož,mÛ¶U?AÞi§„“´8ÚVšÿ®B… ‚™ˆÏó裦D!i,‘@L34(}#PÀ¢a£q4XP‚ÑKíäFú•ÁaecÐ,q~oóøÅô@`ì“N:ÉÏÂ4C;àø6iÒDWsì{L¾{ï½Wm÷SN9Eˆ.á)¸ºbª!˜SŸþ¹š}ûí·Ÿ_Á "|DÏà!°7øM¿oذ¡®ø·Þz«œxâ‰*ôW]u•jÃâhwX={öTí|Çw¨¿È†' ̲`Ÿ=öX4â¿”AÐ  ¹ñ1Á–z’@¥ÌŠÂËR9Eï½÷žúß|óÍzkŽ?«=«V¯^-ãÆ“*Uª¨SÌ[¹r¥°/ƒ³„p¤‡£±ï Cßÿý2eÊìhè‡~Ðp4Úó3ÑšA>]£•Øßk¯½R‡um7< ª£ 6óÀM††Øë"ÔŽvdOˆßL¾g°{̀F‰ØÇÉTV{öK0M¦»ÿþû§'ë=šj÷ÝwϘ—žH=ø$a”@+—žÎ¾O&*ŽvTG&ž™Òðƒ‚ôí¶ÜrË`ÖF}]â3ˆ=ž‹.ºH#EE=lù½÷Þ;ßãøaGPX…÷ÙgŸ|ÏÄ™Öî8Û^%Npð)p\ƒdYöG0¡ªV­ªvø:h™L„Coú`>6~áXo¨]s¢ˆ„¯ÙÀD³à«<ðÀüHoïÃ?,PðeF Ä N: lèq܆½”³Ï>[íq|vÒ‰žå¢}Þ‡(÷ôÐ7D›Sø4™ˆhXð ]¦2%=­D„Õ8ùDÝ‘²ÛùF3 "¢öÆoh!6!Êq¦‹À!jU"p-q–I“&©ã/ökð©ðuÈ·uD-«¬å˾Âè}@èÑŽäqM›8X¢ Ñ­(ûDö~‰|Ñþ(<( ¢©é''5J•Ááà%Gl­BÍáH GHˆp±+n…Æ:;àœMCH Œ“žè"hDnºé&ÕTìß°oÁä!ÌÍF D‰…lÊc³ùIh"M„ŽÑ†ÔEÈ÷§Ÿ~ÒÐ:>abú¡T¬r(B¨¢§&Î8ã =ºT´Ty¯ó…ö/*¯µÜ›k"´›c"‹%®9¿Æ*Mh7S¤Œ³dLJdbâ ð 8`É.:š„ÍMK¬úìšSí†r2øÃ?Tíöí·ßÚ¢ª!¢”å°é´iÓT`¹¾úê«•7e ­@°ƒÅ‰Ü¿ÍêØ±£Ò^œ½+*…ñ`ω…‡„­9'-ô¤S‰Ð8GuTÊ8^~ùåz<ú’R í†ý´š bóóˆ#ŽÐ°¶-Ê1{–|Ì#Ö&ú|w'jYÊá¤3qÑ*˜]MðMJVx´ [Yh&/¬œ€€pô¾¢P&Ôóõ×_«ùÈâ‚ ‹VÔ4hPƈcQxçê3%BpÂÀÇ ÃÂQÆ4 ““»ÿØïLŠài•gZ“Ž:0[‚¦¾PpŸ9jY´Ø}÷ݧ¾û#vS1ØÎà*Z’ÓD¡`¸<S-X?×™x.2&¡%„Øú~6-‰¿%ZpPÿáÇëªnƒ¤³šþüóÏj~ $”aòÛI?tºm:ÏFQËb Ò&L1&$/ƒY¡°<2ÕeŒ@Ú"ÈQTÊăº¨ 0Õ,¡Ã6im™$ü–‡£;ØÞ–8?e}NàpTŸ×¢YE9FÑœN8Ahr>ËÎä•g‰—³Ö'¡=¢ø:ö/[Úƒ“a¼Ñ4h |1‚„×9"”NhZL@û¡\6„iëFûÒ>ÞpMÊA΂°(‡Í?VB¢E¯`bàûBÅÂf?b…å4^*ƒxÑ“LD6™Ð¼1jé+rú½V²ö+=/ý>X–èYûöí5B‡ðéC°y½š—ÉÒ‰ºø’æP*ý¢Ï¤ÑW|ÈòLߣBƒ ´ùéõÛgm>˜àwÁâL ëëibB¿Jì!ÏôñDð)X-wÙe¿$XŽUç›CžA»?X¦¸¯‰Ð191˜˜ç¡A?)Œ'ákš¬ÀÔ[_Ä>¯ à‡çy4‚îçúµbªÇ?ýUôª1›¬ÿž·¾î 4ÃåøD!"\vó6Jù¢–a–OI¢á㔤u}'8ñàì¸$ '8 P×xp‚ÎŽKÂp‚“°u݉œÝÇa—ÞîÄ…ã’k°g•«”“‚ÞÎÖQÉF€W3‚(—ÐÈÉ Ð\ȵÅ! çãdBÅ¥9 AÀ N!¹l‡@&œàdBÅ¥9 AÀ N!¹l‡@&þÆÀeéxIEND®B`‚mysql++-3.2.5/doc/html/refman/namespaces.html000755 000765 000024 00000011044 13515046515 021615 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Namespace List
MySQL++  3.2.5
Namespace List
Here is a list of all documented namespaces with brief descriptions:
[detail level 12]
 Nmysqlpp
 NexamplesStuff related to MySQL++ examples specifically
 NinternalNamespace for holding things used only within MySQL++
 NssqlsxlatStuff specific to the ssqlsxlat tool
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1BeecryptMutex.html000755 000765 000024 00000022233 13515046515 025414 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::BeecryptMutex Class Reference
MySQL++  3.2.5
mysqlpp::BeecryptMutex Class Reference

Wrapper around platform-specific mutexes. More...

#include <beemutex.h>

Public Member Functions

 BeecryptMutex () MAY_THROW(MutexFailed)
 Create the mutex object. More...
 
 ~BeecryptMutex ()
 Destroy the mutex. More...
 
void lock () MAY_THROW(MutexFailed)
 Acquire the mutex, blocking if it can't be acquired immediately.
 
bool trylock () MAY_THROW(MutexFailed)
 Acquire the mutex immediately and return true, or return false if it would have to block to acquire the mutex.
 
void unlock () MAY_THROW(MutexFailed)
 Release the mutex.
 

Detailed Description

Wrapper around platform-specific mutexes.

This class is only intended to be used within the library. We don't really want to support this as a general purpose class. If it works for you as-is, that's great, we won't try to stop you. But if you run into a problem that doesn't affect MySQL++ itself, we're not likely to bother enhancing this class to fix the problem.

Constructor & Destructor Documentation

◆ BeecryptMutex()

mysqlpp::BeecryptMutex::BeecryptMutex ( )

Create the mutex object.

Throws a MutexFailed exception if we can't acquire the lock for some reason. The exception contains a message saying why.

◆ ~BeecryptMutex()

mysqlpp::BeecryptMutex::~BeecryptMutex ( )

Destroy the mutex.

Failures are quietly ignored.


The documentation for this class was generated from the following files:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1LocalInfileOption__coll__graph.png000644 000765 000024 00000020357 13515046516 030501 0ustar00tangentstaff000000 000000 ‰PNG  IHDR¼·¨Ž4hsRGB®Îé ©IDATxí]”TEÖ¾À A$g$ A ’DAdAϲ. .iÙEQ<"‹ ˆŠ°Ê"("ì¬Â.H’$ 9Kfœ$ Ì ï¯ï²õxÓaºgè×¼î¾÷œž*Ýúê«[·î{Ý“É0Œ$"D™áé«tS Ì‚ Iá#i´¥¯bá…‘…@”Sº{êÔ)Z»v­SÔ=ˆ@ñâÅé©§ž `÷Q6­N¸¸8lžå†´iÓÆ ccáõœ½}û6EGGëK9†8¯¼ò ]½zÕ1½M«c†B Bø` ,m8!¼c†B Bø` ,m8!¼c†B Bø ¢mذ¡Ñ¬Y3óºAƒê{òÉ'Æ›õ*jÐŒqãÆj E`CM#S¦LF‰%Œ½{÷rÞU«Vj° EFÎ_§NCMN0`€Q«V->ïØ±£¡Hi¨ e("sûÊsÚœ9søZYi3 yOœ8Áéøƒ6^{í5¾^ºt)ç_¹r¥¡Ü>_²d‰™WŸ(wÆP“ÐhÚ´)ßB»êñ=ë©Üjò³fÍ2–/_Îú+brÚ‘#G e$Œ#Fp¹Õ«WÊMâ~©I`¨ÉÊeاOî×£>ÊeQGóæÍ ´í¯têÔÉpÒ“ÖwirçÎM 4jÔ(úé§ŸØJÃz÷Ýw´~ýz‚µW “XÓÒ©ÉÅõå—_¦?üW‰+W®ÊÁòuéÒ…©I‘„àœ9sÆ«AS“„¾øâ ºyó&Mž<™?óæÍ3ó?òÈ#lÝQ““`>¬o±ž‡âvžþyúë_ÿJuëÖ5ýuècæÇêóç?ÿ™”aàU(ã@x:ŠU‚~½úê«Ü¯ÁƒÓâÅ‹y¥0+ µgªÝù2já• Áª)r°5T›I¾VƒÇר÷üùó¬Þ—_~ÉiÏ=÷œñ /ðù;ï¼cÀ² 6ÌØ¶m¯X~þùg.+©eРA^-|ÕªUu6>–-[–-¤¶ðzÕ@"ÚÄJâK°ŠDEE)))³¶hÑÂPYNƒ…Wþ½™O¹(¬¿šôÆìÙ³ù\¯žÚÂëURíÌrz…°ð臖ӧOs=‹-Ò·|ÅÂØ"`QÄà£Z~ù Q#¾lË–-ÙÒ)ò³? «Q¤â+DÍš5ÙÇUD årpúO<ÁGüÕõ&Š©’àÇkß eÊ”1ÓiÁ^À—ÀßF„+Œ«ÀcÕB-Ö6Ð>ĪƒÎ§ØÛ@°Rh)V¬Ÿ'tÕ¢ý~5õ­;†¼KƒÍž?‚+¿˜&NœÈ›?åWr1åÓÀÙ]ÁÆMY^êß¿¿9ÐØk±ºúž>âõf-ˆ‚lݺ5Õ±¦¯Y³&Uš.çzDtyìØ±®I´lÙ2v3^zé%3ÍÚ†~Õ:­Iª6¹Z€D»>ÚpèôP?úÇ–Pï¥Ò_¹0„èËûï¿OíÛ·7£“&M"øÐðß@dÑX{XIøøˆ¬ J1a¯H€(Ø7À?Ç‚ܪU+3¿r‡¸žØØXRn‡u¢rqH¹|‰½ô/ëÝ£G3f õíÛ—£EXy¦OŸÎ«R5¨k×®ºR›pöûwíÚÅeJ•*ÅÑB”+žXvXô?þ˜PýÄþ~¿uåÐùÃâèÓ R†ŒúðŠ¨¬¡²¾ì_Â/…¨P!_Çւȉ4CÅÏõ-Q ø´ˆÐÀVá<~/äÇäÈ Ê R£Ü›T>¼ /r>DiA̼ˆº >œÓ´²¨>9ö*Èéøã-Jƒ4åÒj³hFxtjÒr‘Ý5Bô y ÒýTîGbp_M$CM3JŸ½`Á‚\}Äž`÷îÝ\çÛo¿Í‘¾PÔ„à| ,з|æÃcÆ;BÒKøŒ(ýÖ[o*VïVTEd å˜4®¢"ºÄRÑ“ðÖ| |Û¶m Ô£ÜCù×f²&<Ò@6é1ÓÒs‚ 'B¨›6m2”ËäV„W+ “ÒºAÖU<ž7ïúÚzD±ÉU«‹× ²5zÎFø}𤬕ß÷>/Ü—Ñ£G»•ƒŸŒpœ'ÁF qüÔƒ‡_ÞÄucë-Ÿ§ûøRŒ?zàá>®‚YøxôÃ"A"‚ððÏÇϱoÄ3*ˆXÔ«WÏ­8žªb£êI°'@¤ÇîÍÚ@["i#à˜bRK?µk׎7{ò¿´-”RõWüæÎëµ#&Jã´E‰Ž€þ Á©S—Pˑݬã|xõ(?´ßÆóƒO ×Õ[•ç” ãGîÐÎrìØ1~ÛÒ)½páñE‡p—ܹªW+Ó?¼«ÂÂþ}‰#”1ÑOµÐÇlZF°t¨Uk°z•áªzbú*5lx÷½ù`µéíˆdlÜx„Éž9s&õ:ÁÝ÷V‚¬BD7'„òðÇÅmQßlÊ¢¾™eÐüùÛT6tß< 2tiNý«$%åÅÅÅ«/—Ü%ùIê ðÿ K®€ „ŒþU²zõõý×›fæ¨(qkL0‚t"„ÐhfæÌÍêýö{''ß¡%KvÓõëw¿NDU"¶©{èG,Áéxbb-X°C}ƒ)u299….Ü%¤ù Áâ,ùíÛî¿!ƒ—Ê`ùE‚ƒ€XøààL³fmVOÝáÆFvÍšƒê—Á®I“ÈnÆ}"[zõj"-_¾×ͱ6†¥ˆýáíǘ}wõ-¡4Z2hÆŒMi¤KR Â É4ê‰Ý¨Þ™ñž¡¶n=¦~Pê’÷L’„ðÑ{%gÏ^¥ «o<‘ú=É,üÁ“V|²fâOtôÝwøæÌÙê½"I Ž{[2 ½rP%׮ݢ!C^L¥@mÛv\ýÇs©î—(‘?Õµ\!|à1MUcÙ²…¨lÙgRÝ»y3Iý&ä9õ›3©ï§Ê$¶ .-°J¥NE@ïÔ‘½lA@o ¬R©SÂ;udD/[ÂÛ«TêT„ðNÑË„ð¶À*•:!¼SGFô²!¼-°J¥NE@ïÔ‘½lA@o ¬R©SÂ;udD/[ÂÛ«TêT„ðNÑË„ð¶À*•:!¼SGFô²!¼-°J¥NE@ïÔ‘½lA@o ¬R©SÂ;udD/[ÂÛ«TêT„ðNÑË„ð¶À*•:!¼SGFô²!¼-°J¥NE@ïÔ‘½lA@o ¬R©SÂ;udD/[ÂÛ«TêT„ðNÑË„ð¶À*•:!¼SGFô²!¼-°J¥ŽE@ýw¹¿ÿýïø·`añ‰ŠÊkdËV2,ú‚1)X°`HpJ†Ô¿¼)W®}òÉ'Ž5‘¨ØâÅ‹iΜ9!Óõ"|¾|ù¨}ûö!n$(zþüù"¼øð‘ÀJ飉€Þ„BN"!|$Œ²ôÑD@oB!'‘€@ØþÒ¥KÔ²eKZ¾|¹ÏqLNN¦‹/úÌgW†øøxêС•/_ž .LÏ>û,}úé§tçο›Doß¾Íù'Mš¤þËwo¿ËFRư%üÍ›7éǤS§NùÏùóçS())ÉgÞ@gX¸p!5jÔˆ6oÞLݺu£¡C‡RÑ¢E©_¿~Ôºuk¿uÂD‰eõnݺE迈;aKx×®ž?zô¨iUaõwìØA°¾)))®Õq™mÛ¶qÚ7$Óâ­,Ú>}ú4·±nÝ:BÛÝ»w§J•*ÑÖ­[©ÿþÔ³gOúî»ïhܸq„É0uêT®öêÕ«tåÊžk×®¥èæèøñ㤞©pÝ×®]£Î;ÓðáÃÍt¬èË‚ èĉæ}è¬û|èÐ!B½(Ö*Èð¤µN:~««ÍO2§M›ÆeJ–,i4kÖL=áÌfdÉ’…Ó¾þúkC¹¤ž´FŒ…‡Õ‚E†ƒ•ƒ1aÂjÒ¤ Íœ9“Ü€˜˜êÒ¥ åÈ‘ƒöîÝK°¬õêÕc[>¯p;ÆŽK—/_&59Ò i•Eú®]»èñǧ-[¶š\¸Eõë×ç£õšPT»vm:|ø°yú|ñżRMž<™ð™7o9s†ÔÄäÕ®U>øàÚ³gýòË/¼Oùæ›oè£>¢+V˜Ù°ÒàÒªU«x¥š={¶™n'ExøÈ Q±bÅè÷¿ÿ=“Àu@±Ä¯_¿ž7¼pU@²æÍ›39•õf‚á‡^½zQž,qÍš5ùÚWYdB$mC0q ,=έÿ{ ¬DZ@p«`¢éý‡õ¾>‡ï޽ V«`S ‹®ÅO{7ÔeáAN_R¼xqÎ2zôhv}àþÀýøì³ÏHùÔAÙ¹s'ou]z髬ί 3\¸G® 륗^2“¬'¬>Øè–.]ÚLw=ÁJ€I «¬*X©¬å/R$rzšÆˆªM §îÛ·—þ*Uª0 ·oßN¸‡¨Ç;ï¼CjÃK-Z´`ë¨6®¼ôã¾¶ì°Ài•uUV½G4fÌêÛ·/lúôéÔ©S'‚{D &"8puÔÆ“ãî­Zµâäèèhö÷u,^—;G³fÍâü£Fâ¤H} /l]m͵õÒך¸¯Ó°iIJ^½zuBxîÛo¿e˪]á¡3fp~<̂ϋ°ß°aÃxO’gÏžýí´Ê¢mW=`ÝÑ6^{9r$««ß®];Â$Y &Ôo¼Á›O¼9 4hÀÉmÚ´!LBL^´¡û†zaѱgÁ=Ô§¢SìZa⸠ʺêèš'¤¯}Æ’!½aÉôª­"†òkÍbê!”¡\CÅá œkQÖÜX´h‘¡ü\C¹|û±Ç3TôCgáüžÊš<œ(Ël¨ÅØ´i“¡Ü·K"|¨õR>¾[ã7P« Ä©¢4†z¸å±n×üé¹µ°dØZøôZ!¸+øh•­V­š¾4pà& ©bäü.8\š† šy¼•53x8åÅ ãKÒª»H‘"‹Ãb»nŠ=fŒ€›âçseAXQ=´!euÙÇÇ« *THgMéËŽú±i¹?ÄÂg?lbñ ¦À?¹ÄÂß?†RC! „@ƒ•œ|çµÙÍ áÀø_¼xþïÿÖ<€–¥ÉòáñÎx8Ĉs次^/¨¢:= ToŒ†L?B†ðxòX·nÝ6-EGŽÜ¡Þa¿¦Þ|œ¢:Ý}¯&­üNO³†s®kÈ1jâÔNÈï^» {lì¦ ·.Í áƒÌ36©W‚ nõøñ ê…±“AÖ ²›Âqü8­Þ°<£Z¼Køèè,êMÆ-AÔ@šÂ‘pg@r-II)êµÝ-©Þ­×ir´!¼=¸z¬56v³úÕÔ¿€pþüo꽜ÃóËÍÀ# „<¦kŒ?¦~#ç’[Ú]·&Þí¾Ü°!¼=¸ºÕ:gNjwFg€ÅŸ;7^mdåU‰G!¼èþ¯nõý õS îîŒnú·ßiåÊ}úRŽ6" „·\]õš5ÕoØÜЗnÇèèÌjóºÙí¾Ü<BøÀcêV#BQQ÷¢3®’’î¨ßÁÜ¥~¥à¦ËuàÂK5ݾBóçoS>zêèŒkæ[·’hѢݮ·å:À„Ì»4îwЪ۽;A}5¯¨úÑÕ{›R¼|åÊMõ“ ÷Þ2Ä[ x0%b/™ð u{›Ú]øüó¥ê·g6ªß¹ìïš$×6# .ÍKõÎB@ï¬ñmlF@o3ÀR½³Â;kùäÖǼñNBžð£îÚµËVè’““iÓ¦MtîÜ9[Û±Vní×­[·¸ý .X³x=‡À$©]»6%%%ÊC¬uz-ü¿„Ÿþ™Þ|óMÚ¿?µlÙ’ºuëFùóç§ &p¨˜ø’uëÖÑ‹/¾H:/ ôyâ‡O¯2·oߦ‹/R¡B…T\ù,ݼy“Ê–-ËVàØ±c„ôråÊQTT9s†räÈA¹sç6›‰pïá‡æ{°*uà¾Ô{èÐ!*Y²$eË–._¾LE‹ÕÉ|¼~ý:†AÙ³g§½{÷RÞ¼y9?Q'H€A;~ü8]»v}ôQŠŽŽæ²(]q9sf®G_s È©P¡=„@ûÿ–î—_~alªV­ÊXè4XK¤eÉ’…Ê”)Ãmë4oG` ¡ßáÇ©xñâŒ?òŒG‹-¨T©R\gݺu½UÅc†qÞ9sæä|¨«Ê=Ú‡6mÚPµjÕxE]´hµjÕŠ.]ºÄåÐè‚zòäÉú! rúôiÖ±OŸ>”5kV¾‡?Þ0ê€I’+W.s”)]º4cdÎàÉ}ƒÕ«W/ªY³&mÛ¶Õ(PK+¤råÊ Ò‡~ȃ !œ?þñôÆo0  +W®,AÁ‚iäÈ‘ úöíÛiàÀBgÊ”‰Ê—/Ϥ]¸p!×£ÿ ^L 0¬ÜX¬÷ߟªW¯N{öìá4 ègŸ}Æd»Ð·o_5j÷ÅzöÒ’;vÐàÁƒYodÇ5žô¡?Ы&&>ú ½P:AW0ƒu†HK€7tGy´‡IóöÛoSëÖ­éoûãôÍ7ßðÇÄøïÿËîµNôn&&|÷îÝéOú­_¿ž' Ü"«ÑAyXìÙ³gÓòåË™ðøÃè±ÇcL16èʬzœ;wîÌí÷îݛڵkG:t`ݽaöïÿ›Ç }ûõ×_¹uêÔáIˆ6îGæÒÀ:à -cçÎlQg̘Áƒ ‚=z”š5kÆÕ3ÿ§Ÿ~b7iÒ„¦NÊÄÃà Xâyóæ11‡ÎÖøûï¿ç|º¼§ŽÃzc)†Ñ1)Ö®]kfÅDúÏþC–ä믿æ4¬˜|zÕp½6+p9q† FUªT¡ùóç3¹`Åq–rÊ”)„•ǹsçÒSO=Ån6qâDB^ýމ‰a½\šðx C3vìXƘÄh2}út¶þ˜¼={öôX7ãââhéÒ¥ôñÇ3V°¾ÐO(Ož<Éå*UªäV„à vêÔ)3 ¤Ä~¸Ö«W &Á|Ày0WÜð…ò`1¹PfóæÍ¼R í~$`„ïÔ©[å'žx‚õµ›£¯±¬5nܘ—l²råJKà#<Â.H Ë?nÜ8°ƒrG±i*R¤çƒuô& MÓ¦M¹ä+V¬a…Ððà¡=¤ëU ×°Žz`\¯uy×#ôƒK€åÖ VVìüùóïÔñ®Ȇå °üúc9ÆdAš¶æp‹´€øÞþ¬UàÇë:p_çHC›÷#Ø·@`õ´€„´ —(QB'±Qxþùçù”I“&ñ$Š%Ü_îZ0ÓSå0IáJaÒiÁ> ã á&ÁrëqÔy°jÁ€Ô¨QCßbrê ­—s¦ia¦ÇC׃2Úï÷7:¤Ûñt¼7M=¥¦ãž&¶¯"pk@t,°xXâ!X²^yå^j á±ÄæË—Ó­ „7±ZHX*X+É­õÀõJkòxkÃz_OtXI-ØG@@ \-pïà;COË6\·ñãdz/¬óù:ú‹··z`ÙáÃÀè\A"¸H°àp{\{¾aÆf’s1K ×´0Ócu¿ý3•s9 á]êõzùä“OòÒ7yòdWÏÞ °OŠÜl¶°Db©ÅÊ0mÚ4^òỂ Þdƒo KBÁuÐnÊ ]¸p§°©nРWŸñóÏ?'í¸^#¢ØÐY? 5{,ã¨úÁÝ€u|úé§ nÍêÕ«Ùï…«+!,&4V?„ð°×€¾ÁŒúUX_l ¡?ô†K:kÖ,úòË/ÙåUÆF>?6ÕV·rΜ9òDÿgΜI… 6#sè °Dµ`5L 3ÏŽcÀ\_Êé ‚Ê`3 ?T ¢}ô½üòËì·ÁçEäìú‘ö /ð’‹ ‘ÕGÔu£.ÄEKt=xC ÒA@hÔ ÷ªk×®| ­Q£F<àÖkL86—øXmA?< A¬ºÀÿ1 ùË_˜ ˆH@ÁÂJ¢ÃGý׿þÅ.Hßv°‘Æ„Ðýòvä Õ¤ë<úžÕǶ¦ésB‰®‚Xâ£V^èf¸¨ï¾û.ÄÿAx«Œ‰6®iiafÍ›Þsýz°+GîMÓôÖ˜ü°®ðá¾¼þúën5Àª!LçI°2øŠOër¨@¼ V@ ô³n\]ëǞē€V2X7kžòúV|¼ &©?¸c5Õ­u|<‰/Ì<•¹ß{A%<¬bÑXN›7ožaÝA ¸5®‚hˆ~ŒîšRyŠ+»æ“ëô!·.M¨ÈqiBÑ3tðæÒ=JºŠæá€€>FQúà7Bx¿¡’Œá€€×M«ŽÏ†C'¥‘‡^‚ÃÛª®âFxÄcñ@DDejõDx·(M(wRt|! >¼/„$=¬‡ÕpJg|! „÷…¤‡Bø°NéŒ/þE~òʃvG˜IEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1InteractiveOption__coll__graph.png000644 000765 000024 00000020601 13515046516 030565 0ustar00tangentstaff000000 000000 ‰PNG  IHDR¾·¬{äUsRGB®Îé!;IDATxí]˜UÖ½03DÉ9#™%ŠaqAtQ@$HZ\@‘ýÈ Š(®ˆ вë"³(I%*$JÎ JÎq€úï¹þ¯¬ééžé©žšî{¿¯§^½üÎ;ï¾ûnU÷¤³,k©(‘…ÀÑtL|+²Æ¬£UhwzAˆD”ø‘8ë:fRâ+ "h/zãÆ´wï^/uIû’BÜsÏ=T¦L™ª-ªÁáÖ+Ò£G´õ†Œ3Æ+4C?vyJãcשS‡–/_žKZ«ð … òJWì~¨oC¡HB@‰I³­cµPâÛPh ’PâGÒlëXm”ø6ˆ$”øw0Û]ºt¡Ï>ûìj¾èĉéñǧüùóSéҥ驧ž¢%K–]ÁåË—éÂ… ’÷îÝÔ°aC:vìXÐåÃ-£ÿfn×ýû÷ßA ÁíÙ³'a‘EGGÓ!C¨[·ntðàAª_¿>?>¨J:wîLíÛ·—¼7oÞ¤‹/Ò­[·‚*Ž™Ò4ñOŸ>M'Nœ \»v-?~\æÚíûï¿§ÈýÕ«W…(×®]³ça'..ÎÎ ºmÛ6âv>Ž9B«W¯–¼hïäÉ“ñÒqƒ¶Qç©S§héÒ¥r5™ÎŸ?OçΓòè4®SÐÞ•+Wl"Þ¸qƒÐgÈâÅ‹iìØ±4hÐ š;w.ñC>zå•W¤?>ú(õéÓG4÷õë×m ¾sçNIG}ºté—£GR¹rå(66VvÉÀ0Æùóçžž;ÇŒ±3 .`¼eËÂÂIóƒôŒàÉ-?À º?½{÷¶Š+f•,YRžö¦OŸÞzþùç-6ì§¿o½õ–uøða iï¿ÿ¾]÷‡~hEEEY¿üò‹5zôh+kÖ¬VöìÙ¥\£F,Ö†’— g×3gN«|ùòV§N$­lÙ²Öˆ#$œ!C«V­ZRgLLŒ•%KkæÌ™’Ö¶m[«bÅŠVîܹ-äcÒXÏ>û¬¤áÏ¢E‹$nÙ²e×µkW+_¾|nÕª•U°`A‹‚Ü;ÿlÚ´IÊM˜0Áš={¶„ŸimbìÀ$]ºt’^³fM‹±„Y1HuÆ |Ð?äÃ8x±H0F=+ðBßy§±ñqö'Pý÷Ú“Û4­ñ¡uxb饗^ûØcÉÖÏ-¶eË–ôñÇSÑ¢Eéᇦÿýï("‡üLxѦÇ—2ß~û--X°€V®\)ZñC‡û˜NmmêÃ;̾}ûèìÙ³b3Ť@ÚŽ;hܸq¢Ù'OžLø|ñÅH¢%JPß¾}åŠû P¯^½”öªU«F3f”{çŸ*UªH¼ÓÜ*R¤ˆ´¿gÏÑôýúõ#ô»uëÖÔ´iSZµj•³ Ùa>Mš4Iòc7ÂûR´ó¡ïÝ»w—¾#ï×_-»¥! Ò<ñAØÀ¬!…Ü k)bíMõêÕ³ÍvíÚH “¦ kWbML™2e"?mÚ4bÍ&&kFbM¬¹ äÁõ™gž¡ *œfØÞèò0@ˆ´uëVÉ_¹rejÓ¦ ñÎC¼cP©R¥ìW3ðòÖ›o¾I¼sI^\Q…w ûþ ³u€LŸ>ú÷ï/axqø/‹;ÎÛ·oókÊ”)r6À.e¦ÎXÜgãÆ% c¢@šSÐx}à5BÚš5kÄ+…3AXK “xjÄ'׫óòË/‹ÂôuÔ¨QkQskñR<&‚Íñ¬0!-ÞªM´¯kN‹Ïòa²XÈ aw¡í·ˆípÛ«ÃnAkäÈ‘’ž^4¶çžÖÒ’¯›#Ò6“ÉÊ•+—]|½:Ï=÷œÅ»”Å&¬xRPÖ|Øœ³ø°lç1^xm‡Í>‹w8‹ýõ’‡“ÄÕ¨Q#W‡™ŒÑxm˜ô»W¥œ/Ƽ8¤~v}Úm'ð¢W[œg$¹ÄOnÇAvþÕW_MP”mZ‹¿¤±l±gÃ⃤Åf…M|gFŸ5ºb ¯S@|>0ZüÌÀÚ¼y³½¨œy‚ £n6_,öÓ'p'⣠Þ9,ö½'¨’}ò~LJŒ?{|ü–KPQ2#¼H|Ï}…µ•+hphcš Â¯;Ÿ’–@þo¿ÝÅ/‡¹ûp+ÃJsM(ñCÆôÕWÛøwzâä›!CÿNO”r¡å3dˆ–¸x°…\*î#๷3Ýrè[È“'+ Ö,^ÃS§~Ï_U¼‹þ£Z¼x½ úvfhpNÐJË–ðÏ棑#[$HÓ×з3]‡Xð$jã{rZ´Sn# Äwa­ß“(ñ=9-Ú)·Pâ»°ÖïI”øžœí”Û(ñÝFXë÷$J|ON‹vÊm”øn#¬õ{%¾'§E;å6J|·Öú=‰€ߓӢr%¾ÛkýžD@‰ïÉiÑN¹€ßm„µ~O" Ä÷ä´h§ÜF@‰ï6ÂZ¿'Pâ{rZ´Sn# Äwa­ß“(ñ=9-Ú)·Pâ»°ÖïI”øžœí”Û(ñÝFXë÷$J|ON‹vÊm”øn#¬õ{%¾'§E;å6J|·Öú=‰€ߓӢr%¾ÛkýžD@‰ïÉiÑN¹€ßm„µ~O" Ä÷ä´h§ÜF@‰ï6ÂZ¿7à5éY0`€Å¨…å'C†BVLLÞ°ælêÔ©žåwl—çÿV‰%hÔ¨QÞÔÚ+¿´mÛÖo¼—"=Oü9rÐÓO?í%Ì´/I СC‡$r¤~²Úø©?ÚƒT@@‰Ÿ  k“©€?õç@{ (ñStm2õ+âùå—Ô°aÃxŸ®]»Ò7ß|“"HwéÒ…>û쳩+©J&NœH?þ8åÏŸŸJ—.MO=õ-Y²$©bvúåË—éÂ… r¿{÷nÁ䨱cvz¤Šø¤… Ò½÷Þ+ŸråÊÑÊ•+©AƒÉ"M R,_¾œöïß(9Åâ{öìIXdÑÑÑ4dÈêÖ­alõë×§ñãÇÕNçΩ}ûö’÷æÍ›tñâEºuëVPe#!“çÝ™·3 ¯½öš] „)_¾<Í™3‡êÖ­+ñ ÀÖ­[éÈ‘#T¥J*V¬˜ÄoÞ¼™ *DÕ«W§téÒÅK777nÜ íÛ·®ÕªU£¨¨(“$WÔsàÀY„Y²d±ÓŸ'Oºzõ*mÙ²E4z‘"E$}ñâÅ4vìX4h½úê«v™^½zQ“&M¨OŸ>Ô¼ysÊ•+9s† (@;wgÏR5(C† têÔ)ºté]¹r…Ž=JP±±±”/_>»¾@cL¬ovápxùñžÜV­Z5è.¾÷Þ{ò$ÔY`ݺuך0a‚DŸ>}Úzä‘G¬ôéÓ[L¹8Ð.2lØ0‰Ë;·”«U«–ÅD’ô²eËZ#FŒð®]»¬Š+J{¬™­‚ Z«W¯–4Ö®Ö< iÙ³g·þÆoØmðB³êÕ«ge̘ÑâÅ"ù>úè#IoÕª•ÔÅ‹ÂÎo›6m’¼ËìÙ³%\§N‹É.aôçðáÃÖóÏ?/}g~Z5kÖ”~!Ì‹PªJlŒ‰õÍô#©k¦L™<ÿä–’Dj¦ß.ñY#Zø<öØcBî *XçΓ¡°æ´Øn¶Ød‘ûÉ“' iØ~¶V¬X!áO>ùDÒöìÙc±Fµºwï.÷Nâ?øàƒkXkÇŽÛÓÖO­ZµJŒ8D2ÁÅþ†Yƒ¶˜|Ĥ›zÞ¼y´mÛ69hž?Þ®æÙgŸæT‹-hïÞ½’%gΜv>gåaVñneG<˜2gÎLè+ƲlÙ2;Í_ ˜1꛿úÒj\XÚølŽÄ›Þ½{Ó˜1cèÅ_¤ŸþYlag6SèäÉ“ÄfØôNb˜HsÊO?ý$·~ø!ñËXvRÑ¢EÅnǯY -,À¼yóÚyLÞ# . ^‚ʼnƒ*ò1 ÷¨óĉ&ÉïõСCIŽ1PßüV˜F#WitÁt›íl!u\\œðpp5 -—á°pèå-Ü$Óúõë%ÍŽà@áÂ…å–Mb›Z>È÷öÛoËAšÏ ¢…±` íq õ•@fÀ7nÜ(Þ(ß2sçÎ%6#d§1i8¼a3&A_Mš¹3Æ@}3u„Ã5,‰7> , ¸õðv'Û»BF˜9ØîgΜIׯ_§Ñ£GËË__áºå±³˜vŒvdÒñÃòp›ÔÖ Öy@ô͇Kø$%x²Š`þið*ÁŸä§È³„pKjŒA5~j ®m¦:JüTš‚7ôMÉT‚^šUâ§ú ná7;ø”J݈Øf=oãã)k8>IÌ» ¿¦p–Οÿ.bÉ—šO÷ljv ±¶ñú^ 7¹rå& ðeÍMÇßnÓñàå@¼âQÙíi_¹reÂ'Üdúôøµ†5¬íã˜÷ñ¤¿½)nãôòxÔÆO…Ù‰ýAÌ·˜˜(~oh}*ô@›T⇘'N\ Õ«÷³Æ·(.î&¿j¬žO)ñCŒøœ9ù‹$éìVÏŸ¿Bß~ëÿý{;“R%~ŠCšx…±±kEÛ›\11éùi5w ¡º*ñC…4·sèÐ)þU…#ñ¾èw‹æÏßÌßÜJú]ýv5ì›Râ‡pŠaÏGGÇÿ 4íÚuþÑ«m!ì‰6¥Ä!fÌXË­n&h1* æÎºñáJ|÷°W3^O8pÀÿÁñÞÎ’%;د5^½q%¾{ØÆ«yöì ü=Ø„fŽÉ„è°õUBƒ€?48ó—Á׊ß>Psxq¶TBƒ€?8¯]{€ŽûýǤü5‰Zx°…\*î#àéwuÜ~hZغõgþQÙbñܘ‡Ÿæxæ}Ínw?dµqã!þU¶JvœÜAÀÓogº3doÔÚ²åTªT>9²…7:Y½Ø­¦NdM¸ŽöÿPâ+"%~DN»Z‰¯ˆH”ø9í:h%¾r "PâGä´ë •øÊˆD@‰‘Ó®ƒVâ+"%~DN»Z‰¯ˆH”ø9í:h%¾r "PâGä´ë •øÊˆD@‰‘Ó®ƒVâ+"%~DN»Z‰¯ˆH”ø9í:h%¾r "PâGä´ë •øÊˆD@‰‘Ó®ƒVâ+"%~DN»Z‰¯ˆH”ø9í:h%¾r "PâGä´ë •øÊˆD@‰‘Ó®ƒNðQV¯^Mï¼óŽ"ã2GŽdãt“òç¿ìrKZý¨Q£¨D‰N v' ~ll,µlÙ’~øagF +iË—/ÓÚµkiÓ¦Mü?Ȫ9û¿;à?:t¨3£†4‡ÀáÇ©C‡~û­6¾_X42ÜPâ‡û ëøü" Ä÷ ‹F†;JüpŸaŸ_Ò<ñ¿þúk3fŒßÁ¥dä|@S¦L ªÊ .P\\\PyS*ÓÍ›7éüùóvuo¼ñ-_¾Ü¾¿Ý<#ãÆ£nݺQãÆ©k×®ôöÛoÓéÓ§ƒ®òêÕ«„z 8pöíÛ7Yåƒn(Ó<ñäÖ­[“1äÛ˺}ûvÚ³gOP…›5kFË–- *oJeZ¹r%5mÚ”nܸ!U‚lwºø@îž={Ò_|A•+W¦îÝ»Óý÷ß/c{î¹çèÀAu~ô#FHÞ[·nÑ•+WȲ¬ Êº•鎉ýúuúõ×_ ç—_~¡ýû÷Û0»ví²'ãØ±cñ´2ž8q‚.^¼ho÷îÝ´mÛ6ÇŽäÀÁÏ;G˜T´é+—.]’º0ù[¶líbò€FK:tˆ@d'10×®]#L Ä÷ÞÔƒ+4+êBù;wʘ1~ÆA:úläøñãÒ'ôÑÊ›q9rÄîÒËæÍ›e¬&¿¹¢Ìš5k ÄaΜ9#ÉHÃz÷îMµjÕ’<¨Ë)Ø‘œqè°5}1y±Ãù„°ALX@àËÿû_*X° M:U>wÝu—;Ë믿NÙ³g—|˜#(ô x¾üòË2^Ó—Û½Þ±Æ7 gÍš•ðÔƒ‚¶…6›1c°Ð®ÐõêÕ“AíôÝw߈üç?ÿ™þõ¯ çÍ›'õäÎ[¶XLÈÈ‘#©lÙ²ò™ò¦mç ¢W¯^ôÕW_ á±8¾ÿþ{; ÔܹseÒ ¹?úè#IÃ$`â ñ½—HÇ´Óí€lëÖ­ ‚¥OŸžúõëGmÚ´Â-Z´H&y¡‰?þøcÙ)LuØ%AFã‡ö!îܹ³ô ‰1>Š&´(m˜1à¾~ýúBƒ40ÂÏ?ÿ,‹ gΜ9Òæ¾}ûhÚ´i²sa+T¨€jHùòå%îèÑ£r „û‹/¾HuëÖ•ÝÇì¦2ð» l~˜Sú„ÅmŠuìØ±Â%(­/¿üÒ$ÝÑ5ň߮];©jÖ¬)˜Ð¤æÛè#<"¤á!˜´x€räÈAÐ"0‹  °¼ÿþû¢=±ý¡,ìæ H>LZ )Y²$=úè£Òò*THv “$͘1£]gCÐ>ìVCß{SÞ\QïÓO?-;ØOY<ˆœsâÄ Ëœ¥L·{M1â;'2±ÎÀÜÁ¶sàã©Ð¾}{±³¡åaÂ$€6„œ:uJ´&Â8D Œ@ƒ¡®{ï½×DI=ÐÖlµ‰-"»Ÿ@°ã…¦GNrAÓÁvÅ¡ÔW°Íc!ÁôÀ} ’+W.Á dAyØ×Mš4ñ­&Þ=” òsÔõ׿þUÒA2œ¹`Vá<Á®‹‚¹™Ó;ÎFp>ñkÔ¨a—K wSÖyEû7n¥hðÄÍ9'&ÞY.%Â)fêÛ™?ýéO²ÕOž;v샌1GL:¶u<¬B<´'Èíë΄9{¸ a#›-ć¦Å€H L·~|ìZFí‡>·b ¶lv,~ô¦´¥9ÄbŒÐø¾ö>0BvŒäüðÀ xøânêfÚôÅ-1ÜMy("œÿŒIeâqÅN…„¶}ëvæKnؼ–œ¬÷ñ“ÛH0ù18œØaÖÀŸë+~\‚¢téÒþ’Ä¡çÑ7ƒïAÌ7=%îÍaßÔ•?~þ¶U~s›èýwއ:|Œ`Ñú’iÀȘŽ&o0WxVœÎe`w;moyÃ=±ÅŽ…šÜÅê¯ýäÄ…ÌÔA§`>àІí͸°’ÓY“[º?ÿ2ÈíèOlÅŠý%iÜ"îwXµkÅSÅÔqm4Z±"à@ 1S'ä^G¿4¨¤JüTƒ^NM”ø©‰¾¶j<Ü¿sªõLVîóåÕ$ >üÌxD­¢„x Àù¾S¯ŽIЫ"ÆìV?ŒgW‡%~`l4%ŒPâ‡ñäêÐ# ÄŒ¦„1ÿ" +öNÇCIEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1SetCharsetDirOption-members.html000755 000765 000024 00000015323 13515046515 030143 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::SetCharsetDirOption Member List

This is the complete list of members for mysqlpp::SetCharsetDirOption, including all inherited members.

arg_mysqlpp::DataOption< T >protected
ArgType typedefmysqlpp::DataOption< T >
DataOption(const T &arg)mysqlpp::DataOption< T >inlineprotected
err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
set(DBDriver *dbd)=0mysqlpp::Optionpure virtual
~Option()mysqlpp::Optioninlinevirtual
mysql++-3.2.5/doc/html/refman/structmysqlpp_1_1RefCountedPointerDestroyer_3_01MYSQL__RES_01_4.html000755 000765 000024 00000012602 13515046515 033275 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::RefCountedPointerDestroyer< MYSQL_RES > Struct Template Reference
MySQL++  3.2.5
mysqlpp::RefCountedPointerDestroyer< MYSQL_RES > Struct Template Reference

Functor to call mysql_free_result() on the pointer you pass to it. More...

#include <result.h>

Public Member Functions

void operator() (MYSQL_RES *doomed) const
 Functor implementation.
 

Detailed Description

template<>
struct mysqlpp::RefCountedPointerDestroyer< MYSQL_RES >

Functor to call mysql_free_result() on the pointer you pass to it.

This overrides RefCountedPointer's default destroyer, which uses operator delete; it annoys the C API when you nuke its data structures this way. :)


The documentation for this struct was generated from the following file:
mysql++-3.2.5/doc/html/refman/refcounted_8h.html000755 000765 000024 00000011627 13515046515 022242 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: refcounted.h File Reference
MySQL++  3.2.5
refcounted.h File Reference

Declares the RefCountedPointer template. More...

#include "common.h"
#include <memory>
#include <stddef.h>

Go to the source code of this file.

Classes

struct  mysqlpp::RefCountedPointerDestroyer< T >
 Functor to call delete on the pointer you pass to it. More...
 
class  mysqlpp::RefCountedPointer< T, Destroyer >
 Creates an object that acts as a reference-counted pointer to another object. More...
 

Detailed Description

Declares the RefCountedPointer template.

mysql++-3.2.5/doc/html/refman/functions_f.html000755 000765 000024 00000015410 13515046515 022014 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Class Members
MySQL++  3.2.5
Here is a list of all documented class members with links to the class documentation for each member:

- f -

mysql++-3.2.5/doc/html/refman/tab_b.png000644 000765 000024 00000000251 13515046516 020361 0ustar00tangentstaff000000 000000 ‰PNG  IHDR$ÇÇ[pIDATxíÝMƒ EáÇ»ÐÔ¸¸u`âÀ´V0РÆ}:t]DÁ²s¿ä®‚¶ýËu¥ø|’xùî½À>ÿ1»& mÄ8ÜSÙÑxÜLÀUûšÞ²ÄiE–ŠåOs„¢’nxàÒêÓKN²~jIEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1MultiResultsOption__coll__graph.png000644 000765 000024 00000021010 13515046516 030757 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÉ·¸îz´sRGB®Îé!ÂIDATxí]˜EöÀ’‘œ” ¢Ày€ A$üA9‘C9‚¦ÓSO”“¨?Pä<ð@Â)Áï$£€dÉ9J8‚dœv õ¯ß㪷wvfºYfwf¶ßû¾Ùî®z•~U¯^¨žÙ J©ïIH!p-ƒ(WÒA€â2 ‚€ ’àøH® @"$²bòÞ}ëÖ-š:ujØû!=3f¤–-[†¾â×ñŽ{||ù$}ÿý÷,,Û·oOZ ÀSáÂ…iòäÉœ‹3©«W¯àôp2ÞŽdºvíÞRVúœÄU7ÁàÀ• öï߯¶mÛÆånÞ¼©~ùåµaÃ¥°8íÌ™3êðáÃIê={ö¬:zô¨•¦5‚Z°`ÂÕN¨oëÖ­j×®]œŒ6õ"S[¶láþîÝ»—Ÿõbæ|ð­^½šÓL=zÇWè/ú±xñb¾š<\‘gúªßuÏ=÷¨&Mšp’Zuá®gÅŠj÷î݆U:tHeÊ”IiSZ+©¸¸¸$}0cœ={vœ ÆÈG{¨åï„ô9 ÷ÿNÊ„‰7‡sM˜;’5kÖ0ƒ øŠ²zÇU7¶žkժŋæ‹/¾PúÕe2€hÔ¨‘ª_¿>/F½3óDæÈ‘CÅÄĨQ£F1VçÎSz÷æúPþ±Çãû9sæ$’3fpz½zõT–,Yø¾bÅŠêÈ‘#\ÒêÔ©Ã  íèWp8òå˧þú׿òóÂ… ¹üÏ?ÿÌ}Ïš5«Ò¦•Åk¿éÙ³'ó¢ŸíÚµSh3þüV^}õUf×Z„ù0†O?ýTuéÒEU¯^óP8 ýÀµW¯^œg0nÑ¢÷*THíÙ³ÇÞ ÷Ñ$$éÖÜÊ;7;vŒ†JË—/'˜ZCФI“Hïè´sçNjÛ¶-eȦM›¦ç™èôéÓ¤!µoßž¦L™BóæÍ#­HkêÚµ+õíÛ—Oüû÷ïOZ3^¸téÒ%*]º4—ô§X±b¤wsÒÚ…ëêÞ½»Åª5ýú믜ÿÔSO±O¡wt· …›ïK”(Aݺu#\µàñÀñGz¡s2úB_ÿùϲ)5vìXÂgÖ¬Yì»há§o¿ý–ëfæÿýÁX‘Ö¤†FM  %K–Xlz#­iéҥ܃£Å^n‚Š{d¦T“¬[·Ž{ÝMÏ•?~|8i?†´}OÚœ Aƒq9h¨š5kryüÑBcÝû»)Uª”• Gm²ç¡ ЩS§L¶ßk™2e8šÉiŠ“Ë–-ËW_M‡v‚µ7¯1ƪU«&©˜BsÂX eÏž´bÓÕ5Ýš[Ú†v5QÏ>û,¿eüõ×_³©Õ¡C.§5 U®\™%B8WûôñdzÉV°`ABtÉ1k̳ïÕÖN.›L†Çž·råJN†IŒråÊÅa_í#Yá[ÃèÔ¢E‹HûV¤xN¶·¨ÛæÍ›“ôÁ”5W`AÒA“DZ“’vú“”s‹±UI”Þ¸[IQ:87ÝΙ3'i”úôéÃg 8ãíØ±ƒþô§?n‘"EXA+isŒ5˸qã˜özïÞ½ƒ6…ºá“@SÁiÖ¬™Åm¥MBÆaƱVªR¥ çkÓÌò—°@á£À 8}í\³&„ @Æ‚þä“O˜´Ǿ|+í|³`=ýôÓœ×Õ!侯¬£Ú$åïò ¾¨U«V|õÔGã1Ì )õILW/¶ÏaGƒ´£Íψ<š;w.§½ûî»&‰}D¥ôbPúû, ‘ Áƒs>¢a&¢…|D¨p…O‚°0î6Ñ-à û_›sjEEðI~ÿûß["D¡V­Zeõ!PtË0 âÿí™Ïƒ>¨´¦0,ì“hóŒ£[àAÚl´òÛ´iÃe‘¦ƒJ8O›cªnݺœ‡È|5}ØÈyÆ'1#‘@_†™ü‰&Ÿ$Ý…€ÌIÐd,L, »ƒm As>aÒqn¡wu>?ÀùÊCHìd„äÆÌ‹s;AHt´þÚ¶ó»ÇyÎ*|ëG„€ªEpf„³_‚Лó{ƈs8è8£ %E“Dü×wõâKU‚Ù„(Ì,½ 'kË_˜01Ì'2¼þø(À'¥„ÀSð¦"|,sÒaŒ&Hà/ß+iž÷Ià@FŒ‘â9×§Ö¤(Ù§±WR @Ò¦ ”=ÝÜ#<©IåË—§ *¤fé¾î¨ùŽ;¾¾Û¼yót?!^ u_~ùådƒô|Ç=Á“.yÏ›[‘6ÏÇ_ˆ´.y¾?Qã¸ã¼ï_¥gÒÑ#}Ê¿“ÞyçáôL°©S7øÏ”Ô4C@„$Í NÞЉiƃ„_'ñG0Á`ŠÁ$ "$áÞü™2%uØýu'˜Iæ_ÒB‹€Ihñ¼£Úðú‰þ9]Ê’%“õAT+sæý|û-#Q®;‚5äÌQóª|ÈGæ ½jÝúÑ$½€ùõÕWK¨S§ÿÓoç²òð]s¼ài~XÏÊ›4A â_•O"¤‘;ŽëßþL«Võ¤’% FH¯<ß ùú®ç—€àˆ€ø$Ž ƒ×!ñú ñ;" Bâ‘0x¯¯¿#"$Ž ƒ×!ñú ñ;" Bâ‘0x¯¯¿#"$Ž ƒ×!ñú ñ;" Bâ‘0x¯¯¿#"$Ž ƒ×!ñú ñ;" Bâ‘0x¯¯¿#"$Ž ƒ×!ñú ñ;" Bâ‘0x¯¯¿#"$Ž ƒ×!ñú ñ;" Bâ‘0x¯¯¿#"$Ž ƒ×!ñú ñ;" Bâ‘0x¯¯¿#"$Ž ƒ×!ñú ñ;" Bâ‘0x¯¯¿#QùŸ®²gÏN×®]s\´1d̘Uÿ¯Äû(>þ¨þ÷o7¢­ûŽý-T¨:uÊ‘/Ââ¢ö&¾ýöÛôÄODžÒ@Ì›7fÍš(;¢Ó£VHjÔ¨A­ZµŠhp¥s‰œ>}:j…D|’Äy”;AÀ/"$~a‘DA ’D,äNð‹€‰_X$QHDÀBÒ­[7jÚ´©õiÞ¼9½ÿþûtôèÑD$RxwðàA®÷øñã)¬Á}±M›6ÑóÏ?OeË–¥Â… SÆ iðàÁtëÖ-וœ?ž®_¿ÎücÆŒ¡Ž;º.ëUFOÉš5k‹¹ZµjüA¼~Ô¨Q„YBBÂ]Íýŋ駟~¢+W®ÜU=N…çÎKõêÕ£ 6Ы¯¾Jýúõ£¢E‹6€fÍšÑîÎU \“'OææâããéêÕ«NMK¾ŠBÊ–-›úæ›o\÷üñÇW­[·NÂ?lØ0¥g_-_¾ÜJ?r䈚={¶Ò;¶Ò»³•Ž››7oª­[·rþáÇ­¼-[¶p={÷îµÒ´à¨•+W*-˜Vš¹A=7näºpoèìÙ³êĉJ/\µnÝ:µmÛ6¥˜³õÁ©º÷Þ{UõêÕUll¬)Â×áÇsû£Gæg´}áÂ¥µ…Z±b…Ú½{·ÅèÐ!•)S&5dÈ®'..N9sÆÊ4F´àÀÆ`ß¾}\¯o?¬JÜ Ÿzs Ñɱúd7ú(BÒ½{w£ô 0зo_•1cF•?~•!CU§N…… :w_¿>ççË—¯½zõâ<_!?~¼Ê‘#‡Êœ93/Þ&Mšð¢ó²eËTTÖ¬Yù“'OäuéÒEU¬XQ•+WŽ2e!¬S¦Láº,XÖ$„ü *¨Fqz»ví¸Œ#K–,\NkÎÓZ„Ÿ1ÎO?ý”Û„à‚Qkb.×¢E «oXð{öìá²nþˆ¸A)„<)’bÅŠ©–-[ªçž{N=úè£, :uâ^aÇÅ¢7n?C+)RD½õÖ[ü >,°ýû÷óóرc™ñâÅÊ.$Øe±0Á}×®]\Ï{ï½Çå xÚRÚ/`Q»vmKÃAHЇÏ?ÿœµÀ‡~ÈÏhsàÀ|éÒ%®Ç÷Ï /¼ J•*ÅÉÔ3iÒ$ÞùM_gΜÉùØ&L˜À÷hÓI°1!yê©§¸ïK—.U¹sçVƒ òíJÀçhOø$zÑP®\¹¨|ùò¤w]öKp¯mß¾¦OŸNzW§_|¬ìë]“-ZÄÏÓ¦Mc»_/D~~å•WHïÔV>'ê?àƒSŒ²Z`ØO©U«á• ^œôå—_’BnS›EdwøK—.M;w&­…H (—ïåË—I/nÊ™3'§ùþÑ´e%WªT‰|­1}E½za[ùþnÜŒqÀ€”7o^ö~÷»ßñýÕ•ÞÒ¢öµ”;LªÞ‘­bXÌÚ¼!mËóB}ä‘G‹ÊöHÛë9:vìU­ZÕdñN3òí¤m~~ìСƒ=™Š/ÎÏS§N%m¦é—³ÐC=”,h§ÚÖ–|«ý*S¦ ój¿€ï ®p¾µÇ פC(ìäôb!¢cnÆhï^2Eß¼@‰«Â £µ UûôÛo¿q”EÛ ‡v®©D‰,8XdÚ‘¶ò°³k‡˜ó­D}ÁB½;wî$àÏŒ3¨ÿþüökÏž=YChûŸV¯^ÍÑ5{yí Ù­{Dµ I …| Ú*mFZYví„¨ÛæÍ›“õÕbÖ7Ø܌Ѿ‰ØË§÷{Ï‰Ž‘ö!ø³§Aƒ¤}6Kž~úi‚ÉÒ»wo‚ ´víZZ²d µmÛ–ç!V˜dÐÐ@C‡åtß,Á‡rŸ>}/ôéH¡n„oAرµ¯Ã×~ø´Ÿ`Y0C€?Ð$¯¿þ:éˆiÿ†BøŸÿü‡Ú·oOÐ’0« AÀµOÂc‚æBŸÑL9íç$k×íMžºô´"8#%Ž»žTvhq…s]¥J¥ÏJ¬Qöèу£Z‘‚G ˆÒ;4ç#V·n]N×»)G¦ôAç!, ~1bç›ö7nl…mõ™·:´–R&ÂöÁ¨®]»rDÍta\Ô1gÎNB8Î<únꆮUÙz8îZ¨8J>Dãìv›6m¸<ÒЦ>+r£qÜõá«éžzòÉ'•‰šY‰An¢Ùq÷D8ÈÜ%É™6ƒÔÉ“'“¤ã¡VD¯ôažÒ&L²|{"[XX&fÏCö³ àœ9h­Àaãõë×ûí„¡Z}¸Èg-8wñ%œÇ _º“1ú–uzŽf!ñŒã®wUGÒg„?‚¿³Ç éð(Õ¬YÓ/«oðî„`.i-èX>LåÊ•ýòÁäóGw2FåÓkšI:›Y„¶Sû™t™ãpDH!Š. „B‹€g¢[¡…Mjó"$6Û î_{°®§ÛîˆDØÔ~öÙOÖ#éŽüîV­˜˜¼úäû%}:?Z¿òq9‚zš®8½šVB^KtþîÖĉÓå{CóçÕ§ô‡éÍ7êß»7ä³î ñP4RTj’hÚMŸëÔHœ¦J•ŠÓüù]ÝžÔG N|’ÔÙU ;wgóöíGéС³®Ê Sê# B’ú»jaÆŒMúåÃÛß ‰‰ÉDxŠ DH"cô3¬×?æpûû 7õ¾ë"¤gÒ ’XëÖ “'/%éÉÁƒgô÷RRÿgŠ’4*~!ñ KÚ&ÚM-Ó2L¯éÓÅä2x„ó*BNôuÛ7oÞÒßßh™Z¦;0½¦LYoåFDHÂ>š^¾|]ºäÿâ`‚Á /"$áÅ_%x£þþzâ/Ø»sÛäÚhO’û0 BÐM“×®ÝÐ'ìÛô÷âýÿêL.ø%0Ʉ‡€Iø°§… wꟺýãÕºSlÙ²=²%= !I5áÆ1ǯ Á± òÍÄ0aS*6öšþúí®C7âãç#¥Jҿߕ觜9ÿÙL~—+LCðL³ò‚cMõŽÇ©qãÁ´jUO*Y²`õÌÓ]‘==ý2xWˆOâ &aò2"$^ž}»+DH\Á$L^F@„Ä˳/cw…€‰+˜„Éˈxyöeì®!q“0y/ϾŒÝ"$®`&/# BâåÙ—±»B@„ÄLÂäeDH¼<û2vWˆ¸‚I˜¼Œ€‰—g_Æî W0 “—!ñòìËØ]! Bâ &aò2"$^ž}»+DH\Á$L^F@„Ä˳/cw…€‰+˜„Éˈxyöeì®!q“0y/ϾŒÝ"$®`&/# BâåÙ—±»B@„ÄLÂäeDH¼<û2vWˆ¸‚I˜¼Œ€‰—g_Æî W0 “—!ñòìËØ]!ì?]­Y³†>ÿüsW……)´ÄÇÇСC÷èw‘2g–ÿ¸ZtÝÕÖ£Gzä‘GìÌqÉþgâ‘#GhòäÉôÄOØå>È›—èüù4jLš±¸yó&­X±‚^yå_!¡dBbJ}ôÑGæV®‚@ºGàêÕ«ô‡?üÁï8Å'ñ ‹$ ‰ˆ$b!w‚€_DHüÂ"‰‚@""$‰XÈ à€Ž»_îLœ?>íÚµ‹:uê”j½‹‹‹£~ýúQÆŒ©oß¾”5kÖ$m 8.\¸@o¿ý6•(Q"IžïÃàÁƒ©ZµjÔ°aCºvíݺu‹räÈAˆ*~ùå—ôÁPþüùiÀ€téÒ¥$Å *DµjÕ¢ºuë&Iõƒ½±±±”-[6’Î쪙ٳgÓÒ¥KiÏž=<®2eÊгÏ>KU«VuU>&®*H¦¨×$X\Û·oOh«¼~ý:­_¿žÖ®]K8G²ÓhÁ‚œåD[·n¥ß~ûÙ°!`  ",J)~Þ´i]¼xQŸ™”âÏý÷ßO¿þú+õîÝ›~üñGæI­?ö>¶hÑ‚~þùgWMýãÿ !C†P¦L™è¥—^¢æÍ›Ó‰'èý÷ß§3f¸ª#&®*H¦», 83&ÿþýÜML:ÐîÝ»)!!ÓNž<™lw<}ú4a§6„hÇŽ¼`L®X@,ì6hÓ—._¾Ìu¡½_~ù…wgÃsãÆ :wî?>|˜vîÜIH3„ÅÏ‹i¾ÏHÃnºxñbÜZ„gû.‹:Ñ7ŒßЙ3gÈW€Ì80ä/^œµT^”üp¨õÖ[oñçoû}öÙg”;wnZ²d‰aáë©S§x¼¿/={–6nÜH¸‚†²?cîÌ\1_ àü ù«mLŸ>:tè@Ÿ|ò k¶mÛÒˆ#X‹|õÕW\O°ypƒ Ö 6ª½{÷Z ú…tÌp†ã9Tt׿־}ûØÌÀ„nÙ²…ûU¹reÊ’% Ozè!6lõïߟbbbè‹/¾`>˜( ezöìi AÁ‚yQ<ðÀ<è^½zA† ¨lÙ²„…>wî\®ÇüA½²óú4“ aiÚ´)uëÖµvá*Uª°€ uc烃û½÷Þ£¡C‡òa’ý| °.[¶ŒëΞ=;§a—EúÂ… ùÂ÷î»ïÒ÷ßÏõ"§¸5jÔ ×^{yðgܸq´jÕ*~îÓ§½óÎ;Œãwß}GE‹µøì79sæ¤{±E:ú“»7ûÏþ3½ð ,¤0Ý0`ÞÎ;S³f͸mà4|øp®Ò¾}{úúë¯[Óæ›o¾ÉõŒ9’¯mÚ´asÐ_0³òåËÇõ˜ò¸byã7èõ×_§•+W2O y˜8qbPL¾ùæÂ'W®\, •*U¢?þ˜7˜º˜§mÛ¶ñ†Mªk×®<^{RrךÄ4Š ÄI=:‹]“‚…‚Å…sðàAjܸ1‹´|ùr^ô 4 o¿ý–ÀF=°Ëg͚Š}РAT®\9Ÿ)oÚ¶_!<ðOæÍ›ÇÂAÂä‚ðÁ\™0akµQ£Fq&Ö,Pßg0=öØcÌk76ˆ£G¦èíü’:uêðnËûü) ­Ïœ9sx“¶6‡^ع!œX(o—.]x¡ÿ÷¿ÿe¿&"0ŽXàX`ÆœóiÊï#ê‡Ö½{wzþùçƒÖ‰¾bóÂæèK¥K—fa1f&òýÍC0L°¦þýïóœb<˜¿cǎј1c¬æ0ðë°î°þðÃVÞÝÜ„LH°aàf!aÇÂmž±[Õ¯_ŸA‡p€° c‡Í“'+VŒM3L*4 v9ìdP«( Û¸H‘"ÌíˆJ–,I5âvÀwï½÷²&2ü°•áx£=äí‡gìxFH|ŸQ6ÆcÌ\±Œ¦1m„êŠ8às¦0ƆZ´h•/_žÓà¯`‘ÂÉ^·nÝwß}̃rØ]_|ñEÂN MœR V'ÌFìðþèÊ•+¼»ÛÛ4þÊ# ¯Œ`#nÒ¤ ³`~ÀF†°yT¨P (À„(t׿–év~Ô>ƒ`°ƒAjÖ¬É;L,Ph„ 6)´ÈèÑ£YÀg´L6C–@d&ÒäÃÆ7u Í6ï„ õàlÂXS/PJèü#û#¦,4LGhB˜nð`VÂL5„… ̱X°3Ãa†ãŒšòå—_6¬Ö~¥ V'p‡6ñGðW`þØçæNçcÅ&ÍfkÎ>vã…¯ Jlñ.k3ÂàT L.&v=Ì Ð† ØéƒŠ‡ -v.ÈîhÚÕ6gÚþÀ 6„Å MdŸ{=PáÁÎÔc¿B“`#€ê?~ü8Ahìdp€¹ 2N±'¥÷>ú(k.´ ‚V©^½:o,Ø\𩉠&´|Ÿ)S¦nüøñ'}4ÁÔhq#ÏNÁêDˆ掿HãêÕ«ÙÜÂièNç@Ý\„_eŸ?ƒ½i#T× ‰ÛÕ®]›M‚±cÇòd67ìID%Jj“ Q˜Ø= 0Áؽ1°I€ƒŽö*ƒ1ùPí-€ç ø2aíûÌLúú„2S§Ne³ÇhL“( f"ÞŒá1W8Ôj{tÏäº Ã,1œK`¼ÀN1òjðÃ?dÿ úá†#{,8”ƒ€ÀÏ Dè#6%Œ!X0‡±±!H@Ê€>ü%ø4jCæ!&˜CDåL9ø¹›7of¿ÎÔ™Z×™[N4R¡ÀN‡Ú8 (‹ˆ Ðà`(ØùˆNÀðÈ{æ™gx|ðÁy’M›¦nâjîÑ>7L#_²›&&vf„eÛµkÇ ñ£>âlÌ0˜¦Ð"À¸cÇŽ,°çù‚Àô å`–`ði ÙûMm„9yî¹çÖ‰²ðdAجôŠv 40ïŠñÂaŸ4i›oèwË–-¹Zƒ©iÃ>“–Òk²/]alݺµåœ¦´â`åàˆbÄ®`'˜&8=‡ã‡ÛN°›±ë!; Á7Œ(ltœŠ:tˆpgÎ0àøa—Å¢„}‹É3¦œ½PÝcgÇxŒ¯¨^3vxl)%˜PÐH/BÄv‚F„ã ß.t0[ éÐ?J0‚@B³CP@ê4u@“ASAë¡Oöìf‚a\!`X¡œ?¬ln°h|üÌä_º2M+‡h:‚s_ÂbAìÛAá7„z°“"»ˆçnÓ±@Üï¢vSÆ—§pá„?òÕ‚† ×w#2y¾W_AT§) Žs/' 4Á0®n±ujßm~š™[èL˜™3g²Ú4¡<·µóÁä€ÉåK°µqêêlÅŠýeIZ"ós+ çDš\!ÌÜJóè–« “ AˆDÐdHW"’ÈœéU!ÐqG ]Hð Á^aI&$ˆk·jÕÊ+ØÈ8 ¬{añdÑ-«„Ü‚ˆŸD‚ à€€‰@’-ˆÈ!qH²ÿ£PžE«hIEND®B`‚mysql++-3.2.5/doc/html/refman/inherit_graph_3.png000644 000765 000024 00000011750 13515046516 022365 0ustar00tangentstaff000000 000000 ‰PNG  IHDR<1GìlsRGB®Îé¢IDATxíEÇ›Á€ bÄF0}*0!(f,ÑL¨ f@Ê AEýEs˜#¢‚ ¨˜‘Üßû=¿žš›ÛÙ=îöv÷úUíîLç~3óæ…÷Ö°BÆ“ç€ç€ç@5à@I5˜£Ÿ¢ç€ç€ç€rÀ <#xxTxWm.µŸ¨ç€ç€xþðð¨6¨éSO=eN:é¤h²?÷¨0,_¾Ü¬µÖZÖžoÈs )ÊhÏ?ÿüœŒQ¢ŒöØcµ[l±…Ýd“MlëÖ­íK/½”“¾+«“o¼ÑòIEß}÷=âˆ#ìÏ?ÿœ*;ë´gžyFï-¥d]7*¸ñó|øOþóà‚ .(sÛ¼†÷Å_˜÷Þ{¯´¯„³çž{Μ|òɦyóææÒK/5ÿý·!­}ûöæñÇ×¼Jè¶Ò›üüóÏÍêÕ«Sö³páBóòË/›%K–¤Ì¯®‰G˜ÿWþÀL9È5öá-[¶Ì|ÿý÷fÕªUF43cÆ íˆ‡hæÌ™fÊ”)fÅŠšöã?š?þø£Ô@fÏžm,X¤M:ÕLš4IJ(‹/VÁ6þ|}øá‡p¶ÿõ×_†‡”þ0=¾üòË  7é/¿ü¢ç³fÍ2ï¿ÿ¾!Í‘¼ Ì?ÿü<üáó¥K—š /¼Ðì³Ï>:Ž/¿üróÎ;ï˜-Z˜+¯¼Ò5£õ?ùäóâ‹/šŸ~ú)HφO™ÆJ£ð^ÑWX`Q—ë}õÕWfÞ¼yzW^3åëÏ?ÿ4¯½öšA¦#xÌ &ÿÓÕóyžyÁ¨Î—­I+‚CÕûC9$Pó1õÚ¶mœï»ï¾VD»ß~ûÙƒ>8èò×_µ5kÖ´C† ±Ó§O·[mµ•­[·®­Q£†šòðiÙ7ß|ÓÖ¯_ß–””hù½öÚË®·ÞzšwÕUWY±Óõ¸K—.v§v²m´‘­]»¶öæ™gjÞ³Ï>«ç"ùƒ<ÊŠPÒü &hþĉËœ‹–£y¯¾úªæ…¿¾þúkûüóÏ[(V„¹Îqºñ^}õÕZ<>eë[o½e4h`ëÔ©£Ÿ 7ÜPùGGÓ¦MÓ± ŽRùøÐCÙtåáÙvÛmg×_}-/7¥íܹ³Îǵ%‚Sç@[ë®»®<öÑ®];+/+ÍKòåLBî…B¤B!ò¼¼cF¥2i×XÃsR{ƒ 60âë1·ß~»yûí·  ÚÛ£>ªÛgŸ}fN9å#ŸA§Õä2"ÔìÛ·¯iÒ¤‰jhÔÛl³ÍÌ=÷Ü£ÚÚgœ¡ÎG4HLX§©¹¾Ã¿h(wÝu—jk<ð€á#)(Ò¸qcÕ(Ñ~Я¸â Ía«¦*¿Pøœ²Ð®»îª¿á/æ˜cŽ1"¤Í 7Ü`˜§AÕd‡nÄ?fÞxã J>¹ÂqceÌûï¿¿joh\»ì²‹éׯŸ«¦¿hÚð÷øã×9¦+ÿÍ7ßè 4m®׌ºa¢ÌYgeºuëf~ÿýwÕå%¥ó —óÇžyͨ-¯†÷ÁhSbFêÛmSÏy;ʃ¢ÚÁСC5ï°Ã³",ôø²Ë.³k¯½¶íß¿¿j)h|&Ož¬õG­åøºöÚkc5<ñ±å8ØvÛmmïÞ½­ÓšœÖH}€ÈDwÞy§ŽAmÚ¢"°­Ó(]A´M´P§á%áS¦±L“ÒÒ–øíÎ;ïl8àíÒiecÆŒqC°éÊ£ám½õÖAYqM¨vÚ«W¯@[Dûå–[”"¼­¸)ô#ÂÔŠIÔÍtÀ= ƒ^×Leó1¿ÐÇŸ<­¬1Uº†·ù曫`¯Uëß8H³fÍôÍ’‰1ÃÔÉÿôÓO«–€æƒÖ‰PÐc4ÄÝwßÝ 9ágs~°V­Zi9¾œ$„DÀ…ÎŒ‘hj Q’±Í6Ûù›nº©ùí·ß‚ó¸ƒvØA³^yå•2EÄÌU Ç>îž{îYª |A#r”„O®lÜXEøÆ$/ sÇw˜•+Wº*Á/¾EG™Ê‡y‹ÆÍµÃ§&ç³;õÔSÍqǧŸ>úȈk!\¬ÒŽçÍ[Ximû†«*̤åAIB8ñ“™ûî»Ïˆ¿ÎÌC«!8Äߥæ*Ѽ4€P‚æÎ«¿|}ûí·Áqô¬”#„ÐÇ\J@†ó :¤ž®LYñ j Â¥¹_Ñ|Ô|ß– W‚Žˆäb‚‡ûHÊ'ÚH5VܼÎ=÷\5› ðL‰£$å]ƒ6D«ÖÀSx̤7lØPy€ÉÎKˆh¢j“_4wîB3lØDÓ¦Í@Ó±ãÊ袨Û+ˈ«Òçxä‘Gª"bO×®]wTÒÎyÁrïU6%“R8 ü]h×\sÜʱÚúý÷ßo.ºè"õû‰‰¦Ú Bm- ß>&üFÆ ‹Âþ9(L<ꨣ‚òbk;lƒ% sôÑGk‚‰þñUAásvÆûÄO¨æ¡çƒÐ¡ 1ÿ´máûB£¢_´U¨¼1Ä•ˆ+>N~ÇŽ«ð˜t7K¦òhÒø:°bþ¢Ò@pÂÄÜÐ$Zñ /¼ |b¸Ø/X°Ä<üð$Ñ ÿkþóŸëÅ79ÖÌš5G|¹©¡3kÜa7À=œ È÷|ÉXøØA2H ÓàcNB(6<“•NQº¼>< 4hS¢}©ŸŸ$ÖsüRŽðsÉĬ\ —¤‘D|`Dh‰°ŠVeE{Ñ|¢¤øÂ¨#’¬”OÌH-ç"Ž®,‘Òhžó‹Q—vÄôVÿ¡À]4?]”–u±‚¿ "”´AtT…Ö狨3¾47N¢¨"È5ßùð’ð)ÓX<‚¢‰Y bè|*£ÑZúw‘U:OW^4nrõu|<|k¥([WªrÂ⩜Ý.7G”ä ¢3!ã`)ár<é´Ã;hNˆ'ZœÍ€·>æB þMowÁÃùÜ @U¸™¹)ÊCIÆJ(|Ó"lÓ ŸLåy(y£Stü<8ïT×(Z6z+V¬²ãÇÏ´=zŒ’ IÛ¨Q/ta!>.Dç^r…Ùâ:¢<œwÞyzI£ÊA*GÁ-·ÜR!Os_‰ëE…  ô}ÓM7‘eE»Ót^à7ß|³>·§vš¦B:ÅE+$øŠx9]i¹¸óg{”xV/š¬ç˜¾©`!© ÓNØi- lDóÓcf—YŸª@†€KEQÜX ñq„ÙŸŽ2•—›JW‘¤kƒ<`5-[¶ÌT,e¾Ü§¦N&“-¦øt³hÑRÙù¸¦˜««´¼( )둸|ùJ3nÜôØü\dLú›À²dI” u° è-Á<ª{ß6þ6|®˜w¸Fð÷âZèÑ£‡B¶ä%£P$üÞ@¶ØLÕA¶FŒ¡.ÌÈ8²…»‡6GeÄÒÒà“+ï`P߀1ÂáîÁ½‰UQ Â¥‰)¾=ôPqO<¬® ZÀ»ÃŽ;îhð}ÙÂôÅf¯Ä‘#GQZÌ AƒtœÀÉð27àP´·÷Þ{§è)yRöW/yÛeJr‘Å,RFŠ/“Ÿ4"•£~ûí·]ÅO4ÒE“öUå i¬Iùƒ°›0a¶©W¯½ÜÌ“ƒjNØ 1ÇîÝGÆäæ.¹¤¤NÖdjÔ¨‘ú<ñ÷òð"\œoY`Cú· _|±8‘ 8üY²ŽY_j¼@ÇgDûQ@  " G]1hSšFÀà¶ÛnÓãèË";uê”Cà¨ß¸eXøg×Ygâ{Úyä‘G‚&Ä4 ŽÉg,™Á&nÜtü÷ø‡ñÿ~úé§òÂ[¤>¾h¤ÿ±ÇS´<Âg‚A€“eŽ%ð:è #8±L|ʘÏân–pa.X‰oMÐqù¤µ xyÃâ„å-$ áØÇQ+~Ä$ÅS–I2Ö”ó8‘MÛ¶MÌС=EðÍP oìØiò‚ZajÕ*-à_-/n Ô a@\vNÒÅÕ`:t(k™dê< ‰—N ['žx¢‚ÕÑÆ &A8‚`,c 0B„°"´¯8ŠZ ÙŠë‹tžu`Z}úÄUUm˜gÎÁŸø•@Z¹Ñ᎒]‰p"9N'¸8˜ À_00A®»î:Ý ÁM¨Gtñ>êº{ë‚m£ „Ö>òèpM”ú¥Lu£ÚµkŠVÓ ~†¿~â×í,¾£¦ª ø’ Šbá[¾B¶à¯¬JRs›ã0d‹sˆ:PƯϬwW3Û-ÝäY@«ÃW‡/srÏ!éhÀ«ðQ÷BÛE³ÅêêСC0¼6íW4à‘‹(m´Ï\ž³Tíì³ÏVØK´_ÁÙidˆ0y˜Üò6`auÑâÊ,Þ— ®P¹YÿŠFRÙ¤€4 0bÞh”3Ü>Ç,æÿÃÑåh¹B>GiÓÍcþüÅvĈ·mûöƒXJ«V…KqQÚ$P$Ç|„l1¶LQZîo÷a©"ó­àˆ7ˆÆÊKL—ŠûÉ –ÔŠy«E$¢õ‰Æ‚n8á„‚öÜ’S×V’߸(m•ÀR’ ¸"Ë€ob=,P. X9‰•é"NàÙ ”Î$D°t#P0R'v‘ÿòÕ<Ö°Ò‡Ã,±S 8AðM\H6•%cŠeÒ ÿÿcÅ.%¢ö[yªps¸HÁ'xá‰Îžý‡Öײ .Îÿ†ã3îÉÁü}©HVo˜sÎ9G?,ÙF@¿@ ð‹x*NxÈVŽ®kTU,&KÒÄÙ©¾3ÙÄŠó3Øð3:oÎãLZÙ_OÍT¶cb…KÆ0=0u!–ga&Ca“6ºUùÔgK'ÔùTÄJþ§t>ËìvÛm71éÇ–OÕF¾¦åÂ$¬Ì¹úø+“7ùÖvœI[ÔQÚÃ?\MXÂÚl^ bœ€NLÛ8b{x"N$/¹äEƒË G"Nq‹÷Ñú ¶‘g{'à-„ÔP’vúé§kÄ+jž²~÷îÝuW÷`•DÀ*–‰ó°ê7nŸî9à9QÉ\L^tn"¨,‘T‚DN£äæ.,SNL`]ÿGDÉisÔI·_v Ö²f— 9ð©íÑ®ø$‚MÂý÷ìÙSƒ!"”K-¬—)ôãB× }ü…~ÿd3þ8 ¯¨}xQYÚŸµ†|$RÍV`£0µLz4e5"ô#„&±d-Œ%0üYHqÈ Öâëc/ÎÛ(ÉBê`«¬hž?Ï/àÃ-¯?8¿fR¼£ oºžeÙ'/œ[ÄÇQ“2Û©"Ìœ@£nxñ>m‡ÛÏ´™õݾ€{Êo¸õ¨ù=J?º6mÊF÷«­Àó·ƒç@¶à‘’XÙ¶ëËçŽE´È}Ožž…À/ð á*ù1zxT¼À«6úF<< ^àÂUòcôð¨Ä-d1|…tàñp`óGOžUÉ2‹uËû·‚U9ßwþs€-»¹·Rm´ÿ£÷#,Ô½\ ñsðððÈÄ2^¦ >ßsÀsÀs P9à^¡^9?nÏϬ9à^Ö,ó<< •^àê•óãöðÈšÿ‰AÚókIEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1Query_1_1MaxPacketInsertPolicy-members.html000755 000765 000024 00000013126 13515046515 032155 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::Query::MaxPacketInsertPolicy< AccessController > Member List
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1ReadDefaultGroupOption-members.html000755 000765 000024 00000015342 13515046515 030635 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::ReadDefaultGroupOption Member List

This is the complete list of members for mysqlpp::ReadDefaultGroupOption, including all inherited members.

arg_mysqlpp::DataOption< T >protected
ArgType typedefmysqlpp::DataOption< T >
DataOption(const T &arg)mysqlpp::DataOption< T >inlineprotected
err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
set(DBDriver *dbd)=0mysqlpp::Optionpure virtual
~Option()mysqlpp::Optioninlinevirtual
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1Row__coll__graph.png000644 000765 000024 00000013300 13515046516 025664 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÌmíb޹sRGB®ÎézIDATxí]TEnrÎ9gEr–ô#AP”¤"AA AQ ’ƒˆ¢IDD ª1JA$ H$ 99Ïß_ë,ïîv/À±ûî¶»j÷½7±ç›éé0oï&RRè š0:¥´Œ" ü‹€ Œ®E ¨ÀÄ,-ª¨ÀèPb‚œ~'M›6 Aý(A¿-Zä Ü_LìK¸Xp|eiº"¯¸víµmÛÖë} L³fͼVÐDE ¾#êsˆêÃø„F3ˆ¨ÀDÄDSŸ¨Àø„F3ˆ¨ÀDÄDSŸÄy™2e uéÒÅçc3cóæÍôÊ+¯PáÂ…)kÖ¬T»vmúüóÏéÞ½{ÑêæÎ;tþüyOÙ×^{f̘áy~7N|¶nÝJõë×÷úiß¾ý£è>Ê6I”LER Î Ìž={hÍš5‘ 1v².\H5jÔ 7Ò믿N~ø!eÏžzöìI 4 Û·oGÙÑܹs)S¦Lž²_Þºu+ÊzSÀ‰Ï™3gè×_¥4iÒPîܹÃ|0–@P 0y˜qú +G·Ñ›7oÒ‰'(OžO>n.]ºD|¸D)S¦¤õë×S–,Yè±Ç“2X˜.\ lÙ²ÑßÿM/^¤råÊQÒ¤I%õnܸAÉ’%£„ J;ö€ø‰'ž eË– ¿¨Ô±cGª^½:uîÜ™&Ož,eNŸ>MéÒ¥À/Æ!A[È…„„P¡B…è믿¦äÉ“K¾0ÆM›6IßåË——…th%ð!CÚ¶m›Ô)V¬%J”ÙBÐrÐ ‰'¦%JÈl^øëСC©H‘"á“„TsåÊ%ó…ÇŒ2gÎ,å>L˜×Š+’M³ =z”1§M›Ö&˸ ÖåÎ;©xñâ”#G?uƒãK'Ù“~gZd÷þù§œתUËs2ü¿ÿýÏÔ­[×ó\¥Jà ÖT­ZÕÔ¬YÓÓ/ ÓnÆŽkx!ÃÂc$H`x4»wï–²+V¬0¼X /d)_¡BÃÂ$y}ûö5eË–•ûV­Z^Ô†Ò° Hÿ¬ $oÖ¬YòÌZ“‡²<É’¿dÉÉ_¾|y„g6›$ï·ß~“<ç/TÃBlêÔ©#Éè·ZµjÂ'o†…×üüóÏféÒ¥Â?O–ä:tÈð&c>ýôS©·råJÃfžŒ‹…Ȱ°Kd¾ÿþû2.^äRmÔ«WÏ oê²Pvùðâ<‘çÄgñâÅ2޽{÷"+­ZµJxüàƒ$ï?þgËc¿~ýdnÐæ¢yóææîÝ»†78óꫯJÛ3ætذažöý xzæ™gŒÅŸ7óÍ7ßxø‰ê†7S‹·“~ìfaèA¦qãÆæØ±cfäÈ‘Ò&kóý÷ßË3ï~櫯¾ O:%}Ž?^uöìYóÒK/Þ­eÐï°¦k×®"h 0ì/Þ½Ìþýûe¡ù,&ô Ð&Mš$}Ïž=ÛXaİ)döíÛ' ´uëÖ žÙ¼2XÈ çóÇ,í°“¼ð_-[¶4à„Å‘3gNÃZÄ\½zÕ¼øâ‹²˜/_¾l~ùåi›È \þüù 0DžqÏ;½aÍ$ƒq1Bò(í|¸Á¢œ3gŽaŸÄL˜0Aʲ–—6ýÉO?ý$ýc3¼~ýºÁ,í#LEòå±à`÷°ìl K¬âåyæÌ™‚©7nœä=ýôÓ“ °³bqB¸°pðY·nÔÇ.miÀ€>5 ›#¶˜\ ,( Î ŒÕZÈDŸÐdQŠ7ÂnÆÉÂâ`ÿÆSŒM,áíÚµ>Æjiö“<õ¬ÆÐ0‡¥“'OJ›v„c3Áüøã†Í5Ù|PÞ›À4mÚÔ´k×.ÌÇ b¼lV‰à£nݺ‰æÆ½% ûH¿R¥JcŇý<±,þÆdÆ ¢ [´ha U±qAp¢K‘ ÌCû0,BÖid åÙÚÈl^É33+¶<¢4ˆ ±F€A—|žX:w¢>}úˆO4uêTÝ_¹re)‡/6Ý<÷áoxa…I‚c}d°&ðä#Ò_(*‚¿h/Lñ=œåáoñî+›îìýƒœ<Ørö ߿Œµ¹y“‘$ðjÉú=,À’Ä› ±¹$¾|ð}òÉ'^}ÔצMâÍ„x#ð` íœÚ¶1ÁoÿÅZÑf‰Ojç‰þÄ„˜XʇMWñi{ôèAƒ òð÷ 7±%ƒ£bˆØO VÛâ<³)!ÕØ?IgsM_Dq 8v¡À³Ä¦ˆ½p…“j Q¨-[¶x&éÎ|¶ÑÃäÙzᯈŽa#3fLø,úý÷߉w/bÓË“çìcõêÕ’™ÛÍAKpþAlªÉÕ¹ø$á¿/"6›N:Ip€5ñnï,£{‚®`cü€,AÄ Á6Š7ÞxC¢†l‚û¬§ß~€•ó}DbÂFO;vìù~ë­·dLàía)z«üa{qÔgŒýêß¿¿jwˉ'Ò;ï¼Cˆša—Dd Ñ®2eÊH´kÈ!ÙB”ˆ}G‹ao±Ð µ ­°ë²YGÏ?ÿ¼§›sÒÎôéÓ‰Í #‹ý8p@Ê:Ÿ¡a:tè@£G¦îÝ»K´à³­LØJ—.MlâxúÀîÆ¦)aÂP'oÞ¼9bÓDÊ Jk š uÁC ‘(ôacAãŠ0-ûl‘†«±aÍŸ??̇Í;á oé"b‰(#"€¡ƒŸ^xA®À›vk6³%rˆMXBÀ€;ÆòˆJZò'&ˆŒÁ‚Áf\ ±áA{>4…·ëÔ釃‚#ÊLØå 8Êx†a ‘+¤ñù‰M§N0"d°y94i`÷ƒøì@ìgÔAt†Í³0> ‡‡¥œX^`ž²ˆ¬ÙhõaPíÀF‡ÿĦ„Ôµ>/&¯Ïpfálƒ7Ô·mð.*c”Jü…|Díà8£ "qvœlþI é,˜†É%Cÿ¦•:#|"žxiþ{KÖÆ^°`$ÁQG¿¨ÇšÌôîÝ[Æ×«W/ña,>ˆòYÞÃ_DùòË/%ß¶ ”Cø†…Hú¼÷Þ{†Ïj"”æ³û‚]øL8m=Cý²Q2g9L“&M ÚaóF"F6ß ò°Xm¤ÎæG÷Š@ø€c‰…ž°8à tg€Á–ƒSà‡7Âá4Ñö`ðVihõ,!dÈ\lÚô–fsN69>7 Óm 0þ„ÄËÈ&Öœ~–æ( æl~˜_£FŠPj“C¢Ò‘Ó bÑ!´ƒÃS_>0૜·tŽòE‹Ôáž`ø2 0F¦>Á„ÅÇ’ 6Øçغâ9¼óoÛÆá5>¾Èߘ-ZÔ+œîWÂg1Ä&ñA×3@€7ǧúpô½"m¾œgou$ }8ßêÄ'L@w:'Î0z‰èL×{E XÀëA| ‚°´ƒôù9ÀÐ[E JüVŽ’#-@wïFïç •ÿPñ?æQö¸bÅ> ‰²œð?>þGíû¨q§Ç êó!äM ]w˜N#8ýˆdáõ ¥À pûö=Ž"®ç“é„ôñÇùw-ÿ¾‹n‚»W¼…7AÃà.ç;@ŽÂzëæÌÙÊ/OþÉ?Ãë.¥¨fÍØ?KðÃ0âmêøljþy#ÿ’2¡h˜_~ù÷L—±Ôì¨À¸hú/]ºÁ?yØÍæž|æÍÛÎoGþª¾‹Ø VT`\4Íóæm s`|óæ-~ x§‹8TVT`\´fÌØÈsŸ!~ã™_™ßx?A LÀ§à_NŸ¾DëÖäpò}‰¹sç.¿¬º‹._¾á.• —¬Ù³·z !C€,¸ÿKL—°´l¨À¸dê§M[ïùù¯“% «YæD$°÷*0Å_z 9ËpîXÿŲ…÷ÊÖ®ÝOgÏ^±Iz *0ßv=kÖf9w±Ïá¯Ð2³go Ÿ¬Ï@@& ‡ïæÎ^|ü˜éÓ7øÊÖt?" ãG°½uµsçq 9ç-Ë“†ßømߎ?atÿ/ÿ{2õƯDx—̯½kg"eÊä N>vì‚ü1ñ9îÿM¼„¹eËþÍ|FE-€Dx[9€¼h×ÿ!жíDþËýÉù¶RLÜ…€þDÙ]ó¡Ü¸õaÜ>CÊŸ«PqÕt(3nG@Æí3¤ü¹ WM‡2ãvT`Ü>CÊŸ«PqÕt(3nG@Æí3¤ü¹ WM‡2ãvT`Ü>CÊŸ«PqÕt(3nG@Æí3¤ü¹ WM‡2ãvT`Ü>CÊŸ«PqÕt(3nG@Æí3¤ü¹ WM‡2ãvT`Ü>CÊŸ«PqÕt(3nG@Æí3¤ü¹ WM‡2ãvT`Ü>CÊŸ«PqÕt(3nG@Æí3¤ü¹ WM‡2ãvT`Ü>CÊŸ«PqÕt(3nG@Æí3¤ü¹ WM‡2ãvT`Ü>CÊŸ«PqÕt(3nG@Æí3¤ü¹ WM‡2ãvâü Û³gõïßßí8Lj¿ãÇSó¿ì3”=ûÕÕs{á#FPîܹÝÎfdü…ÆyY³f U«V*W®LÉ’%‹l°š ®]»F6l ;vPñâÅÄE¬toþ)l·nÝ(sæÌ±‚Š6»„„„P»víb·Ñµ¦>L€€×nã&*0qsÞ”ë!  àµÛ¸‰€ LÜœ7å:@ħ?@øÅ¸ÛÅ‹ÓîÝ»©k×®1®“ }ô]ºt)L•,Y²P•*U¨zõêaÒõ!ú¨†‰>V±RòèÑ£^•Æ"idóæÍJ Ož}š®_¿N ¤{÷îÑáÇ ù… ¢Ä‰Ó©S§(EŠ”6mZ†gΜ‘´Ô©SKÚÞ½{éöíÛÒÊZB»X X¨8ºxñ"Df·Ùr½zõ*c(yòä¢uÒ§O/åm¡ .PªT©„ǃJéÒ¥³ÙÂk„ …W´Þ“$I‡žÿîƒeÊ”¡N:yÊ£¿–-[Ò²e˨Aƒ’Žq:tˆ0.à5kVI6)S¦$;Γ'Oʽ}FyÜ;Çìé(ßÀìß¿Ÿ:wîLXL[·n•©-Y²$%Mš”6mÚ$ÏÅŠ£Ñ£GÓ!Cd1Ž5JÒ±è[´hAo¿ý6¡Nß¾}e¿q㆜ >œòæÍKÛ¶m£~ýúh‚ ¨páÂtäÈZ¸pa˜¥„v!p Ø;w¨~ýúÔ³gO)×¼ys*Z´(íÚµKÚ÷éÓ‡jÔ¨!ùM›6¥:uêлï¾KÐ(Ý»w§‘#GÊØÂtôß„/Mš42V$]¾|Y4ÎöíÛE0Áo«V­¨}ûöÔ«W/*R¤õîÝ›Nœ8!‚V»vm)^ÃÀ=¼xë/>¦­I†Å3}útž¿þúK´Ä´iÓd¡câ°­nݺ„Å„ Zµj•,ÜZµjÑäÉ“EKÍŸ?_Úɘ1#Í™3Gý°aÃd±ýðÃRÎÖ÷¶€ Hðg-Z$‚¡Z½zµ§(ëÔ©S fT¥J•B‰ ‚ÀT¨PA°ˆZ æ´ > , í=÷ÜsRçÛo¿­ŠöçÎK=zô ï¾û޶lÙBO>ù¤> ÚÅ^±!`#°}KcAò´ÓºukÑ x¥fš}† R³fM1o ( åË—Ë¢…Y”+W.Â{l hž±cÇRÇŽiß¾}„ºMš4¡lÙ²I9h _”?~Ñ0£P.GŽž…Š:5!€ÙžáÈĵmÛÖãÀƒŸ7ß|3ŒÀ@ë€/|ÆGK—.•1Cs€V®\)Aô BÿÐ@¨IНÁ”…"¿T©Rb²IÅ ú ZF%J”H®Xp ìœ ø ,œ+Vˆé…Z„Å‹{h©:ˆÉÍÛ³ÎÇåÌ™3Lü§F²‹…ræK‚¯ÆÓŒ3ä òÙgŸ ÐVð]Ξ=+šÐY¸ X“Zã~öÙg ¼âÞ ”³^°Ü­ÀXÁˆj¢!X$Xdpp±Ó‚6nÜHmÚ´¡™3gÒøñãE;M˜02dÈ ùçΓ+¾`ù",ZKð… ¡œf•3//‚"@Û–·kÅŠű?~ü¸hN ‚ –`êAƒ }l$åË—S›@éÒ¥åZÁ «‰mÝ`¹­ÀDw‚«V­*Q¬I“&ÑSO=åq˜áŒ3F¢K0«IƒÙšiÊ”)tåÊB¾/‚Ó¿dÉÙÕ'Nœ(>s1Κ5K1Ì0h D±ÅAPaVà }ñÅtìØ1yöõÞÀg207¡AéCû ˜¢ ð@úƒ©V®\9Ñ.è|ùòI™`û º(Yt'Øj DÏ (pÆ­³Œ6žÅáàË/¿,‘4DÇðÆ4B±ˆd!¯aÆbâ!ÒeýÔµmãf:"VÓ¼s¾A„¯ } 0ÀSZZQ3„y¡ípoÍK^F?– UÖ®]+þú‚  4HÚDc°õd•-[6ÌÕ)Ð’D_ñæ÷0ð%Õëýpš±ÓBË8éîÝ»r~’)S&qÖy8y;8„"|XyèС²à,Ñ*œÙàÅÌA„wáGÁá†ÀÄ6ÁWƒ‰­Mù(~Sd_ï×ßÃÄö칬=˜7ppa~uéÒ%w°óK”(! ÐLÖtòZÀ‘ˆvphè‹ y졯2šmg5ʃ¶LõÔ$‹d¶aæÌž=[óêÕ«IÉȳ`Á, Oø¹îÍ›7Ã'{žis¾eàÉЛ€! &YÀ žŽã“I¦Q²àY·:ÒX@@&@Ô&‚˜à™ki, oœ~¼”ø(B¢±€qÐ7?³_(Î Î@š5k_æ#ÞŽg MySQL++ Reference Manual MySQL++: null.h File Reference
MySQL++  3.2.5
null.h File Reference

Declares classes that implement SQL "null" semantics within C++'s type system. More...

#include "exceptions.h"
#include <iostream>
#include <string>

Go to the source code of this file.

Classes

class  mysqlpp::null_type
 The type of the global mysqlpp::null object. More...
 
struct  mysqlpp::NullIsNull
 Class for objects that define SQL null in terms of MySQL++'s null_type. More...
 
struct  mysqlpp::NullIsZero
 Class for objects that define SQL null as 0. More...
 
struct  mysqlpp::NullIsBlank
 Class for objects that define SQL null as a blank C string. More...
 
class  mysqlpp::Null< Type, Behavior >
 Class for holding data from a SQL column with the NULL attribute. More...
 

Functions

template<class Type , class Behavior >
std::ostream & mysqlpp::operator<< (std::ostream &o, const Null< Type, Behavior > &n)
 Inserts null-able data into a C++ stream if it is not actually null. Otherwise, insert something appropriate for null data.
 

Variables

const std::string mysqlpp::null_str
 "NULL" string constant
 
const null_type mysqlpp::null = null_type()
 Global 'null' instance. Use wherever you need a SQL null. More...
 

Detailed Description

Declares classes that implement SQL "null" semantics within C++'s type system.

This is required because C++'s own NULL type is not semantically the same as SQL nulls.

Variable Documentation

◆ null

const null_type mysqlpp::null = null_type()

Global 'null' instance. Use wherever you need a SQL null.

SQL null is equal to nothing else. It is not the same as C++'s NULL value, it is not a Boolean false....it is unique. As such, if you use this in some other type context, you will get a compiler error saying something about CannotConvertNullToAnyOtherDataType. The only thing you can assign this object instance to is a variable of type Null<T>, and then only directly. Code like this does not work:

int foo = return_some_value_for_foo();

The compiler will try to convert mysqlpp::null to int to make all values in the conditional operation consistent, but this is not legal. Anyway, it's questionable code because it means you're using SQL null to mean the same thing as zero here. If zero is a special value, there's no reason to use SQL null. SQL null exists when every value for a particular column is legal and you need something that means "no legal value".

mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1MutexFailed__coll__graph.png000644 000765 000024 00000025773 13515046516 027345 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÀÅý´sRGB®Îé+µIDATxí]¼TµÒ¸ôÞ{Gšt)‚ OQzDADyØ|‚ ¢)" € …‡ÒU¤ "R¤H“.½ƒô"5ßü‡—ÃîÞݽ[ïÝ=›ùývÏ9)“d’If&9g’)2`(£H£í6Í6 0!¦)` ¦»ß4Þ0€1M®­?yò$ýù矮Áæ9‚(/_>*Y²dXj´fͺtéRXp'5һ (àTx  cË–-«oÍ5‚(°ÿþ°×&W®\”3gΰ—“˜ìܹÓmqÀnpÛú( í¶`þòË/Ô¨Q#ñ‘áÚ®Ž;Ò´iÓ"µºIV¯3gÎеk×Ü–« úþøñãnã+0¬ ðÃ?PöìÙéúõënÛsêÔ)úõ×_ÝÆEr k»._¾ì±£#¹á®Ì©S§Nu[ÌÍ›7éâÅ‹tëÖ-·ñ‰2€ynÑ¢E¤Ítÿüó8qBÚ±oß>«¡W¯^¥õë×Óßÿ¯ˆÓÌ‚CªW®\±ò!ñùóçiÅŠäh Ç,ü:Ò9r„À\~îܹNa:îàÁƒ´|ùrÁ­ÃpEÝQÔsÉ’%V}ݵë³Ï>£GyÄÊŽŽÅê¶téRºpႎÕ3fEl8mÞ¼™0¢@“ŸþY6Põáâî;&ý„{ xôa‰%„9À$ ³#ýõýöÛo’Ç‘.Àµ}ûvI‡ðsçÎVâ ;w¼âw óöÀ¨4h R¦L©Ø~¬R¤H¡¾øâ ÅQÉ“'ÇQk§öîÝ«xP¨,Y²HX²dÉTåÊ•Uúôé-ôY³fU/½ô’<33I:Dò¥ $Ñï¿ÿ.}åkÞáÇK[3eÊ$´lÒ¤‰B{@´c´yë­·T¹rå¤ýpÝËãbÕªUrߢE ‹. ‹IR ž„TíÚµ% òÜÿýr1æ+0Ó)žìâ%—:¿ 0eÊ© óŒ­0óçÏ/D˜1c†ÄñŒ'eT¯^]*ÏG-„¼-íÄï¾û®š9s¦¤Ýµk—êÑ£‡ˆ71d@víÚU1ç«mÛ¶©Ü¹s«îÝ»KZ¤Ã3ðU§NäšÈ£G–çÉ“'K}ÀàÆ fýþûïÏ$êË/¿”8 €(ž™ P>ú¨bqNñŒ®\Û¥LU¤HÅ«B›ñŒ{ЃgIatàG}$ñh/ž÷ìÙ#eúòI À+²Ê!ƒ´u½1à1 0Nš4IîÁhk»víÔºuë¬AïÈ 6T¼RÈD †ÒÒ+¯¼"´ß°aƒŒ‡Æ ®ˆ`^Êe†}â‰'Ô‚ d°€Ž…—?I§8â1 W„¹ƒ!C†Hƒ1pA<ü0[”/_^’cpavÁA8 Z@·nÝT¶lÙä^ÿ 0ƒV­ZU!5¾µk×Jg¾ÿþû’  ï€tèÀ•+W:µ qšôLÆâ‚ôJ†Îà P¬X1¥@àœ?¾–ÐM$1˜¼T©RŠÍ¨o¾ùF±ø+ŒŽ àÊ3fT¬/Iœ¦•# 4`–ïܹ³<*THõêÕKGÉŠ º…‚‚Öx ϰ"ϲX"[è̹\?gàÙAdBtV‹@Ö½·-ówèÐAdmÈÛL,bæ‘l,Þâ ²8F… –pÈ¡5¡mÛ¶r 8!ƒ~ÌPÄⱸd%/Z´¨u¯†h½ÆŠp¸Ay€*UªX¡yóæ•{­“@æÕÀ"’ÜF«À¢!±hJ8œ÷ì³Ïʵ^½z"Óë6:^q-mÚ´ŽAN÷Ž´A:M—Ç[}Š ŽôuBÀCÐ eŽgbÚ²e‹(Ÿ,ÃӀʥ#äÈ‘C1è4 ¯/€AÄ32mݺUð÷¬Y³¨_¿~’eòl$æÈ… J8‹Iij½¥HCÙzî¹ç„yÐiè,àÒ¿O>ù„üq«JP¦5@1hæÒáŽ×¬ŒA @…±R •—q±¹ÚÎY ›$n—.]V¦M›ÊìÞ§OÂqí9sæ+[bÙáu‘ž~úi™½Y~'V–¨S§NÄ 2µlÙR®¬‹uªoß¾Ä"±"JÍ›7·êKê…ôèH XÙ`¯s9’x)¦ *8µ åkÀÌf.äA`!ªV­/^\'³Íý‹=L Vt¬ XI¸ƒÀê `UG¿áº¾úê«Á sÎk Vÿ»ñW †‚¥“±*X= ý:T°ñ`µ¬pà@‰ÃtX© \# ¬7°$\ÛU[ óój'yÐF^ö”~tX–4ÀŠܺî:ÜÛ5’tÔôí`eÃ'+QþצMi”Y(Á÷Üs‚Üé‡ÒÑbYä‰LžAoàE_ o¡Hƒnº?¬L^nÂfÒeÂ2 LŒŽ•å_+ ÅÚ¾¿ çÕeÀr£Mj®e²ø$Š-Ûè¢ÀP˜1HÑ6Wpm—c<ŒPš¡l»ÒÃ1] ÷‘Æhú X…\о¶ºÆùú¼zõjÅb¥Xy¿G±- €¾ñ<1€Ç÷˜Ãü‚Ò¥K»MQ? 8kq(` Ý{ï½~geS]øà‚¢Ì«Õ¨QÃm¿ø[VÈÀß‚#==ŒŽ5ô€ÌK˜ÇNÐ7ÐÉB†…iu y}þøc+¿„zö¬I9rxÞ¢yÁA"Ä.v8a/Ç/X¸¼#ý&åiw…-uÿNH°e›?쨎Hp\çîcæÏßF=z̤L™ÒÒ˜1møHGxV¨hŠs20톰Šsö;@[>;Ë;ÄD ¿ÍGi²Æ…£º~áÍ@;GˆÇŽ‘v¿ß³ç$(àR¤HN£Fµ§fÍ*Ù½ÙamŸâ÷{–:HÛgœ”rÒfOAíTk™Á i X±œ”&M*9ÇrãÆ-zþù¯éãCϘÎ{õüMúñù´cÖí·ñ’ñèÊ]><+U¨Ó "–-{[ìÑ’ààÁsø°ÕùËèU1TƒÄ<çö]¥™On§›/‘ºu[ªN–<å*ûȺ/8’"MÌ3À=÷æS‹wlYgÍZO­ZæÓœ—“¢O¢®ÌC+ÏÓŒÛèÒ‰ktëÆ•÷9˦‹èöÄ<”/_ÀzñB÷ÔÍ›·øüù~¹fç½-Ëê8su¦ÀŸßž¤y]vÓÍnÑ­›w¿N•£ŒaM‹ˆ¼–+—Ÿ_˜‰ßq7nÜäwÎñ·k>¢•+ÿŠÈº'e¥á×þhŰƒ,òðÙd7_7ɘ7¥ÊôÖotŠù D‰Ü,¹ï$0Á¥KW©uë1ôÝw¾½½æØv‰»zî&ýe÷{þ´Mü¹Cš ù?wÅÈV€Qјg€¸¸äüŽðíWÝ P¬‰^{m2 4Ç]’˜ »päÍl¿Nl¸HÊÈ£‰ Pβ‘­£®1Ï B•*E<®ˆ“äÍ›…*V,„ǘˆ5•žÉC)Y´IžâÎ\‰ 0êl€‰EØ"E¿Ì“‚ºwoÈ_3{‹õò®ý{Ï<æK?šƒžø¾•lÆïKðs²¸øŒ€ G©ÈV€Ñywì±×•V‹o[‚îhqØÆÆXÁ‚YYö™òç¿ý’·•ÁÜPêÌqtÿÛ…(Gé´´~Ü1ºrŠÏúÜJÆ*Ám¥ sÁ4—&>cDéÌ À=Rºt^sÐ9ÉYy+V,Ÿ êÀo!¥ùóï|Æ%Ò:/©ë1gËä“”»\zªÝ»‹EÉE,‚œ§rä+À ŸY˜©RÅñgKrñÇ[ÏÒ[o5£víj #lÝz„>üp4ëÊ–-òºÄfˆÍOÐEÞüj<¦¥Ï“’Š>”•~ÿä0m磑¾¦iÓ‡á4p? ¿kZœ_´¾sZðòåkT«Ö@ª_¿, |çƒYŽùbõþÒ±ëôÝcRåNy©R'çßOm½Ì"R ʘÿöw¡"™F†èéÓ×R×®ß2ƒt³Î %%&¢õØK§w]¡Ç¦–ñj Štb jÕª*⤽ýöôRÆNôáUhïâ3t_‚Q=øÑc†|·ýû?Ê-öñ!¹?|Hmï$P|W 9HEëf¡53F}c øÐ…*¤'ž¨NýûÏ^k‚ûÎ¥ÅE|’M³QÍn#¾ž¾TÐ0€/Tâ4½{7‘ècý…ìþVê”G¬>>’.¢“ð±{²gÏ@ݺ5ä¯=/¡ø˜[PÀXüèFŠ«[wˆìŒßÉœ&i¤RÀ¬~ô Åõë÷(;„ØLË–íô#§I©0+@=Ó©ÓxvÜq‚]ƒö°ŽP€Æd‰ ˜ €NèÛ÷ÑÆÿ5€Ü&K$QÀ0@½Q¨Pvzá…ùsÝóÙöÅ0DO–ŽöÒ†ñÇýª0|¹=ðÀ–sq2ã£\p(žX` @Jwéò0-5;m°ï[bØñݳð ùûb;{ä!|^ž½èøMÝ~øAü2°'¿ó’Á0@ TãVÍšpÅ¡ÆSãký¡.½fµŽÃáÔP;Âf¯˜Š]^YNñš5k¦à0];Àƒ#rv ‹7d»JRp”€?1ö¾c9ÖcT ¾ÏàøŽ‘ñöîÝ+éÃùgV€ §˜þý[ñLv€}ä® SädÇQçõãŽÊQgœó×иqc‚xƒ™Pþã?ÄeÜÓBv‡Øƒ4à ÉÙ]»ÅíÝ»73¯Åï_<ìi^\Ë>øàƒVv4HÚ·²ÆŽ«y!&HªâÓŠíÚÕàsB?ò;Ã(]ºÈ?ŸP“W~tˆÒçLEžºãÕyàøƒNë ªà¾@„OéÃ74Äœ† Šo`¤‡f턃|×®]¦I“&ñ GÉå"ü)ã9) iJMŠ–†±Ìž=ÓÕ«×iĈa,%qPŸØ|ÙãQgx¹ÇÇLfì‡~X`ñâÅâ³B„1éÐä©ìùýçúõë‹°víZaÈò¬¤Òo¿ý<µÖˆO¸Âì9{ölbgÚ’œ”Ëuûöí‚׎…‡SÃŽ5ÜË—ïTyó¾ÆÖŒøžåíD vŠ­X¶·šÄ«€Xyx@K˜¶:tÈJS·n]Õ©S'yîÑ£‡â.ŸÂ… +VŠëªW¯^ŠM«Ša‹%H[,$a¸1gB6•ÜFôì³hûö£,"ôdÅÐ,°žÈ‹=üJ–,)I°§ ]?ÁMj(Öz_Àfþ¢ÇíÃ]¼/a†|¡’i>Cuê àÅô#§IêJE‹±^õ…k°õ :X‡†,r†îg„>ÿ|)ËÅoRΜÑÿÞlè(y˜Ì†>yù应%KZÞÜù1 ØC‹òüÁØö“l ´ãI°¥I“’­AÐÔ©kx·ô@J JìøNo»-¢Y‡¦¥ž±ðL› bš6­H5kçÝÐAá gf½ã[¬^ì~ü×0@G¾'„“¢S¦üÆRCm§[FÛ¹ C½òâ«ÓO=U‹üQ>©’@òD‹vwÔ9Ñ °‚ „¹CÞx£¡¸Xúè£ùa.Éwôú«Îvù¸•ï-ŸÒ0@|š„4$K–tÔ£Gc7n¿H2¤¸Aæé¨s ¸ìÇ0@"ôbûö5Å_Ÿ>3¡4ïE\qŽ2äŽÔÙ{.ûÆš°DêÛÕ«÷PË–ŸÐ×_w¦zõÊ&R©î‹¹ùŠ ÷EîkÚPᥧWl/¾ø mÜxÏÏ÷¯4^›ÈD¡€…Ì· yçæ|¸ë<ŸoYšˆ¥š¢¼QÀ0€7ê„8._¾,ôê«ÓÈ‘ éøñó!ÆnÐBÃP-ˆ<ø ¾4Ý¿ÿA`1YCEᢤxàxûÝw‘¯H¬]»ÏÇ\&Y¸(` \”õ‚çëÔ)%ç„ø%'/)ƒ‹ÂŽï¶©§HÝsH¢Þíׯ%ÁñäÉ«ÃVìø®yˆ.Ë»·0 à–,á,Q"7=óLm4hÊÿoh&TÃKÇÝÜ*¡|±o {.—Ã†Í y-Vsÿq«å $afÊ”†zõjB_}µœ¿’æß'ȽUÛuöFç8³ìLD‚ܨÑp~…2iú… Ë‡â;½õ6ÊZ< =<´XÐøìŽÀ¬IÜÃøÜ ^œY¶l]msе1Gý#¡aÿè–ÔU«¡V­ªÒ{ïÍæoŒg³L‘69U{)Ÿmüø†…àHä@Œ¤¼ÅшڵÒ+¯ rSçL™2ѹsçÜÄø±+€®~8 è2Ì5:)0vìXêÖ­[P•7JpPä3™£†¢½Mýƒ¢€a€ Èg2G; D{šúEÃA‘ÏdŽv D¼(ZþøãD+?˜‚Ì  õòîØ±C¼%:…åváÂ…têÔ)ñÏ ½Ž?l %°O/ÞÀ›*Eýœ\G Øf8}ú´ø¡Íž=;­[·Žà? sùòeñhW:E‹•~9pàeȲeËfõvž–%ËíO…Ã::³B… 2»é„ð]µiÓ&ñs ŸVðm…²^Ô±‘.]:ñ’ß¹Ú¼!bÆ„—DxB„“h8 Ö¾®^ÕS§N-nF]ŸQNË–-éÍ7ßt,RîQß}ûöIt;€ÿÒ¥KŸ½p[Šº­Y³Fžï¾ûn'ˆÛ²e åÏŸß©MÞÚZ¢ŽðúÚtìØÑiž ô-_¾¼8ÎF¡¨ëÑ£G©P¡B´wï^É_±bEé§J…û+‘0eÊñèkå^ýuñ\X¤HÉÇ­^zé%Ëã ÓQ 2DÐÝwß}ê°P³#6§X„P¼|+Њ™AñIMÅ3¬Ú¶í¶×Gv­²fÍ*Þ ‘¾jÕªŠ—~ÁþoUåÊ•å¾]»vªL™2ŠL¼!¢lí!qÖ¬YR¿:uêXqH{ðàAÉË~±$~éÒ¥nŸ3gά  q®<Ð3š”ÍL¤˜ùU‰%Ô½÷Þ«nܸ¡Ø·¯â BÊEÛŠ/®´'Fá3¬âUDÊgw¨Š™GŠðÖíÑô0Èž={$NÓáçŸVšP^& æAƒIZ_þ 8P „GkÀ€`1Bñò-A : €Ž™îÓO?•ç‡~X5kÖLî{öì©Ò¤I£¨6lØ ƒŸ\Ó§O—tøëÓ§Ç \¹rV:ܰr*R3€^U‡2±Òø`™Ô3Ï<ãôûàƒ¬ì, ƒcæsô€Ã £[« ÈʈŽ‚ÅGùaf£ÀžÚƒxO _ÂzåC:VE0§®;ܾÁÿð?ܹsgë9¡›P0€mtî@‘kqÀÇ,t€Œo{iÄ‹'LP‰ƒžÐ¨Q#š6mñŒÏ>}—ð×&KwŽø¯>|¸ÈÙ܉ôßÿþ×òW[£F I‡?f8ëÞõÆÕ=ÀÑç­ÖGõ„.á+´jÕÊ­ óó b§Ež~òÉ'%²:@ë"¸gQñÔŽk‡p± ¶†„Ú£Óé+d^AE¿Ña¸æÉ“G”x†¶k€NÅ+¯~L”«­¬@例ü‘ڥijˆ ”æÍ›KVXYXNåOeƒ §î((nxi×·ñ®GŽ±Â´"îÈ0ŽñË—/÷ÊL"nÀä/¼ð‚X‡0õa1(Ý€­[·ZX`²åUP&(áˆc]D~¼RQ¿~ý¬´Žõu×+áÿnxõa±9Å` ã ŒÃZæH¤KJHÚÒ“°å,òˆuçwÞ!ØÖYì‘ÚÀŽÝ¥K±ZÀJ‚ÕÖœJ•*I‡bPÀ²[7‹[KVxCCÁúÓ¤I+=‹O‚æC8„nÚ´©Äa€ |VNÝ>#iæÌ™ï‡UšÅš0a‚¬p4=wî\ªV­šXwXT’Ž2YÆ« Êf%™=[ö‘•¸QWäÓà­=0¿b2@xgΜÉ_Á›.qXU wÄ@BrVRÅû«óL§jÕªeUwèСŠgë ,7Žù”;B­X±Â ^¶l™(·°’@1d3¨‚b ˜7ožÈ°ÈùšÅ!'²923,,w‘­Üiyùú›%oBV 6oJ>äuýñ KÎÓO?-¸ Èƒ&låmƒr‹|,:Éç0 @gÒ8ëÕ«§.\¸ x¼µ ø½ ɇ6¢ªW¯.ù`Œ€A8A/àç Fâ´ÀæQyÆ_ƒ œêdEx¸ …`+y þÏþc)zŽ ¯_¿®  jë…coòˆ©Ê5˜J[Ó`À@‰Þ3Pló¶¢5 &Hm‰²„ùæPÞ«kQ°a`º¶Û[{4Þƒ~ÖWÃÄÊefÙPB(ÀVJ0Ï4>ċŋ³ß®q4bĈxy @kÑ5¢6Ç|àÁæ'pU,=¥ e8¯‚²‰ç'Þ®â=wQæ­=ZÇpÍ ½ŒWC×àˆyŽIÀ®$/ùÔ»wovcúTÀŘ—ûxùai¢è SÀ’äÂîOb†ykObÖ#eEü;Á¼d†£Ý§ ( _‰ æà˜µÙ ÿMB@Ã! bb¡¸rÅÙ̘XåÚ¹œˆ×ô1[;w‚¯m›?ÿ +©¹ù´g*_³Ø:[–‚n_Ä3b º‘vA+WGš2e ;^g—&ÝX®‚ˆU‚ƒi”ónÞ|ˆ4FeÊäcîvlb’´ÉèIBvÿ 9s=¿Ð’Œ¶m;ÂÇ$|?8çI±•Ã0@”ô÷ôék‰7Uù”kÍšµ>JjùÕ4 ù}D«VýŇÔ.HMoܸÉïß®‰‚ZGG DA?AüI™2Ϊéó1ãƒÖ³¹ œ†§]¢ä¼qã–ˆ<ׯßyQ̦0< OðbXºt;]¸àìFÌ0}ú:ë ·°VÀæÈ DxϘ±ÎIüÑÕ=uêëžßHÓéÌÕ; x§O’Æ^¹r]ç9Š?ºB·Å ³!¦éèÕ0@ ”K„| láW Ý;ÍSÌžý¿Êx+jbß" DpßN›¶V6¿ 4 |Ð] ;q⡯ÐéÓ§wJwîÜ9‰¾pAT1À¤I“héÒ¥B\-Y²dÔ¼ysÂŽ2)àù矧'žx‚úõë'9bÄ G<Â_}õU*_¾<½õÖ[c ã‡ F… ¢7ÒÛo¿-øïºë.ÄsçÎ<úxÁ@gΜñàÆÔ¨Q#êÑ£­^½šÞyçªP¡mݺ•Ü~ø!AlX¿~=uïÞ†N•*U"àúõ×_iÖ¬Y½ üeË– n02mÇŠ°hÑ"yî×^{¾ûî;Á‹À7ß|“ªW¯.L·bÅ I×§O3fŒ¬h'ꦫZµ*A¼Ù·oŸˆu ÏsÏ=G›7o–çgŸ}–Ú¶m+8¼ýmÚ´IÚ«Å$0òÈ‘#©xñâôÕW_ M?ÿüs'`^Ðb˜“L‹8ãÆ#ô7"&2Ð*ÔuJ0fñÇœfΜIUªT¡Ù³gÓ#àÄi„…¢Ž ö`°@ä¨X±¢,Ó­[·–å3ÚÑ£G…N`ˆøÌž˜±¤çÏŸŸvìØAäXpé…^1 „nÑ¢…ˆWH‡YÝ £zè!)é ~aÑбcGG4ž 6Hž±Ri¨S§uèÐAg“+f=0Á’%KäWˆ XIÐ3íÚµ Ì€•ïî»ï¶ôgžyFpƒqNŸ>M½{÷¶Ä”ZBÌqü! €ÕJ.å@äƒå /^L%K–”ÕŒˆ•2þï¿ÿNÐ}p:AÄEc2 D•8*^X:Áî¬è÷Þ{¯ˆG0ø ÚÚ·o/âfÿ±cÇÊj€8=Ûc`hÃy‚|ùò9E¡."ôÇ=â rùX­`õÁ€{cFÛ@d`Æuˆdˆ-õë×—U +’cÝÆñ¤@…È–)ˆW ê‘ Ì£ºViô˜ø4€AÂQÇ ¯1ºÄÈÑk×®•r8”gÈ«X~!ó XêG¯(áòç8ËaàÄ2 À£•rÈÕÞ˜Içq¼b“O˜0 n€!—¦…VŠçITÀÄ¢ž0° ‚¹Õ øc@ƒFXQ0<?ÄP¬¢¨/˜ÌS=4>ÐôpdÈåË—Ë*1åcµÑ« êŠ -Ôu"?¸ï¾ûd)?~¼ÈÎÚÊòÓO?Ñ'Ÿ|B 4Ä(XXr1Ë`å€\Œ¹º'€ 93;D -»#ÊÕ³7L‰°¤ ;|üñÇ"ŠàÖ0 + NÈ3}útÑK :9Bä+MÍ ˆÀ€“¢ÀA ö­\¹RÄ(ìP@¡û`þôÓOEþú‘Î$elÚ¸ž‚L¨Â&ÞPÀ À´Z¹rå“&©(ÁÚ™†a¦€ÑÂL`ƒ>²)` ²ûÇÔ.Ì0 fô‘MÑÝ?¦va¦ÀÿùP’Œ7Ö¶IEND®B`‚mysql++-3.2.5/doc/html/refman/functions_p.html000755 000765 000024 00000012323 13515046515 022026 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Class Members
MySQL++  3.2.5
Here is a list of all documented class members with links to the class documentation for each member:

- p -

mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1Null-members.html000755 000765 000024 00000020120 13515046515 025147 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::Null< Type, Behavior > Member List

This is the complete list of members for mysqlpp::Null< Type, Behavior >, including all inherited members.

datamysqlpp::Null< Type, Behavior >
is_nullmysqlpp::Null< Type, Behavior >
Null()mysqlpp::Null< Type, Behavior >inline
Null(const Type &x)mysqlpp::Null< Type, Behavior >inline
Null(const null_type &)mysqlpp::Null< Type, Behavior >inline
operator !=(const Null< Type > &rhs) constmysqlpp::Null< Type, Behavior >inline
operator !=(const null_type &rhs) constmysqlpp::Null< Type, Behavior >inline
operator Type() constmysqlpp::Null< Type, Behavior >inline
operator<(const Null< Type > &rhs) constmysqlpp::Null< Type, Behavior >inline
operator<(const null_type &) constmysqlpp::Null< Type, Behavior >inline
operator=(const Type &x)mysqlpp::Null< Type, Behavior >inline
operator=(const null_type &)mysqlpp::Null< Type, Behavior >inline
operator==(const Null< Type > &rhs) constmysqlpp::Null< Type, Behavior >inline
operator==(const null_type &) constmysqlpp::Null< Type, Behavior >inline
value_type typedefmysqlpp::Null< Type, Behavior >
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1WriteTimeoutOption__inherit__graph.png000644 000765 000024 00000020702 13515046516 031464 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÏ·µð ósRGB®Îé!|IDATxí]˜TÕõ?l¡)¤†ŽJ” ‚ "‰’XÀ’ÐÅOPŒåŸP#MXš(½‰  .K^–ÞûÂï~‡ÜÉÛÙi»ÌòæÍœó};ï½ÛïïÜsO¹ofsY–5…”E «œÈÅÂceµ––WJSE {¨ðd7­¥ .E ›$d³ž#ÕÒÓÓiæÌ™Žô­æ,‰‰‰Ô®]»œí$Ì­»*`pæÌ*\¸p˜!Ðæ" ÐÙ³g#a(¡ŽÁƒùóç‚„úŒ?>ÔQåÔç‰(vè`Ü„€ ›¸¥c(Tx"Š:7! Âã&néX# žˆb‡ÆM¨ðä ·öìÙC­[·¦ƒæ`/7šNII¡.]ºP•*UèŽ;î Gy„Þyçº~ýzÈ}Ÿ:uŠ®\¹"å{þùçC®‹Uxrë8—š7o]¼x1{!š;w.5mÚ”’““©GôÆoP©R¥èÕW_¥¶mÛ—C!]RR’½|ù2]ºt)”j±[oU»…NŸ>7À->ç iÈiiiÖîÝ»­«W¯Z»ví²6lØ õ®]»fmܸÑâÅfñN+iÇ·öíÛ—¡Ý'NX©©©ž4Ö ÖÂ… -\í„öÖ¯_omÙ²E’Ñ'/>kݺu2ÞíÛ·ËóáÇ%åV®\)i¦#GŽX/Ʊdɹš<\‘gÆÊÚÄb´Ð/ÒK—.m5hÐÀ:wŠõÑGIÿãÆ“tf ¢+VX?ýô“§üÞ½{­øøxkäÈ‘ÒÎùóç3ŒÁÌqöìÙp2#ÇŽÒ®÷8<ø¹a-gñ!©ŸÜˆMÞƒF×PV…gÕªU²x~øa¹Bðzè!«E‹žçx@ÓèÑ£­¸¸8Ë,p€Ò¼ys«Y³f²H[µjeñ+$Vþüù­„„k̘1‚ÛÉ“'­ÆK{¨ß¨Q#¹Ÿ3gNáá׊$5„•;wn¹¯Y³¦µÿ~iiMš4‘lú™6mšäá£H‘"ÖsÏ='Ï‹-’ú_ýµ5uêT¹‡P{„¬zõê2äuíÚÕBŸE‹õŒ5•Tc­#í`o¿ý¶Õ§OHdbŽÀy® zc~µFÆŒK”(amÛ¶MòCùp«ðÄ„ÙV°`A:pà½÷Þ{´|ùr‚IÂ…>ûì3b @›7o¦Î;S®\¹húôéb†;vŒxqÒ“O>I¼@ o5°ö"ÖFÔ·o_2dˆ¼á0tèPbMB¼ åõ’J•*I}eÊ”!Þˆµ‘´õ׿þÕS”5íܹSòùË_R¯^½ˆ5€äÃÿ`¡—û *ˆI†+/RI»ÿþû=í˜̧~ýú2n“†±~øá‡b’M˜0ð7kÖ,bÍG¼)ФI“¤mSW̱f!$bMFÆ £¥K—zб"Öš´lÙ2Á×àè)7¡ì ‘R&»šgõêÕ2ì†ÌCëÓO?•g˜1xž1c†<ó‚µØÑ–ûüãVž\L¿âÅ‹ûIžöaÚ"{Øšv‚éeÈž÷í·ßJ²=ß”³_eæðÁØ“å~ñâÅbž=ñÄž<{ˆ®]»6Ã<ÿ{ì `lñd±æ%6d¨*ÆžF¢à&´U e ·Ýv›|§dРAò՜р~üñGêСaA—,YR4,›u¢‰&Nœ(eà 80`Wh>4ü$„’ A»Á‡¾ÿþû-V§NÉfÏãaá‚­òÌ3ÏHù—_~Y9!è?ÿùøk÷ÜsuïÞÝtAlНß~9×iÓ¦äã;5~sÖc*aŒlÚ0$¾#¨cÇŽ¦Hl^ƒ¤T »> 7#\Í\;ÓâïÈ3"a†øÌDÒ^|ñE“$>¢d¨ËšÉBdŠ %Ñ9aC>"f¸ÂçAø÷U›h›) ÿ‚ÍB !a|žºuëz"VˆŠ}÷Ýw’‡Ñ6ä!ÿúë¯{"hèíóâ–9¢ > ›DÛPm²ùy#“?;uê$ãEE¬† J›uÖƒ>(yˆ´Á„Ÿ2>Áið³¼}$¤û#·ú--fϾñ.Ù”)î4i²3o·ÕQá‰@Ž-Z´™¿sã·:M)){#p”:$ž\Ó¦%S|ü Ö$&ÆóK™)8J’ O„­sçÒhñâÍü¿z“ž~ßfNæ_ÁÁ+sJ‘„€ O$qƒÇ2gΆL‚rúôEZ±b{„T‡£Âak ))9Óûo ñü]žä©G…'‚ÖÀ±cçøIvðW˜3þPáÕ«×諯ÖóÑ¢ÿ«ÍÄŽ CQá Ñ­+0kÖ:Š‹»ñ» Þ½^¼˜.¾wº>;‡€ sØgêyʔՙüS(!!ŽkÌ£^#ž`†°oß þužTy›À×`º-\¸‰Çí²¯lMs@÷ÕåÌ™kùWp³¾Ðܹÿû_íhÚ­C 0·nÝ8b¾§©Sq–srçŽ÷üá€4wîÏ~^nÆ 5Ý"e±¸ò+ ‘^¸ÆwÙºu{ Cs©©'ù÷ã¾áŸömE æóä™7< zã®úJ‚c(9Ð1ÞgkÛv4ÿÎÚ`*]:{?âÀ°c©ËT5Ûb‰Ý:×°" ÂV8µ±XB@…'–¸­s +*|˜zè!úûßÿN7¦‘#GR«V­hÊ”)"D›6m ©»ž={R·nݤìµk×èüùótýúõêj¡ÌDe¨:ó4CK9yò$¥§§S‘"EhýúõrVt×]wQ||<íÛ·+-ÂBÆ¢3¡ðýû÷ÓÞ½{©N:T°`Á =z”}¬š5kZU«VµX`¤­–-[Z¼;[¬uä9..Îzûí·-ëw¿û¤%&&Jù#Fxú4hÅ‹Oò‹/.í>÷Üs’¨îºuë¤NÇŽ¥þĉ-8‹M4OÛö›þýûKy|«k×®ÒOÑ¢E­Ü¹sKz=¤8ú6ãiÔ¨‘Å‚(ù»wï–|6]-Ì uQ¸°ÀI^¹rå¬-ZÈ8 .cÆŒ‘¼P>¶lÙ"}±à…RÜ-eðêGôP8„Â÷î»ïZ¬¬×_]˜¾k×.)!!ÁšX+ZM›6µØç’²¡|D«ðļÏË-UªTIsÖ&Ä‹]ò`>yÓçŸ.&̘x0Ÿ`ÊÍ›7X Ä´éÝ»7*Tˆ”°›Gêš~Þ|óMâ…n%Hày°ÝÀ±Ö+Þc!‘çîÝ»æÃÂ,yþ>Xeœ¬I¥H•*U¨]»v´xñbOÖ`â_Á¤ëСíØ±Ã“«7êóxqACæý88×Þ?¾÷‡Ÿ¡|ùòž*Hƒa(P]S~þÈ—#}áÂ…¸<Âb'-|¯@ã3ˆ²’ãÇ{ªÙqÉ—/±¶õäÅê ç±ÐC¡;3*T¨@lyг™Eì3ɢîÍ&ÇéFhØ,ð@uá”Û Ú áiö1ˆ}2~Ó:·'Î?úiÞ¼¹`ƒ!„¦×®]K¿øÅ/L’Ïk©R¥hÉ’%Æ»fÍ™Ÿ©*.¦|,\ÕlË—aʱÿ#g=d E‹ÑÔ©S ¦Óðáà /¤â,adìÚ4óæµ×^“ˆœé*P]SÆ~… mÕ¬Y31Á ì§H?ˆ ½õÖ[žâXôìóȘ  cmÓ¦äcü¨Ë~˜§ç‘HœIfÁâƒV ¡bC¬%,>w‘ˆ—Y€XèÞ3_uMþ®hÑ1~³ S;úŸUY|^#átïB'Ÿy'Ë3kK™‹¯¶}V11Z…G}Þ¢³BÂÍPœÃ¸„?;á ³mÛ¶eƒ?_fÞ°“¯ºö|_÷D؃¾Êp]f}åáØá J¡! >Oh8e©|î#o°6 |ìË/¿ôœög©±,Æ[Õ«WÏB -z3¨æ¹ôÔ}ê©§·’ Pºu¨æ¹uXkOQ†€ O3ôêU}ã9‚ÙC*<ÌQ£æEðèthQéóà5~·Sbb1*^¼+õë׿ssÉíÓ‰ÊñGÕâ»6Ë—/ FÍž½,H¥N*óà2†ÇÝ:A¼yáý'·Î…ÇUÂãbFdzƒoð«4§¨AƒŠü–ö ™ò5ÁqRÕçqœ™°ví>ä$'ï¡C‡Îd.¤)Ž# Âã8 2`æÌJLŒ—Œ„„8~s;´ßXÈÜ’¦ä$*<9‰n6Úæ×ÅøMídþ-…ß!â/„ò}ü–´JN# Â“Óg±ý+¶ó×.xjA˜¶n=D;wó¤éMd  Â|ðŒbÆŒ5”pÃd3‰0á®Y¨ðD?®\¹Æ/®ã¯8güÚ7L¸¤¤Õ4R Pበu°dÉþmµtŸ#Ú¿ÿÿ¦Ú~Ÿyšè *<Îàî³×iÓ’Ùdóý 0ݦOר›OàJTáqxïn/\¸Ì¿„ó#›l¾_…éáBA)2Pበ>ðï½mÌäëxíĉó´råNïd}v‡€÷î6))¸VÁÏ?áU)2ˆÊ·ª#ÚÐG‘––Î?ŸÎ¿;PÖSéÒ¥tþqùü£‡%2„®õUDŽßè‹¡Ž³À÷RRöòˆŒ¦5kó¯wò]HSD@_ u}íÛݨÏãnþéèD@…ÇAðµkw# ÂãnþéèD@…ÇAðµkw# ÂãnþéèD@…ÇAðµkw# ÂãnþéèD@…ÇAðµkw# ÂãnþéèD@…ÇAðµkw# ÂãnþéèD@…ÇAðµkw# ÂãnþéèD@…ÇAðµkw# ÂãnþéèD@…ÇAðµkw# ÂãnþéèD@…ÇAðµkw# ÂãnþéèD@…ÇAðµkw# ÂãnþéèD@…ÇAðµkw# ÂãnþéèD@…ÇAðµkw# ÂãnþéèD@…ÇAðµkw# ÂãnþéèD@…ÇAðµkw# ÂãnþéèD@…ÇAðµkw# ÂãnþéèD@…ÇAðµkw#é?íZµŠÞ}÷]wÏ* FŸ––ÀÿV±Uªt†ÿ­¢ïÿÓt͆ FÕªU³75Óÿ$Ý¿?%%%ÑÏþs{A½wÂ…‰Nžt cíÒƒÀåË— 套^ò¤™›LÂc2lnõªÄ,ÇŽ£ßüæ7>ç¯>OX4QŽ€ OpŒ´„"àŸ°h¢"žài EÀ'~>KG`â‚ hË–-ô /äØè>þøcJOOÏÐǬY³hÅŠ’V¦LéûðáÃæo×®5nÜ8ÃxfÏžM;wî¤çŸž®]»F.\ ‚ f(ãýpàÀzÿý÷½“=Ï5jÔ #GŽH_‘õ5·‹/Ò„ hÓ¦M”ššJwÞy§„}{ôèAE‹õÌ'ÐMZZ]¿~òçÏOˆðÁô—¿ü%äúÚÎnžë5€Sr’,Ë¢¯¾úŠ®\¹âéæË/¿¤~øV®\éI[·n¤+VÌ“fn |{‚¾ûî;züñÇéêÕ«&Ûç5wîÜÁ4ÉÉÉtæÌÏ3úÁ¢BÛ‘BÞs;ɱvlØljÕªEÏ>û,Ýwß}ôõ×_ÓþðÚ½{wHCçwèÍ7ß”²¢K—.øâ$Ý´æÁ‚@%J” £Gʤ*Uª$»ÄÞ½{eÁU®\™úd—Ì—/_†¡@¤Ý~ûí‚ömÛd1  ¤Xع˕+Gyòä¡Ó§OS©R¥L¶\±›мyóŠ6*Ì%(Â;wîœìTûöí£óçÏSÕªU)11QòQsÁs\\œ´cžëÕ«GS§N¥­[·R:uèÔ©S´cÇi Ô¡CicãÆT @ióºí¶Û¤C‡Q«V­èᇖ>PM…]ýaÇÞ³g\W||¼`jרàx€~ÿûßK}|4kÖŒ d ô 1—]»vÉ'N´058£¼¯>‘nísi•*U(W®\’eú1ü–àO¡B…2sûç?ÿ)ó‚ö¶2>úè£ôÌ3ÏÒ!x‡ ›6ŸãÇSÙ²eiÈ!Ò_(c…†/ ðÆZ Ý´ð`õîÝ›î½÷^ÂÎ ª]»¶0tÍš5ò|×]w‰ù1tèP¢Ñ£GK: sçÎôç?ÿYêôïß_vVU¼xq5j•/_žÖ¯_O €Á@00wî\iÇ| ]'˜‰½uëÖôꫯÒ÷ßO”Å¿yófÉCÛ#GŽ0SRRèå—_¦÷Þ{Oæb¾çž{dCÃAx °(avÀ|cð á©[·®”Å¡˜Œ±Cø =pÿÇ?þ‘ÌüŸzê)ú׿þ%‚ùaN$,Bœh·`„ؾ}{êÒ¥‹ð `î^,Rzƒ`òüío#'4v >?ùä„ ›´ÆðáÃeãëÕ«ýö·¿¥Ž;J»Ð*0KŸ}n¨?oÞ<á]pP xüú׿¦É“'Kû—?ÞMœ8Q´5ê 4ˆþô§?É\?ÿüsÙ@k|Þ°aƒlÐZ}ûö¥¶mÛ¢¹›¢°™m`˜„Ába§Ÿ2eŠ0‹»j‹-dfç]¾|¹ìfØ‘'Mš$‹L@;°…Á,‚#FÈn°PÎÔ÷5s,@ìÖóçÏ¡€}ûí·ž¢Jìà`ÚÙ³gi̘1’-A6ÚÌþŒEÿó­^½š Pðk°"»#$Å6îÝ» ³L„ »&cD?˜´)Áœ9s¨fÍš„&;f ´ü$ìøÐ,3gΟ>}ºæÒ¥K¥ï@}b>¨M<VÐ\ãÇ—ºþ>¼ç†ëØù¢êÕ«KòÁƒåêw/¾ø"=òÈ#Ô¤IÑTö¶B+6xlrXØü`r‡ƒÂ&ù¤h‹Fɸ ÙØÍ3Ô8L ì¬Ð×l÷6lØPvZìD?ýôA@ ‘>úè#Ù¥·oß.&œð’%KÊŽmâ*V¬HÍ›7—~P®téÒ²ã›òØí±PÑò¶Ä3lp#<ÞÏŠüQÌQÆ]¤Hjò@váiÚ´©œNrŠ 6—ûï¿_L˜º 49C³JØ  ±*T¨ s„­±b£¿`}"‚ͰeË–Ò=°xðÁ Ú8+í²›ŠöúØp@X `¼“B^¡ŒÚ‚ ólá ›6ÛÌ Ì­à c'c…9‚E²lÙ2™.L„`BëŒ7NyFËØM‘?‚Mk'ø=¦ ¤áÀ=ò ñˆêׯ/;ðâÅ‹¥=W8ÉXØ,Œ…<øÁ „&Ž!hH˜ƒY%{°¼€éh¼‚õ‰Lc³¨Qüõ‡Ìl_dÖ€¿ÅjÌzS.ï|õÊXÁgCØ8¡‘ÃAa#$Á…& L'8œPÅ øݺu»Ú¦ÇرcÅ©D>œ^,(L‡Ò˜Š¶°ð ¡h#T~ A4up…ð¯AÈu`Gƒ°³ÃoÁ.k×:’‡™ìx`‚°¯]»6ƒ †Ð” …Áú„  šiþˆÁ iöÂϾü…¶ƒ™ÿÈgPæ.„˜Á,ãòú6V7sðªzÓa3ÛB üDð¡B± A°õa—"’õ Êa„ÆúôÓO%Bû»´?“-Z$»$ltøLÆtDô‹èLF0Ñ+ìm8­f—ô~Æ8Á® 1t÷ÝwË&€t»š|_WDAèšó…O‚¹!í­·Þ_̾Ø|µ“Ý4lú^ð V0+!Lð;@Ðf°‰C¨÷†ìsƒðõìÙS¢¬ð[`i@@°i½òÊ+b¦"àa(ïÐ.ê‚wv 6V{Ùpßß2á1ÒE¡AÔ¶¨!Do %:uêDmÚ´‘°7œmìJýúõ“@Ãc=Fˆô5oêš¶ñ Õ!€3ÌÁ7á@;Ð~ˆ¢„vÆŒrõõŒ4£YŒÉ†40Õ¤›+Ò1&û¸poÌ h1˜O?ý´ÌÓD1Vød{8¸‚¨’)ö y§y÷aÊájϳ§Ãœ Ô'æ×µkW1Sq… 6DÇ@àÎg °PÞŒË>7XØPŠÆ1"Ð@8÷1~­=˜ˆw0÷±>úôécŸŠôh¬ÞàÙ;-CƒYxÈôe8øxÛDe²ÐVÈE À®ÍN°Eñ¶ìvcZ™|Øÿp ‘ŽâªF(æ¢Yp¼á˜ÝŽ%BÕÐJ°“aRÀ‰vŠ0ŒZ„¹c̸ÂW2¾cNŽ/XŸðq°Ùso¬0~l8ÞÆë=73à!‚æòn/ïL}„Ì‹1óL:®Æj/—Õ{Ìò¿ÖX)ÿm#5l>O(ƒ#±‰ß› "C¾ ç¡Ú ä¬{;¦¡´î2˜þ ³)Îk°>!ØF¸½ûÅØ} ÊyÏÍÔ…Ïdü&“æ} 4&@û£@cõWçfÓo©ð@Š¿øâ 1 L4;€ÉcW÷¦ ìhæ“f®ç'J‘‰@ ÞEæˆÙ,f§.à B·Âl‹T0t\Š€7̶[0ð”>+nG@…ÇíÔñ;†€ cÐkÇnGÀoÀ`ðàÁnŸ›Ž_¸iü Ðp&áÁÙˆyÕü¦{Ö(@2agÐL)S´ÍdèUP"ª>O@|4Sð€ l4Gˆ€ O@x4Sð€ l4GˆÀÿ2"pGЗaaIEND®B`‚mysql++-3.2.5/doc/html/refman/bdwn.png000644 000765 000024 00000000223 13515046516 020243 0ustar00tangentstaff000000 000000 ‰PNG  IHDR5åZIDATxíË € DŸP–1ñlžmÀ r±j².e è†D[ØÉ¾ÙÏÔ¼µ¦ã´Þ|陣6€Všë3´Å?Ls'(}¬>+ žKó÷¥¿ch`‚ ^׃ÞnIEND®B`‚mysql++-3.2.5/doc/html/refman/tiny__int_8h.html000755 000765 000024 00000012514 13515046515 022074 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: tiny_int.h File Reference
MySQL++  3.2.5
tiny_int.h File Reference

Declares class for holding a SQL TINYINT. More...

#include "common.h"
#include <ostream>

Go to the source code of this file.

Classes

class  mysqlpp::tiny_int< VT >
 Class for holding an SQL TINYINT value. More...
 

Functions

template<typename VT >
std::ostream & mysqlpp::operator<< (std::ostream &os, tiny_int< VT > i)
 Insert a tiny_int into a C++ stream.
 

Detailed Description

Declares class for holding a SQL TINYINT.

mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1BadQuery.html000755 000765 000024 00000050026 13515046515 024331 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::BadQuery Class Reference
MySQL++  3.2.5
mysqlpp::BadQuery Class Reference

Exception thrown when the database server encounters a problem while processing your query. More...

#include <exceptions.h>

Inheritance diagram for mysqlpp::BadQuery:
Collaboration diagram for mysqlpp::BadQuery:

Public Member Functions

 BadQuery (const char *w="", int e=0)
 Create exception object. More...
 
 BadQuery (const std::string &w, int e=0)
 Create exception object. More...
 
int errnum () const
 Return the error number corresponding to the error message returned by what() More...
 
- Public Member Functions inherited from mysqlpp::Exception
 Exception (const Exception &e) MAY_THROW()
 Create exception object as copy of another.
 
Exceptionoperator= (const Exception &rhs) throw ()
 Assign another exception object's contents to this one.
 
 ~Exception () throw ()
 Destroy exception object.
 
virtual const char * what () const throw ()
 Returns explanation of why exception was thrown.
 

Additional Inherited Members

- Protected Member Functions inherited from mysqlpp::Exception
 Exception (const char *w="") throw ()
 Create exception object.
 
 Exception (const std::string &w) throw ()
 Create exception object.
 
- Protected Attributes inherited from mysqlpp::Exception
std::string what_
 explanation of why exception was thrown
 

Detailed Description

Exception thrown when the database server encounters a problem while processing your query.

Unlike most other MySQL++ exceptions, which carry just an error message, this type carries an error number to preserve Connection::errnum()'s return value at the point the exception is thrown. We do this because when using the Transaction class, the rollback process that occurs during stack unwinding issues a query to the database server, overwriting the error value. This rollback should always succeed, so this effect can fool code that relies on Connection::errnum() into believing that there was no error.

Beware that in older versions of MySQL++, this was effectively the generic exception type. (This is most especially true in v1.7.x, but it continued to a lesser extent through the v2.x series.) When converting old code to new versions of MySQL++, it's therefore possible to get seemingly "new" exceptions thrown, which could crash your program if you don't also catch a more generic type like mysqlpp::Exception or std::exception.

Constructor & Destructor Documentation

◆ BadQuery() [1/2]

mysqlpp::BadQuery::BadQuery ( const char *  w = "",
int  e = 0 
)
inlineexplicit

Create exception object.

Parameters
wexplanation for why the exception was thrown
ethe error number from the underlying database API

◆ BadQuery() [2/2]

mysqlpp::BadQuery::BadQuery ( const std::string &  w,
int  e = 0 
)
inlineexplicit

Create exception object.

Parameters
wexplanation for why the exception was thrown
ethe error number from the underlying database API

Member Function Documentation

◆ errnum()

int mysqlpp::BadQuery::errnum ( ) const
inline

Return the error number corresponding to the error message returned by what()

This may return the same value as Connection::errnum(), but not always. See the overview documentation for this class for the reason for the difference.


The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/inherit_graph_43.png000644 000765 000024 00000011132 13515046516 022443 0ustar00tangentstaff000000 000000 ‰PNG  IHDRu$vXª.sRGB®ÎéIDATx휴ÕDLJGQQATDö‚öÞ卨Ôc (‚+~bTÄÆ ,±¡(6@–o~sÜœ¼¼äÞÜWä>Ü9çÞ$»“ÝÉgggg7©(‰'€GÀ#àX&(Y&žÂ?„GÀ#àðÞ¨{Eðx<ËÞ¨/CéÅ#àðx£îuÀ#àð,CÔ‰?ËŸþ)ß}÷]<Ù_9 4uÖY§È¥LïÑG•çž{.9Ó§z<©{ì±²Ï>û”É/ç©ÿý÷ß2sæÌ2Lþ¢¸˜3gŽüöÛoÅ-dé>ýôSyõÕWspø,€G ŽÀ /¼ “'OŽ'K9OÝq´k×Îúc‘#ðÕW_Õh£¼Ì2ž|òÉ"GÚ‹ç(ÖZk­DaÊyê‰\>Ñ#àðxjި׈fòBz<lx£ž 'Ïåðxjި׈fòBz<lü'Œú’%K¤oß¾²õÖ[ËÇœ ™¹-Z$¿þúkx×ý÷ß/guVx]l' çΕ‰C†Èœ,6ÑŠ^ž“O>Yžxâ‰j“sêÔ©²×^{¥þzöìY©ºgÏž-çœsŽõ‡•VZI¶Øb 9å”Sä§Ÿ~ Ë}øá‡¥Gáuü¤K—.òÁÄ“3]ÿñÇrÆgÈ&›l"+®¸¢l¼ñÆrÝu× ;瀞† f¸.\¸0oUß~û­õaž5Uw{åª;)ï?aÔÇ/çwžl¿ýö’¶bœN!iÏ?ÿ¼4mÚTœ²  óæÍ+¤ˆjç]¼`L}ùe¦xÀFÉptæÍšUíõ.kŒ5JØqT]Ä;mÚ´ ¯¼òŠüüóÏáuóæÍ+\õ:ˆï¸ãŽr÷Ýw[¸å–[d=ö°Gwú ôÅ_ÈÛo¿Z S¡ÄÀA=¼›pðÁKŸ>}¤}ûörõÕWËQGUhqóO›6MFŒ!8zùèž{î‘GyDŽ>ú蜬ÕÙ^9+NËä+QÒ=êAiii4)繯@ /^ò}ÿý÷z­v­£]ð×_Ùµ*B /6…|îž7ß|3˜;w®K \¹$è^L«ƒzæÏŸòpNÚ‚ ´ø réV9¾D|öÙgÆK}ê­„¬¿ÿþ{(׬Y³U|«ìرî¡Ô y9ùú믃áǪԖ®Æ;ÐNbu +uêÞñà—_~ 7Þx#(Ulõ¯0Ý=÷舼õÖ[ed sœ|ùå—zMÉK–ÓGFœ{nÐo½õ‚Þ-Z}Z¶´#ç3ÇO¾ï_L½è¢‹‚Í7ßB/|†dÓM7&ÛyÆ eÿý÷—-Z˜­ ß±.^¼5ÉóèàÞ—fSC!ý)‰—°^kÚû•O&Ww¾#í]ÓÁQt6dú…îT¥¾QZUP™8t衇ZgâœÚ~ûí'€ªÓ,™0a‚u"ÞFþ€°KøYС#«&êáȃ>èX«ìÈÛ ãNG¡CbÜÕs0ãAÞGÁÁ1í5ýqãÆÙ€p×]w‰zrÆæ™gš!BñÑñX´bÐCéQâ,4û‡d²Æ'§é+Ã¥jèJ´Ž%ÿð%: ä£QZo}]¬ZšÔ¨ñi ¡[ˆf°g0TïJ4„ :3 Å4!ŠqÂp¬²Ê*vµÎåâ‹/õ¸Íøª×%Gy¤Æ4ŒN=õÔÐ0«‡ku»Ø4÷°°‰Ñ"N®Þ¾ÅiIçú¦›nâÔˆs>ʧOÞ}÷ÝWÖ^{m+ŠúÎ?ÿ|Ñ“è¬×Òг$€Bô­(ñ:úÞ{ï-t%_pÁá·zÀØ3õê ÓÎy¶8él7ž”xÇ*ÎDY:“µgp7¤Ù—_HÊ›E&Ww¾#ÏÅu‹Aƒ‰F L9äH:v옯ˆœùe[/'köL:G”4ô^¢ÜìðvÞyg3bx,xÃqbeÜa`~tL§hާ"Ç\òR¤qJóRtê]¦ {Û¶mˤE/ðl 7¨qîºðÌÅ1¢>Oé8 áÀƒÒi3aE;OÓôˆx†ìfáÈ`À,‰6Ûl³Íƒî¨eË–î´ÜÑP20lއ£h>rVdÑ••KŸ¨SâáOÇnGf²èÚºë®k×8(I便5ÈôU¼T¼JG`ãˆEOŒ-2z¿ããH›iøE^ÖÅú81#b†…£æð.Ü›«¿8›âÊ-¤?eáÍ"“«;ëQCzfб{8(ÌüÝ@–µŒ$¾J{êt È…0F4n”O4s¦Sy‹‘™$LƒÓ<{B0”‰A_~ùåÓØSÓQ¦±ŽâJž&ïj«­f¡<Êà™ñº™=¤‘ ñѪ]vÙÅØt‘ÊŽ„iœ¢F8­¬¤ôÆjŒÚjÇj¦[àZk‡™¤ƒÝÅg¶vî5Jù¼õNÚÍt÷ÁÒ¤1ê+°‰ÖFñBÒt†] 8ì„ 9vëÖÍ´³Æ;Ë/†?‰~ÐÙ’# ÄLÂ9)ä;î ¹¡Wïî)ä˜KŸ˜a2¨ kŽeâ2c¡¯zÁ³fV´âÍ££np¤ L0$\à(º•‘Ð áT¼ÍÇ\Ž;î83L„¾’ˆ.(ÛìÜ9Lð=öØc6[gWϳkgúŒ SÁïÒ9O¢BúSÞ,2%É‘+⡇2osf#Ìú*K•öÔ窋N³Ããv>ŸpG¦¾xMVFyÈm LºåDùt‘)ïV£¤ûICfâñ(?aヱ/#]œ•^½zÙŒA¿ÂBHÅy‰”‰‡Ž—ÁzSrîGqñ|œç”¥î,w?<ºªoûÍY$­c¤»æ ^ôp2Q¯;—M¨ˆø:qP¼6¾*ÈKM,º±8Ä4Žç@ñ]9Äfi8<BIìegšõ¤gË•Þqqü´[£ï¸<ö¥³¿œ÷tà·4º|ŽêñSÔ£4ÞhžÛÒˆŽÓFn?}”§¢ç¹ô‰í·:Ø» ô§4¢o°¯?‹\`¨ŽPø@Z™ÑtúCQžÎ~LFÞ/H"Ú†÷²È—tu¤U…L¹p)Dæ´-U6'gd®³‹NUñ.ø%aÝkqh¶9»‰Æü\:G¦Â¼5'ݯ[áð^Š ;EË¥L~IDü0¾€•ÄWiµ5äÐF½ ~|&@ ¼4¬`»U§œUYvšÎ¸:Ð[<Õ$ÂKä—…ˆ;óK#<ܪ¤\ú„·™%´Gßà—…ðî¯2£^Âä+ƒiqpâ…Ñkbož C ®†bÚén¢eÒt¦ÐçÆ %m$4fxH'?ß”¿PY<¿G 5ʨ'-âäz8Ÿç¨*é­/u%û´ÓˆýÆ>HËöéjA ¤ZJõ…z<ÀRAÀõ¥»¯Ô#àðTÞ¨W®¾T€GÀ#°TH©óQ O5>ÅGÅj2±o™×Ä=y<Ùpßê‰s—3êl·‰î,‰ßோ¶XF_¹.> sKÄ–V^8óäðdG€·‡“¾;U‹ÍîÙ‹ñœ€GÀ#PÌø˜z1·Ž—Í#àðˆ€7êæÙ=@1#àz1·Ž—Í#àðˆ€7êæÙ=@1#ð 8¼“ahIEND®B`‚mysql++-3.2.5/doc/html/refman/namespacemysqlpp_1_1ssqlsxlat.html000755 000765 000024 00000010324 13515046516 025500 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::ssqlsxlat Namespace Reference
MySQL++  3.2.5
mysqlpp::ssqlsxlat Namespace Reference

Stuff specific to the ssqlsxlat tool. More...

Classes

class  CommandLine
 Command line parser for MySQL++'s ssqlsxlat tool. More...
 

Detailed Description

Stuff specific to the ssqlsxlat tool.

mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1DataOption.html000755 000765 000024 00000035270 13515046516 024664 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::DataOption< T > Class Template Reference
MySQL++  3.2.5
mysqlpp::DataOption< T > Class Template Reference

Define abstract interface for all *Options that take a lone scalar as an argument. More...

#include <options.h>

Inheritance diagram for mysqlpp::DataOption< T >:
Collaboration diagram for mysqlpp::DataOption< T >:

Public Types

typedef T ArgType
 Alias for template param.
 
- Public Types inherited from mysqlpp::Option
enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 

Protected Member Functions

 DataOption (const T &arg)
 Construct object.
 

Protected Attributes

arg_
 The argument value.
 

Additional Inherited Members

- Public Member Functions inherited from mysqlpp::Option
virtual ~Option ()
 Destroy object.
 
virtual Error set (DBDriver *dbd)=0
 Apply option.
 

Detailed Description

template<typename T>
class mysqlpp::DataOption< T >

Define abstract interface for all *Options that take a lone scalar as an argument.


The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/beemutex_8h.html000755 000765 000024 00000014174 13515046516 021723 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: beemutex.h File Reference
MySQL++  3.2.5
beemutex.h File Reference

MUTually EXclusive lock class. More...

#include "exceptions.h"

Go to the source code of this file.

Classes

class  mysqlpp::BeecryptMutex
 Wrapper around platform-specific mutexes. More...
 
class  mysqlpp::ScopedLock
 Wrapper around BeecryptMutex to add scope-bound locking and unlocking. More...
 

Detailed Description

MUTually EXclusive lock class.

Author
Bob Deblier bob.d.nosp@m.ebli.nosp@m.er@te.nosp@m.lene.nosp@m.t.be

Modified by Warren Young of Educational Technology Resources, Inc. from version in Beecrypt 4.1.2:

  • minor style changes to make it fit within MySQL++
  • changed init() to a ctor and destroy() to a dtor
  • class just becomes a no-op if no supported mutex type is available
  • throwing MutexFailed instead of char*
  • moved all method implementations from inline in the .h file to a .cpp file so we don't have to make the header depend on config.h on autoconf-using systems
  • made private mutex member a void* so we don't have to define the full type in the .h file, due to previous item
  • added more Doxygen comments, and changed some existing comments
  • using MAY_THROW() from MySQL++'s common.h to allow it to compile on C++17 and newer compilers
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1Comparable.html000755 000765 000024 00000035702 13515046516 024667 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::Comparable< T > Class Template Reference
MySQL++  3.2.5
mysqlpp::Comparable< T > Class Template Referenceabstract

Mix-in that gives its subclass a full set of comparison operators. More...

#include <comparable.h>

Inheritance diagram for mysqlpp::Comparable< T >:

Public Member Functions

bool operator== (const T &other) const
 Returns true if "other" is equal to this object.
 
bool operator != (const T &other) const
 Returns true if "other" is not equal to this object.
 
bool operator< (const T &other) const
 Returns true if "other" is less than this object.
 
bool operator<= (const T &other) const
 Returns true if "other" is less than or equal to this object.
 
bool operator > (const T &other) const
 Returns true if "other" is greater than this object.
 
bool operator >= (const T &other) const
 Returns true if "other" is greater than or equal to this object.
 

Protected Member Functions

virtual ~Comparable ()
 Destroy object. More...
 
virtual int compare (const T &other) const =0
 Compare this object to another of the same type. More...
 

Detailed Description

template<class T>
class mysqlpp::Comparable< T >

Mix-in that gives its subclass a full set of comparison operators.

Simply by inheriting publically from this and implementing compare(), the subclass gains a full set of comparison operators, because all of the operators are implemented in terms of compare().

Constructor & Destructor Documentation

◆ ~Comparable()

template<class T>
virtual mysqlpp::Comparable< T >::~Comparable ( )
inlineprotectedvirtual

Destroy object.

This class has nothing to destroy, but declaring the dtor virtual placates some compilers set to high warning levels. Protecting it ensures you can't delete subclasses through base class pointers, which makes no sense because this class isn't made for polymorphism. It's just a mixin.

Member Function Documentation

◆ compare()

template<class T>
virtual int mysqlpp::Comparable< T >::compare ( const T &  other) const
protectedpure virtual

Compare this object to another of the same type.

Returns < 0 if this object is "before" the other, 0 of they are equal, and > 0 if this object is "after" the other.

Implemented in mysqlpp::Time, mysqlpp::Date, and mysqlpp::DateTime.

Referenced by mysqlpp::Comparable< Date >::operator !=(), mysqlpp::Comparable< Date >::operator >(), mysqlpp::Comparable< Date >::operator >=(), mysqlpp::Comparable< Date >::operator<(), mysqlpp::Comparable< Date >::operator<=(), and mysqlpp::Comparable< Date >::operator==().


The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1SimpleResult.html000755 000765 000024 00000022606 13515046516 025251 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::SimpleResult Class Reference
MySQL++  3.2.5
mysqlpp::SimpleResult Class Reference

Holds information about the result of queries that don't return rows. More...

#include <result.h>

Public Member Functions

 SimpleResult ()
 Default ctor.
 
 SimpleResult (bool copacetic, ulonglong insert_id, ulonglong rows, const std::string &info)
 Initialize object.
 
 operator private_bool_type () const
 Test whether the query that created this result succeeded. More...
 
ulonglong insert_id () const
 Get the last value used for an AUTO_INCREMENT field.
 
ulonglong rows () const
 Get the number of rows affected by the query.
 
const char * info () const
 Get any additional information about the query returned by the server.
 

Detailed Description

Holds information about the result of queries that don't return rows.

Member Function Documentation

◆ operator private_bool_type()

mysqlpp::SimpleResult::operator private_bool_type ( ) const
inline

Test whether the query that created this result succeeded.

If you test this object in bool context and it's false, it's a signal that the query this was created from failed in some way. Call Query::error() or Query::errnum() to find out what exactly happened.


The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/functions_func_m.html000755 000765 000024 00000011374 13515046516 023044 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Class Members - Functions
MySQL++  3.2.5
 

- m -

mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1Time__coll__graph.png000644 000765 000024 00000023772 13515046516 026031 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÀÓמ2sRGB®Îé'´IDATxí] üMÕö_Æ’$DR“‘(¤D!¯ž!Cxˆž¥§—¡ˆzMIJ¼Gÿ4(Cá‘Dh’!ÊP"s!dØÿõ]Þ>ß½÷Üßýý~÷üî=¿ßZŸÏ½çœ=ŸïÞkïµÖÞ÷®ƘwHIȦä`0ÙôÝõµÊ©(Ùe€ìÜûúîºèÈÞä}ýŸ~ú‰>ÿüóÐ`}V@©R¥¨N:)ßJ°›Þyç(ÅúQ ²Ü¸ãŽ;ÜC]îÃVËkoõª»îº‹þøã°÷P%8  ÈN(d§ÞÖw C@  ÈN(d§ÞÖw C@  ÈNxZ‚ÂäÉ“éË/¿¤—^zÉ÷&/_¾œ† B+W®¤ãÇSÅŠ©_¿~Ô¤Ißëö«‚§žzJŠîß¿X[·n¥{ï½—^ýuºè¢‹ÂâÓ°yófºÿþû=³^sÍ5ôä“OzÆÇ;"ð+À† è³Ï>‹7.aå͘1ƒêÕ«G;vì ¾}ûÒÃ?L'Nœ ¦M›ÒÛo¿–>(ëׯ§uëÖElþJÿýïé÷ߟžÀ³Ï>›Ê–-ë|æÍ›G{öìqžK”(‘žbÓŸ'tgÀn„…†{=;vÌlٲŜm¸£ Ú r?=zÔ\|ñÅæúë¯O‘ï\¥JsÙe—Ùb$ÿ7ß|cfÍše¶oßî„§§ÔÚŠBÑN`…ºl›޼èÐÆÍÎ;åÞ+}ûöí ÛÈÍþýûÍüùóÍ·ß~+éñµjÕ*Ù Û´i“ŒÑ'"ÊíÿHIòæÍk )JÂx’ñŒKKDÛ¶mM¤0 -$­ ðÅ_H 6tv1Pn¾ùfç™·ŸeP^wÝu¦AƒN•»wï6¹rå2cÆŒ‘޼ä’K̹çžkräÈaxÛÚ` ‚-Zd .lræÌ)ékÖ¬iòçÏ/qn@gVªTÉœþùÀò´`þö·¿IºéÓ§Ëó 7ÜàÄ!-„ÎGú… †=ó,(q}ô‘Ĺ¿xI73gΆÁ Âû¡¶½ äiÁ)µ¶~ú駦H‘"欳ΒO¡B…?Tdm«V­GM´ôÀìòË/7 ôÀ ]»vò>¶,Ë(ëœsÎ1yòä<7n,Ž{†Ÿ2eŠiÔ¨‘ùç?ÿiƒÃ®©1¯´2–0.ÁÜé%/ˆ›T°`A†N‹/çŠÞ|óM9[Ä3 uèи3ˆ¾,YÓ¦M#,Ô¦M‘­y–%,»ÈW¬X1zå•WDÌèܹ3ñ,O<³Dž_~ùEòGúÂ’}€gmš0a‚|x€:IK–,I¼Jw*ñjD=ö˜Ä1ó‰hƒ+ÈýŒ´ «®ºJ®î/<Ô¼ysb¦¥ÁƒÞr.3?ž†JŸ|ò‰“%œlb¯¶¢ÍuëÖ%^Ñè·ß~£Ê•+“•åm^^} ø¶lÙRÞ1Zúï¿ÿžž{î9Á:ú yÝ„4]»v¥îÝ»¯Âœyõ‘÷s§ƒ8õÐCÚŽôÐx𹓤éž”Š-J:u’2ûôé#u§©h‰C9*½+À²eˤ(,»\ŸÁlÂ’‰gTÄÌcÇŽ•¸›nºÉðà‘ûG}Ô°|hž~úi™Å°lâà ®äï½÷$¾üqÏàÊ+¯tÒáâ f;«ÚUq¨+Mj4räHi3^Ô¤“ìŠcb5Â*eW€XpJ­­q N¢¬·ÞzË\qņõ©ÒÎÚï¿ÿ¾m‚ˆD^é±”)SÆI Q «bg5Á ðì³Ï ÌÌ"zAübæ""+Ê+=úš™Í¼öÚkÒ÷NÁ7©­6D[ž͵×^ëÔ1qâDƒ•&ò}(^¼¸ðYîÜg KåÊ•“gÌŒ n$ñ²-JãÔ©SeÁ̈U+T«V0³ò !Q$ž_\®ø²³´àºáïz"™=슃ˆK/½Ô‰¿ð Es°Š±(*V1ÌöXë_Ô­[7Âj/b1zôè!ÒÄìÙ³iíÚµÔ¥KÂJ—Š›àb! r–³‰gbyŸZ´h!ÙËË"ÞðìB8º #)ˆ•9¹â‹•mç>ôæçŸv‚0(¿þúë ãŽGGEc&[Dž©À‡ÏŒ"n±l,ÌÆF' +ë2(ÜuÄŠ ‰ÔV03& ˜'!fáèz­Zµœ:CobIs§%^ueP¹ÛŒ8Xg€D„(2/eAvÆŒ‹z±šðžé!¯¶²…Jt$\?øà‚‰õyQjé±ÒB_ÃÁ¼Ëb…¬jîòðnXiÐ&˜-ÙÊ%¸Î™3‡ÐO½zõ"¿dO«pÏž=…ipVé%Ìô÷Üs”uß}÷Qùòå‰E?© ÏùòåKoÑgò…ÊOéÕXq•¢` å’EæE+iò ¹Öäd¤¹Ó,¡a‚\ȳ®˜*+ diäáTä@·ˆÅ)ÆZ4lZȲÆ “8+W[’E5Ñ?¬¹5šÀÇöÇ‚¶ÀúÂGÊÇ϶"‹ÛvÂJÙdu€XpJ­­h0°ôÁ<‰€+Þx£~/Â{ðÆ—W´éÝ»·è÷aþN/yéÍSPZ Eæ `Á~Jd°1ƒ‰B Š: …AgÀ Å å`?Âm6³ƒ q<Ë›ÔZw¹î{tï˃ÛþnÓ`ÿ¦Qì`_!=K[±«”S<˜Ïk0"Qjé±§};!8‡ÜÀ¨fŽÔG!IÇXU'ƒëýòb€L= ñâã?qÊ[(A潂Ð`y†¨É )1Êq+¡iBåÐøhÏXîa’õ"(ýPàãE^m…AK£Qjéy?†Ø‚­‰ƒb[»víTÓ¹ðJè~LÓ½‘Ó”) ‰3•`ßçeTìÒwß}wš™2)ãHŠäC(K‘Ök•Š”&Y‚ÔÖdÁ,½íûc,(‡­[·³ez Õ|Š@²!` …›2Ý ä®\ïD#  è8þç&Y¢›’ë÷Ô )ù‹@Aó#•6KimÎôŸ•ñ·…Y§t>™Kv>Å[…š˜¬”‰­W¯þáðT2[FøW¾ö]Jl#‡S‚Sp‡>ø‹ÀôRD¿ï ºå ¢"i3-úÛ°ìSºê‰ê뽟Ÿü9¸ ¶¾™¨Vdûz•5¶M!Ê™‡ÍÓÌoðõT¢Z’­ëUHD÷c°oý?¢Ó'ÎÔ~|?Ñ/Ÿ$¢%Ù¾Ne€D _aÐ[ÂJ°B)ÓPÈtȹBÌþ9]h¬ÛØì|úx"Z“­ëTÈìîÇ ß>•{ȯ¸Ná_À„ÿà&³›—ÝêSÈìÿy{(åàa‹ŠA¡°øý¬ à7¡åo™œRü±ñ†W„Ÿ?`æ8dCôš (dÈN'#ÚÁ+@¨øc ü§éöI¯™€€2@&€ìTñ#ÿ×N4{?þ@ã‡INr½ñeÿ1þ³ˆ?шäNb"Ý-•ÆÅe€8‚µ¨ãüoxØìÂÿ$åÌëñáýì oד¸Q±Œc¤ËÇRµ¨pŽî"ªôHÊð_×óy ŸøOw§ ÏS å³>ù†€žõ Ú ^û$o€½Et[úÿ7'†Z4ITŠŽFe}”²~ëFA@ 8•õPÈú}¬oe€(àhTÖG@ ë÷±¾aÔ ߣ±ë¥£;ˆ.là{UZAd”"㢡Ù²IGëkFF@ 2.šMг@îhö´“ÂwZè«À™Ü5*4JŸÿ‡€2@€‡ÙÁßNị\;oÄrÄŸ 7a¨Iò°{'b?Ë÷¥ðˆ §r–à¥ïàp%Ù¥“ÜÑ ˜ŽF¬'M8´v»eEð ÷¨ðÌÉå)œï¥Åë¥mW2]UH¦ÞˆÐÌâì [|ÃCcZé›4i"YàI¾Fâ¾ Þuàùž1èÙÉ6Á¼ÅƒàqžÙK—.-nIÙé =óÌ3çþb'æâµqìs͘{e€DvŽB/ÿ{Ĭ[·Nܯ–,Y’à„34;z‹˜6Ö@Ìèpé ßÁp² wUÿû߉߉W ønÁç/\ÍΜ9SD(öÐNì’¾úê«UUªTI\À"=ü:ó¿/‹/e¬ A!e€DöÔ¡ü+±…N ®À_/Âa»yEwÒ¤ITµjU'mzn öÀ2êÕ¯_Ÿà¼~!ÞÀ¹õ–-[¤Ø)S¦ˆÇ{0ü2Ã) œš³»ÚÕžwÞy„•bü£¼;ï¼SÄ«'žxB|>§È„ª'Q§°ûU™í!r@©Å,O‚Øc ž4¡(pæ×gpȾ"$šÝ¥¬H–0ؽ Bhܸ±|àñ¯ý+±ï_Ñ?"‰N¶Ìd¸ê ½ð¿6T«VMÄvN·Ür‹ÌÊEØWn\Zé5€C ‡¸…"“ý°óì¨ï—,Y"Ì ±îp±²ôèÑ#´è¤{VH¢.b(¦«V­"(˜PL{öì) +®°égµhÑ‚æÏŸOS§N¥}ûö‰˜ó—¿ü…8¢zvZNO?ý´(Â7Üpƒ0 D¸;vÐ /¼ íO‘! TJÂNA“jÖ¬)Ÿ_|‘Þ~ûm‚‚úŸÿü'¢5é#Íî³fJ÷=Ò#ÜÆÙg\A=öA oÕª•<ÃY5:ü,» &×±cÇR—.]›reÊ”qGâ^÷ÙMiüQÔ7ÈÊO³e€à÷¡¾APÈxš5ø($²å÷½Ù‚l_·2@"‡€ü€½Æ(% e€„A¯'ÊÉÐ Ú†„!  0èµâd@@ zAÛ0”½Vœ ($C/h†€‡Nô\±þ ‘èKÝÊ ïm@"P(‘èkÝ G@ á]  H$ʉD_ëN8Ê ïm@"PH$úZwÂPHxh‰@Üÿ«uëÖ‰|Ÿ@Õ]ºàAº0ÿï´|çEjw"ûàƒRݺuãÖ„¸®ø{íwß}7ÿ 73PÐößÎÓÁŸüðg½Û·oOCŽÔ“Æ}@•øklüG¼’"O¼ü£e¤Ž¸®iˆæU€2@"P×:“e€¤é mH"PHêZgÒ ­`ëÖ­Ô´iSúùgþ‹rŸ ®HáþN§ *DUªT×Cp2TZºt)5jÔȳùÝ»wï6ž ’ Â+P¼WLMÀ „ëOxK÷“àD¶køÛ‚>uრžá ¦ã ÒÞ½{iÑ¢EžMGüœ%3%tÀì‡YøÔ©Sâ£vÍš5‚-ÃÿÔŠ+èĉ†Á—=nÚ¿¿¸ð±a;wî”…«›PÞêÕ«é»ï¾“`Ô oèn³õvŽt_|ñEŠ4p.ö¢Ÿ|ò‰\ÝùgÛŠp÷óàÁƒeodÙ²e4hÐ êÖ­›x‡/.ضñž–àftöìÙôõ×_;nK‡p¸.=tè}öÙgR>Âñ®‹/¦ƒâQ(µ¶"ÊC¾Pæ‡K$ÔxðlÉ+=âñÞpê÷ù矋kT›'ôzòäI鸃EŸ'ñæU܈ÍžÑb*“™¤oذ¡\‘÷úë¯7ì¢Óy®S§ŽáÁiFŒaؕٵk—S6/¿¦Aƒ†Á4ìV԰ذ§EÃ>pÍ«¯¾*é˜I ;ž–òŸ½É=2ó¯ÜoÚ´ÉLŸ>]îÙÛ¡É›7¯Ü³ËOÃL'å Œgq“+W.§ž÷Þ{Ïi ûÐ2ìu=â3;¢6,8qö†Ÿ™1c†áA'AÌ(òŽì'ذS;©NâØU‘¶mì·×ð~‹¤n¨ƒ¬¤ÖVf"S«V-y?äVÿú׿l“L¹råÌ­·ÞjòçÏoØ[¤‰–ÞbV£F §ÈÿÃ?Hy¸gçzr¿aÃ<ÑVÔY¼xqƒþO !»MK–TÓb–‰¥—Ø!³ ‚áÇ;ƒgyY†ŠÁ÷òË/K{y–“çñãÇö¢(ù0XÙ§®yôÑG {97hÏC=d08YäÎl×®¤õb€»îºË``‚)Ø‘´éСƒÔ‡AÅþs ¯æÈ‘#æŽ;î0EŠ1<[J<{F7Ó¦Ms°´Ïh7Þᥗ^râ"ݰŸ]I7qâD‰FýÅŠ3÷Þ{¯<ƒ0hx–5ì.Õ°çvÃÞ Ëá†W.yÇ~ýúIÚhmÅD<Ö¯_/iÙ‘µagÙ‚ 0h‘ŸÝœ æÑÒ[`o’†W"3oÞ<Á¬M›6R¶›À¼W_}µÔ |Á\—^z©ô‘$Žá+Ë2‹òú7n”A0yòdyf]žíÀjÒ¤‰¹ñÆ%nܸq†´^úÍW_}%3PÛ¶m¥0@Á Ò¥K„[bÑJÊôb;0ŒÄòºdÅ `™ÝcXl‘r0 £+Ø’.5èÓ§aåXV3[;š6åË——G0À#ˆmÞD\“‚b}qV̨eË–ôøã+bÃG^t$ßaP²Ü,3#f&ø±ÅŠÀrµ¤ÕhàÀQ«CÙ°¨À4 Se³fÍœôXeXL“:räHYM`×±¸Dï¿ÿ¾“ÖýŒŽ‡•‰u±ààD#ÚÄú uêÔ‰Xé¥Ûn»M,Khê‡UÖ&ßœ2ÓrãÕVXÄ0)`a=ƒ†*ź-XîzbI&‚ žìçÌ™Öf˜B+W®L£Gˬlxo`”p_Ã^òVzÂÓ«CáÁzÀà;Ö6ÅÉ3dMK °„õîÝÛ‰R ë òB1„òúÜsÏI<”PkùA<,9¸B€Õ÷n+M y“E,G9„\]½zuQ¼‘ 6G:mˆfB"¼ô äÅ)ÈËxGKPbaý²4Ð]ܺ̋/¾h“šk®¹&…N+˜•Ý£µõ£>|P?°b†eÛ긲xâÔ-=,X(£^½zÎ{3è` wY0d0#8é Ó¤¦?9øß ú$KYB_0–g : ŽHÊ Á,ê&0&?žye@#?ÀMV¡ã™PÒ²â& *€¥;RÝî´^÷h˜mùòåÎ M ¥#´þÐtÑžSk+ÞÌÏ{R ¬2,2yKz`k'2¯‚PïÇÞ0¸O+ùÁÚ †Ø0aÂ} l…R¤0¤ìlw$yv ÍölÓ†EpŽ1à“‚®S¶lÙ¨YÙ´JøÄƒ¼Ú ñЊn¨:>^KzžÑ½²;á(Ç­`; ¼ ”¹ƒœ÷Ò ‹Ä6iÑ!Ü…`бø#Ìâ·÷ˆ‹×À´eúu R[ý ÖrµàÜLF V$%%–ce+?4Ü>G;óbÓ$Ë5HmM4fb€DƒåU?¬o½õ–W4ñN©X•þýï‹•Ê3¡Fd:2+„²=>±pÂò· ãóIr &E¥$C ­šx´ôi5ƒF++™ãp8Ï‹`ä.–ó:6 oÉY\yçÓàhîaö…U ïd‹…(´| Á™œCò¢Ð<^é‚î‡HW€4LH8ÎŒy¸·þcÉÎfOÂ1ì€BÁ1>ñ*–)Xcxƒøœ“XHPvýúõ£Õo¼ñ†äåS¯T¦LÙLÃïB åôìÙ“P—Rì(¤‚vG%fCœ)Â.&ÎÐd”p>Gø¬œËÇïptƒ÷DçŸÄ{Ä›eÂt8Äû²“jwoÝmÀo pŠ7Ȉ7ìälv”•¢#  à,)8|ÇǪåÌ ß•£ø Â3J|2RÎÈà+ ê²Ï,&ÉÑ ¡ÀñÍ›7ËW`Ât°ŽOuÊQ0(V>ã/åã¼Î4)EF@­@‘q!>Z,ëp6ç‰'žåÖ#iº‚c9kOQÚC¶"œ¢ô¢ *Èà2dá Ÿ÷ÆHí WyY=\À£‡±ãÌ¿9ÁgçÎ ³l´ÁçQTÄàXNÀBoàc qˆ´"åàå"–‰@´ƒY&WÜcõ€n "ã"Ê&NwBq…Žc8š ñÂ}êÓ#{\‚qÇqB¿KÀÑiˆH8qJ8½ Å 6ÿ ˆî¹çÑ)øÇDò.¡éõù Ê©Œˆ*8¶‹cÐ8ã-R£´œÝTVüh…9EcÇŽ%ü8 k~dJP‚ÑVüîmE›q4\):qõÉ6fùEf£¬ü縰Ødæ9vüC,@`÷/½Ü]›Ùmr×Y÷ø äI“ˆ}Ç­JÕÒef~4&S÷Ï:#59³Û© A S(ˆ½¦mŽÊqƒR "ÊAì5msÜPˆ”é+hÿþÔ¡–¾’5W,ø¢óoZSü½G, ÉŽivîüV®Ü˶ýèÿU”±‰ôÎ~'÷…øß "µ_ÃB(X°.ÿÏQEÞ¹þßþø[wÞgÊ™²»Š ÖÓÑ£'ÝArŸ;wQ†Ã"4ÀW”|…7¼ð©S—³øûÉ“§é£ÖÒ‘#Áõþ¶ÉÞÉßæÀ¶ððáãü«²uü3Ç”â}!˜DçÌ9ã*Ö†éÕ_”üÅ7Eés欻Š@×vÒ±B(eÊ™‡5ÿAîrÏ¿_G3°,Y²‰ô„hæuŠ2@&a½oßaþ[ö3›]yóææ¿; ÿäÉ“›w„OÓÌ™_gR«´š¸†S8½ؽûõêÕ(E‚uëvð÷ìg7º%E‚ÎN‘NüC ®ÿ á_3³fÉÇϓƒp‹ý3k¾`ÞJE t’6Ñ?”üÃVKÊè$m¢(ø‡­–”ÐIÚDÿPð[-9( “´‰þ!  à¶ZrP@'iýC@À?lµä   €NÒ&ú‡€2€ØjÉ@@ ¤Môeÿ°Õ’€€2@:I›èÊþa«%e€t’6Ñ?”üÃVKÊè$m¢(ø‡­–”ÐIÚDÿPð[-9( “´‰þ!  à¶ZrP@'iýC@À?lµä   €NÒ&ú‡€2€ØjÉ@@ ¤Môeÿ°Õ’€€2@:I›èÊþa«%e€t’6Ñ?”üÃVKp‘´víZzòÉ'gÚšxàÀYì;/•*u(mºQ£FÔ£G¤oi œäíÞ½›]Œ¾KuëÖe/ëhrÌŸ7/¿^–¢Õ«WÓyçˆw ÔhêÛ·/,X0ÀfçFþãÿÌ뫘®Ò†ú€2€¨j™A@ 0]¥ õe?PÕ2ƒ@ ”à  :oÞêÕ,Éüñíß¿ŸŠ-Ê6öÝtôèQºì²ËèôéÓ´mÛ6Büå—_.{ ¿üò åË—/…yuÏž=vî¹ç l7n$ (”´–Pî÷ßO_|1uÖY2‹/n£åzäÈ2ÆÈ`Ūû8ÒƒPæ¡C‡èüóϧíÛ·ÓáÇ©\¹r”'O‰ÇÚš3gNi+ÊÁ3â;wîì¤yê©§hóæÍ)V´ iA¿ýö›¼;LÈx0OáÂ…éØ±c´iÓ&ºà‚ ¨D‰Ny¸nÀïœ?þqYé!K2C¯^½¨Zµj´jÕ*é¯*UªP^ÞuÂl ºâŠ+häÈ‘4dÈ\#FŒp̤mÛ¶¥û￟§ÿþô믿Ê`Á@yá…¨téÒôÍ7ßЀx'÷åÈ‘ƒÊ–-+ƒxΜ9RŽýB¹tFþøc*_¾¼àñ+teË–I|VûÊ’"í$ÌØ ,å Ddj ôÚµk‹8P¿~}™ Ú€À@°ŠŒ?^˜qv¶‡e Ì‹.ºè¢Q„¶ D¸4âPg¼Ébrê9çœsªˆý¢Ÿ%èB3–U®YzˆµÓ aÖ…%‡î@Ë—/§Ž;ŠXYJ5Ä( ·ÒΠòµwï^'Ä*žîAï.¢Z4fr JãM¬X@ʦ·ˆo˜²"eiˆµÃ®»î:Yæ'L˜  e4{öl=z4A~†+ ĈX9&Ož,–(ÝÐ ¼J0äjÌ쯿þºèV CÔ Ä/(éuêÔqŠã}úé§ò ]bÔ¨Q´cÇ'>Þ7Àm€‚Œö⡨£}Y‘²´”Z‡ÙY3”Ó[o½ÕÉËÇСC©M›6b)‚…¦OŸ>":ôë×Oâš7o.âAÅŠiË–-N^[6 aàÂä q¢{÷îT¹reZ²d‰¤Ç€F9Ð ŽuéÒÅ)«D’n¸AJ*î­8‡„îºlF„¡<oïñŒûÐgIÈ_íÛ·ãÀ Aƒ$&×nݺ‰Õ̦ÉJ×@ü fÁ‚¢DÂrá×qh(¸˜ù0»éÔ©S²«[¤H‘0[9ììØô‚R‹ƒ<Ô k ðàÁƒe{ÖÎÀìŠÕÁîGXñÊ݆DÜc¢Ú[ @45Ç¡«W¯žÂš•¦21q¶^€3f_Ø×!îÜwß}aÐCa¼òÊ+À•j±ÊÁ¦’…*Ê^é2+ü /$|²:e{€|•KãÆÓÝß°ª@ ¥R¥JyI€Q©R¥Ð,úœ‰¨”‰`g—ª‚$©(»ŒJ}ψ(D„E³ ÊÙ¥§õ=#"(%øÙgŸ{|Ä7ÑÀ¤Agˆ` ‚`ŽÃIF¥` pÓM7É‰Ó ´6V  ©m &ª³ß´ÕqB@ N@j1ÁD@ ˜ý¦­ŽÊqR‹ &ÿ³Z‚§›ÂIEND®B`‚mysql++-3.2.5/doc/html/refman/query_8h.html000755 000765 000024 00000023131 13515046516 021243 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: query.h File Reference
MySQL++  3.2.5
query.h File Reference

Defines a class for building and executing SQL queries. More...

#include "common.h"
#include "exceptions.h"
#include "noexceptions.h"
#include "qparms.h"
#include "querydef.h"
#include "result.h"
#include "row.h"
#include "sqlstream.h"
#include "stadapter.h"
#include "transaction.h"
#include <deque>
#include <iomanip>
#include <list>
#include <map>
#include <set>
#include <vector>
#include "insertpolicy.h"

Go to the source code of this file.

Classes

class  mysqlpp::Query
 A class for building and executing SQL queries. More...
 
class  mysqlpp::Query::RowCountInsertPolicy< AccessController >
 An insert policy object that triggers a new INSERT statement after a given number of rows have been inserted. More...
 
class  mysqlpp::Query::SizeThresholdInsertPolicy< AccessController >
 An insert policy object that triggers a new INSERT statement after a size threshold for the length of the INSERT statement is exceeded. More...
 
class  mysqlpp::Query::MaxPacketInsertPolicy< AccessController >
 An insert policy object that triggers a new INSERT statement if the object to be added would cause the statement to exceed a maximum size. More...
 

Functions

std::ostream & mysqlpp::operator<< (std::ostream &os, Query &q)
 Insert raw query string into the given stream. More...
 

Detailed Description

Defines a class for building and executing SQL queries.

Function Documentation

◆ operator<<()

std::ostream& mysqlpp::operator<< ( std::ostream &  os,
Query q 
)
inline

Insert raw query string into the given stream.

This is just syntactic sugar for Query::str(void)

References mysqlpp::Query::str().

mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1Query_1_1MaxPacketInsertPolicy.html000755 000765 000024 00000032747 13515046516 030540 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::Query::MaxPacketInsertPolicy< AccessController > Class Template Reference
MySQL++  3.2.5
mysqlpp::Query::MaxPacketInsertPolicy< AccessController > Class Template Reference

An insert policy object that triggers a new INSERT statement if the object to be added would cause the statement to exceed a maximum size. More...

#include <query.h>

Public Types

typedef AccessController access_controller
 Alias for our access controller type.
 

Public Member Functions

 MaxPacketInsertPolicy (Connection *con, int size)
 Constructor. More...
 
 MaxPacketInsertPolicy (int size)
 Constructor. More...
 
 ~MaxPacketInsertPolicy ()
 Destructor.
 
template<class RowT >
bool can_add (int size, const RowT &object) const
 Can we add another object to the query? More...
 

Detailed Description

template<class AccessController = Transaction>
class mysqlpp::Query::MaxPacketInsertPolicy< AccessController >

An insert policy object that triggers a new INSERT statement if the object to be added would cause the statement to exceed a maximum size.

This differs from the SizeThresholdInsertPolicy in that it builds the VALUES expression and checks whether it would cause the length of the INSERT statement to exceed the maximum size.

Constructor & Destructor Documentation

◆ MaxPacketInsertPolicy() [1/2]

template<class AccessController = Transaction>
mysqlpp::Query::MaxPacketInsertPolicy< AccessController >::MaxPacketInsertPolicy ( Connection con,
int  size 
)
inline

Constructor.

Parameters
conconnection object used for escaping text
sizethe maximum allowed size for an INSERT statement

◆ MaxPacketInsertPolicy() [2/2]

template<class AccessController = Transaction>
mysqlpp::Query::MaxPacketInsertPolicy< AccessController >::MaxPacketInsertPolicy ( int  size)
inline

Constructor.

This version does not use a Connection* so it will not be able to take the character set into account when escaping the text.

Parameters
sizethe maximum allowed size for an INSERT statement

Member Function Documentation

◆ can_add()

template<class AccessController = Transaction>
template<class RowT >
bool mysqlpp::Query::MaxPacketInsertPolicy< AccessController >::can_add ( int  size,
const RowT &  object 
) const
inline

Can we add another object to the query?

Parameters
sizecurrent length of the INSERT statement
objectthe SSQLS object to be added
Return values
trueif the object is allowed to be added to the INSERT statement

The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1UseQueryResult.html000755 000765 000024 00000130527 13515046516 025604 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::UseQueryResult Class Reference
MySQL++  3.2.5
mysqlpp::UseQueryResult Class Reference

StoreQueryResult set type for "use" queries. More...

#include <result.h>

Inheritance diagram for mysqlpp::UseQueryResult:
Collaboration diagram for mysqlpp::UseQueryResult:

Public Member Functions

 UseQueryResult ()
 Default constructor.
 
 UseQueryResult (MYSQL_RES *result, DBDriver *dbd, bool te=true)
 Create the object, fully initialized.
 
 UseQueryResult (const UseQueryResult &other)
 Create a copy of another UseQueryResult object.
 
 ~UseQueryResult ()
 Destroy object.
 
UseQueryResultoperator= (const UseQueryResult &rhs)
 Copy another UseQueryResult object's data into this object.
 
const Fieldfetch_field () const
 Returns the next field in this result set.
 
const Fieldfetch_field (Fields::size_type i) const
 Returns the given field in this result set.
 
const unsigned long * fetch_lengths () const
 Returns the lengths of the fields in the current row of the result set.
 
Row fetch_row () const
 Returns the next row in a "use" query's result set. More...
 
MYSQL_ROW fetch_raw_row () const
 Wraps mysql_fetch_row() in MySQL C API.
 
void field_seek (Fields::size_type field) const
 Jumps to the given field within the result set. More...
 
 operator MYSQL_RES * () const
 Return the pointer to the underlying MySQL C API result set object. More...
 
- Public Member Functions inherited from mysqlpp::ResultBase
virtual ~ResultBase ()
 Destroy object.
 
const Fieldfetch_field () const
 Returns the next field in this result set.
 
const Fieldfetch_field (Fields::size_type i) const
 Returns the given field in this result set.
 
const Fieldfield (unsigned int i) const
 Get the underlying Field structure given its index.
 
const Fieldsfields () const
 Get the underlying Fields structure.
 
const std::string & field_name (int i) const
 Get the name of the field at the given index.
 
const RefCountedPointer< FieldNames > & field_names () const
 Get the names of the fields within this result set.
 
int field_num (const std::string &) const
 Get the index of the named field. More...
 
const FieldTypes::value_type & field_type (int i) const
 Get the type of a particular field within this result set.
 
const RefCountedPointer< FieldTypes > & field_types () const
 Get a list of the types of the fields within this result set.
 
size_t num_fields () const
 Returns the number of fields in this result set.
 
const char * table () const
 Return the name of the table the result set comes from.
 
- Public Member Functions inherited from mysqlpp::OptionalExceptions
 OptionalExceptions (bool e=true)
 Default constructor. More...
 
virtual ~OptionalExceptions ()
 Destroy object.
 
void enable_exceptions () const
 Enable exceptions from the object.
 
void disable_exceptions () const
 Disable exceptions from the object.
 
bool throw_exceptions () const
 Returns true if exceptions are enabled.
 

Additional Inherited Members

- Protected Member Functions inherited from mysqlpp::ResultBase
 ResultBase ()
 Create empty object.
 
 ResultBase (MYSQL_RES *result, DBDriver *dbd, bool te=true)
 Create the object, fully initialized.
 
 ResultBase (const ResultBase &other)
 Create object as a copy of another ResultBase.
 
ResultBasecopy (const ResultBase &other)
 Copy another ResultBase object's contents into this one.
 
- Protected Member Functions inherited from mysqlpp::OptionalExceptions
void set_exceptions (bool e) const
 Sets the exception state to a particular value. More...
 
- Protected Attributes inherited from mysqlpp::ResultBase
DBDriverdriver_
 Access to DB driver; fully initted if nonzero.
 
Fields fields_
 list of fields in result
 
RefCountedPointer< FieldNamesnames_
 list of field names in result
 
RefCountedPointer< FieldTypestypes_
 list of field types in result
 
Fields::size_type current_field_
 Default field index used by fetch_field() More...
 

Detailed Description

StoreQueryResult set type for "use" queries.

See the user manual for the reason you might want to use this even though its interface is less friendly than StoreQueryResult's.

Member Function Documentation

◆ fetch_row()

Row mysqlpp::UseQueryResult::fetch_row ( ) const

Returns the next row in a "use" query's result set.

This is a thick wrapper around DBDriver::fetch_row(). It does a lot of error checking before returning the Row object containing the row data.

See also
fetch_raw_row()

References mysqlpp::ResultBase::driver_, fetch_lengths(), mysqlpp::DBDriver::fetch_row(), mysqlpp::RefCountedPointer< T, Destroyer >::raw(), and mysqlpp::OptionalExceptions::throw_exceptions().

Referenced by mysqlpp::Query::for_each(), and mysqlpp::Query::store_if().

◆ field_seek()

void mysqlpp::UseQueryResult::field_seek ( Fields::size_type  field) const
inline

Jumps to the given field within the result set.

Calling this allows you to reset the default field index used by fetch_field().

◆ operator MYSQL_RES *()

mysqlpp::UseQueryResult::operator MYSQL_RES * ( ) const
inline

Return the pointer to the underlying MySQL C API result set object.

While this has obvious inherent value for those times you need to dig beneath the MySQL++ interface, it has subtler value. It effectively stands in for operator bool(), operator !(), operator ==(), and operator !=(), because the C++ compiler can implement all of these with a MYSQL_RES*.

Of these uses, the most valuable is using the UseQueryResult object in bool context to determine if the query that created

Query q("....");
if (UseQueryResult res = q.use()) {
// Can use 'res', query succeeded
}
else {
// Query failed, call Query::error() or ::errnum() for why
}

The documentation for this class was generated from the following files:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1FoundRowsOption__inherit__graph.png000644 000765 000024 00000021363 13515046516 030755 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÇ·¦'JsRGB®Îé"­IDATxí]”TE}ÀsÉ9HX‘ ˆ" IPÔE]eEŽ ²QÄ=,`Bd]Q–T‚Kr†œrNCm݇õ©ééžØ=3¿û½sz~ýÊu«^ü¿{Ò(¥f Ä@ f#W2A€Ò ‚€ àaï¸H® šC΀ à 0_©%ÿ§Ÿ~¢ÈÈÈÔ2™‡hÔ¨åÏŸß=ú·«Tï7lØ~þùgÿ®ZzK@ð=öØc©b.Þ&á Ÿ£W¯^„ š|‚ƒS§Ny;‹©.ÏÌ‘êP“ …Â!±Í²ÈÄ Ì‘Ô¤MH ÌÛ,‹L ‰AMÚ„Â~ÞænݺÑôéÓýÜkÌî._¾Lo¾ù&Õ®]›råÊEµjÕ¢îÝ»SB"A×®]#ôÚ³g5oÞ¨œÆêׯÏ}¦OŸ^eÉ’EÍž=›Ë:tè *Uª¤òäÉã̵K—.\†?ÚDRúÕ ç>wîܪgÏžJn•1cF.w ­ÄÀynçÎSóæÍã´~ËÀcbíèË`R§N¥ë8p€{6lãƒù¡Ö¡ŠË€q“&MxÀ øL˜0ÁšEìImúqý„<öŠ)\tš’Ko0Á¼t…7n­^½š¥¨ÞLö Š-ʯ.Ìš5 M˜ 9Ÿ|òIÒLAšhøðá,Ý!-ZÄšÚùÞÐNš¹bH}Ó®˜Ë¾}ûë©§žb¿æ h×®]ôé§Ÿ²žéغuk‚i“ Œ‘-[6B4fÉâÅ‹Ùé„¶§‰'RÁ‚ νM¶ cç# g×Ì4 È.ƒc Ç×”q/0?˜TÚÆ'ã\›jp’!Ý7nLÙ³g7ÙÑÆy×… "h7mò;}ÀÙ·ÛÅc§&‚’9²0­p –.]ê„5¡^yåúä“Oø€Ô¨Qƒµ Lhø°±qáÏø’☇ñIpØ>úè#Ö2ÕªUã)âÀM:•M-Øó8ìÚñç²iӦр8?ÿøÇ?hΜ9|È||¾˜ ‡~ "P|ðÓ ˜Uðy °ÎV­Zq9´&Úšži„9À<ƒß…²uëÖq´ >JHQ â>¡Ñ*mâ¨Ñ£G;ýjCõíÛ×¹×Hi;߹צGŒÐNÇú|Dk´™ÅD‡ôR¨ Bˆà胢´y¡J–,éD«tHT9’ë!Z¥‹£U¨‹H‘/s¢UÚDâ±Q†h”i‡ ¯½öšÒZŠëâ‰V™ }È•*ðÐíû(­}L'Z…hÊÔ֔J¸Žf@ΫY³fŒh•fL^£‰FiÆPZp;OŒµo¦´¦rÆ+á–h$cª¦„2GB†Àf¿ûî»1šj‡]ég1Ê´Ý®t´Ii[[é'ËsØÁZ3(-}¹®]æÐN®ÒÏ.ÔÖ­[ƳëÄ'­5ˆÒZCáÀy’ åb 1óZ!_oëC_X¿Ždymç9VBîÝÂaZ¢„,ÁœÂC.8šZRÇÀ!oÞ¼ü$:FÎÈ—/¼•yæÁ·ÁÇiiNU«VõV¯<ÍØ±L'žÎ¿É×É$c\±~|B•Bš9`k©ÍáY;ú’ÐÃðàƒz ­"ôëëpá‰4œð@ÆÆBÁyŽ®ø9B§üq Ö/}¦W#ê‡ç-òòØRH*!ÊM*€þlüø½—"ýÙ§ô•x\ásà9bôÁNß~A-Z£Ü¹3õRñ6²ÈÌ'Õø3¥I¦íð×ôɹú•ûß‚y©®Y[ªwÈ]ƒd'úÃ[ô»_é— ê—!ßNboÒ܈ÏáýÐǬY¿qÈ5"â”~þ¤z”.’Š€0GRôCûË—oÐò廸=®ôéÓé7„7ú¡Wé"©s$A?´_°`«þî6^"ýUØ(ý]pñ9ük’»æH2„Iï`Ö¬ðhœ8q6n<-On’aŽäÇ<Úˆ‘‘—õ×T#ÍB1­¢A”b7Â)ý½çÏߤ¿&ýËY0­fÏÆ0)<Í^˜#…·}æÌß¼2Á… ×ô˜¼6…§2à s¤àV>|–¶m;íë¨f:aaˆZm0·rM„9Rt3ä¼y›Làî܉¢ï¿ß¬¿:å­Xò’aŽdÙ×Ó§¯×¿Úáûð_»v[¿N²ÓWsÉ0ÂØW÷»vÐ?Ô高óÃÂÒhÇ\L«XA `¡+^< àúS¬kãOdÈ€-¸÷ÐüŽùæ´ÊÒ¥;ô/ŠÜÔ¿ÂÜoê¦ØFÄ2°0G,ನrå"4lXÛhC|øáBzâ‰JúWïÿ*\¸p]˜#RÉs#oå&Îñ¥J•AÔ¯_ ý3œõâU_*ñ9‹¯ôîb„9\¼y2õÀ" ÌX|¥w# ÌáâÍ“©aŽÀâ+½»aožL=°s_éÝÅs¸xódêE@˜#°øJï.F@˜ÃÅ›'S,ÂÅWzw1Â.Þ<™z`æ,¾Ò»‹æpñæÉÔ‹€0G`ñ•Þ]Œ€0‡‹7O¦X„9‹¯ôîb„9\¼y2õÀ" ÌX|¥w# ÌáâÍ“©aŽÀâ+½»aožL=°s_éÝÅs¸xódêE@˜#°øJï.F@˜ÃÅ›'S,ÂÅWzw1Â.Þ<™z`æ,¾Ò»‹æpñæÉÔ‹€0G`ñ•Þ]Œ€0‡‹7O¦X„9‹¯ôîb\÷Ÿž~úiý/ˆ¿w1ä¾§ž1c ýßeÏSTÔ%ß•\\²yófz衇\³WþOÀ† Ò믿îC}¢'Nœ Þ½{»W2G‰%èùçŸwØ¡:á={ö¸réâs¸rÛdÒÉ€0Gr ,c¸aWn›L:9æH”e W"ôÌѯ_?jÞ¼¹óA(ø­·Þ¢£GúeúuëFÓ§O÷K_±urùòezóÍ7©víÚ”+W.ªU«uïÞN:[³he×®]#ô‚“ \Ò>Zg!pô̱víZ:xð &¨üùóÓ„ øÝ¹s'É[¼råJÚ¿’û‰­ƒ“'ORƒ hüøñT¯^=5j5kÖŒf̘ÁëÚ¾}{lͲ®]»R§Nø>**Š®\¹BwïÞuÊ%W†r£/!î»jÕªÑ{ï½çTă(ÄÝÁ8>ú(çã lذ”R|à²gÏîÔÇ„¶©Zµ*+VÌ)óL\ºt‰ë)R„rö$ôqàÀ#K–,\|óæM³€âÅ‹s˜sÌ–-—:”vîÜÉó­Y³¦Ó嫯¾J5jÔ >}úÐ?þHóG¿ëׯgAP¾|y®öìYºzõ*]¿~Ž?NÈŸ9s&×1bn[·n¥Â… SõêÕ)Mš4\„ü¼yóÒ7hÛ¶mT¦LÂú‚ž4˜®¢Ö­[+-ýâ=g-qÕ /¼­~ÿþýUXX˜:}ú4ç¯ZµJ(P@eÍšUeÊ”Iií¢–/_ÎeçÎS5RiÓ¦U¹sçæë AƒœþÊ•+§FŒÁ÷S¦LQú`ªôéÓ+}pTÓ¦MÕ… ¸L3ŸÒ&ççÈ‘ƒÇÿàƒ¸L3)ç·mÛV¥K—ŽÓ˜ƒ6}Ô­[·TÆŒ•6¡œ1íÄÀ¹>æÙ¡CU©R%•'O•!CÎïÒ¥ WïÙ³§Ò‡óêÔ©£Ì˜šQ¹|ذa¼6´E½úõë+ÍP\¦…jÒ¤ ÏÃÌOk_.‹ÏŸßÿÇÕOÈãS=ÕÔ¤q%†9´”SíÚµSÏ>û¬zøá‡ù`jÍÁëÖR[•,YRµiÓ†"î‘F-)êq´éÄõ'OžÌm˜Ç0GDDHÔ¿xñ¢Úµk—*X° êÛ·/·;v,3òA~ø¡ÒÚIiÌA}ê©§Ôùóç•6ÕhäÈ‘jïÞ½<Þĉ¹çŸ¹sçryxx83˜rêÔ©J›MÊÌuþüùÜìÅ_äµáÆŒ æX½z5÷ñå—_r=Œ‰¹ÿõ¯å{0˜ch­£ô J›¨\Ÿ?neŽ ÷9 úažÀŒ¨P¡›3HëƒÃæÏ¦M›Ø'éÑ£i‰OZâR¯^½èرc´{÷nš3gµjÕŠJ•*…®¨sçΤ¥+-[¶ŒïÍÔÓRž´ô'Í(ç·nݺlî NÇŽI.¶ñ,X@;vì`ç¦!˜~p¶ñz Ì*ôS„|os ¤5_«T©Bš øs-]º4Á/Š4ƒQΜ9éå—_æjeË–åuØkÔˆ±ƒÉõÜsÏñÜbë3ÊBÂçÀAÓ¦³_8ÄÚü -I›œgÝH›]Ì$¶üB… Ñ™3gtèСCœ6¯)(Z´('á´ã•0˜3_¾|¦ŠsÕÊIgΜY¿€Åö=2µ4wÊìÄ’%Køf° ¬#6:|ø0û†ÁPØkôœ›?‚±Í)5”…„æðÚAÛñìã ƒàˆ‚cÂAÃá²Ë ɵ™ÃÙÆaB¿pœ9ŸyóæÑðáù/í§<´†6·8ßþcN“­‡ð-"l`j›à\Cº7nܘLζ!h/hFoSW`€€ƒ6‘œl``·3ιS!!Áˆþh?ß|ó =þøã¤m6? 1p°ßÿ}> Úæ©öMXjä‚Ù1{öl>œcÆŒácáùâ#êAš2„"## ¦SË–-iÑ¢E\/h ˜nÐ&zvûöí8´4“ °‰Ð~‡sÁ¬Ú±wúÀ¡Ö>ÁÜC‚¡0ÆF[¬Ñ&”£þàÁƒ¹lݺu´bÅ jß¾½]-ôÒñq¨RSÄ8äzWÙáÄQÚUv´eéÒ¥J\®ƒ¨”6Q”–î¼lD´t¸×)CähÒ¤I$ÚDbÇãÆãˆŽýÐëjó‡{ôˆ˜f"vzÑÞ8Ç:dêô«Ÿc(iB&æ¨M4g£bÅŠJk§ ¢U:ÌÊÑ*”#º§ÞдiÓ8¡ÍDgL­0`G©L4J3†Òš‰›ê³=z´é†×`B|É­¹+¿ìçô믿Öûï?B &ÌØï¶‰£?èƒÄ­\¹2›G¾F†ƒ ­Ý8ñ¦.4 ÆÐ‡šM0˜EèÓø8¦^lWø0Ût”ŒÇ°ëÂé‡&Áó ̘z6éhé0¶c†ÙeÐÐj0'm4žÆc.òe§Ä — ÚhiNžŽ·™ìm<øŠé,=òÈ#^«âPâ¤!ø ø$„ð ŸØãàa¥7ÒÚÄ[6çáA>B÷‰hU¨l6¢`pÂ…üƒ€0‡pL½  ä?B"Zå?¸¤§PB@˜#íö;ò†l*ÚæHE»ñùç+ô[³Ñô¥¢é…ÞTâ«N-õðœCïRP~ è¢2g®”kÞ¹í­\×=çX³f ?å 61vèÐ=z«~ç+7õèQ)Ø–Çëѯðó ŽnYœë¢UæEA·ßy2—«îÙs‘ž|²%åÎ}ï‹Pñm/õü€øþÇ4Á=Þ½«ô»[÷^vDã ¶$¸ià„9üi‚{\³f/?ï{xUeÆŒõ îCøaÿcšàçÌÙ ßwJÇí EÂÃê×é/&¸ià_„9ü‹g‚{»u+Jÿjüfýº{”Ó6,,-ÍŸ¿Ñ¹—DÊ Ì‘2¸;£.[¶S¿ý;úëßúÍÚp§Ž$RaŽ”ÁÝõžIuï'pL&üŽ]»ŽÓ¾}‘&K®)€€0G €n†¼zõ&-Y²C›T1_2ož˜V«”¸ s¤êŒ¹xñ¶h¾†=ø µ²Iþ´0Gòc"¶.8räœþq‡#N}I$/ÂÉ‹·3Ú¹sWõ$ìÕ?¿Ó¤2•Ò§O§ÜAL+ƒGr_…9’ñ?ÆCø6®q¾};ŠŸœÃAJ~\÷nUòC˜÷ïÔ¿jXTÿVÔýþ#"NëŸïɦÝðþ{UéÒ¥Õ¿.xZÿ BÁû%•,¸î­ÜdA%…©Reõë×Bÿ,g½š k# f•†¤ a I 6Â6’,„9,0$)ØsØhHZ°æ°À¤ `# Ìa£!iAÀB@˜ÃC’‚€€0‡†¤ a I 6Â6’,„9,0$)ØsØhHZ°æ°À¤ `# Ìa£!iAÀB@˜ÃC’‚€€0‡†¤ a I 6Â6’,„9,0$)ØsØhHZ°æ°À¤ `# Ìa£!iAÀB@˜ÃC’‚€€0‡†¤ a I 6Â6’,„9,0$)ØsØhHZ°æ°À¤ `# Ìa£!iAÀB@˜ÃC’‚€€0‡†¤ ÿÙiíÚµ4zôh«Š$“ }ûré{vræ¼™\CÊ8 P¼xq5jT4rõS]öÿþ÷?ÚµkõîÝ; s{çwèúõë1ÆÈŸ??½õÖ[1ò•±yófš:u*ýóŸÿ¤ƒÒ¸q㢠•.]:*Y²$5oÞœžL.Ú³gM›6~ÿýwºzõ*•*UŠyäŽ|¦M· ŽŠŠâv9räà)/X°€öíÛGo¼ñFr-!Æ8qÏ:F“Ô•qäÈ‘!¸@ÌpÆ tîÜ93ØŸ}š¥kéÒ¥éîÝ»tèÐ!By™2e(,,ŒN:E™3gæÍ4hEFFr^¶lÙ8 À Ô5© IR¬X1ʘ1#]¸p *dŠù ‰¥”¢L™2±6É•+×G!ú¼|ù2oÚáÇéÊ•+T®\9JŸ>=·E;Ì÷tž÷¨T·n]zõÕW¹¾·?X æˆZ¶lYJ“& WC>ÖgÖƒ±±0™Á¯@tâÄ ÆmM]t€:Ð ô6,µk׎*Uªä”­^½šLëׯ§§Ÿ~šó1/¨|ùò”%Kgì|ùòñþܸqƒq5÷fnkÁ=žäΛµ“Ƀƒ–;v¬3oŒ[µjUú裘Y[¶lIçÏŸ§¬Y³òÚ÷ïßÏ{œ3gNîe 0ô<@Íš5£ÇœóðÇÛü‘oæ~¨—J2sDDDÐßþö7ª^½:AåƒJ† ÒT¹reiøðá¼ „Þ¾}{êÕ«·8p A2b“°Aÿú׿ô-[¶Ð AƒXíbCpxpÀ-ZÄý˜?èÌ &$$Y¿~ýÒ ¦Zµj´sçN.3OEqH7nÜH}ûö¥1cÆðZ<ï;®ÿùÏ0˜°J•*ôþûï³ èÞ½;½ôÒKôüóÏsóï¾ûŽ`6|ûí·dð«_¿>ýúë¯,Tp`>ýôS*Z´(aíÀŒÂÚã"#4° ­[·ÌBà óŒ{0ñ+¯¼B#FŒ`ÆŸ3gýûßÿ¦wß}—4h@?ýô¿-ùâƒç×®]£:uêp;ÌuÀ€c˜ùA ÏåË—˜—+V¬Èøc!0ÑàÌ™À|€ ÚaíÐ>¾æ_£F8ñ3sIÌÕof$ž®ƒQ ö!©g̘Á‡‡’¯I“&¼P#%~þùg–H_ý5KRôµŒ Á9r$Kùÿþ÷¿\Ï´÷¶`0 ü˜` 0К5kœª`º~ø¾ùæ‚Y2aÂ.㚃åyJ«V­âCo>Ççõ~õÕW<挾;ƇÉ8Ž$àüùóù;Œ?~ûì3êÑ£íÝ»—UmÛ¶mÙ¬@=h_TR;£7æqP¯páÂΦ£ $Ì2Ó9¸íµ×œñ¼G[HM˜‹öy0c š6mŠjÜ÷£>ÊÚˆ3âñæ´ÎC=Äf(˜ y÷îÝ,q±.h=o¯õÌš5‹ñf8ÄÀ f%Ò0gaæ@RÃl|æ™gèÌ™3¬}±?ÌÐ(jÐ`0Ê¡ ].\H€@£-^¼˜-h#`SÖA¡ÜæÃú83(Çë¾(®ù›vÞð3e‰½&Ù¬2ÇÑÒLi¶råJÞdlÌ%€‚I­1qâDÞ ”-ÓÌ/Ûå°WmÂ1} ß–J(Øñ%xo>Ìû_}ã@yìxC`^0 -Ý7³ šÕHn´Ã‹£&Ú? næóÃ~@Ûa,´…ùí¿cÇ‚¯„rcþ`_ðr¤9LgøÀí Ìž›q Í¡Àð† ¬ ½?¦Ì\ãš¿ñͼágúHìõ>K'¶‡?Ú&ˆ«˜V` ¨U, ’ Ó S§N4wî\¶3!©`ÿšEŸ={Öéá‹  áBòØ a÷I£™~⺂ ý Á÷1}(CÆ1÷¸zÃÂçÕqªÍ½ç úç?ÿ™³¡}ŒÐB Àæ.°Û!Ð`êÀÜ“!ú3Ú k€ƒif€iŸóB›aLì›'Aó€A࿲÷Ǽègp2uìk\ó7u½ágÊ{õsÄwõêÕc•:yòdÖÆi„Êþä“OXZaS°AP½”8$S¦LáXH:_„_ºt)KE˜ðYŒi‡6Ñ"˜t ‚¯òñdz¯àíž+ùøƒþa˜¾ácáE¶'žx‚[À ¶Ä…‹t|Â> ÖùƧ­yV' }€±vàW¡B–ôÐR¦ oø8d`ÜÜ 9 à$C ʇ<˜Ð0¡gÏžMŸþ9¯ÒN8ü2D*m3xÞ¼y„ð;æs¾‘‰fìƒ-dâš|pLl¿™UqMÀp6˜v3å-Z8Í Îß{ï=–z‘¤>}úpd ”µnÝš7‡Æ¶SMßè j‡#l^·nÝØ…_‚4E?v0:wîÌù0! ý6lÈîyÏ•|üßÔ¡C>€x@3A„XAäp8»víÊ’õ½iÓ=Öƒ4+Ö>tèP^ò0?„hAöºM[\±nh00Föp¨Ñ¦ ®!0ž—€I@`´> 0Ö‡à… `ÔªUËa~<¨Cû ¾ÐŠ`? ¡¯¿üå/ŒöxÈ!<'˜Í0³`¶¢Ì}@@Æ5Ó·¹¢­/lLø\}~ŸÑ@GH&HZ›àâi7lbÛ6E¨gHäcãÀž¡\l8B¸8ˆxÆ‚g"æ9†‰ýC«˜ç-Æd³ç”4lx0æèÙ7æ†ó´Ëã3ÌC¬mqðCÿ Ž‚áÐ^B ëÃ< Íö$hi”ãZRkh%›`R¿ýöÛÌt0ÕÀ6aŽØ?cNz–%uþvv4½1óLÙ}–69¼âàÀ… õúë¯Ç Òv¯7‚Æú¡GbP“6!€0GHl³,21s$5is„Ä6Ë"ƒÀÿä÷Îo†ŠIEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1Null.html000755 000765 000024 00000074717 13515046516 023545 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::Null< Type, Behavior > Class Template Reference
MySQL++  3.2.5
mysqlpp::Null< Type, Behavior > Class Template Reference

Class for holding data from a SQL column with the NULL attribute. More...

#include <null.h>

Public Types

typedef Type value_type
 Type of the data stored in this object, when it is not equal to SQL null.
 

Public Member Functions

 Null ()
 Default constructor. More...
 
 Null (const Type &x)
 Initialize the object with a particular value. More...
 
 Null (const null_type &)
 Construct a Null equal to SQL null. More...
 
 operator Type () const
 Converts this object to Type. More...
 
Nulloperator= (const Type &x)
 Assign a value to the object. More...
 
Nulloperator= (const null_type &)
 Assign SQL null to this object. More...
 
bool operator== (const Null< Type > &rhs) const
 Do equality comparison of two nullable values. More...
 
bool operator== (const null_type &) const
 Do equality comparison against hard-coded SQL null. More...
 
bool operator != (const Null< Type > &rhs) const
 Do inequality comparison of two nullable values.
 
bool operator != (const null_type &rhs) const
 Do inequality comparison against hard-coded SQL null.
 
bool operator< (const Null< Type > &rhs) const
 Do less-than comparison of two nullable values. More...
 
bool operator< (const null_type &) const
 Do less-than comparison against hard-coded SQL null. More...
 

Public Attributes

Type data
 The object's value, when it is not SQL null.
 
bool is_null
 If set, this object is considered equal to SQL null. More...
 

Detailed Description

template<class Type, class Behavior = NullIsNull>
class mysqlpp::Null< Type, Behavior >

Class for holding data from a SQL column with the NULL attribute.

This template is necessary because there is nothing in the C++ type system with the same semantics as SQL's null. In SQL, a column can have the optional 'NULL' attribute, so there is a difference in type between, say an int column that can be null and one that cannot be. C++'s NULL constant does not have these features.

It's important to realize that this class doesn't hold nulls, it holds data that can be null. It can hold a non-null value, you can then assign null to it (using MySQL++'s global null object), and then assign a regular value to it again; the object will behave as you expect throughout this process.

Because one of the template parameters is a C++ type, the typeid() for a null int is different than for a null string, to pick two random examples. See type_info.cpp for the table SQL types that can be null.

Constructor & Destructor Documentation

◆ Null() [1/3]

template<class Type, class Behavior = NullIsNull>
mysqlpp::Null< Type, Behavior >::Null ( )
inline

Default constructor.

"data" member is left uninitialized by this ctor, because we don't know what to initialize it to.

◆ Null() [2/3]

template<class Type, class Behavior = NullIsNull>
mysqlpp::Null< Type, Behavior >::Null ( const Type &  x)
inline

Initialize the object with a particular value.

The object is marked as "not null" if you use this ctor. This behavior exists because the class doesn't encode nulls, but rather data which can be null. The distinction is necessary because 'NULL' is an optional attribute of SQL columns.

◆ Null() [3/3]

template<class Type, class Behavior = NullIsNull>
mysqlpp::Null< Type, Behavior >::Null ( const null_type )
inline

Construct a Null equal to SQL null.

This is typically used with the global null object. (Not to be confused with C's NULL type.) You can say something like...

Null<int> foo = null;

...to get a null int.

Member Function Documentation

◆ operator Type()

template<class Type, class Behavior = NullIsNull>
mysqlpp::Null< Type, Behavior >::operator Type ( ) const
inline

Converts this object to Type.

If is_null is set, returns whatever we consider that null "is", according to the Behavior parameter you used when instantiating this template. See NullIsNull, NullIsZero and NullIsBlank.

Otherwise, just returns the 'data' member.

References mysqlpp::Null< Type, Behavior >::data, and mysqlpp::Null< Type, Behavior >::is_null.

◆ operator<() [1/2]

template<class Type, class Behavior = NullIsNull>
bool mysqlpp::Null< Type, Behavior >::operator< ( const Null< Type > &  rhs) const
inline

Do less-than comparison of two nullable values.

Two null objects are equal to each other, and null is less than not-null. If neither is null, we delegate to operator < for the base data type.

References mysqlpp::Null< Type, Behavior >::data, and mysqlpp::Null< Type, Behavior >::is_null.

◆ operator<() [2/2]

template<class Type, class Behavior = NullIsNull>
bool mysqlpp::Null< Type, Behavior >::operator< ( const null_type ) const
inline

Do less-than comparison against hard-coded SQL null.

Always returns false because we can only be greater than or equal to a SQL null.

◆ operator=() [1/2]

template<class Type, class Behavior = NullIsNull>
Null& mysqlpp::Null< Type, Behavior >::operator= ( const Type &  x)
inline

Assign a value to the object.

This marks the object as "not null" as a side effect.

References mysqlpp::Null< Type, Behavior >::data, and mysqlpp::Null< Type, Behavior >::is_null.

◆ operator=() [2/2]

template<class Type, class Behavior = NullIsNull>
Null& mysqlpp::Null< Type, Behavior >::operator= ( const null_type )
inline

Assign SQL null to this object.

This just sets the is_null flag; the data member is not affected until you call the Type() operator on it.

References mysqlpp::Null< Type, Behavior >::is_null.

◆ operator==() [1/2]

template<class Type, class Behavior = NullIsNull>
bool mysqlpp::Null< Type, Behavior >::operator== ( const Null< Type > &  rhs) const
inline

Do equality comparison of two nullable values.

Two null objects are equal, and null is not equal to not-null. If neither is null, we delegate to operator == for the base data type.

References mysqlpp::Null< Type, Behavior >::data, and mysqlpp::Null< Type, Behavior >::is_null.

◆ operator==() [2/2]

template<class Type, class Behavior = NullIsNull>
bool mysqlpp::Null< Type, Behavior >::operator== ( const null_type ) const
inline

Do equality comparison against hard-coded SQL null.

This tells you the same thing as testing is_null member.

References mysqlpp::Null< Type, Behavior >::is_null.

Member Data Documentation

◆ is_null

template<class Type, class Behavior = NullIsNull>
bool mysqlpp::Null< Type, Behavior >::is_null

If set, this object is considered equal to SQL null.

This flag affects how the Type() and << operators work.

Referenced by mysqlpp::Null< Type, Behavior >::operator Type(), mysqlpp::Null< Type, Behavior >::operator<(), mysqlpp::Null< Type, Behavior >::operator=(), and mysqlpp::Null< Type, Behavior >::operator==().


The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1SharedMemoryBaseNameOption__inherit__graph.png000644 000765 000024 00000023236 13515046516 033023 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÓÄÔúsRGB®Îé&XIDATxí˜TÕÙÇ_–¢P5***j+½€b F0B,ì¨A£bĨT{b¡)ˆTAT@º R¤÷v¿ó;x®wîÎÌÎÎî°3;ïû<;·œþ?ç­çÌl Ï()Š@AèŸSд¼" ìC@™IW‚"PH(3Z" Ì¤k@($JR=ûµš H·nÝök›ÚØþAà¨£Ž’gžyfÿ4VÈ­d¤fZ»v­ :T¶lÙRÈphuE‰À¬Y³ä“O>)Ê.¨íŒÔLnÄ}ûö•:uê¸G½f8ÿ÷ÿ—ÑÌ”‘š)Ã׌v¿˜" ÌTL'V‡µÿPfÚÿ˜k‹Åe¦b:±:¬ý€2Ó~À|È!Ò©S§ýÐ’ÈôéÓåÚk¯•zõêIõêÕ¥E‹Ò³gOÙ»woBíïÞ½[ˆ–:4hÜu×]îQ¯qPfŠNa%Í;W&NœXXÕŬç£>’sÎ9G¦N*:tÇ\=ôP¹ï¾û¤uëÖ²k×®˜e]Â{ï½'U«VõóîØ±C¶mÛæ’õ¬`&ÄâÅ‹eÏž=²hÑ"ùæ›o,$HëÙ³gË´iÓüųtéÒÉLÆeË–Éúõë}‘þ_~ùe®}®Í›7[¦ùå—_dëÖ­²dÉ¿Œ»Ù¸q£lذÁ¶7a™7ožK²×U«V ý¥Ž1cÆØk0iŽ)8ðÏBg¼¿å–[ä¸ãŽ“3fÈ< ;v”7ÞxCØB€Ñ·íÛ· íCàE½íÛ·ØDeŒãÆ“±cÇʦM›l^>Æ”aS±‘7«ˆ¯`dMž<™¯x†1êú¤I“lþsÏ=×^){öÙg{\pÿܤIoçÎ^Ó¦M½æÍ›ûõšÅå•,YÒ3 Ò›9s¦W»vmï€ðJ”(áÕ¬YÓûþûïm^³À¼Ê•+{9996ÿi§æU¬XѦ=øàƒÞ)§œbﯿþzÏ,x¯J•*^™2elûF‹øíñ®Y³f¶ŽÒ¥K{*Tð†î§ÓÆŸÿügûüé§ŸÚòfa{Æ ³÷fÓÓÏënÌ÷4hàwÞyöU¬6Fmû>Œ|»víê1hüøñž1í¸Ê•+çU«VÍ£ ä0nÛ¶­-K¤aaÓù¸ÿþû½SO=5‘¬é˜§_Vh&3±–<ð@Y¾|¹¼ð òùçŸ[iŠÖAz£i¾ûî;¹á†Ä,_B9R ƒÈÕW_-O<ñ„ÔªUËjÊÕ¨QCú÷ïo5ÅM7Ý$†a¬æÃ¬[¹r¥k6×Õ0 ôéÓÇj•W^yEø{÷Ýwý|f[éŽ6¼øâ‹åöÛo÷¥<þ‹6¯alkÂqu®qãÆ~=îÆ0¾4jÔH.\è^Ù~¢A‚mœ~úéb˜ÒæAã7Ä ‘víÚ‰:²nÝ:‹Ìy4«xFk_Ç%yƵuf÷ßE»Aû•*UÊ3¦l´d.òLP¦ÅkÃ,~Û゜fršÇ˜‹ö=N3‚…K7þšŸŽö¿õÖ[ýç¼nT3e¼Á‡Ì¢³×úõëÛ+’2“mï–-[Z „ÅoA[AfÁÚ{4ÛÉ'Ÿ,G}´˜E$?þø£M?óÌ3í•´E,â0gŒ9äkBÞ×­[×O& r¾ŒŸº¡/DâÐjaBC mÉã(¿màKBh8G‡v˜½'GD•/_Þú©î¹¸_³ÊÌÃ\K„`ìŠñ¤M›6¶‡0zè!k´0>“uôÝZ±b…_}Фò_þzóÓO?ù¯T02_0G ¦û…7Dñ½{÷¼ÝwûÙgŸY“òòË/÷ÓòÛ†DFuPÐLcWGqº&¶ºŠÓˆ‹1ëÄäᇖ+¯¼RŒigK¹=ü¥ã?Þj1 °Z ‚O…b2`À€˜-±ñÓˆØÁœø#­Zµòó}Ã"ÒØ«W/9òÈ#夓N²éÆòý|3|(|´Îm·ÝfóßsÏ=¢Gc¾õÖ[V›6lØPn¾ùæ<Û0& Í3gΫ©]4šè©§ž²ýbœø‹øYAçògãU™)0ëNªÂþ’!4P"ýˆÕFÙ²e…¿hÄѼJ¹Pf a‚ÉôÒK/ٯų¯’,a*qƹŠsÌ1ötD®„__Ä„J%í6RÙÿt­»ê7];«_Æ|± ›>IŠ•_ßgî›¶.J˜½ö{©?BéC¡7Š@Ðh^Ô⊀C@™É!‘Æ×1cæ¤qï´kŒ@ÜyçvsÕ ¦8^7o.-óçl6†WÇáEŒ‰f6Ë3•2’™Ì×ìÉ„L=?ý^½º‚91^F¶o/eNbìÎOÑŒËK8?|n1“‘‘ѼL¸ }mذ»¬^½É|Õ¢¥Ü}÷…­N˧æ¥Û‚×0ÿU∞–*•#ÕªUŠx§EŠ@ÿŒü F‘B–ÂÆË–-e~è1ò‰>¸‚ùí9Éõ>…ÝЪ“D@ͼ$ÓbŠ@e¦0"ú¬$‰€2S’Ài1E Œ€2S}V’D@™)Ià´˜"F@™)Œˆ>+I" Ì”$pZL# ÌFDŸ$PfJ8-¦„Pf #¢ÏŠ@’(3% œSÂ(3…ÑgE I”™’N‹)a”™Âˆè³"$ÊLI§Å0ÊLaDôYHe¦$ÓbŠ@e¦0"ú¬$‰€2S’Ài1E Œ€2S}V’D@™)Ià´˜"F@™)Œˆ>+I" Ì”$pZL# ÌFDŸ$PfJ8-¦„Pf #¢ÏŠ@’(3% œSÂ(3…ÑgE I”™’N‹)a”™Âˆè³"$ÊLI§Å0ÊLaDôYHbÿÏζoß.ï½÷^’ð}±©SWKNÎ^:thÑw&ÉqÄÒ´iÓ$KgN±bÿo8þùgó_÷Ëœ)†=½ôÒKeÔ¨QÅpdCÊžÃ9~üx9ûì³#F¯©Gàú믗-["ÿOoê[-šÔg*ܵÕbˆ€2S1œTRÑ  ÌT4¸k«Åe¦b8©:¤¢A@™©hp×V‹!ÊLQ&uóæÍrï½÷ʱÇ+5jÔ«®ºJ^}õUÙ¹s§Ÿ{ݺuÏ~‚¹™7ož´lÙRV®\|ôýôéÓåÚk¯•zõêIõêÕ¥E‹Ò³gOÙ»woBuîÞ½[Ö®]ëçmß¾½ 6ÌÖ›ÂA@™) ŽÏ>û¬ 8PÎ;ï|¸e,úI»Œ‹>ÕªUËö›‚ÆS±bE¯\¹r¶o0#ÔµkW;¦úõëû}¿ð -6CÙÄLjæ™U$³¨¤cÇŽòÁˆYôÖ÷yê©§Ä0¥œuÖYR¢D ë •*UJlÍ-ÊÏž=[N=õT1FÌÂViï9#h4‚æ#éeĈözã7Ša ›†I·xñb¿,¾Ô¸qcÿ»¡5’… ºWbE,X ëׯ—‹/¾Xn¿ýv9ýôÓ}ÿÈh)©S§ŽŸ°]»v¶}|@£í:úD¡ï¿ÿ^î¸ã¡ì#<"üqDýÊôF”™¢,‚>}úˆ1ǤS§NbL yôÑG¥aÆrÓM7Eɽï•1­ŸCE£'Ÿ|R>ø`ëÿP—1ùdæÌ™²téRyì±Ç¬Oƒf4˜_œc80- Œ&FÛøIÚµk‹ÑJb´¥“Ç¢3fXÆ œÑfVà._¾\æÌ™c‹uÔQÒ¥K›SA?üðƒ½êG$ÊL‘xX #“ɸ_¶l™ ­_ýu™2eJ¨Ä¾G"måË—šÆKŽÈG‚z!ÀÑ)§œânåè£"qhœ0¡98oHGuëÖu·V«ò`ÌSÿ]øF†ÐpŽÜ¡`´(ì·1í;ú®”e¦&0bçÎë§¿ûî»í3æ^2dü–\ňÊA_ýµŸæL;^ÅC3õîÝÛOw7Ÿ}ö™5½.¿ür÷J~úé'ÿÞBì}QýÄ_o\û&°à'a¦BÎÄœTJ bÿ}¦Ä`ø-ŒtÐA ¡ð~ýú‰q¾ÅDïlHSÎDÖlfÌ"ü•àÞÓoµ$vwÒI'Ù0·‰Љ ZM…‰yÀØ Ð:ô£W¯^–©ðo*W®,'N´~ æâÍ7ßì7f"|ÖL¤O”9òÈ#…6œÄt3?? M„OˆÀ¨Y³¦˜ÈŸõ³‚Ï/ 7qPf Áƒ´fC“E쌃#o¢crøá‡ÛmÚ´‘îÝ»ûÁ†üHpòòÓ¼õÖ[rË-·Øà&~SPS¡•xÏ~×óÏ?oÛF[]vÙe2hÐ ë˸!°—tüñÇ[ÒDåÍ7ß´íÀ ‹…ë+¾Õ!Cäšk®‘O<Ñ| 1Gð‘Þyç[%ù¢iTמ^C$ÝÌè,ù »Á²Wd"Yvß(¸'ãÒ¹²þP²DÙ?üÐ[½zµ¿ïcԻ袋rUI^°ðŒÏæ±/&Bão¼ñ†g"y¶ßátö¬ÜÞS8½(ö¹Œik÷¡ÂéyΦиj¦pqHŽÅ#L£‚Hæ#3Žýýï·ïÂõ’Í’a¢ò¦²eË шÀB¬(d´üú.:¹½âèùômŠ0`€¼±'„ÏÓ­[71›¥ùníÌ3Ï´áõ|Ô…†€j¦Bƒ2¹Š"ó,¹ÂRl+-ª™Šm½! Ì”“¹jÕÆ è¥v1kÌûÌæuõ€uƒƒ«Ë¥ñÌø,X‘ÆÂ¦o¤3FÚ†Ïà&p§.ðˆFhËÑ£GG$ñÌû0Åj‡¹÷­[·Ú~Ð&ôË/¿È¬Y³"æ÷ôŸ±ÁÄ«V­â•%pvcX¶l™,Y²$"L¬ ÚstÁÈ-·Ü"úÓŸäé§Ÿ–N8AÆï’핾¡•׬Yñžú:}út»ž.S¬ñºôd¯6óæÏŸoM†“O>ÙŒŽœx≂d™6mší*ºW¯^òÄOH©R¥äÅ_´ï17®¹æéܹ³-óàƒúÌrÈ!‡ÈóÏ?/Gy¤Ìœ9Szè!»¸J”(!õêÕâ£>²õ¸êe­[·Î.˜ªeË–rß}÷YIýðÃËI'd;iÔv©V­šþž{î‘^xA áž‘n˜$Ƶk×NÎ=÷\×¼] ŒÇM.fà3Ïÿüs;@äàÁƒíÄaJQ ¿ûî»vYõë×—ÿüç?6Ÿ+ïÚ^YŒøO,H˜† îXäï¿ÿ¾üë_ÿ²ÒðŸÿü§-~衇ZÆæ ŸYŒmÚ´±mD½C† ±ÁÁ$A0ÑUW]eÍA¦–“È´ÒuĈ6½N:¶¶ ùŸcŽ9F `%4þOëÖ­­F|ýõ׭ħM¨ÿþrÔQGÉ«¯¾j¡&4qâD{Eè¡XÐŽ–/_ný¬Xík¦Íø‹,j|C-ã`áŽ3ÆVGašÿûßòÞ{ïɽ÷ÞkÇ7cÆ ×œÕÖÔ›o¾ÙbÆüCô Ãúp£ <xà+´è{ûöím2Œv:uêdÛbíÌ™3Ç®'˜FêСƒÅ™¾3høDÆëÚOæZhÌtà 7 ÕM"„TsÏ,ªæÍ›Û p ")Ï8ã 9è ƒäˆ#ް&! ¸ØÈ;v´~eÛ¶m+5jÔ°ùÐ6±ˆEzÞyçÙvÈwØa‡YIîò3!8å´G:“ñŒIá˜)ü ƒâá#íY\·Þz«¯y¨£zõêrå•W û /ä•oj¢Iîºë.» ?޶Ó`äƒaÑ„0éh‚³Î:Ë.ÌZ$/¾æ ¦e¬hÚ ƒPDÀÞ-v®0 ÚØQ¼v\8m¬“ÓO?Ý |Æc=Ö˜`Mš4±xSl+Uªd5¼« Ø?üpiÔ¨‘ÕR¤Ñ Áq LkÖ¬iÇHûŒ!|ðÁó¢ùÎ0 Œ žh|Ö݇~(§¨ã¿ÿý¯C"ãµ $ùQ`3ϵëÔµ‹¶<ä¤6v+L¨z€c!£¹ ˜UŽVB…iN ¨#˜*1QAxWï³pOZ,ŸƒtGøÐBüA,j& £CU«VµW>œ)èü&ÆŒÄÄgaa"åƒ^.ò†o =õÔSÁ,ÄBvÍÌ# yã"¸ÂB(^;®îà˜˜[§#æ–yeŒ,d¬‡ ±&‚øÂÌŽ`R,'}ƒ1a_Kz¹ð£ÑDX=˜Ý}úô±ÂN½nÝáF ÍXC˜ðXHÌš>‘ñºþ%s-4frL“W' U©…4nÖ¬™-ÂÂo¼ÑJg¢b¨gL#¤Ä‚8Ó#¥=º‚ލm11ñÓ•!6=ÒÐIvÊW\ampê„ba3ÃH˜ˆh[&Fq& kÇ]©›EA{Hdˆ@L†p8±Fˆh[, n3èGR(3Å€èR^§”a0Bñძ.Îiç¬4`Ï*Ú>Nq´C­ì-6GؤÄÏlÕª•â¹¢ÌK/½dGÀ=Ž?”6‚‡|Ýf%ŒI€{ûí·û#§ŸÑ¨ôÁ©'—z)¯ýê3EïBz¾E<ûì³v‡ý‰0q!ÖÁUöEЄmYÈ8æœí# “AhÅB±_b–q†“ ˜uAÂÑÿãÿh÷`0áФ±ù²Q CÀ€\anËò;ÄLØ™½.Êâ{ÂØÁ“Á~eó½j¦³ñÅÛï.±ËMçup•` {Kì]±ÏAà…ì4oÞÜ^i‰ëP+ŒˆI-ØBYÍ# Å:äK`l6>ùIKBŽw@ Eÿ9•OÂ_…Ö—Í÷ÊLqf¿k×®VŠcj…)¯ƒ«SBsyä[¹8þìß–åëÎÔ‹wøÒ1q¬}$wîÍm³·ïox <'r@•ïÑÆÁö@)7jæåÆÄƒ)Å.;Ç’‚‡.É€Éïàj0ÊÆþLÞ<¤çÏD;Ôêölb-^6¾!—/¼F›Î_³C˜m‰P nn³K9¥Ü(3åÆ$â Ú„/²ñ:G,м®†â¸²ák¼Ã—œŒÀÄãûA˜Œh7GDã`&¾Fï˜4}ŒvÈוuW4 —×ÕDÇâêÍÖ«šyy̼;c\pA:#±9B“×ÁÕxMäuø’ïL¡½ø¡NWÃ0DÕøò ãNÕÓF¼C¾ŒÓŸ'Hù= ,«÷‘¨fŠÄ#×áN’9ÒÃÁTy¤4Lïà*yœCyîÃϼ‡ò:lJð‚¶œ„îҥ˾Bæ“£4œq¤¼£X‡|I'"Ç™2˜*Ø¿xTOæêçJYþ”r# ' rc’ð›ü\Wq"‡/ÑPl*–ú1Ôï¯k—}&†ÂPAÊïÕ`Ùl»w"ÕlC¦€ãeÏ…?GøÉR"‡/‰æõeÆx‡|ƒA‘`?Ñ4.ˆ|¯÷ùC@™)x¥mîx‡|Ó¶ÓŬcÊLÅdBÝ/÷“ádä04š—‘Ó¦NG”™ÒqV´O‰€2SFN›v:ˆé3=úè£éØ_í“"P¤¸CÅÑ:‘‹™Ø dCRIPr#À/KÅ:xœkÓ6wq}£( Ð_}¦PÒ,Š@"(3%‚’æQ@@™)4‹"ÊL‰ ¤yøgq‚‚^ê%ÉIEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1ReconnectOption__coll__graph.png000644 000765 000024 00000021030 13515046516 030225 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÀ·DûQ~sRGB®Îé!ÒIDATxí]¸E.r’,9g(œ¢¨HI§ˆ‚œ(ˆ‚¹#ƒÅDQ@<<Aâ" J(A’äœÓ\ýuö°»o÷í>Øyof_Õ÷í›ÐÝÕÝWUWÕÌîKaYÖRR’))X¬d:w¶"@)E 9#  œW_ç®;€Ê@òF µÛ¦¿eËZ·nÛ†¥ã‰eÊ”¡J•*ESY v½ùæ›ÊõƒôìÙÓM¢&cqÝÝ.Z´(íܹ3Šj®¬’;ï¼3©‡´ ‚ƒÂ¢7“ ªÉe¥užAP ‹ÞL.¨$—•ÖyE@ (,z3¹   p“+=~üxzþùço’KdÍGM>ø åΛJ”(AÍ›7§ DÖ˜k]¹r…Ž;f×oÛ¶-Mš4ɾNŽ'ª7¹êxp·lÙ²›ä¾y—.]¨C‡”:uj8p uìØ‘víÚEõë×§‘#G†gÀ5f̘A9sæ¤Ë—/KýsçÎÑ¥K—"j«•<¯°h‡¦k׮ъ+èСCöâ.]ºÔ~žpᘋ/Úk‰s‘ÔEýõ×_‰Ÿ’Øõp²wï^Z¾|¹ÔEGŽñ+ÇÅ©S§èäÉ“R}oݺծA;xð \oÞ¼Yxù ú;þ¼Ì•`­1ÐüùóiøðáÔ¿š9s&uîÜ™^zé%áñÀ?`Þñõ^Ìx}ôÑGÔ¤IéΜ9C‹-¢… ÒéÓ§íûÀc`¼~ýzºzõª]îé·=šÃ“`~ñ°ºwïn*THÚðBX)S¦´ž{î9‹Ýûiò[o½eíÙ³GÊ>øà›7 €•*U*ë?þ°† feÊ”ÉÊ’%‹´{øá‡-©Ë‚'÷À;[¶l?Ò·Úµk'e}ûöµn¿ýv9òÉ'­råÊY9rä°Ò¦M+mÚ·o/eS§N•ëÚµkÛe¨‹qæÍ›'å,|rýÌ3ÏX¹rå’ó–-[ZyóæµXˆåÚ÷ÏÚµk¥Ý¨Q£¬øú`Å–ù#Ì™4 nÀ´xñbÁ ¤OŸ^úF0ÆXK•*%mÁƒw©æOõêÕ-7> öüëÃBDݺu W·n]q X Ä?öØcôÉ'ŸPÁ‚éÞ{ïõóy'NœH¨Ï‹.Öõ•W^‘6, 4{ölqm`õqРAbYü,;ú÷¥M›6ш#Äš;–ð™>}º]¥@tâÄ Ú¶m=z”z÷î-eEŠ¡^½zŽ  P×®]å;IåÊ•)]ºtríû§bÅŠrÇŽöí`}ÜÿýöܱÓài»!Xö§žzŠjÖ¬IÇ îºë.jÓ¦ ™óêÔ©“Ì .ØÜ¹se÷4<¼zŒ €ÐÀGf‹)BAa«ElÍ©^½z¶Ôºuk‚pÀ ƒ­ž­6±Å#͘1cA-[:‚\£F š0OÜÌÓ,?,þk¯½F6lñ!CtÇwøí,¦~LÃï‰^œÐ,P=¬ZµjÙã:t¨Å×¾æ T2æ»5’¥a7Æâ-Üܶ,ÙŽ,|X0-Ô!{ÁP²-È.±UôËU­ZUê! Ä®ˆðg!±²gÏn 2DÊL††ã áîšÅ»‘Å©G)Ì=ûì³ï>R†?lÕ%ó¾æÃnžÅ·]'\ìnÙÙ1V4 ˜,ú¿õÖ[…7²]“XœÞ³K½Y³fÙ}‡;qk–ÀU”PHèà!ôXø—_~9NSöw%Èeœ2gB,8-v7lð­hÚ´©ÅÏ,v'lB#œ(ƒðq^Ý·iÄç>v,¶âqÒ‘ôT*æŒ8;dñfñnäg‚ÕMè=·*€+¿ãÔ ׇ­–d€ØÂÆéOIï¹çž8÷qƒ­£|‚ÜD Žôd( ”CÕ vq ïxÁŠüî…ê2|‚b ÞÍ‚Åì½d¥ð¹è!ÈõÍj$tuË—/4-YºtiIŸãåBZÕÉ`21ú67/ßsÝcñS[úðÃíܽ—ÁÕ±_G_‰ä§àÄ1Úõ›.8KvY `®CpªI¸.\æ×“Ï&á´kWÆxô|š¿Î¸Cv¼Ú³mÛA~Ýù@”{Qv‘    JQ®3mÚ~¯¿Â&ºAQ†8bvªC½Špyàÿº|ù*»A+Í¥U€D]íÞ}”Ua¯ßûø¸¿ÿqZ½úwœ*%"ª‰6ºBÆ™Ÿ@‚4uªfƒqqúZÀi„øO˜°‚sÿqSnФI+ý\£€¦z骀ŠåÆûù-×áŠù«ˆçhéRïÿÒBÈ º°@ .\P×è›oþÿeôPuô~tPˆ.žñrCö®N(‚k4cÆZþ"}è:¡ÚêýC@àÆpKp«ŸÞÉ¿¯yJà´iSñ/Q¤’Ý;BÚ´©åƒósç.ñ¯VlL0mpc¸òmÐ›Š»[A¸nê7H¸DgÏ^ä_§«éw?[¶Œ~×záú6¨s؆åÜ­Û—üý3üsŒÂÖÕ Î  .3¸*W   à‘…Òa:ƒ€*€3¸*W   à‘…Òa:ƒ€*€3¸*W   à‘…Òa:ƒ€*€3¸*W   à‘…Òa:ƒ€*€3¸*W   à‘…Òa:ƒ€*€3¸*W   à‘…Òa:ƒ€*€3¸*W   à‘…Òa:ƒ€*€3¸*W   à‘…Òa:ƒ€*€3¸*W   à‘…Òa:ƒ€*€3¸*W   à‘…Òa:ƒ€*€3¸*W   à‘…Òa:ƒ€*€3¸*W   à‘…Òa:ƒ€*€3¸*W   à‘…Òa:ƒ€*€3¸*W   à‘…Òa:ƒ€*€3¸*W   à‘…Òa:ƒ€*€3¸*W   à‘…Òa:ƒ€*€3¸*W¯ `¹œFe1–1ùI“&—•6mÞ˜œÖìÕW_u¹tY–'þGX¦L™èÓO?õŠMÑq2]»võžP€4iÒУ>ê @uÿG _¿~ž€BcO,“Ò)TœBVùzUO,“Ò)TœBVùz˜S€3fPÆ ý>Ï<ó }÷ÝwQY:Ð×_^ᘌ=š|ðAÊ;7•(Q‚š7oN ,×Ì.?wî>}Ú¾nÛ¶-Mš4ɾÖ¢˜S€]»vÑœ9s¨Zµjò)]º4-[¶Œ4h á %‹-¢;v„*ŽÚý.]º”-uêÔ4pà@êØ±#anõë×§‘#GFÔÏÓO?MmÚ´±ëB!.]ºd_ë ‘'Ò 7²PüÆnÁ)S¦ M›6êÔ©#÷¯]»F6l ½{÷RÅŠ©P¡Bv}œàþºuë(_¾|T¥JJ‘"…_¹¹¸rå mܸ‘p¬\¹2¥J•ÊÉñìÙ³´råJ*UªåÏŸß.ÿœ9sÒ… hýúõbá ( åóçϧáÇSÿþýéå—_¶Û ·Þ¸qcêÙ³'µhÑ‚²gÏNǧ}úôá'½i­,Y²Hš5kZW¯^•rV8«^½zVºté,V)ÿøã¥¬e˖‹•ÃæeNÖ®]+u1—©S§ÊyíÚµ¥–CÏž={¬çž{NÆŽ{5jÔ°û|óÍ7å<¾9vïÞ]ø`®fl¼óXl4Ì0ÂyçõÄ“` ;“$®p£ ÀÒ§nݺ"äeË–µNž<)³aKj±_m±+#×cÇŽAbÿÚZ²d‰œó“g)Û¶m›ÅÖêÔ©“\û*š-®µiÓ&‹Ý ë‘G±Š+&‚ÂÖUÝz( ”„}páÈ•+—åd mAˆÙm“²Ûo¿Ýb—MÎÿ@ 4ÿøÇ?lhÕª•ô±b^­[·–f¸ß¤I›ú„„›#ŠóÎ;ïXì2Yì‚ɵÁËfωW æb³Ã÷ǧR¥JT½zub$¶°RüÍ7ßP£Fˆ…U®ÛµkGlí ®Ç”)S(kÖ¬ôÔSOIYÉ’%©iÓ¦Rfxã·êÇ”`¾5+øç;wX¸Å5z衇hñâÅ4{ölâ‡öíÛg³iß¾½Ä)p³þú׿Òo¿ý&ep]x׳ëùžœ:uJÜ-ð24`ÀÊ!a¬˜ËÂ… MQÐc$s,^¼8uëÖðž•_ø°‚åçå›1°›â·.lÕè½÷Þ£_|Q„¾²/±ûBGŽ!ø¿ðù} Š2_úý÷ßå~õgŸ}f,XPüz6ŽÒ×·ß~K¸‡8­/!»cŒ8„ŒÏÖ­[M‘ßJÊ»€Ô1F‘q ž‡6EA»wï;Gß±™¸ýÆ]7#±6³€ù°.ÂàÖ®!X\ìEŠ!(‚c°¡U«VI™¹ÆÑ´ï¾û.±Ï-Ô{ûí·%àþüóÏiîܹbýQ>}úô8t¨Àúš5k${åÛ'ÎgΜ)A)R½†äb÷&ÎXM™9F2ÇPc3p=:t(±?,®Ü¸“'O–´à°aÃd=ñÂÝÃ?,d`Uùé§Ÿèûï¿§ÇÜoÍá"”/_^²5È” ƒ<;ûæÄ>ºXiì"°¤{Pß¾}%+ G;w–¬2>ãÇ'¸UÈ4õîÝ›ÆG½zõ²¼àa¬'N¤yóæ‰{‡ûp_ (ó¥HçèÛ&fÏã‰c\Q”Ð ˜Ó‡°ñ‚ÉÙŸ¢E‹Zü0Ìâ‡B2§C‡Ywß}·”³JP9fÌ{¾Èޠɀ°ð[œN”rwC† ‘sddXìþdr\ eè A-Æ>¬tÇ’]Z±b…U¸pa 2M§è?sæÌæRcd^Ì¿óÁƒ‹ü®Ù¢[ìNY«W¯¶pHÈþ€—!ž-öõÍeØ#„YÞaâ¤! ßíÛ·[ÁÆŠ”/ÎAû‰tŽA‡¹éðÊØŒ$‚‹`3á!>á-ÜP„L”/!ÎH!#ÅÖ8l¸dÁËBQ¤s Õ>îÇl  ‹n`vâ×áÚiùu’ípïžq#Ï"¼;ƒ¤¹îI¿:‚$D@ ÁG×W¯^Kâ$ïîU’pý׬ÙÍÏ*6%á´kOÄx‹O&³f½_¹Èȯ4ÏRIL"R ›D}GÔ-¾|‚W b€zß¾?ÓÅ‹×è7îàwøý¿G ó­P¡ñë⮞Šëwä·Cå¸]l˜ÁýðÃV~5bïlD3–¦fÍü_Î Ó\‹£„€ÆQ2¡l¾ùf¿šJÞ:4ieB›ký(!  % ÂæÒ¥«4cÆZ~ýùªd/ÞÂ/¬K ­%T¢dBØÌŸ¿‘Îó+tæÌ_ÂBëF U€(™6“'ÃýaçÿOBbâÄæR‰ˆ€*@"‚®Îž½ÈïìÿÊîÏõ`üb*­X±“þøãd"F»SHd˜={½øþݦN’¿5¶&ð¶^;Œ€*€Ã²GÆ'ØC=þ±š0AÝ @¼œ¾VpaþÇŽ¥%K¶}ÿqÀ¦Mûiûöø¿ÐîÃNO£€€*@@Œ”RŸñQš4©hêÔÕñUѲ(#  e@ãc÷'ô›'—/_ÕlP|:P¦ à¨ÁXîÛwœêäwBÆ'>Ú½û(ÿdËÞøªhYpý»@Qœk’²Â«ÏUªòS€NJ:´`ÁëßÛM™2ÿXî^þE»‚I:ÞäÒ¹ëßå…èÖíKþŹ3üÛ?byš®ž›º@®^œÓ¨8°òw5ª®^œÓ¨8°òw5ª®^œÓ¨8°òw5ª®^œÓ¨8°òw5ª®^œÓ¨8°òw5ª®^œÓ¨8°òw5ª®^œÓ¨8°òw5ª®^œÓ¨8°òw5ª®^œÓ¨8°òw5ª®^œÓ¨8°òw5ª®^œÓ¨8°òw5ª®^œÓ¨8°òw5ª®^œÓ¨8°òw5ª®^œÓ¨8°òw5ª®^œÓ¨8°òw5ª®^œÓ¨8°òw5ª®^œÓÄù1Ë—/§wÞyÇé~•?#pà@Fþ—I))þ3ŠG" ð÷¿ÿ4hà×Sœÿ¶gÏþO…éÞ{ïõ«¨ÑG %ï¿ø:}ÞÊÑeË–‰L‡UÓlРAæTŠ€çhÞ¼yÐ9h ½™\PH.+­ó Š€*@PXôfrA@ ¹¬´Î3(q²@Ak¹øæÜ¹siÓ¦MÔµkWGGùꫯҩS§üúÈ•+Õ¬Y“î¾ûn¿û±pqúôiJŸ>=¥I“ÆžÎÿû_Z´hmݺ•2fÌH%J” fÍšQÕªUí:ñ\¸pӾפ-²Ã‡§þóŸ”#GŽøš9Zæù@nذÁQÀ|õêÕtòäI*V¬˜| *DÛ·o§þýûÓÌ™3ï?±;hÚ´)-\¸Ðîöý÷ß§·ß~›R¥JEmÛ¶¥Gy„Ÿc —^z‰¦Nj׋ïdèСôúë¯K(Âùóçɲ¬øš8^vÓ;À¥K—èØ±ckxˆÚ˜TñâÅEÓÿýwB9,EêÔ©éàÁƒ”!CÊ’%‹=±Ã‡˽[n¹EîÁº\¾|Yx ®!ð…ÀAðÒ¥KG'Nœ ¼yóšb9ž={V…å®-[6©Bð„UƒµÙ½{79s†J•*e[8,Æ ‹—’“ó×àQ¥JêÔ©N…ÐßON 4À¥lÙ²”5kV» ±sçNh—;wn)3øâú?þ¬K–,)˜¡êOÔÛ±c?TË/ka3挼o½õÖ ˜mÞ¼™ræÌIE‹•f;ë Ü7nÜHS¦L¡6mÚPûöí¥ Z´hA}úô¡?üj×®M™3g‰1Œv€‹/Ò‘#G¨`Á‚4xð`? 0¬1Æ‚9¦H‘BúÂÎ{åÊáò´iÓR‘"EDíÁÜàÉM+Ào¿ýF;wáX»v­ £bÅŠ2ÈU«VÉõm·ÝFï½÷½òÊ+¢ï¾û®Ü‡?þøãô /ÚôíÛW¬,€Âbýë_ÿ¢Â… Ó/¿üBýúõ“…(B<{öl¿iƒ/èøñã²p­aÆԫW/úé§ŸÄZWªTIeà «å……ïÙ³' 6Læxí×ÑŸn,:%?¸e°”P"<}„’€ÆŒCŸþ¹(úÇÃFì P×­[' ƒë'Ÿ|RÚ|kÕªE?þø£(Έ#Dˆ€=æ¶W¯^•ò=zØ ùÝwß ŽèåùË_hàÀƒƒõÂù¹sçDÀ <°Òà …5j”·mÛFÙ³g§Ö­[Ë<Ì‹gŸ}–:tè@K—.•:˜G0ŒÿóŸÿF @Ï?ÿ¼ôóå—_ŠR~öÙg„ÆCU¡Bzíµ×D¹Öã‡ÀØ0·ÞzËV3¦„£æAðà­_¿^„a„ "¸° »ví¢zõêÉBA@A?üðƒLàþûï§ÿûß"ˆð3Á–zúôé²0C† k °PÏ´6Y(âo¿ýVJ‚Å1Å‚ËPaY>þøc)Âne4»Jà5*ÁÝ‚µÇgÖ¬Y¢ÐX‡zHxÀJΛ7OýwïÞ>ùä‚……€¢OŒmΜ9¢ìp1p ]B2cÆ q+PwÍš5Â`á§M›FPr(ÚâÅ‹í2( üià áо}ûDH°;¡-ú?~¼ð®eÊ”<€-úøúë¯ÅÚcìÝ»7µjÕJæ £cÝî˜O°[A€ƒ¡`¿øâ‹T§N‚"9ÒT•#äeܸq²^XsÌc‡Á0„umÒ¤‰¬+\°•+WÊnjÊoô5€uÀÄkÔ¨!cè°¬æ[ÿ}÷Ý'î¨^½ºlƒ  -[¶;Ã|@;v$X´…Oš'OB=XõP„mü~P/_¾|²ƒ˜ú.”ácv-\Ú¼F{ì >Øö,X s†+š?>•.]ZîAÐ 4pÇ~þùgQB옄 cÄ®†íÂŒ`caܨ‹þ a'u¬\¹²¸”CP@2xaW1eÀ–A:îagÅn¼bÅ ‚ÒÀÕiÙ²¥àyc7¸çž{ [ûˆvÆEµoþy‚Ý–Ù¸+¸ ãÀ¶æzÉ’%²óÕ¯__n{ŒÙwþÀæÑGñhïÞ½r¼™?7í™ÎM$­„I€ 0p°ußyç’IÀBAø  (üDXÿÑ£G‹ò ÌX{,œ!(B(Â6îKˆ Ü7Žs”¡ÏH È7€ Á½ÂŽòôÓO‹@Ág†+g‚ lð{} J€í>±Q"S<}ÇÄí a†P_®„/™x ÷S‚ÛŒ€)v¿`7cñÅ=¡cœ00 †çï;G³ùb`Ú%ôx½Ç„¶ ¨o=àvœK¸A| ‚\l‰ li²àFÀ÷Ä"Á}0 ôèQ›—ïvkßüóÂd– ;ˆï‚øòÁÖŸ2>¡ŽwÜq‡¸û÷ï—*Øá›B‰Í.”óÀ6n î⌋‹Ö”ç;¶øð U!Bò®Ò¹ØM ®pM {¸J„4'vŒ`Ù6Ä%p`Ø %cŒA:Œ¤!Är‘Îß´¹‘cÔ ÒÎïºë.q ÆŽ+‚a´>5üXdàÆ ³÷–;üVdn°ðC€ƒë .€qÃÐý‚Ü/X/¸ 'R}Æ}¼–JAþ`làÂÜÀ¹rô1#(D9\ ·>/\°ÎÑþý¤I“„\Æ›!ðÅn€9터¯G@‰,ö‹/¾ (Æ ·ÎdŸ 804Ü6$d|àã>Ú ~B¬ƒ8¼ …ÂÖñ˜i‡˜ñb§)j.P¸+‡EDpj‚G´E¦Ö >)€‚` ›.e7w‹‹aÈðÆ5¶b22 p?¡(_¾<ÁÏAÀÁÛ-¬V»víä>é<¸oרä»EK#þë ÁBʙƠAƒ¤–®‘qßþö·¿‰5†ÐÁ§E» Æ…C;ÌóÇÜ1_7Èô‰:fÎæ¬ Æ;b–É“'K•jժɜá*A9Ñ'0À8êÖ­kìÌŸ~ú©Œkå@ÐüÆo˜®¤M—.]äa˜}“OBa ¼aœ@Plq °Cð l°K"1‚4+s †½i3Ç8_ˆÁVùØcI¦ãfÇ× ‹÷%X+äïÌ™€Ð”Ãe€[€û°”òÀ4(|]¸È/#«ÿB‚`Á±ð9±àÆ 0}Dëˆç!°tèÁ¬/a|Øãlÿp¥`‹òaç˜o ®À 7ÑìÆ¦_(5vb(¤!ŒÆ;æç«€‘` Ä8†- ì ÆíµÁëÐHÃÃèøÒõ™ùÞuè“Cdwyà@0¡1,¨EBàƒô\(ò ØBÕ¹™ûp#Œ+ÈŠ(ü¨A2‰ƒÀ67{µÙ…y+ì¶Á¾y aWÅ3›p ã@ƒàËJ…ObR¢*Ü YØîLÊëF& ·nP A°ð¤1ØråÊ+Ò{QBÀ‹'‰ %¼•"1¡\ DÏE|3óŠ£Èíâ¥#%E –ÀÓl< ¤8Y À z­Ä2ÄòêêÜÂ"  "­Ë¨ÄòêêÜÂ"  "­Ëü‹žÖ¨=†IEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1UseEmbeddedConnectionOption__inherit__graph.png000644 000765 000024 00000016075 13515046516 033221 0ustar00tangentstaff000000 000000 ‰PNG  IHDRõ{¬ ÆÍsRGB®Îé÷IDATx휔EÇ‹ ‚¢ ‚YA0+& "ćù™1cVÌ9‚ ˜ATTÄ„‰$˜怊d%g%ªÄùúW~=Î-»{»¸¹½ª÷îf¦»§Ã¿»b÷l¹ úŠ‘!`ä ãÊ9¦re46CÀ!å CÀÈ-Œ©sk>m4†€SÛ"0r Š96žŒ‡³jÕ*2dHÆå­`éA FÒºuëÒÓá"îi™ ”MŸ>]5jTÄpZuq@ Aƒ2cÆŒ8t¥$ú`²ñãÇ ö—tîܹ$)VmšO«é°Î…GÀ˜ºðZ †@¬0¦ŽÕtXg Â#`L]x ­C VSÇj:¬3†@á0¦.<†¤†9sæèÞë‚ н½±cÇÊ™gž);í´“l±ÅÒ²eKyøá‡åŸþɸíeË–Éš5k´|¯^½¤}ûö¿k ‡€1uáðÛ`o¯X±B†*«W¯.Ö69Ó¼ys=z´\xá…Ò±cG©W¯žÜ|óÍÒ¦MY»vmFí# úõë§eÿúë/ùã?2zÏ cê 1da¢-×­['³gÏ–ï¾ûNßD{Mš4IÆŒ.øyóæÉ¯¿þš§æüQ–/_¦¡ ¿ùæùý÷ßÃ4n8éöõ×_Ë/¿ü¢ çwcš:0M‰à‹–!h¡‰ † êM¹E'µk×ÖHµ3gUãà×¢½!·xõM߸qcáã|bï[tÐAZŽhÏt´ãŽ;†Ù¦–.]>Góœ «éøÁ鈾üý÷ߪËáïb}PÆS¶mà+cåì»ï¾¾ ½‚)šÙcñT­Z5cøg»æ€™ßùc”§ft&;?Uzöì)| xüñÇëkÎ_çCªiMpÍiW Hù…¼pá°ú¨©&Fn¢Û[ÇÏ#¢yœ ü„Qo„U÷îÝ#­ü{ûñÇk@íä“Oó²mì0É<(ÄÕˆö-SŒ}vÍ‹@f+4ï;ö”ÎÜä’»îºKN=õTq&·¾å÷lñ§wÛm7Õê.¥Z›Ïìjòì³Ï¦mÉ™çZ–­#ðÒ-'ÿÑj|d"óݺu“í¶ÛNöÚk/Ív¦ºx?†ÂÇÆ7F _|ñÅZþÆoTæÃ‚èÓ§Z{ï½·\pÁ¾ ˆ§jùê©ÛbÄœ›¡{,ŒŒŠü|”\Í÷>q¶ÑoÇŒ ‰Ó¢ê§âB+W®Ôg"ÓžðÝ4n‹Ê'΄ ð+‰|ã—:F ¼¯ëö¡üKÞqÚ*p¦xèS5'=ý&Ÿ4üW|v·¦íP¯ ¸…d"ãÑ>¤Š~ó²3¿ƒ{î¹'ŒªûúÓéý@òkõon++¸á†‚&Mšè«ì4kÖ,c•*U'è4ÏûÔcñã}p-œâŸùÔÁ`|À2IÙ2uA@ºîºë‚=÷Üs½WÝqàLâÁHnÏX·½/¼ðBÈÔÑr~K‹zœ† \´9š­ é¢ñÓøávYž<¼CŒ5*p^Ö{¦Î¯ ·O­AÀÄ—ÙsÑX²ºËgólL .³?gä4P±¦,>(¦v×®]×k¿Õíe¯—Nfº7““HH¬_¿~BÊ5kÖþ B˜Ï™ô#]l×%#‚ŠÑ€[²2–Vp̧.8v)ßÄ_~úé§ußøÜsÏMY.¿ ‚gÎl]¯Ñu¢ä>âžX€<Ê'mˆ6гÿ¹\w™ÿ2~ΈQn ÀqT´Øo”åÆ|Ú( CÀ!`æwYK–¬,##µa–ù@Ù|žyÎÕå°fÍ:éÝ{ºûk—\b8.ÿõ\˜PoʼO]æ¼Zµ]dÓM[¹Lzº#—Åû=vð$²^–}ê2«©9³íö?ã°‹½gŸýœû j² “óÏoVìíY%‹€ùÔ%‹±·¾lÙj÷!ÆTm§oßQÅÞž5PòS—ükÞBXÿøñóÜWRËÂg»ÉMŒ©ss^ÃQõí;2t3*V,ï>¦æÙMn"`L›óª£Z¸p…ûÁ9î÷Çþ¸o5ÄLðžðÿ͘:‡çøí·Çºï££S¸¨ðb·…·(‡GmC‹Î¸¡‘c •Ý/åU¥JÌσHî=SçÞœêˆfÎ\*S¦, ýi?̵k×¹ßãí횃Sçà¤2¤ÇZ9-X°LÆŽ]ÿ÷Ä“•µ´Ò‡€1u雳ŒzܯßH÷³Ãë’–…Ù ²(xRpr ј:&1q'Îw¿Nšz?fïßtO|ßžK7ÆÔ¥{þ’öž½èT¦·aùòÕ2|øtÿh×BÀ˜:‡&“¡pž}À€1õ®\¹¢¤ú)g&xŽÍ½N™ý ÃkWÎz·k×<ϰfÍZ*ï½7A®¼²¥T¨ðŸßxã¶8Oa{(õ”ÙO/KýÌe1€aÃ&¹ßëî%sç>’¯YžEµV4ž ùOldzƒÖ+CÀÈcê,³â†@Ü0¦Žû Yÿ ,0¦Î0+nÄcê¸ÏõÏÈcê,³â†@Ü0¦Žû Yÿ ,0¦Î0+nÄcê¸ÏõÏÈcê,³â†@Ü0¦Žû Yÿ ,0¦Î0+nÄcê¸ÏõÏÈcê,³â†@Ü0¦Žû Yÿ ,0¦Î0+nÄcê¸ÏõÏÈcê,³â†@Ü0¦Žû Yÿ ,0¦Î0+nÄcê¸ÏõÏÈcê,³â†@Ü0¦Žû Yÿ ,0¦Î0+nÄcê¸ÏõÏÈcê,³â†@Ü0¦Žû Yÿ ,0¦Î0+nÄcê¸ÏõÏÈcê,³â†@Ü0¦Žû Yÿ ,0¦Î0+nÄcê¸ÏõÏÈ úöí¸:ì/‡0(_¾jP¹rÝ \¹r6¯94¯ðéo¿ý–ÀÁÁàŠ©„À=÷Ü“*ËÒ C „˜>}º¼þúëI{‘’©[´h‘ôK4 ’G Zµj)™Ú|ê’Ÿë!P¤S)œV™!PòS—üX "EÀ˜ºHá´Ê ’G e ¬ä»–Y>øà™[]¿›6m*ß|ó2?ùä“*@è3k€ñÂô0ãÆ­Èú>«W¯Vì·Új+yøá‡uÝSϳÏ>«õ±îÀgjAûêÇ_Ðk‘™ß,2‹s Í莜êB†‰üø£Lƒ‡¾üòK__ŠE‹_B=hÔwÞyGAìÒ¥‹jÕ7ÞxCËù÷“ ¦Á¿6l˜23ŒÿÕW_…EÑZï½÷ž.Lš÷eÑV¯µŸÃ Òܤ¯0,Œ—_~Y,»îº«.X«§§Ÿ~Zxà<^0R†ÅˆpÄeq4Hºwï.o½õ– ŠO?ýÔW% ,Ë.»LÇzá…ÊǬxãB°Û´i#o¿ý¶öaäýpbhÀ_|QÛòæ1/Z´HqÃ<¦Mê%ÍSº120gÇŽ¥OŸ>*´ý{Þ­¡ÝDÚzë­åCÑuvÔñÚk¯É»ï¾+7Ýt“ögܸqákhlÆ…€g ~ñÅakã„NеqÞyç .ýO‡ õ1.„ë†5Hc8p âް“(¶¯Ñº²½/2¦& ÃtÐAÚ LêŸSjh)˜Â!‚DeòðM…ôÔSOé¢ä8ïâ»`R훊0ÐJ´C¹-·ÜR¥§/ÏdÂ\¾o]ð|饗†LøìßOwådc ÿ¶káÔSOU|ÁÂH‡ f6VëaÖf騰}MWw~y…6¿}> ã}„i¡‘`^ö矮‹†Â$… ˜Þhi|(y^+GÍÔT¾õ`E ¿Ú×Aº×ÄÜ“G›™þ=š=‘0³0ã¡Tcð‹ËcèСaA¤¾'üÇT>5eðç5D¾÷“aBœò}äAšŽ¨³°}MW~yEÆÔžyókmƒŸ„)£àAL[0øµhgÌÌž={j „|B0„šŠÓZˆºöÛo?Ÿ¤õ ±!Z:¾änßÿ}4I#h]4&”j ,H誫® ·Ä4˜,–¨‰«SüËc^÷LÆ=f(Á5*ÂKóŸºÀ_…ù!Êz¬£‘}ügÆÈ¢õeɧ^_>ÙÑúhOêõ­×R±™Ë ædÛ¦ŒÖ°ÀÒ‰n3¦Ã(U‚!&¤CsœûèƒrÞìÆ”OF`Sؾ&«7Ó´"3¿3mÿˆ zá…T[{‰‰Ÿ‰HÀ„EÀ¢ ÏÇÂÃB¤"I}ô‘Jo‚:h&ïðíR¦?þ*æ„¿E É›k‰ÏD6©_†áþî»ïVKÄGfS!˜ðCé?uwîÜYýù¨ÖCb¦FÿFŽ©ýËöÑúƒÃWÇ" vÁxñÇÁaB[ø„‘ÐÐh:‚Jô|°ªI=B‡éý‰Rqõ5ÚFªû"ÓÔ©ðé^JÂÄøiNˆÞzâðÑ`|€Â¤½á†T›pðƒ¼ãŽ;N™ˆÅǶ†'_7Ϙß0'¦&Ú“v÷Ýw×}PòaZêAš¢að!„ ¸yóæê¯&>Ÿ|òɺß|óM Öñ‚ÿŠí%(ÕÐŽD”ôÂܽ÷Þ{µ¾ÿDû ÁV¾ŒÏO|öéþŠ0„ùˆÒ2VDøm-‰Ä,  Å±dÀË ¬éý¤ ðð‚¼˜‚DAø®”ËoŒ—\r‰2ó!h›'°#ºLÝžá ¾rðfŸ}öÑbô Hÿh“uÂÁÕ‹šà¾NÊðqõÖ…Ï÷W°J… VQlÚôyä‘¡2@Ð!èéK´ÂôÕ÷« ×rÎû/üêjÁ§%P¤´òTï± xh‹(¡AÐ0Hno"û|4 ¦éHj—Å%|"L²:h”ÓÖkB709hq|(pÔÿŠÖ“îž>"P0]ýwÞK7ò0×¹â›ÂÅI´à:0Þ(¡qé $bÛBÌ‚`L$\!‚jìS³˜£”nŒ˜íÔ 3'¶éë mæ™2´ŸÈˆ,W"ûX[;8ë¦+*J‡ ãB!€¥·.}»`€OÄ¢8ûŠeuë­·†ÊË÷Å]‡ä‘HNqÜ ‘JÌB|¯Db‘§ B¤ßƒM|/ñ™z’mørɘÑçåw¥îh'±|º1äׯĺ ûL{0^2B FƒiÑ20Tt9šÇ=B7´‹æ§# šª?¾ÚN †ù<®hC„¦Å}:L—ˆ&¶åƒÄ‰éÅÙ×Ķ¢Ï”©1iÙCd‹%1 íT~÷!¢Z_žoªczøåì ¹Ž@‰˜ß¹jQ-\‚s˜ýX,'t’ì»ï¾5…I‹éË»˜¶$1ÝRi˜Œ*µB%Š@:ó{ƒG¿K‰RØ8±޲bþqp†CDß9Mʼn²Lˆ`Y§N´(ÌMÜ!!”’I5V¦” °AÍïR‚IlºI0‘ˆ<û÷ÉôÄI.¢Ôl­æTÑ~4/1‚Hþc¢Âhjܶ¡pQ$âŽxÂ-â¨(~2ñ|Aˆt@)Ù&AÔÞ(ÞSÇx~0»‰NsR-JDô9Òʶ {¿”!²ŸìcÎIýõ×ú:[j(9ŸÏ¡"¹Bá(7‚@%»03åqÒŒè/Zž-$ŽÅ3¿ã;7êÿ¢9·Pè²?®=]Ç!‰ÄUø!ǰŸÊ!”(q¢ŽCØ æ@‡NØ¡àÐŽ'¡àƒ³/ÐàC £x#`LãùÁlN¶OL—9¨öô¦2i©>V!/±wÏ6Žß‰`«ˆ=¢Hp@ˆí-Ls ÁôFñFÀ˜:ÆóƒK´:áocG÷Ü1§=±í—씕ÏçÊ!,èüòè{Ô㉃£x#`LãùaË ó7ÙÏ5qfßš£›ž8éå)“U``NÇE#ál›E?r‰Z¾n»ÆcêÏßm&ÒÍ,â?ÏqðÃüæû¯£FªU8¾H䛨x”8Íç¤þ=¾ùæË1ÿJ´¬Ý—,úã¹ÂÜeÛŠ_Þà«.Oœãæ  D 7ÙÇ*hsμ_ýõBàÌ?PÁé>d|D9Ï—\l™A‰ZšçÄ4_—]ダ(‹Ï\¤í ZS™ýe>T‰2W&«°]Åÿ u´1|hYä#—h]v¿aHw¢Ì4õ†™ƒB·BœgÌ¢³hY¨¤"Eô0Jªr–^:0ŸºtÌSÚ^Âö±JZˆÊT¦iê˜n4xâÁ’– ¡€˜¦. pöš!WŒ©ã:3Ö/C €S8{͈+)}j~hÍÈ0â‰@ôô`b×cjö@ýO²&¶gCÀˆü9;‰?vHïÖ;|.[/ C € 1Ÿº€ÈÙk†@\0¦ŽëÌX¿ "`L]@àì5C ®SÇuf¬_†@øh¦6˜IZ8ªIEND®B`‚mysql++-3.2.5/doc/html/refman/graph_legend.html000755 000765 000024 00000014220 13515046516 022115 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Graph Legend
MySQL++  3.2.5
Graph Legend

This page explains how to interpret the graphs that are generated by doxygen.

Consider the following example:

/*! Invisible class because of truncation */
class Invisible { };
/*! Truncated class, inheritance relation is hidden */
class Truncated : public Invisible { };
/* Class not documented with doxygen comments */
class Undocumented { };
/*! Class that is inherited using public inheritance */
class PublicBase : public Truncated { };
/*! A template class */
template<class T> class Templ { };
/*! Class that is inherited using protected inheritance */
class ProtectedBase { };
/*! Class that is inherited using private inheritance */
class PrivateBase { };
/*! Class that is used by the Inherited class */
class Used { };
/*! Super class that inherits a number of other classes */
class Inherited : public PublicBase,
protected ProtectedBase,
private PrivateBase,
public Undocumented,
public Templ<int>
{
private:
Used *m_usedClass;
};

This will result in the following graph:

The boxes in the above graph have the following meaning:

  • A filled gray box represents the struct or class for which the graph is generated.
  • A box with a black border denotes a documented struct or class.
  • A box with a gray border denotes an undocumented struct or class.
  • A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries.

The arrows have the following meaning:

  • A dark blue arrow is used to visualize a public inheritance relation between two classes.
  • A dark green arrow is used for protected inheritance.
  • A dark red arrow is used for private inheritance.
  • A purple dashed arrow is used if a class is contained or used by another class. The arrow is labelled with the variable(s) through which the pointed class or struct is accessible.
  • A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labelled with the template parameters of the instance.
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1SQLBuffer-members.html000755 000765 000024 00000017245 13515046516 026045 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::SQLBuffer Member List

This is the complete list of members for mysqlpp::SQLBuffer, including all inherited members.

assign(const char *data, size_type length, mysql_type_info type=mysql_type_info::string_type, bool is_null=false)mysqlpp::SQLBuffer
assign(const std::string &s, mysql_type_info type=mysql_type_info::string_type, bool is_null=false)mysqlpp::SQLBuffer
data() constmysqlpp::SQLBufferinline
escape_q() constmysqlpp::SQLBufferinline
is_null() constmysqlpp::SQLBufferinline
is_string()mysqlpp::SQLBufferinline
length() constmysqlpp::SQLBufferinline
quote_q() constmysqlpp::SQLBuffer
set_null()mysqlpp::SQLBufferinline
size_type typedefmysqlpp::SQLBuffer
SQLBuffer(const char *data, size_type length, mysql_type_info type, bool is_null)mysqlpp::SQLBufferinline
SQLBuffer(const std::string &s, mysql_type_info type, bool is_null)mysqlpp::SQLBufferinline
type() constmysqlpp::SQLBufferinline
~SQLBuffer()mysqlpp::SQLBufferinline
mysql++-3.2.5/doc/html/refman/functions_e.html000755 000765 000024 00000021317 13515046516 022017 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Class Members
MySQL++  3.2.5
mysql++-3.2.5/doc/html/refman/inherit_graph_42.png000644 000765 000024 00000004713 13515046516 022451 0ustar00tangentstaff000000 000000 ‰PNG  IHDR«$öÊsRGB®Îé …IDATxíZu¨]Ÿ§Ï.ìFìÀÆE±[±QQLP°;00±;þ°ñ?óÙ-ØÝÝ]ç›ßÀY÷íî½w_~ï=ÎÀ½{bN͙󛙳¦˜È‘@"@²D0G3E#‘€QV£‰FFYÍV™‰e5:h$îœé©S§hîܹÎb“7ˆW ôìÙ“5jiL²>zôˆ¶n݉ÉdŒâS»wï¦Û·o»†t!«æØ²e‹Nš§‘@¼J gΜžã¹Õ“Ë $ eM›`¦àOFYýÉÉp% eM›`¦àO‰^Y7lØ@ô·Úp½{÷Ž~þü)=¬ZµŠƒÞ‚7½yó&5nܘ^¼xœ‘k¿~ýJŸ>} ÉçdøóçµlÙ’f͚嬢3gÎÈø›6m’'æâõ?~¼«m\$ze½qã8q".e$}çȑúÒûñã}ûö-ÎÆ„"}þü™þþýrŒÞ½{S·nÝBò9’'ONÉ’%£Ù³gƳӺuë(""‚Ê•+GEб~{÷î¥W¯^YùܹsÛ›Å}_]Ù‰¯¬ð–½(húû÷ïêÞ½{ê÷ïßêîÝ»êòåËÂÏPW®\QçÎSŒHRöàÁõæÍ›Hýñ½®bÔ²ÊΟ?¯Xùo–U†£‡:~ü¸zýúµúò勺ÿ¾Ô3FU¨PAÒ>|Pïß¿—ñŽ;¦X‘¥¬`êùóç’¿víš:yò¤”iV Å(¥0o=yóæ*ÞX™æ†y€°ô‹þ‘dýÈÏz…Ññ‡öÏž=™jùb^|÷¨°.È„9´hÑBÕ¯__=yòÄÑKä¬Þ{éŽ;d¯÷ïßoc¾:RmÚ´±Êt"eÊ”jâĉ:ëzzábòQÀÀ .\èâtieT••ßxÉ‚ëÔ©#O(zÍš5E€HãW½zuQ 5j¨Úµk[“xùò¥(ÁâŋեK—TTúôéUXX˜Ê—/Ÿ‚R>¬2gά „¿R¥J*]ºtRgWÖ.]º¨’%Kª,Y²(có›áÛµk—äkÕªeÕ‡„ ÿ¡C‡\yuæÌ™jèС s!~Š-*s_ƒ DÙƒ­WøÓ2èt«V­¬þ³gÏ®ØUPýû÷YaÌjÕªyövúôiÅè«Ê–-ëªÇƒ\ûôécÕEDDÈZ!/'…RÖ%J¨¾}ûª³gÏ:›F)HYcÍ È˜1#ñé¦yóæÑÑ£G ¦òñãÇ´yófb£«W¯R×®]éÈ‘#ÄJÊò%Ú¹s§˜¢:Д)S(þüÄè(íp1¼lÙ2úõëõèу=‰7`öƒùr¬à´hÑ"1Ó«W¯&üðFDSÞ¼y‰Ñ—nݺEŒŠ4jÔ(©âƒBÇ'’‡iFžSÌVŠ)ÔÒ¥K¥®^½zªyóæ’1b„J:µš6mšºxñ¢ 1Ì í·oß.|øcÇ> ²–.]ÚâC¢P¡B‚~Y5Z£cÁý+«Ú¸q£°:‘ch‚K€ùîÙ³'èz5¿×S£©YáNi‚åZ‚:uê¤8P’4¬BçÎEŽ|ð¬J© ô×JÏW» ðd…¬º5räHÅÀ Ò¤I£¤˜®ùŒsdÍ•+¯™ðd³ˆ±I—'ÏPN,¢ÊmÛ¶ J°Éô VÒ@æòåËSáÂ…‰7ð­ˆÍœ<ñ§ÑÏ*°%Xql9"6™’£¢`Á‚V= E« š ô£‰œ$yヮWóû}ÚÇ`pEè‡U,Ù°aÃÄ M:U‚¡`c°«"²ÆëuX=X‘èlö1Š/NÓ§Oë‚[>äÔ½{w;K´Ò±æ ²ôCphåÊ•Äþ)q€ ÍöíÛGcÇŽaqEŒx4zôhқćÕ=rVÚ™xúô©U„k .DRn{=+‘ꬆQLèéÕ,Ðz½xƒ•ù‘/\žÖ­[‹¢°Ml¥Ä¥ Ö/ê0G¸dpÙŠ+&®C¨6Áê>|(n”vΜ9Äþ6±5 ÖÄW? óÕ•?&6ûÄÁ7ŽÚµkG‰ôÝ%üÜR¥J *¥M›VPèŸþb´|ùò€ƒAÑ!tø£P~v%¨iÓ¦?îÑ|3ª¨Y³fR_(pçÎÏ<»/„C‚þ¢BÖ•>‚ñb^8€XSÆ Åÿ„5êÕ«­Y³F#>µƒ_ˆ€¤ðs 1AUÈ”o&Äzáþ›79,8˜[L)Þ”U#”³mÛ¶bÆðÍ¢&öq,Ì”)átNš4‰2dÈ@X8‚6Ž\©bÅŠ.ÓfG6¸ƒ ¢lÙ²ÑÚµkiƌķzùô ýÀdòÍMžfò"²âË'¼Y2d$ðI/`ðÑ·“\·N“7H(p!kB™˜™‡‘€SFY1ù+£¬ vkÌÄœ0ÊꔈÉ'X üÇ}†ânêŠIEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1TooOld-members.html000755 000765 000024 00000006617 13515046516 025455 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::TooOld< ConnInfoT > Member List

This is the complete list of members for mysqlpp::TooOld< ConnInfoT >, including all inherited members.

mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1BadFieldName__coll__graph.png000644 000765 000024 00000026114 13515046516 027357 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÄÅ ú]ÎsRGB®Îé,IDATxí]˜Åò/rÎ9',ˆ <ž"Y@”(Ÿ>Å>á%Hø“0ÂD$ ’A’dÉ9ç ý¯_ñz˜ÝÛÝ›»ÛÝÛ½íú¾Ý™éPÝ]ÝÕ]UÝ3•D1CC¡@RCCC0 ñ€æÎP€ C˜A`(`£€a1Ì­¡@rwœ>}šþúë/÷`óBÈ›7/=üðéѺuëèêÕ«ÁÐHzè!ÊŸ?¿ÏjDcºtéÒúÖ\Cˆ xmræÌI9räx9Á,`÷îÝŽŠóʉ ލ‰Ž?ðZ¦M›6Ñ1ÄÞ½{ÑÍèŽÈdE  CDJO›v:¢€aGd2‰"…†!"¥§M;Q   qçÎ:wîœ×ŠüþûïÔ A¯ñ¡áÞ®öíÛÓ´iÓBµº V¯óçÏÓ­[·<–«úþäÉ“ã*0  1{ölÊ–-ݾ}ÛcûΜ9CË—/÷Êîíºvíš×Žåvºn0ßN:Õc1wïÞ¥+W®Ð½{÷<Æ'T ßæÀE‹‘6 Þ¸qƒN:%í:pà€Õð›7oÒÆéìÙ³ÑÚŒ8Í<8„{ýúu+_ºt‰V®\Iv[)ÓÉ_(1¯Ø*}úôÒÔô`R`rœ4i’܃!ÐÖÖ­[« 6XL`gˆúõë+^Idâƒé ê­·ÞÚoÚ´IÆCÆ WH2/ý2·jÕJ-X°@`8¼\J:=àn_!æ † "À@1ñÃlR¶lYIŽÁ†ÙBbºvíª²fÍ*÷úL¶råÊ ªñ­_¿^:÷ã?–¤`}¤C‡®ZµÊ¥]ˆÓ ¡g:Ï, W:t&Vˆ¢E‹ê(šçüùó­°˜nB‰!Àô%J”P|ÌG}ÿý÷ŠÅea|L0w†È!ƒb}Kâ4­ì >ЀUà•W^‘Ç‚ ªž={ê(YqA·@0D¼uXÄ3°ÈÃ,ÆÈ–?s6××xö™’¡Á"“uïëFë mÛ¶Yò:˜™$‹C„8È”,¾Q¡B…$r,dU;¼øâ‹r08!Ã~Ì`Äâ±xe%/R¤ˆu¯²h½ÈŠ°Ý <@¥J•¬Ð£^xÁª”s PôšÙt¸ýš;wnyܲe‹Ì+‹Ü³(%W;ÃY‰ÂôJ2‹{4oÞ<‚ÒÌ:–Ðvܸqqj‹[ó¡y…µâ \ <× ¥á¨øóÏ?/–T32/•„Yƒ€`%A<./ûb‘r·Ý³þA,fI äÎ;¬5’Ù¿OŸ>„ãésæÌ!VÞÄrÄë(uèÐAfw–ÿ‰•/êØ±#±ÂMÍš5“++ÖbýêÛ·/±ÈF¬ØR“&M¬:À’„z!=:VV>ØËÁì£F"^º©\¹r.íBù0sy yPX {ì1*V¬˜N–h®è_ìÁ`"°âcÕÀJ À=VµøV}ô~ ëÛo¿t¾óZ‚Ùÿnb«TCá„Ë¥(XU`]:t¨`ãÁkYx`‹Ž¡­LP¾x6V+5ø²2;V,E(?žÝEÁ=z´<ÿú믂– ^n3‰<ôÑG¢è!äwȺȲP”5>Ô}àÀ‡?è°‚AYGX‡`©¸· 2®¶2AgàÕPò ,&(Ði`¹Ò+pëºëp_×PÒ!POдƒ?ž¼Ä˜€¸–-[Jû C©~ôÑG,àI‡8r䈎Ë%Olò z/ú} ÅtÓýaeòq4+“®,?°ÐÀ¤i(¼,?[A` (â°&Ä`a!cc•A° iž{™,n‰¢Ì{.Q`(à´h›;¸·Ë£”p(ïîô°§‹Ë}¨1Ú€þ…… V'w€á@[Ýãœ>¯Y³F±*VLÞoR,v C oœ‚S†ðú>s`¬ dÉ’ÓCtÂOÎÚC|Š °‰üñXgeÓ`4åZ#a áç 2eÊDø¹ƒ{»ìñP–y6´%ê{œF`«Ç6BLŽ/À Ãfrúä“OŠ7¯JTµjUýß²üÆñ­H¨åÁÑÑžÐ`iSà˜ ú:] À0„ªâè…РVcÞJeâme J-M!†A¢€aˆ Úˆh†øüó%|ªòfxôT˜ÖòâÁ›´wPo†W‚O™†zÝã]¿?ÿÜN&,¡=ªQöìÞÄ» ?#À.{ á§Ç/¾pmWr:þ}ZÊÝú:Yêù˜ø–áïüI`ǵ#Åñ¼w 0þêÞ}e̘†ÆŽmÉGP;ÐüESœó)9€z¼gð÷¬Ë´í‹ ¼ƒMTÿǼ”:K²@T7V8A3ÐÎDc_‰[ܾ}§ù¨Ç@9З¾|_ÖqæêJ¿~M¹Ê¤£½ ²•TÄ((Ô¹+†ŸB ú™‚‰2e2þLLNþïzÿýÆÔºu5aŒíÛÑÿýß<þˆÙ£”5kø)ˆf­OÑÞŒk8¶8¥Ë‚Š<…Ö~v”vòÑpÛÓ´ŠèÃ}š¸ÎŸ¿ßÕ-Æ/®?8 yíÚ-ª^} Õ­[š~ð3{¾H½¿zâ6ýôü_T±cªÐÑõCg¶_c‘*9eÈwÿ»\áD#Ã1ôVTÔzêÒåGf˜®Ö¹§²DDô¢îûéÜžëôüÔR>­MáF £CÄÐcÍ›WæOʤ޽£bH9ÑGW_¦ý‹ÏÓÝ $*f@†p0Žû÷ŽœàC:H¸“@‘^9ä0©•™òWËèkÂA—–+W€ZµªBýûÿÌ^â÷RÅ…|’â²Rµ®B¾žq© a‡TëÕëù A¤¿@„Ýé s‹UÉ!éÂ*™a‡Ý•-[zêÚµ>Í{ :Ä‡Ú $J +S,º‡üjÕ"{&tŒEN“4\(`VˆXôùõë÷;ÙJË–íŽEN“4\(`Vˆ8ôTÇŽØ‘Ë)vEÛÝ:ò4&KRÀ¬q蔾}Ÿ=b„åqÈm²„2 CÄ¡w ÌF¯¿þž}>;t¿ á“eqÏý´iÂÉXU¾Ÿ|òIËÙ}l2ã#ippŸP`"Ž”ïܹ6=/;ñH¼oÑaGzßÂóÛ°Ç&‚;ö²kêΞ=[ür°§ XçõGÃq¤bš4)ù8Gúï×Ò–-‡ãˆ%t³yÚ‘†sJ8.јögÌìîn‹átqùò弇㺒޻w6nÜÈ´Ûby‰éüø¶,Òœúè2éRš¨˜(°hÑ"Ö˾òš ¹¿P†ðJî¸GàŒÓ—_.e¹ú=Ê‘#ñ½wwÊ„~N³¦ Þ|³eΜ†7›~ vÿ¢¼tØøé¶SÔ0„~ºO:[›ž¥©S×ñnî!?aõ?ìHG½¸#¬«ûŸ ® C¸ÒÃoO•§jÕŠñnít¿áô7"½#]´Žù˜³¦­aM‰\ñ='œ„2em°ÇebþØX|(c">Ô‹!/¾*Þ®]u8ðù„M ɃíéhwÐ ñ‚ C¸ƒþóŸúâ’køðù.É9zýÕîÄú±1甈žÒ0Dtšø5$sæ´Ô½{C?~˜à´_qÇ™·£ÝqÁ•ó†B¯¶iSM;öé3#¥ù.âðÊ‹”>Wô£Ý¾sEN¬Ù˜ R_¯Y³š5ûŒ¾ûîªS§tJõ\ÌÝ*,Ý]ynC Cø—ž>±uêô=mÞ|˜ßè)^‹|&6‘ B#2‘ì|Є«]âó9KƒXª)*60 jÅ3mÞ¼™éí·kÓ¨Q éäÉKñÄf²‚†!AU8ñ3|I¼ÿÙ>R™¨„¢€aˆ SŽà?üðYùJÇúõ‚\º).& †ˆ‰BˆoР,¿3QBÎ9ñK`(á>JìHï˜z†Ô€‘è†H .íׯÁöäÉkVìH¯u„®I˜ÏB¬aDl"€Äõ…ºxñ\ôòË5hР9ü±®ØÕnÄ]=éùcc1å‹ôxà 8ࢠ0lØ<¿×bÕ0Ïó{A‰ ¡aˆìÐŒSSÏžÏÐ7ß¬à¯ØÅî“ó¾ªmŽvû¢Žï8³Sí›>…RÝ Á~å4-Iüõx—E:ªÅÊR,5ÕZ4Þø" Y!¸ÇñyH¼H´lÙ.þúÝÖxׯíŽ CÄ~~É]¹rajÞ¼2}ôÑ,þFlül¤ÉÓ$¥ÇÞÈ›hýHû…à>‘Éq‚…£5j ¤·Þzšºt©Ì¢MY6 „ìçðù3ˆ„áFÔª•›¿Ô±‚?¾u!’𝶦H‘‚š6m/öÌ!»BüôÓOÔ²eK{]ý}’$`UÂ|ä7L©›1cFºxñ¢ßj²+„na 6è2Ì5<)0nÜ8êÚµ«_+o”j¿’Ó w †÷4õ÷+ Cø•œY¸SÀ0D¸÷ ©¿_)`¯ä4ÈÂ!oe Oœ8‘Ö¬YC£Gh•_xáñ®ã©1cưŸ»¢ž¢vþüyJ—.xó?~<Yd3}úé§-3PÈÍ á'ÊîÚµK¼qú W4 .¤3gΈhøˆ¶ÿ°I•À>áxCqª wXpº®hVˆsçΉälٲц þÇÐQ×®]c Šë¥"EŠH?:tˆÒ§OÏît³Zý†q„eÎ|ÿÓð7näsE7©\¹r2ûé„ð}¶eËñ³ Ÿhð†²ìpéÒ%Ù\K›6-­]»–½å°|©ÁÛ&fTxá„§M8-‡Ctí+ û.7nÜ T©R‰[[÷g”Ó¬Y3zï½÷ìEÊ=ê{àÀiƒnð_½z•à3nrQ·uëÖÉó#<â‚qÛ¶m£|ùò¹´ÉW{@KÔñĉ²rµoßÞeCžFô-[¶¬8rG¡¨ëñãÇ©`Á‚´ÿ~É_¾|yé—Jû’0eÊñDé´rï¾û®xÆ,\¸°äãÎWo¼ñ†åђ骆 "èžxâ õä“OZ¨Ù±ŸJ–,™b‘Cñr¯x€+fÅ'QÏÀjÇŽû^EÙY¹Ê’%‹xÏDúÊ•++û^V+V”ûÖ­[«R¥J)f8ñ¶‰²µΙ3gJýjÖ¬iÅ!íáÇ%/ûU“ø¥K—z|Δ)“0`€Ä¹ÿñÀWìÄPÊf¦R<¨âÅ‹«Ç\ݹsG±oiņ”‹¶+VLiOŸ,ò)f`Å«Œ”Ïîw3“á«=Úc(è=xð`…~]‰Ótøí·ß”fÔ‡WL…Ƀ{РA’ÖÉŸaTBG Ã5`€°Ø¡x¹— ÀÀÇLøùçŸËsíÚµUãÆå¾G*uêÔjàÀjÓ¦MÂ`V˜ePDEEI:üõéÓÇë Q¦L+nXÙ•ªB¯:ˆC™X‰œ‚E,õòË/»ü>ùä+;‹SÂð˜™Áì=±i`gëjÁ‚²rbÀcaqS~˜¹Áx0„·ö ÞCÀ—µ^‘€U̪ëÃàïGð?ü_¿òÊ+ÖsL7`ˆD£Cp‡Š\Œ+>Ž¡CdÈpß (^ÄaKôŒ дiÓˆWö)½„¿~1Y⸳Äòˆ#DNçN¥~øÁò—\µjUI‡?f@ëÞýÆÝÚ=ÂîsYë3ȇzBq Í›7÷¨Cèü<¨ØIË@‘Ç_zé% †¬Ð~¡qÏ¢#.Ä+—\Û¶m+Wý…]CLíÑéôº¯°¢é0\sçÎ-F†¶k€NÆ+³~Lk¢²2aÐ;Qø£ÃK‰g8Mš4‘¬°â°œËŸš<)Ê9XÝqP5°( o£];f…iÅÞÎ@öø+Vød. ‘ƒ0ý믿.Ö' J}ø J<`ûö혈y•”‰J=âX—‘¯dÔ¯_?+­½¾žÚc%üß ¯NbL€B”{Xãìt@ºP‚ЪM)Ã"’X>øà‚mŸÅ$)vôÎ;‹UV¬&°U¨PA:ƒ–ØÚYñZcXº°êœ={V Ö¥gžyÆJÏâ–à¹Ê5j$q0(Ÿ•]ÏDš9sæDûa•Ág1ˆ¾ýö[Y%àø|îܹôØc‰õˆE+ø(“u±ú lVºÙsjY©€uE> ¾Ús/&´ÑÀ;cÆ þJa”ÄaÕ€Þ! 1Éi [¥šgBU½zu«ºC‡U<YÏPè`²ä[îµråJ+xÙ²e¢,à E“Í® Š*`Þ¼y"#äsŸ\tÈöÈܰà@^FZXX´²¨uäEäoè/lΕ¼1Y™Øœ*ù×ýÇL –¢:.@6¹Š²Œ¶AYF>%]ä{ siœuêÔQ—/_<¾ÚƒüÞŠäCÑUªT‘|0nÀ@œ ðó„#qZ‡`s¬<ã¯^½z.u²"¼ÜB‡H4V&/4óüïÿÛRí oß¾­ pjëˆ=Ž7Ä4 eL¦­Lö4@PJ‡EÅ6w+Z3â`òÔ–.+A€o`~åý±:¹ ª{»}µGãà}1@èg}e±M¬XPžaö'‚!•RÍ3‘#€8²xñböû6žFŽ-r­pºGB´ÂflFywEÕ[:†ó*)›Šžpâí3Þ³ð%a¾Ú£u÷ÌÐëxµtÙçˆdìš²ˆ@½zõb·¹íâÜ9P´Y<ˆ––(žž: ,U±1xÂÌ0_í f=‚QVÈ¿SÍKl0è`ÊC èWHýùNuÄZ™Â°ÿM•ƒ@ÃA ²¿Š¸~ÝÕ¬é/¼Ï „¼¡?¨räÞÍŸ˜•Þ\|š5eäÁÖr¶\Ùžüsò Á‡òüÓÒD€%gÎö4eÊ6>f½!´Æ?M€eÌŸ²Jµ?™pmÝz„êÕF¥Jåe“ñC“B² F‡Én‰^©36ò >IhÇŽc|¬ÃùAÀè˜Lˆ/ †ðEŠ‹ŠZO¼é˧x“ÑÌ™C¨f‰«*†! ?W¯þ›Ý]–šÞ¹s—ß_^µÏ*†ƒ~ƒ¸”"E2«¦‡å÷º[ÏæÆ0 á?ZÓ;÷DDº}ûÁ‹3`0‰ÿSÀ0„ÿiêWŒK—î¤Ë—]Ýö‚9¢¢6XoúµÀGf"ÄÀôé\Ä%]Ý3g.ÓêÕÞߨÓéÌ5v0 ;z5õõë·Å£]\Ò¸/6™ :M] Cø‹’À³`Á6~õÒ³F0ɬYò«Ÿ÷Prä¢4 Â}?mÚzÙŒóVEèK–ìðmÂã@Ãq Z0²\¼x~ÿ}'–Åû ± :†ÿQÀ0„ÿhéWL¿ü²9FqbÓ¼y[ùãÂæX¸¿ˆò§]ýÕÐpÃsùòujÒ¤¢Kµa‚-P +¿£œÓ%g›Ê”ÉçfâFsÚ5ntK\Õª  Ö­«Šs÷©@jD¦èdÓDç0 áœV&ePÀ0Dt²i¢s †pN+“2(`":Ù4Ñ9 C8§•I0 lšèœ†!œÓʤŒ †ˆ€N6MtNÃÎieRF CD@'›&:§€aç´2)#€†!" “MSÀ0„sZ™”@ÃÐɦ‰Î)`Â9­LÊ €aˆèdÓDç0 áœV&ePÀ0Dt²i¢s †pN+“2(`":Ù4Ñ9 C8§•I0 lšèœ†!œÓʤŒ †ˆ€N6MtNÃÎieRF CD@'›&:§€aç´2)#€†!" “MSÀ0„sZ™”@ÃÐɦ‰Î)`Â9­LÊ €aˆèdÓDç0 áœV&eP  .µŽ;Fï¼óN18Mܼ9åÌyò乜y)¥J•¢>úÈ¥•eˆ]»vQÉ’%©råÊ”.]:—‚̓¡@BR`Ïž=T¤HZ±b…K5‚â…´S§NT´hQ—‚̓¡@BRàÓO?¥S§NE«‚Ñ!¢‘ÄD2 CDrï›¶G£€aˆh$1‘LÑÜû¦íÑ(¥:Z©!pâÄ >|8uïÞ²gÏZ^¹r…>þøcÜéÓ§§Gy„š5kFÉ’%s‰sò°iÓ&š-aèxÀîÝ»éöíÛ‚i5ïßÿM  T©RQîܹu´\¯^½J4X;vì Ì™3Kzèüùó²·\ûöí“22eʤ£¥®I“&•ºêž"E +¾N:ôÏþÓz~ûí·iÙ²e.™À½œüùóG[±€ïÀ”+W. ‡ý¦C‡MÝwïÞ•Í({]ÑÖýû÷Kît°ãŒ©Lô V÷Í.;ô%V1¬„Ø—.]’~F¢ßЮ,Y²Ð7{X±óäÉcGENëí’)†‡bêÍ7ß”åK2 lÙ²„ÙtÆ ò ÑbÔ¨QÔ¯_?l#GŽ”p êV­Zò¼ÿþû„Y 1‡ F $Ìz½{÷b&I’„zè!:tèÍ;Wðè?àEÇ`àc`bùoРˆSHÓ¢E Ùtܾ};ăš5k ŠæÍ›‹ú7R·nÝhĈR]†¾b¢® ÆGS¦L‘¶_»vMD* 6 ´íÀ  N ÿøã2 ,\¸Phƒö¡ØDýðÃIO*¯“2±ß4xð`ZµjU«VMgµ®[¶l¡>ø@è‰@ô+ú“ܤI“héÒ¥Ò>Lv i“&Mè÷ß— é_{í5écÜ;­7ÒÆBRd®öÔ©S¥ã `–ÿé§Ÿd cbfÄ cÀ–/_.D|ê©§èûï¿—UfΜ9‚²òÏ?ÿ,ƒzРAT¼xqH§ó{"¥K—.4þ|a0Íüa%…8ñÃ?Ð/¿üBUªT‘æ€!0¸˜uÁ¬öÙƒLÔ®];:räµoß^Òc¥Þ·Þz‹fÏž-íÙ¹s§´ ¾øâ ™ý¿ùæP˜ ÜzÄ€¬ßçŸîž„Ž=*zG£FhÖ¬YôÝwßÉÊ9qâÄhi”Y¿~}zôÑG¥NšvD_ý5•)S†¦OŸNè›Â… #è4h÷ /¼@3fÌÝuzöÙg…¾O>ù¤\‘66õÖ¸^C’!Ú´i#³zÕªU¥è0ÈÃúÊ/„ÙŒÀì‚A Q _¾|"j`Ä`|þúë¯ËÒ‹¼M›6•%é0ë{tE”ƒtX²1SjÀ †A± uƲÑ‘¥Frr0»ÙL Qe`ÕK›6­ td€x†Áùøã Ó¯Y³Fêù"%˜+ò–+WÎEô’ù³=Äýà à ÂQO 2¬¦¨ ä~;8-yÞ}÷]™d¾ýö[; ¹ÇªÖ¹sga~” Í®s@LÂD‚ö—/_^DL´$&­Ï8­w´ 8)‘I×W[?´Å €e™K*dqˆX…œA°Ê@ô3!N¯èt ÞdpÄçÍ›W'“+:Jã@€]¦EÀ/^þÜuˆ¿þúKV¬ˆP¶G-âô(M ¬ŠœÓàIdrr\¢ +‰@/;8-yÐWXéÆQÑW‡.U¨P!aZ{9ºß†ö‚¦˜(ÜÁi½Ýó9yI†Ð?¦`PA—€È¥¹zõê’eýúõÔ¶m[‘Û¡ANÅrýꫯJ<¬Ú¬ªgOeÙg/­ÜÁ ©Á¿mÛ6 öÅ`:Ÿ§«îxÌÆ1K£ÞX0Ûc•heмnô‚¸ t¬Fº|àÂÌm‡Ø–‰Y}ñâÅ"Bj<˜(À °ZcÀƒ±bkpÚïNë­ñÆæ’"“Ó<ñÄ"®L˜0Af#(i€_ýU¬I!VÀr±3):22:J},±«KXÀ˜Pqt(ô`Ñ¢ëÌÀµk×–U¢ºV?06¸Ð†¾}ûÊŠ‡:/6Ǻ úªËðtÅ£t¬¨¨(I‚ðå—_–{àÀ«¯“2íe@,ÅF#Ú `(Ì0€Á1y þ¿ÿý¯l$" Úª÷îÏ:.¦zëtq¹å}Ì®:þÎÄ,‰YΘù°-[6Yi`OÇ̳+½»ÙË94lêØÁž…û>v{¡Ç@ÌÑÝ^‡øÞ£Ž`:-²@¼€|q+ê™ÝÝDÛra¾. Z»^äŽÇeB·ƒñô`eÂ$`ß'r/×Û³Óz{Ê>Ç^W‚¼á©Bñ ƒø‘âÌ“î€AŸ'ÀÊÛ·_ÌŒÁßé­zÐèx»• " ”o¬8vCƒ7œþ(Ì­åhc„·2}…;­·/îqa)2¡C`§nݺ5Õ­[×½]ŽŸÑ!v‹Î“¨¯#@˜½ $. „½È”¸ºÃ´&Xð&2=Ðb‚USŽ¡@SÀ0DwŽ©Zð)`"ø47%†0‚¢Tã`, B…ú34îõ (CdÈA6cÜ 5φ Ml âCeîP+“{aæÙP Ô)`tˆPï!S¿ RÀ0DPÉm u †õ2õ * C•ܦ°P§ÀÿØ¢À·7IEND®B`‚mysql++-3.2.5/doc/html/refman/structmysqlpp_1_1NullIsBlank.html000755 000765 000024 00000010103 13515046516 025203 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::NullIsBlank Struct Reference
MySQL++  3.2.5
mysqlpp::NullIsBlank Struct Reference

Class for objects that define SQL null as a blank C string. More...

#include <null.h>

Detailed Description

Class for objects that define SQL null as a blank C string.

Returns "" when you ask what null is, and is empty when you insert it into a C++ stream.

Used for the behavior parameter for template Null


The documentation for this struct was generated from the following file:
mysql++-3.2.5/doc/html/refman/namespacemysqlpp_1_1internal.html000755 000765 000024 00000011746 13515046516 025267 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::internal Namespace Reference
MySQL++  3.2.5
mysqlpp::internal Namespace Reference

Namespace for holding things used only within MySQL++. More...

Functions

void str_to_lwr (std::string &s)
 Lowercase a C++ string in place.
 
void str_to_lwr (std::string &ls, const char *mcs)
 Copy a C string into a C++ string, lowercasing it along the way.
 

Detailed Description

Namespace for holding things used only within MySQL++.

mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1CommandLineBase.html000755 000765 000024 00000046317 13515046516 025607 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::CommandLineBase Class Reference
MySQL++  3.2.5
mysqlpp::CommandLineBase Class Referenceabstract

Parses command line arguments and holds the results. More...

#include <cmdline.h>

Inheritance diagram for mysqlpp::CommandLineBase:

Public Types

typedef std::vector< std::string > ArgumentList
 Type for a list of arguments. More...
 
typedef ArgumentList::const_iterator ArgumentListIt
 Iterator into ArgumentList.
 

Public Member Functions

const ArgumentListextra_args () const
 Get reference to list of command line arguments past the last flag and its possible argument. More...
 
 operator void * () const
 Return truthy value if command line was parsed successfully.
 

Protected Member Functions

 CommandLineBase (int argc, char *const argv[], const char *opts)
 Hidden ctor to prevent instantiation. More...
 
virtual ~CommandLineBase ()
 Hidden dtor to prevent instantiation.
 
void finish_parse ()
 If object is still marked as "successful", save non-option arguments to extra_args_ list. Subclass ctor should call this after the parse_next() loop gets EOF.
 
const char * option_argument () const
 Accessor for getopt()'s optarg global.
 
int option_index () const
 Accessor for getopt()'s optind global.
 
void parse_error (const char *message=0)
 Called by a subclass when encountering a command line parsing error. More...
 
int parse_next () const
 Wrapper for getopt()
 
virtual void print_usage () const =0
 Show a message explaining the program's proper usage.
 
const char * program_name () const
 Get the file name of the program's executable.
 
bool successful () const
 Returns true if nothing has gone wrong since calling the ctor.
 

Detailed Description

Parses command line arguments and holds the results.

This class just contains common functionality and data structures; instantiable subclasses follow.

Member Typedef Documentation

◆ ArgumentList

typedef std::vector<std::string> mysqlpp::CommandLineBase::ArgumentList

Type for a list of arguments.

Public types

Constructor & Destructor Documentation

◆ CommandLineBase()

mysqlpp::CommandLineBase::CommandLineBase ( int  argc,
char *const  argv[],
const char *  opts 
)
inlineprotected

Hidden ctor to prevent instantiation.

Subclass interface

Member Function Documentation

◆ extra_args()

const ArgumentList& mysqlpp::CommandLineBase::extra_args ( ) const
inline

Get reference to list of command line arguments past the last flag and its possible argument.

Public interface

◆ parse_error()

void mysqlpp::CommandLineBase::parse_error ( const char *  message = 0)
protected

Called by a subclass when encountering a command line parsing error.

Prints the passed message, calls subclass's print_usage(), and marks the object as no longer successful.

References print_usage().

Referenced by mysqlpp::examples::CommandLine::CommandLine(), and mysqlpp::ssqlsxlat::CommandLine::CommandLine().


The documentation for this class was generated from the following files:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1GuessConnectionOption__coll__graph.png000644 000765 000024 00000015021 13515046516 031416 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÃ{Éæ4²sRGB®ÎéËIDATxí ¸MUÇßk–J”Ê ê1”$=•&Q*¡Y4QѨò%C=h”¨h4d¨ˆJ†J†Ì$”4RÉ<ïoýÞ¾u¾}½ÏÜsïq÷zŸçž½÷Zk¯á¿Ö;®uÎMó|¸¦ìرC¶mÛæËð-§VS‘ *ä™}†Lwí×_õŒÔô6nÜè}ýõ×žÙØÑw´ö¦Nêi¨Ïëׯ÷~ùå—tõþùçŸÞo¿ýKãÏ>ûÌãê§={öxóçÏ÷–,Y¢É?ýô“g“7oÞÿüs1ÚG*Uª”О8úè£ÅHg1ÚBëzä‘Gbåéç?þ¨ù7V›ßHhÍÇì¹çž{be±ç/¸à1]0ið‚È,hM¦ï}}ñÅÕzýõ×…¿?üP±0L.C† ‘|PËÚÆ vFò‹a 8p tïÞ]&Mšd‹ˆ‘êb´™âL,ޱòMb^λÜìh†ûï¿?ÖáSO=ÕkÒ¤Iì¢eË–úl ×¨Q#½õÕW=$.fŬY³T“†ñ>ýôSoË–-1“¥B… é–Œ}®’2L3XSŠò=ôwÌ1Çè«h†'Ÿ|ÒV£&Y?jNÅn¬)f6 ×óÌÂÕþÌ™3G5C5Ò•3Ì«Z€D°}ûí·5íi5ÚÕjû2Ú­c5÷ß~k³<ã¿xmÚ´‰=gtã4C.JŠ#<2ÖýN:館3ÚÀL–>3B%ZGòòË/—’%K Òõ¥—^’… Ša1f€<ýôÓúÞªU«¤N:±ú sÄîƒnŽ?þøX2+mYòçÑ´nÝ:›x=á„4MDÆÇÑäO„}<à¯ùÊLbÁg†š5k&ÅŠ“×^{MM¤ë¯¿^_3šAjÖ¬)De“[]zôè!ƹ–Ã?\ˆæX²æˆ}Ž¿ò¾%LµŠ+ÚÇt!Xãìkº??VÐwsðÁ«‰d|˜XXÔf š8q¢ßGŒ#­Éþö‰rÍ;7]ì»öjüeþ Ø$1šQŒóî=ÊåWÊ¿#K0c%J”ãJ—.]4VÏ´xñbiÞ¼¹°@Ë—/¯šûšãÆhŠ7ÞxCË`O?þøã Z­Ÿ̓ŸqÙe—ÅÊ£}Œã©Lׯ_?AËœrÊ)šÿþûïKçÎce‰³Ë{ö쩾ƒqrU³±àa4ü îSO={ÏDœäÝwßUÅ8ÁÊ@—^z©æ£5af»×`_¢£F¾KB^Ÿ>}4ëꫯ¶Eòõ5e¿Ü“UÔãµÏñiþ:q˜9"ΕÅ]sÍ5ºàëׯ¯šÃD ÇÓ W¯^ê [\Ëšˆ^ùj'ÔDdf‚ÙŒŸ+_¦L©^½ºš&ê#0€­gÞD¤„…¡½p®¯¼òJ•üÆ—‘›nºI`KU«V•iÓ¦Éi§f“ÔÁoß¾½:ÂôsÏDÛ4ßøRʬÆÑv­´‡™ÐÒÀM„éE@!ž2Â8¾|Ê?gäôäU~Vè¬öÓ,u8ýŽ®­ƒ´™3gj¨Õ¦q5vµg¢@'>o&×Ãö“ ­²_@Yöü„m$¶:ìAmûË&ºg¿€X|ý¼Ch•(}0fOº}['¡e»aÓ¸2Föp”yåÏÚïûTw ófÈŠÔÁÜ!ÔˆÄFªÆSPe„Ö1Å,ɈlÙ r8ìüe—0­2râÑJø@A„DŒÑ:ëAùù9-’>v: ž}ˆìû˜œò&Ù‹™=þ<îÉ£L2©råÊR¥J•d6‘/ëNéï@ŠƒbÓïŠ+®Ð;÷è(®7æHšI©6;ëÖmLµ.E²?)í@Ϙ1#öÌϳӿÿ¹ýöjùyˆ:6¡Jé1¦´Ï…ßM*\¸œÙÝniâøÃÍFת”^,9Õ9û9Ÿ! hš¹ž 2Áí|}íÒe ¢Ò±cß|=Nÿ<¦"#0 Îgȃ&£èˆÿš£FÍ1;Òîç4“qfëtÌY¤’PnÆŒæ$é¿ÎóÆÛdêÔeIhÅU™Y3d©$”=zŽ Ôš *`¾\”Úf H©*3äÑt`aíÚõï÷vïÞ+Ÿ|²ÐlHíÊ£¹f3äј2e©ùúhú_¥Ø±c§|öÙâ<ê‘kÖ1C­>˜3‘l ,`¾KàL%‹Gn_3ä6â¦=L¡qãÄL$ÛL¥/¾Xb4Æv›ä®¹ˆ€c†\Û6…)´sg°o@<Fq”û8fÈ}Ì5j„IDüfÁðá3ƒ²\Z’ž‘$7åê1&MZb~×)xƒÍ|ÑL¦O_a~McS”aÊ“±;fÈeØÇޝÇ.5[ @šŒ37Q——3$ÔDUE⟘)R(ô¿ÁmÀ%B19y)}„;9CλZYäçž[E4¨ëĆ [ÍO=N“뮫c~·èßß<²™lÈÙj›æ®ÉC ep'oÈ©UóÊ•ëÍÏË÷0›mÈÉ'•Z‹Xoœ™± wà GÀ1C86.'b8fˆØ„»á†#à˜!—13DlÂÝpÃp̎ˉŽ"6án¸á8fÇÆåD Ç ›p7Üp3„cãr"†€c†ˆM¸n8ޱq9CÀ1CÄ&Ü 7Ç áØ¸œˆ!à˜!b€c†pl\NÄp̱ wà GÀ1C86.'b8fˆØ„»á†#à˜!—13DlÂÝpÃp̎ˉŽ"6án¸á8fÇÆåD Ç ›p7Üp3„cãr"†€c†ˆM¸n8ޱq9CÀ1CÄ&Ü 7Ç áØ¸œˆ!à˜!b€c†pl\NÄp̱ wÃM€€ù×Jéhذa柯ŠûË% ÒÒ yEŠ”÷¸:ÜsoݽþúëéÖ=¡ÿÓí?ÿùOrYž={v>”6lø‚Ktè<ûì³Cp>C ,.1Š8fˆâ¬»1"à˜!—E3DqÖݘu K§`â§Ÿ~*K–,‘{î¹'é½[³f 8PÛÛ¾}»T¯^]êÖ­+—^ziÒÛNÔÀæÍ›µ_ ,µk×J¹rå¤Q£Fríµ×J‘"E½šgyà·wï^9è ƒä×_•^xA~øa)]ºtžõé€g€\´hQÒ\¶l™tìØQ=ôP¹ì²Ë¤`Á‚2gÎéÝ»·üòË/rÇw$½A üõ×_Ò¾}{ù矤yóæR¶lY™={¶ 2D~øáéÚµkÐkyžÖ«W/Ù±c‡tïÞ]™bÛ¶mbBýyÚ¯ý6“vîÜ)HÌ={öÈï¿ÿ.+V¬ÐÁõ?ýô“,]ºTvïÞ­iH­7¦ðü!H6K,ºÅ‹ àø‰g=“ŽT¡ÍxÚ²e‹ÖE{ .T‰cËìÚµKX8‹÷»ï¾Ò,1Lý†üÏÜ÷íÛW¥Ök¯½&-[¶T©ûÌ3Ïȹçž+#GŽÔ~ñãñ÷±‘æ§uëÖiÿèo<ýù矺˜¹ÆS6ƒÖúû÷ï/7Ýt“j©.]ºH«V­dêÔ©Š¿­‡~LŸ>]–/_žná‘ÎØ7mÚ$óçÏO×_;¿à²jÕ*í·|ÔÍÜÿøãBÿ¸÷ϬyóæÅÖCæqýúõrÌ1Ç(ÓvØa±W³ÓרËÙ¼ÙoÍ€ô¹ë®»ä´ÓNÓÓš5kªzFBA˜ýúõ“nݺI¡B…ta‘¾aÃiÑ¢…J6ÞyôÑGc‹ýð×çž{N*T¨ ôØc ‹'--MN<ñD]П|ò ÕĈË„üý÷ߺ aŠ‹/¾X|ðA™1c†<þøãrÊ)§(#GÝHv¤)Rþþûï—>}úèXüÏ%K–TÓˆþ•(Q"Ö7÷ÝwŸ°'cAÛ¶m•Y®¾új-÷á‡ÊرcåwÞQæ£=L;4 Lvë­·jyf킌JÝh!Z6Ÿþ¹\xá…º ü»îºë䤓N’2eÊh2LÃßÁ¬‹¾FÒ£GÕtÌX`f1úÒ©S'mÛÎïÙgŸ-ß|óæÇ‹/¾¨m¢™™L„<¤=s΢'!V¸paZ æ˜6mšö ƽûî»u ½÷Þ{rÄGh?³ÓWÿø³s¿ßšÁ6Ê">|¸ ©Ìdš£ RxåÊ•rÁ(à,VèË/¿ÔÅ}Þyç©ZgQ²p¨Û‘…Ä¢}úé§ub õoß·mû¯L þÄ ” `˜¯¿þ:V&ûøãåí·ßV-5`ÀÍc`L®ÿ™:¡Ê•+ë•$è·ß~«R–†͈F%,^!ýÃìBÓ|ÿý÷2eÊ™5k–0Fƽς€as6hº­[·Ê 'œ°OÓE‹0ãe>Þ|óMŃº;R~РA±÷XôØíÌã£>ŠåqÃøÆŒ£‚Œ¹Eë@Ì mÑ×qãÆIµjÕTèÑoÒ~þùg½ò.ýyõÕWu~ðix~ùå—µû‘}µueõšcÌкuk‡B¢1ö³ Šô€  É“'KíÚµUš}ôÑ*1X hŒ—^zIn¿ýv]l¼Û´iS)_¾¼PiFÇwœœþùÚåŽ<òH]¸¶ü7Þ¨“gëA}C<·k×.Æ þçxÓŽòìb¢iø{àt,¤'¢‰'*C±@‘öh¸bÅŠÉÌ™3娣ŽÒW_yå7Üpƒj4!}AšÆcÃ‚Ë }õÕWªÑÐ õÕ¯__µ}ÿ’K.‘*Uª¨&ÁôƒYü„ƒéO=õTe>ò™]:uÔteáŸyæ™šŽÆ ]æ­S¼xqÅ—9EÀ…QNô5¬îŒÒ÷ÛL² Ø(êpˆÉ„˜8T(À!œ…ˆ…`&Ô*Zˆ ŒDžÕ¨]K0EÙEeó±Cm¤YÉÏ=y´™aÓB˜0L,„Ù!%7n¬÷AØÅ–ð™°·1y,±ÀÀˆ…xï½÷ÊèÑ£•¹¶h*ü€0làDcÐ(Íš5³UêÃ"DhÆCYb¾üc÷Ûë´mÍ>[¾T©RöV… ¦”õÛÐ6ãÇåÃì~Àfž+ÊåD_m{Y½þ¬¾WÞ.ú¸ä}1•`L¤ªÂä¸þúëSU 3`BØIð;”8êa„Cf‰ ÁYô3€¿Tr"ƲõTªTIm^úOHu†%p€A,ýöÛoöV5'’†·˜tL%Úyã7dĈrÅWÈ[o½%8ÛaØP1L4wîÜ}Ì4´Î2u²ð fø5 ¾•ìÍ_P>‹Âæ·ãÁì$²V±bE6h Kh|¦xF³ù\s¢¯þú²rŸcÌÙFÏ:ë,5 ÌZ]6޽‰ÍJá8cêÂÄ„@¢¡QXDf°m‘DaÄ$c—#õ°‰QÉÖTãÚ¥L4üzõêiUøÏ?ÿ|Ì<ð?Ó>$|&`¥ñ¨+þÐZ͇„Ãɽ%ÆN›¤Ñ?Æ„™E¨“Â0(€zв8žaØP/ æÃTÃQE²â'af^tÑEŠ#ãÇÔ³cgQÂ@ØíûC˜ ÌÑ4æÌžzê)ň~cŠaöà_¬^½ZûD_Ac÷S²úêo#ì>Ç̤°lº•,,~$!†j‰ÅFÇ 0Gˆh`tîÜYó.¿ür5)ªV­ª’ξkëæ3‰EM˜ä¶Ûn““O>Y'…|l]êÁdÀd»ùæ›IV&D+5hÐ@M<˜ÒÿL¨Æ:t¨Ú`Ê }lè?±ý6mÚ¨äÅ'²Ú:XôO<ñ¯ëB§& L:tè é$°ÓaŒ0l¨ƒ÷¨h‘ˆ¾à/áAô¶qœß}÷]Õd-®ºê*Í·}×óÁs|šÍãjóYÔ˜|D„ÀB£Óðelûu"†hìZ0-åt_m½™¹¦ՙΠCÝ]sÍ52iҤ̼Ÿ­2H-$$’ÊO¨Ov“ "uüD4`IG²²àY<~"JƒMÎbD={챺°(ƒ„B 3HOL4k‚ùëÈèž~P7Ljý¢øw(3…åcú éß!‡’îu¤+ö>‘+¿Ÿ*ÀTÃ|DÒb¢ Uã m„0ÃìŒ=¾>ûLßÀ„+ÌiýF›¸ø6X”ËxJV_i!Ì´‚жkš™œPÔ>ê=ž†øw¡Q‚BˆAe©‡I £x';¬\P:ý ~Ÿˆ(ƼÇq þ‚È:èñy‰°¡,Œ“¨MÊ ÉøËiÊo´EÅ ™dõÕßFü}®2‚x3*Û†ùâ;”™g"˜Jñ„ÍNj.1pG0r•Ø¥&lº¿„Ók_]ì!„öjüOXÙ¬¤³IˆÙ†ãŽºG{æ¬U«V¦ªÁ´`g€„Š£_å(wÈõhRî/¹­á·*ÄL€›4i¢±w";ìd†8–@ÕnDö‡f3S‡+“3äªfÈ™.§F-ˆ6¹å–[b"BCô‹d"SØÅ8ŠÄÏqŽqpñ9=âhÛ A6°ðeˆ®àsX" Àî3„SmMB¥0õÆågÓQöpÌ=Üô Ñv‡ýÄ"'¤I¨‘} ÊÅ : HȕÅš…]mB«˜Y´ãàaI´æŒÀóé§Ÿ®aR’N‰hzì{$ ‹úûêîÓ#à̤ôxdú‰0/‚~)n_&’SøwÊÙ­? È¢¶ß7ààž§S‰Ÿ4a„Csø&DÚHC£@hL,Þ…™Ø©¶G$l_Ü5ó8fȲ„€c†,ÁõÿÂØ÷h‡ ŸÀlñïgø¥~f²1ùÛï&°!ù×Y å?'¥…ÜG¦pÌi¨Ò$tÊyœ ¯œr& IΑKY= ˆÃ á["| YÆòk[Æ]³€c†lbÇÑhvV‰ñÍ5üÎqØžê¤ {HnrÜALÓÇ2Cpžˆ§D¡8 È)ÕŒvšµB÷‘e\4)Ëýûö?áS¾éÅF™%Î<ÙˆMãv@Cz˜;Ê#šd¥=g‹`´'Ÿ|RC·¤ã#pþ âÙvIÝÇ~!à˜a?àÆçWÚHoŽ|pøÎ.hÕO: È;œ„e?ÁÞÛ÷Î8ã ýž&C#Xˆÿ5œùd®´}ÊÏWÇ 90»,DŽ{dD~‡Ú_ç×:ÀþtîI÷;Ññùî9çp>CÎaX“; KJ&:ÍäiIÖÁ$w;’Õ;ÍÉiwƒBÀ1C*.-’8fˆä´»A!ê3<ñÄAå]šCà€G ìÛû0qrû;¡ü¨Ýð“ã?~Ÿœ}~cŸ.Á!œÏ‘‰vÃÌÇ cäJDÇ ™h7ÌŒpÌ1F®DDø/0áçM~àЂIEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1Date__coll__graph.png000644 000765 000024 00000024663 13515046516 026010 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÀÓמ2sRGB®Îé)mIDATxí] üMÕö_Æ’¡$!sxHHƨ>…D†¦—B†y¢=ÊB^ôð4ÉTê%’ ™el0&SE}šÊ•+G={ö¤† z^·W 4HŠîÕ«—_»ví¢Ž;Ò¸qãèšk®ñËOOÂöíÛé©§ž úhõêÕiÀ€Aó#÷+ÀÖ­[éË/¿Œ4]üÊ›1cÝ|óÍ´oß>êÞ½;uíÚ•þúë/jÔ¨Mž<Ù?^¾ûî;Ú²eKÀæ=z”æÍ›G'Ož ˜ŸžÄK/½”J—.í|,X@?ÿü³s_¨P¡ô›þg|wìF˜oz°û?þøÃìܹӜ9sÆüïÿ37nÔ³gÏšM›6ž5 û_%m÷îÝæ×_MQÔÞ½{Í‘#Gœ´uëÖfhsüøq' ÇŽ3_|ñ…ùå—_̉' ÏN’Ï3—©R¥Š\ó€™ß~ûMêûüóÏ ‡¤ã‹glsðàA¹çA7¼Û-iáܹs†Ú Ý÷ý©S§LÑ¢EÍ-·Ü’âô¹bÅŠæÚk¯µÅÈó6l0³gÏ6{öìqÒÓB§ÔÚŠBÑNÐ uÙ6#Ïb<Û¶m3ë`ø­Zµ2ì#7‡6‹-2ß~û­àãë›o¾‘Ͱ~øÁI1–þNFˆ ;þP²gÏnúõë(KÒx’ š—–Œ‡zÈÚ#ßBÒ*+W®"Ý~ûíÎÎ!åŽ;îpîyûY˜²víÚæ¶Ûnsªú¨àMŸ>]îo½õV'¸@øK—.õ»çYPò.\(yî/^ÒÍÌ™3E`ÀDèÚiÛÛ»woAO RkëòåËM¾|ùÌ%—\"ŸË/¿\臊,Ó>ðÀBGVM(|ЬT©R&wîÜ‚´lÙRúc˲€².»ì2“-[6¡Gƒ dÂqÓÃ^Cà'MšdêÕ«gžþy›ì÷›šðJ+¼¾„p§‚ @ÄT !fzðÁE·æY–°ìâ¹ Ð[o½%jF»víˆgyâ™ òüôÓOò| /,é°xÖ¦ñãǡÔA-\¸0ñ*A<¨Ä«½ð ’ÇÂ'ª ~î{à*Uª$¿î/fjÚ´)±ÐRÿþý ý„žËÂ@cÇŽ¥Ò’%KœG¡“EÖV´¹N:Ä+ýþûïT¡B²º¼}–W_}ï¹çéc(ü;vÐСC….°q0fxÖ Àyì±Ç¨}ûöÄ«0μúHÿÜxP§ž}öYBÛۙϒ¦kPÊŸ??µmÛVÊìÖ­›Ô¦BB!ûJTzW€Õ«WKQXv¹>ƒÙ€%÷LPQ_0{¼ùæ›’W¿~}ÃÌ#×=zô0¬šÁƒË,†e6påù?þXððÕ·oß +Àõ×_ïàáê f;«ÚUy¨+Mj0räHi ^HT¨IvűˆX°JÙ :¥ÖV¨8P'QÖ‡~h®»î:Ãö‰TigíiÓ¦Ù&ˆJ +@‰%\¨JX½˜‰Õ+À+¯¼"4`aÕ ê —¨€PÙP6Xé1Ö,lf̘12öNÁA.R[ìcPmyB4µjÕrê˜0a‚ÁJx¾,XPä,kÖóŽ¥2eÊÈ=fF7’xÙ£qêÔ©2‹`fĪ€×XAn¸áÂÌÊLC¬¢H>w\~ñegi'ÁuÁ ïº#™=슃Œ’%K:ùW_}µ`NB‹²eËJÎüùóý0X-’ †" äo¼1è‚ÓB8t²¸ÁÚÊ“¡M<Ј#ˆmûˆó˶‰s¾›¶X‘1vl—9Ïã‚Hî[·nMwß}·|àcUT¼b˜í±:ƒlÑã?NXí"¬æQ‡D›˜3gmÞ¼™yäÂJw11„ Àä¬gÏÄú>5kÖLáX_õ†gÂÑU¸Á¤6æä_ll;×¾û÷ïw’À”ëׯO!0î| T(a²Aõᙊ@x_à™QÔ-ÖEØØ à °±.Lá®#\:¡@m…0c²€{jޮ׍QéÓ÷"|¸;-ðª+Lån3òà  âaR‡W*Q]1aAí„ {çwÛ¢FA `,áò®[·.5nܘxÕ¢Q£F‰úw1u„ǵSƒÏ³Ð—1kôéÓ‡ØP#¸Åð5?ýôÓ¢ÿó’.«˜ ąݺ;ôÎÑ£Gû”záÂú=  ‚Y`õIÊù裈 _jÒ¤‰daöBýÐuî{ >Ú w'„L€˜e@ç ,èΘqQ/V3ú™ÖVöP‰„ßY³f\´¨/¤†•öî]V+dUs—‡¾a¥A›à¶d/—Ðuîܹ„qêÔ©±ú%{2X…ÿñˆÐà´J/`¦â‰'¤¬Î;Óßþö7bÕOêÂ}Ž9Ò[ôùç|õ§ôÚl¸JQp…rÉ¢ó"4¹‡^kz2pàî´Othx€ ò¬+®Jäà ]Ïð *z Û Äj‡c=ºì!C$ÏêÕV‡dUMìën åBpDZÿßñ€ -ð¾0ãHùøâÙVtqÛNxi ¬ Rk+ÚR¬­p(àcjb(H Ÿ÷cˆ=h¡Š<¶5kÖLÏÀ+¡û6M×VENÓCi@ÎP€Ÿ—QñK·iÓ& ÍL‰ Ã8áýÆR ÀÛa½Rpb%-žÚ+4Ko;üþ ÆaóæÍÅm™ÞBõ9¥@¬QÀ¾ …2Ü ä®\¯•Ѧ€ @´Gàô…M²h7%ëj@Rð–yÌ^*f¾ Í™ÓVÆÛ&Né|2—ì.|Š^ùº˜¬”‘Ä׫¿ÞÑaЃdvŽð®|»”´ tÚÏN!zã-¦!:¹èΕDùÒæZô¶aÉSºÚÑë_¾:Ïü™xv}­V$}½*ÑbÝ“ˆ2gcEó Àûü{6Z-IêzU¢1ü`ö]ÿ%:÷×ùÚO&úiI4Z’ôuªDƒ~ZL¦·€•`7 „B†S@ ÃIÎböÏìò@c%ØÍnçs§£Ñš¤®S £‡L¾g*3»Ï[\gNð0þ/Üdtó’­>€Œñý³‰À쾉W„ªù’Åë{¯)ì[þÎ÷Rª?6ßðа Ç1›¢¿@€ ²Sř߉öñ à«þX¤ÿ8ÝÞéoP@ ˆìT±—ÿk'”¿ ñ¿‰º^xOïi|¡¨?¡€_r'q‘þ Kó"H€3dQ§ùßð°Ù…ÿIÊœ=ȇ÷°3¼GO↤e3]Îè–ªEùSàÔA¢òÏ¥L?úŸú‘ÿt§AÊôl¹SÞëgÐÓ ž‘6Œ‚7à °‰§ÿs¨EQBP@U ÄѬħ€ @â±ö0TBG³Ÿ*‰?ÆÚÃPAÍJ| ¨$þkCP@Ý !ˆãyÖ1½tjÑÕ·y^•V˜*颩IBU’d µ›) ˜.šš$г@q>Ð/¿ü²„žµÝ°a¥Ìq´Âü¥<û ŽzBáè çÃÉÑj$^bãƒ@vxœ8˜8qª°z‡ˆŽ˜d]âhÔ9¼qœe¿+VŒ† æ¤#ˆ"í ¬(¢VÚ  P‚`ãU«V•ÀvxÁÍ$­Àuxí1Rø+X{l~\üúþ9®ÞÇ_kÒ¤I¦^½zÏ·uÿûß GËñM6Q]þÜñÌ÷ 8̆CI @U %øð;uê$nÍU«Vbƒ‘À”øSxl/^,1˜ÚŠ fZ¶l™ð¡ú`Ö‡‰#ÈÓÀ¥xqH‡ˆ ]jÒ¤ A€úöíKð&Aejܸ1Í;WpÝ_¨‹£ÅSÉ’%‰ gzâ‰'ž¦O>ùDسױl $|Û6õ7æÓò!» θqãÄCÓ½{w?Üx@ŒPf0ÇËÃLl˜ \V§ ÇV6™3g6xÚ0s‹aËq•çÃ?ÏÐ7Þ(÷¼zní”ËL0 =7l_˜¥K—:uÅÛ…†‹æÔ”Æ—âOŸ>M麎Y+Œcl–Áï« *NÖ¬Yµ« {€AÉ1‹iO ò¢‘¦ ªÛ:Ó(ö1ýT"GË´—7è©ýú>@Ú)±'T"FJ-() ^ x5msÄ( 1RjAñH€x5msÄ( 1RjAñH€x5msÄ( 1RjAñH€hŽþ}m§h¶ éëVˆ& ÈûK¢Ù‚¤¯[ éY ¹  ÜãŸô½WHzHn¨$÷ø'}ïU’ž’›*É=þIß{=MÐ÷¢I}©[ êC  ˆ&TŠ&õµî¨S@ êC  ˆ&T¢I}­;êPˆúh¢I€hR_ëŽ:T¢>Ú€hR âŽÛ¼yóhö'®ê.–ç7º:çIZ{à|T–¸j|”Ëq ¨N:«=¢+ÿ/$áSñ© ©S`ÏïW(ó§N&cêÔ©òïÓNB."¾ M]»v%Ž\æiJ íBnú®"º¤¯ ú”R zPˆíµæ € @ ‚6!zPˆíµæ @R À®]»¨Q£FÈë±8zô¨„?ªT©’ÄéªX±" 4ˆd"^"Ž)´oßž&Ož,;&Ò=ñÅDÏÂh˜rÞ¼y 4 ôt£üôÓOâ»FTvø±qqÑ¢E4`À‰×q<‚î!Y0@âœÅ2DuÀì‡YøìÙ³´sçNÚ´i“Ð AÝ8P4!:¡ äæÙ»wo Z>|˜úÓ„±ðë”·qãF‰g‹tÔù矺QäŒ @ÜÛ•+W¦À9tèÌÖhÇ’%K¿n@_l[‘î¾ïß¿¿ì¬^½šúõëG?þ8q\.zá…¾môÓöPæÌ™CëׯGs›,Ïs¼0‰ïûå—_:+úºbÅ wd‘Sk+ðPž;yò¤}L~AOCxÆ N^0|  ßê÷ÕW_b„iÂ8 ,Æ<& ’A͘Ñ$°ÏhaËL&ø·ß~»ü2AÌ-·Üb” ×øpfÃÌ*ÑÎäíàÁƒNÙ¼üšÛn»Í01 ‡5ì'–¨êëʼýöÛ‚ÇBâD3ÇóµjÕ’r™É$ò:êàȉfúôé’~ë­·J¤t¤—/_Þ°ÐI9ˆžÎ;&K–,N=ü±Ó–¼yóš'Ÿ|2à}žHË#©âb–‰¤Wî¾ûna‚áÇ;LÈ3Žtã ÏÂø`>D0ð,'Ì8vìXÃz¦<fåào¦G¦páÂíyöÙg ˜“UÌ–-[ n0hÑ¢…cB(YQ`*Ž‚nxõ0'Nœ0÷ÝwŸÉ—/Ÿ=ñÅ_L™ÑÞC`ÑŽÿ+åûâÈê‚7aÂAAýã×tìØQî!`že »3¹rå’ˆ¬‡^¹¤={öÜPm1b„àr<Áå Ö†ã m¦Åó¯¾úªÐ<¾Dªä•È,X°@höàƒJÙnÀD†(”¨ô…pqð=#Aã+a€Uéþ¶mÛ„ 8æ¬Ü³Ž.÷6ägÆ –¼Ñ£GK(OŽthÖ¬Y#3ÐC=$ƒ… Š+fnU+)3˜XÆ>‰õuyLÁ:»-ưÚ"å€!CÇß¼Ô [·n†ƒXËjfËëСƒ±¡L!Ï=÷œÍ2•+W&² 40n@¨¶²ÞnvìØa¶lÙb>ýôSÓ¦MiÚ Ób° ß €?<ÑîšY`õVêèÕ«—Ð ´=01¸émë öë…DÕ`ðÌ&¿ÜAùeÂÉ/«òË‘ßV­Z‰Ñ…Î0›6m*•jÕªÑ믿.63åÏŸŸ† ":4tÚš5kÊóøbp®]¸C‚"D(ê²àÎCèÛ¡aHYÕ ùóçû¡AׯáA޳+g\)žÕ4ÏÂд`CšâÇ,pZY:á>X[Y=‘ô,@Äq‡Å¾ࡲ>Æ ô·€0¬¾QåwïÞ-Ùo½õñj/Œœ¡l[¦—¿¨íe-©”íôP¨÷Þ{/q g‰€¦iݺµ ó @4Έxκ¸¸a¸!B:«!N±ÐP€ç-°ZBÅ‹··)Ü¥pÜù¢Ï‘Ü}{Ò¤I‰®QLh¿›‰a»Ë·‚OñoÝýp·µwïÞ”#G,^ˆW•€ÏÛÄÔðaغ¾mF9¬:Jq¬N‰#Î à 6ŒÊ–-k«ŠÊoL@¸=gÃŒî¹çâHçÄF øðñ,‡ï0Ь7Ë̈™ A¥±"°^-8ðõéÓ'du(¤±ÂÀUÉQ×|¬2¬¦ £Ž9RV0/€Õ%š6mšƒë¾ÇÀÃëĆ:Áƒ³gÏiÛ'Ô¶m[b£—7n,ž%´õëo«oN™i¹ÖVxÄ0)`a;ƒ(ź=XîzÂÁ‡Áƒöî»ïÒܹsýÚ Wh… hÔ¨Qϼlè7h”ÞÀßî6^Ôu0}+=éé5‚aðà=àÎ8ÞŽV.÷Ð5-0%­K—.6IŒRxoð,¯bˆ :Tòa„ZÏòáÉÁ/lxMpíöY\蛬b9Æ!ôê*Uªˆágà!bfvÚÊ $ôöžÅ)èË裱ðþÀØl·-óïÿÛ¢šêÕ«§° ೺{¨¶.\¸PèƒúA+x1¶­­_VOœzBáÃ…2n¾ùf§_ l0€»,82X<Ø4©ÙON#þÿc’P^ ߆s¦s2žƒ nQ7@0aøñÌ+ ç!n°Ï„‚ ÏŠÀT >Œî@u»qƒ]£]¶µk×:Lâ‹ £Œá[¿/^¨ûÔÚŠ>Bøy¯BŠWÆÁÊ ´µY 2†rxÀð>€\à –î…ÄÕN0T™ñãÇ‹êcË¥º³Ý‘äÙÉ÷1¿{‹ë—Á ì©‘O ¼ÔÒ`ë”.]:$»V ŸH@°¶B=´ªêM€O0Ÿgô`;é(Çm`;Q¼ˆ+z7˜œ÷ÒM2V/ˆ}ÒbC¸ Ó±ú#ÂâN·×È‹cÚ2½ú§¶zEƒpË«€õÈpû^$¢¾Àz¬låû¦ÛûPg^,N¬üÆS[£M³¸€h+µúùA 7&\›Øƒ`cW¼.©=|øÐáíb=>tŹH Ä• t‘}õüq¸Ùk#.?ø·á|ê©§ˆÏ:{{ª›oñz:4¬Æ’ @:„½)fzwØ7À|ÿìi’.ìOð9'7ZÀÓ˜Ø@ÙØ¸ÃÉO Ø8¦\0!‚¯^!}PHÝpô˜ONÊFŽô†؈Ãñ >ß$èðBA-‚×ÂO ŽØ·/Ç„qD†>6ϰa„çù ”l˜ñá5ÁuaÓŒ}î„<¬: i @0ŸkzÒÓº–ž:2úÞê7³fÍ28± ?4×ñn­ÁA=_`²»çÎk×®< ?x¨Ó•xu¼ÿþûò8Ndâ~æÌ™í3fŒì¸Ÿ‘íƒM4l´ŸŒ˜Ù³gûí‡H¡qü…¾Ez#LW€ “ÔœƒÁYXããDzÍÏ'åM.p àºÅ–?öøx5ñFAma&•#ößòpVˆí–#¼-íÀ[lnÀ±¼^‰Cg(uÝÿýÒö_|QÔ-7¾^_ €z.Ð"Åtvèñü‚á°û$f Ä0nà¾#CpÏÏË2¨-8— Àаp‚Ò˜=Ø¡8”• Äù(¼v‰CxT'[f2ÿªýÎ; ÃNœ8Q6ßø%bU†j×®ä‰ÀÉ`b>f!Þ `¸OWBÿgõŠ–/_ðaœ¢Ä Ägnœ|”Åçœ{ß ËØ1Ÿ2eŠœœÅ¿ôñ{¾hzÿÿP(+”*UŠX—™šuoyg›ePg`´º½4î"pZGŸùí(â—vä¬<ŒX¼ÿ €êê4&Nib•€ÌoMɉT¼7Œw¡æàH¸ïy{x‡øÕC1„ùP 9Æ‘SFBíp·=)¯#i%¢ì¦N«â­&¼n‰·Ð|È9íˆë%J˜G}Ôlß¾ÝA uºHxÏâD&©áÕK[.N^Úwlù‚ݬbÃ8ÇÛW‰ ^Áð;G ],¡à‘±')mZZ~S;]‰#Üø# 8i‰¢xÁ?°ŽŸpŸ@ýôBÔàé5­€uø¤x CžÆÄK=nÀžA¨Ó–Q©ÄÝØ8»V ÎL›Y ¨D–žZZœQ@ ÎL›Y ¨D–ži.íðáÔßPKs¡ú@ØðÄfEÐÓ’a·, 8Éÿ“ù ÿ#Dèÿ*JR„ÕEì¡D<þ÷‚H·3!ËË“§ïÖ–ã¿ ýß< ÙùéTDgTØ#]‹ýfT­ÚŸøÿ$jŸ*û NÀª ¥A]·n·0–,™ù¬PxïD©© ]­ @”†÷“OÖñ{ÂYø˜sôñÇëøŒ®œÑ €(PÌ>m‚œqäÈ þ[ǢЭR <°bÅ6þÿÏ ‘Y²fÍ"…¦$}•*Q`¨?`z gΜå÷¾á#ÐçW›®¿ÞS@À{§¨áôé3Âì`z7œ<ù}öÙ·î$½Î ¨d‘ÝU,^üÿwÐw’\gÍšIŒa¿ Mð”*ž’׿ð©SײúãOö3gÎÑÂ…›éĉøìßÛØOñ‰ØosܶðøñÓüŠãòUl‡à;÷|¨X›¦¿ÞR@À[ú¦(}îÜâ÷O‘èºÁN:V…Œ£€ @ÆÑšÿósmп4A3°|þù¤'D3nPT2ˆÖ¿þzœÿ–ýüfWöìYùߟý?Ù²e•˜9s}µJ«‰èa8%gp :tŒ:uª—aË–}0ï0G¼¹–¹s_šOo¼£@&¼}ï]ñZr( ¾@Â-[ö|(4ÍóªyH\-:ö) ûc¤-ô*W‹Ž} ¨Äþi =¤€ €‡ÄÕ¢cŸ*±?FÚB) à!qµèا€ @ì‘¶ÐC ¨xH\-:ö) ûc¤-ô*W‹Ž} ¨Äþi =¤€ €‡ÄÕ¢cŸ*±?FÚB) à!qµèا€ @ì‘¶ÐC ¨xH\-:ö) ûc¤-ô*W‹Ž} ¨Äþi =¤€ €‡ÄÕ¢cŸ*±?FÚB) à!qµèا€ @ì‘¶ÐC ¨xH\-:ö) ûc¤-ô*W‹Ž} ¨Äþi =¤€ €‡ÄÕ¢cŸ*±?FÚB) à!qµèا€ @ì‘¶ÐC ¨xH\-:ö) ûc¤-ôq"©OŸ>´uëVI‘ñE9r ÆÎNEŠËøÊ=®ñÍ7ߤ|ùòy\ËÅ7pÓM7ÑÞ½{©téÒßk-Á3 üþûï´~ýzþ·‡Š-êY=‘*8®¢DÖªU‹:wk9PàÛo¿åh˜<(Ù›"Õð†®ZjœP@ NJ›é T¼¡«–'Pˆ“ÒfzC¸2‚½!7¥:”ªV­JuëÖõ¦.õ¿ÿý/mذÁ)ÿÒK//Yƒ ¨`Á‚Nz¨‹?þøƒÎ;G—]vY(´„ÍÓÀ£¡c8pÀ£ÒÏ»mÛ6Ú¾};•,YR>Y³f¥éÓ§S‡hóæÍaÕ Ar7Ή'¤-x~Ó¦M²×á<ÈgÏžõk›mð (@;v”Oß¾}iüøñ”+W.zõÕWS´´øæ›oè—_~qŠG;°àãNG;vì ®V‚/:þü2ˆ`˜œ9sÒ]wÝE}ô‘Œ'–üÿüç?”'OjÙ²%=ýôÓtÏ=÷HÞ¼yóhäÈ‘‚»xñb7neΜY„ {˜13eÊ$ÌöÞ{ïÉ5Ê»òÊ+©B… Ô£G<Ó¼ys*W®œ žÃLݳgOºõÖ[iĈÒF ˜mmÔ¨uïÞ]Ê@þŠ+dfGÂý÷ßOõêÕ£.]º¤¨ÃÞ\qÅtóÍ7Ó”)Sdu(S¦ ;–&OžLÙ³g—>\wÝu4jÔ(š0a}ùå—ò(„ç7ÞìÝ»·ld¡Ï—_~9 8ðL"B®,¨ `äwÞyGf2¨øiÓ¦ C/Y²D„¤råÊ´lÙ2g|q ý:5˜ÿÑG¥Ù³gKY«V­’³>˜¿mÛ¶4gÎaHìT´:û§Ÿ~J5jÔ À®é3ÏàA-Â, µªBýúõeÆÄ*_°`ŸÙ)BX0BHÀ(­ZµA~±bÅ‚²A³fÍÄ0…P=üðÄ#P©%J”Y3.fÿB… 9Æ-V‰Ö­[;å¶k×Nfx'!À…mÚ‡Ì\³fMé#õ¸U[èÁ.Ԣݻw‹°!=”pÛçãñ7aU †û0V–,Y„í A±ú¼UE j€9 *ÜrË-Žªbذaô×_QÅŠé•W^¡C‡‰Ç%[¶l¶HÑÇŸ 0µ0%¸æškä×~!ßæÙ´´üÂ0”-[VúøÚk¯Ñš5k誫®¢k¯½–@‹@`'„™3gŠ [<ç¶‘lz"ü&´€Éõk×–YÏ@‡Î‘#>|˜öïß/ æ_½zµèÃP‡°Š@•ppÝBçÎsϸÖCàÎÃÌûÃ?ˆ æ~>Ük­3fÌa„M‚¶‚ù¡ VªTITÁ&Mš,Œ€º„UA„áÛ¤ÁiüJh(-´À€ÃÓ³nÝ:‚c:1l¬0(‘޳åéÓ§ÅH…Î `@€Ú3uêTºúê«©T©R‚oË¢E‹Dý‚ÍCÆ6Fø˜1cä_£G¦åË—;÷ð"Ùv/]º”ºví**Ü?ÿùOÁ«Vx¾°šAȬ' ý"«T VÇÐ_¬"°M^~ùezûí·É½Ò9•'ÀE®¾³¿ï½ïØÁ0Í;·Ìü0€ðAÇà°›[`xw†.0˜Ñ‡úÜu¢,èï`HèèðºØ|¨@ðH;vL„«}ûöâMB9°G>ÿüsBF4Œg¨mxBÕ­[7Ƀ' ³|ÿþý¶ ž±A@?aôBn¸áÑ÷!|ô±W¯^Ò6[l ~ýúɳRI‚}ÅÕû0d½: ÆlÑ¢5nܘڴi“b˜aà Ͼ;¦ÈÃmƒkj‡¯«ËóÏ?/̵ʩ¨dРAÂÐ`ZÔUËÙ‚!„[€Õ Ì {‚‡_Û7¨Qh ~CÙ RÏ—=­ïø&–o¡öÀ;FnÚ´©_SÁ4˜Yò,SÊw§AuÂ'€Ál^¯ï>*•Ï ^·Å]W´¯VJ a!Øù0`€·iyÖ ý9ƒÃmŠÙ7Àµ B!:P(:tOØZãMR/P²¢v, ¨„C%ÅIX ¨$ìÐjÇ¡@\Á+W®L±kN'c)€3Nñq#ØÐI´?ÆŠ'F ·­Øá´_îó7^ Œ&ŒÖ—P 9ÆY{„*A£ÉÉA€ägíe ¨!Œ&'þ0Ö¬ðÖVã¢IEND®B`‚mysql++-3.2.5/doc/html/refman/inherit_graph_40.png000644 000765 000024 00000006104 13515046516 022443 0ustar00tangentstaff000000 000000 ‰PNG  IHDR¾$7‰€¸sRGB®Îé þIDATxíœw¬ÕLJ¦‚Q¬HS°$¢¥£@°€Æ(„ J ` ! ]Ê"ªQ H‘¨$Ò‹‚…¢ôŽŠ(‚DQôüæ3ÉÙì­ï¾Çӟﲓܻ»çÌž=ç;s¦í}¯S’ˆ".2 _dë–!`DŠ)ÂE‰@¤ø¥Ø£EGŠéÀE‰@ÑøUòÉ'2nܸøæè:B À"p÷ÝwË‹/¾3ÿ‹ÿÍ7ßÈüùóc˜¢‹‚ŠÀgŸ}&}ôQÂô,¾çxûí·ýitŒ(°<õÔSòã?&Ì?Áâ'pD Yˆ@¤øY(ÔhI9#)~ÎEYˆ@¤øY(ÔhI9#PàÿÍ7ß”=zä¼Ò ä8s挼ð rÛm·Éµ×^+mÛ¶•™3gÊü3ò´iÓ¤U«VR®\9¹ùæ›å±Ç“U«VܳÛQ•Þ•*UÊxW¬Xa¸3&†‡çªâ»âÅ‹Ûó™øªgˆá‹¿¸ä’KÜàÁƒƒætØ¥[·ðó¸ùv|õÕW]éÒ¥]“&MÜwÞ雃#rF6à¿`Áwùå—}œ ÇuëÖ™lº¡÷rŸz>;ÒÿÛo¿¹É“'ûöí p×Mà¶nÝjÏB§<©gpG5>Ö|2¡Ž;º‡~85AÃs«øú¦×&߬Y3;"ÔF¹-Z×÷Þ{¯)cýúõ]Ó¦MƒI?~Ü)RÄMœ8Ñ[©R%§ÖÒ*TÈÝxã…Ôµº²e˺… íÚµàÊߡCwûí·›’¢8Ìå™gž±1/^l×7v¾^yÅ]³fMÂ5›y>ôÐC&0cÐ/毖τЮ];›3‚‹§/¾øÂž=eÊÛ˜yQütØ¥[7sÑpЕ(QÂ+VÌæÁFd†©F†Õ¬Y³Œ£å ü¯¸â kG6¯ø`S·n]ëcã-ZÔ©Gô·Ö 40üx>óX¸p¡mä `‹ñÄP!Úçºë®s脜™£ïg3eB©?ßB]´|ûí·æ.qƒjéÌã6պʮ]»äÉ'Ÿµ ¢ £kyçwD/ª42tèP©P¡‚¨e²ûˆ£Õ"˜ìÔ©“(آࡠn9éf‘×^{MԢȌ3ìóî»ïìåË—ºìß¿_ÔûÈK/½d}ºé„—#¾V![زdɹúê«-¾6l˜¨’† Š*ƒ¨Õ’;î¸CT`vø‹öK/½TÔ#†›suž;JµîƒʳÏ>k!! |jQå•W^ ž¯^YvìØ!ª$òè£Ú\ßzë­ ŸÜ†5ìܹSˆï Á<‘Ó€%ã";pQÏ(ê•=‹Éy€;ùO×®]¥N:¢žÃxUåÊ•9«g´±~ùåÑ %íÛ·Ç8s¼ë®»D=Í1x@^NâwM^-¾¾¶¡p[:³24àb¹V%77Ç®Ÿ4i’ñ6oÞܵnÝÚÎõ·Nã\ '°„G|>ýôS»+áI½ÀâÄ[|¬B˜nºé&÷üóÏ;oñU@A7ÏijdJ„Oýû÷wX0,ëzúé§íö[n¹Åaõ“n™µqo^CB…TØañS­{ôèÑ6ÏÕ«W[ø@¸¢ÊíT‘ƒ©vïÞÝ©¡qªÐŠâ­Á…°ð+ü<õêÕ+ÀŸy©R;Ýîý÷ßwú¦Ôž÷Ýwß;ÞUó«ÍÜ5-Zd¼È‹O;òdŽ|Ô€Y2£°’°37”Êâ'š'}z^HÝ’Ýæ-^µjÕìkéd-‘¡bÁNüñÇE…!>‘Ò…™&Á0`€YÿÙ³gÞáž{î±qøòV9h¨¢‡®Ä,´÷0tT©R%è'A [¯ #îˎź«Ò[/^KøÆoˆ*Žð\,_2¢]]³ñ$ëϤ$0vÜŸjÝx^k&Ul»¤îܹV]Á›…IÃ>“ ²ÃúzÂûz‹=ñÄæíuó[5Ë÷ùcsÿŒ°LàÓÆØñò`ê‰y‚DòGÈÊ·P‡%Âe(ªmÚ´±Û–/_./¿ü²…1¸2Ì@9!”ÏSºA-gJ‡ŸþyÌF ÷óã¥t›ÈŸæ-fù6B±Þ½{Û%s»ï¾ûdË–-1?ˆ¢²Ã¯ ã496ñ÷çå˜ ;Æ ¯+¼nªAju-Ôäˆ|ÔûÙœ¸0’¢æ8¶¹ÙàlTæK©˜²,¤1¿ùÚ¸qcpŽÌPFÂ(B¡¾}û}þ$<7ML­9÷n¸ÁÚ'L˜`sdžè&Ýrë­·ú¡òïï6òêhyΆR¥4÷ä“Õì·‘Í“‘ÐtîÜÙÚøzðÁnwøðaã!' ã~µî‘G±êa #pµñ¡nY=……U}úô±gS%ò¡Ž*Ã:q„AО={U­§'\«b»2eÊXÒ®q¦Uƒé˜chncÕ Í,±Öú¾U¸4ǰ竴‚„χ:Zú´Ð€ðÀ¨\x"DWuhO…¡NªuƒI¤nRKÆya_7¸'«â ÖF? ÆRe×>¹%\UOhëŸèR…‚XGÅŠ-q%aVÏmׄÌl¨R¨^½ºÝÏso4pºA,ä ËÙÎð+U¨CCÿ”â£xž¨´°`Ò¥0MnM€€U³fM‹é׺·)÷ DÀóÀˆ&<6  /^*A#GŽ´>¯øÜË8Äèä¾lš®ªÃ\°@‘‰·©´h½ÝÆç‹ ®fñ”‡9±6õAŒO_ü‡Â„ccßž »tëæ>}‡à4¹žÇ)SjÄ;ÖY/ó›7ož­ÑWuÀ_C[Ìð©W6¹Ç±QÈy ÖAˆç0U/wr î¥<…''󸀹–³5døõ)~†ÏaÇ“+ßÉ®§F‹×ˆ'¬õ]<–Ô+~˜ qc¬5tO^ñéd„ž[â^,sô&ÙXuF‚Æ;æŽÅÕ"{®Ú’a—nÝ~pŠ xádØzžtGÖ¡!NÌ;Ï.ÈÆãMªáu£øšÇÙ†ü½¾Æï¯½ì0œ_(¥Rü|Knu—æHÄ+W®”éÓ§ ±\<‘«o¶kÞlªHÚßÈ8”ßRQ|"˜Š/¾qùÉBN¤a‘„“qøIÚ/„rÂŽ±Ó­›rs½zõò<­¿‹¾?Iz?Ï Ë†˜?> >ñD™—§tkð<ùqüWŸ×ô¼º§vÎä•HxÃU?U»dDUeôU¦d<ÿå¶tØ¥[÷ÿ{M`öÿ5*„+ OŠ?;äXqÍa–è MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::Option Member List

This is the complete list of members for mysqlpp::Option, including all inherited members.

err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
set(DBDriver *dbd)=0mysqlpp::Optionpure virtual
~Option()mysqlpp::Optioninlinevirtual
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1BadIndex__inherit__graph.png000644 000765 000024 00000017543 13515046516 027321 0ustar00tangentstaff000000 000000 ‰PNG  IHDR”·ôwLsRGB®ÎéIDATxí]˜UÅ>ì.½ChÒ HQDD@”OÑÏP"Q¢‚ Æ’ ŠD?¤ ŠtTŒ¡ (EAéU¤ KWzï “ó2—ûî¾¶{ßžó}oïô;óÏ?眙wßÞLƘñ¤¢Äï¸f±iK[Qèxœ‚ Ä%T,ÑÔ¶H ¥$ˆ)ð¡b.ǧsçÎż]m0väË—2gλÿßRšj÷îÝ´ÿþ˜wVŒÕªU£üùóÇ®Áÿ·”&„BÛ… ¦J•*żÃÚ ?.^¼H?üðƒ¿FÂÔV* 8š•r”P)ÇLk„A@ ÍJ9J¨”c¦5  „ Žf¥tO¨Ó§OÓ‰'BެGôÎ;ï„ÌO¯îqmÞ¼™zè!Ú·o_zínÔýJ³cƒ¨{¡`»víàO™2%hÉõë×SΜ9ƒæ¥çD÷¸°•?yò$]ºt)=w9ª¾¥+ µråJZ´h:uJ:èÐ! ƒP{÷îutðàABÙóçÏ;ið£8tæÌgb’’’èìÙ³evíÚE , œæ[ÁAìž={lTÚE9ÛLøŠ+hîܹt᧸ÇÚµk¥?(g}³gãÆ´xñb§¿ÞqÝ|óÍ4aÂ9»³õѧ3fЪU«d\îtŒñÈ‘#4þü€~Û2×ôÊ“sùùçŸ >ÑÊš5kLéÒ¥M®\¹L¦L™L‰%̆ Ì /¼ qÈÔªUKšëÚµ«AŸå`âããMŸ>}$ïå—_–ø’%Kœx¶lÙ k?Ãä5uêÔ‘zY³f5¹sç6£F’r›6m2+V”¼„„S´hQÃÄ‘<Ö¨’^¯^=“%K £,5Ù¸PãILL”ºlÆM\\œ)P €Œ÷gJ^É’%Mƒ ú‚1 Þ°aÃ$/š?¼Ì÷ßo>Mñ”–öÇ\RJ¨G}ÔÔ­[×ð 7¬)Ìí·ßn^zé%éWóæÍÍŸÿüg oß¾]|íµ× ¯~3pà@‰[BmÙ²ÅtîÜÙ™˜I“&™ž={JÝ÷Þ{Ï`Ò§M›fêðáÃ¥îÒ¥K ¯x!FåÊ•lL&Ú†´oß^&g³dZ´h!$eódîºë.S½zu!?kQÓ¤I!8ò,¡Ðä¡oüíiÙ²¥´ë—›P¬=¥_£G–r¨W¤HóüóÏK„Â"Y¾|¹a­m@Xà­dB н{÷6«W¯6l.äÜÀ2İ¿d m¬/^ÜÑP6-صF¦fÍš†M—|0!Јo¾ù¦_¶l™¤ƒ) ˜ÀgŸ}VÂøÂ3Æ@;A;@cÚ6,i Ÿ%ÂV0Nh_ˆ{\nBuêÔÉäÍ›W—­‡û³Y”(úƒv¬ 4HÊÛx¤kZ*]8å<)¿¢ÿþÔ¥KbÐhܸqt÷Ýwóœ]ø0U«V%6!Nâ­·Þê„ÃvìØ!Ž/k;§¾qg+q&¡-&=óÌ3’'¾|+7ÝtµnÝšæÍ›'IC‡¥±cÇÚlbÂøml’<|¿yàÀ',°sçNékI'»X±b¿Ñ Ú±’={vñãlüZ_¯ôúödöìÙÔ­[7qbáübR@,¯,XxÅ;N7òA€hD`ÍCp¶íçý÷ß§fÍ.?Í&PïòåËÓ«¯¾*N;&•Í a'i…ý,bßŒØ IÒ€œöÐ÷¾}ûR… lñ€Í6ì+:yÁì‡Ñºuëq´ë®gA°ú×:-]jäÈ‘ôâ‹/v6xBÄÉ‘#‡`ƒgv°Ã;zô(±"WVù’ÆNµ³“Ba6CÒÎÖ­[¥îçŸîuÙi§‰'Š6ìÕ«5mÚTvK‰‰‰Ô±cG! vVÐ":t6PfêÔ©4yòdÚ¶m±/Ïzx·Ür ”¼© ìä ¹Ð7v˜¥.þtïÞ]úŒ]îߨQ#ÉsË)̆ JÿÞxã ©³M?þ¸»Xú G²¹©ÉO©SÎÛ_ñU°ÃÃŽˆÍšáã¹5“B|8¿Öâ§0¢²«ºçž{LÛ¶m%ϻ˃ï‡Çø/ù‹S×úlÈC¬Á “QæWÊMŸ>]vWõë×—8úÇfØðA¤”ƒ¿W¶lY§Mø7¶ßÖ‡Âî}…oÖ¸qcqìQÙ=.·…<Öβ»³»8&“lWªT)Ó¯_?Ex1ÊÎÓÆ#]ÓÚ‡J»<€Àç;fáÂ…†µ@2L°Åås#'»>‡rw'#Šû(2é)Ý6³ö”¥÷è7ŸCI¶b …4Ö˜AëzÇeëâŠã »ÙXJZ*]8åÐß¼‚©víÚ&ï“…pRñIÀáÇ'¥Â»É UÐï*Uªͳ‰¬Ål0àê—;fŸëMÒ…u½MA6wÎ.2š:7B™t£¡n0ÝcàƒZùÉ–ª¡2Â,_Å1*¡¢{ïÞ£Q”Ò"@ ÍL~—éTøz™‚~ýfó™U5>1¿rB}½ôÝÛOœþ§¥¤¡Ž;Fø\ïÂ_éÑ—_®á¯mŽòá¢þ,,Ò|fÂG¤B9þüÍL¤ù«–<ülRŒ E4c©>T˜&O^Nqq™ø+žã´lYb„Òš­„ Ãóç/ÒW_­á/£ ÿ€xúâ‹•aJkPB…áÁ·ß®ççÙ/?ò{áÂEþ‚x]¼˜¶Nm˜î\YJ¨0Ó4iÒ þJè DÇŸáÿ °9L ͺ‚–b€ÀÉ“çhöìuüðÚ•$$ÄH¦%TlfÎ\›Ì¼\Ó§¯å'2ù¢‰ ™¬„ 1í'.úÅî¹sçùA¹+Op†¨ža“•PA¦þС“´pá–d EãããØìE÷Øq¦oø$%T)þòËÕAµŠ&%]"ìþNœüif2d’*È´¿ŒŸd ’ñÿ$œK͘±6t œ£„òLþž=Ghõ꿬ñí5a‚š=/.ˆ§Ù—ÃÁnv=¤ÙÓðÌ™˜8—Õ”ÕVöçKø‹ÿÂOSœàŸY徆uÕú¨„ò@]®\aêÑãá€ÔgSõê¥ù‡§W~ð‰8«RB@¥*âÿÓ”ü£G/ ;î(Ë¿(¾Ç[\ãÔ‡ò¢Q(¡üá§µ=(¡<€hÔJ(øimJ( õ‡€Ê~ZÛƒ€ÊˆFý! „ò‡ŸÖö  „ò¢Q(¡üá§µ=(¡<€hÔJ(øimJ( õ‡€Ê~ZÛƒ€ÊˆFý! „ò‡ŸÖö  „ò¢Q(¡üá§µ=(¡<€hÔJ(øimJ( õ‡€Ê~ZÛƒ€ÊˆFý! „ò‡ŸÖö  „ò¢Q(¡üá§µ=(¡<€hÔJ(øimJ( õ‡€Ê~ZÛƒ€ÊˆFý! „ò‡ŸÖö  „ò¢QŸà}yn?~<þ±¤~\dÍZÒ$$äSL\˜äÎÛMòl2±|RU«ß¨|÷Ýw4nܸ Ã I¨fÍš­ ‰ŠÀñãÇCJ}(åGLPBÅNmL ¥ˆ)J¨˜Â©…tʯh>ùäZ²d <8M»ŒMÊÉ“'ƒÞcÈ!T¶lÙ yi™xäÈÊ™3'eÉ’…FŽIkÖ¬¡Aƒ¥å-#¶}Ýk¨M›6Ñ?þq ~ Ìž=›’t« ­,\¸Ð|óÍ7æÝwß•±Aƒ­X±B>Ðl¢¤(4T¨ñ Ê0i¥¬[C±y3V3K&ÿÖ†6·ýY¾|¹Í2°(íÚµsâ‘á4”oʲ¹hÑ¢Ī°Ê—«}i!w’Xíóëâ‰'Ò£>JX1Ð`¬h h8ø)°ùø¾Èj³ZµjI9üö%ÞÝü(Ûê”)SÆ© §¾X´òÈ#õ¡l}ž‚Æ‚OøÄOH2|ˆõåfÓ M:U®O>ù¤\í8þV"Ç–³WøN°ðÝ‚ùF²‚±[OŠ—JÆBbfòxUFÕ˜ öShøðá|“&M¤vQ0På¼Ze'bÙÃñ·³J`j¬°/C«V­  ;Á‚y¶^j®X0Ï=÷œô“Ú©S'i¦“oG¬¥ÅAÇ–yìËɇ5©˜M[ÖÝß`ã±åìó€E„ Œlà*¸b´óeÛˆö ¢m-Šrlâäìä7Þ œí°™“Z8GyñÅÅÂ.Ú »µ[o½U‚ß>›“w¡õà ØÝ5lØÐ)ÏæRÚÁv›Í5jÔHò8î¿âÛ´éÓ§“÷-‚°£1cƈ–6lÍœ9“_Üx‡ìÞØ4 qpÏW^yE40î  }Bh}E=+áÆƒ3Æè´ ÿ”ÝɃև\•/ü½ö2µ>;ÒÒPüØjo}%Æ ì;Ïðù‘M2ì¬Ø~ì‚°Cã£ÃμäÏš5K|ÔÂæ/À‡‚oÏü”ŧOŸ>’g}(ÔEüøo|!ù‘vy| õP×ûaÉN7Ò›S§NÃGâCbl¬©¤vGnÿæƒ>0|Tá´‰Ýñ‰'¤pãAÞÌH=Œ‘5¢©Y³¦ÔÃî¹nݺ’¼Ð>/Xɳ>”/$>øàƒ}’‚aþ„ó¡p– )%T@å(#/¿ü²ãxº«ðŽÎÀa)½Â»69ZAy÷æÊ]§í°Ê7|æâd[B![v6­NÞÕàø€Ï¿ ޼‚ &Ú;îpã±mð9”l`lÜ^ÙìÞå8ß8ƈ¥„#TÌœr^µæäÛo¿•¯  ¬<zë°z3aq@ æ…¯£ª\,Óù¼Meƒµ‰#>³ –%iáÆc}4oel†X[{“Ó<~U …ó%VñröÓªU«TŽ:«÷dõ±“‚ãLà“a§hwÁʤ·´pãIo}uúãU…WÃäyï©ñë p&ïªïò&kà†D@ Å´&%]Š¢”J¨(x0fÌþNìT%µHH§üzr^Óz jA:¬ãÇQÖ¤õ­®›öù<-h_3Átç`'†§T.#°ÿYêÕk%m‘›:v }‘ÑðÂ)=Ÿùy‡=2™†Â“WåˆÞÛ•tïÛw–ôlÇŽ|Fv?’?ö4}tK}¨ó0aÂR)‘9sM™²*BiÍVB…áÀÚµxàˆ”¸pá™\aªdø,%T Lž¼’Ÿ…wJlÙ²Ÿô ý´¨S0”P!&{•I“–ó#ÈW<¹&O^¢†&%T,Z´•Ÿ© üÈ5aÂò54(¡Bð`Ê”@sg‹íÝ{„ŸÝi£zõ  „ò‚(4å6w¶ÌòT‚# „ ‚ËܹùÇ“ç‚ä\&ÛĉËù‡¬çÁAËfÄD%TYŸ4iEÀîÎ[äÈ‘S´páo²Æ%”‡gΜ§¯¿þ)¨¹³EâùGºÛ³x¸¯J(7ž5kÿ’6É“MJºH_~¹šQråH!°DÆ%û./ãBqyä›7ÿFÕª•Ä7(PÞ¼9øŸ|\ùçññqü³¨=ü3¯RN9 %{Ú@AIŽ@íÚ½¨yóZÔ¾ý}É35ÅÀH5yn84ì%”oµ7J(7ö€Ê7„Ú€%” ûF@ åBmÀ€ʆ†}# „ò ¡6àF@ åFCþPBù†Pp# „r£¡aß(¡|C¨ ¸PB¹Ñаo”P¾!ÔÜ(¡ÜhhØ7J(ßjn”Pn44ì%”oµ7J(7ö€Ê7„Ú€%” ûF@ åBmÀ€ʆ†}# „ò ¡6àF@ åFCþPBù†Pp# „r£¡aß(¡|C¨ ¸PB¹Ñаo”P¾!ÔÜ(¡ÜhhØ7J(ßjn”Pn44ì ÿÁnóæÍÔ­[7ßß( lßž—ÿ%â9ÊŸÿì2$_ã(^¼8õïß?X#ƒêǤ:uêÈké³fͬ¢¦ePvìØAàÄÆƒ!üŒîR;v¤B… ¹“4œÁ;vlØ7¾ª•Á ëá+¡bhoO •Á ëá+¡bhoï†x“Â7ß|C6l —^z)ͦóäÉ“ôæ›o´Ÿ+W.ªT©5mÚ”â㯼J6 P˜ÈêÕ«é³Ï>£wß}—Nœ8Ao½õ=þøãT½zõ0µ‚g3†²dÉBO<ñDðW)õ†ÐP»ví¢uëÖ¥)dçÏŸ§e˖ɤU¨PÊ•+GgΜ¡!C†Ðû￟ª{;vŒ~úé'©{îÜ9iÿСC©j Ûyàp­%&„Ø¿ýö]¼x‘~ýõWÚ¶m›ŒëÒ¥K”˜˜H›6m¢¤¤Ë/äÙ·o?~<`Üà÷Ó]y+Vþùg™0wAL ˆƒ‰8{ö¬ÜÓð©S§¤-Ü“åùÈ‘#üÒŸóÒÆªU«äêny¶¯xß &ã°Ò Azúé§éÙgŸ¥·ß~›*W®LóçÏ·ÙrE?¡}<ŽÚÇø0†pLpoh®5kÖâ^AhëÂ… Þ,™‹­[·J>æbçÉ5ÂhÛ=Æd¥ !&&ï—_~¡¿ÿýïü"[HÜ¿J•*²šW¬¸ü0˜†ŠZOHH H7=*j¾}ûöR§k×®a~÷»ßÑ{ï½G¥J•PqzÂdÊ”‰þð‡?ÐÎ;iæÌ™ÃE»ÄÁÄ‚=ôuîÜYÊýõ¯¥?þñüâŸõÒúÒ¥KªW¯žä?òÈ#tß}÷Q‡håÊ•ôÊ+¯È©0úàL&µL™2NÖˆ#è¿ÿý¯ŒýôéÓb¡Áâââd ÆÁB ðÄ=×®]+äÀ„wêÔ‰5j$UFŽIŸ~ú©„säÈAyòäü‘€E¬€î›7o^êÙ³'•-[–^}õUI>|¸¼ é¹çž“º©Õ²Òן˜h(Û^Μ9ù%Ï„\ÐX9ãÇ—Áa·oßNXá ùá‡dbëׯOü±¤NŸ>]Ú)P M›6MHѧO*_¾<ýç?ÿ‘r¶¾½·û áO}ýõ×B$náÂ…NhÑqãÆÑW_}E5kÖÒ‚|ªF.Z´¨W+ Ë¿þõ/!a«V­h÷îÝÔºukÉÆJG»ÿøÇ?øõg_J?q¢Œ1B†*“:zôhY\XLá  «V­*m¢<¬ÈÔ¼ys~KûdjÛ¶m€¶V8ÍÆ!äŒ3¨bÅŠ²‘öúë¯KŸ?ùä)abAòÔø€ÁúSBµlÙ’ UjÕª%÷ÂjÂI»ˆ{ï½WVˆyîܹ2©XEøŽæ¤ØðO°‚¶lÙ"€=üðÃT¤H)­J~ÿûß‹–ÁêD¹bÅŠ‰v°å›4iB I¶lÙ}† †i†<õÔST·n] £?0mnBä%J” ÜZÚDäË—O&ñÎ;ï”E³dÉ+LßáÇåë hHÔAî¹ç©êÏŸþô'‚¿V°`A)»gÏ)ºxñbé{›6møûÅü²€;cñ¢p à[a š }Aü‰'Ò /¼ xJåü‰‰É³ýØËvL& ŸÄÁ`çÍ›' Á×°_DcraB å`:@FäYm0¬€X¡ä¦›n ÈÂDÛ6‚YAÄoó‚]¡aÝD€¯ŒÉÆ £çŸžJ–¼übÉ~ýú Á°À?øàƒp]Hq^L íÝk×®-*{Ô¨Q²Úq~½‡Ï_fÀaaõaB`÷±+oJà”Ï™3G´ü8æÖì¢Î”)SDýÃÌAí.\XŽ"Û]|±Aƒ‘55È!à¬c³?> H…ö1Á0³Ð,è'´,ûC3aa úúÐÒ©< Ç}ÅâÀY–հоÀ¾îƒ1`7 RA£M:Uî?ÿùOj×®,j˜æXILM^¤NÙÁlÀY†Ÿ`‡rØ<öØc„Ýv9ØÙ`°C^ãÆeÕc‚¬ßƒú¶m„aò@l¹qøøÌ3ÏÐ-·Ü‚,¾€{tïÞÝ©­ »>Úa»ËÃÆÁ ÚÆF;2˜$˜Ô‡“bÁáÇäcâ±ÆþýïKÐ_´»téRiÎöß{µ÷BºÍƒËŒ°A€Ã¢V«VMòabádcL7®î‹#ø{>ø Ý~ûítÛm· ©q°ŠqaSåWÂ>…ΦÕã+p¸±J¡¥Ü?§ÞpDݾÊÀ€c‰t¬nÆ{lЫW/!D=Ä,@Í»} ˜[¬NL Ì”%Š»~Ãè#HkÍüàˆÉ¶Ž2üKÒÀÀplèೈ«Û—s—IMØ>¾’ªç¡RsÃHu`>`2`Þ`ç½ÐqXL ÙpB J0™~'4TÛ ±[ÜþL8œ÷X>Á$ÒøƒÕ‰EZ ­cÑb„6`F`Ç[´hA<ð@„Ò¡³á§¸wL¶$¶ô8a%Ø)B{¨¤ ×Ìä¥Íp´Õ´F ’É»&»¼´´¶íPB];ìoÈ;+¡nÈi½vƒ ë”ãDç+*Š€EGá8”P8¾oÖ¬™mC¯Š€ƒ¾U°ßÑ:‰®@Ð]ž+_ƒŠ@J©>TJàÒ²PBE„H ¤%TJÐÒ²PBE„H ¤ÿÛ¡ÜÝnIEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1SetClientIpOption.html000755 000765 000024 00000031005 13515046516 026166 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::SetClientIpOption Class Reference
MySQL++  3.2.5
mysqlpp::SetClientIpOption Class Reference

Fake client IP address when connecting to embedded server. More...

#include <options.h>

Inheritance diagram for mysqlpp::SetClientIpOption:
Collaboration diagram for mysqlpp::SetClientIpOption:

Additional Inherited Members

- Public Types inherited from mysqlpp::DataOption< T >
typedef T ArgType
 Alias for template param.
 
- Public Types inherited from mysqlpp::Option
enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 
- Public Member Functions inherited from mysqlpp::Option
virtual ~Option ()
 Destroy object.
 
virtual Error set (DBDriver *dbd)=0
 Apply option.
 
- Protected Member Functions inherited from mysqlpp::DataOption< T >
 DataOption (const T &arg)
 Construct object.
 
- Protected Attributes inherited from mysqlpp::DataOption< T >
arg_
 The argument value.
 

Detailed Description

Fake client IP address when connecting to embedded server.


The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/null_8h_source.html000755 000765 000024 00000133337 13515046516 022442 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: null.h Source File
MySQL++  3.2.5
null.h
Go to the documentation of this file.
1 
8 /***********************************************************************
9  Copyright (c) 1998 by Kevin Atkinson, (c) 1999-2001 by MySQL AB, and
10  (c) 2004-2008 by Educational Technology Resources, Inc. Others may
11  also hold copyrights on code in this file. See the CREDITS.txt file
12  in the top directory of the distribution for details.
13 
14  This file is part of MySQL++.
15 
16  MySQL++ is free software; you can redistribute it and/or modify it
17  under the terms of the GNU Lesser General Public License as published
18  by the Free Software Foundation; either version 2.1 of the License, or
19  (at your option) any later version.
20 
21  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
22  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
23  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
24  License for more details.
25 
26  You should have received a copy of the GNU Lesser General Public
27  License along with MySQL++; if not, write to the Free Software
28  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
29  USA
30 ***********************************************************************/
31 
32 #ifndef MYSQLPP_NULL_H
33 #define MYSQLPP_NULL_H
34 
35 #include "exceptions.h"
36 
37 #include <iostream>
38 #include <string>
39 
40 namespace mysqlpp {
41 
42 extern const std::string null_str;
43 
44 
49 class MYSQLPP_EXPORT null_type
50 {
51 protected:
52 #if !defined(DOXYGEN_IGNORE)
53 // Doxygen will not generate documentation for this section.
54  template <typename CannotConvertNullToAnyOtherDataType>
55  operator CannotConvertNullToAnyOtherDataType() const
56  {
57  return CannotConvertNullToAnyOtherDataType();
58  }
59 #endif // !defined(DOXYGEN_IGNORE)
60 };
61 
84 const null_type null = null_type();
85 
86 
94 struct NullIsNull
95 {
96 #if !defined(DOXYGEN_IGNORE)
97 // Doxygen will not generate documentation for this section.
98  static null_type null_is() { return null; }
99 
100  static std::ostream& null_ostr(std::ostream& o)
101  {
102  o << "(NULL)";
103  return o;
104  }
105 #endif // !defined(DOXYGEN_IGNORE)
106 };
107 
108 
116 {
117 #if !defined(DOXYGEN_IGNORE)
118 // Doxygen will not generate documentation for this section.
119  static int null_is() { return 0; }
120 
121  static std::ostream& null_ostr(std::ostream& o)
122  {
123  o << 0;
124  return o;
125  }
126 #endif // !defined(DOXYGEN_IGNORE)
127 };
128 
136 {
137 #if !defined(DOXYGEN_IGNORE)
138 // Doxygen will not generate documentation for this section.
139  static const char *null_is() { return ""; }
140 
141  static std::ostream& null_ostr(std::ostream& o)
142  {
143  o << "";
144  return o;
145  }
146 #endif // !defined(DOXYGEN_IGNORE)
147 };
148 
149 
169 template <class Type, class Behavior = NullIsNull>
170 class Null
171 {
172 public:
174  Type data;
175 
179  bool is_null;
180 
183  typedef Type value_type;
184 
189  Null() :
190  data(),
191  is_null(false)
192  {
193  }
194 
202  Null(const Type& x) :
203  data(x),
204  is_null(false)
205  {
206  }
207 
216  Null(const null_type&) :
217  data(),
218  is_null(true)
219  {
220  }
221 
229  operator Type() const
230  {
231  if (is_null) {
232  return Behavior::null_is();
233  }
234  else {
235  return data;
236  }
237  }
238 
242  Null& operator =(const Type& x)
243  {
244  data = x;
245  is_null = false;
246  return *this;
247  }
248 
254  {
255  is_null = true;
256  return *this;
257  }
258 
264  bool operator ==(const Null<Type>& rhs) const
265  {
266  if (is_null && rhs.is_null) {
267  return true;
268  }
269  else if (is_null != rhs.is_null) {
270  return false; // one null, the other not
271  }
272  else {
273  return data == rhs.data;
274  }
275  }
276 
280  bool operator ==(const null_type&) const { return is_null; }
281 
283  bool operator !=(const Null<Type>& rhs) const
284  { return !(*this == rhs); }
285 
287  bool operator !=(const null_type& rhs) const
288  { return !(*this == rhs); }
289 
295  bool operator <(const Null<Type>& rhs) const
296  {
297  if (is_null) {
298  return !rhs.is_null; // less than only if RHS not null
299  }
300  else if (rhs.is_null) {
301  return false; // non-null always greater than null
302  }
303  else {
304  return data < rhs.data; // neither is null, so compare data
305  }
306  }
307 
312  bool operator <(const null_type&) const { return false; }
313 };
314 
315 
316 #if !defined(DOXYGEN_IGNORE)
317 // Doxygen will not generate documentation for this section.
318 
319 // Specialization the Null template for \c void
320 template <> class Null<void>
321 {
322 public:
323  bool is_null;
324  typedef void value_type;
325 
326  Null() :
327  is_null(false)
328  {
329  }
330 
331  Null(const null_type&) :
332  is_null(true)
333  {
334  }
335 
336  Null& operator =(const null_type&)
337  {
338  is_null = true;
339  return *this;
340  }
341 };
342 
343 #endif // !defined(DOXYGEN_IGNORE)
344 
345 
349 template <class Type, class Behavior>
350 inline std::ostream& operator <<(std::ostream& o,
351  const Null<Type, Behavior>& n)
352 {
353  if (n.is_null)
354  return Behavior::null_ostr(o);
355  else
356  return o << n.data;
357 }
358 
359 } // end namespace mysqlpp
360 
361 #endif
Type value_type
Type of the data stored in this object, when it is not equal to SQL null.
Definition: null.h:183
Null(const null_type &)
Construct a Null equal to SQL null.
Definition: null.h:216
bool operator<(const Null< Type > &rhs) const
Do less-than comparison of two nullable values.
Definition: null.h:295
Null(const Type &x)
Initialize the object with a particular value.
Definition: null.h:202
Class for objects that define SQL null as 0.
Definition: null.h:115
bool operator !=(const null_type &rhs) const
Do inequality comparison against hard-coded SQL null.
Definition: null.h:287
Class for objects that define SQL null as a blank C string.
Definition: null.h:135
The type of the global mysqlpp::null object.
Definition: null.h:49
bool operator==(const Null< Type > &rhs) const
Do equality comparison of two nullable values.
Definition: null.h:264
Declares the MySQL++-specific exception classes.
Type data
The object's value, when it is not SQL null.
Definition: null.h:174
Null()
Default constructor.
Definition: null.h:189
Null & operator=(const Type &x)
Assign a value to the object.
Definition: null.h:242
bool operator !=(const Null< Type > &rhs) const
Do inequality comparison of two nullable values.
Definition: null.h:283
const std::string null_str
"NULL" string constant
bool is_null
If set, this object is considered equal to SQL null.
Definition: null.h:179
Class for holding data from a SQL column with the NULL attribute.
Definition: null.h:170
Class for objects that define SQL null in terms of MySQL++'s null_type.
Definition: null.h:94
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1TypeLookupFailed__coll__graph.png000644 000765 000024 00000027222 13515046516 030345 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÏÅó¦9sRGB®Îé.LIDATxí]¼5àÑ{ï]št¥ b£wD¤Š`ì ‚R¬ " ¢H‘"HïUzïUz/ûÍørì»wwïnßÝ»²™ßïnK’IòO&™™ÍnL¤I# ðÍ }M¡ãk4÷У{‚FÀ"Zx,§“i´ðè> °ˆ@”sºÓ§OÓ¿ÿþë|[_‡9rä Â… ¤DkÖ¬¡+W®„w°™>ðÀ”+W.¿#†ð(ÎÅ‹W§úBàY³fMãüùóÏ\’O·nÝ$ ‚\8P®{ôèa ¯¤I“ÊýfÍš(37˜Ñ¦Máž(ã€$ þ’$IbT©REMž<Ùe½rçÎm¨üþùçƒ;„Ô+Y²d?/“4àùöÛoÅŠ3¸ã_UîPöŠ6mÚdìܹӫ¸V"­^½ZÚÊÛ´_|ñ…Ô5Mš4‚e½zõ Ô ~èÀ¦{÷îF‰%¤þ¸œpÜÏýbåÊ•rÞ¸qc.ÀU;)`FÕªU%Ò<úè£rŽ>æ-±À‘¨uŽˆ‡Æ_±bE´z!L AYEÄm!5ƒ¢á1ó(P@À<çÎë¸ÛI( ˆ"Eм”Ë3fŒÁ*» Œ@Γ:ujƒíC SX™…m ³K‡ä2Ož<Æû￯‚d&nÁž8Û<Ü ‰GvÑßY•’eë(Š`Ä‚”`ªûæc¶lÙäróæÍŽÛûL¸qGwx]XÄ&RÞ6–<ÊЃyò¶ 6LË_yÙ^xz(/¯þ½ï7Ž>mÚzjÚt(¯Š¾_íÖùYq‘¦´ÞNWNݤ»·ï›Ð8Ï\‡?ˆøeÈÙÆ¯aÚ2ö]æ£u‡¢”ÙSþ§ÒÓêoŽÒ^žÉGV¶^ª@ÀqîÜ­ün|Aþ¨ÄýU·W¯Þ¤*UúSÍšÅiàÀûC4§³ëù•·è÷gþ¥²í³S™öÑ?òqfÛUVë¢(uÎ{ßí‹PŒì½0Ôܨµj•ˆ&8K‘" õèQŸ~ùe%oŸqÿë¡ætv=_1ä¥Ìœ„Jµ¹ÿù`…E¦SDºàHUµÍ£ZÜͱiÓrü©<,D“Ýİßí£+/Ñþçè‘®¹=º«#-<^´pß¾OófTxÁè/bGv8 –:LùŸLG¹*§ŽìÊÆR;-<±„àR¥rSóæ¨oß¼[]ܾ»ìEv!¥Pý TùÜ!_Î@P —ðA=ùXˆÝ_–ê‚2í³‰wÍKè"6š/›6cÆTôÎ;µy׃…tè/ˆÔd{´ðøÐÚ·¯ÊÛŒd¤^½¦ûJGT´ðøÐ²X Ú§ÏÓ¼™ÓúçŸ]>¤ÔQ#-<>¶jµj…©ví’ôÑGSäU“ëè„€ Ù«W#±{F^b!µN)há±Ð’°{^yå Þòb.={Ù‡ðI²àýý´qôIŸ Œ½cüqÆÆwÇ >¸Èù”_°"k᱈|—.Õù«IyÃ¥È}»+ öýuŽ|ýˆïÄGØ¢…wÏóÝ™3gʾH¼œÏiã;‹ˆ'OŽuo é·ßVÓæÍ‡-r Ýd®V`&Á&Sа¹²ù3ïi«‚åˆ }—,YÂÏÈ¢ÏÐwïÞ¥õë×3v›»•CØTz|+qBš¼ÝÓQÇs@ãÆ_ |é:0Œïn}Â]eƒqùøMG->ùäÙ€™U+¹Ç»¼M¦cß Í›7—}c¹Ó*T0$H€·ã Þ^ÑÀ¦Î ì_Ê»î96æm+ ìµú÷ß;6_Ææ½û÷ï—ø!ú·IÏjÈ /òz­Eþf­ù-<ñzŽé¨sçêôÕWÑÉ“ã1gU ÐÂT=ðÄDZãBß¾3=ÄÒAကžxn¥¤I£Øîi$_ÛY»ö@<箳ó'Zxü‰¦—¼êÔ)Éïü‘uox…9P„•Û'ž!ãv r°7_-˜ƒwšóϺ7ýº¥f°”H %Øü—ß2ÃKsÿü³“¿º¹%ÎŒõëq†ÐkZx¼†*pË•ËGM›–£Þ½§ó7¯ãæWŽJžÊ¿–ƒÌ»®äöæ¬WU‡Hûc¹NÕªýùë™OÑoÔ‘Rébx@`sÈn1räÈÂGÀíDO>™¿¸³”?äwÞNÕŽS]'NL7Ž«‰CVxðåýçž{Îj½Â2]‚ТñÑôÀ­:K`<:Mš4táÂ1²Â£ªÈå+*} OFŽIï¼óNÐ ¯Aƒ^gîhá ÷ÔåZx‚½Î8ÜÐÂî-¨Ë4´ð zq¸#òÞ¶pxìØ±´jÕ*úöÛoZägŸ}VvMs•ÉСCy_Ô®‚zïܹs”2eJÙ¥mÔ¨Q´iÓ&úú믚g(0×3ŸZaçβ+´ŸØ¹eó×_Ñ™3g(W®\1~x` Â>£'N”¬±%âµkׂQŒxÏ3bfžÿþû¿ }‡?®‘‘Ö­[GدzõêUÞ#gƒl¿—?~øÐ¡C”*U*Ê!ƒp¬hÀ=lX Z¿~=¯3»AØX£ª"앹yóf*R¤ˆì¡‰½4‘—™.^¼(;9§H‘‚V¯^Í»Ãev콉]Ÿ1Rc\ìø|þüyz衇{kâ¹Öõë×)iÒ¤²»ó5òiÒ¤ }øá‡æ,åå=pà€ÔAÕü¯\¹BÙ³g~(Ûš5käúÁŒÆa[·n¥œ9sF«“§úK”ñĉ2#¶mÛ6ÚÃmìx žÀ·dÉ’²02EY?Nyòä‘{‘¾téÒÒÑ Ê\ñ¤ &à1»×e{ûí·Ü¹sùòå“t &4^{í5ƒH®ÁkРAÂï‘G1üqoÞ4ÖH”(‘ÁjÁ*‡ÁÂ`° ¼âÙàÞØ¾}»Ä]¼x±‘>}z¼¿\¹r –„uïÞÝ([¶¬œ·lÙÒ(V¬˜ÁÂið†³’ûöí%lÚ´ir]­Z5Gâ>|XÂyN _´h‘Ëë´iÓýúõ“0ç?ƒ7È•¼Y 8ŒB… ¼Ã´qûömcáÂ….’/êÆ»Y{÷î6¬v,ìÏ^’?oo°àI˜§ú(|ÉÀ ´pñ€&8#LáÖ£G [¹r¥äÃKkK´2Æ®]»$Ü›¿~øÁàÞD DœM¥¶q”mʱƒrõêÕiذaÄ$Ë7š5kF ¶Œc­ZµâWþqì´2:bÉFKÌǧ[·nQ»víˆDFJ¨i'OºNì¨0£G–ߌ3$üatǬ°{÷nÙÛ¨ƒ0‹uíÚÕ1ò;_#Îo¿ýF¨ƒù׿ÂL÷óÏ?w@©wT:vì7ŽXx¤üåË——|÷íÛ'3ÜçŸÎ ßK/¾ø"uìØQTB”vKß¾}‘»úìZ=fÌ)·ŠcïÞ½ù; ÛhÏž=Í+À“…Ø ³,ÔP˜d6š2%t7súÿ'%<èh]ºt5é±ÇÕ‡GBÂú§5jH§G½!HÕoÿþýôú믋ªx/¼ð‚3žŽë%JP‹-D(†<:ˆ¢ž={ŠÚ÷Àži$×È›gP—׸ Û[¨›<ºKüJ•*Q·nÝèÓO?%ì=dÈÏ7ÒÁƒy—îw%_ðÿý÷ßEP'±ÀªnåÊ•iîÜûÛ¢ÄVÉÜé|ëׯOJ]P•,Xàˆ a‚ŠÉ3±¨mÈ?\(bl½^FCØ<©SßÛ/ñÜ-Á°‹êÔ©C“&M¢gžyFFÂñãÇK«_2|ñÅbW°*H¿üò‹c–BçTauGÎ^/Ø=˜©…k”‚ê-5mÚԥͣÒwèÐ7Ôê/öÃóÏ?/·a›€X­“#þX}•óéӧ˱uëÖrTpJ(Š­>*ž:ÂÖ9zô¨ØsêŽÙ²e“™FÝCÝ%Ož\ìVuêLjšy ÞTŒöPåà(hذ¡$…7 êÔ8Ð`œ«F†‘«ª;‚º¤H9-ÌÂf_ºt©CMSi¬1@¼òÊ+Rnt`µpê'j”"¸Õ¿ûî;t0‹! ª/~l›‰ê§âšËëª>*ž:b&Ä€çŠ"8. îšqP3¦ŠNLj_€oРxÑ>úè#³“dÉ’Ir<§€ê{Þ(ÌR°%Ê”)#6lØßÿ½Û,!x˜ÍΞ=+µ¨^½zŽøPÛÀ*#; D½A :ò‡âêZÝ›5k9ÿ0{AæÍ›G?ýô“Ì>#FŒà×»glØYPç $È*fV¨V°‰P&ð_”éyªÔH $¨£™ÀöääÉ“% ³9xG áž¾zÛx„5ªT©âÈšíƒG8Ç5íâÕqÜàxÀ¸ ~wÈq› ⵃ7 ž2vUl÷Høœ9să†4ð ± ÍÛÆ.g‰ï}¿>}×Kn:š¿ÐÂãoDýÈoÒ¤µò`ÔKØB nw¬ï-<Ø*û ®ñwÞvð§˜ÜÏ,PÝ`i Zx‚ƒ{¬¹þñǦXU2¨nsælѯ*ÄŠf`"„üªêÀT;ô¹^ºt¿%W6ZAá¶Î; K´ûXëV¢DÎh÷ôEàЫª±ßr¨\¹µlY‰:uzÊo<5#ËèUÕ–¡Ó m€¶ylß4VÐÂc9Îöhá±}ÐXE@ Uät:Û# …Çö]@`-|˜¾ùæzÿý÷éæÍ›4dÈêÚµ+eÊ”É-Öó7ÒøñãiРA±Æ-‚-„gÓ¦M”#GŽØ°°ž$IÊ™3§#ýôéÓ©P¡BôàƒʽŒ3:ÂüyrŠ}ÖkÖ¬¡;wîø“-]¼xQøÞ½{ׯ|÷íÛGÛ¶m£Ç{,ߨ(Ï]e¹ví†Ap£Þ7n܈Á'¶.\ -[¶ÄÍ«pÏ%öŠEì‘Ш|š4ih×®]”5kVJŸ>=]¿~vïÞ-£@aDùï¿ÿ(C† „ R÷0Â`\oݺUÒçË—$Hà(ÀéÓ§ ¿Â… ÀK›6­#'çΣ”)SJC 1 (àˆsëÖ-ºté’äèÐ!á!P£/ùã:a„ÒiÑq3gÎLo¼ñ†#Ÿ?þøƒ*W®LíÚµ“{'Ož”‰ú+B9“'O.å_ÌÛ·o§téÒQîܹU49"H~ ¤D‰E ÷t|àn…?ðÀÑðBgܹs§$f)R¤pÉêöíÛtæÌJ:µ”8©eCÀmì ?0GÛ¾÷Þ{.óÁMðسgÔ1þü‚3îãÑHïÞ½¥­Ð†Î„8£=ѾfB›?ô;R¼ϸqãhÑ¢E*ˆNݰaCZ¼x1?^êóòË/ÓSO=EÏ?ÿÊ„ôÀ„ê0 ù믿N¿þú«Š.G2ÚgÞ¼y"pˆ^|ñEéGˆ­£{÷îtåʉÄ_oŒNÏ>û¬€ûªM£F£ôã?.GŒ^¥K—¡R„€!>Ffl‡Y³f ¨è옅 œ¶mÛÒŸþIo¾ù¦t:ÅÃùxüøqúå—_$Ï *ÐàÁƒ †¸˜åP.=fÍ#F‹lÙ²I§ÇT¾|yjÚ´©œ{ú«Q£†tV5bBà ¸O<ñ„$ƒ``æÂª èñ³gϦeË–IØ€(iÒ¤"¨[±bňN≠šüôÓOÂoÆŒRØfÀƒ,³ž,܃°(‚Z„މ7ä?¤={ö¬0ì)õà‚¢°P¦|¬Y  <„yþüù ø½ýöÛÂgÇŽ’løðá2ýøãR5X{âémX¼ ¦Lt4¨%¨>˜0Å–+WŽÐ¡AæŽý^õêÕe‚p¡a”Á4ŽY #0 ¬eË–"dˆï©¡1ëA 5! è Š „à;³ÊÂ5fH%<˜­Z·n­’¹=bpÀ¬¡a†Ð*•³.â ?¨°11’c`¨X±¢Ì¬p3’'Zºt©`[³fM‰†²W­Z•0{BU†0ó¢-š4i"ªYfäµk×.ÀÛ[r‡Òc–ƒjfþa AP¡u9rD°‚muÑ-X°@Ôt,fGÌ,hW8S`@ˆÐÏ€14 Wö–'þžÂâEmC F)‚Î!r¥c£C*u S÷£>êP¯FŽ)Ó4FÏ’%KŠ×ú.@S¶ òñ¤ßšø¡ 5+à\ Î!Ž AH r4„ª"ggòDy $ Ì(¡£˜guß|„p`¨m€º/ìEʆA¸2Þ¡-S V/½ô’Ší語ðË’%‹¨fјüÿø`fDžyóæAsÏ|õ„šÁS5 55]‘?Õ¶x5º¨J¸;¢â<òˆt4¤Áh ãȱcÇDX 8Y ûcz‡óAMÓŠ/⪡y4ƒÚ‚°©Î ÕB ÔO‚¨xÆvÄŒ u ê êS¥JGsy”ª*„Ô©S'™‘q¡Ú°aƒ8œëŒpEăz§°WÎ5a¤F> „ÐñUy¾þúk™é¡:AÅ„ó¼`—)r5ZÁõ‚à@•å•WÄ~Z§ÚDåç|FhÄU„YšÊ‚cHa©$*n\Ž÷‡¥¸pñsZt4¨XͪÔŒ†Ðÿ¡£C !qµ c„†žú½;B8ªž“`4„QªÎ¨ P¯PxÎ@PiСoèêÐÓ½! P'À³ò&"-:.ôvŒúè@èœp†@€ó±º:Ã…ü?ýôS±Á̳,ܶ+V¬püPf¤‡:ªêõ„g]˜q @ `€º»"EŠDs¹c„* Âs¨\Pß³03fLŒê«<ñ‹ÑéT9 „hßåË—‹ÝgT§èr \Q_”øÁö…ÓuÂŒ~¨'ðSñ\ñ±r/^fŒVfõçÎ׿ÂÀ[#´á!BCÂxW<ÂÐБ ×„Ý<[ 5ú"ð‚…ªgÏžÑÂ! 42BÝzá…¤xPc` Bµ„ õ £\ÇŽÍÅ—ssýp¡3 nݺÑâCmƒPÂÍ‹Áü`̃ Ž |*Ø}½zõ’²©:Á…k&Œ²ðN/t<D]1{ÀîDY`Ïàá*0àAU£·â žˆ‹˜p/c =‰Áe€]ž˜ÁÌä?Ä1ó6§A'‡C †=Ts h°Ã~ûí7ioh ŠÌ MySQL++ Reference Manual MySQL++: insertpolicy.h File Reference
MySQL++  3.2.5
insertpolicy.h File Reference

Declares the InsertPolicy classes. More...

Go to the source code of this file.

Detailed Description

Declares the InsertPolicy classes.

One creates an insert policy object to control how Query::insertfrom() builds queries from collections of SSQLS objects. Policy objects are what cause Query::insertfrom() to have different insertion behavior than Query::insert(iter, iter)

These templates use a class called the AccessController, which is a stand-in for the mysqlpp::Transaction class and defaults to the Transaction class. Since some of the InsertPolicy objects (SizeThresholdInsertPolicy and MaxPacketInsertPolicy) may cause Query::insertfrom() to issue multiple SQL statements to perform the insertion of all the objects in the container, and a failure in one of these statements would leave the table in an indeterminate state, the whole operation is wrapped in a transaction.

However, a transaction may not be desired if the calling code is managing transactions, or transactions are not being used for some other reason. In this case, the template can be instantiated with the NoTransaction class. It provides the complete Transaction class interface, while doing nothing.

Where possible, you should use one of the provided insert policy classes, but you can define your own if you need a behavior that the provided set doesn't include.

This file is not meant to be included in end-user code. It's included in Query's public interface, since it is only used with Query::insertfrom(). You access it as Query::InsertPolicy<T>

mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1WriteTimeoutOption.html000755 000765 000024 00000031223 13515046516 026446 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::WriteTimeoutOption Class Reference
MySQL++  3.2.5
mysqlpp::WriteTimeoutOption Class Reference

Set timeout for IPC data reads. More...

#include <options.h>

Inheritance diagram for mysqlpp::WriteTimeoutOption:
Collaboration diagram for mysqlpp::WriteTimeoutOption:

Additional Inherited Members

- Public Types inherited from mysqlpp::DataOption< T >
typedef T ArgType
 Alias for template param.
 
- Public Types inherited from mysqlpp::Option
enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 
- Public Member Functions inherited from mysqlpp::Option
virtual ~Option ()
 Destroy object.
 
virtual Error set (DBDriver *dbd)=0
 Apply option.
 
- Protected Member Functions inherited from mysqlpp::DataOption< T >
 DataOption (const T &arg)
 Construct object.
 
- Protected Attributes inherited from mysqlpp::DataOption< T >
arg_
 The argument value.
 

Detailed Description

Set timeout for IPC data reads.


The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1WriteTimeoutOption__coll__graph.png000644 000765 000024 00000020702 13515046516 030753 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÏ·µð ósRGB®Îé!|IDATxí]˜TÕõ?l¡)¤†ŽJ” ‚ "‰’XÀ’ÐÅOPŒåŸP#MXš(½‰  .K^–ÞûÂï~‡ÜÉÛÙi»ÌòæÍœó};ï½ÛïïÜsO¹ofsY–5…”E «œÈÅÂceµ––WJSE {¨ðd7­¥ .E ›$d³ž#ÕÒÓÓiæÌ™Žô­æ,‰‰‰Ô®]»œí$Ì­»*`pæÌ*\¸p˜!Ðæ" ÐÙ³g#a(¡ŽÁƒùóç‚„úŒ?>ÔQåÔç‰(vè`Ü„€ ›¸¥c(Tx"Š:7! Âã&néX# žˆb‡ÆM¨ðä ·öìÙC­[·¦ƒæ`/7šNII¡.]ºP•*UèŽ;î Gy„Þyçº~ýzÈ}Ÿ:uŠ®\¹"å{þùçC®‹Uxrë8—š7o]¼x1{!š;w.5mÚ”’““©GôÆoP©R¥èÕW_¥¶mÛ—C!]RR’½|ù2]ºt)”j±[oU»…NŸ>7À->ç iÈiiiÖîÝ»­«W¯Z»ví²6lØ õ®]»fmܸÑâÅfñN+iÇ·öíÛ—¡Ý'NX©©©ž4Ö ÖÂ… -\í„öÖ¯_omÙ²E’Ñ'/>kݺu2ÞíÛ·ËóáÇ%åV®\)i¦#GŽX/Ʊdɹš<\‘gÆÊÚÄb´Ð/ÒK—.m5hÐÀ:wŠõÑGIÿãÆ“tf ¢+VX?ýô“§üÞ½{­øøxkäÈ‘ÒÎùóç3ŒÁÌqöìÙp2#ÇŽÒ®÷8<ø¹a-gñ!©ŸÜˆMÞƒF×PV…gÕªU²x~øa¹Bðzè!«E‹žçx@ÓèÑ£­¸¸8Ë,p€Ò¼ys«Y³f²H[µjeñ+$Vþüù­„„k̘1‚ÛÉ“'­ÆK{¨ß¨Q#¹Ÿ3gNáá׊$5„•;wn¹¯Y³¦µÿ~iiMš4‘lú™6mšäá£H‘"ÖsÏ='Ï‹-’ú_ýµ5uêT¹‡P{„¬zõê2äuíÚÕBŸE‹õŒ5•Tc­#í`o¿ý¶Õ§OHdbŽÀy® zc~µFÆŒK”(amÛ¶MòCùp«ðÄ„ÙV°`A:pà½÷Þ{´|ùr‚IÂ…>ûì3b @›7o¦Î;S®\¹húôéb†;vŒxqÒ“O>I¼@ o5°ö"ÖFÔ·o_2dˆ¼á0tèPbMB¼ åõ’J•*I}eÊ”!Þˆµ‘´õ׿þÕS”5íܹSòùË_R¯^½ˆ5€äÃÿ`¡—û *ˆI†+/RI»ÿþû=í˜̧~ýú2n“†±~øá‡b’M˜0ð7kÖ,bÍG¼)ФI“¤mSW̱f!$bMFÆ £¥K—zб"Öš´lÙ2Á×àè)7¡ì ‘R&»šgõêÕ2ì†ÌCëÓO?•g˜1xž1c†<ó‚µØÑ–ûüãVž\L¿âÅ‹ûIžöaÚ"{Øšv‚éeÈž÷í·ßJ²=ß”³_eæðÁØ“å~ñâÅbž=ñÄž<{ˆ®]»6Ã<ÿ{ì `lñd±æ%6d¨*ÆžF¢à&´U e ·Ýv›|§dРAò՜р~üñGêСaA—,YR4,›u¢‰&Nœ(eà 80`Wh>4ü$„’ A»Á‡¾ÿþû-V§NÉfÏãaá‚­òÌ3ÏHù—_~Y9!è?ÿùøk÷ÜsuïÞÝtAlНß~9×iÓ¦äã;5~sÖc*aŒlÚ0$¾#¨cÇŽ¦Hl^ƒ¤T »> 7#\Í\;ÓâïÈ3"a†øÌDÒ^|ñE“$>¢d¨ËšÉBdŠ %Ñ9aC>"f¸ÂçAø÷U›h›) ÿ‚ÍB !a|žºuëz"VˆŠ}÷Ýw’‡Ñ6ä!ÿúë¯{"hèíóâ–9¢ > ›DÛPm²ùy#“?;uê$ãEE¬† J›uÖƒ>(yˆ´Á„Ÿ2>Áið³¼}$¤û#·ú--fϾñ.Ù”)î4i²3o·ÕQá‰@Ž-Z´™¿sã·:M)){#p”:$ž\Ó¦%S|ü Ö$&ÆóK™)8J’ O„­sçÒhñâÍü¿z“ž~ßfNæ_ÁÁ+sJ‘„€ O$qƒÇ2gΆL‚rúôEZ±b{„T‡£Âak ))9Óûo ñü]žä©G…'‚ÖÀ±cçøIvðW˜3þPáÕ«×諯ÖóÑ¢ÿ«ÍÄŽ CQá Ñ­+0kÖ:Š‹»ñ» Þ½^¼˜.¾wº>;‡€ sØgêyʔՙüS(!!ŽkÌ£^#ž`†°oß þužTy›À×`º-\¸‰Çí²¯lMs@÷ÕåÌ™kùWp³¾Ðܹÿû_íhÚ­C 0·nÝ8b¾§©Sq–srçŽ÷üá€4wîÏ~^nÆ 5Ý"e±¸ò+ ‘^¸ÆwÙºu{ Cs©©'ù÷ã¾áŸömE æóä™7< zã®úJ‚c(9Ð1ÞgkÛv4ÿÎÚ`*]:{?âÀ°c©ËT5Ûb‰Ý:×°" ÂV8µ±XB@…'–¸­s +*|˜zè!úûßÿN7¦‘#GR«V­hÊ”)"D›6m ©»ž={R·nݤìµk×èüùótýúõêj¡ÌDe¨:ó4CK9yò$¥§§S‘"EhýúõrVt×]wQ||<íÛ·+-ÂBÆ¢3¡ðýû÷ÓÞ½{©N:T°`Á =z”}¬š5kZU«VµX`¤­–-[Z¼;[¬uä9..Îzûí·-ëw¿û¤%&&Jù#Fxú4hÅ‹Oò‹/.í>÷Üs’¨îºuë¤NÇŽ¥þĉ-8‹M4OÛö›þýûKy|«k×®ÒOÑ¢E­Ü¹sKz=¤8ú6ãiÔ¨‘Å‚(ù»wï–|6]-Ì uQ¸°ÀI^¹rå¬-ZÈ8 .cÆŒ‘¼P>¶lÙ"}±à…RÜ-eðêGôP8„Â÷î»ïZ¬¬×_]˜¾k×.)!!ÁšX+ZM›6µØç’²¡|D«ðļÏË-UªTIsÖ&Ä‹]ò`>yÓçŸ.&̘x0Ÿ`ÊÍ›7X Ä´éÝ»7*Tˆ”°›Gêš~Þ|óMâ…n%Hày°ÝÀ±Ö+Þc!‘çîÝ»æÃÂ,yþ>Xeœ¬I¥H•*U¨]»v´xñbOÖ`â_Á¤ëСíØ±Ã“«7êóxqACæý88×Þ?¾÷‡Ÿ¡|ùòž*Hƒa(P]S~þÈ—#}áÂ…¸<Âb'-|¯@ã3ˆ²’ãÇ{ªÙqÉ—/±¶õäÅê ç±ÐC¡;3*T¨@lyг™Eì3ɢîÍ&ÇéFhØ,ð@uá”Û Ú áiö1ˆ}2~Ó:·'Î?úiÞ¼¹`ƒ!„¦×®]K¿øÅ/L’Ïk©R¥hÉ’%Æ»fÍ™Ÿ©*.¦|,\ÕlË—aʱÿ#g=d E‹ÑÔ©S ¦Óðáà /¤â,adìÚ4óæµ×^“ˆœé*P]SÆ~… mÕ¬Y31Á ì§H?ˆ ½õÖ[žâXôìóȘ  cmÓ¦äcü¨Ë~˜§ç‘HœIfÁâƒV ¡bC¬%,>w‘ˆ—Y€XèÞ3_uMþ®hÑ1~³ S;úŸUY|^#átïB'Ÿy'Ë3kK™‹¯¶}V11Z…G}Þ¢³BÂÍPœÃ¸„?;á ³mÛ¶eƒ?_fÞ°“¯ºö|_÷D؃¾Êp]f}åáØá J¡! >Oh8e©|î#o°6 |ìË/¿ôœög©±,Æ[Õ«WÏB -z3¨æ¹ôÔ}ê©§·’ Pºu¨æ¹uXkOQ†€ O3ôêU}ã9‚ÙC*<ÌQ£æEðèthQéóà5~·Sbb1*^¼+õë׿ssÉíÓ‰ÊñGÕâ»6Ë—/ FÍž½,H¥N*óà2†ÇÝ:A¼yáý'·Î…ÇUÂãbFdzƒoð«4§¨AƒŠü–ö ™ò5ÁqRÕçqœ™°ví>ä$'ï¡C‡Îd.¤)Ž# Âã8 2`æÌJLŒ—Œ„„8~s;´ßXÈÜ’¦ä$*<9‰n6Úæ×ÅøMídþ-…ß!â/„ò}ü–´JN# Â“Óg±ý+¶ó×.xjA˜¶n=D;wó¤éMd  Â|ðŒbÆŒ5”pÃd3‰0á®Y¨ðD?®\¹Æ/®ã¯8güÚ7L¸¤¤Õ4R Pበu°dÉþmµtŸ#Ú¿ÿÿ¦Ú~Ÿyšè *<Îàî³×iÓ’Ùdóý 0ݦOר›OàJTáqxïn/\¸Ì¿„ó#›l¾_…éáBA)2Pበ>ðï½mÌäëxíĉó´råNïd}v‡€÷î6))¸VÁÏ?áU)2ˆÊ·ª#ÚÐG‘––Î?ŸÎ¿;PÖSéÒ¥tþqùü£‡%2„®õUDŽßè‹¡Ž³À÷RRöòˆŒ¦5kó¯wò]HSD@_ u}íÛݨÏãnþéèD@…ÇAðµkw# ÂãnþéèD@…ÇAðµkw# ÂãnþéèD@…ÇAðµkw# ÂãnþéèD@…ÇAðµkw# ÂãnþéèD@…ÇAðµkw# ÂãnþéèD@…ÇAðµkw# ÂãnþéèD@…ÇAðµkw# ÂãnþéèD@…ÇAðµkw# ÂãnþéèD@…ÇAðµkw# ÂãnþéèD@…ÇAðµkw# ÂãnþéèD@…ÇAðµkw# ÂãnþéèD@…ÇAðµkw# ÂãnþéèD@…ÇAðµkw# ÂãnþéèD@…ÇAðµkw# ÂãnþéèD@…ÇAðµkw# ÂãnþéèD@…ÇAðµkw#é?íZµŠÞ}÷]wÏ* FŸ––ÀÿV±Uªt†ÿ­¢ïÿÓt͆ FÕªU³75Óÿ$Ý¿?%%%ÑÏþs{A½wÂ…‰Nžt cíÒƒÀåË— 套^ò¤™›LÂc2lnõªÄ,ÇŽ£ßüæ7>ç¯>OX4QŽ€ OpŒ´„"àŸ°h¢"žài EÀ'~>KG`â‚ hË–-ô /äØè>þøcJOOÏÐǬY³hÅŠ’V¦LéûðáÃæo×®5nÜ8ÃxfÏžM;wî¤çŸž®]»F.\ ‚ f(ãýpàÀzÿý÷½“=Ï5jÔ #GŽH_‘õ5·‹/Ò„ hÓ¦M”ššJwÞy§„}{ôèAE‹õÌ'ÐMZZ]¿~òçÏOˆðÁô—¿ü%äúÚÎnžë5€Sr’,Ë¢¯¾úŠ®\¹âéæË/¿¤~øV®\éI[·n¤+VÌ“fn |{‚¾ûî;züñÇéêÕ«&Ûç5wîÜÁ4ÉÉÉtæÌÏ3úÁ¢BÛ‘BÞs;ɱvlØljÕªEÏ>û,Ýwß}ôõ×_ÓþðÚ½{wHCçwèÍ7ß”²¢K—.øâ$Ý´æÁ‚@%J” £Gʤ*Uª$»ÄÞ½{eÁU®\™úd—Ì—/_†¡@¤Ý~ûí‚ömÛd1  ¤Xع˕+Gyòä¡Ó§OS©R¥L¶\±›мyóŠ6*Ì%(Â;wîœìTûöí£óçÏSÕªU)11QòQsÁs\\œ´cžëÕ«GS§N¥­[·R:uèÔ©S´cÇi Ô¡CicãÆT @ióºí¶Û¤C‡Q«V­èᇖ>PM…]ýaÇÞ³g\W||¼`jרàx€~ÿûßK}|4kÖŒ d ô 1—]»vÉ'N´058£¼¯>‘nísi•*U(W®\’eú1ü–àO¡B…2sûç?ÿ)ó‚ö¶2>úè£ôÌ3ÏÒ!x‡ ›6ŸãÇSÙ²eiÈ!Ò_(c…†/ ðÆZ Ý´ð`õîÝ›î½÷^ÂÎ ª]»¶0tÍš5ò|×]w‰ù1tèP¢Ñ£GK: sçÎôç?ÿYêôïß_vVU¼xq5j•/_žÖ¯_O €Á@00wî\iÇ| ]'˜‰½uëÖôꫯÒ÷ßO”Å¿yófÉCÛ#GŽ0SRRèå—_¦÷Þ{Oæb¾çž{dCÃAx °(avÀ|cð á©[·®”Å¡˜Œ±Cø =pÿÇ?þ‘ÌüŸzê)ú׿þ%‚ùaN$,Bœh·`„ؾ}{êÒ¥‹ð `î^,Rzƒ`òüío#'4v >?ùä„ ›´ÆðáÃeãëÕ«ýö·¿¥Ž;J»Ð*0KŸ}n¨?oÞ<á]pP xüú׿¦É“'Kû—?ÞMœ8Q´5ê 4ˆþô§?É\?ÿüsÙ@k|Þ°aƒlÐZ}ûö¥¶mÛ¢¹›¢°™m`˜„Ába§Ÿ2eŠ0‹»j‹-dfç]¾|¹ìfØ‘'Mš$‹L@;°…Á,‚#FÈn°PÎÔ÷5s,@ìÖóçÏ¡€}ûí·ž¢Jìà`ÚÙ³gi̘1’-A6ÚÌþŒEÿó­^½š Pðk°"»#$Å6îÝ» ³L„ »&cD?˜´)Áœ9s¨fÍš„&;f ´ü$ìøÐ,3gΟ>}ºæÒ¥K¥ï@}b>¨M<VÐ\ãÇ—ºþ>¼ç†ëØù¢êÕ«KòÁƒåêw/¾ø"=òÈ#Ô¤IÑTö¶B+6xlrXØü`r‡ƒÂ&ù¤h‹Fɸ ÙØÍ3Ô8L ì¬Ð×l÷6lØPvZìD?ýôA@ ‘>úè#Ù¥·oß.&œð’%KÊŽmâ*V¬HÍ›7—~P®téÒ²ã›òØí±PÑò¶Ä3lp#<ÞÏŠüQÌQÆ]¤Hjò@váiÚ´©œNrŠ 6—ûï¿_L˜º 49C³JØ  ±*T¨ s„­±b£¿`}"‚ͰeË–Ò=°xðÁ Ú8+í²›ŠöúØp@X `¼“B^¡ŒÚ‚ ólá ›6ÛÌ Ì­à c'c…9‚E²lÙ2™.L„`BëŒ7NyFËØM‘?‚Mk'ø=¦ ¤áÀ=ò ñˆêׯ/;ðâÅ‹¥=W8ÉXØ,Œ…<øÁ „&Ž!hH˜ƒY%{°¼€éh¼‚õ‰Lc³¨Qüõ‡Ìl_dÖ€¿ÅjÌzS.ï|õÊXÁgCØ8¡‘ÃAa#$Á…& L'8œPÅ øݺu»Ú¦ÇرcÅ©D>œ^,(L‡Ò˜Š¶°ð ¡h#T~ A4up…ð¯AÈu`Gƒ°³ÃoÁ.k×:’‡™ìx`‚°¯]»6ƒ †Ð” …Áú„  šiþˆÁ iöÂϾü…¶ƒ™ÿÈgPæ.„˜Á,ãòú6V7sðªzÓa3ÛB üDð¡B± A°õa—"’õ Êa„ÆúôÓO%Bû»´?“-Z$»$ltøLÆtDô‹èLF0Ñ+ìm8­f—ô~Æ8Á® 1t÷ÝwË&€t»š|_WDAèšó…O‚¹!í­·Þ_̾Ø|µ“Ý4lú^ð V0+!Lð;@Ðf°‰C¨÷†ìsƒðõìÙS¢¬ð[`i@@°i½òÊ+b¦"àa(ïÐ.ê‚wv 6V{Ùpßß2á1ÒE¡AÔ¶¨!Do %:uêDmÚ´‘°7œmìJýúõ“@Ãc=Fˆô5oêš¶ñ Õ!€3ÌÁ7á@;Ð~ˆ¢„vÆŒrõõŒ4£YŒÉ†40Õ¤›+Ò1&û¸poÌ h1˜O?ý´ÌÓD1Vød{8¸‚¨’)ö y§y÷aÊájϳ§Ãœ Ô'æ×µkW1Sq… 6DÇ@àÎg °PÞŒË>7XØPŠÆ1"Ð@8÷1~­=˜ˆw0÷±>úôécŸŠôh¬ÞàÙ;-CƒYxÈôe8øxÛDe²ÐVÈE À®ÍN°Eñ¶ìvcZ™|Øÿp ‘ŽâªF(æ¢Yp¼á˜ÝŽ%BÕÐJ°“aRÀ‰vŠ0ŒZ„¹c̸ÂW2¾cNŽ/XŸðq°Ùso¬0~l8ÞÆë=73à!‚æòn/ïL}„Ì‹1óL:®Æj/—Õ{Ìò¿ÖX)ÿm#5l>O(ƒ#±‰ß› "C¾ ç¡Ú ä¬{;¦¡´î2˜þ ³)Îk°>!ØF¸½ûÅØ} ÊyÏÍÔ…Ïdü&“æ} 4&@û£@cõWçfÓo©ð@Š¿øâ 1 L4;€ÉcW÷¦ ìhæ“f®ç'J‘‰@ ÞEæˆÙ,f§.à B·Âl‹T0t\Š€7̶[0ð”>+nG@…ÇíÔñ;†€ cÐkÇnGÀoÀ`ðàÁnŸ›Ž_¸iü Ðp&áÁÙˆyÕü¦{Ö(@2agÐL)S´ÍdèUP"ª>O@|4Sð€ l4Gˆ€ O@x4Sð€ l4GˆÀÿ2"pGЗaaIEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1RefCountedPointer.html000755 000765 000024 00000076015 13515046516 026223 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::RefCountedPointer< T, Destroyer > Class Template Reference
MySQL++  3.2.5
mysqlpp::RefCountedPointer< T, Destroyer > Class Template Reference

Creates an object that acts as a reference-counted pointer to another object. More...

#include <refcounted.h>

Inheritance diagram for mysqlpp::RefCountedPointer< T, Destroyer >:

Public Types

typedef RefCountedPointer< T > ThisType
 alias for this object's type
 

Public Member Functions

 RefCountedPointer ()
 Default constructor. More...
 
 RefCountedPointer (T *c)
 Standard constructor. More...
 
 RefCountedPointer (const ThisType &other)
 Copy constructor.
 
 ~RefCountedPointer ()
 Destructor. More...
 
ThisTypeassign (T *c)
 Sets (or resets) the pointer to the counted object. More...
 
ThisTypeassign (const ThisType &other)
 Copy an existing refcounted pointer. More...
 
ThisTypeoperator= (T *c)
 Set (or reset) the pointer to the counted object. More...
 
ThisTypeoperator= (const ThisType &rhs)
 Copy an existing refcounted pointer. More...
 
T * operator -> () const
 Access the object through the smart pointer.
 
T & operator * () const
 Dereference the smart pointer.
 
 operator void * ()
 Returns the internal raw pointer converted to void*. More...
 
 operator const void * () const
 Returns the internal raw pointer converted to const void*. More...
 
T * raw ()
 Return the raw pointer in T* context.
 
const T * raw () const
 Return the raw pointer when used in const T* context.
 
void swap (ThisType &other)
 Exchange our managed memory with another pointer.
 

Detailed Description

template<class T, class Destroyer = RefCountedPointerDestroyer<T>>
class mysqlpp::RefCountedPointer< T, Destroyer >

Creates an object that acts as a reference-counted pointer to another object.

Resulting type acts like a pointer in all respects, except that it manages the memory it points to by observing how many users there are for the object.

This attempts to be as automatic as reference counting in a programming language with memory management. Like all automatic memory management schemes, it has penalties: it turns the single indirection of an unmanaged pointer into a double indirection, and has additional management overhead in the assignment operators due to the reference counter. This is an acceptable tradeoff when wrapping objects that are expensive to copy, and which need to be "owned" by disparate parties: you can allocate the object just once, then pass around the reference counted pointer, knowing that the last user will "turn out the lights".

Implementation detail: You may notice that this class manages two pointers, one to the data we're managing, and one to the reference count. You might wonder why we don't wrap these up into a structure and keep just a pointer to an instance of it to simplify the memory management. It would indeed do that, but then every access to the data we manage would be a triple indirection instead of just double. It's a tradeoff, and we've chosen to take a minor complexity hit to avoid the performance hit.

Constructor & Destructor Documentation

◆ RefCountedPointer() [1/2]

template<class T, class Destroyer = RefCountedPointerDestroyer<T>>
mysqlpp::RefCountedPointer< T, Destroyer >::RefCountedPointer ( )
inline

Default constructor.

An object constructed this way is useless until you vivify it with operator =() or assign().

◆ RefCountedPointer() [2/2]

template<class T, class Destroyer = RefCountedPointerDestroyer<T>>
mysqlpp::RefCountedPointer< T, Destroyer >::RefCountedPointer ( T *  c)
inlineexplicit

Standard constructor.

Parameters
cA pointer to the object to be managed. If you pass 0, it's like calling the default ctor instead, only more work: the object's useless until you vivify it with operator =() or assign().

◆ ~RefCountedPointer()

template<class T, class Destroyer = RefCountedPointerDestroyer<T>>
mysqlpp::RefCountedPointer< T, Destroyer >::~RefCountedPointer ( )
inline

Destructor.

This only destroys the managed memory if the reference count drops to 0.

Member Function Documentation

◆ assign() [1/2]

template<class T, class Destroyer = RefCountedPointerDestroyer<T>>
ThisType& mysqlpp::RefCountedPointer< T, Destroyer >::assign ( T *  c)
inline

Sets (or resets) the pointer to the counted object.

If we are managing a pointer, this decrements the refcount for it and destroys the managed object if the refcount falls to 0.

This is a no-op if you pass the same pointer we're already managing.

Referenced by mysqlpp::RefCountedPointer< SQLBuffer >::operator=().

◆ assign() [2/2]

template<class T, class Destroyer = RefCountedPointerDestroyer<T>>
ThisType& mysqlpp::RefCountedPointer< T, Destroyer >::assign ( const ThisType other)
inline

Copy an existing refcounted pointer.

If we are managing a pointer, this decrements the refcount for it and destroys the managed object if the refcount falls to 0. Then we increment the other object's reference count and copy that refcount and the managed pointer into this object.

This is a no-op if you pass a reference to this same object.

◆ operator const void *()

template<class T, class Destroyer = RefCountedPointerDestroyer<T>>
mysqlpp::RefCountedPointer< T, Destroyer >::operator const void * ( ) const
inline

Returns the internal raw pointer converted to const void*.

See also
comments for operator void*()

◆ operator void *()

template<class T, class Destroyer = RefCountedPointerDestroyer<T>>
mysqlpp::RefCountedPointer< T, Destroyer >::operator void * ( )
inline

Returns the internal raw pointer converted to void*.

This isn't intended to be used directly; if you need the pointer, call raw() instead. It's used internally by the compiler to implement operators bool, ==, and !=

WARNING: This makes it possible to say

RefCountedPointer<Foo> bar(new Foo);
delete bar;

This will almost kinda sorta do the right thing: the Foo object held by the refcounted pointer will be destroyed as you wanted, but then when the refcounted pointer goes out of scope, the memory is deleted a second time, which will probably crash your program. This is easy to accidentally do when converting a good ol' unmanaged pointer to a refcounted pointer and forgetting to remove the delete calls needed previously.

◆ operator=() [1/2]

template<class T, class Destroyer = RefCountedPointerDestroyer<T>>
ThisType& mysqlpp::RefCountedPointer< T, Destroyer >::operator= ( T *  c)
inline

Set (or reset) the pointer to the counted object.

This is essentially the same thing as assign(T*). The choice between the two is just a matter of syntactic preference.

◆ operator=() [2/2]

template<class T, class Destroyer = RefCountedPointerDestroyer<T>>
ThisType& mysqlpp::RefCountedPointer< T, Destroyer >::operator= ( const ThisType rhs)
inline

Copy an existing refcounted pointer.

This is essentially the same thing as assign(const ThisType&). The choice between the two is just a matter of syntactic preference.


The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1ConnectTimeoutOption.html000755 000765 000024 00000031441 13515046516 026747 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::ConnectTimeoutOption Class Reference
MySQL++  3.2.5
mysqlpp::ConnectTimeoutOption Class Reference

Change Connection::connect() default timeout. More...

#include <options.h>

Inheritance diagram for mysqlpp::ConnectTimeoutOption:
Collaboration diagram for mysqlpp::ConnectTimeoutOption:

Additional Inherited Members

- Public Types inherited from mysqlpp::DataOption< T >
typedef T ArgType
 Alias for template param.
 
- Public Types inherited from mysqlpp::Option
enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 
- Public Member Functions inherited from mysqlpp::Option
virtual ~Option ()
 Destroy object.
 
virtual Error set (DBDriver *dbd)=0
 Apply option.
 
- Protected Member Functions inherited from mysqlpp::DataOption< T >
 DataOption (const T &arg)
 Construct object.
 
- Protected Attributes inherited from mysqlpp::DataOption< T >
arg_
 The argument value.
 

Detailed Description

Change Connection::connect() default timeout.


The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1SecureAuthOption-members.html000755 000765 000024 00000015304 13515046516 027507 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::SecureAuthOption Member List

This is the complete list of members for mysqlpp::SecureAuthOption, including all inherited members.

arg_mysqlpp::DataOption< T >protected
ArgType typedefmysqlpp::DataOption< T >
DataOption(const T &arg)mysqlpp::DataOption< T >inlineprotected
err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
set(DBDriver *dbd)=0mysqlpp::Optionpure virtual
~Option()mysqlpp::Optioninlinevirtual
mysql++-3.2.5/doc/html/refman/namespacemembers.html000755 000765 000024 00000006462 13515046516 023016 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Namespace Members
MySQL++  3.2.5
Here is a list of all documented namespace members with links to the namespaces they belong to:
mysql++-3.2.5/doc/html/refman/functions_func_t.html000755 000765 000024 00000013533 13515046516 023052 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Class Members - Functions
MySQL++  3.2.5
mysql++-3.2.5/doc/html/refman/refcounted_8h_source.html000755 000765 000024 00000103704 13515046516 023621 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: refcounted.h Source File
MySQL++  3.2.5
refcounted.h
Go to the documentation of this file.
1 
4 /***********************************************************************
5  Copyright © 2007-2011, 2018 by Educational Technology Resources, Inc.
6  and © 2007 by Jonathan Wakely. Others may also hold copyrights on
7  code in this file. See the CREDITS.txt file in the top directory
8  of the distribution for details.
9 
10  This file is part of MySQL++.
11 
12  MySQL++ is free software; you can redistribute it and/or modify it
13  under the terms of the GNU Lesser General Public License as published
14  by the Free Software Foundation; either version 2.1 of the License, or
15  (at your option) any later version.
16 
17  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
18  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
19  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
20  License for more details.
21 
22  You should have received a copy of the GNU Lesser General Public
23  License along with MySQL++; if not, write to the Free Software
24  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
25  USA
26 ***********************************************************************/
27 
28 #if !defined(MYSQLPP_REFCOUNTED_H)
29 #define MYSQLPP_REFCOUNTED_H
30 
31 #include "common.h"
32 
33 #include <memory>
34 
35 #include <stddef.h>
36 
37 namespace mysqlpp {
38 
46 template <class T>
48 {
50  void operator()(T* doomed) const { delete doomed; }
51 };
52 
53 
80 
81 template <class T, class Destroyer = RefCountedPointerDestroyer<T> >
83 {
84 public:
86 
92  counted_(0),
93  refs_(0)
94  {
95  }
96 
102  explicit RefCountedPointer(T* c) :
103  counted_(c),
104  refs_(0)
105  {
106  UNIQUE_PTR(T) exception_guard(counted_);
107  if (counted_) {
108  refs_ = new size_t(1);
109  }
110  exception_guard.release(); // previous new didn't throw
111  }
112 
114  RefCountedPointer(const ThisType& other) :
115  counted_(other.counted_),
116  refs_(other.counted_ ? other.refs_ : 0)
117  {
118  if (counted_) {
119  ++(*refs_);
120  }
121  }
122 
128  {
129  if (refs_ && (--(*refs_) == 0)) {
130  Destroyer()(counted_);
131  delete refs_;
132  }
133  }
134 
143  {
144  // The create-temporary-and-swap idiom lets us keep memory
145  // allocation in the ctor and deallocation in the dtor so
146  // we don't leak in the face of an exception.
147  ThisType(c).swap(*this);
148  return *this;
149  }
150 
159  ThisType& assign(const ThisType& other)
160  {
161  // The create-temporary-and-swap idiom lets us keep memory
162  // allocation in the ctor and deallocation in the dtor so
163  // we don't leak in the face of an exception.
164  ThisType(other).swap(*this);
165  return *this;
166  }
167 
173  {
174  return assign(c);
175  }
176 
183  {
184  return assign(rhs);
185  }
186 
188  T* operator ->() const
189  {
190  return counted_;
191  }
192 
194  T& operator *() const
195  {
196  return *counted_;
197  }
198 
218  operator void*()
219  {
220  return counted_;
221  }
222 
226  operator const void*() const
227  {
228  return counted_;
229  }
230 
232  T* raw()
233  {
234  return counted_;
235  }
236 
238  const T* raw() const
239  {
240  return counted_;
241  }
242 
247  void swap(ThisType& other)
248  {
249  std::swap(counted_, other.counted_);
250  std::swap(refs_, other.refs_);
251  }
252 
253 private:
255  T* counted_;
256 
262  size_t* refs_;
263 };
264 
265 
266 } // end namespace mysqlpp
267 
268 #endif // !defined(MYSQLPP_REFCOUNTED_H)
269 
T * raw()
Return the raw pointer in T* context.
Definition: refcounted.h:232
~RefCountedPointer()
Destructor.
Definition: refcounted.h:127
RefCountedPointer(const ThisType &other)
Copy constructor.
Definition: refcounted.h:114
void swap(ThisType &other)
Exchange our managed memory with another pointer.
Definition: refcounted.h:247
Functor to call delete on the pointer you pass to it.
Definition: refcounted.h:47
const T * raw() const
Return the raw pointer when used in const T* context.
Definition: refcounted.h:238
RefCountedPointer(T *c)
Standard constructor.
Definition: refcounted.h:102
void operator()(T *doomed) const
Functor implementation.
Definition: refcounted.h:50
ThisType & assign(const ThisType &other)
Copy an existing refcounted pointer.
Definition: refcounted.h:159
T & operator *() const
Dereference the smart pointer.
Definition: refcounted.h:194
RefCountedPointer< T > ThisType
alias for this object's type
Definition: refcounted.h:85
Creates an object that acts as a reference-counted pointer to another object.
Definition: refcounted.h:82
This file includes top-level definitions for use both internal to the library, and outside it....
ThisType & assign(T *c)
Sets (or resets) the pointer to the counted object.
Definition: refcounted.h:142
T * operator ->() const
Access the object through the smart pointer.
Definition: refcounted.h:188
RefCountedPointer()
Default constructor.
Definition: refcounted.h:91
ThisType & operator=(T *c)
Set (or reset) the pointer to the counted object.
Definition: refcounted.h:172
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1FieldNames__inherit__graph.png000644 000765 000024 00000013075 13515046516 027646 0ustar00tangentstaff000000 000000 ‰PNG  IHDR®m8pZôsRGB®Îé÷IDATxí]´Å-r”œ³A$©A IŠ’T’¢Hæ €(*AƒŠŠ” ’£äœsÎ<èß·ø½6=vvgÇåSuÎ{3Ó¡ºúöíêêÞÙ÷(-$"Üc$¼ÇìsF@ˆ+D¸'âÞ“Ã&F q…÷$‰}­>yò$ýóÏ?¾Éò,ükdÏž .ìÕ¾qMn±bÅÌ­\ l;(q3gΰ‚$ n"pìØ±€ÍIŒIŒu„¸±>Bb_@„¸a‘ÄXG@ˆë#$öD ªÄ‹‹£3gÎl‰ .¤š5kÍfÆÝl‹fÛVÝW®\¡‹/Z“¼îÀèn}ݱcÃñãǽڎ凨÷·ß~£Œ3ÒÍ›7bpêÔ)Z¼xqÀ¼h'ÞͶh·oô·lÙ’š5kfý®N`t·¾Þºu‹.]ºD·oßök?V#îÑ£GiÞ¼y„+äÚµktâÄ ¾ß·oŸ”ëׯÓÚµkéôéÓœgý…ÌýV6l ‡zˆ~úé'Ê’% ¯ð¼èóªU«hÓ¦Mb[ゾ`¥ÀxÂ^>ª¢AöM65þ|¯´øt§Ô³Ï>«’$I¢R¦L©'N¬F¥þúë/•0aB¼2©%J¤öîÝ«4)Tºté8-A‚ªT©R*UªTõéÓ§Wo¿ý6?ëIÀå4‰”þ0D=÷ÜsžršôÜÞ°aÔdÕ¼ys. ÐÖÀ=e{öì©ÐV²dÉØž† *èöµmÑ¢EJÛ“½Šr:ð._¾¼Ê”)“Wñ=Õ«WW“'Oæ1ò+bÂÆÕ¶mÛüJÃ;x‰]âþøãÜ íñ”ž‰êÃ?T9sæäŽN:•óôìå6Ê–-«ž|òI¥?RV ÐJÜ>}ú¨iÓ¦qYíÙT—.]˜ðŸ~ú)U{]ÎÃÄHš4©Ì“eúôéJÏr5zôhnsåʕ܀>|¸ÂÀNš4‰ó01­¶üùòåSõêÕS°ϸG?´wö·H‘"ê—_~QÚÓ°hO/Ã\6Ož<ªW¯^êüùóœo~½üò˪R¥JlƒövªtéÒªcÇŽœýꫯr}S6\ŒìŒH ü€^=üˆ ̆ ÂX`Lð¼gÏÆ}¬S§ŽÒ«;ýql@â®Y³F5nÜX¥H‘‚óAä-[¶˜n†|qõrÂ^¤Q£FjΜ9J/}L`Xf%‚w1ÄD>ÏJ\¤ 6<ä¸qã8»Zµj d€”)SFa°~àíàÙ>úè#Õ¹sg•!C.g~¼Û·o÷²ÍxN˜b<(0x[ãqш=T=˜Ø˜&Mš¨¹sç21= ,7˜ÌðâðÈÐ…Éa&³•¸‘`ê8À,í1ý77þü&‹‰ fÏž­V¬XÁ$ÎFÞzë­€Ä5ù:œS#FŒàz*V¬¨ÆŽË“À”‰ïŒ¸Ǹš8¤=ÇBzI!|T¬—jm£·h˱Ÿ&™'C‡ žûønräÈAÏ<ó M™2…!mÑ¢WAüŠ8L{Hþ©_¿>ép„ô$!|έÉKµ0Žé¬‰æópí =Éx±bâbÜ/^:t(õïߟôÓîÝ»iâĉlŸž\œïûK“œš6mÊõJ–,I:œ Mßb F¡ŽƒiÔôÅ<[¯ˆuè Ç·ˆs±¯€è°‡¯øu·1L›6-µiÓ†cû™3gÒæÍ›yì0f‘H`¤mhD`6:FåAÅfÉ*:âG«Á¨ªè8–´W£1cÆð&BÇÕ\¤Ö±¡=ó£c_Òñ(eÍš•´wõÚ¶nÝš´Wöj6[¶lü¬g·']{¾×!„'ÍÜ´k׎ôÒG:N%>t.[¶Ìdû]a·ŽµyÒA¯‘¨{÷î~å"Á(Ôqðk4@&} 18éUÓ£´øO½' ªU«RíÚµ xb|"~‰Ë×MÛqáö5A”ÞÑóR9räH^µgT3fÌà¥î^ï<¹b\,—XZQÏ* ¦ýùçŸÙ$äíÛ·W»víâg„ <ðdz(g1%6…zWÌqW¿~ý¸M½{Wþù'ßwëÖMaóÔµkW^Öôé—mxF¬V¥J¥'–B,]¡Bõøãs3&T@ÜmĈ-õjÀa~õN}òÉ'žØ”ÅF› íÙ9ŒBŒˆ K´ƒ6;“p0 u°ÉB¨€°Åˆo¨€ —,õš˜J{K¶O“Wi*}ª °¯@hs[µj¥Ò¤IÃ?Úë*„3v%X¨ñæ „zê©§¸sèvæƒ bûô»½üŒŽë%•c`sª€˜»tÑH°S“¯ÃnÇäë­^|ñENG;&–4uúöíë9A@ì6~üxÎòµ ' è€m äM$ ãTé¾Ä5màŠÍ‹‰{}Ñܹs3¹±)*Q¢„ÂÄ‚üðÃ<{ì1~Æ>!ŒìŒƒ>þò:y±ûÄ¡F¬ÄEN=€ ðÀXk/ʱ¾)o®:uòij°-\‰qA8ÞÁN»w«`WލtkNLz¤Wx3ARç§ žL/i~é¾¶áTlÞ|ûáW9HNà‰}EŸwª¥K—2Á}ó`3V$#‘`ê8˜¶ì\±¡„çŤÇ*éÝ»7‡úê–NH0â&€r={ú(é³ðñ¸ÿúˆá Ä µëÄÅÝ;o[…Ø¥˜)&ÄÒP>|–~üqe”´‹Ú 1.>V éÓwÒúõÇ)gÎká+‘šŒ€ùøÝ ‡qõ'‘gmá>½ïÑc íÝ{š2eÊ£?z~à>EÁ™n›÷%¬Úüˆ«ß[åãk!¹·‡ÀŽǘ´¨µdÉ~jÛ¶Š=Rú®HŒ{Wˆì˜6m-%I’H¿¡Fú›Þ/ôØ×&5! Ä „J„i ëÍ›·ô{ ¤ß ;¢_}<¡F©î‹€×‘Ÿ×­; _ïüß÷ã'ND¿ü²6B­RÝ!®/">O›¶†Ã£&.îMž,Çb§®B\§Ôzô«®ôóÏk8L°ª=xð mÜèýb½5_îí# ĵYÐK—îÔ_£¿óÕsk!lÔ°aq!®sXÒÔ©k1­¯`£Oìó©o1y¶€×Xñ½qãýöÛzBLHNº¨¿ ¹'P–¤…€7 ÐUùóÏ-ú/ÒþSS('\¸óÌ@õ%ÍB\{x-}'LüíXTB¸ðë¯ë´G–7Æ‚‚h#Cˆk¬`E/_¾®¿:ÿÏ]Iyñâ5š?k05’n¿wlÔ•¢ÿE`ƃúŤúÃýÏ›"¦½|ù†þã=8áïlÛvLÿùÇ0P¼ñû²d˜z¤šþNýµ•æÌyß'G@@B'P®# ÄuriÐ „¸N (:\G@ˆë:äÒ q@Qt¸Ž€×uÈ¥A'â:¢èp!®ëKƒN ÄuEÑá:B\×!—@@ˆëŠ¢Ãu„¸®C. :€× E‡ëq]‡\t!®(Š×⺹4èB\'P®# ÄuriÐ „¸N (:\G@ˆë:äÒ q@Qt¸Ž€×uÈ¥A'â:¢èp!®ëKƒN ÄuEÑá:B\×!—@@ˆëŠ¢Ãu„¸®C. :€× E‡ëq]‡\t!®(Š×⺹4èB\'P®#`ë/’¯_¿ž ຑ÷bƒ§O§ÐJ? åÉsá^4ßu›kÖ¬I-Z´¹][ÿâèÑ£úߨÿD•*U¢D‰üÿ]È­Þ'“'':qâ>élÝ„CÌ–-[ôˆklëÞ½;¥H‘Â<ÊUˆŽ;Ú®/1®mȤB, Ä…Ql# ĵ ™Tˆ„¸±0 bƒml*ØÖþ/W˜3gmݺ• þí˜Þ§Oºzõª_•Ì™3S£FhذaÔµkWÊ!ƒ_k Aƒ¨téÒTµjUk2ßcç=iÒ$úì³ÏèÚµkÔ»woÊ’% uîÜ™ð+Œ7Ž&LHÍ›77Iÿ—×ÿkâø Ç^èulŒ>`Ìn胓HŸ>=åË—Ïk0õ¼F•¸ìwÞ¡’%K–:HñâÅ)iÒ¤/yøá‡éË/¿¤?þ˜IñÅ_p:ȇe¶}ûö\§Gìu°LbÀ¬?•ÊCðR={öd2`É,X° |³fÍb=æô‚øgÏžå ¯OÕ¥KZ±bõêÕ‹J”(A[¶lÑÿ=Žuþùç<é ã¥—^¢jÕªQ§NhíÚµôþûïÓСC¹o¦@Wx@`ðý÷ß3IçÎ˶£ ºL™2„PÃLN£ýBŸAúå+-[¶¤±cÇÒ×_Mݺuóͦ7r¿LÜ5œ…±ÁdÏî)S¦Ð˜1cxR\¹r…Ê•+ÇŸ°ZC?ã"Lpes–*U*þÄ ˆånòäÉL8^¥zõê 4ˆY¼x1ÏÚ*UªÐøñã™@¿ÿþ;ëÁ<}út&ØÀÙ;‚(gê„F¼;{öl&,ȽtéROQLˆ3fÐĉéÂ… 4jÔ(Oˆ ’Að)&®F-ZDýû÷÷ú9räˆÉæëáÇ9F­S§ýúë¯ôÝwßñJ1a¯rx€'Åêb‚l˜È¾{[·n­ÿÑõZ·no6=šyäš:u*;xBôÍ*¡ŒM|vƒ¨ ío¼ÁmÀV8‚h‡h®·iÓ¦ì%1!8„æùرcT¹rež± ,dÁ‚T¶lY^sæÌIð\ 'pøðáÔ¶m[Ú¹s'¡nýúõy9E9k¼ÇŠ,¿0pðšXÞQ.{öìì±M‘×^{C £Ç¬Èýõ×ù£nÜ#¿M›6^Ä…N,ËÖF }ƒ§ÅGæ V¬8&^½SŠx ß¶m5lØÉ†•àé§Ÿ6Ù^×矞É9dÈ-¬™ðØ:t C‡qÛN:e-B¡ŒM|vËc,gΜÉ(W®\ôÇp¿¼rø!ª¡‚±Õì¦Íû xˆYJ3"|â‰'háÂ…îC›øìFW0.­°š"Äé‡oß6xv…¸† w3áb],ר|U¬X‘«¬^½šš5kÆq%¼,–#,ƒ,ÈéÓ§Ù£ã/«··ƒ.?xaBšø&©cç ’` "¤L™’«b%'´ŠÙÈíÙ³ÇÓ/” &XI7nÌÄÅž1!AÚzõêñêaÂ`…²J(cŸÝ˜˜‰@Tvåʕԯ_?^EK\ B5»c씿ýö[öºX† X†pŠS NP^ƒŒƒ bß`‚ÍÙ¼yóØ“bP±l›puÐ.ô LÁæ'FFŽIˆc!ˆ•¿úê+^îM~(WèÆ í äY¾|9oªZž»sÄ£èl÷ŒOš4iÂ+B#[ +Ú²eË8žGŸíJ|vc"bŸ8íà4i¾›M»mÞ­|L×Ìz±¯U«–ÇvxxÇW^y…j×®ÍGkxw^ Ë–VÄzب˜0ÄT6ºñŒP„CLŒ8 ç F0èЯ“ëû¡XpšÁš6m_MÝP®˜hØbr½ð l;6`¦ØŠ¬6è<.lüàƒøÄÃÚ´g}vŒ€° 4àÍ]5¸ßh“׺é4åƒ]ÑF|vÉ`Ò@gݺuùƒÄä>D ÖF8é¶^$Ç.„‚´ž£†Óp°:ØxÁÃÀ+Yž ç¯3fô,ç&gˆø°Ë<<Èé{†eÇB8SÅ2Î|Í9í’%KøØÞØœ'cà£%8â‚ hÄ&ÚB8ƒr˜Œáz0Äé8!A!ðô8ëgüâ³íÀVÜ„Aú( “ 㪸ã†b ¼<&E»víüª FÃÑN ·ÁÙd(=ðrÁÄw¬\$é8‚²n(ƒéB8äûi\°²ÁÒJ™˜e°é Wâ³mÀÓº%1C\,¿8ÛIJƒ¥-\ÁÀXwãFŽi®_¿n½®½hÑ¢^iòÛÄ qSâH%RÁFº©2úpFLp|ƒOŸDîbbsvïÀ%–Æ BÜX ±ÃB\[pIáXA ¬[!šçÅ 8b‡;àÍ®Ø".Îq¨-"8‰N‘J•*eK¥­ li–‚@7ŠàŠêè! Ķ¢9Šq£®¨ŽBÜèa+š£ˆÀäç¢ÎëIEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1SetCharsetDirOption__inherit__graph.png000644 000765 000024 00000021267 13515046516 031536 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÔ·j¾pìsRGB®Îé"qIDATxí]˜UÅ>Ë. HïéE¥J ˆBAEÁ`AB‘¤•h¢Q‚‰¨ôŽ!€Ò–¥÷&ué,,}—›ù™»wß»o ûê}ç|ßÛ;wfî”ÿÌ)sæ¾·†aÌ$!A@ð J  ¯´$‚e AÀ{ˆ@yKiI %k@ð&QÞlÌŸmíß¿ŸvìØáÏ.¥/?!P¥JªQ£†Ÿzór7J„"3Áù8ƒwß}7—$9d-ôJùòåéðáÃ^V1Ò\ øÕ¯~Èî3Ý·%2 ¡4 $# •Œ…¤L# •i¥A ¨d,$%d¨LC( Ɉ@%cáÓÔôéÓéwÞñiºñÉ“'Ó3Ï0ÆØÑ>0Þ¹s'%%%™åa‘Õ#i¼)¡vÓ=ü~ýú¥K—6Ê–-ËoWdÉ’Åxûí· å™o[|ôÑGƉ' ”7Îl[-(#22Ò8sæŒñé§Ÿ9sæ4òäÉÃϵlÙÒP‹Žëª…l¶/_>C½BctîÜ™ËÞ{ï=£víÚœ~íµ×ŒjÕª 0¢££ù™7ß|“ËæÏŸÏ÷ 64ËPã­X±‚ËÕbæûnݺ… ætûöíbÅŠJ(øÞúgÛ¶müÜĉÔúPŠ‚ç¯?ÏY)ÆíÏþ37÷Ÿÿü‡1Ù³gç¾ñ c¬•*Uâgц²Œ&>\)?uëÖ5BùM‰°±PÐŽjQRß¾}Y?õÔSì)¡bkñòË/Ó—_~I¥J•¢F¥Ø3Ìš5‹P_-"Öþ£GægÔâ¢eË–±+«„ü#F°ÖV™Âò +íÝ»—ÆŽËÖæ«¯¾"|.\hV)Y²$]¹r…H$\AO?ý4õéÓ‡Ó°t5kÖ¤lÙ²ñ½õOõêÕ9ÿÈ‘#f¶]76çK¨Y–§S§NT¿~}º|ù2cðøãSÇŽI[tÌ«G~ü8ÕªU‹™î¤L™2:évų„\ï]_®\9³ãÄ~,-BDϺ³ÖÇþ ûÔÑ”Ñ>0GУ>ª› ©Þ+b¬š€(œöQa%PšôPÞ¼y©uëÖìúÀ݃0åÊ•‹âââ.Ó?üÀ.¬Ò–-[aê¢E‹’Úc¥hÞê^¥(P7§OŸ6³`å ýµ‡kùÚµkS”™º$š4iÂíØE¤ÀoÑ¢…ùTFûPû3~Öúµ™˜˜ÎÓ®az16á°DX TFx·Z]x€gáâàL‘4µ·&d`«7K»ŒjÓÏû„¨Ssu°g̘Áû£!C†pdL8Ì!Âà 1´jÕŠË~‡Ûªß²ÿî»ïhðàÁ\†¨ž ¼°2€%EärÏž=ì†N:•÷^°ªš<õy‚àÆažš`™`‘Þÿ}Úµk@¼!nµ|º~X^ÓºmqF£|ýû÷74h`Îçã?6”E0ïUP€#S:C¹q…Sn›¡\mŒ9’£[jÿeࣺº –6”†æh¢‡Jk§ˆòÕ©S‡ë!ʧ ·¯‘?~óéœÚ—q;Ê55”µ4T¨šË]£|o½õ–¡¬#—á²:YC»ú£ÜZC@Ì:iõ¡ÜK3ú©×:ʇþ *Äm#ªöt†:>à¶]1V ë-]ºÔì;­D¨Gù B’2*P$„ iÔ¨Qnªý‚ð±Ú軕a1ªH—¡†r¯L²V„@µmÛÖPçZ†rŸLD½ØQ†Å¬Îu¬¦;Ŭ\ECY·°uzú@èó´#ý3”…5”µL¡lìêf4/Ô*¤¿`è+—®žÒªáSÀ­¼Eðä“Oºå#Cioþغd"0‚p¶'r \xªg—} ²ÈvE)ò<õ(>v„½˜²¶vEaŸ'e³°gÁÆAkÔʦjªY?ü°m»råÊn·{Š0¼/7÷þèÃnná²?t‰³˜I“&™›óp`V8Ì.«·VBrºå I¶É ƒ¨`åŒe\7oÞUç^7,9’ VBz…WmpNãtн¨ö\‰*ÈPÔéSåóPždH ¾*€—ZN ´Qïàe§Ï>ûÞéS ùù…lP"ä‘OçâãoªÐúõb+¾Ç5\½œkÿòk:›“j>F@öP>8³Í/Y²_ÿ‰ŠÊB lÍlsò¼ò1À™m~öì-J "”…2hæÌÍ™mNž÷1"P>83ÍŸ;w•6n<òÿ¯»ê«qtèÐ/_ÝÏL»ò¬ïò¶™nyÁ‚XŠŒLþÊIÖ¬‘4wî/_—ÈtãÒ€Oò ¬Þi.žzG×lìîÝ$uL°É¼—Dð! |<á;vAýªÒ©ßGBÁ©SWhÛ¶ãA:j–T®ùó·ªßÖsgܾyó$Ú¤l“ ¬Œ»‡³'W‚Û7gNŒ›år­'÷AÀ]fÒ«Ý»O«_rÿL]åÒ¥Z·î¾•k! DÌÐC™7/FýVE¤¾u»FEÁí“hŸ0A!LpsáÚy¢ÄÄ$õ£˜±©Öñô¬äû(ßâ›áÖq‹]X¡èè_>°VøDGGñéë×ï¨ßWß›áöåß"Òo›ûšÀ´¡9²mŠÎáÞá;Q:ÔK‘Ÿ'OŽ÷rxämóÀó Íôé3CýÞ š6­Kšu¥B`—/°øKïC@Êa •é¨Àâ/½; (‡1T¦XD ‹¿ôî0D ÆP™N` ,þÒ»ÃrCe:E@*°øKïC@Êa •é¨Àâ/½; (‡1T¦XD ‹¿ôî0D ÆP™N` ,þÒ»ÃrCe:E@*°øKïC@Êa •é¨Àâ/½; (‡1T¦XD ‹¿ôî0D ÆP™N` ,þÒ»ÃrCe:E@*°øKïC@Êa •é¨Àâ/½; (‡1T¦XD ‹¿ôî0D ÆP™N` ,þÒ»ÃrCe:E@*°øKïNCÀúæ›o Å·ýdÍZ؈Ž.²ãöŸþy¬4Ûÿ±Iß~û­ÓôaḨk×®!1No 2l*K–,ôÒK/y3i#ƒôêÕ+ƒO„nuÙC….ïdäAˆ€T2E†ºˆ@….ïdäAˆ€T2E†ºˆ@yàÝž={¨mÛ¶TªT)ªR¥ õéÓ‡Ö¬YcÖNLL¤K—.™÷®‰P‹-èìÙ³®E÷u?yòdzæ™g¨H‘"T¡Bzá…hÕªUénëÆtíÚ5®ïí±¥{aPQʆÉêÀ„^|ñE:tèuïÞúõëGÛ·o§&MšÐòåËù‰E‹QÁ‚éîÝ»6-%%%QBBÝ»w϶<#™½{÷&„ž£¢¢høðá<¦cÇŽQóæÍiüøñéjªK—.Ô±cG®ëͱ¥«ópª§m8ØÍš5kº§ª„…Q•@™Ï¨Eh”,YÒèܹ³qóæMc„ \Gi{e'Ož4®^½jÄÇÇÛ¶m3”3Μ9Ã׋/qqqÆíÛ·M›6;vìà|³q•PĈ‰‰á6îܹÃí |ÅŠÜÏСC­Õ¹-%PFŽ9̶ÑhïÞ½ÆO?ýÄupáÂã¹çž3š5kfœ:u*ÅØP:qℱdÉcëÖ­†R¿dª¿é»YÙC¢hÑ¢as°K0pTvFê믿æE ¡±ÒîÝ» |”«e¨s-®£Œ£G•*U2ž}öY#gΜ¼x7lØÀå(SΨV­×A}¥° ƒ^¸Ê•4”µã|~ýúõB… q×íÛ·7Š+fܺuË:NCpÑÖĉùóçsºaÆꭊhN£OÊÛo¿mDDDp^½zõ ëØÐÐÈ‘#y> àz 4`ABYZcG´(œJ\>w¤U«VTµjUv­Ê”)C:u"µhI- z衇¨qãÆ4{öl~RY+*[¶,§•5¡Q£FѤI“ÜZUVƒzôèA¨· ®#Ü6eµØSBDʒвeË8_7€ýNÍš5)[¶l:˼V¯^ó9bæ)+JW®\¡ƒ’².4hÐ 7n½òÊ+Ô¦MR–ˬ‹Äºuëx}›âª\LBpoh6l)7*V¬HÊ=¥Õ«Wë"Ûë¼yó(oÞ¼¬4PÏ!³råJ³¾§±›$a"Ì 3K;wîäE­Žè´¶ÚßP‰%hÀ€‚ÅðDˆÎiÊž=;'P{/N?øàƒº˜j×®m¦ÑCÿv„E6PGS¹råt’#‚çÏŸ7ïíæZµj¥ÊâÅ‹³µÔõ=]—Ë5¨d,ÌÔèÑ£ÝÞû«S§Gþî7 ®ö0fûÖ„Úñ­Ú™ÙVBd166–Ö¯_o–ëÄâÅ‹ ‰ð¼¦Ó§Oë$­]»–¬‚jXè×®]ØK›¹PÖç<Ý|@&"P&ɉ֭[¬”Ь‘ŠÔñ¾Öo«7jÔˆ+ª?_÷íÛ—b1&·’¾T5‹úƒ>`ÁA8~ìØ±æÃ={ö$¸šÓôéÓI9gdØM:•È–S?—{¨Y³fötØ‚àjBØPf¥–-[òÞ sEÙÆéÇä=—µž¤Ó‰@Z'”g4ʇ9«…i(íÏ‘1¥¡öU†:L5” Åàª\!.?|ø°Q¹rec̘1&\ÖHZÿþý DÎ4©…ËÏ-]º”³åS{ÎC›j‘sˆ^×W‚ÀQAŒCrçÎm(ÁÓUÌ(¢x¨£Î¬ %„†: ã:ß}÷ç)Këå¦n·3fÌÈðsÖžxâ ·C[k¹¤ýƒ€X(ÿà,½„ "P!Â褤̿µ"S éaŠ@…ûbb~V¯í ‘ÊÃf…ï-…ê†=oÞÆêÕ ìtùò2Y±AŽ@‚|Œ™ÞWáHàΠA›Ôïч>FÑÑ¡éTàýD¼xët …¯`àŠ´fÍ~õêÓze]‰r媬¾‚‘üâl(ÎÇécMuçt®Xæ7wnŒúê{$¿ >{öK‰$ƒ¨`äÊÿÇtûv"-^¼M}ç)I}Mãžú‘˜}3ˆG,C â5°rååî%š#Ä~jñâíæ½$‚¨àã‰9¢9sàî% ñ£Y³6™å’>D ‚'<¢„„ÛêûL»•»—| {ïžA›7S¿õw5HG-à Ò5°lÙÞ7¹/22‚,ˆuÍ–û A@*Há:ŒY³¶ØD#81sæf×êr$ˆ@ #¬Ã¸x1Aý†ÄA[ …ÀÄž=§ÔWá/X‘t $Œ°cáÂm¶ÖI×Á¹Ôüù[õ­\ƒ¨ b†ÊÌ™›Ôo¢{~# çR3g†æ«TzŽN½Š@gOž¼¬~üòDš¿¤ôóÏ—Ô/3 ²ÑËpÂâ]¾PbslìÏê‡'K§°Pqqñ¼Ÿ*Y2ù7!²d‰`ª^½T(MÏñc ‹·ÍC‹}úÌP¿™wƒ¦MëêSqüøÅås<‹e‚þD@ÊŸhK_ŽG@Êñ,– ú(¢-}9(dzX&èOD ü‰¶ôåxD Ïb™ ?ò'ÚÒ—ãr<‹e‚þD@ÊŸhK_ŽG@Êñ,– ú(¢-}9(dzX&èOD ü‰¶ôåxD Ïb™ ?ò'ÚÒ—ãr<‹e‚þD@ÊŸhK_ŽG@Êñ,– ú(¢-}9(dzX&èOD ü‰¶ôåxD Ïb™ ?ò'ÚÒ—ãr<‹e‚þD@ÊŸhK_ŽG@Êñ,– ú(¢-}9(dzX&èOD ü‰¶ôåxD Ïb™ ?ò'ÚÒ—ãr<‹e‚þDÀí?nذ>ùäŽAúJ¸¸œê_‚FPÉ’ iÔ”b"еkWjÖ¬YŠ.ÝþÇî‰'hÖ¬YÔ¨Q£å&pdQ~>çÎn ÒsJÖ­[GM›6M™©îÜJ×1b„NÊU\hÓ¦KÎ/·²‡²…E2ûC@êþp“§[D la‘LAàþº?Üä)AÀA ÛÚA˜¹|ùrÚ»w/õéÓǧ£»yó&M:•~úé'ºvíÕ¬Y“~ýë_ÓSO=EY³fM³ï[·nѽ{÷è0ëîß¿Ÿ¾þúk:pàݽ{—Ê”)C¯¿þ:=öØc\gþüùtìØ1úýïo>ˆæ›={vžçÎ;iúôéæ0²¨ðcéÒ¥©^½zô裚ù~ø!=þøã©F‹—,YBkÖ¬áù— *ÐóÏ?OuêÔ1ÛI-aÅÑé/¾ø‚þøÇ?RR{̧e!o¡ä®]»| Ÿ1ca€Ù8ÈŸ??ýå/¡Ï?ÿ<]}üñÇôÁ˜u×®]K½zõ¢ .Ы¯¾J/¿ü2%&&ÒþðZµj×;}ú4ù$ 0‰ŽŽær×±yóæÚxóÍ7u“Ô®];ûŒFÍ‚õ·¿ýó!¯¼ò kj<óÞ{ï‘ ‹L‚´}ûv2dA` „bÙ²e)¦Žv±`._¾Ì̇ÆoÑ¢ 86nÜHC‡¥5jО={Ø mhIhÙ­[·²–ýôÓOy.Öû*Uªpß°„`‚^(:u¢Æó th .(#Ùï~÷;êС/´õë×s½aÆÑoû[^ð°FVwÏ#("<‚€#XÜÌ1cÆp‚÷ý÷ßóxnܸAÀnBß¾}YÈ€¬*®'|aå/0ųX”úÓŸ¸½îÝ»³rœ8q"_]•ž´lÙ’-ø¿ÿýoêÖ­+¸o°¾®cB„…‡{k%`ñÖ[oñ³88EO<ûæ›oÈŠé;ï¼ÃëðÛo¿eE;mÚ4ŠŠô‘G¡÷ߟ ë¼ß±c+X·þýûS«V­¬Ã¹¯´×\>hC¼aÁÂÏÆ›9s&3 Ú¯i`Xð ÿþ÷¿Ì ,Jì%°°áV¡X’… òÂÇ‚5X¨§Ÿ·›1öSÿú׿X t`Ž&êâÅ‹éŸÿü']½z•&MšÄEX(X¸zÁXïa)á’àµ,èA@±¸xñ"A`AAã®X±‚™†¾¡¡¿üòKÚ·oï`q4h@ãǧS§NqŸ°b®T²dIÞ{hm A‚;\àjB1À5‚–Å¢ÂBZ´hゾ€©&(´Î;óbñ„/ê_,r,À¥K—RµjÕX°!Ô˜„lРA,ºm×kåÊ•y7ÕŽ¬cC)jÅd­L X°ªšìx†}¥S]W¬¿©j¿ >a ×À|Ê”)f5(¬Q(Y`è òš@AÛ`âØœ‚ í}Eð›ßü†™£™¿phD,$¸.X®qãÆ´#öx~<\ ÔƒÕñDp‰ðJê/^œ-œ®‹G·£­*@¹ÞCHá¦AëÂõútébZ‹•+W0€›mÓ¦Mºkó ˜^Â^套^âÅÚ¼ys~ î, J ‚†9kK†Šp› ŒPN˜¾À íÀ-…u¬[·.cŽ~ÒK°®èØÚ‘u,èG»ø®uaiávj…‚rO ì)&L˜À–ÂŽ½ n•&,=‡+¢b lî5Ó9CýÙ²e [#X®Ikt$ð;v,·!†fרëúV è _-ÜÐäØjB›poÓK’“'OzTvÖ±€Gž„– c²ò1£</ Ð `4a}Zy Þk‚€{ƒ’{Ìdkv Ç®I¸}$¸]p¥à°°I…‹— ~4‹Z“ÕÐyújÕÐ`2,œ•!Övà¤&œºMÔëÝ»7ï1tôâ‹/ò-ÚÄ„f‡BÐX5»—Œu.¤+ÁB#x¡…Ǯث@ ±7Eˆ zª‹><á‹qƒà:êqà îÑ£‡)ø\!?p­¡Pà.¦EØÓÁ岋ÎâX.¯¦Œò ¼9zô¨¹E;Ø[[yVºßû¹zM ÒÛ9Î&à }õÕW¼ØôÂïŸ{¸mˆÂ 4 ,ö,ˆÌЦžÀa/mŸ ívâô‹vànBÖ¯_Ÿ›ÂÞ .6ýÖ{øØp!t£°?„6ƾJ®æ…ö`}Ñ7Æ‹ 5ú!Ê aÇ=¬?þø#+cj‰¾6ƒ`\¼´ZšmªC`¾vä _¸ÄÀ{îܹŒ-æ3$•˜`ìPb˜·&Æ À¾ØÁR#r™¡&"zâ mÌ}bÿ‰@†t´å‰gVL­}‚ߨëçàÒ"´=—¯Ék._ZÕ­ ?V¢aˆ,!t  …Aä~e­[·f- ¦aakÒm㮘‹È\.lä~øa‚_ ‚À ,FhAlÚAdXGøúpW­÷ˆ`"$‹sæ…{…qŒ5Š™p:ň#¸=,Fì±´«Š¾ èV`á`¾Ø/ J‡3.„éÚµkó=æeu[¬óÄ2¬<ö¨ƒ½(¬=¬;Æ‹ºÖúžðÅ<à¦"ú¬@X옇îí"$¾hW ü¡öŽPøh²öí:¸X#áÕåOûT+yâ™Sëá7°?Œ¶P>|!,²ŽMß»æqÅûøãöC˜}ld¡=}E8@›CƒX ~,ΠÁ¡9­~7òa 4®as„Eáv`ñcs½ŠÖ²(X ,jøØ`žv'­ý¤–ÆøÀ\h?¸mhÕæ†%Bß8G±„ Øú¶¬ æk AÖ‹Øú\ji< k+BẟBYjø¢ ˜áj·Þý@¨¼I°®PŽ?0³.ìôðÌS=>x àÖLFy­ÛðtE´÷£>â@–µŽwѱ¶l“Æäà&Àý€ÏîJX8/°#X6,âôÚ±n‚]ŸÑZÖ5?­{´ Ë™!*‡¹ ê@p$p¿¤úyë~Qçékjø¦…™:é¶¼u…¡=©µé‰gv˜êv ¤ZÑè<__ý*Pp£ðÆ̱kt+#žÁÎWÇi96ôv`Ó³a¶{Vòƒ@(ò, ._`Ø#½ ÞCÀ“Ëç÷(Ÿ÷¦$- Á‡€TðñDFˆ@…0ódèÁ‡€Ç Î!„AÀœ!Ú‘›@! ›ž“z»Æ$Opølw4ãå @dž‚€/=”/P•6è°e½L܈@ùUi3l [ÖËÄ}Àÿrcþ%p*CIEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1ConnectTimeoutOption__inherit__graph.png000644 000765 000024 00000021472 13515046516 031770 0ustar00tangentstaff000000 000000 ‰PNG  IHDRâ·S‚“sRGB®Îé"ôIDATxí]˜Õ>°ôŽôŽ4Eb@ U(APBD‰ª*M4 R"ˆ†„–¥ 6ôÞ{ïui»Ëäþ‡ÜaÞÛ×vy/ÌÌ;çûÞÎÌ­çþçž{Î=wÞÛt†aL'!A@x˜ħSŠhC† 4dÈêÞ½;>|˜5jDãÇ©ÿ®]»R‡¸lrr2]¿~îÞ½R])äQD…ÍÅ‹éܹs<¡Ö­[GgÏžeİúÿüóÏtèÐ!~¾uëOÜÛ·o›ˆâ“911Ñ, ³cÇòþbËñãÇ oý ,ú;þ¼Ù޾AßhóÂ… ôÓO?ñUç]½z•®\¹ÂõÁ,’•’’’/]º”ÆŒCƒ ¢ùóçS=¨ÿþÌOƒ ¨_¿~lÙîܹcZ¸Ý»ws>Ò@à)!!€ËÉ“'©B… |V ëª c\¸p!mÚ´ÉcüH¿yó&]ºt‰V®\I'NœÐUä ð5(·Q›6m u ò°úôéc¨×¦ŒÒ¥Kã+aFúôé·ß~ÛPŒŸ‘öé§Ÿêµ9Î7nœÙöW_}e¨ƒfãÔ©SƨQ£ŒìÙ³¹råâz/¾ø¢¡¬—U `¶'Oã±Ç3:wîÌyåË—7þøÇ?ò}¦L™ŒZµjq›3f4²eËfÌœ9“óÚ·ooT¬XÑxä‘G ”_]ºtá<üùÝï~g(PÀç³zÅ(\¸°¡ÕÌ×7›7oæ¶&L˜`Ìž=›ïëÔ©cö>1v`’.]:ÎW¯šjQá{µPqSÆ c|ÀÊaJy9ø6lØÐÈœ93 ¼Oœ8Q³ÒrQoÖ„TÖa…fŠET3„wS{÷îÍÖð…^`WMM<¶@¯¼ò }ýõ×T¼xqª[·.ÅÆÆÞ«¤þâU:”W ÈÖføðá\«þ¢E‹hõêÕlU>tèPÞ_)ENaÍÌÕ ,ðèòå˼ŸS Æ. ÊìÚµ‹ÆŽËÖåÛo¿%|æÎËÕ7nL½zõâ{ü±>ÃzV­Z•”"˜ùú¦råÊœnu‹+ÆýïÛ·-áÀ |·k׎Z¶lIkÖ¬ÑÕù w÷›o¾áòèoÿþýôÁ˜å”³‡¬•¢“R|3/ÚoDÿ7J•*Å{(eQXÙ0a•¥$eÝH­ä¦{úú믳k®åòåËIY*Ê’% aòb"N™2…”•c/)+‹Fʲ&3®¯½ö=þøã~çönàeßÿ}žØÛ·oçòO>ù$½úꫤ¬)‹JeÊ”!ì1A¼ ¼&ë3\Je‰u–Ç./ÜX´©iðàÁ”5kV*W®÷ƒq¢Y³fQîܹ©cÇŽ\ õZµjEp‰5)ëMÕ«W§"EŠð+ˆPT¡{ÜG>ÊÁäЄ`ö=9sæä$åf™ûÖ­[“r (àK/½ÄiPÀ¢E‹r@W(0ö{G¥§žzŠ”;©» ’%Kš÷Þ7>ú¨™„…¤÷­P<+!_çYÓ½ï!õÞSê2P^PF“•`=m Òc´*30µîƒ­{I(9”_袈ÿ› P¶P«~‹-Ø=…[ %Ì‘#>}š#Ÿ‹/怬àúõë Ç… "µ‡ôhÞêzd¨B4ÁåÁB‚¬yš (¢ó¸€Ÿ?õë×ç²p•½ Á,(8ŠÐdígÕªUAûPûO‚ÕV{3ÝmذÁ£^¨› DÑ(b„ ÷VdÉ’%f(Ö®S§N™Äd|úé§ÙJÂÔ®-öDˆâ¨{/¤÷˜Ø£GfëY¥J.ŽÉ=uêTvW±ÿBDS…8_zï½÷Ìf­Ïˆ’â{|XD`¹±ݹs'»Ë“'O¦°5וášbŠÅãlÞ¼9gÁ€’"ÏJàQUDe‘ÏQ_ì)…B@ÀaÑ¥ØMmÔ´oß¾áÓöÙg†²2úÑPŽôéånräR¹—†rét²¨¡²,DtPM^eAêxÀŒ8"‹­ŽšªccĈ\ÑP¥ÄfdKeÅ8QSå>rßJ´FÞ¼yÍz(ðæ›oÊúrY_ÏJ ufÈ‘NÔÇG¹ß† þ˜utÔQQä+7ÝPÊk¨óB.ƒ¨%ÒªU«–"jª#¢È¨«”ÐP ×Vê{¢f?j/Í}› !ܸ9j*Ç!Lï"P>L¬?üÐ;ËP{"CEL I‘§öY†Šzjod(7ÐTDkA(¢²x†²*\ÖšETCC[·n5•ÜZ&”{´­ÜMCšÇ+ºžVDô¡"·†zkFg™Wuîês|(€ñ«ˆªÏzfi¼q³"ºö‹ÁjEŽÁ%Å5‚Ê¥è#_¾|T»víéHÈŸ??|fz%b/Š/B0 Gi%´«Îø‚V÷ é ÊëÛWŒ¡Ô! Š˜:¼x¿¤¬IX£€©l†*Uªäó8Çþ&2ÞdA€&’„¾ÁƒV"‰rʶ]ùÃ8€WÞüTFJy;:?•@• ³F~`ØÑ3S˜w r|ápQž<éyŒàðáD-û®Ý#âmÿhøIŹs¨wHó©ƒó®ŸÄØn¸•\«ˆøºöŠn&T ìJóæíS/š/wóP]?6Wk\/µÿ 0>þ zÅn åÍ›¶m®^Úí5½hÁÇAã”`ƒ„•‚ÕÙ³7RLLzõnk‚úz‘ÿWæRT”Û! ÁÛ‰$4†’“ïªolTßš¸«~ú"FÝo­¢”²%¢ˆ¶Kp¦V®ÜKW¯Þä‚IIÉêËÁ›Õ àÉÁ+J [" ŠhK±g*6v½²„÷ÅwãF¢úFÈÎॄ-¸/I[²'LùBàÖ­Dõ¾ëVõÅÚû¿ž–!C:Š‹÷Ô^NHEt‚”¼xü׿v(74Ñ#J‰ô„„û¿0çQ@l€(¢­Åã›9¸¥ˆ–zöŠ‹oóN–g Rš`:šY¼zõ–úæû.·Tãþ3ÖëG¹:QD ¬.X°Åãwa¬ìã(cÕª}ꓬÉrïD $+‹±±ë”"ZSRÞÏ›·9e¢¤ØQD[‹Ç“¹³g¯ª+>¨þ5@ M4húôužåÉö¸ö¥oÛ#ŸçÌÙÌniÆŒ1êô÷ÐÖQ£îé¦MGÔÿ–¸¬~ðØ÷ §¡k©aD# p8›/U* ÖÊ£Éñã—QÅŠE¨^½Šé7oÞûÇ1‰ò`[Dm+š”Œ5jT)EâwßÅSµj¥Õ¯‹×M‘' ÎA@öˆÎ‘•pêbD],\šsEtެ„S# ŠèbáÊМƒ€(¢sd%œºQD W†æD#+áÔň"ºX¸24ç ŠèY §.F@ÑÅ•¡9QDçÈJ8u1¢ˆ.® Í9ˆ":GV©‹Et±pehÎA@Ñ9²N]Œ€(¢‹…+Cs¢ˆÎ‘•pêbD],\šsEtެ„S# ŠèbáÊМƒ€(¢sd%œºQD W†æD#+áÔň"ºX¸24ç ŠèY §.F@ÑÅ•¡9QDçÈJ8u1¢ˆ.® Í9ˆ":GV©‹Et±pehÎA@Ñ9²N]Œ€(¢‹…+Cs¢ˆÎ‘•pêbÒŠ\<>ŸC+^¼¸úó'|æ9-1sæâ”œœ@II—œÆºO~{öìI£Gö™çâĸ¨ý×Ý:u¢_|ÑŲuÞÐì<¦ÃÄqÔ*bÕªU©M›6a‚Qš _~ùe8šqd²Gt¤Ø„i·! Šè6‰Êx‰€(¢#Å&L» QD·ITÆãHDCÛܹs©iÓ¦”˜˜´ô7èÚµkAËEªÀ¤I“¨I“&T°`A*[¶,½üòË´lÙ²»KJJ¢‹/šå]Ž5Ÿå&2ˆ"†€ë¡C‡hñâÅt÷îÝ ¥»víJ:tZ.p×­[7Ê! 2„ºwïN‡¦FÑøñãCêrÞ¼y”/_>sÑÁÂrçÎêJ¡´#µÇi…ìöíÛtêÔ)*Y²$AAOŸ>M8 É‘#]¸pèæÍ›tòäI*Z´(wsõêUÚ¾};+VŒJ•*åÑ5ާسgeÉ’…J—.MW®\¡ìÙ³³2¡ ¿ºx!!W®\„úàãüùó4fÌ4h}øá‡f½zõ¢-ZP¿~ý¨uëÖ”7o^ºté*TˆvïÞM—/_¦jÕªQ¦L™èÖ­[töìY® †Eýꫯ˜7Ýàõë×iÆ ÜoõêÕ)gΜœ+ íoÙ²…ë<ñÄ£«Ê5x³&ÚH)„1räȇýÅ_àí#CMTcíÚµ|ߪU+CM2¾/P €±wï^ãí·ß6Ò¥KÇi5kÖäö§L™bdË–ÍȘ1#§+ëd¨ÉÏyJq_ýêWœŽök×®Í÷Ê• Z·|ùòF³fÍ ¥´Æ¯ýk£mÛ¶FáÂ…™GïmÞ¼™Û0a‚1{öl¾¯S§Ž¡”ï+V¬h;vÌ@¿éÓ§ç4ŒM)¸Q¢D ãOú7¹råJC¹¼Ü§Z8 Œ[óÚ§Oí€/ ƪ¼ovü> eÕýæ»8c¦¸¦V©y°°B+V¬ Xɸ¸87nµk׎Z¶lIkÖ¬¡Ðo¼Áî"ÊîÚµ‹­ÅG}Ä-Ã}DšR¶jÚº 3X]”Y²d [¿‰'’ZØ2gΜYT¹reBúÁƒÍtXgXÃ}ûö±%8p Õ«WÏܪÃBk‚{Ú±cGzöÙgÙ¢Âr?÷Üsì†cü Œå­·ÞbcûñÇ –U(8¢ˆÁ1òYÊ”'OR–…`ÿþý)ÊA91•õ$äc¿…‰üÃ?pY°§ƒk‹I÷QS°º(WSY"v3áƒ_÷AeíÌl¼N–5kV*W®uîÜ™–/_næùºÙ´i+öʺ³+ûÎ;ïð;»pqAeÊ”¡Þ½{s>E Ž€ìƒcä³¢’š0¡“““õ£y=räß{oðÒ9û<ëž{.MÁê¢,&ìç`}ÑÒ¥K™?”Ñôè£ê[ްž;wÎ|öusôèQN¶òX¤HNƒµY1Ážä Î?ˆ"zÀúƒÕºø«…‰Š ÈÎ;Í –€0[ªI[<««ëèkýúõ©ÿþ´zõjvu:®óçÏçà Ž`Ö­[ÇY&ie\µj•Ç‚`­«ïÕþ“o·nÝJ 4à{Œ¤]Xµ?ægù“zîû*©¯+5| · “û¯æÍ›³K7gÁ‚üE‹qÍÆÓ¬Y³øƒ¨*\=MÁêêrúÚ£GRŽªï9±`ï7yòd0`€ÅEðg̘Á{Mô¢ ‚#|?°„X>þøcŽ£."ªÏ<ó GWÍ‚r“6\‰ò;´ÔFMÕ÷ã8’hš?~Ül_)”Ñ¥K~ž6mš¡Îñ u$ÀÏêüÎP®¯$d4lØÐPþœ§”ÓP ÀQFåÞíÛ·çrʪ­[¡BcĈ\NÿQ €H%úÑ2ÆŽ«‹˜QSDuQ¼ªã CKpð„È(òTÀÈPÇ4fÔT‡Œüùós¢«jiìØ±ƒëõíÛרU«–ÙRT.·páB3-ØM4GM±êE¥VS :S3T€Ä¬¦"Œ|ì¡¢–fnâãã åê*Bi¨38cÛ¶mÜ-]ºS}“?ð?„IL¼«þaÎvõ.màr ËÃCG *ß5}訧‘={N©_/áqDqøðyõp²Pþü9ÌVcbÒóá~eÌ4¹±7éð‹[öfQ¸ „@ýúŸR³fUÔÏõ7 TLòì@œ¸¦öp%ˆ"F‰ e˜öF@ÑÞòî¢QÄ(´ ÓÞˆ"Ú[>Â]” Š%‚–aÚQD{ËG¸‹D£DÐ2L{# ŠhoùwQ‚€(b”Z†ioDí-á.JEŒAË0í€(¢½å#ÜE ¢ˆQ"h¦½E´·|„»(A@1J-ô7¢ˆö–p%ˆ"F‰ e˜öF@ÑÞòî¢QÄ(´ ÓÞˆ"Ú[>Â]” Š%‚–aÚQD{ËG¸‹D£DÐ2L{# ŠhoùwQ‚€(b”Z†ioDí-á.JEŒAË0í€(¢½å#ÜE ¢ˆQ"h¦½E´·|„»(A@1J-ô7¢ˆö–p%¤øÁk×®¥‘#GFÉð?Ì#Gr©ÝHùòÝtþ`¢dÓ¦M£ôé=l`\ Eœ1c½òÊ+T·nÝ(E†)ü8wîíܹ“’’’(&&ÆÚi\ë“õ~èСÖG¹D`åÊ•4dÈŸ­xØGŸ%$Q"Ž€(bÄ!–àˆ"ÇHJG@1âK‚@pük‚WµG‰ü‘víÚE½zõŠ8C{öì¡¿ÿýï´wï^JLL¤’%KÒ믿N¿üå/#ÞwZ;¸víeÉ’…Ξ=K£GöÛÌã?NgΜ¡çž{Î6óäädJHH \¹r™|߸qƒ¾ýö[Ú¾};?~œŠ-J*T .]ºÐ#Íí·jÕŠ–/_N™2e¢bÅŠ™Ÿõë×Ó•+WÌç|ùòÑ­[·xIsga®¸zõjjÙ²%‡ûÑôÅ‹YaæÎKO>ù$½õÖ[ôÌ3ÏðøÞ|óM:tèPHhLP êíÛ·CªÉBlïܹÃ(P€WÝ›7oR™2eèîÝ»täÈB~Ù²e)C† ¼âfÍšÕc…ÃÙ ÒräÈÁãÔÖm ]ÚÅÊU¢D Êœ93]¾|™ .¬³ùŠÕÓ0 ¶°’yòäáòÈàX ±j=z”®_¿NåË—'¬Š Ô¯xÆa«õ ÷å—_¬ÆçŸnÖiÛ¶-uëÖ&MšDõë×çv0nLŒ c(X° §kœð|êÔ)Ƭ\¹ræQ+?Ê|˜¯·õœÌ& Ú&ú€ ä‹Ï¥K—Ð4>}šñ˜¯ÒX™óçÏÏ“îß–-[èƒ>`€Ó¥KG˜ÀP¦E‹y íB‘!@€ jÚ´) 0€âããiРAT¥JóPmÿùÏ&Lø7R¿~ýhÔ¨Q<ë3”ÖO+.:Ædذà@ðPnô±uëVV, íÛ·§7Þxƒ4NµjÕ¢5kÖ°ÀsçÎMcÇŽ¥âÅ‹3†àu1©1yûöíKÍ›7çE| GŸè m¾öÚk<~àŽó)¸m3Ü5LHÈíL˜0¯°ä‹ÊK/½Äu ðD›P|Lx¼ðÊ–-/NP:x%d…¸>úè#‚ܱøùÃ‡ÛøÃhúôéÜÚ}ï½÷ØÕ¯^½:éyÒ©S'úÛßþF‹/fybQ°,}ëÖ­éÿø÷‡EÓß<èÞ½»&˜+˜_À(¯Áägå'-÷asM!( ܶmO ðÃjµlذ!O4½Òýûßÿ&(V$ì½ xøìh– .&Áˆ#Øz}÷Ýw\N×÷5`L¬ü?üð+ ”õçŸ6‹BÁa ´«W¯Òĉ9Ö‹‚¶²ÖgX,‘7a`_…q`²@)ÿùÏÒ¼yó¨ÿþÜϦM›ÌjPê9sæð$ƒEÀ!¯&{̘1<1±`  ЬY³hÉ’%ôñÇó¸úôéC_ý5Á¢=àóØcñ¸€Ò¾ÿþ{®Å8p +—î'Ô+,7ö•°DXfÏžÍüÅÅűÂýôÓOÜú‡Ãø.\H+Vä F(˜øâçé§Ÿ¦aÆqd |¼_„ñƒNž<ÉWóXúÃ$^É;N㟰)"‚˜ä5kÖdV°’C±ô3Ü ¸> Z®ö.t`Å„F0 –rܸq„Õkß¾}ìšÀ¯/T¨—ƒ•óG¥•[Ö AîåŠ)Â+ž.Õ“ý!_[q0‰5Aq¬J~4!VEÃD„ë® ØbßÒ<âÊ‚  r… ­ }C¦PD¼¸Žš°h`‹ &º®¨ã‹ô|Ò‹“w½ Òå‚ÍïúC(¼’Ÿw›©y›EÔ ¬s¬²P@¸‡Æ`Ï„îС»Sðסˆp¿ôÀ±©×—ÉLM*,ªUù¬íÀ…¤ÔºlÂ7S¼ Q7X((š <° Ö>áä/“V‹”þÀý†ÕÔøV®¿&¸_p”üñcm¼~ÿûß›¼ÁÝGD–4&º}¸œ ,?ÖºpÃ!/ì!àöÉ'ŸðÞ­@˜h ‹Å ˆØÊ'x¡MXß®]»²w€s(Sìűè"ؤ)Ð<ð‡I ^u»‘º†Í5 Æ ^I xP@Q°'Ò„ "mØë(D5Dt‘4äµhÑ‚Ý1L>뙑nmÁ%B!÷ ©T©áEC;Xá&wîܙӱÀ’Ô©S‡÷CÞÏàQIA0éAP!"‹À}aÒ :”ùÄ80¸KV÷” «?à[󮯾òy…â£]&8&¥vס”ÈÃX`9^xásÇñ׿þ•1ÕQVnDýÑû)ýlåÁz|ïg].+\æÁƒ›Šoü ý@˜  ÌðA€ J­ûÂø`¥°/C ‘TDƒêÝ»·fÝrİhkò7oÅ}iñL~ºß´^ý~QGÄÒÚp z +7¬“•àšàüH¢UpóËeó>¾@Tî ¢m`ߤ ˆ˜°°–ØsaÂj·N÷Ê+/ø€µ†‚i!êºX¹¹ƒµÂ¤Â^/\„ý ¬Æ… •€¸áÚËÐù8G„‡¡-ŒNçýs\]Ö±ô LrÔÓq+_;d ¯ÈJ!ð€Uõ–c y Ûð‡I0^uý´\ B 'V|T[þ¿˜–Ž‚ÕÁD+7{ osþ ˜\Ø«…BhÇ×Qƒ®ë½‘×é¡\¡€Þk=¬°:``MÇ=¾õ ÞíaÌð"|‘¯ î«Üƒ¤Â<&ÞJfår÷^X}·uïm­£ïñä“`¼ê¶Ã}ÍîµwA¸ZÞÑÇ@õ¼óà®ø:OÂêèïu%ç[BîG Ð<°ëèŠkjW0„/A ’rMÿïQÓHTÚœŠ€(¢S%'|» QDW‰SãTükp$$áCÁJ”BqF¥ßñWIÒA õàè /—àˆÄ›RDM½ ȳ D8Ù#Fcé@Ž€(bpŒ¤„ qD#±t G@18FRBˆ8ÿÏÑȦ¨ MIEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1CommandLineBase-members.html000755 000765 000024 00000020113 13515046516 027221 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::CommandLineBase Member List

This is the complete list of members for mysqlpp::CommandLineBase, including all inherited members.

ArgumentList typedefmysqlpp::CommandLineBase
ArgumentListIt typedefmysqlpp::CommandLineBase
CommandLineBase(int argc, char *const argv[], const char *opts)mysqlpp::CommandLineBaseinlineprotected
extra_args() constmysqlpp::CommandLineBaseinline
finish_parse()mysqlpp::CommandLineBaseprotected
operator void *() constmysqlpp::CommandLineBaseinline
option_argument() constmysqlpp::CommandLineBaseprotected
option_index() constmysqlpp::CommandLineBaseprotected
parse_error(const char *message=0)mysqlpp::CommandLineBaseprotected
parse_next() constmysqlpp::CommandLineBaseprotected
print_usage() const =0mysqlpp::CommandLineBaseprotectedpure virtual
program_name() constmysqlpp::CommandLineBaseinlineprotected
successful() constmysqlpp::CommandLineBaseinlineprotected
~CommandLineBase()mysqlpp::CommandLineBaseinlineprotectedvirtual
mysql++-3.2.5/doc/html/refman/scopedconnection_8h.html000755 000765 000024 00000011672 13515046516 023442 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: scopedconnection.h File Reference
MySQL++  3.2.5
scopedconnection.h File Reference

Declares the ScopedConnection class. More...

#include "common.h"

Go to the source code of this file.

Classes

class  mysqlpp::ScopedConnection
 Grabs a Connection from a ConnectionPool on construction and releases it back to the pool on destruction, and provides access to the relevant Connection pointer. More...
 

Detailed Description

Declares the ScopedConnection class.

This class lets you grab a connection from a ConnectionPool in a scoped and therefore RAII way. The Connection object will always be returned to the pool when the scope block ends, plugging a potential leak in the pool.

mysql++-3.2.5/doc/html/refman/inherit_graph_41.png000644 000765 000024 00000004126 13515046516 022446 0ustar00tangentstaff000000 000000 ‰PNG  IHDR|$KÃ^$sRGB®ÎéIDATxí[wŒM]Ÿ]«·è¢«D":Q#jüÍêAè%A´èD‹dE‚?-zÙÕ{·‹¨Ñ;ÇüæûÎÉÝ{ßÛïÚ÷¾÷öN²ï”™Ófδs‰P äAvá@Zdv9©wÎ8à <›ÝOàžÀ³²Ùq£ìç=uê-Z´ÈÞíµCsçÎ¥ªU«¦Û¹Ã¤§¦¦ÒöíÛÓyÐâÀ§OŸD†¯^½rlÜ¡ášbÛ¶mºê•!Æ´´4*_¾¼Ï];4Ü'•×6ð6¢twOàîø6TžÀÃF”îòß¼y35ÊÝi úðáM˜0ªW¯N¥J•¢Þ½{Ó† èÛ·o2ë?èõë×~W¸uëuêÔ‰ž={æ—&+!/ð›7oÒ‰'þw^-\¸Ö®]KíÚµ£ùóçSÉ’%ièС4zôhY{ß¾}T¬X1úþý»Ï½üüù“pi~ýúåŸU üëׯôàÁÂîß¿O—/_–½ã`W®\¡äädÄG9´)Ä›7oÌySRRèäÉ“ôñãGÓ‡ ˜Á"·DžùðáÃtx4Þ½{Goß¾•õŽ?NÐ* ÐD­]7nÜ <0ií >~þüÙÄÚFÿŠ+hÒ¤I´|ùr}J-Z´ ¶mÛÒŽ;dÖ­X±¢ÔùÑìÙ³iÍš5Ò¶ÿ|ùò…^¾|I,`á×®]»¤ìß¿?±wðàA± ö±™nÛ¯@f5üÌ™32n)oFq0%m ´Y¸Š§pcW®\)¸öíÛ«nݺIͥʓ'š7ožºpá‚XX…Ó§OËø;w ~fΜéWÃk×®mèP‰ŽŽVãÇWZõÕkÂ’¸…cÇŽ©É“'«æÍ›«¨¨(Ù×Àe8 KÚØ3+uüh­¶jø¹sç VqÈ!æ¼ì nĈŸ†—.]Z.3BJýhÏæYÚ¼{ j©Bp³ãããEëAÀ¦Yê°õêգʕ+‹ŸÅÛ> I“&RâGk¡é°TXÀ–‰Fj‹D¥J• þôÅ‹¦í¯Mfa Z6Ôa… ‰›6m¢³gÏúZ§NŸýºëkÈ›7¯ÄA˜`=#¬[° h&¦Ù À¬³Ÿ”ˆ—ý5±“a‡¢éÓ§‹¹F ÇšGS§N•h`º†{÷î骣|òä‰éCpwþüùt̳â!8+cÍ@[t¬w¢.gìØ±Ò´îMãÝ”¾x¦‡­œ™Â|šÎLVÜI)““ûÆ&œàg̘A½zõ"6ãB¶nÝ:3fŒhNÍš5ÅäË—O´~>Ñ<"ÞÕ«WûšZúpY7 šÇB$ÎÁ–¡gw óà‹ |l×®]ab}DÍkÂ.\¸°¤aW¯^•9À?,X8ˆ$e2X³ÌBݺu Bg×&—é2‚`A– \ßf¸gÏžb¾Þh`ßh´ÌE 7kÖ,a(Wr¤N 4 *UªèaRj·L:rcŽjiãÆ´`Á €ô€;wîÈ<}úô!ÎDhÀÁ”.]ºTJ{€‚{árçÎMµjÕwÀ±•)S†7n,Öc?MØ“>³^;£ôøƒÕÛºu«œge¿.¹?Ö ˜ÈàßÊŸmöñnÚãÆSìߤœo*ÎI›léR7ÎGGß&h³"-Cªƒy.]º¤8ß5h´ÇZ¬8Ò78·ŒEЇ="U³GݘÚûÿ¤ ïÀŠc ³‚ÔŽ;ºž&£´Ìï÷ð Ü&Û$0—œ³Ì÷’%KlX"|œ«;úÑËíq˜'£€Éع™4˜O«þZ¨&rc,+†Ä4øH°vÁ€,8Ì&^¬û0 ÓûGtÛ¨Q#Çx¼f!PóxöD¤o5ÿ¾èþ†>Ä(xÊ6l˜øsð‹SËàlÍn'²Â¤Û×ôÚÁå@F&=Ë‚¶à\Oo–@9à ‘"øY¦ IEND®B`‚mysql++-3.2.5/doc/html/refman/functions_i.html000755 000765 000024 00000014612 13515046516 022023 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Class Members
MySQL++  3.2.5
Here is a list of all documented class members with links to the class documentation for each member:

- i -

mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1BadInsertPolicy__coll__graph.png000644 000765 000024 00000026544 13515046516 030166 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÇÅàÍæÍsRGB®Îé-IDATxí]¸Ų.8äœsF’d$ "*9#JN"\¯¢  ‚ Fx "D‚ HFrœs”œÃ¼ú‹ÛÃî²³áìÎ9»g»¾owBç¿»ª«jz¦ãL¤I# pE`R|×;úZ# x€€f=4hæ°FßÖhæÐc@#`@×ûgÏž¥þùÇõ¶¾!²eËF ´¥FëÖ­£k×®Ù’wlgúØcQŽ9|®Æ#Ì¡R-ZTêc!pøðaÛk“)S&ʘ1£íåÄd{öìñ»8KæˆkàøLˆ&8yò¤í5K–,YœcŽ}ûöù›¶9ü†L'ˆ4sDJOëvú€f¿!Ó "Í‘ÒÓº~#`+sܽ{—þý÷_ËJýõ×_T§NËðP pmWûöíiêÔ©¡ZÝX«×… èöíÛnˇ÷}úôi·á¡pÓVæ˜3g¥OŸžîܹ㶭çΣåË—» å›®íº~ýºå åvØ]7¸„§L™â¶˜{÷îÑÕ«WéþýûnÃCáfИ.ÆE‹‘r5Þ¼y“Μ9#mfQHJHS]ÂXRJåË——†ñò‡å;1LJ~h̘1CâîÝ»×èÑ£‡€Çpd°¾ùæ›K cçÎFæÌ™wÞyGâ"7…—UU«VP0bĹž8q¢ÔÌ?lØ0aäÙ³g,Œ~øAÂ08@`^¦a°D3x9…ñüóϬ"<®íR̆˓'Á³ˆ6ãçÀƒ¥«0:wøðáŽöâúÀR¦/¡Ä<“)R¤ö îÀÌ‚ œ0a‚œƒ9ÐÖÖ­[6l0‘9j×®mð #B̦„U×®]ûÍ›7Ëx¨[·®äòÌÁêHæ-Z .”&9"žR%žüÇ`wœ9pÏ}òÉ'5€ÅR¦xñâR P1 AÝ»w7Ò¥K'çê É[¶lY̪ò[¿~½tôG}$QÁê7»zõj§v!L1‡’€¬Âá¶šѱ˜9òå˧‚ `‚<,X`ÞóvJÌP¨P!ƒ—ãÆ3X¥!areŽ”)SlŸI˜ÂÊ‘9Њ0;têÔI.såÊe¼÷Þ{*Hfbàf7slsð #–Ì¢?³ª#˘ã¹îÎÄREtPf«Uæ¹§ec´mÛVt{è÷ $1cI2V™aÐAYţܹsË}è½Ðm©eË–²hyBçG^ø1³«|Ä*˜=oÞ¼æ¹ZN£ì(3Àáåžxâ ónÖ¬Yå\Ù@б±Ú%§ájw°ºI¬îBvîÜYŽ5jÔBµÑñˆ…I“&u¼åtîˆ â)\Ž?nö)8âë”A/f–,Áiûöíb³Í@ƒ "ºŽ”!C¹Ä€T„´¾KrÚ±c‡ä‹¼gΜI ä”(“¥˜¸Tÿøã¹Ïªñ,aõ0üþóŸÿc¡CÑ‘ÈKý¾þúkzñÅÍ*Á°W#¤OÝwhÌá˜i\8øètM±l x¬À Xªƒ¾ h7iæ°@Ë?4…˜¥ùI|ŒW&`oUŒ×X¨ˆ!4sÄк˜ðC ¢™ãÛo—ðêÏ[á×kaTãK‡oѾyŸ…QÕÉÒæàÕ°áÔŽhÕuÓ¦4vìêÙ³eÈ`½¬!Z™Û˜O÷í¤Cü ~ÒõÝ èä¸d”¥õ :¶Ôý;=–agúxð;€%xo"hÁ‚ J•*)Ùœ—ÁØ;è‚…)ÖÁ=ma…@0Þ“Ø?ë mu‘ŸœÕž”’¤²£º~å Ì€4éæð1aœˆvàÀY^n2X&HŸ¾ù¦ 5hP*N´-¶að»[+†¥]ÓÏJ’¦O@m–ˆ­êRndoA/_FJ’$‘¬ º{÷>½òÊOôÕW‹4¢ÓÞº|~{eížùà-ÌxlÑf.nÏ @G´A€‹} J)írèй¼°íg~í6ü__‰¤Ê¸tèÍhµ‹Îl»FÆýšz¼øñ(Sñ¯¨xátŒxæ(S&7¯}è—€Ž4aqž±h²X«W G:#ðϤ³4¿Û>ºwó>Ý¿÷1T¬ E4s(,ÂîX¬Xv~êÑN½{÷¿r‰¿­4œV¯Því²»ÂøcùÀ#´jØQV£xý¸›/ì¤Ìšˆ¥ˆ}/Ut±ˆø™£@̬V¹ï@0ȵk·¨Y³‘ô믾½µÝާt·.Ý£90¼góç••+ÒØ™K†¯1ŽFDñ,e.–œª¼Ÿ‹U­ø¢jÁÏR:¼qà§g!Q¢(þtN&þÐñEêÕ«µn]I˜dÇŽôÙgóùƒoe(]ºð6.í`–mãÏÐU~ðWwdJž%!å}.-ýýõqÚÅËGÂùáŸÂ*¢*p\°`;¿›œŸ_Ú¸jóúõÛT¹ò`ªY³( úðcoŽé"õüÚ©;ôë ÿPéŽY©TGç(œÛqÕ®”2ûƒï–…)F‘½ðбÓjÕ*æÄK–,õî]Ÿ~þy ^ÿá×ÓEêùêáÇ(yÆDT¢ÝÃÏ›*,2<ž,ÜCš¢mÕ£ǦMËògvr1“L³ˆy·¯¹B_ '{äôèÎ wd4søÐƒ>Ï›Í≛|ˆ·£À_õÉQÊûlÊQ)eœn¬fº·D‰œÔ¢Ey8p6ï6Øw_}(.䣨ŸŽ*uÏòõ ´‚š9|Dðý÷ëÉÇ"ýe(</Õ1‹x§|„.l£iæð±ëÒ§OAÝ»×æ¯¦/¡#GxÁ¦8€f?º¸cÇ*¼ Azê×o–©tÔpE@3‡=‡ˆ<Ï›µl£eËöø‘RG G4søÙkU«¤Úµ‹SŸ>Óe)»ŸÉuô0B@3G4:«_¿FbwŒ»<©u’pA@3G4z vÇ«¯>ßÄ_@çÏ_Fá“dñ{ióØÓ~U{7V«V±ñßqÊñFB~•gWdÍÑD¶[·êüÕÁļ¡JÜ};OÂüqüýHï¤EØÂw¿òÝ9sæÈ¾(¼ƒ“ßiƒ@3G4Mšë®Ò/¿üM[·f.¡›ÌÝ“pÌØDF6/u¼†ÄwÝŠf._¾œŸ9ϰ÷ïß§72v[ÍÝ~ÁL*=¾Õ‹8±J¾î©¦ã¹G q㯌 ¾pÆw7=eŒ­¼É¸zò¶ÙŠ>úH68eÕGîñî¹ocgnÙ A£E‹²o#jƒ÷œ7xki¼ýdðög6Maÿ@Þ5ËÜd“·•3°×áŸþinnŠÍ1<(ñcéo¢ž9M6e x„÷à^`N¡“ËÑ7Ž9)ËÑñž†¢ºuëT&H||l|Ó¦M² ¶¸†­U qa?ÀÇÂ1+¨­µßÿ}~ 2¿?sJò)Z´¨lOýÌ3ϘqxÓQR{·«übú¨_v q|N´u늼îê7~Ǽ„,s0ËXOnµ›€bÀcK¨?8Ï‘#a» ì=Õ©víÚ²÷8ýßÕ†¤`€½{÷JÛ&L˜À/“Å—k¨]دסF¡W£PCȇúôìY—nݺC_|±Ð‡Ø¡å̶ë–ËÑYE’Á?HúêÕ« s,^¼˜Ê•+G3f4˜5kVó;ìò¶Ór=mÚ4*T¨¤ýâ‹/‚²åYPO4sL¼B‹/”|ÿý_¼é˹ ä{Yd*žŒŒ.d¹jÓŠ+hÉ’%ÂÏ=÷™eÍ›7ÏI¥B Ü͘qzõêE¯½öš¸lW¯^Ml›Ä^ƒ=”¬™Ã8þuèP…?Ì‘úöéO²Œ›¥´õûò5kÖ»cýúõ°Ø`¦•+W>ÂVƒ *ŽpÝΚ5‹nß~ð*@¢D^­Ýµk—äk•GLÜ×Ì$”ñÕ’šÐ¢Eÿ°Tݤ\C/›4iÒP¥J•Ä–ÈŸ??ïo’DŒk vö^y¬0Ô²L™2Ñ[o½ÅB¤¯¤Åã]»v#†z… $N‰%ˆ½Uó³;P`!Èwîü#íÚu’¤'©ZöXÁ‹g&ø,XP¢à™‰ÚÎ [ïÁ¸‡‘¯ž{¸Ë'wîÜüå˜3»ðïEö¶g‚ç6ùñã¨jÕ!bƒ¼öÚ3nã蛾!°hÑ"¶ã¾·Œ cÞÆÍC5sX"@Ö\}÷ÝRÖÃ?`ïMÜ~Ï:˜B=©þ4=ôúëÏRš4IùÁÖovdÔÌbš9AÏKZ|½½]»Ê4xðoòY/Ñc,ØÝrô+<Œ ÒÌasg½ûnmy×|øð6—ä{öêëè‘ða6ßQy4¦fŽG1 ê4i’Qui̘e´ÿÙ æ̬–£G'¯¸žF3G ôp›6•dSξ}gÄ@iž‹8ºê¥ÈìþëèžSF^¨^>C}¾víjÒäkúé§NT£FÑ*Õ}1÷na¿%™û–õ®~T8=dV¡B>jÔ¨4}øáL^úà½Ñm ÷½úlÇ!s­V9€a÷iŸ> y!Ýe^/´Ôî¢tþA@@3G@ô5‹lÙÒÐoT§/¿üƒNŸ¾ìk2/–ÐÌÃÀãcpøbûÀsb¸d]œ¿hæð±ã'Nœ€íŽFòµ’õ똛Nn'š9ìD×"ï:uŠó;…dÝ^1µ‹ð$|ç”sdܵ«„¸¯fŽXê_¼R‹}Î'N\k[ ð$|Í—Çèú¹Øÿ´¦m´1cÍ6‚ë)ë2ÓK/U¡!Cæò‡Íüÿ¦¬§¼ví´û³yK§Ã" ™ã!1~†mÔ@ÆÍzÙ«‡YïôÂâh†š9b±cS¥JBï½WþïÿVð×ÿüûÌ¿§jëåèžÐñ=L3‡ïXÙ³U« ôøãÙx§¨à¬»ÒËу×Mš9‚‡e´r·œðRÔ²e»ù«Û¢•‡c"½ÝÀÎ5s†_PR—-›‡š6-KýûÏâoîæwM4>•ë’-"ö  ø2ÑÌ᜘ êÝ»l¡†}Ρ¢-2R±V™ÉB§ý!»Á±cÇŽ$zöÙ,üÅ’ü¡²‹‘Ôì€Úš0aBjܸq@yX%YæÀ—»›7onUï8y?^wA¶Þ»pá%Ož\vY3f mÙ²…¾úê+[ËŒ‰ÌõÌ$”wïÞ-»ª);Ëlþøã:wîœìÿ=Àx „}þ¦L™"Ec˲7nÄF5‚^fœ™9þý÷_Ùç:}úô´aÃÂ~qè´ëׯó›d{¬¼yó €GŽ¡)RPºtéL@ñD÷°!$hãÆ¼ÎéaãFHEEØ«nëÖ­²6ö°Ã^v(Ë‘._¾,;¡&K–ŒþþûoÙ›[í}‡]S!i±Á$vLÅõeÊ”1÷¶Ãs›7oRâĉe«b×k”Ó¤Iúàƒ‹”sÔ÷СCÒÕäíÚ5žàØúu[·n\?þøãNy lûöí”={v§6yj°DO:%3ZûöíÞbÇXä |‹/.m¢PÔõäÉ“”+W.ÙéK–,)}àT©Ø¼à†…$Mž<‰}®ÛÛo¿mäÌ™ÓÈ“'¤ã`téÒÅ`‘käõÉ'ŸH~O>ù¤Q­Z53oÞ”ÑˆŠŠ2X-1X%0x°Ì(¯˜5X2;w¼1½‘6mZy#~Ù²e f ã½µÒ¥KËyëÖ­"EŠÌ|oè(åwìØQÂfΜ)×U«V5Ã÷èÑ£ÎûàIøÒ¥KÝ^§NÚ4h„¹þ1Ì„R63˜Á‚Á(P €Á;´wïÞ5xïpƒ…‡”‹¶ñn°Æþýû%V ffƒg)Ÿ·T6˜±$ÌS{¾ÀdèСú¸€X` ÎS¸õîÝ[ÂÖ¬Y#åðÒÁý“1cFcÏž=îËß?ü`ðr_¢F'ÎÄ8¥Vñ“m|±iõêÕiäÈ‘Ä "Ë š5kF ¦È¡6mÚðñeæN¥3fÌ©Šå* é†% vð£F¢;wîP‡ˆ@$Ô¨Ó§­_Pb†û*ÆØ±cå7{öl)Îê{÷î•]U±Í0³P=LÉíz8¿üò ¡ Ž¿ÁƒfªŸ~ú‰x€I;x Ò‰'h„ ÄÌ!õ/W®œ”{àÀ™¡>ûì3þÀõ~zùå—©sç΢²¡î°ˆâ„¬Ú °ëë¸qã¤Þ*>Žýû÷ç÷äwо}û3;žh#OfR3fI¨‰,xd6™>=t6û‰SÌÔ­[7Qcž~úiQMX’ÖßÔ¨QÃÜ׌’ŸTG@_®]»6O*=aoml@ÏRPT&,~üôÓOE5þد¿þº¨ˆ÷ÒK/™ìzR¬X1jÙ²¥0âÁPÆP„}¸¡–=öØc’Ï„k”Í3 ÛkÜ„m-†,%~ÅŠ©gÏžôñÇv[>|¸”±yóf:|ø0ïrûŽ”‹üýõWQÑ€Ô=,àÃ@†*нÆ,x¸m‚·öHá.È·~ýú¤ÔYàUvñâÅfL0 T@žIE­Bù¡BqÆæ Ð«AšÁæH™òÁn®x©ˆçV Ô©S‡¦NJ/¼ð‚H²‰'J«G"É?ÿüsÑëYU£ŸþÙœe0ø­ÈÕkÄ*ƒ™Ò¨ƒsÔ¶‹¯Ô´iS·6‡Jß©S'Þ0g°èï­Zµ’Û° @ÊöÁ9«—8ЬY³äضm[9ª?ûмµGÅSGØÇ{JÝÃ1K–,2S¨{h»"‹{÷b÷;ª.8Æ©™ à+A%´†ªC¼aÆ’Þ ¨#P`Øc€ÀøU#RT+‚:£H9™É1|ÅŠ¦¥ÒD÷ðꫯJ½1@ÕÂ<¨‡ ¨9ŠàvþöÛoE¨`BTSüØ6ÕLÅu¬¯»ö¨xꈙ Î Ep @uÄAÍx*N(ãsølƒ Ä Õ§O³ƒ$I’Hrøé¡šÁÞ€7³ tùR¥JIgÃ&­ü»ï¾³,Œ…ÙèüùóÂlP[êÕ«gƇZ…| Òa3z¨ ”;Àݵº7wî\rýaöÁ`_¸p!ýøã2{`“ûyóæl Ø9P·À(*fF” ›uBÈuE:EžÚ5‚mt$ä {nÚ´i†Ù¼Ã‚¢cÆÇD½U,!Ê•+›Uc;Á` e^³Q,^óŸÀƒÄdð»#æm6ÔÅëoš9¢í)oܸ#›h:ªTªÐª•~¨ð°ã¨™ÃTƒ”çÂ…ÛùõR÷h‚afÍÚį·ÞRi:W4s¸"B×S§®—VU‚-²dÉN«`}?@4s ]É/]ºÁß¹ÚÅŸª±ž ZÁ&Ñdš9ìÁ5à\ûm‹W• ªÕüùÛøÃÍz){À€»É äW庩sDܺråK«´S[áÖÍ™3¿“Éé>ÖZ+–Ýéž¾½*7p c,‡J•QëÖ©k×çb¬Ì.H¯ÊàÎ×M÷‚€¶9¼¤ƒ#Í‘Û÷ºå^ÐÌá ¹hæˆÜ¾×-÷‚€f/éàÈE@3Gäö½n¹4sxHG.š9"·ïu˽  ™Ã @:8rÐ̹}¯[îÍ^ÒÁ‘‹€fŽÈí{Ýr/hæðŽ\4sDnßë–{A@3‡€tpä" ™#rû^·Ü š9¼¤ƒ#Í‘Û÷ºå^ÐÌá ¹hæˆÜ¾×-÷‚€f/éàÈE@3Gäö½n¹4sxHG.š9"·ïu˽  ™Ã @:8rÐ̹}¯[îÍ^ÒÁ‘‹€fŽÈí{Ýr/hæðŽ\4sDnßë–{A@3‡€tpä" ™#rû^·Ü š9¼¤ƒ#[¶=[ºt)92rQµ©å[¶d¤L™nPÖ¬Wm*!2³ŠŠ¢I“&¹6~’-Ìñã?ÒË/¿LO=õ”kúZ#Rœ9s†öìÙÃ;÷Þu­×$Ûv“Mœ81õë×ϵ@}­)/^Lü±Û:i›Ã-,ú¦F€H3‡ 4sX£ok4sè1 °@À6ƒÜ¢¼¼½páBÚ¹s'½ùæ›¶ÕïêÕ«ôÑG9åŸ"E züñÇ©I“&w¢¿¯`¢D‰¨U«VtåÊ0`µhтʔ)ãoVÑŽóæMºÿ>%K–LòøðÃéÆf~I’$¡'Ÿ|R<—É“'7ï[|úé§ôÄOгÏ>+†2Ò>ýôÓVÑm½¯g†÷èÑ£´}ûv[¾}û6­[·Ns¡B…(þü2ˆFŒA_ýu´Ê>|ø°Ô‰oݺ%ùŸ?>ZyE7óàÁƒÍä6l ‚¼yóÊÌûå—_RÏž=Í8žN¶lÙB'Ož”(`¼;wîxŠnkXHÌ—/_é“*U*ñ9gΜ™Ò¦MKgïÞ½”!C~ð•U€8}ú4%Mš”WÑÙ³gå$1~k€š/_>¹¯âA¢íß¿ŸræÌIp5_¼x‘²dÉ¢‚åxíÚ52 ƒ ñ0›¤I“Fâ#yBB§K—ŽŽ9"ƒ @”0aBI‹t`\ÇŸîÝ»'? E5jÔp’„o¼ñ-[¶Œþûßÿª(„ö`€,XPêaðÉ¥K—`ðy"äŒPŸP¶lÙ(cÆŒNI¬pB½:$u«Y mÀdÇŽ”#Gé#0æ¹s礟P$?žs)š0a3F0Ë•+—ôõÁƒ¥è£L™2©¨NÇ·ß~[„‰ºyêÔ)‚@(\¸0¥NZÚöï¿ÿJ(ŒÑ^ÜØI °áXjUëo)?UÇ€BÇÇ‹6lHýõ— `dÿÊ+¯ˆÊÕþâ‹/¤T p¨dÅ‹§^½zÉc aÆ:©wïÞ„Áü{ì1é¬yóæ9ÕùbÐ\¸pA$;Õ©S‡zôèAk×®¥>}úP‰%dp yöÙg2ð6nÜHï¼ó}þùçTªT)©ãòåËiæÌ™Ne¨ B v5ÐÁ¼»ví5mÀ ƒÚÂV ¨1ü(ǽþúëR·­[·Ê ‡êÓ½{wª_¿¾+œ0‹'0?úƒpàÀ¢þýú믴bÅ ÜG^«V­’âûöík¹*"wîÜmƒCÔ jú£uëÖN̤ÚÓ¹sgQ9[¶li¶‚¸CÕzõÕW›nݺQãÆ%Ùüùóe¦š2eŠ0Ê+:ÇQ« é^|ñEš1c†HžY³fQ£Fè·ß~£jÕªÉ „ä°¼ > ögžy†Æ'ƒtîܹ¤À™={¶€9dÈ‚”Ç2ÄSé%—?t<ì S€V®\iÆÓ¡^¨˜õ¾ÿþ{ Ã,FU³Q¹rå¨iÓ¦f:œLž<™ —ðÁÔ®];:vìµoß^â Þ¸þé§Ÿç:u’2À4š(eúôéÔ±cG¹ç”¹Ëž}ûDeàCÏ™3GbXá„@à„Yuøý÷ß©H‘"bË`VaFÁŒöÝwß ³Á6¨\¹²c€ÁÖ¬Y#¿©S§Ò?ü ³C±bÅ$_HÿŸþYêóî»ïJ»6mÚ$ù»ûC£íè ~06„)f×’%KŠUé P1sav”B†9 Ja aÊFƒ!!š5k&Ò¥lÙ²¦ FDS€RùòåEÂeÏžvïÞ- €ú<¤ T3 .H”ƒx˜ ¬(Ož<ôÜsÏI9ˆ•3" f •ÏæÍ›%טásT­Z•Ú¶m«’ÉueÀÇ 0jÔ( ãcÐAʯ^½Z"ãúõë2Рê½ôÒK¢r+0©'ª[·.Á¾IŸ>½HÚãÇKt+œ€Ô¥ *ˆº„A ìq•³#ÄŠ0»ôïß_~?²Óê.4„TÈJ•*™j2ðM™2%aÖµ"&ÄAÿ¡ïÑ7˜ÝÐ.Ga‰™ }Q½zu«¬üºjjìÈéÐqÁ$ÊâØ"Lóè^ Çzª²ðP³C‡bÌC(€‰´lNØ$¸†1,²í}Ž.]ºˆ·#XuÍÆ6¤/¤¸#A¯Æó kêÙˆ ÇtŒ)÷!¹À®®ÜAƒ‰ %ÔèþJjb Ã ‰Á€A‹ÎP*›*#УzÆÆF¹x†©Œö€ 9¡‚Áý‹]ò„ÂÐvaç¨çVeAˆ ŽR­â©ûð|8qBÚ…™Ê› £ÒACû]í̸$õêÕ ŠïËQ-YÇììBö½ÏáRPÐ.!µ1…B5€nìJè$¸ Ýf<Ôò…†¹íVñü½rëˆã8xÀ$ŠQüÍÛ1¾'œ¼µÝ1œCjûC˜ÔLáO:#WÆ€€Äó'ô˜ÍƒIÑ=Á¬…yAuÁŠGè—0 ¡Z¹À‡´vG°à÷×:€9°êëÖ‚=‹‡­Z:Ý£kÎxR«ZÁáÜB]w€ hæ°TeÜ@@3GÜèGÝ °Í ‡Q _¶&@(#€OóX‘-ÌßµëjT« èûØDï’àaª;²Å[å® }O#fLÒ6G˜õ˜®nÌ! ™#æ°Ö%…š9¬ÃtucÍ1‡µ.)Ìø¯í o«.IEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1BadFieldName__inherit__graph.png000644 000765 000024 00000020705 13515046516 030070 0ustar00tangentstaff000000 000000 ‰PNG  IHDR±·]p¿ØsRGB®Îé!IDATxí]˜U®e—œ3’$ J0J:1œ¨pz‡ŠOìÉ' ‚Š"ˆ "IÒ¡’VP0€$ArTr’ã ,, ïê¯õ5=³3»³ÃÌnoÏ«ï›éîëUý¯^Õëî™(¥ÔT2d$‰%Å V™˜ú‘e120Èì0 Îì4üKl0ù%ã´!œ>}š®^½ê4¶ ?6 )R„¢¢¢l){ê8ïÚµ‹.^¼˜±R1½§(zõêQÖ¬YS,“ž™Ž1_®\9ºùæ›ÓS¦¯$pîÜ9Z¿~}%Ó·ˆ ìÒWÞ¦·0HÀ€8 B5M¦¯ ˆÓWÞ¦·0HÀ€8 B5M¦¯ ˆÓWÞ¦·0HÀÕ >sæ %$$ø[£FhÍš5~óšaר±c©sçÎNe5]ør5ˆ‹+FÓ¦Mó+ÈŋӉ'üæ;5Ã>®Ë—/S||¼SYM¾\âK—.Ñ‚ hóæÍ¤Ê;pà€œ=z”Ο?/ÂDÞŽ;hçÎÉ„›˜˜HhGÀqåÊ})ǃÒÒ¥K)..ÎJ?tèýþûïÖ5,?Ê]¸pAÒp÷qíÚµ´hÑ¢dí¡ÏM›6Ѻuë<îR¢}ìÉ¢ÿeË– ϺïqµiÓ†Þ}÷]M×®]“6çÎ+|X|^xXò%K–xðm/—éÎñ(¦“håÊ•jß¾}³4tèP•;wn•/_>PhköìÙŠ­§=z´Ô]µj•bË&€»í¶ÛDÁΰaä^§N€¸uëVÅ«81Q0É0¡jÕª%y|›]=þøãŠïTJÊ`S¦LQlÉø¸ž5k–´k—Ä]ºt‘É»gÏ)‡ ƒz¼JÉ5@Œþ9P‡Võë×Wµk×–¼@¾ ˆ‘—I ˆa*W®¬ªU«¦&Nœ¨Ž9¢Ø% ¡;»²4h Z¶liqÁË´ˆ­ '°twß}·b·@>&Oÿþý¥ôêÕ«¥/ôK‚šŽ;Ê9¾ØíPãÇW°ÂWïÞ½­6GŒ!i<@ŒIa§òåË+d—ÄèO[l]“ý€ß³gO¥>úè#•?~ë:µ§‚Ø‘ÏN°‚"<„2iÒ$b%Qûöíe'â¾ûî£ï¿ÿžråÊeµß¾%[c+­FÖyj'û÷ï¿ú‰'ž°Š²U·žäbÚÃNøÀ^ðMá+WªTɪS²dI‚‹€4räHš0a‚•_ºtiË/gÐZé8a JÇ÷H³_èþغۓ‰Ýb·ÆJCP¨)gΜÙdvÊÔ‚6^:´VØ% 3ÆC/l¹ˆ-ýúë¯VzZ¶Ö>¶°(!hÃgøðáÔ¢E iÝ Þ*V¬Hÿýï%ðc·B€Ç¾±Õ'¯2ľ7/^\Ò>üðC«Mƒ&^Y$—{«žêÃ7)=¥ûC ¨ Á%[}zNz„Róy£ÇL bzIJP¼RÍš5åAXI,5@Žö9‰}Júâ‹/hïÞ½=Ê~ùå—Ô«W/œ ñ²Kì?Ë9êΟ?Ÿ¦OŸN ÒÀ©yóæå£-^ÒœØÀ–]×®]¥Ê O´>8è#ìzììÉDظq#mÛ¶MÆ>9è’º5ûÄÒg2Z%Ï>.Iøó«iÓ¦Ä~¼LfŒ™ƒ^ÉÑ“Í^ÖUç©ùA韟¼õë×OvqãÊTØM=ýôÓâgb'áØ±câײò$ »ðku`ß•-¤Ô×}w×ßÿþw©‡úØ}xûí·¥,|m¶Ô þ"»%(3gÎÙá*rÍPÝÿýŠ·ø¤Ü† ü\ÍüÕåË—K|â[o½U‚B䃽‚öqõèÑCÆ…tv7»SÒ&Lȃo† K¨lÙ²VŒäaÇ$PrªO츷9â—å6¥¥“ëA°ŽX¶á—²R<ò¼ÄÁXeø8‰¿Œg–ÓJp#àçbÉg`\u`=íþ(*Ã?8V¯^àö€Zµj%û̸Qƒ|ô‡UÇNöqÙÓbõpTµjU‚ß*ÒÏ›‡âC%Q[;… &¶r¶”ë§ÚÿD üF,ãÁ[KÂ'­TªT)ŸUZ€×¥”o—½>|^¶âö$ןgêÝ ·j;æ­Àµk@¸¬Ò­äo¼‘n}¹¡£L½;á˜1ܸ ˆo\†)¶pøðÙóMæKÀ‘î6é3ã#’¾ÔѵëW|£9ïxî.ø*ëô4§úéŽ1n¯¦t‹ÕéÊÖü>}‰ÝÜM“'/¢ºu}ïPè²æ¼b~Ð&øÑ8¬æÈ‘ …£-[.ðÝÀ†ãÎ=ìŸ8Œºœ:uµ´¾xñv:{ÖüªQ¸Dm@&ÉîÞ}‚Ÿ‰8bµþí·­ssZ ‡VžVk±±kù6r´\ãģMK²ÊVs2 ‡L”ž ´‰‰I¿î‰g6Ö¬ÙGGžó,d®B"âˆÑ³‘M›ðÌñiÄèè(~,Óy?ÆçÁd&½0 ƒâbc×ñSkI®„nž_•#èé4s  ˆC#G«< 9cÆZ~ÝÞó‡Â‘¾uëa~Lò„UÖœ„FÄ¡‘£ÕÊŠ{ø¶?¬kû ¬3¬´¡ÐJÀ€8´òd®MæJè.`Í.…–FèŽÄ¡“%ïF\“àÍÛ•°wqàÀ)þ…žCö$s~ƒ0 ¾AÚ«/\¸•þøãúOaÙóô9\Н¿6.…–G(ŽÄ¡âŸm$ù»Qü>\´õh³fáë¤v)fÎ\+og‡°ëˆnÊqefmÔ­[6 ¬5„„„D~½ÿ[~ñ³¿¦Ÿô[:3.îÿFè^âÔíFâÑqo;»I ññ üÒfO~³5n\ÅMCsÔXŒ;á(uf‚‘€q0R3u%bG©Ã0Œ ˆƒ‘š©ã( ;J†™`$`@ŒÔLGIÀ€ØQê0Ì#â`¤fê8JÄŽR‡a& #5SÇQ0 v”: 3ÁHÀ€8©™:Ž’€±£Ôa˜ FÄÁHÍÔq” ˆ¥ÃL00 Fj¦Ž£$`@ì(uf‚‘€q0R3u%bG©Ã0Œ ˆƒ‘š©ã( ;J†™`$`@ŒÔLGIÀ€ØQê0Ì#â`¤fê8JÄŽR‡a& #5SÇQ0 v”: 3ÁHÀ€8©™:Ž’€±£Ôa˜ FÄÁHÍÔq” ˆ¥ÃL00 Fj¦Ž£$`@ì(uf‚’ÿI`ȨwïÞüWÜd>Ê **‹Ê‘£œŠŽÎedbÃÅ}÷Ý2Ì¡¡ÿgÇÍ7ßLï¿ÿ~PÊTr¿>ÿüsþ‡)ßVìèCâüùóS‹-‚åÇÔs¹~þùgZ¿>´Ôn|b—ƒ&†g@ Zvù ˆ]®àHžq$hÙåc y`—™ä5iÒ$Z¹r%1"lloذ^{í5Ÿí—,Y’ÆŽë3/œ‰‰‰‰G… ’nÚ´iC=öýãÿg·ak;¢-ñöíÛé—_~ ›pÑð‰'èûï¿§¼yóRéÒ¥=>%J”kßþÿæ›o¨páÂtåÊ)rñâEJHHðWÜñéj‰OŸ>MW¯^®]»–°Ç\¬X1‚P± KU®\9ºté=z”nºé&Êž=»õòåËtäÈ*UªÿxV)@/^œªV­JQQQ–ð:DøÔ®]›Îž=+yEбòqrüøqþ¯åütþüyÚ´iÝ~ûíÂò à3gÎHÛÛ¶m“6jÕªÅ:ž Ùògãà¼eÉ’…`éðÉ‘#‡äãkàÀüÿέk}¢ÇQ @Â/\¸ ãE{°š«W¯–kŒÍNÈûí·ßDŸ&ãŸÈíÛ·ÿ¶÷V9r¤¯ôÁ÷Df˜€ ÍkÙ²eiïÞ½¢“;òäÉ#ùöÊ['¸cÇʸÉîÝ»«2eʨ[n¹Eîh±ÂÔK/½¤ÈÖ®÷Þ{Oú¨ºvíš”}ýõ×­¶$ªråÊêù矗<ð[³fM9g@ªzõêI›<)T®\¹ÔŒ3$ï믿–6êׯ¯PŽ•¥ªT©"|¡Àüùó%mÑ¢ER¾C‡ªhÑ¢rþã?JÞŽ;äÚû‹Áª*Uª$í1ÀO`Å`W÷Üs≠.\¨ØjJ¿<1ƒNíÞ½[šawHø¿àéÁT<$Ïßx,X ²DyÈÁ(:4hÔ[²d‰ÈòäI(ã@Њ+¤ŸfÍšI]´qú›TòúêÔ©“ õ» w' Ô­[7±<ð}òÉ'Ä@¦sçÎÑSO=E£G–%¸Aƒ4}út–[M›6Pž…M Tzë­·¤+¾ûî;qXè’Þ·o_¹KÄ“€XຉdGXˆX‡~˜Œb™uAX}XÉ;wÒ©S§,_ðÕW_••ezè!êÒ¥‹®&Ç=zP«V­<>?ýôñd¡ &_CŸ>}èðáÃü§æ“Åš?÷Üst×]wI¿{öì‘gðàÁÂç /¼@íÛ·§“'OÒÖ­[iãÆ4`À«__ãA[ZŽñññÄÄ*§uëÖT§NYy ƒºuëÒ³Ï>+VX„5GŸ‹/–ô™3gꬌ9zM”º Æ3¬>yÉU¼$+^"%¬bbbäœ ™ýÇŽSìgÊùĉ ^¬kµjÕ®a™aÑ`Å^yå±T¼ Z}À‚ú³Äýû÷·Êñr*VgùòåJ[bЕ߳gOÅ>®uíïD[â'Ÿ|RúEßú ®©W¯^b!±â|öÙg’¬-Ÿ½Ü²eËÚÄ ÅˆK ^ñ…¬^½ºÔ…%ö7Ô…ì@X a‰ul$_z•áÕÊ_³f•ÿý÷«víÚYש„Ãg¨OŒi ?WV|bíƒÁ¯e¡H6ƒ€^~ùeŠ¿þfóæÍÅÆ.O ±J°&¼\I0uàÀªQ£†å»¢!øsþþ·&^&åTû¸°çÃwGÐ(½óÎ;>}b]Ÿ@o¿ý¶ø—-[¶”dðbwCŽø‚eÍš5Kް’vBð¨Éί¯ñèrú¨ûCì Ië–Wû¾»¦œ9sJ\£¯3â˜áî„=KIº° „¥® ¡"àÃ2‹_ìÇ[ 3fŒbþ섲þ˸&¶xr WA“=éÒ¥–û óƒ=b¢¾øâ‹â6±/Op=@RA[¶l‘#¾°øé§ŸÊägk+ypÉðáCÜ']ØÎ¯¯ñèrú¨wKØjB€²»6DÎâ&ÉÀ§„ÉKœøi(EbŸsøðábµ9PëŒH¿I“&EóòLðÿàoßõGÚgF´?lØ0±ÚØ¥ÐôÆoˆoŠIš6m*Yتëܹ³ø©HøòË/‰Ý]MŽôÑœ9s<>?üðƒä”ì"ÐøñãÅ5Jüzø¯ðÃaÅdôÉ.ñò/}c|[Þ Wì(ÞšÓɪ_¿~IßƇÁ¥´ ¿Q=+@¢n¶(>1o•I;ð!±Sˆeá;ó–äiŸøÞ{ï•<øé¼*(ÞŠ’|í72PåºcÇŽŠ­¨œÏ›7Oê Mïvxe¿8)qa—„Á¤8°RØ-@[¨Ën–jÛ¶­”ÃOJ¯n—'­âÇ%?¥ñ ¦Ð;@Øé€<õîÆÂÛÒüó *¨Í›7K›ÚgæíJ¹Æ±›(\…:G( A‚½Gyı½ ”>eÊÙ¢²p(£AÌ7d{ Áezøf«)«w¿:À…É`§”ƃr~!3_Ä«–мÂx _eÓšgx`ÇV$ ‚1wî\ÙÚaK—¬î@q¤œ, ¸±á}sÃgAN„ï?*_¾¼¿¬°¥óê@¼¿í³}Þ'ÞSö™‡DãÁ||‚fÜÌÉ,”i@ 7{tœVAóVœugÌ^—]ë=ç˜ È4õ®Ÿ×)'#ø gŸQXBÕ6êq_›î†Œ|I0)À¡¢Lµ;ªA›vÜ%â0ë31ñZ˜{0͇C†$퇹›ˆn>䂯̅SûQQ1|×­#? ÔŽç¼~70œ}f†¶ñX@()¤îòài*CIX¿þ$ß…ÛÁÏr”àŸ1Hÿ­9§êÛ5 {!qȸrICmÚŒ¡yó6S¾|9ióæm¼·p¨ÖH5Rå6ãâ.ÑÂ…I«R\\zè!zá…<šJöŸ¤iÓ¦Qƒ < š‹à$P À1ºpä\ ¦––ÀÆ©X±búÒ:&±ÎéÛ·¯>5G#GH [·n>ù0>±O±˜ÄÌ$â̤-ëO û‹IÌL0 ÎLÚ2¼ú”€ßÀÎgi&þøã´uëVêÒ¥Kظ;þ<õïßߣý«5nܘ®^½J»wï¦Î;û,£=*Û£¯¾ú*)RD'[ÇñãÇS¶lÙ¨eË–´jÕ*š>}:ýõ¯%l[iJLL¤^½zI™5jèdG3½%Æ–ào¿ýV!'$$ÐêÕ«•+Wæ ½•âããéã?¦áÇÕ÷¹sçè×_•ºgÏž•ösäÈAE‹õø`²\¹r…._¾œj?˜làÓ_Ùýû÷ä:~ü¸”ýè£èäÉ“VÛøïi´qêÔ)+Íé'7l‰¡àÓ§O‹à!(·|ùòa@hȇÒcbbèØ±c”3gNÊ—/Ÿ%—'NH”Ú±c‡( m ¬&´ kT¦LÊž=;Añ%J”ÐÙr¼À²J)` ( å‘ üñÇT¨P!:pàAá+V¤¬Y³J]Ô¯¸Î’%‹´£¯¥5iÒÄcÿ¼S§N´dÉêÚµ«.BÏ‘#G¨R¥J‡•Á'hoß¾}T¼xq{²uþÜsω쬄?O0öFy$CÖ'ä”;wn<û& Ê•+WΞlC/˜ˆýúõ³Ò¼OÐÿöíÛù?ªK{Xø¸¸8Ñ3ô ½a\ ¤K—.ñMžRö¦›nòh.P¾=*¥rqà ÆRøòË/–,‘ êÕ«‹ÕZ»v­\cÙ6l½õÖ[æ?üPÒÄþóŸ0 NïÞ½ B‡°~ðÁT¶lYÂ&wŸ>}ø†ÁŠŠŠ¢ *¿ûî;iG¡]óÌ™32™°4>òÈ#„åuåÊ•ôúë¯óˆßN[¶l!ä¡íÁƒË\·n½òÊ+4tèP‹ýå¼ K“ÉžáFÁÁä³÷cosìØ±ü¿Ò“% <lÞ.¿ÿýo4h-_¾œêÔ©c¯.çcÆŒ¡¯¾úJôyñâEq¡zLt´½hÑ"9ÇDnüqZ¼x±4бcGÑ1ŒH |'c"•„¹°¸Ó@c™ÓS§Nð4°@°d›6m¯ŸþY+3qâDÓœ9s¤XÌÙ³g ØÞ}÷]±š_|ñ…”Hý¬,üã~øAÀ  /[¶Ì*ŽÉñí·ßŠ`I´/ «Ž ¥­»÷5€2ß|óMñ[·nM‡¢6mÚHÛà×&L œ·k×Nú¸A#GŽ« @bBc{x8p õùôÓO½‹Pll,ÍŸ?_Ê`Œ˜8£G–Éc/ ÿ û׿þE3gΤ¶mÛÒ¼éᇦZµj OšW]«Êÿþ÷?úÏþCß|óÈ“zÓ„2-Z´¾j×®M³fÍ¢'žxBdܰaC9¢l |ëvÓr ˆ[µj%ÖóÞ{ï•þ›6m* Ô× …¬…€Y|÷ÝwSþüùùù‚R²d¨P0üÍ_|Q–%ÔmÖ¬™,W(ëên¹å VÐÊa9ƒÔÐÁÑíèÕ×°ÄÞר‰…%}`uu8A˜ °”p£`Õ0i X/¸[PþSO=%u±øº­ëŽúúƒÕ›~úé'qU0á^Á¢Ã}B f'<ƒôçŸ^–ø'Ÿ|Òð—ÅD€a@àg'¸c˜”÷Üs¬f«Ý‡† ¶QöŽ;îw ã„Q»óÎ;ŵB›òmï?Ðóv'tGP0HGêK ËÀ `¹ ¸ L,ϰæXÂà O[]€F“?Ÿù%K–ÔÅäáê6 AŠsä¡Ï@ÉÛ'Þ¼y³X)¬<ð¥q«– ~;ƪ «è/ù‹NòéN`i‡›aÙÆä€k¢ ñ„–³NƒlÑ–öù‘îÏ…®0¹á~Ø't6bÄ ô0iО֯îGë×ȃL1¹½)P¾½ër2{ Ñ_ç|c,éÜêÕ«'E׬YCÏ>û¬ø¥ °äb™lß¾½ä#Z† Aœü‘ÝJèËœ&´£ƒ €/¥ ¡ëø;jeÁÒb<ؾÂr PýòË/b½PWzÏž=Ö(Cx†Û¡iéÒ¥âß#pÔÿ2…U‡õ¡O_ë k‰8DÓ¼yóÀÐV¬Xaí¨ÞSâÛÞ^0ç!s'í¼nݺ²Ì7Nf=š;w®DɰdX®¡,‡°Á¤I“dG$|e„À>#,,, –díÒ úÅÎ\ž:˜/í¦ßÿ]šö¾F"@ˆ€õào¾öÚkbuÐ>À>íÃ7¿ ô Œ¨uÀ?êc5 † ?]cD?X1&;Á8 ˆ„‹ƒ‰=iûŠd/‹sðÝ£G£ÎÓÖíc…„aðåæè:þŽòí¯~Jé!³Ä)u‚<=cZ,Y¸þö·¿YÕÅ0€ž~úi(v TX;l¾#ï±Ç“vн{÷ZuuÛH€;0b; –¼ZµjkHѬ¬|F&‚úõë‹¿l¿Ö»>5¡mlÑ!…­ùǘTXB±ã a }ÙÝ?àýh?Vó¯º}Dº¶¦Ï<óŒøÛh wA$Ü-øÈš06ÈÁ(lL"ø¬º}ÔåqD¸y9 ÿ®úGü‚ɉ];_¨2šO}#(%¾“Jÿì¡xø¤XZ.\|«©ÔDÐk«h',WØß-\¸°µäë|,•ب‡++ zo±a‰…¿ˆ=OìQÃ7Õ>!@ ‹+ pÁ•bCIà@~qÓ ãÁŠ/ø ˜7BØo……ÅóæÍë·)¸Opw°ˆÉ AîXµ[„@1‹·HÛòí«-<ЉI?ÝNÁÊÞBÎa±ÃuÀ¶7A(·Ýv›w²\Âã¦I „vR ¼ƒ¿@Ú ¤ úµó &¸G¸ã ÂÃá¾÷nHO"ï¼@¯1QìdŽíéœÊw mé2é b,Ñ|°´<øàƒš‡4á£Ù#}ݶ¿üÝr…©R¥Š.jŽ.’@º‚~‚ƒ%c: ³·¥o<ØÓô9î~òÉ'úÒ]$tßp‘ìÌP"b‡(°¼ ˆƒ—©é øõ‰õ>¤Cø4l Èö¥¾ÃkG2c;O%2pšðÈBÍš5“±•ìfG²&ÁHÀá0>±ÃdØK]Ä©ËÈ”p¸ ˆ® Ã^ê0 N]F¦„Ã%ð¿'è:È­NIEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1AutoFlag.html000755 000765 000024 00000013170 13515046516 024317 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::AutoFlag< T > Class Template Reference
MySQL++  3.2.5
mysqlpp::AutoFlag< T > Class Template Reference

A template for setting a flag on a variable as long as the object that set it is in scope. Flag resets when object goes out of scope. Works on anything that looks like bool. More...

#include <autoflag.h>

Public Member Functions

 AutoFlag (T &ref)
 Constructor: sets ref to true.
 
 ~AutoFlag ()
 Destructor: sets referent passed to ctor to false.
 

Detailed Description

template<class T = bool>
class mysqlpp::AutoFlag< T >

A template for setting a flag on a variable as long as the object that set it is in scope. Flag resets when object goes out of scope. Works on anything that looks like bool.


The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/transaction_8h_source.html000755 000765 000024 00000056643 13515046516 024021 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: transaction.h Source File
MySQL++  3.2.5
transaction.h
Go to the documentation of this file.
1 
8 /***********************************************************************
9  Copyright (c) 2006-2009 by Educational Technology Resources, Inc. and
10  (c) 2008 by AboveNet, Inc. Others may also hold copyrights on code
11  in this file. See the CREDITS.txt file in the top directory of the
12  distribution for details.
13 
14  This file is part of MySQL++.
15 
16  MySQL++ is free software; you can redistribute it and/or modify it
17  under the terms of the GNU Lesser General Public License as published
18  by the Free Software Foundation; either version 2.1 of the License, or
19  (at your option) any later version.
20 
21  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
22  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
23  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
24  License for more details.
25 
26  You should have received a copy of the GNU Lesser General Public
27  License along with MySQL++; if not, write to the Free Software
28  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
29  USA
30 ***********************************************************************/
31 
32 #if !defined(MYSQLPP_TRANSACTION_H)
33 #define MYSQLPP_TRANSACTION_H
34 
35 #include "common.h"
36 
37 namespace mysqlpp {
38 
39 #if !defined(DOXYGEN_IGNORE)
40 // Make Doxygen ignore this
41 class MYSQLPP_EXPORT Connection;
42 #endif
43 
45 
46 class MYSQLPP_EXPORT Transaction
47 {
48 public:
59  serializable
60  };
61 
66  // the isolation scope will affect.
70  global
71  };
72 
79  Transaction(Connection& conn, bool consistent = false);
80 
90  Transaction(Connection& conn, IsolationLevel level,
91  IsolationScope scope = this_transaction,
92  bool consistent = false);
93 
102  ~Transaction();
103 
111  void commit();
112 
119  void rollback();
120 
121 private:
122  Connection& conn_;
123  bool finished_;
124 };
125 
126 
137 class MYSQLPP_EXPORT NoTransaction
138 {
139 public:
141  NoTransaction(Connection&, bool = false)
142  {
143  }
144 
147 
149  void commit() { }
150 
152  void rollback() { }
153 };
154 
155 } // end namespace mysqlpp
156 
157 #endif // !defined(MYSQLPP_TRANSACTION_H)
158 
void commit()
stub to replace Transaction::commit()
Definition: transaction.h:149
IsolationScope
Isolation level scopes defined in SQL.
Definition: transaction.h:67
void rollback()
stub to replace Transaction::rollback()
Definition: transaction.h:152
Compile-time substitute for Transaction, which purposely does nothing. Use it to instantiate template...
Definition: transaction.h:137
change level for this transaction only
Definition: transaction.h:68
only read rows committed by other transactions
Definition: transaction.h:57
Manages the connection to the database server.
Definition: connection.h:59
allow "dirty reads" from other transactions
Definition: transaction.h:56
Helper object for creating exception-safe SQL transactions.
Definition: transaction.h:46
~NoTransaction()
Destructor.
Definition: transaction.h:146
IsolationLevel
Transaction isolation levels defined in SQL.
Definition: transaction.h:55
other transactions do not affect repeated reads in this transaction
Definition: transaction.h:58
NoTransaction(Connection &, bool=false)
Constructor.
Definition: transaction.h:141
change level for all transactions in this session
Definition: transaction.h:69
This file includes top-level definitions for use both internal to the library, and outside it....
mysql++-3.2.5/doc/html/refman/structmysqlpp_1_1SQLParseElement__coll__graph.png000644 000765 000024 00000013513 13515046516 030306 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÇ{À ”ÈsRGB®ÎéIDATxí ¸Må÷Ç×u% •(Ò ¢d*Jƒz¢f ø—TÏ£áI!3?"•4yJ¢¢¨„R† %ãR¡ÂÍX’©‹pqïþïÏ[ï±ïœs§s÷¹w­ç¹wïýîwXûû®õ®µÞ}ÎYIŽã|$JŠ€"‚@’«NH©(Š€S E <ªáqÑRE@-‡Ê€" â‘nhù¿ìرC233 %eÊ”‘’%KÊgË‹‡R刂âêÕ«%===J­Ä¼]£F ©X±bb2®U9b¹zõêR¥J•j&N•¹sç&³Ä©ä¼ëT9ü?GÊa! ÊQ@Àë°þG@•Ãÿs¤ª¼ëT9â8G»ví’ƒ†‘-ã-ZÈÖ­[ÃÞ×Âø# ÊGÌO9å™0aBØ322dïÞ½…ö…c؇öy¡*G>LÐdöìÙ²råJ±zÞ¸q£9ÿóÏ?`E8çíû‚ äœsÎ1ŠƒñÒqýúõæ^jjªÌŸ?ß´ñ²ºÿ~Y¶l™ìÙ³G:$»wïöÞÖó¼@€¬+EFÀ\gÓ¦M‘+Ý6l˜süñÇ;eË–å«Îõ×_ï¸ à¸Bo®‹+æ 2ÄéÙ³§S«V-§fÍš¦üÛo¿5ÇuëÖ9‹-2ç­[·v’““Íy… ×õ2£Í™3Ç9ùä“Mù1Çã4jÔÈ)_¾|'G¿d¼-[¶½R¿«–#/V˜ÿú`ïÝ»· 0@ÒÒÒÄ@™>}º± ÄÅ‹—1cÆH×®]M‹+VHýúõeéÒ¥R¢D‰N°@Û·oWŒ5™4i’9¶mÛV\…0÷è+£”÷èÇGòS>ÄW¹re5j”¸+¹4oÞ\öíÛg”"Ü0|ðoäÈ‘RªT)III ©2pà@9ñÄ¥qãÆR§NY»v­üð‹6yòdq­‡4mÚT\ 1– éT bF@-GÌPE¯èº82vìX©T©’tìØÑQH\ä3[(F$"þ°D=‚öÍ›7›¢jÕªÙ[R¯^½À¹žäªy‡¥ °ûí7™1c†pOœ8Q–,Y"o½õVŽFqã“vöS´Ë—/ÜcX)ïP·*1%nhß¾½Q,+:Ö×âå‰ô®#Vj×®m>f>hÐ )W®œ±$¯½öš”.]:–æZ'¨rd¬hUÖ=zÈÓO?-ݺu3Õq«Ú´icÎoºé&éÓ§O øNJJŠÖeà>uùC >üðCéСƒ æq½ˆ;¼–$ÐHOr…€þúHø.\(U«VÍÖ÷9øöàªU«¤nݺBÐí%v­P"¬HNˆw3gΔ ˜xÅÝ6–¾}ûš€w.Vâû¼[±nZ¬íŠR=µù0Ûì"]yå•a{>õÔSÖÇZˆRõïßß(ÝOnòâ‹/š²XûÐz±!ñÅÖNk #FŒ÷¥ <øàƒ2|øpéÞ½»tîܹ9*œC«åHÀyåǸqãóÄbY-GbÍ—rGT9âv´¡vo.œ¿rí¹ýz_ݪf†’oÛ¶-†š¹«òÝ‹;äüö'Èñ•òZÜÏæŽÙ"Ð:ÿg¡€ÈGËùËOr&É JËR»¤\sµ ù‰u¬}ë{ŽX‘Êçzk§ï’¯{­“²UJÊŸžŸÏ£i÷±  1G,(šΚ©;Ä}.»7«÷ÇaD"ªÑŠÃýô´ ù}±ûM>7(V# Ê‘ÏGê~ûÏûdï–ð?*hS,IÖNwc¥A@?xX °‹+ôÿÆÁ;U^vøäì¦ù»åàÞ )Q:Ù{KÏ *G@7D¥‹KK¹êYÓ?úO©rI©pÁñYšÞŸ©Ê‘‘ø\¨rÄçQNo|BHYÊK¿K¹s“so:9äžÄ9⹎˜ ¨r$ÈD)›ñG@•#þ˜ëˆ ‚€*G‚L”²T9⹎˜ ¨r$ÈD)›ñG@`!þ˜G1mCº”*W\J”Ñ~AŠã UŽ8‚­C%êV%Ö|)·qD@•#Ž`ëP‰…€*‡Ïç‹ÌP$šÉ Íš5KÈ&5xðàœ4/òmT9|.ä2'yN¨S§N&qg³fÍrҼȷQåHHMM5éÎþú믎7mÚ$óæÍ“Ý»|眾æ÷}[¶l)5jÔ0m233åÇ”iÓ¦ m¼ôûï¿Ëž={Lä:·®o{¯ÐÝï (ù7C­S¿~}¾.è¸ 3’%K:nâñ›ßÜi×®¹ç¦Cs’““gŸ}ÖÜ;ýôÓM9íºtéâìܹÓiÒ¤‰ã¦ovN:é$sìÕ«WàÉÝü€Ž«HŽ›cÐq]1çh}ò÷ËýJ~AàÓÿûÕIýrgvP=%%ÅY¿~½ãÆ Ž›ºÙq­„3tèP§xñâΔ)SœÃ‡;#GŽ4 ±xñbÓ‡››Ðqs ›óÇÜq3Ï:nªgs=zôhSwöìÙæå`,út-NÔ¾M£BþOÝ*ùiHúîЫºóÎ;¥aÆR­Z5yòÉ'åï¿ÿ–•+WÊøñãMºåÊ•+ ®yÏIÅ.«ì¤I“ä†n3Ï<Ó<ñ}÷Ýg²Ú´[ºõÖ[MnA’zf§oÛ¾°õËN 0£—^zi€Ëš5kšs×M’ 6‰uZµj¸ïZ“¯b³È°¢ÊᣩNÛè~Ÿã$ý>‡_¦D•Ã/3¡|ø¬Î«ïØS†‚C@•£à°×‘}Ž€*‡Ï'HÙ+8T9 {Ùç¨rø|‚”½‚C@•£à°×‘}Ž€*‡&hÊ}«å·¯þMjã#¶Š,+ª>šúHßçð‹EŠUŽ"5Ýú°ÙA@•#;hiÝ"…€*G‘šn}Øì  Ê‘´´n‘B@•£HM·>lvPåÈZZ·H! Y÷Ñt›ïsŸ£´æçðô¨røa”_" n•/§E™òª~˜åÁ—¨rørZ”)?  Êá‡YP|‰€*‡/§E™òª~˜åÁ—„üô¢E‹„ßfUŠ?öU—½%¶ËþâÇð">âgœ!Ï=÷\BÞsL˜0Aî¸ã¹êª«²TÔ E °"ÀO¤’ºÁû+ô\nPåÈ zÚ¶P# ÊQ¨§W.7¨rä=m[¨ˆ'ÊSùå—òóÏ?‹›J8_YÞ¿¿¼óÎ;²páB“̾N:rÉ%—H³fÍÄͺ{êÔ©2gΓoÏÍé-gŸ}¶IEf“U8p@úôé#·Ýv›ÉhøßÉÚµkåÍ7ßÌRì¦H–k®¹FêÖ­’¸&KÅ<¾ -[ûá~®»î:yþùç墋.2ü…«ﲌŒ !ßaÙ²es=tÂ[2­X±"×@Dë`ܸq‚à#ä;v4”^xáyå•WM9§ŒŒI¤2&¯ž›Ó[ºté"$²„Ü|áòÝwßɶmÛí¼'¤Qæ>šH‹ìæ 7H±Œ°Æ“Øâüå—_L²Í *d9¢ø)žÉ8åZ°`É® ι¥\[’/’öðܼs {ÖYg™ô¾¤ëå>«§›L^¶nÝjÇ«Õ ÂDþlhõêÕrèÐ!Ó‡7-ý¦¦¦JÕªUÅÍggRwU¬X1Ëó³bÚËÍg¬ {×Ô‡èsÏž=&÷öÆMŠbRˆÙUŸvðÊ5iż״%cë]wÝ%÷ÜsO`̤¤$“ó»sçβlÙ2“òá‡ò†["·w=äõ×_—Æ‹›ãÏÞ:ê‘>À‚—‡zH¦M›f,e¤OÆÊ$''%²©Ðà•ä™`³yóf9î¸ãÌ3ól,"(/¼àݸ­[·NÊ—/oÚÙrŽX-”;Vbå&û-Gæþ Ò¶Á3sÏ“ë^°¤kÖ¬1cŸvÚiY†Ažp°ÊHd†~x&˜Ì·È×»výû£x,J”[\²tãE®•ƒ êÔ©“1ùn"G3,ù¬²ŸBäŸ{ùå—eÀ€FI^zé%SÎ*Ù¦MyôÑG…6={ö”´´45tèP³r²:õêÕ˘K&µzõê‚€OŸ>ÝôcÿÑ/ÀÊÄêÑ¢E éÚµ«¤¤¤HïÞ½M&ÖU«V™{¬Ê¬ô‹p?õÔS&Ë*î‹÷š\{ÂÅXo×®\}õÕfx¬ <ã.y eC°±6óçÏÔ÷Ö‰vÎ3£äà‹¢Y–gá!ø_„‘‰±x‰‹{‡b‚©›ÓŠ›SÈkî&Ö4 òÕW_œÁ ¾øâ‹¥oß¾Å*oÞûXq批A(O8á8p ™ÿ÷Þ{O¾ùæSŽÀóLXVxD pBPpæ—åâ™;tè wß}·©‡¼1w¼´ƒg”ËZ¹re±²Õ¾}{yÿý÷C”Ýtã¿Ü321Ä_|ñ…Q ¡´„þùçÂd±šYÿž•–‰±ÖÈ{c"ñ¿[µjeú;v¬Y¡Qj&Á`…³+¥#å(IvÜÆ›7ožŒ9RÀªiÓ¦f,®kÕªeÜ,ð:õ<—XQYŒpQŒûï¿ß¸…( ŠN’M>2Af,ã»ï¾k¬3Ïfé?þ0)œIãìýc±&æ «N?X9ò¡Ã ±â“Ú™”ÏÄ)Œ žÌG“&MÌ‘zÜ'Í3ã1XfžÏ‹ò«¯¾jdŒÔÓŸ}ö™Ô«WOú÷ïoªÐÎÎ¥m“Ýcž)ÉÞ\pQ0¹´mݺµ1ÅÔÃD"!bêaª4K¬(L íÇZ;®Y¹, Á×(1y¾Y±ßqƒóxÀä§oܯé·ãqDy²K¸aL4‚‚»i’+'ö±Ç3nXîÝ»W¶oßže¬mX½™„••ØMÕl\A¬9m±ÔCQxʉy,á‡û³÷í‘9bd“‚~°`X!ÊY8 \)ÜLÜ]64X0ø¨¸Q×.³fÍ7õ³‘'\i<\åÅ‹Ûá¤eË–&{®›NÚXIøÏkʵ[eb¥‡ìʉpAV0X=˜(ÀÔböLÌ0„raþ±¼ÎgB¹g­“f #~¦—˜ÛåVø9çcF#|xVP¬qÖo¼aV6%ÄÇG”cIƒy W×–Ñ·9l™=‚ÖáªV­šq-ì={´ml\+0ÅUž‹{¡€^{KÄݺu³—(„µŸ1cF  &®(de„säü‰‰‚ ¾X€X,“ZY¢Œ¶–Xìp¯òšòL9¼ŒI\+L-¦wåòË/7Õ—,Y"mÛ¶5~?Öó)e„P€†ì c.‚þyWPìaÂ-Ñ üpÿަh¶ õXÅqðu!&šøŸ>q_FŒa\J«@Ô‡x*S¦Œ±œ¶ÏœQtwËŠ!ÜV8ƒûE‰Ql”Å`õ%ÀãPø´BŠõÆe—ìÜ<òÈ#Æ}¦=¼~ÿý÷M‘Xe„¾˜¯Òâ^Zìé;Ö¾¨›SÊ3·*V.»ì2c"Gm¬‡ n1ûøø¥¸FìF`J1©Xü`& _“Õ)ã¯Ú ·Áºv´a\úÁ¥càQ£F¦+bÜ&kž½×ø´˜~V^vu2¬q NÀŽõ`RYíX9Q`VÝ>øÀðC MySQL++ Reference Manual MySQL++: field_types.h Source File
MySQL++  3.2.5
field_types.h
Go to the documentation of this file.
1 
4 /***********************************************************************
5  Copyright (c) 1998 by Kevin Atkinson, (c) 1999, 2000 and 2001 by
6  MySQL AB, and (c) 2004-2007 by Educational Technology Resources, Inc.
7  Others may also hold copyrights on code in this file. See the CREDITS
8  file in the top directory of the distribution for details.
9 
10  This file is part of MySQL++.
11 
12  MySQL++ is free software; you can redistribute it and/or modify it
13  under the terms of the GNU Lesser General Public License as published
14  by the Free Software Foundation; either version 2.1 of the License, or
15  (at your option) any later version.
16 
17  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
18  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
19  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
20  License for more details.
21 
22  You should have received a copy of the GNU Lesser General Public
23  License along with MySQL++; if not, write to the Free Software
24  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
25  USA
26 ***********************************************************************/
27 
28 #ifndef MYSQLPP_FIELD_TYPES_H
29 #define MYSQLPP_FIELD_TYPES_H
30 
31 #include "type_info.h"
32 
33 #include <vector>
34 
35 namespace mysqlpp {
36 
37 #if !defined(DOXYGEN_IGNORE)
38 // Make Doxygen ignore this
39 class MYSQLPP_EXPORT ResultBase;
40 #endif
41 
43 class FieldTypes : public std::vector<mysql_type_info>
44 {
45 public:
47  FieldTypes() { }
48 
50  FieldTypes(const ResultBase* res)
51  {
52  init(res);
53  }
54 
56  FieldTypes(int i) :
57  std::vector<mysql_type_info>(i)
58  {
59  }
60 
63  {
64  init(res);
65  return *this;
66  }
67 
73  {
74  insert(begin(), i, mysql_type_info());
75  return *this;
76  }
77 
78 private:
79  void init(const ResultBase* res);
80 };
81 
82 } // end namespace mysqlpp
83 
84 #endif
FieldTypes(const ResultBase *res)
Create list of field types from a result set.
Definition: field_types.h:50
SQL field type information.
Definition: type_info.h:148
FieldTypes & operator=(const ResultBase *res)
Initialize field list based on a result set.
Definition: field_types.h:62
Declares classes that provide an interface between the SQL and C++ type systems.
Base class for StoreQueryResult and UseQueryResult.
Definition: result.h:110
A vector of SQL field types.
Definition: field_types.h:43
FieldTypes()
Default constructor.
Definition: field_types.h:47
FieldTypes(int i)
Create fixed-size list of uninitialized field types.
Definition: field_types.h:56
mysql++-3.2.5/doc/html/refman/inherit_graph_8.png000644 000765 000024 00000004477 13515046516 022402 0ustar00tangentstaff000000 000000 ‰PNG  IHDR$°¸i¾sRGB®ÎéùIDATxíZg¨I®g΢bÎ9‹9¡bÀ1Ç?¢ ‚`DQ fÅ€þEÌsÎ fÅ1çœC]}utßìììݾ½÷îÞ]0;ÝÕÕ=Ý5_WèÙ8"GN1h Y }\§Õ€BÌpà‰Yu®£Ã@ÌHáïyüøqš>}ºŸí꿸ºvíJmÛ¶ ÑB˜å¹wï­^½:DÈU~m lݺ•®\¹¦„0Ëc$V­ZeŠîþ‹k H‘"³~üH_¿~MôuÆëøªî%IÑñ•ÝËúÓòçÏŸùöíÛüýûw¾uëŸ?^åüøÁ.\à“'O²,ZywïÞå/^„Œ'çJüêÕ+Ë;uê øýû÷–‡Â»wïøÈ‘#üüùsþðáË‹ÒöQ£Fq¥J•´üæÍ~ýúµ>ïðáÃ,ÀR>~¾|ùÂ?ÖúåË—ùرcÊ3?þdyAŒyƒüuèdÚ´iF\ï;vìP]7Në³gÏÓt#áÁƒ«ŒX®^½zÈ8OŸ>åbÅŠq¹råô¹˜+ú®]»Æ=ÒuC'Ïž=cèÌK/_¾äû÷ï[ô]™Èa,¬íXc4T¸paž2eJ˜hJâ 9‘V…ÉÔ;”\·n]3mëµjÕÒZ»vm®_¿¾”–ƒ4kÖŒ²eËF²{Iv)Éî"1Í 8qtæÌÍÀIv¹ÊAQ‘HvuéÒEA 9œŽŠå²âcÇŽ¥´iÓ’¸ U¸XmCÏ6A«¿nðJ•*¥/›Àb\*T qQ øE‹™æÀ;Æan†&Mš¤ß“Ä–®§N:´fÍå­]»VŸ°B¯ˆ‹6€q’X}÷jûg̘‘/^¬²Ì –m!û¥HñûÅ‹׺˜l½‹yT4oÞ\ŽÅîÛ·O->XX®‘#GªZ¾|9+U³fM?Æ:X†§à?JÏž=»bb‚­tŽ9¨–CÁ/v²Y/Ž9@ȶŒ®”åO¤lëo§êQ>?DlÈ!,þ<„‡ŠdVzþúI²'MçFÉ¢,x¼r‹:Λp^bÈ€ÏëÂ’±™¦ÿÝç<ؼAzŒe±‘À“`³ì”¿$¸˜j¸¨™3g†É#Ø–³ 0>poÈ^¢!Œ)ØDP͘ÿ%ÄXøt’Øô‚ç> # cˆ•D#öÒcÉA„ã¶&û ’q¼xjÀoÆâóøû»úÿO‘ÜÖ?žmÅÛN< kÀ' ¿œ¤>5ž¤þ†’ðü"ÌøåÈi0ŸˆüÚ³<æŸo~AWÿu5€Qš·^-Ä!7ð2\Ùi Z „Yžh;:9§‡˜5àÀ³ê\G‡˜5ðö𡵿/IEND®B`‚mysql++-3.2.5/doc/html/refman/functions_h.html000755 000765 000024 00000006460 13515046516 022024 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Class Members
MySQL++  3.2.5
Here is a list of all documented class members with links to the class documentation for each member:

- h -

mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1StoreQueryResult__coll__graph.png000644 000765 000024 00000135457 13515046516 030460 0ustar00tangentstaff000000 000000 ‰PNG  IHDR6Óz“nsRGB®Îé@IDATxì¼UÕòLJ–”E PDD»QQìÖg>óÿ|*v÷³ëa×3@P±±›P±@$D@šõŸï\ÖqßÃ9çžÛ5s?ûžk¯µöoŸØë·~3S'„ð¤¸9Ž€#à8Ž€#à8Ž€#à8Ž€#P ¨£ÄF¨†ýö.;Ž€#à8Ž€#à8Ž€#à8Ž€# uGÀpGÀpGÀpGÀpª+NlT×;çývGÀpGÀpGÀpWlø{ÀpGÀpGÀpGÀpª/õ«o׽玀#à8•…Àûï¿/?ýôSe5ïí:U È>ûìS%úâpGÀpj3<´6ß}¿vGÀpJˆ@ÿþýåÉ'=©V áóÓjÍ›7—?ÿü³†\_†#à8Ž€#P}ðÕ÷ÞyÏGÀ¨Túõë'$ÖòÅ1¨ï{ï½·R?Þ¸#à8Ž€#àü€cákŽ€#à8Ž€#à8Ž€#à8Ž€#PÍpb£šÝ0ï®#à8Ž€#à8Ž€#à8Ž€#àü€cákŽ€#à8Ž€#à8Ž€#à8Ž€#PÍpb£šÝ0ï®#à8Ž€#à8Ž€#à8Ž€#àü€cákŽ€#à8Ž€#à8Ž€#à8Ž€#PÍpb£šÝ0ï®#à8Ž@ñ8öØcå‰'ž(þ‰%8ƒl»ì²‹´k×NÖ\sMÙwß}åõ×_Ï»¦¿þúKfÍšeåÇŽ+»îº«üöÛoyŸ_’‚I|þóŸÿX›´›¾ 4¨$Õ—úœÊÀ¤Ôö GÀpG Âpb£Â ö†GÀp* #FÈwß}WîÍŸzê©IP¿~}8p œp òÃ?ÈN;í$·ß~{^ísÌ1r衇ZÙÅ‹ËìÙ³eÉ’%y[ÒBI|>ÿüsùàƒd•UVYfY~ùåKÚD©Î« LJÕa?ÙpGÀp*úÚš7æ8Ž€#P+˜>}º0HoÓ¦|üñDzúê«›¢™øO>ùDV^yeéÔ©“Ì›7O&Ož,íÛ·—FVóçÏ—I“&I‡¤AƒVæ½÷Þ“W\Qºuë&uêÔIaúóÏ? K¯^½ä?þ°cmÛ¶MgeÊ”)ÂÂ`̘1²þúë[¿8öçŸJAš4ibƒûVXAºtéÂ!³E‹ ËrË-·Ìök¯½&¨.¸à¹ä’K–ž!rÚi§Éž{î)gu–ôë×OZµj%3f̰þóÍ7ÖÏ 7ÜP6l(Ó¦M“9sæÈܹså×_µ¶Ÿzê)¡Ѹ>ú F={öL]?ûÁ !'P‹€YÒ¨û£>’µÖZË0OK®¯ºêªrÏ=÷$w¥ÖiÌcÝ ,0EIëÖ­¥iÓ¦vŸ?ýôSSl±ÅvÏâÉ`÷ÕW_†=zôzõêÙ!ê¨,LF-¼ÇxÐ7GÀpGÀ¨†èœ›#à8Ž€#P,8à€ ƒô¼Ï9ãŒ3‚–CÇŽƒþT†ºuë†üãAÝ5l›}×\sMøé§ŸìØm·Ý–ªûÎ;ï :Jn„o¼1èà3´hÑÂÎÛ}÷݃ª¬¬ ©º[¶lÖ^{ípä‘GÚ1ȇ+®¸ÂÖ•@:à¶:•( Jb„§Ÿ~ÚŽ|ðÁauÖ :H”£_Gu”ãßqÇ”dȸݿÿ°ÒJ+%RÇãŠô­®»îº+<÷Üs¶¾õÖ[§Ú M®L”4°ã›m¶Yxÿý÷mýûï¿·ª.¾øbÇþQŽëP2ÄŽïŽ;k£ïwß}wìB8ï¼ó¬½ˆÝæ›o”l²ãI|Tq”tH—¾òÏþÓê5j”b[‰ž „E˜:uªõ‰¶éGóæÍÃý÷ßoå¾ýö[Öcªh1¬¸>¬20ùì³Ï‚l¡Y³f†¥*TÂ×_mýÉ矺ÙõåSÖË8Ž€#à8Ž@ù"à®(ú„åæ8Ž€#PþèÀ]tlЉvØÁ\3t /3gÎ%JL!€ûÃ6Ûl#ÿûßÿRB±@yfÓQC\zé¥vÎ[o½%/¾ø¢ Þвí¿è¢‹L) ÄˆŸ"›)Q &L0µñ0”°0åup+·Þz«©&tP.,C† ±ªvÞygS`Äz“Û´‡ !*Mb^×[o=ÛŸt‡Añ€ªdܸq¦Ôø×¿þ%ôûÀ”½÷Þ[FŽ™¬BÞ}÷]so¹ï¾û¬<í?^Î?ÿüT9””k%ND‰;öË/¿È•W^)7Ýt“)#”d?üPž}öÙÔ¹ÉúyÈ!‡,³ hQ‚È”$G}´¼ùæ›róÍ7ËÕW_-JΈ/†¢>Ùk¯½äÜsÏ5ÌG!7¶ãÔ³É&›ÈAdÇbÛ‰ ï#”)¼ÿP¡ R-vÅ_GÀpG !àÄF5ºYÞUGÀpª3¸Ÿƒ· È Urˆ*D•Ù€1 †´ÀeD6xV%…¹0ðe`ÿÐC™;®,ªlU\˜ûän$ ®]»f…‹Øô‡²ÿþ÷¿mþÅ_Xùîݻۀ[U%¢ŠYc5„@)-¹›‡*Eâ¡B¯ äqàÎh^x¡ ô;wîlí@ä2H\h;ì0+Æyûì³àMÕ%憃›Ê~ûígÄÇÀÝvÛͰ…¢/™ —\cÒÊâ†óàƒ n4Ü·í·ß^N9å«F•²ÿþûöQªÂ‘k¯½ÖȈ‚‘rÏ >ˆ;Â=‡d‰V‘˜àªƒ[¤Ìï¿ÿnD}usGÀpê‡€ÇØ¨~÷Ì{ì8Ž@µD€Áv4‚k’5D]l1T hëÄ¡8餓LMÀà›tß¾}-V„Ä:‰Ë°å–[ÊK/½$?þø£Å›` mµÕV‹«Ë¼Ï#ZŒ_‘‚Ad$ãñXrú:ål*ÈbŒP&Z²`Áà:—ÅkL’#` ùz¢¡Ž€LÁÀöôÓO—áÇ[@P$܃l†’¥J6Ûh£ oˆî÷§%ɘ$ÄN9üðÃSÄŠˆx U- b‚D«HL"¡¥îM¢n:¦Þxä‘Gd«­¶ŠÝñWGÀpGÀ¨&ü=uTM:ìÝtGÀ¨ž0øÍÇP%lwÜP 54‚ÅE"ƒ@“¨4X“^7Œ&-éö‘ÜÏ:9£áº¡àÀ’ÇbpÓxÌ dù·ÝvÛY T\cÒmèСFРXˆ–lçwÞIµ§¿jüAU ŽÇ@¬±l6Œ~øayùå—M­› ®5ÙÊÆºr½X”¶ BzöÙg[ÐU—¨ ‰çjsóáþ`¸ÂÐ> ç_wÝu¢±PbñBØ—7&¯¼òйñJ—¾@²@p¸9Ž€#à8Ž@õCÀ‰êwϼǎ€#àÔxpGAåðꫯ¦RŸ¢Æ`öŸÌ# î7Ø`Sqàþ]Yˆ)AFR«»"›ÅĈ@ÝAV ŒAî£>jî)į@¢AJíØã?^hð›ÜFe‚ÒRe n¸à3hÐ 9çœs e"Áí‚7\ç{ìamàéÁ±¤ÑâVg„co¼ñ†ÅäH–Ë´ŽZâE1%P+à:³páÂLŨ6l˜¤/dcáºp!".É /¼`JÔ $ÔàÁƒå™gž±ôºÄT!ãȺë®k÷Nƒvš ÷’øɘ$‰ .M¸F_ƒì:d”Á5ÉÍpGÀpª!úpèæ8Ž€#à âfE9óÌ3-[FlDcUAÄMËœAæ“h:¶Ì$J8¤2wpŒ¬ dà ã‹’²˜¦SMeѼe`‰YQÔ="\uÕUVN ’ ¤H*sITeaÇÈŠ¢î"Ö¶þ¤MÍš:Ç|Põ•Í´­„DÐØ–É„óYÈ ¢ÁHSçÄ d=á8B” š~ÖÊ(Ybû4ì2YQÈl¢J‹Tß5ÐhP"ÇΫn¸!ÕŽÜSY;fÍš4®µÎà¦ñ9,Ê I|ÈŠûžþ ž%¨‹IPrÅÚ"S å”± -}úô±mú©nAÝs¬™aÔÍ'U7Y\4 L4Ž‹eꡟ¼'”ØJõ'bŽÏŠ’?ä8Ž€#àT0uhOHÜGÀp¼ÐÔ¦3"™½$ï“ó(H¼â-sÌ1¦PHž‚j%DÏž=S1:âqâM° @9ûFz¬((¤‰ûJ2È(J” ¨(p‰›D2nGl§¨WT¨AÚ¶mk1'’n(ú‰Z‚¸¸Ù$ccP7®6ÄÀˆ1H’íqý¨Qˆ’~^²\¦ub€ L`Á&Nœh.Jvd*^â}ÄÚ@y’Þ?b~€+¯É8•… ýøàƒ„X%Éøù\8Š)†usGÀpÊE {ä°Êí—·î8Ž€#PKÀ UH,ƒƒòl!Xò1by°d2HÞ%5êÝb‹-Š<==Pi¸V$&ô§wïÞ™ºêûGÀpG !àÄF5ºYÞUGÀpjÄ› –ÁAÓgü‹sýÄtÈ”~•ô°Q±^†–§Ñ6}Hª8ʳ½êP·cRî’÷ÑpGÀ¨º¸+JÕ½7Þ3GÀpª,åíŠRe/Ü;æ,EÀ]Qü­à8Ž€#àT<+JÕ¹ÞGÀpGÀpGÀpGÀ(&îŠRLÀ¼¸#à8Ž€#àT.þ9Oc°ÌÒe¶¦Àm뼞vÚŽîâS¹·Æ[wGÀp*'6*voÔpê™/Èâæ”³f-”?þX ³g/”Y³x]¤Gâë|]gÿB²H–,Y6¡ÛÊ+7‘f–EWòªã£>Ê«œrGÀpòGÀcl”?ÆÞ‚#à85bl<ùä“5îºü‚* Úh–š4MìŠK;±XHH_§NÑ©hCX¬„ÇgJ~¼U¡@:^O÷Z¡{cŽ€#à8Ž@FœØÈ‹ïtGÀpŠF%Æw¼!W_=Ìš^´hIÞ]xè¡ceûí»å]Þ :Ž€#à8Ž@ÍAÀ‰šs/ýJGÀpÀøñSää“’/¾ø%£ÛIúEÖ­[G¾ùæJiÖ¬Qú!ßvGÀpZ€@½‹ÔjÁuú%:Ž€#à8Ž@5A uë¦2`ÀæÒ¸qC9r‚Ô­[7'ÁѦM3ùí·?eáÂ%²âŠ-¤Q#!VMnµwÓpGÀ(\±Q&0z%Ž€#à8Ž€#P Þ8唇åóÏÎHn4lX_6Ú¨£o :uDzö\M¶Þzm]ºH¯^¥~}Ïn_÷ÆëtGÀpª NlT•;áýpGÀpŒ{ã®»Þ”«®fE-Z\¨ÜãŸh$ÆŒɻ·ÞúV—±òãÓ¤iÓF²ùæ¥OŸ®²í¶]¥S§¶…Îõ GÀpGÀ¨þ8±Qýï¡_#à8Ž€#P+ȤÞ@ñí·W©ÛJƒe0˜8qš‘#F|+o¿=VÓÅΓÕVk“"9¶Ür-#>–9Ñw8Ž€#à8Ž@µBÀ‰ju»¼³Ž€#à8Ž@íF hXÔW^9LPnl¸aGyþùÓŠeñâ%òÑG?È›o~£Ë·2fÌO梲ÑFd»íÖÑŒ*ëH×®í‹¬Ç 8Ž€#à8Ž@ÕCÀ‰ªwO¼GŽ€#à8Ž€#P&ü.§žú°ª/Ö‘³ÎÚ¥ˆÒËž>}Ž äxã ˆŽodêÔYÒ¡C+#9vØ¡›l¹e—Œ*ekò=Ž€#à8Ž€#PÙ8±QÙwÀÛwGÀp!€zã?æJ«VMJt~ò¤O?ýQ^{íkyõÕ¯LÍѰa=éÝ»³*9ºÉN;u—UVi•,î뎀#à8Ž€#P…pb£ Ý ïŠ#à8Ž€#àT>S§Î–×_ÿZ‰Ž¯LÍAlŽnÝV6‚cç»K«V~'½Ž€#à8Ž€#BÀ‰¾â8Ž€#à8Ž@a-Z"ï½7^^yåK>ü ùùçé²âŠËËŽ;®+;ï¼®lµÕÚ‚ºÃÍpGÀp*'6*{oÙpGÀpª_}õ«¼üòJr|i.+¤“%øè®»®'Äæ`ÛÍpGÀp*'6*ooÍpGÀpj“'Ï”_üÜ–÷ߟ uëÖQG#9pYiÓ¦Y ¹R¿ GÀpG j#àÄFÕ¾?Þ;GÀpGÀ¨üñÇ_æ®ÑA¶•ùóÉ&›t’Ýwï!»í¶¾´o¿|5¸ ï¢#à8Ž€#P=pb£zÞ7ïµ#à8Ž€#àTQæÎ]hAG_xaŒ¹­Ìž=_6Üpu%9Ö7¢cÕU[WÑž{·GÀpꉀÕó¾y¯GÀpG  °pábyë­oeèÐÏ”äøRf̘#믿ªk¬±B5¸ ï¢#à8Ž€#Pµpb£jßï#à8Ž€#àÔ/^"ï¼3N† #/½ô¹L:ËÒÈî¹gOaq’£†Üh¿ GÀp GÀ‰ ‡ÜtGÀpÚŽÀ’%AFúN† ùDpYùý÷Y²îºŒà€äèÔ©mm‡È¯ßpGÀÈ'6ò†Ê :Ž€#à8Ž€#Pö„däÈ Jr|j$JŽîÝ;È{ô”½öê);:ÉQö¨{Ž€#à85 '6jÒÝôkqGÀpjJŽ‘#ǧHŽiÓf[L޽÷Þ@IŽ ¤C‡–Õúú¼óŽ€#à8Ž@y àÄFy êu:Ž€#à8Ž€#PJ 9Þ}wœ \à®2sæ\Ùh£ŽFpì¹gi×®E)[ðÓGÀpš€5ã>úU8Ž€#à8Ž@ F`Ñ¢%2bÄ7òÜsŸÈðá_È_-Í7_SPrì¾{iÕªI ¾z¿4GÀpG 7NläÆÇ:Ž€#à8Ž€#P¥˜?‘¼þúצäxõÕ/…”²ÛlÓUöÙgÙe—õ¤I“†Uª¿ÞGÀpG ¼pb£¼öúGÀpGÀ('Pn:%ŠŽ êÉŽ;®+}ûö’>}ºÚv95íÕ:Ž€#à8U'6ªÌ­ðŽ8Ž€#P½hÛ¶­L›6­zuÚ{ë”!~ø¡Æ¼Ø¨ k,]U3fü%Æ}&Ï<ó±¥’]~ùÆæ¦‚’£wïÎR§NÒ5àg;Ž€#à8U'6ªèñn9Ž€#PÕ€ØèÛ·¯ì´ÓNU½«Þ?G L˜2eŠœ|òÉRÕˆäENš4S]UF›’c̘Ÿ¤}û–ꪲ¡ì»o/YwÝ•“E}ÝpGÀ¨ö8±Qío¡_€#à8•ƒÄÆ¥—^*'žxbåtÀ[u* ~øA:uêT¥‰$4ãÇO1dzώ–‰§J—.+Áѯ_/MÛ*YÔ×GÀpj‰@ÝjÙkï´#à8Ž€#à8Ž@^tîÜNÎ9gW9òßòüó§›[Ê=÷ŒM6¹TUWÿ‘‡zOþøã¯¼êòBŽ€#à8Ž@UDÀ‰ªxW¼OŽ€#à8Ž€#à”½z­.W\ÑO>ýôbyðÁcÌEåâ‹KÏžåè£ï—_ü\,X\-{•Ž€#à8Ž@ù!P¿üªöšGÀpGÀpª"õêÕ•í·ïf ™U^xaŒüïɱÇ’-–“=÷ì)ûí·‘l¼q§ªØ}ï“#à8Ž€#P'6 Áᎀ#à8Ž€#àÔ.š4ih$DÆäÉ3…X¸¨¬¾z[!G¿~i\‘¶µ ¿ZGÀpjƒ€ÕæVyGGÀpJŠÁ rzß}÷ÉÊ+—_Fˆ»îºK³Piݺ©¥ŽEÉѽ{Áçóï3}ÍpGÀ¨ ô‡ÜÍpGÀ(6:@·ß~{Þçé@;¨ëAP—† ?qAIŽ êƒ ŠÛÖÁeÐu¸é¦›‚AÓ©º·ß~û°í¶Û†Å‹‡wÞ9(‰š4iêׯTá`åt°z÷îmuqþf›mfëêþ>ýôS[7n\PW[ßzë­S}Ygu‚Ö­ú·Å[اÚyúé§S}9î¸ã +¬ÚVB üãÿ°m%!‚’©cqEÝF¬>\Û®‡zÈúÏu€ÅN;í”`)„GÇŽƒªLìø+¯¼«J½*† ”Ð\;øpÝô‡×óÏ?ßÊŽ1ÂêPÂ#u®9>aÜ®­µÖ²>ÆþP¯v.õ]}õÕAIœpØa‡Ù>úFW]uUªÞÿûßvŒ:¸Ÿ:u Gy¤?öØcƒª3ReYQMPâ"€öÖ[oY›êú”`1œ_ýu;F?7Úh£Ôz¾}æ„lxsŒëÞm·Ýmªª†]Eš v~øa‘ekrŸžn¼q¸~^.íÛŸúô¹:ÜqÇëaÊ”‚÷yM¾v¿6GÀpª…€»¢èÓ—›#à8Ž@Å ÀŒ¸´TJŒÈ;ï¼#¿ýö›)p­8ðÀ÷gžyÆ:õûï¿Ë›o¾)‡rˆúûÿO†.ß}÷©Î<óL!Žƒþ´Z Н¿þÚ” Ìί±Æ9/ ¥j %;¬®ýë_©òôs„ vœ8Jf˜bJ¬Èi§–*{ê©§ÊŽ;î˜ÚFqðä“OÚ‚JãÿþïÿäŽ;îƒ:ÈÔÔ{ôÑG«”ÿXAÝ@ŸQJ\vÙerýõ×ËñÇomÐú†¡ŒH·5×\S3WìiX˜¢|AÍpï½÷Z}1FGú¹éÛô$¸z 8P^~ùeS»p_”<Ò´ šÌ­·Þ*>ú¨(¡beï¼óN»>à›‚ãòË/·xœw饗š"ÙÖœ9s,α6pCAÉ2kÖ,{EY¢¤‰wE îCJT™Kª˜t˷ϹðŽu¢†¹ä’K7 ·üèС•œ~úNú>Oß§Y•›o~Ecq\ljRÇ.Zä®*ù#ê%GÀpJŠ€%EÎÏsGÀ(6ª¤mæªT°Á+. o¼± ¦q(€ÄÀž}öY\ï·ß~FV@zàŠñöÛo«ÿÿ…6˜gŸª*ŒPu‡»$¸f.ã\Ü1\©ª#ObùN8ÁÜCT"ªB0âlß}÷µ}±ìE]$ûì³OÜ´Aù?ÿùOa9ýôÓ-(uH †A<ç@D÷ƒÁ<„Mºá^’Qç{ì¡Y+ Rsr=­[·–×^{-ŸÓ Wú‹; I•d=ö˜¹í@ AÆàƒ{ ñK† f¸Cp?!|¢ëP¬7™8À0†Œ¹âŠ+ì=ñÉ'ŸØýg?ý X)n8¸Šà²’nWùô9¼ûõë'Ä.á½çV26Ú¨£\}õþòé§—h€×ƒ5ÈíB‹Ã±Á•,{Nïõ¯%«ØÏrGÀpò@Àclä’qGÀ(’ñ0¼ª@ªbÈ ”ØÁ¬3¾Gj WB ÷B]ä¶Ûn³Râ’•`²D#¦D.‹$eˆÓV´ä1u;±ÝÄÞÈLjmñƒÆöˆ†"˜êbzbS`18h,·Ê*«ÄÕÔ+51HôòêžbÊŒÿþ÷¿víÄ IÚJ+­dŠä¾¸žD•ëc‡¨ÛOÜ•z¥ï(RöÞ{ïÔ>â¦pïPÕ ,IfOéÙ³gª+\O&’‚cÄóÀˆ«-¾_P¶¤[qú̹éø%ñ&&‰[٠ШQ}%í6°å×_ÿ°¬*O<ñÜsÏý²ŠÆIÙDúöí¥1]š”Mƒ^‹#à8Ž€# ¸bÃߎ€#à8†à|¬oß¾Äòž{î±s”âòÀ õ05¶…àþ€ mÛ¶BËh¸«ä2Ά;L àɾä±wß}׊%Çóòy%ø%î%¸D` Öü£V ' )bqÝH·H¤§I¥Ü5×\cî ;/:†ËÙHèsÄ<ºs@Xàæ’´X&¹/Ó:XQÓÄ~óJ×ý÷ßß‚¢â’T™¦6_ƒˆÁ’×AQ¬cÇŽöšü—oŸ‹ƒw²~_/=+¯ÜR•;;ȻʫS4Øo¹òÊaªôhjŽ×^ûJß/dfé[óGÀpj3NlÔæ»ï×î8Ž@E@9š«î"(HmŠ‘ —ÈÜP|‚ì*(8P/P†81ËF¶K¤nbl !Æ®ÑP…Œ;Ö”›o¾Ù2ŠÄ8ÄÍHº¹œ{x ñüôWHü¨h‡ø"´JŽÝwß]^|ñÅôÓŒá:ˆ=B›!,¸‹Ðg\10êÄewÜ\n¼ñFÛáU1ìCqAêÙHrX¡"þ¡¬$¢^RÖÒ.nBdxT‚„ÂÕ†cà CTÔb§Q}ê0J Hꄸ¢.bxࢄÛRq,Ùçâà]œ6¼lñØtÓ5ä†TâêuÏ:@?£s4¦Ê½ãòˇª[V~Ѝâµê¥GÀpj îŠR[î´_§#à8•Œ@ú ;Ûéû’]$Ç#¶Í~>œ^Â$~F°RÚ„°Ùj«­,Åjì+¯émÚIKÿAX@ 2!À*Ä„ †ÛJŒ‘Á6nAÜúŠc›m¶)„I®vPžhö ‹*‡²ÄÑ(Ã@™À .´¸”IÆk@ý1hÐ Ñ 2iÒ¤eÚ¦Ž²02·pm´Œé‘­nâb@^ f°H^7çpí(+P:@Ê5i(,¸æèò‘8Õ™3gZZÇôŒ eÝýÏ?ÿ\˜­r÷dýÌÓ>þþE³Ûï½÷^Öb#FŒ°Ìb“®#í&®Ñ^ˆ«‚[Å"@\ b+jµ¤!Åý$FGÒà“r" “q¬4$@¦:}Ÿ#àä‡@³fÔýls[ÆŽ,>:Ê2ª\{í‹êzµŽtЦÀv]ý^.첕_í^ÊpG ¦"àOë5õÎúuÕp'¥ÜüCæÍL)©ñëÇ „ä89Ù9@rV•€ŠsçΕ:>Ô…¿üºë®[h†•úÞ‡O=3ã(5Ò  dV·äï̲ÆT¤Æd¶›>’å€~%‹ô)}¼¾ômäòÄ.ÈdŒ))9N F®Ÿ×=z˜Â"ÓyHõÇgÚP1Yé;1Pƒàf‘ÍÈÀ»nÌ¢cŹ7±Þ¢ú=zôèÔ=Åý ÝÒßéÇ«óö§Ÿ~ZêîóÉDlŸâ,›AxåkÇ{¬ì°ÃšÂ²¾§»\Q ¦×_]>ûì3¹å–[rÖ]”âŠ`FL RÓBê¡JºÉ_äꫯ–¡C‡fýœåì„tŠ@—.+©Boo%8÷ДÇ_(Éñ¾eSiÓ¦©Åè8è ÍT¥T޹ÕzQGÀpˆ€ÓÝ5ð¦ú%Uo ¨Áû’Æ`A‘ÐCl½õÖ²Ë.»Á¯7Áúð>üðÃÒ±cÇBY ¼H@Fˆ Î!äÞ{ïm"‰YApAf¼ióµ×^KvÅ28Äà€”¥\Ïž=-í&!T¶ß~{#>vÞygkã™gžIÕTýôÓOϺ:a9>A12W€}@Ö¿Ê*«˜ûIúi:“$&@—.]d“M61?îd9²1@6œyæ™ÉÝ©u\hƒk#ÓÄ ™°âÜÊçê7D÷Ž{IŸ!— Òë>ᄤ8)5ÓëðíÒ! RTZÙÒµ L¼·ÓˆA¾3 ,‹²¢Wƒ¨œ°>øÀTL¤ÓM„*ê&Ï•DÅ×Ë êéwn%6Ž×ï÷ó5›Ê2dÈ'ú[u…fåùýP? Ë»^¿#à8Ž@FÀ‰*|s¼kµ ”dI@MAx`Fð'péß~ûmØ "xôÑGm&š ç"µdi%™m…Ø UãðáÃm@†²ƒ<³µ VI@CR:l/W :GQk „ .²&DCÕ0aÂ;‘rÜqÇ™‚ƒã§žzª4±lú6júš\ |Òíˆ#ް ‰ô™þBXtÐAË ¼ˆ×@ð`pU+ÉúÀœÙè|PÞxãä![¿÷Þ{í:©‡A"D!’±ò¹7T–«ßÜÈÚྡྷŠA¥’n`Í —Höp/jªAØ¥ø  "(ê ùï>Þ›¼LdŸ£hœÃûž×¤AB6Er åC&W(TJ´O[¼xÆ{“ûÉ5ªb+ijÍŒF=Éë &ÈäÑqøá‡§¶x>×úÎ;ïØg"îËô:uêTA”ézš7on$Æ“O>™éÔÔ>Þÿ<¤xMZ¾÷&žàLÈF“nÙîO,Çùn5ZéoÖÎJp\ ¿y'È +´P¥Ý“J¬_¨j£§ô=Tøs^óñ+tGÀ0t ãæ8•„€Î² ÄTí@v¢ ³óA-A@{ôþûï[9Mµã:8²m ’iÛœG=Ï>û¬m+™¶Ûn;[× ˜A³=èä”ôJ~„—_~9èÀ$ÐlµÕV³ý¶¡ÿÔ%ÅêÔ`žAU ¶®$FÐt—¶®ƒüX4¨„=è@˶Õ%%húÌÔ1•µ[yuHí˶¢òþ .A ŠBËO¨ª#è@3¨2#h ;OA‰š $TP)~8ì°Ãì<Ð…âÜ›¢ú Žê”41ÌuÐX²™¸ƒ¦ JÖÍ„” :¨ÏV¼Ìö«kQPW…2«/[E6sÌ1A*Ëá½Àç‡÷÷Pãi„3Î8ÃÞßl+ÑÔM#hZÕ ®OA³u¤êPEQØvÛmƒ¢ƒªŠ‚ªì}§1U‚¦JµrJ~„Þ½{[Ýœ¯ñ7l÷ ¦.MvŸX§|†5¶Gª®§Ÿ~šCáàƒš66hf‘T_:ê(;Æ?%ý‚¦„Mmk¦‘ j Ûæó J£Ô±ô®WÕZ¶[ ‘Ôû’ë¡/ª*²cÉÏ/;ø|€QÄI•YAãËXYU…Ux…Ýwß=(©bŸ<ðÀV^I+wÞyçÙõ€3õp/ÀË÷ÞPV•"†u€?mò™ÂrÝ+°ô8Ðo%b8”§ÅÏ0ߥn•À´i³Ã]w½¶ÙæªÐ¾ýéaûí¯ÑßÖ·ÂŒs*¿sÞGÀp AÀúåæTÌL¢Î@þýÊ+¯Ø «à„Yÿ\Æì-ƒZÆx1¢~{ØqLÙL*j ´[ìÜ'pYÁ•ƒÙþvÚIg¼V°_Îc;™©A‰«+Û¿¤ÿ=i+i+Zòm`Ìjçc(P $\i’6qâDÛDÍ€K ®!Ìb'g¿™Ée–eC4Üf2ê ÖâŠ\yå•…Šàr D‘¹½œsÎ9V¦PÝÈçÞÕof¢TA‘C?Ét¡ƒ¼ô¦RÛ¸×Ð×TI€ò7$%]RÇ«ã j bFànÃûµ˜g2dÚû<ÆY!.jÒ}@T ± S0Ñ—l*%”>J¼™Û "–!C†Ø%á®uÚi§¥.¯¤ &êç3C½¸§ðÙPÒËÒ’¦*×Þƒ(Žˆ§N¨„è{º%Š˜¤+–Ể÷’Fo‡ï1ÒŸ*±‹X¨9rÝ çR0åR˜¥Ò¾ïøžAÁ‚" %˜»Õ|Z·nªŠÀmT•x®<ÿüéú½¹š¾7‡©’m œtÒCúý?®æƒàWè8Ž@-GÀ‰Zþð˯\´2aÏÀ†Ø JŠò—'èf>Ö·o_ ˆt7”C=ÔNcðAÐQ„"ÇžAÒq‚fê¬vªú¢â$åç &‰Û-y bKåJúš2°BzÏBÀÃë®»ÎbiÄz!€ t r¢åŠKAúWƒ$1æçPQ‚|ס³Î:+V—zÍçÞÕoH.ÚbÀÉõ@ÔèÌxªô\k˜Bp\ýõ¢ ¹ãŽ;Ò‹U‹mÁ P˜r÷Úk/sÿÁ­„ý™ ˆL&ªˆ0²NUÑ™áƒ;Ÿ/ɃoÞ¤ ÆÝ B‹À±´Cl›ñãÇÛ>U\Øg“x1pÍu¨—˜'¼Ç * A…; Ÿ3¬{÷îæ&Å{„Ì;´Ëõbûî»o¡ 0išaîc4È9\b’K¦÷Úc=fA|Á€¢¸(7fý‰õ 6Ì®GUU†D ç¤Ä&ï-Ò “:9i»í¶›¼õÖ[w‡>%Ý{ò¹7Ü‚¹’Ú—€ÇÜCˆ>¹îO²?/~ä‘GÌ•è²Ë.3×$>Ë‹4hPÊM)yNu[‡ðã{×!¾ÇùNKwÛá=iŽ[ëÑ8â™}œIf0çû9±•Ë¥ ò˜Àµ|F2=¶U™¯½z­®ßýõý‰þ®õS×ÃéhôvWt…Ã}]?“³+³{Þ¶#à8Ž@9!ß訜÷jÚŽƒŸ“N:ÉO2hàž5yeÐPc Æàˆ)/8`<ˆ2 ãa–ŠyêªbŠÿþ÷¿V†á .¸ g¨›8(BˆO@PÍh¨Bˆ%ÀÀŽô ’˜Ç˜)Žñ?2m[¡"þNÉÁ ŽY}fk©›kIäÁƒ ?àcÐÏd™ä:ØŽÀ“Ø!Ñ@ü°‘ý ž°d,„X6×kQýV÷$S^@410#›L̾’¬Ì¬£ŒQw$‹aÂ9 Ú!ÊÊÆTý–MUyÔ¢îBFîA2pŸÀ¸sçÎ9Ïäó{L샰ˆƒ®ŠV0¥«”¸ïIãx\&÷gZÏGÁÄy(1ìFŸ>ûQÍë†èä³³±?›Šé”SN1²äøã·àº±p%0ŸHSâöDY,“Ͻ)JÁ”MaÛH…Ĥ¯%ê2dß?IIb3ýœê² ݧO#ÉØÌ=„XŠïqˆ9=ˆ=â ©ë“\ç’É Ǹ7üþðýùÃûóÚk¯5( Nø.å;•õ(d2ß…çvd’Š}ˆe*ûµI“†2`Àfªà8M ˜s·®ú[ñª¾—/Ò÷Ǫêúû»½²ûêí;Ž€#à”'6J¡×à” <¼3+J€¼n¸ÁêêÏ^¢º“3¹Ì˜2£Ç+ƒ> —f÷y˜…ü€¼`V–blyÀåa•5äF´ôÁû™ÙÖxú9@¶Ýv[a8ç30GBàD‚Æ:P‘$3­¤o'¯!Ö_c¸0C‹‚‚A3ö6´Ïe!2x §Ÿ\Ç™ÉNZ<‡}#¸¤ÄóÙaQCPEDJŽçc´QT¿Q‹|òÉ'6óÏ EÁ]Ó ÷\_˜5¥_ôþÛ¦ŽÔÔ‰|t’È;êîóÚv"/¬§²uyz¼¡2aW»Ê’ž€{ƒ%\¸Ÿg…¬ÉeÉ{”«\E+˜ÒUJI³äñçêsq¡‚ìŠ &^!þößÿBUñÙD‘œÑϦbâýÊç“ÏÚh¸«|q«“}ûí¤pÁÏhÐÚó4hö™úÞFŒø¶:]‚÷ÕpG @}ýAts*Š@º;Eq»© Pˆ J×®]—9=Ó> 1ËŠªK¦2µþŲYl TåiÈßQ…e¨%J;kK[цöˆ¹ÁR[¶ß:FY  ™y¿KýùS¥÷jˆužÆgømM‘·_¦‰Ôûcâ£"ž\p¼Þr*7i+²œkm¤ ¯ [.sn¡Oa©B† Cq› Õ.qGˆE‘´tEÛéû’åQ.¡òIW0ñYAÁ¤„†ïM*˜p;BÁ„1ž4ÚJ*}¢J •Š“¤J‰Ï n¨ P9¡"Âã•,4… ÛÌœ´3^o² Ž'-ÙfìQVD…׃ê…$Ä\ˆÆwî>(´ˆeÞš9(…]& ‰ûAŒ<[9ÔO¨šøAÕA¸¾pÏ’uÅ6©3S½QÁĵFw\oH3Ëu£$ÈvbݼâÂ…ûnoœ“É}+Y¾,×çÏ\,S¾˜#S>Ÿ#“?›-¿þ—,œ»XêÔÕïÓºudÉ"ø‡«Û°Ž,ײä_(ë¢q1Þo1aøœàb„ZŽØ,IKºñýC](Ð0î>Ú:îA¼ÿpiŠ]šPþ¡ˆ!†ŒIïƒÏq\*󨝒¾vé²’* ûêuì)C‡~ªA—Gjá;Ôý¦ÆóÙ\×7Ñ`´Ø”´ ?ÏpG â(ù/kÅõÑ[r"À>Áy-©1è`ðÅCmÒÀ1XÊ4P¡Ç(S«mÉ%(̯œŠŸR7%&LYR0@In¨¤ÐšÇf$6ReV ²ònDFýf©Ý5a…÷1XT%³Ì%Åø ñ€*⪽¦ÍŒ$1¢1#ˆ'1ZÙ‡  ¸ö ±g0Ï€ŽXI¦dpYêƒ, æÎb/C&B¾E æ –ŒoAö–hI0ȃ\1 ’Á-.ñÄå ƒ‹W¶¯¹æsKÀmâ&ºªqŒxéNÉ`Âà€û nP|Öãç{BÀÛâÜ›=zX P°a0V ¼±\÷'ÙGÜ—â@?¹¿¬×ƒrŽ_$Ûµë/ï¯#ã.üBfÿ¦Ÿuµz êÊâ…&¢°í ±;Ã’¿I v6[¡¡+é¿lß¹¸—ð]k „ßÝÄ>‰n*´—íÜô¾à¤ê‹KA¼AÖñ~á}Àg‹Ï$¯Ä¯|$mu³FêK¿~Ù2nÜoJ|ŽÔÏâŠá‹sj]%A{+Q×%oìªÛõ{GÀ¨)8±QSî¤_‡#•žgØ[¼] Ø¥3tçËf1ÛC¶ã5jÿŒÑ"co5¥…óQZè²ðÏ‚Ë\]ãVlñDöKnÙ]SfhVSY¨Ú"*-P^Ô)ˆ‹’ýd=ÒP®,5ÜR •^gE)˜ O"’ÞÕeU:é%ÊfÅKQÆ ~r¿¨ò™ŽwéÒ¥ÐnÄ%±¢°É¦0‹mU©A[Aÿþün‘ìÔîp™>ªŽî) 58¶xáßYHØÎdÍWm”iw™ì#f d¯N%`2dDq`ËdXB¡©é†„ïü˜R‚Å™w ÅÒÉïâ¶YʯµÖŠrÑEûh¬’=dذÏLÅ1`ÀúYjRq´k×¢*tÕûà8Ž€#†À2ijIH8ÝÚŠA< VçV‹@Uñû[K‰‰¥¤û"AÑzC‘MïËÈây"s- $𝥝i® MVË~.GZèÀƒÅ­\(OÏ¥RbðOPK·ê@Ýúud•–“óOØ[ž¿~¤LÞHæL[ uT˜±Ô“#ëEÖ­_WæÏ\$ï\þ£4kßP—FÒ|冶4i«$&WôÍðöGÀ¨…8±Q oº_r9 °Dc,Ô-¹t¸zT±U¢®˜p11oilФ+H#ÍŽ²Ç·ÙûT¯‰N?vRUÆ&«,’® ¬ç2HŒ{ç*áÇGÀ¨Hñ ¹Ñy×Ö2aø ùøÎ_eÖ/jú…Eil³3V)túÜé‹–*>æÑQ©ñ‰ã¤I[â{(=P{X¼•JÝy’Á…zP{77n lfËgŸý¤Ç»êž7D—ç->*ŽîÝ;Ô^€üÊGÀ¨@œØ¨@°½©ˆ#Ɇ1î.‘~¿UcWñ›ýÝß®43AP0͸ùƒÙoàb•]uÍÒ¬JBÓ¢UÏ¿MŠx°ƒ¸Øäîìõû‘*‹)ßxã*Û?ï˜#PàvQ”AptÞµ•tÞ¥•LxY Ž; \T·)ÛG¯Æ­ë Ë Ý• .ˆçAüŽYêú2mì_öºð¯ÅvÁE›wh(ý¯[D-~8=z¬ª™d”÷Ñ´ÎÉñðÃïiÖ˜ÕMű×^=5qn7£Lõú>GÀpü(Û_×üÚôRŽ@õG€ôž__/2ñ ½ôãH=šèW¬ük ‹ úbŠ uë@A¢b£³÷má,‘!šÍ#ZƒfKI‰¥Ù=ž!ŒÅR¯}•äq«Uì½÷Þ2k–¾wÜZ†@Ó¦M…Xd­Zå‘fYEkîÜJÖÜ©•üòAå~^Pdô>gÕBwkþÌŦôÀmfþŸ$G¡‰y,’á§O0wš¨ô°W2»¬ÔHê-çŠ-–“£ÞÊ‚Œ‹ãœsžÔ4²ÏiÖÁåCzKçÎí¨úª#à8Ž@Y P퉇zHF%·Þª³æåh|°LŸ>½P :t=÷ÜSx¸ÏÇ^{í5 4u³l¾ùæš#ý_vÊwÜ!=ö˜|ñŲüòËKïÞ½åŠ+®ÕW_=Ÿ*K\fÑ¢Eò矖8B9yí¯½öZ!5*w³gÏNõ¥I“&† AÂZ´(:ßûá‡nå÷Ûo¿T™VJÛçLuoŸ’¿ UeÂÕšô=u=Ñ™—x„H(bc±¦ˆ$ÓG®”¡ôc˜Æ¡ ØæÂ?´_J¶DcÚ šk¥{²ëZš6v„l±ÅZltÏ=UÙèæ8Ž€#P&T{bãÛo¿•÷ÞÓAf9Û믿.«¬²Šl³Í6ÖÒÂ… eäȑƒýÝwß-Ç{l‘=8餓,:ù;ì`e>úh¹ÿþûõÇí09âˆ#ŒÜ ðÖ¦›n*Ÿ|ò‰´oß¾È:KZàùçñÿÜW,X _9bÄ!…öÊ+¯È:묣?Ô[Øö¤I“ää“O–{î¹GÞ}÷]Û—ëß_ýeýÈU†c¥ísQõg=¾X%Çß *pµ˜ó£ú—e[²°ð)¥±OÏ™;yiœ Å–ú K)±õ××zY<‰Z·Æ‘" [(-"Aaq*4¾…(¹Q”µÚ ¨~ÜpG #°\«ú’ãcáœ%$•Ì.éY`Ò¡šöí\yûÒ‰ÒlåFªúÐØ(=–Æø ¨jƒ¦yüV¥WªÛ<“l»í¶ŽT­]¸û4jÔQ^}=yóÍ·dêTTŸnU þýûËã?^Õºåýq"(5±1þ|a KJ°üÑfî×[o=Y²d‰å7çøúë¯oƒgŽ5;™Çü矶}-[ê€LmôèÑÏAê EÀ˜1cdíµ×¶|ì ªÓU (È£Žbàƒ>0!æqg?cÆ YqÅå›o¾‘?þøC6ÜpCiذ¡5ÁyóæÍÓœFR·n]«'¹M!~4Q)D£½5ÖXCžxâ‰BÄyß'Nœh× ôwòäÉêgy¸FÍîª?ho©qÝu×É™gž«4‚ƒ~¡ì¸êª«l?×þñÇ[Ÿzõêeùâ9€‚¬"‚¢<¹¬s_V[m5ùþûï­í=zÖ\×”)S¬î~øAÖ\sM»fÎ!'=¯”­Woé^K‚ϸqã4Å\Yk­µìÜä?ÈšK/½4µ ÕÉ¿ÿýoÚëÅè÷þ’÷žº°;ï¼SýN—³uÊBŽ>~þùçÖ7”1Åí3÷›´­;v´~7oÞ\VZi%k#ïsùöV¡q›ª QŶ$¡Ò(ØSðÿ·ª˜ø­€ˆiJíu)A±ÓH‘úÍ’g^ÿcŒ *”dZNûÙr½e ŠºïÕÂ'%¶ºý_bÃWGÀpòG2¢uçÆ¶ÕZæõ¤ýÆÍÍõeÒ'³eö°2wÆß“¶k);\»FQÕd=NÌŸøÜ•µP9°dIÐg¯~U¤7ÞˆÀõ׫›±›#àTOtÀZÈT1€†½Ð¾\ï¿ÿ¾•W×{å\ÍkvÜqÇÔ¶º^hu³J¤ªÓÁuÐÁs¸í¶ÛÂgŸ}”¨J|ðUG„¯¿þÚÊ*Ô5(á`åÕý!(éaÇtð6Ø`[Ww‘ Ê ÄIPÂÂÚ?ꨣìØsÏ=gÛ[o½uêe•„°ã¯¾úªWÂ!ã¶ŠÃYgeÇ’ÿtvß}wÛ¥$CPõ…Õ£*ë«’vL Û>gŸ}vPµFh׮ᒬõ·Þz+|øá‡¶›uÊq½:øš>¨zÄŽ©*"€m´ñãÇ[ªöñ¾ì³Ï>ÖÚåܱcÇÚù`É>ðWâ#¨òŰc_ýúõ×KØ´iÓ¬ޱl¼ñÆöú /Øqu¡ 矾­ÇÏ<óŒ•yûí·m×Å_l÷{ÃýUu‡ÕËA%bÂÕW_måXç½£Sªßªˆ)vŸ?ýôSk_Ýd¬=uY²ú‹úwÎ9ç„Cw_'„w áѺºÔáý<µ<¦åžZ¾àœ§Wah·^Ù:„·û…ðÁ !|¦ø,ü³¨æý¸#à8Ž€#P«X4wI˜ñýÜðÓ»3ägå¼öÞü#<Ýÿë0üŸÂ{×þÆ<ü[øþõaøÃo‡už+ÝÒ Ð¯_¿ ŠÒTáç:Ž@%!P2ÍŸŽnÓ †ü—_~‘o¼Qt0kJfß}ôQsÙ@ pÈ!‡ˆÔSjgŸ}Ö”H¾˜íGi0sæL›ÙGYÁL>.¸i(yaÊ\O~ûMgų˜’!ocîܹ¦ˆÀÕcÈ!©ÒÌþ£Ö@} öT¬ Ô:¨M©@Ò·©€¶qa¡ÞÈwß}§¢Ž¶ú‰óÁõÒíÓÿÿû¿ÿ%)LÁÙ„k®¹ÆÚÇ}#“ˆC»Õn*Ää@m6Äà8ôÐC ßÔEåXAé0uêT“i¢îPÂAˆñ¿ÿýÏ΢Ÿ¨À¸qãÆ~(Q6Ùd9è ƒ`¸ìZÙϹ¨nÀ0ÝÀF‰[nºé&9ï¼óL-‚{ î(4·0WrE”„%CÒ«±m%%ì”/JDÉ]wÝUì>ÇŠQ}ð>S‚'îÊþª £ÖxRðµU "šZqæcıXëD‘ƒtæi_UÃìþ¥ÈªàØRqÞø‘õUÍR¿êùVçsi^ÆpGÀ(/8Ú²ãr²Jï²Ò†9TÚÜVVݪ…4h\W~ÿò/ùü¡)òêÙßËÄšH»F«•W½^GÀpj€@™¸¬¼òÊ¢ê»lbN0ŽÛ¸CpÀæÞÀ{ê©§d—]v1×Ü!>úè#Ñ™{‹Ý@ü Ü>ˆ5Á¹Ä§À­‚rGy¤Ÿé_÷îÝm@Ž; åpÁ÷2Ú…^høÎ;Ûq\B0¶i›A~¦möüóŸÿü§-ªÞ° Ÿ\#¤ FPÜHا ÛëÍK/½dÇ“ÿpÕ4Èe\;®"'œp‚ ¸ÍœrÊ)F áN“]vÙe‚›î% éFà½ë®» ñ. 1vÚi§‘4tèPÙm·Ý¤oß¾F>©â$½ QEŒÝ_îñE]dP~øas7X 0*$ Ö à™ÉTe#¸Üà²B@Ñ’ô9Ö‹K Á]¹Ešfþxàû~rüSk‹¬wH›Ô5déG„@¡¹Œ{¹h¶–(³T®Öü˜#à8Ž€#Pëh½VcÙø¤•¥Ïå-H逗ºËQ#{J§óæÈoó&Ö:<ü‚GÀpþF Ô16bU1~º1Ø®‡!ÆQ`bÁ3j¬o¼ñ†)8b„Ù|Ìö£Þxä‘GRêŽÍ6Û,6•RU¤v$V 2’¦î©:Øß©S§ÔauñHÀLí̱òü£PŒ—_~YvÞyg ’yùå—›*ƒxÉ,) ƒdÕÄ yðÁ-U"ñ’vÉ%—‘€1Èãi ÂH7ÔéÆ5FC‘±xñ²ñ!ˆ‚¡0yàbq –Êõ ¸HÆ!>Fº{î¹…bl$£òàȦh\G¦kàxzŸ‰ù‘n¹úŒJ%bN¼—âØâPOFÿ¬÷c½K –E³D¦¼%2YI˜I/ŠÌTB©N]ô}ž вc^AÜ’â´çeGÀpG ä¶AÛ%²(ü«£äµù™Ž€#à8Õ¿G𥼂ä 5WU¸£ ’ c³è{íµ—'³® ¸™(“ $qK Ìh¸d3FFC}€ê·’hÉãï¼óN¡c±L¾¯¨Œ:aÂ;ŊƇ\(âòŸÿüÇÒ¡¦×©q*Ì͆ëN×Ê‚ëd7£ †²„Á;î*ÑpñH·|î ýÆp!‰ý¦›®»îº¦¶À¥#Êšâ×A:Û¤B…ú“÷%Y_$%’ûÒ×sõÒ¨Ì ÷‘•U…´á ê^¢.*ý”¼Øâ1Í@r„¦_]¥ T(6æþý-³ö½"GÀpGÀpGÀpœ”±‘³•ÄÁ=÷ÜSÈvrÁØ€?fà mê©§žjñ5ºuëfê²›0Óê‚ÄÆÀŃ˜ ÙŒ3q.P@”0ðî0œƒ+ õà£Ce=ö°ªˆAû‘¤HßÎÖ^Û¶m-öÇ!i¨E í£âÀ}ƒøéF\ÜVŽ?þx˪‚ªø#%Ôyà¦Ü1¨b€~£ª€Á%UÌ—_~iíAj ôÈ×b6\ZP±@`@€/ûÈÞ‚ ƒ,1\×àÁƒÍÕ· ˜­%ß¶À<¸ç\èQ£L­Ã5ÇŠÓçâÔ[¬²¤O]­¿È&w‹ìó“ÈÞß‹lªë«ë¾ºŠU•vGÀpÚ‡€4 _î®AõM)Z:.ÇsŒ=Ó•gã¸8Ó^œLä98NÄ=ÿüó©¾Ä>wÜq’>ÑWžýóºG f"PaÄFT@dà†‚K±¢d3ª+ˆÇÀ@_3iXjS~Hª™QŒ ˆ.ñÜä ?®(Ä¡€4h  ¾x ÔCàOÍÐ’"tÊÀžW,}›}ñXéBßHåú¯ýËb†h&kå1’n4±\v @ˆ{ÁõÂ6Ûlc1H†n®(;\;j \*på!M+×…#çÑq> Jr8E¬6ÝtSSà8kÜ~p H"¨)„ 9¼é/DD ˜/û’1+bÙÚÆ]õ Xp_ÀB " KžŸ\çmEÌŠÓçôz¨«\¬iGUohðØ-4Øèv…Õ7åÒžWê8Ž€#à8Õ&ÏÞ{ï½r¿Í¢gÏvL^±téÒEPç åtyÁî‰/‡rC}Í„"éÁ1ܬYèXð¬HÝGÀ(1êPÈŠ›îµÐÉynhΠõeJk” ñ‚ºš,sLãGXJXÍØ4#I*Ýk² é^IoJ=úÅH¿-¦{嘪2‚º|ÄCeþªDAÐ`œaúôéyÕM_H­ªäHÆò\»*Q,%«B…ÊhRÃK< íÏgCcQ%3RE#n£G6 St…vU5’ñÞ$ËåZ§-p) öÅés®¾d;FºWÒ »9Ž€#à8Ž@õ@@]œÕTòN÷ʳ„*PƒÆð²çž1žut2)¨ËmP…íÓ˜^©ôô¶Cÿ©ÛnPBÜ´g4œK–ÚÇʬY³ì¹–çŸ9sæÔÛq+tBÊÖ•ªfµöÔEÚžõì€þã96>j`w{†J>ÛRŽk‰}å™çÁø¬¨®ÀAƒÝÇêì•öt¢,l¿ýö…öóìªuãé¦Ê‹ ŠŠÀk4UâÚæ2bªÙíì~hÂ~õêÕ êÞlxÜrË-v,ÖÃ+ç©*7è„Wr·á¬jfîÐÝÈÔ§X&×µÄ2Ù^=Ýk6d|¿#Põ¨0ÅÌ nwß}·¥ý$»Hº¡b )®é†ÒuAz ÍôrlS ‡èº^ÕAŒÝ‘~¬,¶ |Š*eH>F_P#â6“qí¨1`µ£z!–C™^-®áf‚ $ZÄ õëI£]ØþL÷&Y.×:mKi°/NŸsõÅ9Ž€#à8Ž@íD€´ò<ÏgBž/ÉG¦>žu‚ÃT´:X·L{:ØMõûï¿KGs†Û3êÖQÜ’Þ¾k×®æÎKa܋ɿ·ÕV[ÙóexŽJ7Ó£,&ÙvÛm'Ä Ã]{ñÅm?ç¢ð¥ÊÚ¨.¦ ÁØO?ýtVMñ€Ú%q6kÑ¢…´nÝZ¢+8."¸ÓWÚçY12ø ê`ãS&*=(I\ê¦É˜lÔû´-¢Grûí·³kÃ]¬#>JÙs1ÏÓ(|QrG7è\}Êu-Ë4ê;G Æ!P¡Ä_Ä|©á²S–QÆ›l²É2§2ðÏ82ª+ÌEa™ÞùGÀpGÀpª‚ƒü_~ùÅ2òA¨ÂHH U˜ÊW_}%½‡¤À#…=“=ýû÷·øo ¾q½à— *b¡1H?âˆ#ÌMXÕ‚ë Áá³™ª1äÖ[o²Û©*Ù–!C†¤ŠwèÐÁb”©Âb–ñ ·^ ×h´­jl[¨·b‚ðGò„v¹^Ú£}ú{ø‡~h.Ó¸GSòáÌ3Ï47q·ÕùÊu3YF&@ú wjúÎÂó{Œ½vï½÷ × .`K¬9Ü™!º”àB‚û®&,mÙ²¥a€KÎm·ÝfÇÉÚG¿¢KHzû< ÇP`°@ö@¢àNsóÍ7›û Übp¿AåAÀÑh¹ú”ëZâùþê85ZIl¤ø ’…FŸÍ+qrþ°ò7Ýt“¼ð Æ.kTû¡KžÇ†ÊHx !UlTŽÀRÇ5¾Ðñ)„e'û ëDŽR@ä´Ë A܇d0þ°Æ>ðƒÆ[4Ô ÔÃAÒ(™qØû¤Ñ¶›#à8Ž€#à8Õô¸eÙ®òB”€ša¯½ö²¢¤(=ÿüómRKƒ¼Ë*«¬bYàb,±øLGaëÙ,¦Eå8™Db–ÀX>yœçÈ\$I<'Û+1Eˆ{‡¡XÁ„gƸðìKÆ=ÜQˆ9¢Áã-u+$ n!”ƒü!¦E´±cÇÆÕ½âÄs* 0E¡‘D–>TÑrõ)×µÄóýÕpj.µ†Øà‹’ô¥;ì°ƒIúÊó–ò£ÌT­X®`FÙ‚ !gä#ý*ì:¬6?>H RE½—\r‰ýÀzè¡–6‹ Uü0<üðÃÐ*éÓ‰œ’gŒã8Ûn»­•#Í~ŒjüùHwï5j”1E꘬ÛNôµd»O<ñD¹^7îk1×}úë<`Áˆcêà\ äüäb²<é¥y_Sgz;Émä²nŽ€#à8µÜ"š6m*\p ø£{ò}÷Ýg©ë™`êÖ­›©;ÞI€OÔ —^z©ÅÆ`’è®»îÊ ¤q.˜”bPÏó]t‡á$žÅ4sйÁ0 Æ„Z´sÏ=×ÜdØ&ž¿‡‘´ˆeÒ_Û¶m›z惤¡N)´qÑ·o_›LƒT “uÄAÑ‚º… ?Ö9ÎysÌ1ríµ×šbBƒgcúÈyÄÚÀ5cb2WŸr]K¶¾ù~GÀ¨9Ôxbƒ/@ü&ñ$îƒõœ¨È\vâ1M7+,8ôŸçÓøÌ YÃ3-8¢.¡+LîåêS®k‰}óWGÀ¨Á¨ëB!ÓÈÉËä—.T lè 'è`?è‚]‹ª‚~ñgÌÍ~9úÅ4^Fúî¬ÛúÖÊ2/s\}ƒþX.qõ šÅÅòœ+!aùÑUÊô‡)¨¤.è—|P""èL°åê¦ÿ˜’Öe¸m›¼çú%o9ÊÙ¡Ñ©ƒþ¦ò•³ïøã‰Õ ?A [×™‚  »åJ¿æšk¬^õMõI}*ƒÊ ­¬²ðá ƒ²õlÿÈ‘®Q©­ßúƒt°ôGËrŽg;§:ìW_ÎÀýªŠßɾ©Ôò«[QÐËgÏqò»“û]Ý—¬8ï)“:ÎNuw²}±^ÊèÃEPò,(QeçÅ´£*¢@Yu‘ J6Ø!Þ+údëªà±:•, : x¦¤‚½÷8_e´A „xÈ^u&Ä÷=;’Û|.øœiZ½BçÄÙ³gj‹ý™rØ«òÃêÑÙŸxª]ŸI%G‚>, Ê–:ÆÊàÁƒí%=Rû•° J$¦¶Y°.ê:)Kî•*HØ,d¹îùܹ9Ž€#àF@'n컚ߧò2$K='%Ûà÷Šït%ù“»mït8 üFkF{.L/tðÁžÁ¨‡ß9~¢=÷Üsv]ÓI©Àïly¿›üΫêw™&t,hü¹e~ƒxVàºuÂ`™sÒw(‰bÏéû³msÍ`ñ  žm¢eëÇs]KÊ0û¬ ®M¸cEÅnUÌ>Ñ?ÔLÌÅTsœÒI'¥"ÇgÚŽmdz¥Ìæ`JœÈá‡nuÑê‹ôñ±ä¾ÌZõêÕË^ñÛÍÇ”ô}ðIåó…¢ qQ×™Ë,×=ˆ¹+XDÂ_GÀ¨P¹¢$à÷pºášÁoq2Àg,ƒÒÅʃ¢ŒzxöjذaÆ¢¨:b쎌J¹“ßpT(CÒ­k×®ƒ.ù¼IÔ\w|.M?/¹Í³Aq²‚ØE®|±1ÀBºÆ C™ó ¹ƒʲ§¢aç f”+RQeˆkJ€R•TŠA*?ªÈqCÈÀøaà‡é= Xè/òÂ℃SÜSøá?ãŒ3D#Å©ÂËfA€8)·Ür‹ý¨“>ø›o¾ÉH&pº*1ŒÀâ~âútûí·™G \)ˆûé–£{çAvs&)/Å]C•æóJ`Y¢»ó¾¸HÓ»P–è蹄ÑÞ øC6wÜq¢Š š3—'>—|uæÊ–!C†Ø1>§¤Ó‹–¾Í~$¿HUã’ &ÏËåöËðÊg?bä®àÄ5Ò÷|ŒöÁ(÷%4{:Ãc§ãÚ•é:Á%› Øâ»M?ÒïA²Oî –DÃ×G,©ëV>àÖÁï*n‡vX‰”Põî2ç“ö²?“‘‘²!ºod*ãûGÀp ¨‘ľøÌ£š`†–›Üã èye˜¯Aˆ‰*Hp(fÖ™­æGËÌ(W¤ÈR3¨M’±ïø%2Û΀ˆ$×J²C„+i»˜Ñ&u1‚N1f?³Íä§.8edRÁ÷’b" RɤBpÓô”eEÕW£ŽÏŸRêË!fJdÚὃ"_Xög2Ú<ø0èE•’†Ù#¢ÈòCÐL,9 GÕÙE_´Çl>Á#u>ýôÓÛ‚÷2Ÿ+ü{™%Éf|¾ Ö(K<ÞŸ|†0” ¨ ÔåÃÞ+\/F¬ÊGKßf?ïYb¹ÄEeª±xê5WûT!]á=Ïç•8ñƒ| ÿ^£¨F ‚ÄáËv”gðÁgi0FÅ¢.]9ïA²O|Ž!d f¸¸¡óo'éW<Ï×G æ"ÀwßCn僓…XÂHÆÀLÈìþûßÿZ`&öã.ì-*ÌÔóJf{±dÿ˜Õ¦êâG‘ VÉ  fyäÔF yÁ™QFR‰üCÕBÀ+Œ6Òå†v@ÿ1H½ãŽ;l`J-®·VZX,òÇÊú®.o‹ü¦ôÆ*‘Üõ“RÁq@ÖÈ*ªù<Ì$¥™Ücˆ‰hÜËHŠ1†ð‹ Þo¨z8Bb—ߘÜ4urýôhÖ±P4ÆíL¯ø2óÍÊ$‡Ñ‡‘A ³Ö¨2£ãïIbðÐÂCDªNf.¡-foqaVŸDHÒxˆÁÒ]DN<ñD›­G6Ï9É)±I²ýã¡'ö1[¹·‘ºSL¥$Æ;$ÆÔ÷E«kS]½±Ð^Jt´Ù¸Ô—úÕÏ•W^ié‰8⓾2øÍféƒölåx/;ƒ9ç@jh[{ &³ DŸ ^QrÜ{ï½/#=öeq¯ÊdÉTªLÍŠDרä1Ô D’ç³U–F¿hOƒ~¦ªÅÍ 5 ƒþh|žˆ¿ƒú#¾—‰3³Ûn»Å"9_! QŸ@h‚!df´l×É÷@t‹þÖ¸Ž1Ø`P’í$‰Êد¸‚AŠjÀg#K+à W¢\ß§Éþúº#Pà;,þžWÆõ¡ÊcRƒ¸G(ä 6™Œ‰é≥¡ Êw#åq1ä{/ª(ä ´!¶yb?ßÑ]u¾QpŒ²¸fPÞͨÉL›6ÛT‘Äøä“õxš}>êÕ««Ÿ£:š‚VŸÿÔêÕ«£c…k2~mŽ@•G ÖÉ;g2’û²­“‚ŠXÙrÙÎË´ŸzX2Y6y?}-ª¿ ÒÒg]hƒAef—3ÕÏl ªâXQ})N]UºìÜ_–ª1tpþÛ"3Õ‚`šuê«ú2Cf`K ~Фn‘¦Ù• …‹þ ‡….Ê"ÈÔ(jˆWÁhiŒ9®Æ`›€›´Éƒ*iÛxxEé@»<$C¶à[Ì{  EG&#õóà{óÍ7›ºƒ™?ŒA<Ê®fÊ ÍÅüq›AD}”iÛvæñ‚—(È›>}úÈwÞié‘ò&ƒ›QŽcÄØ@¹ÄÃ<±6ò5¢›·Ô/Ѳ]'$&’c”V…%æ$†³ÝƒX/¯¸‚¡¶4h¹³0¨â3ŽB%©ªIžSžëÅ ¦ÜÚŠÄo¦ÀÎ…ß[|_óÀw ¤ß‘؈±”ˆÉ…Å8H(æPñ»‚ò‹à˜|?CVBbð]ÏïA˜9—9&g˜p!æ O‚²çK¬WÞŽ#PFŒøV‰‹–ê*ÚP•IÿÖ‰‡‚ôð ÔS2#(‰¸$U=ëÊ)¦L“–©²»ðäbê ¯8Ž@… P#cl”%rqàP–uVT] ,!4˜YqËYc¥ÿjCe豟‰<« ‰ww‡ºœ|^@jPÅ’©Q¨Ê:"M²«* Ícƒ‡Ð˜ÇýÕW_5âŠ,é–þPÉvú¾ä9Ä‚`v‚-ª%ÈÂ@ÿaÖyÏ?·&ðéDáÃÀœ‡ÙŽ ÷#ÚŠŠÚ`ëÖ­›¹ŒÂ"öEÑ)§œbÆ<„ã>EŒ ×èÑ’ÛñüøËÄ×dpûâqûâ…StûJžÙwöÙg[$Ú|Vð£N–‰õóš¾"÷fJÜ'-ÛuF0\¹PIëÒLs݃dÝÑŒ{ƒÂƒ¸>\ke±_|¿ \óÅ1¨MïûUѲÅRŠ}Í)W|"¾Óøä;“xO³Ä Jÿ^ŒmTæ+ß­ô+Ÿ¥qý¦²VóžÒ§ÝrèêçËyë< k·è•×¹ùÔïeò»U §í¶ë¡Ò¿Ñ Þ S¤ïgTIR#Û{|­µœØÈ†ïw*:ú çž­=Ø}‚ã¥í®ˆ¾xŽ@¥#pãÀ#¥{Á²ãÚèhVÝL–,ʯOú %뜩AVÑXê¦Ñ¨­ž§ûÊÐü—V1ƒ¤·#fÚP‚$™wëk"ºJÄãøn³¿²â%IDP޾AX0Û‡/vR%ÄÃöœ9s,ÀîO¸c•ç`<“ÛW¼–ä+ýD©BÀOf=‹c¸~@:á«-ŸëDu‘ÉŒ:rÝŽó ŸI2‰ý•eGÄ‚ørsjeæ»´²`žTl@(óýLü,¾'P¤ñ‡Ëßщæ{ ã{’˜I¸îñ›Ý^íàÒ¸±BªCÈ¢È#Æ$7$ʪbB‡/Êo*óÇ4—Å¿7”%3 ¾óë,·Dê­0_êµ[(zþ)uuÝ­v#мù ú~ú]cÔ´ÏQt7É…JýúõäškPw”v¶´l¹l|¬\çû1GÀ(=µÒ¥ô°y 5ÉóÚÉ£¯¯);žõ˜FJU·ˆ4æJP‚"ApÀ~u]Á8¸¦4Vé/E!:Zi`ÊîK[iI ܪ^xá#(Òc®Ð1Ô[mµUÆ>2€eÉLjåc»¤—'/}Q@ÓÏ)Év.·¯d}ÙK_M˶N _°d€ƒï¦—Íu¹\ÀrÝÚ(í{ ½Ÿ¾í85 l±”âU&c%ã åŠO”LKL0vÜ q¥Ëæ^Û«¨W\kP¯-Yôç7û¤Â¸¡Óeâô™Òf»ÆÒºKci£K³ö 3vsÁ¬Å2ᥲXëì>  vÆ‚¾³F" âOͤØGcž •çŸÿLêׯ«ÙÙþvEI¿è¦M* ø´º±¨²W­M›fKIŽí7HÕVk£dIö÷hz½¾í8ù#àÄFþXyÉÚ„@³Î"›©kDKD¾¾VdìzõúƒöÿíœTÕÙÿêÒ› (E Š¢ EÁ5v$X"bËß^5–WßÈ«ÆXbì-6b‹¢¯5j°Ñ(‚"‚ J‘²°°°ËÎÿ|ÏrÆ»ÃÌìlcwgÏçswn9÷Üswvî9¿ó{ž'‚ãWÓÌ:†~÷|_òsãŠôè­ùÂìãóÜÈÕÉ›ºàSMÂâ¶YÇÍ¥©[*`A]@ ÛÄ ³e©–ˆøÄßH4ÒÃ&‹õB9Ò04Œ |¸_àöBÜ‘¨eÓ}FïKëB@Ô\PlàšFÜ"”p(2c)…Ö§Šƒ”.>ÁÍqUäÝû Ê=ÈÛê$Zó–Øêoòm•[VÏßà?Yï9¼íwåNáv·úì}d;cIgK>Zk³_øÑ¾}{µ‹^Ïv=.3R?]:V;èÞ½½‹16ÚÎ?‘S'¾ä‚vå‚„ÖßÊ-¢â€ú¸Ø]§¹$«œ«Ö²-ËR—Õp¹› ™å”Sk<7tj¯.G÷¿%=::eUNíJ­55äA¨5È„·›õ»ÊlÎmf³Ýúæ|§àˆDŒ Moµ« ‹ÝÔ¬eŸ°'óÏîeÖºŸY¾ `¹jzñgþ2³MÅ/BëtÙAo¦®`§KßrĈ›Ubi²å“öl12­T†Ý|³#z’Ù}R>ÙÙbÄâ˜>Ý=£$–M÷™äö´Kˆ¤¿=Äf ±”p? ±”B³C$â‘-*ÄA*oZúPï¶ú\üáZ{ãŽÄÉ+~7ÛκîÑÄ«/v>´uìß¼\MÉ_Uhs&þh³Ÿ_a¹ßm´ŽZØËw´ž·µFÍê—«N”=ì¾{W—ìÿÙûïÏuq±^ô™R 3(Š¡æèÝÛ©tuéÒÖ/QËËÛèÉŽ¯¿^æ‚°/õ믿>Ó‘!Ë›i¡/Ú±cë견·ƒ:eB@”Ž@Jbƒ82!P× ^Bb| dAÿ?™õ½Ì©7îv.'np_àH‡XQ1DZ“å …ÈÞ®ÞD+r¾¾Ɉ”hÙU3Ì><Ë‘. ¾Á.8š'9ºíG̤²ÍNMQ˜çR¤¸™,b‹È„€B V 9Ad‚c¨) 5ˆ›‘‡ØÉâ •'-=ñ<–-s| #½li±”ðòÌ]²Ñ“  õ‡Ð÷D÷¾MaûŽíbm{6µ6=›XN«Êy_½rÎ\Ë[^`½hg?;¾½'KR4A»ë0C†ôvA»/qn½Ÿ9ÇD§f¥O˜WPPä ‰tÐ4ožcìè—h9Èê™7¯XÝÁçW_ý`¯¼2ÃÅÝZç‹6mÚØzöì!=‚Ò£ƒËø–Ü•*z ­ º‚ÀVÄþ’ø)Ê„@]D€,;ï¼sê[oØÊõº®0ë3Öìë;pdÇG<G£*¬¾Sr4K-«_²óáf#’¤p­#B–»(“[–°^Z‹&º,0£©áü>µqdˆ“Þ6ÞΩ?XÜzÇÍzœ¿œV„@mC€`9%6Je¤ïNuÿ¤F~á…JfIjíóÏ?¿Djà…"uDõùçŸÛÛo¿í|üñÇ>Pë´iÓ|Y‚ó’͈Ùùª¶U«VùôÆ¥ R“µƒ¬?dBI@êhâüD ׆“N:Éuع[Šñìf̘awÜqG)%ð­m.µòX cGç²è¬´XJ”I)]|¢h@hê!öibS1ˆÿ×PFüçî%–»h£­]´Éò–mrYÓ‹g½›¶kd; l‘–Øh¾}£*q vSk¹CŽ5ÈQìƒTÏSûBàðÃû»Ôõ»9ÅÓGvãÄ.[[îT¯(?ºuÛÎ/Æýt ÖÖ¬Ùqi)vo™8ñSûöÛ]¼Í>ƒOçÎm<ẃ!–G§N­KV¦-!PØŠØÀO~„ uàÖu‹B àâ±Ëf½g6ÿ1—ö³ TV‰§6tÊ‘,=ËVi§áfÃ+ËÆ·,.&ˆ_çÓ‘$Ä Ig þaöéŠ9nÖå ÄŸí÷1ÛÞ‘#2!PM0»üÚk¯Uy¬²FL™2ÅÎ:Ë)¨¶ØÂ… íÒK/õéyIÑ[š1X|â‰'<¹AY²VŒ9Ògï¡2 ±´ÅÌÖs¬*˜<ãÇ·“O>¹Ì—!ÓRóæN9æ ¢æÃ?Œ§H& Çã?îSC<•ˆ’¬@6lȨ isF(g¡‚õE.kxÌrÚTŽÒ ±éb)¥‹ƒ”XO&Û¸¹¸ß0[çȉ¼¥›lÝ›¬`]‘õ•ZqA`ϵ‹7Yës¬ë/ZY«.9Öª«[Üv£æÕçòѦ{“LnYe„@bmœ|òÏíøã÷rYâÞ-7±¯0ÉJëÖMm¯½ºù%z˜ ¦ üèUÅñ<–:Òw¡‹ƒó±­^í¸ÎPˆ²#djô ¾GNÎVÿhõZµ}³kí£SÃkõ™õS#šR¡F Ê¨ñÐv@qºÛ+]\·@Ь_X/„m–tõ/tdêì¿:Äù‘&[È*Óv`…nQ'W?^%ð,éÄäîµ×^>á÷.Ó¼yó|ÆŽ“ö–`³ÑîÊ•+ý ¶K—.þF8`¶ÑÌ6¤4ž9s¦—À3ÃÌ€9qÖ˜ ‹Ìè3ËM`ÄÕ«WÛÀã²yäõÌj3ðÆ= %W40naa¡›-+Œ«/p#ù)ƒÛ¶mkù‹Ë’1T Ü[¨‹Ô¿´•{B¶qÍ ø”ȤVÎÏÏ· .¸ÀöÙgŸ^8¨&p)ØsÏ=½j#áÞÁ™ìC?î—l¤ö ® lã~@[Á¶  À¯£ˆ@aÑ·o_$¯AÊð¼HJÛPŸ`¨Jh'Øé'j¤†æ<Ò('„Cð§ÄIHAÍu>ùä]¾#Á=ð´ÓN‹“8åis2¼ißâÅ‹ý=pŸóçÏwRq÷{VɆ›ÅO/·9/®°ýÿ§›õ<¤j|æÓÅRJ)ÓÛ%ëÈ—Í·ýzëâOH‘6ýËÛ:WI <غvíê­ ¶!1ÆŒc·Þz«Ä2@~÷Ýw½ûÅE]äãAbOÜ'"µ'FÀ[o½å‰ê!K ÈŠ#<Ò+&ÀCL:Õ»?DÉW_}ÕgØÿýýqê "j Ú!0hÐ ,=ö˜wÜq‰óÎ;Ïžþùx|ˆ•Q£F'RY=|‡2(H» ¡ÀrÈ!‡xµä5×\ãU ²iÿ}÷ÝçI„‡~8N¼p HÚ€"‚²3´oòäÉž”A¡‚«Êµ×^ë·‚4Á…´,`YCv p¦=(\Àm”"|Ž;Öcýè£züé(s>®&ØUW]å·YçyBâ :”ͤ¡Ó¬Y3[¾Ü)ÜñüO8á¯JázO?ý´xà>@&÷‡ DYÚLÛSá EÝdú`à?ÌiÁQÃT–-ú ×>{|™-žškõÖsa™b¶17Iðéʺ`õ Y¿¢À6¸…OâKoÚá÷8â!…GŠ âZ´íÑÊšwll-:5²æÜ§[Ïi]5*” n)i‘ÕßæÛŒG\Æ×Vúö?òE&²ÒÌΙó™û»-~›îµæþzŽ(oè&XÖ8Ò~¡SÐ5òÛ›7ÿÃ7lXäïBÛuוnÒ¡z§â׊HÀ…^hûí·_‰£"6JÀ¡ ! ªöƒ»Š[Êk¤Ämý3G†¬.¶ºvNñ:^Ù·ëEé‰ â¥|ó°#EÜÌs#G†Ä·ÝØm·w¤K»½ÊÛ:A€q (¸CJ¼÷Þ{nö¨—ëLíê±¼¬.¾øb{î¹ç|\ ½ï¼óŽK»w¿=ûì³öúë¯ûÁ~ûöímܸqÞ•@‰ â¿üòK¯l@vöÙgûA}äò%VäC0c?dȟ£_ýµuèÐÁN=õT_ƒ} ‡º)2ÔÁhï{ì6½²!¸t2ð'‹î% Ô©÷Œ3Îð÷‘z‚Áÿu×]g·Ür‹W«p}ˆ…»îºË׋2"шbË’å $Ê#<âI£ƒ:È“ ‰ç&nƒÛ_ÿúWÒ€úP»,]ºÔÁ…2O>ù¤Mœ8ÑL\R‰ë Æ$Ä •ßÿþ÷%ˆ ÜhBœ T¤]»v­³ÁD eân<óÌ3ž°Ð0K´LÛœïå Ôåq·IlÄÁW/ýh3¡A`Ìú[zZE…1kШ~•yE¶aUå¯,´ýš§ýä¯>·MëŠ--MÛ6²fÜÒ¾‘s iìbP»v6IÁl¸›=`\±º(ñ¾kÊ6„Æ´û¿·o&­6\Löÿc7ëuX»´˜Ô”¶«B 2@QÇo(„v2s ”Qîæ‹¶Ç ¹tÑ9niâˆö&n’`©#â‹’ª}B F @?2¤56HÄF ­ !P;è8Ì8uKy­yw³í~^œé2dÝ|ˆ5ב"nmˆ‘tÄÆlçvðÕ=[ˆÈç’„`³|v9¹â MÝ:²ß žsmÊr;å”S ÒcPÎŒ=J uƒiT|°'1ø‰2LÌäÏ;×Lõi.!7ê¹À· ’!˜uÇP,0Oeœ‹;¤Êé§ŸîãZ„²¿ûÝïâî!W^y¥'Yp¡íA¹Êrý¨¡ù¯ÿú/¿ ÕÄ * †A,ªªû¢ŸÑA;jƒàA™è1TXºÔ–¾À–?¸²0@†"˜¸i0¨'6†!j¸Á$ZŸ>}ü.HÄò“&M²|Ы3P'$j:urÑúWDwÅ׉a5î?160H™D£íÄÀ8úè£ã‡p)âÙ½óÎ;>æFp·¡@TÉÂ6÷“Œ¤àq90âj ß—d÷Q–6S_"~Q¼‰IR^#~ÃçO,µÅ®õî&(3RšsEYþåz›1~©å¯)´«7ºõ°}ôø>ÖÒ)'Rõ7kßÐÚõnjMÛ5ôK§º€¤hâ¶›;õE:ëä2d£­]²É–ÏZoý©»õ<¸mÖ6Ùø¬tOB@ª@@ÄFU ª:…€¨[TÔ•¦çh§qrÒõzbÄ}†u>”BP|u§ ¾zûÖ˜×oPLtìqcqœ’­KïùþU³•Ÿº².{…_ GÜ:DI÷I–ÌV‚1΢ˆÇ­:ÑIDATÄŽ=öXC5ñÀø3j Œø BQO@×ÜpíÀ5… —Áˆ‘Îp î0!€'çp,Øûï¿ïW£ÇñL>q?!žä Æ`Á?®#!0&Á2Qz$.(”Å}#q`ŽÅ ää Nƒáò1gÎC!0'È)a«KÔB™è¾dëÄ*‡h ÒÛ£r²•IRJšZb¢db1÷T7à‚uïÞÝFÿdÚæ²à­?Ýzáú˜ ßþ$ûâŠúöéÊyÎÍ¡ø{–Ôp®š·ÁßÌi툗!¥eçf~}] ‹t6äŠÓ®³Ç:ja#ží+B£Î~tãB@ÔuœöY&„€ÕŠ@K7+ßõ7zs3ø½Ï5ë{™YÿëÜÔµ#+ö}Ø„•¾y®7;ö;³#¿4;ì?.uïÛfC_rþ ›íy³ ÌZJü’•Ó\P‰ñf³2íb³N1û÷Qfodöº#\>“þúUp—\5pA@jSŒL(¸¤@6ಂâ7•œœ¯à æeˆß²l¤jucE1på†"䫯¾òÊí·ßîcj„8ÄŽÀÍ%3qwHg. øQ;pur}T"¯¼òŠqÄ>€gb ʹhrMÈÜEhspy¡N\v €ps! +6bĈ¸*†}(.¦HŽÄë%ÛFYID½Gu”¿.±NÈð© )Ã1ðˆ¡n¸ÁÇèHVg²}(5¸_ꄸ¢.‚§â¢b‰$;/Ù¾h›Ë‚w²º÷ƒâÛòmÿ'ø„Ož`I#ÒH<¿M·&6òÅ~vÌ£}ì°;w¶¡×v·_\ÒÕö<«“õ=±½Ιx޶3D 3Þ4ÃÊTL! jRlÔ¦§¥¶ ! ’!Р™YS–d3Ø×ïJ3–¨å;ÕHž[Ö9åFåø©'ΰ³¸/ÚÔO<ñ„W„Tª¸r@^ — 2o4·âS"¤% h°d×!¾éN!F Nˆ Œx¸ n@™êÀ啱!0T%ÄÞeB=á3¸³@¢ÿ‚  ·Ýv›/BLâZ`Aíà7ÜŸË/¿ÜØ$MjHç‰[™RÈè±…¤OÈäBÀRâ‡`(Z¸&„Í/ùKQh+Ÿ‰×ô'mùa ƒräŠ+®ðÄ„ Æ312ØÆ-ˆç@[Q`¼.\‡ã鮃ò„à­¿ùÍo¼*‡²ÄÑêh;£ëÔ›hÑ6C´¤Ã»´ºënSÏzÔÔ¾ò8›òúÇÖ6¯›-š²ÆM]kë7™C¼r#ÙM‘šX·¶…€B@ò!PÏù3§xõ–¯B%„€uT ¨ªÂ>øàX”ìdL‰qˆ]Á,t°Ì+ 7 ˆvíÚùÀ–¸qÅu0PF BšUâ:ü2¯õÇøñã½ î.‰×޶£"ë¹¹¹>‹ ×.1éê#.äj‹è}s÷޲¥¤ n*QCaÁ=—è±ÒÖÉŽž`"ê>®'ÄÌ€Š˜áÁÊG—¶žŸŸïU)<—d÷YÚùáxb›ËŠw¨'Ù'1Txf¸F÷‹¹øË¿Xo¤x]øî[1Ûƒ®‡UÏe)*ø©«E\ŒS&õOV­ö¥A|g?¿Âv=¶½µœ¦¨ : ?â·ß~»Và@ªuÞódѪJÛ°aƒ·Ó· ÿ0`À#.(yW1‘'&Ue(4ÉèÞå¨Q=&ÆÈªªëGë½Îebã½5&afž˜F5Z¦2Ö™¡ÿFF5ž“$eé/ðÌH;ÒI'•hŽ%àІB@ÔPe H€HF,$ÛG»™}g–£ƒRš…²ÉÊ¡Š`©*£ó vZÚuP4…$•qïé\6P¡”×pû‰RY’î$,å5:8•ÑÉKlsYñ.kûIl´ýîÍü2ðìN>¥ê’Öz¢cÁä5¶~E¯r“KÍ*+›ócöÆåߨ’ÿ¬µí]:Ûív-IÚ•­6•B &!QŽûaUYÒ ï²Ë.^ቺ÷NRÌO™2Å«‰…’³²íŽ;îð.£ûï¿¿WnBâ¿ùæ›^éH°déK+» Ñú¦M›æãs… ߸ÈâÊËdxDÝs£çUÆ:YÕˆÙ…qß(SQ®VÔ*ÿ©U´E:_! ê<ĵ ¶©VËk 4ð3Äèˆ|Ò¶B$3ŽU„HV§öÕ=»”ªÝjã—ýÜ×xÍ‚Î]%ר Bd¥#P°®È^½pžKq›oGþm‘¥C¦B L0kO (È_bKA £Äcà{'êÌ@V£„C U5+Š}¨ì0ê@ÈÄAT9ˆbâ믿ö¤8ÊHÔ…‰ B&$PBp£âàýHtêdvõ jK\@‰³fú9XPl£hŒns.jÍQ£Fù¬k ú¤+?ÿüóã¼Q2è¦ÚŒºƒ a‚£>T´Ÿ4æì§]¨>PôñÉDýŒ@ØÄÁ"(úÈ‘#ý>þjœøY¤9‡ð  8õ¢ä ªL²‚W6ÎydiãY€1*N,±M´ü£ŠTž51¶‚{,¤FTu þ¨ PûD‰d×óuh/÷ܽ{÷x߉ëОЗ¢-|O¸nÀ„󹌸h`ý¾øeü#b£Œ€©¸B@T=Ó§O¯ðEè1“hH,‘¢¦2d¢å1âC|øá‡>žCyÎÏäp!ÎE2CzŒ„9ïxçJ“¨XH<笳Îò3WÑNV(ÿ¼óÎ;™¤TùM’ªœö»¬ÏÝrÜÒÁúìPep§…ï=qEÁF¦ßÄs«kRã•sçÚúåvÔƒ}¬u÷œêjŠ®+²Ç܈Å@š&ƒ}âñ€|ÀÈìÅ;÷SÔ !>ÇÙÏ{‚ŒeLF¬Y³Æ“""·Ür‹¾Í =)Ï8S?n†¯¾új \©—ß*R3ÐEE€r“ ×¼_ ¦M oT#­;ª Ì(.¹ä<›{t·I®2ò#¤%ÿíoëcU¡T÷tÚi§ùø^ æÉfÁÃÀò‚m”“âæJ)p‚œ@IÊ=r_`‰âw\CQŠ€q°¢ ¶ÔEPtîgìØ±6a„8ù@Ýûì³y晞,à~qß €¼!†dDb›P¦ !Ø7¤ Æ;‚{ ÷m ë$(ȉT׃ CiÎ|'(Kì0T·@ÝpôÑGÛË/¿lC‡õŸ€»)¹CzrÞ²&æƒxe3˜ž8q¢' ÊQWüãÿðåÂùɆ€„}ýõ×=¡ùÒ®S‚€vAÈ  P6†z’%¨@¢Û( k¦Nêï ¢„ÉÔ2¸?†Þ\¥±ûõëg/½ô’¿'âF±b$ïPÈ&L¸G”ÿûß½;Ç9ù€» ꊨZ!ÔÁ~âS•f<2¢‘=Œv^tÑEž, îX°Ð&•ólxF$“#Q—Ú…:ƒÚK;Bšöt×£Aœ)ž)Ï™IîûÍÔ¨ˆ ›Š’\SÄF¦È«œB@Ôxq&¾<‘2Ò9cPÏË–ÙŒ ›tŠ*Š1û‚l2šò”uö1ãʼõÖ[Þß4ñ:ÈNéQ–ëA$-f­(õ™¹F§(È/éŒPW´£Äõ˜© ä³R´9jãÆóf?‚Ÿ*RY:”‰ÒSfsÒ0óBG/ä ª°0+óë_ÿ:¾MšZpøÐJ‡A(O™tm£=¨k˜iKfáy%;VWöñý§èwˆ{gàÀ,ß#0fP¾|á¹Üèð¾÷Þ{%‚Ëq þO0$êÔ_¶ySÌ^ûµ­]¼Ñޏ¯·µêšS—QB@lA…n¸~T“6YȘÁ'@rtCr0 ƒe”¨ Ö»téâ‰Uº¼˜­gF>üVðŽâ:”‹ôN|ÝKðaÃüu(Žâ#Š „POPx²ú!‰Û%Ĺ X'ïØñNÙˆ B"Ñh3ïiÈÞ{àÁyüÞB¼Ci©Áûb™¸Y¼¯ù7~#ù-e_p ç†OȇL ïyÈÜz˜d@¥÷ÑGÅ«mÂ’ ã™A¬ 2 Æ»ƒçÄ‚; ýêæ}¥»^ˆ‘Áy]¨_ÈdW–û í¨¬O•…¤êB@*G€Î©MyéòBŽ3¼Äñk¥£Egè¼óÎóÙ+èx0+B$n:&”y衇â§ÓÁ¡ƒÀ ‰&/v:1ÌÐ0äiOñ÷%•,ä©S™ùI´sÏ=×»…ÐÁ"ê72X䢳Oì§sA÷d³ ,1:(2BÇ‘{@žš‰}üñÇþ¾éHaÌhQ:‹‡z¨ï€%Ö5yòdß&ðcÆ ,31fXè ƒèá:iK‡åÓµNõ€X#ñÎH…ë!I¦ãÌ}×ECöÌó Ï B/pfæøƒ!ß¾RÑhòSüðL /8ðã»Ë¬ë7Þè«Åçl0 xøN3sXVße’i×»©~Sj8™U‹@pUà* ~!8x%ƒwË æ£ \ øÍ@epÍo ƒý0É€KF°t®’aÀÊÒ–(ˆ ŽsŒv”f¼Û?ÿüs¯Î8ûì³=9O;i/ʇÄ÷Kh3$B°/"z=~7±@ò¢\À‡…÷ } ~Sùí ïøP_ød?$}â}‡ãщ ÈἈm%B›8Ÿûƒ‚h‚„¢¿b¡pU®*,(Snºé&ÿ¼PÄ`é®Ç;·&HõqÅ='³Dâ=Y™ÊØ'b£2PTB@!Pe ¡ç%ËK“ÁÖ}÷Ýç;LaF!zamøxÒ)Á¿ôž{îñl:" ÆP7 B`ÀÌ‹<Ê3£‚/rLÎaÀÁŒ7Ê ö£– €3Q%F¨+|2¼ë®»üÌ^Xèôc6‰Î3CtºBìŒnݺy²„O 2‚™¦¨á×J'2,ø'³9)t0!sh|~N r\üŒé°BPdb\ŒB'0ÈJCÜŽT”Ö6p†@âÐé£ÌsO40£³J¬üžy&`ZŒA(âiÐù³ J ÷?9kןiŽ1³ÆL\Àêÿþïÿ|ǘßY:§|W™Õw¾oQÒÌyÖüOV…Xõ—tµ¶½šTEõªS¢ã„C[m2X†Ðཌ‹Ä)Á|ê©§úßb&@ºòÎ )Á£jÀ Ùªr·ƒ÷U0õ¼#£dF´~‹Ò‘$¡Ê]xá…%Ô9!æE´NÎ Dïª`á}mK8„”þ .2æä]Æï0÷A;‚á¶N¸ðׂ ˆð‚‘þO M8ë  ×à“þAT…êç“I~ûyV<³C9$zx«uÞ¥#K–,ñÇÒ]2ˆ²ÄÓ ?I‚{ýîµi°0Ù¶«êSÄFU!«z…€B B ÷d6‚>¤³ ÞXÊ.DY:/t¨xÑ#WÅ•²tÆÂÀ/: §ÅLÆÉ'Ÿì%¨9xACžàÊB¦Ì`1˜æ“A`ª´³´‡™r Èvñu¥$¡GýA§¥ÇiÆ63ä(°ãŽ;ÎÏÎø-è0àb–Ð Š–yî¹çüLƒÏyó\¬wÌÖ0;5Å ZÁ‰5T(QF´lâ:Ï…Ù=®…ÑÉ:ì°Ãâ‘ÐSaPZÛPÔÐIHÔ¨m:®>t°¸.jf½è\ãF‘͆;Dÿ ¨‡øÞóÝe‰ésùþÓaÆ{úé§½äšÎ<2rÊSD„ÿ{Äv †Ÿ9ØèÌ_8¦O! ²Áƒûw%d=ïÙ@š£·Å Ü㽋›ï4”¼S‰Åû(Jò'¢€ b›w1ï;ÞÁÁ¸.õð΄´å½†ÑgÀÕdñâÅ[m£îã÷’@˜ôxgBšC*ðF}€ËI¨‡w?¿‡¨Ø(Ïõh3åg9EïlÞmÜmá}¹ ïaH”ü–Bìð»ýÔSOù{%6¿§L¼`¼K!4 >¢ïw°çžƒbL™Œ¡}ÉŒ{ƒÜ€| þLRÌó¬B}鮇["ÁT!k ¯h;ýî—up£àœÊÀ<¢÷™ªliû‹Ÿ`i¥t\! „À6FàÖ[oõn! ´xÓq(Í¢exYÒq)Ò˜A.% Üqñ :_¸žðB¦£@ç¥òI:tDè¨à2:q´%‹HTJYÈ– l`I0Ú™©J‚s蜡°Hg!¦ƒü¨…ŽS؇â\pß Æ`6Cš‹4³5Ì|€,*EM…Aˆo’ªmàÏ ß"Â3ã…ï.ß…dFg“N$ªÈ0TÁQ“ÕQÛöÑ©§³ý>òýŒ :¶‰ùƒB‰ç!D]a Á÷†N-ÄE0äÞa&‘}¥}÷Ây5á“ßlþÔŒkcøN§’þׯû©H›ù߆€Æzâv8Æ'¿9L4„ “ì‡ìGˆb÷/ïÇ‹/¾ØOð;Î1\;¹“a¢s£¿/< ”‘ ÆyÄ3ÕÔC¨31€ñåNÚTȇè6¿… 3fŒ/Ï œv@C:ðþç{Ò‘÷ mæåiý‹à¦m/•Qï-&,h/Æ;ܸq¾ô1ˆEA<àÚG~Ÿ!^xá¯<„PS¶Yøïî“p=&` ¨£ÍÄ aR"ª.ñ·üaR¢ˆÏ@Þ„ãÑçö“ ¸(¦»ïw¾ê´â츾´Ÿv2ÁDpÙhû¸ŸpO(~ ^hß¡Š˜ˆŠ §s…€B Ê@ÒÉK¦ŸÎ¥Ñ£G3©,¼(Sû™‘ cÄÀŽs 5è@1C "ƒÁ7Ÿ¼Ø|ðA/wÊñ©‹²©:ÇAÊI9ÔŸ~ú©L²q<tØ‚ëIñÑŠÿ¥Fç@î0ÓõUæ*tè0f]½$Þ§/â³ÿ(SP€!ÁÖ‚¥Â€Î\º¶Mš4ÉÌvß:™!îH¨?|B:!ëïb¥°Îì±7²Ù •À ÕN蜢r‰4ÒÝ?j:¡ÌˆB¬áò„ñà»Ô죃J„ÿ¨¯7ûkƒ1 ¡^ >dB%@Y¿ ›ÝÿÁ4÷ÞØÃ©eˆ¸KDwmp'd?äub°O±¼¿ ‚1Gñ… "ÿoщˆsÞ·ÌÞ³Ÿ™|È Œß!–`Ô É ©Í 9j¨BPR #Öäz°dÛ#®F%~é ^Ãu~ QN@$P²$üÖrnôZ\"™‰Ú"Žô{Æ»–I ˆcÞSü¡NÞu!¦ ®¡Ä¡Žàî ’²…ß4Ô¦àÞïÉÚÄy<+,únf;(-YäLÔR]²æöÛo÷÷B‡x$ž?ïdúTÜ펦!§`\w|2n(“駈L‘R9! „€ئð’&"3ñ ¬8£žàå ÁÁ‹tyyˆ1Ø&p"/cf]P.„Yf;èP! ePÈ >³´)™A" ^`ÀÈ,ê‚6Õ/sêcpÊlJ˜å!]'±"𛤪ÓDþ_#—<×` j:GˆfëƒáS‹2mÄw˜Y.: ™'ä°ÌœÑÙ – :péÚÆ`›Nñ˜‰¢“”,øN:„\+:ƒ|72ñ¹m¬­ŸtR‰Ag‘¸2€tö35È<4H‰qC pêåÿŽï³l\ 3xÑA@¦×IY.föÅSË­ó¾-­mÏŸ¾3)ËWð3¡Ñïf«ÓéµhœƒÒncÅŠuî·è}GNv1iÖ;b½·à¶)í´¬=)@ànÜNx'¿#¸ &3Þ¯üNgbÔ“¨ø‹žHøè¾LÖ©7Ò’6²c=@4ìOõYZ»9~K4*û±„XIgÑ,¥Š žÄRºû.­žt×KU/“FQr+Ý5 œteÓ±‘B@jG€Ž±X®2èeÀËàœ ZÁx‰†Ùö±ž¸Êò‰É$Œ0Ðçå @°Ä0»¡ÿ+í H'ƒAÔ¼è»;‰hÔ¢Š:e\p—sr$¨ø‡™püpÙϬ ³aÌŠ`øýBxà.C'ðç&±±êŸÑk'®“qœô’éã^˜ Ã^Ü?³'à‹\̸v {|áÈŸ(¦ìf°ˆ ~ÏA⊧€ãéÚþ0( –Pì@(%ñNÀbék]2¾3Ìì!­fR ¢ßèz"6K<7ºÑŽ ¦‘1b„ßÅó廇;[eØš…mòÿ.°e_äÙ~—ï´MˆÊh·ê¨;Ìœ¹Ø‘¦ÿv¿½Ÿøÿ)تUyÕJl¬Y³Á½Sò|;h˪Uëýzñ¾âõÙ³ç»ßñ­]Ð*ãéA|óã÷¹´@”鮇»¿ë‰†«dpUL<Æ`å˜,sˆ †«f¢Ûgæ5Ô®’õœ_­ãÌeB@! ʆ²Jb$ÊXËVKùJ#Ñd‰Î¬”µ&$üH^ñOEm5â;àÂÁ@?È<ÃqäŸ,Ì£V`@É >j¨Aòòò¼ŒY.‹ÐV:…(EÈ#G…XÈdæ%ZYÖ‘ÜÒ®Áý¦2¤¤Ü3rZ:e1füQD¾é0u§kãP™0㓪Ýt€‘¸nkCšL›pÙ‰’kÛº\ k(Œ˜%M”lW¤=HÆ™å» —Ì8Î÷&™ñ\gò ÖÙŒñ?Øç/³6N¥qÀ¸nÖ®WÕ ÀB›ðÓG91#ÅF@¥n¢Øà÷˜ïvÔŠŠb.¸òL á-¼ø[÷ÿÔÀýN¡ÜÓOÿ?ëg—°YîÏM›6§%'¢¤ÅOëë½ëYô¢¸Å´mÛÜ-Ͷ|6wñ‰–8òá:÷›üJ´¨Ö…@Ö Àd*ÅĘRldÍ#Ö! êÈ=YÊk¤ºDž AqÎ9çlU ®©UB脸[˜°5Fº@‹é¤¶ U•{¿ÕL"¡3ƒ_ÖA:ÁÀÀMP…$64éÚÆyéâ©pê 5ﯺ·!~2•û–¥­øn³¤3½T²~H ”$Xa~‘Íš°Âf<úƒÅ\ÀAçw¶~#··zåÿN×,eB`íÚ|âCçvõ¶# sÝ»¥ž??‘Ôp¢@¯H¬œó"ò¶(*ŠÕAQ޵E^ÞÆÕ ®jÕªIœœDE·nÛ• -Â~ÈŒvíš9÷°ŸÜ&B…ĉxî¹ä„c(£O!ˆØÈƧª{B@´u2ÍŠ¨%œ–LÝ€Onª™lHfÓ¹ ¤m| :ˆÛÌ=÷ÜãSàw$jé0ˆ–ÓzíE Qé”êNp;Yøn®õûMëÿÛŽ–ÓJŒF*¬´Û!0þ ;ã‰'¦º”¢›ãjˆÍ›“‹Ù6làÜ'¹ Åï9UÄ:sâ‚s£†Ò£XEQ¬¤h×®¹KÙΑÜ]Kì/&'ŠË´iÓÌ*?e&‰Ö§u! 2C@ÄFf8©”B@d$­ #¾A2#0f*#Ø(³Áˆé0}úô¤·’ƒ¤'hgÖ"0èü.6ä²,§Mí&4pÂ}*U ;2=K‡€}Õad<"op{«Ê6ctQ#kîyÑTÁÑã5e}Ú´%.-è,çê¶Ð“ ›7eÔ´úõ‹•}ûvÞBPüäþz"Í›çdTŸ !P¹ˆØ¨\! „€B@ŒXòŸµ¶Ã^-­^)é ÊJvÜ͈a’ŸŸOÕLðX2‘!ˆ¶”#ƒO¢qŒ2 Š©ƒ¸0f%¾L4(+n]®m”Y°`õïßß—Öj„Àµ´+¤$1× ìºuë|]Hž9s¦Ï´D¬Ÿ3…ÔÉK–,ñYHYM€d‚ '³c ™ëÜСC}Vžpí"n1±‘ª Ü× ÷ ¦¬‡mð`L‚¡˜!öNE¬}û.ëÓn6jÔ@¸— :ß&Ožãm~é‚,/qUÇÜ5¶Ê5 c>~FE®¿-Îå9‡¬FÛâzº†ØÖðýN NíÛà~°dB@! ÊŒ€‹sñÊ|žNµ—v'ü˜\Öö[)wû ÖoŽÍš°<öÌñ³bøIlñG¹å®«*OtƒíØÛo¿Û°aCF—q3±C=4æÈˆ˜ ¨sé˜S ÄœB!æH ÿÜ]àâßçzsƒo¿Ï üc{î¹g̹‚į㈋عçžë·]\_Î¥oŽ9²$æÒMÇ˹,Lþz.ÍsÌ‘!1¯Æ—¥ \˹·ÄËr/üö:w“×tKÌñ9µ†?‡6Þxã1ç&săo3í`ÿUW]åëqîc¾¬ø:\ºçxýaÅ1—æ××ÿñLJÝñOG„Ä\úëøvXqÙ¢bGq„ßL×G´øû¤à7ß|ãÛ3jÔ(žËdãqw1üvøã²/Å\ÊêØ„ øæÄbÚB † Pv¸‰L! „@™po/Ã.ÓI*,²áÇ—p'È¢[ÛêV¡aSÿºÈ¾—kÍ;6²~'v°>Ç´¯ñNÜ ÝÜ€Øg"jÒ¤ÉV÷•¸Ã©Ì6räH3fŒ 2Ä»“p®#)â16œ‰+ˆÄÛ1ÇÇ\;v¬=øàƒÞ$±Þè6n ¸ ¸½vÚi¾GÏ<óŒ 4È_ïÞ{ïõ§ÐMÇåÃvÈ!‡øû «Ó°aÃüñ)S¦X^^ž9%ƒwy 16i³˜ÁÈÈäH聆Ç{ø¶{챆 q18—û"ŽÈèÑ£í ƒòm çG?¹w\O‚ëˆSĸ”§«¼<œ ªŽ´ðë©ÚÀ~î w ¯^½Ú^|ñE›3gŽÝÿý>(1©¤“™#Zì©§žòí:uªFgžy¦s/•Q hR`µOŸ>ɪOºçðÙg‹lÖ¬%î:û&-£B@T/sT«Þ¶ëêB@!PuÔQÕxu]Zm‰@Ã&õ­0¿È†ßÔúÐ&«âiDqÜ{ï½íî»ïö D‚sG±?üá–ˆÑ)4|L H`Î%¬¦ýìܹ³'3ž}öYs.)æÜS ¢c OŒŒhfÈb\@@`¤R6xðà°ÿ$®ÅâÅ‹màÀñ}¬Gƒ§Áˆ»Ýzë­vÛm·™SŸÄcw„2é>›M‰ÿú׿̹ñ˜S™Øµ×^›¶ F­[·vñ-&Dm V X@hœzê©)/ÍyçœsŽ_È@¡qúé§Ûn»íf<¿ª0ð0`G¿TEýªSŠ#P¿âU¨! „€B@lF Y‡Fvø½½­ûÙKjðüÊÉ€Ÿ ›(+¼ÿéOò?£Ï×¹BøMfÿƒqn¦æâhؤI“¼¢‚l&¤j‚k†ÅÅÞð*‹Ž;ú2ÎýÂò箻î; XÚ¡C§0ø,ìòªÔΕ%¾/¬œþùæÜ:\ðÌ/͹§ØÙgŸm(AÊjA;u1?¼Ò#]Ê}>ú裞°!» *T+´ûðÃOyyç†c..ˆW”¸x^Fz• !Pw±QwŸ½î\! „€¼e¶imòzu "T'œp‚½ÿþû‘à‚aúLd3Á}s'½2€ã3fÌpY5Þ0Qsñ9¼»û .¼ðB?ègêsq8¼:ÁŦ`·¡„ u¹˜¾~Êâæ›Š‹©aþóŸKÄ,_ÎðŒg;!ûŠ‹©áÓÑyä‘ÞuÆàôÛ("°dÙ2Èðâb{x…j ÕöÛo?Or¸À¥¥ºÖøŠ·üðÁU+­ ; ð.]Ü{wçÆò³ŸýlK?}@6AºàƒrÅÅñn+l»Ø?ÖšublÈ„€B@! ê…Šbsÿ¹2öÏsçÆØ{Zì³G—fe êâUÄößhÓÅÕð8o¾¹8`äòåËãÙGÈDâ\/âYQÈ:B–—Â4Žaª¬(¡€sŸð׉À$(¨‹qá÷»QIŒ6$AJ¡âs-$r;FúýdQY¶lYÌ‘~›¶9bÆø¤°#bü~š¦2‚Ž^yå•>pj² ¹%h¢Ñ2øt¹iÛÀyd^!³ A@1ç&ã·Ï;ï<¿øÇÅ0‰9–Ø#<ã9•×2 ZÞúužÕƒ€‚‡Ö=.Kw,„€B@Ôa~ø4Ïæ¾ü£}3i•n*²·¶]~ÝÎvúek«ß°^V!SÖà¡áæQepî^{íU"€¦KÇê âÄp‹@=Ñ«W¯x ÍPGE>qC!N.AR¢*—’ÖæÍ›ç• (I¢¶téRk×®$ê†^ÁA`ξ}û–KÑÀµX‚Z%z­LÖ+£ á:.+Œe6”OõYžà¡©êÒ~! j"6jγPK„€B@!Pe¬Y°Ñ^»pžå.Úhíû4sdÆv¶ó¯ÚZ“6ÙK¾¼ÄF•=U\íˆØ¨öG *A {ßdU—*B@! „@íD e—ÆÖsx[Of´ë¥xµó)ªÕB@! ÉPÑ>! „€B@d¸™ º s–Ý•nG! „€™²¢è[ „€B@ZŒ@þªB›ýÜ ûç¹óì‡iëjñ¨éB@! ʇ€åÃMg ! „€B ÚX¿¼Àæ¿µÚæ¿¹Ú~øt5ȩ烀6l¢9«j{(º°B@T"6ª z]X! „€eC`Ùçy6õ¯‹ÏFÍêûL&ÃoìáIM²+£IÙQi! „€¨ËˆØ¨ËO_÷.„€B@Ô*5o`­»åØc:Zן·²úDfdòçÎk 4Ȥ¨Êd9ëÖ­ó)q³ü6u{B Î! t¯uî‘놅€B@šŠ@QaÌò)«òóóí›o¾©œÊTKÖ Ð¦MëÜYt³æêF„€C@þB@! „€¨Frm´ïÞϵïÞËõñ2F½²›å´–º ‰.-„€µ ¹¢Ô²¦æ ! „€µÍ›böý'ëì»)k<™±fa¾5nÙÀºîÛÊ_ÖÕ4–b£v?aµ^! ¶5RllkÄu=! „€B N#ðæåóí›I«¬]禮ÓÖ¶ã~­¬cÿVO":ý½ÐÍ ! „@ù±Q~ìt¦B@! ÊŒÀšo7ZC—ѤùöÊ|®NB@! ¶F@ÄÆÖ˜hB@!ÍÄÜÍU²·Ç¦u›í‡iëlñÖZ‹íÛî§nŸÍêÞ„€B@Ô(c£F=5F! „€¨* ó‹ìÓ0>qI× ]¦`}‘-^Ld|ïÈŒs6˜9Â÷’ÞG¶«PÝ:Y! „€("6ʆ—J ! „€µoßZmïßø­_Q`m{5©Ð¬]¼É&÷…‘šµmϦÖyPKÛãŒN¶Ã^--§•eT\,„€B È¥ é! „€B v ûÝF{÷ú…¶ä£µVϹŸÄœª‚ cÞßÓê7*¿?Êü7V[§-¬i;ÍÕŽo‚Z)„€ÙŒ€ÞÆÙütuoB@! ê(›ócöéÃ?ØŒñ?8Š H ,¶ÙìGç:Òa·fÅÛEf+çm°e3òlégëÜ’gGïcMÚ¦î&õÞÆŸ«?B@! „@õ#ú]ýmS „€B@!Pf¼³ÆÞ¿Á¹¬ÜäI ü"RKýõlÞk+má»k<‘±læz+X¿Ù·h`ÛïÞÜz±]¤´V…€B@šŽ€\QjúRû„€B ŽÀÌ™3íšk®‰okE€ÀQGe§œrŠå.Úhïýù;[<5×¹Ôsn'[$ 0Al4s©V4ªoû7·ŽÜÒ¿…µÝÙÅÞ(¿wJÂU´)„€B@l+¤ØØVHë:B@!Pa–-[fÏ<óŒÈæääT¸>UPûxã7¬ÇŽ;Û'ë¾·éàvRl©H ŽmŽY½úf'>ßwKi}! „€µµùé©íB@:ŠÀÃ?lÛm'w:úøKÜö ƒÎ°îaÓÞù¾ÄþÒ6ÈlRWdš;†C&„€B@Ôjô6¯ÕOB@!Pw˜5a…ý¼èk¸©i”¸˜ÔÏ ‡³|ÖúøyZB@! j/RlÔÞg§– ! „€¨Óô=±½þËÕvàÐí_gko´\·¬]´ÉÖ.Ùh«æç»}›lcna§ ]ì H£¨°È–Ïʳ΃ZÄiE! „€¨ˆØ¨ÏM­B@! ¶ sTEóŽüÒiàÖDEa~‘'8 > : ?r¿Ë·M¹.ï«L! „€¨õˆØ¨õP7 „€B@¤C a“ú>ã‰Ïz’® Ž ! „€µµò±©ÑB@!Pxì±ÇìÃ?´»îº«J›{øá‡—HmÚ©S'Ûwß}íŒ3ΰFùk¿ôÒKvÏ=÷”hÇŽ;îh#FŒ°ƒ>ØïÿóŸÿl“'OŽ—iÖ¬™í±Çvê©§Z÷îÝãûWzè!›1c†Ýqlj‡´-„€B@*G ƒÐZUÞ]@! „@V"0gΛ2eJ•ßÛ«¯¾j6l°~ýúYŸ>}léÒ¥vÁØh¹¹¹þúß~û­½öÚk¶×^{ùe—]vñm;ôÐCí­·Þòe¦M›fÓ§O÷õPWãÆíî»ï¶½÷Þ;í}lܸÑ_¿ÊoTB@! „@¤ØHŠv ! „@v À€ûûï¿7” .´uëÖÙî»ïnEEE6kÖ,ãxÿþý½ªã-Z´°víÚÅo~Ñ¢E~_›6mü>þáœæÍ›ÇËQïgŸ}æI…¦M›ÚòåË­[·nñã¬@0Äb1CñÑGY‡ rÛ´i“­ZµÊ:vìh³g϶իWÛÀ=±à ¸?\·¾Kõƒzòóó-''Çï£Ì‘Gi—\rI(nÿú׿ ÒâÖ[oµ«¯¾:¾ÿºë®‹¯Cv@„¼øâ‹vÐAùý;í´“ýå/‰—á^lçœsŽ¿Ç‚‚[²d‰WpÌ;×Z¶li§vš9Ò“*;wŽ·{£|—.]|Û =ö|0À4hà¯ÅýsÛo¿½M:Õ~ñ‹_X½zõâíЊB@! R! ÅF*d´_! j=¨zôèá]-zöìéIŒý÷ßß;ì0Op D8à€ŒÁú¨Q£ìøãß3zÜ/ž|òI? g²C† ±]wÝÕÆu2à—¿ü¥'&(ƒÚ!ÑÎ=÷\?XÇMBW Åû9—Á>ƒz\@ V‚í°Ã6vìX¿‰Â‚äÝwß ‡·ú<äC|»p‡Ie?þø£¿÷dí ç@À}ôÑ6sæL¯æøòË/=¦'žx¢¿‡7ÞxÃþøÇ?zLçÏŸï=ñÄát{üñÇ­W¯^žìùꫯü3àq•éÚµ«wÕ¡ð-·ÜâŸÓn»íæ1†‘ ! „€B Dld‚’Ê! „@­F U«V¶xñb¯^€ @iiñÁxÁ)§œâIŠeË–ù{}þùç½%µ×^ëUkÖ¬ñ硬¸ï¾û<)0zôhÛsÏ=A=®'(R¤ñ6pyøá‡ý2qâÄxqT ¨5PB@:\qÅñc^xa<jK/½t+UH¼ð–” êˆ`'œp‚±Wƒ‚å7¿ùM8œô3¨9æÍ›?þùçŸsÌ1ñ}}ûöõn+Ï>ûl|ßSO=e,¨8À E 8 `ÙgŸ}<¡„ƒnåQºüý; ñB0›(y/¤! „€B@¤Aà§žNšB:$„€B 6#ا»ÜQPI @‰À€›4i’]uÕUÞÍ7 ãJƒ}óÍ7au«O‚hCµ€â#J„D¿÷Þ{%Ž…ó2ýÄå…^°(é’ì\ÜtV®\éÝs’Ç…4±¨CpÁ)ÍÚ·oo¤Ÿ…  ¢Õ®(Øm·Ýfß}÷_À’@¥¸ÃÈ„€B@!P^Dl”9'„€Y‡À¯ýk#ÛÉÿüÏÿ؈#¬I“&þzè!#Æq9ˆ#ºƒàøDuA bc̘1Ãî¿ÿþ”¸0'®êˆdwNÂ…zpƒÁƒL'Á.»ì²¸› î#´ç믿‡Àœ¸} …6• ¦Ñ8¦ KÏ<óLïRCpР” öÇß|óMߎaÆywÈžL w”—_~Ù7%®†Z… ¥wÞy§Ç‰ì/dSá¾ >dB@! „€(/rE)/r:O! ² è€ÈÀ …ÀžcÆŒ‰ßßå—_n'Ÿ|²WPn•ØÄ„ ëÈI'dmÛ¶õ.Ä­ °f°àîÂ6ƒû .¸À+$(à 7ø (¤[ÅÎÉ~\fp‹¹æškü~þ@,àÚqÜqÇy‚‚€,.ÄõÇù€ºµ ªêÃB; *Â6jT*d$ û BÔd‘h>|x¼Œ_‰ü¡î€!»!dH‘‹J‚#~ î;´B# ï„ âç†6úƒú#„€B@ ¨çüŠ‹C‘gx‚Š ! „€¨.P0è^±b…WMTE;ˆ5Zâ³Ï>+Q=.}ô‘‘v5 ƒBĈ@1Á~\0 / !¢——çI²‚à~Ѹqc_bƒì"¤]¸p¡wƒ n.Ñ:²a¹>‰Óâž”÷Þ ’†j7ÝtSy«ÐyB@! „@-G@ŠZþÕ|! „€¨pëÀý·â@$ðÁƒ'îöÛ(=È2’‰QOªÀ›œŸ`4“:kS™Òî¿6Ý‹Ú*„€B@Ô DlÔŒç V! „@5#@ü ‚d“‚å5”¨« MfÄì ȧ\1’¡£}B@! „€H€\QÒ㣣B@!PƒØ®(5èvÕ” +J ©ˆB@,G@YQ²üëö„€B@! „€B@d3"6²ùéêÞ„€B@! „€B@d9"6²üëö„€B@! „€B@d3 šÍOW÷&„€ÈRÆŒc999Yzwº­² 0oÞ<Ÿîµ,稬B@!]ˆØÈ®ç©»B@d5d1bDVߣn®l ><ãT»e«Y¥…€B@Ú‚€²¢Ô–'¥v ! „€B@! „€[! ¢B@! „€B@! „@mA@ÄFmyRj§B@! „€B@!°"6¶‚D;„€B@! „€B@Ú‚€ˆÚò¤ÔN! „€B@! „€B`+þ?$ž4ˆP7IEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1SecureAuthOption.html000755 000765 000024 00000031071 13515046516 026056 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::SecureAuthOption Class Reference
MySQL++  3.2.5
mysqlpp::SecureAuthOption Class Reference

Enforce use of secure authentication, refusing connection if not available. More...

#include <options.h>

Inheritance diagram for mysqlpp::SecureAuthOption:
Collaboration diagram for mysqlpp::SecureAuthOption:

Additional Inherited Members

- Public Types inherited from mysqlpp::DataOption< T >
typedef T ArgType
 Alias for template param.
 
- Public Types inherited from mysqlpp::Option
enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 
- Public Member Functions inherited from mysqlpp::Option
virtual ~Option ()
 Destroy object.
 
virtual Error set (DBDriver *dbd)=0
 Apply option.
 
- Protected Member Functions inherited from mysqlpp::DataOption< T >
 DataOption (const T &arg)
 Construct object.
 
- Protected Attributes inherited from mysqlpp::DataOption< T >
arg_
 The argument value.
 

Detailed Description

Enforce use of secure authentication, refusing connection if not available.


The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/inherit_graph_45.png000644 000765 000024 00000007456 13515046516 022463 0ustar00tangentstaff000000 000000 ‰PNG  IHDR‘1ÚÄKÍsRGB®ÎéèIDATxí¬Å€ˆ Å.Š 6삢ƨ(Q,`¨‰-X± ØhA,EIŒt¬°‹]AÁŠ *X°ƒçïìèŸ>bí¿kzêfXdóC‰"œt;üðãïý÷ßß)Ýà>øà¨K]Œ[mµÕÜwÜáæÍ›ç¶Þzk·îºëº ¸­¶Úʽ÷Þ{†«'Ím¸á†®aƆ¿Ï>û¸uÖYÇꮺê*צM{ïÑ£‡Ûe—]ÜFmäÖXc ÿŒ3ΰº‡~ؾ۵kÕûÅ_X½ÚêŸ{î¹jß»í¶›ëØ±£•ó£ŒìˆÞÞ~ûíN™Ûí»ï¾Öv½õÖs5rƒ 2Ü7ß|ÓÊ?üðCÇtœ2[ÔÏ^{í宼òJûV‰js‡>6ß|sm³À;ìàhø´×Ãì” ]‡lž7¶>ïºë.÷ì³ÏÁƒöàf±cÇZ_ ¸cË–D:% ,Z´Hn¹å;‘H(NçøñãM²¼ûî»rÊ)§È /¼„‡zH”1ä„Nn¸Aš7on’„v›m¶™·*={öe“t¨//QüØáSO†nRe̘1ÂßÔ©S#”-·ÜÒ$Ÿn¬Iµ+®¸Âê”å²Ë.ž@ø}Úi§É3Ï<IÌx@”Ñåä“O–»ï¾[è‹q‘‚ ÝÐj’Ô:Mùak¯½¶õƒDUÆ”“N:ItÓRZ®ºÿþûå‰'ž05‡ô¾øâ‹åºë®=ÄB€äÝf›m콜ŸŠ1‘JÙb‹-¤S§N6Œ=6Ì+ÇËñÇ/Êýòàƒ¢WO¸éçí·ß^^ýu2dˆ|ûí·ÆxC‡•7ÞxØçÜsÏ•-Zx½zõ*¸æÝwß݈s‚·ÝvÛ 6ƒ‡k®¹Æ6«eË–V¯’ǪøflOÔðæG½<òÈ#†‹Û¥KQ‰gƒy£¦¦M›&ï¼óŽüòË/¦Zý˜5=Q+¨pŒpÔ! yÄGD‡¦¦öIõ¬F¿ôÒKíP³î>úÈÊ’ðË)«©øµy¨(¶§ŠX{²€…1¡8 ß}÷̘1Ã6z˜ÍB’í¹çžÆ,Ø-ªn¨–ýöÛÏžüxi//„M7Ý4’|”o»í¶Q5¶ [p8;ì0›7RÆóŒŒAÛ¾}{Ùc=L’ÁYÁÛOÞ¾#7uôÑGÛßàÁƒEUºÙ0Yû ñT勚 f£ÂÐ>WTŒ‰8ùYFaF-jÿ؉¦ÝSO=%ýúõ3U…1Õ^ˆŒDo‚ËÆ‚Ðf“d!Ó…õ/½ôR•ºB}RŽJcŽ÷ÜsÍIí CgΨ!Rè’K.IìÆ&Ô<àÞaRàÖ[oµCÃÁ7Ýt“ì´ÓNVWìÏìÙ³¥U«VæÜ°æsÎ9ÇT­?”Åö—†ŸmçÓz(²®sç΢F±\}õÕB’w­µÖ²Øœ .¸Àì¨]wÝÕ¤–„&•8EØLxqj€ËwÞYpTˆ†Àãy•J#Ä:ý JñZŽ:ê(ë [‹ñ?þøãÄï®]»ŠëÒ¿9õÔSM-ƒˆÛd“MD m³n¼ñFkwŸ½dFÒ"y°¿ QøñT:U!‰ÝªÚsªšëü¼5NdkI¥¦ÓHtÁ??fb‡ZH˜dÖ¬Yæò‡8/rÌ%+¤1QÁûDÊ¥T®2ª ýÄ­Æ’âÅöÚSé”X/¤ìB7¾ áe-g¼pnØHü%ÎE!Hš7¶Æw 51:z›* içwN*6µVªªŒwX«LDügĈBlCµTÀ«"Ž"¶Þã‰×±yxxÞÀ××Õo¼Bþê2ÔªaÍIc3/¿üòÈ0-…8ÊyµTqNÆ#i¼™0áû?ðÀ-Cœª\À0'TÁ<ØÅB=ñžr kBµœ1*ѶV™78 ü•»‚ƒ„ =ôPÑTƒ¹Þ9Ï?ÿür»NmOþ‰ÄêôéÓ-À"ÃÈÜ, >Ì‹…8Yß dI¨fíoeáÕ*ùE¨)3gÎ4ÉÀ†ÔjüUsE‘¨FÜ`‚jêñYºƒxÈ„ ªà!&D:!¨X‚šÌ‰À#Œž°)ˆ^‡Àw’­AB™Æ©hÇ• ˜HOìØ0&T©÷鞤²5ø÷‡µÔ*Ä­ó•éyiï½÷6W^êH&ycÌ ‡Ä"n»¦ªL•Ä' DU)ÏÍI]ͦ;ߘ·¤ªÅÜf¦à{—|UYaƒ 6ØÀ©*47Þ÷Uè‰wÅÜñÕ€všæˆPq·)§O ÉJØ‚-å$¤•Q¬î¢‹.²Ä+t`~Ôk„Ùæºìžv…ÈÖÙ¿?ªÞÝÙgŸí”)Ãâ²ÞÓ¼³Zuñ=!4Èhnî“O>iñ MÀF ÔëNï»8 ÿ[,Góe¶ÙšÜŒpü‹æÓŒèdþɲk Ï\m_?lØ0ëC°Ž~Uõ>./16ìÚk¯µ˜Ê¸q㌱‰Õž‰4¨iLÄðY{M,[ß0ñ3âB*5qÈÖ«mè4õcm`"æqóÍ7ÛM‡þýûÛ7+‰‰4)ë!{"ö£ë'ü¹÷Þ{íÆýj ÉiBÚ©j QŠ~¯sLÄ&z ǵâZàM“¶¶1œfyþÄzüøSÕ”SCݵmÛÖ6Âi´×и2Â5 bÛÒ †»þúë¦'W$Â8 WCŠa"˜ýØc5†g@õ:-HJl†yÀDôÏ·æÔœæ †6L*ÝvÛm6G˜ˆ £‡o¾ùÆÚj>‘‰è˃ªr£ÿŽ?Uím}úص òįðRC dáÁ§¼]äËý³˜2ž*)#R@8"ÊØ©¹G?N1ÏZ7¬¹½Ç½#äºHrOZO¥¹Å0ÖYg•zíC†#çå7Ÿ `2‚pz9.Jjb`“Ÿ"g.8!¨ ?3½ãæÃª†Œ©¹î‚ž`Qµm÷¨Ÿ»MñXUü;l óšÈfRÕ.Í—‘#GÆ»,û»Ö™ˆ“éFj 1{ì19ñÄíê …ÁpÛ¹„”¡¸Â€D Zýõ—žd#Þ —ÃTUI“&MiÇ’¬\=!!Ë…1©¸Þ0cÌõží=ઇ Y_’$&©¬êI4‡'ÜC ‰Â ¤ ÒŠ+/xj¥zP…Èá˜$—YR‹p/”K€þöAˆ_ö{\?®LïL/uY2P™Ãô¾NÞ’ $ “ã’%:=ÉÓÀfÒKdQ_x`\ÁÅ`0@»uëÕ“ˆÄÛó€]„ÑË<0RéËÛDã”s­5ÞnÁ&¼!­ê¾C›Ï o”¾ð¾ôÖ€å÷ðY“Þ84{Îê¹2p5•hJ ûö<ñf±ôÊMX\Ö{šMTQ﬘d¡ŠÚ*÷ÓVˆgÀ!®žh3\1bqû“€±ðÆ4&S­šŒ6›ÎeŽ˜ˆ¦œJÆjmJ)À+ žÚŒ™¼gËzkJ “\­4¤1QU O@9@°,k²ûÔYAOpÁ4 ö*/ «ÐxÜâ/$Ši“–ÜŒ·Iû&pBxQ.,Ïò^S9)Ø™¥ßRq*ÊD«B²0P\ Ã{êÚZêr¹¢L”¶A«Bÿ0 ®‚O ×Åùý_¼³ºHˆ|N¥S g¢Òi—·ü—9å¬P6 ÚDñÈkÙ#å¬Òðÿ6.iÕ˜·6ÿï5&‘ª~—’à_'A‚RIyYNŒÈÿß •£¥P 7¬Sˆ“We£@ÎDÙè”c¥P g¢âäUÙ(ðn!ßF¸€OuIEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1tiny__int.html000755 000765 000024 00000102177 13515046516 024617 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::tiny_int< VT > Class Template Reference
MySQL++  3.2.5
mysqlpp::tiny_int< VT > Class Template Reference

Class for holding an SQL TINYINT value. More...

#include <tiny_int.h>

Public Types

typedef tiny_int< VT > this_type
 alias for this object's type
 
typedef VT value_type
 alias for type of internal value
 

Public Member Functions

 tiny_int ()
 Default constructor. More...
 
 tiny_int (value_type v)
 Create object from any integral type that can be converted to a short int.
 
 operator bool () const
 Return truthiness of value.
 
 operator int () const
 Return value as an int.
 
 operator value_type () const
 Return raw data value with no size change.
 
this_typeoperator= (int v)
 Assign a new value to the object.
 
this_typeoperator+= (int v)
 Add another value to this object.
 
this_typeoperator -= (int v)
 Subtract another value to this object.
 
this_typeoperator *= (int v)
 Multiply this value by another object.
 
this_typeoperator/= (int v)
 Divide this value by another object.
 
this_typeoperator %= (int v)
 Divide this value by another object and store the remainder.
 
this_typeoperator &= (int v)
 Bitwise AND this value by another value.
 
this_typeoperator|= (int v)
 Bitwise OR this value by another value.
 
this_typeoperator ^= (int v)
 Bitwise XOR this value by another value.
 
this_typeoperator<<= (int v)
 Shift this value left by v positions.
 
this_typeoperator >>= (int v)
 Shift this value right by v positions.
 
this_typeoperator++ ()
 Add one to this value and return that value.
 
this_typeoperator -- ()
 Subtract one from this value and return that value.
 
this_type operator++ (int)
 Add one to this value and return the previous value.
 
this_type operator -- (int)
 Subtract one from this value and return the previous value.
 
this_type operator - (const this_type &i) const
 Return this value minus i.
 
this_type operator+ (const this_type &i) const
 Return this value plus i.
 
this_type operator * (const this_type &i) const
 Return this value multiplied by i.
 
this_type operator/ (const this_type &i) const
 Return this value divided by i.
 
this_type operator % (const this_type &i) const
 Return the modulus of this value divided by i.
 
this_type operator| (const this_type &i) const
 Return this value bitwise OR'd by i.
 
this_type operator & (const this_type &i) const
 Return this value bitwise AND'd by i.
 
this_type operator ^ (const this_type &i) const
 Return this value bitwise XOR'd by i.
 
this_type operator<< (const this_type &i) const
 Return this value bitwise shifted left by i.
 
this_type operator >> (const this_type &i) const
 Return this value bitwise shifted right by i.
 
bool operator== (const this_type &i) const
 Check for equality.
 
bool operator != (const this_type &i) const
 Check for inequality.
 
bool operator< (const this_type &i) const
 Check that this object is less than another.
 
bool operator > (const this_type &i) const
 Check that this object is greater than another.
 
bool operator<= (const this_type &i) const
 Check this object is less than or equal to another.
 
bool operator >= (const this_type &i) const
 Check this object is greater than or equal to another.
 

Detailed Description

template<typename VT = signed char>
class mysqlpp::tiny_int< VT >

Class for holding an SQL TINYINT value.

This is required because the closest C++ type, char, doesn't have all the right semantics. For one, inserting a char into a stream won't give you a number. For another, if you don't specify signedness explicitly, C++ doesn't give a default, so it's signed on some platforms, unsigned on others.

The template parameter is intended to allow instantiating it as tiny_int<unsigned char> to hold TINYINT UNSIGNED values. There's nothing stopping you from using any other integer type if you want to be perverse, but please don't do that.

Several of the functions below accept an int argument, but internally we store the data as a char by default. Beware of integer overflows!

Constructor & Destructor Documentation

◆ tiny_int()

template<typename VT = signed char>
mysqlpp::tiny_int< VT >::tiny_int ( )
inline

Default constructor.

Value is uninitialized


The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1ObjectNotInitialized-members.html000755 000765 000024 00000014127 13515046516 030325 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::ObjectNotInitialized Member List

This is the complete list of members for mysqlpp::ObjectNotInitialized, including all inherited members.

Exception(const Exception &e) MAY_THROW()mysqlpp::Exceptioninline
Exception(const char *w="")mysqlpp::Exceptioninlineprotected
Exception(const std::string &w)mysqlpp::Exceptioninlineprotected
ObjectNotInitialized(const char *w="")mysqlpp::ObjectNotInitializedinlineexplicit
operator=(const Exception &rhs)mysqlpp::Exceptioninline
what() constmysqlpp::Exceptioninlinevirtual
what_mysqlpp::Exceptionprotected
~Exception()mysqlpp::Exceptioninline
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1SslOption-members.html000755 000765 000024 00000013500 13515046516 026174 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::SslOption Member List

This is the complete list of members for mysqlpp::SslOption, including all inherited members.

err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
SslOption(const char *key=0, const char *cert=0, const char *ca=0, const char *capath=0, const char *cipher=0)mysqlpp::SslOptioninline
~Option()mysqlpp::Optioninlinevirtual
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1BeecryptMutex-members.html000755 000765 000024 00000011554 13515046516 027051 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::BeecryptMutex Member List

This is the complete list of members for mysqlpp::BeecryptMutex, including all inherited members.

BeecryptMutex() MAY_THROW(MutexFailed)mysqlpp::BeecryptMutex
lock() MAY_THROW(MutexFailed)mysqlpp::BeecryptMutex
trylock() MAY_THROW(MutexFailed)mysqlpp::BeecryptMutex
unlock() MAY_THROW(MutexFailed)mysqlpp::BeecryptMutex
~BeecryptMutex()mysqlpp::BeecryptMutex
mysql++-3.2.5/doc/html/refman/nav_h.png000644 000765 000024 00000000142 13515046516 020404 0ustar00tangentstaff000000 000000 ‰PNG  IHDR ,é@)IDATxíÝA @BQ­³šÛ›Ð¢Žáà) )ëý éaÅèÜ¿Æo‡RlÐßIEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1ConnectionFailed.html000755 000765 000024 00000041665 13515046516 026033 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::ConnectionFailed Class Reference
MySQL++  3.2.5
mysqlpp::ConnectionFailed Class Reference

Exception thrown when there is a problem related to the database server connection. More...

#include <exceptions.h>

Inheritance diagram for mysqlpp::ConnectionFailed:
Collaboration diagram for mysqlpp::ConnectionFailed:

Public Member Functions

 ConnectionFailed (const char *w="", int e=0)
 Create exception object. More...
 
int errnum () const
 Return the error number corresponding to the error message returned by what(), if any. More...
 
- Public Member Functions inherited from mysqlpp::Exception
 Exception (const Exception &e) MAY_THROW()
 Create exception object as copy of another.
 
Exceptionoperator= (const Exception &rhs) throw ()
 Assign another exception object's contents to this one.
 
 ~Exception () throw ()
 Destroy exception object.
 
virtual const char * what () const throw ()
 Returns explanation of why exception was thrown.
 

Additional Inherited Members

- Protected Member Functions inherited from mysqlpp::Exception
 Exception (const char *w="") throw ()
 Create exception object.
 
 Exception (const std::string &w) throw ()
 Create exception object.
 
- Protected Attributes inherited from mysqlpp::Exception
std::string what_
 explanation of why exception was thrown
 

Detailed Description

Exception thrown when there is a problem related to the database server connection.

This is thrown not just on making the connection, but also on shutdown and when calling certain of Connection's methods that require a connection when there isn't one.

Constructor & Destructor Documentation

◆ ConnectionFailed()

mysqlpp::ConnectionFailed::ConnectionFailed ( const char *  w = "",
int  e = 0 
)
inlineexplicit

Create exception object.

Parameters
wexplanation for why the exception was thrown
ethe error number from the underlying database API

Member Function Documentation

◆ errnum()

int mysqlpp::ConnectionFailed::errnum ( ) const
inline

Return the error number corresponding to the error message returned by what(), if any.

If the error number is 0, it means that the error message doesn't come from the underlying database API, but rather from MySQL++ itself. This happens when an error condition is detected up at this higher level instead of letting the underlying database API do it.


The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1ScopedConnection-members.html000755 000765 000024 00000012054 13515046516 027502 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::ScopedConnection Member List

This is the complete list of members for mysqlpp::ScopedConnection, including all inherited members.

operator *() constmysqlpp::ScopedConnectioninline
operator void *() constmysqlpp::ScopedConnectioninline
operator->() constmysqlpp::ScopedConnectioninline
ScopedConnection(ConnectionPool &pool, bool safe=false)mysqlpp::ScopedConnectionexplicit
~ScopedConnection()mysqlpp::ScopedConnection
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1ScopedLock-members.html000755 000765 000024 00000010065 13515046516 026273 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::ScopedLock Member List

This is the complete list of members for mysqlpp::ScopedLock, including all inherited members.

ScopedLock(BeecryptMutex &mutex)mysqlpp::ScopedLockinlineexplicit
~ScopedLock()mysqlpp::ScopedLockinline
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1ReconnectOption-members.html000755 000765 000024 00000015277 13515046516 027370 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::ReconnectOption Member List

This is the complete list of members for mysqlpp::ReconnectOption, including all inherited members.

arg_mysqlpp::DataOption< T >protected
ArgType typedefmysqlpp::DataOption< T >
DataOption(const T &arg)mysqlpp::DataOption< T >inlineprotected
err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
set(DBDriver *dbd)=0mysqlpp::Optionpure virtual
~Option()mysqlpp::Optioninlinevirtual
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1MultiStatementsOption__inherit__graph.png000644 000765 000024 00000021605 13515046516 032170 0ustar00tangentstaff000000 000000 ‰PNG  IHDR¹ÄÀCsRGB®Îé#?IDATxí]˜E~À.aA J’(HA’‡¢"AD9EÅCOñ‘…ãŽã„CÅtâÁ§„å@%gÉ9'ÉIrΡ®þÕöôÎÌÎ.;=3Í{ß·Ó]¡+üõ׫W¯kfÓ)-$"xQé½Û7é™ p!¹0ÁóÉ=?ÄÒA!¹pÀóÄEº‡»w瑩]»FºR(\¸0 0 %§¬Èˆkò“'OÒèÑ£éôéÓ)k¹äŽjÖ¯_OS¦L‰Š6F\“HeÊ”1A¹Æ8½zõ¢±cÇFE/"®É£i„§’{zx¥s@@H.<ð<BrϱtPHžBìܹ“6lHû÷ïOá“)ϾbÅ jÙ²%•,Y’òåËGõêÕ£þýûÓµk×B*ìÊ•+tìØ1+ï—_~I;v´Â·Ê<…# —çäÉ“éܹs)|2eÙ'MšDuêÔ¡eË–Q»ví¨wïÞT @êÖ­5nܘ._¾œl'N¤Ü¹s[y/^¼HçÏŸOö9¯eˆ9’c  M¯^½J;vì µk×ò˜@»­[·Ž–/_n *^4Ù52îÝ»—Nœ8a#´åÂ… éìÙ³VnΜ9C , £G2¡wíÚ哎À©S§¤áæÏŸO[¶lñÉsèÐ!B{QƬY³øjÏ€4CVÑÄ¿ôÒKT¶lYZ¹r%uïÞ:tè@#Gޤ!C†&À·ß~ËEªãÂ… „4ðB¹mÚ´¡~ýúq>ÐÇ9sæÐìÙ³}ÞSŒñ̶mÛ¸oȳ‚£¶‘”5kÖਯڴiSHÍX´hç¯[·._ñìþðÕ A+\³fMuéÒ%U«V-õÐCYåêAW2dPš(jõêÕªhÑ¢*[¶l*]ºtªP¡BjãÆœW¼Ê™3§JŸ>=ç¯ZµªÊš5+§­ZµŠëÙºu«zþùç•&¢Ê•+—ʘ1#Çk­kÕ‡¸Úµksñññ*!!Aiß±•Ž:^{í5OŸ>Ÿ×„ScÆŒáûiÓ¦YyÍ&žÒïTýúõ9*P3gÎäöôY+Õ¹sg…¾@æÎ«´ ÄýÊœ9³Ê›7¯Â3ƒq³fÍøY”t=‰9=”÷ß_ÝsÏ=¡d wž‘1§É5à,Ù³g§}ûöÑÇLóæÍcí- mͼaÃjÕªéÁ´4Zbb"iâÒ3Ïù„µðW_}Eø›0a‚•« ´!VÇ{Œ^yåÖ ÈûXONΫ'›"¸š¡zõêV9æFOHºï¾ûhûöí&ŠÛ鬣Zµj¤' çÁ Q¬X1+¿VÔºukÒÊ€Ž?Îh…@/¼ðãh2b58räk{h÷qãÆ™¤Øº†{%W~j5ù’%K¸hh¸1b‡5i9¬ ­ô)hÐO?ý”Ó~øaÕ¤I¾çw4Xß¾}´34?þ/^ÌÏÛ5.´R M^¾|y.Ï|/^œ5&Âвږ6IJ›R\¶ž„Vœ¿›=z¨¸¸8¥M2ÉêÑGUz3ÊiÁêФäúÐ/ˆÑäFSk³‡ãñaV`aÒõ~ÀJÇjùòË/[áänD“§À& ¢ÉÀ×R¥Jñš¢7]ð„@£A#Á.†v‡h"ñ=V‚Ê•+S‰%H.íÙ³‡ÓkÔ¨ÁW|@»MjŸ$½¬[+îºë.+ic+[ Ž´ž¬NFÅꄚJ‚Õqøðaö àY=yT—.]Ôý÷ßÏÂÏ“'÷}„¯Çrš±É ƈÄ>Àî9âŒA>¢É&Ç ¨¤”ä©iì[o½¥*T¨äQí£VÚ„P˜(NÑ v3bÒh‰Er{>¸áfC9臶—íÉLP­å•Ö”–{Ò'Cl1±–.]ª´9”ä Éã¥K—úz¼V§¸QG8ÛïFÙé°ô¸QQ :ðZ›#ùfP ”b/^ï'ø›AØpGXäÇ…"<R½ xÞ…è†RE”# $wy€fÎÜèrR]Ôl<;uêD·Ýv›§Gäܹ8Ú¼9—>üuý¬—;‹Ÿ¤0G,"Ýψ“®/¼‰¼äðá}n=^{dâ(!ኧ»¬Ùò)ÏhèdĽ+Ñ‚[m¨Zµ·þÚÜqzóÍôÎ;»Uí­^xWÜbÀŠ»˜à¨oôèenU+õhdãé Æ_Aññ¸6hs^Ä„ä.à|íšÒ/FðÝÓ«\ÈÒ‹¸ƒ€ÜœçÏߪ¿föû¥Avä ?Bòðc¬ÏŒ/×_‚¸nª˜ê@z_$üÉÃŒñ¥KWiâÄUúël×MSHò‹„!y˜1ž1cƒö‹'ý! äÇ$ /Bòðâ˶w\Üõ/W;«ù1 D‹€<Œøž={‘¦M[§Mÿ¿]òc*^„äaÄwÒ¤µúgüÕ‚üÓ§¯×¯ú/†±R´<Œ3f™þ­SÅT{éÒýÛ†×ÏÑÄÉ5m’§-žViÇŽ]w*X“›Ì‰‰òbÈ`Ž«Ð ªºLxMŽõý%Ø©S×ë_îKK—¾ïSk† éôïg÷‰“@š!0*âGmÓ¬+QVPÆŒôøø~C?gÎn¥3>Êšî¹æˆ¹â¹!•9’;‘°ç’{nH¥CN„äND$ì9„äžRé!¹ {!¹ç†T:äD@HîDDžC@Hî¹!•9’;‘°ç’{nH¥CN„äND$ì9„äžRé!¹ {!¹ç†T:äD@HîDDžC@Hî¹!•9’;‘°ç’{nH¥CN„äND$ì9„äžRé!¹ {!¹ç†T:äD@HîDDžC@Hî¹!•9’;‘°ç’{nH¥CN„äND$ì9„äžRé!¹ {!¹ç†T:äD@HîDDžC ê~„ÿüùóôã?zhthõ꣟ŽFíÉþåÉ“‡êÖ­u}‹º§²gÏ*R¤HÔ% JÚµkÓ/¿ü’|FwsŒŠZseÑ¢Eú?§)ù‹ :vìè.uSP[Ô’<}¬‚@P„äAá‘D/ $÷Â(J‚" $ $z!¹FQú˜'ù‰'¨aÆ>Ï>û, 8®^½´ó¡$Ž1‚^ýõP²Þtž+VPË–-©dÉ’ú?4ç£zõêQÿþýéÚµäÿu9*¿rå ;vÌjG›6mh̘1VøV½‰y’_¸p&OžL™2e¢ûî»*V¬HgÏž¥·Þz‹Ò­µyófZ°`AØù1iÒ$ªS§-[¶ŒÚµkG½{÷¦ P·nݨqãÆtùòådÛ0qâDÊ;·•÷ܹsúߟ_Jö9Ïgо訒ݻw+ ºÒ~òÚuàÀίß"úäà”&‰Oœ~Ѥ~úé'¥5¦ÒÚÑ'íôéÓjöìÙjÖ¬YêÔ©SVZ=Ô½÷Þk…qƒ6Λ7O>^eÈAõë×ÙXºwï®2f̨²gÏÎyjÖ¬ÉÄAbçÎUÙ²eU©R¥ø9LäGy„'›6)8ÿ´iÓ®dûÄd,S¦Œª_¿>Ç¢| u£ jìØ±Ü^ôå" ¤-\¸°úûßÿÎÏë# žkÖ¬™Õ6`€ÉªÉCEJçK-É«W¯®žzê)Õ¤IU¢D &4Í„Aüúë¯9¼uëV•?~õꫯ²f-V¬˜zâ‰'”^Ú9Œû;35¦ä Pqqqj„ ¬…‡ÎåB3ïÝ»—'ÏСC™ØÚÌá¼ 0$Gþõ¯q=½zõâðöíÛUß¾}ùÞ¾‚ðC7>ž{î9u×]wq$¿ãŽ;ÔÎ;•6ËTóæÍ•6QXóŽ7ŽËA? †ä˜œÁúhHþØc©ãÇ«9sæðDµO`.0ÈG4“<æmrMد¥K—¦råÊQ5HkSzûí·9-11‘räÈAZ s;­µhÆŒ´råJÒ„¡:èÃSñ¤IDo¼ñisƒ6mÚt½ðŸ£F¢*Uªžú°ÕjÒf eË–÷Zóц èñÇ'=¹6¶Ö¬\Ž)¤xñâ¼W@=z‚q´žp¼‡Ð“‡ôJb²ú\õŠCZ;[qhkÑ¢EIkqÒ“¾nÝ:+Ýyj?úè#ºýöÛyoP©R%Ò¦‹³¨˜ GÝ)ÄԢتU+zúé§­Ç.\HµjÕ¢ùóç“^¨råÊL:“AÛÀ¤íZNC6­FAº]víÚEÚÆ%­é­hB›?|ƦS§N4eÊ*T¨U¨P@\»ÀcbD›E| ^yØ3¢M ¾7ypÕZ˜' 6¥F´V7·„É9tèç¼Aÿ!úˆ‰ ±·/K–,iââ‚#üáMîÄš¢7{쥀¦Ó«­•mùòå¬ ±@ôFÐ' ½Ä[q¸Ñf5hЀpRÒü <˜Z´hAß}÷M:• ‰4mÒ0ùí`2øe9« Žk³ÄJÚ¿¿uI f$¡ö+Å3½Z»v-ioMŸ>´K5b“æ÷ìÙ“àW_¼x1i/ ÁŸíÍݧO^ò‘®½T­Zµ$ZµiÓ¦\>|Ï(Ï<ù䓤íXÖz ´¡öº°Wf(®?hòöíÛÓ Aƒ¨k×®<á0Q¾ÿþ{ Ó¡mÛ¶ÿ´Ç…ô¦Û‹gp4®S˜Z˜Yö ’>Z•xé&È^""I)ÝxÂ-§ÇÃç/gΜJ¿HQÚn¶úϼ*ð< ¿&8»ÝAO ¥üs<<ÚfWëׯçg±ñÔv8ßk¿3oôL}ðÄ`Ó{N“‰Ë@Ú·ÍÞ ”·téRÕ¥K›žLœ÷çŸæçáNÄfKS>6¹z•ðqi".MÓxl´ŸË8|ø0{‰ðü¶mÛ”&¿å] ÖG³ñÄæÙÈ£>ª´¿Þ“½FóÆ3æ]ˆÉ¢oËß²¶Õ|ÍNŸY›0 ^ø˜ƒ &"ÊÑo“dÃó¨Ç¼ Ænâ‚]áÁäÄÄÀ¤r H>räH…I²qãFg²åCO’ #RÒGÏ‹‹f’û ð²àm þü 6‚ðœ„"Ú5Gøó'ððØ%˜­lÏgîáy鑜À[„?§àÍ/þüIJúèïùXóŒM«ÒvÃ=h¢¦´¬[%ÿ-¥É½0¨úEºájD“» ·T „ä.£~èÐ)—k”ê¢Ö\ÁKó¦Î+ÃtþüUúá‡mÔ¦ïæÔ ýÃñ„hùÝG&!¡¼öˆÔ£ƒ?×_„¸àbÍîT­¿»uš®9íugT\®¥yóOhÑ¢múÀlý  ê.×~ëV'6¹Kc[|ñâíº6üLÜR—j•j€€Ü%üï«ô)HÐRLvÙ€º¼Ü= ¡½Í’Av^ÄD“»€ó®]øRÃ^½×¸^È.&‹ ÀߨBHîÖãǯÐçÅÿfÈÒƒü"áG@H~Œõ¹ðÅú›?¾¿Òƒü"áG@HfŒ×¯ßO;w&ÕØ =È/~„äaÆÚ:>þwSÅ^È¿aÃï_e³§É}Ú! $O;,ý–4fÌRý8_SÅdùÅd1x„ë*$²ºÜ%KvèWødü˜"áE@HF|—4ULµ˜˜ "áC@H&l¯^½¦_ø¬Ôß⿦¿EðÕc2ˆ„¨; ¾®º[ò±cgõ¯rÕõ©tË–ƒúLJÖê_èzØ'>gΟ°Ò¨;j›¶Ý‹®Ò&LXE¯½6‚öî] óvk¢÷_zw雈Mî&ÚRWD’Gv©ÔM„än¢-uE!yD`—JÝD@Hî&ÚRWD’Gv©ÔM„än¢-uE!yD`—JÝD@Hî&ÚRWD’Gv©ÔM„än¢-uE!yD`—JÝD@Hî&ÚRWD’Gv©ÔM„än¢-uE!yD`—JÝD@Hî&ÚRWD’Gv©ÔM„än¢-uE!yD`—JÝD@Hî&ÚRWD’Gv©ÔM„än¢-uE!yD`—JÝD@Hî&ÚRWD’Gv©ÔM„än¢-uE!yD`—JÝD@Hî&ÚRWD’Gv©ÔM„än¢-uE!yD`—J]E@9ä‡~À€—¿0`>}fŸ_° ¶àl† læàÈ€ÿ3¨W¯^®N6©L¸Ö®]«ÿÙÿüä=ôß$RˆF®^½äb“GãˆI›Ò!yšÂ)…E#BòhiSš" $OS8¥°hD æI>uêT4hPX±=sæ uëÖþò—¿ÐÅ‹“ÔÕ·o_NßµkW’4gDÿþýiæÌ™}áÂ:wîßïÙ³‡Ë8vì‡ÏŸ?OŸ~ú)µnÝšž|òIúë_ÿJ“&M¢Ë—/[Ež>}Ú'l%ø¹II^?‡%Ê­6Å<ÉAŽuëÖ…eL¡—.]¢¥K—ÒâÅ‹iÑ¢E&š¯;vì iÓ¦q:-9Y½z58p€³ð˜ k×®ˆ­=»9r$ýôÓOT¥Jjß¾=åÌ™“þùÏÒ¿ÿýoNÇG³fÍhöìÙV8ØMJò+'-ÓÜjÓM“øí·ß. ÞöíÛ °yófºrå Çyò$A¢N§œ={–ËB}ð›b4Zr÷îÝ´aÃ-rAK£Ýgqñññ–F­Œx#¨m3å þÈ‘#䜦è Ò *D|ðÝ~ûíÜø|[¶lI:u¢ÇœÞ|óMzâ‰'hÆŒÜ6` AŸ€à¹fÍÆÈÄÊ{èÐ!Æ ¸Ùe L¬2Àc 9zô(—m/Äcì·mÛF;ÜÁX£}ÀdÓ¦MÌ “¨MÆß”™šk@?y¨…ýúë¯ôç?ÿ™*W®L«V­âÇ*T¨@3f¤åË—s¸\¹rlR|øá‡Gäø'NгÏ>Ko¼ñá™=zX$Γ' 0€Š)BÐ~ï½÷a0Ò¥KG%K–$Ë·]P.@:~ü8ÈÞ°aC6 …{öìI+Vd‚# eC;æÍ›—V¬XA]»v¥?þ˜ûb#äÁ¤¹sçrÙY²dá8hRÄOŸ>Ø< ¦~sÌå"²{÷îtÿý÷ÓË/¿Ìyðñõ×_Ó‚ 8üþûïÓ믿Î8Ž5ŠräÈÁ}5–˜.uëÖåû:ðDúì³Ïø ­Ø¹sg&SBB“ü¥—^¢çž{ŽœyŸ~úiî7L=ý–'É‹Â1žÀX§¬Y³òD=z4×ò±¢”(Q‚ Æã‘>}znûG}Dóï¾ûŽW?£1ñ«V­JÿøÇ?’´ ø®ô&>nZ“›º@@Т˜½h€ß¹s'5hЀ5H™7o“÷í·ß2°X¢QN®\¹h„ r¿~ý¨T©R ŸyÞÔm¿lh½)S¦0¹1æÏŸoeÁäùñÇy i>ÿüsN+P O8\!Î0âjÔ¨‹ENLð½{÷2É9!˜õêÕ£ÚµkÓСC}žÄjÚ´)›FÐÞØŒ1‚5)”&zbb"“êÝwßeÜЖÿüç?læ`BdÐÈμcRöéÓ‡qÂä>|8OÓ¬ÊØë|óÍ7¬ÇOƒ¦qãÆq½³fÍ⬛L™2q½?ÿü3•-[– ÌŒÙ…ñ@0mÚ´¡eË–ñJçlS ñ7í¹™kš‘¼U«V"4nܘIkÂXÂñ³ä†@ bCsÝyçlÚ€ÈÐðC† áÙ¾uëVš*þüœÚ9+VŒêׯÏõ _Á‚y%0ù4õ!ݬ>ÿéObr#¯3Œ8h0ôÇ 0®Å‹çéi)˜¨Ð–Øt‚¨ ˆ Rù(£Õ.\H;µR1&‡3?LžÒ¥KóxÁÌÀʘ9sfZ²d‰•åA-Z”±¨V­•/_ž÷wß}7 Æ ¬zõê¼r`ã Mxc*ÿ-Z𠎉 ÁdtJ ñwæKMø¦ÍS)4/ˆ@ë@0³Af2gÎÖ~ 4=“v*´ø_|ÁiFkp# { ¹ãŽ;|’`ãš2`45:S"Xu°Y„]ŠIl™raw§D`ûîß¿ŸM8hnlÛaƱFÄ„ÑìÍ  ìéÂ… 3Öötû=ìaL˜F²eËfârçÎm’xL±g0‚1Åx‚̬¸“'O6É\‘[ˆ˜+± 3^¸ÀTÂææ´&üØ8_ŠÀÛƒ½ž…é…6}ÙµY(åHž¤3Wï ’–sKÇ`o–Tl°ðbÞ“·ß~›7™¡€ì@V(ÏKžÔ!હ’º&Fþ)l’áyž #O=õŸKÁ‘Ø:uêðæ Ihf¸Ó°éÃql±…&‡9e?e·ÝaÎá $6Šp¯â±¹Äæà°§À{‘Ð’‡€ÌxbðVÎ. /ŽÀ}†ó1ÈèØÿû_ëÌ‹ó@^VáÌ þðæ0x‹@nœÂnTx `òtéÒ…ptB$yÄ\I#¶Ÿ¡YÍ‹+û#ðâ€ìö·°þ;…7œßè·”8ˆ…]8XO^fÁËØð8ô†—E'N4IrM!y2!f4¬?Á™khWcZ O C`þžG|øxÃiØ}ïö³2¡ÃË)¬ö·ƒ°ëaDZt‚ïK$4„ä!à!Ì_³Ã±V˜+xEoÄ~€*”C` 4ΨØ_>ÃMi?ÂÎ’àH,^Ùö2Áü€†7‡Àp³38…¨¦Â[`l8ñf˜?8ü%Ä©ÅvÆ™²äšy㙓 1ð}ô€›ìd åX°Y°Á1Ap-œ‡Ç‚v0Fƒ½ñMžÂA…—Å|['Ø£ö¨=_°Y˜8ö—Cöçä>õˆMžzì’< ‚Ê!°$°D MySQL++ Reference Manual MySQL++: Class Members - Functions
MySQL++  3.2.5
 

- u -

mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1UseEmbeddedConnectionOption.html000755 000765 000024 00000022357 13515046516 030203 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::UseEmbeddedConnectionOption Class Reference
MySQL++  3.2.5
mysqlpp::UseEmbeddedConnectionOption Class Reference

Connect to embedded server in preference to remote server. More...

#include <options.h>

Inheritance diagram for mysqlpp::UseEmbeddedConnectionOption:
Collaboration diagram for mysqlpp::UseEmbeddedConnectionOption:

Additional Inherited Members

- Public Types inherited from mysqlpp::Option
enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 
- Public Member Functions inherited from mysqlpp::Option
virtual ~Option ()
 Destroy object.
 
virtual Error set (DBDriver *dbd)=0
 Apply option.
 

Detailed Description

Connect to embedded server in preference to remote server.


The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1ReadDefaultFileOption__inherit__graph.png000644 000765 000024 00000021525 13515046516 032007 0ustar00tangentstaff000000 000000 ‰PNG  IHDR¹ÄÀCsRGB®Îé#IDATxíœUÅõǰt… h¥‰  ”Nl$hþ¨D!˜¨QD,(MÄ‚ŠP   E,€€4Qé¤÷*]z»ÿù™ËÝÝ÷vß.»÷í{wÎçóÞ»wúüæ7gΜ;w7›£D¬XâQÙã·o¶g X’[&Ä=–äq?Ķƒ–ä–q@B´{¸mÛ6yî¹ç¢Ý [& pÝu×É{ï½— %§­È¨kòÇËèÑ£åÈ‘#ik¹M¥X¹r¥Lž<9K´1êšÜ Ð·o_)W®œ¹µ¿1Ž@=dÔ¨QY¢Q×äYÛˆ¸FÀ’<®‡×v,É-âKò¸bÛAKò4r`óæÍÒ°aCÙ¹sgs¦=ù¢E‹¤yóæRºti¹úê«¥~ýúÒ§O9þ|Ä…­Ó:Tž~úéˆóÆKBKò4Ž$.ÏI“&ÉñãÇÓ˜3mÉ'Nœ(uëÖ• H›6m¤gÏžR´hQéܹ³4nÜXΜ9QL\´È©S§äĉå‹§D1Gr mzîÜ9Ù´i“,_¾\ÚmÅŠ²páB—[·n•$¯íÛ·Ë¡C‡Ü0´å?þ(ÇŽsø8zô¨üðòÿ~Mè-[¶$Šçß>¤‡psæÌ‘µk×&J³wï^M,ʘ>}º.Ë›€¾²rÒÂÛ¶m«]ª‹/–—_~Y:tè #FŒ `ذaº¨”ê ÿ”»{÷nÝŸV­ZÉ›o¾é6º–-[&ß|óðPΈÁ˜ø 6è¾GÌ Gm£)ФõuV­ZQ3~úé'þŽ;îпä­S§Žs×]w¹÷5jÔpÔíÔ¬YÓ©W¯ž[®"„“#GGÅYºt©sýõ×;—]v™“-[6G=sV¯^­ÓΜ9ӹꪫœìÙ³ëôU«Vuòçϯã–,Y¢ëY·nóÈ#8Ê·ï,XÐÉ•+—WZ×­°Zµjé2ræÌéäË—Ï3fŒOýë_õýÔ©Suþ3f8Ÿþ¹¾ž2eŠ›Ö\(â9eË–u4h ƒRªCiq]ýxë­·œŽ;:ôQ“_cCœéë+¯¼¢ã ÆM›6ÕmãÂ… ;jëøH¾ºwïî”/_>’¤™fdÌir£M®¸â Ù±c‡ðiöìÙZû¡¥Ñvhf5i¤E‹2kÖ,AÛ!ãÆ5¨òÐCÉk¯½&ÅŠÓš˜|EŠ‘AƒiÍúØcÉï~÷;½R¬Y³FöìÙcªMö«&† 0@ká?þXøL˜0ÁMÇjƒ6dõ¸÷Þ{¥}ûöZ«’ûXMNVM8mŠðkV„jÕª¹å˜ 5!¥J•*²qãF¤ÛªÚ µ>fŽWxXFëׯ׫Ý!C¤W¯^zÅ1éNž<)ûöí5é5¾cÇŽ5Q±õ›ÙÓ(µòÓ«ÉçÍ›§‹F»(ÄáÇë{e>è{EhG ƒýðÃuÜwÞéÜwß}úú…^pòäÉãôîÝÛA;£ùùÌ;Wç÷jÜ®]»†Õä*TÐ噯’%KjÉ=ZVÙÒ&ÊQ¦”.[MB7,ÔE—.]ENG™d¡¢{î¹ÇQ›Q—Z”óÙgŸé´^M®&¸ã]uHÀŠDÝF“«ý€ÎÇ«åã?îÞ§va5yè6aš )S¦ŒþEÓ!j¤P¡BÚ¢–­‘°‹ÑîˆL}ÍJpë­·J©R¥D ®k›V¯^]§ã íN©E©eÝ]9ˆ(Q¢„ObV7"Ém9{ö¬ÖÐI¢´Feu"‘´Ö­Í*X¹reS„þS4·6­FòæÍ«÷Aæ>–~cÖ\ÁìˆD µ²seðàÁ¢ìoiÒ¤‰Î¦ì]Q6¨6EجrbŽ žØ]»v¹Å{M7ð^W"6ŠÞIágsŠxãÿWL¢¼*LÞþýû' çfÚ´iÚ4zàܸ´ÖvL86FØxcšyÛ)ƦŒ¬úS²jë#h—2ODmåÕW_•fÍš‰2Qt.ã3ÆW$­õÕÆPku€ÍŽ­6¨òÑG…­‰ Â> “Ÿt£FÜôxC°±ñüôë×OŠ/.•*UÒñÊdcçB0ltlk´t»vítúN:i2âý9r¤^}n¹åiݺuDu(sMÛï´Ë+¸!Ù£(³L·™ £¸“Ôl«ÌŽO¯M®È©›¦´¬¶s±#åÖÓ÷ãÇ×÷|a{ªs”KÐ SK¾ƒ]Šg»VÏ1¶²òƒkû”ëT¬X1YVå£v” á0Q’ŠòYk7#“FyL\’{ÓáBÄÍF9jéw”Ù­ ª´¼£V×=™(A7l†™XóçÏw”9”,$O­å'כꤙqG*ïŠÃ3TÙIÓ§å>+‘<Ëœ'Wš*Ã…¥Óäý÷ßOV>v¯ò¥' '³Æ˜!x)GM"OHâË ŸôæF$íH©Ü£¡„Mºw*M<„Å5ɱ·?øày饗¤eË–é/6£j™O–ÿÆoLññ><<™)~Ô‘™í÷£ìl,A~T®6dhALØ7ƒÂ¡{áæÍ ^ƒ‹²Ø?.å°Õû€@Ü»}ÀÐV‘Ű$÷y€¾ûnµÏ5Úê²ÌÆS¹ù„CWñ,'N䔟.¨…?ð/ý϶¸ eÔIŽë+.Ÿ²¹_¼Ø»7¯:·ž <29%_¾È^z¸˜;¶®n¾ùf}T"+´:êÞ•¬‚_m¸í¶ê`Ô!õøþNyñÅ‹þýª? õXïŠ_¿dÉVMpê5jž_ÕÚzvãé Æ[$9sæÐµíÞ}D½¦—üu:Ÿš¸j,É}rž·û§çtm}ܸ…>Ôl«Krx0g¯˜]|²Czu>ʇÚm–ä>p­pÁT1Õ>|\½›šøí~g3KòŒÅ3Yihí «×Ù.˜*&¤;Öš,Ìüµ$ÏLtUÙ<á4ú— AàøñÓòí·+“™*¦ð„„lzjîíoæ `Iž9¸êR'MZ–à$8{ö¼LºRý±¡S™Ø [´%y&r`ôèù©–ÎÆtâÄ‹"Õ 6Aš°$O3d‘e8pà˜|ÿýºˆ|á< µ’yØZ™„íéÓçÔßb¹øˆj¦N]%/¼0J=ÒÖ9²©?jßÇŒuØß›QQ?jëoý«-W®rÍ5‰ßпêª|ºIÃýkU0k²æJ0Ç=P½¶$Ôp³³–äÁ÷@õÚ’Ý9r䈾ÿ~g÷îÝΩS§œyóæ9Ë–-sèSZDùÉõ0(-Y²BÚ‘•)SÆmûÝwß­1Ð "øŠU’ǵ¹¢[:tè _ýµ(2jÛúõ×_¥©E‘Q²e˦mí„„6l˜6dÅŠR¹reY¸p¡:k’‹ D¢´²( *3gÎ¥eìØ±:¾[·n¢´¸,Y²DE­n>l{¤Zµjn˜¹ UªT‘7š Æ ¢&¶Ü{ï½Ò¾}{¹í¶Û\û[iu¹á†Üôì1Z¶l)5jÔö¨Y³¦<ú裺$¤mO<ñ„—¶~ûí·²yóf·Œx½ˆk’3h eVÈ“O>)j)—îÝ»Ë-·Ü"=öXØ1…œØñ=”ôêÕKŸ¡Á¾¦,eºèd&Lì} `§NÜìÇŽ&/”¨U@”vv£˜œ×_½(-.juâ™|ádñâÅš°äSÚ_ONö;vìŸþYg+Y²¤<ûì³:²#ëÖ­Ó¿ñü×$GcCpµôëM'×Û·o×ÚíÓO?•ùóç‡[<yóæ G U#¤csŠ@(ˆiíl¤T©R‚g ŸTX ”©!¤1R¢D s©W!n”™å†%½Øºu«òÖ©ö:ŒUñ¶[™3:Ì´]ßÄéW\“Rs,tÍš5îðáF|æ™gô=“ =¢ìâÙ(SňѠܣõÑäýû÷7Ñîï´iÓ´ ñÀ¸a;wît¯ÕX_{'ù¿ ¼4ˆÚPþ/D´¹Å1k0‹‚(¡G+N€à Ð&ÄÊ•+µ«å×&‰òtèž²¼c{}çé€c¨ãÆÓL ¯›-)Ó¯_?mÆ@ÆmÛ¶ÉÈ‘#¥E‹ÚÄiݺµ[­ò¸h=å§xñâR©R%wÀR{E7=ÍÍžƒ<ØòÊ£íxï áfÐEL½4‘ÖqA»ñ r)‰Î¡ÙÀ)o…\{íµ:¬I“&ÒµkW—@iÑx¤5éß~ûmùå—_¤Y³fº,4³r׉1 Ð☠øëß}÷]]7Úýþûï—¡C‡j[Ùô_xùòåµ)¤<=òßÿþW×ÃÆ•2 <SS7¶ûðáÃåᇖŠ+ « 6ø_|¡‹$]¸ÈÔ·¿x޲L’´ºMÃñSã»Æïíõ)›x~ñ!+Mî Jóõܹsµÿ6u._¾\»ûh·W¨géÒ¥ŽÚ8øò“ .Ä#Fh;íN*øÜïI%wîÜÂ'”°j„ó …J„°@ܯ4.;ˆÎãvŽ=V!投ŒAÀ’ÖœqUÅâß]‰)MŽ;Mùy3nÄ|.éÿþïùá‡uêÄãtyä‘ê>×Üê¬MîÓØÿò˯òãœV̦žÂ†>æSSW%¹OC>aÂõXRŽzÔ¿I™,vêôbIîÒ£FÍSvøS+GŽl2aÂbŸj¶ÕX’ûÀ­[÷ËòåÛÝý„z}T>´&‹Ðë*,É}@züøÅê,ùE¨Ù<¯ZµC½@qáešè*."h2·ó£FÍWo%þ»*~üøE™[±-]#`IžÉDX½z—z!#ùkk~ôhk²d2ü–ä~Œ¶NH¸ø‚²·ÎÍ›÷©·xvxƒìu& `5y&€ê-ò‚©ráEgo8×9s&¨Wå¬É’—Œ¾·$ÏhD=åÍŸ?<ü›3gÎÚC¼2ëÒ’<³UåâUA[§$< ;÷âJ)­K–äéÃ-Õ\çÎW¦ÈBý"r®\ êÅæÐ ²&Kªp^R‚”ÕÌ%ìÌW¢îŽD ¬[·Gýç´åêOUÜ™(üÊ+ó%º·7‹@LµÍØ®û_ÚW_-UÓð_²s祿"çëc¶ÆØü‡1 ·mxT°6yT`·•ú‰€%¹ŸhÛº¢‚€%yT`·•ú‰€%¹ŸhÛº¢‚€%yT`·•ú‰€%¹ŸhÛº¢‚€%yT`·•ú‰€%¹ŸhÛº¢‚€%yT`·•ú‰€%¹ŸhÛº¢‚€%yT`·•ú‰€%¹ŸhÛº¢‚€%yT`·•ú‰€%¹ŸhÛº¢‚€%yT`·•ú‰€%¹ŸhÛº¢‚€%yT`·•ú‰€%¹ŸhÛº¢‚€%yT`·•ú‰€%¹ŸhÛº¢‚€%yT`·•ú‰€%¹ŸhÛº¢‚€%yT`·•ú‰€%¹ŸhÛº¢‚€%yT`·•ú‰€%¹ŸhÛº¢‚€%yT`·•ú‰€%¹ŸhÛº¢‚€%yT`·•ú‰€%¹ŸhÛº¢‚€%yT`·•ú‰€%¹ŸhÛº¢ƒ€ú؉dÔ¨QŽj‰ýdÙ³çqræ,b±Íl g‘ùÂÍȰÿ3¨[·nÑ™u¶V‹@:X¹r¥úw‘Ÿ‡Ì–äõêÕ ™ÁZ²"Ji‡m–µÉÃBc#âKòxIÛ°X’‡…ÆFÄ –äñ2’¶a»ñ ›#‹E|ûí·²zõjùûßÿž©-ëÕ«—9r$Q… –5jHíÚµ…gÄÍ’%KdĈòöÛoËòåËeøðán±Ù³g—bÅŠIõêÕ¥J•*nxJçÏŸ×Þ‡ï¾ûN:uê$¥K—N)yŠq}úôÑõÖ¯__Nž<)”/ß…ÿ*WîĉÉòƒÕÃ?,ýû÷—_|QNŸ>-ï½÷žtîÜY~ó›ß$KŸ‘1¯É·mÛ&+V¬ÈHLB–µhÑ"9|ø°”(QB Ù† äÕW_•¯¾ú*džK ¤.ÈìÛ·OæÏŸ/W_}µ®Â,^¼X“uذaU³iÓ&ùðÃ¥B… BþK‘¥K—Ê®]»t¾wïÞnq .”è:¨Ç| ,¨'OÈÑ£GuŸN:åæÍ¬‹KÖäÌHÓ©½{÷êY\²dIÝ¡-[¶è[ªT)IHH={öHÞ¼yåŠ+®pûóË/¿è°Ë.»L‡­]»VΜ9#”AZ#€© WîܹåСCR´hQ­;¦Ì“'ÖîW^y¥NO$eþúë¯Ø[·nÕ —)SFræÌ©ó<}áM™ôžD·Þz«<ñÄ:=_Ô÷ç?ÿY¦OŸ.7vÃÁ¾Ò‡üùó»á\Ð5kÖÈu×]—LƒQÿæÍ›¥H‘"‰ò˜›G}Ô£}ï¾û®|òÉ'R§NM~Ò;wN—Á/¸çÈ‘CÊiÔ¨Q¢6?„½ñÆÜ°Ú¿¿žT`0ÑÀýòË/×÷|1Ñä•x£‘YÝÚ¶më¦3´©GR @9xð  vÁ“ÉH9IÇÖM”Ž‹K&ùúõëåoû›&K,R±bEÉ•+—0«‘òåËK¿~ýäµ×^Ódÿý÷u8De {ê©§tž.]º¸ÀÑQ±xñâ‚æxå•W4©²e˦—Zˆ:qâD]Žù¢\& B¦³gÏJÆ õ’8wî\­u+Uª$«V­Òq”ýÎ;ïhmƒ¦fïÛ·¯îKÒ{S‡÷3èô”‡ ¹ "ƒÍD@† "#GŽÔé?®qaù†Hô‘þ3ÐHjæ8@د¿þZ¦L™"íÛ·ˆ N`C™ 3‹vôìÙS—ûøãË€ä†nŽ;ÊÏ?ÿ¬M ÈjÚ >Ï<󌨧߮Öùå—åöÛoòa‚ýðÃú¶k×®òÁ˜¨¿Ln¸òŸÿü'Y<}`¼3&CÕªUÓÇ(¿dÒaæ >zôhÝ –YÐÐPwÝu—,[¶ÌųgÏëŽ;î–]–6rи&LÐ~óÍ7­ 8¤ ¥LŸ`ìóÉ“'kr3æÌ™c¢µ–À¼øì³Ï´ýÏþSÇ¡9˜pFƒ$½'$Bkóùæ›oô¤E þáÐeŒ7N¦N*¯¿þº® ½ô3¨¸šŒ˜²¹Ç\aðq¢¡X n¾ùfA£"Ø|”á0Z·n­Ã™\lëÖ­«M­¤÷$ eWBZ…¥ø‘GѶ-f¹0c0µð¯³z±' <¬b×$}$í¥?´[1ý„ül:[¶l©?„aú`&áå0«Ë=e†j·Á›1€¨Í›7׿+)„'|üøñúÃÊÃ2íà×\ƒ!J…M¶ÙÄÓžÔÄä'Š g{1cÆè¬¬¾flR++µølÊVLtF‘ÙËBf A[1s½Âlæée¡B…\“ÂÄcW²Bc¡)!rR"fË7¾X6^,ÓF‹Ar´*büõhÏÌüäh7ê÷ú•©‹>°JM !)šv³Ÿ1æGZÛ†”Á¯×îUiØp¢PÀ 7üV#Ò˜ýV¨2C¡Ð~cj„K—Z8îSÚθ“2µ<&¾â&MBg¢G%˜D~ü¢EYn1M°“ @ñD.”°ðp#¡8œ$Ýœ†K—ÞpžLò %ß+Þ0æYÙ²e½Ñi¾N­ïÞIëÅ/ #f"šûp¿I'r¸t©…ã†ö:RKi¼¯$Ç`£Ã²~÷ÝwGÚÆdé0¼ž“[2ÜcbŒ š•à!s%Vaæ¡ ¦›[–f´àý÷ß/•+WލK˜#løÈ‹Ùb+¥fDTxÀ¥d®øî]‰Õ±`ÀSC–x6Mš4Ñž‡çŸ^oÎ"é—÷0dgÿ†Œ¤(›& øj®¤¡]Y*)›d“ w˜‰²xòú¯ýKàA¥ðDñ0ˉ°á9ôÆ$◕Ȱ$'ÌŒp~k4¡]iAqá…« >î3ãqÂOÎùÜ­Fx8ƒ{S†‡iL+‘!`INØÀhóP‚½Žùàõ½{}ß‘ãá+…÷É$ìx#”c_6ËJdX’G€.BÌ…P¯ÙñHs…ÇÛF8f$’C`šc ^O nJïá1ïJaʶ¿‘!`IN‚›ÁùÞúÁþÞ¬‡sVƒ—38÷aNHR\¸C`á3q€Œ—¤M>Î…sz°¾z!ÁÊ¥#`½+`ˆy€›7o8Ùg„£ÂO?ý´~ dÂø wÌ{˜‰¨kñ˜ 'oècþð¶.J$©ç>i˜)Ëþ&GÀ>ñLŽIŠ!`´à˜çP¼d‹äXJ‡™°Á™ NʬÃc)v.†#Szâi5y/ /j§&Þ¨7mJ‡™˜8‘Šò–i¯SFÀÚä)㓦X{,Mpù–Øjò „ ŸÚŸeÈÀêlQ"`5y„@Ùd±‹€%yìŽmy„X’G”M»„µÉyÖŠE Và½Úp’Œäø~›5k.½ ·dIx§6ÜûÁÉeÉØFYÒÀ(k“§<›3F°$‘²ÍL?–äéÇÎæŒ,Écd l3ÓÀÿ;Æ4™a jtIEND®B`‚mysql++-3.2.5/doc/html/refman/tcp__connection_8h_source.html000755 000765 000024 00000043046 13515046516 024631 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: tcp_connection.h Source File
MySQL++  3.2.5
tcp_connection.h
Go to the documentation of this file.
1 
4 /***********************************************************************
5  Copyright (c) 2007-2008 by Educational Technology Resources, Inc.
6  Others may also hold copyrights on code in this file. See the
7  CREDITS.txt file in the top directory of the distribution for details.
8 
9  This file is part of MySQL++.
10 
11  MySQL++ is free software; you can redistribute it and/or modify it
12  under the terms of the GNU Lesser General Public License as published
13  by the Free Software Foundation; either version 2.1 of the License, or
14  (at your option) any later version.
15 
16  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
17  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
19  License for more details.
20 
21  You should have received a copy of the GNU Lesser General Public
22  License along with MySQL++; if not, write to the Free Software
23  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
24  USA
25 ***********************************************************************/
26 
27 #if !defined(MYSQLPP_TCP_CONNECTION_H)
28 #define MYSQLPP_TCP_CONNECTION_H
29 
30 #include "connection.h"
31 
32 namespace mysqlpp {
33 
38 
39 class MYSQLPP_EXPORT TCPConnection : public Connection
40 {
41 public:
44  Connection()
45  {
46  }
47 
62  TCPConnection(const char* addr, const char* db = 0, const char* user = 0,
63  const char* password = 0) :
64  Connection()
65  {
66  connect(addr, db, user, password);
67  }
68 
73  TCPConnection(const TCPConnection& other) :
74  Connection(other)
75  {
76  }
77 
80 
89  bool connect(const char* addr = 0, const char* db = 0,
90  const char* user = 0, const char* password = 0);
91 
119  static bool parse_address(std::string& addr, unsigned int& port,
120  std::string& error);
121 
122 private:
126  TCPConnection(bool) { }
127  TCPConnection(const char*, const char*, const char*, const char*,
128  unsigned int) { }
129 
132  bool connect(const char*, const char*, const char*, const char*,
133  unsigned int) { return false; }
134 };
135 
136 
137 } // end namespace mysqlpp
138 
139 #endif // !defined(MYSQLPP_TCP_CONNECTION_H)
140 
Declares the Connection class.
Manages the connection to the database server.
Definition: connection.h:59
TCPConnection(const TCPConnection &other)
Establish a new connection using the same parameters as an existing connection.
Definition: tcp_connection.h:73
TCPConnection()
Create object without connecting it to the MySQL server.
Definition: tcp_connection.h:43
~TCPConnection()
Destroy object.
Definition: tcp_connection.h:79
TCPConnection(const char *addr, const char *db=0, const char *user=0, const char *password=0)
Create object and connect to database server over TCP/IP in one step.
Definition: tcp_connection.h:62
Specialization of Connection for TCP/IP.
Definition: tcp_connection.h:39
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1Query_1_1RowCountInsertPolicy.html000755 000765 000024 00000022122 13515046516 030425 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::Query::RowCountInsertPolicy< AccessController > Class Template Reference
MySQL++  3.2.5
mysqlpp::Query::RowCountInsertPolicy< AccessController > Class Template Reference

An insert policy object that triggers a new INSERT statement after a given number of rows have been inserted. More...

#include <query.h>

Public Types

typedef AccessController access_controller
 Alias for our access controller type.
 

Public Member Functions

 RowCountInsertPolicy (unsigned int rows)
 Constructor.
 
 ~RowCountInsertPolicy ()
 Destructor.
 
template<class RowT >
bool can_add (int, const RowT &)
 Can we add another object to the query? More...
 

Detailed Description

template<class AccessController = Transaction>
class mysqlpp::Query::RowCountInsertPolicy< AccessController >

An insert policy object that triggers a new INSERT statement after a given number of rows have been inserted.

This policy is very lightweight, but is only reliable when you can predict the size of each INSERT in advance. The others do more processing to reduce the risk of unpredictable row sizes.

Member Function Documentation

◆ can_add()

template<class AccessController = Transaction>
template<class RowT >
bool mysqlpp::Query::RowCountInsertPolicy< AccessController >::can_add ( int  ,
const RowT &   
)
inline

Can we add another object to the query?

Return values
trueif the object is allowed to be added to the INSERT statement

The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1DBDriver-members.html000755 000765 000024 00000052430 13515046516 025710 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::DBDriver Member List

This is the complete list of members for mysqlpp::DBDriver, including all inherited members.

affected_rows()mysqlpp::DBDriverinline
client_version() constmysqlpp::DBDriverinline
connect(const MYSQL &mysql)mysqlpp::DBDriver
connect(const char *host, const char *socket_name, unsigned int port, const char *db, const char *user, const char *password)mysqlpp::DBDrivervirtual
connect_prepare()mysqlpp::DBDriverprotected
connected() constmysqlpp::DBDriverinline
copy(const DBDriver &other)mysqlpp::DBDriver
create_db(const char *db) constmysqlpp::DBDriver
data_seek(MYSQL_RES *res, ulonglong offset) constmysqlpp::DBDriverinline
DBDriver()mysqlpp::DBDriver
DBDriver(const DBDriver &other)mysqlpp::DBDriver
disconnect()mysqlpp::DBDriver
drop_db(const std::string &db) constmysqlpp::DBDriver
enable_ssl(const char *key=0, const char *cert=0, const char *ca=0, const char *capath=0, const char *cipher=0)mysqlpp::DBDriver
errnum()mysqlpp::DBDriverinline
error()mysqlpp::DBDriverinline
escape_string(char *to, const char *from, size_t length)mysqlpp::DBDriverinline
escape_string(std::string *ps, const char *original, size_t length)mysqlpp::DBDriver
escape_string_no_conn(char *to, const char *from, size_t length)mysqlpp::DBDriverinlinestatic
escape_string_no_conn(std::string *ps, const char *original=0, size_t length=0)mysqlpp::DBDriverstatic
execute(const char *qstr, size_t length)mysqlpp::DBDriverinline
fetch_field(MYSQL_RES *res, size_t i=UINT_MAX) constmysqlpp::DBDriverinline
fetch_lengths(MYSQL_RES *res) constmysqlpp::DBDriverinline
fetch_row(MYSQL_RES *res) constmysqlpp::DBDriverinline
field_seek(MYSQL_RES *res, size_t field) constmysqlpp::DBDriverinline
free_result(MYSQL_RES *res) constmysqlpp::DBDriverinline
get_options() constmysqlpp::DBDriverinline
insert_id()mysqlpp::DBDriverinline
ipc_info()mysqlpp::DBDriverinline
kill(unsigned long tid)mysqlpp::DBDriverinline
more_results()mysqlpp::DBDriverinline
next_result()mysqlpp::DBDriverinline
nr_code enum namemysqlpp::DBDriver
nr_error enum valuemysqlpp::DBDriver
nr_last_result enum valuemysqlpp::DBDriver
nr_more_results enum valuemysqlpp::DBDriver
nr_not_supported enum valuemysqlpp::DBDriver
num_fields(MYSQL_RES *res) constmysqlpp::DBDriverinline
num_rows(MYSQL_RES *res) constmysqlpp::DBDriverinline
ping()mysqlpp::DBDriverinline
protocol_version()mysqlpp::DBDriverinline
query_info()mysqlpp::DBDriver
refresh(unsigned options)mysqlpp::DBDriverinline
result_empty()mysqlpp::DBDriverinline
select_db(const char *db)mysqlpp::DBDriverinline
server_status()mysqlpp::DBDriverinline
server_version()mysqlpp::DBDriverinline
set_option(Option *o)mysqlpp::DBDriver
set_option(mysql_option moption, const void *arg=0)mysqlpp::DBDriverinline
set_option(unsigned int option, bool arg)mysqlpp::DBDriver
set_option_default(Option *o)mysqlpp::DBDriverinline
set_option_impl(Option *o)mysqlpp::DBDriverprotected
shutdown()mysqlpp::DBDriver
store_result()mysqlpp::DBDriverinline
thread_aware()mysqlpp::DBDriverstatic
thread_end()mysqlpp::DBDriverinlinestatic
thread_id()mysqlpp::DBDriverinline
thread_start()mysqlpp::DBDriverinlinestatic
use_result()mysqlpp::DBDriverinline
~DBDriver()mysqlpp::DBDrivervirtual
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1SslOption.html000755 000765 000024 00000026725 13515046516 024561 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::SslOption Class Reference
MySQL++  3.2.5
mysqlpp::SslOption Class Reference

Specialized option for handling SSL parameters. More...

#include <options.h>

Inheritance diagram for mysqlpp::SslOption:
Collaboration diagram for mysqlpp::SslOption:

Public Member Functions

 SslOption (const char *key=0, const char *cert=0, const char *ca=0, const char *capath=0, const char *cipher=0)
 Create a set of SSL connection option parameters. More...
 
- Public Member Functions inherited from mysqlpp::Option
virtual ~Option ()
 Destroy object.
 

Additional Inherited Members

- Public Types inherited from mysqlpp::Option
enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 

Detailed Description

Specialized option for handling SSL parameters.

Constructor & Destructor Documentation

◆ SslOption()

mysqlpp::SslOption::SslOption ( const char *  key = 0,
const char *  cert = 0,
const char *  ca = 0,
const char *  capath = 0,
const char *  cipher = 0 
)
inline

Create a set of SSL connection option parameters.

Parameters
keythe pathname to the key file
certthe pathname to the certificate file
cathe pathname to the certificate authority file
capathdirectory that contains trusted SSL CA certificates in pem format.
cipherlist of allowable ciphers to use

This option replaces Connection::enable_ssl() from MySQL++ version 2. Now you can set this connection option just like any other.


The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1BadOption__coll__graph.png000644 000765 000024 00000025735 13515046516 027013 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÀÅý´sRGB®Îé+—IDATxí]œÅÒ/8rÎ9#I²A§HN¢(ˆDyø)èLˆ$HRÁ§E²ˆQ‘ 9H–œAr8è¯þu¯‡Ù½ÝcoÃÝÞl×ï·;3«º«»ªºg*™b †J䊷AÛP@(`À „ˆ¦€a€ˆî~ƒ¼a3"š)ܱ?}ú4ýùçŸîÁæ9Œ(/_>*Y²dHZ´víZºråJHÊNìBï¹ç*P €K3b1€Ž-[¶¬¾5×0¢ÀÁƒCÞš\¹rQΜ9C^OBV°{÷nÕye§À#öI0ðøñã!ouºtéÇ{÷îõH7£x$‹ Œ ˆ”ž6xz¤€ad1‘BÑÒÓO)DGGÓÙ³g=VŒÀ_ý•7nì5>\#ÜñêÔ©͘1#\››hí:wîݸqÃcý°Ê ïOž<é1>¡CÊóæÍ£ìÙ³ÓÍ›7=âsæÌúí·ß<Æ…s ;^W¯^õÚÑáŒG¨ÛsêôéÓ=VsëÖ-º|ù2ݾ}Ûc|B`ž[²d i3Ý?ÿüC§N<8`!zýúuÚ°aýý÷ß±pDœfR½víš•‰/^¼H+W®$»-³ Ê×ùîØ±cæÒ€ô ,p Óq‡¦+VHÙ: W´íA;—.]jµ×^ÿýïéÑGµ²£c±º-[¶Œ.]ºd…c5ÄŒ‡YN[·n% „¤ É/¿ü"¨úpñ¡C‡÷'NœŽ~Â=<ú°D‰Â`ÐY‘¿þú‹~ÿýwÉc§ ÊÚ¹s§¤Cø… +qÀÀ»w¼âw ‹ë;P5lØP¥L™R±ýX¥H‘B}úé§Š ¢’'OŽ£Ö***Jíß¿_ñ PY²d‘°dÉ’©Ê•+«ôéÓ[ÅgÍšUuïÞ]ž™™$"yž}úxCdÏž=s¾Ú±c‡Ê;·êÝ»·¤E: `0PuêÔ‘A®‰räHaÖï¿ÿ^ñL¢>ûì3‰Ã€øÈâ™IñÑõøã+çÏèÊ/Í`ª"EŠ(^ pÆ3îAž%…УF’xà‹ç}ûöI¾ü…ðЬ2dÈ ø í 7<&!&Ã)S¦È=¸¶k×N­_¿ÞôvhÔ¨‘â•B&J0”ž^|ñE¡ý¦M›d<4iÒDÊ à¥\fاžzJ-^¼X `(¼üI:=Àm_æ †.cà‚xøa¶(_¾¼$ÇàÂ삃p´€^½z©lٲɽþ`­ZµªCêòÖ­['ùî»ïJR0€¾GÒ¡W­Zå‚â4虌Å- è• ‡ X±b:J&(sÑ¢EVØÝn‰Àä¥J•R|lF}õÕWŠÅ_atL(wȘ1£b}Iâ4­ì €>ЀY¾k×®òX¨P!Õ¯_?%+*è XàD<Ê<Ëb‰l¡3çrû\g‘ yÐY,Y÷qÝh™¿C‡"kCÞfb3dcñ†™Å1*\¸°„C…¬i‡¶mÛÊA2” eáÇ E,ž‹KVò¢E‹Z÷úhˆÖk¬Û êT©RÅ Í›7¯Ük2¯‘ä6©ê,‹¦„ÃyÏ>û¬\ëׯ/2½ÆÑ~Åa´´iÓÚƒ\îí´A:M—£GZ}Š vúºàÇCÀ eŽgbÚ¶m›(Ÿ,ÃÓàÁƒ Ê¥räÈ!t×À â™¶oß.å¢ì9sæÐÀ%;êäÙHÌ‘?ýô“„³˜D<Û[Š4”­ÿû¿ÿæA§¡³P–þ}øá‡ôä“OZM‚2­Š@3—·_óäÉ#[¶l±‚yå{äjg0+Q½RËâ-\¸ ä²Ž$´0a‚_±øä1ú‘WP+Êp°Àsñ(G§Ÿxâ ÑÜÑP̸¼ôfe ZŒ•ñ¨¼Œ‹ÅÈÝvÎú±Ø$y0p{ôèA° 4kÖLf÷þýûŽkÏŸ?ŸXÙ˯‹Ô¹sg™½Y~'V–¨K—.Ä 2=öØcreEX¬S ÁˆQjÑ¢…ÕXzÐ.¤GGjÀÊ{5˜{ìØ±ÄK1U¨PÁ/Ô¯3˜e!Ú QµjÕ¨xñâ:™c®è_ì`â°¢cUÀJ À=V¯@«:ú ?Ðõ?ÿùO Źæµ«ÿÝÄW †‚¥“KU°z@û1b„”ƃղð@A[ ,ñl« jˆË 4~üx±ä üxö…ô£>’çüQŠå€—OÅL!Ïï¼óŽ(fÈù²*²([]Ú>dȉÃtX© \# ¬7°$Üñ‚Œª­@ùyµ“<À‘—}¥–% °b¡lÝv×5œt´ôí`eÃ'+QþצMÁÊ,”àûî»Ážt€#GŽèh±,òD&Ï 7ÊE_ o¡Hƒnº?¬LqÜ„Ì ¤ë„e˜í•å_+ ÅÚ~| .>VÔË6©¹×Éâ“(¶l£w‰@aÆ nîàŽ—=F(ÍP¶ÝéaOçÏ}¸1p@ÿ«;@Ñ×V@÷8_Ÿ×¬Y£X¬+#ï÷(£…Ð7¾‚7ðú>sX¼ téÒÓCÂOΚCòØÂC÷ß¼³²©.–2¬ a áç 2gÎLø¹ƒ;^öx(·<ÛÙƒ}Ý~¶ÚxÄbo  ›­é½÷Þ#(ʼêP5<öK|ë Ä·âpO£c $> óÃ&À±ô t²`€a/TÄQáA¬¶¼ã’Æl I«L¡† Dà DhSMxR ¢àã—ò©ÃëáÙ3iÕ…ƒ×iï‚;{+ᆖW€Oa†[[ƒÞž·Ó¤IK©oßš”#‡÷-ú W`ØÅ%àãåø Ww¥ ã_¥£<í®Ñ‘ežß ´Ž@ó'ƒÕ^Ž àÜ}$À¢E;¨OŸÙ”)SZ?¾ éíÀ MqN¦ÝPvƒqÎþ¯¹—hÛÏó1Q£oòQš¬Q¡hn¼ÊÍ@;;Äb{¤Óï÷í;ÍG'†È¸)’ÓGµ§æÍ+9íâ§øýžCÓÎY§¥ž´ÙSPûÅBZg …G´P¬XNJ“&•œc‰Ž¾MÏ=÷%}ðÁ’@èÑy¯_¼E?<·›v͉y/®ÜåC³R‹ÐÍ bÙ²1b–‡ ›Ï‡­¾æW,“þ«ŠÁ$¾”sáÀušýôN:µõ ©Û1Ru²äÉ(Wù˜#ë¾”‘i"ž0ŸZ¼c €Ì:gÎjÕjŸæ¼š}’äê<²ê"Íê°ƒ®œºA·£ï¨”¸ÏY6]Xãñ P¾|ëÅ ÝS·nÝæóç‡øåš‘|œ7F–ÕqæêJ?¿9M {ì¥[ÿܦ۷î ~*GÚay-W.?¿0»ã¢£oñ;øÛ5£hÕª¿Â²í‰Ù(ÅdømÐ!Z9ò0‹<|6ÙÃ×M2æME©2$¾õ'.:Eü P¢Dn §‰€ë¢EÛø]Óâü¢õÓ‚W¯Þ Zµ†Pƒeiذ;̲ç‹Ôû+'nÒwOüI•»ä¥J]\_|?³ý*‹H)(cþ˜ïB…3 Ü¥wfÎ\G={~à ÒË:7t—,½¤Ï~:»ç=1½LœÖ p'†ÑîÒC­ZUåOœ¢7ßœy—”‘}tõ%Úÿó9z OÁ$=øÑc†|·ƒ=Î-ð!¹>¤vv(¾+‡¦¢u³Pš“<²†|è  ÒSOU§Aƒ¾g¯5}çÒ‡êÂ>I‰fÙ¨f¯‚aßN_hÀ*qš×^k*/ÐGú 3Øý­Ô%X}|$]X'3 àc÷dÏžzõjÄ_{^J‡ñ!0Ž €±Å£q(®nÝá²g0iR—xä4IÕfˆGÏàPÜÀ³Cˆ­´|ùîxä4IÕfð£gºt™ÄŽ;N±kÐ>Ö ?Š1Y€fð£ xTô€I“~ó#·ÉN0 àGo*”žþaþ\÷"v }Ù’N–Ÿûí§M“NÆ«ÁðåöÐCYÎÅã“å‚Cñ„Ã~RºGzüu¶Ôì´Á¹o‰aÇwßOç(¾/¶³GÂçåÙ‹N¼©;oÞ<ñËÀž`âן †ü¡çI›6hAß~ûmÙrØÏRÂ7›§_8„£ pXhÆÌíîFNòØ9®”ìMž6lØÀ´ÛbyñÃèüø6)Ò„|õ±dÒy¦@Ë–¨æÍÇxŽL¡›&P“jmT—ß°°€ãp85ÔŽ°Ù+¦b—W–S¼æÍ›+8L×ðàˆœÝÂâ Å®’%àOŒ½ïXŽõØ•‚ï38¾†cA¤‡C¼ýû÷KúPþ™ À)fРV<“b¹ë,)|²ã¨ó†‰Çå¨3ÎùkhÒ¤ A¼ÁÌ(oܸQ\Á=-dwˆ=H£þÁàñ˜Ýµ[Ü×^{™×â÷/NH9ìi^\Ë>üðÃVv4HÚ·²./WóBL€TŧÛµ«Áç„~àw†+Pºtáþn(¯u„ÒçLE:Þñj'õï?'H%&^1y*{ÿ¹Aƒ¢¬[·N²<+©ôûï¿ÇboÀºñ W˜=çÎKìL[’³ƒr¹îܹSÊõVFÐÂC©aGZÙ+VìVyó¾Ä֌؞åD vŠ­X¶·PâU@¬<< %L[Ž9b¥©[·®êÒ¥‹<÷éÓGñ@‹OáÂ…+ÅŠuÕ¯_?ŦUÅΰŤ­FV!!¸1g‚6•Äôì³_ÐÎÇYDèËŠ¡Y`½‘{ ø•,YR’`OA»~‚›.(ÔP¬õ¾€§r˜yø‹1+†§x_ øB¥x¤9zôÕ©3Tt‚nÝŽGN“ÔK–,a½êS÷`ë t  Xä Þ Î}òÉ2–‹_§œ9“þ{³Á£Lø•dÖèôÉ /Ô¥,YÒòæÎ!(=¸E^<Ù~’ w’Ð×”)SRË–-ý.#lW€ï¾ûŽÚ´iã7bI1c²dHUÂ|6)ÈC›3eÊD.\ðã[PØ®ºù¡<* ë0פI &P¯^½j¼Q‚"ŸÉœÔ)` ©÷ i@0 ùLæ¤NÃI½Mû¢€a€€Èg2'u „½(©xòäÉ´fÍúè£BÚä'Ÿ|2–×u]á¸qãØOY1ý˜`×sçÎQúôéÅ[ËĉùË›éƒ>H°ú©È¬PÏ–w×®]â-Ñ’ÛŸ~ú‰Îœ9#þyá£×þæPbûôâ ¼éR5ÜÁÉuRǬgÏž?´Ù³g§õë×üG¡c®^½*ÍáJ§hÑ¢Ò/‡¢ 2P¶lÙ¬~ÂÎ3²d‰ùT8¼¡£3+T¨ ³›NßU[¶l?·ðißV¨Ëð¢Žý‹téÒ‰—tøÎÕ¾°à 3&¼$Â"œDõöu…|ðªž:ujq3êþŒz{ì1zýõ×íUÊ=Ú{àÀÁAãò¯\¹BðÙ ·¥hÛÚµkåùÞ{ïu)qÛ¶m£üùó»à> %Ú¯ï M§N\60á e‚¾åË—ÇÙ¨m=~ü8*Tˆöïß/ù+V¬(}àÒ¨P?pãæM›&ž}mÜ+¯¼"ž ‹)"ù¸³U÷îÝ-ƒLG5|øp)îP=ôU4;bSQQQŠEÅË·â­˜ŸÔT<ê;b¼>²sh•5kVñnˆôU«VU¼ôK9ìûVU®\YîÛµk§Ê”)£˜ÁÄ"êÖçÌ™#í«S§Ž‡´‡–¼ìKâ—-[æñ9sæÌjðàÁçþÇ]1£IÝÌDŠ™_•(QBÝÿý*::Z±o_Å„Ô ÜŠ/®´'Fá3¬âUDêgw¨Š™Gªˆ íÑô6l˜B?€.ž”„ΈÓtcïñ§=Iò1¡=hÄ…Ú½{·Äûò÷ÙgŸ)Þ ö%©×4àÞ°D;v¬Â€FâyÀ€Š·ÊUëÖ­e0ÙñãÇË >yò¤àþÉ'ŸHdzh¡žxâ U»vmÅ^ÍÕÑ£GU•*UTÏž=ÏÜŠWwŸT{÷î†óƨ{êÔ©RΤI“¤-ìWihÛ¶­ Ð={ö“¶oß^Ú‚g¸åYÑã3€gR…Aiÿi¦àóS2 ÀŒhÊCfÆfOïR/Êç™^±ÃjÁnK'h†çJõîÝ[Ú€z¼áƒpq:eÊIkg”Ù·oŸÄi:üòË/J3ÚÃ+¢Âä‚Áþøcy®W¯žjÞ¼¹Ü÷íÛW¥I“F 2DmÚ´I>?+¸2fΜ)éð׿¯+@¹rå¬t¸aåT¤f½ª ub¥ñÀ,2©gžyÆå÷Þ{ïYÙY<ÇÌ æè‡F;·V‹/–•+‹òÃÌ F€¼áƒxo _ÂzåC:VE0§n;ÜŽ‰àøîÚµ«õ|·›`0€ctî@‘kqÀÇ,t€Œc¼4âÅ&¨ÄAOhܸ1͘1ƒxÆgŸ¾Kùë S%Ž;Gü׎=ZälîDúúë¯-µ5jÔtøc†³îÝoÜ­1Ðì>oµ>‚|h't _¡U«VuŸ;å"òôÓO?-ÁÕZÁ=‹‚¸ˆ§v\;t耋P°5Ü N_!ûó *úÃ5Ož<¢Äë0à®:¯¼ú1A®Ž²aû ,rðGj—Ï"2PZ´h!Yaea9•?]xR”i (œº£ ¸ià¥]߯º;vÌ ÓŠ¸aìñ+V¬ˆ“™¬‚|¸“?ÿüób ԇŠt¶oßn•“-¯‚2q@ Gë"ò㕊h¥µ·×>VÂÿÝðêÃ.bsŠÁ@ÇA‡µÌN¤KLHÜÚsyĺóÖ[olë,öHk`ÇîÑ£‡X-`%ÁjkN¥J•¤C1(`Y­›Å ¯À…UÞÐÁP°þ4mÚÔJÏâ“”ó!B7kÖLâ0@P?+§Ÿˆ4óçÏõÃ*‚Íb }ñŲ ÀÑô‚ ¨ZµjbÝaQI:êd_¬2¨›•dölÙ_V"”¶"Ÿ†¸ðù“p´Ê={6o¦ÄaU€Þaw“³+>¾J0ÏtªV­ZVsGŒ¡x¦±ž¡€ÁrcȧÜjåÊ•VðòåËE¹…•Š!›AKÀÂ… E†EÈ×,¹èÍ™aa¼‹´°€håNëÈ‹8ÈÏÐ?Ø„(yïfbó¦äC^÷z±ätîÜYÊ‚"š° T”[àåùX4t‘Ïa€Î¤Ë¬_¿¾ºté’”>HÀïmH>àˆ~¨^½ºäƒ1” z¡|ž`$Nël•gü5lØÐ¥MV„—›`莱y¡QœÁ/¿ü²¥èÙÞ¼ySAAÔÖ {oòˆ©Ê5˜J[ìi0` D¢Þ3Pló¶¢5 &Hm‰²„øæPÞ«{U°a`ºã>º Þƒ~ÖWÃÄÊefÙ`B0ÀQJ0Ï4>Ä‹Ÿþ™ývM¤1cÆÄÊZ+ˆî‘•°9æ  lþxwÅÒ[º`†ó*(›xžÊÄÛU¼gà)JÂâÂGë—ñjè6ÏÉØ•ä%Ÿ^{í5vcÚÑï΀bÌË}¬ü°´@QôÐ)`IŠÂ„ ‹ Ÿ„lG(ê ûw‚yÉ Þ¦LP@¿È;Ákr@ÿ‚@ÃA bBqíš«™1¡êur=a¯èc¶Nî_q[´è0+©¹ù´g*_³8:[–Æ/쀱Œ¤S È•«M›¶¯w JãËU ¶Jp H91ïÖ­G¨aÑT¦L>6á¾êD'£$ Ùã_éìÙø…–d´cÇ1>&áûÁ¹ø×Y9 $‘þž9sñ¦*Ÿr¢9s6$‘V‡3 „ÑêÕñ!µKÒÒèè[üþíÚ$Ðê¤ÑDÃI Ÿ þ¤LeµôС¿ù˜ñaëÙÜøOÃþÓ.ArFGß‘çæÍ;/Š€À§€a€ÀiÒ–-ÛI—.¹ºQ3Ìœ¹ÞzÃ-¤ pxᆼƒgÍZï"þèæž9s‰uïo¤étæ7 ÄMŸD½ví¦8γ‹?ºA1bÙÓôð÷jÀ_Ê%@¾Å‹·ñ«„žæ)æÎÝȯ2ÞN€–8· ÃaÜ·3f¬“Í/oM„n°téoÑ&Ü ðH‰‘äÂ…kôë¯;ù3!ÞgxˆAÐ øOÃþÓ.¤9øaó]ňA nåÑšcÒþvFØŸõ±¤žïÒ¥kÔ¢Ee4`-X0¿c›Ë%gƒÊ•Ëïf|£€9 êÂ"UÍšƒ©]»âL;,ä€FÈhPðŸ†ü§Éé p@'ü§€aÿigr:€†Љÿ)`ÀÚ™œ €at¢AÁ ðŸv&§(`ÀhPðŸ†ü§Éé p@'ü§€aÿigr:€†Љÿ)`ÀÚ™œ €at¢AÁ ðŸv&§(`ÀhPðŸ†ü§Éé p@'ü§€aÿigr:€†Љÿ)`ÀÚ™œ €at¢AÁ ðŸv&§(`ÀhPðŸ†ü§Éé p@'ü§€aÿigr:€†Љÿ)`ÀÚ™œ €at¢AÁ ðŸv&§(`ÀhPðŸ†ü§Éé „‹¤/¾ø‚~üñG6ø(lÞœ“råºFyó^~á(qÔ¨QT @xav ðÒK/ÑçŸN•+»:ˆ‹V&qDQàêÕ«´víZÚ¶m•-[6^¸‡¥—ÈÂ… ӀⅈI¹8pà=óÌ3~Àè~‘Ídr  8¥' ~QÀ0€_d3™œBÃNéIƒ‡_K%Ø/L)Óˆ#¨J•*T·nݵ`åÊ•4gΗòsåÊE=ôU­ZÕ%Üט›S¥JEO?ý´d%eÒ¤IbI9räåË—J–,I]ºt¡lÙ²ùTì?ÿüC·oߦtéÒÑáÇéÃ?¤~ýúùœß§J‚œÈ¬tóæÍtüøñK‰;û‰'ÄÌWªT)¯`Á‚ôçŸÒ«¯¾J6lˆ;³—؃Ê EôÙ³g©Gôý÷ßS¹rå¨[·nT­Z5Z¶l=÷Üs´ÿ~/¥¸c22dˆ‚®]»FJ)×Daö”äW€‹/ʬ“)S&Ú½{7åΛ²fÍJ˜öìÙC9räࣼtãÆ éhÌf˜ù: iR¤H!ϰ%#‘"E(Y²dVw>}šðìxùòe‰Ëœ9³›sçÎQúôé¥ã÷íÛGÅŠ#ææÍ›téÒ%™ :$e”(Q‚R¦L)e`  =xNž<9ݺuK~º­Hôïÿ[ÒâLÑ¡Cúý÷ßé¾ûî³ÂÑF0$Ú™&M+7.\ “'ORÑ¢E]±À”8~üxɧ#›4iBÏ>û¬„cp_¹rE4ÊݱceÉ’E˜Q— š_¿~Μ9#Rï¼óŽ…?Ò mýõeÏžî¹ç‹¾GÿÐ «OΜ9u3BzMò 0eÊ™©0hй´-Z´ _ý•Ο?/ÄÃ,öÈ#Èr™®eË–¾páB;v,MŸ>~ùåš8q¢ >ˆ5jÔÙ åA4˜0ï| “ õ!/òõéÓG6/!ªú÷ïO/¾ø"½ð ôÍ7ßPžÌ`ªöíÛË ·ËÐ`$”‡Ù³'ÚÀ3V*ä`Õ€ˆcœsÁ¯xñâT¦LaD0¸}òÉ'"®ZµŠ°HƒÁÕlõêÕÒì–B¼­Àˆ¤`fö +,+VS<£ý/¡Å+V¬¾hР$®µk×vÑ_ nÙ ýë_ÿ‰«Ì`Å%y„°[)¢¢¢„°Ì»•-Я|ðA‘ÿ!ªL˜0AD̈åË—§áÇөS§D^Õ²:ÊÃy  `HNƒàxF¼`:>®+äq;Œ7Žf̘!«˜ÇG°beк҃ɠØq€ À``Föëׯ—`ò¹€ƒ?{œ¾Ç*ƒú4!}fÇ]Ó q˜  %8b°+«q ³Ü< ³:,˜…Ò¦M+Ê1–x x,½ï¾û.íÚµKD ̘ÿý·K±Zp üß@ ¡v†±—ÑÀ§óùzÅ Ù  ñâF›6m¬b ïÃêÙZðˆ?ÀåØ -J¶žPìøiCƒ©íùõ=;VA»EH,t_ûP§ÖÕ b@T€Â‰ŽÕK2”Õ¡C‡Š|ŒN‚ua`ˆP—!»b@Àïm¶D;ŽÙözˆ, PÊDjÖ¬)Q­¡d겡”öÙg:›\Ñnü ŸÀ*óí·ßŠÌƒ³>Ú ]z Š*ärXp "aO:ÕeÖ†¾€Yr(ÀÌñ¡j¥Toni}Öü°TÛgmÔoŸ½PVçÎe@BW€EÄÞ¼ysiãý÷ßob„è%bÄ DÈÎ|:?”_ h˜¹{÷îkÏ Aƒ²4"^ j(Ë`¬Ó¦M#(™XÕ +ér+ “ÀË/¿¬«Q b–—ŒŠ•Ú§ 0¬Q`&  9è åÌf}øá‡-%_·C§Ç³{˜Ž ö5,ßÀì"‡@| ަM›RÇŽ]ª€L Q®—|qøapB_À²înÅ€ÄÎ'6—ìÊ23Ì  ˜=0ƒ ›¡ü¢^0.V,ÌÆP,¿Ð.ì€I<Ú½ʶ{û`¶„Ò û>è]îW <0ô0wú!ôÃ=ɽlÄû À ¾cÞð—wË‘â:³°;@„€Þ ήXzJ£Ã03âç ÜIoéâŽg· á§Œ ™A‡¹_±²ØW8÷x<£(Õž««7ˆ ½•ìpÏÓ@°k “òÀ؉„’È S §³)D O€Î‡é2)V¬*N‚ˆœÔy— "EœÈ C; Ø©aî#ކ"®Ë Âv „¥ Û€ìí4÷†^)€óNþBØ1Žè6lØÐ_|L¾¥,s¾š©í$ ;+½qæÞP Ô0:@¨)lÊk ëî1 5 „šÂ¦ü°¦€a€°îÓ¸PSàÿGZ¤¡ž´ûIEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1LocalFilesOption__inherit__graph.png000644 000765 000024 00000021004 13515046516 031034 0ustar00tangentstaff000000 000000 ‰PNG  IHDR¼·¨Ž4hsRGB®Îé!¾IDATxí]œUÅõ>ÀÒ{齄"‚REŠQš…ˆ"ø Á`‚1@„$`ÔÐéHi‚t¤HïÒaÙ…ùÏwÈ\î¾}oß]vïãîÝs~¿··L;óÍ7gΜ{ßÛ4J©)$"¤Òh«TÒWé¦ @iA 5! „OM£-} /H]Dy¥»G¥5kÖxEÑ#(R¤Õ«W/kLBUØ´zA¦OŸŽÍ³||ˆA›6m¼@1ÖÁ3ÞÌÙØØXJ—.¹”c Gà¹çž£+W®x¦²iõÌPˆ"‘@@ ”¥ Ï „÷ÌPˆ"‘@@ ”¥ Ï „÷ÌPˆ"‘@@—(Ož<™zõêu—¥WlÓ¦MÔ¡C*[¶,(P€š4iBï¾û.ݺuËQEˆ|;wÎÊÛ¹sgš6mšušN„ðw9Ú»wïŽÈƒ²ùóçSÆ iÆ ÔµkW:t(*Tˆú÷ïO-[¶¤˜˜˜°=˜3gåÍ›×Ê{õêUºqãFØr~Ìà¹8¼S£££éøñãT¬X1:tè]¾|™ªV­ÊVoÇŽ„ôjÕªQúôé9=[¶l”'O«ú#GŽîåÊ•‹ïÁŠš2Y³fµò¡Þ­[·R… (sæÌtúôi*Q¢„•Ž“‹/’~ªAY²d¡~øòçÏOåË—ç< Ö¯¿þJ ¤]»vÑùóçé  2p:Ê]¿~2fÌHiÓ¦åzÌ5ÈÜ­[7ªT©-[¶ŒõE¡=zPƒ 襗^¢I“&qžS§NQΜ9苾ƒä¨ iƒR™2eèã?¦L™2ñ=üA7nÜÈm׬Y“²gÏÎiX CîܹiË–-\¦råÊ)û9‰W™'­zùu¤Ò÷ßÏOe7nl=}øá‡U³fͬëºuë*M8¥k«FYõj(ýpK;VéTšÀJ“_¥I“F-ZTíܹ“ó®X±BéÁVšˆœ¿V­ZJON8p ªQ£Ÿë‡+J“Ré ¥4‘¹}m9mÖ¬Y|­­´•†¼‡æô%K–púòåËã]k·ƒÓ/^Ìiö?ÚQzª¦M›òm´[¿~}ÖSOr¥'Ÿ¦K—.eý5ƒ9íÀJ õÎ;ïp¹•+W*í&q¿ô$Pz²r$öíÛ—ûU®\9.‹:š7o®Ð¶S騱£òÒ“ÖïÒäÈ‘ƒðÎÈ‘#iÕªUl¥a½¿øâ Z»v-ÁÚwêÔ‰ôÀZ–næÌ™lMŸ}öYzë­·x•¸pá¡,1, ,Û‹/¾HšÔ¤IBpaNž<É–/Ø=Ièÿø]»v&NœÈŸÙ³g[Yñ> ¬ûÞ½{éìÙ³ôúë¯sV ¸'fÕ°_ïÙ³‡óÔ®]۪ǜèÉI°Æû÷ï7·XÏ}ûöq;=öýá |Ðòס[É’%­üX}^xáÒ†W!`€w^žþyÆѯž={r¿L‹-╪$¥8©nç»[ ¯]VM“ƒ­¡ÞLòµ<¾ÖäVgΜQ°z}ô§=ú裪U«V|þÚk¯)X¶áÇ«ü‘W¬ ëÖ­ãòÐËÈ›o¾ÒÂW©RÅdãcéÒ¥ÙB oV $¢M¬$á«HTT”ºyófЬ¿ýío•ÞÈr,¼öï­|ÚEaýõ¤W3fÌàsô b,¼Y%õ>Á*gV` ~9qâ׳páBs+ìQ,|2[là š|ÔË/a!zDØ—mÑ¢[:M~ö‡aõ!šT¼`…¸ÿþûÙÇÕD írpz:uøˆ?Æ [7l'š¶+b?ÞøÎH(Uª”•ŽH öáþ6",Xaû ¬ZÈcÄÞö»&Ÿ9bïÁJa¤páÂ| œ ÐÕˆñûõ4·RÜ1Å»4Øè9\ûÉ4~üxÞüµnÝš‹iÿ˜ Äî 6nÚòÒ€¬ÆÆØˆÝ}0÷Ìñرcæ”Ù¼ysœ bOÿî»ïâ¤YNÁD3fL@ Ñ·ß~ËnÆSO=e¥ÙÛX½z5ßOh’cM®`1®1&=¥±%¥÷Rë¯]Bôå7Þ víÚYQŠ &PŸ>}ØG‘ D[`ía%áãÃ÷F”â“O> ‰ˆ‚}üsL øÇO<ñ„•_»C\ÏÔ©SI» RD"öh¾wà5¬w÷îÝiôèÑôꫯr´+Ïÿû_^•ªW¯N]ºtárø£7á¿Û¶m\¦xñâ­1!D‰°âe‡E6l—A?±ßo_9L~_Ã:aÊp·>¼Þh²†Úú² ¿¢C…| Ú"'zДþ¢‰¹¥¥€O‹ ü`ÎSð{! ,àÈ Ê R£Ý›8>¼/r>Di4A¬¼ˆìŒ1‚ÓŒ²¨>9ö:ÈéÆg¥AD­ôfÑŠð˜:ô¤å>r%útGÔÑ'äA$ÈôS»O‰Á}=±”žV”íçË—Ë Ølß¾«íׯG~LzBp¾yóæ™[a^óá1ã=!‰%üÝ(ýÊ+¯(«WTGd”v&M èȇ.1tôÅ"¼=ß¶m[…z´{ ´m%Â# dÓ‘+-1'Øp"„º~ýz¥]¦xEAx½Â(Ò¾A6u<ž7ïæÚ~D±ÉÕ«MÈ ²=bνFøûàI[+Çw>/Ü—Q£FÅ+?9ÔWаQÃC'‚zðð+”nlCå vМè‡Oø láLÐG< K ’*øú¸qã8ö¸óÝ "=ôP¼âxªŠj0Áž‘·7hm‰$Œ€g~ˆIÇŠéé§Ÿæ0œ|Å/áAKI©æ+~Úµó„Ú©&Jã ´E‰{Ž€þ Á±cçïQË©»YÏùðxOÛéä”:tGŽ\¡õëOÑ“OÞyúšRûNo<ÍõÒÞÂs„oß¾}8 S|zŽ õ«Æ•諯þçAPŠïXˆè·%C¤Dþ¶g6­‘ïú½k±zõ7õ»4—hÊ”ÿÓïµß~÷çÞi“ºZ>Âã½nÝ~&{Ú´ihæÌÛï­DX…TÝœ>ÂÃ?cÆFý-¬tú›YŠfÏެ߻O¹oFºdiNŸ,0:«$6öÍšµÉ"ù•+7héÒÎ K®dA@Ÿ,0:«dÅŠ]téÒu+sTT:š>}ƒu-'î# „wc«…36±;cnÄÆÞÔ_™Û®_KH¿ `pˆäQ!´¯]‹¡yó¶ZîŒi¤_°à's)G—» °©~ñâíúK!±æÒ:⥲iÓÄ­±qùDï2À¦úiÓÖëßs¹ý=[sÇ›7oéï¦îÑ¿ æßP·ëç·s!|FôÂ…kúû´»ô› Áß7ÿæ›-ÐDšÂG€sçnIðý "š:u}4‘&„ðàȬT|wÆ4‡P7$yƒÒ âÞQï¶\óÉ“õïMÐßxRú÷$ÓñOZñÉ!Š?8‡|ýõf>Ê÷ðÜÛ’îuõÞÔ|ùr4 ÷mAlR·l9D½{?G©bÅä+zqqáBï¨ö*˔ɯãåû-ýJ1ú÷Ïèßœ‰{?N&¹pqi\U*õ*Bx¯ŽŒèå BxW`•J½Š€Þ«##z¹‚€ÞX¥R¯" „÷êȈ^® „wV©Ô«á½:2¢—+á]U*õ*Bx¯ŽŒèå BxW`•J½Š€Þ«##z¹‚€ÞX¥R¯" „÷êȈ^® „wV©Ô«á½:2¢—+á]U*õ*Bx¯ŽŒèå BxW`•J½Š€Þ«##z¹‚€ÞX¥R¯" „÷êȈ^® „wV©Ô«á½:2¢—+á]U*õ*Bx¯ŽŒèå BxW`•J½Š€Þ«##z¹‚€ÞX¥R¯" „÷êȈ^® „wV©Ô«á½:2¢—+á]U*õ,ú?ÈyR¾ýö[¥Aóå'**—ʘ±¨/û†1ëܹ³'9¥<ÿ/o&L˜@Ù³g÷¬ÁÅâ"ðöÛoǽá±+ϾM›6”7¯ü³/ñ&¤:ÿú׿B¦y!A|x/Œ‚è1„ðƒZòBx/Œ‚è1„ðƒZò¾!üùóç©E‹q>íÛ·§Q£FÑÍ›7“ŒõäÉ“©W¯^I®ÇI›6m¢:PÙ²e©@Ô¤Iz÷ÝwéÖ­[NŠSll,;wÎʫÄ4mÚ4ë:5Ÿø†ðׯ_§ PÆŒ©fÍšT­Z5ºrå ½òÊ+Ô§OŸ$ñîÝ»iÍš5I®'\óçϧ† Ò† ¨k×®4tèP*T¨õïߟZ¶lI111᪠9sæpdËä½zõ*ݸq#l¹T‘Á«Õ§3gÎ8Rñøñãü gêÔ©qò7hÐ@iÂX÷´µW[¶lQsçÎU‡²î›“K—.©åË—«eË–©‹/šÛjàÀªFÖ5NP~ÕªUêÂ… qîãâòåË\ÏÑ£Gã¤>|Xi*mÕŠ+Ô‘#G¬t=iUáÂ…U­Zµô°Ëرc¹Ÿ}öß>yò¤B~à³téR>"áÚµkêã?æ¼{öìQè/ò@#¡úxöìYuâÄ ­~øáµuëV¥W SÌÑññÇ÷ôƒ'rÔ‹{)9¯-œªX±¢zôÑG¹ Y£FTÚ´iUîܹù8hÐ «w+W®TÚ…PY³fU™2eRùóçg2!ƒð Ä /¼À¤JŸ>½J—.1b„UÏ€T† TŽ98Oݺu™xÈP¬X1Õ¬Y3ý¤5#—ÓVU}úé§\V»œñâÅV]æD»3ªB… ªiÓ¦| õׯ_Ÿë€Y²dQÓ§Og}Ñ?Ô ½8Àm¾óÎ;\.¡>öíÛWUªTI•+WÎÒ­yóæ m;!¼S¤òÝ-ák×®­ž~úiÕªU+U¦L&5òòË/3¡÷ïßÏ×'NdbÀB‚Ä%K–TúA—ÒË?_ã¼H‘"lIí„ÿý÷UTT”š={6[ÀñãÇs=°Š°ØiÒ¤QãÆc’kWˆó‚ÌI»,êØ±cJ»/J»`œ6|øp®Ç¾²pÂÿþtìØQ•*UН@øûî»O‚ð˜(|ðc0xð`¾6xqeaþxð¾ñáÿ ·|ùòT¹reªS§i+KþóŸ9Yý`M¾îÒ¥ åÉ“‡ôä¢Í›7“&õèу´Å$M(êÝ»7i—„víÚeªçã—_~I<ðéÉ@Ú="íêP¶lÙx¡ÉL;vì =ð¤'Á'×—ë1•À7Ç>C»/ôÌ3ÏÐÏ?ÿÌIØsè‰Dz…1YãµËAÚj[÷ k‰%H[wÒ’¾mÛ6+=ðÄIK—.Íû`гgO®bïÞ½U¥ØkÏ¿ZXd;uêÄ$2åÖ®]KõêÕ#ík3é@T»`‚h—´?ηAD# $évùå—_HûĄ׌äÊ•‹´e‡‹HúÓŸháÂ…T´hQªZµ*“ØäÑ#™3gæ¨ ®õŠÄçÚ ás“GmyaCkÄL\\c¢AN:ÅÇ`œôÑ®›v븚äˆrÓç^Üó…"€z#feEEôVćØÓ7nÜÈ÷´«ÃGóG»¤ýpÒPë3fÌj×®}þùç´hÑ"&'ÒµÛÃÁ”Å#˜€Ì°ð¨+P° é )i×ÅJÒ.‘u¾zõj>G_B‰“>†Ò-T)í¾ï,üO?ýÄn bÖÚ§&½!d·.Âz3gÎ$½#íãÓÈ‘#y¼@T}ذaT°`A¶Î:ÚA>ø`Z…üvfrÏ’»iE8MMœ"1ú¡ ‡!Ñmå”ȇH"%úõc«K–,Qùòå³Òõƒµ}ûvNǦU»C|ް"6‰¦=Dt°á„ ä‡M(Ò%Ñ“LiRr{ëׯWš”¼)äÌúÚׯ?›KÞc³ˆM©©d=)ã„I‘Ž0)Ú@>DWôs®çôéÓ¼9Çý}ûöq›&J“PûõëÇ‘£Œ~˜ÇuÏ›7ÏÜ {ôú¦Õ7aɰ#ñ¿ ±éM"GI@Ü@A[»2 ÑİÄáµUç˜z`>”GüÛ¢)‰‰i#‚ç˜$Áôá¿øâ RîܹÓ4cMŒÞºa;ILmÅzð¾si´UKPà£Âu%بnlCåÕá>Â'˜ Rd—„|k{>sŽ( ž‡“œ9s>‚'Îø“Äô1Xù”|Ï÷›Ö”<8 鎫|1&!„‚§¥: †”wW¿–ò”ö€Æbá=0¢BäÂGë8-ÅÆ:{Õ7N!¹H2Bø$C˜ø Μ¹L“&Ý~P”øÒR")xÞ‡×qñ¤ôÏ“e³f½Ÿ2g®LݺÝyMÀ“ŠÞ¥RõN¼*ž%<žN™2Å«¸%I¯÷ÞÛª_I¸LcÇNÒ¯;Ü~_%Iz¬pà«^Rϳ„Ç£y<ò÷›>|N“ýö7§¢£ ê>6÷[=Ýñá#<<3gnÒ¯ß~ÅwêÔõn]šÂG˜ yLÌí/•J¿½¹)‚HSBør`Ö¬;î š‰‰Õ¯‹[Á! !|Ñž2åË1Íž>}‰Ö­Ûo.åè2Bx—6ÕoØpNœ¸h.­#6°3fÜþf•uSN\C@ï´q+tgL*6°H“W "î…ðîâ˵ëïœÐôéã¹3¦éK—®ÓŠqÁ¤É1yÂ'/žAk[µjþ~ëÕ i¸yÛ­‘hMH€’1AŸŒ`†ª >zTÔß“ Ì·fÞ¼­úW Âÿnd`Y¹NBøÄá•èÜÑѱôÍ7?j=á_0ŽŽŽ¡Å‹·'º~)8<û.MâºáÝÜx’Z±baýówÞ?{ö ]¼xJ•ºó&(¾k»gÏ ïvÄ'š¥ÁWÑ}Ò—Ó?\BxÅ`Õª×SŒÎ~QT\¿Œ¤ôÃBxG0I&¿ „÷ËHJ?! „w“dò Bx¿Œ¤ôÃBxG0I&¿ „÷ËHJ?! „w“dò Bx¿Œ¤ôÃBxG0I&¿ „÷ËHJ?! „w“dò Bx¿Œ¤ôÃBxG0I&¿ „÷ËHJ?! „w“dò Bx¿Œ¤ôÃBxG0I&¿ „÷ËHJ?! „w“dò Bx¿Œ¤ôÃBxG0I&¿ „÷ËHJ?! „w“dò Bx¿Œ¤ôÃBxG0I&¿ „÷ËHJ?! „w“dò Bx¿Œ¤ôÃBxG0I&¿ „÷ËHJ?! „w“dò Bx¿Œ¤ôÃñþÈ÷ßO|ð£Â’éî8w.“þ—7¨dÉøÿ¨øîj”RÁ¨Y³&½öÚkq’âý§Ã‡ëÇ2•yä‘8å"yÈ’…èÔ©ä­Sj»ƒÀ®]»èêÕ«á oŠ 2ÄœÊQHq ><¨ÎâÃ…Enú!¼_GVú!|PXä¦_Âûud¥_Aˆ¥ šËÃ7-ZD;w_~Ù5-¯_¿No¾ù&=óÌ3ôÐC¹Ö޽b{¿~þùgúôÓOíÉÖy“&Mè7¿ù 3†þò—¿Ð78¬Ü¿Ê—ïÎú¶ $âdÏž=ôÕW_ÑîÝ»éÊ•+ú?‡—¢ÚµkÓï~÷;J›6¼­¼yó&—Ë‘#·úöÛoS½zõîi0¼Ö‰è^dEuÛ¶m®6Këׯ§Ó§O»Ú޽r{¿ÎŸ?ÏígÊ”‰òçÏç“-[6ºuë]»vðOÕ/_¾Ìy£££íÕ%ú|ݺulD@ö-ZP×®])Ož<ôÉ'ŸÐ믿NÀ$œ¬Y³†Ú´icå…ሉ‰ WÌÕô$[xX”sçÎñ œÒe_ºti„_~ù…-N™2e(**ŠNžÿüs/è{üøq6žÐ“m$E’Í¥Á,ÇZÿÓO?±E2e ;xð 5kÖŒ;jfþªU«¸7¦I“&1ñæÎËõ`ùœ={6sĈkŒE>S>XÇ1àÏÃ蘫W¯¶²b"}óÍ7PaIŒo ˇÉg,`àµUAÀ V~ôœ9súÊã¬Ü¿ÿýoÂJ‡ã×_Mõë×g·+Èøñã9/„r%µ……^¡º6Ìú|ôÑG¡²òý£G2IZ¶lÉmC¬’“'Oæ§ ;\´‰£€‰yäÈ._©R¥xõƒpXÁŽ;f¥” 4pņ “«capÅu8ÌãˆÉ…²˜06l ¬I•d#|§NØ*ÃJ@2üMs e5jÄÖD‡,_¾œÂX¤Hv @jXþ±cÇR=hïÞ½ÜѶmÛRÁ‚9¬c(iš6mÊí _áÂ… +„€—í!ݬJ¸þãÿh Làµ)x„~pÕ°ÜúÁŠÃŠ9s†í»ï¾ã~c5‹†6Ð/X\¬h°z 0ÿr¡.ù„ó£Q'ò4hЀ@~¬œXm±Áj‚ñ™7oaƒ\´hQZ°`§#\+¸†Á†Âîz¡ï 4òƒH‡ JÂa†r·víÚ1¦¨b&"_ÜåŸ$»4¦]Xd|Q1K,ˆ]þŠ+x§²a¹‡(¸3X%>ûì3 ¤kŽ2â‡øŠvoêÀ}»¥AÚLŠ`ßÕ3’7o^>E» 0Èd+Ìc=Æ—ÀV“>*ôìÙ3¨ª &"«‚]@tãzk¸u°ºpEá6CL*Xn3ަ7ŽÉæÒ„SÎÌX¯c3ùøã[Å:vìÈÖçÙgŸeàáóöë×#ØõÃ2µjÕŠ]$lˆì>¢©•€ .B¼îݻ󆤃À—E=°`p¯ºtéÂ÷1Ñ`Ñ6lÈn¿Æ„ƒ€øØmA?XHl¡ üOãFüþ÷¿g2 "Û€• D‡úÏþ“]8¾?ô`sŠ aúx´·xnòâ>Œ6ð˜d /ÏX]Ÿ{î9nËlÜ‘†Yì- #6£>@€,;‚†Ì¸ãô¢™bcÜðzÀ Å ‡õÝ`È ùì{´‘\ï XöjZ¶lYrµ¯ ¬+,]`?‡ ÒØË(¬îÃ÷ÑÃ’ B|ˆÀ@Ìþ1„GÖß<0î’½»=‡~ˆDH°† ’¶ Ÿ›<è %Ʀõ$— <Ðv ®hi˜ög¦m¬8HDZ¤^y¡›]à¢â /ŒžÇ€ðv.c4ÓÂÌž7±çˆ’Á¸Âu¶KÄ,<…u…÷¥W¯^v=øV !½`寧Q\…¬É-ÐϾq ¬{’`"ØÉ`߬Ë7÷2¶oúíu møì¡“Ô îXMñ à‚O0 ‡Y°2I½QÂÃÊ!¥´yóæw­;H·&P õH,®X‡\'L$û“óÄ•Ž|î{âÒD¾›ÒbjC ”Kñ(Mj^úë-„ðÞÑÆe„ð.,Õ{ ›Ö!C†xKSÑFHø™¼a(ñx0ˆˆ)<Èô@‰¥ Ì ×‚€ŸÞO£)} ‹€>,D’ÁOáý4šÒ—°áÃB$ü„Àÿ‡Èo\QýHIEND®B`‚mysql++-3.2.5/doc/html/refman/inherit_graph_44.png000644 000765 000024 00000005025 13515046516 022450 0ustar00tangentstaff000000 000000 ‰PNG  IHDRž$xÔƒhsRGB®Îé ÏIDATxíZUŒM®;ww· Áƒ ‚'<ð‚&¸Áõ<!—www‚»»KS_ýôdvvçno•Ÿt%»Ó=ÕúuuõW½£XȈA ÂÄF¸?ÓA@0†g !*Ë ì¦ScxÆ¢‚@œ³×£GÒÔ©S¯MÞ 0M›6¥=zxÔ÷òx÷ïß§U«Vy2ƒ@ ìÞ½›Îž=ëUÝËãé+W®ÔIó4Œ@­Zµ|Öõòx>K™—#` /Ä€šæüCÀž8™R!FÀ^ˆ5Íù‡€kpá_õè—Zºt);vŒfÏž¶ÁôìÙ“?~ìÚþºuë(UªT®úh+~üøAïÞ½£,Y²ÈPºwïN-Z´ ¶mÛFmhÿ{ûví>|8¬,XÒ¦M+}ìØ±ƒž?N:u²úŒ‰‰±ÒcbÓ¦MÔ¦Múöí%Ožœ>}ú$éhŽ5hÃûúõ«xƒüùóÓ½{÷èÇT®\9úõë]¾|™ /_¾¼LútéÒY;ðà¼Ë”)“àpúôi«Ž^l(Ðîùóç©dÉ’”:ujY|„]°«ñg›4iÒÐñãÇ){öìT¢D )Ð_¿~M9s椫W¯Ò›7o¨R¥J”"E Ñ£Þ—/_(eÊ”+íèüèÑ£­nºvíJgΜ¡Y³fYïÐ.>9rä \ÀרQƒ`Œ?~¤“'ORñâÅ)Ož|¸ªX±¢¤;wî¬J•*¥øHQlPÒ?“¢[¿~½äëÖ­kéP–/ÌE¿sçNÑïÝ»×g^^òW—.]T™2etVžôù³ÁªaÆI?2dvÁÏŸ?¥áY“"n'Å .Mñ¢‰·æR{öìQl€âýf̘!zxô­eæÌ™â½wÃ:x+>J°^±b…âcOÕ®]*5pà@ñô’ùóÅ›^±Ñ«µk× †À¢=ž>­¶lÙò§†ÉF%kÜ€Ÿ6xigÛ¶múU¢Ï°{¼\¹rÉ&÷€€×@4ñæ ¯iÒ¤‰ì@x^‚„ðq%ixÌ *_‚G€T¯^]žøÒ^ÉzaK0P¶ ÏÓŠÂ… [zp2 ¡bÅŠ ÷D[˜k¿~ýÄ»À{ðB '³÷ƒ¾µ€³"ò„¸áo>ḼaÅ›ê:Ð?kÌ‘‡tìØÑâ¸ÿ½ñüFx–ܹsKë±SGîLDÌWÈŽZ™þ y-\¸P‚Š–-[J5D‹ÌQäÅqÅžˆ˜'Y·_gܺu˵«GY:9ì†j×}ú¿C䄨Ñ)¼¢Spp3DWšùh^¢3ðJð72xL³fͬ¢|LK;øojÞ¼¹è°hèÿæÍ›>óV~$à°á-À›`0ˆpÁW7PFî‹'®H6lØ`]‹´nÝZæ…9c“Ž3F8%PVäŽhÞX <<x"8*ð¯FDŒH;¬â<¤åxHHSì„€?@øŠCòàXZiò¤ß¿éW Ѹï0áC|£xW‹~ëÖ­Â_P»¯E¤¢ZÌ*‹HxòäÉ¢ÓuÑSá—|• z£Z>:}Fµz hìýû÷ŠUúA$ÉÆ­Zµj%cç C(P@ñ¥_|±±)pDHB8pð#Øö⊃ ™Ç!C¤îرc­ÜlÉ’%òžé„D®˜7o,é_Gµ˜7_»ÈXÑ.SuéÒ%©ÞÈÁŒ¤ñņ)å6oÞl½K,áÆñ°<$©†çQÙÏLÿþýßõy•f 8ÒS0^§pT%W0dŽV-ó—ƒáaÑ $_‹6<è>GÆZ¶'ˆ=*-6˜—é¬ë3!ÐÚÕ‚+)º¤à9W<ö±ØõÀ–XiW_ùØõÁ¤Ý /è dÞE~ ޱ]»vŽ\58 Ây_b‹‹híàÛMœˆ[¹`ßëËkÝŽkêw¾ž á ‚Ð»à‚Þd@Ïw{ò±—Õi`‹ËôHJD ÷zsçΕû(Ü*àNvb­ÛÁB# ð%X,DÆá"˾ú4ï܈µ«AºùÆÛƒ„Úõ&mH ¸ðF°â<á"Õ&eЦ쿋€1¼wmÿê™Ãû«—çßœkpžgÄ ,¸˜ÇsŠ—ÇÃ?Dð‹‚ƒ@(hРüúälË+ªu0yƒ@8ðòxáèÄ´ip"` ωˆÉGcxÙtâDÀž“¿NÂêU×ùIEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1TCPConnection.html000755 000765 000024 00000151301 13515046516 025262 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::TCPConnection Class Reference
MySQL++  3.2.5

Specialization of Connection for TCP/IP. More...

#include <tcp_connection.h>

Inheritance diagram for mysqlpp::TCPConnection:
Collaboration diagram for mysqlpp::TCPConnection:

Public Member Functions

 TCPConnection ()
 Create object without connecting it to the MySQL server.
 
 TCPConnection (const char *addr, const char *db=0, const char *user=0, const char *password=0)
 Create object and connect to database server over TCP/IP in one step. More...
 
 TCPConnection (const TCPConnection &other)
 Establish a new connection using the same parameters as an existing connection. More...
 
 ~TCPConnection ()
 Destroy object.
 
bool connect (const char *addr=0, const char *db=0, const char *user=0, const char *password=0)
 Connect to database after object is created. More...
 
- Public Member Functions inherited from mysqlpp::Connection
 Connection (bool te=true)
 Create object without connecting to the database server. More...
 
 Connection (const char *db, const char *server=0, const char *user=0, const char *password=0, unsigned int port=0)
 Create object and connect to database server in one step. More...
 
 Connection (const Connection &other)
 Establish a new connection using the same parameters as an existing connection. More...
 
virtual ~Connection ()
 Destroy object.
 
std::string client_version () const
 Get version of library underpinning the current database driver.
 
bool connected () const
 Returns true if connection was established successfully. More...
 
ulonglong count_rows (const std::string &table)
 Returns the number of rows in a table. More...
 
bool create_db (const std::string &db)
 Ask the database server to create a database. More...
 
void disconnect ()
 Drop the connection to the database server.
 
DBDriverdriver ()
 Returns a reference to the current database driver.
 
bool drop_db (const std::string &db)
 Asks the database server to drop (destroy) a database. More...
 
int errnum ()
 Return last error number associated with this connection.
 
const char * error () const
 Return error message for last error associated with this connection. More...
 
std::string ipc_info () const
 Get information about the IPC connection to the database server. More...
 
bool kill (unsigned long tid) const
 Kill a database server thread. More...
 
 operator private_bool_type () const
 Test whether any error has occurred within the object. More...
 
Connectionoperator= (const Connection &rhs)
 Copy an existing Connection object's state into this object.
 
bool ping ()
 "Pings" the database server More...
 
int protocol_version () const
 Returns version number of the protocol the database driver uses to communicate with the server.
 
Query query (const char *qstr=0)
 Return a new query object. More...
 
Query query (const std::string &qstr)
 Return a new query object. More...
 
bool select_db (const std::string &db)
 Change to a different database managed by the database server we are connected to. More...
 
std::string server_version () const
 Get the database server's version string.
 
bool set_option (Option *o)
 Sets a connection option. More...
 
bool shutdown ()
 Ask database server to shut down.
 
std::string server_status () const
 Returns information about database server's status.
 
unsigned long thread_id ()
 Returns the database server's thread ID for this connection. More...
 
- Public Member Functions inherited from mysqlpp::OptionalExceptions
 OptionalExceptions (bool e=true)
 Default constructor. More...
 
virtual ~OptionalExceptions ()
 Destroy object.
 
void enable_exceptions () const
 Enable exceptions from the object.
 
void disable_exceptions () const
 Disable exceptions from the object.
 
bool throw_exceptions () const
 Returns true if exceptions are enabled.
 

Static Public Member Functions

static bool parse_address (std::string &addr, unsigned int &port, std::string &error)
 Break the given TCP/IP address up into a separate address and port form. More...
 
- Static Public Member Functions inherited from mysqlpp::Connection
static bool thread_aware ()
 Returns true if both MySQL++ and database driver we're using were compiled with thread awareness.
 
static void thread_end ()
 Tells the underlying database driver that this thread is done using the library.
 
static bool thread_start ()
 Tells the underlying database driver that the current thread is now using its services. More...
 

Additional Inherited Members

- Protected Member Functions inherited from mysqlpp::Connection
void build_error_message (const char *core)
 Build an error message in the standard form used whenever one of the methods can't succeed because we're not connected to the database server.
 
void copy (const Connection &other)
 Establish a new connection as a copy of an existing one. More...
 
bool parse_ipc_method (const char *server, std::string &host, unsigned int &port, std::string &socket_name)
 Extract elements from the server parameter in formats suitable for passing to DBDriver::connect().
 
- Protected Member Functions inherited from mysqlpp::OptionalExceptions
void set_exceptions (bool e) const
 Sets the exception state to a particular value. More...
 
- Protected Attributes inherited from mysqlpp::Connection
std::string error_message_
 MySQL++ specific error, if any.
 

Detailed Description

Specialization of Connection for TCP/IP.

This class just simplifies the connection creation interface of Connection. It does not add new functionality.

Constructor & Destructor Documentation

◆ TCPConnection() [1/2]

mysqlpp::TCPConnection::TCPConnection ( const char *  addr,
const char *  db = 0,
const char *  user = 0,
const char *  password = 0 
)
inline

Create object and connect to database server over TCP/IP in one step.

Parameters
addrTCP/IP address of server, in either dotted quad form or as a host or domain name; may be followed by a colon and a port number or service name to override default port
dbname of database to use
useruser name to log in under, or 0 to use the user name the program is running under
passwordpassword to use when logging in

BEWARE: These parameters are not in the same order as those in the corresponding constructor for Connection. This is a feature, not a bug. :)

◆ TCPConnection() [2/2]

mysqlpp::TCPConnection::TCPConnection ( const TCPConnection other)
inline

Establish a new connection using the same parameters as an existing connection.

Parameters
otherpre-existing connection to clone

Member Function Documentation

◆ connect()

bool mysqlpp::TCPConnection::connect ( const char *  addr = 0,
const char *  db = 0,
const char *  user = 0,
const char *  password = 0 
)

Connect to database after object is created.

It's better to use the connect-on-create constructor if you can. See its documentation for the meaning of these parameters.

If you call this method on an object that is already connected to a database server, the previous connection is dropped and a new connection is established.

◆ parse_address()

bool mysqlpp::TCPConnection::parse_address ( std::string &  addr,
unsigned int &  port,
std::string &  error 
)
static

Break the given TCP/IP address up into a separate address and port form.

Does some sanity checking on the address. Only intended to try and prevent library misuse, not ensure that the address can actually be used to contact a server.

It understands the following forms:

- 1.2.3.4
  • a.b.com:89
  • d.e.fr:mysvcname

It also understands IPv6 addresses, but to avoid confusion between the colons they use and the colon separating the address part from the service/port part, they must be in RFC 2732 form. Example: [2010:836B:4179::836B:4179]:1234

Parameters
addrthe address and optional port/service combo to check on input, and the verified address on successful return
portthe port number (resolved from the service name if necessary) on successful return
erroron false return, reason for failure is placed here
Returns
false if address fails to pass sanity checks

Referenced by mysqlpp::Connection::parse_ipc_method().


The documentation for this class was generated from the following files:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1BadConversion-members.html000755 000765 000024 00000020204 13515046516 026775 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::BadConversion Member List

This is the complete list of members for mysqlpp::BadConversion, including all inherited members.

actual_sizemysqlpp::BadConversion
BadConversion(const char *tn, const char *d, size_t r, size_t a)mysqlpp::BadConversioninline
BadConversion(const std::string &w, const char *tn, const char *d, size_t r, size_t a)mysqlpp::BadConversioninline
BadConversion(const char *w="")mysqlpp::BadConversioninlineexplicit
datamysqlpp::BadConversion
Exception(const Exception &e) MAY_THROW()mysqlpp::Exceptioninline
Exception(const char *w="")mysqlpp::Exceptioninlineprotected
Exception(const std::string &w)mysqlpp::Exceptioninlineprotected
operator=(const Exception &rhs)mysqlpp::Exceptioninline
retrievedmysqlpp::BadConversion
type_namemysqlpp::BadConversion
what() constmysqlpp::Exceptioninlinevirtual
what_mysqlpp::Exceptionprotected
~BadConversion()mysqlpp::BadConversioninline
~Exception()mysqlpp::Exceptioninline
mysql++-3.2.5/doc/html/refman/connection_8h_source.html000755 000765 000024 00000067136 13515046516 023632 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: connection.h Source File
MySQL++  3.2.5
connection.h
Go to the documentation of this file.
1 
11 /***********************************************************************
12  Copyright (c) 1998 by Kevin Atkinson, (c) 1999-2001 by MySQL AB, and
13  (c) 2004-2007 by Educational Technology Resources, Inc. Others may
14  also hold copyrights on code in this file. See the CREDITS.txt file
15  in the top directory of the distribution for details.
16 
17  This file is part of MySQL++.
18 
19  MySQL++ is free software; you can redistribute it and/or modify it
20  under the terms of the GNU Lesser General Public License as published
21  by the Free Software Foundation; either version 2.1 of the License, or
22  (at your option) any later version.
23 
24  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
25  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
26  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
27  License for more details.
28 
29  You should have received a copy of the GNU Lesser General Public
30  License along with MySQL++; if not, write to the Free Software
31  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
32  USA
33 ***********************************************************************/
34 
35 #if !defined(MYSQLPP_CONNECTION_H)
36 #define MYSQLPP_CONNECTION_H
37 
38 #include "common.h"
39 
40 #include "noexceptions.h"
41 #include "options.h"
42 
43 #include <string>
44 
45 namespace mysqlpp {
46 
47 #if !defined(DOXYGEN_IGNORE)
48 // Make Doxygen ignore this
49 class MYSQLPP_EXPORT Query;
50 class DBDriver;
51 #endif
52 
58 
59 class MYSQLPP_EXPORT Connection : public OptionalExceptions
60 {
61 private:
66  typedef bool Connection::*private_bool_type;
67 
68 public:
72  Connection(bool te = true);
73 
107  Connection(const char* db, const char* server = 0, const char* user = 0,
108  const char* password = 0, unsigned int port = 0);
109 
114  Connection(const Connection& other);
115 
117  virtual ~Connection();
118 
121  std::string client_version() const;
122 
131  virtual bool connect(const char* db = 0, const char* server = 0,
132  const char* user = 0, const char* password = 0,
133  unsigned int port = 0);
134 
138  bool connected() const;
139 
146  ulonglong count_rows(const std::string& table);
147 
153  bool create_db(const std::string& db);
154 
156  void disconnect();
157 
167  DBDriver* driver() { return driver_; }
168 
174  bool drop_db(const std::string& db);
175 
178  int errnum();
179 
185  const char* error() const;
186 
192  std::string ipc_info() const;
193 
199  bool kill(unsigned long tid) const;
200 
220  operator private_bool_type() const
221  {
222  return copacetic_ ? &Connection::copacetic_ : 0;
223  }
224 
227  Connection& operator=(const Connection& rhs);
228 
235  bool ping();
236 
239  int protocol_version() const;
240 
251  Query query(const char* qstr = 0);
252 
256  Query query(const std::string& qstr);
257 
264  bool select_db(const std::string& db);
265 
267  std::string server_version() const;
268 
292  bool set_option(Option* o);
293 
295  bool shutdown();
296 
298  std::string server_status() const;
299 
302  static bool thread_aware();
303 
306  static void thread_end();
307 
312  unsigned long thread_id();
313 
333  static bool thread_start();
334 
335 protected:
339  void build_error_message(const char* core);
340 
344  void copy(const Connection& other);
345 
348  bool parse_ipc_method(const char* server, std::string& host,
349  unsigned int& port, std::string& socket_name);
350 
352  mutable std::string error_message_;
353 
354 private:
355  DBDriver* driver_;
356  bool copacetic_;
357 };
358 
359 
360 } // end namespace mysqlpp
361 
362 // Not strictly required, but bring in our specialization subclasses
363 #include "tcp_connection.h"
364 #include "uds_connection.h"
365 #include "wnp_connection.h"
366 
367 #endif // !defined(MYSQLPP_CONNECTION_H)
368 
Declares the UnixDomainSocketConnection class.
Declares the TCPConnection class.
std::string error_message_
MySQL++ specific error, if any.
Definition: connection.h:352
Declares the WindowsNamedPipeConnection class.
Manages the connection to the database server.
Definition: connection.h:59
Define abstract interface for all *Option subclasses.
Definition: options.h:57
Interface allowing a class to have optional exceptions.
Definition: noexceptions.h:71
This file includes top-level definitions for use both internal to the library, and outside it....
Declares the Option class hierarchy, used to implement connection options in Connection and DBDriver ...
DBDriver * driver()
Returns a reference to the current database driver.
Definition: connection.h:167
A class for building and executing SQL queries.
Definition: query.h:121
Declares interface that allows exceptions to be optional.
Provides a thin abstraction layer over the underlying database client library.
Definition: dbdriver.h:57
mysql++-3.2.5/doc/html/refman/tab_h.png000644 000765 000024 00000000261 13515046516 020370 0ustar00tangentstaff000000 000000 ‰PNG  IHDR$ÇÇ[xIDATxíÝMÁ@†áž~¥ÜÆÎ’Evˆ¿"!•²‘d*×rGq=Š{¼ßSݧçë­ÓÉHÇ uO^õø[À_‡¢ãXvyËþÒ±=·VCffææ{°öŠó´Rçœ%_õçÿŽ¢ö·°Çrug¶(?gh\i>|sIEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1DateTime__coll__graph.png000644 000765 000024 00000025755 13515046516 026632 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÀÓמ2sRGB®Îé+§IDATxíüTÅñÀGš VÄŽ v£Ø@A±×¨XƒÄ®Øýkì `‰°%*`¢1€°€ F ŠšHPQÞ¾cöù®ßý¸òûÝÛù|îî½Ýy[fgvgf÷ݬÁÓâÁS ¦XE ˆiß}·=¤ž§§@œ)à ΣïûîWÏñ¦@ƒäîùå—òÖ[o%'û{O:OfÍšÉ~ûí—ØŒà(<ýôÓÅþãiPu¥Š©S§Ê\ }ûö•¦M›¦ä×$áóÏ?—‹/¾8㣭Zµ’[n¹%c~±3êü ðé§ŸÊ›o¾Ylº¤”÷ì³ÏJ›6mdæÌ™rõÕWËW\!?ÿü³vØaòÔSO¥àו„I“&ÉĉÓ6÷Ûo¿•—^zI/^œ6¿&‰«­¶š4oÞ<ü >\æÍ›Þoºé¦5)¶æÏ$ï ¸°äôL÷?þøc0eÊ”`Ù²eÁÿûßà£>2ÔåË—ãÇtÖ ÔÿjiÓ¦M æÏŸŸPÔŒ3‚… †iãÆ ”¡ƒï¿ÿ>LãbÑ¢EÁo¼|ýõ×Á?üèìdù:s{챇]ë€ß|óÕ7f̘@…ÃÒùÒ;˜={¶Ýë ºÛmiaÅŠt@»èý’%K‚Í7ß<8à€ž¡Ï»ì²K°Í6Û¸bìù?ü02dH0}úô0½:åj+…ÒNhE]®Í¤ó,ãLž<9˜5k–]gÂ?í´Óõ‘ ,^~ùåàã?6|¾>øàÛ ûì³ÏÂ4hÌ88ú‡Y.Üø§CiÔ¨Qеk×tY–¦“LƼB2N>ùä ÝF˜$R¨üç?ÿ1"µk×.Ü9„Q>øàð^·Ÿ)÷ßÿ mÛ¶a•sçÎ êׯ<øàƒ6[n¹e°ÖZk«¬²J ÛÖŒ Œ5*Xo½õ‚zõêþ^{í¬¹æš–³eË–Áúë¯@X‚?þñ†7xð`»?ðÀÃ48õÔS­?®,'”µÆk 64ztèÐÁ&œ(=Ü5?`À€ }ûöÁŸþô'—œò›Kt¥5^‚/îšB&(š Ô¸qcSzöì)£G6™sEÿøÇ?ìl‘Î,rúé§‹†(ãÛ’5hÐ Qf‘Ž;šn­³¬°ìòÜÆo,=ô©gžy¦è,/:³ *Ïœ9sìùt_,éØ:kË£>jeÐu³Í6]%DUt5’k¯½ÖòTøLµáˆÞƒ ìºë®öýRæ‘£Ž:JTh¥[·nB?ÑsU¤OŸ>Ò½{wyíµ×ÂGò¡“CÎÔVÚܺukÑM¾ûî;Ùi§ÄéòîY]}ú{ì±ÖÇlø_|ñ…Üu×]FlÆŒg£ÎYg%çœsŽè*,ÐYWë_uêòË/Ú>¶ƒ2_¥ kPÙpà ¥S§NVæ•W^iuTH6äd‰ªé ðÎ;ïXQ,»Z_Àl°dr¯5õ…Ùãoû›åtÐA2]_sÍ5ê‡Ám·Ýf³Ë&5píùÿû߆Ç×M7Ý”qØyçC<.PO˜EܬêVò¨“•&Ü{ï½Ö¼¬¨¨InÅqˆ¬F¬RnȇN¹ÚŠŠƒ:IYÿüç?ƒwÜ1PûĪt³öÀ]L%Ê„Ï °ÕV[…¸¨J¬^ÊÄáj ðç?ÿÙh Âlªê— —©€¨ˆj(¬ôŒµ [лwoû°à ¹V÷ª­NˆÁ¾ûîÖñØc¬4ù@ÉW€M6ÙÄä¬Aƒ_KÛm·Ý33ÚHÑeÛŒÆgžyÆffFV/׬ »ï¾»0³*Óˆª(–¯·_¾Ü,&D.”á#wb³‡[qÈØzë­Ãü6ÚÈ °0!ÃÅ;ì`9Æ KÁPµÈV0 E äßüæ7 8Ð…ÓA>tr¸™Úª“Ð&@¤W¯^¢¶ˆ{$üUÛ$¼Î…¥-+2c§vYø<*@vÆgÈ1Çc¼bªŠšWŒÙžÕz¨ý%gŸ}¶°Ú TÍ“óÎ;Ï´‰_|Q&L˜ ;wVº•¢©@.€ÉUÏ!Dõ}9úè£í1§ú²©7:»GWq1¤€söË—ÛáuòÅW_}&Á”ï¿ÿ~‚ÀDó¨lÂä BõÑ™J |2èÌhê–êÆ&lêQÔX7¦ˆÖ‘/($][f& Ü“¨Y]ß{ï½Ã:“/òÁÇÝé@W]cªh›ÉÃ; Pñ˜”øèJeª+j'*ì!‡"jÿ™…Z,`,qyÿîw¿“#Ž8BtÕ’ûï¿ßÔ¿•©#?®]™’žE_fÖ¸ñÆE 5Á-àk¾ä’KLÿ×%ÝV ˜ ⢢›¢»£w>üðÃI¥þz‹ð Ã¢ß#P (s ê“•ó¯ýKÔð•#<Ò²˜½¨]ˆÞ3ø´w'B ð ) ,tgf\êe5ègM S[ÕCe6¿Ï?ÿ¼à¢¥¾L Ÿ•{ ý«j…­jÑòè+ mÂm©^.£ëСC…qºè¢‹DÕ/Û“a>ÿüóMhø…V5fúsÏ=×ÊêÒ¥‹l¿ýö¢ªŸÕÅýꫯ^Ó¢y.Yª©  †«…+TK6—5Òì½Öz28¸;à©@‡Æ„^¨³®¹*ÉÇ ƒ.Í3:ƒšõ©ÚaÅ8†ÃE—½ãŽ;,ÏéÕN‡TUÍìçnÍæ¢Üqêÿ= ´ï‹2Ž•Ï—Î¶¦‹»vâ¥A7œ rµ•v@#h¡3u Fq@ð¶à¥~繡îløº"›¯ÏQŽÎ¬<–RÖ_ÿúWó:ÇOîét]é;ô¦þL@?tã+SvpÙe—™M¾û»¦É@7O€B áá¹`Ü‹™ ¬G!P/^yåSw0Þ’Z÷ ’“íU)22åDÀdœdC99?Û=Ë=.ÙL€Ñ_,ÈÔV | &fƒ\øº#êAËV„åaØî³Ï>9ñ¢ºFo ºv*rA€\VÀ¿¯Ë¨ù¥ÿð‡?ÐÌDT ãt†ú!ÆR:€ðv8¯T:œÚ’V—ÚZ[hVÓv¤ü1ÆáI'dnËšêŸó¨mp¯Dâ ˆBÙ½@ÑÊýµ§@¥)à Ò#°ô×M²J7%Žõg´P…<”–ƒ²Eð†L¨Wó³2¥maõ”®'sÅíÂ'ô*ÙÅäÜ Šd¾^ÿ[::ôè(Á”^¥+ß]"mÓ‡N1‚¤Ãß”–ƒ›‰,ž)rÈDšæZ,mÃâSº·*5Ö_¿õ ó¯¢C0õ•jEìëõP)˜6@¤^CU4W¨ü]—Wª%±®× @%†fŸú¤ÈŠŸ©}é‘9¯U¢%±¯Ó @%X`Ϋ"0½V‚i*ÊN/e'¹VÈì_/âf%˜¦nçK+ÑšX×é ÜÓOF™=é-®e?è0©/Ü”»yq«Ï @¹Gü«!"0{2¬¢+¯%“¥Ô÷^JMáäò§ôOT\~ +ÂWÏ«p,r)þ· ðP"‡U,ûNd¦®ÉêC ýËÁîÎÿ–^Ê@ä°Šú_;ÙüýüÆû…èþ¢ôðPzÿZêO6ЗÜÅ\¤ó²aù¼"RÀ @‰™µ¨¥úoxlvñ?Iõeøè~;ÃÓýIܬ´,bfÄ]ÄR}Q©X2[¤åU‰éßNÒó@_êŸîtHLo¸v⽿+üiÐ’‘6‚'Ü¢`ÿ9¢æÿ›“G-% ¼ ”…8>«ú)à úÇØ÷0 ¼d!ŽÏª~ x¨þ1ö=ÌB/Yˆã³ªŸ^ªŒ}³PÀ»A³§äY‹4ôÒ’™"µ-yU¾‚ôðž.>5&ð*PLÚw3=¼¤§‹O üY :>зß~»…žuÝpa¥fG­|€¿”×`¢±‚³¢?ñÄ¢Q)3â Š¿Ô|üñÇ-„SFÄZ”áW€Z45iŠF«±xYÄ æC ; <.L\4U^EÑÉzJš7onjhè*!z£KCø4ÂŒ“¬Î@òƒúûÚK „—Ò¸N8!Ð`! é„KR¦ ˆ™LÈ&ÙÑ¢ÆGcm:I#uZ¼/ óêP-Æ/áª4‚d˜½ÐÀ|öß±/L&Ì’Fó ø%,ÒgÌ5á”YVŠPL„Jîá—²ÕÉó„¸*&¤Ä+fᾬ•§Œ4`À€ }ûö/¹ÄtŽFT7%žq¿• qdðTu²¢.¼ðB LH킜ëlìСC@ ê(¤Æw×íÚµ³z)ÿ€0AãšµäS'õôœà|ü‰s4\´m…\{HG¢bÀQ豦­~âĉ~u³Í6‚P7mÚT4Ð[ZÜt‰¿Óxº€ì“>}úˆF”I“&‰Î²Ò£G¹í¶Û„8ƨK”KðkbÇúÎ9ç ðÍ3„¦íÞ½{ºjr¦SŒâ„Œ=z´(ÓZ(\BÙR!T ©S!ZØÜN: ´QA·~ålH/S–äE“õ-±‘aUÄç%^/ X÷î»ïІyµ áýúõ“ÝvÛ-ÄÍuÑ¢E C!Ž.ÁɉêŽnN|_„K#JŠFÜL)fàÀsX£mšð` ëL-Æ KÁÍ' Þ¯‹ÕŒ`Á¸î^W )¤N ‰+O>ù¤Ñ¡ÄÎ!®t›6mÌøFÀ ï*„Z%ÆÅ eöÅØ1b„tÐA5®‘ Õ@«V­Dup ÖÍLL Á 6Ø c¹Ó¦M³¼d£¸Y3ý+÷€ JAäN`»í¶³_¬PÕ©Ißçwž}ÖM °Î;ÛÄ _ð/¥Ê€·ûî»Ë< ½{÷–C9DPcÔãŽ;® ˆèjxZ4NÜ o¼±‘“•@ ^óÚ]^“§íѦ›njž$Tç7nœ,\¸0-~®D æ Å¢Àã½*¤NV&Þ=öØc2räH ¡‹7 OX!»u…”æqWЏ/ºè"sk¾ýöÛBŒàóÏ?ß„_$ Ê¼ú꫃?¼Ì2jÔ($ðQ}˜õ6lh¶€ÓçÕ£bÅ‘þÕW_‰ºrä‘G tÓM7ɼyóLeB]a–-Rç„ äÜsÏ5štéÒÅV´wÞyÇhÆ=‚^b1{Ü"S`|· x¡eÖBñàôíÛ×<4W_}u ®n>…^xóò(Cƒ qU 4¶r ³q §eî@W†@Õ!ÃÑÍ-ó ©~m÷Ë9ÐàÖa¹x]’£Ð;/Éa=ÎóõilhËÇJûÀThí~ðàÁvŸO ^vÙeAëÖ­ùƒ¨;× ©Á—? WÐtQdä_ŠÇÀ«iÔufuVŒcÔ%K–،ʠ⠧;µ‡UAÉ·Þzë"w<}qùÔ‰£ ˜Ñ㽤‹ò¤(åiT¼jñPÉñÆ ºä+ÿ>@ÇÀ @‰ï«®<¼¨òcà[PA x¨ ñ}Õ•§€€ÊoA)à ‚Ä÷UWž^*?¾¤€€ ßW]y x¨äØûU²±¯Û @%YÀÞx­’-ˆ}Ý^bÏñ&€€xì{ï ö,oxˆ÷øÇ¾÷^bÏñ&€€xì{ïCW’üû•¤¾Õí âCàPI x¨’Ô÷uWœ^*>¾•¤€€JRß×]q x¨øøT’^*I}_wÅ)à âCàPI ýÏqO:é¤Jö§NÕ½Eãod£5ËØYMëT»+ÙØK/½Tô¯‹Ö„¢®ú׌$Mÿ²h ¬æ‚¦·®gþø™gž‘éÓ§ðDnÔ¢¯T©alDC÷ä®Ýcx @þźØPÔ Øóåy ”š^JMa_~­¦€€Z=<¾q¥¦€€RSØ—_«)kÐ ÐrØa‡Yx RáI ´ë®»Zœ®]vÙŕհÔí,¤| jmá˜2=CDȧžz*Sv­H/‰¨Vô,FÀ”/½ô’p­”0gÎó]ÏŸ?_ðcqñå—_–[n¹Åb[׫.A÷ˆE– È#ÎYm†Š®Ì~ÌÂË—/âÅŽ?ÞhEP7‚¡Ðrƒyf̘‘@Ë Xf—8kÖ,c,~£@y}ô‘|òÉ'–L¡<Šb÷0*žÆ²JÀ™;w®y¦¯½öšðúâÚJzô¾[·nš`n]»v¢j\.¹öÚkß6ýtÀÊ‹/¾(ï¿ÿ¾°¯â€tfñ}‰ëVúJjÜ9ÈÕVð(ç’…ŸPª.†0²dÂ'Ÿ~ÔÀׄ0Ê„ibË˜× ¨A\±Œ(£Yà3Ñ2âD3\PµvíÚÙsJà€ÊÆ5 Ò(³½zõ² o³gÏ‹ÐhˆAÛ¶m%f aEõiѾ=òÈ#†§Bhài+‹ qû]+“K×®5Šz@°6ê;ðÀ¡e×-[¶ Tè¬ÒÎV¿~ý° Ó¶e½õÖ .¼ð´÷-=Pu ÌsÊ|Áæ”é,IÅú¨q‚£kõ© YÞæ›on´pm[wÝuÝo1<ÚMʰ†›­­ÝÛ{ï½­<£qÁ‚Ûo¿Ý5)Ð8¾Áᇬ¹æšÁÑGdÃw4ÛsÏ=Ãvð<ñ®5"½]úé§ô¤­Ô©ñƒÃ€y†ÇÏi„ù<0óGa–)ÔTŽ9æc‚ž={†L¨3Žu‚Á¨0>ÌG4A@g9»ïÓ§O z¦=³jð·àšk® 4y@{.¿üòæT•ÃóÔSO5ÜL —¡ ²¢FY·ú`*xèêaÑ ?þø I“&aôÄ›o¾9!2£»§ÝôAãÿZ9™¾ÆŒcxD?¨ŸHŽ\pÝ#0β» ÖZk-‹ø¨zx +—õñºë®3Ülme".ºãwÞh`<£ ô<Ï=÷ͳá; R¥®DÁðáÃf;v´vD€‰Œ(”Ô }. ¾gcdÈy|U­¨j`ÝŸùdÂg"À[lî@U++3“8ÆAR}Ý…)TgwŪ¶X90d6Ðø»†—K®¼òÊ@£ŸÛjæÊÓHèa(Sફ®rYÁn»ífLä:tè Ü@¶¶ªÞ|ñÅÁĉƒ^x!Ð ÚÖ>Ú À´L²á;pãÇ3é>¤™¦2 \ýõF7h=H‹ÒÛÕ™é·PQ@ ` 3›ýjíW g¿ªدÄ~O;í43ºàŒáxÔQG™Ge¯½ö’|ÐleÙpà åŽ;î0vŸ}ö±çùR¯Ó]DC‚"”ºDó¨@ß΄!UUC† –‚†®ÍáA"sÆ…HñÑÈê<‹¡éÀ…4åžcŽNÜC+G'î3µUÕ‹@¯$wØl0𣀇ÊA.|Æ ú; krTùiÓ¦YöC=$ºÚÛ‡ñÁÍfpe–ò·V@tгuö¸ã޳±½{÷6¦9ãŒ3 ]WaÐ0œ‰x®º¸¹1܈®jHX,š xÞª%²å–[ºÛw).@ š"&]À DrOìX$v\£L´?ÊÄÇÑòÝ„T|ÚÛh?¢m½á†,š:‚¥«€èª’öy—˜ ÖIÆAr›IWÕѲU2GÎ ðî¾ûnÙa‡Ü£ù­oÏÕ0“c=V4Ò¹¨h>|že 9|Ç@«Þl3#3A¥YT¯6¼F7ÞxcÖê( + ®Jºâ³Ê¨šfŒzï½÷Újóª.ÉÀCÜè=×I uÁƒÃlO›Ô>‘N:‰½rÄG˜g‰öQ?^¼Mª¾…er‘©­xĘXAÔÎîÝ»[±QV´ž|ð"x¤Ð—飌X¼?ûà`»Dm™¿üå/5hÕªU‚M€ÌéîÙÚ:bÄ£õC+x3¶·ß~{+›_UOÂz²áãÁ¢Œ6mÚ„ý‚fØ`@´,*!6M.û)lÄÿ.“ªò%w0Ÿ{˜æHg<‘†A†[4 &†ŸÎ¼ÆÐ<DÁt:.ž•(ÀT£;]ÝQÜL×´ a;vlÈ$ɸ0FrýÉxÙîsµ•>"üº—`Åà•qFpºróÁ‡¶n"KWi”£ûîØu&¼L饀:µŒÚð裚ꃱ• éÒÀAwv;’:;%?–rïpS24A=5öI——+ [§yóæYÑÔµ*|Š™ÚŠzèT7êY}õÕí“©Î|ðuFÏôx˜N9Q;̨àE²лarÝ ¨1ÉT½õI› -¦SõÇ„%šî®É+cº2Kõ[—ÚZ*ä[nZTÌ·_ñTg5C4AõXÛÊONw÷Ùμ8œÚò[—ÚZišÕ)(±ôX€¼þúëaUz´Âüó¸\·Új«0=Û…êÔvÖEwX³¡ÉçŸ._|qF5t:ûþÓŒdZ©Œ:¥­TOó|˜ƒZ¬4¸íø¨Ai›løòqaævs{ÙðY° ÜGØÆ›»gã aJ>¸—­LŸW 2YÜ5I/Ô Z“:Šù ‡ì’AgZ;,MçÜ‘2e°óÎ;'œ]á ˜îↇÙx/ç\8Ð繑αÎíp–(à½éÚµkB6åQn¢)Ð'sãMð,é)Zó,%÷Çyo8zÀs霺¥ð±óX4¨+ ›LÎÒzBRúžN@⬎Î-æÂãŸ= ˉJÒ9ì3r"_>iì)œmâ”*§UIçÜîÔdH'øË9°VÈÉYÊÍ÷ô%'JÖ§Ÿ~:t‹&·«¶Ü—Bb£± |ß}÷™û³AìFr&_ÐCx†ŠÞÎÖ?¶;¼œ{QfŽcè¡=S—ؽåÌ‹úóE÷D7¼„·£8~ {¶êv`ó­ßáq®ˆúõä¬ç罎|è…Õ§'E õÌ3Ï4×&õéf›èhѲ„£ r¾ŠsMìÌê ZQA·6ºúªý·êƒÌàröDÕ;ÀË ¤ç nŸ9 £é¹y3˜ÙþÇÇ=ãÊåx:)V{«ÞÈF¨•a~ÊE]ˆBôí-}? še¯EF_ÍLÈ,Ñ ˜ëôe]aþ‘HªÞ(á|¹ÕA/Õ1޾5¤€€Î?VðPáq\° ÷jnbUW_#˜mx x(­õû±ÿ~f°Œó™ø¢å/e¢õüùßëŸNý²ÙÕ¨Qý«”ÔOÆ tGx…<÷Üûej•¯¦¨‡á<93S`îÜErÑEí&Nœ©óè?¸ý–„µ×®/©'t¦ŽÞõ_!ê( *Öìž=‡ÛA¸Q£þT±6Ľb¯ÅbÞ/1g€¸wß @Ü9 æý÷sˆ{÷½ÄbÞ/1g€¸wß @Ü9 æý÷sˆ{÷½ÄbÞ/1g€¸wß @Ü9 æý÷sˆ{÷½ÄbÞ/1g€¸wß @Ü9 æý÷sˆ{÷½ÄbÞ/1g€¸wß @Ü9 æý÷sˆ{÷½ÄbÞ/1g€¸wß @Ü9 æý÷sˆ{÷½ÄbÞ/1g€¸wß @Ü9 æý÷sˆ{÷½ÄbÞ/1g€¸wß @Ü9 æý÷sˆ{÷½ÄbÞ/1g€¸w¿¬!’Þ|óMéÕ«WÜiöáÂU50v#iÖlQ˜÷‹V­ZÉÿýßÿ• e ’7cÆ ú/ùío[¶ÖöŠ5™;·¶·²<í›4i’üôÓOÕ+‘`Ð]»v-E}-uŠÝ»w/{{½ Pv’û k¼Ô¦Ñðm);¼”ä¾ÂÚD/µi4|[ÊN²zÊÞ»•¬pøðá‚gâÒK/]É’²?~Í5×H!Òúë¯/;~øáÒ A~C´hÑ"YmµÕ¤aÆa9é.î¼óN™?~º,KkÓ¦L:U.¹ä’Œ8Õ”áW€,£‰Ûv„ Y0Š“õÎ;ï˜ûoë­·–-¶ØB.\(÷Þ{¯\~ùåºOðC^•{ì±2räÈœ¸o¼±l¶Ùfö™={¶|òÉ'á=é?ÿü³,]º4g9Õ‚ßôR¡Þ~÷Ýw²bÅ iܸ±Lž}º|ÿý÷²ÝvÛ…³1Ïáßfv®W¯ž•½§ŒýöÛO:vìÈ¥Á»ï¾+W_}µí›œyæ™ÿK¡O³fÍ’í·ßÞÚB},X ô:suƒ<ú»æškZZ´¬=zÈ矞°ÂñZFeL AÏ;ï<9ùä“åÖ[o5uÁí4ÃĤ_|ñŲË.»Èõ×_/ß~û­ ‚sÏ=÷Ølûá‡Ê 7Ü`3-å7oÞܘxèС ãE¹³3L²lÙ29ì°ÃŒIß~ûm¹ñÆe×]w•?þØò˜Éï¾ûnÙpà å½÷Þ“«®ºJzöì)»ï¾{Ê}BEÿ»aGt£6’#FLKW\q…ÍØk¬±†õ㬳ΒSO=UÎ?ÿ|›(~øaû=ᄬnT¸úõë›À9ÜtuEÓ{ì1&”Uý™èoMêŒÖ_îëZ¯1ãxâ‰2hÐ ÙsÏ=åÙgŸ•cŽ9F^xáiÛ¶­ýB´ƒ>X>úè#cPîGmÓ®];éׯŸ1â!ClFe¦~î¹çŒQï¸ã›­ `x0x&`vÇ6l˜1>BòÆo„èí‚q˜=yäËc5Aݪ’|t±Ç{jÊòåË…¶ùå—òÄOØõÙgŸmõ ІIâÚk¯•SN9Åî_~ùea†§­NïÞ½Mx’ªÈy›/ýiC±êÌÙ¨""Ôz@íùýïo*Çn»ífjÄI'dKú^{íeêô@`@Þ{ï½euÖ1÷ÓO?˜œ•áÁ´Y5 Cvº1³z&Øj«­¤}ûöVx¨_Ì–:uêd*º4ù|ðeqÏJå ùÞ=ŸüË*Ò¨Q#dÜÍðo½õ–ª0ÿâÅ‹““W^yÅT$ÕŽU Õ [£PÈ—þŬ³Ð6® ~­Vè³µ–stoT€d€Ñ÷ÙgS8kó¡Ú§Ÿ~º©?œCêÓ§­ä¹Ù‹<4mÚ4!‹¶¸2Èp Î5y¨\+èçØ6z?GH˜‘±Uèo&@]D8Pû`¡â ùÒ¿˜uÚÆ•Á¯õPÈ 1Kb  †`¶nÝÚh3vìX9ãŒ3LgÖÇÂJpÎ9çX>nAfKFË_ýu˜å qÔ2”ãŒòñãÇÛªâò ýee3fŒüñöhß¾}m5@„™9Y‹Ê—è ‚Œ 䀲XQ …|é_Ì: mãÊà×z¨Îí¿ÿþ¶Ô?úè£vâõxñÅåþûï·Ù5¯*ª3iÿþýÍsÃŒ‹m 0‚Ñs™ÙaH á}÷Ý7D§^<@¨_ãÆ3Ï™Ø÷ÝwŸÌœ9Óp“ïIÄ励Œ÷‡6 2Áħvš=ƒ7Œ¶²/€-@›ÚŽðbŒBêÇY@[ÁÅH§m¥‚JÔYŒ¾Ôê€Ù‡åß×É÷._õã”M$xJ8iˆ›Fa&¼òÊ+M•ºîºë,﨣Ž2¡E‹2eÊ÷h‚Ú€ #ãòdfÙi§l¦æœrh#êXçέÔŒÄ<Ðì‘ä{0rù0>«Ì¿öÚk[šëƒÛÃØEíÀ»ƒƒ‡þñÜTÝÌêª*€û£9ªê‘žnvÒ~of`ÔfM˜<Ù Š:^Ý­[7™6mšéán×õ‚–Õ¦Dýb¿¢Ø@`l˜ºÙ°bV§Oû¬n€Oµ ›Á ’e”ðkeêd’bbå„JÔ¹2ý«@­À@d)îСCi‚÷5(š5k–ñˆºyË–-“ñ÷u€U§Õšû&f @%T _-Ì òÉžÕL/Õ<º¾o9)à '‰ð6@>Tò8UK/U;´¾cùPÀ @>Tò8UK/U;´¾cùPàÿ¶ïžv†]RIEND®B`‚mysql++-3.2.5/doc/html/refman/inherit_graph_9.png000644 000765 000024 00000010436 13515046516 022373 0ustar00tangentstaff000000 000000 ‰PNG  IHDR·1˜‡8ZsRGB®ÎéØIDATxíœ¬ÝÆ†'iÊÌܦÌÌœ”™™™™9…”U *¨Œ*ƒÊ23333·ûþoôÖòñµç&çÔ#k{É»³³³3ÿŽoŸ ²’Jt!úvá˜Ê!•p”Â] B×r î®Úr`¥p—2нÀ¡LÓÕW_ƒYþJt” ìµ×^i1öû~EËVB^”U¦—®8p衇æö§P¸×[o½Ü ebÉá§žzjn—J›;—-eb7p în˜År ¹(…;—-eb7p în˜År ¹èxá¾ôÒKm×]wÍ\§'Ö;¶÷ßßVZi%ûôÓOíÍ7ßôû/¾ø¢êðÿþûoûöÛo«–éôÌŽî7ÞxÃ}ôÑNŸ‡Üþ×;¶~øÁî¸ãûõ×_íŸþ±ŸþÙþý÷ßÜ6câ-·Übã?¾ýõ×_1©ë®- ÷üah˜úÞ{ïÙK/½äL‚¹/¿ü²=óÌ3 ?üðÃÚâã?¶ï¿ÿ>aì³Ï>k=ö˜ýòË/I7LBüÍ7ßø$~ðÁù<üøãÆD3a<òˆk±XèÏ?ÿ´¨Í^ýu{üñÇ´HBýí·ß~K„"ûL9Ú§yï.êÚñ³Ï>‹¯14fäWLd¬<ð€kÞ˜ÖìuÆg´k®¹Æ&šh¢¤ ÞÏ=÷$ýøý÷ßíË/¿ô|úRk!$ uÚMöX'žPfÓ‹ž%$~’5pàÀäDk‰%–Ë-·\ò¼È"‹ RXtÑEÀ’¦Äà0Â#„3Ï<3¼ð aê©§cŒ1FèÓ§O˜bŠ)Âk¯½æe5ñaÜqÇ }ûöõòóÏ?}ôÑ=ïC óÌ3ßo²É&a–Yf ã7^i¤‘üý[o½µçÝxãþ¼ä’K&y”ýè£<_“ïù÷ßî³L„0Úh£…GÑË-¿üòA‹ÒËVëŸL¦Àø#½ýöÛ^ÿ¹çžó¤ƒ>Øû3ÖXcy:e¥(1õ‡zÈÐèhå+®¸Â5ñ«¯¾j›nº©=øàƒ‰Ö¸á†Lkl°}ôÑ6å”Sºæ¥ÞÄOlgŸ}¶ká-·ÜÒ$À¾3°UG ß¾jAØgœáZø‚ .0~7ß|sRdòÉ'÷B‚à»ÀAäyZX¶ÿþûW(ýüÎ;ïØ6ÛlcÛm·}ýõׯ;´mðàÁ ÷ÏÿÿøuÜqÇÙi§fß}÷1¶§žzÊàK;èÚk¯µ;ï¼ÓÞ}÷]ë>ûìcGy¤IÁy»Uÿþýý¾Ûþ´M¸¥el²É&³UVYÅy„ Hñ“eýõ×7ij»þúë½ ÛçŠ+®è¶ßtÓMgO?ý´p öÕW_ù‚8餓LÎ…z—]v±©¦šÊ(·ÕV[ÎÃì³Ïnm´‘/ÊM;í´¾åÇ ‡~¸:ê¨6ýôÓ{;ÒÔžÅ3ïŽ~¦¿˜0k®¹¦IóºY$má‚Óhÿb?¸N8á„Æ¢_yå•}Ñß~ûíÞo„¾Äص Ú~ûíç ‡±ÓÒþ Ô6ážd’Iœ_Úúü:à 3ø52RÛž 1^=Z 8dÈ׿dq ÙÑüsÏ=· 1v±Ìogá…ö+¢vMR7Lhš h_’>Í4Ó$ÙØ¥,¤ZmìÍ6ÛÌÖXc ÿ±e5Ü?4e$x²çž{ú‚¢m´lä_,ÓÊUæ›Éäs?Hf”/¦ã?¾•&;ªnÛ„ó¢B€Ñ–çwžÉ¾¶ÕW_Ý«Ý}÷ÝF &N¨ln“=š8Fi§Œm¶ˆ€Ã" YÓ‹!ÿðÃWäÅzÙ뤓Nj²á]Ë²ØøÉ†wS*:nEýcq§W ºH—]v™Ýu×]®µió)*ƒX¦•+&ÎsÌáŽ=ãÞyçí˜cŽId+mwBÝú$²#YmµÕ\ãvØaFpÖ(£Œâ­Ÿþù¶ûî»»>묳º–—äZí‹Mª‚­{Î9çöˆ…ªÂbA°¢iD%¶fÚÁ$AXuÕU½-ì]Þ} ¥Ÿ)ÊA]4ý­·ÞêmbF°ËTë;Ø+¯¼â»‚}ÔQGyûüaB)°@@yؽ@NÚÏñÞu×]ב#|úÂÎ0òÈ#ûb¥ Gì ]IY/¹Y´DN 7%­êž;^;$øÌŸA+"`ˆ™A°ZL r4ƒJGJ@:æœsÎ HÐó…á:B™(hɼóÎëå@Kd“'eAX´ {^DK¨K; ZhAžç×BKÎ:ë¬ ¡ðºÔ úé§ŸjöO3Ì4ÓL^ÄB~€ßƒ–P¾ùæógP#-¢ »ÞÇ(­@KâØüE@šèS-ÑB  CäI‰-¢ ?Æ[Ñ"õgò´  ZîŒä"´„U[A wEå:€m´]ö(-„OH–d«:\Èb’wºÂpÐ΋/¾„Ø$ÙQ¸Éc2eþ$yõÞH»:ÔÖhÿ„#û˜d&å¾J»D’ä {Ú)’g GiýÂ_zœI¥Ô ê“O>™@Œ1KxwÅ{cz§]‹„»0ž[+ºíÄ–ï½÷&ðW–Ø2……g“ýóEÚ<7/›H;ØšE”u:‹ÊeÓ;Zh¡l²?WëvtÚ‘Í6ÀÁKšÒ>éØÎ§ÓE*îá%HUÍ<ó̹Y˜'üº•zU¸Á¯µ½Øòæ›oÞ4O±Q\pÁõœÈ<â¨Ä¥[Þ{H+ê_QùZéË.»¬ñ+©Ad· v›%š·§³ïiæuß}÷uûQ©›(µ¶åFß…I#§´¡jrÞ‚` l?h‘9§A¨PCmT+,Ç/È‘'žxbÐîW­hEž0î ³„ 4ª"N+ÉÓaY¼F¤¬‚œôF«µ¥ü03K8‘ÓnqÈ„(ÛÚäˆq(‡WCPy7§‘Ä[pTi†•ùØqÇ=¹òÊ+ý¤DŒ¹"Y’¤ì€À¤ÀzµÞpbŒI•Õþ§œrŠ£%EfK­¶Óùì˜iÈ37Ìî³K§ÝšäC'|˜ ´G½ŽœUÑ5œ1bFŽ=öØŠôÝvÛ-Œ9昧-ŽŽ)ŽY–ÐþäáÀ&¤Ël¿ýöÞ–&ÃQŒlÝ¢gEØ9"Á#‚I“‚Ç‚„-ÐÇ, ëv„ˆ±w¢¨°+0FÚÝi§Â8ãŒp²kq> % 5¢»ãÒARÒ í NuçûH‚VÃçŸîN:Î)õÓN/ü¤}vQÊA8² ^E;+Î};¨Hsu´á΂‘²wÑE[>Þ»4^Xf™eÂX1n\&̺bR„% w³N¼ŒEÈV½øâ‹7$Ü—\r‰/»½cªðƒ˜`¶nø@ðc‰0%ùÂý=¨Á>da°¨Ϋ®ºŠbNô“v´sŤÂ+½Î:ëôh˜Q¡ a®¹æJ„8V¾‰ LÚP<Œ§e…Åé€ðæøœ½‚㣠âs{á…vòz¨H¸{ ‚‹¤Ió[°[¢ÕdGq%Yg'–Wb7ÀÉÅlÓà=™8Ú¸øâ‹¨Át€S¬Ç•8b7 t_²x²hâhhǰ 7ÜÐ4³K¤Ðw6é›L+ºŠ¯:4ÉGãÓF$" #i‚=WÚßÛ‚_ÕpíX/}%„‡÷¦›nòpÞ—Å×µð=d~AÈAš€8#ëC²ËcRÅ5ëS¯Z€šÌÛa‡ü‡Ž#¯…mDxüÕ,õJl‰œ¶¤DÓA p4A+ÞPo2W<&$5—TÒ ANÒBóÓ‰— ªBø[ pŠm6s%î%ûOŒäg¸ ²!„‘1²ÈâïôÓO÷zŒ#xEym÷\œ@`@‰ø”LöiÂM#D0"àÒÈWÃÂK‘“ĶÈYõ¯¥ø*{–ÐÈA#jÚõŒïEe2zÌNŗÛÙf›-Ýņï{E¸œÐn5rÉI#PÚV¶µÉdð¸k&åJœsšlV8ÐAÀN|p@ ’Ð_á­8¥ß•wó œÊ#‚ÁÁ`) ”“XàÀ¥–ZÊ«ýH á¾uãÉöz™gR—ƒ.ÆñIØE]äÑ“œ¼ê+šä'ÎËÈd0´n-bg!è‹0+ÜÔ•sè‰påK´<|n†ŠÔÒmñ¢*Ÿs>òf'‘Iä2Á3q÷-QÖ¦P ´tòyŸå9‹ôD;ÛK_Åd»æP¢VµÛz´·‰Ó£°Ñ¤l³NIºÁ¡\`ÒIîáœö;6-ýâGÐÖÚk¯ÀyØä<Ç|ʦaM§@“ÈÇcœØÜ A±Nö˰íùœ-°¹õ%“g›-F"@ {‚ç8ä 62Ù‚N’ݯ¹ÒW<îÅzØÉô'Úþ€i´$ÚÏøEéµXŸ+¶~´¯e›¥"›»%(o¸(¨l4Ž"§liì4æå]‹œ °Qœ°jCñ.¢£'Ÿ.ÃEW-+]>Þã@±H«ï%šÅ[4Npn„„%KàÚŒ üXuôp(³åã3Θ>òˆ-]Axp4#µÆèǘVí¡ÀzÔ˜‹vP‘p·äP{ÌIY± J[y6'düꥢ€¶æZ'jÍ8Uëæ”ŒªññÕr€ð1øå‘à0ã×(a¶Äo"­›-O ¿HĪ7KµÔ¢SÚlûµêµ$Ü|IƒƒÓ©„ŸušŠÆRôŸD‹Ê·šŽ3šRáü /Ä‘jÄùZ}oI¸‡V§z«]¾ÐI¥Ó[ï­ç=|݉T;¼,¶^AK:q’Ê>w>Jáîü9,GPÀR¸ S&w> mî<¿ó‡[Ž 9ÀH‡UÄ1öÐÜÀTÙ£äX¸¼–9À±½Bw{t­ zÔ2¡ä@p ‡æî‚1•C(9à(…»„®å@)Ü];µåÀJá.e k9ð?;{8ôOˆIEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1FieldTypes__coll__graph.png000644 000765 000024 00000014410 13515046516 027170 0ustar00tangentstaff000000 000000 ‰PNG  IHDRš{Œç™0sRGB®ÎéÂIDATxí ¸NÕ÷Ç·¡2”LT"ÉRB“ˆR4Ó}ºY³fG»hÏîÝ»ýâ¹'ÍNx¾øâ ³dÉ’Lõ€ÉÌ™3•—úlýÂrúF:šdPY‚5m¨P¡‚Ç€ÿúë¯>7í Ï¢I½&Mšès=”á¯\¹²æ¹øâ‹=>–5jä]z饞hjÌýúõÓWL V´¸'+‰_žÄ©½7ß|S'—Å6O‚ƒ`6/X°@ŠÁ‚‚‚Æ`£-Ð@–H †MKtE€õÕW_Õ×€€CgŸ}¶W§N„m‚v}â‰'¼|Ð+Y²¤òÙ?›Ø,1‚†GdyµlªõH£O ÔQGåÉR§ï™Œ¤Ñ~ ×yà§Ÿ~ªÂì¸AÐÐú–zõêå¡aˆÉ B¯¼òŠj0&#šûúë¯+®h)´;Ïh8&ÂÞ©S'¯H‘"1Ø¢}-¶ûKÐÒŽu À¡I:a°ÇD­›G}ÔÈadF™ .¸ ¦ ìžš5kÑD~z­ZµüûT7Ç{¬¹ä’KÌ»ï¾kd 5”%L³`a[‰ò‹¥ÃÈ2nÖ¯_oDSøé܈ðë36Ž%ø ÑÆ6É”/_^ï­S©R%“H_  }Äæ²¼~æ7A*#˦áUNÚ*2¦÷×]w¹÷Þ{ÍøñãL.#“Ø\sÍ5FÌÃî¼Û´i£6®¬$fòäÉÚO° b+Ú5A+r6)G72“ØAFf bÄFS‹ï;<±Ý|Û÷¢}âÙ’>‹f¨Kf¼’,'Ê‹6nÜØ°°±ÝL‹-LÙ²euWk7ÖmÛ¶ÍTo¹rå´¬E‹ùõÓH–T½ÿà*-¥ý9í´Ó´Ì}íê¦0tôÑG›æÍ›ë¤3fŒ ™hhÝŒpªÁbs2vìXíÇðáõŸ¢ábŠ?'prTÐøûï¿ß°ã9ýôÓÕe j\;Í,dÇÉîðÊ+¯Ô«,µš&» §E‡-8åüðÚÿ̬fÆ>þøãê2‘%Eù(WŒ{4«,K:8 y¨›‰À@ˆM¤šB–ö/_¾ÜœuÖYª•ÈË©òˆnÎ9ç#ƽm¢%MlC#Kº‘eOwh„Ž~¡a£Ð­·Þj>ÿüsí—uÑ÷;î¸Ã0‰Ð~bÜ«–C{3ÑdCc^~ùeݹ<؈¥ YËËÚ–ÒÝ `”²£bÇ)`x²<ªqJ}ï¼óŽÚ2Z}çÎÕ’^x¢E¼‹.ºÈkݺµ¾KµëTùƒÍA^ñ¿Ù$µ›®½öZ¿\k/Zq û;ÌŠ+ª}Ã;ì»ëáV›¬téÒZö ,•ž,¯Z 6Žíƒ-7þ*Ä·Ûd9y­xÞyçùiÏ?ÿ|ŒÍ6bĵÅ,v,¶%› 61–è ýþãÓ¬Y3ß.ÃNc À‡~‰&ޱÑöÕ~[×\¹ë¤aâãñÄäv<‰É7zy‡@ühjÜÆóFy;KœúâI¢ÞÊ•+ã“Õ˜ÌO?žn*Ø,ØgqƒqÜð„È’‰…º264ñD{™Üv#|€àZ¢ M›6õ-Èæ>«‚–£›t,Æmýúõ¹ÍD%J”ˆIÃ(Æ1/#<° ᓈ°qâ7ð‰VÐ̓áÍ2…XÒí²ž•rX2?úè#u¶¶k×.Sغñ-Ë$Ùð9P”ã‚v :–ëÅÞdS‚±ÏÎ4«$nƒý¶_)Œº´<éÚh6_N^YšqÎ(b)%2!a¨}6e'²l$¼ùóçï“?72duéÌÑ]çþ˜1:.£;Ië&IÕgv­bü«)‘l)O•ÿ`~wP Aä`\f›úË‚BÐWzüyn ̤I e]šì#@aèÔSO5ø´XÊðÅäFèpÅ·î ÒpË@œ\‘˜¤Þ' ÖëËÿÿC»zJG=ç¶¥“À6îuKä9¸Œ’’ óÞ{ï=å»ð ÕÕBB1«!–@'䃋%Ì¢"ønﯾújmu€gW+NÛ˜¶Îš5+e°>8.„©Äæ=:ò®5XnVîÉ¥SÌêŒe¶sŒˆð ^v Š“¤ÇoIáä´$1Huºâ´Ä‰ûÈ#è«;ï¼SÃHD(8N$1R IÉ`ج¡¯hZÂS+BËÑžzõêiô‚Bв„…ˆhŽY‚íº¤â„%O$^jø‡]œ²´Ÿå—vLtP/ñ@VÂNÜ"&ˆ{E‚ì>k÷îÝU ˆOŠ“× ˆ,wœ—ÿ’áƒ(§(Ô£n—;¿€7O=õ”îêD{š3Î8ìZµ*S.Ù h½íÛ·W/>Þýûî»O—y–ö áV!FLƒ² ii!â ‡ 2 f0on¹Ïsî f?Ú { Û‰Ø 1BKrÎÍÞª]ÁwˆÐÒk¯½æ¿'6‹vJ—‚®þá:‘½&X_/ýÀƇÚ`²Èy8#'UâÙsÕsžÒh K ç*qF´•ZÔƒ'z9u+Gt ÁwˆS6øNà¼OŸ>FŽßج¡¯œ¬Ø¥¬§<´-§46lhä`£‘P’Æ7ñ‹åvÚ7"¹¼,9Ë ö”œk3bŒ–Hœ’,‡A"À8Ú¨ÄÄ9 ƒEPZNkYØCù‰äqìˆ(H˜`=nN–ÀÏévºrxÓÈy8}Fkæv:è—N¾„¥Šól¸Œl®œ ö¡/l7„Pb†‚_ðj¤ÃŸKvyzî+˜?Ý{6'|â‰S,h§o¼ÑÔ¨QCë¡í&LˆgÕãOü³ŽœÂ5râÖØ0™sqB>¶¸aÛ‡]Aº¿¾ä…¦!<ÉšHlON2¨1Œ?ŠgÞø*F=Çs MÇ?rÐbœA[ üUäáÊà#Œì­¯žxbéµZ5þ]˜gl@„ˆö°AI´ìƒ9ˆÝ4V\Fé4§w®Öh|'s“Ú- €9ÒÈÑÕVVÈâó£9‚…€‰S²òÁ¤˜{ì:kãżù&XŸ[„,d—²åjAc–³|¥C,/JäXsÐvòW —± _ü=ÇÄù8І@®´¬t 9ásbIut`8èw6Wkº8AK1ÇŸ%œ ¥ ÛØ±säÔG¸“i§ÙÓ¶Ñ^ãq?TiàÀ©]%!Ÿÿþ ïPÅ!Ý~§%hœ9?¼Ðé‚–ãÆ ß!gÖ~•“Âfs|‚@Z‚†Gú`ôJg×H¿ýöB-jêÔU‚C1 wåLx*»Ú››Êq6Z£1zôlåÎÈØ#ÿþ]9«´2°|ù&ù1ÿ¾7Øå˜1ῲ!dyšÍ ZÈá?~žè (÷ž={å‹ý¾—“²îçŠBÂç~t,,PcÆ|+ùX·Æûï'ŽB„-óPâs-ÄhÏ™³V¾±'þkI=92þŸÍ¢ˆCžÅ Z.›–]¾µS¾Škœñßi“Ü5NÐR€Ã+jܸ¹™–MÞ,X@ιÍãÖÑ>p‚¶€¦N])‡ÿLÈ•‘±WŽ1¹å3!8q‰NÐâ‰?~®h®d0yfåÊÍòÅvÿý||^÷ü?’!ø?ŽCøn÷î óÁ äh÷¿o \ØpŽR#à->Ÿ¾Tþ>õ¯§àòÀõá(5NÐRà3iÒwòÿc> äWÇm0Çíwßý˜¢$÷*­ÿ‚rpù"âò å.tp„G ·ÓháÁrœp‚<—5<NÐÂcå8# à-x.kxœ …ÇÊqF@À Zð\Öð8A •㌀€´๬áp‚+Ç'hÀsYÃ#à-ÚO§-kÖ¬1¥K—ÎÔNŸIn¨¿SÙ²eýd° jè>ø@ë¾óÎ;•kœ£–~ûí7³{÷nCŸSõ~ÚK\› Øbôšl b˜Ò|ˆ,h«V­’ßFº×ÔªUË ú¡5jè¬D @ÌD–‚'Ÿ|RnÀ€šŽ°°ìÜwß}šç±ÇÓYý÷ßëõíÛ×T¨PÁ ºvíª‚”/_>S©R%ƒ°Lš4I˱(vìØ¡Ÿ‘‘aš6mjºtébfÍšeºuëfjÖ¬i–.]*?˜¡e÷éÓG'ɼyóL§NLÿþýµ/ñ϶ŽD×+V(ø‘ÐzŸ~ú©¡íÔÁ`ž}öÙ†¥×N&[ý¢Ï%D¿Âå&9øZJÖO°dE ]}ô‘©Zµª*–ýdc`ËŒrÍ6A»õÖ[U Õ­[WÛÐ,öyóæÍ¦Aƒ:‹,@S¦L1uêÔÑY…M‚f@˜î¥—^2íÛ·—_÷ýÞ÷ꫯÖå>´T2:餓L£F´øÊ—/¯ÑòßqÇ ´-ÇjažÛµkç Zü3ùÑØcÁiA¢oh²óÏ?ß thg4úìÙ±?‰¹±|ùr ÷Ñf4mذ“ ÅW_}¥US'Ë_0¢~‚#“þÜsÏÕvaÚ mIGÓÑçDcì_Vï#/¶b»Û²ë=†˜y35M'PdÔ8„ b{ ‡®BÊ;«½¬! oОá9Hñ†66‹->«±¸çu†%„'‘†ÐXÂ…Ð|AbÒ Í±ƒ´vé„í…vbR2a±ƒKs¢~"P+ÅäÉ“õž?h?lÅdcÀ$ˆJÙ&hV öÕ ÂVcùÂØ?ï¼ó4Ëœ9sÌm·Ý¦vZ ›nذa¦M›6ú~ûöí ›6mÒ´D¶mÛæ'£M(‹Ùo‰rÐrK|*¡µyÒ¹2áØø°4)RD³¢%Ø|ÉnV¯^í÷ ¾°„г;G&ìO<“5Q?(¨C‡þ2Ë$œ?¾nš°c®›¨«÷£–"ýúõ »Â#F¨V,{± e)ag ³œAÁÆa°Ø|0#“›Ï>ûL5Õ+¯¼¢Ë˜]¾ÉC½”ƒ`³‚&€°í^xá]î=+Sˆ?”‡QN=h›3f˜GyD7#Áìh²%J¨­HŸh‹] ƒ|ÉöšŒ•"H‰úÉÛqãÆ)Žôù™gžQ;•Ýv²1–›Õûý&hVã!X,›Ø9—_~¹ßî›o¾YµÏ 7Ü`®¸â ݾ·jÕJµÂ£>ª›ˆæÍ››¶mÛÆø˜(À–Í=K'ƒMÇò€F¬V­¯”°›(­ÊN™: |üøñzMô¬L!þ01ØŒ0®¹æCÛqÕØzh+…wh4ÚØ¹sgµÓ‚} Vo òŽÕ¹¢Eƒ”¨Ÿ˜5vWIØqlÒºwï®ög²1–›Õû¤çѾüòˬ–¹Ï|úÌ`f]ÐxùqHÚå;džÀ`%™0Å»7°‹ð·±ÕÇÐÅçfýdÓ¦MÓm?ÚÎúóÐ(9E¸,huÄ÷%X'Ë;|Ø´A+È“ì~É’%º ²Lã‚Âôœ©“+“ÀÚÕäO5¼OEö˜ÂGÉÏ£Å1fË#³ ÿ*;!žèpõêÕã“õMˆs1 Q&£ø C2¾(é¸{‚˜deaÄG’ñÓ™dàÈ®Ý Yð=÷Éú™ ŸTc_~:ϱú6œYàey·tË-·˜&Mšd¡„ÿ²°[ îÖlAǼzÇísðЇÏ(¯ÐرcU@1Þƒ”[ûy@–Î 0î>ï jéÜo›¼§ëIVp‚–Ô\ž´p‚–6d.CVHºpÿ•8í<8€“Q&AÃ÷Ô¢E‹dü.Ý!ÎÇÏÈ3í:ƒ/ݽC ›èíl´lBÒ“'h©ñqo³ 'hÙ¤+&5NÐRããÞfÿ0 Ù´þmIEND®B`‚mysql++-3.2.5/doc/html/refman/myset_8h_source.html000755 000765 000024 00000067276 13515046516 022641 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: myset.h Source File
MySQL++  3.2.5
myset.h
Go to the documentation of this file.
1 
5 /***********************************************************************
6  Copyright (c) 1998 by Kevin Atkinson, (c) 1999-2001 by MySQL AB, and
7  (c) 2004-2007 by Educational Technology Resources, Inc. Others may
8  also hold copyrights on code in this file. See the CREDITS.txt file
9  in the top directory of the distribution for details.
10 
11  This file is part of MySQL++.
12 
13  MySQL++ is free software; you can redistribute it and/or modify it
14  under the terms of the GNU Lesser General Public License as published
15  by the Free Software Foundation; either version 2.1 of the License, or
16  (at your option) any later version.
17 
18  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
19  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
21  License for more details.
22 
23  You should have received a copy of the GNU Lesser General Public
24  License along with MySQL++; if not, write to the Free Software
25  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
26  USA
27 ***********************************************************************/
28 
29 #ifndef MYSQLPP_MYSET_H
30 #define MYSQLPP_MYSET_H
31 
32 #include "common.h"
33 
34 #include "mystring.h"
35 #include "stream2string.h"
36 
37 #include <iostream>
38 #include <set>
39 
40 namespace mysqlpp {
41 
42 #if !defined(DOXYGEN_IGNORE)
43 // Doxygen will not generate documentation for this section.
44 
45 template <class T, class key_type = typename T::key_type>
46 class MYSQLPP_EXPORT SetInsert
47 {
48 public:
49  SetInsert(T* o) : object_(o) { }
50  void operator ()(const key_type& data) { object_->insert(data); }
51 
52 private:
53  T* object_;
54 };
55 
56 template <class T>
57 inline SetInsert< std::set<T> > set_insert(std::set<T>* o)
58 {
59  return SetInsert< std::set<T> >(o);
60 }
61 
62 template <class Insert>
63 void set2container(const char* str, Insert insert);
64 
65 #endif // !defined(DOXYGEN_IGNORE)
66 
67 
69 
70 template <class Container = std::set<std::string> >
71 class MYSQLPP_EXPORT Set : public Container
72 {
73 public:
75  Set() {};
76 
78  Set(const char* str)
79  {
80  set2container(str, set_insert(this));
81  }
82 
84  Set(const std::string& str)
85  {
86  set2container(str.c_str(), set_insert(this));
87  }
88 
90  Set(const String& str)
91  {
92  set2container(str.c_str(), set_insert(this));
93  }
94 
97  operator std::string() const { return stream2string(*this); }
98 
100  std::string str() const { return *this; }
101 };
102 
103 
105 template <class Container>
106 inline std::ostream& operator <<(std::ostream& s,
107  const Set<Container>& d)
108 {
109  typename Container::const_iterator i = d.begin();
110  typename Container::const_iterator e = d.end();
111 
112  if (i != e) {
113  while (true) {
114  s << *i;
115  if (++i == e) {
116  break;
117  }
118  s << ",";
119  }
120  }
121 
122  return s;
123 }
124 
125 
126 #if !defined(DOXYGEN_IGNORE)
127 // Doxygen will not generate documentation for this section.
128 
129 template <class Insert>
130 void set2container(const char* str, Insert insert)
131 {
132  std::string temp;
133 
134  // Break str up using comma separators
135  while (str && *str) {
136  if (*str == ',') {
137  insert(temp);
138  temp.clear();
139 
140  // Handle comma at end of string case
141  if (*++str) {
142  ++str;
143  }
144  }
145  else {
146  temp += *str++;
147  }
148  }
149 
150  // Save final element of set, if any
151  if (temp.size()) {
152  insert(temp);
153  }
154 }
155 
156 #endif // !defined(DOXYGEN_IGNORE)
157 
158 
159 } // end namespace mysqlpp
160 
161 #endif
A special std::set derivative for holding MySQL data sets.
Definition: myset.h:71
std::string stream2string(const T &object)
Converts anything you can insert into a C++ stream to a std::string via std::ostringstream.
Definition: stream2string.h:41
Set(const char *str)
Create object from a comma-separated list of values.
Definition: myset.h:78
Set()
Default constructor.
Definition: myset.h:75
Set(const String &str)
Create object from a comma-separated list of values.
Definition: myset.h:90
const char * c_str() const
Return a const pointer to the string data.
Definition: mystring.h:288
Set(const std::string &str)
Create object from a comma-separated list of values.
Definition: myset.h:84
Declares an adapter that converts something that can be inserted into a C++ stream into a std::string...
This file includes top-level definitions for use both internal to the library, and outside it....
std::string str() const
Return our value in std::string form.
Definition: myset.h:100
A std::string work-alike that can convert itself from SQL text data formats to C++ data types.
Definition: mystring.h:139
Declares String class, MySQL++'s generic std::string-like class, used for holding data received from ...
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1SetCharsetNameOption__coll__graph.png000644 000765 000024 00000022100 13515046516 031152 0ustar00tangentstaff000000 000000 ‰PNG  IHDRç·ézI×sRGB®Îé#úIDATxíœUÅõǤ7¥Š € BP 46"`4‚QDŒbAK°E!€BGŠbDº ‘&È_ŠH‘*¤·ûŸïà\Þ¾}o÷±°o¹ûÎù|Ø{ïôùÍüæœ9sß%‹çy#EEPÎ7¦f7-ºç|k•¶GPdoVAPÎO”œçç¸h«Qrê$PÎSØsfZÙ½{·|õÕW™¶‰Ü±B… ÉÍ7ßœ©!ÈÔä\³fÜ{ï½™zµs5kÖ”E‹eêîgjrº‘ûé§Ÿ¤|ùòîQ¯Gà™gž‘/¾ø"à½H½ùºçL#M¡dJÎ ]+URG@É™:FšBÈ”œ»Vª¤Ž€’3uŒ4…"!(93öÈ•:T:wî9ò‡r ѲeK©X±¢/^\nºé&éÓ§œ|XˆCÀ‹rÛ¶m+¯½öš ã}œ9s¦Ì˜1C~ýõW?ÜaLΟéiU" `.ÓŠÑ žé²g&AL}œ7ožMã7Ú+y4hàÝrË-þóu×]ç=zÔ«W¯ž×°aC¿\3Y½lÙ²yf‚{K–,ñ.½ôR/_¾|^–,Y¼Ò¥K{Ë—/·iÍ„õÌ«g^Ö¬YmúÚµk{yóæµq=zôðÌ›/öþð ¼Â… {9sæ´õ-ç×GXýúõm9räð.¸ào̘1~òÈ#rÉ%—Øtí۷ЂSAW^y¥uÚ@zÒñ "¦¢ÌQg´¦ÐfL\Ìo¤gÏžb´“½ÇéC[ &vöìÙÅhkþ‡2è—“”êpiB¯ôS—|F£‹Ñ¾Ò¥K»Ø­X±ÂOÚ«W/)X° ÝûÖ¨QCV¯^íÇéÍ)”œf΄IŒTªTÉ^Ñ,ˆ1“¬3¤I“&Vƒ Ø÷¡MˆÂ=š÷ª«®²$4æœlذÁÆ×­[×^ù¹¢IøûÀÆüó55yÊ•+çg%q{A?"솅O+‹D¸ Á°HãäLë`/Ž ”*UÊÞ‚“<ÄNòäÉc÷ùîY¯§PrF˜ hªXâð8p ˜ý¥4oÞÜf3û9yöÙg­ÉŠÉì9­ãÅMÈ-[¶øÅ‡š~ào7›7oöƒp¡•BÉc ÷3‡Üà¥eÑy÷ÝwCBOÝN:ÕšÐwÝu—w¦u¸…méÒ¥~`€ ¹ÄбKŸˆ×Øfa""CŸï¸ãk>÷ÜsrÏ=÷ˆq~Ø\îÌýfÕªU­–ÅôD‹¢áØ“²O4Ž#0`@Ôš˜Ôìs15!;û9gj“ ï*{HLÙ¾}ûZS¹zõê¶¼§žzÊ7¹ÙÛ²eŠVÄL'}·nÝ¡ÑGŒaµ=&f¨©­ÌUSK MÙ»woÛ.úÉ~›}j¨Fvéõ%gtl¢Æ¸U2Þ}÷ÝÖ$ã¼ÐÉßþö7_Ë(P@0õ^|ñEÉŸ?¿ð¢N&~,\«V-û€ËÇÕ™ÎÜcÖ²_+Z´¨|üñÇö¨G‹ö·¿ZµjÖñ2|øp??ÚMˆ°H )¹"Ü¿ð ö ÙÿbðãeÚÆ^ÑI´:p(a °`"Ónpa¢CÑ.òcjÓþhBÞÐ~GK—páu3ÇÔì3=J‰©Ð°D?þ¸g&aX¨ç™3FϘšž1[“ŧ=n1g™žñÀúG)¡ 9Já¸rŒvóÌ~04Ú¯­êÍäÓ$IÃGBûÌŸ?ß3fs²¥¤T‡ñ¸zf™,ôÑh~ÏhmÏœGL“ÖÀD9JIˆ[§ÇŠ‹‰ˆf„}çw’UÁ¾Ž#„H‚Æuæg¤øÐ0ÊAE43ÿÒ"hÈXÚ­Ž\¹r ÿ" }Ä2PI;JÎ4b‡‰øþûï‹YÅí¹^‹±¦áµ×^›,ûe—]fßJñ[_LÆô”xÔ‘žízÙY0-‚Þ‰híÇ¡bÞZ±Žðc‰hy4üüGÀ}¦$“Ch:„Îÿ¹¨-LP”œ™hà7o>ýÒ}&êVÂv%!öœüÒ½YGzÿþc2jÔsFY9³vÑïï'‚$9ãõ挜0yó^%^Ø@î¿¿—ù בŒlJ\êæÇ™]259y[%û»’ÌÍ&MÞ2om0oÍ2¿ŒIîýM’X€î91L)7rãÆÝ–˜æEcÚ.H9±Æ%g`†*zCÇ[d^¹Ëf¬‘yóV›ßIê—¢£œ%gpÆ*jKGŽüÖüû„çÕñãGM«ÁA@Éœ±ŠØÒ•+·š—,N}χ'OzÆ´1­ %g°Æ+YkÇ[hMZléÒ æ—0;]^Š€’3 çšÈ™´.,{ö¬òé§jÚ:<‚zUruäL».\/[¶$+èøñ“2r¤š¶ZÛt%g€GðÓOOyi#uaÍšm²|ùéÏ¡DJ£aç7JÎó{|¢¶ÇϘ1ÉMZ—£È«\”œ»¯¿þÑ|‡è`ÔÖ³UÓ6*<ˆPrb˜’7rìØæ+z§¿/›<…˜¯ÿí5ßÏ])JÀ€’3ƒÞÄ#GŽË¤IKì™fΜÙ̇›OýÔ͙3»ÿ|¼=¤L2õ‹ïÁ’Ô[½wïAyê©Û“$ä¥÷ ›OhÞ‘$¼P¡È_vO’HÎK2õgJÎKÄÓ©Q8‡ºua>SÙ'jÐb㌀~¦$΀kuŠ@Ìèž3f¨4¡"_”œñÅ[kSbF@É3TšPˆ/JÎøâ­µ)1# äŒ*M¨Ä%g|ñÖÚ˜PrÆ •&Tâ‹€’3¾xkmŠ@Ì(9c†J*ñE@É_¼µ6E f”œ1C¥ ø" äŒ/ÞZ›"3JΘ¡Ò„Š@|PrÆo­Mˆ%gÌPiBE ¾(9㋷֦Č€’3f¨4¡"_”œñÅ[kSbF@É3TšPˆ/JÎøâ­µ)1# äŒ*M¨Ä%g|ñÖÚ˜PrÆ •&Tâ‹€’3¾xkmŠ@Ì(9c†J*ñE@É_¼µ6E f”œ1C¥ ø" äŒ/ÞZ›"3JΘ¡Ò„Š@|PrÆo­Mˆ%gÌPiBE ¾(9㋷֦Č€þ·ó¿AµmÛ6)Q¢DÌÀo ³eË'9r•,YÞ8ßšs{š7o.ãÇ9}fO¨ä áž={JÕªUÃBõ1½x÷ÝwÓ»ŠÀ•¯ä ²† Ê 7ܪéÀ„ dß¾}é]M Ê×=g †K›H(9i´µ¯B@ɨáÒÆ&JÎDmík PržÅpíß¿_ž|òI¹üòËí1̽÷Þ+}ô‘=zÔ/u÷îÝIžýs³jÕ*iÒ¤‰üòË/¡Ái¾_´h‘´lÙR*V¬(Å‹—›nºIúôé#'OžŒ©ÌãÇË®]»ü´mÛ¶•Ñ£GûÏz_”œg÷믿.”FÉ«¯¾j Ñ©S'éÒ¥‹_*$5j”ÿzsâÄ à±’'4oøýäÉ“åú믗 H‡䥗^’’%KJ÷îÝ¥Y³frìØ±ð,Éž'Nœ(EŠñÓݶÁEìܹÓÛºu«wäÈïÛo¿õ–.]êѧ3‘V­Zyæ%„3É’ÙÓ”ÌÞÃXûw¦ädÒB¼¦M›Ú‰íê1oy³g϶ä4ZÓNö¬Y³zFËz=zôð®¼òJ¯J•*6|Ö¬Yö )çÍ›gï[´haËe¡(V¬˜Q™3gzF«Ù49räð®»î:¯hÑ¢6Θž6|Ê”)ö9ô‹DåÊ•=£ÝmpΜ9½úõëÛ:(ç‚ .ðÆŒc‰J;©—~Ѧ2eÊØv“‘¶ÒŸ¼yóz¹sç¶mƒÜH×®]mŸ*Uªä·ýÖ[oµØ1üQr&i šµi4FÌ$•‡zH>ûì31$²{ÇÞ½{‹ÑŒò»ßýμF—Åî%³gÏ.C† ±æ%U-[¶LjÕª%FŠ!J²ÚV£±ÄQŒ&’±cÇÚkëÖ­ÅÒÆa®[·ÎÏËÞ©S§ŽænhÇÕW_-kÖ¬qAbˆ'?ýô“ìÙ³G7n,>ø \sÍ5þþÒhQ)[¶¬Ÿž=t›6mlýì¡Æ–zõê m¢ÈòåËåá‡ò¾ð òå—_&i£_˜ÞÄŒ€’3f¨’'|ï½÷ĘŸÒ¹sg1&Ÿðê_5¤]»vÉÿbL^»O… ‘¤W¯^R°`A»¤,câÊ’%Kä矖_|Ñî Ùã ëg?pà€°°`DcvŠÑ†~‹Ê¥—^*FkŠÑæB<‹F4Y¼x±%ùŒ¶µ‹ ûêM›6ÉŠ+l¶òåËËã?nã!)òã?Ú«þIJδáf5$Ä4&¢uq¿qãF«M>ùä™?~Ä’ñ¤æÉ“'b8œ§å"ÊIÍš5Ý­T¨PAð´¢ÃÍfLR›ÆÅ•+WÎÝZ­Ï/þG ìÄìqí-Z m·1{mmWI;JÎ4b4h +W®ôKàW-=ö˜}ƼM‹˜}_²lx]‘ï¾ûÎs¦,xiÑœ‘^Ÿ:uª55ïºë.?ïæÍ›ý{㘲÷¡Ä÷#»qõG…YŽ8óóYåÜ" /¾§OˆY @áèäƒ>ã ãµG˜®ÆsjKÆ d¿zöy¦UV¯^Ý‹ϰ±Õ¤˜Ôùòå³E¡9iGß¾}-IÙ*THæÎk÷˜ÇíÛ·÷«5\kÓ&ò\rÉ%BNCcªÇ•Ÿ‰¦dOÍTºti1ž]»O¥n•ôA@É™F\Ñ&ÐC 7‘!"Žãý”‹.ºÈ–ÌoŸþyßùs&†´üƒ„#FŒŽ;Zg&$ûÎPMŠÖ$œóÖ7ß|ÓÖ6½óÎ;eðàÁv/èºÊY&?‹Ãì4žc>|¸­‡e@TF®­ìM‡*÷ß¿T«VMÐîì1Ýo/IIã»úôšF’9p4àLRLœUO¥=· =tñ\9ä\2­BÞÏ?ÿÜÛ¾}»îhïÝvÛmÉŠ$­q yfÏëq..¥ 6Ì3žZÛîðxwÎ3g¡œ³SÞžƒFJ“Ö0=JI†Ü@Õœi\Ô\6´¯ï¥$gû…42žZÌe<¢f!‘·Þzˆ…×KZ4_j‚IοpÉ•+—ð/’àè‰æeŽ”^ÃÎäÞ‡³+Os§ °žUÎ$Ù3>ýôÓbÿϸ¶ºuëÚã˜3Ψ⎀jθCž¶ qês4m™CrñrƒJ0PÍŒqÒV& JÎL4èÇÇöÓ°LÔåLÝ%g&ÞcÇN˜—¾Ê$½Ñn€€î9Ãæ_ß ¢äÎ]Áx_ÉO4æ—FAì‚p&¬r%çoXp¬0räÈÓÈìî£Vš—vÊË/ÿS.»,ùIºã^ÜB[ãÑÆ,}Æ£"­#ý8xð¨\qEóó­ãæ-žkÍhËô«LKŽƒtÏ/¨Ó±ž/¾øÞ|ZäÔ/@&Nüμǫ¿IG¸ãV´’3nP§_E£G/0ïÁžÊŽÉ´iËÓ¯2-9n(9ãuúT´{÷A™={•}‰²gÏb^¼_>•i©qE@ÉW¸Ï}e“&þ'¥sÖ9eÊÿ ûP•`# ä öø™ÏnÎOvtrüø ™<ùô£ÞÅ„m¾’3ÀC¿eË^óÚuæ»·Iîü¾’}¨J°PrxüÆ_dö˜É‡ðĉ“fú£ùzû÷N›ž|d“À 0rä|ãJª5C?iÒ’ÐG½J΀ ˜kîêÕÛÌg)·$Ûoºxómh³ýöô£Þ%gà†ìTƒ?ýt‘ù.Ðéoцwƒ}èÂ…ëÍ·e÷„Gés@Prd Â›‰Vto…Ç…>³/U &úâ{ÇmÆ]æ“%ùÍç/Oá}ß¾C²uë>óÒ{‰$=Z·ng’g}úâ{pÆ*Å–òVP·n#ÌWßû¤˜N#ƒ€¾ø˜¡Ò†&ºçL¸!×%gPFJÛ™p(9nȵÃAA@É”‘Òv&J΄rípPPre¤´ ‡€’3á†\;”œA)mgÂ! äL¸!×%gPFJÛ™p(9nȵÃAA@É”‘Òv&J΄rípPPre¤´ ‡€’3á†\;”œA)mgÂ! äL¸!×%gPFJÛ™p(9nȵÃAA@É”‘Òv&J΄rípPPre¤´ ‡€’3á†\;”œA)mgÂ! äL¸!×%gPFJÛ™p(9nȵÃAA@É”‘Òv&J΄rípPPre¤´ ‡€’3á†\;”œA)mgÂ!ì¶ž7ož¼õÖ[ DÐ;¼o_NÙ¶-¯T¬¸;è]I¸ö_pÁòñLJ÷{P2rŽ5Jî½÷^¹á†Âë³" œc¶lÙ"[·n•½{÷†—<({xˆ{îÙ³§»Õ«" ¤Ÿ}ö™üóŸÿŒXºî9#¢Š@Æ# äÌø1Ð(PrF„EŒG@É™ñc -P""Õ!1õyøå—_ÊòåËå¯ýkº¶îСCÖÝýÍ7ßȯ¿þ*5jÔ:uêÈÍ7ß,9räHµîÇËÉ“'·¹“•+WÊ!CdÕªUrìØ1¹ä’K¤U«Vríµ×Ú$Ÿ~ú©¬[·N{ì1—%C®ô7wîܶŸß~û­Œ=Z5j$·Ýv›ßžãÇË3Ï<#üã媫®òÃãq~Çð²P9r$–léšæ¬5çÑ£Ge×®]R¬X1s¾MÐ0åË—·ZbýúõB|… ${öìòË/¿Hžæ´eÖ å²š•)SFråÊ%{öì‘’%Kºh{eÕô<Ï®òhÓ‚ ÚôD8«#÷óÏ?Ëþýû¥R¥J¾Ö#mE ²Ú†>“wüøñ–D<ð€_g–,Yä‹/¾®]» ÷ÐOÚŸ7o^Æš“gBÓH}ùå—Ë›o¾é·á¾ûî³Ä4hÜtÓM6/Nœ8aµÚ«lÙ²I´¸01K—.-E‹õó€+õÓÎÒ*V¬hã¢áKhi®ŒW¶lÙlzú‚0ÆÔå„ñ|÷ÝwåÅ_tAÉ®võêÕ¶,´™Óbûöí³óhO‰%ìbF,Fô£T©RIÊ‹„+ãõ÷¿ÿÝZï¼óŽ?_š7o.ÕªU“¾}ûÊÿû_iÚ´©Õ¨ÑæFx±n¼ñF¿~ú±víZSƵxñâ6ÎÍ}žÁŒÀ9tÞú…¤áæ¬É ø<òˆ5e¾ûî;ۀə3§,\¸Ð>W­ZÕõòË/[’$Áî¿ÿ~«AÈÓ£G{Ë 1@L\L½%K–ȳÏ>k†Á&OžlËq(—ÁÞ½{·H¬š¬¦Ý»wVØçž{NªW¯.?üðƒ]Q)íDzhÑ"éÖ­›¼ýöÛ¶/¡Ï•+W¶u£¡ú†´iÓÆDLY˜ÙLl&BÇŽ­™÷ÑGÉܹsmžçŸ^Úµkg-j“ŒXÔÈ0)ÁÈi)Lé×^{ÍÆAâ#FØö¤tBûï¹ç[þÕW_m-°el6lh¯¤M ×7Úâho¸0&—]v™°5pmnDë#ùÀ„ŬÁùÉ'Ÿ´ýX¼x±+Ö.ØXV,,&³fÍòãÎææœ‘G¿nݺ¶=Íš5³dsÏL(@g ÝbõÄùÁjäÄ<ƒ€hÔ~ýú +fyÙ`þmM˜8+¨‡t˜G¬‚NÚ¶mk'¢+Çi{žY­9ß!<¦èwÞi'#ïBþéOòµØÔ©SídÌo´;f(”pa…U0™˜Ä8’n½õV› M‡ÉÎÄA“²ªCZúì4, ¯¿þzKl:ú _°eñ¤,&bíÚµ-æÔ“’°±P‚E¸ ¥q¨@ Æ›mDhÛË?üá¶8×° X„Xä©3I WÚKŸÁ9’°øï$µ¹áÒ…^!–3³™SXXVNТlËè–[|]|Z¯gmÖºŠ™ˆÛ«0V0„U2 0_xwb`N!›½Zs -JœÓ’˜lNØhrÑE%‰b»2ˆpä㞸ï4•Dpr°£%ù‡`NõïßßjIÌ34“Ò æú︲oFp 8ÂÙógÁ‚VK¢©"EŠØ+œ9 ¹Áó‰2XÐÂ{—!T3GÃ×-X)ìŸP&&|JÂ³Ø <8ٻ،1áîÒK/µ{ÙвÜ|!Œv3¡žl—6%\kÚ‘Ý|sùh;‹2„q’ÚÜpéÜ•²YP°ÚB…¶‡ÎœƒN°@¦.,­×ÓËJZKø-_¤I©HL[H‰ù‚¹ˆ©‡0)[·nmÍl}ȉiä:êt«j¤òCWgç`%dh9˜ß)Ý•O:´f‘èî»ï¶”ÉdfÅgqqÿж‘~@àd˜Éá‚å€ãÈ1®S¦L±ÄĬ¤><ÁÑÒRG4|i7‚yìÚ©ÏžÒ-"6A”?h;4þ',†3ÒcÊãü •”Úš.%\ñ 1KÃÍA4hàG¥67ü„¿ÝP6‹Æš5kü(`,ŠÐyk_üBb¼9g䌱>»ŸÂ ùðÃíÄu“½Î ö" 6ž<Òa¢qÙãa± gÀ£ !ö~¬lLœBδ&õR&5{2çÌ€x˜­Î$ }f`náðÁkǾs}2 #ö‰”‡Æ nÚ‹#º¼›LžÑ†8“¦OŸn öãüã§zL*ÌØÔ„ÕÙMÊÄÚ`1Švt _Ì5ðÆy¶ôûÕW_µ{q笢í,ˆô;\ˆcO:ICûXXÑð8ÃØ÷Gk[x™¡Ï)኶dû4fÌùàƒìvGQìýYC·@)Íh}d~`–3®ôŸ3^¤aÆöšžΙY›Z#ÝêÑ&8jn¿ýv?‡×x9N(<© :¦Þ8âî¸ã«X…!‰W6Ϙ. /f%N”+®¸B8WD å0±1±q˜ , ¬ÀìÓôÐgÕ92ଯ'‚)F;^zé%«5ñàA°ž={Úx&6{RgŽS‹û44ýÅÊ·•3T„gSÍš5í3ý¢NBûÉËX˜•¤aÕA{Iš>¾ôS/2X!X-ôÃÕM¹xœÊp¡ìÅÁ:!% yX4Ø7Ï‹ô4®lÊâ>üÙÕ‘®X4ԇä+ –´ÙI´¹A|hCÛ&,XàA8å1/™#¡¦­«ƒ4ü;õ÷œ¬êé%8{Ð2h±PáŒóI4‹Û€»xLÌ ÂYÅ `øQ «%fD±YæVȉ&ƒ ìcÐxÎdvu¤v¥}G«2e„ +7’ºÝ±ƒKÂB÷Vh;ú…•À€‡NR—/¥+y±2ipð@.ê —”ð%̸FÚ¿²Ç¦žÐÉ^~ø3“¬œyŒ£=Y$ÜÂó†?§„+iÑÊ´ŸkYc PO¨¤47\ºh}DûãsÀB‰T¶ËŸ–+žl¬Dþ{δT”Z&6f&{œpaBá~$h\‹PN¨3$Ú3å¢ÑS´ÿ"I8YI)ÑòF sßŇî¯]˜»¦„oj˜…:p\y©]Y0Ü¢AZöoi•”p¥LXæGJýŒÖG4! g¼å´ÎCÍ˜Šœaª„{)Ϥz9ÜÁ@~Þ’‰öÚ“$Òyؙԫiƒ‹@Jsã|íU†˜µç+Ú.E Þ¤dÖžö6Ä»UZŸ" ¤ˆ€’3Ex4RÈ8”œ‡½Ö¬¤ˆ@T‡ç:*Š€"¾¤ô¶[2râšå •ôm²–®$¹·ÔÂ{œÌ[ž@ŸE C¤{Î Á]+URG@É™:FšBÈ”œ»Vª¤Ž€’3uŒ4…"!ü?1@l:¡èIEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1SimpleResult-members.html000755 000765 000024 00000012507 13515046516 026700 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::SimpleResult Member List

This is the complete list of members for mysqlpp::SimpleResult, including all inherited members.

info() constmysqlpp::SimpleResultinline
insert_id() constmysqlpp::SimpleResultinline
operator private_bool_type() constmysqlpp::SimpleResultinline
rows() constmysqlpp::SimpleResultinline
SimpleResult()mysqlpp::SimpleResultinline
SimpleResult(bool copacetic, ulonglong insert_id, ulonglong rows, const std::string &info)mysqlpp::SimpleResultinline
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1Time.html000755 000765 000024 00000074262 13515046516 023524 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::Time Class Reference
MySQL++  3.2.5
mysqlpp::Time Class Reference

C++ form of SQL's TIME type. More...

#include <datetime.h>

Inheritance diagram for mysqlpp::Time:
Collaboration diagram for mysqlpp::Time:

Public Member Functions

 Time ()
 Default constructor.
 
 Time (unsigned char h, unsigned char m, unsigned char s)
 Initialize object. More...
 
 Time (const Time &other)
 Initialize object as a copy of another Time.
 
 Time (const DateTime &other)
 Initialize object from time part of date/time object.
 
 Time (const char *str)
 Initialize object from a C string containing a SQL time string. More...
 
template<class Str >
 Time (const Str &str)
 Initialize object from a C++ string containing a SQL time string. More...
 
 Time (time_t t)
 Initialize object from a time_t. More...
 
int compare (const Time &other) const
 Compare this time to another. More...
 
const char * convert (const char *)
 Parse a SQL time string into this object.
 
unsigned char hour () const
 Get the time's hour part, 0-255.
 
void hour (unsigned char h)
 Change the time's hour part, 0-255.
 
unsigned char minute () const
 Get the time's minute part, 0-59.
 
void minute (unsigned char m)
 Change the time's minute part, 0-59.
 
 operator std::string () const
 Convert to std::string.
 
 operator time_t () const
 Convert to time_t. More...
 
unsigned char second () const
 Get the time's second part, 0-59.
 
void second (unsigned char s)
 Change the time's second part, 0-59.
 
std::string str () const
 Return our value in std::string form.
 
- Public Member Functions inherited from mysqlpp::Comparable< Time >
bool operator== (const Time &other) const
 Returns true if "other" is equal to this object.
 
bool operator != (const Time &other) const
 Returns true if "other" is not equal to this object.
 
bool operator< (const Time &other) const
 Returns true if "other" is less than this object.
 
bool operator<= (const Time &other) const
 Returns true if "other" is less than or equal to this object.
 
bool operator > (const Time &other) const
 Returns true if "other" is greater than this object.
 
bool operator >= (const Time &other) const
 Returns true if "other" is greater than or equal to this object.
 

Additional Inherited Members

- Protected Member Functions inherited from mysqlpp::Comparable< Time >
virtual ~Comparable ()
 Destroy object. More...
 

Detailed Description

C++ form of SQL's TIME type.

Objects of this class can be inserted into streams, and initialized from SQL TIME strings.

Constructor & Destructor Documentation

◆ Time() [1/4]

mysqlpp::Time::Time ( unsigned char  h,
unsigned char  m,
unsigned char  s 
)
inline

Initialize object.

Parameters
hhour, 0-255 (yes, > 1 day is legal in SQL!)
mminute, 0-59
ssecond, 0-59

◆ Time() [2/4]

mysqlpp::Time::Time ( const char *  str)
inlineexplicit

Initialize object from a C string containing a SQL time string.

String must be in the HH:MM:SS format. It doesn't have to be zero-padded.

◆ Time() [3/4]

template<class Str >
mysqlpp::Time::Time ( const Str &  str)
inlineexplicit

Initialize object from a C++ string containing a SQL time string.

This works with any stringish class that declares a c_str() member function: std::string, mysqlpp::String...

See also
Time(const char*)

◆ Time() [4/4]

mysqlpp::Time::Time ( time_t  t)
explicit

Initialize object from a time_t.

Naturally, we throw away the "date" part of the time_t. If you need to keep it, you want to use DateTime instead.

Member Function Documentation

◆ compare()

int mysqlpp::Time::compare ( const Time other) const
virtual

Compare this time to another.

Returns < 0 if this time is before the other, 0 of they are equal, and > 0 if this time is after the other.

Implements mysqlpp::Comparable< Time >.

◆ operator time_t()

mysqlpp::Time::operator time_t ( ) const

Convert to time_t.

The "date" part of the time_t is "today"


The documentation for this class was generated from the following files:
mysql++-3.2.5/doc/html/refman/mysql_09_09_8h.html000755 000765 000024 00000023322 13515046516 022065 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysql++.h File Reference
MySQL++  3.2.5
mysql++.h File Reference

The main MySQL++ header file. More...

#include "connection.h"
#include "cpool.h"
#include "query.h"
#include "scopedconnection.h"
#include "sql_types.h"
#include "transaction.h"

Go to the source code of this file.

Macros

#define MYSQLPP_VERSION(major, minor, bugfix)   (((major) << 16) | ((minor) << 8) | (bugfix))
 Encode MySQL++ library version number. More...
 
#define MYSQLPP_HEADER_VERSION   MYSQLPP_VERSION(3, 2, 5)
 Get the library version number that mysql++.h comes from. More...
 

Functions

unsigned int mysqlpp::get_library_version ()
 Get the current MySQL++ library version number. More...
 

Detailed Description

The main MySQL++ header file.

This file brings in all MySQL++ headers except for custom.h and custom-macros.h which are a strictly optional feature of MySQL++.

There is no point in trying to optimize which headers you include, because the MySQL++ headers are so intertwined. You can only get trivial compile time benefits, at the expense of clarity.

Macro Definition Documentation

◆ MYSQLPP_HEADER_VERSION

#define MYSQLPP_HEADER_VERSION   MYSQLPP_VERSION(3, 2, 5)

Get the library version number that mysql++.h comes from.

MySQL++ Version number that the mysql++.h header file comes from, encoded by MYSQLPP_VERSION macro. Compare this value to what get_library_version() returns in order to ensure that your program is using header files from the same version of MySQL++ as the actual library you're linking to.

◆ MYSQLPP_VERSION

#define MYSQLPP_VERSION (   major,
  minor,
  bugfix 
)    (((major) << 16) | ((minor) << 8) | (bugfix))

Encode MySQL++ library version number.

This macro takes major, minor and bugfix numbers (e.g. 1, 2, and 3) and encodes them like 0x010203.

Function Documentation

◆ get_library_version()

MYSQLPP_EXPORT unsigned int mysqlpp::get_library_version ( )

Get the current MySQL++ library version number.

MySQL++ version number that the program is actually linked to, encoded by MYSQLPP_VERSION macro. Compare this value to the MYSQLPP_HEADER_VERSION constant in order to ensure that your program is using header files from the same version of MySQL++ as the actual library you're linking to.

mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1ReportDataTruncationOption__coll__graph.png000644 000765 000024 00000022664 13515046516 032437 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÜÄôßOwsRGB®Îé%nIDATxí]˜E®eYrÎ99$ˆÊ¡(zx€p`"(H“>Q¬r(žŠ„ÅãÎCXD’GæÈYrÎ9gXÒ\ÿ…=Ì{ûÂ,ÎîΛ­ú¾·3Ó±úï®®êêžÙ(C ‚@r °0MrÔ"u‚À]Dàd$Ɉ€\2‚-U "p2dD m2Ö•¤U1‚-Z”¤uHá)ƒÀo¼AO?ýtÊTîp­žÑp«V­¢%K–8 —ÒL™2…öïߟÒl8V¿g4©V­Mœ8Ñ1p¤ ”G K–,)Ï„ƒxFÃ9ˆ‰%$"pI­,$D@.!&"$"pI­,$D@.!&ÉÒ¡Cúᇒ¥®1cÆÐ³Ï>Kùòå£Ò¥KÓóÏ?OóçÏ·]÷Õ«WéÒ¥Kœ~çÎT¿~}:qâ„íü’ð"p÷°HÖ;ìîÝ»7ÉëìÒ¥ A¸Ó¦MKýúõ£N:±›½nݺ4räH[õ·oßžZµjÅioß¾M—/_¦;wîØÊ+‰|HµwöìY:uêœÕ«WÓÉ“'ÌæK—.¥}ûöñóõë×y€ÆÇÇ›Èá{C7oÞ4Ó@clÙ²…ü_¾8|ø0­X±‚Ó¢¾Ó§O›åèÔ2Ïœ9C ,૎»xñ"]¸póƒ/h+¡¾k×®™pëÖ-Ï yóæÑ°aèOŸ>4}útêܹ3½óÎ;ÌÏ3Ïzôh+aïí·ß~6]„$Xj5œê|RŠÞzë-ÖnüãÙÄÂ1"h”¦M›Ò×_MEŠ¡§žzŠ&Mš„,L˜á‘^ Ö|ðçÁ,>kÖ,Z¶lk „÷ïߟ×?8zæ¯ty¸B£îÙ³‡ÎŸ?Ïë-%8lº!nÛ¶m4|øpÖß|ó á7mÚ4DQñâÅ©G|Ås½zõ¨k×®¸åúªT©BjÀó³õO¥J•8ÜjÖ.\˜ëßµkk¶ž={ønÞ¼95nܘ–/_n-‚-˜©cÇŽåôhßîÝ»©wïÞf:%ØœX+&%àf\j¼IÕ‡ÁŠ5ŽÒ,T˜Jó‘ÒV¤ffÓ¬lÙ²%›D0ý`*mBJóP† ƒnüøñ¤´›^JÒP¤4aÐâúòË/Ó<tŒam~öý÷ßç¼yófNÿàƒR‹-HiaR’J•*ež-S¦ }üñǤ45§…CùA0•få{ÿ?0Ua~¢LM}ûö¥Œ3ÊD=hg(Š‹‹£ìÙ³“².8ò5iÒ„MYOiczøá‡©`Á‚ôâ‹/²@ê¸Ôx½‡v*l=&8àÅËš5+)óÈ\¼ð ¤L=ÂÂöÜsÏq­P¡Bì˜À‚ŠõØÁƒ©jÕª¤Ì@]+V̼÷¿)Y²¤„ ¤×•0+!^ÇYÃýïá‘ ¦U±¾ƒi4YyXs†"ÝF«ÐSë:åh‚0CÈS3¥jƒPÙ!Ìâ5b³æ$„ güŽ?ΞÆÙ³g³cZmÍš57|þüùI­ñ|Š·šo>ê MpŽ€ ñ@Ö88/àœÐqœ ÈŸÚµksZ˜¸þ' &¸ø5YëÁAðpu¨õ!A «õ“.‚Ö®]ë“Ï.Æf¿IÕ—˜¾…Y ­ œ¦‹Ú«uëÖì Ä {衇XëÁŒÓ&)Ö,ðÔÁµQ0Òk< à¡C‡²6¬\¹2'Ç þþûïÙÌÄúDåœá¸;v°YŒõh„ Ô«W/¾‡WR9.x²€&Æ:qëÖ­læŽ7Ž×~ÐÊš`Rb ‰Iílذ!GA»Cg%ð/&¼ ˆ[¹r%{Y±æ ‚@„xw²™X/åÛo¿Í5]ð!C 5£ëGC9&س¦”™ÈžBeÊÓÁ¼tJS°'Þ85H ¤)·»éáƒ÷S­³L/¥r¯ƒætð>*a5=yð*­ÄqðR*³ëV]häÌ™Ó̇þ^Ê×_ÝPÚ•óâCí¹±gùñSf³¡œ0fí¥„ñʼ6”F7Ô~§QBÌaêmŒ^J%ÜÜFxm‘W ›¡&ά>ûì3³µÖåºÍ7^óRÂð%VàÛhÐÀdUkCy( åˆH§ÖA†ò2jíb(óÍ8kBœÒ`†ÒœÖSŽCíù7n4…ÙšÆÎ=ÊVf¢¡öÙÌm O êPšÒP§Ht”yUû–Û‡h¿ò`ÌgpŸ7^8O½§fØ$!˜’ØØ…3@iuäΛž|òÉáÈ“'ÿFúb­ˆ_ ‚S®üû%”«öÈÂf÷wÐè J³êÛW´?¡ðˆÀ…Lj×3J»°«ßêu³‘Õ'IÅŠºé±lÀâd%II¨<ˆƒ#)Q¾[v4}ÒW“ô5Ày<¼oBÞAÞ`lú·iÓÆ ’Áz¡¥ ‘ƒ€l DN_ §@@.;qÕª}êØÖ½·"° ©–eO9MÖ­[Ç‡Ž½Þ›»våTΗxu4i)nÀQ¿jä^œàÁ3W½zu>Ñá(n.ãÎ(µ=‘Q׌N‡ÃØêÀ€›»$Q¼yÆK™¨VGpâY³6Ñk¯}çü7nH¹reŽàÖ¤:ÖÅKi]>yòZŠŽ¾»ôž6m}¤±Ÿêù§I 8JæÌÙ¬^«¹û=‘ØØ5Ľ° Dà"hÀœÔ†ø¬_@}'ä\µ@X‹ 10iÒjŸãW11ihêT1+#¨ EÃEJg={Eýw Ý¦†ß7oÞQÿ¼dU¤4AøTˆ†‹aI Ôwí:¡^l•²FH7ŠÀEJGMœ¸Z½»˜Û˜˜hš2em q%¢á\Ù-¾LÁ1²aÃAóc¯ÖØ›7o«O"ˆ·ÒЉ›ïEàÜÜ;¿ò·N}ªO»wï¤ØØXgFËJ©Y³&*TÈe\9ÄŽáQêÒ¥ þüü"ƒ¸¸8ŽJcg5æ#Ì”K–,qhj’b’[·nQLLLRW“¢åË.Eá—ÊS"p©­Ç¥½)Š€\ŠÂ/•§6DàR[K{S¸…_*OmˆÀýÚã?ýôÕ¯_ßç×±cGš3gŽ#c¢C‡ôÃ?8RV¸BÆŒCÏ>û,åË—J—.MÏ?ÿ<ÍŸ??\63þêÕ«téÒ%~Þ¹s'crâÄ 3^nî¸_±Û¿?Íž=›~øaþ•+WŽ–-[FõêÕKÔ` Ö‹-¢½{÷‹v,\í?„;mÚ´Ô¯_?êÔ©¡muëÖ¥‘#GÚª§}ûöÔªU+N{ûömº|ù2ݹsÇV^IOïÃ…nzàØ?üÐŒÀ@-_¾<ýøãT»vmÇà[»v-©Y̬Y³šéqsøðaÚ¸q#,XªV­JQQQ>ñú{N[·n%\«T©BÑÑÑ:Н(gß¾}\G¦L™8,>>žŽ;FÅŠã¸ãÇsÞ,Y²pü¼yóhذaÔ§O8p Y^×®]©Q£FÔ½{wzá…(gΜtîÜ9ÊŸ??m߾Ο?OÕªU£téÒÑ™3gèÊ•+tíÚ5:zô(aâÁ‰–¼yóšåk#ÂsçÎMׯ_§M›6±v-\¸°™On^ÝÒÇIµñm»y_~ù%ŸJ±fX³f¡Æ5j/^¼ØPfš‘9sf#C† †„†2ÕÌ, 0Ò¤IcäÊ•‹ó¡~5€9¾lٲƠAƒø~ÇŽF… ¸>¥‰Œ +V¬à8%ÐFõêÕ9.[¶lâÿö·¿qÒ Ëš4ib(å{ð Ì>ŽoÖ¬—¥Ð@/½ô 2?OžÒ!¦’%Kê[öhž:uÊ|tc§þ¼AÈ…î!poº»&wÔ:ŠÎž=ËÎÃ!¢ ÎP‰%H­ÃhóæÍlZã‹/®ùª_;ùâ‹/Øì‚é…r>ýôSvÐÀ…AP¡Ýàèð'«P[ãàØ&†wÕŸ¦OŸNjÝÉšUÇÁ)¢ ‡¼ýyÕqúj§ÁœDºŒÔ~óدÂoÖ¬Y÷ø!Cë¬× ±°¦‚`aí-õ裲ÖhР¯ƒà!DÜÊ•+iÁ‚¼²VQªT)ªX±"{ùå6G[·nMï¾û.¯±à~‡VƒÙе•öš*‡‚µ˜€÷;wfM äøñãÙL…'k³qãÆQ=|Þ3ƒI ^á…œ;w.5lØËEÝFÄYÉn­yäÞn£ŽL¬—R¹ÓÙC¦àá+¼“JsjóÛP›ÀŒ„”†އ7R­} ¥…L”zõêÅ>íATÎC¹×9^™‡ÆàÁƒùC%xf}ðî©uÇ©vö„¢|xB•PÊ}o ¿öR*÷»Y§Ú'4ÔºÉ|V‚b¨5¡Y6Ú£¶.ŒáÇ›i´—^HÄê„Ô€‡4aÂS[fÚKªj»Âøì³ÏÌz”‰ë6Âܤ/¥l „þÑ epí«5‘´¡LAu2#Aœ5ƒK™§Æºuë Ü[ ÏJûÊÉÁʹb@CJ;ÊL4Ô>›¡´¦OV-p¨gÏž=F ^•m(G‹O>ý`·:½Ý+øÁàåmqš¨N a„Mâ`„_üÂN‚ÀUˆ/©&¬éðK ÁcŠpÃLÜ@„Íñ`d·Áò§æpYÃ¥ÂÞ‡À(s2è)˜TI²5Y4\²A힊žx≛ÚîáÎÛœˆ†óvÿJë\†€œË:Ä;§NÝ}uÆNZIã.ܬœ?ßE¹î.îE@ν}ãÃÙäÉkÙQ⨰«3sæ½·ÐýãåÙ]ˆÀ¹«?rÇ„ ÍŸ°‹»Ê?Xž]Š€œK;ÆÊ#7nöFªwKiÅŠ½$ç+­ˆ¹÷^ν}cr†ý¶P'JÒ¤‰R_‡^o¦—÷" çÞ¾aÎàY°`[@sR³-7qâjý(W#àéÃË.ÆÝ6k3fü†ý·`Ÿ Ã–ÁæÍ‡éÀ3êSwá?ï`»rIè8"pŽCêl9sf¦÷ÞkàSèĉ«¨páœê›%e}Â/_Ž÷y–÷! o ¸¯OÂrT¿þçJØÊ¨ÿ[Ð(lZIà*ämWu‡0ãyÄiâù.–º 87õ†ðâyDà<ßÅÒ@7! ç¦Þ^<€œç»Xè&DàÜÔ‹çó|KÝ„€œ›zCxñ<"pžïbi ›sSo/žG@Îó], t"pnê áÅóˆÀy¾‹¥nB@ÎM½!¼x8Ïw±4ÐMˆÀ¹©7„Ï# çù.–º 87õ†ðâyDà<ßÅÒ@7! ç¦Þ^<€œç»Xè&DàÜÔ‹çó|KÝ„€œ›zCxñ<"pžïbi ›sSo/žG@Îó], t"pnê áÅóˆÀy¾‹¥nB@ÎM½!¼x8Ïw±4ÐMˆÀ¹©7„ï#`øÑĉ Õjù¹ƒ˜˜ÜFttVé#÷dèÔ©S~Òe,ú?¾ûõëçýÙFZ($û÷ï§ï¾û.`ÉAîé§Ÿ˜AA 46l*p²† Ä Ž" ç(œR˜ ¸ÐøH¬ à("pŽÂ)… ¡ê4 Í=±ÿýïiÛ¶mÔµk×$eêÃ?¤‹/úÔ‘7o^zì±Çè‰'žð OއëׯÓ;w(S¦L\Ý»ï¾KÊmV+W.úÝï~GúÓŸ(mZ{Ý|éÒ%Ê!ÅÄĘåºùøãéÌ™3¢8 X¥K—.h|rEXÛ3cÆ Ú³guéÒ%¹ªXOÄk¸C‡ÑæÍ›6ÎÉÀuëÖÑ… ¨dÉ’ü+Z´(w`Ÿ>}húôéNVe«¬!C†Ð AƒÌ´«V­¢7n0oÅŠ£sçÎÑСCé­·Þ¢+W®˜éBÝ4iÒ„.\* ÇåÏŸŸ .Ì¿ãÇÓöíÛÍg„»…¬í¹yó&ÅÇǧ8kö¦¾l¢“Ïž=K˜íOžÎ‹~Ê—/ÇéñŒg`<Ê”)còmpŸ7¿YàvçÎy0bÿT©R%6)Ö®]ËÏ0m0Û~ðÁ,x_|ñ‡Chš7oNo¾ù&çyÿý÷Y‹`0aýýï'ÌÖ¿üò õîÝ›gꨨ(B3kÖ,.GÿA¹XÌîèLtbýúõyЭ\¹’ *W®Ìƒq(ûÓO?åN‡ëÞ½;}þùçÜÿg]‡õ aÂ Ñæ„åÁÌÅ`¿öÚk,”áê߸q#á°Ú~ûöm6!ô÷رc9 &CôÛSO=Å}‰ 'þíÁ˜À8Bû0!`,sô!&ÎW^y…±Ðã¹fÍš´|ùræ>|øpžè‚4Ùv°c&%ÇL áÛ´iÏÈ‚‚Y»ïuêÔáF¢ñ ÿýï (fžþóŸ<ðÑ (š€ÌÚè?ÿù§Óùµë9t2fwåÒ¥Kͤd˜€èd̬£Gæ8hK¿ÖšþÏHóÚ ¿™3gò‚‚u(..ŽæÎK˜õQ?Ã×_Íœ¨?ꇠÂ<„&øé§Ÿx >øàƒ†ü ‘0`Þ~ûmª]»6aP6Τþ@`¡0˜íáÇyS÷íÛ·g ˆàš½gÏžÔ¢E‹iuÙ¡®V~õ„*=ú­qãÆŒ[ëÖ­iÍš5Ì7„}…>={6aR†Ù‹ðÄ´ÇZ7N@[BØ÷;ï¼Ãu¬_¿ÞLÜüñGÂ$ŽþY¼x±÷[n¸–-[ò`ªQ£óƒYæ‚~F§ãô :‚pÕ«Wg¶?Ì)4߈#³Ô®]»x̸zí­ŒJ”(AÏ<ó ׃t ä™M§GgÂ$E}ˆ×Zϯ¿þº)pþÏÈ­¾ðûÇ?þAóçÏç6Ã4Í›7…Bó¦L6¬¯4ªm„ ôç?ÿ™-ÌäÏ=÷›aˆ ˜bÐÀºÄ´8<4&<­Á0{C( lW¯^MPdbÒ&ȬË/ú ÚàÂä€ÉVúc}‹IQXGè2¡5î‡:íf`ëN¯‘ 1¡- 4À˜…5¡Ó4 T?Ö¾ «0a@4ÀEb && VhãþýûóºkaÿµµìĤµæÓ÷áø…9k%ô…&­aZS¬Y­¡ÁYc·=:?ÊĺWO’:ãWc°œ9sê(Æùœ Ç4œuP…b 3' ƒ³ Ì"LˆV­Z±iƒYÚæ˜n¸Õ ÁŒ¦&t*´‡u[ËéJxu9Á®X#aÁ}ôèQN͆µ& ýƒ)„5‡¦@õëÉ ZQÖ¢ +ï:ÎîVÖ~z²ÂZƒ¦Ò¸qã|,þe&&­Þ@Ï0Í4A{Y)ØøAÿCËëSëdXC÷Ã#&÷Þ½{Íê1Ib¹` Áø13Ýçcg·þǜͬo¾ù†¢žÍ°&6lϾ0 áÉ„9³ 3ñøñãÙó…k»`„Šuf+tÖ€Ú¬EÔ ÌY8u`Z€Ð©_~ù¥i:ø?s¢ÀÊ¡m(õƒg,Îu<Òªš B‡µ ÆÀƺ¨¿2Û@X‹ÁÔ„† U?&´qàÀÔ®];n#Öp¾h²¶aà 3Úñ'~ ¬ð„õ Hc¬7ÃáɆµ!„é¿ýö[Æ?\Z.Pýñç+X8úuÀ€ŒxÃÚ]k9”[”U­Z5ö°ÂÑñý÷ßóº Ž9XGáx´¶ÇZÆ&TôÂ1Þ0Ö`[ÍJk[‚µS§±{Rk«{ÇT.˜BM›6eOœÝB›NhÌöV‚' ûgX¿è­Ž‡)ᘙ TþÛ 0бðBa‚A€‡¶Á Å C‡isU×áÔk2hÔ¯»úÑF,xC焚OL*X3ëÓ&:<Ô£LhÀ®uhI½fÄÄëƒ0\ÚPõŠCû0‘¡m‰%ô+4œÿz.ÖöXëİÇRm‡Eu?ëckyÖ{,™pàmÅ2ÃB “MáRh˜<0ÿú׿Zø¸{‹Áwx ‚f„·È¡¬­‚‘¿c%Xºû Ǧ©ÞH TF°úÑF«ã$P^k˜fkX¸{`cÅÍ:Øôzå„K®.ÿx´ï~„ å`ò6„‡ãÑÚ¤×u¿¼è2î皬‰Ç‚fNݺuï‡_Î3f¥?¡C‚ßÁÚ¥B… þY’í9¥ëO¶†JE!H“2$G„Sg„ ìeà œÍÄz f|8RCSë>˜„X³Á‘Ò‡r5or%öÂ3)z±$CÇ—°M—66[á ɃmœðÐÞÂp ¸ñPn8ž%þ.ÉjR¦fÐá0ÀÙ@8+p\kNUàì)Κâ8Xƒ x£Gåà(À~Ö£0IApø€à @¼[å2Sò',"pa!r&Þ:€û_ ›.'X¦L™ÂGÅ p0/±FÅTí¶F>lY¸õP®n‹\C# &eh|‹Õ{N7*x'õ‰TŠ h®Å‰ìYáÍ h4ÿCÆVSòP®•¹Ž€\plÁ138EàìDxsÁê4©‰c]Hs¦ˆ·nö*#%åâGÂ" —“$ ÁÞŽ":ŠõÞÕ²î Y7þõÁ^ë!l&QvJÊõçGž# ÇCñâ+4LBÂaÎ j²ÂÖŸ°®Õéôe§ä¡\͇\C# N“Ðø8 í…w'OžÌ§#°ñ“"&¼eŽÓØ*Ð4uêTþ8¶ p¸'Wô ‘p‡rñÆR[å:#¨ë’kò! —|Xóæ4Îo‚·áAÐLÐlx;‚¤ çÛ´iÃf(¶ð)}€Ö‡r5ßr €œ4 O’ÄBkáp5®ÎâÁ÷Þ{O `¿ çO)q(ןyŒ€k/f/õ…B“ió0Tëñz~Èm‡rñ(a §IBLR<ïÏY?%˜â Ž!poÑàX‘RÐoEǼ„¼‰€h8oö«´Ê¥ˆÀ¹´c„-o" çÍ~•V¹ k¸þýû»”eaKp7øq0J pøðþþ{°L.ÁÀ© ¼ýaýVŒN`ã[GÈUG`¡¬áÇT ‚# ‰G@ÎqH¥@A 8"pÁ±‘AÀqþšÓ&Š:kÑIEND®B`‚mysql++-3.2.5/doc/html/refman/noexceptions_8h.html000755 000765 000024 00000012755 13515046516 022626 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: noexceptions.h File Reference
MySQL++  3.2.5
noexceptions.h File Reference

Declares interface that allows exceptions to be optional. More...

#include "common.h"

Go to the source code of this file.

Classes

class  mysqlpp::OptionalExceptions
 Interface allowing a class to have optional exceptions. More...
 
class  mysqlpp::NoExceptions
 Disable exceptions in an object derived from OptionalExceptions. More...
 

Detailed Description

Declares interface that allows exceptions to be optional.

A class may inherit from OptionalExceptions, which will add to it a mechanism by which a user can tell objects of that class to suppress exceptions. (They are enabled by default.) This module also declares a NoExceptions class, objects of which take a reference to any class derived from OptionalExceptions. The NoExceptions constructor calls the method that disables exceptions, and the destructor reverts them to the previous state. One uses the NoExceptions object within a scope to suppress exceptions in that block, without having to worry about reverting the setting when the block exits.

mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1GuessConnectionOption-members.html000755 000765 000024 00000013437 13515046516 030552 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::GuessConnectionOption Member List

This is the complete list of members for mysqlpp::GuessConnectionOption, including all inherited members.

err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
set(DBDriver *dbd)=0mysqlpp::Optionpure virtual
~Option()mysqlpp::Optioninlinevirtual
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1Field-members.html000755 000765 000024 00000021437 13515046516 025275 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::Field Member List

This is the complete list of members for mysqlpp::Field, including all inherited members.

auto_increment() constmysqlpp::Fieldinline
binary_type() constmysqlpp::Fieldinline
blob_type() constmysqlpp::Fieldinline
db() constmysqlpp::Fieldinline
enumeration() constmysqlpp::Fieldinline
Field()mysqlpp::Fieldinline
Field(const MYSQL_FIELD *pf)mysqlpp::Fieldinline
Field(const Field &other)mysqlpp::Fieldinline
length() constmysqlpp::Fieldinline
max_length() constmysqlpp::Fieldinline
multiple_key() constmysqlpp::Fieldinline
name() constmysqlpp::Fieldinline
primary_key() constmysqlpp::Fieldinline
set_type() constmysqlpp::Fieldinline
table() constmysqlpp::Fieldinline
timestamp() constmysqlpp::Fieldinline
type() constmysqlpp::Fieldinline
unique_key() constmysqlpp::Fieldinline
zerofill() constmysqlpp::Fieldinline
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1MutexFailed-members.html000755 000765 000024 00000014021 13515046516 026450 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::MutexFailed Member List

This is the complete list of members for mysqlpp::MutexFailed, including all inherited members.

Exception(const Exception &e) MAY_THROW()mysqlpp::Exceptioninline
Exception(const char *w="")mysqlpp::Exceptioninlineprotected
Exception(const std::string &w)mysqlpp::Exceptioninlineprotected
MutexFailed(const char *w="lock failed")mysqlpp::MutexFailedinlineexplicit
operator=(const Exception &rhs)mysqlpp::Exceptioninline
what() constmysqlpp::Exceptioninlinevirtual
what_mysqlpp::Exceptionprotected
~Exception()mysqlpp::Exceptioninline
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1Field.html000755 000765 000024 00000041512 13515046516 023641 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::Field Class Reference
MySQL++  3.2.5
mysqlpp::Field Class Reference

Class to hold information about a SQL field. More...

#include <field.h>

Public Member Functions

 Field ()
 Create empty object.
 
 Field (const MYSQL_FIELD *pf)
 Create object from C API field structure.
 
 Field (const Field &other)
 Create object as a copy of another Field.
 
bool auto_increment () const
 Returns true if field auto-increments.
 
bool binary_type () const
 Returns true if field is of some binary type.
 
bool blob_type () const
 Returns true if field is of some BLOB type.
 
const char * db () const
 Return the name of the database the field comes from.
 
bool enumeration () const
 Returns true if field is of an enumerated value type.
 
size_t length () const
 Return the creation size of the field. More...
 
size_t max_length () const
 Return the maximum number of bytes stored in this field in any of the rows in the result set we were created from.
 
bool multiple_key () const
 Returns true if field is part of a key.
 
const char * name () const
 Return the field's name.
 
bool primary_key () const
 Returns true if field is part of a primary key.
 
bool set_type () const
 Returns true if field is of some 'set' type.
 
const char * table () const
 Return the name of the table the field comes from.
 
bool timestamp () const
 Returns true if field's type is timestamp.
 
const mysql_type_infotype () const
 Return information about the field's type.
 
bool unique_key () const
 Returns true if field is part of a unique key.
 
bool zerofill () const
 Returns true if field has the zerofill attribute.
 

Detailed Description

Class to hold information about a SQL field.

This is a cut-down version of MYSQL_FIELD, using MySQL++ and generic C++ types instead of the C types it uses, and hiding all fields behind accessors. It leaves out data members we have decided aren't very useful. Given a good argument, we're willing to mirror more of the fields; we just don't want to mirror the underlying structure slavishly for no benefit.

Member Function Documentation

◆ length()

size_t mysqlpp::Field::length ( ) const
inline

Return the creation size of the field.

This is the number of bytes the field can hold, not how much is actually stored in the field on any particular row.


The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/functions_d.html000755 000765 000024 00000015260 13515046516 022016 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Class Members
MySQL++  3.2.5
mysql++-3.2.5/doc/html/refman/inherit_graph_46.png000644 000765 000024 00000007356 13515046516 022463 0ustar00tangentstaff000000 000000 ‰PNG  IHDR‘1ÚÄKÍsRGB®Îé¨IDATxí¬UÇAÁŠbAÅ‚]°€bŒ5Šƒ"VÆBbE ŠQ°Ä. ¨ ¨ØP»ˆ`ï…¢Àùæ7ßwöÛ»owï»÷¾rì$÷ÞÝÓÏœ9sfæ^^=§$e(žÖ+¾nV3ãÀ9 Q& %s ¢’Y˜5 Q&¥sÃ:LO>ù$†vöÉx+«W¯‹ Ïã$‰¡ SRV–¾ràí·ß–áÇÇÎ+[n¹¥üûï¿©å*›Y²­\¹RØqLàË/¿”>øÀúf"óçÏ—wß}7ìâÅ‹+ì€%K–Èo¿ýŒ÷½÷Þ“7ß|Sþþûï ˜ƒ°üüó϶(_}õUN>/üñ‡°p0çõ×_·é ýóÏ?âwèG}$o½õ–æIƒf²|ùò`Âïôõ믿ú¢ö7ﯾúj¢ÀÐ| /0*Ü.âý÷ßx? ¥=÷ÜSžzê)Ùf›m‚ªß~û­LŸ>]ø…V¬X!?üðƒ=GÇc‰Å|r “X‡ÓÒžu1,²yÔQGζmÛºcŽ9&x?ôÐC2ÑvØaîÈ# šÓɸúõë»Ñ£G»yóæ¹wÞÙm²É&®^½zn‡vp .´²ºÓÜ[lá4Vaå:è ·ñÆ[Þu×]ç8à{îÑ£‡kÑ¢…kÒ¤‰Û`ƒ ¬ÿóÎ;Ïò&NœhïGqDGÙ¯¿þÚò•Ñ–ÿòË/WxßgŸ}ܱÇké|© »õ×_ß9Ò©p»ƒ>Øên¶Ùf®AƒnðàÁVvîܹ–þé§Ÿ:æ ëãTØ‚v<ð@wíµ×Ú»jT;ehcÛm·uð¶2´Ç{¸[n¹ÅÊS_7³#²Ü±cGçFmdmŽ3ƽøâ‹ÆGÊÁ{ÊV†Æoã§Ý/Yé`Œ”²téR¹ýöÛmG¢¡Ø=ö˜i– È™gž)¯¼òJ°žyæ!ˆuúé§ËM7Ý$;iê5mÚTî¾ûnÓ*çœsލ ˜¦ãøòÅ÷þUÁ“Q£F™V¹ÿþû…ÏäÉ“ƒ"Íš53ͧ kZíšk®±<`¹êª«„_(ü~ÖYgÉŒ39aÂQA—3Î8Cî½÷^¡-úE Þ|óÍ¢ ZA“Z£)_Ìqà 7´vШ*˜Ò½{wÑK©•œ¥‹.S§Nµcí}ùå—ËÀE7±¡y›7onÏ¥|U™©Fí·ß^Ž?þxÆ æßUâ¥k×®¢Ò/O?ý´•Aõê·óy·Ýv“wÞyG†*?þø£ Þ°aÃdΜ9&<]t‘ì´ÓNB¹sÏ=7qÎû1á¤Ü®»î*Ø žn¸á[¬ÝwßÝòUóXïôí™~Gø9^&Mšde1bO:é$QgƒqsL=ÿüóòá‡ÊŸþiG«ï3ß/Ç G8F8öÙ¡C‡`Óä«—ϼô+¯¼Ò65óþì³Ï,-®|)iU&Dª~mªŠíWU¬ý2ˆ…1£Ø ?ýô“¼ôÒK¶ä#„,š¬uëÖ&,Ø-zÜ-‡rˆýòåµEz€yaÚzë­ÍGú.»ìdc; °ùˆÍѾ}{7ZÁó‚ŒA{ôÑGK«V­L“!•%op{ûÍ{òÉ'ÛgÈ!¢GºÙ0•m/\N|Q3ÁlT>ÐfuP• Q¶8‚Â"Œ;VÔþ±Mþ /¼ ×_½Uã0Pí…ÀHô†!eY¸$ »Ó,š,,táü×^{-'/©MÒ9Òã}÷ÝgcR{Ê3fŽ!6ZèŠ+®ˆmÆo&Žy͆v†RèŽ;î°MÃÆ·Þz«ìµ×^–Wè×ìÙ³e¿ýö3ç†9_xá…vÔúMYh{iå«LˆÒ: çx≢F±ôë×Oy5jdÙ,Nß¾}ÍŽjÙ²¥i-5M+±‹°™ðâÔ—{î¹'ÜdÎ3ÌÇÃ`ñŠü‘JAÔ:íp”ⵜp V[‹þ?ÿüóØ÷Î;‹ëÒ¿éÙ³§ËäÛj«­D m³ dõ£î³×ÌhZ4ö—(´§ºÍïñì³Ï–«¯¾Z6lhíú…@wéÒżTìKúç” =æÑO±6WÎx"–¶+Ö;ó^‡j ³â½g¡F¢½ãyÂcÒA8uÙ}’SƒÛ©amžžÕþûïïÔN°|µ˜ÇE<4=Úr¼3¼ïLm¦ ,ªpËóÞuiHÚ¼+ ¤ygÖ€~éfuÕIðINµ“ÓcÑÆ¥©:]4§î¶yœô…wþùV_µ’ÃKTûÍá]Bxr*L–OxáçoR¾è‹yzOKC$Öm1.ƨ6¦µ¢G¸½“§›&¥åÿg¥ygHb*D9•+ùr饗:UµJëîußqb”Ô“°EA(Õã „(\!:å”Síh¼ÅéN²½‘ãÔ¶ òJ} MB¾?=F!±Íê±çôhŽÍóãÖ8‘ÍBª5F¢?¾ÏØ5‘0ɬY³Ìå—Ñx‘c,•¥4!J¼O¤RZåÄQ«ÌÑÅù%Ô­Æ’¢Éöα§Ú)6/šH;ØI5¾“ÊU6þÂcÃFâG8I7nlï$U1>z›*®ÐÞ{ï—lÇZ±Ge´Á"â?wÝu—›ÁP-–𪈣D‰ˆ­÷x¢y,ž7p£ùåúŽWȧ¬)ªÎªú8S˜½í§:ÞÕ˜tê";O™M¢†²SO°:ºÊiSƒ™ÑÆŠÇ ÑnŽÚRI›î’K.)µ™¢ê§gÕî¡Æý­nRΘ7B@í‚ .Ë.»Ì<b8Ó¦M«Öî‰ ´r9ª ñÉSa.y xsD™Ëª]ˆü„±‡p©=øçÓùå˜K/ÃeyV4šdÑb"½D•qíûôé#ŠÉvÛm'O<ñDP>ÈÉXrÒÈB6m?÷ÜsA_<¨fuÓ“æL:‚0ËJò„Ûï†i`³/Ïoð §WésT·Uõq†»Ž ®ƒ6÷wSw§u›^FÇÅ»þÅëÕ«—¹ÿÑü‡zÈúШoNG(È©±+kƒ0Âæ›oî4Ðgn}Nƒ1/#FŒ0o‘£ôÔSO Jà±1oŽ2ŽX(ßœqí¯Õè5€”ú§jWø ÑfØlþ÷E€–Àwß}Î*è9í8«v!RÌË@Õ¾1ˆÂUWÍÐyìH±+·é¦›±Ò@Ìï¼óN ÀÐÃ?Ü=òÈ#då^²rê‰Ø¢±tTØå6M¸áŠ9…AœîV‹ÉÐþ€,Æò裚ÐÊG‘zc¶9øUì̪€ÐʸñÆ!Ê7gÆ®ÁU§xœ… ˆ'µiÓÆÚ‹ ãeC‚¬öà]5qÎpU£ÙMnE¨÷ç4hêã«àòçTŠy©u!R0C&K &fƒ¦ÐcÀ©ÇfyÄX0ˆ%·@Œ%(çƒvAc‘ãñÇ· »~XTN;p¼ÓŽFµí£h¿¥!T W8®L„ã.ìôB„á¡?R×i;GˆÒæL檑jÐÆÛsTˆV†‰`%eâASTßuëÖÍxŠPáø«0quÂiiBT#.~<Յѵ»œôÁ¹{|à‰k`>À#ýjýO#.ÃÎW&Ù‡²\îâæxÖƒ>hÕ9ý3 ääÂÀ/mxâÖ@!ÄÊÏ<1òé?l“¥ÍÙ÷EÓ ¥`kÅQ4Þ›ÃuÀ6bù`w‰¨†4€—Û ¥PÖx/ž¸6Ц—Ü¯Ò ^¶ ÜÑaòI¶ýƒK=ºŒY ï> —r‚/…A^úaÁ %„oŒ!w êÔ©“i34Z(JisŽ–Í÷žl¦>^M¯ö•ñ“ Šö'$ÕfùúŒÍŸ{ MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::FieldTypes Member List

This is the complete list of members for mysqlpp::FieldTypes, including all inherited members.

FieldTypes()mysqlpp::FieldTypesinline
FieldTypes(const ResultBase *res)mysqlpp::FieldTypesinline
FieldTypes(int i)mysqlpp::FieldTypesinline
operator=(const ResultBase *res)mysqlpp::FieldTypesinline
operator=(int i)mysqlpp::FieldTypesinline
mysql++-3.2.5/doc/html/refman/manip_8h_source.html000755 000765 000024 00000146232 13515046516 022572 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: manip.h Source File
MySQL++  3.2.5
manip.h
Go to the documentation of this file.
1 
17 /***********************************************************************
18  Copyright (c) 1998 by Kevin Atkinson, (c) 1999-2001 by MySQL AB, and
19  (c) 2004-2007 by Educational Technology Resources, Inc. Others may
20  also hold copyrights on code in this file. See the CREDITS.txt file
21  in the top directory of the distribution for details.
22 
23  This file is part of MySQL++.
24 
25  MySQL++ is free software; you can redistribute it and/or modify it
26  under the terms of the GNU Lesser General Public License as published
27  by the Free Software Foundation; either version 2.1 of the License, or
28  (at your option) any later version.
29 
30  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
31  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
32  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
33  License for more details.
34 
35  You should have received a copy of the GNU Lesser General Public
36  License along with MySQL++; if not, write to the Free Software
37  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
38  USA
39 ***********************************************************************/
40 
41 #ifndef MYSQLPP_MANIP_H
42 #define MYSQLPP_MANIP_H
43 
44 #include "common.h"
45 
46 #include "myset.h"
47 #include "stadapter.h"
48 
49 #include <iostream>
50 
51 namespace mysqlpp {
52 
53 class SQLQueryParms;
54 
55 
69 
71 {
73 };
74 
75 
76 #if !defined(DOXYGEN_IGNORE)
77 // Doxygen will not generate documentation for this section.
78 
79 struct quote_type1
80 {
81  std::ostream * ostr;
82  quote_type1(std::ostream * o) :
83  ostr(o)
84  {
85  }
86 };
87 
88 
89 inline quote_type1
90 operator <<(std::ostream& o, quote_type0 /* esc */)
91 {
92  return quote_type1(&o);
93 }
94 
95 
96 struct quote_type2
97 {
98  SQLQueryParms *qparms;
99  quote_type2(SQLQueryParms* p) :
100  qparms(p)
101  {
102  }
103 };
104 
105 
106 inline quote_type2
107 operator <<(SQLQueryParms& p, quote_type0 /* esc */)
108 {
109  return quote_type2(&p);
110 }
111 
112 
115 
116 MYSQLPP_EXPORT SQLQueryParms& operator <<(quote_type2 p,
117  SQLTypeAdapter& in);
118 
119 
122 
123 MYSQLPP_EXPORT std::ostream& operator <<(quote_type1 o,
124  const SQLTypeAdapter& in);
125 
126 
133 
134 MYSQLPP_EXPORT std::ostream& operator <<(std::ostream& o,
135  const SQLTypeAdapter& in);
136 
137 
138 template <class ST>
139 inline std::ostream&
140 operator <<(quote_type1 o, const Set<ST>& in)
141 {
142  return *o.ostr << '\'' << in << '\'';
143 }
144 
145 #endif // !defined(DOXYGEN_IGNORE)
146 
147 
155 
157 {
159 };
160 
161 
162 #if !defined(DOXYGEN_IGNORE)
163 // Doxygen will not generate documentation for this section.
164 
165 struct quote_only_type1
166 {
167  std::ostream* ostr;
168  quote_only_type1(std::ostream* o) :
169  ostr(o)
170  {
171  }
172 };
173 
174 
175 inline quote_only_type1
176 operator <<(std::ostream& o, quote_only_type0 /* esc */)
177 {
178  return quote_only_type1(&o);
179 }
180 
181 
182 struct quote_only_type2
183 {
184  SQLQueryParms* qparms;
185  quote_only_type2(SQLQueryParms* p) :
186  qparms(p)
187  {
188  }
189 };
190 
191 
192 inline quote_only_type2
193 operator <<(SQLQueryParms& p, quote_only_type0 /* esc */)
194 {
195  return quote_only_type2(&p);
196 }
197 
198 
205 
206 MYSQLPP_EXPORT SQLQueryParms&
207 operator <<(quote_only_type2 p, SQLTypeAdapter& in);
208 
209 
210 MYSQLPP_EXPORT std::ostream&
211 operator <<(quote_only_type1 o, const SQLTypeAdapter& in);
212 
213 
214 template <class ST>
215 inline std::ostream&
216 operator <<(quote_only_type1 o, const Set<ST>& in)
217 {
218  return *o.ostr << '\'' << in << '\'';
219 }
220 
221 #endif // !defined(DOXYGEN_IGNORE)
222 
223 
236 
238 {
240 };
241 
242 
243 #if !defined(DOXYGEN_IGNORE)
244 // Doxygen will not generate documentation for this section.
245 
246 struct quote_double_only_type1
247 {
248  std::ostream* ostr;
249  quote_double_only_type1(std::ostream* o) :
250  ostr(o)
251  {
252  }
253 };
254 
255 
256 inline quote_double_only_type1
257 operator <<(std::ostream& o, quote_double_only_type0 /* esc */)
258 {
259  return quote_double_only_type1(&o);
260 }
261 
262 
263 struct quote_double_only_type2
264 {
265  SQLQueryParms *qparms;
266  quote_double_only_type2(SQLQueryParms* p) :
267  qparms(p)
268  {
269  }
270 };
271 
272 
273 inline quote_double_only_type2
274 operator <<(SQLQueryParms& p, quote_double_only_type0 /* esc */)
275 {
276  return quote_double_only_type2(&p);
277 }
278 
279 
286 
287 MYSQLPP_EXPORT SQLQueryParms&
288 operator <<(quote_double_only_type2 p, SQLTypeAdapter& in);
289 
290 
291 MYSQLPP_EXPORT std::ostream&
292 operator <<(quote_double_only_type1 o, const SQLTypeAdapter& in);
293 
294 
295 template <class ST>
296 inline std::ostream&
297 operator <<(quote_double_only_type1 o, const Set<ST>& in)
298 {
299  return *o.ostr << '"' << in << '"';
300 }
301 
302 #endif // !defined(DOXYGEN_IGNORE)
303 
304 
315 
316 enum escape_type0 { escape };
317 
318 
319 #if !defined(DOXYGEN_IGNORE)
320 // Doxygen will not generate documentation for this section.
321 
322 struct escape_type1
323 {
324  std::ostream* ostr;
325  escape_type1(std::ostream* o) :
326  ostr(o)
327  {
328  }
329 };
330 
331 
332 inline escape_type1
333 operator <<(std::ostream& o, escape_type0 /* esc */)
334 {
335  return escape_type1(&o);
336 }
337 
338 
339 struct escape_type2
340 {
341  SQLQueryParms *qparms;
342  escape_type2(SQLQueryParms* p) :
343  qparms(p)
344  {
345  }
346 };
347 
348 
349 inline escape_type2
350 operator <<(SQLQueryParms& p, escape_type0 /* esc */)
351 {
352  return escape_type2(&p);
353 }
354 
355 #endif // !defined(DOXYGEN_IGNORE)
356 
357 
364 
365 MYSQLPP_EXPORT SQLQueryParms&
366 operator <<(escape_type2 p, SQLTypeAdapter& in);
367 
368 
371 
372 MYSQLPP_EXPORT std::ostream&
373 operator <<(escape_type1 o, const SQLTypeAdapter& in);
374 
375 
386 
388 {
390 };
391 
392 
393 #if !defined(DOXYGEN_IGNORE)
394 // Doxygen will not generate documentation for this section.
395 
396 struct do_nothing_type1
397 {
398  std::ostream* ostr;
399  do_nothing_type1(std::ostream* o) :
400  ostr(o)
401  {
402  }
403 };
404 
405 
406 inline do_nothing_type1
407 operator <<(std::ostream& o, do_nothing_type0 /* esc */)
408 {
409  return do_nothing_type1(&o);
410 }
411 
412 
413 MYSQLPP_EXPORT std::ostream&
414 operator <<(do_nothing_type1 o, const SQLTypeAdapter& in);
415 
416 
417 struct do_nothing_type2
418 {
419  SQLQueryParms *qparms;
420  do_nothing_type2(SQLQueryParms* p) :
421  qparms(p)
422  {
423  }
424 };
425 
426 
427 inline do_nothing_type2
428 operator <<(SQLQueryParms& p, do_nothing_type0 /* esc */)
429 {
430  return do_nothing_type2(&p);
431 }
432 
433 
436 
437 MYSQLPP_EXPORT SQLQueryParms&
438 operator <<(do_nothing_type2 p, SQLTypeAdapter& in);
439 
440 #endif // !defined(DOXYGEN_IGNORE)
441 
442 
452 
454 {
456 };
457 
458 
459 #if !defined(DOXYGEN_IGNORE)
460 // Doxygen will not generate documentation for this section.
461 
462 struct ignore_type2
463 {
464  SQLQueryParms* qparms;
465  ignore_type2(SQLQueryParms* p) :
466  qparms(p)
467  {
468  }
469 };
470 
471 
472 inline ignore_type2
473 operator <<(SQLQueryParms& p, ignore_type0 /* esc */)
474 {
475  return ignore_type2(&p);
476 }
477 
478 
481 
482 MYSQLPP_EXPORT SQLQueryParms&
483 operator <<(ignore_type2 p, SQLTypeAdapter& in);
484 
485 #endif // !defined(DOXYGEN_IGNORE)
486 
487 } // end namespace mysqlpp
488 
489 #endif
insert into a std::ostream to double-quote next item
Definition: manip.h:239
Declares the SQLTypeAdapter class.
insert into a std::ostream to single-quote next item
Definition: manip.h:158
insert into a Query stream to single-quote and escape next item
Definition: manip.h:72
escape_type0
Definition: manip.h:316
insert into a std::ostream as a dummy manipulator
Definition: manip.h:455
do_nothing_type0
Definition: manip.h:387
quote_double_only_type0
Definition: manip.h:237
insert into a std::ostream to override manipulation of next item
Definition: manip.h:389
quote_only_type0
Definition: manip.h:156
quote_type0
Definition: manip.h:70
This file includes top-level definitions for use both internal to the library, and outside it....
ignore_type0
Definition: manip.h:453
Declares templates for generating custom containers used elsewhere in the library.
mysql++-3.2.5/doc/html/refman/sqlstream_8h_source.html000755 000765 000024 00000034371 13515046516 023501 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: sqlstream.h Source File
MySQL++  3.2.5
sqlstream.h
Go to the documentation of this file.
1 
4 /***********************************************************************
5  Copyright (c) 2008 by AboveNet, Inc. Others may also hold copyrights
6  on code in this file. See the CREDITS file in the top directory of
7  the distribution for details.
8 
9  This file is part of MySQL++.
10 
11  MySQL++ is free software; you can redistribute it and/or modify it
12  under the terms of the GNU Lesser General Public License as published
13  by the Free Software Foundation; either version 2.1 of the License, or
14  (at your option) any later version.
15 
16  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
17  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
19  License for more details.
20 
21  You should have received a copy of the GNU Lesser General Public
22  License along with MySQL++; if not, write to the Free Software
23  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
24  USA
25 ***********************************************************************/
26 
27 #if !defined(MYSQLPP_SQLSTREAM_H)
28 #define MYSQLPP_SQLSTREAM_H
29 
30 #include "common.h"
31 
32 #include <sstream>
33 
34 namespace mysqlpp {
35 
36 #if !defined(DOXYGEN_IGNORE)
37 // Make Doxygen ignore this
38 class MYSQLPP_EXPORT Connection;
39 #endif
40 
44 
45 class MYSQLPP_EXPORT SQLStream :
46 public std::ostringstream
47 {
48 public:
53  SQLStream(Connection* c, const char* pstr = 0);
54 
58  SQLStream(const SQLStream& s);
59 
74  size_t escape_string(std::string* ps, const char* original = 0,
75  size_t length = 0) const;
76 
98  size_t escape_string(char* escaped, const char* original,
99  size_t length) const;
100 
102  SQLStream& operator=(const SQLStream& rhs);
103 
106 };
107 
108 
112 inline std::ostream& operator <<(std::ostream& os, SQLStream& s)
113 {
114  return os << s.str();
115 }
116 
117 
118 } // end namespace mysqlpp
119 
120 #endif // !defined(MYSQLPP_SQLSTREAM_H)
121 
Connection * conn_
Connection to send queries through.
Definition: sqlstream.h:105
Manages the connection to the database server.
Definition: connection.h:59
A class for building SQL-formatted strings.
Definition: sqlstream.h:45
This file includes top-level definitions for use both internal to the library, and outside it....
mysql++-3.2.5/doc/html/refman/functions_func_y.html000755 000765 000024 00000006300 13515046516 023051 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Class Members - Functions
MySQL++  3.2.5
 

- y -

mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1MutexFailed__inherit__graph.png000644 000765 000024 00000020360 13515046516 030041 0ustar00tangentstaff000000 000000 ‰PNG  IHDR¢·‘é…3sRGB®Îé ªIDATxí] ¼MÕþÿq¯y&S¦(zd*ž9¥¢¿P¼òˆGzõ¼—ÂK/Ó£ðÔS$<Q‘gº(ôB†È,$óL†Œ™çõÿ}ZÛ9çžsï>÷ìs~¿Ïçž½÷~{­ïú®ßúýÖÞçžtƘ‰¤¢¤,+Ò1MʶAï®P\zAH (SÃ(hH‰¨$HÄ&w+NŸ>M.\HîÛêýÂ@ W®\”1cÆ0jD^4Ù‰øóÏ?Ó¡C‡"o¹jˆ*T |ùòEM0ÅÉND4DgURØ@Y¸paŠ4J}Ä]oˆ€1½N”ˆ)»Þ4%b "z"(Sv½i išˆçÎ#ìK†’Þ½{Ó;ï¼*;Õ¦ûökëÖ­Ô°aC:|øpªm¯ K‘í/íÚµ# Ú´iÓ‚ªÜ¸q#eË–-h^jNôí×Õ«WéÌ™3tíÚµÔÜäˆÛ–f,âš5khéÒ¥töìYéô±cÇäD½É›7¯ô÷gòJ^±bÅLýúõ Ú‚> Þˆ#$ÏÍ[]3þ|é—›ò–™Š•¬.Ÿzê)S§NÃŰe2UªT1¯¾úª´ùÙgŸ5O<ñ„œïÞ½[€ã7 [óÁȵ%â¶mÛL—.]œ2eŠéÓ§Ô}ï½÷ È2cÆ ÃVÌŒ9Rê®X±Â°…B•/_^ $€nÈ+¯¼"„@Ÿxù4-Z´rc@kÖ¬iî»ï>™4lµÍã?.y–ˆh?òÐ6¶x¦eË–¢×·_¾Ddk-íúä“O¤ê,XÐüå/‘k“kÕªU†W ¢/·¢DL) ¨_¿~fíÚµ†—5ùCß:t¨aÐÀºY)R¤ˆcmZ°cÕªUMµjÕ /±ò‡„~ë­·¤øÊ•+…¨ +, ‚饗ä˜(cÆŒ1°†°F°ÐVç!C$ ¤µDĹôÖâÛ/_"vîÜÙð 2)m=ÜŸ—o¹D{ ÇÊàÁƒ¥¼½N옒DLõÁ &Áo8p uíÚ•l7nÝÿý<Ö7>ZÅŠýÞ©\¹ò œíÙ³G¶®N©Ü¹s»rÍD%èb‚Ò‹/¾(éôÌ3ÏøK›ç‰ù ^çÃ/ 'jæmñÅ1#Âäå×ð6Ž4‹É$¾‚[+ñÃx$$J}àLÛ¶m%/0j†oG‚€áøƒS×ú¤Èƒ¶˜†IŽKÃ.‚”›9s¦D«õêÕ“k´ÝÃÐRþl©R¥ðßl»­ˆhm…ïÙ¤I xPÙ·_¾>"òx5hÙFÅLB ¨W¼xqóþûïãT„'±Dòö:±cJúˆÉþ->Xì·…ó>"üŽ` þ¯_…©=3Hâ­\ÒÁƒåÅ[Žr –%Á’Œ=C,Ÿyòäq]up/_ÿ •Ñn¸ 8¢¿h'V´iÓ¦‚ü>ŒâÕ ì—Tüí>3GÌÄDWÏ·\¸çLTñoSàÅØ¸T¬L `­Zµ‚âHIBø W8:ZíNlÂLÁ$°_¾eà'÷Ô¾÷Æyª÷£Ñé”Ö ñ²ìDå)ÝžÔpÿ4aSP^¶7èåq¥—:Óº.µˆi}o’ö+#ÈNF¨A«YšñöIbOÒÊð :Ÿ~ønJnO+MÙNDÍ)%)BD¼ÌúÓO?¥TŸ=½ïôé?ð–ÑajÕJ¿ °É¾IcS[Ý+vñ~à`ÞsÌF?þø6¥OýÙtjkghþ7°H).n5ÅĤçMõ³´dɶHTÝòu5XI"®^½FqqkÇØØ~Þ¼:‰š´P"&‘‹må·pÎKí+W®Ò—_®å×ýo| ‰joÙjJÄ$ýäÉ«ØÞ€ïܹË4oÞWÂ’¨ö–­vÉ[‚ð;~áÂeš=ûG~™áÆ7ëbcÓéò>”N %¢…û“9s~â÷ý¿%R"ýìÙ‹îiI%¢…û“)SVI´X¾",¥Jø(ÃÄìÔ© ôí·xÇðƲlUà5}øŽ*á# D ³Y³Öû}gÄ·:¶r/ÞFÇ_ÿ'¾yzž0JÄ„ñ‰—;iÒ &b¼d¿l娄‡€1 ¼Ž9Íÿd'S0!&š8qeZµ(H‘—Ò*ôxÁo¨dÈÃoW_ï…µŽökœXžøa÷å)âþ{/i¯Ú­D ÉâÅóQïÞMýj ö-•-[˜êÕ+ë—~þ¼ÿ?dòËÔ‹x(ãA:¡Aƒ{âe~ñÅrºï¾;ø?@</OÜ# >¢{¬´dP"F\Uí%¢{¬´dP"F\Uí%¢{¬´dP"F\Uí%¢{¬´dP"F\Uí%¢{¬´dP"F\Uí%¢{¬´dP"F\Uí%¢{¬´dP"F\Uí%¢{¬´dP"F\Uí%¢{¬´dP"F\Uí%¢{¬´dP"F\Uí%¢{¬´dP"F\Uí%¢{¬´dP"F\Uí%¢{¬´dP"F\Uí%¢{¬´dP"F\Uí%¢{¬´dP"F\Uí%¢{¬´dP"F\Uí%¢{¬´d4àÿ íZ¾üòKüsýóÁ S¦¢&66bâƒI† \sê·‚S“ô¯‹?ÿüsʘ1c4ç‡êN£,^¼˜þóŸÿ„Ýú$ñÉ'Ÿ¤Ì™3‡}3­pó#pùòå$Q}Ä›Ÿi¢‡JÄ41L7#•ˆ7ÿ§‰*ÓÄ0ÝüLR°’V`ùì³Ïhùòå4dȨ6¹yóætæÌ™ ÷:t(•*U*h^4Oœ8AÙ²e“ÝQ£FѺuëhðàÁѼeDºoj‹¸eËúþûï#ÈMå9sæÐÑ£G©hÑ¢ñþxOÍ ÏË(P€&Mš$z/^¼HçÏŸ÷ü^*ŒªE¤bÅŠÑÞ½{ÅjT¨PÝómܸ‘_±bEþ‘Å ’Ÿ={vÊ›7¯Ó¿ýû÷ÒrçÎ-ikÖ¬qê`¶[5Z¿~=Ý}÷Ý”%K:rä•(QÂfËñÔ©SòƒŽY³f¥+VPþüù©L™2’wéÒ%‚)X° mÞ¼™Nž<É?kvŸß^)Úš>}zi+oÂÒ… (S¦L’%Íš5£®]»Š>ßÔÛ½{·ôÁöúÏž=K… –úhÛÊ•+åº\¹r¾Õ y6là˜,â×§„ú¬ÑÆC‡ æ­[·¦§Ÿ~ÚÑ ü¡øb<0>;^Å‹§]»vIýJ•*É8•£uθ}²Â³ËUµe˖ɇzõê9Oî¿ÿ~S¿~}çºfÍš†‰`jÕªe|ðAGï/¿übbbb /m†—ÃÄ2LJÿjØò˜M›6IÙ… š}ú8m Õ`KŸ~ú©´Ó©À'½{÷¼·oßNLJúøãE'O§¬=\ žä2VS§Nuò¢vâÃÊDO“jy)ݘY܃™abÉ5“ÎpÇe&ñã!É{ä‘GL“&Mäü7Þ0ü$ÇðÀšµk׊…å@DêO™2EÊá£gÏž!-bùòår8á B¬…µˆÖÊ"÷„åu#°ˆ¼”›6mÚøýýë_ÿrªó²-V–è£>’tk`a­,Y²Ä|óÍ7æÝwß•¾Áb®^½Zþ`©x)•¢°ˆ¡úƒLDÃd—²¾‘—acWÉä¬X=l{V­Ze³ V°víÚ9׉$Õ"FÕG´³§P¡BrŠY á¥IŽöǶ¹sÄË5lØ&OžLO=õa†ÂbB$±P°¨ðÃàÓp‡ëY£F )‡X«P½ÂO´uJ–,éT…³_Ó­à±g0ÑÖçÁ$XHø¼Ï=÷œ$׃X_çì¢à@Ó§O—ãóÏ?/Gû€ÈJbý±åì¾!V&ø¿¾‚ñ´‚¾[Ï}õêU{µc²,Íl\uËû]4räH°Ç\ê!*Å’†%‡­ƒD¦t "+XÞB –D+ì«ñ/ÍÿàG\ß|<¼OˆÔV›#&ÚË/¿,í:wî,Õàb@¸YÁV^@ ƒKǾªü±å–åÝ–õmo°þØröˆqÀäC`gA\ß¾º/«Ã‹£;†xq':x)–½¯=zöæì‹Øƒ¿Q%¬'|¯Ê•+ °ð!áÛÁ‡âe/ä@bXYø 6¢åF9åyY=Øöàå’7nìäñRMÖWÂÀ¡=ð㬠mæÌ™ñþ`UA,^ni̘1bGŒA³gÏ&ø†ðKy ÂážÿûßÅâãÞð!Ñ&è€n´õ¬$ÔìD`R¢¾½ð¿Ù‘<¬2࢒ؚT‘ $jñ{à‹@x B®á£Yÿ€Þÿ³I†ƒßQ%"^Þò1äHþ×_->êÀÿâeÚÏG„ïO…ˆþÊ"bìß¿¿äYu‘ÿ þ)o I>>Ššy[Fê¡nà“O"_ªD/s¦víÚ†-žøÈè©—#G?ÿmذa†·ˆØm8}ú´èI¨?(ÀAžÔCÙ›jÕªI=ìFÔ©SGò€ôóD—<ë#ÚñBâ£>ê×&)˜ÀGR}Dì7¹–p‰èZ±OÁŽ;:¹O²áÙÀ‘™ÛIØâ±9vˆè[gzxi2¼gæd[""['ì8yÉq‚mÞ¿4ØÞ t H`¿êÕÁûˆØÙk{d÷ÀpÔl”`;ÉKI*“%Xa+‘¨`™›7oa4hP¼òt¬#˜‰%ãnz°‰J€På¼LçýRÙŒ¦[_¼ç,KÒêõA+#HäÕ!09E¯S áÿñR${w­ZµJ2(`xŠW‘)ú`Ÿ‘·âƒ•Imi õ'µµÕM{ÒÁ,»)ˆ2_}õ! À†° $ÜÖÕr·ÙŽ$%Òû¸T5'ÒX;‰P"F8¸W®\‹PƒVJÄy0~ü2~Kå×µhõ$+xì£rÛn{š_TØÎ¯[­VH~C )ï`†EÄ*UªÐĉðß8qâ"õ굚ÝExò¢r¤<" ‹ˆxþ™â‚RÑh2OZsàÀYªRåAþJ@þTÔº´Õõ#¯‰WòÞ#ñ[Û1üüvMš´ª1‰غõmß~˜‘¿ {•¿²2‰š´P"&‘°€°„Vöî=ƯWí·—z %b˜€Ùâ“&­Kh¯¯/Ï9[<Â=*ÃEŒË¯Y³‡¿wr¯&–ç)SVãm&¿t½p‡€ÑN~¥¦Mó_–mæÑ£§iÙ²ÐoˆÛrzŒ€1>& ¦ð«|ü½ÿeÙVÐèÙ"þQ‰&f‹o㯠Ëóôékø}þ&¬5‡ X\ÜjþÎðh9°þéÓø `›“õ:Ô"&oö¥KWéË/ײŠýõÊ Òsвʷšž»@@‰è$[dÞ¼ü–·ÿ·âlž=^¾|¾þz¿<œp9[^×ëYó­Ú–-©R¥b~[4»wåï`g¦ÛnËîÀ“^6·«W/å¤éI„õU„UÝš¹=ô.=öXEþ>òÿÝšxÓkýª€78ª–HP1Rµ¾'(=Q•DŠ€1Rµ¾'(=Q•DŠ€1Rµ¾'(=Q•DŠ€1Rµ¾'(=Q•DŠ€1Rµ¾'(=Q•DŠ€1Rµ¾'(=Q•DŠ€1Rµ¾'(=Q•DŠ€1Rµ¾'(=Q•DŠ€1Rµ¾'(=Q•DŠ€1Rµ¾'(=Q•DŠ€1Rµ¾'(=Q•DŠ€1Rµ¾'(=Q•DŠ€1Rµ¾'(=Q•DŠ€1Rµ¾'(=Q•DŠ€1Rµ¾'(=Q•DŠ€1Rµ¾'(=Q•DŠ@¼ÿ»lÙ2zÿý÷#Õ{ËÔß³''ÿëâË”/ßù[¦Ï‘vt„ ð›Îqñˆ8iÒ$úãÿH<ð@¤÷ÓúŠ€G¥Ÿ~ú‰•á ÅÄøýDH\ÈæÞ«W/?%z¡DŠÀwß}G={ö ªF}Ä °hbr# DLnÄõ~AP"…E“%br#®÷ Š@È`%héT˜øÍ7ßЦM›èÕW_ZëΜ9Co½õ–l9ôîÝ›2eÊäw¯~ýúñ/–ž¤¿þõ¯T¢D ¿¼À‹ .еk×(kÖ¬Ya]O:•zYÐ:;v¤Â… ÍCâÌ™3iÇŽÔ¡CŠ¿1cÆPÆŒé¹çž y/·ižˆûöí£ 6¸ío’Ê]ºt‰V®\)u1ø¾[[»ví¢9sæHÞéÓ§Õÿïÿ›.^¼H}úôI´lBvîÜI7nôk‹-›ð°^¾|YÚ€ò‘à·gÏÊœ9³½mDÇ„[ìB5éøñã”?~úå—_øÇÏS©R¥dÖ£¡È¿óÎ;ù§ecéðáÔ%KÊ™3§£ùÈ‘#’–=ûõß²Ûºu+(è@Y+ЋY\¬X1±H°@… ²Ùr<{ö¬üNÀ•Ì;·”G&t‚(y󿥽{÷¬\éÒ¥)C† R×#mÅ56[}¯¥ ïÛo¿õ|\#ú!8;vŒ (àlÚbÿ V–DDÚm·Ý&uÐn×¶OWàb±A›C¾|ù¤úòúë¯Ëy°Üoûöí²gW²dI§=>ú(Õ«W/XIÃ8b¬0Ù²eó+÷믿Jôy)Å’T¹reZ»v­´­B… b²W¯^-×åÊ•£>ø€Þ~ûm!ä Aƒ$dzæ™gè•W^!ÔéÖ­¡£, Ê{ï½GÅ‹§uëÖQ÷îÝ –.]:ºë®»„L³gÏöÃzAä'NÈ€aã´aÆԥKZ¾|9õèу*V¬(–yÐ=`À™DkÖ¬áßÓû; 8Púâ{rXÂE‹‰n;I,X ésçΕ2°R¯½öMœ8Qô"±k×®T­Z5!ÿ÷ß/å°Ÿ6lØ0±¦è'ÚsõêUªZµ*ýóŸÿœ@2LŠ‘#GÊÄxùå—eøá‡¢#¡õë×KA\–PŒŒÂ'Ÿ|"˜~ôÑG~*0‰€–kl8c2¾ð ÎÒ;jÔ(úüóÏ¥\ Œ»âY°‚™ƒ§2 å?þ(–ƒapvïÞMõë×ç_í\/DAã±Á bav~úé§2pð_ ³}ÆŒ2@ýû÷ëõÅ_H9-”ÀÚÁ_üßÿþ'Y—,YâÁ¿úê+ôÔ©S4bÄɃ%¤°)ð…jÔ¨!e-™0 ÷ïßïg!¥@ˆô¡‡¢Úµk þùgz÷Ýw©qãÆüË÷ÓiìØ±bõ?ûì3YòÞ|óMÑk–“Õ>•Àuß¾}ýþ`¡! oùòå ¾$0½ãŽ;…hÅÅÅ&t¿N:‰žÍ›7Ó¡C‡¤þ³Ï>+:Û¶m+i¡t…›î[¶l)VÌÀÅrm¯Ñ‘|Pf85¥È•+)R„¶lÙB ,åСC `Û¶mÒá¦M›RÁ‚¥¬\(à?ü°Üåà´Ã¢Ziݺµ,“¸ò­ÇõK/½ä1ðõaПùóç‹:±|Y‹iïáö` ëÔ©C %V¬ÖÅ9~ܸq4yòdjß¾½ôßê‡Åòëû‡‰ aŒ`¢à>XÖá$$óæÍ£2eÊÈ8 ÂÊ7gÅŠá¼M›6”'OzòÉ'¥\BúÂÉ‹xi¶7ƒƒØÙŠ„X``æA¸êÕ«ÓÂ… ÅŠ€°˜Ë2¬áÇ,$Fžµ~+ d(¹ýöÛý²à'ZȰçÈÃ=ÃXoDÉXL¤„&…Õ ‚øaX _Á¶Ò¨Q#!"HðÈ#Ød9Â…»L€1¬(üWDò mb‚ö`)‰­À?Åb¬0é Ï ˆê•xFDK¸Ä†å¾"–GøYX¦ «V­¢çŸ^ü4XAø3X^^|ñEÉÇ2dûƒJZ°ßY@W•*Uœ¢Ðc·6àB$Dj§’Ï ,"&Û˜1cèÀâVø²ÅÁ/ÈÃjL0yÄaI¶Û9X@r&/Þ„B¿hÁ§ìܹs0U~i˜x áOD<öØcN5lŠboíé§Ÿ–Á‚ß…ÙK¨yMš4‘eâw¿ûlwØÊV7®±4ƒP° XV`Qï¹çÂ̆ÀƒÌjÌfø<L8ëuëÖ?Ì÷:ÐDÀÿ0جú5mÚ4ùC”މeÛˆ{b¢ @ „À þ0ˆ õF›`õ‡NØjAÚ½÷Þ+ApƒÀbuÊ…Ïؼys‰Žáæ` oÖ¬á=@Üõ¬UóÕÓ¢E *{õê%Ú° cX·cóßÿþWvpJ•*…lƒOs\†|Ñ:ä®´„YÀcæÁø ¬öÿ°Of—O›}5l¾"3d ܾÁ’O?°‡‰=GëÓ€ˆ˜Ý ÝϘÑXôÇúξ÷Á$Ári—cX´í ì·o½pÏÑì ¬.ö3íÖS(}ØG„ÕC½9røƒkƒ}cì#&¶qîW‘/4aÛ –ÙÆ¿• ý>b /®a°?‡eøoû[<•h¶‚ ,)öÀÜôÀ±%M¨r‘¤Ã%ƒ‹­/kuBÕIJ:ÚàÛgnÁFÂn¨ËOjZ²-Íh –;ø=X4hÔ6K´‹å9PàŸá©E0Á€”-[6X–¦¥RdiNýÖ&¤ -ÍÉ5§@ÿõ–i%b¤[¡‰JÄ[a”Ó@C+v/) ôA›˜Fð}êØäxDÄÞ6CU¯À–¶©‚mÄÇ‹š½¾¹êS\ §>¢ ”´HôP"Fc½ƒ ”ˆ.@Ò"ÑG@‰}Œõ.øÀ×’³zIEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1FoundRowsOption.html000755 000765 000024 00000031511 13515046516 025733 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::FoundRowsOption Class Reference
MySQL++  3.2.5
mysqlpp::FoundRowsOption Class Reference

Make Query::affected_rows() return number of matched rows. More...

#include <options.h>

Inheritance diagram for mysqlpp::FoundRowsOption:
Collaboration diagram for mysqlpp::FoundRowsOption:

Additional Inherited Members

- Public Types inherited from mysqlpp::DataOption< T >
typedef T ArgType
 Alias for template param.
 
- Public Types inherited from mysqlpp::Option
enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 
- Public Member Functions inherited from mysqlpp::Option
virtual ~Option ()
 Destroy object.
 
virtual Error set (DBDriver *dbd)=0
 Apply option.
 
- Protected Member Functions inherited from mysqlpp::DataOption< T >
 DataOption (const T &arg)
 Construct object.
 
- Protected Attributes inherited from mysqlpp::DataOption< T >
arg_
 The argument value.
 

Detailed Description

Make Query::affected_rows() return number of matched rows.

Default is to return number of changed rows.


The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/stream2string_8h_source.html000755 000765 000024 00000023763 13515046516 024275 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: stream2string.h Source File
MySQL++  3.2.5
stream2string.h
Go to the documentation of this file.
1 
5 /***********************************************************************
6  Copyright (c) 1998 by Kevin Atkinson, (c) 1999-2001 by MySQL AB, and
7  (c) 2004-2007 by Educational Technology Resources, Inc. Others may
8  also hold copyrights on code in this file. See the CREDITS.txt file
9  in the top directory of the distribution for details.
10 
11  This file is part of MySQL++.
12 
13  MySQL++ is free software; you can redistribute it and/or modify it
14  under the terms of the GNU Lesser General Public License as published
15  by the Free Software Foundation; either version 2.1 of the License, or
16  (at your option) any later version.
17 
18  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
19  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
21  License for more details.
22 
23  You should have received a copy of the GNU Lesser General Public
24  License along with MySQL++; if not, write to the Free Software
25  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
26  USA
27 ***********************************************************************/
28 
29 #if !defined(MYSQLPP_STREAM2STRING_H)
30 #define MYSQLPP_STREAM2STRING_H
31 
32 #include <sstream>
33 #include <string>
34 
35 namespace mysqlpp {
36 
39 
40 template <class T>
41 std::string stream2string(const T& object)
42 {
43  std::ostringstream str;
44  str << object;
45  return str.str();
46 }
47 
48 } // end namespace mysqlpp
49 
50 #endif // !defined(MYSQLPP_STREAM2STRING_H)
51 
std::string stream2string(const T &object)
Converts anything you can insert into a C++ stream to a std::string via std::ostringstream.
Definition: stream2string.h:41
mysql++-3.2.5/doc/html/refman/classes.html000755 000765 000024 00000052601 13515046516 021140 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Class Index
MySQL++  3.2.5
Class Index
a | b | c | d | e | f | g | i | l | m | n | o | q | r | s | t | u | v | w
  a  
DateTime (mysqlpp)   MultiResultsOption (mysqlpp)   ReconnectOption (mysqlpp)   String (mysqlpp)   
DBDriver (mysqlpp)   MultiStatementsOption (mysqlpp)   RefCountedPointer (mysqlpp)   
  t  
AutoFlag (mysqlpp)   DBSelectionFailed (mysqlpp)   MutexFailed (mysqlpp)   RefCountedPointerDestroyer (mysqlpp)   
  b  
  e  
mysql_type_info (mysqlpp)   RefCountedPointerDestroyer< MYSQL_RES > (mysqlpp)   TCPConnection (mysqlpp)   
  n  
ReportDataTruncationOption (mysqlpp)   Time (mysqlpp)   
BadConversion (mysqlpp)   equal_list_b (mysqlpp)   ResultBase (mysqlpp)   tiny_int (mysqlpp)   
BadFieldName (mysqlpp)   equal_list_ba (mysqlpp)   NamedPipeOption (mysqlpp)   Row (mysqlpp)   TooOld (mysqlpp)   
BadIndex (mysqlpp)   Exception (mysqlpp)   NoExceptions (mysqlpp)   Query::RowCountInsertPolicy (mysqlpp)   Transaction (mysqlpp)   
BadInsertPolicy (mysqlpp)   
  f  
NoSchemaOption (mysqlpp)   
  s  
TypeLookupFailed (mysqlpp)   
BadOption (mysqlpp)   NoTransaction (mysqlpp)   
  u  
BadParamCount (mysqlpp)   Field (mysqlpp)   Null (mysqlpp)   ScopedConnection (mysqlpp)   
BadQuery (mysqlpp)   FieldNames (mysqlpp)   null_type (mysqlpp)   ScopedLock (mysqlpp)   UnixDomainSocketConnection (mysqlpp)   
BeecryptMutex (mysqlpp)   FieldTypes (mysqlpp)   NullIsBlank (mysqlpp)   SecureAuthOption (mysqlpp)   UseEmbeddedConnectionOption (mysqlpp)   
  c  
FoundRowsOption (mysqlpp)   NullIsNull (mysqlpp)   SelfTestFailed (mysqlpp)   UseQueryError (mysqlpp)   
  g  
NullIsZero (mysqlpp)   Set (mysqlpp)   UseQueryResult (mysqlpp)   
CommandLine (mysqlpp::examples)   
  o  
SetCharsetDirOption (mysqlpp)   UseRemoteConnectionOption (mysqlpp)   
CommandLine (mysqlpp::ssqlsxlat)   GuessConnectionOption (mysqlpp)   SetCharsetNameOption (mysqlpp)   
  v  
CommandLineBase (mysqlpp)   
  i  
ObjectNotInitialized (mysqlpp)   SetClientIpOption (mysqlpp)   
Comparable (mysqlpp)   Option (mysqlpp)   SharedMemoryBaseNameOption (mysqlpp)   value_list_b (mysqlpp)   
CompressOption (mysqlpp)   IgnoreSpaceOption (mysqlpp)   OptionalExceptions (mysqlpp)   SimpleResult (mysqlpp)   value_list_ba (mysqlpp)   
Connection (mysqlpp)   InitCommandOption (mysqlpp)   
  q  
Query::SizeThresholdInsertPolicy (mysqlpp)   
  w  
ConnectionFailed (mysqlpp)   InteractiveOption (mysqlpp)   SQLBuffer (mysqlpp)   
ConnectionPool (mysqlpp)   
  l  
Query (mysqlpp)   SQLParseElement (mysqlpp)   WindowsNamedPipeConnection (mysqlpp)   
ConnectTimeoutOption (mysqlpp)   
  r  
SQLQueryParms (mysqlpp)   WriteTimeoutOption (mysqlpp)   
  d  
LocalFilesOption (mysqlpp)   SQLStream (mysqlpp)   
LocalInfileOption (mysqlpp)   ReadDefaultFileOption (mysqlpp)   SQLTypeAdapter (mysqlpp)   
DataOption (mysqlpp)   
  m  
ReadDefaultGroupOption (mysqlpp)   SslOption (mysqlpp)   
Date (mysqlpp)   ReadTimeoutOption (mysqlpp)   StoreQueryResult (mysqlpp)   
Query::MaxPacketInsertPolicy (mysqlpp)   
a | b | c | d | e | f | g | i | l | m | n | o | q | r | s | t | u | v | w
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1TCPConnection-members.html000755 000765 000024 00000042417 13515046516 026721 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::TCPConnection Member List

This is the complete list of members for mysqlpp::TCPConnection, including all inherited members.

build_error_message(const char *core)mysqlpp::Connectionprotected
client_version() constmysqlpp::Connection
connect(const char *addr=0, const char *db=0, const char *user=0, const char *password=0)mysqlpp::TCPConnection
connected() constmysqlpp::Connection
Connection(bool te=true)mysqlpp::Connection
Connection(const char *db, const char *server=0, const char *user=0, const char *password=0, unsigned int port=0)mysqlpp::Connection
Connection(const Connection &other)mysqlpp::Connection
copy(const Connection &other)mysqlpp::Connectionprotected
count_rows(const std::string &table)mysqlpp::Connection
create_db(const std::string &db)mysqlpp::Connection
disable_exceptions() constmysqlpp::OptionalExceptionsinline
disconnect()mysqlpp::Connection
driver()mysqlpp::Connectioninline
drop_db(const std::string &db)mysqlpp::Connection
enable_exceptions() constmysqlpp::OptionalExceptionsinline
errnum()mysqlpp::Connection
error() constmysqlpp::Connection
error_message_mysqlpp::Connectionmutableprotected
ipc_info() constmysqlpp::Connection
kill(unsigned long tid) constmysqlpp::Connection
operator private_bool_type() constmysqlpp::Connectioninline
operator=(const Connection &rhs)mysqlpp::Connection
OptionalExceptions(bool e=true)mysqlpp::OptionalExceptionsinline
parse_address(std::string &addr, unsigned int &port, std::string &error)mysqlpp::TCPConnectionstatic
parse_ipc_method(const char *server, std::string &host, unsigned int &port, std::string &socket_name)mysqlpp::Connectionprotected
ping()mysqlpp::Connection
protocol_version() constmysqlpp::Connection
query(const char *qstr=0)mysqlpp::Connection
query(const std::string &qstr)mysqlpp::Connection
select_db(const std::string &db)mysqlpp::Connection
server_status() constmysqlpp::Connection
server_version() constmysqlpp::Connection
set_exceptions(bool e) constmysqlpp::OptionalExceptionsinlineprotected
set_option(Option *o)mysqlpp::Connection
shutdown()mysqlpp::Connection
TCPConnection()mysqlpp::TCPConnectioninline
TCPConnection(const char *addr, const char *db=0, const char *user=0, const char *password=0)mysqlpp::TCPConnectioninline
TCPConnection(const TCPConnection &other)mysqlpp::TCPConnectioninline
thread_aware()mysqlpp::Connectionstatic
thread_end()mysqlpp::Connectionstatic
thread_id()mysqlpp::Connection
thread_start()mysqlpp::Connectionstatic
throw_exceptions() constmysqlpp::OptionalExceptionsinline
~Connection()mysqlpp::Connectionvirtual
~OptionalExceptions()mysqlpp::OptionalExceptionsinlinevirtual
~TCPConnection()mysqlpp::TCPConnectioninline
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1Row__inherit__graph.png000644 000765 000024 00000013300 13515046516 026375 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÌmíb޹sRGB®ÎézIDATxí]TEnrÎ9gEr–ô#AP”¤"AA AQ ’ƒˆ¢IDD ª1JA$ H$ 99Ïß_ë,ïîv/À±ûî¶»j÷½7±ç›éé0oï&RRè š0:¥´Œ" ü‹€ Œ®E ¨ÀÄ,-ª¨ÀèPb‚œ~'M›6 Aý(A¿-Zä Ü_LìK¸Xp|eiº"¯¸víµmÛÖë} L³fͼVÐDE ¾#êsˆêÃø„F3ˆ¨ÀDÄDSŸ¨Àø„F3ˆ¨ÀDÄDSŸÄy™2e uéÒÅçc3cóæÍôÊ+¯PáÂ…)kÖ¬T»vmúüóÏéÞ½{ÑêæÎ;tþüyOÙ×^{f̘áy~7N|¶nÝJõë×÷úiß¾ý£è>Ê6I”LER Î Ìž={hÍš5‘ 1v².\H5jÔ 7Ò믿N~ø!eÏžzöìI 4 Û·oGÙÑܹs)S¦Lž²_Þºu+ÊzSÀ‰Ï™3gè×_¥4iÒPîܹÃ|0–@P 0y˜qú +G·Ñ›7oÒ‰'(OžO>n.]ºD|¸D)S¦¤õë×S–,Yè±Ç“2X˜.\ lÙ²ÑßÿM/^¤råÊQÒ¤I%õnܸAÉ’%£„ J;ö€ø‰'ž eË– ¿¨Ô±cGª^½:uîÜ™&Ož,eNŸ>MéÒ¥À/Æ!A[È…„„P¡B…è믿¦äÉ“K¾0ÆM›6IßåË——…th%ð!CÚ¶m›Ô)V¬%J”ÙBÐrÐ ‰'¦%JÈl^øëСC©H‘"á“„TsåÊ%ó…ÇŒ2gÎ,å>L˜×Š+’M³ =z”1§M›Ö&˸ ÖåÎ;©xñâ”#G?uƒãK'Ù“~gZd÷þù§œתUËs2ü¿ÿýÏÔ­[×ó\¥Jà ÖT­ZÕÔ¬YÓÓ/ ÓnÆŽkx!ÃÂc$H`x4»wï–²+V¬0¼X /d)_¡BÃÂ$y}ûö5eË–•ûV­Z^Ô†Ò° Hÿ¬ $oÖ¬YòÌZ“‡²<É’¿dÉÉ_¾|y„g6›$ï·ß~“<ç/TÃBlêÔ©#Éè·ZµjÂ'o†…×üüóÏféÒ¥Â?O–ä:tÈð&c>ýôS©·råJÃfžŒ‹…Ȱ°Kd¾ÿþû2.^äRmÔ«WÏ oê²Pvùðâ<‘çÄgñâÅ2޽{÷"+­ZµJxüàƒ$ï?þgËc¿~ýdnÐæ¢yóææîÝ»†78óꫯJÛ3ætذažöý xzæ™gŒÅŸ7óÍ7ßxø‰ê†7S‹·“~ìfaèA¦qãÆæØ±cfäÈ‘Ò&kóý÷ßË3ï~櫯¾ O:%}Ž?^uöìYóÒK/Þ­eÐï°¦k×®"h 0ì/Þ½Ìþýûe¡ù,&ô Ð&Mš$}Ïž=ÛXaİ)döíÛ' ´uëÖ žÙ¼2XÈ çóÇ,í°“¼ð_-[¶4à„Å‘3gNÃZÄ\½zÕ¼øâ‹²˜/_¾l~ùåi›È \þüù 0DžqÏ;½aÍ$ƒq1Bò(í|¸Á¢œ3gŽaŸÄL˜0Aʲ–—6ýÉO?ý$ýc3¼~ýºÁ,í#LEòå±à`÷°ìl K¬âåyæÌ™‚©7nœä=ýôÓ“ °³bqB¸°pðY·nÔÇ.miÀ€>5 ›#¶˜\ ,( Î ŒÕZÈDŸÐdQŠ7ÂnÆÉÂâ`ÿÆSŒM,áíÚµ>Æjiö“<õ¬ÆÐ0‡¥“'OJ›v„c3Áüøã†Í5Ù|PÞ›À4mÚÔ´k×.ÌÇ b¼lV‰à£nݺ‰æÆ½% ûH¿R¥JcŇý<±,þÆdÆ ¢ [´ha U±qAp¢K‘ ÌCû0,BÖid åÙÚÈl^É33+¶<¢4ˆ ±F€A—|žX:w¢>}úˆO4uêTÝ_¹re)‡/6Ý<÷áoxa…I‚c}d°&ðä#Ò_(*‚¿h/Lñ=œåáoñî+›îìýƒœ<Ørö ߿Œµ¹y“‘$ðjÉú=,À’Ä› ±¹$¾|ð}òÉ'^}ÔצMâÍ„x#ð` íœÚ¶1ÁoÿÅZÑf‰Ojç‰þÄ„˜XʇMWñi{ôèAƒ òð÷ 7±%ƒ£bˆØO VÛâ<³)!ÕØ?IgsM_Dq 8v¡À³Ä¦ˆ½p…“j Q¨-[¶x&éÎ|¶ÑÃäÙzᯈŽa#3fLø,úý÷߉w/bÓË“çìcõêÕ’™ÛÍAKpþAlªÉÕ¹ø$á¿/"6›N:Ip€5ñnï,£{‚®`cü€,AÄ Á6Š7ÞxC¢†l‚û¬§ß~€•ó}DbÂFO;vìù~ë­·dLàía)z«üa{qÔgŒýêß¿¿jwˉ'Ò;ï¼Cˆša—Dd Ñ®2eÊH´kÈ!ÙB”ˆ}G‹ao±Ð µ ­°ë²YGÏ?ÿ¼§›sÒÎôéÓ‰Í #‹ý8p@Ê:Ÿ¡a:tè@£G¦îÝ»K´à³­LØJ—.MlâxúÀîÆ¦)aÂP'oÞ¼9bÓDÊ Jk š uÁC ‘(ôacAãŠ0-ûl‘†«±aÍŸ??̇Í;á oé"b‰(#"€¡ƒŸ^xA®À›vk6³%rˆMXBÀ€;ÆòˆJZò'&ˆŒÁ‚Áf\ ±áA{>4…·ëÔ釃‚#ÊLØå 8Êx†a ‘+¤ñù‰M§N0"d°y94i`÷ƒøì@ìgÔAt†Í³0> ‡‡¥œX^`ž²ˆ¬ÙhõaPíÀF‡ÿĦ„Ôµ>/&¯Ïpfálƒ7Ô·mð.*c”Jü…|Díà8£ "qvœlþI é,˜†É%Cÿ¦•:#|"žxiþ{KÖÆ^°`$ÁQG¿¨ÇšÌôîÝ[Æ×«W/ña,>ˆòYÞÃ_DùòË/%ß¶ ”Cø†…Hú¼÷Þ{†Ïj"”æ³û‚]øL8m=Cý²Q2g9L“&M ÚaóF"F6ß ò°Xm¤ÎæG÷Š@ø€c‰…ž°8à tg€Á–ƒSà‡7Âá4Ñö`ðVihõ,!dÈ\lÚô–fsN69>7 Óm 0þ„ÄËÈ&Öœ~–æ( æl~˜_£FŠPj“C¢Ò‘Ó bÑ!´ƒÃS_>0૜·tŽòE‹Ôáž`ø2 0F¦>Á„ÅÇ’ 6Øçغâ9¼óoÛÆá5>¾Èߘ-ZÔ+œîWÂg1Ä&ñA×3@€7ǧúpô½"m¾œgou$ }8ßêÄ'L@w:'Î0z‰èL×{E XÀëA| ‚°´ƒôù9ÀÐ[E JüVŽ’#-@wïFïç •ÿPñ?æQö¸bÅ> ‰²œð?>þGíû¨q§Ç êó!äM ]w˜N#8ýˆdáõ ¥À pûö=Ž"®ç“é„ôñÇùw-ÿ¾‹n‚»W¼…7AÃà.ç;@ŽÂzëæÌÙÊ/OþÉ?Ãë.¥¨fÍØ?KðÃ0âmêøljþy#ÿ’2¡h˜_~ù÷L—±Ôì¨À¸hú/]ºÁ?yØÍæž|æÍÛÎoGþª¾‹Ø VT`\4Íóæm s`|óæ-~ x§‹8TVT`\´fÌØÈsŸ!~ã™_™ßx?A LÀ§à_NŸ¾DëÖäpò}‰¹sç.¿¬º‹._¾á.• —¬Ù³·z !C€,¸ÿKL—°´l¨À¸dê§M[ïùù¯“% «YæD$°÷*0Å_z 9ËpîXÿŲ…÷ÊÖ®ÝOgÏ^±Iz *0ßv=kÖf9w±Ïá¯Ð2³go Ÿ¬Ï@@& ‡ïæÎ^|ü˜éÓ7øÊÖt?" ãG°½uµsçq 9ç-Ë“†ßømߎ?atÿ/ÿ{2õƯDx—̯½kg"eÊä N>vì‚ü1ñ9îÿM¼„¹eËþÍ|FE-€Dx[9€¼h×ÿ!жíDþËýÉù¶RLÜ…€þDÙ]ó¡Ü¸õaÜ>CÊŸ«PqÕt(3nG@Æí3¤ü¹ WM‡2ãvT`Ü>CÊŸ«PqÕt(3nG@Æí3¤ü¹ WM‡2ãvT`Ü>CÊŸ«PqÕt(3nG@Æí3¤ü¹ WM‡2ãvT`Ü>CÊŸ«PqÕt(3nG@Æí3¤ü¹ WM‡2ãvT`Ü>CÊŸ«PqÕt(3nG@Æí3¤ü¹ WM‡2ãvT`Ü>CÊŸ«PqÕt(3nG@Æí3¤ü¹ WM‡2ãvT`Ü>CÊŸ«PqÕt(3nG@Æí3¤ü¹ WM‡2ãvT`Ü>CÊŸ«PqÕt(3nG@Æí3¤ü¹ WM‡2ãvâü Û³gõïßßí8Lj¿ãÇSó¿ì3”=ûÕÕs{á#FPîܹÝÎfdü…ÆyY³f U«V*W®LÉ’%‹l°š ®]»F6l ;vPñâÅÄE¬toþ)l·nÝ(sæÌ±‚Š6»„„„P»víb·Ñµ¦>L€€×nã&*0qsÞ”ë!  àµÛ¸‰€ LÜœ7å:@ħ?@øÅ¸ÛÅ‹ÓîÝ»©k×®1®“ }ô]ºt)L•,Y²P•*U¨zõêaÒõ!ú¨†‰>V±RòèÑ£^•Æ"idóæÍJ Ož}š®_¿N ¤{÷îÑáÇ ù… ¢Ä‰Ó©S§(EŠ”6mZ†gΜ‘´Ô©SKÚÞ½{éöíÛÒÊZB»X X¨8ºxñ"Df·Ùr½zõ*c(yòä¢uÒ§O/åm¡ .PªT©„ǃJéÒ¥³ÙÂk„ …W´Þ“$I‡žÿîƒeÊ”¡N:yÊ£¿–-[Ò²e˨Aƒ’Žq:tˆ0.à5kVI6)S¦$;Γ'Oʽ}FyÜ;Çìé(ßÀìß¿Ÿ:wîLXL[·n•©-Y²$%Mš”6mÚ$ÏÅŠ£Ñ£GÓ!Cd1Ž5JÒ±è[´hAo¿ý6¡Nß¾}e¿q㆜ >œòæÍKÛ¶m£~ýúh‚ ¨páÂtäÈZ¸pa˜¥„v!p Ø;w¨~ýúÔ³gO)×¼ys*Z´(íÚµKÚ÷éÓ‡jÔ¨!ùM›6¥:uêлï¾KÐ(Ý»w§‘#GÊØÂtôß„/Mš42V$]¾|Y4ÎöíÛE0Áo«V­¨}ûöÔ«W/*R¤õîÝ›Nœ8!‚V»vm)^ÃÀ=¼xë/>¦­I†Å3}útž¿þúK´Ä´iÓd¡câ°­nݺ„Å„ Zµj•,ÜZµjÑäÉ“EKÍŸ?_Úɘ1#Í™3Gý°aÃd±ýðÃRÎÖ÷¶€ Hðg-Z$‚¡Z½zµ§(ëÔ©S fT¥J•B‰ ‚ÀT¨PA°ˆZ æ´ > , í=÷ÜsRçÛo¿­ŠöçÎK=zô ï¾û޶lÙBO>ù¤> ÚÅ^±!`#°}KcAò´ÓºukÑ x¥fš}† R³fM1o ( åË—Ë¢…Y”+W.Â{l hž±cÇRÇŽiß¾}„ºMš4¡lÙ²I9h _”?~Ñ0£P.GŽž…Š:5!€ÙžáÈĵmÛÖãÀƒŸ7ß|3ŒÀ@ë€/|ÆGK—.•1Cs€V®\)Aô BÿÐ@¨IНÁ”…"¿T©Rb²IÅ ú ZF%J”H®Xp ìœ ø ,œ+Vˆé…Z„Å‹{h©:ˆÉÍÛ³ÎÇåÌ™3Lü§F²‹…ræK‚¯ÆÓŒ3ä òÙgŸ ÐVð]Ξ=+šÐY¸ X“Zã~öÙg ¼âÞ ”³^°Ü­ÀXÁˆj¢!X$Xdpp±Ó‚6nÜHmÚ´¡™3gÒøñãE;M˜02dÈ ùçΓ+¾`ù",ZKð… ¡œf•3//‚"@Û–·kÅŠű?~ü¸hN ‚ –`êAƒ }l$åË—S›@éÒ¥åZÁ «‰mÝ`¹­ÀDw‚«V­*Q¬I“&ÑSO=åq˜áŒ3F¢K0«IƒÙšiÊ”)tåÊB¾/‚Ó¿dÉÙÕ'Nœ(>s1Κ5K1Ì0h D±ÅAPaVà }ñÅtìØ1yöõÞÀg207¡AéCû ˜¢ ð@úƒ©V®\9Ñ.è|ùòI™`û º(Yt'Øj DÏ (pÆ­³Œ6žÅáàË/¿,‘4DÇðÆ4B±ˆd!¯aÆbâ!ÒeýÔµmãf:"VÓ¼s¾A„¯ } 0ÀSZZQ3„y¡ípoÍK^F?– UÖ®]+þú‚  4HÚDc°õd•-[6ÌÕ)Ð’D_ñæ÷0ð%Õëýpš±ÓBË8éîÝ»r~’)S&qÖy8y;8„"|XyèС²à,Ñ*œÙàÅÌA„wáGÁá†ÀÄ6ÁWƒ‰­Mù(~Sd_ï×ßÃÄö칬=˜7ppa~uéÒ%w°óK”(! ÐLÖtòZÀ‘ˆvphè‹ y졯2šmg5ʃ¶LõÔ$‹d¶aæÌž=[óêÕ«IÉȳ`Á, Oø¹îÍ›7Ã'{žis¾eàÉЛ€! &YÀ žŽã“I¦Q²àY·:ÒX@@&@Ô&‚˜à™ki, oœ~¼”ø(B¢±€qÐ7?³_(Î Î@š5k_æ#ÞŽg+£F Ëô  ð¬Í’%‹,XPZ¶l){öì ËØñäܹsrúôiÓtøðáR·n]Ÿ¯!C†˜gÿüóO|† I›ãÇË¥K—bô½zõjiÞ¼¹.\XräÈ!5jÔxe^»v-F=_W®\‘cÇŽ¹·nÝZÆŽëºNèÚz8> @È,X°@vîܲþ펟yæéСƒÖ¾øâ yüñÇc—/_^É”)“X–%6lÒ¥KKêÔ© ³}ûv¹çž{Ìó .È¡C‡$wîÜæ9p]¼xÑÔ»õÖ[%eÊ”‚:K–,‘œ9sÊÝwß-É’%sQÅ8x¡ÿ'N˜gÙ²es=LJÿý×">Ö¯_/%J”0?ÐxvêÔ)3G'Ë—/—ìÙ³K‘"EðÈh`ðJ“&¹ÆÜnºé&3¯ùóç 4QÖºtéòÿ-DÚ´i#÷ÝwŸôíÛW>ýôSssÄØXç½÷ÞëZ´;*2gÎ,ëÖ­3ã` lùóç—]»vN%K–” 2¸ÆÂÜ6oÞlæˆghg—«W¯ÊÚµkV­bÅŠfÎG•³gÏÊùóçåÀÒ AóB›I“&É”)SäÝwß•»îºËtƒ>ªU«f¸`®¸†p³jÕ*APpÖ¬Y#yòä1«=>ÞÁwãÆ‚½D}÷‚ý@?øŽ`ÿn¾ùfóã`í`…‚5‚_¾|ùdÿþý¦>¾3hïgÌwÞ¼y.6Ï?ÿ¼TªTI^|ñEùñÇM_ß|¿ð e÷îÝR¨P!ùî»ï\{ŽûþæêkÿÐα¢XH€H€H úãn©v& º¨¤?°Ö<`¥J•ÊÒ.K8«sçΖ \æ:cÆŒ– )Ößÿm©dõïßßÕ·þ`Z*|Xª©²úôéc¥OŸÞB}ôS¿~}K¼LÝwÞyÇÜC{ôçwZO?ý´yvÇwX={ö4Ÿ1ZLŸú#o©€f7Î<Ó£LKð-Õ8¹æªÚó Ú·oo© çºVáÊRÍš¹VaÁR¡ÅRŒë¹ýaáÂ…ÖŠ+Ìåûï¿oÖˆ1°~ÌE…'ó L0>æ‹5cµjÕ2küã?Ìõc=æz†¹lݺմý믿L[´I‘"…¥Ú% mPŽ9bÆÁ3–-ˆ,0ÍÜí=¸ÿþûM]ûÏĉÍx*Ú·LèC…F³Ø× ¸¸ƒ ^Ÿ}ö™«íˆ# k0Ç3¬Kkó|Ð{«±aø ¹çë{€qÑæˆ=ÀZ±Nôâo®þöÏ4àöW3"ø«¹„Ç£º;,$@$@¡# ?~æ¨ÐÖ}ûí·²xñb}4B°9Ë›7¯T­Z5†ý޾jÖ¬)úƒ.*˜É‡~('Ožýñ…Aë¦Â‰¹ÿÞ{ïM’ }¢ÂŒÏÅ`.;vì0Ú¸:uêˆ cF{‚[¶l‘o¾ùÆhŸ 9à Z'”ÚµkK§NÌgü騱£<ôÐCæzÛ¶mFÃmg©\¹²”)SF~ÿýw£¹úá‡Z.̚Ʒß~ÛÕã¿ð f|h¹fΜi4>vh‚T3,¡?~¼y^Ú´iÍü¡Ñ*W®œ±ëÒ_QAÑÜGßiÈ^ýu³Îf͚ɣ>*K—.µ‡ø]…lyõÕWf {„=Åñ0ö§I“&2hÐ ÓXCÛBÌó€&ñ£>2ÇŽO=õ”¨P/°OCÛ *˜#[¬Ï_ÁwGT£=Ãñ§½ç8Žö,ÐÈBƒç~Lîí{P¶lY×÷HJ]]áˆ4¶¹Æ¶®Î‚ø@¡-xlJ$@$;'Ÿ|RT›c9©¦Åü8ãH ?”8ŠBA=d8¢Â<ŽaÌ#I«AàQ­¨6ÊÅ¡OÕ” Ž4ß|óMóŽÜE‹5ýyûƒã2Ï¡M÷îÝ ƒc;”âÅ‹aGµ-¢š:¹ýöÛ€„g 64õñB¢jFÌg¹C@òW&L˜`ŽfñÃÛ1´Ÿ3gŽ«ƃ á B»@ÐÁQ3œp ¡ì tÁ‰Ç“ÀB‰jàä×_5Ù+À¯jÀŒa~ ö]ö¸ÞÞÁ‚+Ž‘!lãÈ[µM¢šP#Ìb|–x°VÌs„6cÆ s”ŠùcO°fÕ€ÉË/¿lŽ>ÿüóOoÃú¼‡£^qX£·ÿ@°‹¿ï]ÇýǾ±Í5¶ýsï/¾ŸiÓ_rlG$@$Û& •ñã ¡Ë.ЂØO£FŒíNÖ`Ð6Ö dAc!vJ0–ß»w¯± þ]`ûå«À«Ó.8Pl;&üèº<·Ÿ¹ß÷ü¬GoFãOLÛË®cxÌßž'Öeppj±v±mç`;f÷çЬá™í Û+x€ÚšKH°ýr·Íƒ½<"ƒ-î{ a s³×î¾§öül‡{\ÌLP ³‹Ý¯;û´_¾ þ1›7‹øì^ µÃ? ìÚÅß÷À®ãþÈ\Ý÷ÇÛþ¹÷ßÏ׿=ñííH€H€HÀüˆRà­ƒx„XÀÑ(6ÛÃØG[ÒpŒí<lœ<½3ÝÁ<Džѽ]pd‰bÆ»?³êígvoïÐBs¥öT1ãÚ1(ðb„FÏPQÑ6â·ÅÆÉ]à³Û@CùꫯG–x¡_8EÀ(‚'Ž¥í²lÙ2s$ì. ÚÏâòÛ\í¾ „A ÆìùAû‡£n0Ac†]0wMb èv±@ík÷wdûõëç~Û|†6´¥vqßkÏï]Çý=¶¹¢n LÜûëg mq%Æú$@$@!#€#RüÈΞ=ÛŽ?úÐáBO©R¥Œö G…°+ƒveàÀ懶UîGŠžµmÞ @Á«Z9x‘¢@`@Òn¥ÁÖ ƒ:<˜g¿üò‹¼õÖ[æ3þÀ.̶)ƒÍ¼DŸ{î9cŸ­ 4;8¦„+lÇÐú…m¼[!<ÁËÏ‚)Ð+V̰­ŽÁ óÑ%_u,0s…0‹ãWhžpT „Ì'T¡6 ëÑ£‡>|Øx¥‚l¡aƒP÷ñÇó€ÆB0´eÐÈnÚ´ÉñØ µt/˜?Ö„}B}ha±§]»v5‚ „DØKâ;…ãdyÛÅ×÷ÀÖØ‚£»€Û\í~Cþ®“b!  €ÄÕ{T…"«wïÞ®¾õÙÒU×µø[ Õu­…ñàD;Õ¹îÃóRœŒ$¼ U°Pý©–Ãxýé•ñj´½GõhÐÒp¦žþ [*ð¹<0á­©Î æ¼Gõ‡ßŒ­?¼¼Cív¨ ™¥¡FL]üq÷ŵ Æ;míÆR-›¢BŸ™'<QG6K5@晆 1^žÿ_ÕxW¢ÎÔ©S]ž›îÂ~l›íݪá<,Þ\ãÂãQíÜL]­êÕ«›g`¤Ž.¯SD·© œ®~ñÁöUû8×}ÛƒUdËs®¼ÖR¤«.¼S±F»¨ möÍæ¢‚¶¥GÉæ± ç– ¶f~ªI´ÔÖÏRAÍÚ?ï!žœgÁ  „†ÌÝʳ^\¯¡Í¼ñŽØw8*t/°mƒfÊsL7£®'O÷¶N|†W+æ‡ñÝíÉÐ7¼b±¯8 ‡ƒ†û10D8`?aÇçYpÀÀX›]pT± ƒÒ³¿ïú€&ñ؇γø›«gݸ^C+ ™Ÿ~úÉWÓ¥1wÕW5Þ'  À±¨j&Œð…£FÏ‚Q„ÐðVp éL×[=܃í^Þ =ñ-J<#÷¾°o€{ø|ŽmÞð¾õVÌ7^¥ÞÂq`líãxÙ[˜§ç^Ï›` Î>òv¯ëùÙ×÷B^ÞŠ¿¹z«ïô= mNe$@$@ñ";6¥ÃÑÀŸà[çЮ@èY"Ä—ÀK8°$~þ¾‘¾zFúq~$@$AB}<AKº© Žœ¾þúë°Î|¡‚óKü ðx4þìØ’H€H€¢Šl±üÅ2 Õb`æ+¨m¨ÆLªý2äGRÝy®›H€H ,¼e@âs»Û)œà,€‚Dé0°‡!½æ-• 6˜@ºv]¼#6Ž“ÝcÔ!Ô‡˜u`ÄÐ0äGÁpT€p‡{pú@š)Ä)sŸ‹©¬2éÆàDàYàô±zõj3GÏgöµ·uÛÏø?ÚâÇ­H€H€HÀ'Fˆí†¼œˆQæY÷ËÎωg jÕª™jˆ[¦a:LZ-¤|‚Q=<^!„AÐBÎTýEÞPÄ™³ûÁ8x†Ág`†üø ;¿E‹‰†1÷^²È.oV;¾„E€è»FÆ;SÃ^˜~ñ1ì´kÀ;KoóFº(Bfq†…6g8²  0Á`ÀÞšº‹Œñ  ‹Þ’Ç#[òv"¨,‡h|0“Þ3zΣhAâ-¤‡¯ôß|ó 2’¡ã!1< Òm!e‚ ãÈŸ)H þÄOM3ôƒlžü!Ú-Zo>ËÂ… ý …Cª)hÊØÐ1lôðòVpô‹—¿âkÝþÚð™<õχOI€H€H êÀ† Z2þÃ3[ß¾}£nœpLÚbòà D=h¹úôéõëàb ÷hL¼"   ˆ$@¡-"·…“"   ˜(´ÅäÁ+   ˆH´i‹Èmá¤H€H r À3ñÂ).¤T©®jÜ1+ê¬CI–´T«VÍïú)´ùÅÇ$@$@î*V¬è3@«{=|Þ¿?ƒìÝ›Qòç?¥IÅÏx>æ5 €ü·U¾|y·;7~dpÝ™ð @vì8,;ÿ¬iöJ§NIÇŽiª%Zã”MI–RÓÆ/ €c~øa‘檜,EŠä’3ºhXÿX˜‘@ @¡- l2—H$@¡&pêÔ£]›1c£téR[”×”äÉ©] 5wöŸ´PhKZûÍÕ’ €ãp úÜsÃåòå«2vì‹j—s»ãc°C þ3ˆß  x9òyôѯ¥pá2{ökØâM’ I vÔ´ÅΈ5H€H€¼øøãߤÿ9òꫵåµ×êx©Á[$@N Ðæ$MöE$@I€Àùó—ÕfíªYÛ,ýúµ”FÊ$Us‰$ð(´%üp$@$5Nžr$@$+O?*gÏ^”?|<Öº¬@$yx<y{‘ €ã֮ݫG¢‹¤wïf’5kÇûg‡$@¡'@¡-ôŒ9 $(+W®I—.£¤bÅÂÒ¤IÙK4 þì³Ï ¼]›6 £ÆÚµkåÍ7ßôŠ£Y³fÒºuk¯ÏBqóý÷ß—4iÒÈ믿®©Ìʯ¿þc˜ 2Hùòå套^2õb< áÅàÁƒeìØ±²zõj¹ùæ›MÌ3Ì¡FzåÊ9uê”dÉ’ÅÔÓ ÈO<PûH¬ÄãÑHÜΉH€$ðÝwód÷î#òÙgMì5ñvµ`Á‚>|ø°LŸ>]Ò¥K'yóæñºå–[ wóæÍò×_™17mÚ$K–,‘bÅŠ¹^É’%S[ÈnòÈ#„m^;vÏ)R¤wß}Wžþyýï–ZµjÉ·ß~Ð<&Ož¬Zå¬rùòeSÿܹsréÒ¥€ÚFj%jÚ"ug8/ p€ÀÁƒ'嫯fI§NÉm·eu ÇÐwqìØ1¹zõªùÁE6…Ûn»MräÈ!øÑ]³fäÉ“G ,(.\C‡Iîܹ%uêÔfb/^”ƒÊ­·Þ*)S¦4u „äÌ™Sî¾ûn“²Ë^Á¾}û¯Ò¥Kˉ'̳lÙ²ÙÍû¿ÿþ+¢Îœ9#ëׯ—%J˜yá!´8–eÁkùòåê›]ß.x†9bn7Ýt“@óƒ´Zvyï½÷äž{¼;…\»vM6nÜhæˆ:ùòå³›™{™2ehÁPNž0÷ð§S§NFSÖµkWiÔ¨‘YßñãÇÍÞþùçŸfï»ï>Íî‘ÊÌ{‡a¯P¡BòÝwßÅ`=Å÷ û„ï´y(ð3âN–…H€H ‘xî¹áV… [/^I°ªÆÄÒãÆ€Ç×Hò– (V,ý]´Tà±:tè`齹ƽÏ>ûÌúûï¿Í³þýû»úÖfK…K…«OŸ>Vúôé­Œ3švõë×·T2uU põ­ÂuçwZO?ý´yvÇwX={ö4ŸU°*V¬húT!ÐR͘5nÜ8ó¬eË–Ö]wÝeéñ›…z˜WÛ¶mÍ3ü™={¶¹7þ|s¯}ûö– væóÌ™3Í3z̵ç¬jÕª™õ©eÞß~ûmW5°èÝ»·ëú“O>± .l®ÁóÂ:ÀóR •kíÝ»w7÷plTv­ýå—_¶THvõkxë­·L_*¨š[z¤j愵«&Î0RÍR!ËRáÇRÁÌÔSaÈ0SaÚ\ëñ¤¥Ç¿– åVíÚµ-›©jÔ¬ï¿ÿÞÔÑci+W®\– æÚý+›¹ë1®¥Ç¸æs•*U\ü±n|/æÎkæ‡5‚Á®]»ÌwªW¯^¦»… šï¾*D›}A”Øø™J±üÑãdÓO,Õâúx GuGYH€H 1øý÷m2iÒã-mÉàõ‡W^}õU¶öe8SÁÍh”š4ibÒbáX±jÕªÆîÉÞ¿1cƘúúcl45~ø¡i£?Ò2mÚ4sô÷Ç(“Z®Ó§Ok:¯þ²uëV»‹Þõ_vìØa49uêÔ¾ŒV ·lÙ"ß|óœ?^† b^“&M2}@CˆcE¼£¨b´Eæâÿÿ¼ñÆòä“Oº^Ð"¡ÀÎ Ç–Û·o7šØw}ôÑG2oÞ¼ÿoéÿ ózá…̼p¼¨B¢Ñ8íÙ³G>þøcc¿öÏ?ÿXŸ{jôèÑæíæ8`ÀiÞ¼¹ÑFýþûïæÈò‡~0š7°Ã>8pÀu Gƒ(ö‘§û3ÛQÂ~æjdž ÔÀÈß.Ð>ÁÃÓîuÜ=!¡Es/¾øÁ›G í.þ „åçž{Σ„GhmÁ÷l‡|ÆñçâÅ‹ÍQ.„¶|ÐKãxÏPV¬Xa„Uô†8úƱ-ŽÅÒÚ08x–ß~ûÍæuëÖu=rߌk3rUðø€ù£¸óÅüQ üÿ1ª/~¦Rþ¡Ð–€ð94 „‚@Ÿ>3U“’B|j†¢ûˆëG¤ÐÀ¨á¿±K¡IB\.x!B¸(Uª”ѾáØÍ>^EL2Ø;Á^ÎSèq_¤mó£oß¾*ç7Ú*ÔÁýÈ‘#Í‘)4Q¤ÔáÁ4‡…ãGØÃ¡À>L úÍçØþàhÇ6ѧ:U˜&76ï8î… ÁGžøHAØØ!&„O?ýÔhÄbk ¯Zz°wÃú`‡ïNôµlÙ2# !¾ 4gÐÎA„ЦŽf ðÚBÚ!¬GÈp¤€1~| ØBC »>w°¸ô-´rÐ~áÈ׳À³Ú0húÏýØRWãç Ø©áXÜs`í Ž…= âÉá»vp¦ð6¾g›@¯áð ã—_~h“@ê-¥#B ˜X‡H€¢€ÀŠ»dêÔõò¿ÿµ-ÔØp,ª$#|ÁîʳàÇZµ>ž·Í5¼)°ó•©ÇzžÎô[(þ2”þžûëǃ¶ñ½¿zþž­7aÈ_ÏgîB°ç3\ƒ9„ŸØŠ§Cˆ]ŒðòVà áéìá­^$Ý£ÐI»Á¹ @>üp’ (E¢2ÄG|— &ØuÁöËSË—>‘ß[˜ hL| &ÐüxzmÆeLÖ Žöûã®} ®ÇÈoM¡-ò÷ˆ3$ X Ìž½Y ¿w«·dçXë&¦ š À‘å ™·‚о àÃ]`<‚P&N–Ý»w›xnˆkçnäïäN÷….K—.uºÛˆîB[Do'G$@èÕkªÚ]•P¯Æëù)kÉZÑDÀ3\‡Ss‡í£PsèÑÐôs£Õ_hÆa¯$@$@!"0iÒZ5„?¨¡®Ç® ÑPì6ŒàˆàËW±ç`Ï!γÀ9v~ˆuæÙN8NÆsÄD‹­ >Kä Ð9{Á™ @œ hM34MƒÊÞ§Þuÿ s'lQàÙ‰c_xµ"‡§gAOE¼9x•"m—-œ!=ž!&<2á„¡ÉçMôè1ëàùª¡Bnð¶õ 1Ø`»‡t\ÈpÀ’°(´%,ŽN$@A=z…IWÕµk úaã„%€ÔLˆöžÞ‹`¯È‰ Áͳ X/lð ‰ïÜxý%rGñIB¯qé}5>šäÍ›W?Z:jàÎ@b§!Ì…]Ú8}"Ð/‚»‰E ÍX\“ÐÛcà}"=^°™C *•P‹£S–ð ¦-<œ9 8JàêÕkòõ׳U;SVC4dr´ov>/½ô’tîÜÙ8 Ð,²GxK”î>#„ç° ò’j*,£ùò—ÈBWlIèí>}½#û3Ï<#82Å-æí- ±¯ö¼< mÁ3d$@$v&¬VÍÉñ$“>ì€Ã4 2 Õ´`ƒ 2Ç¢ˆ?ÉÜ‘‚ɳüñÇ&ݾCp‚¶«iÓ¦±&r- ½ç8¸>uê”ôìÙÓ8#h®PãqŠT_˜/æí+·¾x/x< ž!{  °€§`ß¾³Ô¶¨´äË—%¬cs°ÐÐÄôƦ vm°gC[ÿ׬YSÊ”)ãÑÿáýÙ­[7£õB ­¯¿þÚh¿ ƒ„,|pnÐDî¢IàM{x¤þõ×_æhš7äýþûïMÞM„ñV÷sÀ€òôÓOKÛ¶mÇ©·z¼LÎ…H€#-[ÇŽ?ÉÂ…oj¢ôÀrg:6x<: uÂøxL)*š@è gÁ}Äh+X° ¤OŸ>Æc‰Ü!ðûKB£#½@Âuwîvržux}#&Œ¿‘ ï @’$-ÛcÝ[’Ü ‡¨i‹5¶!  -[™2¤\¹‚ 0:‡$HhÚz8> @`ûööl/¾ø`µY…H 1àñhbÜU®‰H Ñ€–­páR»¶wÁH]ðºu˪UidÍšyÏEH**V¬èøR)´9Ž”’ €³_tüøUòÉ'O8Ûq{;þ’検*ƒ/ÒзjÿOŒ?9!Dή#ŒÀwÞéøŒø_ãHÙ! 8K`ذß%cÆ´šázd|gGp¶·ùóÿÒˆý£5Óù⋦•¿œ³°7H¢(´%Ñç²I€¢ƒÀÅ‹WdĈ%Ò¦M%Œï=Ðj¤¬äÒ¥«òÑG“T»¶Py¤”~n(Ù²eˆ”éq$õ(´Eýr$@‰™ŽEOŸ¾ ­[;oã$78J¼ð²wïQ%÷”fl(åd÷ì‹H@ Ð{”_ ˆ`ƒ-0)«"YcõË/Ë¥N/%uê2kVW lü}âÔ¢›5mѽœ= @"&°hÑVùóσòõ×-#r•W¯^“=~•aÃk(’òúëõ4W&u¹YœT¢ @¡-Ql#A$ ´Px °ñ¾Œ´õÚW2gN/Ó¦u¦ÀJØì›<PhóÂK Hh.\–Q£–Ë“OV›nŠœ,Ë—ï’ÆûKÉ’ùd̘ ç‘Ð_ŽŸäPhKr[Γ D:‰×ÈÙ³¥eËû#fª ü%-Z|'•+Qǃv’&Mʈ™'BI……¶¤²Ó\' @Ô@„úõKHÖ¬‘˜Z·¬Î%åûïÛHÊ”‘ä7j6š%8 ÐG`¬N$@¡$€ëëÖí5B9N }¯\¹[Úµ¢vl¥4ôH‹ˆ:® t ¬G‰……¶Ä²“\ @¢ 0tèb¹ûîN€’: mIýÀõ“ D 'ÎɤIk"BˆtTÍš}'%Jä“ZSÃ1ßN$) Ð–”wŸk'ˆ(cÇ®46, ó:uê‚jØIž<™dèÐg">Q}‚Ââà$F ®FØŠH€ü9òyüñû$]ºTþª…ôRS!ÓÁ™3eôè :—.”“@ ¦- 7S&H|V­ÚcòŒ¶lù@‚.îÍ7Ç œ†o'9sfLйpp ˜¨i‹ÉƒW$@$ ~úi©+v« \› ÐAüq‰Œ¹L† iËL µ —ü ¦Í>" pÀQ$2˜îš5{¥G Ò¹s­ˆKŽ=à$ (´EÃ.qŽ$@‰šÀ„ «Ä²D6,“ ëùDöìÙãð(qïnõêÕÒ¼ys)\¸°äÈ‘CjÔ¨!Ÿþ¹\»v- Î®\¹"ÇŽsÕmݺµŒ;ÖuM(´EÓnq®$@QOi£~ýuµæ-¶µ,[¶S~þy™|ðÁã<õC}Á‚²sçN?5‚´k×.A(”@ŽàG ¬‡õë×kVŽ’;wnùðÃ5­ÚÃòõ×_KÕªUåäÉ“u‚ZÓ¦M3äÊ•+¥mÛ¶úþ@råÊ%ݺu3s Døà öûÿÝwß©=éuG|ç °ÏŸ?ß03•õú³ÛìØ±Ãì5ê&hÑMf! W^iÕ©Ó;L£YVß¾³¬B…ºYÿ},lcÚé­õÞ{ïÙ—±¾çË—Ïzà¬T©RAú°2eÊdiV+Y²dæ:cÆŒ– ÖW_}eÝtÓMÖ¡C‡\}>øàƒVµjÕ,|¬Úµk[)S¦´Ò¥Kg¥H‘ÂúþûïM=‚¬ *˜¾Ðþþûï7ŸUè1Ï5r½Õ³gOë×_5÷õˆÐ5¬ES¯eË–®³dÉâz®Z ×\Ú·ooeÏžÝu9sf«C‡æsÇÚT˜0×=zôp­O%M¿v]¬ã`^É“'7íjÕªe©àaÚ¾ÿþû†æF+V´Th1ÏЦ^½zVúôé­GyÄRÄzê©§L`ƒþ>ýôSST³fÝrË-–j]÷0ÎÂ… -zbe¢ÂŒ¥G«¦ì¸ëñª«¯·ß~ÛÌ1uêÔfοÏì•¿yé¦éoÖ¬Y®~ì˜ÛwÞiaßQðÁú±.{ïÇgÍ;׌æx¶k×. ß³^½z™vXŸ¹NiÒ¤1û†6(*¬›ñ{ì1ì« éæy ºtéb•/_>ªÔYBM[‚ŠÌœH )¸pá²L™²^µlá9Ý¿ÿ¸f<˜%¯¾Z[òæÍ¨õGÕh=6oÞl4Vß~û­Ñ Aã¤?ºÆæ¬Y³f¢BЦoÖtøða£%yòÉ'­ÒŒ3Ì1'´.ú£)*Ü-Žý¶lÙb4pÐ4Ý~ûí~™Üzë­F»·mÛ6£¹yóÍ7]õÑÏ7ß|£Y%ÎË!CÌ öj(*4J§N\u;vì(=ôëÚþ ƒ9îëׯŸçµ×^3óÓ_o»Š¹†æ ã HñÌ™3ö>\ÿðÃfnÐömß¾]T8rµ…¦lj*´š¹BC…9¢/h›Þxã £ÁCÌ÷a7V¦LA ²ß~ûMTÈT\}úb2xð`'pÁq*Ò6©,gÏž5š·>úÈ̸ÿýï2zôhÁúÁÐ×¼l ¦ =®ñíØÿÒ¥KÇ8ÎÆw1hdëÔ©#*<«ÝhY—ýÖW @» £=TAVô š™ä¸™7ÖÛªU+—¶•¡­ƒvÚ8hßìï«£p~D´c  à Lœ¸ÆÊ›·³uøðéà;  ‡gŸfUªÔÓÒ#Òj;_%>š6 ïšHÉ’%–Ⱦ-“Ú]™KýQ¶Ô Ý|8p  ŽþX[zŒh4:*ØY*àX*4XúcmêåÏŸßÂ}»lܸÑhR|iÚT±«Z¯¿þºî]^s M[ñâÅ]ÏðA@£ŒqÓË…»¦ Z˜B… ¹jA{MŽ iæ4mè×.Ð,ª|`©Pj¡-4cÐ,Úå¹çž³Š)b.¡iSã}û‘¥‚˜Ñ„­ZµÊÂKmĬ 2X*Ô¹êèñ¥Õ§OK-h1– q–µº4m¾˜¨Pc©ÀdiÚ2K…=—VïÀf®ÐºÔ¬¿þúËZwïn4vîktïUÌš6÷µ`˜ÿÒ¥K-²Ìg=â5umM›­IÓ#[sTÐ5uõ¸Ú¥i+»T®\Ùj×®}ë»Óš6Æi §„̱H€’4x"ÜF¶l¡MÈK–lWMÉZ“ª*EŠè9T!¼]ô˜KTø°/vM%͵ NÒ¦M– ¶W 4bŒ–öNx©'zD*Ð`A+;/w­ q®¾½}(Xðºw/¼1–]<µtÐFÙ¶SvØÞaÿå>h`Wæ^0®]ôøÎ|„íÛÞ½{M]=æµ'w{±{î¹Çõ öd°Çr·åÒãgÃ6x*ÜÈÝwß-¯¼òŠyÁ†í—_~xZª )zôhúòÅ76ŒUp4¨öà˜«û>â>¼AQüÍKZ£m… ŸÝ 4^ÐÔÁËÕ.îs³µƒþöóBÆÎ.ö÷U¨5·Ý÷ mÚ´7ØÚmÃñ~}·Ã1Ç  $JqÒæÏÿ3,ª°‘wÞ™ 5k‹ºTU\)?þ¸&N#ƒ 2G£8ÒBÁ>„Õ¢‰jyDíÃÌQ$„²Pm•«ûØ7£øÛ0DcŠ]ÀÅýÕ]0¶ë%Ô;…¶„"ÏqI€’ز%O~“Ú;ùº‡ÿ]m{þU[®ÇB>VB  ö¢âw®‡@c„Øg(žxâ ãéaüðëñ©Ñ¼ :ÔÔgæ;ï¼ãwúèöQÐäÁ> a0ì‚wØbÁn 4Sõë×7¡¡‚§£]ôhÕ«lß ä`Ø£¡4OŒ…±±ÌqÙ²eÆkö~ÞŠ:#˜5 >ÚÁæ ‚/l¹ Ñ„ 4j°yƒFZE\CËU½zuW—¾˜èÑ®ŠÑlÛ`ƯYŒƒ9‚@uN‘ &¯Pó‚v ±óúöík„@W8Kö‹z|.O?ý´knЮBè…0‹6Ðb–(Q ¨O`w!6hÖÀm0GØúÁÎS³ç$¡?èXH€H€BL qãoÕfhˆG±¬S§Î[ÅŠu·4˜nÈÇŠm€¸Ú´Áæ¬wïëžµúãi¹Û¸Á†ÉÝN ¶Húj鑞k*°aƒ×'îÞˆÕ<‡M˜í1Šçð6Ä»mÓ{0xTÚÞ£v]xBêñ«IØ´éºñE{ع{b¶LFSܽGU˜0cÚÞ£*ÜÛ2x³b½Åг^}õUÓöP˜£]T¨ˆ1_ ý¼"1ØëÙö{öZ춪 ´T+eê¡.ØÀSÖ.`;A<³_°SËT‰ <<Áë@ß*ܶí銾a§§¡:L¿±ÍKn-=Úvyé¢=öC5„ú]?eOß>8mÓ©“…H€H „àxµ1 á(ÿu a B„·„.qÚâ:_ü(ãÇÖÝ8Þî÷–/_ÃPÏ`ìnµg2BÚÛB›ÝÖPTKdêªçªýȼChCKä Ð9{Á™ $2H#•)S:©Téz*&§—ˆ, д½ñÆ]îŸý…ŸÐ~òÉ'ÆÓrõêÕ7L@C™˜HÿHB»A81ØÂÄ# 2D x,‘…ô…¶âeç$@I•¼F׬ÙRÇ€iÓ6hîÊ}Ò­Û)œ’*ëh^7’–C¨‚v¬I“&&I¹fz0飠5˘1ã ˃†L³.˜gH—¥Œ‡"7Ä(CÎP„Aª/£¢Œ?ÞÄ…³«#T–,Y\ÏM%?‡Ç¤×š2eЉuÖ¨Q#3_ˆ8Še :"„5G"HBkn«T >ž—/l½{Ï0BáÝwçñU…÷#œ@Ÿ>}LŽOc"Ù=raÆV“Ì.HfŽ€µ8úD°à{ï½WpÏ.èùM¡Û¿ÿ Ad‘4Ïc+è³V­ZæA ù]!Tj¦st[{>w†Àõu¦?öB$@$ ¦LYgâ²…ÊktÆŒzÔu@^}µyG1—^zI:wîl ,¸}ûö¢é¹ü®á9사 6l0š/`H|nÛ·¡ÛC‹¡+{öìÆ Án !OS7™çö=ïˆ7öÌ3ϘDï8¢Å¼¡ñc  mácÍ‘H€’þ9¥Z“]!=íÓg¦ÆÕºG³Ä®™I"Ø£r™šx^¾üòK£4h9­T©’Éö IèE“Ôß°.jE /ÄTƒàm‚ׯ_ߨ²Á¹@spªƒÊ2½š&’7} eŽPÇ'ö åCÑäëæÝÛMÊ.šXÞ8#T©RÅxœblhí0o_)­¼õÅ{P‰œ…H€HÀAC†,² ~ݺpᲃ½^ïjöìMVîܯXjÏvýf~ uÂø\²#SÚ¹s§Õ½{wKs€šéî>ùä“–zZš² ÙŒ,Í÷iõë×ÏUEmÜ,ͯjiŠ.ó\6W2úÿý×RÐÜWÍ›¥¹8-uZ0m‘ŒýmÛ¶ÍÕ>¨sƒ¥– ‚Ö®]»b<ãEìœNÏ4V¾ì‚H€Ü 4jÔ_ræÌ¨y1[¹ßvìsýú_éQ×Í&5–c† #¦± *b´Á© }úô1ž=zTTø2Z°9rÄx¦b†¨Ph4qØ÷„î1*þÿÅÅ‹50tÊvrÞêñžwN§±¢#‚wμK$@ñ"pìØYY¾|§ ðŸ_¼:ñÓhÁ‚¿Ô+uL›ÖÙO->J Ð/o÷‹/îí‘Iœî+yºjáG²ÕÆZ•õÂ@€6ma€Ì!H€’Y³6 â²Õ¨qWHݯßl©^½¨”,™/$ý³S È%@M[äî gF$…;­rå;%]º´‚]â¾-Y²]ÆŽ}1خ؞H PÓ…›Æ)“ D&óç/ÉÂ…¯ÎP̰ÿ9šùà6©P¡p(ºgŸ$@N€B[„o§G$=æÍûSC)\դşôŽ‡ÕŽmƒ¼ôÒƒŽ÷ÍI€¢ƒG£cŸ8K ( ¡ª\¹‚jžÁñÙ~ûíõÌ.uêx7>w|@‡:Ü´i“Œ3Æ¡ÞØ D/v²Phs’&û"H²®\¹&?M3ÔvœÁ¡C'5 ê*ùä“'ÞÑT&MZ&óç§Õ4K¿É•+Ç¢iêœ+ 8B |ùòŽôƒN(´9†’‘ $ep8yò|HìÙ4X¯&O¯ùËD b„>©YómušXa˜ôìÙÏÄ®‹šp¢$(´Eà¦pJ$@ÑG`úô R¬Ø­’/_G'ç†ÿýo©<ÿ|u rê=f—£:ÐÙèÑ+äý÷'Ú¡CŸ‘Úµ£ëH×ì‚BB€B[H°²S ¤FñÙš6-çø²GZ./^‘V­*8Þ·Óž8qNºv%Ó§oÔÄâ•åõ×ë…$ô‰Óóf$-(´EËNqž$@K`Ó¦š@û¸ã^£H94hÐBs,š9sºˆ]?&¶xñ6éØñ'Mw”LF~aI"z·8¹h%ÀѺsœ7 @Ę5k£ÚkÝ"%J8›¥`æÌM²{÷yöÙª³Vω\»fÉGMV-ã)[¶ Ì™Ó›'$^“€C¨is$»!HºfÌØ$=t·ã¾ÿ~I‡U¸p̤ߎÏ?§¶vÃeåÊÝÒ§OsiÒ¤l<{b3 @Ph „ë €ÿþ{JÖ¯ÿ[ºtq6ÔŽ\—.Ý®G|Œœ°··l9(O?ýƒ@Ó6qbGM^~kÂNˆ£“@ ÀãÑ$°É\" @èà3Mš”R©ÒŽ2tè")R$—ãý:1É©S×Kƒ_IÞ¼™Õé 36' ²€…¶ ± ø"¯ÑÊ•‹ÁÍW¸Þ‡æ„ «¥mÛÊqmòú#F,‘öí‡ëQh95êÉ’%}ÈÇä$@ÿ ÐÆo Ä“Àùó—פӹFGŽüÃÄd‹´`º}ûÎÒ0cäµ×êHÏž$yrþ„Äó«Ãf$/´i‹66" ‘E‹¶Ê… —Õ Á¹ñó1|øï&æ[ºt©"sdÈÅòÙgMäÉ'ˆ˜yq"$”PhKJ»Íµ’ 8J`öìÍR²d>ÉžýfÇú…ܾ}Ç¥M›JŽõlGo½5N ýûî»§äá‡KÛÛ“ Ä“uÛñÇf$@$0wîfyðAgC} ºXªU+* f‹ÀHG…4ZP`‹ˆ á$’4 mIzû¹x ø@È‹NhRtç„¶]»Ž˜#×¶m#CËÖ«×Tu\š². @˜Ph hC$8¬[÷·=zÆ1{6h¸Æ[™ Yî×_W›XlYH€"“…¶ÈÜΊH B Ì›÷§äÎIŠÍíÈ §LY'gÏ^’ÆË:Ò_\;Y¿þoAÝ.]jKÕªwƵ9ë“ „‘…¶0ÂæP$@ÑO`þü?5csÂÍÏ?/3Z;'SaJÞªíÛ—  K§NÚŒõH€ˆ…¶ÏaI€¢„„Ĩ^ý.G&¿wïQY²d»´hq¿#ýŵ“ΖK—®È7ß<™à±áâ:wÖ'¤H€’â®sÍ$@ñ"°hÑ_¦]åÊÎ8 @Ë–3gFG]À#ˆîر$K–ô6 ¨ÞO<¡vzãªËJ$T´iÓF†Ôr)´…I€’س•*•_n¹%mÐ˾vÍ’Q£–›Œá¯±{÷éÑãW ¢[Cî¿¿PÐkñÖA… ä•W^ñöˆ÷H Éøä“OY3…6G0² ¤@ölNe"lÈ?ÿœ’fÍ›áêÕkòÒKÿ“B…²Ëk¯Õ Ù¶åË—O+‡¬vLÑD`ذaŽL—B›#Ù @b'€¸œpÌží—_–-W¸Cl ü–-eÆŒ.’"Íšû÷–ëK\ø_lâÚO®†H Dp4š9sz¹÷Þ|ApâÄ9™5k“4mZ.è¾âÒÁŸ”¯¾šiÁ.œ#.MY—H Ph‹€MàH€"ŸŽF‘± Y²àÓ;!mŠÉåá‡K†má°¡{啟UèÌ/íÚUÛ¸ˆHÀ9ÚœcÉžH€) .ËìÐølÎ$ˆ=z…Ô¯_BÒ¥K6býûÏñöîÝÜÁ3lç@$@.Ú\(øH€¼@2w¤›r"cÀ¶mÿÈÚµ{ר÷Ñœ¿»cÇaÖ¦K×®uŒ‚ó#DwÏ>û¬zòŽ é"Ž?.uëÖ•¹sçÆ:Î?ü ;v4õ®\¹"ÇŽ‹ÑæäÉ“êùû¢”(QB=™o‘{î¹G>þøcýŽ^ŒQ/š/,X`x¹¯aõêÕÒ¼ys)\¸°äÈ‘CCåÔÏ?ÿ\®]»æ^ÍçgO–­[·Ö7c}ÖÄÚ"qW8' ˆ"°páV¹ãŽœ’+×-AÏ Z¶¼y3KÅŠwÝW ¼ñÆ)R$—<ÿ|õ@›$©zvîÜÒ5Ÿ?^ãâMWg–±Žá õQ&Ož,Y³f•Ë—/›ëþùGJ—.-#GŽ”† Ê—_~)ÅŠ“>ø@ó×>iê$†?GŽ‘E‹¹–2mÚ45O¨"+W®”¶mÛšõæÊ•Kºuë¦f»ø¸xùàÉòܹs\ú’—š‘{‹B[äî gF$!.üË-ìʾQ£2a[ÙØ±+eéÒòÙgM$Üñà]ä¾}ûäÌ™3rúôiͱĥ1:xð ùá>qâ„éêÂ… ²{÷n×sÜ„€ƒ{¶Pƒ:ÐfmÚ´I,ËŠ1Œóǘº‡žåßÿ5}=zTæÍ›'x·Ë©S§Z.Œõûï¿ëqóVû‘y‡&ãÛÅóÚ¾wÌ‚4p .”ýû÷»Côé§Ÿš¾0¬¥÷ßß´]¾|¹¼÷Þ{jŸØN~ùåyóÍ7ÖhÕªU®~0ÆÔ©SeÍš51XÊÅ¥®=0Ú@à‚Pd{Ÿ°†;v~Øs÷‚:Ц¹3ÇsÜæ™gä®»î2kyë­·ô ÏÁµÿþîÇ4]ùÚ?ì‹'Ëï¾ûN}ôQ×0ðóçÏ7ßEû4–!à­X±B6lØ W¯^µ‡÷]¿Ô,$@$@>9rÚÊ“çUK½=}Ôü¶z Z¹s¿bíÜy8ðFAÔ<~ü¬U¼øÛÖ[o ¢—¸7mÔ¨‘Õ´iÓ€jL7ë°R¥J)ËÊ”)“Õ¹sgK>ÌuÆŒ­uëÖYÿý·uÓM7YúCíê[x­äÉ“[*àY}úô±Ò§Oo¡>ú©_¿¾¥B‚©ûÎ;ï˜{hþï¼óNëé§Ÿ6Ïî¸ã«gÏžæ3æP±bEÓgÊ”)­téÒYšÝÁhnûÚ?o,±¶^½z™v*8[zäjÆL“&ÙG´AÁ~`ßñ=Á>`޵jÕr}·L¥XþÔ«WÏÒŒ±ÔŠõñjÚ”> ø"€£QÄ3CRõ` ´l¥K‚³ÛU@í?þø7ã¥úæ›õªŸ•T 1ZŽÍ›7 4Tß~û­,^¼Øh8ô‡ÒØœåÍ›W5žUcØ!3FjÖ¬)*¬‰ fòá‡m´WÐÀ@síîC3m´3žZ2÷µc.ÐAÃW§NQaÌhQgË–-š«õ£%2dˆà5iÒ$Ó¼víÚÒ©S'WWž×®ÿÿaíÚµFã¤Â¨9ú8p`Œ*Õ«Ww­Z¹´iÓ ´}%KÞèuŒg<òˆäÉ“Çôùî»ï lã µÂZ·oß.o¿ý¶«ÿ@xÛ•­;xð`Ù¶m›a$ììT–³gÏÚ]í!4œÐhAƒ6~üxóìµ×^3¶yÐâ4¡v±÷ª|ùQÛÇÅîÇÛÞö¯lÙ²1X(PÀîÞhОzê)Ñ8Í'掌­Zµ2sDEìû /¼`ölgΜi´Ÿ®NÂôB[˜@s è$€£QZÁzzž?Ymš6¨Ré°€X·îo=>úC•G%C†Ôa3˜A`uÿý÷›#°B… ‰j2Ì' Îñƒ‹ãAÔƒ@†£.üøã(K5`¢Ú¹õÖ[ ¢Ú,µA¼ÃÏ¡OäAU™9BÄ{‹-¤hQßžÀ8z»í¶ÛL›îÝ»ÁgãÆfüâÅ‹cxÕØ‰jêäöÛo7BÂÆ õíâymß·ßa›#wîÜ‚|­¬ü-R&L˜` ˆ Àp_5\2gÎWó@y£A uQ6g˜ç”)SÌ5„dšvùè£D5FH…ð‰5ãèÇŽªÑ’»ï¾[*W®¬&ì&FèS­Ì]7Ý>@0…`oûg×qÇñ1¾_h§ÚUQm¼üòËæÈúÏ?ÿ4U±Ï¯¾úªyá j¸ …¶pçx$@QEš6Äg ¶@`»xñŠÚД ¶«€Ú¿ýöx)_þö°ФüT‚àbüpBè² ´)zpd.ñcŽçLð‚°öøã›{Ö i‚7(ÞõøÑhJöîÝ«ñéî5?ÆvŸùóç·?Þð^°`A×==Â3Ÿm{(üx»<·Ÿ¹ßä3R»@S £¿Fzô«Ù,fÜP ÂQ“&MŒk¯‚¥]ÐÖ݆/PÞhh]h»àÑ a ¶ mÏïžk†m„p쯭ºªêñ¨ë3„x°ͳ@[‡ö¨cûg×q/Ðv±×l3sŸ7¾s( a×v}Gí™òH€HÀؾý_9xð„ mwMG£ˆó–%Kú ûŠ­ƒ1cV˜°"}Ô0¶ªó‚Y !.4h`Žºp4 -C† rèÐ!sDM÷C»­ŽìræÌ©ûx0F÷îÇi1è…»‡'P yCqC{hiìg¦Bþºf÷.ÕÖÍ8Z¸;<àùÏ?ÿl´[¯JhmAÏá à>ϸŒh]¿Bø„ ƒcή]»bèÅ]´dËöŸ¹ üíÍ›]à5 M[¿~ýì[®whqt ­¦]Ü÷Èsÿì:îïà…²~ýz×mÛ¡Ã>F ”«ƒ} Ð"°ì–H ú ,Xð—j6Òš,Á¬æèÑ3ª Ø–£Ñ³g/ª-ÑojSAšò3íˆm‹c8üXÏž=ÛØa¢8Ò‚×%~Ø!¬@SŽâ qƒ–6cø‡½œ¿£-Ûæ ‚Oß¾}Z9C(ø1G¸ ÉAHG¡:<˜gðâ„g£]<¯íûqyǺPpL‡u}õÕWfLØËÁ^Z¢¡C‡š£;¬_Ì|0?ØøÁ.oÙ²eƶY³fq:Îuq,  ÜÁG¡(¶g¯¯qü Á6pêpböÕ=~´hОb/ B¸‚ bëá»ÍŽªíâkÿ–Sxj1píyÏ},8dΜYÔûÏ8!à„Lo¼ñ†ù ›5hh ¨@3‡{Ø"Á¦ a3l Úb,w â¢Á¶ Aka”áËžŽGaïádذa&4 ØQæ«}ìâ~m··Ç±¯íº¸ïþÌþ ã{ÍAh„à‰9AÃM¡z„íÂ~ è¬zBšî М0OØõ!–™°×sl\{Þ³çåyß_Ý×_Ý8=Ü|óÍf¾Ø'cš½»/hJq´ Mޱ1ìÍm!ŒÃïÒ HC`ƒ ‹@P´‹¯ýódi¯ ß {|ðE{ycQPÏ}.æfBýQÉ…H€HÀƒÀ•+WÕÅÿ kèÐEOâ~Y¯^ëå—Š{Ã8¶Ø·ï˜U @Wkðà…qlélõ¸†üˆëèjKdé¶¥eohªGs–Ú8Yjü~Ã3õH´Ô ÐRû(K³¸B~¸WTmŒ¥š4Kµ-¦®û3„ü@È ÕYªí±ÔžÊýqÈ>ëQ¨…u¹0Pm–¥GÀ–zgº?r}F›¥K—Zjèïºê`ƒð,6„"ÑãÊ€†Å:ôXÔÒãmŸõU³iúG=ôíYüíêzci÷¡ZXK5©Ö_ýe¯“Å©)JXä¸$@$Éà}yæÌ©T)8'„={ŽªÝÓž°h¾>ùdŠzPfÖcŠ‘Œ6¨¹áXca7õÜsÏÝд$ð>ôV uÂ+Û9¼¼ØWA#®¢±ÜTS›:ÆpÐüÀ+Ô_ ¼ÂYÀÆ>JƸ°qÃ+löühÔÜû÷U××þyci÷ƒûî»Ï¾ŒÈw m¹-œ @BX¼x›I[U¸ðu¿øÌ G£Y³fPA"8á/¶±!dN˜°Z ïŸ6qåb«­ÏaÇ›&8¸{ôÅu=Hý{7Ï‚£D_‚N‘"EbDù÷lËë„'àoÿ~vÁÏ€B[ð Ù @"$¡Í‰ü ¿þºZmªîU›˜À¼#ã‹òý÷'jÈ„‚šd;| øÎ5˜va?˜æ®¶H4î­ °«¯Ò£G_x?BøÛ¿™bPÓ #BPøØ˜H 1@<µ•+wéÑèA-oëÖCêõw0ä±Ò4Å–Fýß!=z\Ï£ÔÄÙ˜H " Ph‹Èmá¤H€’¶ .-´ýúë òšÉ¹ ÕzÔXZ=§J½z%4̅¡Ÿý’ „GÃÇš#‘ D (Íõ3eسáh4”vlÐè Ø:”ðo  @¡-6S ˆ,Ú‚=]¿þo«uXs>†ÎíÊ•kòùçÓ5oeõ$ ÎaÂé@àS¼ìrÓM©4wdiÍKyVsI^ ,Y²Ýس#tÀ^£Å‹ßêsœ`@Ë×_¬L7Ž´]»v¯ÎãrêÔy>¼<ôP1Gúe'$@Þ 0#‚w.¼K$ Àž-X¯Ñß~[2„K—®Ê€ó¤U« A9J8±µ_=[yäk¹í¶¬2wn7 lN@e$ jÚbÄÇ$@Iƒ<1ƒµgƒæiß¾còðá95j™?~V^x¡z‚mÊùó—䥗þ'sæl‘wÞit<»[&($@¡- 7S&pžÀ²e;ƒ¶gƒ–í¶Û²É=÷äu|‚L ѦMË'XøŒýûOH›6ƒåС“2zt)W® ãëd‡$@¾ ðxÔ7>!HB–,Ù&wÝ•;(#zxPÖ¯_"$ÔÆ_¥ÙNª–+a¢‚óB|5œ>}£ìØq8A´lãÆ­”öí‡i8û5hn[I—.•¯iò> @ˆ Ph 1`vO$ùœ°gƒÐV·®óZ6ÐëߎԩS\ ÎV˜/Ò±ãHéС†ôìÙH’%KÖñ9 @LÚbòà @$€ ºH·ßøl8ݲå€Þã8=”ÈeÚ¡CxmÙ~ùe¹¼ñÆXéÖ­®¼ùf}Ç×ÅI€âN€B[Ü™± @"#¡-˜,вeÉ’>¨>|!íß®”/»”.íü±«¯1'LX-]»Ž’W_­%:=ä«ï“ „™…¶0çp$@‘Ei˜6nÜ”À¡ Ù’'wö©[·Òxh›Íñd¸¨Íž½YD’矯¦‚[p ËqH€ àìÿaUH€H ’¬X±Ë$9‡6+>1Ëo4^£È~;¶p¥‡BpàçŸ.Íš!‡hƒøà`  ÐB¸ìšH ò àh´`Áì’3gÆxMvƌƣ²jÕ¢ñjï«ÑáçÇ”Ï?žì°ËkÕj†=¹CzõjìkZ¼O$€(´% |M$ð`èÿýñÓ²aöÚªU+*©R%wt1C‡.–ŒÓJ£Feí×[g§N]0[¾|YdàÀ§ä¦›è%êï‘@B Ð–Ð;ÀñI€Œ°¯Y³'ÞölgÎ\åE8'Ë… —á6Z·®è¸0è9Od8À‘(rŠÞNÒ¦e6OF¼&H!ÀÜ£‘²œ @Ø @`»xñŠñÎŒÏàsçn1i|ðîø4÷ÙfܸUræÌ#´ù¬äЃ÷ߟ(Ð6N˜ð²dÏ~³C½² P Ð ªì“H *@XÉ;“äÏŸ5^ó>}ƒø2eJ¯ö¾}ÿý|yüñÒ’-[_U¹|¦ƒ-ï¾k-%J8ŸäÞ‘I² ºPð @R#ð_|¶øÙ³]¹rM i«]ÛÙ£Ñùóÿ”mÛþÑÔQUCº'Ò­ÛhãèðÈ#÷†t,vN$à jÚœáÈ^H€¢Œl¹î£GGâ5sز:uÞq¡mðà…R©R)Z4w¼æH£³g/J»vCåž{òJ÷îÒÄñ:o½õ–lß¾Ýñ~Ù! ${î¹GÞyçM¡-äˆ9 @$Ø´i¿@x)W.~š6xÞ}wÇ¥Sa7æÍûS~ø¡­S]zíçµ×Fˉçe̘ìu@/7çÌ™£s8!%K–ôò”·H z¬ZµJŽ?– Sh fB$i–/ß%·Ü’ÖäÏÜfÎÜ(Mš”‹OSŸm† [,·ÞšYjÕ*æ³N°F^!'®‘Ÿ~>ޱ邃ݾAƒòÅ_Ø—|'¨$ðÜsÏÉÎ;Ã2wÚ´…3!ˆ4˗eã§eÛ´é€ìß\F®N IÚÛ´©²8i»vÑãÐqÆŽ­J•"‘¶%œ @,(´ÅˆI€'س•+W0^‹›5k£j©nQË|ñjï­Ñر+åòå«Ò¢ÅýÞ}Ž:ŒB…rÈoÔ º?v@$~< ?sŽH$Àöî=*ÈZ¶l|…¶ÍR³¦³±Ù† Y¤a>î§Ã‡Ø¨ûô™©^©‡dæÌ®’2¥³Ùì1øN$ZÔ´…–/{'ˆ@в¥J•Bî½7œgwäÈAbu'“¸/]ºC‚ãé§+Çy>4X¿þoé×o¶IûíÙiÂ:$@H€B[n §D$ZË–íR¯Å|’:uÜfÏÞlÚU®ìœMØðá¿KéÒ¤X±<Ž/©º:viRuµiSÉñþ“J‡Ï>û¬Œ5*¤Ë4i’Ô­[WÉ/Ç:Ε+W䨱c±ÖsºÂ¹sçäôéÓ¦Û­[·šùþóÏ?A³zõjiÞ¼¹.\XräÈ!5jÔÏ?ÿ\3Ž\ ¨oO­[·–±cÇÔ6š*Qh‹¦Ýâ\I€!'„ø†ú€=[ÅŠwhŽÎ”ŽÌåðáÓ2mÚú¥¬ú쳩rðà éÓ§¹#óMª,X° ä‚»ví’éÓ§$¨LžøàÉ•+—î&?üp@kôäáòÒ¥Kþ†ÊgÚ¢rÛ8i ø8qâœÉ8'h­,ØêèÑèÏ?/“ ÒHƒÎg%X¿~Ÿ 8_?ª¡D2ý{W'UùµÒÝ]KK7‚‚´""¡€€(¢"  ‚Š ê_EEI%”T:¥»»»»û~ç9|wœ¸3;¹{ÞßoöÞûöûÜ…yö¤¯…Ÿ£G A€”gùòåœ3ö–ìëĉ´dɉù†ŠsçÎÑ‘#G¢í©cÇŽÙê0fÞ¼yLfOØêp©ÎæÍ›içÎRðàA§_ü§OŸ–õ±ÖÂ… eMs¢Ë—/Ó¥K—„h,[¶ŒÕÞ»Í&¹B"tóæM[ÎáL²†z¬=íÛ·0 Æc(fÜcnìR+*³ †ØÉ“'e.`g†4]»vŸÿ¥ãÇ›]mWŒGü±E‹Ùö‡ób Æ*TˆcýMÉØ¡C‡bÄ*Ã;C,>³à½,]º”ƒR_6«ǶmÛR‘"EhÆ „ Ë:t ?þøƒ~úé'þƒf&9Rú»ÂÝ¿üò =ûì³¶u€Ίó˜’B4âw’B¼5kÖЖ-[¢ag› \nøåiQE Þ ÀñÕŒìÙ».\óúÌ î0²eëlp¸¯Ç:À_ÈF… Ÿœ´ÝYs¬êîÞ½gÔ®ý?£I“±š'Pƒ+V¬h¼ûî»–§Ï•+—Q¹re#qâÄ`FÚ´i®]»=ô<§NÚØ´i“ñÃ??ü°Á$Å6wÍš5êÕ«LDŒºuë‰%2’'On$L˜Ð .làý¡¸ÂÝø}ùúë¯eÜâÅ‹ V¹)R¤0’&M*8b ~‡ð¾ð~±/œ¹N:Ö¶ZðNkÕªeµ{lú-WI¿!-Š€"€BÁ‚Y|òÒœ;w;Ûå ìÙý#µ‚}ܱcYÝTÅï/`Р…œ&ê4Û½à÷¹C5!“‘–lß¾]¤J?ÿü³Hn )á/\±9kÞ¼91± I“&É6Ïœ9#Ò•V­Z‰ÓìÙ³EÍ ©“FúôÓOEòôùçŸÓŽ;DIP¾|ùÜ{ ’$&+œ+ö5›$ ó 8nܸALvä{5&ôÎ;ïØæîÔ©KnkÛžo Eb%ç†ô çªQ£†Í^ kDEEq|¿—YeŸL΀ý3)1f2åÖ­[©lÙ²"=Ã|}ûö%&‰"cÂ'R¦É“'K_`‚3àœ6lHï½÷žœ øB‚µbÅŠh[eRFf– 40‰•÷вeKÉ0À~!{ÿý÷eMSùè£F›xåÊ•‹¦–v†{… bàaN öƤTÎ )(“sQñOœó7Þ½õîÝ›=¬çˆÓœ#œ®JÚÂémè^E à¬]{ÐçPóçû7ÔÇÈ‘Ë  yófô빑ëûïgS×®uý>·_7êåd ^,áUZþüù9sDù†á:¾¸¡*Ì’%‹ ÓD„%OÔ´iS!b Ý»w•êÇ,ùOQ’BÅRb‰Œ¨éÜm*¼õÔSÄR(QAb¯¦ yÊ”)Ô¬Y3Îûˆ`ñÍ7߈S€35®¹a¼¨T§N*UpÚÙc‰#gßøSÖÍ‘#±4”Ê”)Ã&)Å~êV¼`4‚›Åîfû+T®ÀãXÊÇ^ã‰éí·ß–³šjpô.]ºH;ÈÊž={ì§ ›{ï]§ÂfëºE@P¼Cf7m:B/¼à}ú)H­ß­fMÿÄg;~ü¢äýõ×6ÞÂBod=È›7KjXè9]²eËfÛ,¾€Y¥e{ñ2¥J¬¢É¤l°¹Bº¬4iÒPùòåÅN ¶R 5 \ p®€°ØK{rçv&oÞÿbü¡˜vfŽR:´›m¶ [¼!5 $i FŽöd(`ýþûï¶æœ9sÚìçà•‰ñ(À©sçΩ#ú Ù9ˆ lè€ìÕÌ’={vv”yÉ|tzEVŠÄ ’GØŽ™ÒEì6eö6f ¢xg ß°ÅÁĽ}$ ¤N fq‡»ÙÇþzøðay„ÄÎ,æï$Ž(ö³úTêœá, !þ¡’¶¿]^P‚‡ÀÖ­GYr›¿¼ÿûµº:¤léÒ¥`‰A«CÜö;vK!R°t§„Û~Þ6NŸ¾‰¿0wÑW_5 Y2xo÷lµ?¾ä­”çž{Žðå ÉȃéíCsHÄ`H϶dôå—_ æ3fÌ(ÆúæüžrIÚïÃI’7û6H¾ í1Û¤ƒ? óT@˜P î„±?>p"@^W¶ ‹1|ôèÑ¢!B_+[¬gJâÌ«V­õ¯'"5$ۦѰaÄAr‰‚ýAlî W¶ui#ž Ô­P§B:i{lq7ûØ_á…Š ³”¨¨(¹šg—‡0ÿáù·!Ì ÛSEÀ*kÖ¢”?¿÷fçÏßAÕ«öK^PH:à5úüóø Ëÿ #iïÞSd^_³=XÅ2œûAÕ•#ÔŸè@mˆ²mÛ6Q“âËjTHê@ØØ^$o#FŒ>ð(üè£ÜÒ:Øcöïߟ ™+Y²¤Œ)€ T{~ø¡x&>ýôÓÒ6vìØhªWØŠ™öwnth„š*>HŸØ@ˆÔ¨ƒd sãlŽä ä &ØxA½ 5¥©þé…šûy…êR/¨)!áq²÷ 5çÇ8ì ’KeS­ 5)¼u¡²& Êè ¯VH×vëÖMÈHÔ«P¹B% ³Y\án‡)qÅHØ YÚxWØ7$’P§;JöÌ5Âùê¿ÿ-Âù”º7E@PµkH[oÁ¸ví­ZµÏoªÑ… w² ê‚ßóŒ~÷Ýl¶iºÍ„£¡·G ûþŽÒ<;ÖÙ´±ÂDåùçŸÉSÕªUņ Ä  /ä µ&ìÑÿ Ä;`-{©ú-ZT$w > cæ~0ì¦ ½ûí·ßXêù•Âc>Hþàœ`H!QB1Ç›mŽW´›} ÊžA¡3fŒ8,”.]Zlþ@P±'sÏæ8Ì çôƒÍÎû6\ÄEC¬4H$›4i"ÁnAlA>Q`É!lÿ ÔͰ„ºóevŒ0Ë| ΰ“&°ÓcO\±ODHÙ@ôpIÆ{ƒºá\Ì÷‡¾®p·ÇªVó¼ØÓ¨Q£$”΄ñPUã½  Ÿ‰‘T„ûf¤ZE@ˆ”-û‰ñãó¼>댛9ºrƒ«^u6àÕW‡û7Ûܹs¿kŒ¹ÌÙ’aWçmÈoÀñÈà6i°Q~Œ¡¨[½zµ-Ä…ÙaØ#Ô`d° –Œ7C~˜}pe©ŽÁ’4ƒ¥61æGÈ„é`©•Á*9 wa?ÖŸ÷Ýðf1×ä8m²¾YïêŠ0!öãÙ`ß`ÂeëÎjcƒ=smÏæ £°‡ªùhù \ÙaÂÀxg…==%l «± V+ÇèâwtvÄÃ~V³,•Ð(,i´oŠõ}0C~¨#B¸³jÝŸ" ø„Ö@f€ ¢¼žoÁ‚,™È%ªU¯; 8}ú2Ûýlgû£-±{üä“)ÊäÅ+Çn¢80jNH³ …4ɱ8«CH]L'¨ =87àã¬@:ÉN TŸöêOo×´w6À>íîàíé¬pl9gÕë8váãª@¢fª˜]õA½+Üñ°Ÿ6ŽyéEÕ£‘þuÿŠ€"` ¨F&LÀê÷^Î&ƒ‚¿¼FÇ_Ãá’ÒÓO—r¶”Ou •ØãçŸ7fU5c}ŸŠA°1C7_ ì±Û 6qŽaG fsV@„œÿ;ë«uÞ!àwïfŠÜÞ*i‹Üw§;W/@|¶¢E³{3tÛ¶ãìUx‰I[/VsÝuܸÕl„]V’λîe½aLà|РAi&ÑC&XŸ%nõܸqc¬É R>9+fÌ5gmp~ÐÜá˜ÃoV•´…ß;Ñ)Š@@&_<*9uO§bµkµŽÕíbûöö)Nœ«5FŒX*N ÷œ\9>×ÃI¶gu²}H ¯¡óÅ%m±ÇPgP0GàÆ;ì!wœã³Ey½SxzV¯Ó.Êë‰xb³! V‰9}cÌåË7Ù6n‡Lx‚ƒ¤úfgcR­kíž¡þ.ð€5k–dTð÷Ü:ŸÿPÒæ?,u&E@S6m:ÌaîyT¡>` W£FìI‚úN›¶‘š7™cÑWØú÷Ÿ+6lo½3ü‚¯sê¸ðA€ÝmYw…gçX,˜½^%4æ°/Èx€@³hG<4Oýµ„JÚÂç]èNE @¬[wˆƒ©¦¡9b•»[réÒ=LöîÓOÄŒ*ïnœ³6¶;wîqt÷ÿÒé8ëgµîèÑ ì!¹˜ŸÖÇ«ã´_ø#pâÄ IèŽà¿¾#Ɔ9\‰xz"ËbÅ!m—IÎ>ûì3iCp[–­V­š-æˆâ«!÷'â EqFOA„‘ Î_ý5qø{ÑŠà" ¤-¸xëjŠ€"Ö¯?È_`R y³½­uŽ!Oàø€¤ïÓ§O—¸pÈ”€ý‚ B«%xhÈàa­+)Š@@º(´-W.Ê«Õ÷í;Ã6?çýBÚ&LXÃ)‡RûEÍŠC@ÊVªT.N)TÒ«3içðC _¿~’èjL$´GžLOñÊÌ‚LÆAõ‰€ÀHOeŸ– óqÖ‘Œ;v,F€Y$TG»§‚9ëÔ©#5¤«©ä,¢:õ4^Ûýƒ€JÚüƒ£Î¢(aФlªëmÈHÙR§N擄Ί¿þZ+¶lþ|»jÕ~B0Ý>x€Üq-}Ž,Þzë-êÚµ«8 0§DrÎ<Âs˜…S?I^MH¾@ÀÝ´oC$¯GHW¦L™Ä Á ’Ç©¬¤Ý¬sw…4¯mÛ¶’Û*Zì?-ÁC@I[ð°Ö•E Àž­H‘l^Õ]´h'q¢ b÷ß$HÖáÃçØ.¨‚_Nß§Ï?²/ìMKä#?~úî»ï8ÖÞ1Bòx$;GB{8$šç¨1¹råJIÓ…˜j Nv½ð œeãi±eƒsìÝàD{µæÍ›ËPÂömâĉ²) ¹»*œcT’»ÃáñÇS¤Ã~±o3í—«ñZï_b÷¿‘÷¢³)Š€"àw|±g»}û­X±Ï/ªÑñãWSñâ9„8ÆöpóæmgÚ•²ÅÈ0ÏÉÐŦmîܹ€yŸ¨aü¿sçÎh»E~TxöèуQrЯ¿þJ?þø£H¿êÖ­ËvŽ=…de̘‘ FQëÔ©“ÌÑ·o_I±Õf²dÉÄ aðàÁbû†yHî $Äoÿþý4gÎ!yد–à# 6mÁÇ\WT !€[·¥—^òÎÃrõêý„¸jO<»øl7oÞaÀMÔ­[=¿œøÿ›ÉQëK°Ý’÷ùSý²$(äÍ›W¼=áUj_F%¨GŒ6ôM‘â?ïf8 @ú¶gÏ‘‚eΜÙ6êÑÅ‹È$qò†‚DíöjUs†À ÁÞNÎlÓkðPÒ|ÌuEE@[·£[·îzm—öï¿»XúÙë¸nŽÇš9s “¿;~‰Í†¹pž~ýZ8.£Ïq$­ÇÇYA}ñâÅ5I2{W í!QƒJÖjI’$‰Õ®Ú/¨z4 늀"Ö­;ÈáR°Ä!“Wø÷ß±–²aA8 V† )½ZßYçï¾›Å6K¥$é½³v­S¸€’¶¸ÿŽõ„Š@¼E`ýzïã³;w•s;g£ëØúcžÅ‹wQ“&±Ï€ëÎ'YÍZ7Þ¾K=¸" )iÓßE@ˆ³øBÚ/Þ-k«T)+\ü6Y²ÄT·®s–7“÷Ýljذ4§ÊêÍ0í«(q µi‹c/T£(8þš„Ú(SÆ;£}HLj7EŠØÙòLœ¸Vœ’&M«W2}ú&6*?Åá ^ŽÕ<á4öy.X·« §½ë^P" ¤-”èëÚŠ€"06l8$s{ëi 'o½M±ÿÚ¸ñ0½ÿ~ìàþðÃ\¶e+)ŽŽëDÚ3Ry}ñÅß´aÃa–B>Ì]÷Є "íº_E ðÆ VQÒ,¤uE@* yóf¢´i­'hß½û$½þzuN¿¤ŠoÞ¹öU¬ `ý4+³iE@PÂ_œ–.Ý+)Ž€ºP‹æÏï]Ú,{Èví:Isçn£#ÚÚW‡íýŒ›9SÃ8Ê”)MŸÞEÓl…í›ÒÅôO¡¸ðõ Š€"`C¶i[·õÊžíúõÛ,%:Ä!:|O]uçÎ=&-›b-e8p>,˜…êÔ)f;S8Þܸq‡zôÏ¡;FPƒ¥Ùaâ]%láø¢tOq •´Å©×©‡QíÛÑ­[w™´å± ìÇ@ºªUó´ÁÛ!.6,cy]ÇŽÇŽ]¤©S7Ð÷ß7wl «çcÇ.P›6C%¦Ý°a¯J懰ڠnFˆ£(i‹£/V¥ÄW6nòH6ʘ1¥Ï°Ák´B…¼”#GZŸç2ä_Êœ9U¬¥u>oÀÂÀµkÒ«¯—}ΙÓ-Vçµ°œvQ;T=j†Þ*Š@ä#€Øfކɀ=[lB}ܼy‡½ Q#ߥlW®Ü$¡m×îqIXŽo⯿ÖR³f?±“Dö’}G [8¾$ÝSœF@I[œ~½z8E þ!°iÓò&ßè¹sWiÇŽ±²g[°`ÁÆëé§Kù ø¨QË%m«V± âó< ìÛw:uê4†Ú·‚†•’'Oìa„6+Š€¿PÒæoDu>E@ NÈZª”õ4TË–í•ð•+û^±Ù0”¾8O ¶„^|±2¥L™Ä—)6æÞ½ûÎã×_IÔž=Ä*cDÀ6ª+ñ%mñà%ëø‚À–-G $ÃIÛÒ¥{„ä¥HáYQœ7o; ”öfØÃ9sET£>O€Pû¾üò0ö ÝB£Fµ§¦MË`RP¬" ŽV‘Ò~Š€"ö@5š!CJ ’ku³Ë–í‰áaƒ·*R6ùZ^${ÈžÝw'_×v5îòå›ì!:„öî=E&tôŠ»šSëE v(i‹~:ZPÂM›¼sB8qâ8pF’Äûz ¨F«T) dÑ—9V¬ØÇqåŽÑ·ß¾àËð€ŒÔ¯E‹_èâÅë0¸“Wž¸ÙNª(‚€ªGõAPâ ðõF5 )R]•/åÊ '„gžñ]5Š0+æóÚãÕ§ ["Û¸ñ@‘NúŽ6 ˜iE X(i ÒºŽ" „Ì8pà,“6ëN°g+[6Š’&MäÓÞn Ay}U:tNB…´oÿ¸Oëû{Б#çé¹çpÈ‘’¬>61çü½7OPˆ”´éo" Ä `Ïf†Wž£Ë—ïaÕhŸÏÿ÷ße|úô)|šcذÅ;¶úõ}·‡óia'ƒöï?#„-Mšd4qâ›>{Â:™Z«EÀO(ió:" „¶lÙÒr¤þÔ–6)×Ñ£|¶gƒ×(RWù›íêÕ[4vìjÎ.P•~ø!K{T§={N‰JøM˜ð&ùJBµ?WP  ¤ME N {6ïâ³í‘±eËZÏQjÔ‚ÛÅî«~ýöÕ–ïÇ[M÷ïÔ²eeËcÑqïÞÓÊã'Ê—/“È”:uÒ@,£s*Š€PÒæu E@=ÞfB€r…&J”À§ÍÿóÏ&zôÑ|>{þöÛRjÒ¤\HI[“&…°ýù«Î'u" x€’6¯!ÓŠ€"nœ?UçÙ3§å­!Âc´Üß¾#â²Í›·4ð-mÕ¢E»hß¾Ó¬­f?mPïM [Þ¼™h̘×5-UPÑ×ÅßPÒæn:JPÂdB@±š(~ß¾3túôe‰¯æË1.ÜI÷á«×èðáKdíÂ…³ú²|¬ÇÀé*ÑJ­ZY÷ÂDê(_íÉ|}Q";¼F;t¨ô0°ûƒ„-qâì%úFH ì>øà*S¦Œ}•Þ+ƒÀòåËéÇ Ú~•´ j]HPÀ… ×½rB€=שS—|¶g›1c3Kõr³:ÖûäîÈSzíÚ-óQ)P¸œ$³yóAtûö=Î%ú¶e5²Ë ýØPµjU&ÀOùqFJ÷ïß*iS›¶à½[]IP€T£(%JXó…jÔW{6d\˜={+g0ð-6Ûï¿/“`¼3O-O×—^JçÎ]ãÀ¹)KkÁ‡ðªtJE@ˆ%JÚb  WÐ"Õ(œ2d°F„à„'‚„ ½ÿïoõêtöìŸT£ðpݰá¨Ç‚‚÷vèð;íÚu’þüóuÊ™3]ÐÖÖ…EÀÿxÿ¿–ÿ÷ 3*Š€"à3´yŸ öl•*å÷i½™37SÁ‚Y¨@Ì^‡”­P¡¬×ëÁ>x÷ݱ´dÉn9²½¬íã4:LPÂ%maò"tŠ€"àH[.Kƒ8K'OÆÆžm‹OR¶Ë—o²-Ùú JÙ¾øâoš4i ò •+ç[ª.K j'E@JÚ‚µ.¤(þFàâÅëtä2!X#mìÙSéÒ¹½Þ ԛȺà‹=Ûĉky½‡8ÜF¯×õeÀ°aKhР…Ô¯_ ªQã_¦Ð1*_Þ7{6xÂ&Ì*A´ßèèÑ+èÙgKs\²$öÕ¹Ÿ9s õî=…zõj@— ÈñqÒK—.ѬY³8Æõ€õêÕ´v-H~pŠã¹æÎËÒè“ü»ž3Ú'kÖÙ;p~#Çq¾îkU«V~ùåöè®Bß~û-Ç0¬KãÇò¶uëVKSgΜ™m&Hß[·nÑ7,‹´Nò#ÒÞ˜îWPl@ú•-[ZËN«Víó9ÜÆ¬Y[©^=ï½F×­;D;vç/£lûÔ Özë­ÑÔ¦MêØñÉ@-’yñE|âÄ Îä‹>LW¯^eá„ Û·o'´—,Y’%JÄž²ç„\¡¯YΟ?/_ä9rä*̵mÛ6*V¬ÿe3»É| ‰'¦GyD$JÙ³g·µã¤’,Y²ÐÎ;éâÅ‹T¶lYƒöÓ§OSš4id›7o–}eÈMR°WdÅ^á‘|óæMJ’$‰Ô™}\]q^ìïèÑ£r~û3bÌ¡C‡ *PÆŒ£Mƒ12”}º¥õøK]úרQC®Ë£víÚ¶çÊ•+L¨Œ~øÁ`Rdð—°mîš5kÕ«Wglî,É1˜0LŒ„ ƒ–~Lì –öÈ|_©R%¹Ÿ1c†±qãF¹ß³g1eʹüñÇ &wr_¤HãÈ‘#2ê{ì1#A‚¶u&NœhÛKºt錎;Êó¼yódü¢E‹äçÁþœìgÀÞ0®¬JµuÅýC=d0”¶çŸ^Î ¬Yõ(ë¤NZÎÜ·o_g.T0ÙŒ6§mòÿ¿a’h|ýõ×Ñð@Ó¨Q£OàŠwS§NƒÉ¬ŒÚ´i“Á$Îà ²?–â;vìw…½²*ôÿg~éÕ«—Ì…s¿øâ‹0NŸ>½ óW_}U°”Múì­k×®Fùòå¥ÍfæïT£Fä]aßLÝ»­ÿ;;v¬`}ç{Z®êQ~KZE 2غÒkñÙ Mœ8!ÿõžÇëÃΚµ…mm’{íuŠ ¶ÿ½Ñ«l ^oŽ Àp«Vƒ)wî ôóÏm‚žmÁ—=û:†I;vŒíõú±gì‘Ü@‚ôÇЊ+DjÓ¼ysbòÂŽ“d™3gΓ"ƨ•ØcAr³ÿ~‘ÈA’óé§ŸŠ¤Ò%&ÄDJ$;ùòås»MH” ec"'s!»ƒY ÑÚ·oŸ´×«WOl´ B½“3¹‡DªGN%SÒÁîö ©"¤\LFhèСôÅ_ÐÂ…  Ü8P¤Œ£GãâÅ‹¥öˆ³A­ùå—_RŸ>}8Ðó5»Ùÿ»e‚)X/ó¼\œ’±öíÛsHœ³²5ÙÆWH±6Þ$”ØA*ilÙœ&^Rm®ýã|P}>\>Ó¦MÛ7&ßì%=R°´ŸËff?H:±ïÿýWöcþÞ˜íátUÒNoC÷¢(–@fxƒ/þ@Ýåi H[™2¹Y å½UêÖ¬YÔë\¥ˆš4yðåãi¾´#j۶à ב#ÛQ²d‰|™&bưô… ®|úé§eÏ Oæ3ÈHH æQ&OžÌqùRÓ¦M D „®{÷îBt>þøc!A¨Y=Kå8/k êÙ³§Œwõc“%KÆ!` Ð+¯¼"ÄÐìÛ¡C!bPçaÏPÙšöYP ²tGºb,K‡(**Êêò 2ÕeÞ¼y¥ÖdÉÍŸ?Ÿ¦N*÷,Á5k‹-„È+/ØÉAMÈ’MQ Ãø*Gg…%VÒýÍK u•:ì *cœ „vo,õµ&:äÏŸ_ÖÇ9A A®ÿ÷¿ÿÙH#œœ`†‚ý /^œp.<ãìx— ZîŠ;ÌÌq »ØKNE=êLõkö õÕûÿ½B½c]_PF`ëÖc"ñFÒöÌ3¥½Æ9;׬9ÀĨš×cÇŒYI –¡T©’z=Öê€=Æ ÿýŽeÛ>«s‡c?Ó $ ¥`Á‚réBaÅ”\YF/¿ü²¨?óÌ3bgéÍO?ý$Vá‰\ïÞ½E‚÷è£Êxü€­“»b’'ô!<‰YìÛ`…[7_ È$Œ°³/ÀR"HÞL,Ìv”5kÖ°çr3;0G[7³¿y}î¹ç\Ú´™}쯘¡´nÝÚ¾ZPa’VHGA„!u3fŒ-ç,¤€Î œ"P@lQ%ŸÀÕ¦ž0“IùÞY@ƒ•üÝ\Ó›«JÚ¼AKû*Š@Ø '„ôéS°ÔÅù_éö=sæ «ÃÎp`[ïƒêλM²'Ô¨QÄ~J÷ˆ·mÛ1Ÿ<.À~úiK“Ö²ª© .üÀ»ÏʸHîcJ]<ÄóC†  ˜I(@`àÀ©Âw@2u!Ôv 30F7‹©–3Ÿ¯öá?–.]MÅiß¶lÙ2êÌ8ßqNWÏ87H Ìõæ®]»d]Hq¢‚µ#Âf@†" # wp¾èÖ­›9…_®pä€ãT·l×'¶û³?/ì!<Ö­['dämÜD5Ê6…¶p憠…RÏT©RIµ=¦æmذ!ææXóê 3û~æ}¸_•´…ûÒý)Š€S ióFÊ– ÁÃT¡B”Ó¹ÜUB5Zµj!–È$v×-FÛ¬’ì åËGÅhóG¼Yûôù‡%DÏÒ“OzG(ý±~¸Ïõ&ÔuPaBõ…˜c( -P“‚Hè@:©¼7!y1b„ôäê£>r{LÌ ›6Hò`Õ¥Y Ícƒv!‡ýû÷©¼[QÞ{ï=›½ˆlÜ`fHì Æ´ÿ€a~¨z¡Æ…:’+HÑ@R±#xÆB‹¾l¼/D„ÞªjAˆrçιÆööu÷î]ÁÚÜ;ÔÕ3gΔ©Í¸i ÆE‹e‰p‘p¢¶uÔU¯^]T f ÀPSƒ”²Ã„m{ |°]„Úç¦ZgÉF}q‡™}¿ˆ¹˜ƒN¬(Š@xòÉo Žúoi…ž='õê}o©¯}§7nùó÷`ϸåöÕï1®páŒAƒxìëK‡;O ¼g°jÔ—áa1ÆWïQþâ—ýó´x Â…í³äžfaÒ u;w6« &¼>ùKÚ`IœÏC¶¯’vx›š£h‡(®ð…$î™ôؼG;Lú V¿8 ¼GË”)cóH„×ãòåÿý¹ó…×%Öqüà ¬ 4ªV­*m,E/Q&D²&~°Ñ½x2b,« 6Ì—6–tÉ91gf²i0a5XUí\èÌ×­÷(«ŒÅCÓŒûùçŸe?æ¾áËvsh2Ø€×)«°&¯ìŽBÚð´ð(5ÇâÊáV –¤ÙúÀ{”mãÄ{íÀ𫯾²µsˆ:v.oY4ºÃÌô5§Ðž»¦W*ž=•`{Bÿ¯EPˆBàæÍ;ü%ð®1uêÿ©»;Þ'Ÿü÷e}KÙŒìÙ»ðü—í«=Þÿõ×#wîw N.ﱯ·.\¸ÆÄâ ã¹çì|àíð°éï-ióeã Jø‚Gx Ç‚:Ž÷%!1ìÛX½h°ÔËàØ_BÂ0¤Í¾˜!?XR%}Yígß,Ä„%BòÂÙÚÑ:{ù€ý±¡¼ÁjOƒU„1Fƒ(9 Y½‚h±ÚTÆ`,KµbŒM{‡ B ÔŽë³tÓi›Ù—%nKÙ G<Ñ҆И‡UĶs˜cqéfI›}•Ü{Â,Æ/*‚MÚXròo¥E@P"–4±:æž%õè¥K78ê ð@=æÍaφ”W™2=°©±:µkó»c_S‡#åìC†¼,¶vV÷ßúA͉°P‹"H®cqV‡>ph0 Þ]…İŸËìk_gÞ#À.>þ,ؼ1]؉9:$ /TÀ¦zϰqÃÇŸáXì9ìçÆúÈxà®ÀñÓóæM¢³u·³â 3gcµNmÚÂõÍè¾EÀ%pBH™2)‡>Èè²ÙÏO”Šó™U–¯ muë·Ü†áEZ¶¬äÕ8+?ûlªx²þªß ¡•õ#©ìÈ@ÌXmçó¶æ¡+CRÀ&‹U£BðœMŽ6û ÎúhwÀëµpáÂÞ Šƒ½UÒ_ªIˆë€´Y϶zõ~™Ò¥s¶Ç^7æp—Ebæ¬ÝUݸq«$µVõê1¥;®ÆX©Ÿ2e ü¯ϵê€aeÞ¸Ú‡#ýÇúhð>ekŒyØ®LbÅhøÿ O±Ã\³ROW„ÑðgAø7Þxƒà4à˜¶ËŸëø:œ>´°ÄTAPE Òi³ê•¹zõVÙx/e›3g‡&HÏÞwÿå¥ô„›ÂHŽfÍÊû5+ÁÞ½§9ì8Ž8ÿ{D–ñ´ mà +€ÖßÇôWxîI犉€ªGcb¢5Š€"ÆÀ® 6jÅ‹{N_uëÖ]Ú´é°¤m+‡€(æ‹ïæØ_9ƒó´<^MöÿÙ•Úµ!äñ£ú2…މPðG>Î Ö#ŽHœcAh vž8fŽãAøë 툩æ©‚ zZSÛ]# ¤Í56Ú¢(aˆÀ¾}§‰½G©X±w'ˆ›·ölÇŽ]ä@¡Ç}P® `þü"à{Ü …Ý»ç¸TWé×_ÕñÀ\q¢ â¬!> Ö¯_ãLìõ*Ae‘ª qÏýÁ$gŸ}ö™´!˜p¹rå¨Zµj’-“€è!X-‡#‘ÔVHå)ݪU«ödHA…à¸ZB‹€’¶Ð⯫+Š€— ¨n¢D ø‹Ä¹§˜ýtPfË––Óæ¤·¯öx?wîVqt¨R¥€Ç¾f‡Ë—oË¿ð£fU¬¯#G.'ز ØŠÏá_/ÄXoN'ð+HôÏ?ÿH@`xP"¡zË–-z‚"/rw"˜.’±#à,é"`poNÇ»4 Ep_äÑD Z+ÉÓ…à¼Þ‹DíK7n,R:•À9"œg%mÁÁYWQ?!€ÔP… eâæiÊU«ö±”-¯§n1ÚaÏöÄ…-­až:u½x>û¬lΫwïÉÔ¥KÙ‹¹Ž^ãNHR\=ÿüó’Ú ™8@š!Œ†c„ìõ×_—6¤ƒâ@³’EÄ !FÚ´i#C³Y! FE±’<]:Úý€ç,œµ9¢I“&"ÍA„*VKðPÒ<¬u%E@ð mVT£P­]{ÐkÕèõë·Ù3p¯×ölãÆ­¦§ž*É_ºIb}JÄ–kßþ7+‘Ÿºv­ëùt‚ðE©¨@Šï ´Ñ£GS­ZµØ‘Åõ×3BŠ˜ý F…ê°téÒÑÆ"/(rŽB2æ.á¼9Ÿ«+ÖAš¯?ÿüSRaåÈ‘CHå€\ Ñú àú·"‹é”Š€" Ä¨G­¶;NÐåË7¼vB€3Á;÷Ùö§¨å­îÛw†m±¤¤‚å1î:¾ýöºwï>'„oí2˜»ñÚ9¼õÖ[LÌ»ŠCâÊ!É»³0#ö'Bx³ ׿–-[Dò•5kVÉujÚ·¡òuBŠÒå.á¼9Ÿ»+r‚¶mÛVò™‚`bßøi JÚ‚‡µ®¤(±DàÔ©Ëb”_¬Xv3!>[êÔɼ ÙIçÏßÎÒŠ\”>} k˜8m•ØÎU­ZЬòù:`À|Nœ½S¼ÙƒÏ êÀ"€ìß}÷HÁ† "jQÄã<šÄé¾bìSEI¶$Wqºyó&ÛR¾ ÉÓaËçØ»Á‰`áÂ…Ô¼ys™Ã—äéœÓU’ºÃs¶ŠÇ)2M@j‡}»ËcãZ{˜‘kQE "`BedËÖ™s:ÆÌ¹èx€7Þi´lù«cµÇçÒ¥{ýúÍöØÏ¾C… Ÿ_~i-y½ý8Ç{ΤÀ‰³»D×±)Î=#÷h¤‚†Ü<×`¤±fÍšhÇhÕª•$£çŒ ’WÉêYEiëÃ6n’˜³9H;6ãÆÒî.yºcxsBä E2w&‚ÛÙ™Õzý4÷hìy¨Î (q¨FsæLÇÆÖžs&®]{€C!Tö í=uêÛY϶|ù^6ƾ@M›–÷j-ÇÎW®Ü¤·ß†=SQ¶g{ܱYŸãyóæ¥/¾øB¼=áUj_F%¨GŒ6ôM‘â?©0ìã }Û³gHÁ2gÎlõèâÅ‹‰I¡Hâ.ÄÌ?м¤ÌCl}Í„ ‚;;³¯^€fD<ƺ‚" ø ÄN³bÏvâÄ%!R*xç9 ÕhÖ¬i,§È±þúk-'âÎ%­±9æûïO Û·ï±Êé*+6s騏rŸâ㬠¾xqçyq‘÷ÔUîSo“§Ã[TKø  6máó.t'Š€"૞£HŸ0a"šÛÌћçÎÝ.’®èµ®Ÿnܸñµ6ÅZÊ6iÒ:‰ÇöÃ-½²¥s½3mQ¸ˆ€’¶¸øVõLŠ@Déœ8kIÒÒ‰\²d‰-#¬È à×(‚é";ÃsÏ•µ¼ŽcG¨V?øà/NUõ8U¯^رYŸE@°! ¤Í…Þ(Š@8#°}û ‰5U¼¸çôU m*DyuœùówPâÄ ØC®åq'®e¢õ«¢RZcßyTßzk4åÈ‘Žzöl`ߤ÷Š€" Ä@@I[ H´BP¨FS¥Jê1%$rèë­=Û‚;¨rå–¥sÌ!¦[“&å|†ëÇçJBûŸnÍ‘æÕÄØg u "OPÒO^´Sˆt¬ÕE[¦õ†´Aâ…Øh5j± ÓÔ©„hÕ©ãÜÜÓD6¦ï¿ŸÃ¶g8&W6OÝãT;',OÂéÒŠ@ä# ¤-òß¡ž@ˆóìØqœòçÏ,!9ܶi)R$ñ*I<¼FÏ­råüµ!–Ûg¨qcï½F{÷žÌaK úì³F¶ùâÚ l¿þzµœJ—ÎM3ftáŒ9ãÚ1õ<Š@HPÒØuQE@ðHmŠÍîqH[™2y¼’€=õ‘Ÿ’&µæP0eÊz±}Cê*oÊ¢E»hܸÕ4lØ«”6íõ 7ã#¡ï„ k8_æT‘Š~ÿ}sjÖ¬B$l[÷¨D ò#b^•nTˆ¿@ÒV¤ˆgÒ¶nÝA*W㇩‰$Bƒ,^¼Ë²=læ¦MÛȪQï2 \»v‹ÕƒãèÙgËPýú%ÌåãÌõÌ™+l¯6Œ:wþS$Ë–õRÂgÞ®$œPI[8½ Ý‹" Ä@1½ê©hQ÷öl.\§}ûNSùòQ1æpUÉæ·ê„°bÅ>:yò’פí³Ï¦‰×ä—_6qµ•ˆ­‰íÙó/|œŒ&Mz‹}Ôº=aÄZ7®„%m!^—Uk@5ŠâIÒ)ÛC=Ä’¶(éoåÇÂ…;$ÔÂ}X)P"V™­t—>Ë–í¡Ñ£Wpl²6q*þ¸!%On=׫eµ£" ØPÒfƒBoE €j6`Ù³§u»=¶üù3ye/¶p¡õ,wïÞ§þÙDo¿]Ëí>ìLöÝwÇQ½zÅ©aÃÒöM}¿iÓ޵6Bœ*ÆŽ}ë|­}pݼ"bÔ¦-Ä/@—W÷ Q¼•4OPuz#e;{ö*!5V¸ßÀÿ·B*ÏȆ ËXêN}úL—$_}ÕÌò˜pï©a£F?RÁ‚YhîÜîJØÂý…éþâ*i‹S¯S£Ä= iCèwa4ËÓäM”(=öXwSÛÚ E¦…9ÜKüÌ«W á×pŽÍ–q">²@ ØÎëP·nuEmžW¯Š€"xTÒxŒuE@ˆ;wžðw voׯßòÊ ªÑŠóIŒ6OÛCê%d2€÷§•rçÎ=&5cÅÁ¡iÓòV†„uŸãÇ/²„±?Íœ¹™ÓQµcOØzJØÂúéæâ*JÚâê›Õs)qC‡ÎÂexŠÑ{¶Ô©“Q¡BY,¡;þýw—eÕèüùÛÅû³Akviƒ-$¯¾jji?áÜiÛ¶ãÔ Á":{ö»T³fÑpÞ®îMˆÓ(i‹Ó¯W§D6 =ü0ÒWeu{س•-›Ç²ôgóæ£tîÜUˤmêÔœ1¡e̘Òí>ÐxäÈyV‰ÎbŽé<öç‹í´Ù¯MÚ‰cgçíêÞ8€’¶8ÿŠõ€Š@ä"Ò•Á£ sýúCBÚ¬žNY³¦±äà€Dõ´YõþìÕkåÊ•ž:t¨au;aÙo̘•Êc(=ýt)3æuŽÃ–4,÷©›Râꈟ޶žUˆ0¬dB@¼0äõÆsªÑêÕ­y– ªAOeæÌ-4oÞ6 2›0aäþMüÕWÓéÇçq¸’zü©ëéØÚ®(AB rÿW @ºŒ" „HÚ<Ù³­_P6èÉÃÔ<ÅÕ«·hݺCôÄ…Í*·W­V­ ¥K—Üm?ÄdûøãÉÔ´iªTÉZòy·† äôÍ7Gq à…âõª„-/A—TÜ  ¤Í 8Ú¤(¡C$Žž2!¬_X¸{"UæI–.Ý#Aa«U+dV¹¼"ÅT©Vb³}÷Ýlºzõ&õîÝÐå|áÜ€³¾ð Vïu¨&{ç·¥{‹¯¨z4¾¾y=·"æìØq‚àåé)ç($meËFY> ⳕ(‘ÓRJ©9s¶òˆ“¼—t;ÿ®]'iðàé‹/S† žÜN‚Æóç¯Q‹¿ÃáÀ“ãG¶¨K*Š# ’6ý5P°DªÑ)’xôXDPݲeÝßµ?à{6kªÑ¿ÿÞÄÿ s8÷Fø:‹œ¤­[W¶_*"îOœ¸DÏ=7€ iS¯L7PÒ_¾]g ½ò”¾jïÞÓ’&ʪ¤íðástðàYKöl°}ƒTî™gÜ; Œ¿†ý©ª°>’ ÔÏHI…°*S¦¼M9sFvˆ’HÂ^÷ªø‚€’6_PÓ1Š€"p ÁiCPÝdÉ{tV07 )¤wåËç5«\^¡Ez¬ºuK¸ìƒ\¤Ÿ>^~ù1*Y2§Ë~áØRüì³?²š8¥x»fΜ:·©{R;”´Ù¡·Š€">€´y²­B|6اY ¯ÒV¥JKýÿþ{£GÕè÷ßÏÀÞ{ï©ðÎÂN6nX¹r½ôÒPªW¯8 Ð*äû¾yó&KüžwНV*‘†Â£¨z4(늀"à»vðTY ?4{ö´–æ^¼x·1O‘k¶o 8WÂ9¡wï)T§NqKóyZ/í«Ví§V­†P­ZÅ‚°ÙŸyæÌ™_zúQ "íw`ܸqö¿Î¿WÒpˆuE@ðÖ}䑬n‡=ªkMÊvíÚ-‚ýb®y*óæm§»wï³×¨sÕè˜1+hß¾Óœ²*22¬]{ Û`¶å+L?ýz ›'üµ]P\# ¤Í56Ú¢(!B`÷nÏ1ھʪjtùò½¢Jµ’ºêŸ6QåÊùzT"í7ß̤W^©*©³BåeAT[¶ü•Éj!úå——(Aý/ß2xÚQCô_p¾Ý’"Ÿ8räÈ“'ç­£-œ*?¶2eò0É|U [8½Ý‹"K”´Å@®(þEÀJúª QéÒ¹,- Õh’$ éÑGó¹íçÎ= ãñÔS%côƒ÷%ݧŸ6 k»0ÔæÍ¡¨¨ŒLØ^¡Ä‰UÂãeúXqðàA–ÀÖ§ãÇÄôqÃ>üðCÂ'XÅñ\Ý»wçßóO--äÈêÔ©Õ¨QƒNž<)øìÛ·óûz‡Õ•+W¨K—.üSEJ›6-›=”£×^{M NYÚ:]¸pnß¾-ý‡ &û²<8‚:*i‹ —¥[UâžHBlÞ|T$IVð@¨ŠóQÒ¤‰Üv¹ƒ£3Òöå—KP^+ÙÜ.ÀÆ‹¯S‹¿Ròä‰iÔ¨ö’“5€ËÅ»©/]ºD³fÍ¢ëׯôì«W¯¦µk×t ûÉϵbÅ ö´^oßÅåýàÁƒi̘1,}n-}®^½*6ŸŽsºœ€@öªU«Æv—¿°ýeúöÛoÙs».?^ÈÛÖ­[Ý ·µeΜ™&L˜ Ï·nÝ¢7nØÚâÒ’¶¸ô6õ,Š@„#€P§áÎ ªÎ«Wo²¤-·¥Ó‚ŒYñ…$­T©\1â¾Í™³¿DÒò>Ñ÷Ýwß•þ¸nè»{÷nÛ<‡²ˆ}½ôÒKôÕW_ÙÚ]afþN¡BÌ‹ña]øF‹" (aKÙŒlÙ:Û·w¹Ÿ±cWyóv7îÞ½ç²ÙÀAze>NnV9½rf£xñæEkçÿÌ5¾6Ú·ÿ-Z}8=°Z×`6ÙÿÞ½§Ãikn÷Â*1„7˜`¸íg621’þ¬Š“+Ʋ„ƨ]»¶í¹råÊ ƒ¿ü‡~Øà/qs¸Q³fM£zõ꓃%9F¢D‰ŒäÉ“ &4Xb$ý˜¤,í‘ù0¾R¥JrÏÉØ¸q£Üïٳǘ2eŠÜ?þøãFâĉå¾H‘"™u=ö˜‘ AÛ:'N´í%]ºtFÇŽ噉£Œ_´h‘<ã<ØŸ³‚ýá ØæÀ•U©¶®¸g'#I’$ÒÆ'ä¼LD V=Ê:©S§–3÷íÛWÆÙŸ ØwÆ ¥­k×®ÎU°`A9 0¯S§ŽhÃZ¨c¢f0é‘{–ÒEʉ‘ѦMiæÀ„ •Ìw…½²*TžôêÕKÆáÜ/¾ø¢ì%}úô6Ì_}õUÂR6é<¾þúkÙ[ùòå¥ÍfæïT£FlçË”)“Á„Ðq+.Ÿ9¸®¬í²ƒ–«¤ã´(Š@x Õh„ 8§gf—bF%Jä´d[¶dÉñôDweÍš’ ¾~ýèöl“&­'†=ê»Ò¶Îÿ Õ«÷³šê5ÊŸßsŠ®nÖ‹3é‰Y¿~ýDji $HüñAµ©MóæÍÅyÒ¤I²â™3gˆInEýõÍž=›öïß/0Hr`ÃÅß­ôùçŸÓŽ;DÉN¾|îí säÈA/^äß‘=2×|`;!¤Þ ½^½zb£eJq`ÆäLúæÉ“‡zôèÁN.ylc]Ý`Ÿ8ßÞ½{‰É :”¾øâ ‘æA‚†ûŠ$môèÑ¢b\¼x±ôÃq6H«¾üòK‘f]»vÍÕR¶zŒyã7DØ»woš3gŽH<¿ûî;zýõ×E•‰³º*ØÞÍ´iÓd¨Aßÿ}‘ÜAR‡÷[6g…‰—Tã]¡`/˜’ÉáÇËóBÈä›FŽ)XJçÿÿá3³RªA2ùï¿ÿÊ~Ìß³=œ®JÚÂémè^xŽHrƒº QÄïVU£K—î–8ežòƒB5Z°`–h¤Ž ¤û Ý’ÈP¾²>šLƒ@@UR‚†‚ÄôøRoÚ´©1„”Á=ˆÎÇ,$u, ÂR9ö^NA={öt»eŒM–,ÿ~à€Ë¯14tèÐAˆKó{†ªÔ´Ï‚J¥;ÒcY:D,­2‡º¼‚L4hЀòæÍ+}°&Kžhþüù4uêT¹g ž„ÃiÑ¢…%`² ;9¨§OŸNÛ¶mcûÍ+1T•Îq…“KÉ„¼¡ ÕòçŸrì²òŽ6mÚ͍e(eÊ”bh’F88+À …%hr-^¼8Ûm¶gœ{ÑrWÜafŽÙÅXrÊ&¥ä÷Ál ·«&Œ·7¢ûQâ1È„à.>ÛíÛ÷ø¯íãü~u(±‡%/ûè½÷žòØwæÌ-Ô¤I¹hýFZN§O_¦®]ëF«—‡Áƒÿe²¶”~ýµ U­Z0\¶ð}dÍú ½H «îä Ò…‰ «Óèå—_&HÙ` »«4iÒ¤7?ýô“|XÕÇŽÉ…ÀAŠ›·G}TÆãGîÜîí&Mò„¾0„ÇZf±oc•›TÃÖÍ×Â…ýÙà)$o&f; ìÑš5k&ã *D3f4»x¼â\fIš4©Üšvmf½»+¤i0>ûì³¶n Hx_ùóç—:W$pîܹÒb‹â(ù®î0õ„™LÊ?ìÏîÍùÌ9‚uUI[°ÖuEÀ#»v¤B…\çݺõ("ßã¿ÖÝ™b!d¸|ù†G'¢=zô<‡+øO5zãÆmêß.éWá˜àñAè0{öVúì³i¢Ëì AØFH–0¥.žî¹çØc8)"0ÓæD‰"õBøH¦ .„ŠdÆìf1Õræ³ãÕ>üŒìíUœöm0pG±owœËÓ3Î ’' ³@Rµk×.™ÒE܃¨ @툰°!„ÈȤlݺu3§ðx5ɰǎ.:@Ò©'ÌÏ€„DBâÕ(¼Páì`_ …RÏT©ÄM´Ç^¼6lp‹©'ÌÌõ¬þN™ýCyUÒJôumE@°!)²¸“´A5š.] V%y–Àk4kÖ4U›P"˜¯}vH±à‘ùöÛµlû —„;yóÍQ@·uèP#\¶vû€z*H¨0!ÙAŒ5¨IA¤@t ‚ÔŽ â ’·#FHH®>úè#·çÂܰYƒ$ž¨P]šÒƒ“ÖÛêÂá†cÓqØŠo$ ‡-ÅjÞ†üðe1þÒ—p ìuc8ê8­„İodõ¢„¯àØ_BeðµöÅ ùÁ’*éËÞ‹öÍ’‚%BK¾ gkGëìåöÇdÑ`µ§Á*£«³Ø+;Á‚±,ÕŠ1>PÀ“½{ „àpU˜H,e3ñD„ü@hœƒUĶsØÏ…/,i³¯’{O˜ÅàEE°C~¨¤-,¨³nBPà„7o&–Z8·Ú¸|ù&«?ÎX’´!Æ­[w=JÚfÍÚ"Ò4dL@A¨#–°×`É,.oN¯¿þ;º_átZ]Øû.I¸l-l÷5'ÂB@©cqV‡>²˜ï¦w£ãXûg³¯}yÇ|üY°?Ó€ßÙ¼°stH@?¨€Mõ,žaã†O°J®\¹wŽžœ?pØ$:+Pw;+ž0s6&\ë”´…ë›Ñ})ñ Ož£PòÀ–ÒW-[¶‡¿x3Q¶lî¿0aÐ_«V1Vó<ð<üé§BâÚ´ùO-¯áÃ'‰'ì¤Ioqè„tá°¥°ßìÈ*T¨ á6|Ý,‚õ›cH ¨>¡Þs¥FCúhñðz t 1ÿí6p3)i ¶:³" x ƹsW%=•>á=ÆŒYÁv1 Ã*Ñúo¿-¥ß_ÆR_‘4[N¬•1àHÿ1ê¼­€ýìª ìáÈ×Uñ;ÌÕ¸ØÖ#Q:b¡ýøã±Ê«ñ°£V° T½š¶#TE@5Pezòݼùˆ¥²l‹&á><‘6äM’$!??PýüóBÉÙÙ²åÃæPc‚õW­ÚO½{OaÃñú¬æs® ‡}ê„ùE¢tx¶ÂØ_KàPÒxŒuE@ð€çÌÏQw1Úw­T)ÏñÙ@t8/)KÚ ¸]öl?^ˆízq«„`º;>6R¶'.ç’œƒ´k׎mÁjq gaŸÄž™(Hdn&¼‡ i· žAt,°³Ïu U¦c±_Ã>Q:²%`~¨_ñA:03Éû¢E‹D]‹Ìf±ÏZ`ÖÙ_¡‚aƒHÞèÑ£ „N‹÷(ió3¡(~DÀŠç(H›•ôUË—ï¡bŲ»•È­Ys@T¢ m²Áƒ‰áC]¢ ŽPÙvêT+ÔÛÑõ½@¤*EEÎL¤‡BŽLwžœH÷doÄoÚ“™ËºŠç*á=œì ÍÚ‡=´Ë±Ø§¡²os—äÅz@IDATñç v…mY<Ù¬q6Q£‚¼}÷ÝwBaçÅ{”´y™ŽP?"ÏQ|ÀyÀYA–ÄP³â9Š|£Uª¸÷E¨üù3K¼7HÙ^{­zȳÜ»wŸ ¶uí?¾è ­ c’'ONo¾ù¦¤U«V‰Q? ð³eË&†ø‰áXµy?9%“$†w–Ôq žÝ%¼·ïòˆ„ñø i=rvZ-î’¼£ vi°iCrwHù`Ûæ¬àL °pz5jÿ[{Mr­bOØŸïHèý¡(Š€ÿصëÄÿ{Ž:·ß‚” R‡%rº]P³öêÕÀm¿9s¶ŠjtèÐÅ” Áì֪æ¶0ûô™NÛ·§™3»†œ@ã¼qy ¨/ñA²vÎK)ž¿ÿþ{4ïKœ¿[·n’¼¾T©R›3¤Û✡ ~ß]IÁÜ%¼·÷Í7ßpÚ³3’¨ªL$§ç\«×þ‹Ч$ï°§ûßÿþGß~û-eÍš•žxâ ÛXû¹1¼_,X }ìÛôÞG¼È‹ª]E@ð;}ûþ#IÐ]Müõ×3ŒjÕú¸j¶Õÿý÷F#gή†»dê,Õ“ñ î0yä£_¿Ù¶ñ¡º™;w›‘={ÉíCµ¿@­Œ„ñÚ»·ó²£‚Ó!¨Gòw_ Ñ;KxoÎÅ?I¬Î*ZI²Î6jÓIboöñtu—äÉæÙ–Ïi‚vs^Wç6ÛãÂUÆûH>u˜" D&{öœâמœ<Õ…j´T©\n“©CÊ–>} 8z’îܹO¯¼Z)Û±c9pî,q©À‘ ‘ùu×H’ÄyØÔ»KþînbW ïÍ1‹/û18ÀᩦÕ›ö°ÑÃÇYêwÅÕ¹ÝÑ6÷¨zÔ=>Úª(F¤­aÃ2.WAúªN”.k•¶»ù´Mˆ(i‹o]Ϭ„PîÛw†3<ît7õ{7x{º+pB±K‘Ây,,Œ9s «FoRÇŽOº›*`m7nÜ¡·ÞE>šŸ^½zÀÖ Ç‰AÖFŽ\F?ÿ¼@Hx‹•8åÓ“”={èAÂ'Ý“"`%mVPÒ>Š€"àwÎãÆÛäÊsªÑüù3YrB¨]»˜Ëý!¤v™3§¢gž)í²_ >ûl*A;n\Ç@.vsOºúöÎé”®PëÖU˜4×{¾°Û¨nHˆ”´EÈ‹Òm*q 8! ¸ yÒæÉ áܹ«œ¯ñ$}üqC—ðL›¶ó"Kºj±äŽo‚\æÏßN¿ÿ¾ŒC|¼ÄäÓyõÐ,·jÕ~¶1œÊÉЊô½÷žŠ7g âºj|A@I[|yÓzNE Ì€=[Ö¬iØÖ,©Óá ¿S§ZNÛÌJ„ú@Ò÷Šó™U1®ãǯá„ô éÅ+Åh tHe—.c™¸T™”/Ðg´ŸÿàÁ³BÖfÏÞÊ Â sŠwã¥ýž=&z¯ø%mþDSçR˸ó=~ü¢dBð$iiƒ=[Ê”ÎíÙ.^¼.ªQ¨O=Åz³¼q/:ví:V¼Dûô‰Ûá=îܹ'6kðŠÊHüÑC«8w0ñ>íª((isDE 8€´¹"e²=Ä:M+NO>YÄå†ûõ›Kpx€z.Øå?VÒüù;hÒ¤·\’Ê`ï)ëAÚ£ÇxÎsyºu«'Ž~jQÿ# ÿ²ü©Î¨(isç„€, î}Ê8>ìP<ñ˜1+9Gè÷"Õœ?¿»¶@‚­s+nPI›p´IPƒH[þü™NÕ( ÛS§v¿ ƒV¯ÞO÷ïßgÒ–/Æ÷îݧá×®õê¹O6cp,*&N\KóæmoÑdÉÅb¦ðzëÖ]úàƒ¿8“ÃjzçÚâŠÅ჈îD-JÚB‹¿®®ÄKöí;͉â'n‡BÉ’žìÙö‹ç)*Š@`€j¡"œ©G/\¸.„®xq×’¶7îpNË#T©RÌøl[·#{E8‘'Ÿ ŽdhæÌ-4kÖúFù†àuÛºõªS§8M›öåÎ!ËéÜŠ€"àªõ,íª(±G`ß¾3œ 4§;ŠI¶m;& ¸Ë„°nÝABÚ$g¤mĈ%”+Wöp<éеk·èÃ'Ñ /Tä ¿Î=YcXpf€ôí·Çˆ]Þ×_7 I|»àœTWQ"%m‘ûîtçŠ@D"°wï)ÉOé,r>H[æÌ©†1 I¤?Ù²¥1«äzõê-š:u£„ÚH”èavfˆI £ ðÃÃW_Í [·î°=[C?̺) ®~ùå¡„LãÆ½gìòB‡¨®¬%mÁUgU¸ó…z³X±.F>¨FP]gR¶I“Ö‰Ú±ÒÜå#u;¹PÑŽ±”¾ÿ¾¹¤ÊòbhXu]¿þ½òÊ0Ê!%͘х%•éÃjºE@øµiû ½S I[ÎÃ}€´¹SB- ’ጴ½œj×.J»v8i»ß îÝÇ‹Dêùç+µÀ,¢Û¤É@*]:7ýý÷;JسΪø %m~ƒR'R+8pÖ©ç(b‚!ˆ;Ò¶iÓ‚íU¥Jù¢-…z¾¨¨Ìâ àŒÔEˇaÃ39ÀsóFSŸBÊV¨PVqL€M\õ§öËó±ciàÀùlÀ_WìÙü2i&Y²d7Ç`NÕª¤AƒÚ°¤-pžŽ3~üxO]´]ˆ3\½z•ÿÈLå÷ó¨¤Íïꄊ€"à d,8uê’Sõ(2! CBáÂY •ºÕ«÷G‹Ôýúmv@X'é–.Ü)6fUªFmùé§SERõÚkO¸Ü_¸5Àþ®M›!T¯^q:ô•¶pÃF÷£D*JÚ"õÍé¾CÀôuî¤ õ®$AÇŽ]Dòööl {ïÞ}jÖ¬-\¸ƒ*W.À1Úü/IZ¾|/Ûm¤Ï>{Nr¦FìÀ¦}ûßèùç+Ò€/ !Ž„}ëEÀ=JÚÜã£­Š€"à'87qâ„N£îoÙrÔ­jùF1‘ûÍ2nÜjzúéR”:uRõ±›jÔxÄlòÛ¤!>j×.P{9¿m˜'5j¹$~‡T^®®¼qý¹¦Î¥(ÁA@I[ppÖUxìÙ¢¢2ÒÃÇ épîrŽ‚´•,™“’$y`†»ÿZ·î HÙ6n}ùå?ôÅ9ðo­€­×'5jg»x+ Ç¼xñ"Õ¯_Ÿ%ÅOs†1ÖjÓ¦´ïر#F›cEûöíiܸqR}ýúuºråŠÜïÞ½[æ8uê”<¿øâ‹òŒuÍO»víhêÔ©ŽSúýÙ~.\ Û·o[^cèСl—Y2gÎÌÿä§Æ³§øËãÝaby’0ꨤ-Œ^†nEˆË@=š/_ÌDñðúDq%i»xñ:íÞ}Òæ„€@ºýµ–š6-/ª?¶@HÙúö.Þy§vØ¿¶¯¾šN}ú4á\¢ÕÂ~¿á¼Á]»vÑòå˺ś7oræY4cÆ š>}z´µ¶nÝÊ*îQÒ‚ã©üûï¿, Þ/Ý@ÂZ·n-÷÷îÝ#x0Þ¿_žAtΞ=ËÿΊɧP¡B.g35jÔˆ† âi™XµÛïäËj˜N:±mf{J˜0!õîÝ›ÿ€ê@dô:ôóÏ?[Ú“;L,Mf”´…Ù Ñí(q„õpå„©Yúô)œ}ÍšR_¡B^¹.[¶—à˜„+WnÒúõ‡¨zuÿÚ³!kÀŸ®¢^½Hz§ “J{ÂöÒK…É®|߯ùóçéÌ™3B6Ö¬YC§OŸ–É 1Y¶l8ðà÷•‡æØyç£-†¸pd™eýúõ„¿×®]3«ä BrvîÜ9Â܇ŠÖŽ‡Ë—/Ó¥K—1·°6¤Wf´È”bíܹ“V®\M‚„?. E3I“ã3æI’$‰MJfÎ ©êÍ‚u@TÌyPüøq6 ˆNèpœgA;HÈH’YªW¯ÎÒãoåÓ¿š7oeÈ!ÆŽ9BK—.•ó›cÍë‰'d®fÁ;°¾{÷®ìÄѾà}Ä.þfq6çüùóÙ‰f}ôÑGìô½ùæ›Ô½{wÁ¹fÍšÔ­[7ÁßÝ{°‚ ~_@ž7lØ {3÷„z¼?à¼xñbþ?çÁ—f{È®  E@PŠ'Y7²eël°mZŒuÞxc¤ÑºõõfÅ_üm<ñÄWæ£ñöÛcŒ§žê'Ï3fl6räèj°M›­Ý7-ZübÔ«÷½?¦ èýûÏ5²gïbüöÛÒ€®›É9>›Á_p–§èÚµ«‘+W.#**JÆ=üðÃFÇŽ &òŒ¹¾ù景J•*ÛÜLðŒ ?ýô“±iÓ&#Ož§×¨Ÿ!pÿî»ï gc6mÚÔÀšÉ*iW¿ÙµkÿË/¿Ξ>7Î0ùúë¯ù3€ç‹~+V4ˆèñ4ø Ö®]Û Í8W½_½g¯x¦¸gùòåκ¹{m£XÚUi‚€ à_ް–Ø‹iƒÜÇ /dq¸è³éx6h³-[¶›¤,Jsè³/žM¥NÔáýî^X»ö‚˵OŸúîÞÐþ#FüAÙ¡ËÔÀUl°°™Áƒ¥§k×®le«U«»Âè ˜­^o¾ù¦Å÷Ö[o±D[ãæÏŸO‰.Ï*úÂWß|ó e*gã{`5ɘ1£=z4[ÍZ·n­ˆ˜±ÕîPm13¯A¿G\ÙO?ýÄV—ñãÇ+ü,Z´H_VaaalÙ;rä[í>ýôS¾F„‘Äž{Riµvq1mh‹/æW"šlÍkܸ1»ó‹ˆªjÖ¬U¿¨Ï–E{÷b¯9ÆöÑ¢E v­¶mÛ–»cŸÓ§OçýÁʼz÷îM%â¶QHÂojåʕܬîÝ»S‚Î×VÖ){sšÏg¸:'OžÌØ8VÍbÅŠYYõXEŠáóÚ-Œóöžƒ3L`9…ËuܸqüÜ0‘MJàùBO£ˆ²…ŸG"çŠH¢åZL½ÒSÈ˼‚@B™£)S&!WLr«]ß¿ÿHáZ‘"öËW¡ÞçîÝgT¹r¹ù¾%Kv«ÇŸÒS >¹ò¥k”þì¥/ûEø\ÄCgµà 95j…°½óN… Y•ï–¢ƒx¦ôéÓS¼bUþ‚& }†R’üJm‹‹Ž,ejÞ¼y<9ÜZ‡ËAëÛ·o'œ¾cw+\¤ƒf7\¬p·eÏžûµiÓÆáâ .¬š7oÎdýrçέ£¥Û—_~I.ô$$—ªO´!¿–/ás“ÅÐî1NB1ÿÕW_µ¸'á-Z´¨*PÀ·î~^ý‚Ëd?p/Θ1ƒÉ,ŽÉŠÇç@ qž,•_‡}“5Š]”ëׯ§:¼_2ÉÁ9O›³1áêM:µÝ¡á¶† ]7GÏA_·}ÁO•* P¿Ã—ð¼ßŒt#«ª*Y²$%=e¦ÚƼ_}-¦^#wS+yA Ö#K›½x¶ÿ½À±:Ž’ví:MqB-–¶Ù³·²f,k {gÏ^÷)i›9s«:räŲo}Qè°XBì766ücÀ—¤n°Ì .K—I¹F9C&$,6²_³f UÈx‹¯‘›“ߣX= vƒÄ!î V4r!ò+~ik˜å„é ˆ…¹HjËÎçÊ•ËrëD<ž; VA$% v0G×·æIƒµ±YøA,gˆ3Ó‰ˆëÛ»w/[ë`±‰qæäBV°\á:€¹Ní.Ã^F¬½ŽÎÆÄó2Çšï±B¼úèæîsÀ¾ñ¹0?|îð9Ò ÏS7sŘnBÚbú Èü‚@@+wî¨rp&Ož˜¾4Ÿ³‹´Ø2dHÉEÎÏž½AnŸc×(¬l©R%!Ë@„ûÉînœ¼ÿ¡4h9eßU /ƒ¨kuc(¿uE¥ƒÞ½£Ÿ×TÛ¶±7KÔë H¬[ ° Õ«Wñ_µj»ºà’ûçŸè3”UQ˜%0ß8ov³Ù><õ버€u3É3_Gð¾ùš¾ÏÙ+\¤:;òØ1|¾ß´ê®± x3>²bNưêìæÈ,{˜-K–,lɱÕ?HhÒ¤ »Há–Dv+ö Ø¿î‡5še<‘-ÛåÁíêhÌ5j0Öö2y‘˜8qb&ìzLwŸÅËñ^ôŸóóÓØë9‚áUH[0<Yƒ Ëp¤Ñ¹gñlÛ·Ÿ¤¿ðs2:Ðfƒ{µF‚| ÒV©Òóô—²çî3ìp9Þ»N±:u̧ƒæýŠûT—.3è˲†è°™žJݺu%p–!ȾÌÑ«+âÙ *ÄV9  gë ¬DˆyC–)Ü€Îb•ðEŽ8/Äq!Þ äDÇ¢a¸å0\³ÈÆ|ýõ×qZ!~ ókBd{ÌèÖ„= ›®I¸éÌ‚øùCXÂ'§ œ¹ÞS’*sö¬mÛãtéÒ±•çAx±X.±_² påþýûÙEˆX0Äb] ›ÈtÅ{\Ç} l}ûöµÆrŒ5‚$GgcÂ}˜D` Õ(Ä Nœ8‘qÉÔÍÑsp„ ž!öˆìTàµe˶Ô".0˜›¶`~:²6A  €´Ó§¯9Ðh;K¤-Ìá.AÚ´ÔH[Æ%¹ŽæÃ‡OÈêvÔg®ÑË—oQ°û*ÿTË¡ôˆÃEàÊtuì8IµlYŽeH0eŒMë†Ùe…÷¶ÇæÅ¤!Þ(Ä é†zmCìÜaœ‡›$qY”Aj—(™-,p~ôÑG äd.AÊ”ÔÓpœÆAPµjÕ,„dV*¼¢™Íããšv‰êWœÓ !$ I.@Äé!ÎNaÆ ñqØ3$1ì53Žú:,°€ bA~±ß~ýú‘ößv%Ø?~úC©’…$ƒøÂ…üa¡Â}ˆƒù47óA A°@B w$ˆ\¨ˆ;Ãs€Æ\´ÀÏÒÜD`ï98„2aÙòŠýa¯p—ƒpƒh£i|õ¶ŸC}>à¯îæ›JA@ÜA€bÄXjV·‘'OOƒôЬÎëƒ'®ð}DÜX*’!äNåËë׿kä2ÕݽzíÑcÉ>|Mò¼Ç7Sö,ãôá‡Sý1¼ßÇtWòÓQ`½An¶(·’¾Ëfe'Ê5Š»bY j7(“Ò"ùaîé Šë20 ÑÄÐMKMàYÓ rÃêK~y¥X+R!Ñ5ŠU3°'o\ƒ7 ŒeÛ ›²uëV–ë0_ÿgàL.dói»ï‰ di³\s4¦î@–0ƒ\Ïéá˜ÇÜ\yÎ0®Ø«¯ŸŸ¿$?" ùœ*Ê„‚€ W€k-wîtV[Fœ$<¹GaeC­Qd–~õÕ|U°`rsE¸CÖ­;ĉ aaö³Ë¬&Šæ‰Ò1¢ÏM÷€^>tè"YÆpŇáÃ[tîP˜ ®G¥Ã:lذ(K†ûŽ´Ü¢œÇ XèÏåJÃ8ˆ½rÔl“õóæ<’.\i°6yÛà–Ľæ(³–)s2€½{õ9¸WÍÍјº,¥¤¡¦¾:zÎ0®®bëpâ^Ò@°e*A ."€ÌQT6dÇNœøžCŒì‡NBà ¨Þ6¥›“ ôxˆ½rÔÛí7i1‹@\{’ˆ³Ÿ7™]ˆõ P¼=¶ˆÌQûIwî„SöÝEÎ]¸p7ç !Ô÷ųq2B… y½ÆîÛo—‘xfNÖ~óz0 AáÖ­ÇRÉpÊZ|Ÿe#²!}4¼ â £?¾n¨o Í;³t†¯çñ¼G@H›÷Ê‚€ àgrEŠØ'mÐg£€cv._¾—¬l‘®KijA›-yòDNfþÒæÍÇHßë_r­½}çõ k’ô˜Ì„„-S¦TšY¦ PV R¾n÷…ȯ#w°¯ç“ñ§_aرã)×g#uöýQ\£)©ð|‰Ùuw^ËöÊ+EhïÆñhr;7ÁÜ¿ÿ’6©O⦅íôS±ˆ£<ê}¢ýèÑ£Y°WWD0ïR'ƒf%Ü¢b  £ZÁW_}Å(PûGuˆÎ¢’iQUçP{tìØ±, ‹š­ŽZÁ‚Y4‚¶(Ö°aC¶Ò‰Îbþ=/¤Í¿øÊè‚@œF€rIï)-I{XÿWKt×ìµÿ½¨nß~@±5¨ÔÍÊê+féö×_‡H¯)¯Wò‹íR ={‡• ¬}4•‹¿·kWŲWy7@¥*XÇP!õS—/_Îe›`5K™2ÂÊlF²÷ßG’JJVõ‡êž‚¸AÓLËŸ $H ´ìÐæÍ›ÇªÿZO­M›6T$­åºyýã‘ø€ZK—.å²U5âõ‚ ꊺ¿¼ú‘üð/¾2º §€¥-W.kQ]ÒT¾|»ØÀ5š,Y"*×s‚c×Ò¤IÊýžùäeO‡ðÙ}¨ѪÕX•:uR*XÞÚ+ë¡Ï%?ü4»Ñ2*´oßžþ8ÙètçÐ …×÷îÝË–/°}ûöYâÛÐïaÅéBQ$!è’‡Bö¸îJƒ5uPá2…‹ë†ÅOZàÒ8¬e&A Î!€D[ÒvüøUuÿþCú‚²oQ€… rÏ>û ÅwE–‚Ô\­ö,w®K% Õðá«ÈBPÊ¢ùæÊ}þ胵tè0™3k§Nmçµ|‰?Ö(c$7€°uîÜ™ïGF*,kpmÂò– Aõ믿*ľ™-p–Éè ,w£FRˆ{÷Ýw9ãÔ|]Þ!mÅ[fâ p¢ÙZƸ@D.ìN è³)õ e¸£àüš–ëp%îÜyš¾4*[ιó.ÙaÃ~§Ì·’ä r­ð¶;ã»Ó.Ú_~Y«~úé-¯³`Ý™Wú†Hèׯg{‚x™Û”)SøçáREßdÉ’Yº iÖ·#Gް uUuƒ{tݺuêøñãl‰ƒ\H’$IørÑ¢E­Üªúž’%Kr‚9NN_“×À# ¤-ð˜ËŒ‚@œ@nP„‡KÓÜ`i+PÀ~æ(H4ÙnݺO†B–ÛP½àñã'”9šÏrÎ7 ì$ëÅU­mçÎm>ï‹LÑ=f©Žk0ôù2`¬B ^¼x$™c¿6/Î.l_EÔñc¯ÁR—¬«-Q¢D®v•~@@bÚ²L!ÄE`iËž=-ë´™÷ÌÑB…dzŋ÷ŒªV-?YZnƒk1péÒ%·œsõ¶²!©ÁÖêçê¾è‡*ï¾;žÄ‚óx•답È‚€ šˆ¥-4Ÿ›¬Zzì%! qeö,m=Q»v!‹Úc ¨~Ýj6!IÏJW-^¼›2Ý®PŒÐ»Vcò{{ï½ ¤q•€âƒÞá$‹@Î/s ‚@ì@@,m±ã9Ê. C ¶–-çÂòe¯|Õ¾}çTxø#®]ûË~®_¿K1nçU¥Jž¹F‡ý]Õ¯_œ‚­#c{,ƒèÍçŸÏã=LœØ–ÄO#bˆ4µL#±!m±èaÊV`BÀžF*!$MšÈn2¤>&ŒÇ¢)R$¶låï¿°eª|ù¼–s®¾Y²d7kÂuéò’«·ø¼ê‰N›¶‰2üZ’jÔŒYŸO( ‚@¬E@Ü£±öÑÊÆ˜CàæÍûTÛð.YÚ¬ ÅÿûïrÚ¯D°yóqr>µ*[…À5Š¡Ðns·ÁÊöúëÅbŒ,íÞ}†4³æ©®]_Šó5EçÌ™ãîã“þ‚@È"í<4!mþ@UÆâ8ZîÒæ7§£J›6å®uêXgÄ´Õ«WÜ<ŒKïW­Ú¯@GŽ|Û¥þ¾îôß÷T»v©\W^Õ½{_rãA̶%L˜‰,¯ÅÕ3Ïħ2LKl/˱ Ø ¤Í9ï@B‚ñTÖ¬¶rÔ+¯2Á¹s7H7êž*Z4›ÒµFÑéܹÿHªãŠGñl?ý´Z!6.¦jŒ~ðÁTŽßƒdâjƒÚ>âuƒ5nëqãÖQ‰¥“$[F¥›ª‘àëbÝE^AÀBÚ#§AÀs ‰[”¢Òíòå[ì2-T(ªFÛÆÇ¸[“&¥uw~EÕˆð–*•Ëê|t[¶§âÛ'ÔÂ…JðÑõ÷õu¸e‹7þG*mÚHáS_ÏJã”Ošô7ÿ\¹r›K”Ÿ²es‡Ò6d­‚@Œ" ¤-Fá—É؉@Dæ¨u<*! Ù«9ºtén¾†ø3sƒk´té\$•áÞU°² àÞ@7º2d%)Ú7Š>*@€°%L_µlYNµjU‰Êw¥ô£‘ùGÀ½ÿ C~»²A@pi–,™Ój*TBȘ1••ûSwرã ç¦àjú^AÚÜ-]…8¶Õ«¨)S_ýàüùÿÔ‡NUo¼QBµn]ɼ•8÷.ïŸþSÍœ¹E¥L™„J+Õ!²V‘bØ"E“ã(²aAÀK„´y  Ü.Q€€n£F‘E®ÑÃQ%„‡««Wos–§y¤£G/«K—n’¨®{úl Hv¨Y3² –y\½òä©êÐa“ÏÁƒ£ÝûkÞ`÷Ì™ëê‡Vª¹sÿQ™2¥R_}UŸŠ–—uÛZlû’õÁ€€¶`x ²A !pûöuíÚ•3§uæ(4Ú*WÎe§ørGkÚ´ŒÕ5”®‚…É ®¶³goPÛN*ßÜÕ[|ÖoРå, »|y7«\>› ÈÂ36lY87RJr7åúªñâ‰h?:Y^! ¤-„–,U„€f&mOŸ,r‹,AÛ¶`ÁNX°µŒ! ¡|ùø`ŠªV­Õ­êò:C±#÷k¯ S,fWèºu½…°…⃔5Ç ÄÒ+£lB]í.ÛJk×þK59•*WκŒêQÞ¿ÿâÙ\#m( ظ Ú ÄsÁ%;th³€Íè‰\0|ø*õã¨bŲ©U«>Qyófô2d>A@0! ¤Í†¼ï€• ™ŸfKÛ¿ÿ^äs f¶ü?œÇ³QJMAŸ ¤Z_®´_ý‹ã«E(Pì|Μmjòävê¹ç’»²Ä냌ޮ]g2Ùþßÿê‘…­rœ.zrPkÒk­lL<¨9ú ™Ï²gÎ29’ ße–AŒJM=~üDÙÆ³¡Ðº«Y£ÈJEÿ™3;ZæóçX{öœ­;W«V`+.øs_zìÇŸ’(î Öœ«X1Ó÷¬ž›î'¯‚€ 3i‹ÜeVA V"Ò–1cJ+­.”¯*PÀ: tÛ¶,õ‘0a<õ a,àJݹó4ÇNYN:y+Ü®Uª¸æJu2”K—>þx:[×Pš)¶µC‡.²ÞÜñãWUÿþˆ˜Vˆm[”ý!€¶„²A xi3WBÀÊÈ^ @«EÂʆUÐmK žåô¿`}«X1¯åœ£7Ÿ@5…o¿m⨋OÏCò‹lEJ}:I w6* ´L)’UýñG(Ï0–%S ‚€„´ÙEN ‚€gØ#m‡_$ñÜ¢V"ž-aÂøQ\£¨‚?f—bÅ&LØÀįaÃ’VcûãÄsÀ€%ª{÷—c•¼Ç… 7Ä‘ü½}ðA ·Ê†ùkS# ¤Í16rEÜDàäÉkT/4ÒJYþùŒ–‘Îû­o¨P¢„µ>HêF×¥ŠÂä­[WŠ"Øݽî^GœWçÎÓ(ƒ2;œšîÞ´ý—/ßKeÂf©té’«¥K»’›ÚÚ´ —… qÑi‹Ã_¶.ø›³g¯[¹Ö'…–?dL\£‰'POž<%K[vË϶wïYU¡B$é³\´y3wî?êÎDÚü/¦;lØï,)2lXóXa…áíÝû7ŠÏÐ+º a³ù|É¡ ¬ˆ¥-XŸŒ¬K1@Ø@ÄræŒÌ=tèפÌ!¥e7pBäòåÛVY¦ˆgÃý®XÚÆ_¯ÞxãE—ܨ–‰=x9bĪOŸúVdÔƒ¡‚⸪۷ŸDØß¢T­I4׺ækP,R!K›Chä‚ ¸ƒ4ÚÐ̺‡_²*iÁV¸@ÏfÏ5ŠòWÑiŸÜAF¤M›Jî,Ïí¾X+²E˔ɥÞ}·²Û÷Û Ð–{õÕ¡L¢!”+„-Øž¬Gˆ±´E‘ô8}úÕ¥LÂ?º;Ü£æ:¤ \÷î…³•­Nº¿nÚtÌ%×(¬l%Kæô{BôÊPÉaÒ¤÷¬Öjp‡~ñÅ<5cÆÕ¡CuõÙg¯)ÄJÐC@þå†Þ3“ A‰’ÌV6,î8s<JWåÊ•^]¸ðŸ•¥MdzEç…¸-èýmeCE€ŸþS}ùe½—Ey¯×_¦–-ÛÃe¾PÜ^[Pþó‘E .! –6—`’N‚€ §N]%ÒÏf/s¤ Úl1»GQ úlæÌS{óM™²‰Ý{uë·wÙ'çÂó[Þ~;tfW¬ØGû˜¦òäÉ ~ÿ½‡ËeÁ|¢ƒìÞ½[/î¿çéÆR¤« à6ǧ?Ds¹}Ÿ§7ió9¹O¬€{´Zµ–s¶™£~GÙ)¸KQ'4eÊÄ–¾ˆs™ƒü„£†³©S7ª·Þ*o%È먿§çá…Eoúôž£÷A,wðà\ì½eËòTÝ ¡_ñòÕf‡®2g¶®O뫱eAÀ×€¬õîÝÛ×ÃF;ž¶h!’‚€ à HD0×µÍýë¯C*Q¢øÏf¶²al¶è¤>P¨ýÆ{~-¯´oß9®¢–Ú•mUŸ›7ï“@î®Ç:xð›ªE‹rAµ>g‹yù嗉Ц™³uÈ5AÀþùçWºù¼Ä´ùRPˆ{Àzûö+÷¨mæ(\£eÊä&-¶3V•îÝ{è’>Û„ ëÕË/Q™2¥ò ÀéÞ}¦*U*gHºEQµá•W~`áâùó? )Âæ—*ƒ ±!m±ð¡Ê–@#×(š¹î¨9s.»uë«Â…Øܕ()ª»ukD½Qgñl $Û·ŸT­Zù/Æ õ7¹¤¾ÿ¾i áóz¾•+÷©ºu‡3¡]¹²;ňEâëõà2€  BÚ‚æQÈBÐE™£ñãÇSY²DºÍ™£©E9«)S±õ„ªP¡È’I®Ä³Mž¼‘ê‘àvâÄU…X¶®]ë¨Ü¹Óûc ¿ùã«IGn¼jÐàE5{v§huîü¶XüހĴùb™@ˆýÀÒ–Æ"'‚f®9ºví!•1c*’ú¸©ŠÉjéd@ÚœYÙîߨæÎÝÎÍý…$jp"9¢S§êþšÂçã"Ëë^°`‡êÛ·•¥ }`Ÿƒ$ ± ±´Å²*ÛbÈ}˜ËW!ž Mk´mØpDUª”OíÞ}†\wÙ,KD<Ûž=ÎëΛ·C!s´I“Ò–û|ùfêÔM .Úï¿ofE&}9‡¯ÇºzõŽjØð'õÇûÕ´iï aó5ÀNÆ;yò$ž¢ÎŸ?珞w—þûï?žãµ×^S÷ïß2Ø;ï¼Ã×<åší‰)S¦¨?üO?~üX]¿~ÝÒ¥U«Vê·ß~³Ϙ1ƒâNËPw:U¥J5pà@uêÔ)Ëõ7n¨‡Z޽¹wï…BÜvÖ%àׂqMî‚ ¤Í]Ĥ¿ DAÀYæ(,BÛ¶çìP”Ÿ*V,2Þ*RŸ-O”1õ‰)S6’@lq•&MR}Êg¯—.ÝRýú-Vï¿_*,dõÙ¸þng”£ºyóžZº´+}¹JÆ¥?ñ¶ûæÍ›jÅŠTÙãží%Ÿ?xð€çX¶l=ã¥VãîÛ·Oˆa QѵC‡‘5{#w[¼x1¹ÏŸ£?‚ñ1ö IØž={(y¥Ë®|óÍ7ôoîuª»;BU­Z•>k7¹† Ôœ9s¢›’¯¿÷Þ{”Ðó¶K}Õ)×äîÞ…´¹‹˜ô(€´™…u‘„ ­l°b¸¥OŸ‚-fÅŠEZÚ6mŠÐgÃ5{ –¹={ÎÐþåí]öúÜ—_Î'2˜ŒÜŒ/{=V X¿þ°ªWo å.^Ü%äâï|Qxx8‰3ŸTOžŸ2d‹/\¸PuìØQõìÙ“ ö Ò,±Æ‹/*`£ð\¿~½‰Å~'H¡Ù" ¼0–-–cÂ2‡ëÀíÂ… <¶ùyá<,† ™xvøè¦?ÀâØ±cüLôZ­ süñÇ<—'¨_é!HAÀc>|l„…u3–.Ýmƒ\wÆ'ŸÌæã–•* 0&NÜ`äÏÿ©¥ÞP‰%£gψ~Vþÿ [·Fƒì]òúÜš5Ì™»þyÐë±1Õ5²gïn›A$8SdŽ]»vô%iEÈ¥ù6oÞÌý«W¯Î¯¸·råÊFíÚµ-ÇåË—7ˆÌ*T0ªU«f—H‹/^<ãçŸ6¨ƒ‘#G#yòäÆ3Ïû,÷/Uª”‘,Y2¾¦×{äÈ£eË–FÁ‚´iÓ &äùß}÷]Ë|8W±bE#A‚FÒ¤I¹sçZ®cŽN:ñ1¾íÚµ ~ñ“$Ib™±ÜCZvGÖAÞ?pÀù—^zÉ 2Æ×°<3aêÔ©nݺYÆÀøx^høœsŒ93eÊdà3¦?o¼ñï}Ò§Oo™fœÍk"²gÔ©SÇÐÏcýúë¯<Ž+¿¶oßÎk0ãåÊ}^öÙ(–6zªÒAÀsPTÙš…uÍ™£ú¨\ùy…zžE‹FZÙÏKš#Q]Ô#]¸p§_¬l(¢þé§sI&£¸ª^=²Šƒç(ø÷Îï¾[¦ˆÀ’pnMõÓOo©„ ãùw¾ÈÕ¹sçÔСCÙ+ ,6Ó§OgËÙ¨zÆ[$5³Îbaš?¾"Ò¡š6mªà$²À–2Ü—1cFVÍ–¯Ö­[S™µlɃ{ñÒ¥ˆM{° ®ì§Ÿ~b+Ùøñã~-Zdé k ¬>°A@¸}ûöKUçΑMîK’­[xÕ 1mhpk¢¡ä¬y7æcw~ɵįÁ¢—3gN«Û±œÏ›7/i–¢Ï[7µdÉú÷Y¬äé"6jòäɼαcÇ’DÎ…ýÃ}Ú¿5`À¶°)VÍš5c+¬˜ØÛ¶mU»víÔÕ«Wùì¥_¿~–5'" T5å[ÒFŽ©6lØÀóÉ´XñlˆÈò°Ü!¯yóælÔƒÁªˆy0>óæÍ£ZÂÖkB,ßÊ•+*À ×½{wõõ×_[£Ç ¦W!mÁô4d-‚@"×(švêÌQ¸G¡Ð¹6Û$„èâÙæÏßAdР€ûR>GeøðUœÝЬË`nüíÒe¯:´9}Y¾ÌË èÚÈ‚D3Y”&6 aaa–c€7ß|“’Kâñ—6‡x,'ÄuåÉ“‡´ÿ¶+²©+W®0Ñø€þÉÎýÚ´iãpo… fÒ2ˆ~¹sçf² oèСýÛÈ¡Èʦ°f¸qÑúôé£È*ÄïA–°3™J‘"Å/¾j!,p-ZT(àû?4@AÂà&%«£š8q"¹âëñ\f'/–~?üÁ†¸»ýû÷³{Ä’ûI@IDATDʶ4Á‹½=z”ݦdYcÒ¤ûb<²Ê)²¢1æd‰cˆ8ºÒ¥K³Kn]@$‚Àõ ˆ~xÖ ×º ’µŽ“)Š+Æsêkúω,oê“O>aÒÿå—_r?œ æ&¤-˜ŸŽ¬M9š6m2Ö`ÃruæèóÏg¤ø”£¼ˆéB¸Ö6ž 22¤´»ËéÓ7Óp1«¥v;ºyòèÑËjÔ¨5ªW¯Wɺbn7‡ôKwH´j5–¬»ÉºñY‡ÊøežP”Üb¼tXÐòå‹ÐðÓ_ºä†br†/xXU`yA\ÈÞÃR‡‚õ qä^SgΜáë º™­_úœ~Å—¿¹Á*¥cÇpÞ\L×ÐÌ×ù„“_° "éÖ¬Ù³g³•ÐIw¾än’bÄ—F.`ú#¡ ÉÈ,àØµI“&1‘6lX”)a¡ªQ£ý›.Æ–7*GMǰ!11tøáÃ|º™ëÎ’ËÒòœ]®pq¢õêÕË⺅{ëAü—¹aMØî¥Ž93_×FX a‰BÖ§&pæ~xâ„öï¿ÿZÅnÁ²·1Èâñq —1ŽázD<úÀbp‹BÏ çàVÕñi:çA†€!äC`̓ ã Œ–/_Îãºú VÍ^xAýøãü\°hÍGsF­£ñÌkÑDl ˆ4â#ȱ+ã8?ç…´e™CˆÅ Böìi-;„{4_¾LäºE®•Ë ¥§@ÐÌ®QijA0·B…¨¤,<ü1W@hÞ¼¬eL_¼¹uëUX¤Z·®h•ዱ}5/$=Pî „Í\ËÕWsÄ•q´µ$ _ΰ@Qf§eû½{÷¶XÅ(k’%-ˆŽ82è Á]HÙQˆ’­EDâ£>b3‘âÀàbC¼–nˆŸ)„U.Ι3g²»×aý[½z5wyÁ«íp‘¢éW>øÿ_p#ÈÉpÅÂíˆ8;óú}Ù²eÙ’Ò2¦Ïc(¬±cp9XA8aáÓ¸!Æ Ä D d}1HÈN¬@,¬Ž°àÁ…ŠõÁ’‡qAâpðF3¯CÛžÃyÄ'N›6­{ ׈ù¦úy£Ÿ¹a=–yM°XÂ:W©R% ©Q×–VóAõÞËôS¹]â8ñ \ … aŒ»Î òJ$)ÐÝ ,P’=èo ´ÜÒgàÀË Ó›yóþáûˆô™ÎzÿöóÏçEŠüÏ äïóÃ;vœ2 úÜhÐàG’xxà‡‚sH-¡)µ®]»Ò³/ex² ±lY¢\£LJ–™ Àzƒ2B-’æŽä€¼Æ!Ý0’b 7_f ²Â±´…–±êàÃrS²THtCRì—¾Ž‘F–!7¡Ý.¤ÓÆr*¸ˆ}CŠCï›ÜÃY×,÷QõøéF¤•e9ìá­û¸òªñ&6^ƒ+÷è>¶kÂsÙºu« w‘ã‘üÚ£AE¡e1‚@h!€ìÐ[·î“tB„¥Íœ9ºxñ.¶®!– ÙÍå«6o>NÖˆ¨V6ì®ÑZµ ±¯¯Ð@ŒÜ¤ISìKSŸ'6øbˆýkÓfo[tx;ßvMþÈÄu6¿·×Ä=ê-‚r¿ ‡€kMÇ´™3G7o>F_ˆyÙ5JÁZÜ£p"Æ­lÙÜQ;{ögœúÚ5JV6ž?30—/ßKZtcHÆ i|½+„-ʧÂóp5BïëÓO?å zOG‚Ë z`¶„n­àm¯#ÕU2e{¯ öÒf9'.!€ yÄ’dÍñõ¡CH))Ç@âÖ4ijeΜšbE"ä5 ² âV¶lTKž{.9I ti~W:Aï 1t4r¥{@û+˜ÄV'ª–-ËS†kïQuÂYƒTæAÕÖY¹f€6k<äHÜ@À,¬«3G3eJÅäM'!`8íÝ¿ÿ¹€D±´AlÙ¦o¾YÚÙwíÓgzþùLäo?;ÐùÝþ¹:lØïä ]BB¤ I½†&‘QýŽâÏ@Âìea"‹çÍU ‘YˆÐ†ÄÛææECð.Wd½¢?æCÍNˆ÷ê†X:ôÉ«R¥J`¼#FÐBEéß[YÔ…ð®½÷è–-[X» äÕ`5ƒŽª`nŒ‡"ñ x f \¨˜" r :ILG⾘›dRX¼¢¸À…ÚQCTškis 'é%vˆ mrÒE»qã.Ǥ•)“‹ãÙà>M“&)_ƒ 4MšdlãÿÿkéÒ=,¶Û AIói߯[w˜¤¨>}êM僡CWƒ¯ ¢àMH¬´²Ç{“c»wïrAr{+AÁt¸Íb¯°ªA Ö,•‡+ÑY›?>K„€¡á>[×B¼8Á[Xà`mƒx0ˆ\• F D(ïA\EXÅpÞ^ƒh/²cae‰Á„h- ½CW×OÅÚÓ¦MËë€p.bøˇJ°2Bd®Z¸‚5Tu€@.Jc"î âù…8±3Âçh̸t^H[\zÚ²WAÀ‡ ââÅtL\£Pò?|ø"•š #•ñDQâÙ 2gÛà…6›&w¶×Ý9† V¶:u s5wîõW_¶ï¿ lo½©–ï¯ùd\ÿ"7 ¬_öˆ’ ÐG7MzpŒ˜5”rrÖNŸ>ÍnT3ñ93' ˜cß@u¬X‹-¸¬bìPõ@»>ÍiÝPe s€d™ܽ¸†5¢8ê†5¢™×©¯Ù¾B·îý÷ß§ø×M/‡2_ …(à.Í1BÚc#WAÀ (¦cÚ@ÚòæÍÈòš˜Ù+_e«ÏváÂMŽkÒÄ7®Qde;v™boê9Y}à.!„mР7).H[à÷ßLˆ#ƒ¥É^v$ Ì‹/ÝÌEã7lØmÁx#sòjœš ÍëÒLzýJÕTƒ ÔÀ¹ÌÓ€8†N_·÷ ‹™n(ƒ…¢‰¬HBÐ Fd…bX#šù:Öˆ†Ø·èäN ,‡{ÜÚ¢Ò# ¤Í16rEœ ×h„ñÉ=¡ôÒ–+W:r«œã˜µ‹oRæÜM²DdŽ"1àêÕÛQ’ Um7_h³QÉ,"GË©¾h%•;wz'«Ì¥!CV*ü ü&¹¦"­™]fñÈÍ–-rñ€E ±_ˆUƒ‹±cÐpÓ îQ¸| M¸ÑÌÌu_¼‚Ä – Ù©¸ñfˆ#kÖ¬™¹›Ý÷uêÔa·&bÝP“t„ L²PîN{í‡~` Hj§".K¬®Ú¹sçr jŽ¢5iÒÄâšíß¿?L¬sôèÑ\¿Ôle´d´}ûöìօ޲f‘(=›+*ØÞ+Ç„€;µ¶¤¯ ¡CWrMQ}\ªÔ×F·n3Ì™»DÖ Rú7²déj©£9mÚ&#OžžT+кÆ_õêß½zÍÑÃxõ:`À£`ÁÏ Š«ój_Ü<|ø*Þ?ö-Í1ôeÍ5ýY{Ôñìž_AMÊ‚äµã«?T<Ý Âè–A,XÀçÉýȯ¤éfÔ­[× ™ îC…Î œ#$×äÄDùÚgŸ}f5Í Q`¾—›z¨hÙ³g7ˆhñ{ü¢„žÛrÂô†$; 6ÈmJÿ6 š®D¼¥X4£ZµjHž‡2Q <4’ÿ0(֌ϓ«Ö  ž+âNà j¤K—Îrbï Š…ãË”YËûÒ}õk—.]èÿŠ‘IªKóÿNõºÜ}©Ú£BÚÜ}RÒ_®]gÍ›æ÷( ‚öþû“Œòåûñ¹o¿]jT©2ЂVçÎÓŒ&MFZŽñ†¬rLò¶nZ°Ûª£ dù3ræìȧ ½ýÛeôè5¼¯É“ÿöïD±`ôP%mz²0äò4(øÞA27MÚPàœtÐè™KæËüÞ¶€¹¹ņóe÷>s?WߣX¼£†bîØƒmát쉒 „·m ’d¡3@ºmïµí‹cM<í] ¥s1EÚ¤`<ýi#MÜGmyòdà‘9Jÿá²&ª  !žÍ\…™£¶qk¿ý¶\7éÈ¥59qãWÿþ‹I¯*-»FݸÍç]'LØ@R Uß¾ ‚JnÄç•Ô“å(Z4rçŽøwaÛѶ€¹ù:ê–ú²v©=‰=йãǶ!vΙ»ñ{¶É ¶c˜Ñ_šçHL›çØÉ‚@œFÀ\ áèÑKßvðàyKvèž=g,ñlˆoÉ3'!€ä-X°ƒê5FfŸy èöí'ÕÂ…;9ù ~ü˜ûomÚ´Íÿ/œ[W½÷^O·#÷Å@¸™é(i –lS¶@bî·nR¦ß"@"fÎEBÂýû¸Þ(ª!hQ]XÙâS-Ò’%sX²aõF½mø¨X1)­Ç\æÙܹÛ)}6•0z™ÊÕðvKr,@Úc´ð¦X},€A¶àC„´ùLJˆ+œ?ÿéB=±"mÉ’%&WNr’ýÈ@™`g˜¤.Æ€´)’•2ÃZ BÖ(2K½Íòœ?Ï×§Ï–±ý†’.T—.3(û­¦êÚõ¥@O/ó ‚@A@H[yвMAÀ— ž(ZÖ¬iør>¶Ä¦Á5úüóI¯*_i3»F>|Bu÷’ž”wV¶ððǤGµ„ŠÌ—&}§H‰ž4@¿P}¡S§É¬Áö駯hV™Fâ"BÚââS—= ^"6²ôéSÅí)•³¹J*ï·) 9Âý¹wïY¶¬aš›7ïSY› V¤ %¦îÜ §;ŽZÉ„ ë٠۫׫^ãéÍÿüsŠÊ '=«âD{:ŒÜ'‚€KHö¨K0I'A@0#Ò¦­l l¤½Fäìž*U*'wÛ·ï—‘ÂÁ¶m'øœÎ*Å’ʕ˭2fŒš­Æ]øuûöRP_­Úµ«J¥<Ç…©ìv9pàmíÚCê“Of«?®Í%ª1g¨Íͽ™3a…\ϱjp…Ã’úúëÅT‚"…jÏSÖüi þg$+‚ 3gnPüÚs¼&È{ +é}çŠ|ñlÈ(…JYmØp˜*xæ]¹rŸÚ±ãIDtã±ýý Ãví&p VL•Èò÷½ÿܹjìØuì6~üø‰jܸ´7î]•?¿Äûyƒ«Ü+D‡€¶è’ë‚€ `…Ü£•*EX»P uêdd~ýú]…/s³¥íÍ7Kó½ÔE‧®Ñï¿_¡ÇV´hD•«ùø{xûí1ìÖ2¤™GíáªÅVH¸C¥ ‚€ÿÒæŒeA Ö ¡Ñvƒã” œ{óæU¦LNÞŸNB±BVééÓ׈øäâkpV¯^Ð#×(dBPçóÇ[úGÄà½õÖ*”œ,Im$pþÿß´é¹=WQè!®tZ«¨V å»üþ‘” +„´YÁ!‚€ à ‹o²X.„u¡·¥”¡J—ŽLBÈ’%5ën-[¶‡KYÁ= "„ uOu‡ YÁ1R DÄÆ9[Ÿ7מ|¬ºu{‰¥W%’ÿêõ dAÀŸÈ¿d¢+c ±h´!CnÒG³5 Ûi+\8¢ûöí'9†í÷ß÷QUÔnÅL­Zµ_ýûï²½åsÔ®]»CDm¬‚p¿~ }>~0 ˆŒÐ>}R<à%ÕªUE"lu˜LÃÚd ‚€ à„´ùGEˆõh¶;Oñ^Ë–(ÒV¥J~uãÆ=N @´¿j×vÏʆX3Üãë£Èbm×n¢J ¹ [ź"çˆ#ìÛwgê¾ôRaÖZË“'xcõæÌ™ëÿ­Èã.ñãǧ˜Ü~@H›ß •Ø…H´×·††¸µ‡Ÿ°+ôƒj²æ·…¥åš•½z½ŠC—ÚÆGùþ%Kº¸ÔßN_}µ€ÖsV-Yòq¬²<Áâ âI“þVÏ?Ÿ‘?:©J•ò¹MÀû"öñÍ7ß ø¼2¡ (’%K¦îܹã·é„´ù ZXˆ]À=ЬPè°¡åÊ•žÛõøñr†©9s¶±®Ú֭ǹP<êºÚ`eC]ÇÔÕû¢ë‡5¿žKaùÚ‚ÝÜþºŽ Û©S7qBE¼xϪo¿m¬š7/Ë¥Åü5§¯Çýí·ßT£F|=¬Œ'Ä('NT~ø¡_× :m~…WbmiXß,eÊ$”%š€3G!P wÈ\£+WîSÕªP Æsió({µnÝ!J¨åRW;ÁºÖ«×úO´&wõ¾`îŒ_~ùõÅóÈbU†¬žŸ«-Ê…a f|em‚@°# ¤-ØŸ¬OPAàêÕ;*}ú”»¦µ×öí;Ë1hOž ä«X±ì¤¶Ä­x6dŒâ¾*U|'Á­¸¶mÇ«råò¨O?}-ôn (¹…Ì×úõG¨´i“©Õ«{ª/¿¬§’'OäÝÀr· „â ©Ç%‹bóçÿã‚ð oh fá×ýûÏqæ(’ ² ×âÜjÔˆ¨”ÀœüB}Qh§ÛÆI/÷.!ñ }û‰œp0räÛ!m…züø)%¬%Ááß™¬÷®Û&ÜCOz ‚@0# ¤-˜ŸŽ¬Mφvýúm"AŠ,cõ*¡}Ö¨Q)v>÷\rµoß9¾–.]r—Vþã«9ÎÝRWÎG&%jl.^Ü%¤6m:¦z÷žÃzw|PC!ÙCôÖœ=y¹&Ä~Ä=ûŸ±ìPðXÚPé•ȘÆ1l§N]£,©œEŠz£%KæTþy@ÕªUÈ¥ùº`ÁŸÆ²Í›÷3æ/ʪlFÖÀÌ.­#Ø:AS®sçéD†R9r¤£:¯½XsM[°=)Y x„´s™Q9`iË’%5Å­æµ£bâÙž}öYŽiÛ±ãˀܹJÚFŽü“xSqQ_aÞO>™­:t¨ÎU|1f Ç€kyÊ”$Û1@mÚtTÁ:yò{\i"ë¹"8ybѯ¨óçÏGžôû/¾ø‚ç9q""3[O±víZ>ÿäÉ}ÊéëŒ3(û ‰`§£Ñ*jàÀêÔ©]Eg7Ž9’,¹8ë°k·oßV]»vå}¤Nšþ,Iáí© Ë%—×pãÆ ÓxÈýÇGuvùÞ`ï(¤-ØŸ¬O@ÆPsuAãÇÇD®PdÞºu_Ô!¦-C†”.UA@RÃÌ™[T§N5|"v{çN8 èÂmûùç¯bî-1¯¿>œÖ>OµlYž²i{Kìš{ú¥÷Í›7ÕŠ+Ô½{÷ü2¾tëÖ­\£°¸¡Þ¨« &l`-·fÍÊúdg]»Î`ò8wî>!>Y” ƒ€è¢€ý¸qëU©R9ÕªU=Tþü™\¸3ntÁî… è„l ¢¥EŠQé=pà}Ãé„¢Tí"ºví“+ôÕíúõëü…Ƨ0ÖþýûÉ¥ÿ“Ýã$L˜,Ç,lY²D$Ûè>°ÜÀ‚“1cF*·ö/•sût_ä{ÐçòåË*UªT¼F(¬ë¹çžÓ·óZñïkEÃÚÍÇ)R¤`‚‚âL€øìÙ³$½‡×_¼xqK¢Í!C¨îoqµpáBËœ > A7nd‹.ÀòìJ—.Í9Kgzóøñcú÷üJš4)c„õé†k¸¯ÅŠ£g’>À–@ì÷æÈ‘ƒþxËÀÏD8æÊQ=E…=Àª+æÒ­OŸ><ÇæÍ›[}¾mÛ¶ªD‰ª{÷î$)´’þ­ßâ¤'Ü Â›>}z˜ŽÈ>Çç$Ÿ—V­Z©¦M›ê¡ø³ƒg5೤?/ú³–={v^îÇ>“'w->×2¿ßÐæ¤ ‚€ à*U:L62gîb´j5†û¾øbãçŸWøoT­ú­ÖÍXºt·Óqp‘ˆŠQ¸ðÆ÷߯ˆ¶¯+(»ÒÈšµ›AU\é4}V¯>`”.Ý×(Xð3ƒŠ¼ͺü¹úr‡ÉÈ q]—¦¡/oî_½zu~ŽDBŒÚµk[ŽË—/o¡2† fÉ0èËÖ2vÍš5jÕª˜—,6&ƒ¾è *5düúë¯ÜH‡Aä†ÇÃýåÊ•ã÷Ë–-3víÚÅï9b,X°€ß“ÛÑ rÇï ,hœ9s†ÇÁ¹Š+Df,óÌ;ײ–4iÒdI³{ŒýQ3^{í5#S¦LBî7iÒ$žçÑ£G|üõ×_óÓ¦Mk<óÌ3<‘U¾F–5ƒH£qüøqËDFuëÖD(ù¹aù¾D‰ñ8˜ØtëÖþ e¥Ãa|8¿úê«–q:DŸÓ‚¼`‡5âÙ á^">FΜ9ù:0Ä>‰¸ñ1Æ4h÷%eû–ϧL™’Ÿ¹pùž!ÖE®P>¶ýõùçŸó}x^-[¶äõý,Þ}÷]¾EÏ‹u|÷Ýw¼¾R¥Jñ5܋Ϯáyà˜ éÏÚo¼ÁÏë&2h>|˜¯»òk„ UDp¥«§}6FÒhZ¡4A@ì!pîÜ#òˆ¬ ñ)Û3#e‘Þ% Èœ„°cÇI²>¤$«Á3ôW}ôZk¨Rp÷n8p¯ho*·Î¡@}¿~‹ID÷UU¾|·î©ÎH4èÔiŠzë­_Ùº¶nݧªY³21µœ˜—¾àÉޤO†ªõë׳• –’éÓ§Süß&¶Î4kÖŒ­NóæÍã=]¹r…’8ÖÎo)T`€…† [ä`±!ĸœþ“½On§\¾ ñlhÈÐDåððGäêÈ¡R¤Hív~ýõ/Õ¸q)r§xçvq|ÿýIªzõ‚\õ Ú‰ƒ ÃÌ™[‰ØTÛ·Ÿ RTíéËímrQy‡ClËïK + »ÙÈÅsµk׎b,Ô>Y‚Û¤ mþüùŸ>kˆY¦(Qå&/_~ù%qãYÃ8nЬrä²O¦>ûì3¾ßÑ/Ü rÔ¦M&†ºo‡Ø=·Ö —­ŽÃ‚ë¬8º«²=Ƹæ@"ùåµeËK_¼Á~à~}çwø<æÇx«W¯æcìDnR²š)”TªW¯»{‘H·)Y¦è†Nì–ééÕn`̸iß~ûmÄ®bc$d ¶d饗^b"Yà¸\¢ ‡ˆ¡#‹“Fm¬ Ï zûöíì¢\ºt)»ª‘x"ↆä{ X¢‘uŒ_ .ÌÄÇxxÆ ZÎbý´»÷!î‰ÃÈ÷(^05!mÁô4d-‚@" 5Ú ÑÒ†ÌQˆêfÊ”ŠâFnÑ_ºɺp…ÉStËÿý÷ýœÌо}µèº:½N¾Õ±ãdŠЧ†oá´o0\âx®÷ߟãÇô½ˆÕBÌš&-8¤X…gKHg—.]HJgÇt‘{•I¹Ž9&Pã¦ÇqÓ±`š¼áZâÄ|!VMgŸ"9 ~ýúüì@ a•BÃ:tÃ3. hxFúùÀJV£F &C°‚ê–'O„¥ÄÓ^[µjŸYE³µˆogX#nÏqˆæ†Ï0Ô k× äSÒLOCÖ"!ÈEÓ¯Zîã…Â\£É’%"‹Â…z£ÑµÑ£×¨š5 ± nt}]¶}5Ëlذ-kºùÜ™h°B¹Óàõ#adK7 ¬_ œ×ÿ8Ká¨Q£twN€Uä °DÂ2ò‚W$¤4`ùBÓ˜L¿4™ÃZàÅæEfgþüù¹§£{MÃð[¸rA„@’°¿=zXº à®QŠ5´Èuè‹p†=j2hÆ@$=8ß!;$qèë01ßçêgMèW!mF\æB XÚ@Œ?~B_ˆ 9~-2sôÃÕY´hV§;Û³çŒÚ¼ùé¨UsÚ/º‹ýuˆ¬k«ÈÔ¾ˆÏÝXþ¼~ôèerO ˜%ì¾]¾¼Y"3ý9w\–&¸ á„‹ .=4¸IA¤@^`q‚En<¸ú(€œû ÎéÿûŸSø06bÖ`ÉCÜmºÁš—"ÈÕðáÃÙ݉,R´^½z)s|”í±¯°¨ÁU Ë npÃEˆõa~¸O‹…X>d¤"†Ä q]ˆ‹ƒÇpMR"é!6àû@œ@âú».WJ0ÐSØ}éC¶í?þH:»9s™X?ðs§0‚$c½°¨Á‰F‰üŠø6XöªU«ÆS3cÈ~€`AwN7G¸w ö„ì^í.Çø ß8gnxVØ3\⸆I´&Mš˜»õû[sP/Q'1‰,lû¸uë»F!û½¶B…²PœÌNv™ºbe5j “¬ "ÜžìéÊ•Û\8ý7JP|LyO†ðû=p!¹Fýðà ®Ñºrew‘ñð3êfë⦦M›ÆñSøòFC0<ˆY¥J•؇X+ÄŽÁ6xð`&ˆ‘B£ P~Å/{$Ä8Qæ!“>¾}ûZúCö¢P¡BìRš9s¦e XÏ@¦6lÈýÍÇöæ©B|H®ƒ¸ ÞÄîI¸í@ØK††ñ0¦np%"y2+ùññò2öÃ?°Kã›14¯–?à‰uƒL¢A&Ò$¸Çö^œ3e~¢6¬eW‹$ qo°xÁ’öûï¿ó>@Ütƒ dKôü8õÕ ¢çL(“˜oA,È5æ0¯ûÆ< ðX>°ì'3§çÄ+î5ca¾cïɬ*M‡|ðÁ’`äË׋Òñ'»wŸaéÊÜäWÈmÌ»Ýáý¸pöìu’èm?gƒ@¾àÍ7G’a9"p1¶–`œòôeç²ä‡'{ /wžƒæ£ÜŽs¤ëÅ2æ‹ølQÖ§AqcôÙºÃ÷CòÃÜ´ää7ЗúÍ—Yz‚,?,×aon«Î^kѠĀ(óë!ÉåkP@¾EŠDŸ×¯øï–Œ…¾û&×¢±cÇCKèkî¼â^²ØäžåÛȵiE-ÊDæ ²²ÙÝ'$? ͡פÇ2éȈØ6—J †5=âÈ ô¹ OÜp³ÙJO€(‘ð®Ãg‹kÎÈ”§ë‘û¢"€ŒW$ÄÅ&¤-.>uÙ³ à"ä: Ìº›”qfpÖ,m³fm¥Àä,LÚp¾reçV¶iÓ6ñl¨©éI»q㳞Bq//¨¶m+{2„_î6ˆÓ$wUdaióÑM(î¼y3Pi$É õ¬2ŒðGš½ F¯§¤®h`+Ûý9{Eå1$IÐÇ\0×ì5ô7g€Úë#ç‡À³›JfPCõEñ…‘|Lu iKG±eÿPB1úK{/k¥)b_ 2sæl#׿Ëvãqœ±|ù^R`ßDYlïr‰,g}ýymÆ#T|{:Y ZÏûìæõç|2vÜD¥”Pn nLÔH5_w„äEtC¼ܨp}BcÎQQyXÆ\)˜®Çµ}Å<(ù…5T©DÑx¸N¥±´g™EINž¼ÊÙ£pÝdÊ”Já8aBü­gë2·CB6{öV&;M›–ukßéÑc—¨zåï…<Ýšüÿ;ƒ öé³@5m:J½øbNõçŸ=…°y¤Üã~ø!ivSÈ …ø/Š¸Û“1yÝPC5Ja©sVT¤Ë•‚éz\{¯°æµmÛ–ë•ÂE‹uÃâ'-pi Ö2“ rœ?òf;ß¾}]¦5j²\³}×h£F%Y|×öš³ãΧ«´i“Q°ÿκùíÚ¡CIMÿ5cƪnЂê¶ š¬U¿mZŽQ Î?dȶ‚¡~è ª5 M88ÔÓD½RÛ¶yóf®ü€‚ê N°v5mÚ” ¦;**1<)˜~ëÖ-®wŠd„*UªP6øžV;¬ÛYuÛu˱÷ˆ{Ô{ eA V"·àõë÷ȲÊÌ$¤/•o“XíÜy†­h+æµ»ïµk©cÇ.«±cÛØ½îè$„j·l9Feªºð|Žúùë<ˆæ7ß,¢;ÙÔäÉí(è:¿¦’q( ¸9bÚðâ6nÜ8þ¯U«eO—²ôG67²?QlV/”r1b[¿4ନ¼³‚é±× 2jÔ(Õ¦M.° "Ù Q¢ø,à‹5H‚\üØk8_¸pa{—¸ª£:¨îLG¶¨´àA@¨sð< Y‰ Tèx¶ÇŸªœ9ÓÑ_õXP‹|å•¢v× c–,©T:ö¿LìÝÝ«Wï°¼‡=åw{÷x{îáÃ'”l°DIQpóþñÇ'Th\›·¸Êý‚€ à_ÄÒæ_|etA d8{6" áÖ­ä"M¢nݺ¯4‘«Z5j½Q!È|´o_Íe÷"Äw'NÜ ~þùm’:H¬P7´C‡I7t•“ 7ŽŒ ÈdA@›TAÀió¨2¤ ¸~ýÉ$ ¹$!œW©R%ámÕ«Õ•9uêF*rýœK•®\¹­zõšCU*,àW¨/÷õ× ¹²ÁìÙ¸ªƒ_'”Á]B%I`Ÿ*œË‘ã¹(s"áÎצMÛÌ:nóçÈ QóÁ‰={ÎR=ÄITÚç‘ÉNT#5F•!|…@“&Muóæ}µiÓ1ª½yDmØpD¡¬È6ªT4iRAU¨O•-›+F*f8\´\ˆ€¶‚-S ¡‚JV¡Ý½N¿Ÿá/IXÞì ˆ„ÂTŒ:ßãè$DPˆºþÒDƒ;úkXçÏ?¿E"£É-GÎwî„s,äß!¢v”*nœçU½ðBUµj~*Éô:?ËäÉEà5—,!ÒA– ÞG{ôè 7Ÿ³g¯«zõŠ[-õÈ‘KT/ô¸š9³£Õy{Ý»Ïä Ô=^±wÙ«søòÇøK—î¡Ú¥¨%ÔëÕÂãØÍ þ[¶œ`KÚßU{öDԱ͟?IÏG®ì:ª|ù<–øÉ8lWˆ!mÑB$¸‡À¡C,›Ž(ge°N›m‘ø)S6r¢B•*QÅv-Ðôƒ%eÉ’.\€Þ|ÍÛ÷°Î´o?‘]´³fu  ù¼Rî÷ˆwܾý„Aƒ5m×®Óü‡@¾|ÉÕ™WuìX_Ó¦µ®é£éeA Ö! ¤-Ö=RÙ à=Ñ…¥*qâT9à ѦK—œÏéÑ3öÛoÛ©nhM}Êî+\­ß|³˜Ü¢5T±bÙìöñô$\³_~9_•,™Sùv´ãüè@IDAT.ZOç‘û\C–Ù;N1AQÛ±ã¤qC4é6m*IËã²–Ÿk³J/A î ¤-î¡êáÃÇ$fú,)Ð'P3FÖ5k+Ç9«hУÇ,®@×¥· n¸–ªQ£þTo¿]È`CŸYî¼][l»ÿðá‹LÐ`!…fÚw £Ò«×«lI{þùL±mÛ²A $ÒI)‹oqi ðð'êúõ»HŽªæ6{ö6Õ¸q)&tæóú=\§ëÖ&·hg"|Þý7ƒ²WË…<Ĉ-y^=¼zÀ±cW,–4Ä¥]½z›•“0IëÒ¥6YÒò)è¦I˜GÀ»ÿMc~ý²A@ð1»wŸ¶ŒxîÜlm+Y2‡å”ê¡ÙÖ¬YYË9ó›Ë—o©¾}’ GUªùyŸ¹«ïØÞ®ÝDqUÈ…(ÙÕ[¥ŸNŸ¾Æ–44XÓ˜,Y"ª4›%8@P¸pVIìp€Ÿœb!m1‰¾Ì-!(†òA>â÷¯¾Z”_ñ ®Q1Û¤ºÃgŸÍ¥š¥ÉÔ'Ÿx'¢;aª,P5jT?þø7=‡¼ºŽb AÐ@¶›†ÊI’$䪭[Wâ‚âų9´šº>“ô# ¤ÍßËø‚@ˆ!pìØeÒcSÇ”\!‹”jÇS†fAÞ*,[¶G}ýõvw…D\Ÿ5«#ƒvûDwúo={ÎQóæýCÄïe–ôˆî¹‰,HЖ´“'¯²‹úÅs²uzi Ý Ä‹¼IÞ ‚@H ¤-$“,RÈ }öÙgÉe–Pݼ²GY¾à,ØÁ ©_¿D”!ãV¶¦M˨ʕÿ½ós¢êÂð¥w¤÷^© ˆ¢""ЀТXE¬ ìXQÁ 6P°€ŠTÁBSŠ4¤J“^òŸ÷¬7̆$›ÝMv“Ý{Ÿg7™™[¿™Ì|sjò˜nÇT±)P¯^£T4vìu¦M›äaFB4ËÖ»±;´OR‹AÈš6­jºv=Qš5«žnÛÂl ²[¼C Np¤-NN„›†C ^ظq§JÚ°:tÄx=QvìØÐ)’ÿ˜éÞãÈ‘#†0i)Ó§/•¬ c X¿þz€q±¾‚£¸}ûõê´DméÒ ªÊnÔ¨²éСHA/û´êª ÞƒÛëp$*Ž´%ê™sóvDâ¯Q>ùdžüÍBÖH=F!l[·þ«^¤6ß芛̜9«Ìùç7>fdâw½óÎlóê«W‰=[Ácާ´cøðïÌSO}©±à†½DÓg¥Ô&»G% ¾8 @Ôˆ›FÁ£Iä}÷u’VÓÙüe— ­3[#Ã'%[#àïÈÆ´j5جZµYíÖBÁ@rïG¹@ Ù?øàG ñ¯¹è¢fj×Fü.rK¶k7DÊš7ß쪛 û÷î= 6kï‰dí7•Ðõî}zÐzÙi'˜üø#IÖ h»ÜüöÛZ‘`úÔsMŽSN©iŽ;.)[EvÂÆ­Õ!͘åH[6¿Üò³77Ü0Æ|úi’Z$HàQÊk^îÜÜÍ-ÉÚ»làðôœ>ýnÍ1êígĈi檫ZuJ ôDÏž£ †ó#G^£DÄÛ6»|Çñâ—_Vù%ióç¯1$^‡,Ÿzj-sÚi´Zà6»`âÖépEÀ‘¶ °¸l‚Þž½{Nójsˆ›)6h—^ÚRŸ¬b¬ué2LU®£FõLvlæÌe’ÞêmS©Rq3zt¯l•Ž B6wîêÿ$i+äû*•VV¯^Z¤!Q+]ºH2Ì܆CÀ!íp¤-Û_€lé¡*W¾C0H»•R·Ã‡}÷ ÍF VÔymÛ>eBéßÿlcÓY9]s’vîÜÄ<óÌ¥YÞ~ ŒçÏÿ˯îDª† ´R¥JÎÁD òëŠCÀ!àƒ€#maÀq‡Ù† 遼Ýé^kîÜ¹Ô á‰'.2ÿ½CãBÞl>ür3mÚRqx˜+¡A:iô}{,+}²fìÐ’lÒV˜Ÿ~úÃìÞ½_TÇÅ”œAÒ¤¦ËJ¸µ81AÀ‘¶˜Àê:u$W\1ÒL™²$*3&(oÁ‚ùEòvØ`«e jTÏçϟǼöÚ5¦uëºöP¦|Û 'Šh<:É6@ÖüÃìܹWÕ›HЬ$­FÒÑÎõãpdOf¹ÙóÄ»U;üœ}vè6$m+Ó¸nS§þîïŸ/8©ó—7onS¯^ææýøã_Ìý÷7“'ߥóM6Ñ7ˆfCpÌšµÒlÛ–D[¶¬iû¬_†Gè'hðí·¿¯‰àóÏ÷0_Ü<ä\½V®Ü¬’4›jË–]¦hÑêñjêׯàmâ¾GˆÀªU«$mÙ]ÖvÕñ…ÀðáÃMÙ²ö‚æÔ£ñuúÝl™ƒ@­Zw›={ö§zpÈ!@n¾¹ä"Å+ôÏ?7S/°OHˆ=vå•§Žêö† ;Ì€ï«DÁLrŒ =×ôéGU¸ëÖm÷HÒ–kîÓ‚órvöêuº:4n\Yíò¢:A×™aÆI€æZþm÷Å!ÏÌ›7Ïœxâ‰>EgÓ–á»ñ‡@Û¶õÂ’66k‡ÖÉóCþ1c®S‰rŸ|òË„ ÒGÉ“'·¦Á"©<ú±,äI½ï¾U²FHÈ¢·lÚ´K}ºØ¥>i¾úê+íûÜsÏÕ7;P¹råÄ{údÉUÜ[l=ù­¥\¾ûî;qTzAœŽN1÷ÜsOÊ BÔ¸îºëÌYgeºwï.^î{4xw‘"I¹y/¾øbóï¿ÿÓ¬^ýuyɼZ1ëÖ­›„$:ÚÏ1 R¹Ã:"Ä÷è‡~˜Ê%¸êñŒÀóÏ?ÏÓ‹hnõêÕs/!•¶J[¶‘øi»$kANÓ²åñ¦L™Ü¦\¹fÙ²’3·„cè¬ã#ÕcéÒ¦Zµ<¦@FrŒ¿Œ-8ìÜyDã!ŒF?÷ìaÛ§{öøä&OvŸ¨l“Ï-ɛԈdðz ø[;»Í›7Kˆ“—“OÀm%$K—.Oãb>÷)S¦H~ÚJ’=¤µŽuP.àY³f™Q£F‰§öH% ќĖ-[DR=Óß%ä±›5k&/5‡ä>°ÌÜrË-fìØ±æË/¿”¥¢þº¡¾ÜtÓM’¤´®Pu"Ù¡¬Q£†V½öÚk•¸}òÉ'ºýí·ßšêÕ«ë<½}ÙØi¼è!o?Þº‰ô=¤zöêJÖAàã?Ö^"¯ˆ›6my q?÷Fþ‘œ˜I7ã’ná ?ó̸_’‚¨rwî<`vìØ—ì³lÙBâ(Û, «W¯v¤Í&Ò÷eÿþý’Ûöo¹N+›5kÖ¨”¥aÆbsyÄ,^¼X¤¾ûM£FTÄqb¿•(QÂ?èÚµku_±bÅtßܹsým :šÚ éͯ¿þ*N8u奤€xW­ZÕß_vîܩҨ‚ JŽÙŸ” Ô©SÇ_gÓ¦M"¥>NçH_Ì«dÉ’þã̳$W˜#ì“7|ùòé>*q¿:t¨¿>ãA^Ð: 5²å¯¿þ2\côH¦vïÞm~ùå  ][^¾*Ø&úÉø‹-:f]¶R§NÄüá»i¾ùæÓ¡CóÜsÏ™Aƒù÷¼6lØ ’®ã?Þ_üÿüóO1Ÿ8IÌ) ê~HÕúõëM•*UükgÜ‹/îo»uëVÉã»[^Èöj}»æùè£úëy¿¼úê«ò"šß»Ëÿ2Ê5ÃgãÆ5Œ‘ÿ`œ~ɧórÓr82:uJÈ2·þeÂð1OÖ%òË[y1¹A—‘ UÄ›µVÌ [L• ;GŠd¥}ûöJ` *gœq†9çœs$üLC•¸ !B2uÙe—ÌBlHT«Vͼûî»JÈøNÝV­ZI¦ŽãÍï¿'Åî›1c†ˆÓO?]£ÝS'˜ZûÆoTÕªÃ3å ‚‡úЈe»ví´È¤düøñö°)_¾¼éß¿¿n#YƒÄx¥]þŠÿ}A@- ì þ£_ÆçØSO=åovß}÷é¾Î;‹3PE esª’[*°Fæ yâ…øñÇ÷· õåì³ÏÖ±PS„nÇŽÔú^%T-Ô«`É‚Ì¢Ž¥Ìž=[Ï)dÜÔÀO?ý´ÝÔÏ|ÐLœ8Ñ ]óž×d•6ÜüÒK/ì5*9äÚ¬1/¤š¨½ã½8ÒïgÈÍÏ!àp8ŽA³nÝ:•ú@t!Å¡FD‚rÅW(9AâE™0a‚Jr°B2€XÐuRÈÞ5×\£Y¡ݸqã1ãÛK–,Qû6¤?£GÖ¿Ï>ûÌV©ÒÊ•+ÍöíÛ•XöéÓÇoƒuë­·*ù¤2R<Òyy¥yŒ©ôÝ£GóÇø‰!vu¬—ñŸùß}÷ÝsñgÅæ‰'žtmÏ‹=ê6]ûÁ€rçw*ÉEÒ†ÚBI"ÕC:n|ê UÄ®lÈ!ú‰Ý"x9$qðàÁ*9‹d\ê@¾°oƦsl š$ε÷œÂÎ1’<想E‹Jò‘xÆsq¤-žÏŽ››CÀ!àpE)ê±óÎ;O£.Dšd·!\8Õ‘¹ÃJ·p´C"™ õjC$SHªH Ìi‹=,êõìÙ3èØÙ A}Ø£æ¤êKH-}ûöU"†9£âÃ!…òÐCIœÀ®úlÌéŸ-òßvÛmú‡šò½÷ÞÓ5"=¢°MT~Ö½`Á%š¨ƒ¿þúk•žA\q(@ª†s„èBB!p 0õë×7H#•\!‘´*ÜpãÛ5ØOx£Æþâ‹/T-»k×.%L¶NZ?Yýzÿ8ï¡ ùn9ߤNÃæ â†Ñ’ôPíâaH›¶x˜œ›ƒCÀ!àp8‚!€j’;wÒc ›-ŠÍ‹Ärƃ¯y¼§Nª’)êY…}*<¤nï¼óޱR¹–-[RM‹Wúe÷ÙOk o·Q5Ú>؇*׎Q¼Çí±`Ÿ¨_½6mÖ¦ìµ×^SIÒ,lï¼Þ¤ØêÙ=¨^'Mš¤ª?TÇ+Hø ]²ÅA»êõ4D¢nüÀöH¾°•‡4b÷WªT©À*ɶ!S‘– .¸ ¤M[°>˜7Éä[o½å¯‚Š»Âx. OÚ2Êýš“ˆÁ*? ÞP§ò†Å áöÛo÷O†;Ùˆ“igb½®ÈáÚeƱ}ûšï¾[,¢ô¹â1t–èý+gÆ4vL®lEP%ĪüöÛo’F*ɶ„1¸‰òàáaÃØ‘”Ç«z"Ðx9\[Þ’‘$àM†ôI7ÍHóðމ [ì†2¢ …À~(TáÁÒ¼yóP‡3lÿêÕ[%Gë\IH½É ~y†›(q½GRð`ÛÑA …}»¨ûï¿_=1‘®Ý|óÍJÞPÙQ°¯²†îáTmÌÛÑ /ÂSØâ=þ¿ÿýOw‡#¶]°O¤AØa¡n¥0?úúôÓOýÕñªÄÓ/OH IÏë|a ÷»Fžk)ÈýãEJ 7~`_`:/UìÙ°McnK´QqS¸G õŠU±kFuÌõAHCê±KŒçÙUÇ+È(÷kDË»"ÞíÕ«—yä‘GÔˆŒ*±ƒH©p‘òægëz]‘Sj›Ç>"‰µ7·ÞúŽˆÌïï¤7ŵûW16ÍØ¸[±ÖXªÂkT‹ñ¸ùq£-S¦Œ¾ÍóÏ5ÊÛo¿Ñ„.à-z$…¤Þ£zृ bØÇXü”ú “7[û›H©m4ŽCPQ'ñÇ:À‡¹Ýçõ ŒÆx©écóæ]bû3C<ôž÷ÇD]ö¥¨‘Ö¥¦ W7 Ú9§<ð€Jz¬?¡3°)Þ !÷f^Bš4i¢ªElÞ°Cã·[îÔG²ˆ3¿5^J°á£>ë³}ǼyÁüÎÌ߯\ 7~`_¨.™;ž²Ø¶=öØcZ…ùX))ROˆ!ÏUKàû¡=D˜s“Ö‚tÇ’áÇëúq@á~Æù@õÏ%Ý’6€M÷k~H\È\¨œ N8’¼yóêù t·önsQáÄÛ Lœ<[…ÓN;MmxHR¶ÌÅ›“‰£OG:芌˜›c#)±Á °Èp}æÆM‡›L8½N0Â?ÿü§JÔÆŸ#’À½Ç¤3а›¸ª†D“›hn<œwðãPìl_|òröùçŸëoò„# ÑÅZ‘"mGD<7ÖÅo­ös"¤Ú¬›?H*ã0.Rhoa~üQ¸÷AÒø­³NJ¸ñµ‚ü³k€7øòÛe4¼€ù½óüı’‹dù[œù´ý`£‡ó^¹Ü“l;^à§÷¸ív\¼½C~¸ lÞziχ•‹·@G÷ÎŽ‹Ý[Ðÿ£ÂÄÈ’c< ø‘òF…¤Œ>–q“æ? Þ Ðcó6H{Ú´izA{·‘h@L!f–°Ùqo¸á?™\tœxÞbƒ“ÏÍ€9ó£0.Pæ‚Hž‹ï'n,<Äùqsa‹\ybþ<*L~?xª )ýSø ²>HýQ -Öž'X]"ôÉulÕ ÚPþqƒ%†à êÐÒ‰·s$tH5Ç{¤Ü˜+ñŸ ×\çàÊ6¿yÎ).ùìç÷¹äÍÏ4ÖX¸Gðpã%s˜ÖÂ=„;¸FKu²oßA‘n, ÉÏrÍë é>|ضpçŠð àd /!ÞmîÞmêñ’„M——Lñœâ~J|5^àì õ Ïí¿MöcgU‚Hˆ¬”ˆºô˽‚ëëƒß—· …†hpÍrðoÆHˆwÞÔV }Þ‚ç$qÒ˜/ã[Bų Ík€8òG(ñ̃¸Ð†ß(NVujûöÎÅî üDÝj|êòì´…ç«À âlïÇx™âˆ€ÂÚ+Ú¶ö%Žm<yþÙ1îá ëµÅÛ¡>Øæ¼qßõÚüÙúñø5õh¢¸_C¹H¶@­˜—·-”ömÛ»ÍEOáfXxX óÚ< ‹GÀ8x*ñà„ÈÙR<<« YµyÕUWé … rŠ$‰†saAiËC ²‰Ä.5eß¾\B0'KL¢ÁBV†ˆ¤oš6ú8x0ñ‰Z ¼ðŠtˆs„ݪ@ämÚ´ÑOÞZùñz½½øN}^!ÒSðûF²N4v®§ÀÆHúÏ‘#§Ìw­<ü“Ì®¿þM%l‡áõæsÒµH@LeîÃ\wüŽñ ,<ø¹×z ›­ÃïŸH`J…~xèûmÐÒHØRê35Ç­-«%lÞ¶Ü,ac?Ï6+楈Ÿ@ÂæmÉ÷pã{Ûƒ˜Zœ }f[˜g a³Ç¼Ÿ¬3’óâmì»=oÜ—øž%j³ôº_óãå~Íɇ7À@÷knð0mÞJl ë~Í[:oëܪyè+Üäyc§P7"ÂH5(çãBááÃq¤ën­ÛH¿8¡¡l] öG@{ëâÍwpa½ÖÅ›}…5BÀP/ñà£ðVÇ›‰ öÈCÑÞt oìÍÖÚ›8¢V.^nÞñâ~ÍiLJÕâS²ÖÖÀ¶AƃÂû0õ)úkÏfÛy?í éŽ-öíÊ—™«-¼RxHFRš6­"*Ùm"‘È'D¤Ž½B4ŽªCSêã®»: ©-›Rµ˜6ìY‘:¦në¥K+ˆ s[`áÜYµ#¤ ²†ê„k5&b{^ñ€FÇù„è[’MŸÄPÅžOŽÛ·Z+Ö·žL¶-Çí1»/5Ÿ+VüÖ(¼´ i`®¼e‡»nÂÕež¡¤‰Ø– ®ô®ÅÞ˜k²ÆÓl+ö7ƒÐûÀ³m-v·oëŒËË/OH§!‹Þ—(ÛWz?yiDjŽxbÁËŸá 6jmÛ–s‡—å…òn!ì«äAP®¯r_I™´/^P¼Ö/ 7DBã…µ_¿—b²l·x KoA5îu.°ý!Wø=¹âˆ&Q#m<ì")ñà~mIÕ÷ßïW‡†›;uà‰Z{[Ÿà‡¨¹0h´Åª¥Ø¶j.–^ª­Ë§}¸aÏc%.<)Ha(–üêFþåËwX¤;…0ß­¤ §ƒqã~É˶ \«VµE½[= £F¯Éر8¼¤®¿H1Cz„Š„,m°¯D‹½ ç’aÃör`m»¬ÔΊº–dØ}öÓ’o¶­ÔÕ’<ï1ë(á%ð¶H?Q¯rMb; ùƒ` RD ™ÁFÒ«R´ý¦TÇ$L̉¶· ‡bB`qDY²Š·]¯·÷»%Ù¨´ìú­i‚ý„:§¨•Q©"9dz¤cö¥É;NZ¿#ÍC-‹´ïHB‘´ERä²’—Ž5"5ªá”½ï³ÄbS¹^r`«:vÐgFJÈJÀiËo M×›o¾™âo1•ÓtÕ3ȘV'”Ùî×¼ak†j7gÂuP0Hôº[{·‘®¡îŦ U ä ‰ŽP~H¨Zm åâm%<Ô¼Fž< x¸ñ0åÈüx8b¿(Ù³c¤ç³ví²¢þ;Wìkr›H&Z‰ñj!í2wî\éé:aÛ¢"åÆYÆÈ•QÇ õ6ç é1û y¨J!>¤AÚŠ£F¶¡ ǹfÖrFrjÏ-7S®E¤I,¤º¨U(ë½l›}\3Ìâ„*Çœ*¬ ’(l@Xá6x‘` ë¡ íåx¸ºô BúˆM%ökHIPCf0KÀŽÍ5PÅN‡pµFàcÚúHØ nØÀmÁãê”Ôœ¨®P‡ò»Æ¼âŠÁ2dΪÁí8©ýdþÄbd}¬›{ã@àƒ©ÌRê?o^<ùŠ÷±|\^{¬¥ªy^~#}Niw<±àyÄs‡ß v̼tñ{ãþÄï<’‚ &Òg v~SüÆ]I\¢&iK {#Bµ—î×6ø ^›<Àø! >"Þu’×Ý:p›c0ÄDš`¥¨ì°cÂ`õXaÃfçL=‹Ÿ#ZŸ¨Nù{è¡®ò0_.eŽH,æ«ú&W®*ˆÖXÙO fàçÅÐûyñðåm ›•òà\ƒÍ¤„? ÇxËEª„}q…øCmç•$1¾=¿´£¯k®¹Fo˜¨Ùxy°ÇQ)B´“!äFm“S£ÚA"Ì>ŠwÛ¶‡oÞj¹GåŒH}šžñ]ÛøD ϼ°í3Š™")ã7…ð{]~ßHȹ÷ à…߆²BÒ=6Rw´ÜxÙðJŸyÎ!„àw†‡´ý e@»@ÿ±3Ÿ¨'ƬrÈÛõQßi™3'•‡QÀCc$ \,ÞÂÛ0÷kê 6B"jI†ú¼5x R/.RÖè~ BRÀ…ˆT‡#°ÔÚÓ7Þlüð†LW2$;ÖÛ1¥5¤ö8oŸ<è±[±„Çö ·qÎI MÇøCá€4†ü@Їk;Ä…›¡u¨¡¤«ÜTYcà…嵓³sHï'sij’þ)ÜܹV¹~¹–™ƒ®®×0Ò0ÚЧ½Ùs’ÉÆß8jDÆàæï-cC¢@;pMï¬”Û;N¤ßÓÛžq8·v¤¢–‡ݺm"½'¿½Ÿä<å ßíáª'ô1È5Þ{8¢ðsÅè <æü¬C‘ÅÁ"¦dç/%¡¬x±â%‹g9’{L{øäw[MÌn ƒÜwx‚øa"‚d›{’åh‡™²óÏ*Ÿ8BY­I¬mV†IÚX Ò%Þ xó ´ ã8’+.œ`ź_;¸~Âyt!ÅJkኤ,¥ÂÃÌ>½uùþíqÖÈEÙŪoPáìÞJëÿÌž|ÆGuG(È o±…ó꜇:Ï}° ç/XÁÖ,=×e°>½ûçÉÚ—Ô„«kÛ°Žp¿1[Ïë˜`÷ñ8fà1¯3‚÷XZ¾{×–íÓ2fÅŠÅ%h÷™ú·aÃŽ´táÚ$0(0» ö¬àwÇ~l¤­tŸ—^Änck‰·,ÚÈvm˜gp³ T®Hày™€x`ËKF«zE8t:^.!xHknûrŸ‹@†Ú´!еûu¨à—H¶xËðJb5c“¢Åb¬Œèõ Y¹@Úx¡àÍ3P"”šuóöŒ¤ ZC=¬äÒ+y V'ÑöAúp‚p%:”+›pÑ™ë% 1ò¾XyÇ@bŽÖÄ+ e…f¸B¬A~§V«€„‰B[l˜)„™¢ u%sÈPI[fº_óac¿ÅrçâKtcÓ7¶ZÑ(öÆØ,¡ á)²ZA`ßÖ³ÚÚÜzê6¤mÁ Ä §¯JÎ+ýÂì'¥PV˜¡bõ?ìÚ¼žì^ó!´@”pá‚‚ÍÕí‹>*i‹þô]‡€CÀ!àÈZàì„ÍÞÞ… Ò(‡‘ãÞ0S‘„²"„ö•^Ûu4„¦²%ÖZ);ŽûLŽ´¥/WÛ!e çåþý‘lÎ °Ö-[öŠTbOVXŽ[CBছnRll±MÃy'5lÕpt#”×#T(+T›:ìݼ‡+¼KqâönäOoÊ7ïî{lÈPõhl–àzu8¢ÀÂ…›Å[q‰Øõ哘j•Äù¢Œ„AÉ+ö~ÛÄI¢Ø1ö ¼mÛöJl¶c³LDc>iéc×®:å€8•ì—¿}â1{@JIŸlÿóÏ^ÙOýâIž¯ª[·ã%8vÝ´ çÚ8b‚žÓ)œ¬Ý–èÅ_•›’*”Q H»FÐv¯É§ñv'¯/!|P{BØÝCAÊæU&Ìmd*!I›fêy‰Éà6gL:Ï€N ’Ú¶mÛ ){qÜqm%¤Icy«'“Ç ÉžPHHÎxÙ‡·Z5!?_Kœ¹äÞÄÅ‹w”›{! ²DÂò,—ãI‰Ý3 Á9rɃ¬•„9^æAøɆöù f¾ÿgpňJL¬Ð‘“uè6„6f­Æ«U&«ñªöl&—q°PVÄa$/ |^u(¡„ß¹§¯ iû¼§o[ï1÷=c8†´µüÃ?ÌØY¸Ñ2<µôïßߟü=Q×ïó~䑹¢2Ù§Ó,Tèx!`>‰Ù8X—‘Ü«¿JêªÛÌõ××—àœIFÉTDjõè£s%„G%ñšî ÆÍ%%]ÉQ4èÃ%VüðÃF3aŸ"=ó%{¸äÈœ¨ÙyäÉ“S’Î?+59ٳǣýiãäE»_×_ÖEÂD”J¨Aá<â‰t•¢¤„QV8~ iãÁNTtWñ„¡Tøs%6ìÙsÀôï?Ëß9„2cÆÉ ÐFHÙb±ÿÚ'ÙJZ­^¦M›£êÄÇ+J §O5zÿüùÿHz´ÍòÖ^T‚Ÿ,÷’æò_Úßo¬¾p˺óÎí"9xOæLX‚¤ù‡‰E‹5E-”u“±‡[¿;–ødT(«ÄG*ë¬ ükhÖY§[‰CÀ!Ÿ~ú#™„ÊV^#FÏã”x‘;eÏžƒ’Úk„äÆj«˜k¯=CŽ—ii—’6mÚ)64S$`ç`IÞþ¬Sÿ R¹½þ6±øR¡B1IÏuƒ¤™ë.*ݼ’Y"WØa˜oy%ýÏßa빃xEÀ†²"8·+ÙGÚ²Çyv«t„Eàÿ[!ÇUBÔ°eY³f«HÛréw¶}t¢CoÓCJÖž~ú’còÔ<˜Dà.\'FÏK…û%‡ê›š"íðáØ%­FÂ7sæ½’]¥Ök:v]€Áœ={¥ä’"s{Àôéó–¨Jÿ'Ñá7q؇€CÀ!w£»º 91G`Ò¤…2Fp•â¡CG„¬JFÊ n'Î#æ æí·¯ÕuMQ£ž¤û¨ï-äuµeÒ¤ß$‰ûñP-$©q.’(ìMí¡¨~–/œyï½¾æƒ~’Ô<K~ÕÃbï–<œIþüy%ŒÂc’Køo‰‡µBœ/VÈœ>—ÜÀûT½ÛªU-!~µÅž¨–©V­TTçç:s8iAÀ‘¶´ æÚ8²{÷°á¥KÁ$c3T‹íÚ Uâ6hPgóõ׿ªm[(xh“;wNÉÁšO<U-jû»woaZ·®+ °?8TKÔ9™3gq˜¨.sÉ%R¶JúwýõmÔùbÁ‚¿„À-W"7hÐ'¢Þ/1±Šù Üi§Õ–DöÅ£6G×Q$('è«+D@€Øy™QrÈ ,øëufÌÆépd8Ó§/§WÓ<.¶aؾ Ò]âŸí§„O”üëãÿò¹»ÝÔªU&X•˜íûè£_DMû‘„&9$cøä{'Ó·oÛ°ãA2çÍ[­îûï—›9sVIûƒ’/¶¤JàZµª­jX—4,ŒaΟ?ß4m‰kØÝA‡@ Fž7¥Xº ×Å,GÚÂÁãŽ9²O=õ¥6lrPG„Ô.¿W¯ÓÄ{s™YµjKP‰¤íwúˆ÷iì¥lÁ掃R·ï¾[¬Ä±Q£Ô…ÁAÍ q³’¸¹sW‹êõ:j@à,‰+Uªp°áÝ>‡€CÀ!iKz®­C + pÖYO‹mWt‚Ë¢v¬W¯‚Y´(X9LݺåÌ'ŸÜbŽ;Ž@¸™W>ýtžéܹIºcÉíÝ{PBœü©$›8T«88Ô©SN öp§œRKlø fÞbÝȇ@VAÀ‘¶¬r&Ý:iAÒQ»öÀêÌÔôIÚœÎ;¯±4ó™o¾Yä7þG…zÖYõÍo¿­/ÔÜæ7z+KMÿ‰P—xw?þø‡ŸÄ±^,Pêׯ êTpÚ(Zôh€âDX—›£CÀ!8Ò§ÁMÂ!IÌœ¹ÌtïþJºG‡”a×5thw ¼»eË¿BN#þjìߤIeóñÇ7K.нö23lØå¦cdžé;ž;ÀÆoÖ¬•b·\ˆÜ ‘h®Wé^ƒU‡SC‹ÕM¡Bùâynn‡@| àH[|œ7 ‡@æ 0dÈWæ…¾M³=›uBèÑãq@è*9J:¤=SÂmŒW27yò¦D‰BºHŒûx`¼xœþ`úõk/Á{;fÎâ3aÔmÛöhl8lâplX¶lƒ’ÚÆ+û%qÍ›WWgL˜žÒ!àˆoi‹ïóãfçˆ-çžûœ™?MªÁ¡µê>T¡‘I“n×p¶3Ra]tÑ‹æ‰'º™ã/owû?ßyg¶¹ï¾Õ)áůÐ0 þƒÙä ɤqI!F½‚ú¸iÓ*ÿÙÄÕ6'TMgHÜ2Ð8ÒwÄ!µ tE:÷¨á|ø•æPCz$e‡2«Wÿ“,8îêÕ[5«R³[o=+YWÄwCªÌ™³Úôî=ZFî-®ó±ÏSj.ñ°Æ~‡:•LùóçQâfƒýžxbÕdä8æíæàpdŽ´eÌn‡@"@ ª… ׊ÇãZóá‡?Kú¦ š‹sëÖ•h!ICZÖ±c#3jTO3mÚï¦G"=kf¾È)rÔ˜þ•W¦Jœ¶/ÍäÉw¥šxmܸS‰ÛòåEU{¹ä*m‡heΔ֭ۦ¶p6ÄÛäUmÑ¢†Æ‡#ÄaKÂãÌ™¹Õ!àˆŽ´ÅT×¥C a ©{½z÷êü!xƒ–.]TT¨+kÞüsÉ%ÍÍÀç&[#äU+„büø›“‹dƒS÷Ý7^b¸ÍRivn¨`]IŽñïÀYÇâÎ.œ_²;Ô085o'‡]rÜÜ–C ‹ àH[9‘n¨!P£Æ@‰ú@û#ÍqÇ/~Ü+VÐ<ùä†Ì?ÿüà1Ä€Äð·Ç¿Ð\yå©išÏ{ïý¨Y /½t¥Ž™¦Ž²I#’Ûc‡SìY+ RRbà ‘ÄÕ«w¬=a6Ç-Ó!Õp¤-«Q·‡@z8í´Áæ?6'ëæw®×\¡ìçø»ïöÕÐÉ*ÉÆàÁŸ›·ÞúŸ™>ýnõ <É6j¯½ö UùÕËœpB…Hš¹:‚¹`­$ŽP#Û·ï1%KV‡M$.£Ó‡¹ãpD GÚ¢¥ëÈ!E nÛìÙ+Õcq÷î$‰Û7¶“ðt…]»7åËg^yåªcVŒs äëÔ)«t©áŽþÙm®¿þ-Cš¨!C.V;º›ºjÿ!€M"ÒÏ$ïÔôw¥æ†-S¦¨JáÄ¡R­V­”ÃÌ!àH fåzHJbÌÕÍÒ!àÈÔüùçfUM’WPȘUy 0#FL3={ž®žÞ9¡NE÷Ä_HƃòšÎÉ{<Òï ä5ݺ5S’ñÈ#Ÿ™þÙcÎ8£Ž3¸@©‡][Ù²EM³fÕÌœhnº©f¥ÀFqÅŠb?8Û¼úêTƒJzáÂõøxÑ¢™›b,KtUÙ µ.a|v;ån½ ü¨Q3Å¡°Æ_ƒ°!µùóÏ¡Úr÷îý¦qã%@ngsõÕ­‚övçJܶ…ª&MoÞÍÏ?_`n»í=M{5rä5¦B…bAÇt;S‡AŽçÍ[í—Ä‘C•s]¹r U£ZÇ2]¸âpÄN=§ÁMÂ!GŒóƒ² j“†a;9EwíÚ+!?ú%gýú½+Ñü7š¯¾º-èÌIßÔ¶íSšâå—¯ Z'5;1¸ÇÎùà €ÔÍ•è"pàÀaQG¯R§Tª¨¦‘´Ö¨QZÔ©µ…È%ÙÄ•*U8º»ÞHpêÑH‘rõÙ-[v©‡h®\¹Te†”¿N¨¤1ÁÀ5Ú°aßšNš˜`qÒYÕ®]Nêׯ(ß˦ >ûvïÞÂ,]ºAúüBˆdM¼ž®N]ãdâ¥R¥jïÖ}û¶Õï„qA"÷Æß aþÎLœ¸À,_¾ÉìßPPe»âpdN=š!0»A „Ä)6â´ÙbƒìÚí–-Ó„ïƒu±»Žù0à}óÝw‹UM Ñ‹F<<üð§jDOú«hõ¹eå>öì9 Î ˆwêrõP%03ñù°aÄ+•¿–-kŠMÜÑ ËY·6‡@& àÔ£™ºÒ!×`³V»öÝ:Gˆ%W®šð}Þ¼‡u›Ï=÷J_æÎ}(dZ%Ô¤mÚ<%!'jV´Ê¼ykLŸ>oª±ýë¯_#ÀÊÑêÚõ!œ[¼Œq\È-^¼^ÏÁ}“H\- ú[¨P¾{tÕp¤-€Üa‡@¶D€¬dG¨P¡¸§çÎÓlÚ´KÔ“ƒýé«Ö¯ß.åG5ôG§NCâ4eÊsÅ#5H‡ÑKQEX›n#AeW¤}={žrî@ìضmÏ$.I·téßBæs©J=É©¡¶iÞ¼º¤JËûɸYGÚ²æyu«r¤ž6‹­;¶Šnc·ÄlË­a@Þ{¯¯iݺ®¿ó«¯~]IÝÜàßìKÿþïiîRœ¢©ÎÄÖîùç¿5Ï<3I²142Ï>{©¤ur’`ç £÷á4b¥p86¬\¹I¯£¦M«øN:©šÁþч€C "i‹&WÉ!ÍèÝ{´Ø¡-5 V6«VmVÛ¶Í›ÿ•€·mTªeá˜!7Þ8Æ Š1âjÍ¿µÎ]GQA`ãÆªFµÁ~W¯Þ¢qþ nx¦â¡zâ‰UCªÚ£2 ׉C ±p¤-±ÏŸ›½C 6 ô‰]mذ’†~ÀSû¶ã/g&O¾Ó?(†è¨H»ti*Î÷ïö‚wÕU¯E]MjÇÚ¼y—7â=òÈþ`Àö¸ûŒ/Ö­Û–LÇ6žª¨P!p¨T5ªä*Ç×is³É\iË\üÝèøDàµ×fHVƒÏU=:gÎ*d™2E$—å^Q“I–,‡„Ñ£g ¹{ÈäÉ“+ì‚’ûÝwK4æa<¢]P—>ýô$ó ߚΛ˜¡C/Qé[´ÇqýEÕ«·ª$§†~Xi6nÜ!ªîüêÌ`%q VLvíE®G‡@\#àH[\Ÿ79‡@&!ðÕW¿™Þ½ßÀª¥4y|‘"ùMÍšeÌüùkÌÔ©5;Ú† ;D:òˆ½…(…+ÿþ»ßœyæSêíùúë=ÃUM×±3–™›o«á'^}Õ©KÓf&5& r’*·B+w\ñDF•šè—p#®8²Ž´e£“í–êˆß~[k:txFlŽòФ*¯áaY©Rqzè¡®n£u²¾zöe dãÆÝ˜l° À_ü²HÃzh~Ñ`u¢±*ˆêRRnõêuz4ºu}¤¼y󚃦¡eRò¨æÎ]R*‹ãB%ù¬$·ÜfÆW$ðó¡4÷ë:b‰@É’%Í–-[¢9„#mÑDÓõåÈ*ƒ«nÝ{t9‡““’'¥¨ªÉ™ ëñý÷÷jÚ£”pxè¡OÌûïÿd¦L¹+¦¹DQ—¢*Å»ô¬³êKl¹Ë¢ê½šÒ:Ýñ$ m}ûö5§ŸâÌyݲe¿äÇu|Ý5Ÿ|óÍ7f„ Ž´Åçéq³rd=l¬¶sÎi¤áþúk«¨ H>ʃHup²óÅ!áüó›ŠT+¼C ÷ï?dÎ>ûiS¶ìqæÃÇ I6P7ˆäOL7ˆ'¹K[´¨žÆž\³´ i{ã7Ìå—Gßs8-óqm±FàÕW_ç¬û£NÚ’ÂÇzö®‡€C á¨Zµ”ιhÑ|jO„´­nݲꌰ}ûždë õèÑRØOBê';lƒØ\„þ ¢þë¯ÏV%ªûN>¹†z½­ÿ¢‹^TéDÓ‡€CÀ!H8Ò–HgËÍÕ!T¯^Jì‡òhTûþùW?kÔHJü>cÆÒcfrÙe-5‹Â—_þẕ`;H=Õ¿{ñRýÂ`tëBPß7Þè­6yx¼^rÉ+bµ#Öúþ‡@Ôp¤-jPºŽY ªUKjÎу“$g•*“9EÅhÌçŸ/8f±eË5íÛ×7o¿ý¿cŽ…Úѯ_{õD½õÖwÌáÃG“Ó‡ªý½{Ÿn&Nì§!%Úµjð”uÅ!àp$Ž´%ÂYrstdUª”Uç!‘žíÑTC¥KÛ¶ÍbÈ_ÈØØmÓºæšÓTå¹dÉ߇‚nçÊ•Ó v¹ä4Ý ñÕ¾Z'; ÝlÞ¼Y¿õÕW"]Þ«c×­[W~ÛÍ-·Ü¢lçÎ?räHóÎ;ïHʸ+#ªn­C@IDATªÒÒ¥K ŽOœ8Q‰™%|BÒžxâ ImvšyüñÇ%ÐwM%˜lÿûï¿¡ºÍ’ûiË’§Õ-Ê!~Ê—/¦ywïÞo*W&HdÒͱzõÒj×6~üÜ ƒ\rI m÷Þ{³ƒµó™g.UÏÓÇ…ª³ýå˧±çn¿ýy(|n.»ìUyˆEöàŠÙ¤²qÇk×®Õ‡ñ®]»ôa¾ÿ~Eãï¿ÿ63gÎæíº½uëVƒ´Ç[Ò¬[wTbJ›É“'>½åÈ‘#æ×_5¿ÿþ»îF†DÇ[؆ÌP¨7{öìdu6mÚ$/3ûÅ»z«d ™ªŸÞöH¼R3êZ2B½âÅ‹«d é~ø¡¹ôÒKu¾ôi $ ‚·zõj»ËÿÉ:æÎ«ká»·à!½lÙ2³|ùrïnÿ÷N:é¸Ï?ÿ¼ùòË/Eâü…¤ûŸÄ3|Î_‡/`üý÷ß/™ƒ,1ßùç ó³{÷n9 ”TÚsj;†{ÏûÁ L)œÖ3lØ0‘Àÿh¾ýö[ñþFm^{í5 =´X~·I÷ ¤n6lÐ6`e½Ã™'ó™6mš¼îÒ¾ùÇuâ½&8WŒyøða=Çáλ¿“Ìø" sÅ!àpEàä“ñ•/ßß7lØd_•*·ûš4ä{ùå)>‰á擸lAÛ°óÆëq¹é†¬ìÀ´i¿û*T¸Í7nÜÏÁgÈ>IÕåkÕêq_ýú÷ù>ûl^†Œ™ÕÉ“'oìØ±/³råʾSN9Å'ñ݈Ëâ+V¬˜oÀ€>‘DévÑ¢E} ,ð ÙðåÌ™Ó'kßíÚµóµiÓÆ'__‡|Œ]°`A_îܹ}"ÒzòÀözê©Úí[¶l©ß…¸øæÏŸ¯ß…èø>ùäý~ÆgøçR¯^=Ÿí‡ùµjÕÊ—+W.ÿ8ü±.}úôñ•.]Ú¿-$Íwã7ê¶Hµ|U«Võ³_î½÷^íO’îաΟu€ÅÙgŸíÒªÇf̘áu¡/_¾|úwÜqÇ).Ò§Ò†?Q-ê'k¤°oèСúÝû¯J•*>‘dé.!™¾«®ºJë2>ë|òÉ'õ˜÷|T«VM÷1w0áüÐ?çó@)S¦ŒïÙgŸÕïüÉ™¯V­Zº}ß}÷ùš6mê›2eŠžOÚ2ÖŸþé;þøã}]»võ·ó~ùì³Ï|?ÿœt¯  Ƚ©žŽ-Ð>Œ[¨P!_þüùõ\0EÔ±:?Ûߊ+´Ý¼yóR<ï¶M¸ÏW^yEÏM¸:i8öƒ“´ÉÕáŠCÀ!ÚµËé¼ys‰„à°! È¢Eë ñÎP›†*8$üõ×?òv¼8T• û[·®k®»®µ¹÷ÞÍš5G% A+ÇhgãÆ•eÞwŠô ‰¹þú·DeôN†«lc´´„êVØ*!Aš‚äå—_Viy ›>ø@¥R¨Ç¯kCõ‡DåŠ+®0}ô‘8›L’ܹ¨ìöÛo7?ü°J`}ôQ³dÉ•h!=ªQ£FXl*V¬¨Ò=$VHÀ°§²…y®\¹RŸsÎ9’â­_e'¤Ñôë×ÏVUû¯öíÛû·‘!]ãïý÷ß7wß}·‘‡½Hz/3EŠÑ~{÷î-¿‰ë4H+s²j{ì1íƒyiT ë@ÕŠú‚4Šú`³fÍÃ")gžy¦JÐÀüÅ_4ï¾û®r¤ªTlÞ˜£%É2òŒü>®—tw  5C…‰Ô©*Oê‘ Ò‚mç‚êVÈ»bpÒI'ù» _¤nü óKÔ¨°páBsâ‰'Š£Ô ¤-„SrÕž¢óA²'D]U¹Vrëï4Ä—pç=D“˜ïv¤-滉‹¶l¹sçR6Ž¥J6ä%=ûìTðóÏ]\¥M›6u%.ÚÌ ÇÃí¼÷ÞN'ˆ›nÔÙ!\Ûh+P yòÉnfìØ>’ou©i×nˆ™5ke´ºwýD€ÄK$`F$'jÃ$&}èŠäD ÒQe•-[Vl!Ûûô‘¨INÛnJĸfï¼óNU©>øàƒp…>ÌE¦dC¤r’[·¼$ÜvF´-P €ØvÖRƒ}ˆ¡-¨ëDbfDšgDÚ£¤ò@¹ð uŸ­‹1½H즒‰Ûn»Íð׿qŒªû¬ºÂ…Š–6Ì;;Hd”"ÒKqà®êOÖŽÚØª%?ÿüsñŽ>×\pÁJ~À!’"’-q:ÊgDiÞ{ï=%AÈ¢HÃLáÂ…Õæ/°/‘(ªº’1EÂ%¡t¾Ò>U íÂm£ÎD,)52k°&þ É7Ýt“ÿDµ)ÄM$fªîäüˆ”PòÕæU›=æcUâþ†!¾„;ï!šÄ|·#m1‡Ø àH\ _Ü0±ïªX±¸Üür‹äb³éÒ%éÍ— ¡ ÚI0ŸÚÀ¹Hõ^~ùJy¬–oBuŸ!ûÏ<³žØ* 4„!Éý£N”‡hÊ2drY|òåËûWÈC·víÚþmȘ}“ËØcßá5¡iÖ¬™¤,{I^2~“—Œ³ÅѤ´ñ'µî“O>Ùߟ¨ý߃}©^ýhÚ3H£5æ§®÷cP¬]–n„ù‡$‰¹ð‡=¤«R¥JšþˆfÖ† Cÿ.]ºèÞŸM 䛲³Î:K%\HÇ(|b›†·¥-Mš4±_Ã~ŠzXI¤ñÁÏŽ yUµßÀN8ÏjÕª©4 b U"qô`,¼E¿ûî;7œC$”üy 0 Õk ÒEŠWJg¯©`IÜ‘ìï¹ <ïu3jÛ‘¶ŒBÚãH@ m„öX¹r“†òسç€n¯[÷æ!ýßÿV„\„‰Ùo|²N¨„ !‡)ÉÞ32 H°ù”(QÈŒÕKÔAÝ͘1?H˜„gEEÛpÁæ‘ÝöAÌ")H\P“!aAf=QÍ5lØPUfHŸÄ–LU‡Ä—*UJI’íj¸b¥WÔÁ Éš-Þc%Š÷¸­É'’"Tލ[) $D¨ˆqàOììäåáQ%†Hön¸á5ªŸ5k–äÔm¡í KW—-6Ô‡Ýö I£$œ” *¨$ÓŽÍ'’=B“¤~$IGÊF=TªÞs ô:z„rŽìâÉÚ iÞ‚º“sª”+—dÚ³‰-¨M)KææÅ{nÏ{`ÝŒÚv¤-£vã8gv äæ:N7EˆSÜp“¼ÿRvqíÛŸ ‰Þ·m‹mø…HæÕ½{ yã¿S†Díô¬H6¾É4õm$óÍ.u:!qA•…d†˜cBj &…H¡FER™Aõ‡ä 5uð"|àÂÂEßHÁäቊץ-Hóxà£}á… R»FéaìÔ¼ª×úíïlûÀO%^“ÆAjÆøH÷ðî<ï¼óTõH;ê±6> •ñé§Ÿú‰aCØFʼnͪÀ¼Å0_ÉqãN2k³G¬;3lù°—ƒ$‹†×%Ä ‰„ B‰'©õ–ðƒD±ëõ8'H*&Ò»§žzJ×ÇyÅ‹"õú믫t1œD ¤—9sn8ØäA Â|8ÿ¬ yä‘À©(î¡Îû1•3j‡€âŠCÀ!à‰@Õªwˆ7Ù]¾wÞ™%Þ^};¿à»ûîq>‰g¦ž¥" ÙvÇŽ½Òv oÔ¨!ë„; ‰éÅëíañ`{-\µ =†GìÈ‘Ó|5jÜå;çœg}Ë–õ\ÌЉ$Ð`x¦Æ{F¯§!žwÜq‡Åx…б¾[ì§ÔóOÔsþ}B|x}ʳT=…Lø½%ñ6µ£Ç”O<+ñJå»×{ÔÖÒçõ«O•Žƒ§$^x:ÒÏE 7ៃHÍ|BªüÛ^ïQ J뉜ÿ˜ý"$BûGÝ%êJÿü‰ ŸOl½ô˜ÄtSoM!KÚ—-õ’gŸ8løDò¦mh'dÏ'öhºFÛþì§HŸ|½zõòáEi‹¨0}b—篋æàÁƒíaõ„å\P˜“%­ B8Õ듹áá)Ò¿Æâx:u´-žŸb‡¦ß…œªÇ'ó‰£î£-Åv®ÌCÈ£ÜWF©W,•¼}h#ù'„Ó'$XÛ1¼U…¨éa!>Q-ë1¼‹%¸°~÷z†:ï¶ÿpŸ±ò…ɺâp8B"@hÂ~ŽƒÏ[o}W\ÏKHuûöÛß Ù–wÝõ¡†Ð€ì¤¥ˆ³ƒÜ°oW’˜–ö±j#¶zò |ÎW­Ú%­ë‹Õüâ©ßÔ’¶Ô΢Ä]¼%iʾŸ~úÉzÂVà|A ÄöIIím8 [džüi‘Ö…y ¤M¼+5G°±½uÓó]$W>‰ç5î1݈}–O<*ýûEúä'u„Û)SÐvþ|#QQú•’Ra.ÌÉ–U«VùDZ¨›„áð’B['ð“zÞ>8ÎZh+*NŸ¨5›„Ü[5mülø[™kL!§Þ’Òy÷Ö õ=V¤-´• \Á®8T¤„ßÈ—/évQ¬X±±ù[ƒO²|¢~ m×z„ð;v–¨`‰Ç^ƒTÚ¬Y5‰ßQÔÅx¼†!$G<”š5K‹ÝN?1vŸ"*œ/Å£î7Qõ06“D<Ì1;Ì5'á-PŸáùX‚í£ê{ê5^JÅÖ Vû1þbU$îY2Ç ï8êóg‹u†`u%a@Ò[p˜à/’"Ò³dÕDšèßF5j2¥B=þ¼…µDÒÖÛ†ïØ;âM¬p x ‚Õ wÞƒÕõ>gÓk„]ÿG Aƒ º‚íÛ÷ŠwyäÐûÅNf‹©_?É®í@J†´kW?]é¡n¾¹Ä£ªmúö};®b¦Å-·´Â6@âJ;›¡b?ÝïÙ˜à§>!¦ÄŒ8ni-Ä}#”6qÞÂ(Ÿ‡{°Â1/a VÇíK<R:"GÚ2}7¶C 8þøòòÐ"üÀVuFعsŸÆn#¹z‡ÔHø‡‚§É±Ë»á†¶’h¥ÄzJžrÈäsøðË•ÝqÇ‘TÏÐ:`ôå—ÄCñL |:QB$ Ku¨“ pŒxŽVÀ´¤1¤>‚¸y ¹-ñ\„Ô+„Á©!Vƒ{b‘aÜ”‰¸o8DZ«aS7al4Ò¦gŠ´ìX/¥óž™˜8Ò–™è»± €á70[^¼x†ýøóÏÍò)#žWë4È.Køè£_®ä”SjŠG]eñÞš¶^¸ƒ%K–íWˆçÙ¯ªn W73ŽåÎÓ ÐAŸÞ.sGÄóu¨Ì÷;çaš'# Œ)Ž š ×Aƒ‰”¹¯Y%…!‰‘J¯½öZ¼;ñH;®,€Nö]‚#mÙ÷Ü»•;"B V­²Z ¹¸åË7j+$mØuåÏŸGâ%…—´ÑÁõ×·1Ÿ¾@‰†’Ò„N;­¶¤:K\ñ'HŠž¿Sªž)Ç‘º}ñEsÇͳÏN’ ÏÇí\3 7hŠL–xh„"!³QÿÉh@Âz²8ˆ'­J̈3f%g í Ñ­Ò6Âd`kF˜ ¤v¶³Nœ/4{€ÔÛÝ…~éŸxwÄ{ƒô¹’ù8Ò–ùçÀÍÀ!×,˜Wò æW²i¯Q•´‘Ίr %ÐçNó÷ß;®£sç&Sª¨¨²f„­—ÒÁ;î8GÒéT)ÄiŠÿ–RÿÑ8Ž­ÛM7©9Lqà8çœg$8ï$Íßþ]YÔ½‡%Ö™·ÃlÈ!š—“l¤Š¢^ëÖ­ÅA§±ªwÉ|#¶±ÛÈÑyÑE‚ë·ŒÀ·â’á$@0bbš~úéJÖ8Fl3ò€Jv퓸s¤§ò;ê¹’ñ8Ò–ñ˜» ‡@ùòÇÉ ý_•´1yHÜ–-»4½UûöõÕP[B‚„]W®\9͵מ! ¨g§Ë™Bôê«W)aëßÿݰcföA$‘Ÿ|r‹HL:K"ð©ê¨*_kfÏÕ?` ô d†dy`¿7‹C°Äæý½ôÒK5vyÞBÀaT®çLƒæ2¹Mï¿ÿ~5’Í“môNÔ%ÛêYW2GÚ27ºC !À†íС#ò°È£„MÂé¼.\+I¼kë8¶f)•Ë/O2ô–@½)U {¼té"JÜ&MZhFŽœ¶nfÄó²:mÚ@É+YB¢÷7wßýQºˆkf¯É[Pkz²ÚwîÜ©Ya RµP ímï'Éå QrÕUWénrv’U›ã“P$²'ï+äiê)­ìþÅ£g=&Ý»N¬€@ƒ•týµU¥mk×þ#énJŠ­ËZu0Àöìbä|Ô.&غ‘ÐõèÑRÞðg¦Û@¿eËšB~ÎSoÍD^UªTܼóNŸÿœ)ˆJëIQoÍ  /·/{"€§(Ò¯`b…}™7f™7Ö6kÞ„öÁú ™:jT/ñCuêM¤îµ}û–âìÚ‚¡™±ûiËX¼Ýh„D yóê:oœ°k“ÔM¢¦©¤9HóæÍeêÕ«(ÏÌœ9«R\ßuס9L?ûl~ŠuSª€ÝX»võÄÉá-µµK©~<¿à‚ÍÌ™÷i«kz÷­ätuÅ!`8óÌ3Õ9€0$ÇH”ͱÊñÔ&6ÇŽ|œ^5’©{ᆊM8·±8Ò–±x»Ñ ‰‘” ÖˆZ9!m•´Yg„3Ψ#j”ÜCjIŠë«X±¸$Ânœ®`»ÞA^xárUÛÞpØ%}Þv™ù½X±‚æ¹ç.o¾%1ö•º!}LIR™™svcgx‹’@òœš1cÆhÂ÷Å‹k"÷7ß|S2„Üe*TH zͬB%´Gµ ¡#é¹·tïR¼S9F"ö©S§ª œ·žû8ÒçÄÍÈ!w”*UXêæ4K—n0uë–OÑí’¨´x¢ýc$)¼Awðà!‰Q¶0¢¹÷íÛÖüúë_’+åP!)uX´h~ñH½F¼ãþ4C‡~•Rõ¸:N–‡)Sî2½zn}ô3‘ž<+–5q5G7™ŒGû4ˆT³fÍÔî û2ÒQá\ðâ‹/š‡~8Ù¤p"dôbzÐôiÓF=C©€Ç§$@×0!Þ’äÝÜ{ï½F’¿K–“RšõA¸K8[µR6¯êÔÛÖ}Ï\\îÑÌÅßîHŠ/$¡¶©¤Iã”@Áü ”ßÿ[Càm®?Â2|øwú®n$Ç4¨(¶mJ,«u.¤ÍJ”BHÏ5ݺ5IÊG"]yÁ\~yKy¨vcñ‰² 7Ï(#€Ù¤I“ä¥h‡ª2!WÄZ ¦¶œ9s¦ä^#¹€ '‹ÃÖ½{w ÆK€Þ"EŠ$S‡ÖcÀ€ê\)ôÚ°=ýôÓÉVƒÓ‚W•šì ÛÈPœ¤-Cávƒ9ŠK˜mÛv‹dqS°`> ùQ¦LQµk+Q¢!Çhž<¹ÄmqD‹$HîŒKÓ•ÚÊ;—\ÒÜÜ|óX M°Å{(!¾äÃo0ÆõÐäó§68ÅL ±07Ét!ajÕª•H¸ë%l¶ó@âe÷#ƒ°+6Ǧ—°«çöÅŽ´ÅϹp3qÄ5uë–5ûöÔ9⌀ª —µkkÙ²–)T(_ĤíôÓëˆ[!)ßFmÝO>y±S—uãhuŒˆZÇØÑ…ž$&î5;75ýû¿'ù&_T fNÁ • XÒLú– KpÓL%Ž´¥0WÝ!]h܏ЍHŒ™?gÒY%y%m54öØŒË$ýMd)on½µ½H•jj¬hàŠªqôè^ò`—žhô™}åñÇ/”CýÍþý‡$éÓøt¼Ù¹s_fLǧÄsbó8…,á§åH[ŸB·‡@Æ ÐªU-hÖ¬•ÉNÂDW*Fê(ÙÞxãÛâY·Uç—ÈÿP™>üpW!Äw˜¢E ¨—i¿~ïjþ×D^—›»CÀ!9.äGäX¹šl@É’E$Xçv üYBÒ"i[œj5dŸ>mT 4jÔŒôM6Lë6mêšAƒº˜'žø"UÂt™‡ÈÍŠ§é÷ßßcš5«nȪжí >¼ !æï&éÈÎ8ҖϾ[»C T©RR%3I’¶ò¸vÛ¶=ÿÙµ%ÙmÒ¤ŠÆl+\8Ÿz‚Θ‘ºüŸE‹æ¹´¥c?×£ÇÉ¢>c.\—4· çñùç/“˜{w2Wôíû¶ißþé,%qÏ’›¹C 9Ž´%ÇÃm9) €Tíðá#fþü5¢-¯µ“ìÚŽ:#äÉ“Ë4mZUU§M›VIµŠ”Nûôi­äðµ×¦§0£ô<¸›z”^}õëæï¿w¤¯³l]³fióòËWŠDôNS­Z)!²o˜3Ïb>ùdžS›&àùtSÎÚ8Ò–µÏ¯[C êð`§¬ZµÕ Ið©×ãØµÍž½Òœ{n#MiuäHê’¯àŠštäÈif×®}t“’;wN‰ ×S=^¯ºêµ˜Äˆ‹ÉÄ£ÜiݺåÌk¯]c¦N½ËÔ«W^âÙ•ÔXOHžÓŸÃB”±vÝ9ÒŠ€#miEεsdSð…è£ •"Ò¶àÎ5„Øm‘tJ5Ì?ÿìV—ZÈP_âíœ¤ó€ ŽÛGU½×_ÿ–æV ¬“]¶IHÿÒKWš3îÑswç˜SO}ÜŒóƒÙ¿ÿPvÁ­Ó!—8Ò—§ÅMÊ!¿ÿ«jÕR£ØlHh¼Î63B³fÕÔaaýúí"¹©`¾ø"u^¤ $mk- é’¨>vÒ6ƪT©¸†ùá‡æþûdz+[—êÕK™gŸ½TbíÝ'êÒzæÁ'H(—G̰a“ Á“]q82GÚ2s7¢C áÀˆ½hÑšI6m”† Úµ(W“—£"=ÿüÆBÚ¤ÉFêÚk[ˆ"jÒX(^|ñ !oÿ“ Sc=\Bô_±bqñ°íf~úéAuÚxå•)’íâa 2A%© ±7I‡@AÀ‘¶,r"Ý2‰vm)¤j6$/ñc×f%ṁ?þø‡éÔ©‰ªÉYšÚ‚Ý\ß¾mUÚ†—j¬KÇŽ ÍCu1>:Ñ|úé¼X—0ý—.]ÄÜ}÷yfΜ‡ÌÀÕNñ´Óž0={ŽiÜŠ„Y‡›¨C ‘p¤-‘Ïž›»C “¨V­¤fëÖ-oÒª"%`ï]wu4ãÆýlV¬ØD×1/yóæ2o¼ÑÛ*”Ï@ÜbíÁóÅx쯹æ4õ†ÔÇ™&M4wÞù¡ùùçÔÛ4ÆxÊ®{‡@B!àH[B.7Y‡@| ?S¶lQS¢DAf„åË7ªwh 3Â)§Ô’<¥ë•ð$y‘þš&/RV~Á'*A|òÉ/2 ­¿óÎõ¢Þc®¾ú5³oŸ“E>N(Ä{›;÷!Q—vÔë¤K—a¦U«Á6$£ÔÜ‘ÌÕÕq$ Ž´%Ê™rótÄx’8þ?6KŒ³¢; Y5ªl¼Î§œRSI¡?:wnª*RÒYQH(oC{¯íµ×f˜íÛ÷$o„ÎèÙs”Y·n»ØÁ‹|à€š9sæ0Ø–õè1BíÊZ¶¬P#c6I0?zt/U“vïþФhºÙIÁ•øFàºë®“ôZg™îÝ»Çl¢#FŒ0Ÿ|òI²þ .,Ù=N67ß|³ü†$X]”ËÃ?¬ý–+WNâÞ½²÷‹/¾ØŒ7μùæ›’S8>®×={öˆ3ÓaS¤Hÿ¼çÎk†j~þùg±aÝi4h`:vìhn¿ýv“3gÊ2¨C‡i»%JhŸW_}µ9ÿüóM·nÝücÄû—”Wï+pós82 5JëØÖ®mÓ¦]Þpž%,Hr»¶šj6{vRîQÕâ…:aœt¯¡M›ã…Öòö©Î!ݦ±ƒ|ùr›·ÞêmHÙuñÅ/‹7íæ4öäšeÓ§O—ºiˇé-Z$ÞÓ?˜N8Áÿ‡Z˜v;wŽ´›TÕ[¼x±„ÞY*¿År=ÖÒ¿\¹rI¸¯ÍqÇçßW°`A ­ò¯d ÈøÐ9¡tíµ×ÊËÏ•þÃ_}õ•9ãŒ3Ì/¿übzõêeyä¿N:É ãAÝP_&Nœ(/—%ýu!†U=.÷;I[\ž7)‡@b PªTaS¨P>±kÛ,*Òj"eši Ì«vmÄj ´k;­¼Æk;眚Îèüó›˜?ž#Ò†vé^ô A5àî¸q¿˜K.ižîþÒÚAyÍØ±}4!z·n/‰ ø&S³fÁMkŸY¹ÝÚµkEòZLÉöo¿ý&*æ“L¾|ùÄ#ùo³bÅ ÉMÚPoݺUBÅì1•+'IqÁäŸìîImRÖÚ@ GåË—÷Ã!Y¸p¡É›7¯dï8^ìW™ *è¶¿’|Ù´i“H̯¿þ*ãFú §Òb˜Ar~úé'C„û:uêø›#ÉáÏJÍöï߯ ûuÌŸ?_~;¹UÒ(aÚ²e‹˜%¬Ñc¶ Ò$þ(Ÿ}ö™¤‘ûBR‡ 2õêÕÓ}H´ˆÔÏz˜3‚1ý€ø3.$ã`b×DáæKû9sæ(nœW+9ƒ,­_¿^ÒßUñKÉØ.P €Žµ{÷n=¯ì—Þ½{ë|§N*™2 ë¼ûöí+v¤§b ½ýöÛZ'ÔùÛ·oŸž[rîkÖ¬i^}õUÿ¹b¨¹ZL˜ëŸþ))×6˜ÆûçAÛ +rºâp8ÒŒ@ûöC}=6Ñ'á.|åË÷÷uÖPߌ×þFŽœækÐàþd}4AëØ¿ü²JÛýöÛZ»+]Ÿwß=Î×´é Ÿ$±OW?Ñh,ž±¾óÏÞ×¤É ßŠ›¢ÑeBôÑ´iSŸ×x®B|§œrŠO•O~>!p¾øD¥ÛE‹õ-X°À÷üóÏû„¤øä¡éï»]»v>!>!¾:ø„Lø„Tù„ÔøFŽ©õ„ØùN=õTí‹ö-[¶Ôï_~ù¥¯]»¶oðàÁú9´jÕÊ')_ü±»üòË}Bt|"¹òÏU¤>zŒ}úôñ ñño IóÝxãº}Ë-·ø„€ùÙ/÷Þ{¯Ž%ÄGw3FçÏ:Àâì³Ïömß¾]͘1Ã'Æ'„VÿDZ¦¸Ø¾î»ï>mC;0«^½º¯gÏžö°~~úé§ZG˜ÿìÙ³uŸù'}oÛ¶­¿¯ÓO?Ý×¾}{ÿ6çJH—¶Oi¾eÊ”ñ*TÈ'DV±™2eжé¦ö'„Ý?O<Ñ`fÏ=çê£>Òºß~û­¿®ý"dÒW·n]×%Ôùc\Î=ØpnY+×ÝSO=¥íÀ6Ô\-&]»vÕ¶ôÁy^¶l™¶äŸKŸdDˆ¤j¸:?8õ¨ ïŠCÀ!vªU+­’6RW§ uç¢EIa?7®b¶nýWc¹Ù°k[¼x½Úµ±$ìØÆEÃ!þ¸KàÞ—^šÂf¦–Â…óIН¾"µ(.v3/9Ui˜³!QI?]¥9H«^~ùeóý÷ß›7Jðæ\æƒ>É奪^?~¼ö´yófM tÅWÈõó‘™4i’ª9‘Zaç„M—<Í£>j–,YbȉŠT¨FafbTš²råJ¹F·KnÝsŒ1•ÂЈ~^|ñE•=Z¤Ë£UzÅ1!¦_¿~|Õrë­·Š³M{»©}|øá‡†?lÌÈñÊ+¯HÞÕËTŘH”°±CbÆXBVÍc=¦}ÜsÏ=F¥JzXÒÄÇ\­^½Z¿8P1cÍ`šÖ"¤OlM×IžÝçÌÌ™3U†DôÝwßIù,=Oáæ‹$íª«®2Bð4íŽ;$6㩪òDr®¼ôÒKz®»té¢c 9ÒêØÿTÌHð¼êmÖxþš7o®×í‘ÌV«VÍßU¤sEZÇyá:e ö:ôw”_iËݬŒ€Õ†3Býú5‚õ %q<ÙÂÙµ ÁiÇŸ£mÓ‹¶tÄn{õÕ©ð7½ý¥·=êcˆ[•*%ÄñâEQ÷mJo—Y²=ÄK¤*ªCu%&}È‹ôCBÊ4W•Fò e„ ª&Ä"ÆüÎ;ïT’ñàƒªj•}")SB%ÒQç2"Í ‹!j7Ô’¨AEz%/[U]I#Œß!Y¨%EŠ¥ãò§\xá…Z_7äßC=$)ÛºÚM%/·Ýv›á¯ÿþjT¿mÛ6¿ê  jaTÁÈ(eìØ±føðáfùòåºvH%êC *OÖ†­˜A­ÊX+¤òëF}|ÞyçiKˆ$ýÙmˆQ¸ù’{5$X¢JE--ÒF%‚¿ÿ~4/q$ÓBUŠ:˜õ+œˆ½-áΟ­ãýŒt®gÔøØÖ¡åetq¤-£wã9²HÉV­Úª«jÑ¢º¼åÓny˜lû”ÆxõTV(ÃzCìbÝDi 4ⲟ aÀÒFñcôÅu¾sÚ8¸@Ñ`´´áYÅŠyluHqrT(k5þnÜF»zãí·’…åç©P +n¹r¥#ÅmYnÎGûœ‘´€® ¸;S“&M8xü‹/¾`EEÏ0 æÀëÅE±».½4iÒ°’¤¯mt¥éÏŒWÝz…gÛ·oç.=!ÀØ%V½Ï¸†'Ÿ”ß­[7våa<”(]øÿã?ø4!puB1„õëÕW_åä ¸(Ë–-kÛÁúp§"a@oPøž´Á’讹’WWúÌ¡7$$ eÏž­¢ø¬»J¡Y)eË”GXÍmýúõìî„•SoÆwd~úãÕ¬úXO0ÑÇúëêþ­økgYW"XÚÐPJ¾4`å2*m”d`³”`,4c\žµjU–bŽŽØ‘ñâù“¶ºu‹r…‚!CÙíý¤ëùb·9sº‘‹-¹„'Ñ~”5ÂkÇ”5`u‚ûîO¸ªÀÓ…†ŒQ¸Iñ% 7*,Cø¢G*,o3fÌà1È6:t¨K¸`±CÀñãÇs†#2&Ñ x ® .9XÈàÎÔ]†ˆS3º^_æ.î %þÎ sÔ°(ál°$Â創Aw†q8® ¯ ¤ehC`¹ÃžPZ`eD< ?›+yaaƒR‡˜;àÙ­ W7,gºå1s°ØºCWà 3¬­8æa<ܳx à¬^(µˆs„[®J¸ªõæìýéVH¸guË-渓U_7®¢´…Â[0Fàé§S0͸Ú@° ~²äÉÚ”6Ð~ܺu¾€ü–•;NÙN^¯hâø„³M_ôƒš‘õáÅíÐý —ñÌ™]ÈJ’“Õ)j׮߂.S°0[Ùpo~f”_Ô°ÌàŠ/w´–-[²ëPì ˜ÁB—YáÖD<,RPÜŒ {­(S°`A¶Ü!€ʘ.ÖAl”­¯¾úŠ•#Ä¡m"%ôk ,Ahú|½O¿êîW¸z¡| ÉÉ J”E$Tà±pPè@)@Ê ÂY$(@yE<(E{‡²îëL].wWàåJ^ÄRf)»«a¦°34X·tó « Þ.WݺuÙŠ‰8D4XÙ@S‚+ö…‹ï¤ÈH”Ð0ÖÙûƒ‹8SXõô½ÜÉŠ5Í sõùæ>¿Þ“¶)Mh!P­Ú(mäÈïyçk¥J ÓªTùï>|¤åÌùºöÍ7»ìö¨]û¬`vÏúöý†h>±{Ý›wß]ª*4D£8»è.åÓùT=BëÜy†–+×ëÚ¦MÇ|ºv°ó–òÃ[y‰¤–©Èè0ψC)@ŒdÒ(£P£ø%¬Z<_§ü0Ž#kŒF–4¦Ù0¯ÊÐ>‘«Fn?,CÆ©>ûLŠ"So×aMŠÓˆ0×öœ!íÆ¶{²Ni¤ÈÙ(9l~üàJ^ÊÔÔÈ:É2ƒ–ÅÜpâ…3?æ{PµèT(ú²l2Í ¹Ã‰Öç¶þØvuõþ0ˆ2@5ìiÕÜÉj5ÇÓgBùáWUVo@\Ûo¿E1ÿÃEŠø¶S§þRwï>àìQd‘šãÚP\}ëÖ¨T~}/¸HøÃV¿TkÿþµÉM‡,"?DgŸÏªUÚQÕ­[Luì8\aû}¾G$.7'\i°,$×Üð .8£å c`• Éž4$7X­¹p»Âz¤»Û>üân4r‰FeI"aÿþǤ€à™gòuÁŸ¬àé@áCé«yóvé¢}EÙС ØEŠØºPj¨™:aB[ʬHé³(Vjg(‰’²Àíe F–64ÝÚ)âÙ>ÏÏA*›*U˸¶mÛìãÚÒ§O®ªU+@U|ë*,T(#ÅŽU¢ŒÂeD#p›å µ?:w®BYmÙÚÖ¯ß<ŸTˆµ3ÆDy(qÁáØà͇ޥ Ò]4d·‚®t"àŸa°™ÈEÝQ– W½uìØÑÎHAòzŒ¸ÏðìJ(wxê”{MŠQ}=Ðj ”Jf™r‘¹ 5«s;+Ï=C@”6Ïp’Q‚€ à´i“Q0tB;¥-ʲö8†ÌY\Û¹sÿÒˆ=CzÛ¶å‰åü„]ÍRÛ{Ü5hP=NJøàƒÏ ôÀæÍK-B'ªg¹O½øât²œ8~áZ&ÙÏ{ *”p«š¸ÁàæÕh>ªV­Ê·à6£‚íL.ïA% Šê¡‚Ð@}¡¯ƒ}ЇÅ¤´Tàžð1| Ç€‹IÍš5³Ñ¤ Iå±Ð ˆAÄÚÕªUS©S§¶s‚Ÿ 8®P,­äFI©èüZ­“Ÿ‰Ò“ß¾œ]ð!°¶!c \m°¬Ý¼yËYá™Ue„’%Qß1ƒ‹´F‚ôeŒ¬m¾KH€ (àþî»9àÿ§ŸNãQH6X.ìN_®g¹Ðü•+·BRNÊü‚O \ià!CýNº÷¶¡ºªÀÝ ~²5kÖ°u uWQ‹U@ðÛ¿æqƒBgl˜ƒ5  “Ìœ…‰±Î  ƒ; ÂË–-ãýAŠ‹âöPμ)Lþ8X ‘Í‹ŒVÞ‚,WÚ“# JÛ“c'3AÀ€@®\“ð”hzeì¢jâÕôÚ‹òås:Pĉ›+$ÌŸ¿Ë޹\ŸkÆʼnt41ÇÒîG(¹Ë–õ暬 ާ’Fö„°ÑÁ@æú(? Õ­X±"[Ç Ü a®ËY³f1¬·;ÂòåPÞÐ` ÃsЗ€HV3X×P¸ÜLô … U@D‹¤ T07gпùæ¦é€â¹ÿ~V¸@+²jÕ*¯ ÓwèÐ]¯pÑÂøá‡²‹Òcp»JóQÚ¼ÇLf‚€9s¦³¹GÑ Å_$:Í”XÌÔ•+絫Cª/,R߸ñ˜þÈg×?lÎ.Ù©S7ùlM,þ»+ú°ë¹^½qœHá}dÍè!€Ø.XÕˆôV­]»–’Î;Seä/l.–æ~½!Û qmà'ƒÅ ,d¹Â=i•ÑŠø8cMT¸2Í͸‡±:¬iX_/Z²ap­âï3ª>Àíiä¨sW˜4)PØÎP]¯^½ˆ~g¶‚B'Í{Dió3™!À=zöìeægCw¥JyXIûñÇ_ytš4I¹0<\~ƾ¶Ë—oÚ,rz¸ßP£Ô%¨Ñ»wM5fÌj þþWß2$¯Àmñâì^nÞ|’úá‡Ç¸CRà(”¸AÜ[»vmU³fMv/ºÊäѬ1ˆ_'Óá3[Îôç°âØõù䮋>iÞ# J›÷˜É A@°@îQ$üþûeî…b”,Y"»êÅ‹g£Œ³ßíf#«3uê$qmÔ¡C%²\&7S•ˆÝÄhÞtï^¾œRwÛâh®äÿé‰Ççä„Ö­Ë‘Ëë+*¼-\nþGÝóP»’ʱ’´k×.va"Õ p%†¹¡`:êR9,v9â³' 1sÍ›7g·#3¬ƒ `ú76(ß}÷ÿ@ÁC­ROŠÏ#3ñsˆ›CbD“&MÔóð”@@IDAT¿ÿþ«¼)L3AùCÒêvíÚ•’‹Î±LOš÷ˆÒæ=f2C,€{í·ß¢’ð¹H‘LlEýnÍJžW¬èXÒ ÏŸ¾'4ø£RŠÓÙ‚¼……õ Õ>ø ©6¬q¹­ù˜<¼¿˜Øà¾œ:u*dz3†cÂfΜébÌ L!æ …ßQ–K·|Áʦ6OlÙ²¥-ã3I’$Tíc([±àê4Î5j”*[¶,[Çp…r‡¦»ZÍëb®nÝCbÐ`YK“& ý¾½¯FŒAñ§å½*LuP¢jÆ Tåýξ¡ hJ‹c"MŸ P´èPíóÏ7ÙÖš4i½–!C*àUøš26ùž(>lcðaÖ¬íZîÜoh(.on#F¬ÐJ–FÀÿ3wùä¾_¿o´bÅÞ¦áŽÅ§}²!âa.4ß²åä”Ûßãý©_—D‘r«†ç”D`ÕåöŠÙïÞ½›þ^8þÁd²øqQ{AG{ŠQCz)ý¾\u»¶>€ÜšÚŽ;4n77O Ó;;·y­˜p/㣡¨ÊTA@ð¨ŒpêTTáxìаa ÞH¯n€Âñ°píÙs†Ÿë ® ¬¬píÛWàJ kÖÖ‡ûôúöÛx½á×út].V§NaµdI/Nü¨Wo,e>¶nús_YûÉ0».õUð.œ™”6û¸6dI"¾lûö(rOã6Y²¤&ÒÑ|³ÝøØgŸS¤HD®ŸfÌ g.©å³Mü°PᙨÔW?vׯ?޲úŽûaY2\@ øáøÏ¹sçVË—/×ãˆÜÿG@”6ùUŸ!¥´Ù[}²f}ÊÎTªT6K€µmëVG¥ }/¼P‰•d§ú£Õ­ Æù¢Ä}µ ¬* ³tÑ¢dQ)L}NÌø›ý¬†ÀÊ5vìX¦î@©ª9sæp|ZED6 J› ù(ÑCÉÈô4–^*[6UF¸k#ÕE‘xîêÉ úŽ•+çaeÎ8Wï«U«4§ð ý‡¾¬mW¯ÞR¼R×øñ㨠Úª7߬GÌøËȪ2ÇÛ°8ˆ)n¥Í-D2@£¶l9NYŽYi{ÿýå\÷3S¦ÇP¨5Іz¥¨†`n¨¨®·3¶))mØó¥—žá* ½{ÏU«W÷§âØqÌ¢„ÅýË/WfœºvI¦£©üUG®JáoákÔ¨áï-d}A F" îÑùÚåЂ€ÿí‡1;.œ‘ L+’Ç}Ñ¢Y¨^"Hv»LñÖ5ð9s‘b ¬mHj@‘y¶±cÛPÄ+jôèðÊ&5cR¼xVªß:@*”I5mú©Ô-5$÷‚@! J[½,U ´]¹r‹Üc·mâ‚P—*è0yîÿi*Q¢xª`ÁŒ–|m•+ç%¥í„m®ùCãÆ%T’$ üJÿ=›÷Î;Ô”))ï¬YŒ°º‡2£ì'D¢´EÂ[”3!†,m·oß·Ë'¶Ê—/ƒJ•* )clj·M#’ÝlL°ûçŸ×NP¥J>—qm˜€¸6ÄœM›¶Åa¾?ÀØ©Se5xð"–Û{sÍB…2ª•+û©_¬¤Þ|s¡jÞ|W±¦L²· Ä–!³”ïõëR¼[¶ˆVª4B}ðÁ ®h2BŠ ‚@„ J[„¼H9† j ~ ±fˆI36d¢]¸ð/ųe%é!U¦Lv¥Z‘ìBisWÒJ_¿r弬 NœXkøâP€5U^¨‹c®±bÅ""ÞÒï6hP=JRإʖ®† ["–·ó[  ¢´eÙCˆ¡ÀEjVÚ’'O¨ÀÓ†º¢µjVëÖ!÷hVÎ*ݽ۱ø»§%­tˆÁ+¶råAŽ8½ß_× R¨ñãÛª ~b²_íÊ나·K—*j÷î·ÕoÔSË—ïWåË¿¯^}TVå'²… ¢´…Í«AðCTf¥ §@2¡CçIi+Ä®ÒcÇ.©B…2©Ÿ~:myHOJZéQÚ*{ö§žIŠýkÔ(È5<‡ Y£‰h%ŠÇÊÛÎo‘«´YàN2MªH8pNUr/¥ÍKÀd¸ xŽ”6sLfG%#œSyó>­²eKCԇȖƒ,4ÖJ›'%­t©àª{õÕjj៕•»Uç¯ëÀÏSŒ^*¯5#âùÛÜaBÞvíʳÛVÈ£G/Aï'ªQ£ d…ÛGÔ/ŽÜ|îÖ”~A &# J[L~ûrvAÀÏÀ=zûö=*®~Õn'(m ³>¬m«VAiËÉ\m¨Mjnž–´ÒçO …éQ33Ð ñmS¦¼À%¸zöœèíCr?`Ò´i)r…T‹õPiÓ&SÝ»M™Áï© ÖIÒBH¾5*ˆŠB‰L‚€ ÀÒ†i¦L)m‡‚{íСsDŠ[D}ñÅfú"OΖ—={Î0u‡m0}0–´ª^½ ±Ëò3b«ºv}–2×0âèÙP{uêÔŽªY³OY)éÕ«F ·é½*TÈ¥¾új%¡\§d”ëjôèåêÓO—Pö­}–qHB„,È!ŵ޷èñÝ#±´ùKYIL€47Mšdä"µÏ M—.9[[× ”$! AÁY\›§%­t:t¨HÉ ±Ô´i·¶AИ ÚP}üñJæ£Óå’«"×èruöì1•#Ç5ʾDnò+‹ Ö9r„<«ü~±´ùbÙ@ˆÙXeP@iƒë¬N"”ñy€©?œÅµÁEŠ2U.\U3>¶Ú9C7I’dm«J.ÒM|Eaù@·Î«0ÿÜ+¯Ì¢ÐûÛY-K¨í÷ÒK/QÒF¯PKäž>ø@Íš5ë‰æz3I,mÞ %cAÀkœe-ŠÊçx=d|îÛwVåË÷´úå—ßÕÿiû 2JZyS¦ …ä5Zjúô-ëꊬòøòËÓ¹Æj ö•}A ò¥-òÞ©œH)œe"® åPAà™gò(Ô´¼q㮺yó.×&5B/iµiÓ1s—Ó{IJÁÚ…„„[·î9çÏ(š3f¼¬ÎûWõë7ÏŸ[ÉÚ‚€ áˆÒá/XŽ'ܹÓ3ÛÕ«·íD{” 5Ê!¡”UЉ8¾Ínðÿož{.?YÚŽ[Zâ¬ÆãY—.Ïr Ô/¿ÜælˆßŸ#V‰  ¹˜4iƒß÷“ A 2¥-2ß«œJŒ¤F¡²e{J%OžÈFB )’P“ÔY2ÂsÏPPþàBõ´A |ùåʤ4m$úG:O׉î8Xß~»‘úðÃïÕÆž[ £»¯ÌÈA@”¶Èy—rA $ÕGâÄ ,IvQ´h°¢ÅW!aÀY2’2gNíµÒÓ­[U.N?cFð¬m8#J<5kVŠ8Êf¼Ìö—æ=gΜ!Zšç)æ‚÷“½˜1uêTÞ{é?-Z´ J”Ñ y׋•ÂcèíÛ·)↰¿üò‹jÓ¦Ê;7ŦSÕªU£ìëɲî9 ó¿ÿþK×£þs6}úôˆKv¥ÍîWFnAÀ8Ë -R$“­¬b¿@ë*/^%BÞ-Er·qãQË>gA=òòËϨÏ>ÛH1tÁ³¶A¾Q£Zªœ9Ó©—^šÎ1|Îd–ç¡ÀµkטÊJ†?ÛáÇÕ?þHåÜ Ù~PÝãõ×_W 6ôçÖAY»sçÎê…^°í½råJU¥ ²­¦¿«/«áÇ«§Ÿ~šÏ_¿~}"«~`ëꔽo¿ý–‡Ü»wþ¾ßq5<ìúDi »W& ᇀ³ RTF8~ü"WÀ©ê×/FJÜ*nÜØj×.Çâñ)êW^¹r ·7Ðܽû@Íœ¹Ýã9þˆ„ŠéÓ_¢„‹{dyûJJ9yò¹s篛l™bƒ/c´‹/ª­[·’Ë<ªâÆåË—©ÒÆv+^¹r…þpÞö sÖ­[Çsmé¬9PÇŽE¹®aaÓ-6ú8Üÿùgç ÆíܹÓnÌ_ýŲAŽ7*\íáÇvV3œÃ¨Œ¤J•Š-k°®ágÁ‚ªuëÖ,¯q­ëׯ³‚÷ûïŽaè[¿~=%ó1nÍŸã?ü öîÝKYÕ3´ñÊ ¬T[¶l±Ã 2 àsêÔ)âÜÎï¸8Îì`){ô葱‹ï÷ìÙ£6mÚd;+ÎrëÖ- W¸ÍLìÑ©S'U @–mðàÁê•W^QsçÎ¥ÐID´ÒF§á ã³gÏò¹.]ºÄ2vìØQ9Ò&þŽñ÷Ä“3Ú özqÒA@ð+ãǯÕÊ—ßaª” eÈÐGÛ¿ÿî£ÌQ-GŽ4ö=mРoÆãÆdÍÚ_[¼xe¿«‡ï¿¿\+Rd¨F±m®†¤èN´\¹ÞÐ\ýBibŽ×ˆ9Þc‘²dÉ¢U¨PA‹?>4 -eÊ”Z¿~ý4²Dñ}òäÉéwh¿6nÜ8-vìØ}iÛÖ®^½ºVµjU” ­víÚZ¼xñ´Ä‰kqãÆÕ>ÿüsGŠV±bE^ óË—/ÏŸéË]Û·o>yò¤¶dÉþL!›,¤hh¤ð:¯R¥JZœ8qlû,Z´È&K×®]µ´iÓÚîIIÓºwïÎ÷={öÔ²eËfëÓ?Ãë‘2ƾþúk–çµjÕÒHiå>Rµ§žzŠe6¹råÒHÑâ¾wß}—±I:5ã9Iyâ>à[³fM-A‚¼ÖÕ±!Å”÷iܸ±­g8qâÏ=~ü¸ 0˜’uLôþù‡ñ@ÖN–,™öå—_ò™õw¬.\Èó×®]Ë󌢥åË—OÃ{Ds…1YÙx¼Ã>úˆGJ—.ÍóðŽñ{€>àŽë[o½Å}îÎȃÜüñþûïkyóæu3*ÚÝ?Š¥~›¤ ‚€€¥ µFïÝ{h·Q®\iHpa]CÃçjÕ ÐÿÎ5§ÉS¦Lµaƒw.R¬ÿê«Ïq2—_nÅmP(O&O~¬ ;ÙmTaÂ`óÓ§O«Í›7³ –É“'S!úmlù"%IÍŸ?Ÿ­Rp).^¼˜Oô÷ß³…§}ûöеzõjŠ%ü-`ýû÷W¤È°eæ½÷Þ£,æ£lÑ‚¥*gΜ.É”)[÷H‘ãµÞ|óMÛxÈ ‹¬uêÔ!bç®6Ë)TV­·m,È…IY²ÝÚë~æÍ›§ Dul§pœ)<¼.,R]ºt¡ŒìXfRV) lá{ñÅéïFÞçD,,v°Ž½óÎ;dáÎò’ÂE1¦¿*RZl{“rÊã`‚›1vƆµ°'Þ,S:ÆØ3Q¢D, °+[¶,ËKê ã \ñëܼo¼ñ•-û”ßU£FÔŽ;äA+W®œqKþŒ÷YªT)~oz§3Œa%Å‘­rp+Þ5¬87¬¯Ó¦McÜ`Õ›³3êý¡p¥-Þ‚È D8ˆi‹r¯Ø×—Ä?ÈÈ%K› FJpÕƒ£G/:ù‚‹tóæã¶9ž~H: ' ²8á‚ÝjÕ*D¥ éËcÅM ¶8!½?/²Ê° ,HŠ,LЬc°E.¼ôéÓ³ í»ï¾ã/ñæÍ›³"†ß·²Kõí·ßæ/p<#k˜‚BEÖúC÷œ«†¹PT0Êpýé n=²˜QòMb5dÈVVŠz·M›6ågúØaÆ)²`é·ìžìÛ·¯ÂOŸ>}8.Ë ð(JpÑb”¸ÉÉÊ(”.¸K À²eÏž•¿&Mš0)R¤P:tàu 7Ö€Uoˆ#ƒr„ú™À ëC²p²BW¬X1îæPº8Y œá½@©" œ"ˤB2Eþüù×Q£Fñ™Œ.aìW)”-`oÕ ðA1×›+Œõ1æ+°Cl\Ž9¸ ﬎vXѼN°ïEi öý€@Žiéå8\8Þ|ÜbÅ ´µ=®Q£BÜþ§ŽâñV ÉÿüsƒcÛ¬ú]=ëÞ½¯=eÊãÿa»ïï>¶o×®¼êÑãk[…ïŽëC™Ð¹Užè_üèCà;öÒ›±{ !Ë“FnJ–ò . ֺ̙3Û,bz øa¥Â÷¡ì ž \t¶­ ÔÂ’‡¾âÅ‹SɸÇ_ùÀ–3½ázƒB k¦±™û»¦ËóÙgŸÙäA d†‡såɘ1£Bœ¹8K+(áØÊž¹Áª‡8;ŒÑ›·ã?Œ¥dÉ’ú|E¢ƒ+ Ìñyv“ƒtóø IÙV"$dÏþýïÜñË JÛñã—l®ÓD‰â‘Õ£°J˜0žÓd„‚3’U%Y8¼ç;Cå(n_|±Ùëd½©#š±Ë·cÇileô×>á¼.3O,K &¤÷û[Àô ÅŸ~úI)R„(fqð;Å’)Ô‹D~š4iXIÒׇkÑU3ÒÀE ËšÞŒ}pK¢ûõqž\áíÖ­»E1ЏùàÆÄ¬YpïÂʈfL@€îU('8·®Øb’Œr¹Ãרða>”04Š%´Éƒuá’ER”V£<»víbw±Y‚;–¶‰'òzÆ?` D’¬”zócÈY,¡7X÷` 4b`uF}|¨\Ei •7!rŽ*#PâÃ)¡´=xðˆþq¿`ëkذ+qÛ·Ÿ´=3xê} Ô$ElÜ„ kõGA½Æ‰›Jm½Hî§ÄªmÛ©êڵȢ)$¸°:Áõ&ÜypÝ¡Rn?(RPp`©ƒ¢@òly›1cA¼ÓСC]ŠŒµaƒ%™¨p»é ÙŽˆÑ‚’DÉ V»¢E‹r7âÔŒ®WÄwé±aú|ó %,EˆwÃ>°HaX÷¾ÿþ{U¯^=ή„‹±v~ø!+J ®RXï0.Fœ rCyB,2S£ÓûŠ([ˆ­CF-,i8p…½téR>#a¸}a9ƒ«ÖR(_V4Äé/È å )âá‡;îL½¹Âëb/sæ/°ƒ»®pô;–—ƒû6œš(máô¶DVA ŒpFû‘={.]et‘".R$(<|øŸå©¡´íÙó»º~ÝûØ4Xóúô©Éô.DÑEXnÀ‡°ÎÛk¤¾øâ4›å1€"„ìVf+îÍÏŒÂã‹Ö\ñ%ŽÖ²eKEYˆTçöv'B… n?¸B)\¸°¢ìKT×׳Úñ^ çhÛ¶­¢ŒDæÓÇc~Á‚ÙªŽ7(jú›(ö²'õ¡l ÔãÊô1¶ÎÿÐ]¬P¡¼èÖ3È E !‚ìáÒüæ›oXq‚"Ë\Ńx=(‹#FŒ`«"bñ‰hæ½aqreuÂxü@ùš3g»á~…u Ê1ÎŒù°dº٬Y3Žÿƒ’¬'?Ô­[—é=GˆÅɸâœPvñþjÔ¨Á1ˆú{ÄXW#ÙJ-”2ȨŸÊ,Þ?w`…ø5Êe¹°¦¹ég4?ú=™K¥ ‚€ àw¾ýö'¦ó@ ¿¹µl9YëÓg®Ýc"Ÿe:½{·{®ß5JËœ¹Ÿ¶lÙ^ý‘W×û÷jeË× ˜ïÕ<>qâQ( Ö:uúR³ÂÊßûb}róyEùá­LÄå†7ã¦âÙîÝ»™ÄØ ¬AAñ_D+s“çƒòÃØtÊ ¤ç±”­hìf: âc «½íG㆔A¦Õ ‹’Ã*d‰ÓÈâ¥Q&¤CÅoi”8 ™åvèåàAÖ1xÚ4|67rA[î ÊDŸCV0¦o!w6QóÜÖÛ® üp‡1(_°Ž¹á“­Q åÚæñÞÜ“(”A×hEA@ðÈ ¹íÙ³WÖŒJFxœAŠ/¼P‘Ç­]{Øa<$OžãÀÖ¯÷žúóQ¤~À€:ä‚ÙMвÑÌ‹äW_ufJ“ÁƒS”°ÜnNÐ=À-ЬEsÃ3¸u ŒÞË ¬mp'zÒ0ÖœoœƒÄ«½c¢ó™xé8q¯¯ë,JpOš,T°²9“Û<ÞÓ{XÐ`Q+Q¢»œÍóà¶µÚÖJÄí,j°"q1gÍÆp-súxÇpÅ"KÖÕÚúøP¼Š{4ߊÈ$D ˆiCs׆çwî<.US¹r^®EúÇͰÀêmI+ãÍš•& €4ä[i|ôÏeËæ ²êë¯wPœOhÄÝ@\&ð¸=iƒâ* ÄÄ›®ôàËߪA!ÂiþC ¦c,J›ÿ~·deA@0 €Bð2¤¤ R«d„¬ƒôŸ­x<¦!ãåOrÌ8Õ—­^½ dƒúÃÞJ§÷»»ÆŽ‹‚¦ëR°ô^ŠÅyœán^ úëÔ)LAåÍÔGýÀ¼Ø3ö_2G³gÏþÄÇAö)ÊeAq36Ä× JUñ,xʤù˜Ž±(mþûÝ’•AÀ„€³Âñ™3§"¢Ë$jß>{å«iÓRœˆ°ukcºi9 |ÎÀŠà“ºH±^ݺE‰Ã*+¥/3/ô{¸ˆû÷¯Cî¾oÕ²eû‚.|Ü_7åÂ¥l¤Óðõ²^ô¥-úÊ ‚€ à!Î2H1qmf‹Yûö(L©3¶9Ý.Òõë‹c;`Ѫ[¶'W«÷¼oËùôQÿþµUçΕUÏž³£}NŸ &‹T@†¦¯2]W­ZŤ¸¾^[Öó¢´ùKYIÜ ¥ÍŠ`Ó¢ÊYµ[´p©nÛfmiÃ`(m°Ð]¹rËn®77åÊåd‹Ûðáˈ ‰ƒ¡Õ† kLå€Ê—ÕWä¶³//Z’Š4¾D€²íqk£¼èB Ä™ƒ)ó•)5°†±Q%ó ¡\hîÆK Di w!’Ü£W¯Þ&^§›g-V,+ůýÍT‚@–dåÊ•m¼sPôÀ‹†,Op !îÏ‘0ˆxQŠê£>R(È.-¸ˆÒ\üewA F!Kš³ R|ñ8pΓ Šóý¬YQ%ì:é• Ê•Ëm×aΜi© v%Î$½}û¾y› ß#cqâÄöT$=7}IO% ËÅ Ë$ø¯X±‚«9€Xõ+  2ˆ€uB[𢬞¡òôiÓ˜dÕœ5æ¢jH}QS¤½°Ò‰Îbþ}.J›ñ•ÕAÀ€@ºtɉ_-‘ei† )¨>`2»âñ˜ZªT6æÔZ¹ò Ó*Õ« "áÇmÖÖ^}ìÛ·sÉMž¼Á«yŒŒZ”»BVm«VS,•ß@É"ûøs‡R…˜¨Ú4iR.KušŠ§ÃjN6sƒ… 5IчJà;C T”iY‡xJîܹY Ô«. d*!èün( •:ujv³š÷ÐïA{‚ćGÙ,ð¿¡Âä…‚W¬´À! J[à°–A€È—ïi*µsÉ dqîßog“(Q|RR2’2u_­^}Èr\¨ˆiûå—è¹ ‘ÁÚ«W ²rl$WÐu˽‚ýq~3gv&’дT’g’(nÁ~!ÑÜå– ¬´Ù³gsé&3ù¯qp•é ã`ƒë ÊIç¢Èfµ8qb«µkØõáæþýGD0D Öˆè ìË9 öàÁ/¿ü®4O_Š)x»˜3‚7Ù®íÛÎx v'І§ƒ'Œ;g̘Q 4ȦLx0%FAF)~¬$<G’ ’$Ib‡ÏåË—9î̪¨=¾ò¡|Áºw…ÓïÝ»ÇÅ×qrv›É #€¸ÄY³f±»ÙìK›Ñ•¥AÀ4i’rÉ*gÉÎâÚà"}ðà?¶¦YÑ]ćÜ7yI¡‹~\¤.Y2Ú¾”3JO:O`q›=»+YLÒ%ç–ÊБT$ñÔ8µRذú .ì °¡O/lŸ.]:ÜÚ5XÔà’‡›;… ‘-* ›„A½¥-¨ðËæ‚@ÌDqmÇ;‹ksÌ JPÚΜù[eÍú”Z°`·%pp‘nÛvÒ)5ˆå$‡ ©Ïñu'®w1*4º ¸ÍÛÊe%es2Å3ý‚‰‚€ à3Dió”² xŠâÚŽ·Î E9«sç®8”¥B©©GþSˆoûî»_,ËMúãîÝjûö“žŠârxãúõ«M1=(ûŠË±¡Ð™0a<õÕWÔ³Ïæ'bÖ©!YK5ppE@”¶p}s"· ÆäÏï:ƒG3'#@Ê•+Š&Tÿ}Ã2S4}úäªH‘Ì>s‘BP€€Ndذ%¸ ù/^â™ë 6,N±ÓˆeÈË, ‚€gˆÒæN2J|ˆ,m õ°ÊôL•*1+If’]l_¡B.â¡:ϱk³gï°”.Òõë£Oý¡/Ž*Ç7!–úƒjËç…ëõñ¡p;Ñ9´Q;VR¯¾:‹èK¬ÝÉ¡ «È ž#×ó¡2Rß  g7"® å«Ì qYûö5?&¥-7+ cÆ´Q}úÌe¥Ï<|mcƬf޵28¬ñ$ž}6ŸªS§×^L áë Š\84(›I“&$ï<õ×_7TÏžö¹Á<þ}û(ƒøÛ`Š { >CÔ(h¢´eÙCì€5 uH×Vµj>»>Ü ƒtúô-Ïai{ðàeÇ%¡z‹I¨¤ÎNŽ93Ä\¸RA´ë+¥ ë¿ûncŠI¤¦[‰µþYã–!ýùõןg<†ýN]¸ð/¥6sÊÉȃ̘1CáGš )€€Øß-<þ»èod}A@8ˆksžAšE]ºt¬Cöõ?Ÿ~:ñR¥U»wŸ&ø²¤´í²+Ù£ ¾(i¥¯‡+âÚ^}µš=zËfì õÏ/½ô ±í¿ÈVÊNfÂLþà “Á ’~PÌßM”6#,ë ‚€%îj‚OjïÞ³samÛ±ãWÊŽ,O–£«jÆ£cà"ݳçw‡ T‡^>€{¾×ÿ€‹ôÀ?üZz $öë­Eêòå›úÖa}m×®<ñþúë_ªvíÑjÿþ?Âú<"¼  ˆÒ oQÎ „1ˆksfiñ¢Hv“×¾¶íÛ£\¤¨KZ·nQ¢±Øj‡F¥JyˆH6_°á[o5PI’$P‘à&Õ,Z4 Yû«Psçîä÷Q•ÃAF@”¶ ¿Ù^”ÊŸ?ƒ:sæ®n`…G¡B™Øje׆˜7(}ˆ¯2¶—_v¤ÿ€‹tõjÿRe(W.§êÑ£š6liÄ»cÇŽ¥ºv}–â ‡PY±bì®Qãcµi“ÿ“?Œ˜ËgA ’¥-’ß®œM t=zô·9nÜØLåá,® .Rc2Ö([6‡*V,+•bÚh[²víÂLYqð cY,Û 0àyN–èÑc6ŸÑǡÜrP¢á2Ý´é ŽUlÛv*s»ýôÓé“U QÚÂ퉼‚@"3gZª×i9+qmV–6ô!áðá ³†{½uïþgpЇV´hf•9s*µr¥ÿ³Hu p~úi{uâÄ%"ß]­?Žø+Þéôé/«ï¾ë©îßH T«VSÈý˜ž%âA >F@”6*Ë ‚€÷€ò¥’޽èt2âÚŽ»hä^¡B.žg¶¶O ±lFk\¤TÚ hIÞ~»Ÿ­S1ÍâñâÅ=ÔÂ…¯±¥±I“‰ªyóI–Q§/^:AÀ†€(m6(äƒ ĵ9rÁ©°´Á…ºoŸcáò)©Â…39ĵ!ÎêÕWŸc1½ûóÏe‹ÞéÓQÖ7§ú¸£C‡Šê¹ç ¨ž=ç(Wfð±èN—«Y³¦BµO~@„¼hQÊê]H®ÓªaÃ7=šçÉÚ2Ƴw 8…&NM›6uúwÌÜ×ü@îA@ ftYëÈ è!‹¹µì%aŒ€(maüòDtA Ò€õÉUi¢Dñœ¹HŸy&¯ºxñª:uʱpy¦L©¸¸ùäÉQd»uëUÛ·ÿêÀí(L3eJ©Œ0þn¢Ãø9PÛÊ>‚€ ÆH"B¿<]ˆ4`i›3g‡Ò4é ¬Î©³ÊÅ‹gQÉ’%$kÛ •+WZ‡é ÿ@i¥ѵ Š'gœ¶hQÆal @†W^yŽâÛ¾¥ê Y˜«.ûÆÔ=ºtéBqü¶òS§N%kî»õ“&MJYË娤Y*ǖЮÏß7>Tׯ_§ŒéÔ¼Õ¶mÛÔ|`Û6vìØT.Ÿª[·.ccëpñÁ¼¦³¡¿þú+%ÿôtÖ­Ê”)£†î´?PæótìØQ5hЀ…šJ÷K›ÇPÉ@A@ð7HF¸}û¾rÅ¡†¸µC‡Î[Ö)Io… ¹-ãÚ ;¬tÏ=—Ÿ*¬ç‚î•+çSßÀßÇr¹þàÁõX®®]gJ|›K¤¢ß¹yófªëߊ ‡&âàU¡B…l?àG{ýõ׉›®aôáå Ë—/§XѧԃQ±“.\ XÎUD:…åËœ9³Ú°aƒçÞ{ï½çÑêæ5M‚‚š;wnÛÏš5kÔßÿm»Ï!*ùÈÙü@=7ŸçöíÛ”¸t?PÛ{µXÚ¼‚K ‚€?È›÷i…ÿù#® e¬Z™29¸,Òþýp}QóÔ!3fµSk]¯^5XùQN©^½¢êÍ7²¢*`4(šS¦t$’Ñ,˸qm‚!F@ö=)½í,³Ø?XÿêÕ«Ü—&M»3þõ×_*EŠêæÍ›êÀTâ¬(+7ˬ½‰'V»wïViÓ¦UyóæµÍ‡e?ºÕ ²á÷r¡¥J•J=Ú6Ú¶m«æÍ›§._¾l·Ï¡C‡øLÙ²e³w·?â|/^ÜvþóçÏ«äÉ“³üÇŽ£¸É¿xÝ3gÎõ9ªr¼õÖ[*k֬܇³vëÖM½óÎ;ôw£ Uæç·nÝR?ÿü3Y€ó¨Œ3ò3àn^gÿï?_Ӹ<Ï Nœ8‘çáÏ?ÿœ-XØGoFyOŸ>ÍÊ$ðÔ:àŒ³BÉŒ'† 9ð;„3áwBo=b9nܸ¡*Uªd{'è·’Ñê<Ÿ}ö™íÝb~GöìÙØâw*Y²dxLDÑWXÆûÞ¿?ÏÁï"äô[£—%MA rå‘Ẕ§X±·µÉ“7XŽ¡RWZ† }´ýûÏZöãa³fŸj-ZLÖ®\¹¥eÉÒ_[ºt¯Ó±êX·î°–1c_í«¯¶jËhïC®Fˆu=^‡¾xµ *hñãÇ×èKM#NëׯŸF–(¾'eƒÞÛ~í?þÐèK_›4i’mmú"ÕèËP#ÅM;v¬–$I ã±N½zõ4úBæ±C‡åg˜õÉõ§½ôÒKÜGʇ6bÄþ èK×$eK#M[´h÷µk×N+P €F.E›¬/¿ü2÷᜙9Û=}ikÝ»wç{rj¤€Ùúôƒæ½H!ãG_ý5q†Zµji¤`rŸ»ýß}÷]Æò;œƒ”Až‹3’«“ñ©X±"ÃúÀŽ”"mþüù¼ßï¿ÿ®‹Æ×]»vñóAƒñ=äF:Æxo¤id•sXsË–-)R)ØüCÊ0¿G» èë 6Ìî±Q^²DjäBæß})ó,×Þ½QGñ;DVAÞgÂÙHäáÿüócg…”+íË/¿ä>g2Z{|ôÑG¶yéÒ¥c}:[íp>X)a9ÓÛºuë8V Ä­:†8GöìÙõ!WX`¡ƒl°~}øá‡jܸqDvý/•};N5sRß}÷…<ç°æ›o¾ÉV-XGa%„kØ7ç°™é./,qž4Xô€)÷ªJ•* q„h¤Ì2nxw°hÂýÆ*ß±@IDATo°…Ì™ŒVçÑe€‹´C‡ôoDÆ¿o¤«^xÁFˆ‹½^}õUþ=.`X5ýÕÄ=ê/de]A@x"×6þO.çBi›2e£Ó1p‘"áµ×ªYŽ)_>ǾÁŠ,Ò÷ß_Î1r  fëÛ·Åë£/ójõêþ\¶+˜òøcïöíÛ«òåËóÒpmÁ-ˆ/B4¦ë_x‡òXpÅÁÕ¶iÓ&5cÆ vAÁ¥.OÄb! n9(Gpiâ š¬:ì’4*B¼‰áW^y…÷Ç£!C†PaûÅ„w\„P²ÐÈRÇ ”M(æZ‘P ŠNß¾}ùÜuˆã‚kÁíhØ AãÆYáÂ3(«W¯¦’kã–]ŒVû#>n](hˆÃ:ëׯç{üѬY3EV Û½'ÈRÄk%J”ˆÝÁPªñJ1J¼(sVmöìÙÜòäIŽ„Kã=mÞÊKVOv}c}$ @‰GCªsäÏŸŸïGÅ¿ˆç{ɺǿP¸u×7+Ì×3*‚èïÊGà#Gî÷õž£êëe=A@,@éÙ³—9ÎÌ¢›•.ƒ¾o¨ß¿l9 °VÝ»÷вû÷¯Í ¨gŠä‡M›¢þv:!@&´£¸®Äd‰™ÁU´mÀ¶Ñc•°!¾ɵdÛ 9‚ø_äè‡u?ˆC¼ž‘k‘c¬`©B¬7ÄA={–ã» °éMÛÒïWã+âÖÐôx-|úõ>ãs«Ïˆ¿‚‚ƒXŸ Ä ¾K·†‘k’§ÁbÓ¨Q#þA쬈zs¶¿~F£RLa±Ób½mP|¡l@qÆ;èÓ§[æ #”I(Åι•9Ê ¬sˆC󦹒Bs#w¥íKì¥xcñ»LPü><‰ŒÀ VH½é¿¿:ÞFYôG(êþj¢´ù YYWždxâKãèÑ‹Nçƒd7>•¬rFýQ¥J^rWÜ'ÅÍy¦`ÅŠ¹Éâ“‹¬7Û8¡aÅŠýN÷ dG’$ H¦Nä¦ú‹©@¹w ö‚bæIƒ5 –)¸÷à…Âê (AÈE$,Zø2†Â3mÚ4NJ@²‚±¹ÊE&¥ÞànCÓŒ}Ph`uÑûô9ž^¸Ž@¸ÑðÅEÖ,¸øð+‘1{ÓÙþO?ý4[uåë!HþIeÃ|4X1áR5 ¬RpóÁÊÙàvöÞ ÈÂJ +ówìØAŸÊF-úbc榕{ÛJ(±P¬©Þ(N­µøx5>ô¬Ñ²ÿßÕl%‹>ÖWQÚüª¬)OŒ@–,©éË9!)m¿P͋Ň2 3SœuìWÆŒ)ÉՓ޾tœÇ3aMXÛ¶l9Îk­]{˜2Áü÷?dó\Ý#svÒ¤öL¼K‰ ®†Ft\¤pû!æ 4(;°ž +ŠK‰%Øú†¬TXܧ†'Xh/둳¦Ç¼Á%:~üxΦD)¾œçÎ˱Q°A‘ „îCœêógü¸)¸<]5¸ra B¼[ýúõÙ:ôöÛo³ëôûï¿çµ›§7gûCÄkÁ% “7* h×§Ú]u«#ÜyFEJ*¨>°wÿþý™Oíµ×^cK,EP‚`EBd’ê´!æ5q.dñâ úŒ¥K—Ú)^v¹¹å´)PÖ¡°yÃãÅ{ã]@Y‡ÛX¸~]Éh>.",lP°Ÿ‡ßàÌRX#™¸úø€\é%JA ¤hÔh‚F„³.e6l‰FD¹NÇPy(ÊÈí´_ïhÜxeoMäÌMRÜôÇ!q7n–5kmçÎS!!Yo³GÉU©3ƶ }ùi °ÝS€¿Fq\¶{úÂå NÌCæ¢Þ=‰L>=[‘” cѰY?àcÕõG[ö(¹Î´‘#Gò8ú¢ÖHá³eý! (D¸Ù›ô¥Ì{cd‡êó0€¬f))<³G))A#«—­Oÿ@Jˤg3’BÉòc}ü #’,]<ÜÝþÈìÄõŒEd ’’ÊsgÄЧc°Yú4Jàýô}±YÆ4R 5r3òƒ‡~àKqsœ5J kg†’¢Çg§˜BÜ©ôw8*•¥?€9)aú-_Íò’…‘3~!2z‘ù‹Ïzö¨ùwˆb9K‹!ƒ– x<ð©\¹²FŠïãJF3FØCÏ¥ÿ0h¤póš8Åj¤Tòš¤ìr¶*ßФÔñ¸~øAäöêmö(4oi‚€ „Ħ5l8Þ¥Lß¿_Ëœ¹Ÿvóæ]Ëq«WbEìòå›–ýúí[O0EÈsÏ}¤õî=W2×N¾ÔŠª;w%ddÒñViÓçyz…¢†/Pó=æƒÞ4:…†qM| SV+!Ï?ÿ¼Mi3ŽA–4þ¢ÅXcƒÒ%…,K¹Æl ¡qŒ/>“‹òY…ì–ódœŸ\‘eÝÚ͵º!.2ÆËªÏÕ3ʵ›GI"6Åμ&äÁx½‘ÛÔ¦„êÏ<½’UŒ1!·´§SìÆ¯›%.®d4ŸÇ¸ b²|òùŒÿy0ŽyÒÏÞ*mÎ# Iµ•&‚@0(T(Å1¹Î -U*»zôè?Š5:«-jnˆYq-)e\sÔܯßcnÙ²9)ç\$·U+ ºÈ$&«Ú·ÿ‚\O½¹’ƒ.{$_á%‹Ø#ÌÜ@°J–óc¾‡+?ž4ÄÎáǪ!øÞU¼Õožb1dΚ«ýq~üxÒ@PŒo›1¨sÉ‚h[¼¦Y=±Ã6Á‹ˆ3&‰x1•‡Évs]Éh>q J–,i|´Ï¡ó/SÐ A Ô(T(#ÅÐÜ£tûÇqfÓ§ONy©òµ%Mš€þ¡Íæ´¤•q=ĶýúëŸ\<J^(5Tj˜5« ÅÓÜf*(ª1¡!Ž àH40fèy{vp†YÅvÄ™Òeõ8ƒÕ‚½°Î-ûºG@”6÷ÉA@0ùòeà@èÇ­y¡tqÊ”ÉNÉgô[‡+²H‘hà®U®œ—‚‹spÄŠûÜ x?+fÎìÌg}óÍEß?‚ÜuíÚµ ¤·Ñià=C ½¹sØëÍù ÃfÙg|ˆŒUÈ¥Š!øÛÜïiCV*26ÑtO®\&ötO÷q5É[·nu5ä‰ú@ËBÕ žh®LrŽ€(mα‘A@‰Å£/Á´”Eæ<ƒ¢¯í—_Î8•²J•|T«ð_Ê$ûÛé½cðàú”Ùw—\ûÉEzÖ¬¢E3sFéܹ;)ƒm£.¶\ƒ„ª €'.L0შ÷Ì™3¬"kÕ“Ö¹sg[V,26‘YŠ,Ç@6ÐzP¬—Ï·DÔ†•æ[Dió-ž²š øĵ¹³´¡2µkwÈJqÉr×%²RÙ „T6ɽµ­\¹œTŠ'+n¨¦Š­ví¤ 4$vþTºé`(Š#dB¼(G@»±bÅ ª¼ñš8p B­êÕ«S9²l1MÊs¡rý:h;@£k8ÙàÑŒBéˆëGºÛ°ÅsPš€§J—³J¶ ÿÿ Sv˜ŸãrpI› „¡DÂM 9ÀÙfnP4aµÜ´i“Íjhc¼÷–x×8W>+%J›ü‚@H"’Ý#G\[Ú ØŒÖY­N$" ÑÀ¥ Þ„þŒE_ÈëCե˳d©@¼Z³©¼ã—hÈ A‚}ñÅTbìi·+ø¾P: øÂÀ»†q¨£Z¬X1.UU¼xq²þžSp‚Ó .`TA08ÁtÅüdü?øÂtòZ4”ýB%Œ¯V­W[€LÎÚîÝ»Ù*XºtiË!(õ…rXpcÏo¾ù†ÇA)„ .Ôƒ…•ÅÔáªÕ‹©[íêŒ9sæ(”–‚ˆ¸·‚ ’EüõÕW_q«yò, Ç¿U‚ˆ !„@ºtɉ’!©Ûd„²espù¿þºn)}Ö¬OÑ—NZú¢ô¬ |©RÙ(®(9¹ˆvqýRËECà!ÜÂsçvc bÛ¶SY1 ±b„pÂÚfÕŒÑ›®ôà1kDþ«wY^=) oŒ}Ó‹¦c±¶mÛrù-ÄØÁr¦»>-7úÿCПè*CðGXß €™ùÉàîEŸ'ÅÔõ5­®PJÁ¿+#âåP& JáÁƒ«i…—þL”6 ¹ ‚@È!P¸°ûd¸G»æ,® ‡‚µmÓ&÷É:/¾X‰Ü?©v¥çô úÜ@^ai›7ï*¢~¾ð¾$™C£vj 1Æ^ˆ#ƒ¥É*;‰ cEŒ—ÞŒÅß·mÛfGR«1^¡A‰1& ©‘Ü´VÊd)Ôàe °#Fp ÕXý²^õ†Ø:4(š È5K‡…Y¡2¢û!#bßÜ5$`€X"&sÜ^=iÎ¥Í96Ò#AF `ÁLäuÍÕòYÄ¿9+# ®íàÁs»[µ*Ç_˜PÚP)!”[¶lO±ÅíÀ?(‹ñk»/úP–;œeC¶h–,YTƒ Xñ€E ±_ˆUƒ‹±c3F¹÷qN¸GárDð=24árDƒ[ úŒÍÛ¢ðƹT¿•ÝšHhèÔ©“š1c+Yà“sVÔžêÁ²… Jøé—%ä„«Lja;v,oÕ¢E NŽx’bêPF»víÊIàqCÖ,%£‡{X ¥¹@àIëeɲ2Í&×ÍúŸz|ËqM›~ªß6n\Ë~óÃ3¶©wß]Ê–«íÛ‡­B*ó»_³æ0YW¾$‹EuõÆuý.ØôsæÌ©¦Nê÷½Bu*úήLÔ:…ÕÈè¶ížWàGC XÒ¤IíxØp&Ðj€ —>‡#"ÓIÀØÃæ0ÐÃ÷îݳÌxÅt$P 9 Ož<\D_*2aa „õÍl £BëleÄÙhaLÀÐ×0^1îciQ´iÓ†“/œYAM8í÷¨ ¹ÐA wîtô%×-É. ¾?|øHíÙó»Sáá"õ¤¤•¾@ƒÅyÍT©’P|Ð ýqH_kÕ*¤>ù¤5Q=¬S_|±%¤eáP_©R%®UjTØÌçs¦x¥J•ÊRaÃ|ÔFE’€/6¬gEQ‚çh(^z«f¥ gBR¸âÌ æéÅÔ¡°šç¢ßÜDa3#âݽ(mÞá%£A € ÁuHÝUF@ñø,YR»¤þ¨Z5ì=zÑ£¤I“”+$`]r«ùéæ{PË–e(†ª¡6l šÿ1ØâÄèýu¥Ë•2£’Ã{€(m^C&A €¯íÐ!×ÉÖ6WÉE‹fa ‘='òlÔ¨+Œ+æVo½µ8ÇŽÖ^ݺUe÷è›o.T³gÛ·Fka™ìà¥Eœ8q¼š'ƒgˆÒæ y.!@á™ÝZÚ (øÚॸk§rÃEºq£g|mX¤nݢĹõÅÕågæÍÛítíPëèÕ«ÕÀ¬CÊÛ·D >r‡Ž" JˆÒJoCdÀÕvõêmâšú×¡Ïø–6ÊuYAʪ'ܾ}ß8Õéç”)Ç[~*ñsšJöTâØ¶[·î9j}ûÖRø0`>ÑMüjâ‰<‚€ à%¢´y ˜ À"68ƒgÍUË—ïi*ý“ÈM\[~® °mÛIWKÙõ5n\‚J#n©*¹2s)&\¤Þ$#@i„‚+UÇŽ•HLK™™¡[LÞÙᇠ©¯ºty–¬n³Õ’%{ óêy•*U˜ «I2Xl€Ò¥bÅŠ¶{wÄÒæ!é #€¸¶iÓ¶¸•£\¹œêƒ–«3gþqj ƒÒ6nÜuêÔßÄ?•ÖíšФI)ªí9)C†oB–¥Éä2=Î5M=Z D ­GÙÿ‹atÚСC£3]æ ‚€—ˆ¥ÍKÀd¸ XÚPýòå›.7/V, ‘}ÆsimCyľycmƒ¢‡9K—îUÏ<“‡Š!.´ï8³Ô¥@!Ø Å­ÿÚTsúì³!(¡ˆ$Î¥Í2ò\BXÚÐtÍ×/^U¢D6—J[ìØ±T•*ù8®ÍÓbÝúõ‹ÉnT ÿ;ï4¢²D—©÷6O—©qÈ(…Åð½÷–«Q£V†”l"Œ 8G@”6çØH „H È”)•ÏâÚªW/H¤§¿ª;wx|B¸HAòûë¯q SØŽ½Jýý÷ ×¥;WQcÆ´V'®SC‡~J¢‰,‚€ àQÚœ#A ´€µÍ“ʈk;}úoõ×_×îÎû÷©íÛ=§þ(_>§Ê!¥Z´èg^·wïZì2 g…§U«²ä"í ¾þúG¢ùÆ%1±S0¥C†€(mƒZ6è €¸6w\mX¿téìT6(¶KiÚ´ÉT‘"™ÕúõG< õ#7.ÉuH1)Q¢xjäÈjÙ²½^UYðxà ¬W¯˜úê«NtŽ}ª[·™êÁƒGÚY¶o¥Í[Äd¼ XÚê®"(: à¹£þ€‹týzÏëâÐÍš•âX6pÁ¡Áb×°a …ŸÞ¸Zyrýò^sçv#.ºªU«)êÚµ;!$ˆ":¢´éHÈUB(bš¦yì"u§´U«V€Jc]Q'Oþéñ¹ ̨òçÏ`s‘bâðá¹ÌÖ˜1«=^'­¼ti/õÇWHÏ×P”Sdb2¢´Åä·/gÂL™R*$$x×vôèEuýú]§',Y2+¯ç‹‹5o^Z­X±ßæFL—.¹<¸¾š:u“:vì¢Óý¡¥ÀV¬èô)õëSû÷ÿb‹Œ‚@ŒA@”¶óªå ‚@ø#k›'•`5‚UÅá5ĨÁ-è­‹Y¤pç½ðBŽ8pŸ…{KŸ>9Åíõ䘿fÍ>UkÖ÷#‰ü‚@Ä J[ļJ9ˆ ù ®Í“dXä`5Ú±ã”KPà"…bç.NθH† )T… ¹ì\¤PGj©öíûƒ31ãÃñ3âgÍꢚ6-Mu\¿ [>ºpÄ^d\! J›+t¤OB d|ž8ñ§ºwï¡[¹P‡\l®ÚsÏ ª—¤r5ÎÜ׬YiµnÝa;÷k(û²*•ÑZ¶ÜmÆs‚„xÔ¨jРºê­·«wß]ÊÖKãù,E@”¶Àâ-» ‚@4(Z4‹zøð‘:zô‚ÛU` CüÛíÛ÷ŽM•*1<Ϧ֮õΈê±cÇfºãâýúÕfî6”¸Š”Ö£Gu5iÒ D ²Mµoÿ9']DÊÙä‚@¸! J[¸½1‘WˆÁäÈ‘F%K–P8pÎ- °´AÁÓé9œM¨Q£W%­°NÒ¤ T:…Õ·ßþd·¬Î݆¥6xG'b·PˆÝ4n\B-YÒ‹3mk×þÄ£d;‚ˆ#D¢´EÄk”C1¸HpŸÕÝ\¹Ò©;]»HkÖ,ÈîÌ}ûÎzb‹eÔO?fî8ãDp·5iRR ¸@ݸá<{Õ8'>#ÑbÕªþ*{ö4L ²`½ÂgpG@”¶pƒ"¿ À‹Ô¥ °ÀEºs§ó RŒïZæÌ©ÈEêyuÌCÑùôéSµ-ª¬žéíý÷›1%ȰaKôGqE‚Ç7ß¼¢P·´OŸ¹ªW¯¹¥˜FÄK’CD4¢´Eôë•à ‘‡”¶ãÇ/qíPw§ƒ‹´»w]†ªŽàÒ†@ý¦MK©… -Nˆ•9²9)8»Ô¦MÇ݉Vý87xé¾þº %pSÕ«R?þèÚšVaF@”¶~9"š 8"P´hf¶by’Œ¥íþý‡jÏž3Ž žÔ¬Yˆ©DþüÓy‘yÃpÛÇ-Jså€;©EêÖ-Ê%®œï¥ˆmñÿEwãÆ7”è-&svéýûR·4Ä_›ˆæˆÒæ/PÄb9s¦¥D$#¸k˘1¥Êšõ)·.ÒJ•òp€uë¼³¶ÁµŠ;sB‚þNFŒhÆV>ÐeDbƒ»tÚ´—ÔØ±m¨véNU£Æ(µ}ûÉH<ªœI Di ‰× B‚€7D%#¸Ï Åšˆksç¾K ®zæ™<̽æ‹„„eËöQÁxGj(5p“Ξ½ƒ*(x§z+G0Ç·lY†²eßàÄXÝzöœ£þùçf0E’½ˆD@”¶ˆ|­r(A ²€‹ÔKP¨X1·úå—3n yá"ݺõ„Ûqfd×,ê‘ZµzõŠ)ñöï?_ýûïm«!ñ µagÌèD|nÕ®]§TåÊ#¨ªÂBÈoW*ˆÒ*oBä@г?xà>† J*(üòËï.ׇÒvçεmÛ —ã̰¦aî¼y»Í]¶û>h¦âÆMÕ¾µ=‹Ôµj¢…ADÄ[Q º˜\¦£)öíX¤WÎ%QÚ ·l&¾@J6O’2eJÅqmîb­P(ë®^í]uœ§uër7wJ={ÙòxÉ“'ä¸/Xã/Þc9&’&J_ RŸ]¦Ù³?¥Úµ›ÊÉ žZG# 9‹ àKâúr1YK@ 3gšÿ'#œcEËÝž°¶¹‹kõkb—Eª¹[Ò®„º óáì€uìúô›Ê•óª—^z†”™E Y­H’ˆô–+WZ5}úËLBÜ¿ÿ,ª"1†,o™TƒÙ"ýèr¾Ž@Ê”)É_Óç(ÄÒ¨ù|UYP?#дé§*wîtTÔ¼¥Û.ü™*Ì'—ê‡ IÎÚáÃèÚ‰ù¿ŸGÊ q÷Þ[®–/ßGe³†Û}_Ê@=õTRµhÑk*V¬Xvý‘|“3gNuñb:â#ʨ=ÉG•³ ªX±bĹÏ×Hì÷¨¯!•õA À•éI RS¡BT\ÛÏ?»V ʨàN}2iYuîÜЉsNy‘0a<5eJµwïïjâÄõÁ)”66¬3Å þÆÉ °È`‰¿C† ñÛ_;QÚü­,,þD¤ž&# ³1[¶4ä"=åV¤Zµ «5k¹g'OzUªTvæ+3÷ï ÌÈF^EÊÛYc—|AÀ%¢´¹„G:A T€¥ TG^ôHÄŠs©;Ü—[B&èáÃçÕùóW=Z×8¨M›rjåÊêêU×Ô]ºãrx¼xqTµj(®Í{iâÄñU£FÅ©PüN—{ Ù¦&´c Won’‚€ c¥-Ƽj9¨ y/žÕc¥-C† uKÝñµ¥Úµ ³+õúõ»^ƒÖ¦MyuäÈ*6€*äµ×ª©·ÞZ¤Nœ¸äõ^2Ab¢´Å¬÷-§" âų²ó§[—§~hXÛ\ewêãªW/È×­û{W.UÕE7Ý© ÒÝÒ ÒÝ¡4‚ Š-J4JJ’Ò!" ‚´€Òuÿ½6ÿïfæÝéy}¾oÞÌÜsÎ>ç¬;z;½O´[ºtBPÂŒÑkÛ°ÈË/×§B…2SÏžS¥"ƒ¹}GŽ¡zõêÑÉ“'ƒ¾‰Y³fÑc=F?ü0U©R…Þÿ}úóOÏÕ;‚¾) 0@°9}Ú»dœ?ž5Ý÷êóŽ3†ÿ±òŒ‡Uˆ+˜üBíÚµã´>¹)}úô¬ý®A}ôݽ{×ã<³óöíÛôÏ?ÿ˜_9_àÔ§OÇ÷˜úAI[L½sºoE@à\HYéöí;´{÷ [h (üŽÇ¢uþG¤ ñÅDŠtèPžæÍûÅeyçÆ‹WÒ€œ=û/G•ª›3>áø~ñâEÎÕ÷]½ê9 Äß½íܹ“Ú·oO3f¤!C†PÆ Ùdþ)U­Z•°‡HkýõWö)ØÌœ9Ó«íx}óͽ2n‡âÈéínç/Y²DìÖ­[©k×®4xð`Ê!0£[·n¹kv,X°€ó!>ä{ãÆ þïñšÙcß•´ÅØ[§WlÙ¢4i’ ³ƒ‚ îܹ+%§¢_·na.ôµÑ×7u–Õ²eiñŸ›7ÏýƒÉ:Õ>ù¤½TTPÿ¶{È?~œ._¾ÌÁÿrª–Ÿ¸~ì é8uêýøã¡{/º÷ï¿ÿ¦cÇŽYá ˉÿyÌY±b'÷i ­ ˆÓþý÷j£BÃfjƒLø²‚†q›6mŠ2æÒ¥KB°@$6lØÀšß¨µk¡ñ¹~ý?3;Îa’ŽáÇSñâÅéûï¿§Þ½{ )±¦ g6d`ŸÐ>ݹõ÷ˆïÛ¶m£5kÖ8äbž‰Ÿ)$ÐÄZ/hÊp~¬cæØ÷´ä|ùå—”4iR!•Ó§O7EË»§õŽ=*k`MÜS³a½Ÿþ™víÚåРŸnݺQ„ؽöÚkÔ«W/N¥3“FÍÑÙK¸jÉ4qæÌù]à7°zõjÂ;ðFî)ÎÙ©S'úàƒäþ`k×®Üð3Ö7ç€\âžZ÷lŽ Û;ß,mŠ€" ÄXÚµg<ûì—¶÷_½úPcРyÑŽ?yò‚‘1ãóÆÊ•{£ëjÀÓOO3ê×éªËíµ÷Þ[häÌù’±k×q·cbjGΜ9 ~hÚÞ~Ö¬YòåË &DÕƒËýúõ38E¾§L™Òرc‡ññÇqãÆ5˜8d׬YÓ¨V­šÁ„ƨS§Ž‘ AƒÉ†?~|c„ 2ŽMgF… Dæ—+WN>/^¼ØàLöòù÷ß7æÍ›'ŸÙtéØ  ƒ‰¢ÈéСƒïiÓ¦uô³vȱ—ž={éÒ¥s|O“&ñôÓOËwÖ©R¥2þøãG? cݺu“¹vàÀ‘ °Ö8L¥ïܹsFÅŠe‰%2R¤HaLš4IúX³eŒ1Â!—Í®›å;'5 .ìË$Çð´Ž)sp¶)S¦ÈšL¶Ì.ÃÓzèÃþóСCå>fÉ’ÅÈœ9³ã~Ö¯__d}ûí·2vùòåÙæ`“/_>÷ ¿ œŸ#¶÷xΜ9ƪU«d-¬‰¾Ã‡Ëš¥K—–yÀ{J–,™‘8qb¹?˜ƒl1¯iÓ¦2Ÿqÿ˜ŒK¿?À—+"Øê혟TÓÆwD›" Ä\`"ݱã¨íÀDj' È÷ÃÞG‘b3;VÊJ°ÛàßVºtNêÞ}2kob¾)Çî¹Ý㇭hCöîÝËfðÛ_¨õë×‹æ ©U¾úê+jÛ¶­”ûî»ïDÌÙ³gE{Ò±cGbÀ&î¥Ä¤H´0ýû÷§·ß~[´>0GîÛ·O4pЖ¡Ì–§ÆC´{LäDÖ«¯¾ê9£Fó“&ÂkþüùÒϤ‘úöíë ¿*³&%>Ãd¿-&Ĥ”.\Èéi*ptq:™Ó¹sgJ’$‰ìû„ÿ|½øi/gÁÚxAËÔ¸qcö‘|Ù¡9s,êâÃîÝ»©dÉ’¢¥cÂGžÖÁt˜*1ç‰'ž &4\.‘hÞ\ˆ¾ï4•L8EC'4s¸ÐBÆdY4\¦¦²lÙ²÷ÉAÄx©R¥ä~šø@#ÍkݺuÙ7´'•)SFî=Æß9r˜ÃEKúä“O²ûCy‚ÆëoœËÔæb0´uLŠå÷‡ëæïË!(L”´… x]VPƒ"H:Ë&Œ{æ³è¤V¬˜‡“çžäÿaGï¯T¯^©Ž€¤·­|ù\”+Wz~°m´=5nÜ84nÜ“læºCÏ=7Ãö¼Ø:Ä‹5`b*Ë•+=þøãò€e-‰<˜aÆzä‘G„ ¡Í;WBË–-…ˆáAÿÒK/‰Iõ­·Þ¢ƒ Éc G ×!ÖÚk\ØŸð50b.ÈV—.]„šX%DŠ5IÒÓZóæÍÉZÖhРABzÐò3)kžˆ5XB¼òçÏ/A8߯Åñþu gÀD…5cì79ZµjE3|øá‡â¬oš_±†»ÆZ9š8q¢·èÖ ì Xã¬0É"hbÆŒ³¦»uÜ]Ï–-½ð „}€0¡°]¹rEîÎ㪜‚°› ¦ÓìÙ³‹Ù8£äÒ]ƒ/΋y¬%ÖÖñkωéØ4“cî;ï¼C(úŽs¢Ž(~7‘Д´EÂ]Ð=(Š€Ï@ÓRµsgT¿&w`€¹ê mgÎ\b-Ãwâ<^ïС'ÚÝÊÿÚÞqÚ”6m2š0¡3?ô÷ÓÇ/3/?ïpÐ7°yòä1¿Ê=4É4›(…$AËŸ°F›E{?(øLì@{­æÁ¿ËªÍ‰ðÔØ¼ëèiÄZfsÖÒaÓ§ÊãüÍ!|ó@Nžþy!`ðùš:uª6û:¢HÇÇùÿšÈ ûÁ‰ÃòæÍë)S&ñÝqnÎA Ÿ ¡hf´ª«u q‚¦ Q®Ð˜álpðgó¥hËÖ°/«æ¼žóìÕll¢” ƒ çÀÄÔ¹alÚ”1fŸõ¾˜ÚIOØÃ¿ ;³™¿3hÖ̆{l6à„½EBSÒ wA÷ (>#!C*Ö¤²¯ ‘¡HÊk'õGÞ¼D[¶xñNŸö׺õcüÀ»ÍŽæöÌEJ•ÊΦ¯¦¬5ùŽÞ§1åÄôwk;­Y³f„?4G ¦æfË–-|¯‹ˆæé;Ø—ŒÞ}÷]!H±’d6˜P=5kú˜h¡Ý1›µdÚk¿9Îúâ-ߨ±c—A¶`º DЄIl@àl‚† &ÚG˜ŽÍ§~˜A0 õ³U@£ç®yZ‡}ÈÄÔ‹ôæ€)/Èc?>2¼Yûpwo¡Ù‚)õ³Ï>»o»+W®s'´—f³b 4OØ#  f¦h9,fTœ'[dî*‘Ò=)Š@Ä"€|mHåa·ÙõkƒK¸êöxíæÍÛF£F•*½g\ºtÍãØHïô6z”¾Q¢ù¡jðCÜqLD…²C¾ã;§‚¨?65:®±”¨O~K” "9A«ô#ÚÔŒE¿…‰èQD¥âk“Ñ£æXDp²ùÕ`’%r=Ê{‰ÅD‡Z£dŸzê)ƒ £cOÖèQ쉛¬…¹x1âèæAŽñˆde’䃨Zös“~&‰“;écÍ•Q¹reG”#“9ƒ‰ô±É@¤*›Re¢9Á±>¸[‡M¢EÉ~wQÆã "<±g&T†§õ0¶M›62Øp‚àëhˆä…`ÆæQcàÀŽh\ôwößãÿ.ÉüAôh‰%Qžˆâå&ÒÏX"D1—5ƒ²&qH“nƒ5­²&kÔs&øÒgFr „|ÇüÖ¬ÁŽ7‚= ªMP€IÂÎû×Ö9®]»iäÈñ¢ñÍ7[l/Ujñá‡Klu5iFúõ›åª+Úkýu‘LŽ'HyS›·¤ÍÛsâa4;ëß7×6oÞ,)@¬Àtösf%æ83å;÷ËXkiCzô³VË`M—µÛÖg\p¤qždÊæqÖ†‡>ÒŽ¸sœÇCÎúÚBî‹;RúÝ„fE%m¡ÁYWQ #P¢DvIfkw¶Ó§/Úrò/[öQ~8$÷YÛ–%۵ↈÒ3z²–å$õé3ÃÚ¥Ÿc(¨b€bñHŒ±HøÚ¾}{!nÎGBEÎ7'‰aQø‰}QsI„9¿G!‰~‘t53‘ðíí·ß– ¸"÷ùçŸKÍÕ«W;/áøÎ¹Ï¤¾é¨Q£$º u¡¥S œ¢~PÒR¸u1E@&ðk³›öûÈ;=gGOm˯ ãa"ýå—?¹ÄÐE|õºÅ‹—Íš¸Žã&)oåµË”Øš4©û!í¢Áƒç[zôcLBµ0AªPz©uëÖ”ºç„½ ½^ˆÒ_ ª€ÂŒŠ†Ê ¨ä`ÖëDe”¢2ûeÓDÓ"ðõIQYi4Z´h!ûA„)V[èPÒ:¬u%E@2 m»wç‚ÓöýpªTÉk;8 jÕ|üPMä—‰´cÇ \²è?`ï7{y Oùò¹häÈv4~ü&pþùÊy»¶Ž #GŽR„pР}ùå—T«V-¹ÃêÂlÈ1†R0}‚¢Ü”5ïJ6¡:4c(0ÜdÖ†ZœÖBéÖ>ëgÈD¤& Ç£î(rÃTºªj§Ÿ‹€’¶Àâ©ÒE Œ Ú÷î=i{U«æç"ÜGèÊ•ÑÎÏL¤þøµ=üprjÔ¨8›¦ÖF»žÍš•äÚ– ¹îæm\„]̤-[¶$8ÿïß¿?Ê&Q™ÑŸ(ÛåøñãéÓO?í6g­ëkB²¸ ºTrQëÓ§È@D*ª7@6ÊB½óÎ;4aÂñ}sWñš»±cÇ ñûã?hÙ²eBò|)×å úÅ'â°5úXwŸDë$E@PBv§ùó·³cök¶÷Ý…´té.ÖR½jk4ZÇŽýÃõDŸ³5ÞÕ ˜XŸzjkø^“¼k®Æx{íλԹó¢iœ7¯Zx+#Xã¡‘)íå—_Ö±N."JñrEp9ÚT,Y²(g‡¶ ~gÀܹ&)ù _ÐÄ!]ˆ§šžzãÆ ©jõ“‹²˜~¹– •:Ü6ª¦-Àˆª8E@/¥Jeç‡ÒYI´kw'0@µ‚'.ØšÒ¸qqÚ²å°ÏQ¤XEè3eJЂxñâ²æ¤3 OÏš‘±~僳„ *(劰aQô.\ø>†>³^ª3aC4j0É"‡[t„ ã-ª„ HDFSÒ÷Aw¡(BÁhÞ¤þ€©2I’„¶ST«–ŸR¤HÌÿšöý_Ò¨ÈÐ¥KeŽÆûY¢It|>Gš>½'§rHÆf¬1R_5P²UŽ" „%máÅ_WW#²’3g:‰µ+‰yË•{Ô¶_¢HëÖ-Bß¿Ýî.ÇuèP^ª1̘±Ñe¿¯S¦LL³g÷f-I|vPËÎé÷;³û*[ç)Š@øPÒ>ìueE@%Kf—$¸Þˆ¯R%ûÁý%]‚§ù0‘"Ñ—¤¹jß¾g°_ǾKösËyÚ—Ùòúõ×½%2ÄíâÅkf—¾+Š@ E@I[ ½qºmE@pH›7i? &Ïþ¹ÂEá£/¢ñ y¨E:¾ï&RÈéÞ½ŠøÆ-Xà{MSÈqÕPîê믟¦K—®±Û8~¿îj˜^S‚€’¶r£t›Š€"`#@³„à»-_¾ RÒjÍš¨)ÜÍG-RÔõ×Dš5kZª_¿(ךt_ÿÑÝì\Ïœ95}óÍ3töì%1•*q³ƒšŽQ"%m‘y_tWŠ€"à(Ÿ8q¯M¤Õªå£5kìåkÃöš4)ÉæqBÔs~ì–¨W¯ê"gÓ¦À$ÛuÞLöìqBÕgÃNÜ^yå‰^D£¾ƒØú@­Ö`µøÁ¬rE@Ђ)’E‚Z·.c{0‘~ýõ1#Âß,ºV©R. ”‚óµýB/¼ðxtÃÝö#!pÙ²ÒèÑ«8 "—Ûqþt˜Ä­E‹Q¢qûê«Þ\="ú3ú³¦u.Å¢l’6EàA@ uêÔA9¦’¶ ÀªBE ÜÀ¯mýúß½ÚFåÊye<`²Œ®!mêˆúKÚ°ÎÓO×ĸœæ¬õ¢[Ú§~+qkÝz §éEiÒ$õI–·“êׯïí¯(N¨yÔ ýª(±Ò¥sp  StõêMÛB`AñâÙ¸^£=¿6nÖ¬gŸÿ‹öì±_¤ÞÕ†j×.Äõ3ˆ¶ÍU ®¸}÷ݳtþü‚ÖíìÙ%Zå(Š@PÒd€U¼" „R¥rH ¤åð¦ÁDj7rô€`hÛümO?]]䨭ÌàëzÙ²=Äëô¡[·î0éüŒ Û«áëz:OPƒ€’¶Àà¨RE ÂÈ!eÉ’Æ«$»8 Â#÷´gv[Ó¦%9ŠÔÒ­Ý#¤äRTkì.íó¸ŒSÑܹÏqÞÔ´égôçŸû,K'*Š@hPÒœuE@жmÝzÄ«•a…™ÔmHÛñã祩W‹9 FEÏžÕhÆŒM’3Ω;à_~89G•>õ*“ qÛ·ïTÀ×PŠ€"8”´K•¤(†@éÒ9½Nûà$Î]µjŸíÓ(‘ƒ2²¯Ø6ÛsÜ ìØ±§+‰O'®u7$ ×AP¿ùæiÊ;½˜Jþù€ÊWaŠ€"8”´K•¤(†‚àpïM’]¡F„œi×®ÙbhÞ¼-Xð«”ò®ïÑ£*Mž¼> …ä=í)yòD¬Ý{Š=Û®Ý8Zºt·§áÚ§(aB@I[˜€×eE ø*”™@‚¼5‘‚´Ý¼yÇ«”!Í›—d‚x•#OíkèÜ!еke©:iÒî†üz„ñØ—®µjU†KkMæ‚󛾆 TÿPÒæ~:[P"øˆ+–Õë`øz!9¯7&ÒÌ™ÓH‚Ü9sü7‘¦H‘˜@Ü`"½víVÈF†ú¡C[QŸ>µ©_¿Y4|øÒ­­ )Š@ô(i‹#¡(1_‚p\hÛ¼!m˜Ó¢EiZ¶lw@Ìš0‘Â<ûå—?AtHÛK/Õ¥>jCŸ|²œž~–ß&ßn^Sb1JÚbñÍÕ£)ŠüÚ~ûí4ýûïu¯ài;vì¯üá6,Fwï´hѯÖr58mÚdôÄ$Ùîõë¡Ó¶™{éСM›Ö]ÎÒ¡Ãx¯ñ3åè»" %mÃR%)Š@"Òf›H½K²‹2XiÒ$£•+÷Ú>UªTI¨V­‚‰"Å¢Ï ²Tˆ"Û2dÍœ9Óçc©¦Ígèt¢" ÄDÊ–ÍåS)Îúøã…½ökü-JKÝP$¡ d8° ›kO4Ð!ûSYŠ€"X”´O•¦(Ž@Ù²rÝÌ£tó¦÷• @ÚNž¼@»vyW5LëÖ-B3fl (:(ÏÕ¡CyzÿýEZF* Èª0E 2PÒ™÷Ew¥(AB¤íÆÛ´}ûŸ^¯P´h©ŽàKî1«Í›ÿBò^/ìa€õÄ×nôèÈJ¸ëaËÚ¥(>" ¤ÍGàtš" ÄL²fM+ÄË—$»81–-Ûíõá«TÉKÙ²=ÄÚ¶^Ïõ4Z<äEC•„cÇ\Gnzš¯}Š€"sPÒsî•îTP„´m¾’¶:u ‹yôÔ)ï+´o_޾ýv«O¦YOGïÞ½*Œ4ÏÓ0í³ päÈNÅRÍÝ'-WƒóqÖ¬Y\Fí1zøá‡©J•*lÎ~ŸÓŸØÓôÞ¾}û¾4*/^¤gžy†Š-J©R¥¢"EŠÐ»ï¾ËärD(V«VþþûïàȦԫW¯Ò¿ÿþë]¿~}Á¸ãÕ¥KÎå7ŽnݺåóÅ_pÕ>Žï®>üòË/Ô®];*ÊÍ‘Èé©Fœlú#‰ w5ÞÕµóçÏó‡7¥ËΚ®d„ãš’¶p ®k*Š@XiÛºõ0ÿOÞû4•+æ!”“òEÛ†²V/^£Å‹wôüñãÇ¥!CšòЭ]«Ékí€ âƒÔ Ál;wî¤öíÛ³v7#ߣ!œ`¸!}úé§TµjUþ-DOü‘F塇r›¿þú‹J•*%ˆÍ›7çraÃ9•J!»{÷ÉF»vã|šËeŒ–-Gû47ºIݺM2*W~ϸyóvtCƒÒŸ)S&ƒ“†Ú–}ìØ1ƒ †ÁlcÆ “ ™ËÚ/cݺukCäû¹s猣GF‘ËZ$ãøñÿîæ,_¾ÜÀ»µÝ¹sÇØ±c‡±oß>¹|øðaƒÒƯ¿þ ÆnüþûïòýôéÓÒq7n”k¦&WÆ… ×›Æúõë˜]òÎDÁ`¢á¸†s`,Ú“O>i/^Üч?þø£¬½xñbÇuÈÀ>·mÛf°vM®C&k¢d,ç¿3p–Þ½{‰%2ðÝÚ(ã˜Ì›6m’ÏÀçСC‚%p¶6ÈÂZXŸÍÆÉ‘S§NÉ5ÜÎk(]ØËÊ•+Ý»w;®™s€ƲöÒ¼dàž5nÜØ¨]»¶qâÄ ¹¼Y#æƒK—.•½4H®_¾|Yæâ‹ó^°&¿FéÒ¥åw#þÿgôèÑ"çóÏ?—+Lå÷„}¬ZµÊ!¬å4âÅ‹g 6LäX×D¿ù›Y´hQ”ßî+~?è?xð üœqÅ|Oɵ‘?~OC<õýDžzµOPØŠ@¯Ÿ¾Î§ãÍ™³ÕÈ–­?“ÿÔv­X±GãÁƒgìN±=îøñŒ\¹Ÿ|²Üöœ@ô–´eÍšÕ(_¾¼‘0aByà¦NÚèׯŸ'Nùž2eJ!ü±7n\Ã$VØsÍš5 6Ê´N:F‚ Œ¤I“ñãÇ7&L˜ ÇÂC¿B… " óË•+'ŸA–¬¤mÞ¼yr58޽(PÀ©DëСƒïiÓ¦uô³–Gúð§gÏžFºtéßÓ¤Ic<ýôÓò5k›0?þøÃÑ"RzæÌ½ßH äƒÔ`ÿ¬9â²}ã:H0éÑ£‡C–ù5†Æ÷ß/É$ml’u`ùÈ#Ãx¬ÍÚ;! €ØÈÚ믿n.\رñdÉ’ÉÚØKƒ Ämúôé‚;ðGßã?.ç7ï#pGC¿3iÃõlÙ²ñï6>Êý)CsÞ ›™Eȹs¦¬½“ßúð›ªX±¢àfþ6æÌ™#ÓXË&r€íСC£¬‰ß ~WèÃ}Äûo¼!óL\›6m*rqÜwg-ƒÝüñ—´©y”Qצ(¨Cêk5Zµ `+Vìõ¸5 ˆÿÙô鼞݄̙ÓpPBúøãetôhxý™¢Û«ÙÏDDLyðÂÿÖ˜1cˆµYb:c¢B_}õµmÛ–˜Ðwß}'ÓΞ=Ë5L׈9ðÛo¿å„ÇK‰I‘øpõïߟ“¿ …„˜#YsF+V¬óÛ£>j.ëòå…X£Æ¾¿‹¬W_}Õ1rF%¦»I“&^óçÏ—~&Ô·o_ÇXød±†I¾ã3kˆÄÿŠÉ1)å’f ¹–m®ÉšNÆ !q’$I¸¼Ú>Ù'üß೿4œ 20fÄbÅŠÉ5ëô±f‹˜8;.3Q߹͛7‹©Ô”…s1¡!&Á"æUøÄ™µiT²dIbMœø}½ù曂%̹LøØ ¿„+ƒüD¬Å£nݺqi¸Ä-Ù?“?.÷ö±æKî[“&Mˆ5—¦h—ïðIƒî¿s³î¿´²eË:“ßÌÆø˜ ã±GÜÓºuë“kb­šü¶˜Ó´iÓĬjŽÇ;~;ø-²&M| Ys'çY½zµcY9/LÐ0­š¿KÇ€ ~PÒDpU´" D.åËçò™´¥L™˜Ê—Ï->dÞžä£cÇ Rðýúõÿ°½•ãnüSOU£9¦W_½÷°w7.R®Ã‹51Äš&bm '0~\ |ŽÊ”)Cù 2IÇܹs Ý–-[ˆ0}饗ˆÍŽôÖ[oÉ×X³B T¬•c?ÄdôÚk¯y<6æ‚üÀÁNò †fcí“)Ö¼HÖÅC ¾e¬2‡r@È bmŒ|ǾAá{–%Kš2eŠ+6‘IÎRÇ|ø×¸ÖÀ9dâJ°yÓXCÄÿ@È*8‚˜ah_~ù%}öÙgòX‚ÔX2R¤HA'Nâ–8qb®›™à¬ÏZ5Ê“'ì÷ dÎü8+HöÏšS!ÑÞìX°Æ€­s³îåÊ•+rßq/]5^€è› µp³gÏN¬•ûƒ~@O g‚ßaΜ9e~¬a%6 ;¦”²VX|ë@ qöPµû ÕʺŽ" (aD¤ëï¿/óƒë/ŸvQ¯^Z½zŸO‘ íÛ—åÜMÖÔ¶BŸƒ†mÅ„ã@Päû–‡IpÐ7›±„˜ßA¼ 1Cc¥$hÙà@Þ¨Q#‰œ„ö Z]»v Ùöêƒ>yìKE+Ãf8S´ËwóANF¬e6g-Öaó¦Ùíòš#I ”öb3¬h·¦N*z6û:¢HE ­^Ø?4:Ö¬Ø<ê’!ø uëÖQˆ¦[/öÅq ³¨U«ke?¾OÃÒ òІ{² 4jx…†ÉŒ€E°¹w¸#U"ÐÅ6U AtEÚ¬{©¦¦ÆÍ* ûcÌf½Ÿ¦VÓÓ=)ÆoZFkC 4‰fÃoÃlÀÉÄÕ¼Ìw%mÁDWe+Š@Ä"P¤HJž<1k9ù´G¤þñZ·.ª6ÄŽ0Ô@­_¿(MºÁÎp¯ÇÀô‹d¾o¼ñ?ÜèH¯7ç4ÄÌNkÖ¬x@ ˜•¸eËIy ´EìK%¦>v—0šÍj:3¯Yß­Ú&˜h¡¥1›µ¥íÛ·Gé7ÇYßA8¡å;v¬ã2ûZ'ˆ†þæL'ö¡“Ì’ì$/ÄÊ1ñÿ@RÙ×í>B‡´"ì8/i@Ì9®HH ´‚Ð æ?hù`Žu×€pC¤-Òd€ð˜ÁlRˆóÀœhîÄQ²vˆæ@s]CÔ(4¬Ð:7hÂ`B†ÖÓlÖ{ÆrÙzOÍqæ;ð¹Cį٠݃ÆÓ:Ï®æø`¿+i 6Â*_P"¸qã°Ù('“6ßL2¤¢âųñÃl—OçëÔ©¢Teð¶$–ÝÅÞ|³kIâ±¹p®Ý)=Ú˜á`„i æD´={öˆ™e˜Qa¾Ãƒæ6˜'Ož,cØÁœà›å©A6L…ÐäÁf2³H¡Ð7Ll0;Â,ÈùÒ={öì(¦×—_~YL‡ÐRÁ— „ þoð§‚öß¡-Bª hð`º?Øþýû©S§N8H®ƒb.Ö†Ù~eU+g|á…dLyÑ5h”€Þ‘R„D¦«yXûÁþ°~‰%Dû†{| ùn8H#0ÏÎâLÍÆNûB:—-[FãÇ'Ph@­þƒæXçwhÑ íûä“OèÅ_r²¿G˜Ùaª„9ÓlÐÀb=zÌÁ:Èm‡†½ŒKkÙ`29EaHw«V­¬ÃÂ÷™o‚6E@PH>ûl§cèóÙ?ýtGڽሤóVPÕªýûÏövšíñË—ß‹TEÄj(š·Ñ£ˆ1b„ckìÃfðÃØñQ¡ìïøÎd¶RƒMŽk¬ 1õ‰ë¬‰3hF("Ú‘‹èà фxGô(¢%ñ)?ÌèQs,“>ƒÍ¯RA !z” ƒDb¢ Ù„éØÃSO=e0 r|·FbLÜ{À|6ùì÷æHV&oŽ1ˆªEÚ4&Cr&ÌCú4ì—ͧŽñ¬ù18 @R§ ßŒr´¦DagÃŒxåœf]‰y¬A2˜0IÔê+¯¼"›l„Gcç|Á‘¦x1±q¤DáÀ¹†ýáŦSG:&³"×”gŽ1ßsäÈ!{Bú ³q ‰¨W4DšsÍ~&‰Ò›0™tœ÷‹I•ãü‹~&˜Ž(ODç2É5ÅmÚ´‘ù¸Ö5Ñ[©R%é>8/ûóÉŸýád>G¡ú4Ê”õü°ÀùÈ®ø4ßΤgŸýÒ(UjOéIìÈ·Žñ–´YçÚùŒ‡.øì¬ßp\ã(IIbídm’äy Ã|k~4Œ5Ir¥!Ç—µ´!ÍúÙtæ ,Ö1Ñ}âÀGçñ¦lÎö/ëXû‘vùƬ ¹Â@8‘— ÄÕÛyÖ|s +žrŽa#à ó¹,cÛ¶e% ÿµ<Ò¤IÊé&Ú°ÎVŸ÷”y)>I fÈãækC:¤¤€?–µÀÞ]PDÞ¼y]XeèçÈB÷ÓJJ#kw¾ïF5m¾c§3E  €|m3flòù$ mHf»}ûQvÒöœRÂÕ";WâH¼u\Ët;—v5Äïk5kdGíòìÜþ G >ÊQ•Éý–jH áoCô)œ÷û01qwŸŽöÚbf½˜µëèw«š¶è1ÒŠ€"‹@¾¶'ÎsÊ‚|:e¡B™8ÀÃb"õE̲ժågÓß¾L·=gР¦’â¤oß¶çè@E@ˆ,”´EÖýÐÝ(Š@ˆ(Q";çÿJÀßR`» õËôØ­[eNÂú›Ï‰~í@SìØ±Op‰¨ßiܸÕv¦èE@ˆ0”´EØ Ñí(Š@hH˜0çŠÊI6øCÚŠÑ‘#ç8ØIŸ6z¤¹r¥çı÷Ê"ù$ÄÆ$^¼ür}zÿýEœì˜:DP" õi‹¤»¡{Q° P±bn.Õs¿¯“ÝÍÀ—-S¦Ôb"…¹Ô—Ö½{½òJ®u躶¢/rç JÚ¶^½¦q9¤þ\)±ó¿¾OáÚš®üÆüª“X‚ªGøÓTÓæz:WPb*äæÌíD[æëP– ©?|m­[—á´ñý"v×Fê7nQŸ>õoC=PDZjS×,XPªd¸îþªjÚ¢ÇHG(Š@,G~mðù‚‰4Gï󵞆 ‹Kè§9=D¯K’$¡DxN™²Ar¶¡U°jŸN˜Ð™Z´E\ÕÉ[­€,…¢çÚE x¨¦-xتdE@ˆ! _RaüôÓï>ïø±ÇrríÔ\cÒ÷Ô]ºTæÚ–—YÆvŸ÷awbéÒ9hàÀ&ôá‡KhÍï‹ÞÛ]GÇ)Š@àPÒ8,U’" Ä``"õ'Goذ-\è;i˘15jTŒ i¯ ’]»V¦æÍK±ÛT:xðLHÖÔEEÀw”´ùŽÎTX„@ÅŠyèÌ™K~‘—FŠKÚŽýûOùŒÌSOU§Ý»Oкu¿ù,ۉƵa?´G¨S§ÏéÂ…«ÞLձЀ"b”´…p]NP"¢E³HòYòµÁäˆ(RL¤ØG¥Jy9§Úª…”'“'w£[·nS÷î“ùýNHÖÕEEÀ{”´y™ÎPXˆ@¼xq¥èû† ¾ûµ˜H,ðÝD H˱víŸó¾A†7 Ó¦õ ßsÏÍ `ÕAõfO:VPîG@IÛý˜èE@x@@¾64m€­Q£tèÐÚ»×·D»Q­Z>*X0SÈ´mX3þŒ¢q[ºt(ÌÃ%mŠ€"a(i‹°¢ÛQð!¿6DoîÛç»OZ©RÙ)sæ4ѶÁÌŠº¨¡jåËç¢Q£:rÔõ4|øÒP-«ë(Š€M”´ÙJ‡)Š@ìG páÌ”&M2©êÏi7.Aóæù—¶£I“”!CJ®ºÆŸ­x=·Aƒbœ¤±Tr¸y-@'(Š@ÐPÒ4hU°" Ä4âĉCHýâíþ4®?ÿø`š€¶©S%mÜ-×+Š€'ªTÉK›6¢Û·ïzæ± >šŽ¾ÿþã¢ëyJ–,QÈò¶Y÷óä“èwšÓ»ï.¤¡C[»ô³" „ %ma^—UÈDé6®\¹ÁZ²?ýÚ`Ó¦%™´ýêW$fâÄ ¨gϪ4uêºtéº_ûñe2’ïŽÙŽýÜVÒë¯ç×Y|Y_ç(Š@T”´EÅC¿)ŠÀŽ@ΜK Áúõþ¥þiû믋´qã!¿íܹŇƒÖù%Ç×É(d:¥3gn¤Î¿Bë«,§(þ! ¤Í?üt¶" ÄB*UÊã·_[îÜé óæùg"Mž<uíZEŠÑ_»v3,h׫W„æÌy–vì8F |LGþ–}袊ÀƒŽ€’¶ý çWû¨\9/mÛv„ü%IMš”¤E‹vúå‡Íuï^…nܸÍyÔÖß·×P](Y2;-YÒ`²­Wo¤ßùìBµo]GˆM(i‹MwSÏ¢(Aš6”súùç?ü’×´i ©ç¹zõ>¿ä¤I“”µm•9Ùîj¿‰¤?AAûyóž#k´m;NR‚hõչЀw(ió/­(éÓ§ä"êØDêŸ_’ì–-û(›·ùÒ\¿~Kßú-Ìдû$½ñF#RXJ-ZŒi`?¶®S€’¶ õŠ€"  MZ·î€ß¢›7/EË—ï¡Ë—oø% Ú¶nÝ*s²ÝðjÛÌC ªuÑ¢èüù«T³æG4w®¾{¦\}W÷(isö(ŠÀŒ@•*ù¤~è¹s—ýB¡Q£âtçÎ]Z¼x§_r0ù©§"CÛfõQø¡µjU†žyf:§'™J§O_4»õ]PŒ€’¶ªâE v €ÊñãÇõ[Û–*UªU« ›H·ú ´mJ;v•ßš;¿7ó‰ŧ!CšÑ¬Y½h×®ãìïöMœ¸Vˆj ÖP9Š€"p%múKPEÀI“&¤R¥rÐÚµþ›H[´(M6 ˆ ¾mÐÜ¿ÆÅ®Ãw©jÕ|´fÍË’ ø½÷R:ÃiË–ÃáÛ®¬ÄB”´Å›ªGRÀ P­Z~Ö´ùW‡;©Y³ ¥H‘ÈïœmÍ]ïÞ5„´ýóÏ\Š˜­Û‹/Ö¥U«^&s4mú×OF‡˜=êF˜Œ€’¶˜|÷t"TŒ€ªœök„ ã|ÛEŠôèQ…’$I@Ÿ}¶Â¯}k2ªJÌœù}ñEWÁ®Zµ¨ÿÙez!XKª\Eà@ çØ1ˆ“ê!E@ðüï±pá7éùçk3Qªêåì¨Ã‘ó­Y³ÏhÅŠ—üþ¶I“~ä‚î 8Éíë”!C*Åyœÿï¿ÿrÀÁǸë†Û¶ã@Œctñâ züñ¬l:Íân¸^Wÿ#аaCþÇY+•´YáÐÏŠ€" 8!€ˆHŸ1£§S÷_Ë—— K!4¨©÷“f ùoÅŠïQåÊyhøð¶N½ýºoß>&šý'Nw^Ϩ(>#ûŸ>D7oÞñY†9Å׿ûî—€DV&H^y¥>}õÕ¿Í·æþ¢{ß½{7“.ç×Ý»·9âõW&À;}šïëº:Ï·û¥¸…·Ÿ~úÉíŠJÚÜB£Š€" ´]½z“#!ý+i,‘Ïìï¿/ÓÊ•þ•µ2ï ÷¢(ý!óÍKú®(±%m±øæêÑEÀ²dIC¹r¥§Õ«÷û- ²Ê—ÏE_½ÙoY¦€·ÞjÌÑšûhýzÿJn™òô]P"%m‘{otgŠ€"!T¯ž? ¤ ÇiÝú1FØ+åŸq<$®U«jÛ¦ÊP"%m~ƒt{Š€"~ªW/@ûöäô—üÞLÆŸÒB¼€äl37󿛤äÖìÙÓà™²õ]P"%m‘s/t'Š€"¡À¤™8qÎøï¿‰•@ÜfÏþ9`§Í“çêÔ©"½ÿþˆ)o°Ã© E@p  ¤Í…~PEÀ5 låÊå ˜‰´]»²R§s÷î®ôá**ܾ}—FŽ\æÃìØ5åÈ‘#T¯^=:yòdPvùòez饗(þüôÈ#°é»5Mž<™#oÚZ÷êÕ«„xÖ¶uëVjÒ¤ eÍš•«J¤çZ®U¢äÈ3f =óÌ3Ö)aù|þüyÇ9—.]*xO›6-Ê^nݺ%×׬Yåz(¾×^x{ì1J:5—¤+Å%Öz²¶ü/ÛË[ÏøÅ_PŸ>}lÏ Ö@%mÁBVå*Š@¬B~mëÖ »wýÏG^¶ì£Ü0kVà´m©S'¥êq‚utøð¹X…½·‡¹xñ¢¢`¶¡C‡Òĉ¹LYMÖr¾/$«GôÜsÏÙZ¶{÷îôÄO8Æ~ÿý÷T©R%®q‚ïåêׯ™Ä端¾’q‡¢íÛ·;æ„ëå7ß|#Ë=zTðÆ¹­DùÎ;rýÔ©S!ÝæéÓ§9ae7nU¨P† ÆùëpÐ×BÞºÆN³žñÆtíÚ5;Ó‚:FI[PáUኀ"[€_Û… Wùy4 GjÛ¶,Í»nܸyòÄ„ ¾õÖÜ€ÉôEpÐvá¡}øðaÖ*ÞK¦{÷î]ÂsÛ¶mBF üþù'Ê2Çg¬ÿ+yõË/¿ÐÆ9Ç[ÔZ«Ðt!§ÕßÿÍiY®ÒŸþE¾\ºt‰+1\”õ6lØ@¿ýµ–ì™3gøÜ«W¯–w«ô8¡!wÜ8Þ¡õzùå—iôèÑÔµkW5j=ýôÓ4kÖ,kÊÁ°Oëþ°gœûѹ~ýº=h†0è•W^á¨àõT¤Hzíµ×Lqò~ûömÎø³`‹ýXä®]»6 B?4G 45p4ª+VÈ»\°üA‚Wìg0îæBîÙ$H­6 kã~îܹSöaÎÅoàìÙ³rmË–-„û‚|pßð;rn®pŘAƒ±ç^™÷ñÇÈñ{ï½'¿;Ìéß¿¿ˆÂgw¿ ç3vêÔ‰>øàÇpœañâÅŒ¬ ¿_ü>€÷ºuë„„[ûýúÌÀkSE@°@™2o}´ÄÆÈ臜9sÉÈšµ¿ñÝwÛ¢ìň3>o,^¼Ó‹Yž‡òOwƒ —çÿïÝ´i“Œ¯^½º¼c.k>ŒÚµk;¾—/_Þ`3¢Áš£Zµj¹ü°6âÅ‹g02vìØadÏžÝHž<¹'Nƒ³Ã\AÆ2)1Ò¤IcÄWÆ—.]ÚH–,™ôýú믲Îï¿ÿntèÐÁ(P €‘6mZ#a„r –c=\«X±¢È`Òa$MšÔ˜3gŽ£k0“ïLld>›û &+2§Aƒ? ã±ÿüÑà‡º\›>}ºÈ„làðøãLHE&΄kåÊ•3¸L˜|^¾|¹C–ùáàÁƒÆüùóE&k߇̙3 &˜_¿~}s¨ÁäNΙ2eJ‘œ™ù¤È@?î “éc ”\ö¬m”97eʹ¾páB\p}æÌ™ò ŒñÐC‰%’WªT©ä£çb“°‘#G‡làn®9~ø¡ÈÁw¸â7ùl uŒµ~Å$ÑãoÃ\×<#ö‡ßæâ7‹>ó7øÆo8–Á9ð[Ç>€Ö3qu òð µÌa2è}fðæm~(ßð0Ê~—¯¤}³ 6õ#GŽ”‡ûg¬…‡8d W¬­’‡ûɆÆ/$âܹsFË–- 6 é€öK2úöí+d/gΜF5 Ö^ 5xPº#mX ÄäeÒ¤I²6EÊz m™2e2X3h°†ÊhÞ¼¹ ö‰’þsçÎ•Ï l¶4Xë#ßÙ·LdTÖ­[×xçw$°/ÈÇžY£#„“}ߌ_|Qæ·k×ÎFhŸ}ö™È2q‹.þ€<à<#FŒ0XS$D ß±'` "LqÖ bß~û­H2 ˆ,k; 6¹Š,,Ö ƒ œÃ‡—¹ ‹¬Õ3Ø ,c7oÞ,² ÷Ë/¿”Ï $Ø›Š…hƒÔ:“6ãÆ¬2@ AØÙPæ™çúä“O _[Èd­™`‡qyò䑱žpÅ=¼Ï?ÿ\Æ:ÿÁ½D?û iÃgw¿ ë­¤ ÷¤î?þñæojÕªUò¿ÅtéÒɬE5ð»Ço×nóDÚÔ<ÊwL›" (v€_ÛŽÇØœÕLgg®«1Hذáw6þíªÛçkH¸‹z©Ã‡/õYF &2I &DÄÚ(/&ŽïL4ÄyŸµ\Þë;?)&@Ä6õæ"8æÃw ¦3˜H?úè#ñéÂ\8ägË–MÆuéÒÅí–Y»DLˆ5#„q>ú¨˜Í ½zõ"ÖèqmÔ¤„=Ãtiú=ÁÔÖ´é½Z±¹sç–½°6H¦Â Óá³Ï>+[¬X1êܹ³ôãLJÀ|&bêcÍÁqß¹ÁÜf·áÌp²O‘"…Ã'f_& bdÍ›˜å–,Y"g†œÙ0~x%K–˜äI0ké­·Þ’}âL¼ƒûÅO*Q¢19aÊ´¾Ã ¦M`áܘä“SbbÅ®sÅnõÃ=€³?ÎQµjUbM•øõ±ÖXså0‘zÂÕ4¡#øÀUýEÃo-ºß† rúƒõQÌÿá =øM±&—+¬tŒ„¹Á3f$þLJàêèôヒ6?ÀÓ©Š€"ð`!P¥J^Š/N@R¹5 pÔaJš9sS@|è¡äìÕ&LX²º¤®!C¹Ì ygM‰¼ƒ ±æAÈ"=YD¬]ãÝÕÔ±cGéÂgÖÔQñâÅ…œ±éÕáCÄfE‡?xà»k iÖRba6óá‹ïèC³ö˧?ðací‘!à3|™X0uêT.{¶ÅáÆkˆÅ $”5‚NÒˆòåË'×\:6™R›6mÄï ƒ@„Í–8qbùÿAàùüóÏS&•X²LìÍñ žI’$‘¯lî<ø²fKÎnúmÁÿ×Í}ƒx‚™÷Δçüù ð%Ù³66;Ë9kÕª%ýð˳6³a߬ÍbŠkXçC3}]á ¢bèªK4ì-ºß† ²ü¹ ¡µ6üÖñû5ön6àí|V³ÏÛw%mÞ"¦ãEàE Y²D’ú ÑâÅ‹KH@)Òu²uèP޵>YÙéz¶ãaHùvd™ÚŒèÆ‚˜!-4@Ðæ° M¦à˾B’¦Á ìÓ&ùæÑ•Ȧ*·ËXµ9plGô¥•äYûáôŽfíw%$ Šl‚tt#íHöÂæQÑ~ÁY¯yóæqõŠ!Ž9懢E‹ÊX8¶;7öåÇv“ ¹#NÐd-[¶L´lX‹M›Iˆ%‚ U¢x÷ÝweŸ †Ðn™ûÆ;´d­ZµrÞÞ}ßáè_°`AI±av‚ƒ„÷îÝ[O 5EÐ…µ¹;—u >{¿Èe“­#%‰9ŸÍµ¢ C´/4ŽhÖ{ïê·aÎ5ßñ›±G‚Ù ÝÃïÀú›±{S†Ýw%mv‘ÒqŠ€" 05kM»ýʳ9î kEîEXD( ÁCcøð6ü@>AŸ¾.Pbƒ"§Q£F¢}zóÍ7…˜äÄÌ HL¦0aBë†'È¢L¡Ña_8·{ác¿%1{‚Âdišl1 ÑŸ0/‚¼°O•˜\A¢Ðjšnñ`†ùi7@ØØ‘ž`òݳgÈ„vgðàÁB Å‚ hž`Þ]´h‘¬ ³%;ø iÀ@Dp~¤ö@¤(¢ñÉAd'Ì¡Ñ5hÛ@*@j ’BaF¿:ÏǾaºQá„&.˜%Aœ±.4 0)‚Ì5kÖL""!{Q–Î } MfÔ°Ù-ÖÁû‚ )N\Í7Ç»{WDŠBW­Z5G-H6Ò~¤g1›§ß†»3b}˜w¡9Äþ¡ F³ChÍu}~·ë§ãE@Pà\~F¢3þùžr 0y≉F›6c!ê>#F,5råÀûçîë³{Á×@8Æ£Áa›R¢JÑà@ï¬u’ïøƒˆN\ƒ¶Ùm§n& âÐÏDÊ` t#Ú¡˜ÃDE"0Í@Dâ:œÒátÏ&3ÇXDû™Q„@ö×rDù!ÒÔºwÑ£˜‹HO6EÊZXòâ\ÏÚ.tKCP¢Ñ¢ Í ‡Ù³g‹³?›Úd,“+ t€s<",áèn6ÖbI´«ù‘ŒË:‘ ‡w|GÔ"“ ƒÍš‚kÕ &q†¹æ3'yŒg¢,Îõì3(¢YŠ  sèg2d.Ë¿×6Ò,Í Gçÿ?pÚÃþqrAÀ÷‹µRÆ«¯¾*ççÔ&†ó¹°Œ10À™Ìæ WŒA¤/¢Íýã“ ¬e5EDûÛ°žûc žÌe­¡È@&΂ûËÿÀpÈeŸC 1/ 5{æ×hß="@m®MPEÀ Ê•{‡`÷Òx1ÍíÐeËvsã ÆáÃgÝŽñµãÖ­;eù¡_QªÞ’6_öÊš$ƒMu÷M‘aM#RÏ:щ h x¨›¤Í:¤ Ärؤ%Q‹Ö~D" ‡™NÄÚÝgÈÅ<ì“®"GAXÍhCë.ìßÚ@¦8—™D" ÔÛ†¨QDßš ‘±ˆu×°D…ºZ‹ó• QÆ>çi“H^çëž¾c_ØŸÙ@€Lk^³ûî WS¢‹YËf¸ŠÊî·îÎÈÚB‰F*n ›'ÒvÏ;”é¢6E@P{ÔªU}cöÒ«¯Þ‹Š´7Ëý(˜\3fLE3flb“VC÷}è‰?.Ñ–MuÓ”)ë9²±’R‚7¦FDÝÁ çuçs²Ú»j0£šfLWýÖkÿ-w ¦N¼¼m‹2Vž¢Ë–-ërkòî»0¢5}myóæ2•5VQ¾;ñ´ÖtJI-ç9øS§· &n¼Ìf~˜ß½y÷„«)‘¶xyjž~îÎ÷3èÁ“ì@÷©O[ UyŠ€"ëÉÚ»÷$;›_ ÈYãÆCíÛ—“"ò¬ ˆL«$ôéS›Þygû!µv…ý3üÕØÔÅøUâd®>ï~\ÎŽícFfºŽT+‰p5F¯ÅN¢ûmDâ©ã@¥‰Ó=)Š€"© ôT¡B¯Ó AM9%Eù€lóôé‹L:†°¶©5o^* 2­BîܹËNðsÊ’¸ìÞ—Öï¥Ý°Žq÷™ÍgGýB… ¹¦×E  ²ÚeDì"bÚÒ6ª¦Í‚†~TEÀ‰ÅçÂÞyÅDjg¼12¤â¤²Ehòäõv†{=dmÔ¨Ž´ÿ)޼—«Êk!:APŠ€’¶°Â¯‹+Š@LE~m?þø[@ ¾wíZ‰‹ZáPǃKîÜéÅgŽ#JióæÃAYC…*Š@ðÐ@„àa«’E #P»v!Îáõ gÅÿMr·â¨åÊåb§öŒ0€à`´®]+ Ù|úéiœ‡ë%ÎrŸÔö2ȰÜaÚE x g »¦>mîÑ늀" Dƒ@ݺ#¤êÀСÑg‰F”£{úôŸhàÀyôË/ƒ¼"T6>\¸p•³Ýcÿ´ÌL»E;Ãôi‹v P€! >mƒR)Š€"@œa½0-_¾' P´lYšËÅ—ÒVlíÚ˜1OЪUûhܸՖ×9ᬔÂBÜš¾ý „æ7à„ ÿqªO›ëÿGéUE@P¢E&RD}Ò-I’„Ôºu1‘ªT–«ƒ”)““Ë%5àòD ¹Œ‘ëâÚ®æé5E@JÚ‡½®¬(1Â…3S¦L©¹H÷~g'N\ ~l=RçMöêU“î£^½¦ÉzÎýú]P" %m‘u?t7Š€"À¶-Ð&Ò9fŸ³‚4qâÚ £€‡ôéSR·n“èúõ[A_OPßPÒæ;v:SPzüñ´k×ñ€UG0!íÑ£*qQú€š^MÙÖw˜c'MêJÇÿCÏ>û¥ø¬Yûõ³" DJÚ"ç^èNE "P±bJš4QÀµm*ä–èÎPhÛ²gˆkv•dÁC†,ˆwA·¬<(i{0RP‚„@„ñ¨Zµ|´tiàýÏ m›?;9s)H»ÿOlÙ²raùv4~üš6í§ÿ:ô“" D JÚ"æVèFE ¦"P¯^ŽÀÐx<õT5N)rƒBçg7n)uU¯^QêÔés!¤>—ÊSïPÒæ^:ZP— 2B±bÙ‚b"Í’% 5jTœÆŽ]årí`]qûôÓö„…®]'Ñœ9[ƒµ”ÊU(i³’QEÀˆ"]ºtwPÔöî]vï>Ak×°³•€‰' Þ–~ä¹çfЇ. ˜l¤(Þ! ¤Í;¼t´" (ni;{ö_ÚºõˆÛ1¾v)’…óÁå§O>Yî«¿æ½þzC!o£G¯¤Þ½§Ñ·ý’§“EÀ{”´y™ÎPEÀ%yòµiõê}A/$ïió¹r¥£eËú3i+(‘¥o¼ñç’ lªOëkŸ"ð " ¤íA½óznE@ ð=Ë–í!Z¸08Ú6Ô9E”ê§Ÿ†Ç·Í-I’„4rd;Žh}’¾ùf Õ¯?‚~ÿý/³[ßE (i ¨*RPl m[´(8¤ È·mÉ’]´ÿ©°ݤI Z±â%‰«]{˜D—jBØo‹n –" ¤-–ÞX=–" „† ‹Ñ‘#çhÏž“AÙDݺ…©`ÁL4lØA‘ï­Ð¬YÓÒ÷ß÷¡7ÞhDŸ¾ŽªWòÔ$ÞîYÇ+1%m1ñ®éžE ¢(Q"eΜ&¨Ú¶_¬+Ú¶`CoF"Þîݫкu¯P¡B™¹ôÖ8zúééaê-:^ð€€’6àh—" (¾"P¿~Ñ ’¶:u üç† m›‰S† ©¸NjgúòËž´mÛŽ6}—Þ}w!]¼x͢"à#JÚ|N§)Š€"à øµÁ1ÿ·ßN{æW´m?ü°‹ví:î—œ`L®Q£š^y¥>Ížý3•-;„ƒ'Vеk7ƒ±œÊTâ܈“ê!E@1¥J½MmÛ–¥—^ª´•ë×IéÒ¥ ©S»m _¹rƒÆ_CãÆ­áÔ W騱 t÷îuÅê|E âèÝ»73&XûÚ?X’U®" (:£ùó·•´ PŸÚ·G[¶¦2erF$äÉ’%¢~ýêPçΕ¨E‹¾L2 Ó€"r¯º)EÀWÞ~ûm_§Úž§¤Í6T:PPïhܸM˜°V¢H ÊäÝd›£‘·­bÅ<ôÞ{ iîÜçlΠϰ´i“q€Æuú÷ßLÔªU«ðlBWU‚„Àرcƒ$ù?±êÓöúIP€"P²dvÊ’%­hÛ*ØIйÿüóœ/m¯S~UØ„€’¶Øt7õ,Š€"q4n\œs˜m꾊ÏÆ ŠÒûï/"uS*Ô*\+JÚ ¿.®(±˜Hý;hµHMü^y¥Dª~÷Ý6ó’¾+Š@,C@I[,»¡zE@ˆ,ŠÍB9s¦ º¶-wîô©úÁ‹éúõ[‘‚îFP‚€’¶€À¨BE@pL¤ üê~@€z ¨G.\•à‡‰|àÅôèу¾úê« ã°wï^jÚ´)û@f¡|ùòq}Ù¾\ l­íuÏŸ?ÏéT¢æÀƒc|•*U(mÚ´ü‡œÔ¡CúóÏ?2­gëÔ©}ûí·Ž>_?X÷ÏõêÕ£U«VÙ÷ùçŸSݺu)}úô”+W.jÞ¼¹Wóoß¾Mÿüóc½@Ë!0Ì”´…ùèòŠ€"ûhÚ´$8q^‚‚yZäk{î¹ZôÙg+èìÙƒ¹Ô#Äé?þêyá‡Ø²eK:xð õêÕ‹Ó£ôcsúªQ£-[¶ÌÖÚ 9ß|ócl·nݸŒØÓBÖ† FÍš5X¶lY:uꔌ³žíêÕ«÷‘>‡0/>X÷qíÚ5Nþü}D2~üø4pà@ÁâÈ‘#ôøãÛÎ}¶`Áz衇èÖ­{Úæ@Ë ‚:TI[PáUኀ" kN2H÷Pø›õìY•Ò¤IJC‡.ŽÐCkröìYNÆ{—sÑm¡3gÎȹð0Þ°a>|X¾_¿~ð€¿qã†ãÜøŒkæc õÙ³gÏ}ǧM›6ÉX¬wîÜ9‡óֆ̿ÿþ›V¯^-ïfߥK—¸T×E™}ýöÛof—¼ƒ˜ÄàhÐa?h‹-¢}ûö± ý{zã7è©§ž’}f̘‘«IÌ–1øƒ9;wî¤_~ù…îܹã¸~ôèQ9ÏéÓ§éòåË´fÍš4i¬M:•ºvíJ#FŒ Å‹˹>ùäÇ\óøqã¨I“&æWÂy~úé§(š9tâ~üõ×_Bðp?víÚ娋ó>ÂþÿÁ~+W®äl|Fo¾ù&-\¸žyæÎoø’Ü“š5kÒ‹/¾(ëB”;9ÀÓü}à¾kçsU`ôï¿ÿýÃÆÓ¹œÏÖïüCÒ¦(Š€"dFZi,øºqëÖ ¯dLÌ™û{öœúZÞ.À&:£qãÆ¶§±ÖÉÈš5«‘#GTï1âÆk°É`Ž|ǵ?üÐ8vì˜ô=Ú!›ØF¼xñ Ö,#GŽ4’%Kf¤L™Ræ5hÐÀà‡ºŒe¢à:ujƒÍ“F—.]¤/Ož<Æ{ï½'Ÿ&LhT¬XQd&HÀHš4©1gÎéù (`°)ÒÀ8ì‹É’ôáÏŠ+䓹ֳgO#]ºtòyÚ´iÒ‡ýZ“K¾‡{äÒD>ä²&ÊÈ!ƒÁ$SúL,€ÍСC Ö² >l.µŠ“ÏëÖ­3˜lÉgëÙ€1æ¢MŸ>]Ά3b=Öt.\>Üœs­Ù,÷qâÄ é‡<4OøµiÓFÎÄÄKÆZÿüúë¯"güøñrÙ&äòÀž°7&ôòÛ1Ï…³cø$NœXðÇ4Oç’6þT¯^ÝàŠ6Fú<ä'Õ´ñÝÕ¦(Š@°hÖ¬¤ø›­Zµ/ØK±)¬$•(‘^}NÐ× ÅLÈè…^-J­ZµÄTÓ4[­[·æõŬjÕªQü²`.Äx~H‹gÈ!2‡Þ´dÉÑ$A»†ëƒ Í “¾û´dÖ32 C‡ñ½¼ ¾WL¾D»…1Ж5J4jÐtá5þ|™ž={v©w´:uêˆß>7lØòçÏ/æÀlٲѓO>Ée¿ÆÓ#<ÂÚ‚ÂÕ$:S’$Id hÁ{ì1j×®hØ ù‚I‘ÉŸ¬ñûï¿+bÒ%s­*W®L¥K—¶^ŠògƒifJhq&˜jßyçÇ8\C¹&haÆ„ š-ç}8&X>¸ÃšÉbÅŠQ¢D‰,£ï},R¤ˆ\·š©]É)S¦ŒãþcoLô²àï\Ë—/OðµÃo§B… ôÄO8´³îÎå”´EÀMÐ-(Š@ìG S¦Ô\4ýQ …‰h¾÷^ 6'¡9s¶ÆxpAtàïÄš)1Ã~_¬5£Úµk;L¤;v$2˜È@8`ƒó=kU¸Cfúâ‹/ˆµ>ÄZ"‚yµ\¹rŒÏb½úê«òÞ¾}{!Pî@ƒÏöƒ9¯¿þº˜HwïÞ-à .,DŠ5^Äš:zôÑGÁ¹sçf“õP‘€ƒ=棥I“FLž³fͬ‡ÆQ:ÌIDATÿ-I¬ÃÚ/!! D7n§~ìä~^ .¬Ö?0 ².ÇzÉöçï¾ûNLŸŠ€ÖÑYºt©CÎ Rò†¢h§¹ÃïÊ•+ÄZN—"@Ra®fs'Çìw~ß¾};GÌþY[ÇþŸÏ±¯é Ú¿¿ ÷ç\Îëëûk•«(Š€" 4o^Š–/ßC( ìV¤HÖ"”g-ÒÖ½`ž¾]fƒF‰M\”"E ¹'NAiÑ¢…<çÎË%½æ Yƒ>Ò k™2e ÞAöàŸ?¬âÅ‹ËCÜ\Ú.w Q˜f‰D3ý¨ðз6ô›}ÖëΟá†}´mÛ–= ­Ó¶mÛd¿ðå2#>Mÿ,øž}ðÁ¢]4ýâ¬2} ’gõÙ2ûÌI˜ß7¿Þ÷n® ÖÁkëÖ­¢­4³£Y}ìÌ>WïîðC¤¨³ 9þn1fs'Çìw~¾h¥J•rt™¿+ÓÑŸs9„ùƒ’¶ ¬âE@0hذ?|î²in—y)¨ïH¸‹õ† [Ôu‚-ÄÌNK•*5jÔH´S0‚°%Ožœà Ó"aƒv D &H3šÒ\Ãj†3¯™ïÖHH ™&Ok4TÐî˜}æ|Wï0Ï:×b-Y²¤D”Âä’‰öñÇLÅxÔ!Ð͹ÁLˆà‹åË—Gé‚,˜9‘VÄ]‘ )H̵æÍ›'&dsŽÝûaŽ·¾[1²â‡HYà…àç†ÀC¤1›;9f¿ó;ûÊ%r˜ ¢åø¿ÕŸs™2ƒý®¤-Ø«|E@Pþ@êÔI©zõü!3‘¦J•„Í~ Ø·j=?„O>÷&RhfØñ_ü•phäëBt"̆%J”íÌq¦y>dðƒ3fŒGSŸéó“(¢0¡•+Z´¨` 0sæL1™" ~Tð }0cÂÄ Ÿ14D…¾öÚkòDÚ6DN‚@b8Ì¥0CƒW¨P!Ù?üË`ÎÃy^~ùe‡´‰ ›X>i }ˆBEŽ9h™`6†Iõᇞ,ìâüë`Š|ë­·$j‘­8|í4ë>\w‡¢EaЊÂô â³õ”)SÄWÏ$¯ëNî50²šˆ¡a!}÷Ýw ÷>‰Ð\‚àZ5x29’ÿøàE@P¼F€“ìJdçéÓ½žëë„Æ?1êÕሖôUN æy=Ú¿‰Ø4×þè£ Ö^™_ vö—HAó›<%‚“É”Á&5ó²ñöÛoKÄ ûÃx1910MkY$BÑ…¬yqDæÍ›×`S¤ŒcB`0ásDM"Š’5CÒ‡sñÃ_Öæg¾Á~jŽyà=Ê„Ê`-ŸÌÅ&I²?Ì5ç³ß›ÁéGd "(™¼IúíÉ&PÇ|D_⺹W&p§ÊpŒGöΚ&ÇëÙ€—eÉÄU0¼˜Ølj•yÎ÷Q¥ÃéD¤ßºÖ†Iߌ3¤Ï~€ñˆT5×Å;›Á îùæOr€î!æ2A6¬çÂ=`Ò*}ˆ´e?CGtntç2×öôŠèQ0QmŠ€" (!BàÆÛœ2á5côè•!ZÑ0~ûí4 Ö†lMw yKÚÜÉqwD jöݺoû.HûÀŽí÷õáaÏþk™˜àÖs6ë@Ö¤Iú Œµ6œ‹÷9¥Ë-!F&!´Ž‰î3G4J:4+á4癲9O›¬c^7ßÙ l8§ù`“¨¤AŸ7 {AJ?o›«}@†'ü¬k€®_¿Þ`m™ËhD'iCp¯]5Öb¬5BÅÆ®æØ½ ÒŸÙ¨6E@P!0a<ë—ŸÝÉAt1^®|ã`:Ž©M}ÚbêÓ}+Š@ŒE uë2)wš³Û Ùúô©Åd-5ûAýWê(d‹‡h!ø±ÁѾs›ðsåç„! ~®›]¸û ^ó„Ÿ7˜JŽ7kFÊØ8PûEÊftŠ€" <(T®ü>U«–Ÿ£òš…ìÈ[¶æˆÊQu؆Ñ ÙºÖ…(€T(Ù¤MˆM I’̤¶Q5mABVÅ*Š€"à V­Êмy¿p¤Þ½Z”žÆª¯L™œ„Ú¤Î夢%Vå(Š@ˆPÒ" uE@P¬´lYšs†]åÔ{­—ƒþùå—ësêƒÔœÑ~VÐ×ÒE °(i ,ž*MP[ ¬U… ¹9 a³­ñ”(Q|úôÓ´iÓ!Îßöc ÄªE@=u E@P\!¿²çŸŸÅu2/säbrWC‚r­hÑ,¼nmÎŽ¿@ˆcþüÿ•‰ Ê‚NBQD=&dŸwÚ¶~U¢E>mÁlˆLtU¶" (¸~ýgç(é8B•þÃÜÎÝ»µh1JL´K–ô£$I˜]A}ß¼y³£–fPRáŠ@@ÔqSŠlTÒ†›ªK*Š€"`"ðÚkshýú߸ÌЫ楽Ÿ¼-͘±‘æÏÿÕþD©(aA@».ª(ŠÀ=ŠÉÂô³pqðMa¤nÝÂ\`¼ õï?[þ†eº¨" ØB@I›-˜t" (ÁCÚ¶ vЕ+7‚·ˆÉ6¡B…2S×®“8ñíu#µKP‰€’¶p¢¯k+Š€"À4o^šîÞ½ËÉv·‡øñãÒĉéêÕ›ôì³_†eº¨" D€’¶è1ÒŠ€" ”)SƒÅhúôŸ‚ºŽ'áéÒ¥`âÖ…Ö®=@(,¯MP"%m‘wOtGŠ€"ð"ðĤ€üÎÇÃvúR¥²Ó´¢O>YN_}Ú¤¿a;´.¬Ä ”´Å ›¥[UØ‹Àcå¤|ù2†UÛt‘ð·oßÚ4`ÀלŠä÷Ø ¸žLˆ(i‹7M·¬(±'Ÿ¬@sçþB—/‡' ÁDõI6,FÝ»O¦ýûO™—õ]PÂŒ€’¶0ß]^P‘'2èÛo·˜—Âö>rd{*\83kÞÆÑáÃç¶]XPþC@IÛXè'E@PŠ@Љ©iÓ’4mZøL&ŒGS§v§Ì™ÓP›6cèĉ f—¾+Š@˜PÒ&àuYE@P\!)L’[¶„¾B‚ó~’%KD3g>E)S&âvúôEç!ú]PBˆ€’¶‚­K)Š€"E‹f%¼¦LYÝÐô§J•„fÏîMñãÇ£&M>åbï‡d]]DPîG@IÛý˜èE@PŠ@×®•iáÂÿµw&àVßI”!*)s"B抌eHÆô+S™§<Ef2DÄÏBÈ<û… E†ÌCd2Ï!óý_Ÿõ÷ûžÎ9wèçžû]Ïsî9{ïw¿ÃgŸž³Zk½k½¾újVÎ#¾øâ Û‰A¡E‹…]qÓæ„HFï"P»¤´Õ.o&" å ® —äu×M-·mm5hÞ|AÛ qhXi¥%¬‚ÃEáÅ?¬­¡5ŽˆÀ?¤´é« " EF€M{ìÑÕs¶ýùç좙1nãÇ]º´ }û^î¸ã…¢™›&" €”¶†ð”µFzG`¯½6 3gþl…ä_.ª¹/°À|áê«÷ û×)1âÞ$IQÍQ“R%0ýcÓ¿¶R}ºZ—ˆ@½&0`À8KµñÅ·Q”ë¸ýöçÃÑGß6Ú¨}¸ä’=)K$" 5F`ª,m5ÆV‹€ˆÀÜ`C±c¯¼òñÜuTCw÷éÓÉ\¤‡…éÓ? [nyNxþù54’º€€”6}D@D H ¬¿~;¯Jpùåé CX{íåÂÃíuS{÷¾0Œý`øûo9pŠöibõš€”¶zýø4yR'0`@7‹k{%|öYñV$hÑb!«âp@8å”Â…>úô¹(|üñÌR4ZŸÔ:)mµŽ\Š€ˆ@Å ôêµnhÕj‘0vìã¿©ŽZâνï¾Áá‡~ Ý» cÆ<*«[= [𤴕æsÕªD@J„À|óÍP†ÆŸ~þù÷¢_U‡K†‰‡ØÎÒ-ÂYgMÛls^˜6í“¢Ÿ·&(õ€vÖ‡§¤9Š€4h³fýÖ[ïä0tè6áÀ7+ZŸ}öY8âˆwºþúkãð…Y³æë¬óeXpÁ¿ŠvÔ1cÆ„æÍ›We8í­ 5Ý#" µI Y³&a÷Ý×W\1¥¨Ý³fÍ ·Þz«¹Gÿ¿°|Ó¦†5Öø:¬¶Ú·RØjó £±Š’À7ß|ãÿ>~ýõ×*Ïo¾*ß©E@D@j¶«¯~“íöêµN­[•FeÊÚU¹U÷ˆ@Éxê©§,§áFsµ>Å´Í>Ý," µC`Ùe[„í·_+\tÑ#µ3 F(:RÚŠî‘hB" "›Àa‡mé‰l'Mz#w(iRÚJúñjq" ¥D`õÕ— ›o¾ªçB+¥ui-" # ¥­bœÔJD@Š‚Àá‡ožyæýðì³Å|4 Ú# ¥­öXk$˜k]º¬(oõßÿ>4×}5ôf̘ayä¶±jŸÕ(ŠŸ~ú)}ôÑ¡C‡¡uëÖa—]v±M%W‡?þøÃÇ}ýõ×C·nÝ·ß~[£óÈ×y÷îÝ­nìóáûï¿wÛm·]ȵÃq¯½öòëo¼Q¼îù¡C‡úy®¼vÜqGgÿÉ'¥‘+PJ[¾o±Î‹€ˆ@‘ÀÚF\Ûôé5«léò«mZ¤&yàÂ/¿üRm}æêhäÈ‘–®åаÅ[„3Ï<3,±Ä–oïÀ0hÐ oþã?†Ç{,üöÛo¹n¯ñsŒýõ×_ûøð¸ï¾û„ ÊŒûÚk¯…ë®»Îy}÷Ýwe®ÓÁÓO?PÆ×[o=µjÕ*\~ùå¡K—.᯿êž@)mÅômÓ\D@D ºwï`)5–±âì+кx›üþûïþ;{öìðÁ„W_}Õ'û÷ß”„^x!üùçŸ~î£> 3g–­gŠõëP”_|1LJ刟ã)ÇÒEº,Y(h~øa™ëc%Žñž|òÉðöÛo—ióÕW_æK“'OžÃ*Ƶ8×$IÜRÅ:°X]rÉ%aذaáâ‹/¶êûÙà‹Â¡‡n¼ñÆ@Û´¼ÿþûáñÇÌ9-ôÅú¦M›f¹úþÎ\Búâ‹/ükŒý¡ Ð–{à›Ú°¾wÞy'}:óy7ß|sæ˜s>[òóBd®Ï=÷\€øò¼ÓB;æ‹ÂøñÇg.aœaJÂ|ùÌ ÞQâ÷(ò_sÍ5È#ü5vìØpÚi§…Ï?ÿ< ÐEá;‚²šÏÊšï»”o½±ß·‡'¨gxàÕd©¥'Ó§Z437·Hb?¾š“ýˆz{sÏù;÷n²É&ÉV[m•9îÚµkb?ÜɆn˜˜ 1Ó¯)I£FS„’W^y%Y~ùå“…^8™gžy’e–Y&a.ˆý0'–}>™wÞy½}§N’…Zȯ½üòË>Ž)Iÿþý“UW]5iÑ¢E2ÿüóûyS°¼8g9¶¼Æ' .¸`rûí·g®3†)b~üðÃûý>úhbÊ—ßc.ÇĸL{æoÊYbÊJ9˜5Èçs£&ï½÷ž·Ÿ2eJÒ²eËÄ”&-ºè¢¾f.wÜqIÇŽ}îÜgֺ䭷ÞÊÏ7ß|I›6m| Ú›Ò™À”¶¼:wîìï¦,%¦ØøgX4mÚ41 ·¸¬¼òÊΈ{Léòs…Æ9òÈ#“e—]6iÛ¶­÷ ø˜•Ñéçì³Ïö~LÁógK›ø¬Ž?þx¿ŸÑÎ;ïìl.¸à–<÷(—]v™3fþ|Ìý/ùû±Ç›ÀæÈðáÃýy6kÖÌçSlýZ¡ïR¡õúÍåüëþôÓ*ÿ›}J–6#(úF`ë­;†Ž—çW¿­mp·Ï`?df9íV&,'XÑn¸á·œóµÇ{S^2›;ï¼3Ø|Øu×]Ý’b ‚[ʸ¸1û!wË×>ûìc%´ÖqËŽýè†/¿ü2ï£&V +Ö±«®ºÊ_÷ÜsO¦=Ö!S¤Üº×³gÏpÐAe,b‡~x0eÓÛši%džÞMA |°»qÕguúé§»ågã7¦dfúgÞXŸ}öYwUÞvÛm~Í”OÊŠE ‹àꫯî}ıJ®»îºn™ÄÆšMé ¬‡ö¸wß}w·Â±.ÎßqÇëåÒK/»É¼Ó†Ü{ï½þnŠŒ[æúöíëÇñO¡qhƒÅlðàÁþ̶ÜrK·8baÄ¢I\.cä”SN <ãwß}×­©W^y¥[ɰhFÁ Ë3ÇR¹Ùf›…ȆëTá SN½9–<æÚ§O_û9çœàÏ÷ õù矰RòÀHßV¹\ß%®•·^ÚÔ¸”£ê²ˆ€ˆ@‘˜8ñµ¢²¶aݲ­J[ÚLIqÂæ²óû-vÊíÇÝí5±@ ®K/½Ô¯Ùt²Ã;øgs=&Mš4IÎ8ãŒË –9^Ï<óŒßŸ¶ˆxâ‰y-mX¬ÒÒ®]»‹‚¥íÔSOÍ\6×­÷mîØÌ¹Bžxâ‰ä˜cŽqkV8í½÷Þ~K´´1ß(X8à?4e11e.ÓM7Ý”¬¶Új‰)|~ KÛ"‹,’˜Û1Ó–¾9Ïy™"êãñ|LáIúõë‡q«íÓ–6SÖSx’^½zy;,Uærtë%m±1§BãÀÍ”ÖÌ8¦¨º•ДH?g ›[¿8À"—¶jr‹'kˆ–6S29íb.O·¬™ž˜ Ö?_{íµ~ KÛ*«¬’0g^¦0;/™â—Ø|æbML)LLyóg‹É÷]*o½~s9ªÃÒ¦2Vö­“ˆ€ˆ@}$УÇêÛv±c÷«Kð9G ‰)3~ܾ}{V(û- æt+¬(Xa°Ä!öãî1fXêÌõå–’ñãÇg¬rl°·ãÖ¯|bJZ™KXfb,VXa…Ìu®!é뙋©ÄRaêKaíc7é¸qãÜ›/¹ä’ñc0%4‹fJg0wa0ÅÑ긮6G@ýJ+­ä–5nŽñzXé?йŒÝ*ˆ ËS”µ×^;~,óŽsÏ=÷t«Ø-·Üâ®tƒBãÄ éõðlÙ€aÊ“wó幈õ KaZøNP«3Jº,4,gÑÚ «Þ½{Ǧa­µÖ ¦Àgމ‹3×wÀ‚Ǧ#Ž8"Lœ81À„~ã÷Žò}—˜'’‹k\¯7¨á?rÖ0`u/" 5I`È­mGßkõz')nΊ.R‹s·šÅ¯y:î{衇\©Abó?Æ(o( ŠSýóI:(€ù—^z©Œ’—¾ŽòƒR¹n¶`ÖwÃqŒàEq@ÒsËÅ¥EâCq×!-pwæ“¥–ZÊ/áþÃ=É &ԃŭjñp™ 4$ÕG.ÁEŠ2sÒI'¹Ò‰;3-…Æ1K—7Jwú¾ìϬ˜MQØ$€Û2[Ö`VVw‘âEaãûOPvqÃúúë¯>ø »Úaƒû;=Ï|ߥЬ7ßøÕy¾bÿRªsDõ%" "Pm¶Újõ°æšËZœÎÿª­ÏbíˆjbÄN8á„`énb®ì$¦Œx6,QXål£@ÀŠ„B@œ»L‰Í3fLÞå¡Ü`½c‡(–-,41¾‹›ØýÉ®KbÈÌ–[n9c¿¦÷ÇîPâÄ情 … %ƒÓ§O÷>Ùi®V·:ÙÆ¿§Ð¬<(z¼gv÷Ýwgr¼e߇µåì /ôõ¾ùæ›Áܰ¾{Å…¼eÜÏÎUsù…³Î:+» ?†¼Y'V0¬yi)oœtÛò>o¿ýön5âs,¦Ï8Ÿ À?òÈ#Á6}¸E0ÝŽØ¿I“&ù %û“h!e›8Ø ©}RÚjŸ¹F#ТÅB–¸u+û¡žl»¨±qÔq~ìè¤âA:£®ÖÄéYÑxS²É\¦îêŒ3\9"57”$òáüÅœbñ&ê‹âz‹U ây¬{Ôô$0›7P¾¨@Üci9¼)ŸÉYF¿´Åš…«ìªeŽ$&ö¶éX2ÖÁÆ’§-Œœ§Ž+5>©Ë®IÉ\0À"ðÇ%]»ŽH;ìúZ]UÌãeAâµ:n± fé*<ÿu,m‡ib&2S‹ùÀ8a–ªL®´fÍšy N+bîmcÎ6K›É7Fî1+FŸ9îÚµ«×Våê´ZêÏýfê@Ò£G„yP{•|gæ õ~³ÿßö3gÎLú÷ïïyçÈ{F^3ÎÇZ VàÝóßqŽwq~ÔâD¬Ø»ç8ã^òäYJ‹Ä=¿F~8æÍ<ȉF1_š7h`ª#O›,mö-’ˆ€ˆ@)hܸ‘å®ÚÑ2ô¿^~ù£RZZ½X 9¸¨qiE̽Fjö¤©IUr¥aá²bênâÅ”9·LQk8,WTl ”4Ò ì¿ÿþ^m«ýQõaĈnuãž\;e#Vbˆe½¸× Ë»eÌß^”x¢ Än»í¬x¼çÇ;V9Ê\‘†‹:rÑQM"Š%¤õv”ŒÚtÓM V¤ˆ÷è=?)mùÙ芈€Ô[Ûl³FèÚuEK‘q{—U½]P=›8Áþ$R=øàƒ]áJOŸD¾ÔüÄå9aÂ/oE ?nÊ(”WBù‹e´(ƒµôÒKgŽqR6‹²O–Ñß•%\˜f…óbèQdóA.AÉBÈÙ†tìØÑ˽ªÝè>& ¥­†«{¨vÞ¹sè×oo{÷ݯêÔ5Ghp´{´Á=r-XD@røãÙ¡oß‹Â7ßüî»opXl±s7ÔYº  Ý£uA]cŠ€ˆ@1˜þFáê«÷ý5;pÀÕö® Åøœ4§†K@îцûìµr˜ƒ@Ë– ‡qã ¯¼òq>ü¶9®ë„ˆ@ÝÒVwì5²ˆ€%UW]2\|ñžá†ž ç7±(ç¨I‰@C$ ¥­!>u­YD@Ê!УÇên£F=®¹æ‰rZ번@mPÁøÚ ¬1D@D è߃0sæÏáøãï Í›/zõZ§®BSÒ! ¥­tž¥V"" ÕN`Р-·ßþä©@X qèÙ³cµ¡E@*F@îÑŠqR+h°N>¹Wèß¿k8è kÂÝw¿Ô`9há"P×di«ë' ñE@D 8ãŒ>aæ ^~ÿý¯°Ë.ëÁ¬5E(-RÚJëyj5" "PcN:©WhÒ¤q<øÆ0kÖ¯–ËmÓK‹€ÌI@JÛœLtFD@D aö Íš5 'tWxッˆÿ )Ò&.j% 2VÕŠS‰€ˆ@à pÿý¯†Aƒ®]º´ cÆìY¤IÃX¸V)uG`ª”¶ºƒ¯‘E@D ^˜6í“°Ï>WºÂ6vì~a¥•–¨×ëÑäE È ¨öh‘? MOD@Š–Àšk.ã…åq—öìyn¸å–çŠv®š˜”YÚJá)j " "P‡fÏþ;œyæ„p饓CŸ>¬’Bßдéüu8# -%I@îÑ’|¬Z”ˆ€ÔÉ“ßô$¼‹-¶ Õ,Ý-tî¼BÌBCŠ@É{´d­&" µL {÷á¡‡Ž Ë/ß2ôî}Q8ñÄ;ï¿þQ˳Ðp"Pºä-Ýg«•‰€ˆ@¸í¶ç=-»JÏ?÷°Á+ÖÙ\4°”¹GKäAj" "P4î½÷Þ°ãŽ;Zþ¶…,§[÷ðÛoo›Åíí¢™Ÿ&"uA`òäÉ¡[·ns3ôT%×|ºWD@D /k¯½<4nÜ8ïu]†@`Ö¬YV=ä€jYª”¶jÁ¨ND@D@² ôéC½Ò²OëXo¾ù¦Ú”6ÕiP_-VD@D@D ¾ÒV_Ÿœæ-" " "РHikP[‹¨¯¤´Õ×'§y‹€ˆ€ˆ€4(RÚÔãÖbE@D@² \wÝuá°ÃË>]­ÇC† ™cŒË.»,l³Í6á½÷ÞËŒ5cÆ ?GÚ”l;v¬Uœ8ÜOÿõ×_aæÌ™ÙMæ8~÷Ýw½?ÆÉõ:ñÄÃÞ{ïn»í¶9î­«¹Ööã?†Áƒ‡.]º„Å[,¬·Þzá ƒ _~ùe…§ùË/¿úAÞ~ûmçQ™û+

ø`øúë¯3ÇK.¹d@™ùãâ©\‘½¶/¾ø"l²É&%wà 7 £F [o½u¸å–[\y{íµ×r®=û$i7öÜsO?={öìðÓO?…¿ÿþ;»YqÛI"" " ÕFàž{îIì—/1¥B}Òîƒ>HÌÂ’¼ÿþûÉ´iÓü>ûaM^}õÕäùçŸOL©ðs~øaòí·ß–é÷ã?N¾ûî»Ì¹^x!1%,±åÌ9>˜•%yòÉ'KÁüüóωYµüúqÇ—¬³Î:þù‡~H¾ÿþ{ï‰'žHL¡óóü1¥)1ÂßxãdêÔ©~.ÓÀ>°–8WSSˆÖaŠ™3™2eŠ77 O2Ï<ó$¦4%fËtaŠEÒ¢E ¿ç“O>I,ÇWœ^~ùe_s7Å-1Æû3‹‘·¥Sà’W^y%aý°Ì%óÏ?ròÉ'—¹DŸ‘,áĸ°ŠÏð³Ï>K˜{šsìä£>JüqŸg<ßéo„ É‹/¾˜À#J'ÜõæZÛ€Ë÷çëŠíy7+b²È"‹$=zôðÓ…žk´„ÏÉV[m•|úé§ÎçóÏ?/éÐ\yŽfÙL{ì1Ÿgzå}6%ÙŸ•%×-¯iyן åµÐu¨ Ê*mO?ý´ÿ¨uïÞÝßQøÌ²â?°|æÕµkWW†ÌÒ’XVùÌt¾úꫤQ£FÉÅ_ì ËòË/Ÿ,¼ð®-³Ì2 ÊÂmóæÍ“yç×ÛwêÔ)Yh¡…üZZiëß¿²êª«ºâ„‚ÃØûí·Ÿ·»ë®»üxÓM7Mâ5Úòc…1=ôP?|øá‡½½YÏ\ šo¾ù’3Ï<Ó¯™K6iÚ´ibÖ·dÁÌ(G:tH,¿·iß¾}²í¶ÛúO”Pîßh£2 ÷K,‘œwÞy™¶p1‹àkC)µ\‰¹B3mÓxvÌ …ªÐóá™Ä5l°ÁΆû`‡š+LPö˜kä>³’ú}ùSJ›Ü£F_"" "P÷L!f £Gf¹ ¸Íún¸á†`V­ðú믇=öØ#˜Å'˜²æ¾óÎ;ƒ)ba×]w §vZ°Ø`–)¿¯uëÖîRÃ…¸Ï>û³¦û‘¸C Å2™¢.ºè"wE^uÕU—)¢@K/½t0ËPxçw‚Yý±Ç›¹FÌ™ýÀû±)aèСw³…Î;³^ùµ‰'†Í6ÛÌË}áòd½ôÅܶØb‹L¦ø…SO=5àJbÊm&{Û¶mëë3%00w2ðûµûî»c˜‰·UøF¦ä:oâË.¹ä’`VGgfJK¸ù曽/ñl`Ãd.”óÅ$ µcãsàÏ"Zï—`~¬WQP®hcqnaíµ×.£LѯŖŦeÞQ6s 6‚U3— ü"(…Œ‰TöùTd®<ç((ìX ëBþUMëbt)" " ÿH[K AÁ„u‹Ý˜Xv,ÞË›óŽû …È‚ñJ Ê[üÁµÀóL·iwZæä?,è>s eK]ZÉK_Çm˜¾–¹1Ç‹s Ý 'œà÷Xüš·b'¤m¸X ÓV¶]ä<wšžþù÷/ÖÏ.ËUVY%ç=…NF%¹P®1.®à8&ï^xaØyç 8»:£‚G{æYñ¬Ó;Vó)e<_\£¸‡Óíé—,–;˜á~ŽRÙçSÞ\é·¢Lâjê]J[M‘U¿" " 5B`‡v¶‰  ü  Ö‰ÿƒ[mµÕÜ*gAþnñÁZF̱h¸ò Å$¡\`½Ãj‡ˆ²]´Œƒû~P²ˆ9Û~ûí9í2lذŒë–ø4bÜb6 do¼±»-QÔ¢ Ì¡tàþ­¨Òfüö7ß|Ó-K«¯¾º+L¬sä^c.ŒYS‚²Ìú±zÂêôÓO½{÷¶ÃÔyqŽg«gžyÆ­¢Ä•!Xïàg;…ƒí.õÏqžéµ¡ôqÆ«^·nÝÜMR†² Cܧ¶‰!ÞêïùžVCîe>iáÙškºm]–ÒV×O@ã‹€ˆ€Tˆ@´Ä¡¤á%×±FQ‚V1â©p{Ù®@WˆH K°¿íîô8,ÜiiI[Rp4(,¾øâášk® ¶#2 XE! ž~úõë犢`ý‹q[(Xžx•²èå<ÊÄæ›oîMâu˜S\söñúë¯ïÄ5×\Ó׉×#.IbѦOŸnºé¦2÷ûö'Ýgì7^Ksˆ×²ÏŶlÀ`(ΰÂõ‹‚…… +'Ç\ãÊmL|ÔQG¹%n­µÖò¤Ã¸¼ã¼Òk‹Š,ùå°ä¡¸çHÞ6ÜÒÄg—–|ÏÇvâú÷#͘ûÊ›köú™gœkzÜÚøQ„³YÅÝÁ1n-}_öÚâ5¸3–ºìþ*ò|°Â%íN}šklS•w”i,½Ä_¢tÎ…LÕF„¹ §[E@D@j—®F,Y¸B‰áÊ~Ùé˜K°Ða™ªˆÐO¡MÙ›*Ògu·Áõ™v–7çê?öÇæ ^¹…2*•Ù×™{.…vÙk‹÷²û—Wy’ïùd+•é~ Í5Ý®.?Ki«Kú[D@D Rp5’7 ×\L'Q©þiŒ•&Wî/vnæÛÉÈ:n¾lwYUÆ×=ÕO !<¹G«ÿ{£E@D A¨ ÷hƒœgñXÙˆðßÿþ7O‹š9MÜ VL6>Hæ$ ÷èœLtFD@D@4âÀHƒQÛB¥ vóJjžÀ¼5?„F†K€ Ù‚›7½ ‚Ò[ó#VGÓsÍ‘j„’Päpc§lZÈ9ÇFŒtî9Ò|°Ó5 û Iÿ1cÆ ?ÅlR@¹ã•ˆ¤ŒSz.ñ~þI­AY¬lÁzdEàçÈ–n—kÝéëú\yRÚ*ÏLwˆ€ˆ€ˆ@A(F¤ÜØrË-=¯[vãõÖ[Ï“Çó—^zifg!ùΨÁI9-R°y‚t(a(Z¤Ù I-•Ê'ÍB~²˜JÅ™¤ÿ`·,Ÿ©V@ÚêhrŽYìø$wû1Á-Ê" }“ŠÄ ¾{9®8Wr×±’5ðŽb™K˜÷Áì¥År]×¹ÊÒVyfºCD@D@r ?ÚàÁƒ=—ØþûïïUbBÙœ7ä9IêŽC9ÄÝ3'OÖ1R•P§”Ф¨2dˆç¢ËÎÞÅ=ô‚F®³\).H‚ÅŒâð(™±žk¡Bð$¹E©$~Ê$,¦ÿ\Âf¬„äQ[guEÛ³ÛæºOçòÒ–Ÿ®ˆ€ˆ€ˆ@¹P~®ºê*O5‚u ËnJ\—×^{m leËʉwQÞ˜ïŒÝ«G}´[Ͱ®‘L6{Gë=÷Ü<ð@»mÛ¶d¶ÙB2\¬oXá˜#ý … ÁS½€ø5 ³—d¹$»Í%ìîÅõŠ‹ • (}µçž{ºÛ5×=:W˜€R~棫" " "P±]XÕp#Rÿ—he%;ÍH:ql,ÓE\[§NÜb…ÕªG2](p'Ÿ|r™!‰‹u>¹€+3[ÒcP=ÆÍ*OÍWÜž1á0}R…¡à‚EaÃ*‡kuäÈ‘®ÌªÿZ¨¿†|M–¶†üôµv¹&€Ò‚K‘³”D¢ˆ:µK íä¤ RºzŒ'‹“ɶœÅóXñHúK1vêhzè¡î®dÓ@ZZ·ní®ÑxkW¶ä+ÅT¨<¹Ðp»[åùçŸs¾SÅ… åíÜsÏõªÄðI*O@J[å™éÈÀÚ5pà@W’(ŒŽk“|JiñNJŒl)T0=»mú˜˜9ê®âvD1£*!¤+#ÐåñÎ;ïô %»**… Ás¸4bÚPqÛ–K(†˦j¿tÐA^‡•y1?Iå È=ZyfºCD@D@rÀ}Éë¼óÎ 7ß|³ïì7n\™Ý—ÜHŒÙ.»ì’‰9£`:uQ¬lù¬`ÜsõÕWûŽOܦ͚5s+®Îô}gŸ}¶T§˜;®Ìÿüç?^“5ºZ} ÔîÖ=6 r/Â=±<ǸcÏ9çœ0jԨЦM›°Ùf›eîåzúa÷ë¤I“¼M<¯÷ªPE„ª³Ó" " 9¨"BY(ìÌ̶„Ñ‚óäkËW³l/epwþøã«–KÁ{öÙgqjÑG{ܪXÉ]tѲå9*TžM_|ñ…§%a³D.É·î\mKùœ*"”òÓÕÚD@D@JŠ@.…r¾* ÷vèз¼2eÊcV8JMQ7µ¢ *ë—W!É·îB÷èZar棫" " "PïÃÆRÿÙ™ŠÂvÁÔ»uhÂe Hi+ËCG" " "Pï `å=zt½_‡P–€v–å¡#(JRÚŠò±hR" " " "P–€”¶²’/ %v0IEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1DBSelectionFailed__coll__graph.png000644 000765 000024 00000027404 13515046516 030367 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÏÅó¦9sRGB®Îé.¾IDATxí]˜EÓ.àÈ9sä I2‚ ¢‚ A¢*JøD‘ A0"* ŠpD‘,9ç 9çœsš¿ÞâïanÙ½ÛÛ½ÛÐõ<»:¿ÝU]UÓ3Ï`"M€ÇÄ÷8…N Ðšyô@ÐØD@3Màt2€f=46sLwöìYúï¿ÿoëk?B kÖ¬T @ŸÔhݺutýúuŸä×™>ñÄ”={v¯Uã1æQ9)RDê£!pøðaŸ×&S¦L”1cFŸ—›ìÙ³ÇëŹdž`ÏëÈÅQ†'OžôyÉÉ’% :æÙ·oŸ×qÓ6×!Õ† šyB¥§u;½Ž€f¯Cª3 4ó„JOëvzŸ2Ͻ{÷èÂ… .+½dɪY³¦Ëp plW«V­hòäÉþZÝ8«×Å‹éÎ;Nˇ÷ }úôi§ápÓ§Ì3sæLJŸ>=ݽ{×)çΣeË–9 ó盎íºqã†ËAâÏíðuÝàòž4i’Óbîß¿O×®]£8 „›^c¸P,X@Ê•zëÖ-:sæŒ`pèÐ!¤Û·oÓÆéüùóáƒ0ÅhXì}óæM3"_¹r…V®\IÖgnÈ_¥C¼'NSâÏž=;Ò=vôèQZ¾|¹ä­îሺ£>¨ç¢E‹Ìú:k׈#è•W^1“cP`V]¼x1]½zÕ¼Y’Ò#·mÛFDNÀäßÿ•‡ëj‘þ‘#Gç§N&A?áÌ‚>ÌŸ?¿0 8«1²ÿ~Z±b…¤±â‚¼víÚ%ñpÿòåË N‰+‰xÐøÀ(\¸°ÁGòUíà…`·hË–-Æîݻ݊k'ÒÚµk¥¯ÜMûÍ7ßH[S¥J%X¾üòËÚ Ð>Œ`Ó½{w£hÑ¢Ò~ÜN8äq±zõj9¯W¯ž‰ pcÕNªĄ́T©’ÄAšgŸ}VÎ1ÆÜ%fXƒ¥»ÑÝŠé‰cÆ ƒ%˜ñóÏ?KÌÃË` –ˆ/W1^}õUƒUPƒgñ]ŠyÀ¹sç6x2Ðf\ãx°tæAç2DÂÑ^\8p@ÊtçÏŸ˜‡5#EŠÒÔxƒY À@¤ãÇ—s0ÚÚ¬Y3cÆ &ÃX™§FÏP"dÁŒJ˜uèÐA°ß¼y³Œ‡ZµjI^Ï<¬~ˆdoÒ¤‰1oÞ<h`"uñ”-ñs Ì`ypÏ 8PÀ ðøAJ+VL¢c`Bª¡³:<¨K—.Fºtéä\ý ¹Ë”)c€™U~ëׯ—ðå—_JT0:Ç ÄCç¯Zµ*R»¦˜GIPVq[HÍ èxÌþøc$39p‹k扱ÍÃX²‹þΪ”,ë`‰Ám‹L,•Dæk°ÚfžGu¢lœ-Zˆmû‚&f|›öÍ~ôìÌ!8 /]Ú<¼š9 æNå7mÚAcÆ,¢nÝ*P† ®—¸“WlÆÁê_Ò!~Å¿˜ÒÝatrl2ÊÒì&[ìü®˜–—éãÁOn­–°à½™P ¹swR×®S)Uª¤4|xc^fäÛAé-L±î îw_VXxã=™ýÓ¯Òö—xåQ?²R’´ |Q]òfÀÎ[ôóx+ã@ÈçÀ³¼œ§Ÿ, ‹OC‡6§:uJBÕý¶Ž¿Û·¼ÿQÚ5å¬Ô1iú0j>¯¸ßÖ7& i›'oÞŒ”$I"Y—uïÞzûíßèûïÄÏN{ûÊ}úûí=´{Ú÷xãñèÊ\Ì73¤?Ò̃(R䡪¦´×fñÂÃßùµîÀ=:6ØåC·iêë»è̶ëdmÚFjÐ`¯Š¾[ýÐå[u…¦´ØI×ÏÜ¡÷™Ð8ÏX$Y@·-ªÊ‡<ó+–Ý|éJuÿþ~ä¿X7˜—Ô?ÔÝU˜>FFà¿?ÎÒœNûèþ­ôàþ#ÆQ±2ÖÌ£°ºcÑ¢Ùøe¹Ç;ýÞ½ûüÐeþ¶ØZµjе;¦ 2øÃ5Ëú¡•ƒ²šÆï8ù‚TÊðD”(EÜ{ÙbÚVWéC~æÉŸ?3«mÎ; týúmjÔh8ýõ—{o½º:˜îß¾|ŸfÂ10ƒ?ö¸Ü‘¦ÂÞÉ\"xhdÈ3O‚ñù›_Ÿv6À1+Aûßÿ&Pÿþ³œE ©{WOÜ¡©ÍwÒ™Í×Èp¢¦)0àiËX$xhgÈ3@xê©Ü.g„ƒÁÂÃÓP‰9qÒU¬äY(!«cñÃ},Å”`w ½šy8 œÙ=aa øE¾0úðÃü•Ëîlÿs#¡wÍüRèÕ ÔdFQ*P‡ßwâëx g"Ì< ¯³ÿÈGzÃÀlñCÛ#‹« ðÐ4GŽ´lë¼GÙ²=ü …™@ŸPâÔ èÙ9)C¡¤´qô)ºyŽ×®=ˆÇ&ÐC#(uŽ$” ÉãLLÐ陇{³P¡pQÍбñÙÐÍ›7¯ukÁo/^¢¹s}*+˜:Þmj¶}ÂYÊ\49Uú$'«rñE•ƒ³ K©àv?=ó0‰%àOCeâ‘_¢îÝëP³f„‰vì8A_=‡?ˆXšÒ¥ nã×3mw†®ñƒÑZÃóSò, )Ï‹iiíÇi/Ï æ‡£ «^ª@ÀqîÜíün|>þ¨Ä£U·7nÜ¡ŠûQõêEhÀ€GC´¦ Õóë§îÒ_ ÿ£Rm©d›Èù8·ã«ua”2ÛÃïö+Fšy¢éÙˆˆõÔ¹óÌ\]ÌupÑ$ ‰à]Ò…½7©á¤ÂQzÝ‚ móDÓ» ”áÏHå¤="¢‰:ÁÇW_¥ƒ /Ò3]s„,ã ·5ó¸1æûôy•7£:Ä F7¹;¸£ÀI°ràQÊóBÊ^!ep76šÖiæ‰ /žƒš4)G}úÌàÝêböÝe7Šóû(ùk§£ ]rø}=}]Aͽ«¹¬ÇF6:I€# gøÅ¯ˆÝ3fÌ2©u’`A@3žÌ™3=½óÎó¼åÅ\:þš'ÉÂÒæ1§=ª0öŽ­R¥ cã¹c\äÆ<*/®"k汉|§NUù«‰yÃ¥à}»+ Ì¿Hž~ăwâ#lÑ»çyŒîÌ™3e_$ÞÎã´±@3MÄ“&MÄKvêÒŸ®¥­[ÚÌÅ“9[I€™›L)ÂæÊÖk̼§­ –#6ô]¶l?#‹EŠ¡¾}ûÒóÏ?oÆáM‘)wîÜ*+¿<ê—ábØ-ø\o³fåyÝÛßüƒâ”,Yà¿Ã²jÈ1Jž1o™):ؤ v¡^á<{öì„íhÂÂÂD5«Q£(ò€¤ëÑ£‡l–Œ “Á {÷î•ûãÇç— ãË5âò®Ör©°¸Ð3:©[·Ztûö]úöÛy^È-n³8³í†Ë× X#0fü0ST­ZU˜gáÂ…T¶lYʘ1£Ù€ððpó;„ß¿ÿðûßT°`AIûí·ßzeK³ X<ÑÌã°ñŠ6¾°3räÞêœrŒ»,2KFuFtùºÔ²åË—Ó¢E‹„y^|ñEþ²ÐJš={v$• -ÀìâH˜±ºwïNíÛ·—ôªU«ˆm#Çhqýxë¢ÚþWÉÖ­+ñ‡C2RÏžÓü¯rÖ(K)×ßk¨^½ºØ=ëׯæíÂ=­X±â1æqU,¼hPùp„kzúôétçÎÃW=%z¨öîÚµKòu•‡?Ü×Ìã¥^ÀWwz÷®O üÇRy——rõ¿lÒ¤IC*T[&_¾|¼¿Q1þÁ ì}‹²ÂPû2eÊDï¿ÿ> ™ž’¶cÇŽÔ¡CqBÀ‘ðôÓOKœâÅ‹{Û¢Ì/®õÚ6/÷@»v¿Ò®]'™º±­e“+xñÌ¿ H<3RÛEbkO<‚B=÷q–O®\¹øËGg*gá¾¾§™ÇË?~‘*Wî/6PûöÏ{9÷ÐÊnÁ‚lGŽtÙh8|½¹±ËÂ9@3OTèØ Ãš·Ÿ~ZÌvÀ§ì} í÷ümBÉ´^áƒnzï½(Mš¤üàïoäîÝ,¯½íÝ C(7Í<>èì$I²Aü Mš´ŽŸÂñA ÞÉ+ "šî¤}³/z'ÃËE3:¼víì•ÊÇ‹G§ø¨„˜g«Vä­¦?doMÍfÎbjæq†Šï¥I“Œºv­E£G/农õbÎö²rõº½ÜB;•fžXèÿæÍ+ȦÁ={N…Ò¢.âèÊË”"óã¯DJ‡:C@?$u†Šî­Ys€ê×ÿ~û­-U«VÄ%¸Ÿåý[FÐoyè>öcjæ±Ç)Û·K[¶å÷_>–Ýè<Î@'ð+´Ú‹ÝñÙguy¡ã^¯µ8KÕEù Í<¾BÖI¾Y³¦¡Ž«Òwßͧӧ¯8‰¡ošyb¹·ð±Dì¸Ð§ÏÌX.Yçm4óxÑhòKœ8Œ>ÿüùÚÎúõ‡¢‰­ƒýÍ«V¬þîÝ8çÿŸ®õ>ÌX3Á*ëüù3ÓoT¢þýgñ‡ÿ<ÿ¦sTy#ìúiç.Œ.wÍ<îcåõ˜Ø¦4xð¯ç½j°óz½ ÎP3Ov~ªTIèã_¦_~YÎ_Ïôl¨ª­_7ˆ ï…éÞÃÒVNpÔ¬ù ¿¶Œw\xÇVÖDpD4ÚIió%¡ªƒòZƒô¹—Ð3—õ4;|Ë /Í-]º›¿º¹ÍÓäÅׯ<‰Ïnhæñ´îg\¦LnjР õê5¿y3¿rXÒøTöݬdÝÝÀýšè˜ž  Õ6OÐòa\,שT©=óEêܹšKÒY{ ¿Ýb䨱c„€‡½ðBþâÎrþߥPjvŒÚš0aBªW¯^Œò°›Øogž¿þú‹7nl·]™.^ˆT)¾à†û%Mœ8/÷»]·>øÀÈ‘#‡‘;wnI?~|ãÝwß5˜äy 8Pò{æ™gŒ*Uª˜yó¦±F‚ V{ V9 fƒÉàÏKxcçÎwÉ’%FÚ´i äøeÊ”1˜±$¬{÷îF©R¥ä¼Y³fFáÂ… fNƒ7œ•òÛ´i#aÓ¦M“ëÊ•+›aˆ{ôèQ ç}8%|ñâÅN¯S§NmôíÛWÂÿ˜I Þ WÊf4Xpùóç7x‡iãÞ½{Æ¢E‹ .R.ÚÆ»Yû÷ï—lXí4˜Ù ž½¤|Þ2Þ`Æ“°¨Ú£ð& 0ÐÀÄMpF˜Â­G¶zõj)‡—Ö–è2Æž={$Ü¿ŸþÙàîDõIœ RÛxÊ6åØA¹jÕª4|øpb’å5"[äXóæÍù€¥æNËS§N©Œå@½{÷éˆ%–˜!FŒAwïÞ¥Ö­[3ˆHJ¨i§O»~Nì¨0cÆŒ‘ߌ3¤|üAºcVØ»w¯ì mÔA˜ÅºvíjJ~ÇkÄùóÏ? m°þúõëG˜é~ûí7â(íàJ'Nœ ñãÇ3Ô¿lÙ²Rîd†ûúë¯ùôûéÍ7ߤvíÚ‰JˆºÃnéÓ§ŠrÕ`€]«ÇŽ+õVñqìÕ«§aíÛ· `Eòd&6£a–…Ê‚If£)Süw30³ÒÿT̃֩S'Q“ž{î9Q}XÖ?U«VM=Ú F♃TGA_¯Q£†¨|,iýúõÄR” ’aqê AƒDõ;xð ½÷Þ{¢j Þo¼áˆ§y]´hQjÚ´©0%âÁÇQÔ³gOQûžxâ ɇg Â5ÊæÔé5n¶ÁêÖKw‰_¾|yêÖ­}õÕW„Ý¢‡ BÈsóæÍtøðaÞ¥ûC)ùcý T@àu ,1СêV¨PæÎ}´-Jtí‘ÂþoíÚµI©ËÀªòÂ… ͘`&¨˜<‹Ú†ò…‚ÆæàÐëAÂæI™òánÔxéŒçn †]T³fMš¼ŒxÀëŒà•ägB΂ä^TíQ6•cbØ¡ðL#…$óÀžÁ3 <[iÙ²¥í~…U”ÇÒã£ÚÁ†‚ÇÎ熳|bó^Tí‰Ízø[Y~ÿ žÝý 3]?A@½†Wß0Yo›Ÿô¿®F# ™'€:ïæÍÈ®àªzPVÕïmµÔ=(Ñ÷°Qsçeƒ>3/gIäaÊàŒŽeTqI~ÏúÍ<¾Ã6Æ9ß¼yW6ùµªl*Ó‡ª›~Xªðˆ‹£fž¸@ÝÍ2çÍÛί/;ßà 5}ú&~}ú›¹éhÞF@3·õb~“'¯—£®²„-´hÑNWÁú¾ÐÌãc€ífùòMþÎÛ.þ“뙪l"Mqƒ€fž¸Á=ÚRÿþ{K´*T·9s¶ñ‡Õõ« Ñêƒ~¿ªÚmˆ,¯^½Éß’+©®p[çÈ‘Ž¿ )Ò}¬u+Z4[¤{úÂ÷èUÕ¾ÇØk%T¨Ð—š5+O:¼èµtóí# ™Ç>v:eˆ# ™'Ä€n¾}4óØÇN§ q4ó„øÐÍ·€fûØé”!Ž€fžºùöÐÌc;2ÄÐÌâ@7ß>šyìc§S†8šyB|èæÛG@3}ìtÊG@3OˆÝ|ûhæ±Nâhæ ñ ›oÍ<ö±Ó)CÍtóí# ™Ç>v:eˆ# ™'Ä€n¾}4óØÇN§ q4ó„øÐÍ·€fûØé”!Ž€fžºùöÐÌc;2ÄÐÌâ@7ß>šyìc§S†8šyB|èæÛG@3}ìtÊG@3OˆÝ|ûØÚVñ­·Þ¢K—.Ù/U§´…À–-)S¦›~ÍVzÈ> 6¤FEÊÀÖ†¾Ó§O§”)SRöìÙ#e¦/|‹@xø)àÌÃo Ó¹›¬_¿ž *äæA®5kÖ¤ ˜è@°"ðæ›o:mš¶yœÂ¢oj¢G@3Oôé§hæq ‹¾©ˆÍ<Ñc¤chœ"`ËÛæ4'?½yêÔ)2duíÚ•2dÈà³Zþþûï´eË3ÿ$I’ÐOxð Hæœ9s$°5<$9¤ç‘#G-þü¦4¿xñ"%Ož\ ê‰z¥NÚ,ãþýû„ê3ÄŸÀ( Ì™3‹D“ þC½÷Þ{4xð`3fŒºMÕªUé©ntìØ‘–.]Jˆ`rsœá>§OŸ–z¢Þ®èúõë‚ f^5 ª¸h˜ÌQ´hQi úu9wîœ<ÏëÕ«W$,Чû÷ïŒ1â~ ÜO•*•` ³fÍ*L¢ÊñuëÖRgë=ë9ê²{÷n)ת- í {k|œ£8B(©YawÇŽ“:zóÙd¬0?¤ó½{÷d€ÖªU‹&Mš„¶‰j©ºiÓ&>|8Mž<ÙTÐiªÔ†7JƒÞÿ}ª]»¶0Ä'Ÿ|Bÿý÷Ÿ„Z;wî¤þýûGb 5kÖÐgŸ}FÅ‹§;vH]Àhꨞ #-Â0ÀŸ~ú)U®\Yêùí·ßÒ²eËdFÁ <çzñÅeÐK‡¿4iÒP¥J•诿þ’êÈÌˆŽ¶a°bÆA`°c¶sªÁÒ²eKzþùç%ÚŽ:Ï›7O žE¼þúëný›?¾0/pGYeÊ”¡Ï?ÿÜV=zô² ¢½`d Ü•+WJ6={ö¤:ˆøã?„ù~ûí7³„˜®oß¾Â4èk`ºuëV)íéÒ¥‹ô“µ^®ÎGE'N”v߸qCTZ¨ŒR˜…¡ÞB°X j%Úˆxx}úô‘´¾èSPLU5k¹±¦¶aŠýî»ïD—G'B¥(S¦L‘/Z´HôW Z P$÷æÍ›ER/Y²D¦|tàŒ3¨qãÆÒ8cÇŽ¥Ã‡Ë€‚ºiAšýý÷ß4~üx¸V=õ„ý‚ðråÊÉÀƒ$•-[6Òƒa0cTTªT) Æ «ƒŒ ¦€TlÕª•'Mš”êÖ­K«W¯¦W^yElµqãÆÉŒ[¬X1aê©S§Ò‚ dÀÎ;Wf£Ÿþ™víÚ¥Š#Ê8p  \Ìfð˜-×À G„W¬X‘~úé'êܹ³ô®!̬´mÛ6éCØè`ˆrFmFÃL†¾…Ѐ š9s¦†à fS¿üQÂ1k{0+Ò _Ñ&5"eb¹€Lœ8±´ãŸþ¡Â… SïÞ½eÆ™={¶´¶&p·Îd–,lÆó@Uaœ+W.Ê–-› DH,èóöP³ NÁ£€¦_ˆŠ!4¤€³AåÁÀFZ >«ºã  T€z`¥T.TèåÍ›7æ‚: ԢE UÔÌ,Q¤0å)B;¡>äÎ[0Q>bÄ,ƒ31¤,÷Wv´mÛVfRDZ¸p¡¨¾`¨M¨ïÚµkÍì$EH;y©2`ÏÀQ‚ÁAI­jlIW„…-kÅHÝw•‡«ûhfE¨÷P÷€lÚ¨X€ | ”@v¨#fv8.¡ýÞ¢GâÃ[9Æ0¨` 0 Žétˆ=)°0Ø¡êaæ‚T‚¡‹iº-Ô+Ø0VÏ–³ê 3Û† dvSñ0³aºG^p\`ª‡÷ôï¿ÿl E° 2*‚¡õy"ox‡ 0SZ ©âÁf€A‹Á õƒj¨œ°‰ ÿÌ`xÖ2 ÞBâCˆÀ‚6Y ³6 Ú‹™* Ê‚:Î`:´.s”\Át$Žy¢Ž c„á0Pí®!Á$°1ËÃi€çA°«06€ÕŠ+DÕ…=‹ÇÞ¢X™y%‘ãµcc A`ãˆNU©RE¤S§N ®Õ=Ç£Š£Žx L¡Šƒ‰P–rb”,YÒÌñU¾Àê+úIõ ÔR`ƒ<ðî°‚÷ æ‡}è ²õ2¦h¸u`Þ¨ˆ5eXUÉ&žEP# YÀlx×êl'5s!>$4twHr0Ÿ"0+ÜáHJ©M*<6˜1Àäò˜ùPWGÂsÌ9rä6;†«k̈PÏÐV¥®ª0áånV,pnh N¥òáž"Ìx¨òsL§âØ=‚¡ñ¬H=cƒ]†@]\ðBqt´•ÀàÓ8k¿«<Õ}i eB¨ûźºòƒ#Ô/èÝ:ί³{¨6$‘òÈa6ˆŽT\gñ0à—„⪭ª^P)­”Õ}Ç#fi«CÅ1ÓA¹" l5¸]ű{ÂÀJVõ¾õx9sB „¬zŽfMÓs¿c¨Ðë•ú`§ƒÅ‘ÐÙxàŠO“FÀüŽy`$ƔୃžïHÐéúYãÀË£I#à.ŒwSèx€  ™G€M4óØN'ÓضyàÃKM`G@-srl§-æÁj_<±Ö¤ðÌÐúà]µÙÖCR•X5¡Œ€¶yB¹÷uÛc„€fžÁ§‡2šyB¹÷uÛc„€fžÁ§‡2ÿiKür «IEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1BadConversion.html000755 000765 000024 00000055112 13515046516 025353 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::BadConversion Class Reference

MySQL++  3.2.5
mysqlpp::BadConversion Class Reference

Exception thrown when a bad type conversion is attempted. More...

#include <exceptions.h>

Inheritance diagram for mysqlpp::BadConversion:
Collaboration diagram for mysqlpp::BadConversion:

Public Member Functions

 BadConversion (const char *tn, const char *d, size_t r, size_t a)
 Create exception object, building error string dynamically. More...
 
 BadConversion (const std::string &w, const char *tn, const char *d, size_t r, size_t a)
 Create exception object, given completed error string. More...
 
 BadConversion (const char *w="")
 Create exception object, with error string only. More...
 
 ~BadConversion () throw ()
 Destroy exception.
 
- Public Member Functions inherited from mysqlpp::Exception
 Exception (const Exception &e) MAY_THROW()
 Create exception object as copy of another.
 
Exceptionoperator= (const Exception &rhs) throw ()
 Assign another exception object's contents to this one.
 
 ~Exception () throw ()
 Destroy exception object.
 
virtual const char * what () const throw ()
 Returns explanation of why exception was thrown.
 

Public Attributes

const char * type_name
 name of type we tried to convert to
 
std::string data
 string form of data we tried to convert
 
size_t retrieved
 documentation needed!
 
size_t actual_size
 documentation needed!
 

Additional Inherited Members

- Protected Member Functions inherited from mysqlpp::Exception
 Exception (const char *w="") throw ()
 Create exception object.
 
 Exception (const std::string &w) throw ()
 Create exception object.
 
- Protected Attributes inherited from mysqlpp::Exception
std::string what_
 explanation of why exception was thrown
 

Detailed Description

Exception thrown when a bad type conversion is attempted.

Constructor & Destructor Documentation

◆ BadConversion() [1/3]

mysqlpp::BadConversion::BadConversion ( const char *  tn,
const char *  d,
size_t  r,
size_t  a 
)
inline

Create exception object, building error string dynamically.

Parameters
tntype name we tried to convert to
dstring form of data we tried to convert
r??
a??

◆ BadConversion() [2/3]

mysqlpp::BadConversion::BadConversion ( const std::string &  w,
const char *  tn,
const char *  d,
size_t  r,
size_t  a 
)
inline

Create exception object, given completed error string.

Parameters
wthe "what" error string
tntype name we tried to convert to
dstring form of data we tried to convert
r??
a??

◆ BadConversion() [3/3]

mysqlpp::BadConversion::BadConversion ( const char *  w = "")
inlineexplicit

Create exception object, with error string only.

Parameters
wthe "what" error string

All other data members are initialize to default values


The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1ReadTimeoutOption__coll__graph.png000644 000765 000024 00000020772 13515046516 030543 0ustar00tangentstaff000000 000000 ‰PNG  IHDRзcUЖsRGB®Îé!´IDATxí]xTU>zï½7YpUŠâ Š€‚| ˆ¨ ȪK‘ÝEPÀ.²€ ".ŠºÒ›RéEz‡Ð ÅPIÞÞÿ°÷ñ2™ÉL2“Ìä½s¾o2on=÷¿çÜSÞ›IÃ0f ¤˜,JŒ´ô”>‚€ @ÑYA@H;¢@iÇNz $ $B ø@6?ú¥ëŽ;èÀA™[&M_î¿ÿ~ªV­ZúNèÑ‘DÈLÔ·o_$=äeC F™D¼žÊtHÆ iýúõ>Kd¼ "P®\¹ Ξö©%J;vÒS$‚È€ àbüAOú:Q Ç‹€à¢@þ '}€(P:‹@=húôéé<ËÝá¿üòKzòÉ'©X±bT¹rezöÙgiåÊ•>Ï}ãÆ úý÷ß¹=îµµlÙ’Î;çs'6Jç]_½z59r$g!zóÍ7 Êš-[6zï½÷¨W¯^tìØ1jÑ¢}þùç>ÍÿꫯR×®]¹mBBÅÆÆRbb¢O}ÚÈö C.\`Aزe ?ž÷§íºuëèèÑ£üùÖ­[,pqqq¦,àBxçγ Nôß~ûÔM4³.N:E7n䶘ïâÅ‹IêñscÌK—.ѪU«ø]7º}û¶yÚïÛ·ÇB™&ÌwóæMS ããã <ƒV¬XAãÆ£wß}—~üñGêÓ§½ýöÛùäãäÉ“ê&L˜`Ž=qâD#,,Ì8sæŒ1fÌ#wîÜF¾|ù¸_«V­ u:s[%¸æØ 0ªW¯ntïÞëªV­jŒ9’¯#""ŒÆó˜áááF®\¹ŒÙ³gsݼyóxŒ&Mšh§„ϨY³&ó…Ë—/ç²_~ù…Û÷ìÙÓ(Z´(_wèÐÁ(Q¢„¡Š?[ÿDEEq¿I“&)ÍL²dÉÂm4h`¨Ã€¯ÕÃà 6Œñ)T¨·Ã:”Òq0¯X+ðïÊò™øXùñt=ÊŒO"ØÞáTÊAJñØüùÏf—F ]½z•žþyš|˜®\¹ÂñŠRv•ôœ¥K—溃²…úÇ?þÁUåË—§ÞAO<ñ½õÖ[|xÏ‘eÏž?[ÿÔ®]›Ë­n¤»9ÀwÇŽé™gž¡ 6X‡`K ·pÊ”)Ìæ;tè½óÎ;f»½{÷RïÞ½ÙJ¢íÒ¥KÙz› lzá‚Ð!FP'6+ M𤬠5oÞÜtãºtéBP¸ZpÁÔiO;w¦9r„4mÚ4R'-»:ê¤&eAHY‚ ãý…^ 5jxÄ&àm̹{÷n³ý!C(gΜT¥JRVŒy@%>üñǤ,)·E‚ýAp½”åãk×?×®]#¸{ʺšUžæ0¸\Ì;—òçÏO/¾ø"×€—¶m۲먛VªT‰)eYY‘PŽCÀîtU¯´dÉ’æêd#K•7o^.Sn‹éÏ·oßž ¼ 8íÚµã2(N©R¥8PÇ;ñ̉'¨nݺ¤Ü.sŽ”žëªX±¢Ù Òq®­õàñ”7BÆÍÓꈠ¦ÔΡ×hUB`jóÀ«&àrBä‚’øB8eÛ´iÃnÜ7(Ožúè#n‡ìšR>3S…Ì•²\§3dÈ€)¡4”«i(kh¨{1\ïš…{íµ× eý¸”àsæ }õK¹©ÆøñãÍ6ÞæPJÉóÖ¯_?YN)+¯QgÙ”ò*­Îc»b¬”ŒyP)osno™5 ³œ©(µ ”ÚÅAi <ï¿ÿ~²®Êç7T’ÁPy²:«*e¨€ÝPî’©@Ö†P ï¿ÿÞ€€¡­•´p«{N†²2†º¯b­öùc+×ÏP÷’’¥‘}™CÝÓq»>0€õ« ]šyKi™U2åêÒËm€ë†…ŽÕ ŸlšÂ… Ó£>š¬EŠá—ÛJ—BÄZxy"d´ÒJWÝ£ñÚÝÓ ôØëÇKè¢@÷°à˜cçΜ$°f•,M|º¬U«–Û´2ÒÞžå¨OÏ`<#æð 5Êt?¬ˆû7¸yé.ãd£}qÜRLÁaOe¦µË+f¦Ý^CIc‡Þž˜ÅÄ\Wh:ä¡LsÕ™ë"SÆ@xr÷IìN«WŸ¡‚³«ûD…ì¾T~4*3.2S*[ÁC v§"E:©ÇabÕÓ í¾ÔL»¾L—DÈ´H§’ñ'.©¬ÜpõÄC˜úþÑõHQò'­S9¤4<’D<¦qÞ¼íêÛ¥Y•JT_ؘAe”€# I„€C˜gÌØ¢¾†È÷…fÎŒ Ì 2JÀ 8¤þ¸wïõô÷ݯžÃ­_/×Åú?°ŒpD©ÿλU¹oaæ@x:aÁ‚(ó³\„¢@¡³&'pÙâãïÝÿQ?½ Òö[Ìz¹DBg/˜“-[Žª_¸¹š„+õ3EEP¿üs9I¹|>¢@Á߃$ ûžüöÒÙsçnKÒV>Q àïɳgGªß–‹7ËôÅ; âÆi0Bè](„6ã×_Òµk7=rtèÐ9Ú¿ÿ¬Çz©ÈxD2s3ΙÉ7O=5€7ož¸qžð F¹(P0Pw3g\\¼úYÞ|óÔM5Áà V¡ÐA@(DöbùòßÔo]ßf ¦~g.ŒŸƒƒÕ‰ˆÈÆ/Ü:sæ mÛv áÂ… ©páÂ>)›{¸Ó^ºxñbjÒ¤ EFFÒË/¿Lï¿ÿ>•(Q‚H­[·ö‰'WþoܸA·oßN;SÒ“l™ÆNë¾ÆÅÅÑ™3g¨\¹rÅ:{ö,Ýÿý”'Oºuë?ž‡>vìU®\™²fÍJ8Õ÷ìÙÃïhfNoíß¿ŸräÈA*T «W¯Rîܹ)[¶»°_»vvïÞM¥K—¦òåË›ý¢££)_¾|ê&ªÁ|Ô¨Qƒ^yåªY³&­ZµŠùAã^½zÑ#þøcî·fÍC¹…<§RxëÖ¼öë×× ¾4.àsûJ:t0Ô“¾6Ï,íN9Þ…swbâ´¾xñ"­^½š`•æÌ™C?þ¸/ܼy“-ÊK/½D9s椽{÷¬ÉC=Ä1ŠÚ}zï½÷¸<**Š­ˆ>Í1ßáÇÙZôèуçAœìÇ7ÙY¾|9»i_|ñ)æru8˜õú"K–,kqäÈ]Äóa¥ôä“ORÏž=éÁLÆ¿î7îÅ_¤† ÒåË—ÙR6jÔˆŸæÀúAà±wïÞ„µcmK—.%Xb§“( € (P€c¸e‡JÖ Â³aÃN@ –€€©S™…n’Pô‡û6`Às ($„VY:ý!¼?ÿü³Ù¦}ûö¤N~*^¼8]¿~Ý>¸îHY»$î\;¸„ÊúÐàÁƒ õp=ÑöíÛYÐOY-RVŒÞxã ‚+¹oß>îV©R%êÛ·/×C‘@äw'ÿ‘ÈÍî#Ã¥ &!!A4ß?Î׈#¾þúk³¼L™2/Aø¬q ¬„&Ý×õy=ôÕT»vm}Éñb-å6òµY¡.`!”ûÅÊ®Ë+V¬¨/I¹b|­ã7³ÂrqâÄ þdå±dÉ’\K ²b‚˜ä®pÐQ 7›ä€7*Uª7ÁC’]ºták)‚|“°å€û¦IŸäø áÄ)äƒví¼Ã}rGȾ!ñ0nÜ8r}(sÅŠìVáIgM§OŸÖ—´nÝ:¾†2[Ý<³º@6„¤ƒŠ¥øü€`=Ap…’#à]R’÷ql „eÀ)_«V-jÄ/(Ã}•¿ýío”={vzâ‰'hîܹü‚û—HÒΰ(C† ¡ .ТE‹¨U«V„Tµ;BÆîàØ±cÙ„ ŸýôSn«Ô®];š2e Ç&z›q¯ if¸XH}ÿðüWþõº+©¬ uìØ‘à:bnÄ<óçÏ÷ÈžËéï¶üBîŒ=:]ö1î—@HA°$H à§ïñ@Y?©Ô/—ÁB¡§;îÓ€¹C_(†5náJp?}„€ÄV‚õ›:u*©48ßÓÂ=$+¹òo­Cön%î{áiW%¶¶Mí5”¼ËêR‹œÍÚC@ñÒ…±üº=,,Öß–Õʃv¸Yê.5­Çp÷Ž,, 7Â<Ö¹t{Wþu9Þ‘¨_¿¾µH®½ àxÎ >i®Öi`(ÒÔPÄ#éM˜G[ÇôžKÆ'y”'½„'ý˜1cÒkxãâæ¯PÆ! Y¸ŒÃZf²!¢@!¼© ¾}M!„—`{ÖDBx‹—-Û£nnž a…5[¦±íò»p ¶R÷rbUºÛq î…I;Ä‘#GòÓ!ΦWöââhР-*µF“'¿nÞÌõÚ1„XŸõ a6SÅšíÒØøš³höìHe}6©›¶‰T¦L}jÔ¨Š–e»5H ¢[:sf$? ¦¾t÷ÁÎeÕÑl‰…àöÇÄ\§µk* ”¨IPß-ÚÎï!ȪãY AX¸ðÞ× À^llœúšÄÝ/¶… »ŽfI(·Ö¬-Š«{_7È–-«Ê^E† §Â’(PˆÉ@tôõË8ÇÕÏlÝS øøDõ»Õçä'¨Bl»H(ÄvdþümêëaɸB,´xñ®dåR\D‚‹²ÙgÌØ¢¾[”üž,YàÆI6.`A. òX§?tè¼ú*öYUtÏ}Óõøvéš5ûÕï&ÜÐEòˆ…À&hp¿÷}R¢E‹v¤T-uŒ€(PžÒt3gnNñ~~dÆŒÍ) !uŒ€(Pîiº¨¨ê‡ ¯xªærdæ"#©ß:¸šb;©Ì8l÷,\ÆAØ™ví:¥~ݧl’ôõ©S—UF.«úݶ»?B‚ñCP¶’%k–-MØîë iB!D;uU«f":ÙÿH=yò$Íœ9“{ì1kC¹ááçyÖówß‚ÀL ââ↥oß¾ÉI¦@ºÅСCõ¥¼ ŽFàÂ… ôüóÏ»Å@b ·°H¡ à¢@¾á$­·ˆ¹…E ßò 'i%¸EÀcÁmë,\ºt)íÝ»—Þzë­tå)Ìk×®%™£hÑ¢Ô°aCzä‘G’”âCTT}ÿý÷¼®±cÇz²FtîÜ9jÔ¨QÈdNèúõë”/_>“ï7nÐW_}E»wï¦S§NQ©R¥8%üòË/S¡B…Ìv)]ܺu‹)W®\„lñ¸qãèïÿ»ÏýS;­u™ÞHlJzÓ¶mÛèêÕ«T±bE~•-[–>Lï¾û.ýøãŸsíÚµ‹"""¨téÒæ+22’ùÐe… &Ö;wÎCZ\¿~==óÌ3ÏCÄÄÄЛo¾I , ?üáÔ»wozðÁé—_~¡×^{Ž=êÓT£F¢‘#Gr[(ÒÍ›7É0 Ÿú¦W#¿-ÐíÛ· á4>¯nX`Q•*Uâ“âøñã„úÊ•+«‚Ùø¤Ì™3g’“ )B”åÉ“‡×xàÀŒrM ÁÍž=;]¹r…J”(¡«ù§Í‘#[¥ p{TBÀ~ÿýw>­Nœ8A±±±TµjU ç¾è^ñ9kÖ¬<Žõ3Õ­[—7Ÿ;¨?˜ï…^ U«VQëÖ­u1ã«€5äÎÛ,ÇÖ±ÿ~*S¦ )R$Iæ;v옺qZÜ,®Vë e…Õ{饗Ì6úÓŸXÑP<%ÖsäÈ>å¡„—.]¢èèhæIcö°˜ïا°°0›„ñ€;µJ•*”%K®Óóè=žX[þüùéòåËÜæìÙ³li¦NÊs|þùçInD>õÔSÔ£GB9”#¥ýƒ÷d.^¼Èø 6ŒçÓ̦Ä+¬!ð&°~À5ä·:tˆúôé÷T»vmÞЭ[·òçûî»à†|ðÁ¬HŸ}ö—C :vìHo¼ñ÷{öìÉëzî¹ç¸-¬Ë¢E‹C½¿ÝºuãþK–,á}p¹‹ÏVµ}ûöôí·ßòøàËÓþýç?ÿ!X6Ð!Cè/ù ¯õ¿ÿý/¤)ñ ùÄ^ïܹ“ X¯þýû'9ôxà4ü ˜ ‡Â&Y¸¦3fðA`qÊ5oÞœ¡O¨_ý•O´Çœ¾ùædlÆ_ŒM|ôÑGl-ÚéþîÖ aÀ‰ýóÏ?³â@ÉÖ­[g6…bâǦ!¦ùâ‹/¸Ö ʬ­šëg4‚ÀÁÚàõÓO?ñpæÌPÔÏ;—–/_ÎB†ùûõëG“'O¦}ûö±eøî»ïxã.\Èë@90Mœ8‘­‡ —´xÂ8ùaYæÍ›ÇŠ:gÎVð®°æ>¬§fÍš¼&(>öýqø`€,Ø”)SRd«^½zË8ð ˆÕÜQõêÕ¹øôéÓüîiÿþú׿RÓ¦M©qãÆl±¬cùÂ+zVI¢Øƒ@PÀ¨K—.l54hÀ|Á¥ÁI¨?ÜÃÕÀI§…>ðC=Ä'|z¸6PÏ„ ¨W¯^tðàABß¶mÛ²kƒv°*ž¨B… Ô¬Y3žíJ–,ɧ»nSB£ÇÑVŸákrýŒþ°Jà ¯ÿûß´råJ^3\AЊ+ØE’Âí;¹yóf‚; A}øá‡ùEpGàC™p·ücƒýy” ¬Hùòåyˆ7`= ,È‚ <ñÂÁ~`ñánÿñärk×®eëÕ¢E ^ð@²¤†à €¬n£µ?\3°yÛ?näòÇ^a…¡¬pE-ƒ@ß.œfBgR´ ÀAÚgÆ©¶zõj^„. 0a}àê@ùP§­v+ÐÖ#ೕàßZ ‚«Ç@¹V\£No >{#Æ€5mÙ²…OhX´W_}•c< \1M`€õ?žÐ †øHc×d=¥SãÂé¹ô;„Dæ@¼¥IóÁºÀÅÒÞ+ †Z°Q=ö„”Ði9ð$°ÚÍ×í¼íŸ»9|á{­ (,s (` ¤ÅS8 Aè€Â$ƒ]êÚµ+ûа:pAàþÀ¿!Ææ‚à¢x"œèš°©ëÐE<¬¦?%e4;y¸ÀÉEÐîøÃxˆ4át„ÿ½lÙ2V¬ ¨8X@põaÓJ¾ì…ž±ö„ƒfûöíœx²àНÇC|¢ñB\3MHM»#ì1¸Lˆ—tÒm‘€Õ¯_Ÿc3”yÛ?´q%o¼¢½^ƒk_?Ì…ó•ܯ€[ƒ{0¥ÈàƒÃGE&fY´Ã)›6mgÎàËâÔôDØdÄ!8)á¯#†Òn$ú`^dŒà>bóÑÁ÷F«OJ×ÏÜÈÍð†ñ@XÆ„…ÅüàinÔ#pÅiŽ“Ÿae¡àà÷ qÖ§Çp3]ÀŠpˆgÄE˜ëýðÃ9&„3Ĉ/¸{P(Ä! X5¬®ê† øZ3‡Œ+cBµuF¯J‚Ãëí·ßf ô!‰>)íÆE_7Úƒ¼ñz·Uúü ˜òÆž> 0P÷ðK5!Œ P‡8S‡S™d ÄumÚ´á“g½w ÇÆXp ÈÁ}ÂæÔªU‹}zÔCA0„îd÷îÝQÌŠ‹$@“&M8n€"[?£ÕÁg„8¦sçÎtL%K†ÊuDÜOÜ?‚ÕE †qûÁúNš4‰³~X#ú_¬| vrG®|X×o½F_×Ïz<¸vp5‘ÑÒ ·3\ œúéA¸†“ó#Ím%¬ÖU»mˆE ¸hÌ#ðt[Ç Ä50Vx·ÆezlXR:ÀÝ/ì ¿è>xGöB¯S×{à æ:^Jû§ûã`V8X])%^]Û¦æ3Ö@]{,ÿïab#Å»ßÛ• ²Eî– 7ú|!ŒaðD®ª§vi-/V¬á厠TV²&5à²ê´®µMz^{à ચì‰;åA=êðr%X+G¹ÖéÏ)ñäz é>xO‰Wk»@^g¨A“çÏŸÏæV§GÓ²¸ÖŒ•§SwpqŸC(tHiÿB•ë ¸p¡ †ð%¸C %.ópî”2A ³" ”YwNø DBb„‰ÌŠ€Ç$î ‚ÀÝ'&<áLfÕ¨{ê$å‚€Ó€^XŸ1ÔëO–…Óò.^ˆ–È+FÒ@ðŒ€(gl¤FðŠ€(Wˆ¤ àQ ÏØH àÿì±çF{ÑŸ›IEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1NamedPipeOption__inherit__graph.png000644 000765 000024 00000013177 13515046516 030675 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÆmú@psRGB®Îé9IDATxí”E׆/9眳dDPI¢ "‡ QT‚’”>’**ˆ‚€¢(zP¢€DÉI‚äœãüõ” ³³3Ë.ºÙ­{ÎNwWUWÝz«nìžÙxEbÉ"`@üWöÂ"`ÐXÁ°Á"+@±E+vX àjÁš:6à‰'ôåÎ;u_¾›’ñ®]»¦çA#´;ü@¿þú«Œ=Zú÷ï/óæÍ“:H=t5jÔîÝ»ë¾Ãƒ¾ 6̼Æ'/¾ø¢ƒË—/ËòåËeÙ²eréÒ%o9Ã;ýƒñÖ­[åÎ;ÞúXsÂkçn¥AƒyŠ+nöºvíêÉ•+—'oÞ¼¼Jï‰?¾ç­·Þò(wC_S6|øpÏáÇuݘ1c¼}«áI çØ±cž‘#GzR¤HáQÏPô}Ï?ÿ¼GmÝVmHoßiÓ¦õ.\ØÓºuk]ׯ_?Ïc=¦Ï'Nì©T©’î3Q¢DžäÉ“{fΜ©ëfÏž­û¨R¥Š‡vðU´hQÍ –,Y¢ËÔ¦ÔíÛ¶mëÉ”)“>oܸ±'kÖ¬µ¹õµïǦM›ô}ãÇ÷„5†x=ÆeÎJahÜ>üðCÝÝï¿ÿ®1ƒ¤I“ê±¹cx-T¨¾—>”¥òâ£Ýç£D‰pt3Å*‹¡IÔ¦—wÞyGkÄgžyF»J8äÂ… Ò¨Q#™0a‚ð4½jÕª!|êéÓ§ íÕfÐÚxÈ!úµIdÁ‚ÚEÂJP®VkQ%X²{÷n† HX¨}ûöÉùóçu< 6¸ÖĦqŽ9tÝž={´EéÓ§®Ê“'ôìÙS8Bµk×–.]ºèsÆ{ôÑG%I’$úÚ÷£dÉ’º|ÿþýÞâ@cT«VÍ;w,“R$ÞöX‚–-[J… äܹsƒŠ+J‹-´¤áŽ;äÍ7ßÔV WnÑ¢EÚÚz;‰'±N0ØLøàJÃêÍÏRZNx‚^³fM¯;Õ¼ysaÓãRà á24kÖL”†6Ó¤I“„`ZiFÁÿ._¾¼(/Jó ˜cÓ¦M¥H‘"A·¾?üÐVY½ù·mÛæmÏûBÉ’%“‚ в:š*¹VÚÛ»a ¬¹ºråŠ(K¥Ïý?.^¼¨Ý.e)½UÁÆð6ð;Ù¸q£Þäð®,(‹&:u’£G n”?~­|¨G@ „;6Ñ=cɬ²eËæ Á)Y›T©Ré2^HTæ[Ÿ7hÐ@/ü¬Y³„?¢~ýúº Èž=»p9"PÄ ‡’Ò¥KëÍbÉ;·9 uÌ—/Ÿ· A…ŒoϹo=|¯ÜÈ@³RÄøû´1Ñ1˜#T¶lYÓ…LM,¯†À ŠmqF¬ 6x(Mš4R¯^=íRàF!)S¦”ãÇ ®ÈÂ… µ+•X¿~½Í’%‹¨$D÷¾nKˆ uñï¿ÿz‹þ!ãqî[¿bÅŠuÔ¢êÕ« Z=Pö‹`œZ§Nï­CÅ/úÞ-[¶xûذaƒ>7.Wx1övðžÄ:ÁˆÈàN¡eU°«}hîÅu §Oæ뢂imEp_Œ+¦‚[í_“ Ë…01îÓ¨Q£ëRªT)/‹¸9Ä&<Ô­[WבöÅ$>~üñGéÛ·¯>' ¥ Z¨±lÄ1Û·o×îÝäÉ“ul‚•3l æ á+Ê5– 1tèPoø#cõÄO„°D´Íäú·k#>šÌ׿æÜÿÚ·?¥K—N[ o(}úôzöîÝ[zõê¥Ëˆ&Mšh¡!Š_ŽKa´¨n¨>|µ)Ï TVM»*“£7¸oýÞ½{õø¸|hyóÖ)é`w·h™ŠT–I† ¦c’µk×Ê«¯¾ªƒd3.îâ矮ӷ¦Œc°1Ê•+§ùGP@ÃñÇ| æÁ˜bΜ9º[Œ}ÇŠUçnN™©ìO„Òµ‹ò‹=J‹{Ô† u«ò§=¤-U@ªNÅ•™ñ¨ç µ¡½éZ߆¤a§NêQW·õ­3©TõÌÄ£6¥G=ð­÷9}+Ì£´~¨tixÆ åË<‘ÊVy” åQÖËNQICº6VYŒˆh,\¨ùóçëŒT»víBÝŠ¶¯\¹r¨r 2f̨ÿVúËðŒÐÆJô«ž•Ü÷ö`c± ”ö¥Cb•2eÊÜ·ïØÚ Î >=&Áµo–%¢ ]¼xñ€éSÒ»W ¢œzã¾jÙ²˜#²<ºùþx˜H·2Èw¾§M›¦_Ëp+–¯ˆ#@ìBÐÄTï!úïˆÓY©è‡×Žð°"`Ã%+‡áv±ñv J1džŒ˜Ã:Ì‘V¯Þ'+Wî ³­Œ9\|óð*:ƒÔ˜ƒ:ì‘Ò¦­©œ?¿8솱¤–ÃÍäêà¡àû±ÔcõäúO5MzˆWN})|¯µ≮ðà“Œž[ÉÕðø‹í´hÑßê%ÅÕjšñÔ“ðbêõ±}Ê®ŸŸ1\°D3g®WV"¾¶œ[r+¯Áµk7Õ}¶©ïQÜÕ‹ÿ­¾sqï+·³g‡·‚áðÒ/X°U}wüÞw¦oß¾£^yßê0Wvx+ï™37¨¬Û½e 7}ºu§^ûN.À¹sWÕ×kw…øöÛ;weÅŠ=ê7Ÿ®8ÉZœûžªŠóPÄ<?ÿ¼9è sçn Zg+¢+ÑqЦMû3Èk õ•ÛuAï³Ñ€ŒèÇ8àÇŽ]Pß%çÇÎB¿ÜLÙ† ÿ¨_æ8ð^[ýXÁˆ~ŒŽ0gÎ_úÙEÀJU˜0aõuÒ¿‚UÛòhFÀ F4¬ûiÓÖ© ;´µ0íy®AKÎ `ÃÜ÷î=©~ãXøÂ0äQ¿u\ý É¿qkJí1fpõ»R1A̲eËaõÃm¹BÄÿþû_<‘=û½_Œ?žlÞ|Xýb–˜g2Žèê·kãÒÚ´oÿ­”/¿l—¦íÚ¹ZWʵKcs+N¢oÇv-V0\»4–1'°‚á$úvl×"`õKcs+N¢oÇv-V0\»4–1'°‚á$úvl×"`õKcs+N¢oÇv-V0\»4–1'°‚á$úvl×"`õKcs+N¢oÇv-V0\»4–1'°‚á$úvl×"`õKcs+N¢oÇv-V0\»4–1'°‚á$úvl×"`õKcs+N¢oÇv-V0\»4–1'°‚á$úvl×"`õKcs+N¢oÇv-V0\»4–1'°‚á$úvl×"`õKcs+N¢oÇv-V0\»4–1'°‚á$úvl×"`õKcsPÿQiÍš52bÄ'yŠ“c;–BÏ;[¶+qrþNNúí·ß–Š+†`!Ôÿà;|ø°LŸ>]ªV­¢¡½ˆ^$ø¯ÿ“'£wÛ{H–/_. 4Y¨®B †i1hÐ sjX‹@õêÕÎÍÆa±…q+q}ØùDÀ F@Xla\GÀ F\ßvþ|líÂÂE‹ÉŽ;¤K—.ÑÆÝõë×eÀ€’9sféÖ­›Ä‹Ï;ÖäÉ“%~üøÒ²eKoYLŸlÚ´I¦N*Ç×C8P®]»æe#iÒ¤:Y¹reI‘"…üüóϲoß>éܹ³·MdNèìÎîÝ»%yòäR @©_¿¾”)S&\Ý‚ïÝ»wõ½dEG-½{÷–ôéÓ‡ëþèhôÐ[ €Ü¶m[t`ãíóöíÛ²nÝ:½¡.\è-çd×®]zC„(Œá‹ .ÈÖ­[½£nذA._¾,ùòåÓ‰'–Q£FI¯^½t›[·nÉ7¼í#sòÙgŸÉÇ, T¾¹U«Vò /ÈñãÇ¥G2{öìpuýÑGɰaÃt[¡öx<áº7ºEÚbܼySΞ=+™2e’“* Ϥòçϯ5À?ÿü#Ô£A&L('NœdÉ’IêÔ©½ó9uê”.K™2¥.Cë°pôA[Cô‹–Ë•+—$I’DΟ?/Y³f5ÕúxåÊ (+’6mZÝžJú¼té’ÖB‡Ò§P¡B’(Q"}/ ¯\c|¯uõA¿ãÆÓÚ7Mš4¦8Ô‘9;vLyä} "‚“éù8p@2fÌj®ôwðàAÉ’%‹iâX¶lYyýõ×½eß}÷Lš4I˜{íÚµ¥Zµjº.,ÌÌÍÁø@gÍš%-Z´×^{Í4×Ïúöí+_|ñ…T©RER¥J{„‹ ž>}ZræÌ)ƒ_|Á“µÏ!ƒ,XÐk±)g/Åþýû%{öìzz‰ÄI¤cïÞ½Ò¡C)]º´`Ò¡’%K Z à bÅŠi5dÈ- Ÿ~ú©.gs7iÒD:uê¤ïéׯŸ Ø Ÿ|ò‰äÎ[6oÞ,ÿûßÿ„ÂxÁ‚ºóA¿Ö¹sç´€¢éëÔ©#={ö”µk×Jÿþý¥T©R²}ûv¡Ž¾Ñvõ_ý%Ý»w—‘#Gê¹ø^3ôÆoÈ×_-cÇŽ•>}ú˜a½G„·k×®²sçNí°àlΦM›JDpB‰,^¼XÏ>ïܹ#?þ¸à"¡@À¬À2üy p’'O] ¾óæÍÓ}Œ?^ÂÂŒÂâ*]ºtÒ¼yó#¢\Úµk'mÚ´‘•+Wê6Á°ÿþûïeÕªUú~ÜÕŽ;êýôÃ?heðÍ7ßÌÅV¢D :t¨ök¸eËÖW·nݺ!øy‹(s¥ð]yb³˜u4ô´iÓô†f#¢ÝjÖ¬©'ÁÆ…þøã½ÑÑ^ß~û­Þ €M?ø—?ýô“ÞÀ|ð Ý‹væþ@F`ˆ7~ùå-‹ccc A/^¼(_~ù¥®Âú ¤Æ ù_Óˆ{Û¶m+Ä57n4]zð~äȽœ#HŒƒÀ NGÕñ &Ü—|´0škõêÕZ W¯^õ6 Nàƒ¥xê©§ôFÀò`u‰sp[±H5æÊfôúΊ+´K‚[ÂæBãbe|†©`˜…Å÷—qM_æÈœ±t¾ãÃÞÜãd(’Zµjé*ÖL°æ†ž{î9)\¸°v³ÀÁ‰ Š´+e˜0‚0ˆI@|vüÆråÊé “`Sâ"AlÌ<ÖbâĉZ¨¨3Öa(˜_M=~¦/g˜>(7Ÿsê3"Ä|0׸ d‚| íÈ«4ø¾ÄB¾~²iœˆÅ \_BÑà6@EŠñVr¥^yå•1†·q€“`˜aõ¡@|PÎ}X@„‚ðí;¢Øƒs#æ3~¾kÆBá!ŒQAQ&FîÇZ•Xw†à ­_¿^qøùX \Ì?:s挶Hœûšg®}‰Î¾D ÑVÂT‡%dæÿ#–¸Á …Ë5„‰Ç­ÀýA“â;›¬¨ðàÄâgà[“þ„È~‘i2›„` mêôÉ~ÃŒ¹メHÇâÖ‘ôwѰ˜¸R(B,QìÁ—¥jp#†ô]3S®ˆÂ{¢…†Õ¯÷’Ýùꫯ´ `üÓùóçk_mËF#Û@;4šÿšO‰¿ŒnÉ’%Z«°QqIŒ;Ç=ŒK?¸qhµ *è®ð³I=Sìí?^³fÍ´õ1í©GCÂ+›‰XÃÄð‚'4¼âV²ÉöI `)xñ·Á‚9ð !2 ³°ø`<Ü[¬(â.ÖAK·ãaµŒðÒ>öà…p².¾ÄºšûˆU”`/þùÞÙó(³÷cÄH6‚€EPŒh üÞ{ïIãÆõÆ"ۀ˂Æxêðïé‡ÍAÓé›kL7œ Z‹S¼xqÁ_…ØÈôƒæE›µnÝZ—#¤I/âú^—Èwæ†Ì˜‹ÍÆÀÀ Êb™û|Œ2 @œ5sæL]ÕƒW¬,x R.s£=<ÿù矾݄yÎ=ÆòÐ0fÔãƒ:\R²$GÞÿ}Š4Á#yÈçKÁ°gPfdô|ñ$þD¡°Î(5æ5qßõ`®ýË|ÇÈy¨/*áãØ-]º4"ýD¨- ަCøZ’çä«»cê tñg)GC²ùýÓµøÂ»œp3ÉÆD……YX|˜ñNž_Ý‚aÏCÀ`„°«¬MT—Ǩ`àž˜bM îA&D&Â7+cúà©i°W¶hÑ¢¦©=þ?aaU =ŒØ;âJEà¶‹@dæJÅxV*²±÷[b+1²ã¡CÀ ÆC·d–á˜@ hðMžÜ’E ¶#ÀSõ@J0ÈA7lØ0P[[fˆu°×Ùóþ*+åßÀ^[â"6ƈ‹«nç|_¬`Ü"Û ."`#.®ºó}°‚q_ˆlƒ¸ˆÀÿŽýFÛÔF[IEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1IgnoreSpaceOption__inherit__graph.png000644 000765 000024 00000021253 13515046516 031224 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÌ·^DZðsRGB®Îé"eIDATxí] ˜Å~{pß÷È„;1!€"D@ D%$‚ÜD1"‚Cb€åR¹ƒ²ÜÇrß÷}Ÿ ú_¬¦gvfgzééÞ÷¾o¶»«ª«^ýUÕ{¯{f# ØF"‚€ nD(ÂI))eA€®D ‚€ t„0IÇJJ $„‘I $èd”u´è–-[hÇŽŽê § *T ²e˦Låv× §ß òî»ï"8!b0dÈ7LAèxÙ5; Š*UªÐúõëí^3¤>(]º´ƒ­'¿iña’™Ü‘ФâÁ—®'!Lò1“;R1B˜T<øÒõä# „I>frG*F@“Bƒß¾}{š:uj Õî[íøñã©^½z”7o^*Q¢5iÒ„/^ì[(‘«k×®ÑåË—ÍmÚ´¡éÓ§›×rr!Ì=,l=[¶líÛ·ÏÖ:UÖ¥K9£££©ÿþÔ©S':pàÕ­[—ÆŒè–i¯¿þ:µnÝÚLnݺe^ËÉ=O›6­Q£F ®3Mš4FÆŒ3fpÞ¬Y³¸Žš5k(§&™Q®\9Ö .\ÈiK—.åò:t0òäÉÃçÍ›77òçÏo(ñµõÏÆù¾qãÆ‰µL"""¸lõêÕ¹ àöÁðùÀŸœ9sr9ôC‘Œó€1tE_tW;›‰UŸ`ç¸×MOú=»Ã`uSd ·ß~›WøÚµk³‰¢&]¼x‘š5kF_|ñ.\˜ž~úi›=&&†P^…WïÁƒó=Ë—/§ùóçÓÊ•+yGú€ØþW„£]»v¡Ù€‚mïÞ½táÂö7Ôħ+W®˜e *Äy»wïæ¨W¯^œ÷È#PÏž= GÈóÏ?O]»vås´W©R%J—._[ÿàý,¤[ÍÂ@m@ï-Zð޲jÕ*k¼ÃÌ›0aë„ööìÙC}úô1ËÅÅÅÑo¼Á» Êþðü;› ÊK/½Äi JÁ‚Ù±ÆDƒ?rèÐ!ª\¹2)3Êl£hÑ¢æ¹ÿÉ£>j&ÀíWáÜš=á…DÄ‚íjðoàO Œ–ä¶¡ûh%0µúiÐU pƒxÙñ4a@ФVÑF±Ys dÉœ938q‚Mš ÐùóçyW‰%„qóåËGÊÇñ©Þjþød¨ íP#Aˆ6³pnÍ_±b…OòI­ZµØ‡‰è/`ׯ_ßÌJnÊ?"ì‚Êÿ0ëX·nnIÅØ¬Àå'ž&LrÆfVeåd›!Vìx&H& Þ–ÆN3H›tÊ©fû!ÜÄLíã`Ž9’°U¬XÑTæü:4lØóvîÜÉf%üÈ”)S¨wïÞ|ލ˜rÐ™ìØ á'mß¾ÍÄI“&±ïƒ]QK°6Ð' í[E8ØtDykÖ¬á(|žT+Á¢á–žÜ(Y÷îÝ92¥û1|øpC­èúÒ˜8q"Gvt‚2³ D‚ÔD6”I¡“ D‰ÔJm(ÿ‡?j"( Qa[3„è›ò3Ì(™zmÝ6l—Cô >IBdIí œ§#XˆP©Ih(ÓÑP»¡œï%ëØ±£¡v7ÎÃ5Ñ92…{õG™ÆèÑ£Í2¡ÚP$äv«V­Ê÷%Sää>jÝY æærþ+R±*m¶êÄmQ2¬œ®ä&¹I0Q ”àVe³*(`(G:Ažò5 )2ÔóC™?&a¬A˜¯¿þÚÀ„BY«èɬžùj1Ôs kv’ÏQ·2å õ,'AX7)m¨g*ûÐA»oÝë„Ûãª/¥”S æà̪>qâ¢ÚYRdd„ŠÜ ¦92ÞgMr[ N €ú@UΞ½¢¢þÿÜܹ›¨.¹Ù~Äé·ÓªqÚ´µêm_ƒß]›6íçªKn¶!Œý˜Þwûö¦¸¸cLõ¥NŠ= Þˆ¾xßõÉö# „±Óû®qæÌõêmè(óþèèHš=[~KÚ$ N„0a0Z…˜˜µêÇ4îýˆL³˜˜X-Ç0@@ƒ6o>¢¾ÅyÖGõ–/›h{÷†þö¥Ïr‘baR ÚäUÇ®’6m4ð<&L7gpÕÛÊÎB•2­gÉ’žlìSù”)k˜(MšTóIDœE@ÞVvÿ€­·k7Qý®s:õ{h-æK¢cÈÛÊŽA/ »ña\9l¢´SaœB^Úu%BW›(íB§—v]‰€Æ•Ã&J;…€Æ)ä¥]W" „qå°‰ÒN! „q yiוa\9l¢´SaœB^Úu%BW›(íB§—v]‰€Æ•Ã&J;…€Æ)ä¥]W" „qå°‰ÒN! „q yiוa\9l¢´SaœB^Úu%BW›(íB§—v]‰€Æ•Ã&J;…€Æ)ä¥]W" „qå°‰ÒN! „q yiוa\9l¢´SaœB^Úu%BW›(íB§—v]‰€Æ•Ã&J;…€Æ)ä¥]W" „qå°‰ÒN! „q yiרÿïJ6l˜¡÷ä'Mš|Fš4y=Ù7ŒÙèÑ£]9ç”Ò—]ýOóæÍK |w®T©Të×_ÝÕ=w5a2eÊD/¿ü²« µ)ß¹sgWwY|WŸ(ÿ°ž;wŽnß¾ÍõoÚ´‰Ò§OO=öX‚¾™yñÄ­\ñ¤ÿÑGM²úŸ~ú)?9·Þk¨ oŒ7ޓՄ0žyæ#22ÒP“Ž}úô1o8p §åÌ™“ï«Q£†¡& ç—*UÊ:t(ŸïܹÓ(W®·§v#þüÆêÕ«9O­æÆã?ÎyY³f5ÿþûï›m(‚uêÔ1Ò¥Kg(’q¹Ï?ÿœó›7oÎu)2™åõÉÆ¹,ú2kÖ,>¯Y³¦¡HÂçÐçðáÃÆ›o¾Éº«¹lT¯^õ¹"/W•X»uëÆýB_µnjg3Ô"£ÕyTÄtõ“~ ÙÃ0-p¿„Q+°OíÚµ™eË–5.^¼È½T+µ¡üC™V|=qâDžlÊ?0V¬XÁç_~ù%çíÞ½ÛP+¸ñÆoðµ•0O<ñ„¡Vt#..ÎPþ‚ñ /0¹1±>ùäny>øÀÈ’%‹"A@L*Yí&½2#9¯J•*†2!ùÜÿ2­˜dýë_M¼òÊ+Ü>tE¿ZµjÅ·!ýÅ_äsY&TA”ýøã[·nÊ$äk—¿N®ÝN˜Tãèf ‚OÅŠI­ô¤vR+8ç}óÍ7Ô°aCR;_·mÛ–ÔnB0…fΜIÙ²e£×^{óJ–,I7æ©VM9r$½õÖ[tôèQ¶õ­”9EgΜ!ØïðY¬yV9xð _Ž;–¾úê+3«páÂì— 0€×yЈ›;wn³Œ>AôK &<ˆAD Q­@RÃG-šø¸F§OŸÖY‡ ÙG«nða h7µÈ½å(µôدŸÊ`2À™…ã ‡^ Vtì@<ò8(3CgÓºuë8ÏLP' äKez‘òøƒr}ô”OÄ«>ˆ†ÝŽº¿ $ 0±aÃŽîùß3gÎvÂ:×§^‹2·èªóô1)} ¦›®ÃëÇTG<¯Àgþüù„ðêðáÃIÙó<‰aŽÁ,™1c)FŒÁã¡AƒaB„ Q§5kÖÐ’%K¨E‹>s&Kùòå9š…H¢TmÚ´!å[räÙŒŽÚ°¡/."j‡ˆØäÉ“9ʆH\¯^½hÒ¤IÔ³gO“°¨ &tEláÂ…ln"mƒLȳJRûh½'ÕrÌÜ–\§_…cÙAUÌGDÇŠ+f¨‡—†zˆÇ]>uê”ñä“Or>"eˆTM˜0Á„£wïÞaÒ"EC…g9_™Wt‚ b¥ˆc¶G^ù5œ§”²Žú•Ic¨IÍÁÜ)Z´(;Õ|¡þ }´ €È”îŽÈ·~ÇDGÉC>"qŠdf`aÊ”)œ†À„ÕéG‰õ±{÷î"ƒZá¸þyóæé¤G·;ý©&Jr$)€H–r²9J…—¿(SŠ'¿z2îŸås­v C™wÆúõë œ[×j÷1nÞ¼ÉÉhDHŽ`²"ª¥v°a]M´³wï^#®¡«@AÀ&“ÚÇ€7‡Ht;aRÓ¯VÜD6ºÕqö/Œ‡Šø„<‰ÇƒÏ@‚}Y½Î²Çg‡iíÒ¥a¢¥¨!„ “90{ö†€!dõ¶<Í»)L´5„0a2bbÖúì.Z-|#‘3‘ð@@ãpèÐYõ£}G|~/@«… ÀêÕûèÔ©{¿*£óäøðÂ<|Ì´8kÖõÜÅ÷—1­…ð´ÿÛo7Z“äÜ!„0omvêÔŸÕs—à?U„]fÚ41ˬ˜9u.„q ù_Ú‹;®~ý%ñß ƒã¿uë:xð¬ÃÚJó®}—Ì+C·iÓaõãyE|þ£G/pĬ@lf7a–mÜxHý¶Xèß0o’ÛˆÀ|Ø^«Tø@´k7‘2eJ§~Û¬åÕ#7ÛŽÀ1ÉlÇT*ô2B/®ôÍv„0¶C*z!Œ—GWúf;BÛ!• ½Œ€ÆË£+}³!ŒíJ…^F@ãåÑ•¾ÙŽ€ÆvH¥B/# „ñòèJßlG@c;¤R¡—Âxyt¥o¶# „±R©ÐËa¼<ºÒ7ÛÂØ©Tèe„0^]é›íal‡T*ô2B/®ôÍv„0¶C*z!Œ—GWúf;BÛ!• ½Œ€ÆË£+}³!ŒíJ…^F@ãåÑ•¾ÙŽ€ÆvH¥B/# „ñòèJßlG@c;¤R¡—Âxyt¥o¶# „±R©ÐËa¼<ºÒ7ÛÂØ©Tèe„0^]é›íal‡T*ô2 þÙêÕ«éã?örŸÃ¾oÇŽeVÿ²Ï üù¯†½®^V°wïÞêß)V¶vñJ‚ÿqyøðaЉ‰¡§Ÿ~ÚZPÎ"Ñѧ¸µSÿ?<Ä–¥) pçÎZ±bµmÛÖŸ0”€0²èS9 © ëׯÓïÿû€}& ,’(F@I" „ ‹$ ÂÆER€uú–ÃÄ~øâââ¨k×®)ªÝ?þñÊ!ýñLÑv’[ùhüøñ´sçNJŸ>==þøãôÔSO%ˆî$·^;ÊÏ;—–-[F»ví¢Œ3R‰%襗^¢ªU«&©ú7nÐÝ»wù^DoGEï¾û.åÌ™3I÷§D!×ï0rëÖ­)OÛ·o§Ý»wû¤9}aõïߟŽ=J/¼ð½üòË´wï^êÖ­­]»ÖQõ>ýôSúè£(**ŠÚ´iÃú8q‚Þyçš5kV’t>|8 :”Ë‚8ˆ^¡ÏNÊæÖ­[ »>~ü8íÛ·Ïìàþýûyå‹ç´“'OÒ¥K—|ú{úôiºr劙†ÕhÛ¶m Ž™¨NˆqñâEÂʃ6ýåêÕ«\ÚÛ²e LZnß¾MçÎãËC‡€4-ˆ›7oòІ4ÿk]N‘z´è0Ðx`€1‘¡t· ®7nÜÈŸk×®™YÐG×wäÈS_Ô "œkÁCfè0dÈjݺ5OJùä$Ó… @þå/á{Þ{ï=“¹s禿ÿýïT´hQîtŸ>}A%K–ä‰2þ|®GÿA½˜TçÏŸçI âÔ¯_ŸzöìIkÖ¬¡¾}ûRÅŠ™,ÈCÝXóäÉCëׯ§=zЈ#¸/þ׺ Azèªw6ôÄÀdM—.ãQ£F Zµj0[¶l4zôhôÍ›7󮀉€ÉS»D•*UèàÁƒÔ¾}{~h SOšË–-Kè;ˆI¨ ¦˜LÐB… ñ9Ê`eÖ’&(snêÔ©<^ /ê…éƒz0žÐ éÀ«`Á‚\7Ž?þø#ÒÑ_ÿú×\6sæÌS,GŽÔªU+­Ó¤IC;vä>þôÓO\&ؘüûßÿ¦•+Wò}ýúõ£?ÿùÏŒëþóõD~úꫯøƒö€Ã¯~õ+úÛßþFY³får[` ݰxuïÞ6lè£Ïý\<ð£Í”)¿!ò`ò`õ˜6m6Vs¬PuêÔáN`BCþûßÿ2ž}öYúç?ÿÉ`ãMØ©ß~û-Ô°aèT©R°PN߯۶1±àÏ|ÿý÷L ƒ£Dœ3gýë_ÿâ‰ÿùçŸsäÅâ͉¿üùòË/yñŬ&½¿`§™={6/ÀbùòåŒ LŒòåËÓwß}Ç 4”ׂ]‹Ë“O>Iè;Hˆ 2oÞ<*W®çaE}â‰'¨H‘"LòfÍšq=À “µX±bº:Ö5&X‰111¡°Ý±c ôAÛeÊ”a¼€=Ò@.ìœ~ø!O@ôºaœûŒ:uêÄÛ-îmܸ1åË—Ëa×&˜(Ï=÷·ƒr àJ—‡= ˆö¯wE\cõÓ„ñ¿Ö÷㈕¯Aƒ<)P¾yóæÖl>ÿÓŸþDXý*UªÄÎ.¦ÌRøØi1qàÃäѵ`—Y`–`±ùíoËf(v ¬äÀ“2K–,Òb•þÍo~Ãe±C‚<Ø¡´Ãæ &;êÇjŒ]; ôÁ„ƒ®èðB?±Û  €ñÃÎÑ/ì–Ø™´ß„kô=`·ÂªKAK°1ÑùþG¼¶‚ºnݺœ…±‚.° ´àI=Èó¯yAO;äM2­„Ž\ÀɃ  VDƒƒÁD'0Yan@@8Lì.0@6äéÝ¢Ä &0¬‚I¡ë@º&Α‡6“+˜PÖzJ—.  ¬òZ0á`œúåå0ky (zVaˆö °Š.X°€Óð V{ìD Vb| 0IaëÃOÐïÃcSu¢]=~ZWì`Z°BôŽ È*3Ú³úÖ20…U'+–I;È­óÏ:–¨G ðIíÛ£‰J)˜e07`!L‹-ËN"ü¬Äðy°zbµ…œ={–çÖí×VÁdÖ‚•uU«VM'q=Øu ØÚ#Ÿy“ß È€X‹uwÐiðЋ Ì­&8“Æ?8€I ÉÜ ÿ† ؃C¶'NœÈyø2‚(Ó§O7Ó‚a?dÖ0[0©´¯ @™ÒyóæåºàÈc’¢ *v'mŽÂ:ÐÁ„ÇŽË>ž&™V~vV,œ0ÿ ÛäŒ Ú ¼Æ8ZÇR§ëví:Þ£¨]5†¨çw¿û?/À c`µ û6'ìj˜pÞð\+ V^ØÇLT¬¸ÁÀ-\¸WØ´0´Yˆ{Ð.ê9ˆÕ~¡P½uû_s¡_þÀüY‚"¸/)‚ÉŒÁ†Íû úÓAïÈÖz0‰€Å7ß|Ãý†N ü.L:`‰zÐOL:D†Ð§E‹ù<‡ † Vz«1tÁÎŽE˜!ØÂ~ýõ×Ò ^ìZ 0¹€%Ìg W¯^lÒA˜ÏØm´Às2,p¨z÷|å•WÌÅåƒ H ²C7«`<xÑ÷Álô.k-k÷¹m;L(Å4ãAθõÐW_}•£?°™¢ˆl`ðˆ 5jÔˆW &&Š]7®±Õc#r;;œlؽõ`¢`•Ã+Ü+hÍš5yòú_£Œn¾&Ê€XW܃ÕR“e­‚ûðÁ€¾ 4ˆÚµkÇi …6mtýú^˜GˆÆ!J¤wZLD´ ýaã?ðû@BúŒˆ°Ó ˜`ØéáC ><ôÄŽ?nÜ8&|#´Œ` Ô®]Û\`D€Ÿ9cÆ n;¦Æ&È… ®utéÒ…ý6†c°1Áø`ñÃs%´@Ï–-[rŸAh£¦M›r5þúþ9&ø|8K–,yz½@cÅ a¬Zxj»^oÑ:6;ìb¤Ã)üÃʘx0k`ÃÃA†ý•Â```cð´Ù¡ÛHê:bRàÙ&5V~‘˜`ήµnô+.tÀ΂ɚ˜ôG«Ÿ¡ïA¸Ïm  ò­õ%†‰¾¸bG×>|'õ¡MLh˜Œþ Ú…^ÀѼtÝØ°¸¡nŒ‡u2'eL°ðAmúézq„ÏÝÐöýŽ¥µ>}Ž9„ÅV_€)áÈôM)qDçÉ€"°ËýÀøÛ¼º  ¯V$EôÄ VÖêp+“X:"J¯vèÐÍØò÷&…,¨}±:þ‰µ…¼PýAÄf]b’XVÇuXp܇Ý> ]k0&P`‚çT¡$ؘ L@BMò`eìN¶»ÂÄꃙƒ¸=¶SL¬|°<ØÜ0Ëü+>ìø@`1©í„‚ÑíaÒàák8Jb˜8­¯cò°úâˆIö°:'í÷ƒ@b&YâÆóý´&÷F@ãáÁ•®Ù€Æ~L¥F#ÔéGü]DH ”L!F|IDHÍ€ž-%ˆ’¥f¤ï‚@®ˆ!ɬa¬hȹ !L€$[°" „±¢!ç‚@þZµ¬17Ø7xIEND®B`‚mysql++-3.2.5/doc/html/refman/functions_func_l.html000755 000765 000024 00000007060 13515046516 023040 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Class Members - Functions
MySQL++  3.2.5
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1BadParamCount-members.html000755 000765 000024 00000014530 13515046516 026726 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::BadParamCount Member List

This is the complete list of members for mysqlpp::BadParamCount, including all inherited members.

BadParamCount(const char *w="")mysqlpp::BadParamCountinlineexplicit
Exception(const Exception &e) MAY_THROW()mysqlpp::Exceptioninline
Exception(const char *w="")mysqlpp::Exceptioninlineprotected
Exception(const std::string &w)mysqlpp::Exceptioninlineprotected
operator=(const Exception &rhs)mysqlpp::Exceptioninline
what() constmysqlpp::Exceptioninlinevirtual
what_mysqlpp::Exceptionprotected
~BadParamCount()mysqlpp::BadParamCountinline
~Exception()mysqlpp::Exceptioninline
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1DateTime.html000755 000765 000024 00000112363 13515046516 024315 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::DateTime Class Reference
MySQL++  3.2.5

C++ form of SQL's DATETIME type. More...

#include <datetime.h>

Inheritance diagram for mysqlpp::DateTime:
Collaboration diagram for mysqlpp::DateTime:

Public Member Functions

 DateTime ()
 Default constructor.
 
 DateTime (unsigned short y, unsigned char mon, unsigned char d, unsigned char h, unsigned char min, unsigned char s)
 Initialize object from discrete y/m/d h:m:s values. More...
 
 DateTime (const DateTime &other)
 Initialize object as a copy of another Date.
 
 DateTime (const char *str)
 Initialize object from a C string containing a SQL date-and-time string. More...
 
template<class Str >
 DateTime (const Str &str)
 Initialize object from a C++ string containing a SQL date-and-time string. More...
 
 DateTime (time_t t)
 Initialize object from a time_t.
 
int compare (const DateTime &other) const
 Compare this object to another. More...
 
const char * convert (const char *)
 Parse a SQL date and time string into this object.
 
unsigned char day () const
 Get the date/time value's day part, 1-31.
 
void day (unsigned char d)
 Change the date/time value's day part, 1-31.
 
unsigned char hour () const
 Get the date/time value's hour part, 0-23.
 
void hour (unsigned char h)
 Change the date/time value's hour part, 0-23.
 
bool is_now () const
 Returns true if object will evaluate to SQL "NOW()" on conversion to string.
 
unsigned char minute () const
 Get the date/time value's minute part, 0-59.
 
void minute (unsigned char m)
 Change the date/time value's minute part, 0-59.
 
unsigned char month () const
 Get the date/time value's month part, 1-12.
 
void month (unsigned char m)
 Change the date/time value's month part, 1-12.
 
 operator std::string () const
 Convert to std::string.
 
 operator time_t () const
 Convert to time_t.
 
unsigned char second () const
 Get the date/time value's second part, 0-59.
 
void second (unsigned char s)
 Change the date/time value's second part, 0-59.
 
std::string str () const
 Return our value in std::string form.
 
unsigned short year () const
 Get the date/time value's year part. More...
 
void year (unsigned short y)
 Change the date/time value's year part. More...
 
- Public Member Functions inherited from mysqlpp::Comparable< DateTime >
bool operator== (const DateTime &other) const
 Returns true if "other" is equal to this object.
 
bool operator != (const DateTime &other) const
 Returns true if "other" is not equal to this object.
 
bool operator< (const DateTime &other) const
 Returns true if "other" is less than this object.
 
bool operator<= (const DateTime &other) const
 Returns true if "other" is less than or equal to this object.
 
bool operator > (const DateTime &other) const
 Returns true if "other" is greater than this object.
 
bool operator >= (const DateTime &other) const
 Returns true if "other" is greater than or equal to this object.
 

Static Public Member Functions

static DateTime now ()
 Factory to create an object instance that will convert to SQL "NOW()" on insertion into a query. More...
 

Additional Inherited Members

- Protected Member Functions inherited from mysqlpp::Comparable< DateTime >
virtual ~Comparable ()
 Destroy object. More...
 

Detailed Description

C++ form of SQL's DATETIME type.

This object exists primarily for conversion purposes. You can initialize it in several different ways, and then convert the object to SQL string form, extract the individual y/m/d h:m:s values, convert it to C's time_t, etc.

Constructor & Destructor Documentation

◆ DateTime() [1/3]

mysqlpp::DateTime::DateTime ( unsigned short  y,
unsigned char  mon,
unsigned char  d,
unsigned char  h,
unsigned char  min,
unsigned char  s 
)
inline

Initialize object from discrete y/m/d h:m:s values.

Parameters
yyear, 1000-9999
monmonth, 1-12
dday of month, 1-31
hhour, 0-23
minminute, 0-59
ssecond, 0-59

◆ DateTime() [2/3]

mysqlpp::DateTime::DateTime ( const char *  str)
inlineexplicit

Initialize object from a C string containing a SQL date-and-time string.

String must be in the HH:MM:SS format. It doesn't have to be zero-padded.

◆ DateTime() [3/3]

template<class Str >
mysqlpp::DateTime::DateTime ( const Str &  str)
inlineexplicit

Initialize object from a C++ string containing a SQL date-and-time string.

This works with any stringish class that declares a c_str() member function: std::string, mysqlpp::String...

See also
DateTime(const char*)

Member Function Documentation

◆ compare()

int mysqlpp::DateTime::compare ( const DateTime other) const
virtual

Compare this object to another.

Returns < 0 if this object is before the other, 0 of they are equal, and > 0 if this object is after the other.

Implements mysqlpp::Comparable< DateTime >.

◆ now()

static DateTime mysqlpp::DateTime::now ( )
inlinestatic

Factory to create an object instance that will convert to SQL "NOW()" on insertion into a query.

This is just syntactic sugar around the default ctor

◆ year() [1/2]

unsigned short mysqlpp::DateTime::year ( ) const
inline

Get the date/time value's year part.

There's no trickery here like in some date/time implementations where you have to add 1900 or something like that. It simply returns the year in natural form, in the range 1000-9999.

◆ year() [2/2]

void mysqlpp::DateTime::year ( unsigned short  y)
inline

Change the date/time value's year part.

Pass the year value normally; we don't optimize the value by subtracting 1900 like some other date/time implementations.


The documentation for this class was generated from the following files:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1ReadDefaultGroupOption__coll__graph.png000644 000765 000024 00000022417 13515046516 031514 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÈÄÚšnåsRGB®Îé$ÉIDATxí˜TEÖ† 9"&DE3ЀТ—Õ#&WŰÊ#sØ]uÍ¢‚ºË.EAA0D• %KN÷¯÷øW{§çNÏ 3Ó=ÝsÎóLß{+߯ê«sNUuO™À‰˜†@$e#C-Ð0#ˆ C FàX”!`±1`$@ \‚¸õé§ŸÊË/¿\"Úb(ZZµj%þóŸ‹¶Ð".­Äk ÈСC‹øµ­¸T#0~üx™4iRª›‘gý%^ƒð•+W–wß}7Ï—±éƒÀ…^˜-ñ$-P´Ff,FŒíZ{±¢@ÀR(Z‹€$c»Ö^¬(0‚Š¡2Þyç¹å–[B!ÅwûÍ7ßÈW\!Gq„ì·ß~röÙgËÓO?-»wïÎW¥;wî”5kÖÄÒ^{íµ2hРس݈AŠxÌš5K¾øâ‹".5gq#GŽ”3Î8C&Ož,7Üpƒ<ôÐCrÀH÷îÝ¥]»v²cÇŽœ™âBÞÿ}ÙgŸ}bi7oÞ,Û·oKUºÓb™· ]ÄŒ¸k×.íø)S¦È¡‡ª³+?uêT©S§ŽvØaZä¢E‹¤ZµjR«V­X?ýô“†Õ¬YSØ¥·mÛ&Ç{¬T­Z5–nãÆ2}út9ꨣtúçŸÖºb Ü͆ „ÃÒUªT‘‰'ʾûî+Gy¤&a ®]»Vöß™9s¦¬[·NN<ñD©P¡‚Æ“oëÖ­R±bE)[¶¬0ÛóW©R%mOçÎ¥aÆÂF*ï€ÜtÓMÒ²eKéÚµ«¼ýöÛBš•+WJ5Ä·—÷€”M²páB9üðÃå•W^Ñò5Ð} iËI'$Õ«W×(0†€{ï½·L›6Mó4jÔH²²²|Ö̹º—/ÑòÆo®còÝÆ;ï¼38øàƒƒzõêqŒ?pƒ+p»µ3Aô™°§žzJËkÞ¼yàvsce»¸N^|ñÅÀu|àȸÁ”)S&¨[·nðã?jÚqãÆnphÙ¤?ùä“G»ï¾û‚N8AﯺêªÀ âÀ0p_ëw³½Æ 6LŸˆÅ‘vñâÅ?zôh;v¬>ßxã#˜Þ;3Hã>þøc}8ó*p¤ Z·n­ÁÔÛ¢E }¯òåËެÁàÁƒƒO>ùDÛ¼ƒÛUÜž|òIÍ÷ÙgŸ)f¼—#¥ÖMŒikƒ 4/e´iÓ& îüÊ\\wÝuùMž²tib¹A&wÜq‡Îçœs޼ôÒKz¤aýúõÒ±cGéÓ§ëS‘«¯¾ZÜ@ˆÍ¤ìØ3[_vÙeòðË#š­ÂLÏ ËÌé:V Ä *Á¤Z±b…–õáH%/¼ð‚lÙ²EÞ|óMý>|x,éA¤ÚcΜ9²zõjéÑ£‡Æ¡ù0—¸"çwžÜvÛmz?{öl½žzê©z 82ël?þüX0íœ7ožÖsþùç‹#›4mÚ4æoÐ67¡Äңݮ¹æ9í´ÓTË›L¤S§Nª½HÈ{Ý|óÍú^>ø Œ5J5Q¬ ¹ÉH‚0¨ºuë¦&Í™gž©fŠ›õd¯½ö’sÏ=W6ýY0 † ¢Ý9pà@aa‚`r`ß»U0Ÿ¾üòKu€1Óp˜1‡rˆ¦»þúës7VGâ‘®~ýúâ4P,}Ïž=ÕDÃÑ&Þi 㙺ýÀ½øâ‹Åi'Û´i“”+W.›É+ÐÝ@4ÞË ¦˜`êQñ3fÌðÑ9®¼#fùœÖQ³ïÖ[o•%K–¨9HÞƒIˆxˆ‚@òL“Œ$Èë'+<Þ~f†uúZã!‚Sõ:“®ZµJíy´ Â@âþ™gž‘ã?^‰ðÕW_ Ú iÖ¬™^ùð³|, tÃ@ ~ˆ·ý ÷þ÷´2æ%¢Æ þZ‘4^ÂuP?nƒOç¯øf~‡)8!´Õ ~‚ï—i’‘ùHÀ¬Ù…³{ÑEiVgßËý÷߯措óAäÞ{ï Œe˖Ū›3±Àÿ¿Yºti,È/„ ŽŸ0aBB²ù‚X½‚øÏ?ÿ¼Š]ÇŒ£fÇK¸ŽÏ?ÿ\ƒÃmðéü•Õ0„E/`€xVŒ}éxÍH‚¤#Ú·o¯¦Ê< —^zilÇ-¨™†ÿÁ ÚmÂ,ŒÂÊ«8¯¾új®U2°ú÷ï¯f „þoÛ¶m,=&å`Þ9Ç\—h‰Ä·ÁLÄw@þóŸÿ(A¹G;téÒEž{î9¹ë®»t £Ù  Zï¸ãŽSs´ˆ[tüÌ*ò`²šåWÌXEóZ•ôh4Æ£>ªyhþ~KX3‘6Ó%ãÂ̆½ï…ûøgÇóàøƒšì'x¹çž{tY˜™–eRÌŽÞ½{«©Æf ǵYædi!,áÙ û½víÚÒ¯_?yâ‰'ÔùõéçΫå\yå•ÒªU+ÝÏ b¢!¸"h9œ|/Äás… z´!‹´ ßÀ ä†äMš4ÑEÈFqò1• æšo7ïøÝwßiòc’Ñ~$c ÌÔ”­Ÿå³â‚.󿳨lÉœ³¸Á“-Œ·b8“$p&TŽ8·ò£KÁn¯#p7¶ÌNÈ2o‡´g®Î?ˆEûe^êpZ"p+a±¸‚Ü8¤ípß­œ —#+˼NƒN Ä–©Ã‰Ü~HàüŠpPìžwt0pÚ,pþE,¼(nÒe™7ã6 2‘a¾`³cN=ûì³9²bç³¼%hfÞüå0{ç&ñŽ|né¢ÂÑùiZ¿xa#’¿(áÑ¥YJ5A0_Ø#aïuÿ=Ì”SN9%GvvÍqÌ£³…•0oÖD¥)Š0ê .“=C  êrϲ&'v÷í·ß®Ç6’S£Õ’ øF!›¯}ûöMFu{\ÇoÞìa ÌEÀ’¹}koVAŠÄ¢*bãÆmî—>rîŽUùVNÁH 'Ãtœ›ÊtY¹²ªóµ*¸}•µ™þªºÇĹ·’.%^ƒpŽè÷¿ÿ}IDZHÚ·reew«’ÛÕÎÿQ™"©8…œ~úéº3Ÿ‚ª Te‰_Å*ÐÛ¤qâU«6ºc,=Ý×e·²ÓÙooœÆo“9M/ñ$s Nü&ÇOÕ=‘¬¬²2xðäĉ-6iA’u⊜¤Úc×®ÝîËGß» FûnxbÄ’kIÎ kY¼x;¼8v¢vçÎ]òÑGß%Ìc‘ÉAÀ’œÖ2lØTwúö·orüb’zŒ ©ï÷ÃÜÝwÝû6fÖøñsÜoVm*­+ÝM0‚¤¸ÿgÎ\æ¾õëÏ┈Œ1-d÷)@À’ÐÃUöM6óÊÇq†ÔÌ,Fê®FÔa¯5Ç›W¾9ì‡L™²P–.]çƒìšŒ )ÝW9eÊÿdùò þ1ǵ\¹,Aؤ#Hê°wÿZnJ¤yå›´sçn3³<)ºAR<&ÔàÁS²­^ålJà~Ýd¹Ì›Ó‰Ï™ÖBŠ#Hq š2ÇŸí~a$úë¸ñÙ‡53+“d=ÛaÅd!WϦMÛÜÑö­ÙBŸyf”|ûí"yë­?f ¯T©¼ûi *ÙÂì!9¤Å÷A’Erk©Zµ¢ûÁºì¿&R­ZE÷cnYîGÛrþúHr[gµyÌÄòHØÕˆ@ÀŠ#ˆG®†@FP,ÈðA<v5"0‚D€bA†€GÀâ‘°«!€$ 2<F„] Œ  X!à0‚x$ìjD `‰Å‚ €Ä#aWC #H(dxŒ  »A"@± CÀ#`ñHØÕˆ@ÀŠ#ˆG®†@FP,ÈðA<v5"0‚D€bA†€GÀâ‘°«!€$ 2<F„] Œ  X!à0‚x$ìjD `‰Å‚ €Ä#aWC #H(dxŒ  »A"@± CÀ#Qÿ@gÅŠòÙgŸùwK»ë¼y‹ÜúÅýãÎi×vßàFÉ1ÇãÓÿêþa}ÆÈ¨Q£×#ö—B xàŒO¼HFi?]­[·NjÔ°cæñHÖµI“&ɪ*iõ˜’4¨­¢tDÀ’޽fmNF¤Am¥#Ftì5ksÒ0‚$ j«((õÙ¸q£Ü}÷ÝrôÑGËþûï/;v”¾}ûÊöíÛµ?wîÜ)k֬ɵogÏž-\p°Sòúë¯ËùçŸ/ûí·Ÿ~øárñÅË'Ÿ|’ï¢ãÛ{íµ×Ê AƒòßfG ÔäÉ'Ÿ”>}úHëÖ­åñÇ×Ù¥K¹õÖ[©÷ß_öÙgÙ±cGväþÿi×®]ÉvïÞ_Ànݺ u—+WN|ðA¹é¦›dáÂ…Ò¦My饗òUT|{7oÞ#{¾ °DÙȤ]¿QèöAòõZnðµjÕ {ì±lé9‚êÕ«Ä¿òÊ+ºñè4EàÈüôÓOÁ† ‚õë×ß~ûmàfì`Ù²ezݺuk°`ÁM7wîÜ`„ Á/¿ü’­lÊœ2eŠ–á´”–C‚Ñ£Gk=ñmÛ¶m A‚Ê•+Ë—/xæŠüøãÁ—_~©a3fLP¶lY¸¤cð7hÐ ¸ð ƒªU«]tQðÕW_iûì˜ýîfg©W¯ž7"n¶—‡zH^{í5}Žÿpƒ\ÜÌ-Žâf|2dˆ^;uê$Ž7räH5Ÿ|^|™ãŽ;N*V¬èƒbWv¨ Ÿ?~,ì ƒN Ì™3GÜì/=zô³Î:+²½d§ºæšk´þµk׊ӀҼys¡M´qIn¾ùfá]1ñÜ„“­š¨”}”j‚Ð×/¼ð‚8SHn¹åqæ‡ôêÕKêu×]—ëP¸ä’KÄ͸êÔG%zä‘G¤fÍšâfy-Ë™[2mÚ4Y´h‘ôîÝ[}|§ibÙ7mÚ¤yb¡gÒ Î·Óf±Ðž={Š3»äˆ#Žë¯¿^œÙ‹‹º™:uªvü§½Äiõ³–,Y"3gÎÔ,õë×—;î¸Cã! K³ü†x)DM9Z´h¡:÷ÎÇÐYõ­·Þ’I“&E¢’×™#V ¼0ˆqä)9ôÐC}”œp ±{V¬Ð"QâL=-ƒ4^;ì0« ?ÿüsì9êr"'tR,úÀÔ{´n·3Á4Œ¶—f)Õ§Ÿ~ºÌš5+6Xê½ýöÛõ퉄gzŸßùzëü ”˜sÌò_|ñE,Þߌ1B°,'{Yºt©¿U’‡‰‹Ýøúó u‹zïMÇ2eÊÄâìæWJ5A §~YZýþûïÕNǤÀ¿p«XròÉ'«)T˜!ÎQÝãqsì±Ç ƒÔ­˜)XŽÅ¼óÒµkWqµ´oß^ÞyçqN¿üðÃê[ôë×Oºwï.uêÔñÉ „ïŽàµk×Nã0øö¢9ÐøX3fÌмn…Nš6mªû-šÉ>r ‘ÇÝs¼e. X6Ñ ˆ[ÑTØç šÁƒë€dÀaz0ÀçÍ›'̲Q"—*4=yªU«& Î;ˉ'ž¨eâ‡x‚)öõ×_ ¾δˆ ‘ PXðköÞ{oÝ3A³@jäÔSOÍÑ^«T©¢Ä»üòË‘wÀçxï½÷ˆ.ð{i¦Òð‘Ÿå»tISÐe^ÿ^nP÷>ÿüól{>ž¥Wö #ìy|øá‡óbu8-œwÞy9ŠeÇ™Ó9–Yý2/mv„ Ü~Žü‰ÚË^ û0άÔýš™ ‰Ë¼¥Zƒø kŽšä&,±F-¿æ–>*ÍÄ •"ަüýï×°øô˜},ä%h€(IÔ^|4˜Iþ(Õ>Hþ *ºTn£O÷[n¼ñFyñÅÕ¿`¹¸ ±—fÍš©IT|–vÏ0 ²g¸íQ.6û÷ï¿Gy}&60Ýñÿh×bFÀ4H1lŧ7FÖ«Vm,a-*ÝÍÉHË­ôè²fºuí¼yÜRòw¼½nº5]ÛËù®L“Œ$H¢sT%¹kÔhí6&ëÊë¯Ìq/Éï”îm+òwº¿D&´çÎÝî ïs&·Ê˜1Ý¥aÃ_ÏIe»¥ó;˜RBzoܸ™Jެ¬²2tè¯g¤JHÓJu3Œ %¤ûžâŽ™g¹S»»ÝùªÉ%¤UÖ #H [¶ì‘#¿sß{ÿõhùŠëÝQû% eÖ#H £FÍp'‰wÆZ‚&6ljìÙnR‡€$uØÇjûì#Ï>û¬b }=—]v™ôêÕK† ¢xÕ¨QC¨—xÞƒúÑhh"ˆLØ1!x!Œ1âÇý–=Q¿ûü{z-4AæÎ+]»vÕÁƒY€4iÒD*T¨ S¦LÑgTìsÏ='?ü°ùå—_.·Þz«æ¹ï¾ûb 3x‡rˆ0cÝÿý D™2eLùÈ‘#µÿA¹líÚµ ÞÎ;å‚ .îÝ»Ë×_­³ý±Ç«³q”ÍÌÈhLgžyFß%þÙ×¾ÒÁ Þa`Qf“Îïܹ³ â1;  é7oÞ¬¦ÇóÏ?¯„äy:ÉËû| ü±Üxã À lØ DLCÚñÐCi¹Ìî/¼ð‚Ô«WOî¼óN™9s¦šG tßVfÿÛo¿]Ü©Š˜¶¹÷Þ{å”SNQí ¹ÈùÅ_ècÏž=åî»ïÖ‰‰÷ðäðiï¸ãiÕª•˜0ž™$xïO¿¯;|epàü÷¿ÿUb@¢Ï?ÿ<–âaýóŸÿTŸâµ×^Ó8´dõZ)þ™D @´~ø¡žÙï /Ô2Øl=z´<úè£Z?°OŸ>:™éÌ[n¹EÞÿ}}' ¯¼òŠÎš :&&¼„YÛéÒ¥šœ˜åßzë-m_Æ µLPSÂÁù§Ÿ~Ò´ÜC0aVί@"ü-ZÈK/½¤Ä$/íò&Ož,sæÌQ €–ôÂzýõ×Ë_þòmd£=˜’ù‘¼ú=?eD¥)2‚\}õÕj2à8"˜ xÿŒãÆ ÂÌæÅØ±cuVb¦;è ƒÔô€ Ž_|Qnºé&–¼:tPó‚th…Ü„™±uëÖZé<ð@¥|úk¯½V‘/Çk=žÿô§?ÅÿL~´ íâ‡Âaª!cÆŒÑÁAæ Zsoâĉ‚¹ÇÀ=õÔSu’@£¦ &*dÁ^§ýh¹3ÏûL<è/„¾C;ƒy~$¯~ÏOQi mbùByI„NCè8  æ!8nÜ8 N4 Á°iј"‹8¯-˜½äf£_§NŸL¯ L_^CpOuæW~÷»ßeóApœ1ßÐHÌÀø 2L /ØÍ`ÀûcÚac{¬ÐªÈÑGí³åib‘" LAC|ôÑGzÏu…gmæÃ/@³á×Ñ7‰„ºòL&„AùŠ ,ŠóÏ?_ïý øL~¢ññŒ©Üú'¾=yõ»/³ ×"#ˆ'B^ `æÂaPáp¡žÔ0N(~ê3ó¤K—.ÓHg#tnnÐ^‘²ÂK¡”ãg)LÁDdóåävmÚ´©toâÐ>ÊÃÄò2aÂ,ø ƒ÷BCàD{ÇÞÎùóçÇÞG>/Á|„˜L~‘Œ&Lðý÷ßg+î7ÞP_è½÷ÞÓ¼øž¨¾/ÔmõÌVHÜžEú´(Dˆ4)“ïï…÷Bóùw¡M¾=¤abK^ýN[û"3±ò[ióæÍÕìxóÍ7U‹x›‡•­ž33XéÂ<ÁLa±Àʋ̒¹ Î~3ƒÆ›yä¡^ÊAÕc³`Ãþãÿ%K–D>k`Äm£<„w£L4$õÓfL â~ ðŒ–„À´ͱ÷Þ{«ÍÍûù2â«c9›Ù“›Ÿö2ÉéÁ•"Êà}üqÁÇò+uáòhmgu‘Áæ÷Yh×hsˆ)œárÈÏàä(GŸzà˜n`Ž©•HèLo°£.ölVÎ,Ghq˜®¼?÷aÉ«ßÃi r_d$¯Jý¬!°¯™ý¼sK^€eÅ…%A@GEã¼á„²‚B\ûöíÕ\a@°èÅ—Í3ª–Ã’.³*è˜cŽfrPƒs'˜8ÙØÅ˜‡ñϤ!O¼0óÑaø¬º0 zõê¥É˜˜^˜‡ìŸ 5ñ(‡!´'ƒåcÞ‘|´—÷¡̺ˆ?0@È#|Í5×èa˜k˜v¬&y­‹™J™QíöxÓà}ÅW¨‰ˆ‡,„6LÿÐxÏ·ƒ«¿C&$$ @2Vëð'ˆÃÚÜç —AÚ ©i/q´‰þ÷¦:ã¢wïÞŠ'ZüÂZ$·~§ìÂHgó˜0kà,²RS\‚“Ë,ÉÌT9»â¬§{3ÈÇcG3#Îì â—y1mP͉“ŠiágOÂlNgúýfíâöA˜U©?¼o@]¼Ú‘Aƒ0C3àhÚÍ ð&“&*ÀR×°ŸUi 4“8±Ÿ&-Hï_F•A“íï¦Ó_´ƒ0?ÈsËïʘ«´B²øÊdâŠ//Q¿‡ó'ºg峕ÓV˜Àa)~(î{foLÌ)låxdvz£ÍÃÆW~„r¼•>Þ¡‹JS˜06¸Â›\á² MX‹˜”GuT8ºÀ÷y½{¸@Ò†1e@†¥'q8OÔ}ü$@ú+ÞéŽÊCsÄþpœXöÐ^8þ&…GÀRH YÒdçšÝì09(‡ò’K.Ñý Ì'VÞr;TDZHà°ÉÇ9&žÉË \nù8,ÊJñ¬:QK¤~#²¯Xª³›‰UÈîgæÇŠZ4 h¿*åwÛs;TÇ û=zôÐ=‰p³8ÃÅ’i¢ƒ|l²ÑÊQö-8ðgRxŒ …ÄsÉmߟ%ò›u¬ï':LÕœüä܃Œìa°ëOD•gaùGÀ’¬"SúuùÜ$¢ˆO¿Ã’uø0e|%˜Kl:Æï)Ää£/ìe`j™#H!1äÀ%æ&Müy%V¡ _ò»ÌQ‡ê›…ñÍAó0ø£ò…Zú#ñùí¹pA ‡ŸæöGÝùGø!'…ùþÇGüÙ(':TÇù#N*Ç-¯ƒ|Eð VD.Ø*V.À$˜ãô,ãò>¾Jê…c%œ; }+ê0%y8¼È7 ! Áû-yä‹×<LJù6Ùµ`ØNzÁðÊ35«ZVäøCüaÈüªc„= H–¼ò…ÓÚ}ÁÈm'={/¼\ˇ~AØ7ˆ‹ÖÇD‡êr;9‹FðŽ~T™V<AŠ×ÈR‹óP]d…XhŒ …†0ÿðe)“ôBÀV±Ò«¿¬µIFÀ’dÀ­ºôBÀ’^ýe­M2¹ú ½zõJrS¬:C up4Jr„Í-ÿû§Q,ÌÈDø 8¿./96 ãس!Pš0¤4÷¾½{žAò„È”fŒ ¥¹÷íÝóDÀ’'D– 4#ðµg°de“<½IEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1BadOption.html000755 000765 000024 00000037222 13515046516 024500 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::BadOption Class Reference
MySQL++  3.2.5
mysqlpp::BadOption Class Reference

Exception thrown when you pass an unrecognized option to Connection::set_option(). More...

#include <exceptions.h>

Inheritance diagram for mysqlpp::BadOption:
Collaboration diagram for mysqlpp::BadOption:

Public Member Functions

 BadOption (const char *w, const std::type_info &ti)
 Create exception object, taking C string.
 
 BadOption (const std::string &w, const std::type_info &ti)
 Create exception object, taking C++ string.
 
const std::type_info & what_option () const
 Return type information about the option that failed. More...
 
- Public Member Functions inherited from mysqlpp::Exception
 Exception (const Exception &e) MAY_THROW()
 Create exception object as copy of another.
 
Exceptionoperator= (const Exception &rhs) throw ()
 Assign another exception object's contents to this one.
 
 ~Exception () throw ()
 Destroy exception object.
 
virtual const char * what () const throw ()
 Returns explanation of why exception was thrown.
 

Additional Inherited Members

- Protected Member Functions inherited from mysqlpp::Exception
 Exception (const char *w="") throw ()
 Create exception object.
 
 Exception (const std::string &w) throw ()
 Create exception object.
 
- Protected Attributes inherited from mysqlpp::Exception
std::string what_
 explanation of why exception was thrown
 

Detailed Description

Exception thrown when you pass an unrecognized option to Connection::set_option().

Member Function Documentation

◆ what_option()

const std::type_info& mysqlpp::BadOption::what_option ( ) const
inline

Return type information about the option that failed.

Because each option has its own C++ type, this lets you distinguish among BadOption exceptions programmatically.


The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/mystring_8h_source.html000755 000765 000024 00000307026 13515046516 023342 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mystring.h Source File
MySQL++  3.2.5
mystring.h
Go to the documentation of this file.
1 
5 /***********************************************************************
6  Copyright (c) 1998 by Kevin Atkinson, (c) 1999-2001 by MySQL AB, and
7  (c) 2004-2008 by Educational Technology Resources, Inc. Others may
8  also hold copyrights on code in this file. See the CREDITS.txt file
9  in the top directory of the distribution for details.
10 
11  This file is part of MySQL++.
12 
13  MySQL++ is free software; you can redistribute it and/or modify it
14  under the terms of the GNU Lesser General Public License as published
15  by the Free Software Foundation; either version 2.1 of the License, or
16  (at your option) any later version.
17 
18  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
19  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
21  License for more details.
22 
23  You should have received a copy of the GNU Lesser General Public
24  License along with MySQL++; if not, write to the Free Software
25  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
26  USA
27 ***********************************************************************/
28 
29 #if !defined(MYSQLPP_MYSTRING_H)
30 #define MYSQLPP_MYSTRING_H
31 
32 #include "common.h"
33 
34 #include "datetime.h"
35 #include "exceptions.h"
36 #include "null.h"
37 #include "sql_buffer.h"
38 
39 #include <string>
40 #include <sstream>
41 #include <limits>
42 
43 #include <stdlib.h>
44 #include <string.h>
45 
46 namespace mysqlpp {
47 
48 #if !defined(DOXYGEN_IGNORE)
49 // Doxygen will not generate documentation for this section.
50 
51 namespace detail
52 {
53  template<typename T, bool is_signed = std::numeric_limits<T>::is_signed>
54  struct conv_promotion;
55 
56  template<>
57  struct conv_promotion<float>
58  {
59  typedef double type;
60  };
61 
62  template<>
63  struct conv_promotion<double>
64  {
65  typedef double type;
66  };
67 
68 # if !defined(NO_LONG_LONGS)
69  template<>
70  struct conv_promotion<unsigned long long>
71  {
72  typedef unsigned long long type;
73  };
74 
75  template<>
76  struct conv_promotion<long long>
77  {
78  typedef long long type;
79  };
80 # endif
81 
82  // preserve existing behaviour, char converted as signed long
83  template<>
84  struct conv_promotion<char>
85  {
86  typedef long type;
87  };
88 
89  // all other types use signed/unsigned long
90 
91  template<typename T>
92  struct conv_promotion<T, true>
93  {
94  typedef long type;
95  };
96 
97  template<typename T>
98  struct conv_promotion<T, false>
99  {
100  typedef unsigned long type;
101  };
102 } // namespace detail
103 
104 class MYSQLPP_EXPORT SQLTypeAdapter;
105 #endif // !defined(DOXYGEN_IGNORE)
106 
138 
139 class MYSQLPP_EXPORT String
140 {
141 public:
144  typedef const char value_type;
145 
147  typedef size_t size_type;
148 
150  typedef const char* const_iterator;
151 
155 
156 #if !defined(DOXYGEN_IGNORE)
157 // Doxygen will not generate documentation for this section.
158  typedef int difference_type;
159  typedef const char* const_pointer;
160  typedef const_pointer pointer;
161 #endif // !defined(DOXYGEN_IGNORE)
162 
167  String() :
168  buffer_()
169  {
170  }
171 
179  String(const String& other) :
180  buffer_(other.buffer_)
181  {
182  }
183 
196  explicit String(const char* str, size_type len,
198  bool is_null = false) :
199  buffer_(new SQLBuffer(str, len, type, is_null))
200  {
201  }
202 
210  explicit String(const std::string& str,
212  bool is_null = false) :
213  buffer_(new SQLBuffer(str.data(), static_cast<size_type>(str.length()),
214  type, is_null))
215  {
216  }
217 
225  explicit String(const char* str,
227  bool is_null = false) :
228  buffer_(new SQLBuffer(str, static_cast<size_type>(strlen(str)),
229  type, is_null))
230  {
231  }
232 
234  ~String() { }
235 
242  void assign(const char* str, size_type len,
244  bool is_null = false)
245  {
246  buffer_ = new SQLBuffer(str, len, type, is_null);
247  }
248 
255  void assign(const std::string& str,
257  bool is_null = false)
258  {
259  buffer_ = new SQLBuffer(str.data(),
260  static_cast<size_type>(str.length()), type, is_null);
261  }
262 
269  void assign(const char* str,
271  bool is_null = false)
272  {
273  buffer_ = new SQLBuffer(str, static_cast<size_type>(strlen(str)),
274  type, is_null);
275  }
276 
281  char at(size_type pos) const;
282 
285  const_iterator begin() const { return data(); }
286 
288  const char* c_str() const { return data(); }
289 
290 #if defined(MYSQLPP_PLATFORM_VISUAL_CPP)
291 // Squish VC++ warning about "possible loss of data" for these conversions
292 # pragma warning(disable: 4244)
293 #endif
294 
297  template <class Type>
298  Type conv(Type) const
299  {
300  // Conversions are done using one of double/long/ulong/llong/ullong
301  // so we call a helper function to do the work using that type.
302  // This reduces the amount of template code instantiated.
303  typedef typename detail::conv_promotion<Type>::type conv_type;
304  return do_conv<conv_type>(typeid(Type).name());
305  }
306 
307 #if defined(MYSQLPP_PLATFORM_VISUAL_CPP)
308 # pragma warning(default: 4244)
309 #endif
310 
317  template <class T, class B>
319  {
320  if (is_null()) {
321  return Null<T, B>(null);
322  }
323  else {
324  return Null<T, B>(conv(T()));
325  }
326  }
327 
333  int compare(const String& other) const;
334 
340  int compare(const std::string& other) const;
341 
350  int compare(size_type pos, size_type num, std::string& other) const;
351 
357  int compare(const char* other) const;
358 
369  int compare(size_type pos, size_type num, const char* other) const;
370 
373  const char* data() const;
374 
376  bool empty() const { return size() == 0; }
377 
380  const_iterator end() const;
381 
384  bool escape_q() const;
385 
387  bool is_null() const;
388 
390  void it_is_null();
391 
400  size_type length() const;
401 
407  size_type max_size() const { return size(); }
408 
411  bool quote_q() const;
412 
417  size_type size() const { return length(); }
418 
421  void strip_leading_blanks(std::string& s) const
422  {
423  const char* pc = data();
424  if (pc) {
425  size_type n = length();
426  while (n && (*pc == ' ')) {
427  ++pc;
428  --n;
429  }
430 
431  s.assign(pc, n);
432  }
433  else {
434  s.clear();
435  }
436  }
437 
445  void to_string(std::string& s) const;
446 
449  {
450  return buffer_ ? buffer_->type() : mysql_type_info::string_type;
451  }
452 
454  String& operator =(const std::string& rhs)
455  {
456  buffer_ = new SQLBuffer(rhs.data(),
457  static_cast<size_type>(rhs.length()),
459 
460  return *this;
461  }
462 
467  String& operator =(const char* str)
468  {
469  buffer_ = new SQLBuffer(str,
470  static_cast<size_type>(strlen(str)),
472 
473  return *this;
474  }
475 
481  String& operator =(const String& other)
482  {
483  buffer_ = other.buffer_;
484 
485  return *this;
486  }
487 
492  template <typename T>
493  bool operator ==(const T& rhs) const
494  {
495  return compare(rhs) == 0;
496  }
497 
501  bool operator ==(const mysqlpp::null_type&) const
502  {
503  return is_null();
504  }
505 
510  template <typename T>
511  bool operator !=(const T& rhs) const
512  {
513  return compare(rhs) != 0;
514  }
515 
519  bool operator !=(const mysqlpp::null_type&) const
520  {
521  return !is_null();
522  }
523 
530  char operator [](size_type pos) const { return at(pos); }
531 
533  operator const char*() const { return data(); }
534 
536  operator signed char() const
537  { return conv(static_cast<signed char>(0)); }
538 
540  operator unsigned char() const
541  { return conv(static_cast<unsigned char>(0)); }
542 
544  operator int() const
545  { return conv(static_cast<int>(0)); }
546 
548  operator unsigned int() const
549  { return conv(static_cast<unsigned int>(0)); }
550 
552  operator short int() const
553  { return conv(static_cast<short int>(0)); }
554 
557  operator unsigned short int() const
558  { return conv(static_cast<unsigned short int>(0)); }
559 
561  operator long int() const
562  { return conv(static_cast<long int>(0)); }
563 
566  operator unsigned long int() const
567  { return conv(static_cast<unsigned long int>(0)); }
568 
569 #if !defined(NO_LONG_LONGS)
570  operator longlong() const
573  { return conv(static_cast<longlong>(0)); }
574 
577  operator ulonglong() const
578  { return conv(static_cast<ulonglong>(0)); }
579 #endif
580 
582  operator float() const
583  { return conv(static_cast<float>(0)); }
584 
586  operator double() const
587  { return conv(static_cast<double>(0)); }
588 
590  operator bool() const { return buffer_ ? atoi(c_str()) : false; }
591 
593  operator Date() const { return buffer_ ? Date(*this) : Date(); }
594 
596  operator DateTime() const
597  { return buffer_ ? DateTime(*this) : DateTime(); }
598 
600  operator Time() const { return buffer_ ? Time(*this) : Time(); }
601 
605  template <class T, class B>
606  operator Null<T, B>() const { return conv(Null<T, B>()); }
607 
608 private:
610  template <class Type>
611  Type do_conv(const char* type_name) const
612  {
613  if (buffer_) {
614  std::stringstream buf;
615  buf.write(data(), static_cast<std::streamsize>(length()));
616  buf.imbue(std::locale::classic()); // "C" locale
617  Type num = Type();
618 
619  if (buf >> num) {
620  char c;
621  if (!(buf >> c)) {
622  // Nothing left in buffer, so conversion complete,
623  // and thus successful.
624  return num;
625  }
626 
627  if (c == '.' &&
628  (typeid(Type) != typeid(float)) &&
629  (typeid(Type) != typeid(double))) {
630  // Conversion stopped on a decimal point -- locale
631  // doesn't matter to MySQL -- so only way to succeed
632  // is if it's an integer and everything following
633  // the decimal is inconsequential.
634  c = '0'; // handles '.' at end of string
635  while (buf >> c && c == '0') /* spin */ ;
636  if (buf.eof() && c == '0') {
637  return num; // only zeros after decimal point
638  }
639  }
640  }
641  else if (buf.eof()) {
642  return num; // nothing to convert, return default value
643  }
644 
645  throw BadConversion(type_name, data(), 0, length());
646  }
647  else {
648  return 0;
649  }
650  }
651 
652  RefCountedBuffer buffer_;
653 
654  friend class SQLTypeAdapter;
655 };
656 
657 MYSQLPP_EXPORT std::ostream& operator <<(std::ostream& o,
658  const String& in);
659 
660 
661 #if !defined(MYSQLPP_NO_BINARY_OPERS) && !defined(DOXYGEN_IGNORE)
662 // Ignore this section is MYSQLPP_NO_BINARY_OPERS is defined, or if this
663 // section is being parsed by Doxygen. In the latter case, it's ignored
664 // because Doxygen doesn't understand it correctly, and we can't be
665 // bothered to explain it to Doxygen.
666 
667 #define oprsw(opr, other, conv) \
668  inline other operator opr (String x, other y) \
669  { return static_cast<conv>(x) opr y; } \
670  inline other operator opr (other x, String y) \
671  { return x opr static_cast<conv>(y); }
672 
673 #define operator_binary(other, conv) \
674  oprsw(+, other, conv) \
675  oprsw(-, other, conv) \
676  oprsw(*, other, conv) \
677  oprsw(/, other, conv)
678 
679 #define operator_binary_int(other, conv) \
680  operator_binary(other, conv) \
681  oprsw(%, other, conv) \
682  oprsw(&, other, conv) \
683  oprsw(^, other, conv) \
684  oprsw(|, other, conv) \
685  oprsw(<<, other, conv) \
686  oprsw(>>, other, conv)
687 
688 // Squish more complaints about possible loss of data
689 #if defined(MYSQLPP_PLATFORM_VISUAL_CPP)
690 # pragma warning(disable: 4244)
691 #endif
692 
693 operator_binary(float, double)
694 operator_binary(double, double)
695 
696 operator_binary_int(char, long int)
697 operator_binary_int(int, long int)
698 operator_binary_int(short int, long int)
699 operator_binary_int(long int, long int)
700 
701 operator_binary_int(unsigned char, unsigned long int)
702 operator_binary_int(unsigned int, unsigned long int)
703 operator_binary_int(unsigned short int, unsigned long int)
704 operator_binary_int(unsigned long int, unsigned long int)
705 
706 #if defined(MYSQLPP_PLATFORM_VISUAL_CPP)
707 # pragma warning(default: 4244)
708 #endif
709 
710 #if !defined(NO_LONG_LONGS)
711 operator_binary_int(longlong, longlong)
712 operator_binary_int(ulonglong, ulonglong)
713 #endif // !defined(NO_LONG_LONGS)
714 #endif // !defined(MYSQLPP_NO_BINARY_OPERS) && !defined(DOXYGEN_IGNORE)
715 
716 
717 #if !defined(DOXYGEN_IGNORE)
718 // Doxygen isn't smart enough to recognize these template
719 // specializations. Maybe it's the MYSQLPP_EXPORT tags?
720 
726 template <> MYSQLPP_EXPORT bool String::conv(bool) const;
727 
740 template <> MYSQLPP_EXPORT String String::conv(String) const;
741 
743 template <> MYSQLPP_EXPORT std::string String::conv(std::string) const;
744 
750 template <> MYSQLPP_EXPORT Date String::conv(Date) const;
751 
757 template <> MYSQLPP_EXPORT DateTime String::conv(DateTime) const;
758 
764 template <> MYSQLPP_EXPORT Time String::conv(Time) const;
765 
766 #endif // !defined(DOXYGEN_IGNORE)
767 
768 } // end namespace mysqlpp
769 
770 #endif // !defined(MYSQLPP_MYSTRING_H)
const_iterator iterator
Same as const_iterator because the data cannot be changed.
Definition: mystring.h:154
size_type size() const
Return number of bytes in string.
Definition: mystring.h:417
void strip_leading_blanks(std::string &s) const
Returns a copy of our internal string without leading blanks.
Definition: mystring.h:421
Declares classes that implement SQL "null" semantics within C++'s type system.
bool operator !=(const T &rhs) const
Inequality comparison operator.
Definition: mystring.h:511
bool operator !=(const mysqlpp::null_type &) const
Inequality comparison operator.
Definition: mystring.h:519
size_t size_type
Type of "size" integers.
Definition: mystring.h:147
void assign(const char *str, mysql_type_info type=mysql_type_info::string_type, bool is_null=false)
Assign a C string to this object.
Definition: mystring.h:269
size_type max_size() const
Return the maximum number of characters in the string.
Definition: mystring.h:407
RefCountedPointer< SQLBuffer > RefCountedBuffer
Reference-counted version of SQLBuffer.
Definition: sql_buffer.h:136
Type conv(Type) const
Template for converting the column data to most any numeric data type.
Definition: mystring.h:298
bool empty() const
Returns true if size() == 0.
Definition: mystring.h:376
Holds SQL data in string form plus type information for use in converting the string to compatible C+...
Definition: sql_buffer.h:41
C++ form of SQL's TIME type.
Definition: datetime.h:347
C++ form of SQL's DATETIME type.
Definition: datetime.h:48
Declares classes to add SQL-compatible date and time types to C++'s type system.
Null< T, B > conv(Null< T, B >) const
Overload of conv() for types wrapped with Null<>
Definition: mystring.h:318
SQL field type information.
Definition: type_info.h:148
const char value_type
Type of the data stored in this object, when it is not equal to SQL null.
Definition: mystring.h:144
static const enum_field_types string_type
The internal constant we use for our string type.
Definition: type_info.h:270
mysql_type_info type() const
Get this object's current MySQL type.
Definition: mystring.h:448
String(const char *str, size_type len, mysql_type_info type=mysql_type_info::string_type, bool is_null=false)
Full constructor.
Definition: mystring.h:196
const_iterator begin() const
Return iterator pointing to the first character of the string.
Definition: mystring.h:285
String(const String &other)
Copy ctor.
Definition: mystring.h:179
The type of the global mysqlpp::null object.
Definition: null.h:49
Declares the MySQL++-specific exception classes.
const char * c_str() const
Return a const pointer to the string data.
Definition: mystring.h:288
C++ form of SQL's DATE type.
Definition: datetime.h:225
String(const std::string &str, mysql_type_info type=mysql_type_info::string_type, bool is_null=false)
C++ string version of full ctor.
Definition: mystring.h:210
const char * const_iterator
Type of iterators.
Definition: mystring.h:150
String()
Default constructor.
Definition: mystring.h:167
This file includes top-level definitions for use both internal to the library, and outside it....
void assign(const std::string &str, mysql_type_info type=mysql_type_info::string_type, bool is_null=false)
Assign a C++ string to this object.
Definition: mystring.h:255
~String()
Destroy string.
Definition: mystring.h:234
Declares the SQLBuffer class.
Class for holding data from a SQL column with the NULL attribute.
Definition: null.h:170
void assign(const char *str, size_type len, mysql_type_info type=mysql_type_info::string_type, bool is_null=false)
Assign raw data to this object.
Definition: mystring.h:242
char operator [](size_type pos) const
Return a character within the string.
Definition: mystring.h:530
A std::string work-alike that can convert itself from SQL text data formats to C++ data types.
Definition: mystring.h:139
String(const char *str, mysql_type_info type=mysql_type_info::string_type, bool is_null=false)
Null-terminated C string version of full ctor.
Definition: mystring.h:225
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1SetCharsetNameOption.html000755 000765 000024 00000030701 13515046516 026653 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::SetCharsetNameOption Class Reference
MySQL++  3.2.5
mysqlpp::SetCharsetNameOption Class Reference

Give name of default charset. More...

#include <options.h>

Inheritance diagram for mysqlpp::SetCharsetNameOption:
Collaboration diagram for mysqlpp::SetCharsetNameOption:

Additional Inherited Members

- Public Types inherited from mysqlpp::DataOption< T >
typedef T ArgType
 Alias for template param.
 
- Public Types inherited from mysqlpp::Option
enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 
- Public Member Functions inherited from mysqlpp::Option
virtual ~Option ()
 Destroy object.
 
virtual Error set (DBDriver *dbd)=0
 Apply option.
 
- Protected Member Functions inherited from mysqlpp::DataOption< T >
 DataOption (const T &arg)
 Construct object.
 
- Protected Attributes inherited from mysqlpp::DataOption< T >
arg_
 The argument value.
 

Detailed Description

Give name of default charset.


The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1ReportDataTruncationOption__inherit__graph.png000644 000765 000024 00000022664 13515046516 033150 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÜÄôßOwsRGB®Îé%nIDATxí]˜E®eYrÎ99$ˆÊ¡(zx€p`"(H“>Q¬r(žŠ„ÅãÎCXD’GæÈYrÎ9gXÒ\ÿ…=Ì{ûÂ,ÎîΛ­ú¾·3Ó±úï®®êêžÙ(C ‚@r °0MrÔ"u‚À]Dàd$Ɉ€\2‚-U "p2dD m2Ö•¤U1‚-Z”¤uHá)ƒÀo¼AO?ýtÊTîp­žÑp«V­¢%K–8 —ÒL™2…öïߟÒl8V¿g4©V­Mœ8Ñ1p¤ ”G K–,)Ï„ƒxFÃ9ˆ‰%$"pI­,$D@.!&"$"pI­,$D@.!&ÉÒ¡Cúᇒ¥®1cÆÐ³Ï>Kùòå£Ò¥KÓóÏ?OóçÏ·]÷Õ«WéÒ¥Kœ~çÎT¿~}:qâ„íü’ð"p÷°HÖ;ìîÝ»7ÉëìÒ¥ A¸Ó¦MKýúõ£N:±›½nݺ4räH[õ·oßžZµjÅioß¾M—/_¦;wîØÊ+‰|HµwöìY:uêœÕ«WÓÉ“'ÌæK—.¥}ûöñóõë×y€ÆÇÇ›Èá{C7oÞ4Ó@clÙ²…ü_¾8|ø0­X±‚Ó¢¾Ó§O›åèÔ2Ïœ9C ,૎»xñ"]¸póƒ/h+¡¾k×®™pëÖ-Ï yóæÑ°aèOŸ>4}útêܹ3½óÎ;ÌÏ3Ïzôh+aïí·ß~6]„$Xj5œê|RŠÞzë-ÖnüãÙÄÂ1"h”¦M›Ò×_MEŠ¡§žzŠ&Mš„,L˜á‘^ Ö|ðçÁ,>kÖ,Z¶lk „÷ïߟ×?8zæ¯ty¸B£îÙ³‡ÎŸ?Ïë-%8lº!nÛ¶m4|øpÖß|ó á7mÚ4DQñâÅ©G|Ås½zõ¨k×®¸åúªT©BjÀó³õO¥J•8ÜjÖ.\˜ëßµkk¶ž={ønÞ¼95nܘ–/_n-‚-˜©cÇŽåôhßîÝ»©wïÞf:%ØœX+&%àf\j¼IÕ‡ÁŠ5ŽÒ,T˜Jó‘ÒV¤ffÓ¬lÙ²%›D0ý`*mBJóP† ƒnüøñ¤´›^JÒP¤4aÐâúòË/Ó<tŒam~öý÷ßç¼yófNÿàƒR‹-HiaR’J•*ež-S¦ }üñǤ45§…CùA0•få{ÿ?0Ua~¢LM}ûö¥Œ3ÊD=hg(Š‹‹£ìÙ³“².8ò5iÒ„MYOiczøá‡©`Á‚ôâ‹/²@ê¸Ôx½‡v*l=&8àÅËš5+)óÈ\¼ð ¤L=ÂÂöÜsÏq­P¡Bì˜À‚ŠõØÁƒ©jÕª¤Ì@]+V̼÷¿)Y²¤„ ¤×•0+!^ÇYÃýïá‘ ¦U±¾ƒi4YyXs†"ÝF«ÐSë:åh‚0CÈS3¥jƒPÙ!Ìâ5b³æ$„ güŽ?ΞÆÙ³g³cZmÍš57|þüùI­ñ|Š·šo>ê MpŽ€ ñ@Ö88/àœÐqœ ÈŸÚµksZ˜¸þ' &¸ø5YëÁAðpu¨õ!A «õ“.‚Ö®]ë“Ï.Æf¿IÕ—˜¾…Y ­ œ¦‹Ú«uëÖì Ä {衇XëÁŒÓ&)Ö,ðÔÁµQ0Òk< à¡C‡²6¬\¹2'Ç þþûïÙÌÄúDåœá¸;v°YŒõh„ Ô«W/¾‡WR9.x²€&Æ:qëÖ­læŽ7Ž×~ÐÊš`Rb ‰Iílذ!GA»Cg%ð/&¼ ˆ[¹r%{Y±æ ‚@„xw²™X/åÛo¿Í5]ð!C 5£ëGC9&س¦”™ÈžBeÊÓÁ¼tJS°'Þ85H ¤)·»éáƒ÷S­³L/¥r¯ƒætð>*a5=yð*­ÄqðR*³ëV]häÌ™Ó̇þ^Ê×_ÝPÚ•óâCí¹±gùñSf³¡œ0fí¥„ñʼ6”F7Ô~§QBÌaêmŒ^J%ÜÜFxm‘W ›¡&ά>ûì3³µÖåºÍ7^óRÂð%VàÛhÐÀdUkCy( åˆH§ÖA†ò2jíb(óÍ8kBœÒ`†ÒœÖSŽCíù7n4…ÙšÆÎ=ÊVf¢¡öÙÌm O êPšÒP§Ht”yUû–Û‡h¿ò`ÌgpŸ7^8O½§fØ$!˜’ØØ…3@iuäΛž|òÉáÈ“'ÿFúb­ˆ_ ‚S®üû%”«öÈÂf÷wÐè J³êÛW´?¡ðˆÀ…Lj×3J»°«ßêu³‘Õ'IÅŠºé±lÀâd%II¨<ˆƒ#)Q¾[v4}ÒW“ô5Ày<¼oBÞAÞ`lú·iÓÆ ’Áz¡¥ ‘ƒ€l DN_ §@@.;qÕª}êØÖ½·"° ©–eO9MÖ­[Ç‡Ž½Þ›»våTΗxu4i)nÀQ¿jä^œàÁ3W½zu>Ñá(n.ãÎ(µ=‘Q׌N‡ÃØêÀ€›»$Q¼yÆK™¨VGpâY³6Ñk¯}çü7nH¹reŽàÖ¤:ÖÅKi]>yòZŠŽ¾»ôž6m}¤±Ÿêù§I 8JæÌÙ¬^«¹û=‘ØØ5Ľ° Dà"hÀœÔ†ø¬_@}'ä\µ@X‹ 10iÒjŸãW11ihêT1+#¨ EÃEJg={Eýw Ý¦†ß7oÞQÿ¼dU¤4AøTˆ†‹aI Ôwí:¡^l•²FH7ŠÀEJGMœ¸Z½»˜Û˜˜hš2em q%¢á\Ù-¾LÁ1²aÃAóc¯ÖØ›7o«O"ˆ·ÒЉ›ïEàÜÜ;¿ò·N}ªO»wï¤ØØXgFËJ©Y³&*TÈe\9ÄŽáQêÒ¥ þüü"ƒ¸¸8ŽJcg5æ#Ì”K–,qhj’b’[·nQLLLRW“¢åË.Eá—ÊS"p©­Ç¥½)Š€\ŠÂ/•§6DàR[K{S¸…_*OmˆÀýÚã?ýôÕ¯_ßç×±cGš3gŽ#c¢C‡ôÃ?8RV¸BÆŒCÏ>û,åË—J—.MÏ?ÿ<ÍŸ??\63þêÕ«téÒ%~Þ¹s'crâÄ 3^nî¸_±Û¿?Íž=›~øaþ•+WŽ–-[FõêÕKÔ` Ö‹-¢½{÷‹v,\í?„;mÚ´Ô¯_?êÔ©¡muëÖ¥‘#GÚª§}ûöÔªU+N{ûömº|ù2ݹsÇV^IOïÃ…nzàØ?üÐŒÀ@-_¾<ýøãT»vmÇà[»v-©Y̬Y³šéqsøðaÚ¸q#,XªV­JQQQ>ñú{N[·n%\«T©BÑÑÑ:Н(gß¾}\G¦L™8,>>žŽ;FÅŠã¸ãÇsÞ,Y²pü¼yóhذaÔ§O8p Y^×®]©Q£FÔ½{wzá…(gΜtîÜ9ÊŸ??m߾Ο?OÕªU£téÒÑ™3gèÊ•+tíÚ5:zô(aâÁ‰–¼yóšåk#ÂsçÎMׯ_§M›6±v-\¸°™On^ÝÒÇIµñm»y_~ù%ŸJ±fX³f¡Æ5j/^¼ØPfš‘9sf#C† †„†2ÕÌ, 0Ò¤IcäÊ•‹ó¡~5€9¾lٲƠAƒø~ÇŽF… ¸>¥‰Œ +V¬à8%ÐFõêÕ9.[¶lâÿö·¿qÒ Ëš4ib(å{ð Ì>ŽoÖ¬—¥Ð@/½ô 2?OžÒ!¦’%Kê[öhž:uÊ|tc§þ¼AÈ…î!poº»&wÔ:ŠÎž=ËÎÃ!¢ ÎP‰%H­ÃhóæÍlZã‹/®ùª_;ùâ‹/Øì‚é…r>ýôSvÐÀ…AP¡Ýàèð'«P[ãàØ&†wÕŸ¦OŸNjÝÉšUÇÁ)¢ ‡¼ýyÕqúj§ÁœDºŒÔ~óدÂoÖ¬Y÷ø!Cë¬× ±°¦‚`aí-õ裲ÖhР¯ƒà!DÜÊ•+iÁ‚¼²VQªT)ªX±"{ùå6G[·nMï¾û.¯±à~‡VƒÙе•öš*‡‚µ˜€÷;wfM äøñãÙL…'k³qãÆQ=|Þ3ƒI ^á…œ;w.5lØËEÝFÄYÉn­yäÞn£ŽL¬—R¹ÓÙC¦àá+¼“JsjóÛP›ÀŒ„”†އ7R­} ¥…L”zõêÅ>íATÎC¹×9^™‡ÆàÁƒùC%xf}ðî©uÇ©vö„¢|xB•PÊ}o ¿öR*÷»Y§Ú'4ÔºÉ|V‚b¨5¡Y6Ú£¶.ŒáÇ›i´—^HÄê„Ô€‡4aÂS[fÚKªj»Âøì³ÏÌz”‰ë6Âܤ/¥l „þÑ epí«5‘´¡LAu2#Aœ5ƒK™§Æºuë Ü[ ÏJûÊÉÁʹb@CJ;ÊL4Ô>›¡´¦OV-p¨gÏž=F ^•m(G‹O>ý`·:½Ý+øÁàåmqš¨N a„Mâ`„_üÂN‚ÀUˆ/©&¬éðK ÁcŠpÃLÜ@„Íñ`d·Áò§æpYÃ¥ÂÞ‡À(s2è)˜TI²5Y4\²A힊žx≛ÚîáÎÛœˆ†óvÿJë\†€œË:Ä;§NÝ}uÆNZIã.ܬœ?ßE¹î.îE@ν}ãÃÙäÉkÙQ⨰«3sæ½·ÐýãåÙ]ˆÀ¹«?rÇ„ ÍŸ°‹»Ê?Xž]Š€œK;ÆÊ#7nöFªwKiÅŠ½$ç+­ˆ¹÷^ν}cr†ý¶P'JÒ¤‰R_‡^o¦—÷" çÞ¾aÎàY°`[@sR³-7qâjý(W#àéÃË.ÆÝ6k3fü†ý·`Ÿ Ã–ÁæÍ‡éÀ3êSwá?ï`»rIè8"pŽCêl9sf¦÷ÞkàSèĉ«¨páœê›%e}Â/_Ž÷y–÷! o ¸¯OÂrT¿þçJØÊ¨ÿ[Ð(lZIà*ämWu‡0ãyÄiâù.–º 87õ†ðâyDà<ßÅÒ@7! ç¦Þ^<€œç»Xè&DàÜÔ‹çó|KÝ„€œ›zCxñ<"pžïbi ›sSo/žG@Îó], t"pnê áÅóˆÀy¾‹¥nB@ÎM½!¼x8Ïw±4ÐMˆÀ¹©7„Ï# çù.–º 87õ†ðâyDà<ßÅÒ@7! ç¦Þ^<€œç»Xè&DàÜÔ‹çó|KÝ„€œ›zCxñ<"pžïbi ›sSo/žG@Îó], t"pnê áÅóˆÀy¾‹¥nB@ÎM½!¼x8Ïw±4ÐMˆÀ¹©7„ï#`øÑĉ Õjù¹ƒ˜˜ÜFttVé#÷dèÔ©S~Òe,ú?¾ûõëçýÙFZ($û÷ï§ï¾û.`ÉAîé§Ÿ˜AA 46l*p²† Ä Ž" ç(œR˜ ¸ÐøH¬ à("pŽÂ)… ¡ê4 Í=±ÿýïiÛ¶mÔµk×$eêÃ?¤‹/úÔ‘7o^zì±Çè‰'žð OއëׯÓ;w(S¦L\Ý»ï¾KÊmV+W.úÝï~GúÓŸ(mZ{Ý|éÒ%Ê!ÅÄĘåºùøãéÌ™3¢8 X¥K—.h|rEXÛ3cÆ Ú³guéÒ%¹ªXOÄk¸C‡ÑæÍ›6ÎÉÀuëÖÑ… ¨dÉ’ü+Z´(w`Ÿ>}húôéNVe«¬!C†Ð AƒÌ´«V­¢7n0oÅŠ£sçÎÑСCé­·Þ¢+W®˜éBÝ4iÒ„.\* ÇåÏŸŸ .Ì¿ãÇÓöíÛÍg„»…¬í¹yó&ÅÇǧ8kö¦¾l¢“Ïž=K˜íOžÎ‹~Ê—/ÇéñŒg`<Ê”)còmpŸ7¿YàvçÎy0bÿT©R%6)Ö®]ËÏ0m0Û~ðÁ,x_|ñ‡Chš7oNo¾ù&çyÿý÷Y‹`0aýýï'ÌÖ¿üò õîÝ›gꨨ(B3kÖ,.GÿA¹XÌîèLtbýúõyЭ\¹’ *W®Ìƒq(ûÓO?åN‡ëÞ½;}þùçÜÿg]‡õ aÂ Ñæ„åÁÌÅ`¿öÚk,”áê߸q#á°Ú~ûöm6!ô÷رc9 &CôÛSO=Å}‰ 'þíÁ˜À8Bû0!`,sô!&ÎW^y…±Ðã¹fÍš´|ùræ>|øpžè‚4Ùv°c&%ÇL áÛ´iÏÈ‚‚Y»ïuêÔáF¢ñ ÿýï (fžþóŸ<ðÑ (š€ÌÚè?ÿù§Óùµë9t2fwåÒ¥Kͤd˜€èd̬£Gæ8hK¿ÖšþÏHóÚ ¿™3gò‚‚u(..ŽæÎK˜õQ?Ã×_Íœ¨?ꇠÂ<„&øé§Ÿx >øàƒ†ü ‘0`Þ~ûmª]»6aP6Τþ@`¡0˜íáÇyS÷íÛ·g ˆàš½gÏžÔ¢E‹iuÙ¡®V~õ„*=ú­qãÆŒ[ëÖ­iÍš5Ì7„}…>={6aR†Ù‹ðÄ´ÇZ7N@[BØ÷;ï¼Ãu¬_¿ÞLÜüñGÂ$ŽþY¼x±÷[n¸–-[ò`ªQ£óƒYæ‚~F§ãô :‚pÕ«Wg¶?Ì)4߈#³Ô®]»x̸zí­ŒJ”(AÏ<ó ׃t ä™M§GgÂ$E}ˆ×Zϯ¿þº)pþÏÈ­¾ðûÇ?þAóçÏç6Ã4Í›7…Bó¦L6¬¯4ªm„ ôç?ÿ™-ÌäÏ=÷›aˆ ˜bÐÀºÄ´8<4&<­Á0{C( lW¯^MPdbÒ&ȬË/ú ÚàÂä€ÉVúc}‹IQXGè2¡5î‡:íf`ëN¯‘ 1¡- 4À˜…5¡Ó4 T?Ö¾ «0a@4ÀEb && VhãþýûóºkaÿµµìĤµæÓ÷áø…9k%ô…&­aZS¬Y­¡ÁYc·=:?ÊĺWO’:ãWc°œ9sê(Æùœ Ç4œuP…b 3' ƒ³ Ì"LˆV­Z±iƒYÚæ˜n¸Õ ÁŒ¦&t*´‡u[ËéJxu9Á®X#aÁ}ôèQN͆µ& ýƒ)„5‡¦@õëÉ ZQÖ¢ +ï:ÎîVÖ~z²ÂZƒ¦Ò¸qã|,þe&&­Þ@Ï0Í4A{Y)ØøAÿCËëSëdXC÷Ã#&÷Þ½{Íê1Ib¹` Áø13Ýçcg·þǜͬo¾ù†¢žÍ°&6lϾ0 áÉ„9³ 3ñøñãÙó…k»`„Šuf+tÖ€Ú¬EÔ ÌY8u`Z€Ð©_~ù¥i:ø?s¢ÀÊ¡m(õƒg,Îu<Òªš B‡µ ÆÀƺ¨¿2Û@X‹ÁÔ„† U?&´qàÀÔ®];n#Öp¾h²¶aà 3Úñ'~ ¬ð„õ Hc¬7ÃáɆµ!„é¿ýö[Æ?\Z.Pýñç+X8úuÀ€ŒxÃÚ]k9”[”U­Z5ö°ÂÑñý÷ßóº Ž9XGáx´¶ÇZÆ&TôÂ1Þ0Ö`[ÍJk[‚µS§±{Rk«{ÇT.˜BM›6eOœÝB›NhÌöV‚' ûgX¿è­Ž‡)ᘙ TþÛ 0бðBa‚A€‡¶Á Å C‡isU×áÔk2hÔ¯»úÑF,xC焚OL*X3ëÓ&:<Ô£LhÀ®uhI½fÄÄëƒ0\ÚPõŠCû0‘¡m‰%ô+4œÿz.ÖöXëİÇRm‡Eu?ëckyÖ{,™pàmÅ2ÃB “MáRh˜<0ÿú׿Zø¸{‹Áwx ‚f„·È¡¬­‚‘¿c%Xºû Ǧ©ÞH TF°úÑF«ã$P^k˜fkX¸{`cÅÍ:Øôzå„K®.ÿx´ï~„ å`ò6„‡ãÑÚ¤×u¿¼è2î皬‰Ç‚fNݺuï‡_Î3f¥?¡C‚ßÁÚ¥B… þY’í9¥ëO¶†JE!H“2$G„Sg„ ìeà œÍÄz f|8RCSë>˜„X³Á‘Ò‡r5or%öÂ3)z±$CÇ—°M—66[á ɃmœðÐÞÂp ¸ñPn8ž%þ.ÉjR¦fÐá0ÀÙ@8+p\kNUàì)Κâ8Xƒ x£Gåà(À~Ö£0IApø€à @¼[å2Sò',"pa!r&Þ:€û_ ›.'X¦L™ÂGÅ p0/±FÅTí¶F>lY¸õP®n‹\C# &eh|‹Õ{N7*x'õ‰TŠ h®Å‰ìYáÍ h4ÿCÆVSòP®•¹Ž€\plÁ138EàìDxsÁê4©‰c]Hs¦ˆ·nö*#%åâGÂ" —“$ ÁÞŽ":ŠõÞÕ²î Y7þõÁ^ë!l&QvJÊõçGž# ÇCñâ+4LBÂaÎ j²ÂÖŸ°®Õéôe§ä¡\͇\C# N“Ðø8 í…w'OžÌ§#°ñ“"&¼eŽÓØ*Ð4uêTþ8¶ p¸'Wô ‘p‡rñÆR[å:#¨ë’kò! —|Xóæ4Îo‚·áAÐLÐlx;‚¤ çÛ´iÃf(¶ð)}€Ö‡r5ßr €œ4 O’ÄBkáp5®ÎâÁ÷Þ{O `¿ çO)q(ןyŒ€k/f/õ…B“ió0Tëñz~Èm‡rñ(a §IBLR<ïÏY?%˜â Ž!poÑàX‘RÐoEǼ„¼‰€h8oö«´Ê¥ˆÀ¹´c„-o" çÍ~•V¹ k¸þýû»”eaKp7øq0J pøðþþ{°L.ÁÀ© ¼ýaýVŒN`ã[GÈUG`¡¬áÇT ‚# ‰G@ÎqH¥@A 8"pÁ±‘AÀqþšÓ&Š:kÑIEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1SQLStream.html000755 000765 000024 00000045377 13515046516 024446 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::SQLStream Class Reference
MySQL++  3.2.5
mysqlpp::SQLStream Class Reference

A class for building SQL-formatted strings. More...

#include <sqlstream.h>

Inheritance diagram for mysqlpp::SQLStream:
Collaboration diagram for mysqlpp::SQLStream:

Public Member Functions

 SQLStream (Connection *c, const char *pstr=0)
 Create a new stream object attached to a connection. More...
 
 SQLStream (const SQLStream &s)
 Create a new stream object as a copy of another. More...
 
size_t escape_string (std::string *ps, const char *original=0, size_t length=0) const
 Return a SQL-escaped version of a character buffer. More...
 
size_t escape_string (char *escaped, const char *original, size_t length) const
 Return a SQL-escaped version of the given character buffer. More...
 
SQLStreamoperator= (const SQLStream &rhs)
 Assigns contents of another SQLStream to this one.
 

Public Attributes

Connectionconn_
 Connection to send queries through.
 

Detailed Description

A class for building SQL-formatted strings.

See the user manual for more details about these options.

Constructor & Destructor Documentation

◆ SQLStream() [1/2]

mysqlpp::SQLStream::SQLStream ( Connection c,
const char *  pstr = 0 
)

Create a new stream object attached to a connection.

Parameters
cconnection used for escaping text
pstran optional initial string

◆ SQLStream() [2/2]

mysqlpp::SQLStream::SQLStream ( const SQLStream s)

Create a new stream object as a copy of another.

This is a traditional copy ctor.

Member Function Documentation

◆ escape_string() [1/2]

size_t mysqlpp::SQLStream::escape_string ( std::string *  ps,
const char *  original = 0,
size_t  length = 0 
) const

Return a SQL-escaped version of a character buffer.

Parameters
pspointer to C++ string to hold escaped version; if original is 0, also holds the original data to be escaped
originalif given, pointer to the character buffer to escape instead of contents of *ps
lengthif both this and original are given, number of characters to escape instead of ps->length()
Return values
numberof characters placed in *ps
See also
comments for escape_string(char*, const char*, size_t) and DBDriver::escape_string(std::string*, const char *, size_t) for further details.

References conn_, mysqlpp::Connection::driver(), mysqlpp::DBDriver::escape_string(), and mysqlpp::DBDriver::escape_string_no_conn().

◆ escape_string() [2/2]

size_t mysqlpp::SQLStream::escape_string ( char *  escaped,
const char *  original,
size_t  length 
) const

Return a SQL-escaped version of the given character buffer.

Parameters
escapedcharacter buffer to hold escaped version; must point to at least (length * 2 + 1) bytes
originalpointer to the character buffer to escape
lengthnumber of characters to escape
Return values
numberof characters placed in escaped

DBDriver provides two versions of this method and Query::escape_string() calls the appropriate one based on whether or not a database connection is available. If the connection is available, it can call the DBDriver::escape_string() method. If there is no database connection available (normally only in testing), then DBDriver provides a static version of the function that doesn't use a database connection.

See also
comments for DBDriver::escape_string(char*, const char*, size_t), DBDriver::escape_string_no_conn(char*, const char*, size_t) for further details.

References conn_, mysqlpp::Connection::driver(), mysqlpp::DBDriver::escape_string(), and mysqlpp::DBDriver::escape_string_no_conn().


The documentation for this class was generated from the following files:
mysql++-3.2.5/doc/html/refman/functions_q.html000755 000765 000024 00000007657 13515046516 022046 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Class Members
MySQL++  3.2.5
Here is a list of all documented class members with links to the class documentation for each member:

- q -

mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1CompressOption__coll__graph.png000644 000765 000024 00000013314 13515046516 030106 0ustar00tangentstaff000000 000000 ‰PNG  IHDR½môé`sRGB®Îé†IDATxí]tÅ÷¾„„Þ‹€¥iÒE„ "Å‚ H¤JPºÒ”^”Ž4i¡éé½'°ÿù.ÿÙßæå%yûxy¼Mî='ìîÔ;ß|sçÞÙMH`(!A !Æ*C!½!Þ! ¤wS.Ò âÁ4â)RÐíÛ·I%ÑÅGܸqƒR¦Lé£Öž¬™€"=†òÙgŸQåÊ•ŸlTR;`رcõïß?`ô"Gú—^z‰6lP ‰2Þ#(ÖÝ:ñé­hÈ}¼@@H/¦YiE@HoECîãBúx1Í2H+Bz+6î?N5jÔ ³gÏÚ¨å]Ñ›7oRÛ¶m©téÒ”&M*Y²$}òÉ'tþüy¼zõ*=xð€Ë?žZ·níqݸVPHïåŒ^¿~–,YBwîÜñ²Ϫ;wŽ^~ùeúù矩|ùò4xð`zíµ×hÆŒLþ={öxÔÐ3Ï4vîÜiìß¿Ÿ“;f(Òêü_§‡âgENÎG¹7ršnGYdÖ z¬\¹ÒÀÕ*aaa†"¡™„q(«ÌÏ-[¶4BBBŒÐÐP37‡6Ôq Q½zuNW‹Ð¸ví×[·nqàÀ³ü‰'Œ„ jÁ0^·nÝŠ ƒãÂ… #à=0^ä£?´ ¼íÈâÅ‹'ÌQ Š"ÐÃ.é³gÏn”+WÎH”(«¶~£]»vF‚ ø9UªTLØaÆAAA†&&úªZµª¡^‚ñ„*ËÉÄJ–,™lŒ3EŒ+W®ʺr[¨_¶lY¾_´hQÒÏ›7Ó+UªdêR°`A‹ý*T¨ÀÄÑÏìÙ³9ÿ(WÅȘ1£ùœ6mZC½¤c'Nœ˜óÍLËM×®]¹_èÙ´iS}¦K—ÎÔ¡E‹\ZYys ß~û-cTªT)ÎC]à€ñ¡_\»uëÆy›6mâzuëÖeݱȡçÁƒ-ZDˆ¤w¼{£,­Y³†öíÛGááá4jÔ(R‰ý]eÝhúôéÔ¸qcR æÌ™Ã»õÅ‹iõêÕÔ¬Y3š5k-]º”Ž=JÊúSûöí©W¯^0Ô§OR–›V¬XAxž+W®hwû¬Y³’²¶¤¬?·Õ¹sg³<ô2ŸcºK !K–,f«Êu ¼yóšÏ°îjRøYmÿl©`åÐÕ®]›R§NM°–#GŽ¤Ý»w“Z$¤¶o8p ×;sæ •)SÆlO-óÞÝMΜ9ÍdŽèK‹5}@.\¸ ³Ý^sçÎÍéØ9܉ŠA89Ož<|u݉ÐOt}sæÌlÙu"Æ¢%iÒ¤¤||ýèÈ«ãÝÛ©W¯%I’„ÆŽË®MóæÍ¹š²ôT¤HÂ)ŽñÁ[¿~ýH¹”!CÂé‰íFèg×+êk‹õÜsÏéÇG›*èætk¾YÐrƒ¯NáÚ¨ÃëÆ;dïÞ½Ô A3eÊÄ;ü_åþ°åW§I\þn÷îÝ£é¸møôØIÔªUË,ÝD€¼¸†NØ5Š-Êù¿ÿþ;uéÒÅ,«\#ÓoÆŠðíU°É;ˆ…8Ÿa0À¬§NxhÚ´iO¨`”Êo¼ÁùرhõY½®çÎK*°æ¼¡C‡rV\þè/ྲԓáÉÕÕÊãÙ5ÍÚשS§r @5jD vÅŠy'P'>ÀbK4h¥ÊWæ²ê†¯øÇ]?Õ aÑ`Q)?Þ,Ÿ>}z*T¨»ê”…@tÝ‚jud~‚‹ÝAnýúõÙ’«XƒÞÿ}&¾n°@´aÃ*V¬˜Nâ@»U«VB¸iêt‹óU¬Ã‹RÅܯ¶ÞX4°ìXøH.ØYà2!°w•˜0v-Ï1"þÌ·ÈÚÕM‘„?kÀ©Û@ÚæÍ›ùS§áªü^Cºðù5ηÕ$d­¢,qÞŽ²8—· Ye9pv×·µlt÷8oÇY¹kû¨ƒ#K-Bå®DxO ÛÄ‘­>ÿ×i¸bŒ8‡GÀªÜ"kÖßb ëhKoÇŠÀšãVÒUÜ¥¡ ,›=ù­.]Öµ}<#pÆ·—(¦`» bw÷Í`Œ:hv—×ÒâO?ÄÆ9¾·‚s¸ øþÅ*p]Ô‹+Ó]±æáy(›’/_>ÊŸ?lvgÚN€ý+PFƒÓ ¼\ÿ*7À÷IØ]éwd㥒Qø!½/Pô¢ððG^Ô’*¾@@Hï ½hcÈ%^Ô’*¾@ à|zONH|1ð§ÙFPPRõ"ìõ™Âdõ‘Ü•§©Šßú$Ÿ> Ž,'O Âý6O«£õëÏ«_9¢^’u¥š5³?-5üÚ/¾Ù  (K( Ä¶µk£ÐД-[:Ú¼9úOb[—øØ¾øô~žõ3g®1áÑíéÓWhçÎS~Ö@ºÒû™óçoSßæ$ä^CBª½Bý¬t'¤÷3fÌØ¢â–ÇÇ•aaÕon…šßüûY•xÛÞSøðõy1¾ÏÿßKð+Wn©¯%ûQ éJHïGÌ™ª>Ý}ìÚènCB‚•‹³M?ÊÕéý²îbæÌ-—Æ*aaáê—··GJ·–‘{ß" ¤÷-žQ¶¶cÇIõû¨WÝæßºu_ýõÝæI¢ïÒûS·-Λ·-’k£ ©_×ÛªåËéc`4¯·qJãêÚè®qš³lÙõ'ÿ­I.רA@H;¸Fh§38¥‰N° –,Ù]ÉóBz]38µÑ¿U9ü*ϬYââD…/Óêƒ3_,Ú:wîºú½Õ¬¦J°êG^T[&½ú ÿ*2ïÞ} þŒ_¸úó#2-&X±p#œÅ¨15‰ïo^z©-\Ø–Šþ¯¦ÅÔ–äÛG@Üû˜I ‡# ¤wøŠúöÒÛÇLj8!½Ã'PÔ·€Þ>fRÃáé>¢¾}„ôö1“G@Hïð õí# ¤·™Ôp8Bz‡O ¨o!½}̤†ÃÒ;|E}ûéíc&5Ž€Þá(êÛG@Ho3©áp„ôŸ@Qß>Bzû˜I ‡# ¤wøŠúöÒÛÇLj8!½Ã'PÔ·€Þ>fRÃáé>¢¾}„ôö1“G@Hïð õí# ¤·™Ôp8Bz‡O ¨o!½}̤†ÃÒ;|E}ûéíc&5Ž€Þá(êÛG@Ho3©áp„ôŸ@Qß>Bzû˜I ‡#é"Ù´i}ÿý÷V`«DÇŽ¥¦9n¨ÿ~'â¦Øš;O»>ø€jÔ¨AñHÿ¹Ñ©S§hæÌ™ôÊ+¯D((¾E Mšstãño[–Ö47n¤Š+ÆLz]¡gÏžúV®‚€#hР[½Å§w ‹$Æe„ôqyvelnÒ»…Eã2Bú¸<»26·D:½q[*€—-[Fû÷ï§6mÚĺ– I“&ÑÁƒ),,L9æ fÍšQéÒ¥c½ï§ÕÁÂ… iÍš5<ædÉ’Qîܹ©^½zT¢D Tºwï=zôˆP'ƒ?þø#}ýõ×”.]:êÇF!Ç[z¹gÏžØÀ&B›ëÖ­£V­ZÑ¥K—èwÞ¡FQxx8uêÔ‰V®\¡l\yøá‡hðàÁ”0aBzï½÷¨N:tîÜ9úꫯhÞ¼y sРAÔ¿. òß½{— Ãð¨nlzbÒ?xð€xøð!ý÷ßtôèQs€ÇŽ#XGrþüyu.­§-rñâEºuë–™+ºwï^ÇLT7 ä¾~ý:Áz|W¹}û6·…þvïÞÍ–E—e¾rå ?žœúôéCÁÁÁ4lØ0.wíÚ5° ¨ÓµkW“Ô2d !C†° ±sçNêÖ­Or‚ (Ož<â.^¼˜ÛÑÿ ],š«W¯ò"ùñ6®cÇŽôÏ?ÿP÷îÝ©hÑ¢LxäÁ=%˘1#¢C‡4tèP ¢ŸAL¬zHHˆîŽ- ÆtâÄ ž0,^ô±k×.Jž<9ëÛ´iSúðÙœžâ“®mÛ¶e¸ýúõ£åË—3^ÈQªT)úæ›o(EŠ4kÖ,?~<ñb)[¶,[_,l¸+æCÛµjÕ"¸5iÓ¦e÷ͰºÁø[¶lIü1­_¿žËD…ëÔ©SiÆ \½GôÅ_0W~ûí7Êœ93ýúë¯üoÞ¼I… 汤J•ЦL™Âs¦)v Œé»ï¾#pàIä‰-½î“Œ7¹˜XXY8cÆ &+¬êñãÇ©ZµjLò÷ßó^}õUö•A>€vàó-X°€w‰RÞ¼y `Á§ÖõußÖ+üû¥K—2Ù±009Z°˜þüóOÖd̘1œ…IÀÄb}>sæ §åÊ•‹¯Ö²fÍJåË—çq`±0Ùüñ»˜¼íÛ·›U<ÁIŽJWäÃã{ûöí ú ëüùó™HØm&OžÌ$á[´hÁØÂø`QaG€¯¾eËÆX¿ýöÛ\‹n#Œ Œ—«;»wº~ùå—T¥JªP¡ïº,®àÈ/¿üÂs„¾Æ]µ`.ß|óMžK¸W[·nu»‹éòž^}Fzt8¬ëgl¹•+Wfk²CV¯^ÍA`êÔ© ä+bc9r$}úé§¼í¡nݺu)S¦L\Îõ[ nìÿÿyþùç©jÕªÜÊeÉ’…`µ¼Ä‰›íèÝ ýÂiÒ[Ÿae<‘µk×R¹rå¸O”Gÿ)S¦dKªë{‚“.•®È¯T©Ç0À¯ÜA¸Ø]Ahó°hÑ"BÐcÉ’%œÿì³ÏrWpU°;½û`aIÑ,°;k lµ¸Ñéê® ÄH0Õ«Wçlà ý±ëhÁÜ5lØw!ÄÓ§Oël¯¯>#½ŽÆô@0ˆÖä.S¦ [ø{ ¬?dÀ=¬<¶NøÌØ!´_ŒIÔòG%z"u>üGëΠI|äA˜${öì\$rXø©ÚoÅŽdàbíÜtýètµî:ˆ• psà"â$I’$L˜.]ºPúôéÙ•{ë­·ØmÃNœ?~‚5†Ÿà†eÚ´iÜp„µw'Øe`¬XG§«»6 3v¸\Z\±²úþzÇñÔé6Ý]ÿ×£»\išÜ1U±Av¸I“&å­u@MžFÍÖiìØ±ì3"ßdY·UäY“’uB¬í`‹névpLŸ—«`gB ‚a’t r¾Akžâ„úžê ²@?¸W0øéÛ·/ÇÏž=Ëî\®Þ½{󂀉‹gâĉì÷Õ€KCƒXñš»“1|È÷L‹§ºêòÐÙ5¨F<æ-Vº]O®>#½'¡ ü_d„ ü%§^ÁØ~q†‹€. ‚”ƒ5ÀÉ@ ˆ‰€•¸+V°u…ˆm_»X¨ƒ~Ñ\+X,¸#ø8¡Ñþ»õV[ÿªU« ñ ~ð 6¶clÁ´W¾2,)HÜ:o$*]]ÛB¿p7P®!HÙ¹sgöݱÍ™3‡ƒmìDHƒë‚1 ØÅâGÐ ×;5 «·»Ü"”G „x ǶpgµD¥+ú‚!²žÐ¡æ1•®‡]±b€Ø–'>½ñTAmá@r|¶Œ³fÍšfu¸3°N¦NV¤á¥€G^íÚµÙ]ÂÑ!¬„Ý6ž±å‚¼8 ÀÄÂUzá…>$¤F;ØVa© B°Ø°ËÀW†kæú ýàËNŸ>Ýtà“âd¨xñâÜúÂbéÙ³'ë‰q` hÏêâpá(þ±Ž%*]QÆZ†Á;â Ù³gsË%K–ä±a7Å Ȫƒvä\X(˜‡Ö­[3Ñ1œ4a@àëcÁàÈR ÚCy¼ ²JTºc¡víÚ±+¥ëà…ôB — n 4à~A0>«ë£ëùâé—H°5âÅ ¬Zl &V«Ü*˜¼]…eEcÂU@:,)ˆízd Ÿ.|lœ¢À‡Õ‚€ô8ZÃÀŸÄäéɵöÓ=\&è]dvÄ.p'`Ù°c!h¶+ÞêŠszŒãrÅ‹yX 0$VÁBłΗ/_¤ñ Æ#ƒ˜Zœ'ºÂaqímC/,èëÍ| ¨Ÿã¨‹Ô*~³ô胃;Wg¶®`pVëN°CÀ·öDÐŽ5Ðs­c À\óbzÙ]ƒUkBñÖtoïíè Km ø­}‚°xGáN°«F'Ø1ñ%&‰JWœ`E%Ð ?þ¿’.Α±­é£*o‹€.Ž«À'EPéNlÁ‚Ýe\šè»SòTܛؒ´.m¢ dqÖ,"8•º“H¤Ç9¬~Ã讂¤ NAŸU¸;^Žtz㔉ž‚€·ˆOï-rRϱé;u¢¸·é½ENê9!½c§N÷ÿ'¿aQ{¢IEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1InitCommandOption__inherit__graph.png000644 000765 000024 00000021061 13515046516 031224 0ustar00tangentstaff000000 000000 ‰PNG  IHDRзcUЖsRGB®Îé!ëIDATxí]xUö?!„Þ{ïué .å£,ÁE”"²° «‚®q‘ÝUÐYE@@Å•D@¤÷"„Þ¤KïBè$aþ÷wò¿Ãäå%y™ä‘™¼s¾ïefn=÷wϹçÜs罆1‡„AÀëÒªZìÔ”:‚€ @÷Ò‚€ `Q ûØIMA€DD$ €=«hóæÍtîÜ9Wñ,Ìú†@½zõ¨pá¾vJ)…sµoßÞPØÉ'b°`ÁWÉ¢bv¦ë,ž®]»Ò·ß~ë”5HøH"QQQ”6­+EQö@Iœ{©àH!À@†Ÿ4D’†ŸÔpD\døIC@(iøIíG@ÈÏðÊ+¯Ð÷ßïç^¢›Ÿ:u*µjÕŠòåËG¥K—¦?ÿùÏ´zõjŸû¾{÷.ݺu‹Ë9r„Z·nM—.]ò¹~ òó¬¯[·ŽNœ8áç^ˆHPV„ƒGŽIýúõ£S§NQ‹-hòäÉ>õß»woêÞ½;—EhùöíÛôèÑ#Ÿêj¡T¯@gÏžeAÀÊŠ·Ú/_¾¼Ñ³gOÎ+[¶¬1vìX¾õë×ç6CBBŒL™2óçÏç¼nݺ+V4råÊeòÚ«W/Îß>}úyóæ5ŸsæÌiôïߟŸ_|ñE£@†R03_ßìÞ½›yûâ‹/Œ… ò}Æ Í>Ð'ÆŽ¶4&uêÔ1ÔbÀeOž<ÉM=šñ(‡q(¥ã<`ܼys#}úô<6à3eÊÍB‚Wµ8p_n|!Õ[ ¬žJ®ÔÁƒ +9\š7òj¬„÷(EŠ¡FѼyóP… +p³fÍH)¯îcÆŒa+Uö§Ÿ~b‹«ƒôQ£FñþA)`,ë¡Ûü?~œ-ö+J1ØB"ïСC4iÒ$^ͧOŸNø,Z´YÔ²eK4hßã\6%´ü kU­Z5Rlæë›*UªpºÕÄûf°¼GeËóî»ïøîܹ3©жlÙ¢«óná´iÓ¸<ú;vì >Ü,§•PN)#)%¥°f^j¾ z饗H­ª¤V[Þ\c_€±Ù®]»6»i˜d”ƒrÀÕ‚ ¶víZR–2dÈÀ/9B€¾þúkRV…]´©,)KBB\ñšQ… â”ìMŠ/Îe‡ ƹÿ~._¹reêÒ¥ )KFÊ‚Q©R¥Xñ‘‰€Êk‚ÂvèÐáz)˧³b\ábÑ@›šÞ{ï=ʘ1#•)S†ûÁ8ã£ÐÐPÊž=;½üòË\ õÐ7\GMÊZR­Zµ¨`Á‚ôüóϳ‚é¼Ô|}Œj*%&U“rXô³rGL¾cÇŽ„| >Pœçž{ŽÓ 8… â:®Xý±9}ú4U¯^”{¦›¤bÅŠ™÷ž7%K–4“”KÆ÷PXÆJÈ×yÖtÏ{DÜ<÷Lº „”Ñdå‹ölñ‘£U ©uŸ‡v4A9¡´@¡@P_«l»víØƒûåÉ’% ]¼x‘#iË–-ã2¬ÎŽ;aãüùóV²ºKÖtÜcƒ® . dÍÃf›uÇâøÓ¤I.‹ ‰'!¨€…!iMÖ~àÊ&Ô‡Ú_¬¤ÚÌè&(,,,F=_16H%7¡@‰™+¸qXµW®\i†ta]zôèÁ‘.Q5Ø*Ám‚%¾>?"QØ_aoé=òÓO?ekUµjU.¡œ={6»uØ_ B¦‚œ÷¿ÿý†j6ûÎ;ïÚtó3¢nj#ÏÊK ~°ßƒ[9cÆ zûí·ÙzêÊpá°Â"q¶mÛ–³`}¡\:2©ËƒDéåCÞ¶mÛ8Šˆ=SÀS‚!‡HlN¹SÆøñãÍQ¨=¡Âºæ³Úœjßa>+·Œ#a¨§\3Q(µ’s¤ Ñ&%tÊ‚Ð"SJ˜ åÊ%J”0£p*lŒ7ŽË! §”ÏŒT!¦¬ç! §Ü,îí ʦë¡@ß¾} eí¸,þX£pxV‚o¨½ó€úødÍšÕPA d3é(¢lÈWgF†²¸†:ïá|¥¤œV³fÍXQ8¥¼ÂPQ4 Ü%S¬¡@ÊÂjç²Ö<(Ú˜êlÇØ»w¯©œÖ2¾Ü£må–êœÇ ³ëzZЇŠê-e^¯_¿îu|(€ñ«×zf6nܬ@îü“ZýApÝpPˆÍ±Zñcu‘;wnjРA¬t$äÉ“‡?^3=±×ÂÇáM„žíÚUg4 V÷ Xè ʲéÛXWŒ¡Çˆ=Æ‚÷jõçд5ªd)âÓm¥J•¼†•öŽKqòÀ? }ƒ‡@ÝðûÛ X\4ì¯6qþ€ƒMùJ·¿~òí"ÌË‹ "Ÿ.¢Y…sÑl «ÎC@Èysbrtþ|ô‹®f‚Ü8Wîp2Ž3ŒÔN¡¡'Õ«Fù¨H‘Ì©z¨nþÊ„+§çø¤fÂF?_¾>´dÉ _Ÿš‡êê±¹.ˆàj´ÁüÆGé…&+%ÊF»wNDM)ú Â;Q]…††©7¨ƒÔˤáêÕÿ£5QÌIa "˜P8ç&""J}h—ú:µ¡Þ¹ Vo†ïtsÂI DbÀጇի©¯WGÕÊk)¿MàŒÙ‰É…(PL<ñ4þu°lòrëÖ}õÅºÃæ³Ü8Q çÌsr÷îCZ¾ü€²8Q&gpã,7ÎÄA7¢@š °²lÙ¾ʃ4¸qK—îUß7Šþu ¤ 9Q g̃ÉÅܹ۽¾ìùða$­XqÀ,'7Î@@ÈóÀ\\¿~GýVÝQõ±ÁÁAê«æÛÄ­°D$‹ïQÖÇ;CˆÂ­]{Xý¬Ö=ï$5EJؽw ÷-¾o— oÉ’=Þ+KjŠ ”"°Çîo^‡…âÃÓØ¹Ñ)†¤^¢7..|R"Ý•/“¦PþîsáÂè0uHHZåÆEÇQÕQƒ_<ûå—“êUÃÕÏieó7KÒ¾ˆùÒ“(RªT>=:ú—Fu'®T?Ù[LýTn9Ä×Û·(Š‘$)„€(P ïÙm«V•=“hÖ¬Íêû@%Õ¯¡6Š•' Î@@ö@ΘáÂ¥ˆ¹tâ„mg äŒy.\Š€(K'NØv¢@ΘáÂ¥ˆ¹tâ„mg äŒy.\Š€(K'NØv¢@ΘáÂ¥ˆ¹tâ„mg äŒy.\Š€(K'NØv¢@ΘáÂ¥ˆ¹tâ„mg äŒy.\Š€(K'NØv¢@ΘáÂ¥ˆ¹tâ„mg äŒy.\Š€(K'NØv¢@ΘáÂ¥ˆ¹tâ„mg äŒy.\Š€(K'NØv¢@ΘáÂ¥ˆ¹tâ„mg äŒy.\Š€(K'NØv¢@ΘáÂ¥ˆ¹tâ„mg äŒy.\Š€(K'NØv¢@ΘáÂ¥©ÿüý9]:€øØ~ýõ×iÒ¤Iñqt^úôE)*êEFÞp4Ÿñ1·}ûvzê©§â+âæ¼Y©þ_téÒ%ŸÛ³ò{äÈjݺu¢êûÜQ€²L<ŽÄžþy:vìõë×Þ|óMÚ³g5iÒ„–/_Î%{÷îMÝ»w·ÔŠyûàÁºwï^ÌDO/^¤ ÐçŸNõêÕ£>úˆZ¶lIsæÌaEÚ¿¿O­ZùŠŠ¢Û·oÓ£G|ª+…|@©©•Ô9„¡„Ðçáýøã8T6”™u”Ð… 6zöìi\½zÕxöÙgæÍ›çÎã2gÏž5ÂÃÛ7o»wï6”€r9d^»vÍPŠ`(¥2~ùåcïÞ½Fdd¤Ù6n”51víÚÅéwîÜ1îß¿Ïù}ûö5BBBŒ°°°åÁ[Ö¬Y-Zp:ú½qã†ñðáCcãÆÆ¯¿þj–÷ä}_¸p!gΜ1–,YbìܹÓPŠeÖEº²^Æõë× e Œ31tòäIÆR¤&¦šÛÊÎ$·qœ~«@³fÍâIW«~Œn8`àÓ¿#((ˆËÔ©S‡Ë”-[Öxæ™gŒÌ™3³r)«e¨“wÎý:È5P&88˜ëAðµ ¾÷Þ{f{꼊ˢ(Cúôé å®ÅàC? 6ŒÛ‚pwëÖëåÊ•ËH—.§÷êÕ‹‹zò»uëV·pƒÔ³‘&Mu1®úõë³Ò#¯hÑ¢¼P€Íû”)Så‰ù“³ %V *T`!ƒ)WÍ€2a%×Ô¥K£}ûöú‘•‚ûñdzµñT X´ñãdzRŒ9’Û>qâ¯êÈS¯±ùç?ÿÉy¯¾úªqôèQ¾Ÿ:uªÙõ&44”ówìØÁ „vfÏžmÀZNŸ>ó~øá®båת@°V¨÷ÕW_q9ô™?~ýƒ0þ¼yóèãüùóFÆ µã<_þŠÉHI‘¦œ9s’reè»ï¾#e)H ï…”0Ѽyót±X׎;ò~I `¬¼R¥Jq @¹c¤„“ó•°Ò¢E‹¨téÒ4`ÀÊž=; 2„”Àr¾råøŠÀ7R®!'+ëÁ×Ê•+“R³r5 }ZÞÚPJÈý¾üòËœ]¦Lž¬ZµÊ,®,ï· ,hî ÍL¹aD,‚°oß>:}ú4uîÜ™ÔêOˆZ©=*Tˆl)ó¶J•*1,Oùòå3Ÿ2dÈÀ÷ØÌ«=+VÌÌS.U¯^Ÿ¡X (š7Z±b'CèAP+Añ.Z|„q¢?­„( EQÖÖ¬få=cÆŒê¥ÖH3On¢²H˜1cb½7W³fM^}:¶4IP oT @‚Â*wÈ̆‚²dÉ¡kµç µ2óqƒ¬DÓ¦MI8O¹Xf„­UP‚Š/n¦y»AÿˆäYûÇba­ïÞÚ Ô4Q ËÌ·k׎…zĈ¤¢U¦°Â¥kÔ¨—„+U‘/KÍÄß"$Õ^8lþÎ;ïÐo¿ýf64vìX~nܸ1»cèSí[8” ïÃ?4ËBðÕˆàÚ >œ•®M›6œ¿ÈGyŒcÙ¶m­Y³†­¯Ù°Ü$ˆ€("œï@ qæ·-S¦Ll‘ð}–o¾ù†Kªˆ¯ð° ¬ÒV7Èúl½ç–?8Ðüàƒè“O>á[o¥J•H»yhgO*œLP"Jçs¡+W®ÐæÍ›©víÚfkpáðÝ'¼y>cÆ 7nÕ­[—ó=ùÕ• ÀC‡%(*ꩨ"µmÛÖ<ö´>£uœº€¿úQqk™ÄFáô8q¶‚ó œë ²åIˆÖáì')¤¬ñóÏ?sûÊ-ã¦ôyCYDÍpfäIc«7'Œˆˆ>g™“'ÅÇ/"Œ[¶lñÚ¶g;‰y”(\ªÿ>2[¶lñ~‹Ѻ¤ö6Xñ}ƒµY¸p!»lxûÀ“l°<óñœ6mZŠ+˜¿¹sç&|„ì! .œ=Ü’\ ´/¿ü’CåÊŠÐáÇI½ AåÊ•KTÛ(wö„R±@)ƒ;÷Ú£GÂ')„=›PÊ! (å°—žS¢@žÄÈHykÚÁÓì‰9x†fÎܤÎjn;˜Ca-Õï6lØçÛNŸþù„ ,ÈÖ AÚ³gõïߟ®]»f–sû ÆtãÆ Æõë×YÐ-ZÄ‹«víÚŒKß¾}y!ñe¼V,#""èÁƒ¾Tók™$[ ‡Ê›7/]¾|™…§T©RAúí·ßù¥K—¦´iÓÒ¥K—xÏ–-›9¨+W®pZ–,Y8íÈ‘#pÐV|MJ¬8E‹¥ôéÓóäx®ØwîÜaÁÅŠ«”#G.6Ð&V0X…Ó§OÓíÛ·©lÙ²¦e€ÀƒWXŠ4iÒp;ÖgÍ®áááIY³fežpÈV¼xq ¦"EŠÐèÑ£){öì<^”>àÿ×_¥Ÿ~ú‰úõëG/¾ø"²˜ZµjE}úô¡ùóçó‰º<î±RgÊ” ·Ü7°†À*þü”3gN>£€‚çÉ“‡•3±e¹qõG÷‹q -M˜'ô LNœ8Ás® øÁ²1:×3fð9ÊäÉ“y,:ï™gž¡W^y…þïÿ›â›?ÈHcÙ²eKúÓŸþ¤›byƒEŸ|ùòqøE<_¸pïË”)C¶ÌFlÜ$YŽ;F  êÕ«ÓîÝ»™…*UªðÉmXX?ÿá O?ý”ƌʄ„ªsçÎôúë¯ê 6Œn޼ɀÉûøã©X±b¼B>œÆ(„ÑJhBõû￳ @È[·nMo¿ý6mÛ¶FŒAU«V%Xä¡í>úˆ•çÎ4xð`Ž÷c,žÏÖ~p"ö¢¢¢xR ÐO=õÁº@I€Çwß}Çy_|ñO0 JݱcGks¼Ààœ hïÞ½4räHÆ}@yð\£F > ‡Eƒ’C¨€Ç³Ï>KëÖ­3W|¬êÀ|úZýN:•¾ÿþ{ž;¸\˜7¸£è c^à ëׯO[¶lá6°¸Mš4)–¢[yóõ>Ù\80Ž·ô¾}ûxÅŸ3gAð!°§ÔInóæÍyûŒ]¸%¨ ÿî ÊÁªÄE%J” ¦M›r?(‡½V*Mv¬ôºm5ñŒ•[+ç³®¯¯hB e€ÁÂÄGXAõÞ(®r/„m¢m¸”Ï=÷]½z•­.êX1X³jÕªq¼~…E –®Š&_Ë¢-âÿøG^ä`a1WèW\.|îܹùU¯sçÎqVvÌ3ösp•°i‚KÒ.ºN×Wx ôJhþ¸Ç(CݺuM×ó÷^„&X#𼰥мë|»×ØK¡Í–`1@Ø€ € ¸ L'&îÞµƒðÂB €Ö®”yÚÚÀСˆ‹ݱC·t­ ¸Gžž@<'†PWö@ (H|–î‘ÞÓèò^(ŒÆÍêî@`AšW5Ò€7xñly _Ëb~àÖlß¾Bì#ô\F·—¾Ç"Wx h‚‹­I'.Õn¾.—Ðüévõ˜CɱŸµÆ­ñB:ö‰šÀ{Bs¥Ë&tM6 ¤%¡áÆAqàn Hߨ{÷îì–À¯…}ùå—æÀ­*ë ëÙŸuÅÄËXÑ­JcmŸ2z¶m}öu¼Ö:X½!p«•°Éýúë¯yÌZà0Ñ„}H#1}ûZvÅŠ¬<Ø«bƒËèY×󵦮]»Ò|Àá]wQ¸&C‡å¼víÚñªˆ Â¥I·g¸PDf°2br°!߸q#‡‚  ÜÉž={r:Õ† ² z>£îWí³såxþÀÂ~õÕWìžaŒq#ò‡ˆ¤&,ãbÜø`¼Øã}a¿õüƒ‹{ö >¬¼XïS¶Y³fì`ˆ6°7ïð•D[V³NCþ” aþ@X°°øiB ãC0è7ÞÐÉ|Ä€½®Õå‹kþPÉŠ¥ul˜c,x£Fbž€!d ŽÕÓ[y×iv¯q~hÍš5vÛL°@Ãêk`%¸78¿Ï¡±¢(0ËHÇJ%ñ cCÈ`¾!¤ˆ áÌH¿B¨Ö «!\ «_lí+¹ïá¢Á¢bb5a_†Õn™vÛt®/„|B¬Ša-—Ü÷À¼Â"‚À;í¹òì ˜Cq<çÎZØã¼çLžøÇ7º oX"{8Dò`=K(F èzI¹ê¯3$êû@Ié0®ºXý»†p©'a’²õF°\ˆžøBh›à¸Ès£W¹äJ÷¦ O²ö‡ñZ Ö<Þcѱ’ÞwYÓ¼ÝCÁK–,é-+Fö%Ö½IŒÌÿˆoþ¼a‰j°*þtq½ñ‰´ÇKb\%’1nbñ8äjÑ¢…í–±iôv®€U-®×;°¢V¬XÑvŸRÑÿÄ7þïÝ^)âÂÙcUj )ƒ@|.ÜÂ¥ Ò« àDüƒ«´ ˆÈDË0ýƒ@œAÄÔ…A :”±aL¼$)$ÑàY¼¤ëbEá¼’4A@ðŠÀ,ÙyÅEßò ')%xE@È+,’(ø†€(o8I)AÀ+ÿ.ð›Ó™þ¢4IEND®B`‚mysql++-3.2.5/doc/html/refman/functions_z.html000755 000765 000024 00000006311 13515046516 022041 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Class Members
MySQL++  3.2.5
Here is a list of all documented class members with links to the class documentation for each member:

- z -

mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1WindowsNamedPipeConnection-members.html000755 000765 000024 00000043031 13515046516 031501 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::WindowsNamedPipeConnection Member List

This is the complete list of members for mysqlpp::WindowsNamedPipeConnection, including all inherited members.

build_error_message(const char *core)mysqlpp::Connectionprotected
client_version() constmysqlpp::Connection
connect(const char *db=0, const char *user=0, const char *password=0)mysqlpp::WindowsNamedPipeConnection
connected() constmysqlpp::Connection
Connection(bool te=true)mysqlpp::Connection
Connection(const char *db, const char *server=0, const char *user=0, const char *password=0, unsigned int port=0)mysqlpp::Connection
Connection(const Connection &other)mysqlpp::Connection
copy(const Connection &other)mysqlpp::Connectionprotected
count_rows(const std::string &table)mysqlpp::Connection
create_db(const std::string &db)mysqlpp::Connection
disable_exceptions() constmysqlpp::OptionalExceptionsinline
disconnect()mysqlpp::Connection
driver()mysqlpp::Connectioninline
drop_db(const std::string &db)mysqlpp::Connection
enable_exceptions() constmysqlpp::OptionalExceptionsinline
errnum()mysqlpp::Connection
error() constmysqlpp::Connection
error_message_mysqlpp::Connectionmutableprotected
ipc_info() constmysqlpp::Connection
is_wnp(const char *server)mysqlpp::WindowsNamedPipeConnectionstatic
kill(unsigned long tid) constmysqlpp::Connection
operator private_bool_type() constmysqlpp::Connectioninline
operator=(const Connection &rhs)mysqlpp::Connection
OptionalExceptions(bool e=true)mysqlpp::OptionalExceptionsinline
parse_ipc_method(const char *server, std::string &host, unsigned int &port, std::string &socket_name)mysqlpp::Connectionprotected
ping()mysqlpp::Connection
protocol_version() constmysqlpp::Connection
query(const char *qstr=0)mysqlpp::Connection
query(const std::string &qstr)mysqlpp::Connection
select_db(const std::string &db)mysqlpp::Connection
server_status() constmysqlpp::Connection
server_version() constmysqlpp::Connection
set_exceptions(bool e) constmysqlpp::OptionalExceptionsinlineprotected
set_option(Option *o)mysqlpp::Connection
shutdown()mysqlpp::Connection
thread_aware()mysqlpp::Connectionstatic
thread_end()mysqlpp::Connectionstatic
thread_id()mysqlpp::Connection
thread_start()mysqlpp::Connectionstatic
throw_exceptions() constmysqlpp::OptionalExceptionsinline
WindowsNamedPipeConnection()mysqlpp::WindowsNamedPipeConnectioninline
WindowsNamedPipeConnection(const char *db, const char *user=0, const char *password=0)mysqlpp::WindowsNamedPipeConnectioninline
WindowsNamedPipeConnection(const WindowsNamedPipeConnection &other)mysqlpp::WindowsNamedPipeConnectioninline
~Connection()mysqlpp::Connectionvirtual
~OptionalExceptions()mysqlpp::OptionalExceptionsinlinevirtual
~WindowsNamedPipeConnection()mysqlpp::WindowsNamedPipeConnectioninline
mysql++-3.2.5/doc/html/refman/inherit_graph_34.png000644 000765 000024 00000005267 13515046516 022457 0ustar00tangentstaff000000 000000 ‰PNG  IHDR¢$ áÞsRGB®Îé qIDATxí[u¨T]Ÿg‹…ÝØbcc¶þa`w¢b`‹b+Šú‡vƒØÝ…ÝÝÝŠ9ßü†ï\vï¾}»ß¾u}œ½÷ž3'æÌ™û›™sß‹b!²d5ð—5ï/Ïo§·P XC´†'4` 1NlƒÂ¢µ8¡n)Nœ8AÓ§OwWÛ²Õ@Ø4?~?~¼×x>ˆøèÑ#Z»v­W#[°—Ο?OûöíóÎM‹5kÖ˜G{·› @ðºnòADw[¶ˆ„¬!FBËvŽ€°†PE¶A$4` 1Z¶sÔÀÿÞ—/_N½{÷¸ÐØ6øôé 4ˆ (@3f¤æÍ›ÓâÅ‹éû÷ï±:¬ý«W¯N§OŸ¦/_¾PݺuiçÎaÞ¼y4zôè°Ž‰Áþ÷†xãÆ :vìXØãpÊ”)4þ|ªQ£Mš4‰2dÈ@]»v¥>}ú¸›þÕòÁƒéåË—ôãÇÚ±c=~ü8¬ò\¹r…Μ9Ö11X¬ ñÛ·otÿþ}úõëÝ»w.]º¤Bþþý›._¾¬BC) ‡Ò›7oôÙ\ ¨wïÞ™"={–Ž?NŸ?vêðD‚Á½~ýZßöxñQøðá½ÿ^7áèÑ£tóæM§ ëùóçZ¾~ýº!x¢þéëׯ¹AžeÔÏ™3‡† B³gϦN:ѬY³¨W¯^´zõjm‹>Ð6éÀ*ê A~ x?~4ÕŠ¨1É…†?þ¤‹/ªn0‡'AN¬óÖ­[žÕA=c­wÛ¶m„óc7AÇÛ·o§W¯^¹YN{göß© åAâEr~ˆ? 󪋩 gBÚ^\‚ÞÑ·råÊ\«V-§\¾|y–Mç *pµjÕœá^¼xÁñãÇgÙ\¾páçÈ‘ƒ“'OÎQQQœ-[6¾víš¶• äÔ©Ss¼xñ´}éÒ¥9Y²dÊ1b—(QBŸ[·nÍ ä4iÒp¢D‰t~1åmÚ´IËUªTqxh+ ü={ö(_ ŧ,F¤óÖ¯_ŸÅ(• ä?|ø0ˆ²lW¬XQÇHœ81§H‘‚-Z¤m:Ä‚ *s’$I8}úô,‡ºÊ $— ¾® zM gÊ”‰¡s¼” Ý‚‡_™2eô.†Åb ú¼`Ámë¾ è^@§F·#GŽtšáû€µ „",/KÄÐH€†%Lᆠ²’Ó7¦‡þýû«Ìî6±FDQ€RÊ”)éÉ“'4cÆ ’Í! %ÐnÕªUŠpW¯^¥6mÚl ÉjŸ7’,’Z´hAãÆ£ìÙ³+¢¡â0Ä#@Ó:›".\±A§öº‰ñ*ZÅÄô·yóf§MÖ¬Y @×aÆ)O^Áõk®X±‚ð{gžñ(Ö²~ýz’ß°B»»-3TD “hœÛ·o¯Ýå%âîÝ»;CÉKÉK–,QÄD;qqÏ /Ö“\êè@}qùúãÐ:¬£jժܪU+g\ G” "B^ã-Ìð$˜kàÀêUL=î( t"B§iÓ¦åbÅŠ±…g³€ÏþÑï'¾ÿjÖâ2´‹lÞóå˧w H$$^ÑdݺuÔ´iSÂÛĉI€¨Ã‡Wt\¹r¥ƒžåÊ•Óv¸Ôr*<DI%R3 F®\¹>öÈwçÎE?q¿Ú¨Œ,zéÒ¥Ô³gOõø˜o(K–,$Fê|·/Uª”aQæÌ™õÙ3öŠN.Ã3`CòòhÌŒ8xêÔ©¦šŠ/î<Çô€ØÞ«dÉ’^Ͱ‡ q¼Ù?Ó(lèîÝ»ÊGârîÜ9’À°B¾‡Í5ÃÅCpÏØ‘J<¨. ývïÞM—¨ÛEÀeà a, ƒ!(Â=}úÔaÁ­@Qž†ëÉ„óâ9]h'q/!,0„С_¿~Z„QÂeÃÕ$§nݺi=ê2YgΜ9ME'Œ4sæLM&P ï´iÓ¨pá”*U*'9D;ÛCØ+Èë)’C¬ºÂÚðl7„X‹aÑB… QçÎ}³`dðiãÆÒP]³Äu:”‰ºPK\£e‰c”`_âI þ»téâL_¯^=–¸Š%³Ö„ Aƒ\»vmF÷7f‰±Ôm§K—ίkF€-HªaÜ€,˜%Ûv\ ¼:Ö‰„n$™4ËQ KÌäS–—€eÓ5 C€ŽÀ!dÂpÃC2äB!詹Ć,Ì‚€ŒdNâ*I qÍÑÉ%Ù2‹Á±Ä…ºn¸ã:uê°‹&;vT · ½Ë¹¡kîÛ·/oÙ²Åë‡DE Hõ*ÞI×#1ºî‰Äμwï^Gâg–Dì I›g²‚Pú;v¬®%˜‹?× —éEÊ¡pCˆMŒ˜:d–ˆ[°0d¼ˆ?äGÙr¦1 ú ƒ7íeˆâb´²æˆ/8»ÃÙZ¨„çinBÖŠ%:BÆŽÌÊKWåŠ´Ž¢€°ž“âßðAßUíÙÄ>[ „¬óÚî¿îÌ%äimG«à4` 18=ÙVXÖÿ°‚íðÁiÀo²‚8Ñ’Õ@¸5€'•3UŸa} QL©Y³f> m…Õ@84€ïážßä͘>Y³aØ»Õ@$5`cÄHjÛÎåWÖýªÆ2"©kˆ‘Զ˯¬!úUeDRÿi´3)î4iíIEND®B`‚mysql++-3.2.5/doc/html/refman/inherit_graph_20.png000644 000765 000024 00000004072 13515046516 022443 0ustar00tangentstaff000000 000000 ‰PNG  IHDR‘$‰ßØåsRGB®ÎéôIDATxí[u¨O=ï)ØŠ˜˜O}v!‚ &&"v+¢¢¨ ˆ" ‚>QÑ?ììîìÀÀ\÷\˜e¾·ëû>}üüÍwgîܹ»{æÎ™;ó=“,[`Ä Éqô5] ‚€ "q#`‚(nD&âF «ÛÃñãDZ`Á·ÚÔ ‚@:u0vìØ4|`yõê8÷ïß×›¥üþý{p°ø¼#GŽàÆŽÍׯ_ñìÙ3©_»v Žìç·5ø*¡fqѹsçP¦L´hÑB"¼zõêhÒ¤ Z¶l‰jÕª¡nݺhÚ´© l×®]Ñ¡Cç¥^¼x””¬_¿.\2m5j„J•*ƒM9xð J•*…Æ£H‘"â¯J•*ŽUà %S-ZÍ›7GÅŠѯ_?iæÌ¥žþkÔ¨!v5kÖƒ˜²wï^äÌ™‡ò­S9kÖ,00F%6îËÔ©Sc¾NlÔÄrÛûÕÓÃö\V[·n#FÈ„qûàäà3õ`nÛ¶-æÏŸï6MX=î Ro’7o^<~ü .” Cq€ ¤ë+W® GÏŸ?—n[¶lArr2ºté"yEÉ’%öc°,[¶L‚¯wïÞ¨U«–0—/Å(êÙúýêÕ«X²d‰°ÊêÕ«ÁÛ¶msLŠ/.ÌwóæMÕÆ/m¥K—Ƙ1cÀ;Å]§®X±b˜;w.Ö®]‹}ûöQ•pa~凃þ ¥K—‚̬Þ]oËŒr‚hâĉ2g …ILÕ¹ÔuîÜY²dÁæÍ›Å†?¯±˜”+W§N’A"C1ðæÍ›‡³gÏJð 2D؈vzN"Ž´KÕªUAÆcpÒŽë?×~%S¦LAŽ9šš*íLJ)¬3@ÈŒ~uQÚ&×dÊAƒ%Ñ„ƒþ²2ƒmùòå8qâ„Þ”)å„— ŠJ2Ë—//õ¤¤$¹3Ç`°Ž7mÚæœÍd' ƒe2—‚Ijæoy”úõëËÅŽB+¨¤Q© *Å|Ô‘ê•.\ Øß~ÏŠ+$ï˜={vº]™cý®áàö3lØ0Ô®]”%ÖÝ®×™CþIIXqæG gÿÊ•+%Qm×®t㮃[X.ULÆK”( &€MÑ×ø;wîˆÎïÂ$R Á#“éA§·óÇD½Mõ »W®\ãÆÃœ9sÀåU LOÖõÄ^ل݃pp÷#£ÃË—/cÑ¢EN³š´Š%Õ†Ç1ø…h#ŸÀ3ÉË•+&OžŒN:!{öìâ}ÕªU>|¸äQ$²]²Ù„ôÍ]Üùóç…Æƒ^‰È<Œùƒ’ƒª–TöárF?\JwïÞ6mÚˆ+Ÿûömߺ(µ <Å^ú˜[)!ûrPÉ´  3f¨¦È÷ ü›‘#GÆ$îj £3±gž§ÊÏG"t-ˆS1h:vìξ}û:ßÀ™­X#_¾|rÀ8niy È]Sþüù…™¿è¢fu\ÎHõ Äš5k„-¸cSrëÖ-ñÓ­[74kÖÌh&ó‹/vvkî:û«o`9[¶l²¬éÏæw‘Ù89¸àr£D·ÓËîö hçׇj‰f;Ó îH¹¹ žy&óDÕ—wõzY½G†îv®#öùÿ÷GŒ.Ñ{öXöößãÖ>ß±ìóË^®#ïo/¥v›QÚ9§e§QÍ#ÙõìÙÓ²™Ûc~Ôš¡ÐôïÄ¥bÏž= eë븲fRÞ°aCU¹“ÁxEè‡gTAâN¾ƒì2¢çìVÌ‘þì“Q}F9ê+Ìžqð|ƒà”Qa²]¯^=O÷ *Èi¶§ÁVTîð8ÈF‹@¹IwÉ„“ç9.µnbÊÿSÔ_6nß¾=¿–XÇ<ÕTþ)LýSÙ9c‚(spÿ§ž˜X3/2bÐàß3ùíz=AÄ_yXfÄ àF€;bþçE·xvgnS7„!`r¢0„L{(&ˆB!2a˜ CÈ´‡"`‚("c†À/h„2ø¯:ÃIEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1BadQuery__inherit__graph.png000644 000765 000024 00000017645 13515046516 027362 0ustar00tangentstaff000000 000000 ‰PNG  IHDR•·ÆrsRGB®Îé_IDATxí]˜Õ>,K‘^¤HÐüňA ¢  !Å j>iA %h)A0H¤«Ô)‚ô¥÷¾Ô¥.½írsþCî0ïíÌ{»Ë ì:÷|ß{3sûýïÏ=çμ7Y”Rß’ƒ€‡daR)Ë3E(Æ``ðC*¯5åMe8à=±Þy­ÄãÇÓÕ«Wý*Þ”ëEŠñ ””EøFª-[¶Ð•+WRÖhB2 uëÖõ¥-¾‘ ­­X±"•(Q—†›BÓÀ±cÇhÆ é/ JNc¨GÈD§Cª´cfrDAÀ* @&:íR¥3“# †TQ2ÑiG SêäÉ“tùòe×ÞÕ«WV®\éŸQ#ìý9r$½þú뵩ijW¦ UÑ¢Ei„ ®[°`=zÔ5>£FØûuéÒ%ºpáBFmjšÚ•¡HuñâEúñÇiãÆ¤žˆ—óÇÓÙ³g¥sˆÛ¶mmß¾=Eg“’’åhÁ`Ù7a¿nÝ:Š‹‹£äädŒöïßO°®¡÷íÛGçΓ0¤]µjÍŸ??¤Öâ2 pÞ°aCÅ6™â¥_&"k9I›š¯@Š—U©R%UµjU5fÌuèÐ!ÅK˜âe%øuêÔQ-[¶´°cõ/€kRYa'»wï–tݺuS¼ŒÉç³Ï>“0²bÅ !0»~ýúB„—.]Zµoß§"ÐÀ£GVÐ|`·2A*Ô.åÊ•S ÄT¨Ok4¤F=ZS±c¢£Ôc=¦Ú¶mk]G;ñ›T¾ÞûcÀS%Ù²e£±cǃFíÚµO¯víÚ4kÖ,Ê•+—Ulج­¬°{ï½×:t²wï^‰:t(}õÕWVÒR¥JY6/?„òàI¢Y²dÛ¶îcjÁýLØ@p ‘ÊdélrÄ“GŽ ³_àÉÔÇÕL¼TîÙi‘¯å¶Ûn ±uø­:fCF8«z!Ül^Âd`GŒ‚ ÏlÊŸ??­_¿Þ OíV‚¾±=hÐ 1|a„Ãðþä“Oˆµ¤”7|øp «P¡½ýöÛC›—Aض²êd»‹Øv£bÅŠIX¤2°"åÚû%ÿÿjܸ1±(“ }f'Fbš5kfO–qÏ£­¿éO‹¡Ž:z÷î­àmÁ»Â‡U¬A¬fÛ½¿5kÖ(Ø4ȇl—%K–HZØj¬ÍTbb¢\ÃEšéÓ§‹ÇɬrÍK¢Ø0ÚÛŠT&lªòåË‹‘²Ð»AmïW—.]¤_¨œ—GÅ˿ԇxðæ¨´KÛT¼"×øjРA ÌŠt8ñÛ¦ÊÞŸî7\wx~ðÃ…—HƒOŠŸRÚ; Oéš÷¬/-Š÷©ÎÓ"H:\ÜÊ©àúëx=Iìùíý²‡Ã³Ü±c‡‚AOÕKñ›TÂPçY,R¸pabOF_†µý‚@ØXvÒ#°ËªW¯žž¬T²dIÇ|ÑÊŒoï—½p8 ¬åìA™æü,oò/˜ïtIe‚5fùÓH˜£gRy¥)H#`H¥‘0GÏ0¤ò JSFÀJ#aŽž!`H唦 €!•FÂ=CÀÊ3(MAC*„9z†€!•gPš‚4†T sô C*Ï 4i ©4æè†TžAi ÒRi$ÌÑ3 ©<ƒÒ¤0¤ÒH˜£gRy¥)H#`H¥‘0GÏ0¤ò JSFÀJ#aŽž!`H唦 €!•FÂ=CÀÊ3(MAC*„9z†€!•gPš‚4†T sô C*Ï 4i ©4æè†TžAi ÒRi$ÌÑ3 ©<ƒÒ¤0¤ÒH˜£w(iß¾=þEÕ|þA–,±*gβ*&&‡ÁÄÆ‹&Mš8°G)×?«¬V­õmåÞMÙ_nIƒvíœ+©Š-JÍš5sÍh"‚À”)Sè…ЗAiDŒM¥‘0GÏ0¤ò JSFÀJ#aŽž!`H唦 €«¡®d†c»víè·¿ý-5oÞÜ·æ®Y³†Þ}÷]ÇòK”(A#GŽtŒó30))‰ßœzš *$Õ´nÝšžzê)zî¹çü¬6jÙ¿Mµ`ÁÚµkWÔÎÞH‚£GÒ¬Y³(oÞ¼TªT©OñâÅo¤ètçýþûï©páÂüŽç+RÆùóçéòeçw¦»’tdôDS8q‚’““¥ƒ«V­¢2eʶ$ÐÉÕ«WfrÙ²eéâÅ‹tøðaºãŽ;ø}.9¤¹—.]¢C‡ñ;_Jò …²IšŸþ™Š+FUªT!¼°QËþýûùuhûéþûï§ÄÄD‰»ýöÛu´9Bùóçç—gŸ¥uëÖÑ=÷Ü#íB$f5ïÖQ®\¹hùòåT¤HªX±¢•qh#ÚÃo%M’OΜ9­4ï¿ÿ>U¨PÁºÖ'º  | hã¹s礿(õ¯X±B®Ñ7» nÆ ‚ðÓâÖ´q={öPùòåièСdo+0Àx _À ‚ñ ,Hk×®•úHíÛ·w¥cÔçŸn•Ã@(îŒbb©ªÜ¹s«|ùòI¾'Ÿ|RñÛª$í{ï½g•̓¦*Uª¤^zé%‰ãAV|ðœgÏž]ÕªUKÊd’*&š4i’ĵjÕJU®\Yñr¡ŽqRmÚ´‘8|Í;WÂæÏŸ/a/¿ü²bâÉùœ9s$nÛ¶mrþÅäQLP)Ÿ\ñ„Rh×C=¤˜œjÞ¼yеŠÔËE1 ÔÎ;¥˜±cÇJ;Ñ^´é‰'žPLH‰sëÏ?þ(X"=ðÛ½{·ŒAÿþý%ßÂ… àÉD“~ ãÐ>äÕuj¬%Q”¯-Z(·u°8…¤‡Thï²*ž= ®{õê¥N:¥žþyé*ªW¯ž|t¥?þ¸jР♪òäÉ£  Q\´h‘Z²d‰tåaðþõ¯) Œ©X3*ž½’ö™gž‘Á|¸Š•h6hø„„ÅvŠœ3F:íSµjU…kh.€Y€¡qŽÌ47RõéÓG'S¬þ0 8HÀ·Ÿ¬8œ”+WN@ t¸Ð¤zöÙg¥^Ô­?šTÈÖµkW™ ˜Æ “’–.]*m°§[¼x±B™Ðà`h2´h€êÕ«K^Ê­?n¤ÒõÍœ9SÊÀ—ÖÂìpHÑo-l’HfÏž­ƒ¢#‘Ê›ŠA;GHl*½†Ã.âVJ ½öÚk„m~^Öó¦M›Š=ÅËñ,'xs08k×®-Æq||<¿í^~cv)_wÞéþŠ4ØoZ`7A´ýÁ`ê(9"^Ç…D¸\|øá‡Ž6•NÞ¶m[⥘XëRË–-%í‡Øí·G}TÂXKÊñÅ_”£þ‚3 %RtûQ×;J ìXȱcÇä›W‹¶Ã`{!ž‘ÊnPGjŒh¸½'NC„ÂÀ€‡ F/ެYhĈb´ÃÀµ ÒÂp’ƒZÁ¬äœ5©íqÚ‘Àv„‚‰óÊ+¯ˆgc¸K—.ÄÚJÚò7mÚD¼DIUŸ}ö™ÆlLÄéIãúäÉëïg¶·ÙÞ7W{£pTؼúP&„í^9¦v¼$q¿nÉ–Â /¼À/¾þ/±J&=C,öY† "Zí¾ûîíOª~ýúÄvˆ nbþãÿ ¶U\»ÊޱA-Þî¦C«Á „\¶©èøñãÔ½{wшìHÜÖ­[éõ×_'6 åzüøñÄË™œë/6âiúôé!^6$ú‹/¾ ^ÒhôèÑ¢­¾üòKâ%ˆ_@YS¼:h9ýæ%]Ö¸qcñ0ñD¶-P6Úƒ|ZÜú£5÷–-[¬•y ¡@Vxªð(á…Â3D;à%ú.N‹gZ už‘âqé²>þøce·±`ÀÕÛ¶Ì:¼wïÞâ©ÀÇ·ì(ØU0Îñjàij› ^W¿~ý¤Z1!¥>¤…íÅ[› ^êF»ÔV>$ÐvGÒÍÿüç?’ùÂ?0ÈaäÂîûÓŸþ$éáÀ åÁŽÊB^ÖH!^'Oé¯.—'‘‚c‰ÔؤÚÆ' <µ÷‡¾ðv‹Ôûîî»ïV7n”2ÃÇ ž&êž1c†Ä§æ+’M†§´’*EQ8° : ¯ù o0\"¼#ï5²HeO‡A€w Ö. Œ`Þ£Q¼4X„µ§ñóíf­"Hx=ð’a`ƒœv‰Ô¤ƒ3Ìœ„µºþ¬C&¯SÚ´†E"•g63=U‚eg„ŒLÞy°CüØc¥G6:Ã7;r l7|œŽ{WNQ¾†±¶&öpëà½9â=-Ç8ºõµø8 ð5j8EùvÓI{$˜ÞÞñÖƒµsm/ãᇶvÐíá8‡÷ã<3I¤þdÔ~8¾í ah#'°]§ [CárK¼¿ðF˜ë_†T©Ϥ¤«©Li’R¥’Ÿ~:+•)M2×-†&Å~LPòfÍÅûMøþåµý­ âÞo·§ õ¸¸8kW™ ¼,Zt˜&LØE –¦F®Ýf <( žÓ÷0íx8’ÊžÀœß6ÄîåÛ*iÙ²’(›* @$ ¡lß¾“¼Ç¶/JmH…S§Æñ£k„qGÀÊÞFXÎ?eº¶ôéd¸ž6-.E¸Ž7G"C*¬^OðüœäìÙK4oÞ§(ÆR¹Ð^_øÒ§“ÆÆÆ°xí™ofŽ×0¤ºŽ…uïnâÄ•®Kn.Ïž½žý¸lå1'×0¤ºŽ…u¶xñþ5Ë9ëÚé¶Õ¬Yœ¢fHå@É“W†ü‡ƒCÞ«"ÑfNqA»égÀNó3ì%­¦B+íÚu”ÿx¤0ÿø5›~þü%þb?#n`´@ásCÙŽ†Ëù'ù7s}øoò/¥Ýí’=pÁfù ÜûßaC*ÿ1\ †Trÿ;lHå?Æ«Á*pCî‡ ©üÇ8p5RnÈýï°!•ÿ®CªÀ ¹ÿ6¤òãÀÕ`H¸!÷¿Ã†Tþc¸ ©7äþwØÊŒWƒ!Uà†ÜÿRùqàj0¤ ÜûßaC*ÿ1\ †Trÿ;lHå?Æ«Á*pCî‡ ©üÇ8p5RnÈýï°!•ÿ®CªÀ ¹ÿ6¤òãÀÕ`H¸!÷¿Ã†Tþc¸ ©7äþwØÊŒWƒ!Uà†ÜÿRùqàj0¤ Üûßáÿ¤·téR0`€ÿ5g¢®\‰¡Ý»óóß3žá¿bLÊD-÷¿©mÚ´á÷ 6 ©(ÅŸUîÛ·ßt0êÔ©’0è ¦S§‚ŽBhÿþùgúõ¯ÈW)H¥SôêÕKŸš£AÀgžyÆ1ÜØTް˜ÀAÀêFÐ3y0¤r„ÅÞ†T7‚žÉ눀«¡î˜:Ι3‡6oÞL:uò­ugÏž¥>}ú„”Ÿ'OªR¥ 5mÚ”²f }ÑdHB—‹5kÖиqãè£>²RLŸ>,X@[·n¥Ü¹sSùòå¥ü5jXi2ÃI¦×TØÙ°Áß]¾|™V¬XAÙ³g§J•*É`_¸p>ÿüs2dHºÆùïO¬_¿ÞÊû÷¿ÿ>ùäºí¶Û襗^¢§Ÿ~š>Lo¿ý6M:ÕJ—NnXSð'NP‘"EèÈ‘#üº² T®\9ºzõ*íÝ»—K Z¾|ù,lŽ=*a˜ùmÛ¶ñ+Ñ®HX Êݹs'•.]š7 sPbb"/^\GËñܹsòÒìœ9sŠö*P €¤G$Êø µmÛ– µ& &Fþüù©oß¾‚?ò,Z´H&;âAàaÆñ›À&ÊDC…½{÷Rêñ iL.<[þ``'ƒZǬ@GÐIÌ ÌPÌôuëÖÉ £?ýô“¤^½z4fÌ £h”ï¾ûŽ0øýúõ­òÍ7ßH:ÆMì«Ù³g ™@< ˆ Þ?ü@_ý5af~ùå—­‚kí~Dÿþ÷¿©gÏž¢=þøÇ?Òþýû©uëÖ’íÆõW_}E8Ç £ 2tèPѾÿüç?e‚aBi ÝµVÑá8"ä‚ö‹&À Zm˜1cU®\Y&2´0c 2a,0A1´Já7*ž‘ê…^ÙöðÃK›7n,$Ñ×°êÖ­+3Hwdþüù2Ë0£J–,)*ˆƒÂ^ÁlÚ¾}»ØMš4‘eé }Üä®»î¢Ç\êAº;î¸C4Nx]ŽÖ®¸†VФ ¿F~Ëê€ö…FY  –ý%K–È‚PçÏŸóìù矗¼Ð–öÛ`Ð̘”N‚O_LÞ‡zH´$Lx@°i!0' A,ôåþûïÇqÚÞ.„§GnxùÓ•¢‘=Û0( f ȃNÃÃAã1 ÐdË ´Ôˆ#„ˆÓZ ƒ¨%Ü&Ñá8–(QÂ~)6„.š48‡}:S+ Žô7Ò_þòÑÌÐ&¸µ› vúªÚò«_ýJ…, >´œ“ Z?¼_:- © Ðî³fÍ’s|A3Öƒ`L0¡´ ?Ðn˜Ä˜à<òiÛV§IÏÑ3M¥É­èÈ„%3§V­Z’eåÊ•ôâ‹/ŠÁŠ;gøðáT°`A‰‡ª%ÒRÃU ‡¦³É^–éHÕ帡© pTFŽ)vä´iÓhôèÑ!·&Ø®]»¬¢°m [h§ÝÄ`À‡–׃dØušL $ÇÄÄKû«¯¾j9+’ÀöU»vmi3ÆcòÄOØbÓê©RÛ„G}T¼¢Q£Fɬ‡› ÷3Ë ØKï¾û®,(ËÚ /Úí… ~h(LäAû‘ÚZ –v†<´ & ¼²ñãÇK_`ëAƒ`é…€0 H§ mÜ&Ož,u ?~ø¡ ZÔI0©A,Øy(«ˆâÙò­1z–DXB`@ÿîw¿³²ÁK‚§—«K—.2hðp÷ÔSOÉlÅ íÞ½ÛÊ«ËF– .4€‚çTµjUñ|Ò xG{Bn=åÀ2a¿ÖÞ´†”- 8&XRtûÑ'´¿E‹²…Czñòˆö ½¨gùòåR&¶ °õïß_W!šdÄ>UÍš5¥>”k|`›H(fHÙ£G©…@Û£NôbÇIø +&!Žh·’â!=Ì”óæÍó¢|Ç2`„c¶BkØê»ã… Û»'f$f9ˆ¾¥ðþû׆*l=KáNcKêý2½´Ú빑s´{X !êÅž´"úÁrŒv´ ¥“ =´ŒžX –1ìÜk;v êÒv¬½„£Ý}ûU¾|yš4i)RÄ'è4kÖ,Z»v-9_âÄ}ôñĉ´páB?½}…Óú wØ“Âix°ÃÖmýúõ¦téÒ&W®\&C† ææ›o6›7o6Ï=÷œ\ó8™š5kJ}={öÄ«ºòÉ“')S¦ŒéСƒ¤Í;Wî3åú©§ž2… –ó .˜víÚIzæÌ™MÆŒÍÀ%íå—_–ë+Vø®³eËfx50<‰L:u¤\Ö¬YMîÜ¹ÍØ±c%ßÖ­[M… $-S¦L¦X±b† ,i¼ÂÈý{î¹Çð£k9G^ž0‰ú…2èÓîÝ»¥,»W&&&Æ(P@úöy2HZÉ’%M£F tAPnÔ¨Q’ί fÞ¼yæèÑ£ád¿yf`&{RRJì‡zÈÔ­[×°Å3l9Í]wÝe^|ñEéÛc=fZ´h!ç{öì‘ìÞ½»akh>øà¹¶ÄÞ¾}»éÖ­› S¦L1ýúõ“²ï½÷žùbcc [Y3zôh)»råJÃPÊ™eÐA*Ô yþùç…`˜hì.˜6mÚÈdAjÕªeªU«&“Wsÿý÷ËDCš%6ôGtc‹lÚ¶m+õ:ûå$6¯&¢×§Ÿ~*ùP®hÑ¢æÙgŸ•k“5..Îð*f0q€W¸¢Ä© ùRJlrÀ€fݺu†—qù j'† fØŸ6°¾VJ”(á³Øö^°cõêÕM5 »ò1°B¼ñÆ’}ÕªUB|€€HO?ý´œã oܸqÖÖ+ˆ­ó£>’{˜–Ø8·‚~b5‚8ûå$v×®] ¿ $“Ü–Cûì®È%ôA=V†*ùíurÇ´@ìt³ydrüÎÁƒS=ˆ¾üòKªW¯sçªÀÇ­R¥Šß[iU«V½š!‰³½{÷Ê­¿/W¾|ùˆ]¹fâêbÂSçÎå>“@|XøÀVnºé&jß¾½ï}‹‘#GÒøñãm21qýüzv•|ið¡Ùð];Ù·oŸèÁ«†/¹xñâ„}…§/ž={vñómZz8^íyïÍ?ü@½zõ’Í6i (x±Š- osˆt1!Ù˦C|>üðCjݺµg×D6ˆåÊ•£W_}U6— /û„È‹öÉ}wb÷@n 2ÄW't4hÝvÛm6»ß¦›VÞKøÒ‚°ŸN7nôÛ0¢^g9;ƒ•O÷Ò ±ÇŒC/¼ð‚D*V¬(oæÈ‘Cƈ7zBŽ“'Oû°„#/År7¾È2³{ õìܹSÊ~ýõ×¾ ‚²¼¹¤É“'ËêпjÕª•DvïÞM]ºtÂ"«úÒK/IÈ3cÆ š:u*íÚµ‹x£Iì &Àí·ß.“ƒ7¿„È,9tã”ÅWŸ>}DgD=Ð~³fÍ$ÍÙ/_f>iÚ´©è×»wo)‡‰Ä›=zôÑGÙÒ÷yrþÔõJO©Ía+ñeAÝ Ãa?QŸÉ)¾/6i¶¦âÇòÈJ¢~ýú¦cÇŽ’oЏxÀWÖúôHClÑ O\v‰$ßÌ™3%Ñ A¹†~ì~ "ù°([¶¬¯Nø¿Voëc#š]á»7oÞ\6 (ìì—ÓÇF¯V ±Q&µlp‘VªT)óþûïãT„‚DjìurÇ´àc{öWê°œˆã¦ä}lă9BAð'~)Lb¶L âP.åG ‡&¼,Ë— ‚˜5Ü…üùó‡]eЖӿEaè ÷GôzB`å[¶l)qoøÍ¼QMT6°_Rð/ì98"B/¾46Œ‚ŸeMšÞÏÑËêux(±ÃÃ)ŹfÍÚÀ¿« þè{éÒíüó­ø׫ÂC@‰N)Î7$©Ì"-6v]ŠëÕá! Ä§å:v,žß£Þ!eB„5Ÿ8qe¨d½!ž~ *¾]·â3f¬7$sæŒlµWþg­8Ü‘õë÷ó¯êOðŸŠÿw“×­Si¬a%v¬T©Ô·oK¿šGŒø/ÿø·8Ýw_¿ûçÎù‡ýõ"Õ(±S ]è‚Ýž(ñ›oVÒw–æ¿U?QšÞpõ±ÝÇTkôJl ‚ªà>Jl÷1Õ=€€Ûƒ *¸€Û}LµF  ÄöÀ ¨ î# ÄvS­Ñ(±=0ª‚û(±ÝÇTkôJl ‚ªà>Jl÷1Õ=€€Ûƒ *¸€Û}LµF  ÄöÀ ¨ î# ÄvS­Ñ(±=0ª‚û(±ÝÇTkôJl ‚ªà>Jl÷1Õ=€€Ûƒ *¸€Û}LµF  ÄöÀ ¨ î# ÄvS­Ñ(±=0ª‚û(±ÝÇTkôJl ‚ªà>Jl÷1Õ=€€Ûƒ *¸€Û}LµF  ÄöÀ ¨ î# ÄvS­Ñ(±=0ª‚û(±ÝÇTkô ‹ÛzÌš5‹š6mêvµiº¾,YJðÿ¥9Ëÿ~úDšî‡›Ê㟻&$$¸Y¥­+6ªÿªãóÏ?§¬Y³ÚÆô¨øX²d }ôÑG¾k·O¢Jìx€räÈá¶ÎZ_:@àòåËQ%¶úØé€$Ú…Ä(±c¢wÒJìt0ˆÚ…Ä(±c¢wÒQÝ<¦|½Y±bET73À¢uëÖ–aÆQÙ²eƒ¦Eóæ‰'(gΜ”%K3f ÿìõ4tèÐh6yMêV‹Í0oݺ•–.]uÀøá:vìÿïô›}2gÎõöƒ5P¤Hš4i’$]¸pÎ;,[š»ç ‹ @:D%K–¤}ûö‰U«\¹2?иB›6m"¤W©R…0øHÏ•+(PÀöä^¾|ùäÞš5k|e`¬ÀZnذÿ§ùm”={v:zô(•.]Ú&ËñÔ©S„gVS®\¹’ .LåË——´‹/,\Ñ¢EiË–-tòäIªV­šX;[ t‰‰]QÏùóç%–{V­ZQ=lvßåöìÙCèƒíê?sæ /^\ê„n«V­’ëŠ+úÊâi7n¤%Jøõ)©þKèxøðaÁ¼}ûöôÈ#øêþ¨øb<0>;^¥J•¢Ý»wKù;î¸CÆÀWøzŸpÇ\—™3gâi¦áA «îåË—Kþ ÈeëÕ«g5jä»®U«–ab™Úµk›{ï½×Wï/¿übø –á¥Üð2j˜¨†‰o2dÈ`Ø2šÍ›7KÞ ˜üùó&˜ä¯^½ºaÒKZÏž=ÍwÞ)çmÚ´1*T0ù$uîÜYÜè?¹_¿~>BõdÊ”‰>ûì3ÑÓW€Oúöí+xïØ±ƒ˜äôÉ'ŸH<Á|Ù°Áµb£!c5uêT_Úu?IÅlH¶Hj-6/ýR7f>c`‰ LT¹fR,Óˆ#$­aƦyóærÞ½{w“-[6ÃD1ëÖ­ +ÏC)?eÊɇ¯>}ú„´Ø•*Uòåà oêÄšY‹mW¤¡M¬ á,6».¦C‡~Ÿ·ÞzËWœÝYU`)?þøc¹o-$V+üHÚÌ™3ǼóÎ;Ò7XôÕ«WË–”]É ‹ª?ÈÀÄ6ø`PÛ–gr,8ö?þ¸Ü†/ ±¾>ÎÙ%Ãf̘!Ç'žxBŽö T+ÉõÇæ³GøÖX9±p ÆÚ ún{<&÷ŠxÊa+.XÆÙo¥Ñ£G î¿ÿ~)‡¨–p,±l½$ò‚ÛÀÕ –óPÀ ûº´víZ¿‰àL_¼x±_š-—š#&î3Ï<#zƒ\]»v•jàRA°‘¶‚ˆxÕ’$BuHc__>¼²ˆ;có:õ Ö›Ï1˜ÌØh[Á&.œÓ „;^¶Žky I×R£0Úb×Cb¯½{÷–Ø0»R qXø¸ðË5€uGt£jÕª2PðÁáÃåe>dK˜Xà?c¢ â| —Ý©a2v¨Y³f¾ºØ5!ëk‚Ð~°ÜcW-ÑVDe÷‚Æ'V{Ô¨Q4{ölñ­á׳Ë"F›¯¼òЬHh¯~B'Ôº¡+ÊYIª?ˆ4a’£NA½Ø¿°û&iX!ˆÅ§ IÎJMzj}l&¤4Ç@‹ß_Â!+¹†kþl8þloÞTø†ˆ ¢Á!BÛNIÿþûïÅGDø¯ì–øùØð}!ðIq€?‰¼ˆ 8PÒ¬²Hƒ ÿžÃˆ’ޝ¤¢"Æ“r(øa2Kdƒ7‰R/ë¦N:†C}²Ç@ߨrK¹Ü¹sûù¿Ã‡7üz°¯ND“NŸ>-õ$ÕdàM·”Cy…05jÔrˆ6Õ­[WÒ€êgÃ!iÖǶㅛûÛßüt’ŒI|EÛÇFÓuI)±S£ÀË/¿ìÛ 9ËsÄ`c…É(å & G;|Ävæ°ùB=¼ŽÙú’-±‘†P»<¾´kq‚°ÇÏ Â‚ 6Øï¤úcëà8¶l´íµ=²;d8*b°IDøÑM‰6±=µyd+–¬`YÿñÇåñï!CåÇÆÓn¬á²àAO8‚zðP"”nÈBåsó>~q‚‡KÁ¡RŽyK’{IõÇúð…±içÕ+ðvš¸NsĆÿÌK¯ÄŽÛµk—j±¡äe7QyD°Á &ðÙY±Qš`y¼v/©þxMW7õ‰êo±“Ö_и9\é§.û *Z¿yL“Q‘ô3¼Ú“h! Ä޲õ&$\ ¸£—ÑD@‰MtuO˜°œßý8鸣§ÑD ª›Gç+£ÑìDZ¨»P¡‡ùÅ¥]üzh\ZP÷šèˆ(O´$*ÄÆ;'NŒ–Îi®Þ'.Òë¯ÇQ©R·Òÿý_·4§´Žft)*ÄÆË2iæÑk´FÍQïðáÿ•«C‡Îò«³õéÖ[‹8Rõ4¨ Têœ8q•ľ3gÎÈï_¬ HÕËh  ÄŽªŽ:wìø…JêÜpÕ*±£4äÓ¦­æ¿Ùq5ØL|üþ…ý–ÀÛzíJl—€tVc-rBBè?G)SŒl"åôÜ=”Øîaé«éÇ7óßÜóÿÕ·/ñ¼Æ:gÎFþµNÒùËéuxDå]‘ðšN¿¹ð¤ñŽ;Jú…ôöì9Æ%*”Ë×ñŒcøowì矛Ýâ»§'î •Ÿ†¹£Zúª¥aÃw©qãJü7òš¤¯Žy³7±êŠxs`T«PbG ÷&JloŽ‹j!JìÔâÞD@‰íÍqQ­"D@‰!€ZÜ›(±½9.ªU„(±#P‹{%¶7ÇEµŠ%v„jqo" Äö渨V" ÄŽ@-îM”ØÞÕ*B”بމ€Û›ã¢ZEˆ€;Bµ¸7Pb{s\T«PbG ÷&JloŽ‹j!JìÔâÞD@‰íÍqQ­"D@‰!€ZÜ›(±½9.ªU„(±#P‹{%¶7ÇEµŠ%v„jqo" Äö渨V" ÄŽ@-îM”ØÞÕ*B”بމ€Û›ã¢ZEˆ€;Bµ¸7Pb{s\T«Hô –/_Nï¿ÿ~„Õjñ@öîÍÃÿªã,x.0I¯#D૯¾âÿÐæ÷_gb{Ò¤IôðÃSýúõ#lN‹+ÑEàøñã´qãF:þ}šÞ|óMzôÑG©Zµjáw%¢ W®\¡9rH}ÿþ÷¿éܹ«áÈlÙ²QíÚµ©^½z”3gÎdÛ|÷Ýwé®»î¢ûî»Þzë-){½¢kiÞbïß¿_B>É¢A†‹/ÒªU«(K–,tÛm·Ñ-·Ü"6l}øá‡©ªù·ß~£ÿýïRöÂ… R?ÂW×R@Äøš\½z5a—)SF>èï|@Ý»w÷åIêdýúõtèÐ!É‚IséÒ¥¤²G5-b‹Aÿõ×_©páÂôË/¿È€—-[V,ÁÞ½{ é èGŽ¡ìÙ³Sž¥Çˆ‰½cÇúç?ÿIU«V%,¯Ê•+K§` X²1ó±Ü‚àC† ‘û '–_ezöìI°d˜íú½÷Þ#€ K€x%Àˆäœ={¶Ôc¿P/üĉ2Á¨I“&üÿ˻ъ+¨wïÞT¥JX¤¡îAƒ iÖ¬YC¯¼ò  è}%ÀmnذAڻеkWjÖ¬™*NX½€°ÁäÌ›7/õë×OðŸ8q"-^¼X ÒQ×Ò¥KE…>}úÐðáêSºti¹¾BÆ/"L–J•*QÿþýýŒòuîÜYÜ´Ç{Lx7çìÙ³Ü1QíjŠ-[¶D5©×\ø`xj‰AÁ ë04,,, ă,Z´HˆÚ Aúì³Ï„`3gΔz`Ycccˆ¬ë„ $Ÿ-¬×4øÛÿùτР?ùV0a¾ûî;‚%:uê5J’`ý1Éì*xLß|ó a€zôèAíÚµ£Pûöí¥<ôÆ5ç:u’6¬Ï:räHÂ*ôé§ŸÊ$ǤNJ`0àæCLÆo¿ýV²‡Â ‰À Oà Ã¬Y³¨B… bL°A0XI>þøc™(ð…ëÔ©ãGjL¼VÏäÉ“iôèÑT¤H!0Æuܸq‚+ÆùD&Ò¬u‘¬$å£b™s |J[î[‹Œs¤Ù%×ÉI ýÓO?Ñ¿þõ/Y¡à‹ã5øŸØ ¯V°JAþüç?Û[Iº"Èݬ`"Âõ„  Kúý÷ßË9¾°BÁBB0&ïTÈ}ç\§íLAáBÁͱ‚qO Cì» ÀÄ Ü+¡ø`ÓS{¼ªajkø£œ%prÕ€ 4–%X,…¸¸8zâ‰'hÚ´ibù`í± æÏŸ_Ò»ó–„€/l„¬ÀÏ…Åw’ÙY–Ö¤&‰­'ÔцÉ`‘±ÁBaÆŒ²\ÃBY±$ÇFÐ ¬nR ÏP8ÙÍ&Œ>p³ž}öY?R%Õfri ñîÝ»ecmóbO“†vüö°dc œ ¡ø`ó¦öè±ÃUqQD ÆŽ+Vd€À'„O ‹‡åQ䃅1>ÿüs‰d`iƒU %zîܹbE@6lV¬;„2h!-¸AØÜÖªUKª‚o>tèPß’xL &–]”ƒùÚk¯‰;‚úa1¡'6Cðµ¡/íÃRc€Qú£`b@ŸW_}Uül«w¨£(Â_H·yBáÐFKÐö "Öu°uØzásDsÂì‡Ú´i#´E‹(€axðÁ¥¸SOÛ°A4  Xã¼aÆ>ƒŠáè“TžïcÏ›7/©r¥acˆ™‹™ïø‘ˆ?cÃ äø‰Øá>¬ÈîCØ 6l~°y‚_g­6>ÖÜÆOí2él'’sè2!T‡v#†5D p |]·OM{Iá„4´#¢0vϪ„ìǺU¡ò9ïç†ÀX„‹!ôA¸…v•¶u†âƒMu´¯­×€½Cè÷±CUÉ}t K9–Sø‚€ g:ÀÀ‡põ`PCIà3T¾”ÞG»N¶p¸V{E*Iá”\ßÛÎ;wà­d¯árÙ}C²™ÿȽŸ$LJpë–ϵ¨H°Êïa™Ç¦Ë™ æ çg„Á–A(V2˜` ×Uñnñ!X®‹+L½§¤¤\‘k¶yL©Òš_ˆ%v$èiYÏ" ÄöìШb‘ róˆÇÃ*Š€—p>EÔ3±ûmݺu`>½V<‡Þ:D¤ ¡Ä@I ̠׊@D V}ì48jªrò(±“ÇHs¤A”ØipÐTåäPb'‘æHƒü?!É+sÇsé9IEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1Set-members.html000755 000765 000024 00000012322 13515046516 024776 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::Set< Container > Member List

This is the complete list of members for mysqlpp::Set< Container >, including all inherited members.

operator std::string() constmysqlpp::Set< Container >inline
Set()mysqlpp::Set< Container >inline
Set(const char *str)mysqlpp::Set< Container >inline
Set(const std::string &str)mysqlpp::Set< Container >inline
Set(const String &str)mysqlpp::Set< Container >inline
str() constmysqlpp::Set< Container >inline
mysql++-3.2.5/doc/html/refman/functions_func_g.html000755 000765 000024 00000006354 13515046516 023040 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Class Members - Functions
MySQL++  3.2.5
 

- g -

mysql++-3.2.5/doc/html/refman/qparms_8h_source.html000755 000765 000024 00000114774 13515046516 022777 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: qparms.h Source File
MySQL++  3.2.5
qparms.h
Go to the documentation of this file.
1 
8 /***********************************************************************
9  Copyright (c) 1998 by Kevin Atkinson, (c) 1999-2001 by MySQL AB, and
10  (c) 2004-2007 by Educational Technology Resources, Inc. Others may
11  also hold copyrights on code in this file. See the CREDITS.txt file
12  in the top directory of the distribution for details.
13 
14  This file is part of MySQL++.
15 
16  MySQL++ is free software; you can redistribute it and/or modify it
17  under the terms of the GNU Lesser General Public License as published
18  by the Free Software Foundation; either version 2.1 of the License, or
19  (at your option) any later version.
20 
21  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
22  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
23  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
24  License for more details.
25 
26  You should have received a copy of the GNU Lesser General Public
27  License along with MySQL++; if not, write to the Free Software
28  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
29  USA
30 ***********************************************************************/
31 
32 #ifndef MYSQLPP_QPARMS_H
33 #define MYSQLPP_QPARMS_H
34 
35 #include "stadapter.h"
36 
37 #include <vector>
38 
39 namespace mysqlpp {
40 
41 #if !defined(DOXYGEN_IGNORE)
42 // Make Doxygen ignore this
43 class MYSQLPP_EXPORT Query;
44 #endif
45 
48 class MYSQLPP_EXPORT SQLQueryParms : public std::vector<SQLTypeAdapter>
49 {
50 public:
53  typedef const SQLTypeAdapter& sta;
54 
57  parent_(0),
58  processing_(false)
59  {
60  }
61 
67  parent_(p),
68  processing_(false)
69  {
70  }
71 
75  bool bound() { return parent_ != 0; }
76 
78  void clear() { erase(begin(), end()); }
79 
88  size_t escape_string(std::string* ps, const char* original = 0,
89  size_t length = 0) const;
90 
95  size_t escape_string(char* escaped, const char* original,
96  size_t length) const;
97 
100  {
101  if (n >= size()) {
102  insert(end(), (n + 1) - size(), "");
103  }
104  return std::vector<SQLTypeAdapter>::operator [](n);
105  }
106 
108  const SQLTypeAdapter& operator [](size_type n) const
109  { return std::vector<SQLTypeAdapter>::operator [](n); }
110 
112  SQLTypeAdapter& operator [](const char *str);
113 
115  const SQLTypeAdapter& operator [](const char *str) const;
116 
118  SQLQueryParms& operator <<(const SQLTypeAdapter& str)
119  {
120  push_back(str);
121  return *this;
122  }
123 
125  SQLQueryParms& operator +=(const SQLTypeAdapter& str)
126  {
127  push_back(str);
128  return *this;
129  }
130 
140  SQLQueryParms operator +(
141  const SQLQueryParms& other) const;
142 
143 #if !defined(DOXYGEN_IGNORE)
144 // Doxygen will not generate documentation for this section.
145  void set(sta a)
146  {
147  clear();
148  *this << a;
149  }
150  void set(sta a, sta b)
151  {
152  clear();
153  *this << a << b;
154  }
155  void set(sta a, sta b, sta c)
156  {
157  clear();
158  *this << a << b << c;
159  }
160  void set(sta a, sta b, sta c, sta d)
161  {
162  clear();
163  *this << a << b << c << d;
164  }
165  void set(sta a, sta b, sta c, sta d, sta e)
166  {
167  clear();
168  *this << a << b << c << d << e;
169  }
170  void set(sta a, sta b, sta c, sta d, sta e, sta f)
171  {
172  clear();
173  *this << a << b << c << d << e << f;
174  }
175  void set(sta a, sta b, sta c, sta d, sta e, sta f, sta g)
176  {
177  clear();
178  *this << a << b << c << d << e << f << g;
179  }
180  void set(sta a, sta b, sta c, sta d, sta e, sta f, sta g, sta h)
181  {
182  clear();
183  *this << a << b << c << d << e << f << g << h;
184  }
185  void set(sta a, sta b, sta c, sta d, sta e, sta f, sta g, sta h, sta i)
186  {
187  clear();
188  *this << a << b << c << d << e << f << g << h << i;
189  }
190  void set(sta a, sta b, sta c, sta d, sta e, sta f, sta g, sta h, sta i, sta j)
191  {
192  clear();
193  *this << a << b << c << d << e << f << g << h << i << j;
194  }
195  void set(sta a, sta b, sta c, sta d, sta e, sta f, sta g, sta h, sta i, sta j, sta k)
196  {
197  clear();
198  *this << a << b << c << d << e << f << g << h << i << j << k;
199  }
200 #endif // !defined(DOXYGEN_IGNORE)
201 
207  void set(sta a, sta b, sta c, sta d, sta e, sta f, sta g,
208  sta h, sta i, sta j, sta k, sta l)
209  {
210  clear();
211  *this << a << b << c << d << e << f << g << h << i << j << k << l;
212  }
213 
214 private:
215  friend class Query;
216 
217  Query* parent_;
218  bool processing_;
219 };
220 
221 
243 
245 {
251  SQLParseElement(std::string b, char o, signed char n) :
252  before(b),
253  option(o),
254  num(n)
255  {
256  }
257 
258  std::string before;
259  char option;
260  signed char num;
261 };
262 
263 } // end namespace mysqlpp
264 
265 #endif // !defined(MYSQLPP_QPARMS_H)
266 
Declares the SQLTypeAdapter class.
SQLQueryParms()
Default constructor.
Definition: qparms.h:56
signed char num
the parameter position to use
Definition: qparms.h:260
const SQLTypeAdapter & sta
Abbreviation so some of the declarations below don't span many lines.
Definition: qparms.h:53
SQLTypeAdapter & operator [](size_type n)
Access element number n.
Definition: qparms.h:99
SQLParseElement(std::string b, char o, signed char n)
Create object.
Definition: qparms.h:251
std::string before
string inserted before the parameter
Definition: qparms.h:258
void clear()
Clears the list.
Definition: qparms.h:78
char option
the parameter option, or blank if none
Definition: qparms.h:259
bool bound()
Returns true if we are bound to a query object.
Definition: qparms.h:75
SQLQueryParms(Query *p)
Create object.
Definition: qparms.h:66
const SQLTypeAdapter & operator [](size_type n) const
Access element number n.
Definition: qparms.h:108
Used within Query to hold elements for parameterized queries.
Definition: qparms.h:244
void set(sta a, sta b, sta c, sta d, sta e, sta f, sta g, sta h, sta i, sta j, sta k, sta l)
Set the template query parameters.
Definition: qparms.h:207
This class holds the parameter values for filling template queries.
Definition: qparms.h:48
Converts many different data types to strings suitable for use in SQL queries.
Definition: stadapter.h:73
A class for building and executing SQL queries.
Definition: query.h:121
mysql++-3.2.5/doc/html/refman/autoflag_8h.html000755 000765 000024 00000010514 13515046516 021701 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: autoflag.h File Reference
MySQL++  3.2.5
autoflag.h File Reference

Defines a template for setting a flag within a given variable scope, and resetting it when exiting that scope. More...

Go to the source code of this file.

Classes

class  mysqlpp::AutoFlag< T >
 A template for setting a flag on a variable as long as the object that set it is in scope. Flag resets when object goes out of scope. Works on anything that looks like bool. More...
 

Detailed Description

Defines a template for setting a flag within a given variable scope, and resetting it when exiting that scope.

mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1NoTransaction.html000755 000765 000024 00000017772 13515046516 025413 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::NoTransaction Class Reference
MySQL++  3.2.5
mysqlpp::NoTransaction Class Reference

Compile-time substitute for Transaction, which purposely does nothing. Use it to instantiate templates that take Transaction when you don't want transactions to be used. More...

#include <transaction.h>

Public Member Functions

 NoTransaction (Connection &, bool=false)
 Constructor.
 
 ~NoTransaction ()
 Destructor.
 
void commit ()
 stub to replace Transaction::commit()
 
void rollback ()
 stub to replace Transaction::rollback()
 

Detailed Description

Compile-time substitute for Transaction, which purposely does nothing. Use it to instantiate templates that take Transaction when you don't want transactions to be used.

This was created for use with InsertPolicy, used by Query::insertfrom(). You might use it when your code already wraps a given sequence of MySQL++ calls in a transaction and does an insertfrom() as part of that. MySQL doesn't support nested transactions, so you need to suppress the one insertfrom() would normally start.


The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1FieldTypes.html000755 000765 000024 00000023241 13515046516 024665 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::FieldTypes Class Reference
MySQL++  3.2.5
mysqlpp::FieldTypes Class Reference

A vector of SQL field types. More...

#include <field_types.h>

Inheritance diagram for mysqlpp::FieldTypes:
Collaboration diagram for mysqlpp::FieldTypes:

Public Member Functions

 FieldTypes ()
 Default constructor.
 
 FieldTypes (const ResultBase *res)
 Create list of field types from a result set.
 
 FieldTypes (int i)
 Create fixed-size list of uninitialized field types.
 
FieldTypesoperator= (const ResultBase *res)
 Initialize field list based on a result set.
 
FieldTypesoperator= (int i)
 Insert a given number of uninitialized field type objects at the beginning of the list. More...
 

Detailed Description

A vector of SQL field types.

Member Function Documentation

◆ operator=()

FieldTypes& mysqlpp::FieldTypes::operator= ( int  i)
inline

Insert a given number of uninitialized field type objects at the beginning of the list.

Parameters
inumber of field type objects to insert

The documentation for this class was generated from the following files:
mysql++-3.2.5/doc/html/refman/myset_8h.html000755 000765 000024 00000013232 13515046516 021240 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: myset.h File Reference
MySQL++  3.2.5
myset.h File Reference

Declares templates for generating custom containers used elsewhere in the library. More...

#include "common.h"
#include "mystring.h"
#include "stream2string.h"
#include <iostream>
#include <set>

Go to the source code of this file.

Classes

class  mysqlpp::Set< Container >
 A special std::set derivative for holding MySQL data sets. More...
 

Functions

template<class Container >
std::ostream & mysqlpp::operator<< (std::ostream &s, const Set< Container > &d)
 Inserts a Set object into a C++ stream.
 

Detailed Description

Declares templates for generating custom containers used elsewhere in the library.

mysql++-3.2.5/doc/html/refman/functions_func_r.html000755 000765 000024 00000013007 13515046516 023044 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Class Members - Functions
MySQL++  3.2.5
mysql++-3.2.5/doc/html/refman/stream2string_8h.html000755 000765 000024 00000011241 13515046516 022701 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: stream2string.h File Reference
MySQL++  3.2.5
stream2string.h File Reference

Declares an adapter that converts something that can be inserted into a C++ stream into a std::string type. More...

#include <sstream>
#include <string>

Go to the source code of this file.

Functions

template<class T >
std::string mysqlpp::stream2string (const T &object)
 Converts anything you can insert into a C++ stream to a std::string via std::ostringstream.
 

Detailed Description

Declares an adapter that converts something that can be inserted into a C++ stream into a std::string type.

mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1null__type.html000755 000765 000024 00000007731 13515046516 024775 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::null_type Class Reference
MySQL++  3.2.5
mysqlpp::null_type Class Reference

The type of the global mysqlpp::null object. More...

#include <null.h>

Detailed Description

The type of the global mysqlpp::null object.

User code shouldn't declare variables of this type. Use the Null template instead.


The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1FieldNames-members.html000755 000765 000024 00000015411 13515046516 026254 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::FieldNames Member List

This is the complete list of members for mysqlpp::FieldNames, including all inherited members.

FieldNames()mysqlpp::FieldNamesinline
FieldNames(const FieldNames &other)mysqlpp::FieldNamesinline
FieldNames(const ResultBase *res)mysqlpp::FieldNamesinline
FieldNames(int i)mysqlpp::FieldNamesinline
operator [](int i)mysqlpp::FieldNamesinline
operator [](int i) constmysqlpp::FieldNamesinline
operator [](size_type i)mysqlpp::FieldNamesinline
operator [](size_type i) constmysqlpp::FieldNamesinline
operator [](const std::string &s) constmysqlpp::FieldNames
operator=(const ResultBase *res)mysqlpp::FieldNamesinline
operator=(int i)mysqlpp::FieldNamesinline
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1CommandLineBase__inherit__graph.png000644 000765 000024 00000024604 13515046516 030620 0ustar00tangentstaff000000 000000 ‰PNG  IHDR3{$gësRGB®Îé)>IDATxíœEòÇ›(AT̨˜sŽ(bÀt&(˜0z怂ÙSïÔÏ€áo *Š&Ÿ·“:Vwÿºªºº·Y÷:#ã€qÀ8PÙø¦™€YPÙu°ÒŒÆ7±¹1Á8`0T ̪¡­Æã€30³N`0TZVE-RT⥗^rŸþyŠÄ8PØ~ûíÝ‚ .X5•­™€ý÷ßßÝu×]UÓpVã@¾xë­·ÜZk­•o2åbÍHfp|‹-¶pçw^¹0ßÊah ¡tÐAM’w135›Y1¹kiŒ%ã€YÉXmŒÅä€Y1¹kiŒ%ã€YÉXmŒÅä€Y1¹kiŒ%ã@M­f–Œ«ÈèÒK/ul°Ûf›m Zr>ø {â‰'ÜgŸ}æÚ·oïÖ\sMw衇ºÅ_<9b}=þøãÝ‘Gé–]vYwöÙg»½öÚËm¼ñÆujpÑE¹nݺ¹=zÔùÖ×^{­ûôÓO3QZ¶léºté¢ùvîÜ9óÞn Ç“Ì ÇË‚¦ôæ›oº¯¿þº iæJì’K.qW\q…[b‰%t°wïÞÝ‘÷QGå¦OŸž+JE¾£N?üðƒ›;w®{å•WÜÔ©SsÖã·ß~s¿ÿþ{Îo yùÞ{ï¹o¾ùÆ­²Ê*ú[h¡…ÜÃ?ìŽ8â7oÞ¼†$eaSrÀ$³FýôÓOî?þp ,°€ûè£Üb‹-æ:vìèèìü±ëÔ©“Àœ9sÜŒ3Ü /ìZ·n­©ùw„aFæùwÞÑøË-·œkÖ¬Y&W¿•W^ÙÍœ9S¿E½²¿ÿþ{•˜fÍš¥³ýòË/ŸñÜþå—_Ÿ´iÓÆ½ÿþûŽAƒà‰oäߪU+×¼ysH &ÊúÆo¸G}TXŸ>}|·ãŽ;ºÃ?ÜÝwß}zåyøá‡†²¶k×NïÓò‰À «‰ËŸïÒK/­<÷ïámCÝ€–\rI–x¨÷_|¡ü$nZ:á„2íX_¤ ÿ‘hië¨$»Â +¸C9$“5ÏC‡uwV¥Mœ8ѵhÑÂuíÚUÛ(Anè{€+mÞ¶mÛÌ'ÚpÒ¤IÚž¤KüZ'³˜pûí·»ñãÇkçúöÛouPì¶Ûnîé§ŸÖžhtÛn»­cwÁ±Çëzõꥩ3Æ]yå•nøðáîÉ'Ÿt7Þx£¦ó믿ºM7ÝÔ]xá…šÞM7Ýän»í6½Ä5ÖXÃzê©Y¥ÚgŸ}ܪ«®ªƒ  Ï8ã ·å–[ªTE‡ðøH;í´“;å”S4×^{ÍtÒIîòË/wë®»®†æ™gÜ<à{ì1¿Þ½{gåÇà ü|óͧïñÚ-³Ì2޲Q&@áÄOt»ì²‹‚æé§Ÿ®ü"¤£´tØa‡¹=öØÃí·ß~.)ÒƒÿøÇ?”ç”aà 7T¾Ì?ÿü9³cÒcBñ“ e?묳´ÝˆÀC¿ÿŸ|ò‰;óÌ3Ý?þ¨|,É‹:O™2Å 4H·ç‘“ßù矯üÉ™q¼453¡¡™™÷Þ{owÿý÷«ý ÛÒî»ï®êÂV[m¥W¤uÖYGAÎ'àaïBZÈ>ø`7zôhí¨ìEJcvÈðÄ~ä‘G6:i¡rÞqÇš'¶:6àáÑ}Üqǹ±cÇ*ˆ!m=÷Üsú i ñRÃFmäøà{B¢Üî½÷^Gy)Dý'OžìÎ=÷\C€ ±—Ç—_~éPÑOúÅ-·Ü¢D›z¢}lt¨—wß}·%Ò34lØ0µOŽ9RùŠÔÎäQ_úý†I‘‰nÔ¨Qúíâ‹/Ö‰†<é;«­¶šîl©õ£ Ì´{äþƒjÉÀ§óX¨jHIÉ™…½Mk»í¶S 鈙õ­gÏž:ÓÒ!épãÆs¨;HmH’Ï  GxfÝ8B*Ⱦ}ûªôz1™¥‘ʰa#‚–Zj)• =˜!Íõë×O¿!ÍÔ7P©‘LÉЃH.Ó¦MËlÜOË'2Mž3X7Ùdå-“õ#_OùË_pYd5Ø0Ð /¼ 0ö¿E]TÁÜÇiè5.@)˜-rä‹ùvÅç µ6GC5çJ_ðí†ä…DϤBz˜|ýh7Ôzöcë»ú꫱Ã1Âò´é‹¼Oš }™ªùZwJ®æÚ6°n̆ž°I0À¼­È¿çêÕ=:$uäÕAÔ¥Ë.»LmØJ˜Ñ¿ûî;·âŠ+*8ø´èq@yò3;à a/ ßý·ðûè=à‰4‡ ­@BùTƒÑàÜPZ>5$, ‹} p@²Âfµ y>.ª¿·ß~[3xÁçÆR®nHd \l9äÍ`¥Ì¡—Ú4±ÿAAÊE2"O¤€šºÕGL,Ø ñÃpçwÖ‰Ø¡Ž†?ÿüspq/6Ûl3XqPI‡EÔaOL ô ~€3vQÚ“D™ÔèÏ?ÿ¼–Ù×I{ ¶C̬Übb@Bç™>…=ôð»þú볤|_†ZºšdÓÚÌÈ &OÜGŸý7®å;tè ™—`è€ØÄèhü ¾ÌÐØßX5äÇ õ’áÈ?,Vÿþýu bTößQ3,#@‰jƒÁb0°€* ø`Ï{öÙg5 ÒÀ9眣*pøh$Ô2œvc~¬œbLg!ƒ<P^½â9Ê—è³Dþ4$,6Dü²PËHþn¾ùæîºë®ÓUY_÷pÚþn%“Äm>`Âð <ôið>|ïŸý;xÄ¢ ¶,\X ÚvÀ€zÏV+Ya…à#íÆ3’;ÄâÒÍ7߬@m[$‹ôVÈ)?.3Ḵ¶6Úß«°¨ C† ÉjÍ ÆþÔÔáŒH6áA[ȶf–e9içÀÌJÛ†Z€WI|¾ñh ¤ ¯Jø0H}§vš}™íà € «š€y`d(J¨*H1¨Ž^µ §=€@}¦¬aÀ ‡+ô=m{ß;Ô0/ƒ:‰høá¥™¤°ù|ÃÏŒ|°ÂvÍ´iÒöøßyw ¤<ìðÕßALÑ´ùF¾\sÙ“òGšc’l½¿[Rø ùV[‡3«QP-Q/蘻îºklˆØ}rßü@Íõ=ü©‹_.bpÓ©K F~qÄ¢Fx .\¡ßûAîÓõv:ÿwl»Šj±‰•mV1KÑö/8Ц¸Áä¢|Û;Wš•þÎÔÌ´ `†U, êËj9±…ä+ ÒI.bé››‘q Ö9``V€€¦ÄFè\ÄJV¡.ŒÎþÕœuã€q :8ð¿åºê¨ÕÂ8`¨QÔ”š‰séøñãk´©‹Sí©SYUû]üæ²] ‘Û´ióÄéx®Øç÷„B¤hiÀ°“u5q¤¦º÷¸0åÏÖ­—¿ºMdëÖ2â4ú¨lÑùóx üSÎN¡sç¾âº€µóšüÞ?»ß²Ø“q࿨?3kñÂpàé§?”;ÆÈv›Iš`—. »_TÇÁ´0¹9qœ}SÎTû?M®M›Öâ(º¥<÷ß«Ü.*…Ê×Ò©8L40«¸6kšûŽìãÞ}÷KQùšË¶"¶5“wûÊ©uŸ.T)ÙêÓ­Û²•k†HeäÝBó=ðÀn²™|q&]°PYY:•ͳÊn¿â–ð5ê •Ä>ùä;ñºç¤Ú?OmÍ>²ýªƒl¬àVÌ’ þŠìk¼+븢V­ZèsŸ>Ë =åÔ‰?Oò(f9,í²æ€YY7O©kĈWeÏèX9kk†ª[˜Z´h&[Ãötýûÿ¹Ï0ü­Ð÷èF+áËNP£¼½z­/€·lœ?F);¦=U ̪¬AóªÎìÙs儉eÓúc²AýgÔ¼\Ô±c{9 bˆì#,ÍÒm·=/§RŒPU3WyP?çÎçvØaMw ;ÈžÃôçþçJÏÞU Ì*®ÉŠTàY³æÈ鸗Ê1?Ó$‡fòË bdºyÆ»ˆÍjkKBsæÌsë¯?DΈ‹?/Œ‚xU©ñCº—¤l–IYp`¢9Í–E;4}!Ú¶m-Y_9­¡•`OíÚµ–S6P„/­[·#¦{*XÕ—<ÒY©ËW_™ì{ñ9``V|WLl°¬üs£Åw¬E,h°’yÄ[ËQF­K^¯~ý6“øþǨ\™#•õ칺>9 è‹¹ò·wM˳¦åÙåî ÐÊ%¡qPàÁ7ú†ôˆ; %ÜDzôXÅ€,ʘz®Û+j¨òVÕܘ²2L‚ 5œgåÃÀ¬[¥‘e2 k$ã$šZãyW.1 ÌÊ¥%ò,‡Yž ”èhùó°)S00kJî(o²1R’1@+/K’Y©9^àü È ÌPIέð<-EŠf¥àr‘ò0 +c%Y´âñ¶X)˜‹³EN×€¬È –ä ЊÏãBæ``VHn–(-²1Z²1@+¯óÍÉÀ,_–8¾Y‰.Ù •žçÉÑÀ¬1\k¢8dMÄxÉÖ­éxŸ6g³´œjâpdMÜ’½ZÓ·AR Ì’¸S&ß Èʤ!¤håÓÑ’˜E9RfÏdeÖ R´òkJd`Vží¢¥2 +߯1@+¿¶10+¿61 +Ó6‰Ë-Ê‘¦}60kZþçÌÝ$²œl)Ë—håÓ,fåÓZ²2kÅ1@KÁ¤10+“Ófa@––SåέéÛÄÀ¬éÛ@K`@V& ‘G1 Ðò`^¢˜€‰ù&a@–/Ë'¾ZÓµ…YÓñ^s6 kâ(BöhE`jŠ$›B)ÂY"p`üø\¿~ÜýƒÞ"0· ’œ2e†ëÝ{¨ëÔ©ƒ=úx׬Y³2(UÕa¢ÌÂtï½÷nö+š7o´o¿vUñzùå—w§‚Þï³Ï>Ç«–- Ú¶]©âÊ]îðúë¯GûÖÇ-ãpZ@-7ääÀ<à^|ñÅœß õr“M6q'žxb¡’³t*Œß|ó;öØcs–:ÌöÞ{ïœì¥q ŽŸ|òIÑÁl饗vÖ7ãZ úßOœ81¶’¶Ëû`0T Ì*©µ¬¬Æã@, ÌbYcŒÆJâ€Y%µ–•Õ8`ˆå@ŃÙm·ÝæŽ9æ˜Ø Ö‡I“&¹vÚÉ}õÕWµPÝŠ©ãa‡æî¹çžŠ)¯/h¾ånȘüþûïÝœ9s|Öy]+Ì>üðC÷üóÏçÅ„Jüã?º1cƸ_ýµÒ«RUåúé§Ý§Ÿ~ZquÊ·Ü “‹.º¨>|xAx”7˜Íž=Û!Ì›7Ï}öÙgîí·ßÖ‚ýñÇîwÞq&Lp¿ÿþ»¾ûüóÏÝŒ3² þÅ_¸~ø!óîµ×^s/¼ð‚ûå—_2︙9s¦‚ÖôéÓuÐNž<9ë;?ýô“c`“ßsÏ=ç>úè£LÐÿÛo¿Õç>ø@]Â3‚xà¹Y³f9Ê EŸyGúg8ofêïëH8$¤iÓ¦q«D]è QɉºS¯ŸþYÓ…—Ð×_ížyæ™,¾|÷ÝwŽïÔÿ©§žÒ«Žù“«¬>èo¿ýæž|òI÷î»ïj=ýû¹sç:¾y"¿p½üûJ¹ÒצNªmúÊ+¯8xúôú+DiCÏÞqn×8ž–vÄ¿^‘_¸íù%µ_R¿%n´]¢Ï„‰7ù–›´s¥A¿üòK>+1–¦L™RgÜúï„§O‡'\ð€q†ïã oŠºÑúÑ÷qÏÒˆêݼõÖ[g¼œ»wïl·Ýv™çÍ6Û,Êݺu ¶Új«LRÒÀA‹-‚«¯¾:xóÍ7ƒe—]6˜þùÙöˆ?QðþûïkX‚ cÇŽAóæÍ5ü†n(žóíõÛ™gž¬·ÞzzÀ«­¶Z°ð ­[·Öü>ø`ý&ú¼å–[f¾V@¿?þøãú}üøñ9ŸEtÚµk´jÕJÃm¿ýö€p ¤å:õÔS5Þ³Ï>«ÏÿûßõùŒ3ÎÐüX`/øõ[—.]ž}YZh¡à„NÐúKÃÄ/a6ß|s­?e ,÷ÝwŸ~{ã74í?þXŸãÊÊÇË/¿\yç˳óÎ;àïðÃ:wî¬÷üçGuTæ¹¾›‹.º((ö€Þ½{×WŒÌwx —[n9åý‡úˆ4 Ïðø’K.Ñ>À7ú¡§k¯½Vy-K"ÏÎ:ë¬LÚ´ß*«¬ 0@“Yi¥•‚ /¼Pï“Ú/©ß9Ú.áç¤q“ÔÖiË—Æßþö7åÏK/½¤õã¹M›6Á{dǤ€T°ñÆ+ès-[¶ è'oxïÇ‹~HøC§Ýrí³¨±`¶ûÔÚðdhwÞy§f΀û÷¿ÿ­]$$Íóºë®Sp™,Øk¯½‚-¶ØB:él°ÁÁqǧ صk×`›m¶ D" ÄiN;h˜‘7y7Ýt“æýàƒÌöÛo¿@f‡¦À̾}ûjYx>å”S™­ë<“'‘òˆä§ »Øb‹'t’†%  °­¼òÊZwò§þ3õæYÄomÌ#Fh<Úâ‹/ˆ$ª §CˆÔÀ#À0„ÈÉ%— DZDÒ öÜsÏ`‘E Dª Â`–TV‘t²øç?ÿ©iþç?ÿÑö€!ÀñüóÏ×{þ <8¸ÿþû3ÏõÝ”#˜Ñ®¼òÊ€‰“ ˆç!C†h;²= À˜ŒùyÚvÛmƒvØ!HâíæÓ£Mî¸ãmï80‹k?À,®ßRžh»„ŸãÆM!Ê”†h1*8¬¹æšÁSO=¥ý>Ca0»âŠ+´{ÁÐêСCÈA€Ûí·ß®÷iþ”Ì^~ùe-‹¨vÚ0HƒŸ†bPZH×\s~ëÙ³g°ë®»ê=’ ™™ŒÁ‰$Çä'¾—B|öÙgÇJf07LH ÌÐÌz#à•õJÔ¦Œ­„"åe¾c|ÄÆQyY¿~ýœH ú{õÕWH‡Uˆœ~ÑOm2›gÊG?þx'jŽ~;v¬óüñy.±ÄþÖ Ð;Ï7^Â;Òð.;õ‚¼ȇI*+é³Ò$‚cÅŠ«tÂ,[‘O§Z®aþÂ{Ú\$­^˜¿¢¾*ÿeÒuüdbu{챇¾‹ã6úªL4v-³Ì2™ûèMRûÕ×o£iùç¸q“ÔÖiË”ù‹¹Gë þäǺ/W@D«r2Q;Ñ`œLìáϽ/˜‰Þ›ª`€—Ø¥œÌŠNÔ*'’ˆÆ{ì±ÇÜ AƒÔHÏ¢{ðDÅÒÎGŒâž’VˆÂFvŒ¢[gÀ…øáï¢^e}óéG¯ :¬ØÔÈ À²©ú¼óÎÓ t™õH= ¦.ˆÏnܸqNÔ97jÔ¨: ž«häÂeÇ€ E=©¬Zá+Ÿ,\ˆ´ëån¸!GnÕñ*-\pA'Z‚¶«ký3‰gbjÈê—p,mߌ¶_¸msõÛ¸Öˆ7…(wR”‡1ÌXe>ùä“u,ZNÆtÛ¶mUxaÁI¤Ùh‚=§C ‚eç´Ã шR7 3B"æënxV=V_}u•âD„WäG 8Xõƒ§[[l‰`®ØÌtµFЍìÄÈ /*ª¦C‡£¿Ûe—]ôËÉìÆg³4~& ³q‘äF­i>úè£*9õïß߉ñ׉ªíÄîçdÑAó;™ä‘Xeeee³±+„b ÖZV‰EUuHk¯½¶–×ÿI*+€|ÐA¹«®ºJË- '*yPvèî»ïÖ Ä§%*Œ9r¤¬ú+íO<¡ýIJâR-+¢ôGVÂÅ6êĦ˧¤öKê·Ñv ?Ç›B”;) ê-æ'‹î‘GÑq%¼:uê¤ý ÞˆMVƒø1€ôÇÀ8Í›Tq ýiìÆnH ¦:1«œFD)¤Ú¬ô…üa…‘wâæà_£±!ÉLªv%¤j"€HºBIV>Då̲™­¿þúš¶QO3a1 _|ñÅúÍÛ̈K:èêØë¼!²¾ÕLŒøØ[ˆËÆ÷¡C‡ê³4¨æƒÍPf¢@N¿³AxhlmÔ{ƒ€QàñDÞh£²lh Y°€¤céª-é¶Ï?V´x‡qŠ++ßÎ9çµMR~”ÉÛ|°°á©ÒW3å¨ ]öõ¹ôÒKƒ° "øé >°N»°`ã)‰gØÍè³ðŸ%VN½ÍŒÅ ßÿ’Ú/©ßR†h»„Ÿ“ÆM!Ê—F=tAŠ}ˆUOx ½.ø1)’£ò…>M{7} Þ@}úôÑxžOú2áOQòýÄ2®7ž‡ ZëJ€%VO´€#Яf†ÃÑ) Òyë­·2ƒ”0Ìø†AÒ¯¨†ã×wÏb «|IqYÅÄê‰†Ý ¬ÒÒy‹>Íè5©¬”…A/ Iå¶Ðк`YØPïÓHâ ´ m*;12`æãrMj¿¤~N#î>iÜä[nòLJ#®Lá÷”±ë'M¼ D­ÎuVZ2/n’À,ö<3AÙ‚*b<¢±¬ìÕI­ø¢ÕyÏ ÔѨJ•3 ¼$˸Ï.jl ù +•ŽÃJ2 eE‰Ú¹²>Öó€m‡_}”TVbݾ$jê;ýuI®c>°NÝ“x†Å/ %µ_}ý6.ý¤qSˆr'¥W¦ð{Ê»ØÐøyÂöX*)˜aîpúé§;Y¢mtù±A‰#^ø€ÆÓ\Dƒ°"šÖ œ+¦|GÙ©ƒQq8€ýT¤y]¡5–ÄíEí§ÑøIí—Ôo£éë9®ÜÅʯ(éF%º†ÚÌ¢ñóyF…ÂC-|opâĪZHVrƒwÜQ«ƒ-{.£„jÊ7DðJ¡JW3£|Æ®‰ß¾ˆìŒ`g‹,úDƒUôóq öö*üÃøå¢rée£f&¡±Ø°œl×ÑUHñ´W× fK±_8q -ØfÔ¤2”âj {Ô \:p“`¥4J¬„²_Íï~·çâr@v81N;™PÕ?ŠUhÞq: «‰|«ÂÝÈûK²Ïê{.ª„þ˜»ä¹jSäw²j¢va¨ÌîÐCÕNƒJŠïKמPW±oàC&³ˆ­ñ€4·I#mXŸq¢°*+FMut° â?Dºa" Ù$ž–P=pAåI“éâÿ†ïœöÓfSÓáà«§•ô#Ыÿú׿ª)ƒƒ¸?í´Ó”·ØbñôD»£žÒ½ƒ7ß|›¸1$Àаá|éSäžðØ\`€«›ëÉ—2„‰ •¸ q‡÷Ç4y0AS6ò‰æ.KAï£"eS©™¨•âE-Žî£do%û5!–ŠYæe %q6_ Hè7\;ÒnÜnHX§ØÍ²~£=«¨Þm• ˆMòl@–FÓò²)Þ¯Ä^ýõúž•Ç(ùtÙ+êïãòÁÙ&"~;Z¯:DÓ-æs¥©™aד°kê?í…[A”Øû*ÎϺuGµœ@$-®âÛ¨Q|›¥9€¡!aIœ•h±Ÿªk î5²¨9€­{¸í°çÔ÷G¶Å ài¹P#©?ÆœìJȬ¾ân„;P.òe¤?Ö—*)e 1þëþcâ‚’Ô̲̘I&Øò%V=Ø%ÀÖ¤žÁƒëj(RGüHçÒ>³ Çí >3;°à€´BÒ¸Y‡å¥ ‹‡¼0ÑÉò»:¿âí/{H³Ž;a6gÆ#ofZïlŠg4³9ÞÏ|K³}Ê×%zËC|ÝÔQ˜HrâƒJÌÌFñÀIÇWˆf¶Ûp¥­¡ð œ¾?l³c§ Ihô3ú Ò ý§P¶éybU™£rئ‡TOß@ÂDZ›£®ˆï)mX´L2xè3n0ÞÓ'=ÑO<òHí Œv¡°ˆ­n„Úñ€#:c 1—iáDθ% åc±Nü%³´¨ÆäY_œ²³°˜œT`ö̱´íWBW\qE'ÒŠº{øxxq³r$3ƒv<™•ÔÝuMœRµQ–4ÙöC9ñþ˜PeÃêOz9-DA™N‡Pð”fWîìl,åʃ´îºë.'NŠn©¥–Òxö³{œQ<0gÐ ú’œèàÄé5Km‹ítÂbÇ…ßs)βN4†¬þÈ®&b¿ …=Œ´“ƒIÚ°l“c Ë˜`gLx;®GâË©^÷€DXú.ö1ìÐŒÀœ²4†âò4il‹˜c4Æ õ‰­1Y¥ŽSR׌¸R±ŸY‰ØG}tV0@ãCq²Ê©s6ö†”ÄE"òij'¶J$mÜN–íü¯FfXl¹|ŠÂËùÌJØ DÐÙ(ìFÐ4–råAZ̸ØéØï `­T7_‡¦º²Ç¢?úmM¾,ì…D»ù曵?0‰„‰Âý1Í >~Ú°ì©e«ž8âê$]@ ÷¿]þ(+é*mÏã©1—‡?èíà–[nÉ$Í^k4‹bRYHfTøœ~­0R3 "?;Dѽ3_ìVœ…%'šêéÔ›™·eù²ñ=LØ1 Iäó aìx~¡ZÀ#l‡FñàÔs9µWò @Ú#?®˜8(d•VÁ^+û‚¬Pê3ïA9íUû*“¬P«ýI% ¥‘Æ|:„E½L9Á…± «ò:fd½öúE\šØ±X",õBÓ‘ ã™1B\\)é0qFX`HʃE69qWyêUXÊ(^±å ç•×}t¹´©\3|9 ôôszÆNlz¢†Ø}´¢_ëÛ,›T<üE½ DRJ –÷7‘f•/¸ 4UškFÑv2ÀõÈsúf”D:Ò£Üé¯l .1H3Ùq,¸€oæ9é†MÞÔI¤¹¤`y}c¼ˆ ®ùp_(ÍH]>rý€²‘Ì<"3«°²”Dèþ¥Þ§XßfÙ¤òb_Á&XlbägT8ÐvI‹6H)Hr¥¦èÀ~—–P£Ã‹_iã5$ãm«”T66³RVÚò2ªfÕצV#ã@MrÀÀ¬&›Ý*m¨>˜U_›ZŒ5ɳšlv«´q ú8»šõ}ª¾ª[ Í$‹Mrú‚úí;K¿<9=^+\Ê:`ÆÒ¾w¾ ´{ã@}XuÕUÕ3½¾pý.Ç;emekl:¯r9€#:øäÿ=b¸&Ípf ¿°{ã€qÀ8P˜h6³ l5+²qÀ8P—fuyboŒÆ ä€Y6šÙ8`¨Ë³º<±7Æã@ràÿ…Ûç>µÕIEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1Time__inherit__graph.png000644 000765 000024 00000023772 13515046516 026542 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÀÓמ2sRGB®Îé'´IDATxí] üMÕö_Æ’$DR“‘(¤D!¯ž!Cxˆž¥§—¡ˆzMIJ¼Gÿ4(Cá‘Dh’!ÊP"s!dØÿõ]Þ>ß½÷Üßýý~÷üî=¿ßZŸÏ½çœ=ŸïÞkïµÖÞ÷®ƘwHIȦä`0ÙôÝõµÊ©(Ùe€ìÜûúîºèÈÞä}ýŸ~ú‰>ÿüóÐ`}V@©R¥¨N:)ßJ°›Þyç(ÅúQ ²Ü¸ãŽ;ÜC]îÃVËkoõª»îº‹þøã°÷P%8  ÈN(d§ÞÖw C@  ÈN(d§ÞÖw C@  ÈNxZ‚ÂäÉ“éË/¿¤—^zÉ÷&/_¾œ† B+W®¤ãÇSÅŠ©_¿~Ô¤Ißëö«‚§žzJŠîß¿X[·n¥{ï½—^ýuºè¢‹ÂâÓ°yófºÿþû=³^sÍ5ôä“OzÆÇ;"ð+À† è³Ï>‹7.aå͘1ƒêÕ«G;vì ¾}ûÒÃ?L'Nœ ¦M›ÒÛo¿–>(ëׯ§uëÖElþJÿýïé÷ߟžÀ³Ï>›Ê–-ë|æÍ›G{öìqžK”(‘žbÓŸ'tgÀn„…†{=;vÌlٲŜm¸£ Ú r?=zÔ\|ñÅæúë¯O‘ï\¥JsÙe—Ùb$ÿ7ß|cfÍše¶oßî„§§ÔÚŠBÑN`…ºl›޼èÐÆÍÎ;åÞ+}ûöí ÛÈÍþýûÍüùóÍ·ß~+éñµjÕ*Ù Û´i“ŒÑ'"ÊíÿHIòæÍk )JÂx’ñŒKKDÛ¶mM¤0 -$­ ðÅ_H 6tv1Pn¾ùfç™·ŸeP^wÝu¦AƒN•»wï6¹rå2cÆŒ‘޼ä’K̹çžkräÈaxÛÚ` ‚-Zd .lræÌ)ékÖ¬iòçÏ/qn@gVªTÉœþùÀò´`þö·¿IºéÓ§Ëó 7ÜàÄ!-„ÎGú… †=ó,(q}ô‘Ĺ¿xI73gΆÁ Âû¡¶½ äiÁ)µ¶~ú駦H‘"欳ΒO¡B…?Tdm«V­GM´ôÀìòË/7 ôÀ ]»vò>¶,Ë(ëœsÎ1yòä<7n,Ž{†Ÿ2eŠiÔ¨‘ùç?ÿiƒÃ®©1¯´2–0.ÁÜé%/ˆ›T°`A†N‹/çŠÞ|óM9[Ä3 uèи3ˆ¾,YÓ¦M#,Ô¦M‘­y–%,»ÈW¬X1zå•WDÌèܹ3ñ,O<³Dž_~ùEòGúÂ’}€gmš0a‚|x€:IK–,I¼Jw*ñjD=ö˜Ä1ó‰hƒ+ÈýŒ´ «®ºJ®î/<Ô¼ysb¦¥ÁƒÞr.3?ž†JŸ|ò‰“%œlb¯¶¢ÍuëÖ%^Ñè·ß~£Ê•+“•åm^^} ø¶lÙRÞ1Zúï¿ÿžž{î9Á:ú yÝ„4]»v¥îÝ»¯Âœyõ‘÷s§ƒ8õÐCÚŽôÐx𹓤éž”Š-J:u’2ûôé#u§©h‰C9*½+À²eˤ(,»\ŸÁlÂ’‰gTÄÌcÇŽ•¸›nºÉðà‘ûG}Ô°|hž~úi™Å°lâà ®äï½÷$¾üqÏàÊ+¯tÒáâ f;«ÚUq¨+Mj4räHi3^Ô¤“ìŠcb5Â*eW€XpJ­­q N¢¬·ÞzË\qņõ©ÒÎÚï¿ÿ¾m‚ˆD^é±”)SÆI Q «bg5Á ðì³Ï ÌÌ"zAübæ""+Ê+=úš™Í¼öÚkÒ÷NÁ7©­6D[ž͵×^ëÔ1qâDƒ•&ò}(^¼¸ðYîÜg KåÊ•“gÌŒ n$ñ²-JãÔ©SeÁ̈U+T«V0³ò !Q$ž_\®ø²³´àºáïz"™=슃ˆK/½Ô‰¿ð Es°Š±(*V1ÌöXë_Ô­[7Âj/b1zôè!ÒÄìÙ³iíÚµÔ¥KÂJ—Š›àb! r–³‰gbyŸZ´h!ÙËË"ÞðìB8º #)ˆ•9¹â‹•mç>ôæçŸv‚0(¿þúë ãŽGGEc&[Dž©À‡ÏŒ"n±l,ÌÆF' +ë2(ÜuÄŠ ‰ÔV03& ˜'!fáèz­Zµœ:CobIs§%^ueP¹ÛŒ8Xg€D„(2/eAvÆŒ‹z±šðžé!¯¶²…Jt$\?øà‚‰õyQjé±ÒB_ÃÁ¼Ëb…¬jîòðnXiÐ&˜-ÙÊ%¸Î™3‡ÐO½zõ"¿dO«pÏž=…ipVé%Ìô÷Üs”uß}÷Qùòå‰E?© ÏùòåKoÑgò…ÊOéÕXq•¢` å’EæE+iò ¹Öäd¤¹Ó,¡a‚\ȳ®˜*+ diäáTä@·ˆÅ)ÆZ4lZȲÆ “8+W[’E5Ñ?¬¹5šÀÇöÇ‚¶ÀúÂGÊÇ϶"‹ÛvÂJÙdu€XpJ­­h0°ôÁ<‰€+Þx£~/Â{ðÆ—W´éÝ»·è÷aþN/yéÍSPZ Eæ `Á~Jd°1ƒ‰B Š: …AgÀ Å å`?Âm6³ƒ q<Ë›ÔZw¹î{tï˃ÛþnÓ`ÿ¦Qì`_!=K[±«”S<˜Ïk0"Qjé±§};!8‡ÜÀ¨fŽÔG!IÇXU'ƒëýòb€L= ñâã?qÊ[(A潂Ð`y†¨É )1Êq+¡iBåÐøhÏXîa’õ"(ýPàãE^m…AK£Qjéy?†Ø‚­‰ƒb[»víTÓ¹ðJè~LÓ½‘Ó”) ‰3•`ßçeTìÒwß}wš™2)ãHŠäC(K‘Ök•Š”&Y‚ÔÖdÁ,½íûc,(‡­[·³ez Õ|Š@²!` …›2Ý ä®\ïD#  è8þç&Y¢›’ë÷Ô )ù‹@Aó#•6KimÎôŸ•ñ·…Y§t>™Kv>Å[…š˜¬”‰­W¯þáðT2[FøW¾ö]Jl#‡S‚Sp‡>ø‹ÀôRD¿ï ºå ¢"i3-úÛ°ìSºê‰ê뽟Ÿü9¸ ¶¾™¨Vdûz•5¶M!Ê™‡ÍÓÌoðõT¢Z’­ëUHD÷c°oý?¢Ó'ÎÔ~|?Ñ/Ÿ$¢%Ù¾Ne€D _aÐ[ÂJ°B)ÓPÈtȹBÌþ9]h¬ÛØì|úx"Z“­ëTÈìîÇ ß>•{ȯ¸Ná_À„ÿà&³›—ÝêSÈìÿy{(åàa‹ŠA¡°øý¬ à7¡åo™œRü±ñ†W„Ÿ?`æ8dCôš (dÈN'#ÚÁ+@¨øc ü§éöI¯™€€2@&€ìTñ#ÿ×N4{?þ@ã‡INr½ñeÿ1þ³ˆ?шäNb"Ý-•ÆÅe€8‚µ¨ãüoxØìÂÿ$åÌëñáýì oד¸Q±Œc¤ËÇRµ¨pŽî"ªôHÊð_×óy ŸøOw§ ÏS å³>ù†€žõ Ú ^û$o€½Et[úÿ7'†Z4ITŠŽFe}”²~ëFA@ 8•õPÈú}¬oe€(àhTÖG@ ë÷±¾aÔ ߣ±ë¥£;ˆ.là{UZAd”"㢡Ù²IGëkFF@ 2.šMг@îhö´“ÂwZè«À™Ü5*4JŸÿ‡€2@€‡ÙÁßNị\;oÄrÄŸ 7a¨Iò°{'b?Ë÷¥ðˆ §r–à¥ïàp%Ù¥“ÜÑ ˜ŽF¬'M8´v»eEð ÷¨ðÌÉå)œï¥Åë¥mW2]UH¦ÞˆÐÌâì [|ÃCcZé›4i"YàI¾Fâ¾ Þuàùž1èÙÉ6Á¼ÅƒàqžÙK—.-nIÙé =óÌ3çþb'æâµqìs͘{e€DvŽB/ÿ{Ĭ[·Nܯ–,Y’à„34;z‹˜6Ö@Ìèpé ßÁp² wUÿû߉߉W ønÁç/\ÍΜ9SD(öÐNì’¾úê«UUªTI\À"=ü:ó¿/‹/e¬ A!e€DöÔ¡ü+±…N ®À_/Âa»yEwÒ¤ITµjU'mzn öÀ2êÕ¯_Ÿà¼~!ÞÀ¹õ–-[¤Ø)S¦ˆÇ{0ü2Ã) œš³»ÚÕžwÞy„•bü£¼;ï¼SÄ«'žxB|>§È„ª'Q§°ûU™í!r@©Å,O‚Øc ž4¡(pæ×gpȾ"$šÝ¥¬H–0ؽ Bhܸ±|àñ¯ý+±ï_Ñ?"‰N¶Ìd¸ê ½ð¿6T«VMÄvN·Ür‹ÌÊEØWn\Zé5€C ‡¸…"“ý°óì¨ï—,Y"Ì ±îp±²ôèÑ#´è¤{VH¢.b(¦«V­"(˜PL{öì) +®°égµhÑ‚æÏŸOS§N¥}ûö‰˜ó—¿ü…8¢zvZNO?ý´(Â7Üpƒ0 D¸;vÐ /¼ íO‘! TJÂNA“jÖ¬)Ÿ_|‘Þ~ûm‚‚úŸÿü'¢5é#Íî³fJ÷=Ò#ÜÆÙg\A=öA oÕª•<ÃY5:ü,» &×±cÇR—.]›reÊ”qGâ^÷ÙMiüQÔ7ÈÊO³e€à÷¡¾APÈxš5ø($²å÷½Ù‚l_·2@"‡€ü€½Æ(% e€„A¯'ÊÉÐ Ú†„!  0èµâd@@ zAÛ0”½Vœ ($C/h†€‡Nô\±þ ‘èKÝÊ ïm@"P(‘èkÝ G@ á]  H$ʉD_ëN8Ê ïm@"PH$úZwÂPHxh‰@Üÿ«uëÖ‰|Ÿ@Õ]ºàAº0ÿï´|çEjw"ûàƒRݺuãÖ„¸®ø{íwß}7ÿ 73PÐößÎÓÁŸüðg½Û·oOCŽÔ“Æ}@•øklüG¼’"O¼ü£e¤Ž¸®iˆæU€2@"P×:“e€¤é mH"PHêZgÒ ­`ëÖ­Ô´iSúùgþ‹rŸ ®HáþN§ *DUªT×Cp2TZºt)5jÔȳùÝ»wï6ž ’ Â+P¼WLMÀ „ëOxK÷“àD¶køÛ‚>uრžá ¦ã ÒÞ½{iÑ¢EžMGüœ%3%tÀì‡YøÔ©Sâ£vÍš5‚-ÃÿÔŠ+èĉ†Á—=nÚ¿¿¸ð±a;wî”…«›PÞêÕ«é»ï¾“`Ô oèn³õvŽt_|ñEŠ4p.ö¢Ÿ|ò‰\ÝùgÛŠp÷óàÁƒeodÙ²e4hÐ êÖ­›x‡/.ضñž–àftöìÙôõ×_;nK‡p¸.=tè}öÙgR>Âñ®‹/¦ƒâQ(µ¶"ÊC¾Pæ‡K$ÔxðlÉ+=âñÞpê÷ù矋kT›'ôzòäI鸃EŸ'ñæU܈ÍžÑb*“™¤oذ¡\‘÷úë¯7ì¢Óy®S§ŽáÁiFŒaؕٵk—S6/¿¦Aƒ†Á4ìV԰ذ§EÃ>pÍ«¯¾*é˜I ;ž–òŸ½É=2ó¯ÜoÚ´ÉLŸ>]îÙÛ¡É›7¯Ü³ËOÃL'å Œgq“+W.§ž÷Þ{Ïi ûÐ2ìu=â3;¢6,8qö†Ÿ™1c†áA'AÌ(òŽì'ذS;©NâØU‘¶mì·×ð~‹¤n¨ƒ¬¤ÖVf"S«V-y?äVÿú׿l“L¹råÌ­·ÞjòçÏoØ[¤‰–ÞbV£F §ÈÿÃ?Hy¸gçzr¿aÃ<ÑVÔY¼xqƒþO !»MK–TÓb–‰¥—Ø!³ ‚áÇ;ƒgyY†ŠÁ÷òË/K{y–“çñãÇö¢(ù0XÙ§®yôÑG {97hÏC=d08YäÎl×®¤õb€»îºË``‚)Ø‘´éСƒÔ‡AÅþs ¯æÈ‘#æŽ;î0EŠ1<[J<{F7Ó¦Ms°´Ïh7Þᥗ^râ"ݰŸ]I7qâD‰FýÅŠ3÷Þ{¯<ƒ0hx–5ì.Õ°çvÃÞ Ëá†W.yÇ~ýúIÚhmÅD<Ö¯_/iÙ‘µagÙ‚ 0h‘ŸÝœ æÑÒ[`o’†W"3oÞ<Á¬M›6R¶›À¼W_}µÔ |Á\—^z©ô‘$Žá+Ë2‹òú7n”A0yòdyf]žíÀjÒ¤‰¹ñÆ%nܸq†´^úÍW_}%3PÛ¶m¥0@Á Ò¥K„[bÑJÊôb;0ŒÄòºdÅ `™ÝcXl‘r0 £+Ø’.5èÓ§aåXV3[;š6åË——G0À#ˆmÞD\“‚b}qV̨eË–ôøã+bÃG^t$ßaP²Ü,3#f&ø±ÅŠÀrµ¤ÕhàÀQ«CÙ°¨À4 Se³fÍœôXeXL“:räHYM`×±¸Dï¿ÿ¾“ÖýŒŽ‡•‰u±ààD#ÚÄú uêÔ‰Xé¥Ûn»M,Khê‡UÖ&ßœ2ÓrãÕVXÄ0)`a=ƒ†*ź-XîzbI&‚ žìçÌ™Öf˜B+W®L£Gˬlxo`”p_Ã^òVzÂÓ«CáÁzÀà;Ö6ÅÉ3dMK °„õîÝÛ‰R ë òB1„òúÜsÏI<”PkùA<,9¸B€Õ÷n+M y“E,G9„\]½zuQ¼‘ 6G:mˆfB"¼ô äÅ)ÈËxGKPbaý²4Ð]ܺ̋/¾h“šk®¹&…N+˜•Ý£µõ£>|P?°b†eÛ긲xâÔ-=,X(£^½zÎ{3è` wY0d0#8é Ó¤¦?9øß ú$KYB_0–g : ŽHÊ Á,ê&0&?žye@#?ÀMV¡ã™PÒ²â& *€¥;RÝî´^÷h˜mùòåÎ M ¥#´þÐtÑžSk+ÞÌÏ{R ¬2,2yKz`k'2¯‚PïÇÞ0¸O+ùÁÚ †Ø0aÂ} l…R¤0¤ìlw$yv ÍölÓ†EpŽ1à“‚®S¶lÙ¨YÙ´JøÄƒ¼Ú ñЊn¨:>^KzžÑ½²;á(Ç­`; ¼ ”¹ƒœ÷Ò ‹Ä6iÑ!Ü…`бø#Ìâ·÷ˆ‹×À´eúu R[ý ÖrµàÜLF V$%%–ce+?4Ü>G;óbÓ$Ë5HmM4fb€DƒåU?¬o½õ–W4ñN©X•þýï‹•Ê3¡Fd:2+„²=>±pÂò· ãóIr &E¥$C ­šx´ôi5ƒF++™ãp8Ï‹`ä.–ó:6 oÉY\yçÓàhîaö…U ïd‹…(´| Á™œCò¢Ð<^é‚î‡HW€4LH8ÎŒy¸·þcÉÎfOÂ1ì€BÁ1>ñ*–)Xcxƒøœ“XHPvýúõ£Õo¼ñ†äåS¯T¦LÙLÃïB åôìÙ“P—Rì(¤‚vG%fCœ)Â.&ÎÐd”p>Gø¬œËÇïptƒ÷DçŸÄ{Ä›eÂt8Äû²“jwoÝmÀo pŠ7Ȉ7ìälv”•¢#  à,)8|ÇǪåÌ ß•£ø Â3J|2RÎÈà+ ê²Ï,&ÉÑ ¡ÀñÍ›7ËW`Ât°ŽOuÊQ0(V>ã/åã¼Î4)EF@­@‘q!>Z,ëp6ç‰'žåÖ#iº‚c9kOQÚC¶"œ¢ô¢ *Èà2dá Ÿ÷ÆHí WyY=\À£‡±ãÌ¿9ÁgçÎ ³l´ÁçQTÄàXNÀBoàc qˆ´"åàå"–‰@´ƒY&WÜcõ€n "ã"Ê&NwBq…Žc8š ñÂ}êÓ#{\‚qÇqB¿KÀÑiˆH8qJ8½ Å 6ÿ ˆî¹çÑ)øÇDò.¡éõù Ê©Œˆ*8¶‹cÐ8ã-R£´œÝTVüh…9EcÇŽ%ü8 k~dJP‚ÑVüîmE›q4\):qõÉ6fùEf£¬ü縰Ødæ9vüC,@`÷/½Ü]›Ùmr×Y÷ø äI“ˆ}Ç­JÕÒef~4&S÷Ï:#59³Û© A S(ˆ½¦mŽÊqƒR "ÊAì5msÜPˆ”é+hÿþÔ¡–¾’5W,ø¢óoZSü½G, ÉŽivîüV®Ü˶ýèÿU”±‰ôÎ~'÷…øß "µ_ÃB(X°.ÿÏQEÞ¹þßþø[wÞgÊ™²»Š ÖÓÑ£'ÝArŸ;wQ†Ã"4ÀW”|…7¼ð©S—³øûÉ“§é£ÖÒ‘#Áõþ¶ÉÞÉßæÀ¶ððáãü«²uü3Ç”â}!˜DçÌ9ã*Ö†éÕ_”üÅ7Eés欻Š@×vÒ±B(eÊ™‡5ÿAîrÏ¿_G3°,Y²‰ô„hæuŠ2@&a½oßaþ[ö3›]yóææ¿; ÿäÉ“›w„OÓÌ™_gR«´š¸†S8½ؽûõêÕ(E‚uëvð÷ìg7º%E‚ÎN‘NüC ®ÿ á_3³fÉÇϓƒp‹ý3k¾`ÞJE t’6Ñ?”üÃVKÊè$m¢(ø‡­–”ÐIÚDÿPð[-9( “´‰þ!  à¶ZrP@'iýC@À?lµä   €NÒ&ú‡€2€ØjÉ@@ ¤Môeÿ°Õ’€€2@:I›èÊþa«%e€t’6Ñ?”üÃVKÊè$m¢(ø‡­–”ÐIÚDÿPð[-9( “´‰þ!  à¶ZrP@'iýC@À?lµä   €NÒ&ú‡€2€ØjÉ@@ ¤Môeÿ°Õ’€€2@:I›èÊþa«%e€t’6Ñ?”üÃVKp‘´víZzòÉ'gÚšxàÀYì;/•*u(mºQ£FÔ£G¤oi œäíÞ½›]Œ¾KuëÖe/ëhrÌŸ7/¿^–¢Õ«WÓyçˆw ÔhêÛ·/,X0ÀfçFþãÿÌ뫘®Ò†ú€2€¨j™A@ 0]¥ õe?PÕ2ƒ@ ”à  :oÞêÕ,Éüñíß¿ŸŠ-Ê6öÝtôèQºì²ËèôéÓ´mÛ6Büå—_.{ ¿üò åË—/…yuÏž=vî¹ç l7n$ (”´–Pî÷ßO_|1uÖY2‹/n£åzäÈ2ÆÈ`Ūû8ÒƒPæ¡C‡èüóϧíÛ·ÓáÇ©\¹r”'O‰ÇÚš3gNi+ÊÁ3â;wîì¤yê©§hóæÍ)V´ iA¿ýö›¼;LÈx0OáÂ…éØ±c´iÓ&ºà‚ ¨D‰Ny¸nÀïœ?þqYé!K2C¯^½¨Zµj´jÕ*é¯*UªP^ÞuÂl ºâŠ+häÈ‘4dÈ\#FŒp̤mÛ¶¥û￟§ÿþô믿Ê`Á@yá…¨téÒôÍ7ßЀx'÷åÈ‘ƒÊ–-+ƒxΜ9RŽýB¹tFþøc*_¾¼àñ+teË–I|VûÊ’"í$ÌØ ,å Ddj ôÚµk‹8P¿~}™ Ú€À@°ŠŒ?^˜qv¶‡e Ì‹.ºè¢Q„¶ D¸4âPg¼Ébrê9çœsªˆý¢Ÿ%èB3–U®YzˆµÓ aÖ…%‡î@Ë—/§Ž;ŠXYJ5Ä( ·ÒΠòµwï^'Ä*žîAï.¢Z4fr JãM¬X@ʦ·ˆo˜²"eiˆµÃ®»î:Yæ'L˜  e4{öl=z4A~†+ ĈX9&Ož,–(ÝÐ ¼J0äjÌ쯿þºèV CÔ Ä/(éuêÔqŠã}úé§ò ]bÔ¨Q´cÇ'>Þ7Àm€‚Œö⡨£}Y‘²´”Z‡ÙY3”Ó[o½ÕÉËÇСC©M›6b)‚…¦OŸ>":ôë×Oâš7o.âAÅŠiË–-N^[6 aàÂä q¢{÷îT¹reZ²d‰¤Ç€F9Ð ŽuéÒÅ)«D’n¸AJ*î­8‡„îºlF„¡<oïñŒûÐgIÈ_íÛ·ãÀ Aƒ$&×nݺ‰Õ̦ÉJ×@ü fÁ‚¢DÂrá×qh(¸˜ù0»éÔ©S²«[¤H‘0[9ììØô‚R‹ƒ<Ô k ðàÁƒe{ÖÎÀìŠÕÁîGXñÊ݆DÜc¢Ú[ @45Ç¡«W¯žÂš•¦21q¶^€3f_Ø×!îÜwß}aÐCa¼òÊ+À•j±ÊÁ¦’…*Ê^é2+ü /$|²:e{€|•KãÆÓÝß°ª@ ¥R¥JyI€Q©R¥Ð,úœ‰¨”‰`g—ª‚$©(»ŒJ}ψ(D„E³ ÊÙ¥§õ=#"(%øÙgŸ{|Ä7ÑÀ¤Agˆ` ‚`ŽÃIF¥` pÓM7É‰Ó ´6V  ©m &ª³ß´ÕqB@ N@j1ÁD@ ˜ý¦­ŽÊqR‹ &ÿ³Z‚§›ÂIEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1TypeLookupFailed.html000755 000765 000024 00000032730 13515046516 026040 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::TypeLookupFailed Class Reference
MySQL++  3.2.5
mysqlpp::TypeLookupFailed Class Reference

Thrown from the C++ to SQL data type conversion routine when it can't figure out how to map the type. More...

#include <exceptions.h>

Inheritance diagram for mysqlpp::TypeLookupFailed:
Collaboration diagram for mysqlpp::TypeLookupFailed:

Public Member Functions

 TypeLookupFailed (const std::string &w)
 Create exception object.
 
- Public Member Functions inherited from mysqlpp::Exception
 Exception (const Exception &e) MAY_THROW()
 Create exception object as copy of another.
 
Exceptionoperator= (const Exception &rhs) throw ()
 Assign another exception object's contents to this one.
 
 ~Exception () throw ()
 Destroy exception object.
 
virtual const char * what () const throw ()
 Returns explanation of why exception was thrown.
 

Additional Inherited Members

- Protected Member Functions inherited from mysqlpp::Exception
 Exception (const char *w="") throw ()
 Create exception object.
 
 Exception (const std::string &w) throw ()
 Create exception object.
 
- Protected Attributes inherited from mysqlpp::Exception
std::string what_
 explanation of why exception was thrown
 

Detailed Description

Thrown from the C++ to SQL data type conversion routine when it can't figure out how to map the type.

This exception is not optional. The only alternatives when this happens are equally drastic: basically, either iterate past the end of an array (crashing the program) or call assert() to crash the program nicely. At least this way you have some control over how your program ends. You can even ignore the error and keep on going: this typically happens when building a SQL query, so you can handle it just the same as if the subsequent query execution failed.


The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1NoSchemaOption.html000755 000765 000024 00000030601 13515046516 025501 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::NoSchemaOption Class Reference
MySQL++  3.2.5
mysqlpp::NoSchemaOption Class Reference

Disable db.tbl.col syntax in queries. More...

#include <options.h>

Inheritance diagram for mysqlpp::NoSchemaOption:
Collaboration diagram for mysqlpp::NoSchemaOption:

Additional Inherited Members

- Public Types inherited from mysqlpp::DataOption< T >
typedef T ArgType
 Alias for template param.
 
- Public Types inherited from mysqlpp::Option
enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 
- Public Member Functions inherited from mysqlpp::Option
virtual ~Option ()
 Destroy object.
 
virtual Error set (DBDriver *dbd)=0
 Apply option.
 
- Protected Member Functions inherited from mysqlpp::DataOption< T >
 DataOption (const T &arg)
 Construct object.
 
- Protected Attributes inherited from mysqlpp::DataOption< T >
arg_
 The argument value.
 

Detailed Description

Disable db.tbl.col syntax in queries.


The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1IgnoreSpaceOption__coll__graph.png000644 000765 000024 00000021253 13515046516 030513 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÌ·^DZðsRGB®Îé"eIDATxí] ˜Å~{pß÷È„;1!€"D@ D%$‚ÜD1"‚Cb€åR¹ƒ²ÜÇrß÷}Ÿ ú_¬¦gvfgzééÞ÷¾o¶»«ª«^ýUÕ{¯{f# ØF"‚€ nD(ÂI))eA€®D ‚€ t„0IÇJJ $„‘I $èd”u´è–-[hÇŽŽê § *T ²e˦Låv× §ß òî»ï"8!b0dÈ7LAèxÙ5; Š*UªÐúõëí^3¤>(]º´ƒ­'¿iña’™Ü‘ФâÁ—®'!Lò1“;R1B˜T<øÒõä# „I>frG*F@“Bƒß¾}{š:uj Õî[íøñã©^½z”7o^*Q¢5iÒ„/^ì[(‘«k×®ÑåË—ÍmÚ´¡éÓ§›×rr!Ì=,l=[¶líÛ·ÏÖ:UÖ¥K9£££©ÿþÔ©S':pàÕ­[—ÆŒè–i¯¿þ:µnÝÚLnݺe^ËÉ=O›6­Q£F ®3Mš4FÆŒ3fpÞ¬Y³¸Žš5k(§&™Q®\9Ö .\ÈiK—.åò:t0òäÉÃçÍ›77òçÏo(ñµõÏÆù¾qãÆ‰µL"""¸lõêÕ¹ àöÁðùÀŸœ9sr9ôC‘Œó€1tE_tW;›‰UŸ`ç¸×MOú=»Ã`uSd ·ß~›WøÚµk³‰¢&]¼x‘š5kF_|ñ.\˜ž~úi›=&&†P^…WïÁƒó=Ë—/§ùóçÓÊ•+yGú€ØþW„£]»v¡Ù€‚mïÞ½táÂö7Ôħ+W®˜e *Äy»wïæ¨W¯^œ÷È#PÏž= GÈóÏ?O]»vås´W©R%J—._[ÿàý,¤[ÍÂ@m@ï-Zð޲jÕ*k¼ÃÌ›0aë„ööìÙC}úô1ËÅÅÅÑo¼Á» Êþðü;› ÊK/½Äi JÁ‚Ù±ÆDƒ?rèÐ!ª\¹2)3Êl£hÑ¢æ¹ÿÉ£>j&ÀíWáÜš=á…DÄ‚íjðoàO Œ–ä¶¡ûh%0µúiÐU pƒxÙñ4a@ФVÑF±Ys dÉœ938q‚Mš ÐùóçyW‰%„qóåËGÊÇñ©Þjþød¨ íP#Aˆ6³pnÍ_±b…OòI­ZµØ‡‰è/`ׯ_ßÌJnÊ?"ì‚Êÿ0ëX·nnIÅØ¬Àå'ž&LrÆfVeåd›!Vìx&H& Þ–ÆN3H›tÊ©fû!ÜÄLíã`Ž9’°U¬XÑTæü:4lØóvîÜÉf%üÈ”)S¨wïÞ|ލ˜rÐ™ìØ á'mß¾ÍÄI“&±ïƒ]QK°6Ð' í[E8ØtDykÖ¬á(|žT+Á¢á–žÜ(Y÷îÝ92¥û1|øpC­èúÒ˜8q"Gvt‚2³ D‚ÔD6”I¡“ D‰ÔJm(ÿ‡?j"( Qa[3„è›ò3Ì(™zmÝ6l—Cô >IBdIí œ§#XˆP©Ih(ÓÑP»¡œï%ëØ±£¡v7ÎÃ5Ñ92…{õG™ÆèÑ£Í2¡ÚP$äv«V­Ê÷%Sää>jÝY æærþ+R±*m¶êÄmQ2¬œ®ä&¹I0Q ”àVe³*(`(G:Ažò5 )2ÔóC™?&a¬A˜¯¿þÚÀ„BY«èɬžùj1Ôs kv’ÏQ·2å õ,'AX7)m¨g*ûÐA»oÝë„Ûãª/¥”S æà̪>qâ¢ÚYRdd„ŠÜ ¦92ÞgMr[ N €ú@UΞ½¢¢þÿÜܹ›¨.¹Ù~Äé·ÓªqÚ´µêm_ƒß]›6íçªKn¶!Œý˜Þwûö¦¸¸cLõ¥NŠ= Þˆ¾xßõÉö# „±Óû®qæÌõêmè(óþèèHš=[~KÚ$ N„0a0Z…˜˜µêÇ4îýˆL³˜˜X-Ç0@@ƒ6o>¢¾ÅyÖGõ–/›h{÷†þö¥Ïr‘baR ÚäUÇ®’6m4ð<&L7gpÕÛÊÎB•2­gÉ’žlìSù”)k˜(MšTóIDœE@ÞVvÿ€­·k7Qý®s:õ{h-æK¢cÈÛÊŽA/ »ña\9l¢´SaœB^Úu%BW›(íB§—v]‰€Æ•Ã&J;…€Æ)ä¥]W" „qå°‰ÒN! „q yiוa\9l¢´SaœB^Úu%BW›(íB§—v]‰€Æ•Ã&J;…€Æ)ä¥]W" „qå°‰ÒN! „q yiוa\9l¢´SaœB^Úu%BW›(íB§—v]‰€Æ•Ã&J;…€Æ)ä¥]W" „qå°‰ÒN! „q yiוa\9l¢´SaœB^Úu%BW›(íB§—v]‰€Æ•Ã&J;…€Æ)ä¥]W" „qå°‰ÒN! „q yiרÿïJ6l˜¡÷ä'Mš|Fš4y=Ù7ŒÙèÑ£]9ç”Ò—]ýOóæÍK |w®T©Të×_ÝÕ=w5a2eÊD/¿ü²« µ)ß¹sgWwY|WŸ(ÿ°ž;wŽnß¾ÍõoÚ´‰Ò§OO=öX‚¾™yñÄ­\ñ¤ÿÑGM²úŸ~ú)?9·Þk¨ oŒ7ޓՄ0žyæ#22ÒP“Ž}úô1o8p §åÌ™“ï«Q£†¡& ç—*UÊ:t(ŸïܹÓ(W®·§v#þüÆêÕ«9O­æÆã?ÎyY³f5ÿþûï›m(‚uêÔ1Ò¥Kg(’q¹Ï?ÿœó›7oÎu)2™åõÉÆ¹,ú2kÖ,>¯Y³¦¡HÂçÐçðáÃÆ›o¾Éº«¹lT¯^õ¹"/W•X»uëÆýB_µnjg3Ô"£ÕyTÄtõ“~ ÙÃ0-p¿„Q+°OíÚµ™eË–5.^¼È½T+µ¡üC™V|=qâDžlÊ?0V¬XÁç_~ù%çíÞ½ÛP+¸ñÆoðµ•0O<ñ„¡Vt#..ÎPþ‚ñ /0¹1±>ùäny>øÀÈ’%‹"A@L*Yí&½2#9¯J•*†2!ùÜÿ2­˜dýë_M¼òÊ+Ü>tE¿ZµjÅ·!ýÅ_äsY&TA”ýøã[·nÊ$äk—¿N®ÝN˜Tãèf ‚OÅŠI­ô¤vR+8ç}óÍ7Ô°aCR;_·mÛ–ÔnB0…fΜIÙ²e£×^{óJ–,I7æ©VM9r$½õÖ[tôèQ¶õ­”9EgΜ!ØïðY¬yV9xð _Ž;–¾úê+3«páÂì— 0€×yЈ›;wn³Œ>AôK &<ˆAD Q­@RÃG-šø¸F§OŸÖY‡ ÙG«nða h7µÈ½å(µôدŸÊ`2À™…ã ‡^ Vtì@<ò8(3CgÓºuë8ÏLP' äKez‘òøƒr}ô”OÄ«>ˆ†ÝŽº¿ $ 0±aÃŽîùß3gÎvÂ:×§^‹2·èªóô1)} ¦›®ÃëÇTG<¯Àgþüù„ðêðáÃIÙó<‰aŽÁ,™1c)FŒÁã¡AƒaB„ Q§5kÖÐ’%K¨E‹>s&Kùòå9š…H¢TmÚ´!å[räÙŒŽÚ°¡/."j‡ˆØäÉ“9ʆH\¯^½hÒ¤IÔ³gO“°¨ &tEláÂ…ln"mƒLȳJRûh½'ÕrÌÜ–\§_…cÙAUÌGDÇŠ+f¨‡—†zˆÇ]>uê”ñä“Or>"eˆTM˜0Á„£wïÞaÒ"EC…g9_™Wt‚ b¥ˆc¶G^ù5œ§”²Žú•Ic¨IÍÁÜ)Z´(;Õ|¡þ }´ €È”îŽÈ·~ÇDGÉC>"qŠdf`aÊ”)œ†À„ÕéG‰õ±{÷î"ƒZá¸þyóæé¤G·;ý©&Jr$)€H–r²9J…—¿(SŠ'¿z2îŸås­v C™wÆúõë œ[×j÷1nÞ¼ÉÉhDHŽ`²"ª¥v°a]M´³wï^#®¡«@AÀ&“ÚÇ€7‡Ht;aRÓ¯VÜD6ºÕqö/Œ‡Šø„<‰ÇƒÏ@‚}Y½Î²Çg‡iíÒ¥a¢¥¨!„ “90{ö†€!dõ¶<Í»)L´5„0a2bbÖúì.Z-|#‘3‘ð@@ãpèÐYõ£}G|~/@«… ÀêÕûèÔ©{¿*£óäøðÂ<|Ì´8kÖõÜÅ÷—1­…ð´ÿÛo7Z“äÜ!„0omvêÔŸÕs—à?U„]fÚ41ˬ˜9u.„q ù_Ú‹;®~ý%ñß ƒã¿uë:xð¬ÃÚJó®}—Ì+C·iÓaõãyE|þ£G/pĬ@lf7a–mÜxHý¶Xèß0o’ÛˆÀ|Ø^«Tø@´k7‘2eJ§~Û¬åÕ#7ÛŽÀ1ÉlÇT*ô2B/®ôÍv„0¶C*z!Œ—GWúf;BÛ!• ½Œ€ÆË£+}³!ŒíJ…^F@ãåÑ•¾ÙŽ€ÆvH¥B/# „ñòèJßlG@c;¤R¡—Âxyt¥o¶# „±R©ÐËa¼<ºÒ7ÛÂØ©Tèe„0^]é›íal‡T*ô2B/®ôÍv„0¶C*z!Œ—GWúf;BÛ!• ½Œ€ÆË£+}³!ŒíJ…^F@ãåÑ•¾ÙŽ€ÆvH¥B/# „ñòèJßlG@c;¤R¡—Âxyt¥o¶# „±R©ÐËa¼<ºÒ7ÛÂØ©Tèe„0^]é›íal‡T*ô2 þÙêÕ«éã?örŸÃ¾oÇŽeVÿ²Ï üù¯†½®^V°wïÞêß)V¶vñJ‚ÿqyøðaЉ‰¡§Ÿ~ÚZPÎ"Ñѧ¸µSÿ?<Ä–¥) pçÎZ±bµmÛÖŸ0”€0²èS9 © ëׯÓïÿû€}& ,’(F@I" „ ‹$ ÂÆER€uú–ÃÄ~øâââ¨k×®)ªÝ?þñÊ!ýñLÑv’[ùhüøñ´sçNJŸ>==þøãôÔSO%ˆî$·^;ÊÏ;—–-[F»ví¢Œ3R‰%襗^¢ªU«&©ú7nÐÝ»wù^DoGEï¾û.åÌ™3I÷§D!×ï0rëÖ­)OÛ·o§Ý»wû¤9}aõïߟŽ=J/¼ð½üòË´wï^êÖ­­]»ÖQõ>ýôSúè£(**ŠÚ´iÃú8q‚Þyçš5kV’t>|8 :”Ë‚8ˆ^¡ÏNÊæÖ­[ »>~ü8íÛ·Ïìàþýûyå‹ç´“'OÒ¥K—|ú{úôiºr劙†ÕhÛ¶m Ž™¨NˆqñâEÂʃ6ýåêÕ«\ÚÛ²e LZnß¾MçÎãËC‡€4-ˆ›7oòІ4ÿk]N‘z´è0Ðx`€1‘¡t· ®7nÜÈŸk×®™YÐG×wäÈS_Ô "œkÁCfè0dÈjݺ5OJùä$Ó… @þå/á{Þ{ï=“¹s禿ÿýïT´hQîtŸ>}A%K–ä‰2þ|®GÿA½˜TçÏŸçI âÔ¯_ŸzöìIkÖ¬¡¾}ûRÅŠ™,ÈCÝXóäÉCëׯ§=zЈ#¸/þ׺ Azèªw6ôÄÀdM—.ãQ£F Zµj0[¶l4zôhôÍ›7󮀉€ÉS»D•*UèàÁƒÔ¾}{~h SOšË–-Kè;ˆI¨ ¦˜LÐB… ñ9Ê`eÖ’&(snêÔ©<^ /ê…éƒz0žÐ éÀ«`Á‚\7Ž?þø#ÒÑ_ÿú×\6sæÌS,GŽÔªU+­Ó¤IC;vä>þôÓO\&ؘüûßÿ¦•+Wò}ýúõ£?ÿùÏŒëþóõD~úꫯøƒö€Ã¯~õ+úÛßþFY³får[` ݰxuïÞ6lè£Ïý\<ð£Í”)¿!ò`ò`õ˜6m6Vs¬PuêÔáN`BCþûßÿ2ž}öYúç?ÿÉ`ãMØ©ß~û-Ô°aèT©R°PN߯۶1±àÏ|ÿý÷L ƒ£Dœ3gýë_ÿâ‰ÿùçŸsäÅâ͉¿üùòË/yñŬ&½¿`§™={6/ÀbùòåŒ LŒòåËÓwß}Ç 4”ׂ]‹Ë“O>Iè;Hˆ 2oÞ<*W®çaE}â‰'¨H‘"LòfÍšq=À “µX±bº:Ö5&X‰111¡°Ý±c ôAÛeÊ”a¼€=Ò@.ìœ~ø!O@ôºaœûŒ:uêÄÛ-îmܸ1åË—Ëa×&˜(Ï=÷·ƒr àJ—‡= ˆö¯wE\cõÓ„ñ¿Ö÷㈕¯Aƒ<)P¾yóæÖl>ÿÓŸþDXý*UªÄÎ.¦ÌRøØi1qàÃäѵ`—Y`–`±ùíoËf(v ¬äÀ“2K–,Òb•þÍo~Ãe±C‚<Ø¡´Ãæ &;êÇjŒ]; ôÁ„ƒ®èðB?±Û  €ñÃÎÑ/ì–Ø™´ß„kô=`·ÂªKAK°1ÑùþG¼¶‚ºnݺœ…±‚.° ´àI=Èó¯yAO;äM2­„Ž\ÀɃ  VDƒƒÁD'0Yan@@8Lì.0@6äéÝ¢Ä &0¬‚I¡ë@º&Α‡6“+˜PÖzJ—.  ¬òZ0á`œúåå0ky (zVaˆö °Š.X°€Óð V{ìD Vb| 0IaëÃOÐïÃcSu¢]=~ZWì`Z°BôŽ È*3Ú³úÖ20…U'+–I;È­óÏ:–¨G ðIíÛ£‰J)˜e07`!L‹-ËN"ü¬Äðy°zbµ…œ={–çÖí×VÁdÖ‚•uU«VM'q=Øu ØÚ#Ÿy“ß È€X‹uwÐiðЋ Ì­&8“Æ?8€I ÉÜ ÿ† ؃C¶'NœÈyø2‚(Ó§O7Ó‚a?dÖ0[0©´¯ @™ÒyóæåºàÈc’¢ *v'mŽÂ:ÐÁ„ÇŽË>ž&™V~vV,œ0ÿ ÛäŒ Ú ¼Æ8ZÇR§ëví:Þ£¨]5†¨çw¿û?/À c`µ û6'ìj˜pÞð\+ V^ØÇLT¬¸ÁÀ-\¸WØ´0´Yˆ{Ð.ê9ˆÕ~¡P½uû_s¡_þÀüY‚"¸/)‚ÉŒÁ†Íû úÓAïÈÖz0‰€Å7ß|Ãý†N ü.L:`‰zÐOL:D†Ð§E‹ù<‡ † Vz«1tÁÎŽE˜!ØÂ~ýõ×Ò ^ìZ 0¹€%Ìg W¯^lÒA˜ÏØm´Às2,p¨z÷|å•WÌÅåƒ H ²C7«`<xÑ÷Álô.k-k÷¹m;L(Å4ãAθõÐW_}•£?°™¢ˆl`ðˆ 5jÔˆW &&Š]7®±Õc#r;;œlؽõ`¢`•Ã+Ü+hÍš5yòú_£Œn¾&Ê€XW܃ÕR“e­‚ûðÁ€¾ 4ˆÚµkÇi …6mtýú^˜GˆÆ!J¤wZLD´ ýaã?ðû@BúŒˆ°Ó ˜`ØéáC ><ôÄŽ?nÜ8&|#´Œ` Ô®]Û\`D€Ÿ9cÆ n;¦Æ&È… ®utéÒ…ý6†c°1Áø`ñÃs%´@Ï–-[rŸAh£¦M›r5þúþ9&ø|8K–,yz½@cÅ a¬Zxj»^oÑ:6;ìb¤Ã)üÃʘx0k`ÃÃA†ý•Â```cð´Ù¡ÛHê:bRàÙ&5V~‘˜`ήµnô+.tÀ΂ɚ˜ôG«Ÿ¡ïA¸Ïm  ò­õ%†‰¾¸bG×>|'õ¡MLh˜Œþ Ú…^ÀѼtÝØ°¸¡nŒ‡u2'eL°ðAmúézq„ÏÝÐöýŽ¥µ>}Ž9„ÅV_€)áÈôM)qDçÉ€"°ËýÀøÛ¼º  ¯V$EôÄ VÖêp+“X:"J¯vèÐÍØò÷&…,¨}±:þ‰µ…¼PýAÄf]b’XVÇuXp܇Ý> ]k0&P`‚çT¡$ؘ L@BMò`eìN¶»ÂÄꃙƒ¸=¶SL¬|°<ØÜ0Ëü+>ìø@`1©í„‚ÑíaÒàák8Jb˜8­¯cò°úâˆIö°:'í÷ƒ@b&YâÆóý´&÷F@ãáÁ•®Ù€Æ~L¥F#ÔéGü]DH ”L!F|IDHÍ€ž-%ˆ’¥f¤ï‚@®ˆ!ɬa¬hȹ !L€$[°" „±¢!ç‚@þZµ¬17Ø7xIEND®B`‚mysql++-3.2.5/doc/html/refman/open.png000644 000765 000024 00000000173 13515046516 020256 0ustar00tangentstaff000000 000000 ‰PNG  IHDR à‘BIDATxíÝÁ €0 Ð׬ՙ\Àº€39—b!©9{|ðI>$#Àß´ý8/¨ÄØzƒ/Ï>2À[ÎgiU,/¬~¼Ï\ Ä9Ù¸IEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1UseRemoteConnectionOption.html000755 000765 000024 00000022317 13515046516 027741 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::UseRemoteConnectionOption Class Reference
MySQL++  3.2.5
mysqlpp::UseRemoteConnectionOption Class Reference

Connect to remote server in preference to embedded server. More...

#include <options.h>

Inheritance diagram for mysqlpp::UseRemoteConnectionOption:
Collaboration diagram for mysqlpp::UseRemoteConnectionOption:

Additional Inherited Members

- Public Types inherited from mysqlpp::Option
enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 
- Public Member Functions inherited from mysqlpp::Option
virtual ~Option ()
 Destroy object.
 
virtual Error set (DBDriver *dbd)=0
 Apply option.
 

Detailed Description

Connect to remote server in preference to embedded server.


The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1MultiResultsOption-members.html000755 000765 000024 00000015316 13515046516 030116 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::MultiResultsOption Member List

This is the complete list of members for mysqlpp::MultiResultsOption, including all inherited members.

arg_mysqlpp::DataOption< T >protected
ArgType typedefmysqlpp::DataOption< T >
DataOption(const T &arg)mysqlpp::DataOption< T >inlineprotected
err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
set(DBDriver *dbd)=0mysqlpp::Optionpure virtual
~Option()mysqlpp::Optioninlinevirtual
mysql++-3.2.5/doc/html/refman/inherit_graph_21.png000644 000765 000024 00000004613 13515046516 022445 0ustar00tangentstaff000000 000000 ‰PNG  IHDR–$kÜsRGB®Îé EIDATxí[gˆK®;sÎ9sŠ‚ŠbD ˆYP(˜FŒ˜ŠýaFsQïÌ9'Ì9‡~õÕ{=ogfwgvoï^  vgº«ºfúëêêªÚ»8ÅD† ±E )>¶úŒ6ƒÀŸÃ2–"ÃJXRcXÆR´N­§N¢yóæ9»MÛ E‹QÁ‚m|—Çzøð!mÙ²Å&d`¼}ûVlåÇ.¶Ëci‰Í›7ë[s5E ))‰jÔ¨”çòXA¥L§A BŒaE˜÷‡€1,8©0†!`FÜÿyÃÚ°a <Øßl£”úüù3µjÕŠ @ΟV'MšDS§NõÔ|ïÞ=ÑñäÉ ¼ÇÀ#FÐäÉ“ÃêÀs[·n-:ð.ÎÏŋÎOmfȬ0µ_$Úç]¿~Nœ8íp_ã~üøA{öìÙúõëSß¾}­qgÏž¥´i½a|÷î耑~úôɺ‡¢“'ORž}JÅŠ£ÐÇ©J•*ôû÷oºrå _µjUJ—.ð³fÍJ¹sç¶´>zôˆÐ—3gNé;wîœ5&K–,–ô^¸pÊ—/O™2e¢/^P‰%,>nÞ¿/%sæÌtúôiÊ—/•+WNd¾ÿNoÞ¼¡ еk×5˜š5kRúôé…ðõëWÊ!ÅÇÇ‹ÝþÂ{»´mÛ–òæÍ«»­ëëׯåÝ *$}?þ$ÌØDJNâââhñâÅ65 .¼§M›F•+W¶ž ÜñìjÕªQš4i¤sÇZäÏŸŸPÇNàŠÍùתU‹²eËf{FÔ Vh#®_áÏhl}áü’"ß´iS¹bl£FTóæÍ­6OBñª ¨&MšXêž?®xâjéÒ¥êüùóŠ Eñâ)ž°*Z´¨ºzõªÈ>|XåÊ•Kñ‚‹|íÚµðÆ§¸–"÷Ý»wW*TPl¸Š Fžß¯_?áíܹSÚ7¶xå‚°ð÷íÛ'üC‡¹Úl„Âã…T9räP½zõ|µiÓFuèÐAÚ|$+ÌUÓ­[·d\bb¢âšÜß¼yÓvÙ† ªvíÚɰp8h½¸=zTvvë¦M›ÄÕcõèуx2ÄÅïC´cÇñ]»v•8;GÆÁ³,_¾œp õéÓG qwïÞ%}Ïž=“ñÁ¾ØiÉ’%ôåËZ³f|víÚe‰)RD¼/0½zõŠÆŒ#+W®:cÆŒ°Cá5#¥P8px!ª`0 $s½ÿ¾ðáå×­[g=–C ‰ÑÍB< B\¥Idž/_¾Ô]Q_cæ±à!üŽCx ìÃ[Ȱ½{÷Òøñã嘃« 00,> ‚¦;wîè[×é¼&ì\,B !ò;fãéq^׊+ÒèÑ£iæÌ™r4ky’M{è[ß×P8@ŽxÍìÙ³©Y³f68¦A , •øÇ¹sçJÂcæ†vHˆ4A” ×ä|ù³†ä<Á1Ü÷„ ¨sçÎÄA£H¬^½š†*ñé7²»êÕ«Kv‡Ø™·´bÅ ‡Ö¿›^Þ†Š…ÖÇ1¤pê_å9`'¾e0Ž <ÿöíÛAÛÒð£Ç VÓ/}ùòeñÈ0ª)S¦h–ïk(É >\â*dÆ»wï¶}UWªTI2G`„ã¬wïÞ4jÔ(Ét/O5}út‰½€ ¼]:u$ÜpÊGÜv†óÑf…p‹*ö&’)èl„ƒHi#+Ó„L_TqýIwI†ÂA«d„Èè¸D¡8f>»}Éô0™!‹¶¬Ë"‡¬cK™${áé¬c¡Y¹ât[ø~²ÂmÛ¶‰¬þB¶Ê^ÊÊ Ù*^tÑÏ›BqŒ'÷ì5%ëÅs‘"óÓ÷Ð…¬°}ûö¢™Z0ØÉŒ öáS@²M>->ôh ‘jœôûcÎ\6yàÊG¥â¡ÙžWÌ ï,+Dìc£H Ë6ØgcذaŠk].iÎÕñãÇŒÓI¯È‚ÀP9Û³ +P†…ÔzØÅ+®ÛXlmXà±WRœYZ¼XÞpýNÞŸá¨Õ†ÃÁK©ž;×Á/yàÊ^^¡TÁ —¸ΰb¼³åzŽ™ýû÷Ü=b'!ðGÊŒpd¢ÐꇠEÚPô†’‰¶qV`‚žp8xéóš»sµ%Ô›Ý"æÞ è¿ E¢¢ËKAcþaÕØHÊ ê冔™†ÑúoCÀÖ¿mEþ'ï2xGœeÈ UC‘Ëcá—uTÄ ¼@µ¶ìo¸\Y¡—2Ã7ø@Àd…>@2"Q à: £Ða†\ÃrAb:b€1¬X ht¸ø9=nʦ#enIEND®B`‚mysql++-3.2.5/doc/html/refman/inherit_graph_35.png000644 000765 000024 00000010615 13515046516 022451 0ustar00tangentstaff000000 000000 ‰PNG  IHDR=$û5ízsRGB®ÎéGIDATx휔E€‹ Š%)Š(Š3¦3cÀŒbÌ Ϭ`DA1@1‹‚ ‚ ŒÊ™N(" bú¯¯~{ÞÜÞì»£ë½½™é®®î©êª®®ê¹NA,'¨¹œ¼gxÍÀÀÀã@0za",WFo¹wxÙÀÀ`ôÂX®8P;ómùå™>}zfqx.€o¼±Ô©S§€•õ›o¾‘‹.º¨r &Œ"p`)p [·n²óÎ;—¡TÎÓûóÏ?eÖ¬YeÂC:,Z´Èx·xñât *Ö¼yóä©§ž’ T²‘…áÎæòwß}W®a9OÏcl±Åþ6\Srà×_•Ÿþ9%våE»ýöÛe“M6©¼ # HÁZµj%b•óô±Baà@à@à@5á@0zÕDá5Òq ½t| XÕ„ÁèUA†×HÇ¥fôÆ/íÛ·—õÖ[OÖYgÙ}÷ÝeÔ¨QéF‘ë·ß~KQìÔ©“<ýôÓy(V®ê’’é2rääÊ5¨*0ŽØpÀòÃ?,ÓÑ’ ºð e³Í6“u×]WŽ>úh8p üõ×_©ú-dþf#xÏ=÷˜N­¹æš²á†Ê 'œ ß~ûm6ô‚ÊçΛê]¾øâ ã÷?þXýʆ¼TŒÞðáÃe×]w•ï¿ÿÞÎyõèÑCþþûocÐOýôÓåÄOLE‡ –v2¦"¸Œ¦N-ýú–¶m{KQQ_>|Ò2ê©ú’?¾-¬È|YÂM7Ý$÷ÝwŸì½÷Þrà 7Ø¢Þ¹sg9÷ÜsSu[ÈüM"xÚi§ÉYgeÆî–[n‘Ã?\^ýuÙqÇeÆŒIM *ÃIáxG>à( À’%Kò¡VîzþËJôŒž3fL¼(çýï¿ÿîÔ»s»í¶›Ó3~®žYs-[¶tÍ›7Êôü—;v¬Ñ×CÐQùüá¾þúk§Lu_}õ•{ë­·¸ÀO?ýä=ôP·ï¾û:5ªQe¾ÑŠ—y|ê€iÓ¦9U§ÇHœN§‡®­<þGÏñ¸7ß|Ó©Å‹ —1Rþᇖ©ËöÀ˜á}&ÁŒó\qñX·×^}\£FÝ”o=íÊ}—.ƒ’šü§e“&Mâ?î8]ÑSõë冬§Nê&OžlícII‰Sïßédeꕸ9s攡‹|ÔˈÊ&L˜àÞyççåç+àëÛo¿msaáÂ…N=<«B.Œ÷Ë/¿49é9CëùSZZê›ÛU½Çx™O¯½öš]ãÔù±ªR› yd©Þ•»þúëãèN ž«_¿¾×s…qúñQžmþú6ñ«ï?^Æ|âÕØÅ‹ÝG}äôH†»øâ‹£òlúßgΜiúùþû€\ }¯s”#›7ÞxÃÁo´Q#ë¸zÙ'é¬ÇWÇÇÆ‰\}Ôa'Ðw€¹Í8$ñ!^Ÿö¾fÍšî±Ç+‡.™%…=ÝšP^~ùåLRfÀž{î9›0PW·òÊ+»•VZÉ5hÐÀ&Þ}÷]£qØa‡™2õ0DW8W£F «ßi§¬K/½ÔénÕUWµò¶mÛšÁ¤¬+³áq±\qÅ#º °:ÒI'YûVXÁêo¼ñF«ãžSsx £›’ŒÞܹ Ý!ã\ûöý]ãÆÝu|=ôÚ-2v¼ªjô¼ÜÚµkg|Dn,~ðœ{~ȆI¬§âÝž{y†²Ýu×]¦Íš5s«¬²ŠÉºiÓ¦î³Ï>3\«5ÖXÃ1ÁoӦɄʸÑÓížÛ|óÍÍ@17èûÔSOú£l—]v1È»^½znèСQ=}0×€W^yÅÚ³@c€é÷ ƒr,ð?‹¥7z?ü°Ñ„6}ï·ß~#œ4= }ï½÷œzƒ®U«V¾(ºª—gz“dЩ>øÀpsé—7ÌiÞű£“<Ã_ô†÷Ýa‡¬ ýª]»¶SïÖúðòÆ`ùû$™Ey@ 6´6Ôy¹uÔQ&ox #¸®]»Fï¯+ä~™½;î¸Ã^Œ•4``6Ø`Uüö¦Óèa<ñ84îã4Îè¶Ûn;ÃëÛ·¯µÃ(³ éöÅÞƒ•`‚ (à±J¦oôæÌ™ï† ›è:vàš6ía¿&Mº—3tÞàUu£‡,ñ¸o½õVã!|FN>ú¨=3É‘“ÐÏ“ââb‡ÀêСƒÓðˆÉ:ÈèüóÏ·¹¢ñ+õŒ÷2„]òeá¼òàéaôP0úÄûxðÁíYC/†‹,7nl^ÞËGáÖZk­È»¹êª«Ü³Ï>k¸ÐÓÏñ"oäì³Ï6Zeæèµ×^k†Úõã‚>cÆÛÃ`kìÏ]pÁ†Ÿ¿¾ ÞWÿþým7ĸyÿ!C†øêè /÷Øcè9é&Ÿ~aôè£_¿~ÆSÞ•g¼sýñ}ßvÛm¶ÈøECˆG‹1ôz7zÙt–ÅnÛm·5^à-ã8 K ­—Æmذa‘ ü» <ØIƸÍ6Û¸;S̎Àãå»f3zY¿ÈÐS¾D^<Ý6 Ag‚±:Ñ ŸxÈ>ûì#ŸþyÔ^'“¬¾úê°Ýzë­E'STçoԈɧŸ~*uëÖ]ÝDÝ|Ñ—³x¢Ç‰_uµU"+Rå’+®¸ÂîÕíЍá5­[·Ô#Ú~ûí çÈ#â“i`Ñ¢%2fL© óÏV[m%j`"<æ±/U8+£_õ(íž13–?þXt!W_}µ•ó‡o§‹U:£ËÕ»3ÜË/¿\Hš 4Èè¨'&êõDsV•^F-7ß|³'cWÆ£» kÃ\Ö݆ÝÓg _Ìï\F¿4Ìd²Î™gž)×\s¨q·8aœvÇŽåCݾʈ#ä“O>±$"ßä'A’΢ëÈ«Á5 ¢ž¯¨ƒ¡ó¼4"£!K~FÿÜÀ~àÂ_â¨$’ÐGõ-Ù¦ç ½-ZX83Ù [^¹ÿþû£Iç 5jdít¥7cÃU5]±ýctUë.|DLº Š®TQ}æM&Mõê …Ì—®^e˜ŽÁU/2"íù9 [CòrðŸ°y^"3Œ™V2ë,>«õʬÊ¡ž¨§(º°<òHô 8FɃ7Zþ9~E±ã€QÑmhTDÖÓu@¼Þ×ů$ ¦L™bЦÛc«"{‰ªG"êFYÔÌùÏüÌ„ã?Þ²Í,¾êqé"“ü©”o‡~=ôÐCfxÔãòÅvíÕ«—9Þ`fÓ/ãz á%kŸ¤_êý‰n;͉ØtÓMeíµ×6Ülât½Îú¬ò½÷Þk<òmáÆÔÏ‹|úÅ»cðz÷î-,2,D3ÆXÈn-RRÕ8„ýG‘‘#G–3z}úô1̯Òè¶ ¤5¸i=è¶W0|@¾ uÃ套^2/OãG‚ÃXeÏàÌz<ˆÌ³uµEãþ± kíÚ5¥]»R¿þiÕªµŽoª :^ÆŽý¿'«zŸ3ëÕ¢EC).îTPŸKY·òä“…gBÓȱâEà‰‘ Å«ö‹#“¯åœsÎ1ã‡'`xkÂÇ®àa@‹Ý„‡x=Êä2¢ÔkRļTv$~çØ ¯Æ¢ll,ຽµˆ7LÌoŽ‚d‚n»UÎŦÌ?þ¸œ|òÉæÕ$HÚ²ëxàé–<"‡áÅË¢Î/:Ùô‹FÙô "øÏ rÀx¡“«­¶š<ÿüó¦k™xþ9Iö^VºU6™ƒËâÂB9ú’øg,,x{ÜãIã­WrûÍ)¨#pV-ަ°J³õä‡ ­as©YÀ»îºël;Á6ŠU²µÉl‰™°´cu‚Ѭ0?1Zc4vD&x= Çøð<ð2G’&j¼]šûºu먀Z«Rt–’’Þ:Á;H›6ÍlâacÎdrÕ‡m“Æãl¾àMxÅ=ï¼óì_šñ.ð 5Ñ Ï<2VzdO(ƒ‘ 04xÈåeËé·Ø´Ñ¤‰)[Z§Ù–™EÐ,¨m3¹g[ÅxððXXQ~¶ìlõ É¶/ §‰9øàƒmñ½òÊ+eöìÙ¶-¤ß_|ræùù[TTdýhvT8Š2PÏûaxÙê³ÝÎpð­CÇP~Â:lñÂŽ=öX ßTT¿XLx7¶ÓÐEçxO +À´´€Ç½å–[ŠÆûMf,„à±&ó’áøŒ&ÃlëÍÂÒ¥K›sÕã]EyÛçEÈ ’•R‹œYœó™Ô4_ÓÚ¡ýt¢X0Ù7$#¦Ì´:5ZN]r§“Ȫ}€4~¤D_.ʾéŠhÁV£$ Ôˆ2Q:á$h’ÉR¯2ÊÞrOðÖƒ*—ey&¸J0Û—ŒrüX‚ºöQ"Å·Ïwõ‰ h'Au;²’)7Uã'åG~à/ÁjdT)ãhŠUbKP¨7b ²˜²jNpd„6Ș ¾Odplƒr$2tpÉÆúD„H4hÜ6Ê^’YŒ![ö–¶œL G_ü˜çd£uÇAµ‰N x2ØÌ >­ ö‡À>GhtÛkÙÎXUt _õŒ`D›>xDÄ\úÕ³gOË\{‚º€-ÝYÑ1ÇcÏð‹wU‡ÂxN¨!·¤ úàå­qÖè>›Î’¬à¸šç (/Ó¸Üü˜âW䨻;’//ôžù²LެÄBVlâĉ–®&ƒ– ¤ü9³CÆ5©>?þÌY»øÙ>hùó ÁÓ2g|y¾+çôô+ ùŒ^œþ”)³43 'gÜPðL`Þ (ÈŸ¬¬7zq<Œ‹t0d4ã€Ñ#³‹ÂûÌd¼>ß=tiÇÉd&™[ CÒ;dÎߤöœ}Ëd¾¡Ÿí4AEô šêéY÷¼+üö>dk—¶|©½´¼²hÙ’,tùL_Y¬ªý¤Û Ñ- \rÉ%¸ÿ·oƒÒëáÙrÍYI^d2ÀÄ £æÀÂ=`+d‡+ $âÉ O$B.à|\€À8Páìm`cà@à@à@Uâ@0zUIZa¬æ@0zfa 88P•85¦Çã…qÀâVX«Ê‡ÍÁ\ÿeAå]Qà@:dû¿åŒéâ\iñtÝ-ŸX¤èá]¾ï)++wøœ/%T0—ý'°ñ÷©ÁA¿xA¸¨Î1½ê,Ýðnå8Œ^9–„‚ÀÀêÌ`ôª³tû”ã@0zåX ª3þj¿!n8ÏIEND®B`‚mysql++-3.2.5/doc/html/refman/functions_o.html000755 000765 000024 00000044330 13515046516 022031 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Class Members
MySQL++  3.2.5
Here is a list of all documented class members with links to the class documentation for each member:

- o -

mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1SslOption__coll__graph.png000644 000765 000024 00000012126 13515046516 027054 0ustar00tangentstaff000000 000000 ‰PNG  IHDR“m¥}S|sRGB®ÎéIDATxí]Enr”x$I‚D%(’$ Š‚‚‚d-(0‹ˆ $ ¡$+PXr ¨dPrïÈ¡Ç%é8Ü¿¿æŸçÞ»Ý÷Þ½Ûƒ{îtÕ½Ýéééþ¦»gÞ¾ÛtiÒH¹¢Ò§\†– 5pOL Ži@ƒÉ1UjALŽi c0’.]ºDùó禩n“Æ5'Oº|ùrP½ LêNƒ ¢J•*©K} q ¬^½šæÍ›ô(R¦ PãÆƒ¾¹n˜¶4påÊ•IçLiËž!Ý ¦6_Úê¼SÚ²GH÷Fƒ)¤Í—¶:ï 0EGGSóæÍéôéÓ©®ýíÛ·S‡¨L™2T°`AY Œ5Šþù矀ï¥ùíÛ·…úôéÔ³gÏ€Û>HFW€)66––/_N7oÞLU]/[¶ŒêׯOÔ­[72d.\˜úõëG-Z´ ;wît€0<<\xoݺEqqqµ{àLxj ¹tñâEi¿víZcþüùr{@W¾|yê:uêdàžùòåóô=™4c¯$r0†‘#G½{÷€¢c„P‡~à8`Ài§tܪU+é;t\ @ãСCRÈGJÁt_Ã\®\¹èÔ©S4vìXÚ°aÁ…³Ç¡¹sç{Ú¿?µoßžÒ¥KG?ÿü³xíóçÏ‹:wîLl0Z±b±w#4õéÓ‡Œ AC‡%ö4„]Ü«W¯RéÒ¥¥½ÝGÑ¢E ›tì­DÖgŸ}æaeFQQQRÿüóÏÓ›o¾Iì!¤ù O9/Y²¤„0ÙhRöôÓO{䨌§FÒoU†¾~ûí·Âf̘Aøûõ×_‰=#ñ$¡Y³f‰lÅ#Æ ±ç!|¥ÅžŽ† FkÖ¬ñ°±‡"öª´nÝ:ѯң‡!5OA¬7O°žiÛ¶m" ³…ÇdÌž=[®áöq½páB¹f¼³.ç“'O6²dÉ"a᯿þ2Ø0ÎX¹r¥qãÆ ƒó á+Q¢„”ËìÝ»WdÚy& ÁÿÉ'ŸÅŠ“¦ðLœëÈ9>"##E¡/êß¿¿xJ„+‚Gå¤\ªà™øk¨Dl ~ñB(„Ç3gŽÔ›=SñâÅ åÁTcx7Ü[y&¤ Šàý»wï®.ýCÊ3!aæÊ–-+GÌ\Vެl™YðJHD[¶lI¹sç&ÎGˆóâ<‹š5kFìÆiĈÒÏì\"Ëî£T©Rž*$¼¸—"sî:w¶<>úè£Ä9!Á«y<ðúõë <м='îãëX bŒÕ«WW"äÂ)ÂXeË–Üê2Õ÷5ÌqŒh@­[·¦¬Y³ÒÔ©S%ÄuéÒEÚ±g¢Ê•+{YæsîBÇ—PFœgyä#ú"ó6'«„P¥È\·iÓ&)6×+>ó«8L’ &˜‹åœ*Î^yåOùXeîØ±#Q<Œÿ?î8^¼xªØ3'ï‰ÚªcO³®ƒ7 DTŽ9ˆIÂS x${D }ûöQ›6m.T¨x6àxª™3g ò‰ú¼d#g‚çCž…¥»"x?ä@íøñã ^®J•*RÍ!Ñ“ÏÁÈ¡_ÁëôèÑCøûöí+F礞~úé'É÷ªV­J]»vU· Ÿ’+"÷ã$Zö•^|ñE©çÄ_ò+µ×¤¡œ /„¹'¨mÛ¶ŠåÁýR †`s&µ¼ÇöZâ<ÄsÂ,×Xi)â=)ëÕ«—*’ «0´eÏe`åÂRÕŸZÁ¡+2‘3a»çØP«9Å‹ü„è%89SµjÕ<+"¬º6oÞ,uø°[Í¡[_|ñ…g…†{B>[Ær&Ÿ¬æÀ™®ïUòg»ví¤¿(ãE†Q³fM©ã0hÔ«WOê°’C.É›šR§r&¥c"Oóα„Ùæ#¥9Ó}Ù°é»ÏbŠ6'ʪÊÌ{'»X‚³—ý€í&3)0ñ¢ðb_ÉL¯.%á·º·™×îûP0 ؇ò&€ Kxô{nØ ó&LµŸe®Ã±„DÛJ¶™7¹ç)SŠžgbc¥ !\a©ŒðV¡B…$÷°*y•Ø"ŸðGŠ×Š ?þ‚!„)}µGˆFhEãV„1šy+žU–&s&ä)̤I“‚Ö ï"o„JÎe‚Ç9Ä ðÌåêu©ýHr¹råˆ71Õ-ÿ;ÇäºBð'7g æºÍý×@JÃ\šôLÿ©ê®‘h0`ï„„À @Ü–Eƒ)ÓŽ³<.Í’‘9¹jÀ¦`j'©ÉíSjñgÊFaaù Ø)ü€[|jÝ&ÍÈMÁïæ¢‚ÚÈ™3gŠ~“f4@G/Ž¡U«NÒ‡ŽâÕ¡õr=1!ÃÂûlA÷5(ÏôÝB°aµj_²WŠå/‘KóW„àî[—õ¿Ôñ¥êˆˆhx¶m;ÆçW}±»¾N'à> °pávÊ”)ƒpdÈŽ^Ûáƒ[Wi0Ù`€¿ã§"ùG÷žâgÞ8Oüˆ[CL68X¿þÅÆþûk,z÷í;EÑÑÿ>ˆfÓÔµÅL6¦_¸0’vK¬\#ôi²Ö@bmYó¸®ôÖ­Z¼x'?†›xç×áá:ÔÙBƒÉB3«Wï£øxëL"ÌíÝ{Ê¢•.Ò`²ÀÀ‚‘„GX¬«»E‹t¨³Ò“—V®]‹çgÂ÷qˆ³þUVwóçGxµÒ—Ѐ“–-ÛÃßÁùþºòܹ«ô矾ýâ%Ö—L^fF‚íï«o<:«Wu^ŠãË ¾èM*æ¿Qw›B”ÀÏeõ (.îÅÄ\äç® &Ú*8s抇GŸÜÓ€þ¢×ð\«VßÐ΃ùÿ-åòÃíêjýE¯«ÍïðàuÎä°BÝ,NƒÉÍÖwxìL+ÔÍâ4˜Ül}‡Ç®Áä°BÝ,NƒÉÍÖwxìL+ÔÍâ4˜Ül}‡Ç®Áä°BÝ,NƒÉÍÖwxìL+ÔÍâ4˜Ül}‡Ç®Áä°BÝ,NƒÉÍÖwxìL+ÔÍâ4˜Ül}‡Ç®Áä°BÝ,NƒÉÍÖwxìL+ÔÍâ4˜Ül}‡Ç®Áä°BÝ,NƒÉÍÖwxìL+ÔÍâ4˜Ül}‡Ç®Áä°BÝ,NƒÉÍÖwxìL+ÔÍâ4˜Ül}‡Ç®Áä°BÝ,NƒÉÍÖwxìL+ÔÍâ4˜Ül}‡Çžä?Çmݺ•¾þúk‡oºâââ2Ò‰ñ¿!ŒåçœøŸÌ‡î¨RÞó‘#GR©R¥Ì‚¢’€)<<œ^{í5jР™QŸk ˆâââøuiÛ(22’ªW¯nÖŠý›0¿üòK3£>× œ:uŠ:wîl© 3YªE£ ¦`´¦ÛXj@ƒÉR-º0 h0£5ÝÆR!ÿ†‚•+WÒøUñZЩB¬b¾ÿþ{Ú²e ]»vªV­Êošž}öY~o&Ÿ·5jÕ¨Qƒ7n,|7oÞ¤3fð«ÆöÒÉ“'éᇦråÊQ·nÝ(_¾|>e©Êøøx~ÇË?”={vÞº8A&L O?ý4àöJŽ“Ç÷LP$Œ’Ú4wî\Z²d‰,‡{ôèAyóæ¥Ñ£GÓ7ß|ã÷Ö»ví¢3gÎߥK—¨gÏžüòè_©R¥JôÎ;ïÐSO=Ek×®¥·Þz‹Ž;æWЯ¾úJx*€¯~}”bÏtûöm‚‚ (@çΓA•.]ZfÍñãÇù]$·yÃïQ~ïHF~•ûß”-[6Ê•ëß×Fœ?^ÊræÌ)z8tè¿dùAxAYQQQT¼xqÊ’% ]¹r… .¬ªåxãÆ QhÖ¬YÅ[åÉ“GøQ ™ð(˜ù111týúu*[¶¬Ç«Àè+¼LúôéEŽºFÛ_~ù…:tè@:uòÜ/äY¾|9õîÝ›p²ë¿jïM“&Mo¤Ê_xáHQ øKll,¿\1žnݺE.\ bÅŠÑàÁƒ)wîÜJA¯ÐWþüù©L™2žþ¡úÇØŽ=*^¶s‚R ¦#GŽÐ{ï½GO<ñ¿_d§ô©råÊ”9sfÙØBÁc=Fãǧ¡C‡ ¨Æ'|Dûöíéƒ>à—ßT¦þýûóK–ï)*,,ŒÆŒC%J” Ì숂a4(€X¶l™ÈQ c^¾|Y@@Í›7§~ýúñ+½þ¤R•*Uhÿþýü>¹‘ ïenß¾úöíKcÇŽ•±˜¯Ë—//÷†„06Ð믿N5’sήÿÂÀ¸'À‡>!¬™©hÑ¢ôꫯҜ9sôðxvc™9s&mÞ¼Yš4ˆÞÿ}±Á?þ(ì‡~ üa‚bÁ>\@[A§»w僚wïʤïÓ§µhÑÂÜ Î s9räà÷׆ˠöìÙ#ž`Þ¼y³±iÓ¦2´aÙ10ȬY³Ä¨%‚PŒ1B¼”>ÕÞjÄò§+Vˆ¸M›6yXÒÅ‹‹Ñ®^½JS¦L‘:x9[y;ó5<äK/½Døªéå—_¹³gϦ‹/Ê$Àíúï¹1ŸÀ3ÃËU¨PÁ\ì9hA§OŸ–£ÝXzõê%ùWݺuÅ“ óÿ? {x?L èàÄFãôéÓ=lpȱ`L®ß~ûÍS—’ÇÀ„]QªV­ZÒ 3^]Ÿ={–6l(! !O¨Y³¦¸gÌ̃5qâDzûí·éðáĶ­Zµ¢B… ø0³íè‘G¡&MšÈ}ÀW¤HñlŠÿ7Þ0©ä(oŠkä, LÞ×(¼EëÖ­ÅëÁ`Ý»w C6ø­ú¯î‹#B5H…t¹0}À+ƒfAþÆ"L^7n$LìfÍšI úU¯^=ñ¼Š!ÀEÄ×f›”â0§:¡V!êݶHåÈIÓ±Z·n †DøŒP&¼Ò´iÓˆ¨S^¡R@eGX™ y“’rœ£N×voPŒ?òÄï¾ûN< €n×Ì|EJ'vÆÃ÷] Åço,J®ùï‡4@u°yœ·"äŸwNcžIÆ_§ê"„„¸jPDDuéÒ…ß0¹&Ož,`š:uª¬šPƒ*R+#um>"!U„$žÍ ³„_ÀTrÀ‡ÂŽ"¨M›6r ™výWü8b¼q+wfB2­¾<Åräo,æöêýŠм²Cîeg ¶R2=:¦@oX§NÂj û,p±*™]ºt©Äq¬6àÞ±âf<r¬Àï‘ Ø·zõj™‰Ès©P‹6¸/ä ÄÂxµk×Q ˜òækx„$ë0€€ý!äIB†]ÿ½û‰Ð3 €X?þøcY¡aE§È×X°:F[ŒÅL+rA5Nä«;vìðìq™y>w,Ìù똚 @„ı[QÇŽiذaÔ®];YñaÅUféçŸ.u-[¶”°‰ÙmÞQ²! ¡ À*¹ Œóøãr À9¹]»v•r€^±~ýúfÌ×X©bé%;6AçèÇ!C$W´ë?xÑ?ÕGl^B}ôª…°å<“G‘ÝXP¾cÒ`[ÀT„ÛH¼±7†=(,p°R©~(~sßTY°GÛç™Ö¬Y¬L¿í 4xÌ3!vc7‰!g3aIŽ J”#ç`¼·°üE’ Ãc R»Ó¶`µß…Çäú0bæcï ^ÉL¾úoæSçèöæ°OäÝ_cQí1ajU9ŽÈ‘ÐWèË[¶™/¹ç‰üP…dS{ûç™LLŽ¢#Ø¿AHÀÞˆ7A1ر"x40‚lzÚ‘wbkÇç]¹ð˜vä«ÿVmǘs+_cy衇¬šHRó&¦-£ƒ÷-Ì¡ÏØI†VK×`ƂՈÕ^ f8Y+‚b+V¬hU•&Ë|%Mv˜;õ@Â\ZU†î— ø s÷}5ç¿»š#T5 Áª–KƒýÖ`JƒF Õ.Ù&àú×)¡jÒÔí·ú~Ñê.IÀ„½™¶mÛZñê2­Ñ@É’%-÷®’¬æ´¾´‚Ô@”Ι‚Ôœn–TLIu¢K‚Ô€SŠÓÍ’j@ƒ)©NtIøìµëLbÞIEND®B`‚mysql++-3.2.5/doc/html/refman/globals_defs.html000755 000765 000024 00000006574 13515046516 022137 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: File Members
MySQL++  3.2.5
 
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1DBDriver.html000755 000765 000024 00000335404 13515046516 024265 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::DBDriver Class Reference
MySQL++  3.2.5

Provides a thin abstraction layer over the underlying database client library. More...

#include <dbdriver.h>

Public Types

enum  nr_code { nr_more_results, nr_last_result, nr_error, nr_not_supported }
 Result code returned by next_result() More...
 

Public Member Functions

 DBDriver ()
 Create object.
 
 DBDriver (const DBDriver &other)
 Duplicate an existing driver. More...
 
virtual ~DBDriver ()
 Destroy object.
 
ulonglong affected_rows ()
 Return the number of rows affected by the last query. More...
 
std::string client_version () const
 Get database client library version. More...
 
bool connect (const MYSQL &mysql)
 Establish a new connection using the same parameters as an existing connection. More...
 
virtual bool connect (const char *host, const char *socket_name, unsigned int port, const char *db, const char *user, const char *password)
 Connect to database server. More...
 
bool connected () const
 Return true if we have an active connection to the database server. More...
 
void copy (const DBDriver &other)
 Establish a new connection as a copy of an existing one. More...
 
bool create_db (const char *db) const
 Ask the database server to create a database. More...
 
void data_seek (MYSQL_RES *res, ulonglong offset) const
 Seeks to a particualr row within the result set. More...
 
void disconnect ()
 Drop the connection to the database server. More...
 
bool drop_db (const std::string &db) const
 Drop a database. More...
 
bool enable_ssl (const char *key=0, const char *cert=0, const char *ca=0, const char *capath=0, const char *cipher=0)
 Enable SSL-encrypted connection. More...
 
const char * error ()
 Return error message for last MySQL error associated with this connection. More...
 
int errnum ()
 Return last MySQL error number associated with this connection. More...
 
size_t escape_string (char *to, const char *from, size_t length)
 Return a SQL-escaped version of the given character buffer. More...
 
size_t escape_string (std::string *ps, const char *original, size_t length)
 Return a SQL-escaped version of a character buffer. More...
 
bool execute (const char *qstr, size_t length)
 Executes the given query string. More...
 
MYSQL_ROW fetch_row (MYSQL_RES *res) const
 Returns the next raw C API row structure from the given result set. More...
 
const unsigned long * fetch_lengths (MYSQL_RES *res) const
 Returns the lengths of the fields in the current row from a "use" query. More...
 
MYSQL_FIELD * fetch_field (MYSQL_RES *res, size_t i=UINT_MAX) const
 Returns information about a particular field in a result set. More...
 
void field_seek (MYSQL_RES *res, size_t field) const
 Jumps to the given field within the result set. More...
 
void free_result (MYSQL_RES *res) const
 Releases memory used by a result set. More...
 
st_mysql_options get_options () const
 Return the connection options object.
 
std::string ipc_info ()
 Get information about the IPC connection to the database server. More...
 
ulonglong insert_id ()
 Get ID generated for an AUTO_INCREMENT column in the previous INSERT query. More...
 
bool kill (unsigned long tid)
 Kill a MySQL server thread. More...
 
bool more_results ()
 Returns true if there are unconsumed results from the most recent query. More...
 
nr_code next_result ()
 Moves to the next result set from a multi-query. More...
 
int num_fields (MYSQL_RES *res) const
 Returns the number of fields in the given result set. More...
 
ulonglong num_rows (MYSQL_RES *res) const
 Returns the number of rows in the given result set. More...
 
bool ping ()
 "Pings" the MySQL database More...
 
int protocol_version ()
 Returns version number of MySQL protocol this connection is using. More...
 
std::string query_info ()
 Returns information about the last executed query. More...
 
bool refresh (unsigned options)
 Asks the database server to refresh certain internal data structures. More...
 
bool result_empty ()
 Returns true if the most recent result set was empty. More...
 
bool select_db (const char *db)
 Asks the database server to switch to a different database.
 
std::string server_version ()
 Get the database server's version number. More...
 
bool set_option (Option *o)
 Sets a connection option. More...
 
bool set_option (mysql_option moption, const void *arg=0)
 Set MySQL C API connection option.
 
bool set_option (unsigned int option, bool arg)
 Set MySQL C API connection option. More...
 
bool set_option_default (Option *o)
 Same as set_option(), except that it won't override a previously-set option.
 
bool shutdown ()
 Ask database server to shut down. More...
 
std::string server_status ()
 Returns the database server's status. More...
 
MYSQL_RES * store_result ()
 Saves the results of the query just execute()d in memory and returns a pointer to the MySQL C API data structure the results are stored in. More...
 
unsigned long thread_id ()
 Returns the MySQL server thread ID for this connection. More...
 
MYSQL_RES * use_result ()
 Returns a result set from the last-executed query which we can walk through in linear fashion, which doesn't store all result sets in memory. More...
 

Static Public Member Functions

static size_t escape_string_no_conn (char *to, const char *from, size_t length)
 SQL-escapes the given string without reference to the character set of a database server. More...
 
static size_t escape_string_no_conn (std::string *ps, const char *original=0, size_t length=0)
 SQL-escapes the given string without reference to the character set of a database server. More...
 
static bool thread_aware ()
 Returns true if MySQL++ and the underlying MySQL C API library were both compiled with thread awareness. More...
 
static void thread_end ()
 Tells the underlying MySQL C API library that this thread is done using the library. More...
 
static bool thread_start ()
 Tells the underlying C API library that the current thread will be using the library's services. More...
 

Protected Member Functions

bool connect_prepare ()
 Does things common to both connect() overloads, before each go and establish the connection in their different ways.
 
bool set_option_impl (Option *o)
 Common implementation of set_option(Option*) and the delayed option setting code in connect_prepare()
 

Detailed Description

Provides a thin abstraction layer over the underlying database client library.

This class does as little as possible to adapt between its public interface and the interface required by the underlying C API. That is, in fact, its only mission. The high-level interfaces indended for use by MySQL++ users are in Connection, Query, Result, and ResUse, all of which delegate the actual database communication to an object of this type, created by Connection. If you really need access to the low-level database driver, get it via Connection::driver(); don't create DBDriver objects directly.

Currently this is a concrete class for wrapping the MySQL C API. In the future, it may be turned into an abstract base class, with subclasses for different database server types.

Member Enumeration Documentation

◆ nr_code

Result code returned by next_result()

Enumerator
nr_more_results 

success, with more results to come

nr_last_result 

success, last result received

nr_error 

problem retrieving next result

nr_not_supported 

this C API doesn't support "next result"

Constructor & Destructor Documentation

◆ DBDriver()

mysqlpp::DBDriver::DBDriver ( const DBDriver other)

Duplicate an existing driver.

Parameters
otherexisting DBDriver object

This establishes a new database server connection with the same parameters as the other driver's.

References copy().

Member Function Documentation

◆ affected_rows()

ulonglong mysqlpp::DBDriver::affected_rows ( )
inline

Return the number of rows affected by the last query.

Wraps mysql_affected_rows() in the MySQL C API.

Referenced by mysqlpp::Query::affected_rows().

◆ client_version()

std::string mysqlpp::DBDriver::client_version ( ) const
inline

Get database client library version.

Wraps mysql_get_client_info() in the MySQL C API.

Referenced by mysqlpp::Connection::client_version(), and set_option_impl().

◆ connect() [1/2]

bool mysqlpp::DBDriver::connect ( const MYSQL &  mysql)

Establish a new connection using the same parameters as an existing connection.

Parameters
mysqlexisting MySQL C API connection object

References connect_prepare().

Referenced by mysqlpp::Connection::connect(), and copy().

◆ connect() [2/2]

bool mysqlpp::DBDriver::connect ( const char *  host,
const char *  socket_name,
unsigned int  port,
const char *  db,
const char *  user,
const char *  password 
)
virtual

Connect to database server.

If you call this method on an object that is already connected to a database server, the previous connection is dropped and a new connection is established.

References connect_prepare().

◆ connected()

bool mysqlpp::DBDriver::connected ( ) const
inline

Return true if we have an active connection to the database server.

This does not actually check whether the connection is viable, it just indicates whether there was previously a successful connect() call and no disconnect(). Call ping() to actually test the connection's viability.

Referenced by connect_prepare(), mysqlpp::Connection::connected(), copy(), set_option(), shutdown(), and ~DBDriver().

◆ copy()

void mysqlpp::DBDriver::copy ( const DBDriver other)

Establish a new connection as a copy of an existing one.

Parameters
otherthe connection to copy

References connect(), connected(), and disconnect().

Referenced by mysqlpp::Connection::copy(), and DBDriver().

◆ create_db()

bool mysqlpp::DBDriver::create_db ( const char *  db) const

Ask the database server to create a database.

Parameters
dbname of database to create
Returns
true if database was created successfully

◆ data_seek()

void mysqlpp::DBDriver::data_seek ( MYSQL_RES *  res,
ulonglong  offset 
) const
inline

Seeks to a particualr row within the result set.

Wraps mysql_data_seek() in MySQL C API.

◆ disconnect()

void mysqlpp::DBDriver::disconnect ( )

Drop the connection to the database server.

This method should only be used by MySQL++ library internals. Unless you use the default constructor, this object should always be connected.

Referenced by connect_prepare(), copy(), mysqlpp::Connection::disconnect(), and ~DBDriver().

◆ drop_db()

bool mysqlpp::DBDriver::drop_db ( const std::string &  db) const

Drop a database.

Parameters
dbname of database to destroy
Returns
true if database was created successfully

◆ enable_ssl()

bool mysqlpp::DBDriver::enable_ssl ( const char *  key = 0,
const char *  cert = 0,
const char *  ca = 0,
const char *  capath = 0,
const char *  cipher = 0 
)

Enable SSL-encrypted connection.

Parameters
keythe pathname to the key file
certthe pathname to the certificate file
cathe pathname to the certificate authority file
capathdirectory that contains trusted SSL CA certificates in pem format.
cipherlist of allowable ciphers to use
Returns
False if call fails or the C API library wasn't compiled with SSL support enabled.

Must be called before connection is established.

Wraps mysql_ssl_set() in MySQL C API.

◆ errnum()

int mysqlpp::DBDriver::errnum ( )
inline

Return last MySQL error number associated with this connection.

Wraps mysql_errno() in the MySQL C API.

Referenced by mysqlpp::Connection::errnum().

◆ error()

const char* mysqlpp::DBDriver::error ( )
inline

Return error message for last MySQL error associated with this connection.

Can return a MySQL++ DBDriver-specific error message if there is one. If not, it simply wraps mysql_error() in the MySQL C API.

Referenced by mysqlpp::Connection::error(), and mysqlpp::Connection::set_option().

◆ escape_string() [1/2]

size_t mysqlpp::DBDriver::escape_string ( char *  to,
const char *  from,
size_t  length 
)
inline

Return a SQL-escaped version of the given character buffer.

Parameters
tocharacter buffer to hold escaped version; must point to at least (length * 2 + 1) bytes
frompointer to the character buffer to escape
lengthnumber of characters to escape
Return values
numberof characters placed in escaped

Wraps mysql_real_escape_string() in the MySQL C API.

Proper SQL escaping takes the database's current character set into account, however if a database connection isn't available DBDriver also provides a static version of this same method.

See also
escape_string_no_conn(char*, const char*, size_t)

Referenced by mysqlpp::SQLStream::escape_string(), mysqlpp::Query::escape_string(), and escape_string().

◆ escape_string() [2/2]

size_t mysqlpp::DBDriver::escape_string ( std::string *  ps,
const char *  original,
size_t  length 
)

Return a SQL-escaped version of a character buffer.

Parameters
pspointer to C++ string to hold escaped version; if original is 0, also holds the original data to be escaped
originalif given, pointer to the character buffer to escape instead of contents of *ps
lengthif both this and original are given, number of characters to escape instead of ps->length()
Return values
numberof characters placed in *ps

This method has three basic operation modes:

  • Pass just a pointer to a C++ string containing the original data to escape, plus act as receptacle for escaped version
  • Pass a pointer to a C++ string to receive escaped string plus a pointer to a C string to be escaped
  • Pass nonzero for all parameters, taking original to be a pointer to an array of char with given length; does not treat null characters as special

There's a degenerate fourth mode, where ps is zero: simply returns 0, because there is nowhere to store the result.

Note that if original is 0, we always ignore the length parameter even if it is nonzero. Length always comes from ps->length() in this case.

ps is a pointer because if it were a reference, the other overload would be impossible to call: the compiler would complain that the two overloads are ambiguous because std::string has a char* conversion ctor. A nice bonus is that pointer syntax makes it clearer that the first parameter is an "out" parameter.

See also
comments for escape_string(char*, const char*, size_t) for further details.
escape_string_no_conn(std::string*, const char*, size_t)

References escape_string().

◆ escape_string_no_conn() [1/2]

static size_t mysqlpp::DBDriver::escape_string_no_conn ( char *  to,
const char *  from,
size_t  length 
)
inlinestatic

SQL-escapes the given string without reference to the character set of a database server.

Wraps mysql_escape_string() in the MySQL C API.

See also
escape_string(char*, const char*, size_t)

Referenced by mysqlpp::SQLStream::escape_string(), mysqlpp::Query::escape_string(), and escape_string_no_conn().

◆ escape_string_no_conn() [2/2]

size_t mysqlpp::DBDriver::escape_string_no_conn ( std::string *  ps,
const char *  original = 0,
size_t  length = 0 
)
static

SQL-escapes the given string without reference to the character set of a database server.

See also
escape_string(std::string*, const char*, size_t), escape_string_no_conn(char*, const char*, size_t)

References escape_string_no_conn().

◆ execute()

bool mysqlpp::DBDriver::execute ( const char *  qstr,
size_t  length 
)
inline

Executes the given query string.

Wraps mysql_real_query() in the MySQL C API.

Referenced by mysqlpp::Query::exec(), mysqlpp::Query::execute(), shutdown(), mysqlpp::Query::store(), and mysqlpp::Query::use().

◆ fetch_field()

MYSQL_FIELD* mysqlpp::DBDriver::fetch_field ( MYSQL_RES *  res,
size_t  i = UINT_MAX 
) const
inline

Returns information about a particular field in a result set.

Parameters
resresult set to fetch field information for
ifield number to fetch information for, if given

If i parameter is given, this call is like a combination of field_seek() followed by fetch_field() without the i parameter, which otherwise just iterates through the set of fields in the given result set.

Wraps mysql_fetch_field() and mysql_fetch_field_direct() in MySQL C API. (Which one it uses depends on i parameter.)

Referenced by mysqlpp::ResultBase::ResultBase().

◆ fetch_lengths()

const unsigned long* mysqlpp::DBDriver::fetch_lengths ( MYSQL_RES *  res) const
inline

Returns the lengths of the fields in the current row from a "use" query.

Wraps mysql_fetch_lengths() in MySQL C API.

Referenced by mysqlpp::UseQueryResult::fetch_lengths(), and mysqlpp::StoreQueryResult::StoreQueryResult().

◆ fetch_row()

MYSQL_ROW mysqlpp::DBDriver::fetch_row ( MYSQL_RES *  res) const
inline

Returns the next raw C API row structure from the given result set.

This is for "use" query result sets only. "store" queries have all the rows already.

Wraps mysql_fetch_row() in MySQL C API.

Referenced by mysqlpp::UseQueryResult::fetch_raw_row(), mysqlpp::UseQueryResult::fetch_row(), and mysqlpp::StoreQueryResult::StoreQueryResult().

◆ field_seek()

void mysqlpp::DBDriver::field_seek ( MYSQL_RES *  res,
size_t  field 
) const
inline

Jumps to the given field within the result set.

Wraps mysql_field_seek() in MySQL C API.

Referenced by mysqlpp::ResultBase::ResultBase().

◆ free_result()

void mysqlpp::DBDriver::free_result ( MYSQL_RES *  res) const
inline

Releases memory used by a result set.

Wraps mysql_free_result() in MySQL C API.

Referenced by mysqlpp::StoreQueryResult::StoreQueryResult().

◆ insert_id()

ulonglong mysqlpp::DBDriver::insert_id ( )
inline

Get ID generated for an AUTO_INCREMENT column in the previous INSERT query.

Return values
0if the previous query did not generate an ID. Use the SQL function LAST_INSERT_ID() if you need the last ID generated by any query, not just the previous one. This applies to stored procedure calls because this function returns the ID generated by the last query, which was a CALL statement, and CALL doesn't generate IDs. You need to use LAST_INSERT_ID() to get the ID in this case.

Referenced by mysqlpp::Query::insert_id().

◆ ipc_info()

std::string mysqlpp::DBDriver::ipc_info ( )
inline

Get information about the IPC connection to the database server.

String contains info about type of connection (e.g. TCP/IP, named pipe, Unix socket...) and the server hostname.

Wraps mysql_get_host_info() in the MySQL C API.

Referenced by mysqlpp::Connection::ipc_info().

◆ kill()

bool mysqlpp::DBDriver::kill ( unsigned long  tid)
inline

Kill a MySQL server thread.

Parameters
tidID of thread to kill

Wraps mysql_kill() in the MySQL C API.

See also
thread_id()

Referenced by mysqlpp::Connection::kill().

◆ more_results()

bool mysqlpp::DBDriver::more_results ( )
inline

Returns true if there are unconsumed results from the most recent query.

Wraps mysql_more_results() in the MySQL C API.

Referenced by mysqlpp::Query::more_results().

◆ next_result()

nr_code mysqlpp::DBDriver::next_result ( )
inline

Moves to the next result set from a multi-query.

Returns
A code indicating whether we successfully found another result, there were no more results (but still success) or encountered an error trying to find the next result set.

Wraps mysql_next_result() in the MySQL C API, with translation of its return value from magic integers to nr_code enum values.

Referenced by mysqlpp::Query::store_next().

◆ num_fields()

int mysqlpp::DBDriver::num_fields ( MYSQL_RES *  res) const
inline

Returns the number of fields in the given result set.

Wraps mysql_num_fields() in MySQL C API.

◆ num_rows()

ulonglong mysqlpp::DBDriver::num_rows ( MYSQL_RES *  res) const
inline

Returns the number of rows in the given result set.

Wraps mysql_num_rows() in MySQL C API.

◆ ping()

bool mysqlpp::DBDriver::ping ( )
inline

"Pings" the MySQL database

This function will try to reconnect to the server if the connection has been dropped. Wraps mysql_ping() in the MySQL C API.

Return values
trueif server is responding, regardless of whether we had to reconnect or not
falseif either we already know the connection is down and cannot re-establish it, or if the server did not respond to the ping and we could not re-establish the connection.

Referenced by mysqlpp::Connection::ping().

◆ protocol_version()

int mysqlpp::DBDriver::protocol_version ( )
inline

Returns version number of MySQL protocol this connection is using.

Wraps mysql_get_proto_info() in the MySQL C API.

Referenced by mysqlpp::Connection::protocol_version().

◆ query_info()

string mysqlpp::DBDriver::query_info ( )

Returns information about the last executed query.

Wraps mysql_info() in the MySQL C API

Referenced by mysqlpp::Query::info().

◆ refresh()

bool mysqlpp::DBDriver::refresh ( unsigned  options)
inline

Asks the database server to refresh certain internal data structures.

Wraps mysql_refresh() in the MySQL C API. There is no corresponding interface for this in higher level MySQL++ classes because it was undocumented until recently, and it's a pretty low-level thing. It's designed for things like MySQL Administrator.

◆ result_empty()

bool mysqlpp::DBDriver::result_empty ( )
inline

Returns true if the most recent result set was empty.

Wraps mysql_field_count() in the MySQL C API, returning true if it returns 0.

Referenced by mysqlpp::Query::result_empty().

◆ server_status()

std::string mysqlpp::DBDriver::server_status ( )
inline

Returns the database server's status.

String is similar to that returned by the mysqladmin status command. Among other things, it contains uptime in seconds, and the number of running threads, questions and open tables.

Wraps mysql_stat() in the MySQL C API.

Referenced by mysqlpp::Connection::server_status().

◆ server_version()

std::string mysqlpp::DBDriver::server_version ( )
inline

Get the database server's version number.

Wraps mysql_get_server_info() in the MySQL C API.

Referenced by mysqlpp::Connection::server_version().

◆ set_option() [1/2]

bool mysqlpp::DBDriver::set_option ( Option o)

Sets a connection option.

This is the database-independent high-level option setting interface that Connection::set_option() calls. There are several private overloads that actually implement the option setting.

See also
Connection::set_option(Option*) for commentary

References connected(), and set_option_impl().

Referenced by mysqlpp::Connection::set_option().

◆ set_option() [2/2]

bool mysqlpp::DBDriver::set_option ( unsigned int  option,
bool  arg 
)

Set MySQL C API connection option.

Manipulates the MYSQL.client_flag bit mask. This allows these flags to be treated the same way as any other connection option, even though the C API handles them differently.

◆ shutdown()

bool mysqlpp::DBDriver::shutdown ( )

Ask database server to shut down.

User must have the "shutdown" privilege.

Wraps mysql_shutdown() in the MySQL C API.

References connected(), and execute().

Referenced by mysqlpp::Connection::shutdown().

◆ store_result()

MYSQL_RES* mysqlpp::DBDriver::store_result ( )
inline

Saves the results of the query just execute()d in memory and returns a pointer to the MySQL C API data structure the results are stored in.

See also
use_result()

Wraps mysql_store_result() in the MySQL C API.

Referenced by mysqlpp::Query::store(), and mysqlpp::Query::store_next().

◆ thread_aware()

bool mysqlpp::DBDriver::thread_aware ( )
static

Returns true if MySQL++ and the underlying MySQL C API library were both compiled with thread awareness.

This is based in part on a MySQL C API function mysql_thread_safe(). We deliberately don't call this wrapper thread_safe() because it's a misleading name: linking to thread-aware versions of the MySQL++ and C API libraries doesn't automatically make your program "thread-safe". See the chapter on threads in the user manual for more information and guidance.

Referenced by mysqlpp::Connection::thread_aware().

◆ thread_end()

static void mysqlpp::DBDriver::thread_end ( )
inlinestatic

Tells the underlying MySQL C API library that this thread is done using the library.

This exists because the MySQL C API library allocates some per-thread memory which it doesn't release until you call this.

Referenced by mysqlpp::Connection::thread_end().

◆ thread_id()

unsigned long mysqlpp::DBDriver::thread_id ( )
inline

Returns the MySQL server thread ID for this connection.

This has nothing to do with threading on the client side. It's a server-side thread ID, to be used with kill().

Referenced by mysqlpp::Connection::thread_id().

◆ thread_start()

static bool mysqlpp::DBDriver::thread_start ( )
inlinestatic

Tells the underlying C API library that the current thread will be using the library's services.

Return values
Trueif there was no problem

The MySQL++ user manual's chapter on threads details two major strategies for dealing with connections in the face of threads. If you take the simpler path, creating one DBDriver object per thread, it is never necessary to call this function; the underlying C API will call it for you when you establish the first database server connection from that thread. If you use a more complex connection management strategy where it's possible for one thread to establish a connection that another thread uses, you must call this from each thread that can use the database before it creates any MySQL++ objects. If you use a DBDriverPool object, this applies; DBDriverPool isn't smart enough to call this for you, and the MySQL C API won't do it, either.

Referenced by mysqlpp::Connection::thread_start().

◆ use_result()

MYSQL_RES* mysqlpp::DBDriver::use_result ( )
inline

Returns a result set from the last-executed query which we can walk through in linear fashion, which doesn't store all result sets in memory.

See also
store_result

Wraps mysql_use_result() in the MySQL C API.

Referenced by mysqlpp::Query::use().


The documentation for this class was generated from the following files:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1examples_1_1CommandLine-members.html000755 000765 000024 00000025113 13515046516 030632 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::examples::CommandLine Member List

This is the complete list of members for mysqlpp::examples::CommandLine, including all inherited members.

ArgumentList typedefmysqlpp::CommandLineBase
ArgumentListIt typedefmysqlpp::CommandLineBase
CommandLine(int argc, char *const argv[], const char *user=0, const char *pass=0, const char *usage_extra=0)mysqlpp::examples::CommandLine
CommandLineBase(int argc, char *const argv[], const char *opts)mysqlpp::CommandLineBaseinlineprotected
dtest_mode() constmysqlpp::examples::CommandLineinline
extra_args() constmysqlpp::CommandLineBaseinline
finish_parse()mysqlpp::CommandLineBaseprotected
operator void *() constmysqlpp::CommandLineBaseinline
option_argument() constmysqlpp::CommandLineBaseprotected
option_index() constmysqlpp::CommandLineBaseprotected
parse_error(const char *message=0)mysqlpp::CommandLineBaseprotected
parse_next() constmysqlpp::CommandLineBaseprotected
pass() constmysqlpp::examples::CommandLineinline
print_usage() constmysqlpp::examples::CommandLineinlinevirtual
print_usage(const char *extra) constmysqlpp::examples::CommandLine
program_name() constmysqlpp::CommandLineBaseinlineprotected
run_mode() constmysqlpp::examples::CommandLineinline
server() constmysqlpp::examples::CommandLineinline
successful() constmysqlpp::CommandLineBaseinlineprotected
user() constmysqlpp::examples::CommandLineinline
~CommandLineBase()mysqlpp::CommandLineBaseinlineprotectedvirtual
mysql++-3.2.5/doc/html/refman/functions_type.html000755 000765 000024 00000015047 13515046516 022557 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Class Members - Typedefs
MySQL++  3.2.5
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1Query.html000755 000765 000024 00000536021 13515046516 023727 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::Query Class Reference
MySQL++  3.2.5

A class for building and executing SQL queries. More...

#include <query.h>

Inheritance diagram for mysqlpp::Query:
Collaboration diagram for mysqlpp::Query:

Classes

class  MaxPacketInsertPolicy
 An insert policy object that triggers a new INSERT statement if the object to be added would cause the statement to exceed a maximum size. More...
 
class  RowCountInsertPolicy
 An insert policy object that triggers a new INSERT statement after a given number of rows have been inserted. More...
 
class  SizeThresholdInsertPolicy
 An insert policy object that triggers a new INSERT statement after a size threshold for the length of the INSERT statement is exceeded. More...
 

Public Member Functions

 Query (Connection *c, bool te=true, const char *qstr=0)
 Create a new query object attached to a connection. More...
 
 Query (const Query &q)
 Create a new query object as a copy of another. More...
 
ulonglong affected_rows ()
 Return the number of rows affected by the last query.
 
size_t escape_string (std::string *ps, const char *original=0, size_t length=0) const
 Return a SQL-escaped version of a character buffer. More...
 
size_t escape_string (char *escaped, const char *original, size_t length) const
 Return a SQL-escaped version of the given character buffer. More...
 
int errnum () const
 Get the last error number that was set. More...
 
const char * error () const
 Get the last error message that was set. More...
 
std::string info ()
 Returns information about the most recently executed query.
 
ulonglong insert_id ()
 Get ID generated for an AUTO_INCREMENT column in the previous INSERT query. More...
 
Queryoperator= (const Query &rhs)
 Assign another query's state to this object. More...
 
 operator void * () const
 Test whether the object has experienced an error condition. More...
 
bool operator ! () const
 Returns true if the query object is not in a bad state. More...
 
void parse ()
 Treat the contents of the query string as a template query. More...
 
void reset ()
 Reset the query object so that it can be reused. More...
 
bool result_empty ()
 Returns true if the most recent result set was empty. More...
 
std::string str ()
 Get built query as a C++ string.
 
std::string str (const SQLTypeAdapter &arg0)
 Get built query as a C++ string with template query parameter substitution. More...
 
std::string str (SQLQueryParms &p)
 Get built query as a null-terminated C++ string. More...
 
bool exec ()
 Execute a built-up query. More...
 
bool exec (const std::string &str)
 Execute a query. More...
 
SimpleResult execute ()
 Execute built-up query. More...
 
SimpleResult execute (SQLQueryParms &p)
 Execute template query using given parameters. More...
 
SimpleResult execute (const SQLTypeAdapter &str)
 Execute a query that returns no rows. More...
 
SimpleResult execute (const char *str, size_t len)
 Execute query in a known-length string of characters. This can include null characters. More...
 
UseQueryResult use ()
 Execute a query that can return rows, with access to the rows in sequence. More...
 
UseQueryResult use (SQLQueryParms &p)
 Execute a template query that can return rows, with access to the rows in sequence. More...
 
UseQueryResult use (const SQLTypeAdapter &str)
 Execute a query that can return rows, with access to the rows in sequence. More...
 
UseQueryResult use (const char *str, size_t len)
 Execute a query that can return rows, with access to the rows in sequence. More...
 
StoreQueryResult store ()
 Execute a query that can return a result set. More...
 
StoreQueryResult store (SQLQueryParms &p)
 Store results from a template query using given parameters. More...
 
StoreQueryResult store (const SQLTypeAdapter &str)
 Execute a query that can return rows, returning all of the rows in a random-access container. More...
 
StoreQueryResult store (const char *str, size_t len)
 Execute a query that can return rows, returning all of the rows in a random-access container. More...
 
template<typename Function >
Function for_each (const SQLTypeAdapter &query, Function fn)
 Execute a query, and call a functor for each returned row. More...
 
template<typename Function >
Function for_each (Function fn)
 Execute the query, and call a functor for each returned row. More...
 
template<class SSQLS , typename Function >
Function for_each (const SSQLS &ssqls, Function fn)
 Run a functor for every row in a table. More...
 
template<class Sequence , typename Function >
Function store_if (Sequence &con, const SQLTypeAdapter &query, Function fn)
 Execute a query, conditionally storing each row in a container. More...
 
template<class Sequence , class SSQLS , typename Function >
Function store_if (Sequence &con, const SSQLS &ssqls, Function fn)
 Pulls every row in a table, conditionally storing each one in a container. More...
 
template<class Sequence , typename Function >
Function store_if (Sequence &con, Function fn)
 Execute the query, conditionally storing each row in a container. More...
 
StoreQueryResult store_next ()
 Return next result set, when processing a multi-query. More...
 
bool more_results ()
 Return whether more results are waiting for a multi-query or stored procedure response. More...
 
template<class Sequence >
void storein_sequence (Sequence &con)
 Execute a query, storing the result set in an STL sequence container. More...
 
template<class Sequence >
void storein_sequence (Sequence &con, const SQLTypeAdapter &s)
 Executes a query, storing the result rows in an STL sequence container. More...
 
template<class Seq >
void storein_sequence (Seq &con, SQLQueryParms &p)
 Execute template query using given parameters, storing the results in a sequence type container. More...
 
template<class Set >
void storein_set (Set &con)
 Execute a query, storing the result set in an STL associative container. More...
 
template<class Set >
void storein_set (Set &con, const SQLTypeAdapter &s)
 Executes a query, storing the result rows in an STL set-associative container. More...
 
template<class Set >
void storein_set (Set &con, SQLQueryParms &p)
 Execute template query using given parameters, storing the results in a set type container. More...
 
template<class Container >
void storein (Container &con)
 Execute a query, and store the entire result set in an STL container. More...
 
template<class T >
void storein (T &con, SQLQueryParms &p)
 Store template query results into a container. More...
 
template<class T >
void storein (std::vector< T > &con, const SQLTypeAdapter &s)
 Specialization of storein_sequence() for std::vector.
 
template<class T >
void storein (std::deque< T > &con, const SQLTypeAdapter &s)
 Specialization of storein_sequence() for std::deque.
 
template<class T >
void storein (std::list< T > &con, const SQLTypeAdapter &s)
 Specialization of storein_sequence() for std::list.
 
template<class T >
void storein (std::set< T > &con, const SQLTypeAdapter &s)
 Specialization of storein_set() for std::set.
 
template<class T >
void storein (std::multiset< T > &con, const SQLTypeAdapter &s)
 Specialization of storein_set() for std::multiset.
 
template<class T >
Queryupdate (const T &o, const T &n)
 Replace an existing row's data with new data. More...
 
template<class T >
Queryinsert (const T &v)
 Insert a new row. More...
 
template<class Iter >
Queryinsert (Iter first, Iter last)
 Insert multiple new rows. More...
 
template<class Iter , class InsertPolicy >
Queryinsertfrom (Iter first, Iter last, InsertPolicy &policy)
 Insert multiple new rows using an insert policy to control how the INSERT statements are created using items from an STL container. More...
 
template<class Iter , class InsertPolicy >
Queryreplacefrom (Iter first, Iter last, InsertPolicy &policy)
 Replace multiple new rows using an insert policy to control how the REPLACE statements are created using items from an STL container. More...
 
template<class T >
Queryreplace (const T &v)
 Insert new row unless there is an existing row that matches on a unique index, in which case we replace it. More...
 
template<class Iter >
Queryreplace (Iter first, Iter last)
 Insert multiple new rows, or replace existing ones if there are existing rows that match on key fields. More...
 
- Public Member Functions inherited from mysqlpp::OptionalExceptions
 OptionalExceptions (bool e=true)
 Default constructor. More...
 
virtual ~OptionalExceptions ()
 Destroy object.
 
void enable_exceptions () const
 Enable exceptions from the object.
 
void disable_exceptions () const
 Disable exceptions from the object.
 
bool throw_exceptions () const
 Returns true if exceptions are enabled.
 

Public Attributes

SQLQueryParms template_defaults
 The default template parameters. More...
 

Friends

class SQLQueryParms
 

Additional Inherited Members

- Protected Member Functions inherited from mysqlpp::OptionalExceptions
void set_exceptions (bool e) const
 Sets the exception state to a particular value. More...
 

Detailed Description

A class for building and executing SQL queries.

One does not generally create Query objects directly. Instead, call mysqlpp::Connection::query() to get one tied to that connection.

There are several ways to build and execute SQL queries with this class.

The way most like other database libraries is to pass a SQL statement in either the form of a C or C++ string to one of the exec*(), store*(), or use() methods. The query is executed immediately, and any results returned.

For more complicated queries, it's often more convenient to build up the query string over several C++ statements using Query's stream interface. It works like any other C++ stream (std::cout, std::ostringstream, etc.) in that you can just insert things into the stream, building the query up piece by piece. When the query string is complete, you call the overloaded version of exec*(), store*(), or use() takes no parameters, which executes the built query and returns any results.

If you are using the library's Specialized SQL Structures feature, Query has several special functions for generating common SQL queries from those structures. For instance, it offers the insert() method, which builds an INSERT query to add the contents of the SSQLS to the database. As with the stream interface, these methods only build the query string; call one of the parameterless methods mentioned previously to actually execute the query.

Finally, you can build "template queries". This is something like C's printf() function, in that you insert a specially-formatted query string into the object which contains placeholders for data. You call the parse() method to tell the Query object that the query string contains placeholders. Having done that, you call one of the the many exec*(), store*(), or use() overloads that take SQLTypeAdapter objects. There are 25 of each by default, differing only in the number of STA objects they take. (See lib/querydef.pl if you need to change the limit, or examples/tquery2.cpp for a way around it that doesn't require changing the library.) Only the version taking a single STA object is documented below, as to document all of them would just be repetitive. For each Query method that takes a single STA object, there's a good chance there's a set of undocumented overloads that take more of them for the purpose of filling out a template query.

See the user manual for more details about these options.

Constructor & Destructor Documentation

◆ Query() [1/2]

mysqlpp::Query::Query ( Connection c,
bool  te = true,
const char *  qstr = 0 
)

Create a new query object attached to a connection.

This is the constructor used by mysqlpp::Connection::query().

Parameters
cconnection the finished query should be sent out on
teif true, throw exceptions on errors
qstran optional initial query string

◆ Query() [2/2]

mysqlpp::Query::Query ( const Query q)

Create a new query object as a copy of another.

This is not a traditional copy ctor! Its only purpose is to make it possible to assign the return of Connection::query() to an empty Query object. In particular, the stream buffer and template query stuff will be empty in the copy, regardless of what values they have in the original.

References operator=().

Member Function Documentation

◆ errnum()

int mysqlpp::Query::errnum ( ) const

Get the last error number that was set.

This just delegates to Connection::errnum(). Query has nothing extra to say, so use either, as makes sense in your program.

References mysqlpp::Connection::errnum().

Referenced by exec(), execute(), store(), store_next(), and use().

◆ error()

const char * mysqlpp::Query::error ( ) const

Get the last error message that was set.

This just delegates to Connection::error(). Query has nothing extra to say, so use either, as makes sense in your program.

References mysqlpp::Connection::error().

Referenced by exec(), execute(), store(), store_next(), and use().

◆ escape_string() [1/2]

size_t mysqlpp::Query::escape_string ( std::string *  ps,
const char *  original = 0,
size_t  length = 0 
) const

Return a SQL-escaped version of a character buffer.

Parameters
pspointer to C++ string to hold escaped version; if original is 0, also holds the original data to be escaped
originalif given, pointer to the character buffer to escape instead of contents of *ps
lengthif both this and original are given, number of characters to escape instead of ps->length()
Return values
numberof characters placed in *ps
See also
comments for escape_string(char*, const char*, size_t) and DBDriver::escape_string(std::string*, const char *, size_t) for further details.

References mysqlpp::Connection::driver(), mysqlpp::DBDriver::escape_string(), and mysqlpp::DBDriver::escape_string_no_conn().

◆ escape_string() [2/2]

size_t mysqlpp::Query::escape_string ( char *  escaped,
const char *  original,
size_t  length 
) const

Return a SQL-escaped version of the given character buffer.

Parameters
escapedcharacter buffer to hold escaped version; must point to at least (length * 2 + 1) bytes
originalpointer to the character buffer to escape
lengthnumber of characters to escape
Return values
numberof characters placed in escaped

DBDriver provides two versions of this method and Query::escape_string() calls the appropriate one based on whether or not a database connection is available. If the connection is available, it can call the DBDriver::escape_string() method. If there is no database connection available (normally only in testing), then DBDriver provides a static version of the function that doesn't use a database connection.

See also
comments for DBDriver::escape_string(char*, const char*, size_t), DBDriver::escape_string_no_conn(char*, const char*, size_t) for further details.

References mysqlpp::Connection::driver(), mysqlpp::DBDriver::escape_string(), and mysqlpp::DBDriver::escape_string_no_conn().

◆ exec() [1/2]

bool mysqlpp::Query::exec ( )
inline

Execute a built-up query.

Same as exec(), except that it uses the query string built up within the query object already instead of accepting a query string from the caller.

Returns
true if query was executed successfully
See also
exec(const std::string& str), execute(), store(), storein(), and use()

References exec().

Referenced by mysqlpp::Connection::create_db(), mysqlpp::Connection::drop_db(), and exec().

◆ exec() [2/2]

bool mysqlpp::Query::exec ( const std::string &  str)

Execute a query.

Same as execute(), except that it only returns a flag indicating whether the query succeeded or not. It is basically a thin wrapper around the C API function mysql_real_query().

Parameters
strthe query to execute
Returns
true if query was executed successfully
See also
execute(), store(), storein(), and use()

References mysqlpp::Connection::driver(), errnum(), error(), mysqlpp::DBDriver::execute(), reset(), str(), and mysqlpp::OptionalExceptions::throw_exceptions().

◆ execute() [1/4]

SimpleResult mysqlpp::Query::execute ( )

Execute built-up query.

Use one of the execute() overloads if you don't expect the server to return a result set. For instance, a DELETE query. The returned SimpleResult object contains status information from the server, such as whether the query succeeded, and if so how many rows were affected.

This overloaded version of execute() simply executes the query that you have built up in the object in some way. (For instance, via the insert() method, or by using the object's stream interface.)

Returns
SimpleResult status information about the query
See also
exec(), store(), storein(), and use()

References str(), and template_defaults.

Referenced by mysqlpp::Transaction::commit(), execute(), mysqlpp::Transaction::rollback(), and mysqlpp::Transaction::Transaction().

◆ execute() [2/4]

SimpleResult mysqlpp::Query::execute ( SQLQueryParms p)

Execute template query using given parameters.

This method should only be used by code that doesn't know, at compile time, how many parameters it will have. This is useful within the library, and also for code that builds template queries dynamically, at run time.

Parameters
pparameters to use in the template query.

References execute(), str(), and template_defaults.

◆ execute() [3/4]

SimpleResult mysqlpp::Query::execute ( const SQLTypeAdapter str)

Execute a query that returns no rows.

Parameters
strif this object is set up as a template query, this is the value to substitute for the first template query parameter; else, it is the SQL query string to execute

Because SQLTypeAdapter can be initialized from either a C string or a C++ string, this overload accepts query strings in either form. Beware, SQLTypeAdapter also accepts many other data types (this is its raison d'etre), so it will let you write code that compiles but results in bogus SQL queries.

To support template queries, there many more overloads of this type (25 total, by default; see lib/querydef.pl), each taking one more SQLTypeAdapter object than the previous one. See the template query overview above for more about this topic.

References mysqlpp::SQLTypeAdapter::data(), execute(), mysqlpp::SQLTypeAdapter::length(), and template_defaults.

◆ execute() [4/4]

SimpleResult mysqlpp::Query::execute ( const char *  str,
size_t  len 
)

Execute query in a known-length string of characters. This can include null characters.

Executes the query immediately, and returns the results.

References affected_rows(), mysqlpp::Connection::driver(), errnum(), error(), mysqlpp::DBDriver::execute(), execute(), info(), insert_id(), reset(), str(), template_defaults, and mysqlpp::OptionalExceptions::throw_exceptions().

◆ for_each() [1/3]

template<typename Function >
Function mysqlpp::Query::for_each ( const SQLTypeAdapter query,
Function  fn 
)
inline

Execute a query, and call a functor for each returned row.

This method wraps a use() query, calling the given functor for every returned row. It is analogous to STL's for_each() algorithm, but instead of iterating over some range within a container, it iterates over a result set produced by a query.

Parameters
querythe query string
fnthe functor called for each row
Returns
a copy of the passed functor

References mysqlpp::UseQueryResult::fetch_row().

◆ for_each() [2/3]

template<typename Function >
Function mysqlpp::Query::for_each ( Function  fn)
inline

Execute the query, and call a functor for each returned row.

Just like for_each(const SQLTypeAdapter&, Function), but it uses the query string held by the Query object already

Parameters
fnthe functor called for each row
Returns
a copy of the passed functor

References mysqlpp::UseQueryResult::fetch_row().

◆ for_each() [3/3]

template<class SSQLS , typename Function >
Function mysqlpp::Query::for_each ( const SSQLS &  ssqls,
Function  fn 
)
inline

Run a functor for every row in a table.

Just like for_each(Function), except that it builds a "select * from TABLE" query using the SQL table name from the SSQLS instance you pass.

Parameters
ssqlsthe SSQLS instance to get a table name from
fnthe functor called for each row
Returns
a copy of the passed functor

References mysqlpp::UseQueryResult::fetch_row().

◆ insert() [1/2]

template<class T >
Query& mysqlpp::Query::insert ( const T &  v)
inline

Insert a new row.

This function builds an INSERT SQL query. One uses it with MySQL++'s Specialized SQL Structures mechanism.

Parameters
vnew row
See also
replace(), update()

◆ insert() [2/2]

template<class Iter >
Query& mysqlpp::Query::insert ( Iter  first,
Iter  last 
)
inline

Insert multiple new rows.

Builds an INSERT SQL query using items from a range within an STL container. Insert the entire contents of the container by using the begin() and end() iterators of the container as parameters to this function.

Parameters
firstiterator pointing to first element in range to insert
lastiterator pointing to one past the last element to insert
See also
insertfrom(), replace(), update()

◆ insert_id()

ulonglong mysqlpp::Query::insert_id ( )

Get ID generated for an AUTO_INCREMENT column in the previous INSERT query.

Return values
0if the previous query did not generate an ID. Use the SQL function LAST_INSERT_ID() if you need the last ID generated by any query, not just the previous one. This applies to stored procedure calls because this function returns the ID generated by the last query, which was a CALL statement, and CALL doesn't generate IDs. You need to use LAST_INSERT_ID() to get the ID in this case.

References mysqlpp::Connection::driver(), and mysqlpp::DBDriver::insert_id().

Referenced by execute().

◆ insertfrom()

template<class Iter , class InsertPolicy >
Query& mysqlpp::Query::insertfrom ( Iter  first,
Iter  last,
InsertPolicy &  policy 
)
inline

Insert multiple new rows using an insert policy to control how the INSERT statements are created using items from an STL container.

Parameters
firstiterator pointing to first element in range to insert
lastiterator pointing to one past the last element to insert
policyinsert policy object, see insertpolicy.h for details
See also
insert()

◆ more_results()

bool mysqlpp::Query::more_results ( )

Return whether more results are waiting for a multi-query or stored procedure response.

If this function returns true, you must call store_next() to fetch the next result set before you can execute more queries.

Wraps mysql_more_results() in the MySQL C API. That function only exists in MySQL v4.1 and higher. Therefore, this function always returns false when built against older API libraries.

Returns
true if another result set exists

References mysqlpp::Connection::driver(), and mysqlpp::DBDriver::more_results().

◆ operator !()

bool mysqlpp::Query::operator ! ( ) const
inline

Returns true if the query object is not in a bad state.

This just returns the opposite of operator void*(), and is required only because basic_ios defines it, so we have to override it to get Query-specific behavior in code like this:

if (!query) ...

◆ operator void *()

mysqlpp::Query::operator void * ( ) const

Test whether the object has experienced an error condition.

Allows for code constructs like this:

Query q = conn.query();
.... use query object
if (q) {
... no problems in using query object
}
else {
... an error has occurred
}

This method returns false if either the Query object or its associated Connection object has seen an error condition since the last operation.

◆ operator=()

Query & mysqlpp::Query::operator= ( const Query rhs)

Assign another query's state to this object.

The same caveats apply to this operator as apply to the copy ctor.

References mysqlpp::OptionalExceptions::set_exceptions(), template_defaults, and mysqlpp::OptionalExceptions::throw_exceptions().

Referenced by Query().

◆ parse()

void mysqlpp::Query::parse ( )

Treat the contents of the query string as a template query.

This method sets up the internal structures used by all of the other members that accept template query parameters. See the "Template Queries" chapter in the user manual for more information.

References str().

◆ replace() [1/2]

template<class T >
Query& mysqlpp::Query::replace ( const T &  v)
inline

Insert new row unless there is an existing row that matches on a unique index, in which case we replace it.

This function builds a REPLACE SQL query. One uses it with MySQL++'s Specialized SQL Structures mechanism.

Parameters
vnew row
See also
insert(), update()

◆ replace() [2/2]

template<class Iter >
Query& mysqlpp::Query::replace ( Iter  first,
Iter  last 
)
inline

Insert multiple new rows, or replace existing ones if there are existing rows that match on key fields.

Builds a REPLACE SQL query using items from a range within an STL container. Insert the entire contents of the container by using the begin() and end() iterators of the container as parameters to this function.

Parameters
firstiterator pointing to first element in range to insert/replace
lastiterator pointing to one past the last element to insert/replace
See also
insertfrom(), replace(), update()

◆ replacefrom()

template<class Iter , class InsertPolicy >
Query& mysqlpp::Query::replacefrom ( Iter  first,
Iter  last,
InsertPolicy &  policy 
)
inline

Replace multiple new rows using an insert policy to control how the REPLACE statements are created using items from an STL container.

Parameters
firstiterator pointing to first element in range to replace
lastiterator pointing to one past the last element to replace
policyinsert policy object, see insertpolicy.h for details
See also
insert()

◆ reset()

void mysqlpp::Query::reset ( )

Reset the query object so that it can be reused.

As of v3.0, Query objects auto-reset upon query execution unless you've set it up for making template queries. (It can't auto-reset in that situation, because it would forget the template info.) Therefore, the only time you must call this is if you have a Query object set up for making template queries, then want to build queries using one of the other methods. (Static strings, SSQLS, or the stream interface.)

References mysqlpp::SQLQueryParms::clear(), and template_defaults.

Referenced by exec(), execute(), store(), and use().

◆ result_empty()

bool mysqlpp::Query::result_empty ( )

Returns true if the most recent result set was empty.

Wraps DBDriver::result_empty()

References mysqlpp::Connection::driver(), and mysqlpp::DBDriver::result_empty().

◆ store() [1/4]

StoreQueryResult mysqlpp::Query::store ( )

Execute a query that can return a result set.

Use one of the store() overloads to execute a query and retrieve the entire result set into memory. This is useful if you actually need all of the records at once, but if not, consider using one of the use() methods instead, which returns the results one at a time, so they don't allocate as much memory as store().

You must use store(), storein() or use() for SELECT, SHOW, DESCRIBE and EXPLAIN queries. You can use these functions with other query types, but since they don't return a result set, exec() and execute() are more efficient.

The name of this method comes from the MySQL C API function it is implemented in terms of, mysql_store_result().

This function has the same set of overloads as execute().

Returns
StoreQueryResult object containing entire result set
See also
exec(), execute(), storein(), and use()

References str(), and template_defaults.

Referenced by mysqlpp::Connection::count_rows(), store(), and store_next().

◆ store() [2/4]

StoreQueryResult mysqlpp::Query::store ( SQLQueryParms p)

Store results from a template query using given parameters.

This method should only be used by code that doesn't know, at compile time, how many parameters it will have. This is useful within the library, and also for code that builds template queries dynamically, at run time.

Parameters
pparameters to use in the template query.

References store(), str(), and template_defaults.

◆ store() [3/4]

StoreQueryResult mysqlpp::Query::store ( const SQLTypeAdapter str)

Execute a query that can return rows, returning all of the rows in a random-access container.

Parameters
strif this object is set up as a template query, this is the value to substitute for the first template query parameter; else, it is the SQL query string to execute

Because SQLTypeAdapter can be initialized from either a C string or a C++ string, this overload accepts query strings in either form. Beware, SQLTypeAdapter also accepts many other data types (this is its raison d'etre), so it will let you write code that compiles but results in bogus SQL queries.

To support template queries, there many more overloads of this type (25 total, by default; see lib/querydef.pl), each taking one more SQLTypeAdapter object than the previous one. See the template query overview above for more about this topic.

References mysqlpp::SQLTypeAdapter::data(), mysqlpp::SQLTypeAdapter::length(), store(), and template_defaults.

◆ store() [4/4]

StoreQueryResult mysqlpp::Query::store ( const char *  str,
size_t  len 
)

Execute a query that can return rows, returning all of the rows in a random-access container.

This overload is for situations where you have the query in a C string and have its length already. If you want to execute a query in a null-terminated C string or have the query string in some other form, you probably want to call store(const SQLTypeAdapter&) instead. SQLTypeAdapter converts from plain C strings and other useful data types implicitly.

References mysqlpp::Connection::driver(), mysqlpp::Connection::errnum(), errnum(), error(), mysqlpp::DBDriver::execute(), reset(), store(), mysqlpp::DBDriver::store_result(), str(), template_defaults, and mysqlpp::OptionalExceptions::throw_exceptions().

◆ store_if() [1/3]

template<class Sequence , typename Function >
Function mysqlpp::Query::store_if ( Sequence &  con,
const SQLTypeAdapter query,
Function  fn 
)
inline

Execute a query, conditionally storing each row in a container.

This method wraps a use() query, calling the given functor for every returned row, and storing the results in the given sequence container if the functor returns true.

This is analogous to the STL copy_if() algorithm, except that the source rows come from a database query instead of another container. (copy_if() isn't a standard STL algorithm, but only due to an oversight by the standardization committee.) This fact may help you to remember the order of the parameters: the container is the destination, the query is the source, and the functor is the predicate; it's just like an STL algorithm.

Parameters
conthe destination container; needs a push_back() method
querythe query string
fnthe functor called for each row
Returns
a copy of the passed functor

References mysqlpp::UseQueryResult::fetch_row().

◆ store_if() [2/3]

template<class Sequence , class SSQLS , typename Function >
Function mysqlpp::Query::store_if ( Sequence &  con,
const SSQLS &  ssqls,
Function  fn 
)
inline

Pulls every row in a table, conditionally storing each one in a container.

Just like store_if(Sequence&, const SQLTypeAdapter&, Function), but it uses the SSQLS instance to construct a "select * from TABLE" query, using the table name field in the SSQLS.

Parameters
conthe destination container; needs a push_back() method
ssqlsthe SSQLS instance to get a table name from
fnthe functor called for each row
Returns
a copy of the passed functor

References mysqlpp::UseQueryResult::fetch_row().

◆ store_if() [3/3]

template<class Sequence , typename Function >
Function mysqlpp::Query::store_if ( Sequence &  con,
Function  fn 
)
inline

Execute the query, conditionally storing each row in a container.

Just like store_if(Sequence&, const SQLTypeAdapter&, Function), but it uses the query string held by the Query object already

Parameters
conthe destination container; needs a push_back() method
fnthe functor called for each row
Returns
a copy of the passed functor

References mysqlpp::UseQueryResult::fetch_row().

◆ store_next()

StoreQueryResult mysqlpp::Query::store_next ( )

Return next result set, when processing a multi-query.

There are two cases where you'd use this function instead of the regular store() functions.

First, when handling the result of executing multiple queries at once. (See this page in the MySQL documentation for details.)

Second, when calling a stored procedure, MySQL can return the result as a set of results.

In either case, you must consume all results before making another MySQL query, even if you don't care about the remaining results or result sets.

As the MySQL documentation points out, you must set the MYSQL_OPTION_MULTI_STATEMENTS_ON flag on the connection in order to use this feature. See Connection::set_option().

Multi-queries only exist in MySQL v4.1 and higher. Therefore, this function just wraps store() when built against older API libraries.

Returns
StoreQueryResult object containing the next result set.

References mysqlpp::Connection::driver(), mysqlpp::Connection::errnum(), errnum(), error(), mysqlpp::DBDriver::next_result(), mysqlpp::DBDriver::nr_error, mysqlpp::DBDriver::nr_more_results, store(), mysqlpp::DBDriver::store_result(), and mysqlpp::OptionalExceptions::throw_exceptions().

◆ storein() [1/2]

template<class Container >
void mysqlpp::Query::storein ( Container &  con)
inline

Execute a query, and store the entire result set in an STL container.

This is a set of specialized template functions that call either storein_sequence() or storein_set(), depending on the type of container you pass it. It understands std::vector, deque, list, slist (a common C++ library extension), set, and multiset.

Like the functions it wraps, this is actually an overloaded set of functions. See the other functions' documentation for details.

Use this function if you think you might someday switch your program from using a set-associative container to a sequence container for storing result sets, or vice versa.

See exec(), execute(), store(), and use() for alternative query execution mechanisms.

◆ storein() [2/2]

template<class T >
void mysqlpp::Query::storein ( T &  con,
SQLQueryParms p 
)
inline

Store template query results into a container.

This method is not intended to be used directly. It is part of the call chain in processing calls to one of the many storein() overloads that take a container and one or more SQLTypeAdapter parameters.

◆ storein_sequence() [1/3]

template<class Sequence >
void mysqlpp::Query::storein_sequence ( Sequence &  con)
inline

Execute a query, storing the result set in an STL sequence container.

This function works much like store() from the caller's perspective, because it returns the entire result set at once. It's actually implemented in terms of use(), however, so that memory for the result set doesn't need to be allocated twice.

There are many overloads for this function, pretty much the same as for execute(), except that there is a Container parameter at the front of the list. So, you can pass a container and a query string, or a container and template query parameters.

Parameters
conany STL sequence container, such as std::vector
See also
exec(), execute(), store(), and use()

◆ storein_sequence() [2/3]

template<class Sequence >
void mysqlpp::Query::storein_sequence ( Sequence &  con,
const SQLTypeAdapter s 
)
inline

Executes a query, storing the result rows in an STL sequence container.

Parameters
conthe container to store the results in
sif Query is set up as a template query, this is the value to substitute for the first template query parameter; else, the SQL query string

There many more overloads of this type (25 total, by default; see lib/querydef.pl), each taking one more SQLTypeAdapter object than the previous one. See the template query overview above for more about this topic.

◆ storein_sequence() [3/3]

template<class Seq >
void mysqlpp::Query::storein_sequence ( Seq &  con,
SQLQueryParms p 
)
inline

Execute template query using given parameters, storing the results in a sequence type container.

This method should only be used by code that doesn't know, at compile time, how many parameters it will have. This is useful within the library, and also for code that builds template queries dynamically, at run time.

Parameters
concontainer that will receive the results
pparameters to use in the template query.

◆ storein_set() [1/3]

template<class Set >
void mysqlpp::Query::storein_set ( Set con)
inline

Execute a query, storing the result set in an STL associative container.

The same thing as storein_sequence(), except that it's used with associative STL containers, such as std::set. Other than that detail, that method's comments apply equally well to this one.

◆ storein_set() [2/3]

template<class Set >
void mysqlpp::Query::storein_set ( Set con,
const SQLTypeAdapter s 
)
inline

Executes a query, storing the result rows in an STL set-associative container.

Parameters
conthe container to store the results in
sif Query is set up as a template query, this is the value to substitute for the first template query parameter; else, the SQL query string

There many more overloads of this type (25 total, by default; see lib/querydef.pl), each taking one more SQLTypeAdapter object than the previous one. See the template query overview above for more about this topic.

◆ storein_set() [3/3]

template<class Set >
void mysqlpp::Query::storein_set ( Set con,
SQLQueryParms p 
)
inline

Execute template query using given parameters, storing the results in a set type container.

This method should only be used by code that doesn't know, at compile time, how many parameters it will have. This is useful within the library, and also for code that builds template queries dynamically, at run time.

Parameters
concontainer that will receive the results
pparameters to use in the template query.

◆ str() [1/2]

std::string mysqlpp::Query::str ( const SQLTypeAdapter arg0)
inline

Get built query as a C++ string with template query parameter substitution.

Parameters
arg0the value to substitute for the first template query parameter; because SQLTypeAdapter implicitly converts from many different data types, this method is very flexible in what it accepts as a parameter. You shouldn't have to use the SQLTypeAdapter data type directly in your code.

There many more overloads of this type (25 total, by default; see lib/querydef.pl), each taking one more SQLTypeAdapter object than the previous one. See the template query overview above for more about this topic.

◆ str() [2/2]

std::string mysqlpp::Query::str ( SQLQueryParms p)

Get built query as a null-terminated C++ string.

Parameters
ptemplate query parameters to use, overriding the ones this object holds, if any

◆ update()

template<class T >
Query& mysqlpp::Query::update ( const T &  o,
const T &  n 
)
inline

Replace an existing row's data with new data.

This function builds an UPDATE SQL query using the new row data for the SET clause, and the old row data for the WHERE clause. One uses it with MySQL++'s Specialized SQL Structures mechanism.

Parameters
oold row
nnew row
See also
insert(), replace()

◆ use() [1/4]

UseQueryResult mysqlpp::Query::use ( )

Execute a query that can return rows, with access to the rows in sequence.

Use one of the use() overloads if memory efficiency is important. They return an object that can walk through the result records one by one, without fetching the entire result set from the server. This is superior to store() when there are a large number of results; store() would have to allocate a large block of memory to hold all those records, which could cause problems.

A potential downside of this method is that MySQL database resources are tied up until the result set is completely consumed. Do your best to walk through the result set as expeditiously as possible.

The name of this method comes from the MySQL C API function that initiates the retrieval process, mysql_use_result(). This method is implemented in terms of that function.

This function has the same set of overloads as execute().

Returns
UseQueryResult object that can walk through result set serially
See also
exec(), execute(), store() and storein()

References str(), and template_defaults.

Referenced by use().

◆ use() [2/4]

UseQueryResult mysqlpp::Query::use ( SQLQueryParms p)

Execute a template query that can return rows, with access to the rows in sequence.

This method should only be used by code that doesn't know, at compile time, how many parameters it will have. This is useful within the library, and also for code that builds template queries dynamically, at run time.

Parameters
pparameters to use in the template query.

References str(), template_defaults, and use().

◆ use() [3/4]

UseQueryResult mysqlpp::Query::use ( const SQLTypeAdapter str)

Execute a query that can return rows, with access to the rows in sequence.

Parameters
strif this object is set up as a template query, this is the value to substitute for the first template query parameter; else, it is the SQL query string to execute

Because SQLTypeAdapter can be initialized from either a C string or a C++ string, this overload accepts query strings in either form. Beware, SQLTypeAdapter also accepts many other data types (this is its raison d'etre), so it will let you write code that compiles but results in bogus SQL queries.

To support template queries, there many more overloads of this type (25 total, by default; see lib/querydef.pl), each taking one more SQLTypeAdapter object than the previous one. See the template query overview above for more about this topic.

References mysqlpp::SQLTypeAdapter::data(), mysqlpp::SQLTypeAdapter::length(), template_defaults, and use().

◆ use() [4/4]

UseQueryResult mysqlpp::Query::use ( const char *  str,
size_t  len 
)

Execute a query that can return rows, with access to the rows in sequence.

This overload is for situations where you have the query in a C string and have its length already. If you want to execute a query in a null-terminated C string or have the query string in some other form, you probably want to call use(const SQLTypeAdapter&) instead. SQLTypeAdapter converts from plain C strings and other useful data types implicitly.

References mysqlpp::Connection::driver(), mysqlpp::Connection::errnum(), errnum(), error(), mysqlpp::DBDriver::execute(), reset(), str(), template_defaults, mysqlpp::OptionalExceptions::throw_exceptions(), use(), and mysqlpp::DBDriver::use_result().

Member Data Documentation

◆ template_defaults

SQLQueryParms mysqlpp::Query::template_defaults

The default template parameters.

Used for filling in parameterized queries.

Referenced by execute(), operator=(), reset(), store(), and use().


The documentation for this class was generated from the following files:
mysql++-3.2.5/doc/html/refman/functions_v.html000755 000765 000024 00000007754 13515046516 022051 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Class Members
MySQL++  3.2.5
Here is a list of all documented class members with links to the class documentation for each member:

- v -

doc/html/refman/structmysqlpp_1_1RefCountedPointerDestroyer_3_01MYSQL__RES_01_4-members.html000755 000765 000024 00000010011 13515046516 034637 0ustar00tangentstaff000000 000000 mysql++-3.2.5 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::RefCountedPointerDestroyer< MYSQL_RES > Member List

This is the complete list of members for mysqlpp::RefCountedPointerDestroyer< MYSQL_RES >, including all inherited members.

operator()(MYSQL_RES *doomed) constmysqlpp::RefCountedPointerDestroyer< MYSQL_RES >inline
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1ReportDataTruncationOption.html000755 000765 000024 00000031467 13515046516 030133 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::ReportDataTruncationOption Class Reference
MySQL++  3.2.5
mysqlpp::ReportDataTruncationOption Class Reference

Set reporting of data truncation errors. More...

#include <options.h>

Inheritance diagram for mysqlpp::ReportDataTruncationOption:
Collaboration diagram for mysqlpp::ReportDataTruncationOption:

Additional Inherited Members

- Public Types inherited from mysqlpp::DataOption< T >
typedef T ArgType
 Alias for template param.
 
- Public Types inherited from mysqlpp::Option
enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 
- Public Member Functions inherited from mysqlpp::Option
virtual ~Option ()
 Destroy object.
 
virtual Error set (DBDriver *dbd)=0
 Apply option.
 
- Protected Member Functions inherited from mysqlpp::DataOption< T >
 DataOption (const T &arg)
 Construct object.
 
- Protected Attributes inherited from mysqlpp::DataOption< T >
arg_
 The argument value.
 

Detailed Description

Set reporting of data truncation errors.


The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1Set__coll__graph.png000644 000765 000024 00000012411 13515046516 025652 0ustar00tangentstaff000000 000000 ‰PNG  IHDR¾mÞÛsRGB®ÎéÃIDATxíE׆°’3’£dQ@ÁŠ " ¨„$(P"*¢”ˆJÄ2ʇ€@(‚P ä”,Q„%-JÎyþ~úÿú~³wï݅˲;Û§j÷ÎtŸNïyûôéž¹»i%bÅ"ºˆN›ºÆkGkø,ñ-R%–ø©ÒìvЖø–©(¿ŽúèÑ£²yóf¿/IÆuÿý÷K–,Y’¤­¤nÄ·Ä7@V¨PAÒ¤Icní§.^¼(;wîô ™rU|Oü¼yóZâ'’ŸçÎKd‰”§ncü”g3Ûã `‰m)Kü”g3Ûã `‰m)Kü ›­]»V5j$E‹•|ùòIÍš5eöìÙAZ×w˦ñôéÓž ·k×N&OžìI×*%K|fÓ¦M“5jȤ[·nÒµkW¹|ù²Ô¯__&L˜àÒ¼¾Ë:H›6m<f’\ºtÉ“®Uºx;ÓräÈgÑ¢Eεk×< ïüùóŽòòÎ#<â¨sì@™+W®8+VtJ–,HS^ÛY¼x±®ÿÔ©Sô .8»wïv®^½ê¨spgùòåºýiذ¡S·n]GM¬@™3gÎèºÜiFŸ]O¢¥K—:*rÔM'cÆŒŽzNà,\¸P—Y¹r¥®£qãÆNºtéô5ù;vìp:uêä¨i:­ZµjZ¿gÏžNúôéìÙ³ëôêÕ«ëIC&“pàÀZk&L† õŽ1Bç1IÛ¶m«ËßvÛm:À€:_eÊ”q4h ûËÄó"–ø^PJ¦:‰%þСC5y>vD¬D‰ŽÚ8* Ñ+×… vðö†øõêÕsŽ?®½3¤6DlÕª•.Kxm&°aÃ4Ù·oßîDEE9*®×íŸ ¤öÎÁƒµïpªV­ªõ† ¢Ë11YFŽ©Ç±zõjñ™\è:tH§%ô+5߯øÿ UH”` ¸~ýzÙ³gtìØQ”wE(éܹ³ÞlÛ¶-P¾OŸ>’3gN½1®\¹rÈÇÿ->X29vÓ×}²1þ-0ïäÉkÕÓà4êÕæt2uêï· ¶IKü$æÀ‘#gdÅŠÊã;ê…´«ŠøëÄžð$±Ts–øIŒùôéëc½tvúôõÂÚÿ¾Ä’ÄÝIµÍYâ'±é'N\#êûïV w¦L±áN$º°ÄO" ifÿþc²iÓ~¾àh•pgæÌMê‹.—iöâæ#`‰ó1´ÀF6**.ä—.]‘yóþèÙ‹›@\+Üü6Sm “&­ ¹‘M—.úÕšT‹Ë­¸%~¡¾mÛß²k×?![ãTgñâmêÛùù61òXâGÓ5æ°‘ 'Äý3fl —mÓ#Œ€%~„ WݤI«õ¹}¸|Ç!ÜY.Û¦GKüªºµk÷È¡C§BeÒøƒV«VEËáÃñë Ø‹BÀ÷ogÞ:*¼eKŒT®\4Ö1fLÌ1úDIþüÙ­ð×Ö¯ß'õêÝH³7ß¾ysàŠ\­-ZüGŠ¿]ý±*û‡Ÿ"‡ªçš¢m¨ã+«è',ñýdM;ÏXâ{†Ê*ú K|?YÓŽÅ3–øž¡²Š~BÀßOÖ´cñŒ€%¾g¨¬¢Ÿ°Ä÷“5íX<#`‰ï*«è',ñýdM;ÏXâ{†Ê*ú K|?YÓŽÅ3–øž¡²Š~BÀßOÖ´cñŒ€%¾g¨¬¢Ÿ°Ä÷“5íX<#`‰ï*«è',ñýdM;ÏXâ{†Ê*ú K|?YÓŽÅ3–øž¡²Š~BÀßOÖ´cñŒ€%¾g¨¬¢Ÿ°Ä÷“5íX<#`‰ï*«è',ñýdM;ÏXâ{†Ê*ú K|?YÓŽÅ3–øž¡²Š~BÀßOÖ´cñŒ€%¾g¨¬¢Ÿ°Ä÷“5íX<#`‰ï*«è'âüG”•+WÊ'Ÿ|â§1&˱ÄÄd•ôéÉ—ïl²ìŸŸ:5pà@¹ãŽ;ÜCŠŽCüI“&ɳÏ>+µjÕr+Úk‹@ŠCàüùó²zõjY·nT©RÅÝÿè°ÿüíý÷ßw+Úk‹@ŠCààÁƒòÜsÏ…ì·ñCÂbýŽ€%¾ß-lÇKü°ØD¿#`‰ïw Ûñ…D ìæ6¤v2Lœ;w®üùçŸòÆoÜÔÞqBðÝwßÉŠ+äôéÓê?•W–|PüqõÊoK°í .ȵk×$sæÌ ê†R8s挌5J6mÚ$‡VÇ ùä±Ç“-Z¨cÑô¡Š$*1e̘1Á±ìß¿_†*Ý»w—ܹs'ªä¤œâ=>†Ø²eËMÇtܸq2cÆ },öÒK/I®\¹dðàÁòÅ_xjûã?–~ýúyÒ V:v옼òÊ+2þ|©Y³¦têÔIŸKÿðÃÒ·oß`õëºoܸ±,^¼8Á²L^œ€ã8 ê&g…öø—.] “7o^ùçŸ4(%K–ÔÞmïÞ½B~©R¥$**J{ªL™2IöìÙ˜üûï¿BZÖ¬YuÚŽ;äòåËB¤ì]»vIÑ¢E%C† râÄ )P €ÉÖŸgÏžÕÁs± äÌ™Së“Ix5¼Ô¾}ûZ¦L™€‡Ãôï6mZ]¹§ì´iÓ¤U«V±ŽÇÒ¤I#³gÏ–®]» ×à‘é–,YtÚÉ“'ñâE9räˆÜ~ûí:=Ô¯+W®h¬Üyßÿ½€ÓèÑ£¥H‘":ë©§žÒ+yÛ·o—råÊétôÀ)OžÒFýì³Ït:ämÙ²¥tîÜY(Ó«W/1$C† ‘bÅŠÉÆåÝw߈ ÁòΚ5K×c~Q/çøñãÚ€€W¿~}éÖ­›¬ZµJz÷î-•*UÒ@“GÝxm&íï¿ÿ.o¿ý¶|úé§z,î{HEÛ¬,Ç„mÛ¶•Úµkëæ1"uza\&Ò‹/¾(­[·–o¿ýV~ûí7­÷Þ{ïɰaÃL—ŸLÔ_~ùE¶mÛ&ß|óM <ýO< ½Éd"2y!9Â$à'Â$¿ûî»õŠá±ã%T‚Œxî·ÞzKž~úi騱£¾ÿúë¯õ'ÞŸÉL_͘´f,L2ê?~¼&:×?ü°©“ ñå—_ê¾²c7l…3!¯OŸ>š'N”åË—ëöÈŸ3gNWÆÒ¾}{m&¸™Ô¤GJ"êàÝxê ›7oÖ–Á1pf4³¾nݺxˆ‰,[¶Lò°lC@ êÁ3OŸ>]Ïüh6z¦|(‘x !<“ã×_ ¨2¡ ØØ±cåÔ©S2bÄÇêÁ$4«ˆûÖ°aCáuŽFézÇŒ#GÕ–É8uêTMPBÚ†8#GŽÔäéÒ¥‹ŽÇ!ˆ›ô´ÿÓO?i#¾Ðwúà¼è¹sçôªéNçš•:˜§ö ŒÜßbM"œñ9vÁüüóϺJú1{ôè¡W5l£'×:tÐõ±„œ+"ްtéR­†Ýè#“qæÌ™rçwjçgÂ$8Áj„3ÎÄÔσ'V&&%íÓGVéHIĈÿüóÏkT«VM÷ O‘Íý¡C‡äÑGÕCx„˜òО páÂzɆܬ_}õ•ô_ý%”Å åÏŸ_Ðˇ“%JH:ut;è,XP¯F¿]»vÚ¦³JqOmˆ|Ïd"žoÒ¤‰^M Á¸È‚ ´!!¡«!̃…6ñ|Íš5“ &hòBTH‰sp‹!‰;-Ô5ÞçÃÊ€Ðÿ5jè•Ìè7hÐ@{OV^Iab„ú`¼?›y 陀¡„Õ€U† ?á õb3¬„½÷ÝwŸNg%@p(¬²?Xž|òI½r0ià{¬¦M›êŒI~£ráŽé€Ùá›àûb@–:€X²d‰°" L¼=§LòŒw'\2Â'Ä®n!†4unˆÍ5y´™àÙyüM8Æ‚'>|¸öîLJâdÈA¸f2˜ñ›4>!=u¶iÓF˜ˆ3·Ž¹†¤„k֬ѓΤó  ¤í3ÙðÜF°‰{|Œ×ž˜'”¯óÊ 1>{*쟰Ñ7B½„<aõadÇÀ Àôã³—_~Y‡Z„€8FBN>oD"FüPÕ1¼ ±>á3ž¥Y»v­&/Ïž€P¢‚a ›G#xêªZµªIÒõ° xŽø&‘)„:¼†@ {Þ¼y¾Q—û”/lôM]|Žfüøã²páB©W¯žàá˜ì¡„wýúõ±öè±Ê~VÑtp0ÆìwÜã3é¡Úp§A0BÂ&/ûöá$T½ÆV¯¿þz`ÃÑG&“WaB:2y¸†/„7*ÿs7Z“Çò=ô8¡`¹5±1 K=^†p… ¡^ CLMŒGœŠ '›Í ž²‰5áeh—z³Ø|W¯^]WE|M(c–÷=ñ0a›×Ý»wë8–˜ý“b2.êc5£múËfÚÄ¥œj1)¹géfò³º~°á<ž aâc÷ø ±ó;ï¼£½  á ¬#{3> HÆY¿¡8Ú1›TÒ'cAÀÒ«à\°ã”)S´ÍÀ³ÿþzOåå¹öaóÍžBgðbµ¿•ˆyü„:b¼D‡ð£áôƒAAÇS2p–ùž={ê¼gžyF{³òåËkš²¦nî u 0§x+V ŽÊð¾ĦB®^xA§3áØ@qNÎì¾çÄ ÏY<§ á ýøðÃõJÄflŠ…ßW!‚qÙ˜¶˜xg³¡ÆK3nŒKØÇF’ÉJÜÂÑ(õ² r†0fö0ìKÈ@Ø+C^ ˆ‹7FæÞ†'åô ì-°÷ôÉÆjÌ8>¡N~À‡°S,³j³¢1޹Û®“ÕìønøGZ¾¿hÑ¢H·¨O…wÄ;¹…˜“c=âZŽ˜|âB6E¤ãU!7“Ç-„ÄÙ”ÍKªñ. ù0"žÚ›ºë wMÿ˜8xV6qÔ,œããÙi;[¶l±²™Œ"¾§·îãÒX…Õ dÆ+³j/^™ÀñígÜõćƒ[/¾kóZ2\óü>~|^oá|œ°†å;X…³çPÂJÙ¼õr8 Þ‡Ó N§ÞP1»[‡9ü„’à‰JÇ„~¡òð”æÐ T>i„… mFÕe2ÂXÝx³ Mh#jʺ?²…[×}n½ë½ŽºÞ‚×SŽð K²9v»žz8 Ìž*â™B dàÙŠEnI¨c¡·$ñ…:I~ª“¶mXBÀ?!„l¾/°Ä÷¥Yí B ìæ–óV+”Œ@¸—êSâsþܼyó”<^Ûw‹@žw„zžçT'PÂ^Xü‹@´ñýk\;²x°Ä›å_,ñýk[;²x°Ä›å_þüêÜM ̆IEND®B`‚mysql++-3.2.5/doc/html/refman/inherit_graph_23.png000644 000765 000024 00000012153 13515046516 022445 0ustar00tangentstaff000000 000000 ‰PNG  IHDRà1ÃO¥ksRGB®Îé%IDATx휰,Ɇë®mÛ¶bmÛV¬më®k+Ö¶mÛ¶Í»v½ÿË}Ù[ÓgºçÌÌÑÝíŒèi;«²*óÏìéE¡¢ŠzƒéV«6+Tø›•V3¡â@/r À^d~ÕtÅJ«9Pq 79“Òå—_(Sª9ÐÅsà¶ÛnKEëo+~ bQRõ¼â@Å&8ðÓO?… 7ܰn‰B\mµÕê¨V¨8Ð PX ² YS%Tè~TØý<®Z¨8PÈJ YS%Tè~TØý<®Z¨8PÈ^/¸à‚°Í6Û¾`W&<ýôÓa­µÖ “M6Ym´Ñ /Ž<òÈð×_ue3m×uà 7„¥–Z*ôïß¿C]¯¾úª¥­»îºÒšyðì³ÏZ=´ãÇf›mî¾ûî¶ùqÚi§Õí{gú÷Í7ß„ß~û­3YûDž^_{íµððÃw;3o¹å–0ÿüó‡^x!l²É&áC c5VØm·Ý²Ë.~ÿý÷nïCgx÷Ýwí·ÞŽ>úèžÒÅ_li÷Þ{oú¸éë/¾øÂêcŒ1´ÓN¦œrÊðöÛo‡EY$œxâ‰M×—x饗ÂSO=•>êô5ý¹âŠ+:¿·3¶-€¿þúk`ÀÿüóÏðÎ;ïØ奨^|ñEc¤OÎ÷ß?|ýõ×5ïüᇆo¿ý6{Æ.óÈ#„ü1{ÆÅ?ü`‚öÕW_Ù¤zï½÷jÒ¹ùî»ï/í=ôÐCáõ×_Ïò°*~öÙgvÏ.ðè£Ö¬”rІŸþ9[½Ó{Þqã7³Î:«½Ï{ì6ß|óÀd>ùä“Âyþùç[ݼ}u¢?}ô‘ßÚùƒ>>ø õ×è|„Þx㠻架œ×¼_Ú?ÒÿøãðË/¿xV;óìÆo¬y†wÈ!‡¬yÆ ý~àj–gißé#}OÇf—]v GuT8î¸ãÂwÜf™e–pÖYgÕÔ_¯nÏÀ8¿/¿üÒu83?às ⽞þùÀ\ñgûlkûºë®‹.€L©eQ»Œ ˜l!ë ÷R'£vñ÷‡z¨Õóý÷ß[Zþgíµ×Žô*@©„6i®¿þú¨U<žyæ™Vïã?]§šj*ë+m±¨q8!äK,±„Ýæû{ÕUWŃ>ØÒÀ¡‡ÚøÀÙû½×^{Åé§Ÿ>xà™jç²ÅÍ;&îðÃoÂ#À&ûtÓMï¹ç;Èð¤“NŠ7Ýt“õyÏ=÷ŒÓN;ídyÊêf1c¬X`+Ÿ'´ãˆp³¨¬´ÒJ6¨”Å\»¬-ÎŒãòË/o¼Gà!„ò /´ë¾òÓ#È$‚¤öcŽØ½T0»¿æškLиSO=ÕÒ]tQ[Ù¸Ù}÷Ý#«+“ÉÈŽÉÁêË@1ÁœöÛo¿Bd²¤4É$“Ø„pô‰FÚd§mDì² ,¥!Ä´• ;7»ì;ž|òIÛñÀ«¯¾:kBªœí@,X²¹ìZªn–^táˆà!€]t‘ee'FHSdñ{ë­·¢ì®(u5Û¡?þøc+óÄOØ»óþh5>Ñ]8´v£5ÖX#¢Ù@euï¼óΦ©XÆÿÿ „ìp üuÔQã 3Ì¥r[GæãáH• —]vYº¤=©yáÒK/ÍŠœvˆ­7ÅSº›%êB‹F˜i¦™‚‹°é¦›Öô•|К>§eËêÆ^ó9âe@˜(K:€Ì3Ï<fŸ}öàv?(éyççYƒÑöo–ØÇ/Úaüý˜ !ào8©_ "ŠaÀË&0  ¦"ˆ $»ÇÎü08E¤•;Kbò3x©À¦é!iZV0wú)[5HýÊRè£vp{Ù¯Ê+œTœÆgœ ]Ä€ À â¸ÛG1Èö ,X {M™†¾JEµ,Lx©|Aöœ½ãÍ7ßlÚïßY*«›÷ÝdŒX\÷ßÛéÙ©!iY¿AÓV™ö˃q`€fo°ÁA¦D†ìò,Ðé"ØÙþöJ¾TçºUÀÒË›NîÈ”\v æ2©—òßù£ˆQ¸ ‚‰î/w„¥Ë§eöe@¸¤ŽÖØ€åèž„%Ë rê(£Û€”¥l5:(*æïM°=]¥ú:ãŒ3Z]Ø]€véM4Q”0Jµ³4@PIÒ8Üæ%˜g€+)üêN0Á56h¾r‹ZHYMШÅ+«ˆºH‹YfûJó0»¾ÒÞÔ‘>/°ÀQ»ND€`t¡uJý¶´z?eu“ÿ€°ñ¤l>·o„ñ:¥úߵ蘭L^Êp0g|ž”ç>î^Gož»„iåÅ€·Aãò„±-ÿ]6QÒt9&) ºénˆ4¸âŠ+šÑ‚Æäur¤ @Gb=½³g€!ê–Ï,ÊßdÅ9Lœä3´ÖïógÙ?6iäÍ'u¸øAøNº‹à ¼u~±P8Ón›ê(¸k†¨“10hÒòŒ ãÔW¨L» „ѪÓPïP§P7Ñãó€#_aþ±Ý£ªjW¬›–H=)˜‘O¯¤äóÝ£âäëÖS“õ´”!#G#‚W¨~8©qüwÁ¯”·Ø„]AêÆ¦Íƒ1Úm4¾Ø— õ¨!_`¿(È!Ý2fçw(Š—¢ŽilJÔqLÓûâ5ö"¶¤\0ÕûYõ© ä·éfm@Ê 9‹2¢óUuë½Â¡LõF°Á–\rÉš#oSyþüYñQ@†=&ZE@J>K·ß e´þéÒW uj«­¶2‚Èü®øQ»»‚PË]n¶>lH¹m¬X:žÍÖÓÕùËTÐ.AA‰Ý$.¯'‰€èÄ'§½ƒ”á^PD„ÁÓ@ÖHán™{ƒ]´§Q4âTñD ŠÛ‰>Kÿ&Y°7¼–}@k»‚Ðn@‘[!aÌOdz•ºzªL—`ÚY‚­(&0NZC@BšÅ`gÔ«Ô·ç–FÊŠE´€`%õë1xø„8€Ýòe*ç¹çžëÕ››» ÿ VºìyzAÙÔYN7öí:u&°Üó¦gémvÍbÛEÈcà«<Õëƒç) h®ÇO/ÿ‹Æ¡^P¼4 㟢ž‚4û*÷&®\@N˜õø\6?òÁÔ¸g¬Æ`ùxÕím×;p3O °€ðÙÒ^JEã•æië:¿Ý¶¢‚Î3Ï<“G]Ää,ÃÚB§Ô¹¸øâ‹[ˆ±Œ„£“˘Žr[P;:¨LL$.êÆ­UhqÛn»­=vØXŸòô[þ8K£¿„ÁA@ÛÌ«h ‰Âý@Ü ¨eåVIòƒzvÉ%—XÀ¶¾¤HRþ¹D•Ã=£ÅÂÞ+…÷‹ú@iùѬ_¸>p%x@s?ËÆ4TÚCÝ xTNøœ'øŒû…^¨ŒÏeóC ¨½;ïÿ 9ƒ/Ì'Æ>–ÕM~ÌOÇ÷…×ÁœK¸=Ѓà=„Òß‘Ø\\<„äµJe*hÛÁØt*/€0‹/€‚û÷ïoÌÃ¥(»Öªq+‹IT¾V¸Øl 2AÕ€;11ˆëÄGÅ#qIÐüDÚUíúœsα"؆ø»¶ÜrK»OÌŸP“Û’IF,"ý¥LY`¹÷‰H~9®M€Yp¤2›ËÓýÌàÒOÁB˜à TÖ‡²€æ2~–CQP<Ð>}$ö²Œñ,šÔ‹€x05E^ÜKÚ]Ža‘–p»¦Aðéû)äÍ[ú¡<{íÌi–†×=.€8J|àøƒ‰Æ.¢ð(‹¦HA¡f•ë LòÀ`Î8“}W#øW¡]5ÎlV6w’×@ÿÔ §·~J‘ 4f'Ï–ó>øtúÃâÄW¥À‹×ìÈ=³˜°S•õ¡, ¹ŒŸeã€à{€@_÷i$€øŒÍø“@4?¨QÝõE“~“†s¤Ü.€i¼5–ûQÔMD{a&À||Á¡2ì7¶˜þ;;À^>`åZj6ñ…ØÍ*{ýé™x@“êöAÅRo²d}·Vú!(e ÜN©Ÿ’¿bÈ–c;¶F(ñ­Ä‹–‘TÅ õÔ>T&ä.%bf Yƒêõ8M-iûË ”ñ³l4QëÅëÏ 4h!µñ´Q9Óí…ŽÚG±ø\4?Ò:ýš¿ÿpŸd+cØ(€[‚5•÷ízû~fné;I ‰$|N*²}ôMØ[;ôÏll§–\Y©Üã,ržØ>ÀŒxH€‚f•óu7ºçk ÚÕŠ•e4Š™Ýç/Ü¡›‚/Z=ƒv=ËZ/°œÉGí²w-øÔP;c¾z»(˜ !P0Œ)ëi €ÂìÍeüÔhÁõÆEƒ <(žú\þóEj1·±€÷Š3¿3|.šY…©;_´«¸~â‘DþêCæM6òm6sß-XÔ‚—ù ‰¿‹`ò°zKå°@Úf•‰HAˆµ½5Wóœ€lv‚À)ƒËB6Wàk"â©¶ò!„ _ xK½ÀrL>!’jcmu³Å[v[Ω0Ó.-BË©—ƒU˜¼@ˆÂ>”4—ñ³lŠ‚âé+ÑK †,, ’LJÙÔA¡…ꢄ Ÿ©Û‰qeW¡<µR7ülÀo'½Ç%Â,|ÆÆ‚È Ë'bð¡mÊë°­¢ ˆ §c÷8¹þ+H:bóñ¥¼:mv¨—þU̲¢ç7¨ŒÓ{Á±a@ºÊˆ/±Aù ú€-ê6(¶ ð{é((@‡ Ë=âqáíÔ ,÷4?ð]bËW÷NÚe¬/&yò`g“²>8*Èûh²eÍeü,‡² xúHL-ö)íq€XJå® Š(ãsÙü þ4˜»ÍÇ—4¨¬î4:žØyðÆû ÈæÜEAð· õÆÞ“9àš>» tË_R4Ýàëe¾ dÈ“VÕN*5Apv3xó™ü%¾„À‘ÌSQ`y>Ÿß׫ÃÓÊÎe}( h.ãgÑ8ì\O7Pd¾èG˜ëQ+|özî@Ћ¨•ºpµÕêx¥õõ9L;7°^óß4ü§ ¾1¾Î¨¨â@ʰGm@©ÿêªÀò Cªi‰Ýâ†h©'Y!BÆZ*ª8Ъ°îUe+´ÉJÛd`U¼â@;¨°îUe+´ÉB°Þ?hµÙVU¼âÀ’eŸ4u؉ò(úŸÊÿ$÷ª—®8Ð&ˆîA¦¥ËS?|ù‡Õ}ÅŠ=ÂvÀi¶j¤â@Åã@%€ÕD¨8Ћ¨°™_5]q ÀjTèEü(× ç3IEND®B`‚mysql++-3.2.5/doc/html/refman/inherit_graph_37.png000644 000765 000024 00000005007 13515046516 022452 0ustar00tangentstaff000000 000000 ‰PNG  IHDR—$„Á¨¢sRGB®Îé ÁIDATxíZu¨M?ÏîîîÂVlÅîÂ[±PAÅDì»[Œ?TLÄî[Q±»»c¾ó;|³ìÍ·÷¾{õù˜{wgæLì™ßœÚ¡˜È‘@$+ cš!D\a“€WØDk6à2›â¸|êÔ)š>}º{µ) ø•@÷îÝ©V­Z.<šëÁƒ´aÃ&S0ð'­[·ÒíÛ·=X<4—æX¿~½~4w#¿H“&×vÍå•ËT !® „fº8“€—39® $`À„ÐLgøçÁµzõjêÛ·¯³·×ÇiðàÁT @JŸ>=µjÕŠV¬XAß¿wuéÒ¥T·n]‚“›;wnjÖ¬8pÀâùüù3Õ«WvïÞmÕÙ¶oß.íàÑW=hïÞ½v6¿Ïû÷ï§ÆÓ¤I“Ñÿþý©Zµj~û„£ñŸ×õë×éĉá˘S¦L¡%K–P5dÓÒ¥KGÈíôë×ÏâÃ&¢.I’$4vìXêÕ«Ý»wj×®MóçϾ?~Ю]»èáÇV?ûøÑ^ªT)¹òåË'ïW§NÚû¸?÷éÓ‡Þ¼yC5k֤ŋÓÚµk©C‡îlá/ã_vâþ%a¯òûüõëWu÷î]õóçOuçÎuéÒ%áÿõë—º|ù²:sæŒâÓ-u÷ïßW¯^½rO–bAXugÏžU ŚªÃÇÔñãÇÕË—/Õ§OŸo‚´1B•(QBžß½{§Þ¾}+ó;vL1ð¤?ß¾}SOŸ>•òµk×ÔÉ“'¥N3üþý[±VQX7È^F}ªT©Ôĉ5»ÜX*iҤ»oß>‘Û´iÓ\x0/ƒK%L˜PæÇú _Öp.|º0{ölùC¾ñâÅS ^aƒÌ M“Á*ÅçÏŸ«äÉ“ËZ?~¬Tª|ùò õš 'ÈRËP×cŒ÷ïß+´_¸pAWGzO:µZ°`ŸŠgôE¬våÁU®\Yq¶Ö*ãå° *¨ªU«Z‹À ÇŽ[Í›7O]¼xQeÏž]ñ©W*K–, >|X¥L™RÅŠKøK—.­'N,mvpµk×N,XP€€ÍÀZºté"|[¶l‘r•*Ud£Ð^lHƒãСCeëlРúòå‹´ãë?zô¨€«uëÖ²fÖLV»~ÀFa¾E‹ øñ¸p@!ô±ÖTüE¯Øü©{öLú{ûa@Òܹs‰A@Ë—/—kÛ¶mkæÌ™‰…I7oÞ$Ö¢4lØ0ic`Ó!Cw½Ì@·cÇJ›6­øB&L 'OžP¥J•ˆ7nܸAEŠ¡8q<óÒ¨?>±f—±ü´hÑ‚pá“ ®üùóS›6m"íÊÖx³ ¾ßéÓ§©gÏž“ Ù!‹ÞµkW1Ýl²âCMãÇ·ÆåC&&æ4ª2p±¡L™2ŸnY|l¤.ãåà³ M›6 >3Áù…0àüò %ø6/^¼@²‰¡óçÏ‹`àGð©¾Î;û|ïÂ… SÛ¶m´àË•+±æ³øGMl¢ˆO:¡5•´¡Œ¹ù„{-°lj%x`“DcÆŒ¡bÅŠ ðÑM5á€y#€O_ÞÚ½ÕÁ×ÂU´hQ*S¦Œª¨n8䎤iÓ¦tëÖ-BpÁVÅ%¸hÞ¼9 4H‚oë ¤Îó˜ÒÛÆ›!C)é“Ë*VÊ*ˆÕ«€ÐÆåT~8 q‰’Á‡TÖ„wcÍfE‹zûé“9sæÈøºžÝ ™—©Vúÿâ¢8@>öƒF±f­Ñ3RîÝ»·b‡Þjã|›Õs ª×i Œ¡åeupðà+Z„/äB‚Ë¥³ÃÂÀÛvn„ñÈ¿ î„Ò+§Sv>€‹U…qoCŽI“ÚX;)ö™t“ã;ú"=‚5ºçáìƒ ´G 9;ää°v6¡Šµ-JÏÈ/²SÔÈcáð{“s0úWÈz>‘L>MÀΜ9ÓƒÁkzTÀ|"rrBÇŸcêîô;<Ÿ"#˜P{~*¡$¤6aCðßÊ–-L×€úüQpÁŸÂgä–:vìÐBíÌpòž»Bw_‘ÒØp½º÷5å0HÀ] þ ³è>§)ÿÛðeÿx´†óa†Œ¦0àŠ¦–eÀv1š¾ƒO‡ß  8‘¾µz#Í…¬rT>Sx›ÄÔÅl àË·´H┘ýêæíþ–<4×ßZˆ™7æIÀ€+æíi´y#®h³1o!\1oO£Íý¬ÜPh†ßvçIEND®B`‚mysql++-3.2.5/doc/html/refman/structmysqlpp_1_1NullIsNull.html000755 000765 000024 00000010665 13515046516 025103 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::NullIsNull Struct Reference
MySQL++  3.2.5
mysqlpp::NullIsNull Struct Reference

Class for objects that define SQL null in terms of MySQL++'s null_type. More...

#include <null.h>

Detailed Description

Class for objects that define SQL null in terms of MySQL++'s null_type.

Returns a null_type instance when you ask what null is, and is "(NULL)" when you insert it into a C++ stream.

Used for the behavior parameter for template Null


The documentation for this struct was generated from the following file:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1LocalFilesOption.html000755 000765 000024 00000030621 13515046516 026023 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::LocalFilesOption Class Reference
MySQL++  3.2.5
mysqlpp::LocalFilesOption Class Reference

Enable LOAD DATA LOCAL statement. More...

#include <options.h>

Inheritance diagram for mysqlpp::LocalFilesOption:
Collaboration diagram for mysqlpp::LocalFilesOption:

Additional Inherited Members

- Public Types inherited from mysqlpp::DataOption< T >
typedef T ArgType
 Alias for template param.
 
- Public Types inherited from mysqlpp::Option
enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 
- Public Member Functions inherited from mysqlpp::Option
virtual ~Option ()
 Destroy object.
 
virtual Error set (DBDriver *dbd)=0
 Apply option.
 
- Protected Member Functions inherited from mysqlpp::DataOption< T >
 DataOption (const T &arg)
 Construct object.
 
- Protected Attributes inherited from mysqlpp::DataOption< T >
arg_
 The argument value.
 

Detailed Description

Enable LOAD DATA LOCAL statement.


The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/cmdline_8h_source.html000755 000765 000024 00000134365 13515046516 023105 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: cmdline.h Source File
MySQL++  3.2.5
cmdline.h
1 /***********************************************************************
2  cmdline.h - Declares the interface to the MySQL++'s command line
3  parsing logic, used by the examples and the utility programs.
4  Not intended for use by third parties! If it breaks, you
5  get to keep all the pieces.
6 
7  Copyright (c) 2007-2009 by Educational Technology Resources, Inc.
8  Others may also hold copyrights on code in this file. See the
9  CREDITS.txt file in the top directory of the distribution for details.
10 
11  This file is part of MySQL++.
12 
13  MySQL++ is free software; you can redistribute it and/or modify it
14  under the terms of the GNU Lesser General Public License as published
15  by the Free Software Foundation; either version 2.1 of the License, or
16  (at your option) any later version.
17 
18  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
19  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
21  License for more details.
22 
23  You should have received a copy of the GNU Lesser General Public
24  License along with MySQL++; if not, write to the Free Software
25  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
26  USA
27 ***********************************************************************/
28 
29 #if !defined(MYSQLPP_CMDLINE_H)
30 #define MYSQLPP_CMDLINE_H
31 
32 #include "common.h"
33 
34 #include <string>
35 #include <vector>
36 
37 #include <assert.h>
38 
39 namespace mysqlpp {
44  class MYSQLPP_EXPORT CommandLineBase
45  {
46  public:
49  typedef std::vector<std::string> ArgumentList;
51  typedef ArgumentList::const_iterator ArgumentListIt;
52 
56  const ArgumentList& extra_args() const
57  { return extra_args_; }
58 
61  operator void*() const
62  {
63  return successful_ ? const_cast<bool*>(&successful_) : 0;
64  }
65 
66  protected:
69  CommandLineBase(int argc, char* const argv[], const char* opts) :
70  argc_(argc),
71  argv_(argv),
72  opts_(opts),
73  successful_(argc > 0 && argv && opts)
74  {
75  assert(successful_);
76  }
78  virtual ~CommandLineBase() { }
79 
83  void finish_parse();
84 
86  const char* option_argument() const;
88  int option_index() const;
89 
95  void parse_error(const char* message = 0);
96 
98  int parse_next() const;
99 
101  virtual void print_usage() const = 0;
102 
104  const char* program_name() const { return argv_[0]; }
105 
108  bool successful() const { return successful_; }
109 
110  private:
112  int argc_;
113  char* const* argv_;
114  const char* opts_;
115  bool successful_;
116  ArgumentList extra_args_;
117  };
118 
119 
121  namespace examples {
123  extern MYSQLPP_EXPORT const char* db_name;
124 
126  class MYSQLPP_EXPORT CommandLine : public CommandLineBase
127  {
128  public:
131  CommandLine(int argc, char* const argv[],
132  const char* user = 0, const char* pass = 0,
133  const char* usage_extra = 0);
134 
139  void print_usage() const { print_usage(usage_extra_); }
140 
144  void print_usage(const char* extra) const;
145 
150  bool dtest_mode() const { return dtest_mode_; }
151 
153  const char* pass() const { return pass_; }
154 
160  int run_mode() const { return run_mode_; }
161 
163  const char* server() const { return server_; }
164 
166  const char* user() const { return user_; }
167 
168  private:
170  // Examples-specific command line parse results
171  bool dtest_mode_;
172  int run_mode_;
173  const char* server_;
174  const char* user_;
175  const char* pass_;
176  const char* usage_extra_;
177  };
178  } // end namespace mysqlpp::examples
179 
180 
182  namespace ssqlsxlat {
184  class MYSQLPP_EXPORT CommandLine : public CommandLineBase
185  {
186  public:
189  enum SourceSink {
193  ss_table
194  };
195 
198  CommandLine(int argc, char* const argv[]);
199 
201  void print_usage() const;
202 
207  const char* input() const { return input_; }
208 
210  SourceSink input_source() const { return input_source_; }
211 
213  SourceSink output_sink() const { return output_sink_; }
214 
216  const char* output() const { return output_; }
217 
219  const char* pass() const { return pass_; }
220 
222  const char* server() const { return server_; }
223 
225  const char* user() const { return user_; }
226 
227  private:
229  const char* input_;
230  const char* output_;
231  const char* pass_;
232  const char* server_;
233  const char* user_;
234  SourceSink input_source_;
235  SourceSink output_sink_;
236  };
237  } // end namespace mysqlpp::ssqlsxlat
238 } // end namespace mysqlpp
239 
240 #endif // !defined(MYSQLPP_CMDLINE_H)
241 
bool dtest_mode() const
Return true if we're in "dtest" mode This happens when an example gets the -D flag,...
Definition: cmdline.h:150
const char * user() const
Return the DB user name (-u argument)
Definition: cmdline.h:166
int run_mode() const
Return the -m flag value.
Definition: cmdline.h:160
no known input type given yet
Definition: cmdline.h:190
SourceSink output_sink() const
The output sink (destination) type.
Definition: cmdline.h:213
const char * program_name() const
Get the file name of the program's executable.
Definition: cmdline.h:104
ArgumentList::const_iterator ArgumentListIt
Iterator into ArgumentList.
Definition: cmdline.h:51
SourceSink
Types of inputs that ssqlsxlat will accept.
Definition: cmdline.h:189
Parses command line arguments and holds the results.
Definition: cmdline.h:44
const char * server() const
Return the DB server name (-s argument)
Definition: cmdline.h:163
an SSQLS v2 file
Definition: cmdline.h:192
Command line parsing mechanism for ../examples/*.cpp.
Definition: cmdline.h:126
SourceSink input_source() const
The input source type.
Definition: cmdline.h:210
const char * db_name
Name of examples' DB.
Definition: cmdline.cpp:199
const ArgumentList & extra_args() const
Get reference to list of command line arguments past the last flag and its possible argument.
Definition: cmdline.h:56
const char * server() const
DB server name, when input type is is_table.
Definition: cmdline.h:222
Command line parser for MySQL++'s ssqlsxlat tool.
Definition: cmdline.h:184
const char * pass() const
DB password, when input type is is_table.
Definition: cmdline.h:219
std::vector< std::string > ArgumentList
Type for a list of arguments.
Definition: cmdline.h:49
virtual ~CommandLineBase()
Hidden dtor to prevent instantiation.
Definition: cmdline.h:78
CommandLineBase(int argc, char *const argv[], const char *opts)
Hidden ctor to prevent instantiation.
Definition: cmdline.h:69
const char * pass() const
Return the DB password (-p argument)
Definition: cmdline.h:153
bool successful() const
Returns true if nothing has gone wrong since calling the ctor.
Definition: cmdline.h:108
This file includes top-level definitions for use both internal to the library, and outside it....
a C++ file containing an SSQLS v1 declaration
Definition: cmdline.h:191
const char * output() const
The base name of the output file.
Definition: cmdline.h:216
const char * input() const
Return the name of the input source.
Definition: cmdline.h:207
void print_usage() const
Show a message explaining the program's proper usage.
Definition: cmdline.h:139
const char * user() const
DB user name, when input type is is_table.
Definition: cmdline.h:225
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1ReconnectOption__inherit__graph.png000644 000765 000024 00000021030 13515046516 030736 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÀ·DûQ~sRGB®Îé!ÒIDATxí]¸E.r’,9g(œ¢¨HI§ˆ‚œ(ˆ‚¹#ƒÅDQ@<<Aâ" J(A’äœÓ\ýuö°»o÷í>Øyof_Õ÷í›ÐÝÕÝWUWÕÌîKaYÖRR’))X¬d:w¶"@)E 9#  œW_ç®;€Ê@òF µÛ¦¿eËZ·nÛ†¥ã‰eÊ”¡J•*ESY v½ùæ›ÊõƒôìÙÓM¢&cqÝÝ.Z´(íܹ3Šj®¬’;ï¼3©‡´ ‚ƒÂ¢7“ ªÉe¥užAP ‹ÞL.¨$—•ÖyE@ (,z3¹   p“+=~üxzþùço’KdÍGM>ø åΛJ”(AÍ›7§ DÖ˜k]¹r…Ž;f×oÛ¶-Mš4ɾNŽ'ª7¹êxp·lÙ²›ä¾y—.]¨C‡”:uj8p uìØ‘víÚEõë×§‘#G†gÀ5f̘A9sæ¤Ë—/KýsçÎÑ¥K—"j«•<¯°h‡¦k׮ъ+èСCöâ.]ºÔ~žpᘋ/Úk‰s‘ÔEýõ×_‰Ÿ’Øõp²wï^Z¾|¹ÔEGŽñ+ÇÅ©S§èäÉ“R}oݺծA;xð \oÞ¼Yxù ú;þ¼Ì•`­1ÐüùóiøðáÔ¿š9s&uîÜ™^zé%áñÀ?`Þñõ^Ìx}ôÑGÔ¤IéΜ9C‹-¢… ÒéÓ§íûÀc`¼~ýzºzõª]îé·=šÃ“`~ñ°ºwïn*THÚðBX)S¦´ž{î9‹Ýûiò[o½eíÙ³GÊ>øà›7 €•*U*ë?þ°† feÊ”ÉÊ’%‹´{øá‡-©Ë‚'÷À;[¶l?Ò·Úµk'e}ûöµn¿ýv9òÉ'­råÊY9rä°Ò¦M+mÚ·o/eS§N•ëÚµkÛe¨‹qæÍ›'å,|rýÌ3ÏX¹rå’ó–-[ZyóæµXˆåÚ÷ÏÚµk¥Ý¨Q£¬øú`Å–ù#Ì™4 nÀ´xñbÁ ¤OŸ^úF0ÆXK•*%mÁƒw©æOõêÕ-7> öüëÃBDݺu W·n]q X Ä?öØcôÉ'ŸPÁ‚éÞ{ïõóy'NœH¨Ï‹.Öõ•W^‘6, 4{ölqm`õqРAbYü,;ú÷¥M›6ш#Äš;–ð™>}º]¥@tâÄ Ú¶m=z”z÷î-eEŠ¡^½zŽ  P×®]å;IåÊ•)]ºtríû§bÅŠrÇŽöí`}ÜÿýöܱÓài»!Xö§žzŠjÖ¬IÇ îºë.jÓ¦ ™óêÔ©“Ì .ØÜ¹se÷4<¼zŒ €ÐÀGf‹)BAa«ElÍ©^½z¶Ôºuk‚pÀ ƒ­ž­6±Å#͘1cA-[:‚\£F š0OÜÌÓ,?,þk¯½F6lñ!CtÇwøí,¦~LÃï‰^œÐ,P=¬ZµjÙã:t¨Å×¾æ T2æ»5’¥a7Æâ-Üܶ,ÙŽ,|X0-Ô!{ÁP²-È.±UôËU­ZUê! Ä®ˆðg!±²gÏn 2DÊL††ã áîšÅ»‘Å©G)Ì=ûì³ï>R†?lÕ%ó¾æÃnžÅ·]'\ìnÙÙ1V4 ˜,ú¿õÖ[…7²]“XœÞ³K½Y³fÙ}‡;qk–ÀU”PHèà!ôXø—_~9NSöw%Èeœ2gB,8-v7lð­hÚ´©ÅÏ,v'lB#œ(ƒðq^Ý·iÄç>v,¶âqÒ‘ôT*æŒ8;dñfñnäg‚ÕMè=·*€+¿ãÔ ׇ­–d€ØÂÆéOIï¹çž8÷qƒ­£|‚ÜD Žôd( ”CÕ vq ïxÁŠüî…ê2|‚b ÞÍ‚Åì½d¥ð¹è!ÈõÍj$tuË—/4-YºtiIŸãåBZÕÉ`21ú67/ßsÝcñS[úðÃíܽ—ÁÕ±_G_‰ä§àÄ1Úõ›.8KvY `®CpªI¸.\æ×“Ï&á´kWÆxô|š¿Î¸Cv¼Ú³mÛA~Ýù@”{Qv‘    JQ®3mÚ~¯¿Â&ºAQ†8bvªC½Špyàÿº|ù*»A+Í¥U€D]íÞ}”Ua¯ßûø¸¿ÿqZ½úwœ*%"ª‰6ºBÆ™Ÿ@‚4uªfƒqqúZÀi„øO˜°‚sÿqSnФI+ý\£€¦z骀ŠåÆûù-×áŠù«ˆçhéRïÿÒBÈ º°@ .\P×è›oþÿeôPuô~tPˆ.žñrCö®N(‚k4cÆZþ"}è:¡ÚêýC@àÆpKp«ŸÞÉ¿¯yJà´iSñ/Q¤’Ý;BÚ´©åƒósç.ñ¯VlL0mpc¸òmÐ›Š»[A¸nê7H¸DgÏ^ä_§«éw?[¶Œ~×záú6¨s؆åÜ­Û—üý3üsŒÂÖÕ Î  .3¸*W   à‘…Òa:ƒ€*€3¸*W   à‘…Òa:ƒ€*€3¸*W   à‘…Òa:ƒ€*€3¸*W   à‘…Òa:ƒ€*€3¸*W   à‘…Òa:ƒ€*€3¸*W   à‘…Òa:ƒ€*€3¸*W   à‘…Òa:ƒ€*€3¸*W   à‘…Òa:ƒ€*€3¸*W   à‘…Òa:ƒ€*€3¸*W   à‘…Òa:ƒ€*€3¸*W   à‘…Òa:ƒ€*€3¸*W   à‘…Òa:ƒ€*€3¸*W   à‘…Òa:ƒ€*€3¸*W   à‘…Òa:ƒ€*€3¸*W   à‘…Òa:ƒ€*€3¸*W   à‘…Òa:ƒ€*€3¸*W¯ `¹œFe1–1ùI“&—•6mÞ˜œÖìÕW_u¹tY–'þGX¦L™èÓO?õŠMÑq2]»võžP€4iÒУ>ê @uÿG _¿~ž€BcO,“Ò)TœBVùzUO,“Ò)TœBVùz˜S€3fPÆ ý>Ï<ó }÷ÝwQY:Ð×_^ᘌ=š|ðAÊ;7•(Q‚š7oN ,×Ì.?wî>}Ú¾nÛ¶-Mš4ɾÖ¢˜S€]»vÑœ9s¨Zµjò)]º4-[¶Œ4h á %‹-¢;v„*ŽÚý.]º”-uêÔ4pà@êØ±#anõë×§‘#GFÔÏÓO?MmÚ´±ëB!.]ºd_ë ‘'Ò 7²PüÆnÁ)S¦ M›6êÔ©#÷¯]»F6l ½{÷RÅŠ©P¡Bv}œàþºuë(_¾|T¥JJ‘"…_¹¹¸rå mܸ‘p¬\¹2¥J•ÊÉñìÙ³´råJ*UªåÏŸß.ÿœ9sÒ… hýúõbá ( åóçϧáÇSÿþýéå—_¶Û ·Þ¸qcêÙ³'µhÑ‚²gÏNǧ}úôá'½i­,Y²Hš5kZW¯^•rV8«^½zVºté,V)ÿøã¥¬e˖‹•ÃæeNÖ®]+u1—©S§ÊyíÚµ¥–CÏž={¬çž{NÆŽ{5jÔ°û|óÍ7å<¾9vïÞ]ø`®fl¼óXl4Ì0ÂyçõÄ“` ;“$®p£ ÀÒ§nݺ"äeË–µNž<)³aKj±_m±+#×cÇŽAbÿÚZ²d‰œó“g)Û¶m›ÅÖêÔ©“\û*š-®µiÓ&‹Ý ë‘G±Š+&‚ÂÖUÝz( ”„}páÈ•+—åd mAˆÙm“²Ûo¿Ýb—MÎÿ@ 4ÿøÇ?lhÕª•ô±b^­[·–f¸ß¤I›ú„„›#ŠóÎ;ïXì2Yì‚ɵÁËfωW æb³Ã÷ǧR¥JT½zub$¶°RüÍ7ßP£Fˆ…U®ÛµkGlí ®Ç”)S(kÖ¬ôÔSOIYÉ’%©iÓ¦Rfxã·êÇ”`¾5+øç;wX¸Å5z衇hñâÅ4{ölâ‡öíÛg³iß¾½Ä)p³þú׿Òo¿ý&ep]x׳ëùžœ:uJÜ-ð24`ÀÊ!a¬˜ËÂ… MQÐc$s,^¼8uëÖðž•_ø°‚åçå›1°›â·.lÕè½÷Þ£_|Q„¾²/±ûBGŽ!ø¿ðù} Š2_úý÷ßå~õgŸ}f,XPüz6ŽÒ×·ß~K¸‡8­/!»cŒ8„ŒÏÖ­[M‘ßJÊ»€Ô1F‘q ž‡6EA»wï;Gß±™¸ýÆ]7#±6³€ù°.ÂàÖ®!X\ìEŠ!(‚c°¡U«VI™¹ÆÑ´ï¾û.±Ï-Ô{ûí·%àþüóÏiîܹbýQ>}úô8t¨Àúš5k${åÛ'ÎgΜ)A)R½†äb÷&ÎXM™9F2ÇPc3p=:t(±?,®Ü¸“'O–´à°aÃd=ñÂÝÃ?,d`Uùé§Ÿèûï¿§ÇÜoÍá"”/_^²5È” ƒ<;ûæÄ>ºXiì"°¤{Pß¾}%+ G;w–¬2>ãÇ'¸UÈ4õîÝ›ÆG½zõ²¼àa¬'N¤yóæ‰{‡ûp_ (ó¥HçèÛ&fÏã‰c\Q”Ð ˜Ó‡°ñ‚ÉÙŸ¢E‹Zü0Ìâ‡B2§C‡Ywß}·”³JP9fÌ{¾Èޠɀ°ð[œN”rwC† ‘sddXìþdr\ eè A-Æ>¬tÇ’]Z±b…U¸pa 2M§è?sæÌæRcd^Ì¿óÁƒ‹ü®Ù¢[ìNY«W¯¶pHÈþ€—!ž-öõÍeØ#„YÞaâ¤! ßíÛ·[ÁÆŠ”/ÎAû‰tŽA‡¹éðÊØŒ$‚‹`3á!>á-ÜP„L”/!ÎH!#ÅÖ8l¸dÁËBQ¤s Õ>îÇl  ‹n`vâ×áÚiùu’ípïžq#Ï"¼;ƒ¤¹îI¿:‚$D@ ÁG×W¯^Kâ$ïîU’pý׬ÙÍÏ*6%á´kOÄx‹O&³f½_¹Èȯ4ÏRIL"R ›D}GÔ-¾|‚W b€zß¾?ÓÅ‹×è7îàwøý¿G ó­P¡ñë⮞Šëwä·Cå¸]l˜ÁýðÃV~5bïlD3–¦fÍü_Î Ó\‹£„€ÆQ2¡l¾ùf¿šJÞ:4ieB›ký(!  % ÂæÒ¥«4cÆZ~ýùªd/ÞÂ/¬K ­%T¢dBØÌŸ¿‘Îó+tæÌ_ÂBëF U€(™6“'ÃýaçÿOBbâÄæR‰ˆ€*@"‚®Îž½ÈïìÿÊîÏõ`üb*­X±“þøãd"F»SHd˜={½øþݦN’¿5¶&ð¶^;Œ€*€Ã²GÆ'ØC=þ±š0AÝ @¼œ¾VpaþÇŽ¥%K¶}ÿqÀ¦Mûiûöø¿ÐîÃNO£€€*@@Œ”RŸñQš4©hêÔÕñUѲ(#  e@ãc÷'ô›'—/_ÕlP|:P¦ à¨ÁXîÛwœêäwBÆ'>Ú½û(ÿdËÞøªhYpý»@Qœk’²Â«ÏUªòS€NJ:´`ÁëßÛM™2ÿXî^þE»‚I:ÞäÒ¹ëßå…èÖíKþŹ3üÛ?byš®ž›º@®^œÓ¨8°òw5ª®^œÓ¨8°òw5ª®^œÓ¨8°òw5ª®^œÓ¨8°òw5ª®^œÓ¨8°òw5ª®^œÓ¨8°òw5ª®^œÓ¨8°òw5ª®^œÓ¨8°òw5ª®^œÓ¨8°òw5ª®^œÓ¨8°òw5ª®^œÓ¨8°òw5ª®^œÓ¨8°òw5ª®^œÓ¨8°òw5ª®^œÓ¨8°òw5ª®^œÓ¨8°òw5ª®^œÓ¨8°òw5ª®^œÓÄù1Ë—/§wÞyÇé~•?#pà@Fþ—I))þ3ŠG" ð÷¿ÿ4hà×Sœÿ¶gÏþO…éÞ{ïõ«¨ÑG %ï¿ø:}ÞÊÑeË–‰L‡UÓlРAæTŠ€çhÞ¼yÐ9h ½™\PH.+­ó Š€*@PXôfrA@ ¹¬´Î3(q²@Ak¹øæÜ¹siÓ¦MÔµkWGGùꫯҩS§üúÈ•+Õ¬Y“î¾ûn¿û±pqúôiJŸ>=¥I“ÆžÎÿû_Z´hmݺ•2fÌH%J” fÍšQÕªUí:ñ\¸pӾפ-²Ã‡§þóŸ”#GŽøš9Zæù@nذÁQÀ|õêÕtòäI*V¬˜| *DÛ·o§þýûÓÌ™3ï?±;hÚ´)-\¸Ðîöý÷ß§·ß~›R¥JEmÛ¶¥Gy„Ÿc —^z‰¦Nj׋ïdèСôúë¯K(Âùóçɲ¬øš8^vÓ;À¥K—èØ±ckxˆÚ˜TñâÅEÓÿýwB9,EêÔ©éàÁƒ”!CÊ’%‹=±Ã‡˽[n¹EîÁº\¾|Yx ®!ð…ÀAðÒ¥KG'Nœ ¼yóšb9ž={V…å®-[6©Bð„UƒµÙ½{79s†J•*e[8,Æ ‹—’“ó×àQ¥JêÔ©N…ÐßON 4À¥lÙ²”5kV» ±sçNh—;wn)3øâú?þ¬K–,)˜¡êOÔÛ±c?TË/ka3挼o½õÖ ˜mÞ¼™ræÌIE‹•f;ë Ü7nÜHS¦L¡6mÚPûöí¥ Z´hA}úô¡?üj×®M™3g‰1Œv€‹/Ò‘#G¨`Á‚4xð`? 0¬1Æ‚9¦H‘BúÂÎ{åÊáò´iÓR‘"EDíÁÜàÉM+Ào¿ýF;wáX»v­ £bÅŠ2ÈU«VÉõm·ÝFï½÷½òÊ+¢ï¾û®Ü‡?þøãô /ÚôíÛW¬,€Âbýë_ÿ¢Â… Ó/¿üBýúõ“…(B<{öl¿iƒ/èøñã²p­aÆԫW/úé§ŸÄZWªTIeà «å……ïÙ³' 6Læxí×ÑŸn,:%?¸e°”P"<}„’€ÆŒCŸþ¹(úÇÃFì P×­[' ƒë'Ÿ|RÚ|kÕªE?þø£(Έ#Dˆ€=æ¶W¯^•ò=zØ ùÝwß ŽèåùË_hàÀƒƒõÂù¹sçDÀ <°Òà …5j”·mÛFÙ³g§Ö­[Ë<Ì‹gŸ}–:tè@K—.•:˜G0ŒÿóŸÿF @Ï?ÿ¼ôóå—_ŠR~öÙg„ÆCU¡Bzíµ×D¹Öã‡ÀØ0·ÞzËV3¦„£æAðà­_¿^„a„ "¸° »ví¢zõêÉBA@A?üðƒLàþûï§ÿûß"ˆð3Á–zúôé²0C† k °PÏ´6Y(âo¿ýVJ‚Å1Å‚ËPaY>þøc)Âne4»Jà5*ÁÝ‚µÇgÖ¬Y¢ÐX‡zHxÀJΛ7OýwïÞ>ùä‚……€¢OŒmΜ9¢ìp1p ]B2cÆ q+PwÍš5Â`á§M›FPr(ÚâÅ‹í2( üià áо}ûDH°;¡-ú?~¼ð®eÊ”<€-úøúë¯ÅÚcìÝ»7µjÕJæ £cÝî˜O°[A€ƒ¡`¿øâ‹T§N‚"9ÒT•#äeܸq²^XsÌc‡Á0„umÒ¤‰¬+\°•+WÊnjÊoô5€uÀÄkÔ¨!cè°¬æ[ÿ}÷Ý'î¨^½ºlƒ  -[¶;Ã|@;v$X´…Oš'OB=XõP„mü~P/_¾|²ƒ˜ú.”ácv-\Ú¼F{ì >Øö,X s†+š?>•.]ZîAÐ 4pÇ~þùgQB옄 cÄ®†íÂŒ`caܨ‹þ a'u¬\¹²¸”CP@2xaW1eÀ–A:îagÅn¼bÅ ‚ÒÀÕiÙ²¥àyc7¸çž{ [ûˆvÆEµoþy‚Ý–Ù¸+¸ ãÀ¶æzÉ’%²óÕ¯__n{ŒÙwþÀæÑGñhïÞ½r¼™?7í™ÎM$­„I€ 0p°ußyç’IÀBAø  (üDXÿÑ£G‹ò ÌX{,œ!(B(Â6îKˆ Ü7Žs”¡ÏH È7€ Á½ÂŽòôÓO‹@Ág†+g‚ lð{} J€í>±Q"S<}ÇÄí a†P_®„/™x ÷S‚ÛŒ€)v¿`7cñÅ=¡cœ00 †çï;G³ùb`Ú%ôx½Ç„¶ ¨o=àvœK¸A| ‚\l‰ li²àFÀ÷Ä"Á}0 ôèQ›—ïvkßüóÂd– ;ˆï‚øòÁÖŸ2>¡ŽwÜq‡¸û÷ï—*Øá›B‰Í.”óÀ6n î⌋‹Ö”ç;¶øð U!Bò®Ò¹ØM ®pM {¸J„4'vŒ`Ù6Ä%p`Ø %cŒA:Œ¤!Är‘Îß´¹‘cÔ ÒÎïºë.q ÆŽ+‚a´>5üXdàÆ ³÷–;üVdn°ðC€ƒë .€qÃÐý‚Ü/X/¸ 'R}Æ}¼–JAþ`làÂÜÀ¹rô1#(D9\ ·>/\°ÎÑþý¤I“„\Æ›!ðÅn€9터¯G@‰,ö‹/¾ (Æ ·ÎdŸ 804Ü6$d|àã>Ú ~B¬ƒ8¼ …ÂÖñ˜i‡˜ñb§)j.P¸+‡EDpj‚G´E¦Ö >)€‚` ›.e7w‹‹aÈðÆ5¶b22 p?¡(_¾<ÁÏAÀÁÛ-¬V»víä>é<¸oרä»EK#þë ÁBʙƠAƒ¤–®‘qßþö·¿‰5†ÐÁ§E» Æ…C;ÌóÇÜ1_7Èô‰:fÎæ¬ Æ;b–É“'K•jժɜá*A9Ñ'0À8êÖ­kìÌŸ~ú©Œkå@ÐüÆo˜®¤M—.]äa˜}“OBa ¼aœ@Plq °Cð l°K"1‚4+s †½i3Ç8_ˆÁVùØcI¦ãfÇ× ‹÷%X+äïÌ™€Ð”Ãe€[€û°”òÀ4(|]¸È/#«ÿB‚`Á±ð9±àÆ 0}Dëˆç!°tèÁ¬/a|Øãlÿp¥`‹òaç˜o ®À 7ÑìÆ¦_(5vb(¤!ŒÆ;æç«€‘` Ä8†- ì ÆíµÁëÐHÃÃèøÒõ™ùÞuè“Cdwyà@0¡1,¨EBàƒô\(ò ØBÕ¹™ûp#Œ+ÈŠ(ü¨A2‰ƒÀ67{µÙ…y+ì¶Á¾y aWÅ3›p ã@ƒàËJ…ObR¢*Ü YØîLÊëF& ·nP A°ð¤1ØråÊ+Ò{QBÀ‹'‰ %¼•"1¡\ DÏE|3óŠ£Èíâ¥#%E –ÀÓl< ¤8Y À z­Ä2ÄòêêÜÂ"  "­Ë¨ÄòêêÜÂ"  "­Ëü‹žÖ¨=†IEND®B`‚mysql++-3.2.5/doc/html/refman/transaction_8h.html000755 000765 000024 00000012372 13515046516 022430 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: transaction.h File Reference
MySQL++  3.2.5
transaction.h File Reference

Declares the Transaction class. More...

#include "common.h"

Go to the source code of this file.

Classes

class  mysqlpp::Transaction
 Helper object for creating exception-safe SQL transactions. More...
 
class  mysqlpp::NoTransaction
 Compile-time substitute for Transaction, which purposely does nothing. Use it to instantiate templates that take Transaction when you don't want transactions to be used. More...
 

Detailed Description

Declares the Transaction class.

This object works with the Connection class to automate the use of MySQL transactions. It allows you to express these transactions directly in C++ code instead of sending the raw SQL commands.

mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1UseQueryError-members.html000755 000765 000024 00000014030 13515046516 027035 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::UseQueryError Member List

This is the complete list of members for mysqlpp::UseQueryError, including all inherited members.

Exception(const Exception &e) MAY_THROW()mysqlpp::Exceptioninline
Exception(const char *w="")mysqlpp::Exceptioninlineprotected
Exception(const std::string &w)mysqlpp::Exceptioninlineprotected
operator=(const Exception &rhs)mysqlpp::Exceptioninline
UseQueryError(const char *w="")mysqlpp::UseQueryErrorinlineexplicit
what() constmysqlpp::Exceptioninlinevirtual
what_mysqlpp::Exceptionprotected
~Exception()mysqlpp::Exceptioninline
mysql++-3.2.5/doc/html/refman/functions_func_k.html000755 000765 000024 00000006314 13515046516 023040 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Class Members - Functions
MySQL++  3.2.5
mysql++-3.2.5/doc/html/refman/cpool_8h.html000755 000765 000024 00000011007 13515046516 021211 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: cpool.h File Reference
MySQL++  3.2.5
cpool.h File Reference

Declares the ConnectionPool class. More...

#include "beemutex.h"
#include <list>
#include <assert.h>
#include <time.h>

Go to the source code of this file.

Classes

class  mysqlpp::ConnectionPool
 Manages a pool of connections for programs that need more than one Connection object at a time, but can't predict how many they need in advance. More...
 

Detailed Description

Declares the ConnectionPool class.

mysql++-3.2.5/doc/html/refman/qparms_8h.html000755 000765 000024 00000012143 13515046516 021402 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: qparms.h File Reference
MySQL++  3.2.5
qparms.h File Reference

Declares the template query parameter-related stuff. More...

#include "stadapter.h"
#include <vector>

Go to the source code of this file.

Classes

class  mysqlpp::SQLQueryParms
 This class holds the parameter values for filling template queries. More...
 
struct  mysqlpp::SQLParseElement
 Used within Query to hold elements for parameterized queries. More...
 

Detailed Description

Declares the template query parameter-related stuff.

The classes defined in this file are used by class Query when it parses a template query: they hold information that it finds in the template, so it can assemble a SQL statement later on demand.

mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1Option.html000755 000765 000024 00000032767 13515046516 024102 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::Option Class Reference
MySQL++  3.2.5
mysqlpp::Option Class Referenceabstract

Define abstract interface for all *Option subclasses. More...

#include <options.h>

Inheritance diagram for mysqlpp::Option:

Public Types

enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 

Public Member Functions

virtual ~Option ()
 Destroy object.
 
virtual Error set (DBDriver *dbd)=0
 Apply option.
 

Detailed Description

Define abstract interface for all *Option subclasses.

This is the base class for the mid-level interface classes that take arguments, plus the direct base for options that take no arguments.

Member Enumeration Documentation

◆ Error

Types of option setting errors we can diagnose.

Enumerator
err_NONE 

option was set successfully

err_api_limit 

option not supported by underlying C API

err_api_reject 

underlying C API returned error when setting option

err_connected 

can't set the given option while connected

err_disconnected 

can only set the given option while connected


The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/functions_func_~.html000755 000765 000024 00000017344 13515046516 023070 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Class Members - Functions
MySQL++  3.2.5
 

- ~ -

mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1ReadDefaultFileOption__coll__graph.png000644 000765 000024 00000021525 13515046516 031276 0ustar00tangentstaff000000 000000 ‰PNG  IHDR¹ÄÀCsRGB®Îé#IDATxíœUÅõǰt… h¥‰  ”Nl$hþ¨D!˜¨QD,(MÄ‚ŠP   E,€€4Qé¤÷*]z»ÿù™ËÝÝ÷vß.»÷í{wÎçóÞ»wúüæ7gΜ;w7›£D¬XâQÙã·o¶g X’[&Ä=–äq?Ķƒ–ä–q@B´{¸mÛ6yî¹ç¢Ý [& pÝu×É{ï½— %§­È¨kòÇËèÑ£åÈ‘#ik¹M¥X¹r¥Lž<9K´1êšÜ Ð·o_)W®œ¹µ¿1Ž@=dÔ¨QY¢Q×äYÛˆ¸FÀ’<®‡×v,É-âKò¸bÛAKò4r`óæÍÒ°aCÙ¹sgs¦=ù¢E‹¤yóæRºti¹úê«¥~ýúÒ§O9þ|Ä…­Ó:Tž~úéˆóÆKBKò4Ž$.ÏI“&ÉñãÇÓ˜3mÉ'Nœ(uëÖ• H›6m¤gÏžR´hQéܹ³4nÜXΜ9QL\´È©S§äĉå‹§D1Gr mzîÜ9Ù´i“,_¾\ÚmÅŠ²páB—[·n•$¯íÛ·Ë¡C‡Ü0´å?þ(ÇŽsø8zô¨üðòÿ~Mè-[¶$Šçß>¤‡psæÌ‘µk×&J³wï^M,ʘ>}º.Ë›€¾²rÒÂÛ¶m«]ª‹/–—_~Y:tè #FŒ `ذaº¨”ê ÿ”»{÷nÝŸV­ZÉ›o¾é6º–-[&ß|óðPΈÁ˜ø 6è¾GÌ Gm£)ФõuV­ZQ3~úé'þŽ;îпä­S§Žs×]w¹÷5jÔpÔíÔ¬YÓ©W¯ž[®"„“#GGÅYºt©sýõ×;—]v™“-[6G=sV¯^­ÓΜ9ӹꪫœìÙ³ëôU«Vuòçϯã–,Y¢ëY·nóÈ#8Ê·ï,XÐÉ•+—WZ×­°Zµjé2ræÌéäË—Ï3fŒOýë_õýÔ©Suþ3f8Ÿþ¹¾ž2eŠ›Ö\(â9eË–u4h ƒRªCiq]ýxë­·œŽ;:ôQ“_cCœéë+¯¼¢ã ÆM›6ÕmãÂ… ;jëøH¾ºwïî”/_>’¤™fdÌir£M®¸â Ù±c‡ðiöìÙZû¡¥Ñvhf5i¤E‹2kÖ,AÛ!ãÆ5¨òÐCÉk¯½&ÅŠÓš˜|EŠ‘AƒiÍúØcÉï~÷;½R¬Y³FöìÙcªMö«&† 0@ká?þXøL˜0ÁMÇjƒ6dõ¸÷Þ{¥}ûöZ«’ûXMNVM8mŠðkV„jÕª¹å˜ 5!¥J•*²qãF¤ÛªÚ µ>fŽWxXFëׯ׫Ý!C¤W¯^zÅ1éNž<)ûöí5é5¾cÇŽ5Q±õ›ÙÓ(µòÓ«ÉçÍ›§‹F»(ÄáÇë{e>è{EhG ƒýðÃuÜwÞéÜwß}úú…^pòäÉãôîÝÛA;£ùùÌ;Wç÷jÜ®]»†Õä*TÐ噯’%KjÉ=ZVÙÒ&ÊQ¦”.[MB7,ÔE—.]ENG™d¡¢{î¹ÇQ›Q—Z”óÙgŸé´^M®&¸ã]uHÀŠDÝF“«ý€ÎÇ«åã?îÞ§va5yè6aš )S¦ŒþEÓ!j¤P¡BÚ¢–­‘°‹ÑîˆL}ÍJpë­·J©R¥D ®k›V¯^]§ã íN©E©eÝ]9ˆ(Q¢„ObV7"Ém9{ö¬ÖÐI¢´Feu"‘´Ö­Í*X¹reS„þS4·6­FòæÍ«÷Aæ>–~cÖ\ÁìˆD µ²seðàÁ¢ìoiÒ¤‰Î¦ì]Q6¨6EجrbŽ žØ]»v¹Å{M7ð^W"6ŠÞIágsŠxãÿWL¢¼*LÞþýû' çfÚ´iÚ4zàܸ´ÖvL86FØxcšyÛ)ƦŒ¬úS²jë#h—2ODmåÕW_•fÍš‰2Qt.ã3ÆW$­õÕÆPku€ÍŽ­6¨òÑG…­‰ Â> “Ÿt£FÜôxC°±ñüôë×OŠ/.•*UÒñÊdcçB0ltlk´t»vítúN:i2âý9r¤^}n¹åiݺuDu(sMÛï´Ë+¸!Ù£(³L·™ £¸“Ôl«ÌŽO¯M®È©›¦´¬¶s±#åÖÓ÷ãÇ×÷|a{ªs”KÐ SK¾ƒ]Šg»VÏ1¶²òƒkû”ëT¬X1YVå£v” á0Q’ŠòYk7#“FyL\’{ÓáBÄÍF9jéw”Ù­ ª´¼£V×=™(A7l†™XóçÏw”9”,$O­å'כꤙqG*ïŠÃ3TÙIÓ§å>+‘<Ëœ'Wš*Ã…¥Óäý÷ßOV>v¯ò¥' '³Æ˜!x)GM"OHâË ŸôæF$íH©Ü£¡„Mºw*M<„Å5ɱ·?øày饗¤eË–é/6£j™O–ÿÆoLññ><<™)~Ô‘™í÷£ìl,A~T®6dhALØ7ƒÂ¡{áæÍ ^ƒ‹²Ø?.å°Õû€@Ü»}ÀÐV‘Ű$÷y€¾ûnµÏ5Úê²ÌÆS¹ù„CWñ,'N䔟.¨…?ð/ý϶¸ eÔIŽë+.Ÿ²¹_¼Ø»7¯:·ž <29%_¾È^z¸˜;¶®n¾ùf}T"+´:êÞ•¬‚_m¸í¶ê`Ô!õøþNyñÅ‹þýª? õXïŠ_¿dÉVMpê5jž_ÕÚzvãé Æ[$9sæÐµíÞ}D½¦—üu:Ÿš¸j,É}rž·û§çtm}ܸ…>Ôl«Krx0g¯˜]|²Czu>ʇÚm–ä>p­pÁT1Õ>|\½›šøí~g3KòŒÅ3Yihí «×Ù.˜*&¤;Öš,Ìüµ$ÏLtUÙ<á4ú— AàøñÓòí·+“™*¦ð„„lzjîíoæ `Iž9¸êR'MZ–à$8{ö¼LºRý±¡S™Ø [´%y&r`ôèù©–ÎÆtâÄ‹"Õ 6Aš°$O3d‘e8pà˜|ÿýºˆ|á< µ’yØZ™„íéÓçÔßb¹øˆj¦N]%/¼0J=ÒÖ9²©?jßÇŒuØß›QQ?jëoý«-W®rÍ5‰ßпêª|ºIÃýkU0k²æJ0Ç=P½¶$Ôp³³–äÁ÷@õÚ’Ý9r䈾ÿ~g÷îÝΩS§œyóæ9Ë–-sèSZDùÉõ0(-Y²BÚ‘•)SÆmûÝwß­1Ð "øŠU’ǵ¹¢[:tè _ýµ(2jÛúõ×_¥©E‘Q²e˦mí„„6l˜6dÅŠR¹reY¸p¡:k’‹ D¢´²( *3gÎ¥eìØ±:¾[·n¢´¸,Y²DE­n>l{¤Zµjn˜¹ UªT‘7š Æ ¢&¶Ü{ï½Ò¾}{¹í¶Û\û[iu¹á†Üôì1Z¶l)5jÔö¨Y³¦<ú裺$¤mO<ñ„—¶~ûí·²yóf·Œx½ˆk’3h eVÈ“O>)j)—îÝ»Ë-·Ü"=öXØ1…œØñ=”ôêÕKŸ¡Á¾¦,eºèd&Lì} `§NÜìÇŽ&/”¨U@”vv£˜œ×_½(-.juâ™|ádñâÅš°äSÚ_ONö;vìŸþYg+Y²¤<ûì³:²#ëÖ­Ó¿ñü×$GcCpµôëM'×Û·o×ÚíÓO?•ùóç‡[<yóæ G U#¤csŠ@(ˆiíl¤T©R‚g ŸTX ”©!¤1R¢D s©W!n”™å†%½Øºu«òÖ©ö:ŒUñ¶[™3:Ì´]ßÄéW\“Rs,tÍš5îðáF|æ™gô=“ =¢ìâÙ(SňѠܣõÑäýû÷7Ñîï´iÓ´ ñÀ¸a;wît¯ÕX_{'ù¿ ¼4ˆÚPþ/D´¹Å1k0‹‚(¡G+N€à Ð&ÄÊ•+µ«å×&‰òtèž²¼c{}çé€c¨ãÆÓL ¯›-)Ó¯_?mÆ@ÆmÛ¶ÉÈ‘#¥E‹ÚÄiݺµ[­ò¸h=å§xñâR©R%wÀR{E7=ÍÍžƒ<ØòÊ£íxï áfÐEL½4‘ÖqA»ñ r)‰Î¡ÙÀ)o…\{íµ:¬I“&ÒµkW—@iÑx¤5éß~ûmùå—_¤Y³fº,4³r׉1 Ð☠øëß}÷]]7Úýþûï—¡C‡j[Ùô_xùòåµ)¤<=òßÿþW×ÃÆ•2 <SS7¶ûðáÃåᇖŠ+ « 6ø_|¡‹$]¸ÈÔ·¿x޲L’´ºMÃñSã»Æïíõ)›x~ñ!+Mî Jóõܹsµÿ6u._¾\»ûh·W¨géÒ¥ŽÚ8øò“ .Ä#Fh;íN*øÜïI%wîÜÂ'”°j„ó …J„°@ܯ4.;ˆÎãvŽ=V!投ŒAÀ’ÖœqUÅâß]‰)MŽ;Mùy3nÄ|.éÿþïùá‡uêÄãtyä‘ê>×Üê¬MîÓØÿò˯òãœV̦žÂ†>æSSW%¹OC>aÂõXRŽzÔ¿I™,vêôbIîÒ£FÍSvøS+GŽl2aÂbŸj¶ÕX’ûÀ­[÷ËòåÛÝý„z}T>´&‹Ðë*,É}@züøÅê,ùE¨Ù<¯ZµC½@qáešè*."h2·ó£FÍWo%þ»*~üøE™[±-]#`IžÉDX½z—z!#ùkk~ôhk²d2ü–ä~Œ¶NH¸ø‚²·ÎÍ›÷©·xvxƒìu& `5y&€ê-ò‚©ráEgo8×9s&¨Wå¬É’—Œ¾·$ÏhD=åÍŸ?<ü›3gÎÚC¼2ëÒ’<³UåâUA[§$< ;÷âJ)­K–äéÃ-Õ\çÎW¦ÈBý"r®\ êÅæÐ ²&Kªp^R‚”ÕÌ%ìÌW¢îŽD ¬[·Gýç´åêOUÜ™(üÊ+ó%º·7‹@LµÍØ®û_ÚW_-UÓð_²s祿"çëc¶ÆØü‡1 ·mxT°6yT`·•ú‰€%¹ŸhÛº¢‚€%yT`·•ú‰€%¹ŸhÛº¢‚€%yT`·•ú‰€%¹ŸhÛº¢‚€%yT`·•ú‰€%¹ŸhÛº¢‚€%yT`·•ú‰€%¹ŸhÛº¢‚€%yT`·•ú‰€%¹ŸhÛº¢‚€%yT`·•ú‰€%¹ŸhÛº¢‚€%yT`·•ú‰€%¹ŸhÛº¢‚€%yT`·•ú‰€%¹ŸhÛº¢‚€%yT`·•ú‰€%¹ŸhÛº¢‚€%yT`·•ú‰€%¹ŸhÛº¢‚€%yT`·•ú‰€%¹ŸhÛº¢‚€%yT`·•ú‰€%¹ŸhÛº¢‚€%yT`·•ú‰€%¹ŸhÛº¢‚€%yT`·•ú‰€%¹ŸhÛº¢‚€%yT`·•ú‰€%¹ŸhÛº¢ƒ€ú؉dÔ¨QŽj‰ýdÙ³çqræ,b±Íl g‘ùÂÍȰÿ3¨[·nÑ™u¶V‹@:X¹r¥úw‘Ÿ‡Ì–äõêÕ ™ÁZ²"Ji‡m–µÉÃBc#âKòxIÛ°X’‡…ÆFÄ –äñ2’¶a»ñ ›#‹E|ûí·²zõjùûßÿž©-ëÕ«—9r$Q… –5jHíÚµ…gÄÍ’%KdĈòöÛoËòåËeøðán±Ù³g—bÅŠIõêÕ¥J•*nxJçÏŸ×Þ‡ï¾ûN:uê$¥K—N)yŠq}úôÑõÖ¯__Nž<)”/ß…ÿ*WîĉÉòƒÕÃ?,ýû÷—_|QNŸ>-ï½÷žtîÜY~ó›ß$KŸ‘1¯É·mÛ&+V¬ÈHLB–µhÑ"9|ø°”(QB Ù† äÕW_•¯¾ú*džK ¤.ÈìÛ·OæÏŸ/W_}µ®Â,^¼X“uذaU³iÓ&ùðÃ¥B… BþK‘¥K—Ê®]»t¾wïÞnq .”è:¨Ç| ,¨'OÈÑ£GuŸN:åæÍ¬‹KÖäÌHÓ©½{÷êY\²dIÝ¡-[¶è[ªT)IHH={öHÞ¼yåŠ+®pûóË/¿è°Ë.»L‡­]»VΜ9#”AZ#€© WîܹåСCR´hQ­;¦Ì“'ÖîW^y¥NO$eþúë¯Ø[·nÕ —)SFræÌ©ó<}áM™ôžD·Þz«<ñÄ:=_Ô÷ç?ÿY¦OŸ.7vÃÁ¾Ò‡üùó»á\Ð5kÖÈu×]—LƒQÿæÍ›¥H‘"‰ò˜›G}Ô£}ï¾û®|òÉ'R§NM~Ò;wN—Á/¸çÈ‘CÊiÔ¨Q¢6?„½ñÆÜ°Ú¿¿žT`0ÑÀýòË/×÷|1Ñä•x£‘YÝÚ¶më¦3´©GR @9xð  vÁ“ÉH9IÇÖM”Ž‹K&ùúõëåoû›&K,R±bEÉ•+—0«‘òåËK¿~ýäµ×^Ódÿý÷u8De {ê©§tž.]º¸ÀÑQ±xñâ‚æxå•W4©²e˦—Zˆ:qâD]Žù¢\& B¦³gÏJÆ õ’8wî\­u+Uª$«V­Òq”ýÎ;ïhmƒ¦fïÛ·¯îKÒ{S‡÷3èô”‡ ¹ "ƒÍD@† "#GŽÔé?®qaù†Hô‘þ3ÐHjæ8@د¿þZ¦L™"íÛ·ˆ N`C™ 3‹vôìÙS—ûøãË€ä†nŽ;ÊÏ?ÿ¬M ÈjÚ >Ï<󌨧߮Öùå—åöÛoòa‚ýðÃú¶k×®òÁ˜¨¿Ln¸òŸÿü'Y<}`¼3&CÕªUÓÇ(¿dÒaæ >zôhÝ –YÐÐPwÝu—,[¶ÌųgÏëŽ;î–]–6rи&LÐ~óÍ7­ 8¤ ¥LŸ`ìóÉ“'kr3æÌ™c¢µ–À¼øì³Ï´ýÏþSÇ¡9˜pFƒ$½'$Bkóùæ›oô¤E þáÐeŒ7N¦N*¯¿þº® ½ô3¨¸šŒ˜²¹Ç\aðq¢¡X n¾ùfA£"Ø|”á0Z·n­Ã™\lëÖ­«M­¤÷$ eWBZ…¥ø‘GѶ-f¹0c0µð¯³z±' <¬b×$}$í¥?´[1ý„ül:[¶l©?„aú`&áå0«Ë=e†j·Á›1€¨Í›7׿+)„'|üøñúÃÊÃ2íà×\ƒ!J…M¶ÙÄÓžÔÄä'Š g{1cÆè¬¬¾flR++µølÊVLtF‘ÙËBf A[1s½Âlæée¡B…\“ÂÄcW²Bc¡)!rR"fË7¾X6^,ÓF‹Ar´*büõhÏÌüäh7ê÷ú•©‹>°JM !)šv³Ÿ1æGZÛ†”Á¯×îUiØp¢PÀ 7üV#Ò˜ýV¨2C¡Ð~cj„K—Z8îSÚθ“2µ<&¾â&MBg¢G%˜D~ü¢EYn1M°“ @ñD.”°ðp#¡8œ$Ýœ†K—ÞpžLò %ß+Þ0æYÙ²e½Ñi¾N­ïÞIëÅ/ #f"šûp¿I'r¸t©…ã†ö:RKi¼¯$Ç`£Ã²~÷ÝwGÚÆdé0¼ž“[2ÜcbŒ š•à!s%Vaæ¡ ¦›[–f´àý÷ß/•+WލK˜#løÈ‹Ùb+¥fDTxÀ¥d®øî]‰Õ±`ÀSC–x6Mš4Ñž‡çŸ^oÎ"é—÷0dgÿ†Œ¤(›& øj®¤¡]Y*)›d“ w˜‰²xòú¯ýKàA¥ðDñ0ˉ°á9ôÆ$◕Ȱ$'ÌŒp~k4¡]iAqá…« >î3ãqÂOÎùÜ­Fx8ƒ{S†‡iL+‘!`INØÀhóP‚½Žùàõ½{}ß‘ãá+…÷É$ìx#”c_6ËJdX’G€.BÌ…P¯ÙñHs…ÇÛF8f$’C`šc ^O nJïá1ïJaʶ¿‘!`IN‚›ÁùÞúÁþÞ¬‡sVƒ—38÷aNHR\¸C`á3q€Œ—¤M>Î…sz°¾z!ÁÊ¥#`½+`ˆy€›7o8Ùg„£ÂO?ý´~ dÂø wÌ{˜‰¨kñ˜ 'oècþð¶.J$©ç>i˜)Ëþ&GÀ>ñLŽIŠ!`´à˜çP¼d‹äXJ‡™°Á™ NʬÃc)v.†#Szâi5y/ /j§&Þ¨7mJ‡™˜8‘Šò–i¯SFÀÚä)㓦X{,Mpù–Øjò „ ŸÚŸeÈÀêlQ"`5y„@Ùd±‹€%yìŽmy„X’G”M»„µÉyÖŠE Và½Úp’Œäø~›5k.½ ·dIx§6ÜûÁÉeÉØFYÒÀ(k“§<›3F°$‘²ÍL?–äéÇÎæŒ,Écd l3ÓÀÿ;Æ4™a jtIEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1BadParamCount__coll__graph.png000644 000765 000024 00000026563 13515046516 027614 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÊÅ3m}sRGB®Îé--IDATxí]¼Å÷?À£;ÝHI+)ü0IIA:áo! *  ! `‚ˆ„¢HƒHÒÝ!Ý€tÇþÏ÷<ç²wÙû¸÷Ýx7æ|>÷îNÏ|gÎÌ9ggwL¤I# ˆ Ñ c Õa@ šQôHи€f7@ÒQ4šQôи@”5ÎéÓ§éï¿ÿ¶zkw!={v*T¨_j´víZºråŠ_òŽïLzè!Ê™3gœªq£¨\Š+¦nõ5ˆ8tèßk“9sfŠŽŽö{9,`÷îÝ^ç’Q (¯P ¢Ä'Nœð{mR¤HvŒ²wï^¯pÓ:ŠWðéÄ‘‚€f”HéiÝN¯ÐŒâ|:q¤  %RzZ·Ó+üÊ(·oߦÿý×e/^LµjÕr¬ÖvµmÛ–&Mš¬Õ·z;wŽnÞ¼i[>¬PèûS§NÙ†›§_eæÌ™”1cFºuë–m»Ïœ9CK—.µ fOk»®^½êr@s;ü]7˜™'Nœh[Ì;wèòåËt÷î]Ûð`óô£Àl9þ|RæËëׯÓ?ÿü#í=xð 7nІ èìÙ³÷a0ÅTØÔ|íÚ5G:D¾xñ"­X±‚ÌÏ0k!•ñŽ?N`BEˆ?{öl'?väÈZ¶l™ä­üpEÝQÔsáÂ…ŽúÚµkذaT¿~}Gr ¬–‹-¢K—.9ü±ºbÅ,‹{[·n% ˜P'`ò×_ɃjµýðáÄû“'O C ŸpÆ@,XP˜ÌœÕÙ·o-_¾\Ò˜qA^;wî”xð¿páaeqœˆˆÁÃÉ/6w´Q£F #qâÄÛߨ¨(cøðág$L˜[øD‰0xðéÒ¥¿ eÊ”1R¦LéÈ>}úôÆk¯½&nf:‰ÇƒMÜcÇŽ•üQò¬^½ºqþüyƒW$)§k×®½¸  îîÝ»(+iÒ¤âߤIuæÎ1Ú´i#y!OÔ±ÿþ’I’$1*W®,þªm“'O¶mW®\¹ UÞ’%K î|iW²dÉ ~%iç;ï¼c-ZÔàA"ùªvðàA°[´yófc×®]nÅK¤5kÖH_¹›ö‹/¾¶¦I“F°|öÙg ´ }À¦[·nFñâÅ¥ýðN¸àq±jÕ*¹oРàÆâ™Tƒ'+£J•*iþ÷¿ÿÉ=Ƙ»ÄÌið¤èntk¼Qàz'ò”Q&L˜ •F%x00`säÈ!`M™2EÂx•2Ê—//ä-2o'pb”?þؘ:uªÄݳgÑ¥K’ÉÀ}óÍ7 žIŒ;vY²d1Þ}÷]‰‹xè`ÞÚaT­ZU˜AuÆ!CÄ=~üx©&‚Aƒ SϘ1Ãà™Éøá‡$ Fá­"Ïtoé0ž{î9ƒÅHƒWÃÚ.Å(`¾¼yó¼ºh3ܸ<ë £ £,áh/Üû÷ï—2Ýù &FáÞH•*•´uÞ` LV LšãÆ“{0 ÚÚ²eKcýúõæ03JÍš5 ^ydB㩉«cÇŽ‚ý¦M›d<Ô®][ò )FaBfìfÍšóæÍ“A†™/»O1Â1ðÍ+ üìhàÀ 8@ƳO‰%$:!f+t ÆàuîÜÙÈ!ƒÜ«?0 fä²eË`\•ߺuë¤Ó?ùä‰ FQ÷ð@À 3™$c±Š™•Å@Ê“'øCN†,l¦æÍ›Ë†Bä yáÇŒG,‹iŽèùòåsÜ«-=Jïr˜nPèÑGuøfË–Mî•Ι\‹frªz ‹¤Ä"1a“f‡äZ­Z5Ñ9TÍWlJLž<¹ÙËéÞŒ â)\Ž;æèS$0ãë”^3 ”RžÙiÛ¶m¢D³ŽA}ûö%(ÉfÊ”)“818!­;„ÁÆ3ž½ È­Šb³z :T,W(?^ D±þöÛoÅýÇH6°”ð²m0óˆ»W¯^¢`" ôÈÒ ÈÊPÐU~¨{¿~ý$ ÐQ`•ƒ‘q`­‚ådmdheõ‚N«§¤AYÜ0`¼Ag‚%M¬vÈ[Õ]ùÇv &õ¾ÀVEüxR#š6m*íƒReþ‘G·ŽrôèQ,–TžðÄ ¼‘/ú} ƒpSýáHËM¼[½TÝ`‰‚ŦW3AÑfùÜáÆ‚Ö O /쉕eÀR¥LÖ2YlŸq8Q øc0£mV²¶Ëc” ¬x˜ãÅå>Øm@ÿÂâ+˜•`°PVOk˜»îÕ«W,ΊU•Ÿ—,¾ £ oÜ%oÅåû(̱Q‘"ElãCÃOÞu€b‹U¨PÁã¤l¼O©W™°ÅŠðsEiÓ¦%ü¬dm—9J:Ïžf¯°¾Çî ¶RÙ¶â¶·C›óéÓO?%(ü¼ŠQÅŠmûÅÛ²\¥÷£¸* TýÑšâè$°|Y°]}1¤ÅÚØ‚¢)8ÀêÍ;âµ2^[½âµöºp@€ÐŒ  u1¡@D3Êwß-ä]ª7B»ƒ¼öÝ ½³ï=› ò꺬žK…wíºL.7n§Q£R×®•(S&×[+‚­½ØUàO:ȯ-àç-]ÝE'Ƥ ¬-¯ÑÑEöï$y[F Ò'€Ú\¶yà½H ¹swP—.S)Mšä4thSÞŠãßè+L± &ov&øâ=}Ó/Ѷaçù‰=QÍ_²S²ô‰üQ]òfÀ.4ú>F‰C&!›dÿþӼ奟l„ŒŠJHß~ÛŠêÖ-²í †ŠüÚ²þGhç”ÓR䣨ռ’ÁP5oêÙÇ>äÏMÉ’%‘}J·oߥ—_þ‰¾þz¾7€FtÚïÐï/ï¦]ÓbÞ.MÀp–þYù tD+ó»X±qKI ÌâMw?ó«Å¡ÿŠn Ó…ƒ7hj‹ôÏÖ+dÜ‘æ$L@™Kļ Ⱥø£¬ˆg”GÉû\ïÙ4 SO›¶5»¯úó°ËóèÊ‹4¥õºòÏMº{ûžÊ‹ûèb)¢½Ï(%Jät¼ ¤zôλüþÃa~ lo‘µU˜¾:#ð÷/§iN§½tçú]º{瓨X™ŠjFQX„ôµxñüb×ý|ûö~‡å{j0­\¹/¤ÛèÊü”¥}ÓŠAGXÔâ=ï6_J- %IÿÖ._´?âW”‚³°èeß™`–+WnP“&Cé·ßÜ{Óìyܸp‡fBiŸÁŸœºŽ‘êC?ÉR*<y4(â%Q¢„ü}Ì+¼v« D±·ÞOýûϲ‹Q~—Žß¤©­vÐ?›.“a#j)0`ñŠ.Š<ÚñŒ}4¯ËUá`¦lÙÒQ©R¹áŒh‚8UúŬ”˜Eª„Q÷>Äa%œy´M3 ƒ…ÞNO‰ŠJÄ/EÑ»ïÖä¯vc}¥„u¯ªì¯zC¼Ú6þ4e)ž’ª|›Å±„"ŽA‘ÏZ&|yà§W!I’Dü9¡ÌüéóÔ­[]jÙ²’0ÌöíÇéóÏçðÇñ¡ ÂG1õãlû]懌µ‡¤”YS¾§ÓÓšoŽÑNÞÂ.V½)R€ëÜ¹Ûø]ìüÁ‚{»K¯^½I•+÷£êÕ‹Ñ€÷>ŒgN©÷WNÞ¢ßÿMeÚe£Òíœ? qfûUÍ¢(uŽ˜ïº…F‘½)ÒÜ5jwb„¥H‘„ºw¯C?ÿ¼Š4¸÷ÕHsºH½_9ø(¥ŒNB%ÛÜûD¬Â"ÓÃ)‰I¤YZGQ½ëâÚ¨QYþôPnf˜É.bDž÷±U—èÀ‚sôX—\±šˆÃ Í(nôfŸ>ÏñÁ?y³äF7b‡w(ð+¡|O¥£œ•R‡wcM­ÓŒbÃÕmÉ’¹¨Y³òÔ§Ï >Ì»ïèº*#”ü ÖÉ@•:ç ¥*{]WÍ(nBøÁÏʇ("ýÅ.ú!#õì9݃T:j8  Ń^ÄæÈÞ½Ÿãƒs¶Ò’%»=H©£†:šQ<ìÁªU QÍš%¨G)²ýÞÃä:zˆ" %׳g}ÑSFZ‡Ô:I(" %½=å•WžäcæÒÙ³—ãCè$YðþÚ4ê”GÆY›O<ñcã¹ÑßãC<*/‘5£ÄåNžá¯5&åÃmÂ÷­G<ßÿç9òô|ÂáØ >•ÌctgΜ)çÒðÉZ§õgÍ(qD7yrì«G¿þº†¶l9Ç\‚7™Ýx¬8ÐGž5»±XÇa§K—.ågPÎ+ïÝ»wiÆ ŒÝÇ©Í`,•ß>Fœ !wÏÀÓñìhÐàk£nÝ/íCØwÓ¨“ƨÊË'n:ZñÉ'ŸÈá´,‰Ÿ‚lðQƒŽÃMëÖ­k4kÖLÎÙän”/_ÞàãÂñ&—ÁGÔ8ð„óù43Ç©|ôŸ³)ÿúë/ÇÁ´8ØôÀ?þFéÅË)«OŸF<3æ3Ö×y™Sð$Çú #OÈz¼g¢¨víÚ± +>ä¾qãF9*Ç–C·€¸…8Šp~ã¡C‡áX-Ôqé|ð¿¾P™ßÿ9)ù+VLŽòÉ'qøÀXÊ›7¯Ê*Þ¯úÅ-/»ŸdmÙ²"ïûß©/)[ó½Ì2Þ“»ÚB\1øqø(D$ÜçÌ™“pDHTT”ˆW5kÖ”³åшîÝ»ËA²8L̰gÏiÛ¸qãøÅ¸„â†hƧûŠ;ÞKôŠ 8îuíZ›nܸE_~9ÏÝ$AW]n¡g1ŠŸ!Õ”•«V€gžyFeÁ‚T®\9ŠŽŽv´-[¶lŽ{œ”ÌG‰‹{òäÉT¸paIûå—_úä˜ GA~ºÑŒâ`ñš0¾Ô2|øb>€çŒrŒ¿,2—HAuGv¹…¢Õ²eËháÂ…Â(O?ý4¡fÍž=ÛIìB °jX +Q·nÝèÕW_3ðÊ•+‰uk´ sßß’ «bhTè…ªðG)¢é£¦…F…c©eÖ2®¿P½zuÑSÖ­['Œ]ƒ•mZ¾|ù}ŒâªX³ ¶á sðôéÓéæÍ˜×’$‰y}xçÎ’¯«<í¯ÅGˆãë-½{7¤ùóÿæÙv§r ¾lÒ¥KG•*UÝ£@|¾L2QÌ1ðÙ k…!ºeΜ™Þ~ûmžP>’´8C¾cÇŽb €’_¡B‰S²dIb«W¬ù2P\ÂÇhwèð#íÜy‚™¥++¸zr/žÉàW¨P!‰‚g2êÈ=ˆç.0¨ç*vùäÉ“‡¿ ³Ù…ûÐ/²¦ó!ެŽ;GU«öåÕWŸtøëϘ?>ë}Ã]&„!Àß¿þW¸f—½àEö€}ÿý"–Û?d+Pä¼WîdÁžT®È=ôúëOQºtÉù!ÚïþÈÞ§y^uô€è ¶ÛB°ÂC´ Í(~î¸÷Þ«)ïÖ<×Ï%¹Ÿ½ú }¤}ÄÎ}„î©å~L|ê“.] êÒ¥6¹„öí;íӼ㒙«-ôqÉ+’ÒhF @o·jUITý裩(-ö"ެ¸@©²Ø…>ö”‘ª·°¨ÿW¯ÞO ~C?ýÔžªU+ R틹sÝ«cãì[éS_ýÀѧpÆ’Y… ù©~ý2ôñÇÓx§lÌ{±D÷kP8­èW L™kш¿o{ô¨Ç›ü.òþ¥Eþ.Jçïc4£øÐز˞=½ñÆ3ôÕWÒ©Sc‹ªÃ‚ Í(î|8_ÆïÓgf€KÖÅyƒ€foЋCÚ¤I£XO©/_mY·î`rÐIâÍ(ñ€z­Z%ø•² ¯Ñú‹ð~ÇÄ3dÜöW ‘“¯f”xêk¼6ŒsìÇ_í·à üª¯ŽÒÕ3ÁõyR¿5ØkFñ#¸±e]°`zñÅ*Ô¿ÿ,þœçßè-o„]9eÿ»¥ÓáöhF±Ç% ¾8ê4hП—·rësà}^Xd¨%;9MšdôþûÏÒèÑËø«‰ž­[µõúØÐ‰[˜f”¸áæ³T-ZT ‡ÎÎ'xùf˜ÞBï³®qÊH3Šwà[WxÁkÉ’]üµÅ­^W@o¡÷BÛ 4£ØÂXϲeóR£Fe©W¯éü cïl¹QÉR¹×²GÜ9ðþî1Í(þFØÍü»w¯+ÇÜá{o¨X³h*Þ"³7Yè´6í±G%|À9’è©§²ò—[–ñGÝÎGR³½jkâĉ©Aƒ^åáNâ e|!½iÓ¦î´!lâ$H€¼ößÓú°뿆¤I“†.\¸à÷f-£¨–ûs‹‡*C_C#FPçÎRy­£f]H¨# %Ô{P×? hF ̺PG@3J¨÷ ®@ÐŒ˜u!¡Ž@Ð[½Bà±cÇÒêÕ«éÛo¿õk•Ÿþy9Ê®!C†ð9’ùí‚üêwîÜ9J™2¥œ~5räHÚ¼y3}ýõ×~-3ЙëÅGˆïÚµKNÇõQv.³ùóÏ?éÌ™3r¾;Îx7ÿðð->ç2Nœ8QŠÆ±r×®]‹jøµÌ°YQþý÷_9Ç;Ý(S¦ŒÜ·lÙÒ(Z´¨ÁŒhðaœR~»ví$lÚ´iâ®Zµª# q9"á|n¡„/Z´ÈÖ6mZ£oß¾fýc†0˜!¥lf6ƒ' £`Á‚Ÿ´kܾ}Ûà³á žH¤\´Oõ5öíÛ'Ù°èh0c¼*Iù|L¶ÁL&a±µGá L ` € ˆ'/Áa ·îÝ»KتU«¤Þ~"X¢¢££Ý»wK¸;?üðƒÁOæÝ‰êmœQa%zñ`“£™q’ì3Ï®½zõâïl§½{÷V|]®­[·–«úƒ¡@уڣâ©+t“cÇŽ‰þ¥üpÍš5«¬ ÊmW„‰ãÎøý.³ª‹õV+ ˜Á]‚Ø‚Yâ”øzõêIRX• ²@¤€QƒгêP( Š ¾¸"ˆ<Š”AÁÌXæðeË–9D-•&®WL¯¼òŠÔƒUm„ ‚(¤¦ìï¾ûN&¬NƒøŠëR"¾©¸æúÚµGÅSW¬p˜`øP£DV3j%Tq‚õVŒâ ÈuëÖkV=Ï&’%K&ÉñâôX…°ú@ö/]º´tëˆÑ ù@ìc^Db ¡|è vnå7kÖ,²þ°*aàÏ›7~üñGYU†ίÏ&è&Ћ ’!P&Ä0¬˜ Ã NÈù¢®H§(¶ö@Ĥ6š ùBÿ›ýû÷—0eõBZ„±ˆh0Ólv–ðY½Xž—tHký1sˆåŠ’‹1‚ ‹¤' ´WIÇ"©´_"ò> 6I;òdθté’ÇÖD`#ˆ¤CÑåË——t°&V©RE€òç‰H”Ջ'$qã¯FNur¸¸ ¤Õ r{P’§Œ—F¼ýöÛÛöïKÊ.c9¿=ųä}alÅ2?[0À|ÊTzqêÔ ¼9íØqœ··¸¿2TÚìõÔÊ|°÷Ðõ›Tå8p@0@;°*‚TýàVuÓ¡S§N-ñ±b ¬ýû÷SöìÙ)::ZÜçΓ03mˆÐNL ÑÀ4X}P”Âê†XÝ:$ƒ‰û‡~(Ìè*¾'}†òÁüX=Ô¤‚òÁ¬èO”úA(¾»}†ÙÝ‚Z©R%‡˜ ì!Vaev‡j×®-ú_ƌŠî¤õ$N¼‰^¨$",ÉÐ 0ˆ¬†¨P¡‚ˆ(¤©@° @”Áj¹« ÂÔê©ìŠ ßš uQyÀ_1î†2Ý%«Žò÷ßSÇŽE,‚X‚m?˜©!2¡­Š°Š‚ ç+²½Ôª£â˜¯©FŽ)“Pžûcc:We(5`ÅÀ †Þ±óÇ$(»ŠÓ@4R„ÕÓ]£#X Ž:Ô‰é¬ù¸ßÝ>ƒ½"¡•°ú߸qCŒèæöa5…Eøª² ÔƒÀ̤â˜ýüq¯ŒâIƒ ÓÂ*5jÔ(Yb1¸@°î@FÅŒ ñVÄÃÌ‹6vìX7 Ëb°¸"(óóçÏ—™ ƒ }ÅŠÑQ.Ĉ}ëׯqÐm`ÝQK¾Õ8%úÇ| +'ò‡ˆ‚zbPAWA}A(+ iP¤ÇŒï !äÅ&Sè]ÈÛyßU>… -\¸P&.ˆ”ø Š%sŸ91›Ct˜%ØJ0À¤iGX‰ /»CÈǬØZÓx;+YóSn”k®#Šy°`€áÉ~\ ÅUæñ° öpMPD ¶>cØèÕÓÖPI×Y#€²x˜lG>³zÙe®ý4a‚Àh­£„IOêføÍ(þÅWç&hF “ŽÔÍð/šQü‹¯Î=Lø<;ž©ïIEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1Date__inherit__graph.png000644 000765 000024 00000024663 13515046516 026521 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÀÓמ2sRGB®Îé)mIDATxí] üMÕö_Æ’¡$!sxHHƨ>…D†¦—B†y¢=ÊB^ôð4ÉTê%’ ™el0&SE}šÊ•+G={ö¤† z^·W 4HŠîÕ«—_»ví¢Ž;Ò¸qãèšk®ñËOOÂöíÛé©§ž úhõêÕiÀ€Aó#÷+ÀÖ­[éË/¿Œ4]üÊ›1cÝ|óÍ´oß>êÞ½;uíÚ•þúë/jÔ¨Mž<Ù?^¾ûî;Ú²eKÀæ=z”æÍ›G'Ož ˜ŸžÄK/½”J—.í|,X@?ÿü³s_¨P¡ô›þg|wìF˜oz°û?þøÃìܹӜ9sÆüïÿ37nÔ³gÏšM›6ž5 û_%m÷îÝæ×_MQÔÞ½{Í‘#Gœ´uëÖfhsüøq' ÇŽ3_|ñ…ùå—_̉' ÏN’Ï3—©R¥Š\ó€™ß~ûMêûüóÏ ‡¤ã‹glsðàA¹çA7¼Û-iáܹs†Ú Ý÷ý©S§LÑ¢EÍ-·Ü’âô¹bÅŠæÚk¯µÅÈó6l0³gÏ6{öìqÒÓB§ÔÚŠBÑNÐ uÙ6#Ïb<Û¶m3ë`ø­Zµ2ì#7‡6‹-2ß~û­àãë›o¾‘Ͱ~øÁI1–þNFˆ ;þP²gÏnúõë(KÒx’ š—–Œ‡zÈÚ#ßBÒ*+W®"Ý~ûíÎÎ!åŽ;îpîyûY˜²víÚæ¶Ûnsªú¨àMŸ>]îo½õV'¸@øK—.õ»çYPò.\(yî/^ÒÍÌ™3E`ÀDèÚiÛÛ»woAO RkëòåËM¾|ùÌ%—\"ŸË/¿\臊,Ó>ðÀBGVM(|ЬT©R&wîÜ‚´lÙRúc˲€².»ì2“-[6¡Gƒ dÂqÓÃ^Cà'MšdêÕ«gžþy›ì÷›šðJ+¼¾„p§‚ @ÄT !fzðÁE·æY–°ìâ¹ Ð[o½%jF»víˆgyâ™ òüôÓOò| /,é°xÖ¦ñãǡÔA-\¸0ñ*A<¨Ä«½ð ’ÇÂ'ª ~î{à*Uª$¿î/fjÚ´)±ÐRÿþý ý„žËÂ@cÇŽ¥Ò’%KœG¡“EÖV´¹N:Ä+ýþûïT¡B²º¼}–W_}ï¹çéc(ü;vÐСC….°q0fxÖ Àyì±Ç¨}ûöÄ«0μúHÿÜxP§ž}öYBÛۙϒ¦kPÊŸ??µmÛVÊìÖ­›Ô¦BB!ûJTzW€Õ«WKQXv¹>ƒÙ€%÷LPQ_0{¼ùæ›’W¿~}ÃÌ#×=zô0¬šÁƒË,†e6påù?þXððÕ·oß +Àõ×_ïàáê f;«ÚUy¨+Mj0räHi ^HT¨IvűˆX°JÙ :¥ÖV¨8P'QÖ‡~h®»î:Ãö‰TigíiÓ¦Ù&ˆJ +@‰%\¨JX½˜‰Õ+À+¯¼"4`aÕ ê —¨€PÙP6Xé1Ö,lf̘12öNÁA.R[ìcPmyB4µjÕrê˜0a‚ÁJx¾,XPä,kÖóŽ¥2eÊÈ=fF7’xÙ£qêÔ©2‹`fĪ€×XAn¸áÂÌÊLC¬¢H>w\~ñegi'ÁuÁ ïº#™=슃Œ’%K:ùW_}µ`NB‹²eËJÎüùóý0X-’ †" äo¼1è‚ÓB8t²¸ÁÚÊ“¡M<Ј#ˆmûˆó˶‰s¾›¶X‘1vl—9Ïã‚Hî[·nMwß}·|àcUT¼b˜í±:ƒlÑã?NXí"¬æQ‡D›˜3gmÞ¼™yäÂJw11„ Àä¬gÏÄú>5kÖLáX_õ†gÂÑU¸Á¤6æä_ll;×¾û÷ïw’À”ëׯO!0î| T(a²Aõᙊ@x_à™QÔ-ÖEØØ à °±.Lá®#\:¡@m…0c²€{jޮ׍QéÓ÷"|¸;-ðª+Lån3òà  âaR‡W*Q]1aAí„ {çwÛ¢FA `,áò®[·.5nܘxÕ¢Q£F‰úw1u„ǵSƒÏ³Ð—1kôéÓ‡ØP#¸Åð5?ýôÓ¢ÿó’.«˜ ąݺ;ôÎÑ£Gû”záÂú=  ‚Y`õIÊù裈 _jÒ¤‰daöBýÐuî{ >Ú w'„L€˜e@ç ,èΘqQ/V3ú™ÖVöP‰„ßY³f\´¨/¤†•öî]V+dUs—‡¾a¥A›à¶d/—Ðuîܹ„qêÔ©±ú%{2X…ÿñˆÐà´J/`¦â‰'¤¬Î;Óßþö7bÕOêÂ}Ž9Ò[ôùç|õ§ôÚl¸JQp…rÉ¢ó"4¹‡^kz2pàî´Othx€ ò¬+®Jäà ]Ïð *z Û Äj‡c=ºì!C$ÏêÕV‡dUMìën åBpDZÿßñ€ -ð¾0ãHùøâÙVtqÛNxi ¬ Rk+ÚR¬­p(àcjb(H Ÿ÷cˆ=h¡Š<¶5kÖLÏÀ+¡û6M×VENÓCi@ÎP€Ÿ—QñK·iÓ& ÍL‰ Ã8áýÆR ÀÛa½Rpb%-žÚ+4Ko;üþ ÆaóæÍÅm™ÞBõ9¥@¬QÀ¾ …2Ü ä®\¯•Ѧ€ @´Gàô…M²h7%ëj@Rð–yÌ^*f¾ Í™ÓVÆÛ&Né|2—ì.|Š^ùº˜¬”‘Ä׫¿ÞÑaЃdvŽð®|»”´ tÚÏN!zã-¦!:¹èΕDùÒæZô¶aÉSºÚÑë_¾:Ïü™xv}­V$}½*ÑbÝ“ˆ2gcEó Àûü{6Z-IêzU¢1ü`ö]ÿ%:÷×ùÚO&úiI4Z’ôuªDƒ~ZL¦·€•`7 „B†S@ ÃIÎböÏìò@c%ØÍnçs§£Ñš¤®S £‡L¾g*3»Ï[\gNð0þ/Üdtó’­>€Œñý³‰À쾉W„ªù’Åë{¯)ì[þÎ÷Rª?6ßðа Ç1›¢¿@€ ²Sř߉öñ à«þX¤ÿ8ÝÞéoP@ ˆìT±—ÿk'”¿ ñ¿‰º^xOïi|¡¨?¡€_r'q‘þ Kó"H€3dQ§ùßð°Ù…ÿIÊœ=ȇ÷°3¼GO↤e3]Îè–ªEùSàÔA¢òÏ¥L?úŸú‘ÿt§AÊôl¹SÞëgÐÓ ž‘6Œ‚7à °‰§ÿs¨EQBP@U ÄѬħ€ @â±ö0TBG³Ÿ*‰?ÆÚÃPAÍJ| ¨$þkCP@Ý !ˆãyÖ1½tjÑÕ·y^•V˜*颩IBU’d µ›) ˜.šš$г@q>Ð/¿ü²„žµÝ°a¥Ìq´Âü¥<û ŽzBáè çÃÉÑj$^bãƒ@vxœ8˜8qª°z‡ˆŽ˜d]âhÔ9¼qœe¿+VŒ† æ¤#ˆ"í ¬(¢VÚ  P‚`ãU«V•ÀvxÁÍ$­Àuxí1Rø+X{l~\üúþ9®ÞÇ_kÒ¤I¦^½zÏ·uÿûß GËñM6Q]þÜñÌ÷ 8̆CI @U %øð;uê$nÍU«Vbƒ‘À”øSxl/^,1˜ÚŠ fZ¶l™ð¡ú`Ö‡‰#ÈÓÀ¥xqH‡ˆ ]jÒ¤ A€úöíKð&Aejܸ1Í;WpÝ_¨‹£ÅSÉ’%‰ gzâ‰'ž¦O>ùDسױl $|Û6õ7æÓò!» θqãÄCÓ½{w?Üx@ŒPf0ÇËÃLl˜ \V§ ÇV6™3g6xÚ0s‹aËq•çÃ?ÏÐ7Þ(÷¼zní”ËL0 =7l_˜¥K—:uÅÛ…†‹æÔ”Æ—âOŸ>M麎Y+Œcl–Áï« *NÖ¬Yµ« {€AÉ1‹iO ò¢‘¦ ªÛ:Ó(ö1ýT"GË´—7è©ýú>@Ú)±'T"FJ-() ^ x5msÄ( 1RjAñH€x5msÄ( 1RjAñH€x5msÄ( 1RjAñH€hŽþ}m§h¶ éëVˆ& ÈûK¢Ù‚¤¯[ éY ¹  ÜãŸô½WHzHn¨$÷ø'}ïU’ž’›*É=þIß{=MÐ÷¢I}©[ êC  ˆ&TŠ&õµî¨S@ êC  ˆ&T¢I}­;êPˆúh¢I€hR_ëŽ:T¢>Ú€hR âŽÛ¼yóhö'®ê.–ç7º:çIZ{à|T–¸j|”Ëq ¨N:«=¢+ÿ/$áSñ© ©S`ÏïW(ó§N&cêÔ©òïÓNB."¾ M]»v%Ž\æiJ íBnú®"º¤¯ ú”R zPˆíµæ € @ ‚6!zPˆíµæ @R À®]»¨Q£FÈë±8zô¨„?ªT©’ÄéªX±" 4ˆd"^"Ž)´oßž&Ož,;&Ò=ñÅDÏÂh˜rÞ¼y 4 ôt£üôÓOâ»FTvø±qqÑ¢E4`À‰×q<‚î!Y0@âœÅ2DuÀì‡YøìÙ³´sçNÚ´i“Ð AÝ8P4!:¡ äæÙ»wo Z>|˜úÓ„±ðë”·qãF‰g‹tÔù矺QäŒ @ÜÛ•+W¦À9tèÌÖhÇ’%K¿n@_l[‘î¾ïß¿¿ì¬^½šúõëG?þ8q\.zá…¾môÓöPæÌ™CëׯGs›,Ïs¼0‰ïûå—_:+úºbÅ wd‘Sk+ðPž;yò¤}L~AOCxÆ N^0|  ßê÷ÕW_b„iÂ8 ,Æ<& ’A͘Ñ$°ÏhaËL&ø·ß~»ü2AÌ-·Üb” ×øpfÃÌ*ÑÎäíàÁƒNÙ¼üšÛn»Í01 ‡5ì'–¨êëʼýöÛ‚ÇBâD3ÇóµjÕ’r™É$ò:êàȉfúôé’~ë­·J¤t¤—/_Þ°ÐI9ˆžÎ;&K–,N=ü±Ó–¼yóš'Ÿ|2à}žHË#©âb–‰¤Wî¾ûna‚áÇ;LÈ3Žtã ÏÂø`>D0ð,'Ì8vìXÃz¦<fåào¦G¦páÂíyöÙg ˜“UÌ–-[ n0hÑ¢…cB(YQ`*Ž‚nxõ0'Nœ0÷ÝwŸÉ—/Ÿ=ñÅ_L™ÑÞC`ÑŽÿ+åûâÈê‚7aÂAAýã×tìØQî!`že »3¹rå’ˆ¬‡^¹¤={öÜPm1b„àr<Áå Ö†ã m¦Åó¯¾úªÐ<¾Dªä•È,X°@höàƒJÙnÀD†(”¨ô…pqð=#Aã+a€Uéþ¶mÛ„ 8æ¬Ü³Ž.÷6ägÆ –¼Ñ£GK(OŽthÖ¬Y#3ÐC=$ƒ… Š+fnU+)3˜XÆ>‰õuyLÁ:»-ưÚ"å€!CÇß¼Ô [·n†ƒXËjfËëСƒ±¡L!Ï=÷œÍ2•+W&² 40n@¨¶²ÞnvìØa¶lÙb>ýôSÓ¦MiÚ Ób° ß €?<ÑîšY`õVêèÕ«—Ð ´=01¸émë öë…DÕ`ðÌ&¿ÜAùeÂÉ/«òË‘ßV­Z‰Ñ…Î0›6m*•jÕªÑ믿.63åÏŸŸ† ":4tÚš5kÊóøbp®]¸C‚"D(ê²àÎCèÛ¡aHYÕ ùóçû¡AׯáA޳+g\)žÕ4ÏÂд`CšâÇ,pZY:á>X[Y=‘ô,@Äq‡Å¾ࡲ>Æ ô·€0¬¾QåwïÞ-Ùo½õñj/Œœ¡l[¦—¿¨íe-©”íôP¨÷Þ{/q g‰€¦iݺµ ó @4Έxκ¸¸a¸!B:«!N±ÐP€ç-°ZBÅ‹··)Ü¥pÜù¢Ï‘Ü}{Ò¤I‰®QLh¿›‰a»Ë·‚OñoÝýp·µwïÞ”#G,^ˆW•€ÏÛÄÔðaغ¾mF9¬:Jq¬N‰#Î à 6ŒÊ–-k«ŠÊoL@¸=gÃŒî¹çâHçÄF øðñ,‡ï0Ь7Ë̈™ A¥±"°^-8ðõéÓ'du(¤±ÂÀUÉQ×|¬2¬¦ £Ž9RV0/€Õ%š6mšƒë¾ÇÀÃëĆ:Áƒ³gÏiÛ'Ô¶m[b£—7n,ž%´õëo«oN™i¹ÖVxÄ0)`a;ƒ(ź=XîzÂÁ‡Áƒöî»ïÒܹsýÚ Wh… hÔ¨Qϼlè7h”ÞÀßî6^Ôu0}+=éé5‚aðà=àÎ8ÞŽV.÷Ð5-0%­K—.6IŒRxoð,¯bˆ :Tòa„ZÏòáÉÁ/lxMpíöY\蛬b9Æ!ôê*Uªˆágà!bfvÚÊ $ôöžÅ)èË裱ðþÀØl·-óïÿÛ¢šêÕ«§° ೺{¨¶.\¸PèƒúA+x1¶­­_VOœzBáÃ…2n¾ùf§_ l0€»,82X<Ø4©ÙON#þÿc’P^ ߆s¦s2žƒ nQ7@0aøñÌ+ ç!n°Ï„‚ ÏŠÀT >Œî@u»qƒ]£]¶µk×:Lâ‹ £Œá[¿/^¨ûÔÚŠ>Bøy¯BŠWÆÁÊ ´µY 2†rxÀð>€\à –î…ÄÕN0T™ñãÇ‹êcË¥º³Ý‘äÙÉ÷1¿{‹ë—Á ì©‘O ¼ÔÒ`ë”.]:$»V ŸH@°¶B=´ªêM€O0Ÿgô`;é(Çm`;Q¼ˆ+z7˜œ÷ÒM2V/ˆ}ÒbC¸ Ó±ú#ÂâN·×È‹cÚ2½ú§¶zEƒpË«€õÈpû^$¢¾Àz¬låû¦ÛûPg^,N¬üÆS[£M³¸€h+µúùA 7&\›Øƒ`cW¼.©=|øÐáíb=>tŹH Ä• t‘}õüq¸Ùk#.?ø·á|ê©§ˆÏ:{{ª›oñz:4¬Æ’ @:„½)fzwØ7À|ÿìi’.ìOð9'7ZÀÓ˜Ø@ÙØ¸ÃÉO Ø8¦\0!‚¯^!}PHÝpô˜ONÊFŽô†؈Ãñ >ß$èðBA-‚×ÂO ŽØ·/Ç„qD†>6ϰa„çù ”l˜ñá5ÁuaÓŒ}î„<¬: i @0ŸkzÒÓº–ž:2úÞê7³fÍ28± ?4×ñn­ÁA=_`²»çÎk×®< ?x¨Ó•xu¼ÿþûò8Ndâ~æÌ™í3fŒì¸Ÿ‘íƒM4l´ŸŒ˜Ù³gûí‡H¡qü…¾Ez#LW€ “ÔœƒÁYXããDzÍÏ'åM.p àºÅ–?öøx5ñFAma&•#ößòpVˆí–#¼-íÀ[lnÀ±¼^‰Cg(uÝÿýÒö_|QÔ-7¾^_ €z.Ð"Åtvèñü‚á°û$f Ä0nà¾#CpÏÏË2¨-8— Àаp‚Ò˜=Ø¡8”• Äù(¼v‰CxT'[f2ÿªýÎ; ÃNœ8Q6ßø%bU†j×®ä‰ÀÉ`b>f!Þ `¸OWBÿgõŠ–/_ðaœ¢Ä Ägnœ|”Åçœ{ß ËØ1Ÿ2eŠœœÅ¿ôñ{¾hzÿÿP(+”*UŠX—™šuoyg›ePg`´º½4î"pZGŸùí(â—vä¬<ŒX¼ÿ €êê4&Nib•€ÌoMɉT¼7Œw¡æàH¸ïy{x‡øÕC1„ùP 9Æ‘SFBíp·=)¯#i%¢ì¦N«â­&¼n‰·Ð|È9íˆë%J˜G}Ôlß¾ÝA uºHxÏâD&©áÕK[.N^Úwlù‚ݬbÃ8ÇÛW‰ ^Áð;G ],¡à‘±')mZZ~S;]‰#Üø# 8i‰¢xÁ?°ŽŸpŸ@ýôBÔàé5­€uø¤x CžÆÄK=nÀžA¨Ó–Q©ÄÝØ8»V ÎL›Y ¨D–žZZœQ@ ÎL›Y ¨D–ži.íðáÔßPKs¡ú@ØðÄfEÐÓ’a·, 8Éÿ“ù ÿ#Dèÿ*JR„ÕEì¡D<þ÷‚H·3!ËË“§ïÖ–ã¿ ýß< ÙùéTDgTØ#]‹ýfT­ÚŸøÿ$jŸ*û NÀª ¥A]·n·0–,™ù¬PxïD©© ]­ @”†÷“OÖñ{ÂYø˜sôñÇëøŒ®œÑ €(PÌ>m‚œqäÈ þ[ǢЭR <°bÅ6þÿÏ ‘Y²fÍ"…¦$}•*Q`¨?`z gΜå÷¾á#ÐçW›®¿ÞS@À{§¨áôé3Âì`z7œ<ù}öÙ·î$½Î ¨d‘ÝU,^üÿwÐw’\gÍšIŒa¿ Mð”*ž’׿ð©SײúãOö3gÎÑÂ…›éĉøìßÛØOñ‰ØosܶðøñÓüŠãòUl‡à;÷|¨X›¦¿ÞR@À[ú¦(}îÜâ÷O‘èºÁN:V…Œ£€ @ÆÑšÿósmп4A3°|þù¤'D3nPT2ˆÖ¿þzœÿ–ýüfWöìYùߟý?Ù²e•˜9s}µJ«‰èa8%gp :tŒ:uª—aË–}0ï0G¼¹–¹s_šOo¼£@&¼}ï]ñZr( ¾@Â-[ö|(4ÍóªyH\-:ö) ûc¤-ô*W‹Ž} ¨Äþi =¤€ €‡ÄÕ¢cŸ*±?FÚB) à!qµèا€ @ì‘¶ÐC ¨xH\-:ö) ûc¤-ô*W‹Ž} ¨Äþi =¤€ €‡ÄÕ¢cŸ*±?FÚB) à!qµèا€ @ì‘¶ÐC ¨xH\-:ö) ûc¤-ô*W‹Ž} ¨Äþi =¤€ €‡ÄÕ¢cŸ*±?FÚB) à!qµèا€ @ì‘¶ÐC ¨xH\-:ö) ûc¤-ô*W‹Ž} ¨Äþi =¤€ €‡ÄÕ¢cŸ*±?FÚB) à!qµèا€ @ì‘¶ÐC ¨xH\-:ö) ûc¤-ôq"©OŸ>´uëVI‘ñE9r ÆÎNEŠËøÊ=®ñÍ7ߤ|ùòy\ËÅ7pÓM7ÑÞ½{©téÒßk-Á3 üþûï´~ýzþ·‡Š-êY=‘*8®¢DÖªU‹:wk9PàÛo¿åh˜<(Ù›"Õð†®ZjœP@ NJ›é T¼¡«–'Pˆ“ÒfzC¸2‚½!7¥:”ªV­JuëÖõ¦.õ¿ÿý/mذÁ)ÿÒK//Yƒ ¨`Á‚Nz¨‹?þøƒÎ;G—]vY(´„ÍÓÀ£¡c8pÀ£ÒÏ»mÛ6Ú¾};•,YR>Y³f¥éÓ§S‡hóæÍaÕ Ar7Ή'¤-x~Ó¦M²×á<ÈgÏžõk›mð (@;v”Oß¾}iüøñ”+W.zõÕWS´´øæ›oè—_~qŠG;°àãNG;vì ®V‚/:þü2ˆ`˜œ9sÒ]wÝE}ô‘Œ'–üÿüç?”'OjÙ²%=ýôÓtÏ=÷HÞ¼yóhäÈ‘‚»xñb7neΜY„ {˜13eÊ$ÌöÞ{ïÉ5Ê»òÊ+©B… Ô£G<Ó¼ys*W®œ žÃLݳgOºõÖ[iĈÒF ˜mmÔ¨uïÞ]Ê@þŠ+dfGÂý÷ßOõêÕ£.]º¤¨ÃÞ\qÅtóÍ7Ó”)Sdu(S¦ ;–&OžLÙ³g—>\wÝu4jÔ(š0a}ùå—ò(„ç7ÞìÝ»·ld¡Ï—_~9 8ðL"B®,¨ `äwÞyGf2¨øiÓ¦ C/Y²D„¤råÊ´lÙ2g|q ý:5˜ÿÑG¥Ù³gKY«V­’³>˜¿mÛ¶4gÎaHìT´:û§Ÿ~J5jÔ À®é3ÏàA-Â, µªBýúõeÆÄ*_°`ŸÙ)BX0BHÀ(­ZµA~±bÅ‚²A³fÍÄ0…P=üðÄ#P©%J”Y3.fÿB… 9Æ-V‰Ö­[;å¶k×Nfx'!À…mÚ‡Ì\³fMé#õ¸U[èÁ.Ԣݻw‹°!=”pÛçãñ7aU †û0V–,Y„í A±ú¼UE j€9 *ÜrË-Žªbذaô×_QÅŠé•W^¡C‡‰Ç%[¶l¶HÑÇŸ 0µ0%¸æškä×~!ßæÙ´´üÂ0”-[VúøÚk¯Ñš5k誫®¢k¯½–@‹@`'„™3gŠ [<ç¶‘lz"ü&´€Éõk×–YÏ@‡Î‘#>|˜öïß/ æ_½zµèÃP‡°Š@•ppÝBçÎsϸÖCàÎÃÌûÃ?ˆ æ~>Ük­3fÌa„M‚¶‚ù¡ VªTITÁ&Mš,Œ€º„UA„áÛ¤ÁiüJh(-´À€ÃÓ³nÝ:‚c:1l¬0(‘޳åéÓ§ÅH…Î `@€Ú3uêTºúê«©T©R‚oË¢E‹Dý‚ÍCÆ6Fø˜1cä_£G¦åË—;÷ð"Ùv/]º”ºví**Ü?ÿùOÁ«Vx¾°šAȬ' ý"«T VÇÐ_¬"°M^~ùezûí·É½Ò9•'ÀE®¾³¿ï½ïØÁ0Í;·Ìü0€ðAÇà°›[`xw†.0˜Ñ‡úÜu¢,èï`HèèðºØ|¨@ðH;vL„«}ûöâMB9°G>ÿüsBF4Œg¨mxBÕ­[7Ƀ' ³|ÿþý¶ ž±A@?aôBn¸áÑ÷!|ô±W¯^Ò6[l ~ýúɳRI‚}ÅÕû0d½: ÆlÑ¢5nܘڴi“b˜aà Ͼ;¦ÈÃmƒkj‡¯«ËóÏ?/̵ʩ¨dРAÂÐ`ZÔUËÙ‚!„[€Õ Ì {‚‡_Û7¨Qh ~CÙ RÏ—=­ïø&–o¡öÀ;FnÚ´©_SÁ4˜Yò,SÊw§AuÂ'€Ál^¯ï>*•Ï ^·Å]W´¯VJ a!Øù0`€·iyÖ ý9ƒÃmŠÙ7Àµ B!:P(:tOØZãMR/P²¢v, ¨„C%ÅIX ¨$ìÐjÇ¡@\Á+W®L±kN'c)€3Nñq#ØÐI´?ÆŠ'F ·­Øá´_îó7^ Œ&ŒÖ—P 9ÆY{„*A£ÉÉA€ägíe ¨!Œ&'þ0Ö¬ðÖVã¢IEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1ResultBase.html000755 000765 000024 00000073321 13515046516 024672 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::ResultBase Class Reference
MySQL++  3.2.5

Base class for StoreQueryResult and UseQueryResult. More...

#include <result.h>

Inheritance diagram for mysqlpp::ResultBase:
Collaboration diagram for mysqlpp::ResultBase:

Public Member Functions

virtual ~ResultBase ()
 Destroy object.
 
const Fieldfetch_field () const
 Returns the next field in this result set.
 
const Fieldfetch_field (Fields::size_type i) const
 Returns the given field in this result set.
 
const Fieldfield (unsigned int i) const
 Get the underlying Field structure given its index.
 
const Fieldsfields () const
 Get the underlying Fields structure.
 
const std::string & field_name (int i) const
 Get the name of the field at the given index.
 
const RefCountedPointer< FieldNames > & field_names () const
 Get the names of the fields within this result set.
 
int field_num (const std::string &) const
 Get the index of the named field. More...
 
const FieldTypes::value_type & field_type (int i) const
 Get the type of a particular field within this result set.
 
const RefCountedPointer< FieldTypes > & field_types () const
 Get a list of the types of the fields within this result set.
 
size_t num_fields () const
 Returns the number of fields in this result set.
 
const char * table () const
 Return the name of the table the result set comes from.
 
- Public Member Functions inherited from mysqlpp::OptionalExceptions
 OptionalExceptions (bool e=true)
 Default constructor. More...
 
virtual ~OptionalExceptions ()
 Destroy object.
 
void enable_exceptions () const
 Enable exceptions from the object.
 
void disable_exceptions () const
 Disable exceptions from the object.
 
bool throw_exceptions () const
 Returns true if exceptions are enabled.
 

Protected Member Functions

 ResultBase ()
 Create empty object.
 
 ResultBase (MYSQL_RES *result, DBDriver *dbd, bool te=true)
 Create the object, fully initialized.
 
 ResultBase (const ResultBase &other)
 Create object as a copy of another ResultBase.
 
ResultBasecopy (const ResultBase &other)
 Copy another ResultBase object's contents into this one.
 
- Protected Member Functions inherited from mysqlpp::OptionalExceptions
void set_exceptions (bool e) const
 Sets the exception state to a particular value. More...
 

Protected Attributes

DBDriverdriver_
 Access to DB driver; fully initted if nonzero.
 
Fields fields_
 list of fields in result
 
RefCountedPointer< FieldNamesnames_
 list of field names in result
 
RefCountedPointer< FieldTypestypes_
 list of field types in result
 
Fields::size_type current_field_
 Default field index used by fetch_field() More...
 

Detailed Description

Base class for StoreQueryResult and UseQueryResult.

Not useful directly. Just contains common functionality for its subclasses.

Member Function Documentation

◆ field_num()

int mysqlpp::ResultBase::field_num ( const std::string &  i) const

Get the index of the named field.

This is the inverse of field_name().

References names_, and mysqlpp::OptionalExceptions::throw_exceptions().

Member Data Documentation

◆ current_field_

Fields::size_type mysqlpp::ResultBase::current_field_
mutableprotected

Default field index used by fetch_field()

It's mutable because it's just internal housekeeping: it's changed by fetch_field(void), but it doesn't change the "value" of the result. See mutability justification for UseQueryResult::result_: this field provides functionality we used to get through result_, so it's relevant here, too.

Referenced by copy().


The documentation for this class was generated from the following files:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1BadOption-members.html000755 000765 000024 00000015270 13515046516 026127 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::BadOption Member List

This is the complete list of members for mysqlpp::BadOption, including all inherited members.

BadOption(const char *w, const std::type_info &ti)mysqlpp::BadOptioninlineexplicit
BadOption(const std::string &w, const std::type_info &ti)mysqlpp::BadOptioninlineexplicit
Exception(const Exception &e) MAY_THROW()mysqlpp::Exceptioninline
Exception(const char *w="")mysqlpp::Exceptioninlineprotected
Exception(const std::string &w)mysqlpp::Exceptioninlineprotected
operator=(const Exception &rhs)mysqlpp::Exceptioninline
what() constmysqlpp::Exceptioninlinevirtual
what_mysqlpp::Exceptionprotected
what_option() constmysqlpp::BadOptioninline
~Exception()mysqlpp::Exceptioninline
mysql++-3.2.5/doc/html/refman/functions_c.html000755 000765 000024 00000022303 13515046516 022011 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Class Members
MySQL++  3.2.5
Here is a list of all documented class members with links to the class documentation for each member:

- c -

mysql++-3.2.5/doc/html/refman/inherit_graph_36.png000644 000765 000024 00000005041 13515046516 022447 0ustar00tangentstaff000000 000000 ‰PNG  IHDR¨$9qsRGB®Îé ÛIDATxí\gˆK®;ÏœsÎ9Ĭœ¨?Ä€‚*Š(fÅœ@ň Ìw˜QÌŠ"(æÀˆ9g1Ĭýê«GófwvÆ»½Û“×»Ó¡º¦§ºú몚e£2H™ˆN™ó2³2øWÆ@%¤h MÑËc&g ÔØ@ŠÖ@Œsv§OŸ¦¹sç:›MÝh I5!CZµjUÀ=ôñãÇ´yóæFÓ`4T¸wïíØ±#¨øÕ\›6mÒEs5HR ÄÇÇÓˆ#‚Þ#Aƒr™F£iÀh„onëOÆ@ýéÉpEHÆ@#¤xs[øë tíÚµ4`ÀO›®OŸ>‰#_®\9Ê›7/uèÐV®\Iß¿©Ë—/§Aƒ%âÁ‡öîÝ›6nܼÓÖzíÚ5jÞ¼ù>-[¶¤Q£FÑÍ›7mœá/Ú×àçÏŸôöíÛ°Ýä¯7P(ÿäÉ“aSˆ› ™3g¢Í&MšÐôéÓ)Ož<ã8p  ùöí}ùòÅmx‚Û9BHÃxÑ›7ohÏž=”#GªX±¢| (@kÖ¬¡:uêЃ¼D$¸ß¾»ví¢œ9sÒ?,Ï>Ð5Ídg UÆÂ<þœ .L=" MåÊ•é÷ïß„]þ*UªPêÔ©¥?S¦L¢D-óÉ“'„¶lÙ²IÓùóç­13fÔl"÷òåËT¶lYJŸ>=½zõŠŠ-jõ£ðñãG³ô={ö,åΛʔ)#<@ºwïÞ úݸqƒÞ¿O5jÔ 4iÒH?Æ}ýú•Ò¦MKÑÑÑ"G×ñ ‹/43fŒð÷ìÙSø\^ºt)uïÞ:vì(}@_¿~ÉB;wNæ ƒþüù3]¸p`8Å‹÷5/a²}¡ W\«V­J©R¥²õ <˜jÕªeµ!¿Ø¶m[Ú»w/õéÓGÚ½d[¬ÖkúðწIÁ‚¥Ž/èëåË—Rdž(Y²¤èÈbHH?·³ç?ñó;{SÈ2¿yþÆËc6l¨š5kfÕëÖ­«Ø@T½zõTll¬%F±‚Õ¢E‹Ô¥K—œb¨¨¨(U¨P!uýúuáeQÙ³gWl8Â_³fMÅÆ+}ãÆSÕ«W—r—.]Tùò壈bÓû³!I/”Ô5jdõ—_LHÿþýû¥ÿðáÃuÞtrß-Z(FIéÇæìØ1Å›Q 6La^ ”yêbÅŠ‰LÌ»_¿~ŠTêÐѬY³„×k^¥K—VÓ¦M^F*y>Œ‰‰QùòåSÐ?èèÑ£"ûÌ™3R×_¼!¤7’4…’j 0w~èÅ*>ET©R¥¤®×ààÁƒ²F˜Öõþýû¨B\\œÊš5k0–¸°ñY²d¡§OŸÒ¼yóˆMP»nýúõtêÔ)Ùõ]»v%V¤µË¶oß.; È3eÊAaìLŒƒŸdÂQÑ£Gb#$~`ñ§^¼xÁ:NlÔ´páB9nW¬XAøìܹÓbÆŽzÞ¾}›p,jD9ÒBe{HÞ·o_Ú½{· 2|½©S§ÊÉÑ Aâ eÉ×¼‘:t¨Ð'Æ´k×NPÞK†Û`ž~|Û¶m“{bíüR(M´Ê âãF®|ôÈ•+W.Øe¬4:tè ,Yñ‚h@à±cÇ š®[·ÎB[8úš€nnÄùŸ.ø¡Ú/B‡öýP†__Ö‹àcß½{—€–lœÂÇë¹Õ«WSÿþýDäÏŸßjƒNp¯Ì™3Kt}ØÉk^>vœ*¸§&Þ`âûé:P^û ˆ€ü@k>¾½Áç&Ãm ØeÓâ­+üéä °ñ,üŽyöóDip¸[·n-Ãp4?ž°ð, x*#Ñ*ª}öì™f³‚»AÛû­#ݤ>,¢UMpA† "UûÜt¿Þ˜ºîuõš+Ðüùó î>ÐÓìÙ³%p &k2|øpéÂó’á¶Y45ÁEJògUaœ éŸn„ Ô¾}{âcH¤ë<"üÏ *Ú"¯V­šø}ðà; –-[æ:#,ü^ø—0x(•ƒ‹ŸÝ‘ƒ_lq`DÈ‚`|Ècb!u';ñ’VºzõªÈÄMžZ°`è™v/$³€Ìƒ!å‚oï%Ãm 0'"t†L PÚío:+‚ù9O ÈùSJ6Õ ƒÄñŽ4 R5𨷓 ÐÆ€”Õ¤I“ÄFàÅ‘¼¤†8zÔÃäjG+,r“ì‹R@3fÌ Î"XüwîÜ9;w¦ØØX12tbc`ñquÖá¾À-j±+©( Üö™0ýŒö2d¡]÷é:®vr›—–…t\öãeÓr‚°Y6lØ ²í:°ËEj)>ÌßK†Û@øÊ•+’Ú‹¸jögÒ÷¯]»¶œzH-"¨M49Ù? ’œãýÔ9ºUœ+ `åˆ]8qBñЇôÒ 482·‚$;#ÒLmÚ´QÃ;]qþÒêÖÁú%»VŸßÆ" Á‘z ýé¼ô³q®Rž3!s%}nkÀyNÅÉó–àC@ì—’%Hò³Sp|8p€p”À—r‚ Ε:›¥äÅ®ôCƒ—nä ¤Üøœí‹WIE~æåõl~æJúÜÖ®’ï^¾Pn‡×x{Ø¢x»P·2ŽO¼‘Aî±[·nnlžíœt¤jgÆ[#·è¾2ú(²‹d9¥Î+’:±ß; 0lo€ó‹D²£ÙÎbÊFaÕÒ`HÙ!vùã‡BL5…i Ù¢øöÜf:‰Œþ% õ¦k?ÔÑ@rh Ô›ÁÅï:ñ†ÇÑ@rié5¼ FQ|0&Óf4! ˜(>BŠ7·õ©$ùT”a‹ŒŒFFïæ®>5` Ô§¢ [d4ð‘Ó«Œe6ë IEND®B`‚mysql++-3.2.5/doc/html/refman/inherit_graph_22.png000644 000765 000024 00000503236 13515046516 022453 0ustar00tangentstaff000000 000000 ‰PNG  IHDR¦A÷êBŸsRGB®Îé@IDATxì ¼Ôã÷ÇOû¾¨PÚ‹ˆPI‰R¡ ÉNŠ(»ŠBÙ…$Û_QI´*J…Z%Ñ&íû¾ïûþýŸÏé÷ŒiÌ;sï̽sïý<¯×½óﳿŸ©û™óœó|3yš„‰H€H€H€H€R™@æTîŸÝ“ € 0åH€H€H€H .P˜ÆÅ2p$@$@$@$@¦ü Ĭq1 ‚H€H€â„À²eˤB… q2ƒÒY³fIÕªUƒNŒÂ4(Þ$ ÈèÞyç)S¦LFÇÀù“@ÔlÙ²EÚ¶m²= Óx˜I$@$Q 4hÐ@.½ôÒŒ:}Λ¢N`åÊ•‰ Sú˜F;$   H  Ó¤Pc    ¨ 0:R6H$@$@$@$¦I¡Æ:$@$@$@$@Q'@au¤lH€H€RŽÀêÕ«¥qãÆ²qãÆ˜w:sæLiÚ´©”,YRÎ:ë,¹úê«eܸq1ï79ìÚµKŽ=*Ë—/7N`ìç•W^‘–-[Ê7ß|“œî¢Z÷øñã²sçÎÓÚÜ·oŸ´oß^ªW¯. ”Ë.»L~øaAÄ{¸éàÁƒ‚v–.]j<"©n?I)Gašj¬C$@$@qB`Ïž=&!6b™F%µjÕ’ 6HÇŽ¥C‡rìØ15_ýu,»NVÛÐÇ—œ9sʹçžëû?~¼lÛ¶Í÷¾X±b†±ñ’ÆŒ#… 6ÎÓæÍ›¥víÚòÉ'ŸÈ•W^)ï½÷ž4lØP† fuþüùa ýÁ”{ï½×Êž8qBöïß/'Ož «nÌ yL$@$@$@>jAòô¯7wî\ß½P‡öV­Zå©uËÓãp¼yóæYqýƒïýóÏ?žZ=;voÍš5ÞŽ;NknݺužZõ|÷ôðqï÷ß÷T,øîáB-\Þ´iÓ¼íÛ·{ðÔRjù'Æ«ðŽ9â©x±û‹-ò¦OŸn÷ì†þR«˜‡ñ¢ &Ø«ËÃ+òÜXU¨x*Ô<ÌãСCžZI=E§µ‡9_|ñÅ^¹rå|Í üßÿíýðÃÞÚµk}÷'ä«õÒûí·ßlN®¸`ì˜ÃŸþiѾRn ÜÜó~ùåoÁ‚¾Ûà%KOÜi}¡@öìÙ½Î;ûÊâ\w¬ ˜ïÝ»×úÄø‘Ô2íM™2å´5Ã}é6o¬_ฑöÀdöìÙغäúqïwïÞí­_¿Þ˜«µµÅgÜyä/[¶lúðOà™/_>O8³Ûà„v°–à¼dÉ_qÌñ¦›nòêׯïé— ë¦M›Ns¨±â3¡V\oòäÉ6N_Ãa\¬X±Âæ8~ÿªâÿ†×$@$@$Ñ D*Lÿøãûc[¯^={…H„€Ã~\ã§fÍš&ÔÊåÕ­[ׇxëÖ­&œzõêe¢¦téÒ^Þ¼y½L™2y%J”ð .‘ Î8ã /sæÌV¾Zµj^ž„–q °ñbܨ‹<ˆ/¤‰'zjY´ù]ùòå=ˆ µ–ZYŒçí·ß¶²îW0a ñíÊáë†rèO·ÍmŒhïóçÏok†ö üÀ÷³fÍê-ZÔÃ|]zíµ×ŒI¡B…lm±î Æøÿ÷®¨÷Ö[oyjÙµ/7Ú„¸§9rxºmï+ëñâ‹/ZY¬AóæÍm<èÏ¿U«VVëëæpÅWØ8Ѿ\!…+˜àsq`L¨÷é§ŸZ½p~…#L¹•¯T™H€H€H ¹T¨Ø6÷| S§Nµü‰Z¾dðàÁ¢–KY¸p¡´hÑBÔÚ&*H­»‘#GŠŠ¹ë®»ä7Þ0ßMlÍ£ÞÙgŸm[¶Ø.¿ÿþû¥J•*¢âAT%êOX¼xqQÑ&x¼ª yþùç}ÓC*,¿Q£F柈­\¤víÚ‰ »V‘l[öxE;H—\r‰½úÿR(Mš4;¢¢Ææ NøFöíÛWºté"*}UÔò(jµÛÆhĈ¾<âòØc‰ZhåÕW_l·Ã‡ãmݺµ<ôÐCVåÔ*kmƒ3ø\~ùå6'âŽ>°Í ¿IŠòÕW_Ù\|…yV'ÖN­ Ò»woQ ¤µ«ÂLœ úÏ•+—`\ja5ÿÏfÍšÁø'jå¶¹|þùç¶*0ÍßU{ÈQ蟿+x€/æ ßÒ`I¿¬ØmÌ céÙ³§±ìׯŸàG¿@ˆ~ ’»ï¾Û|…ñ¹ôOáŒU¿ٜԪj>Æ}úôño"ÙצÉFÈH€H€H@D-VrÎ9çÈ 7Ü`8 ¢ Ý{ˆœ;ï¼S hœƒï#Ä!ü!ð\¤;ó}„hx÷ÝweΜ9&HŸxâ )Uª”•{àB"G „|*QV­ž¾ò>ú¨@lªµÔÆ áê|uk[Ô¢ieQcÁcYÃõ?ļn¼ñF)[¶¬µ¾Õj'¿þú«¯Uí p OÖ‚ˆuI],°G­¢&Pq¢íÂ÷cCyø‚ª5S~úé'PÒ-{yæ™glÎ/|.o¹å×l’_ñEB­Š¢ÖP㎧Á·~«ÂÍøÁZ!  ã‚ D9÷%_> ( ÷ÝwŸ\1&á PÝ7¬ØKXG$|ÑAªT©’@ã=Öl!²C¥pƪ–Wóg…Oîí·ß~Úú…j;Ü<>’4\R,G$@$@!èö­åÂB‡¤[Òö K¬g 0ˆüÆuXaQE‚°…¸€Åõ…^0ëé Aƒ|ÖU$— ,C%' Q" A>.ùçéVºÝv\W&ðõüóÏ·[‚.hÆ•Ñí}³Œ~ñÅf1®ZµªË²Wp…Ô%ŒÇ%ˆgõtom¬î ‚•á‰Ø·º;ˆú±Z^… ì¿ £‘ ¾\‚XvkŠ{XW¬©’¾üòKW\06Xn1¾Ê•+û#  ]&¾Jzq,á‹ ’³^–Á: Aø"Aˆú'¬ubëÎX×–äh&ZL£I“m‘ dXÎR•Xá`Áüì³ÏDýIEQ¬ „¶w±ý¬Á!&l PÐ_Ón»Öw#àÂÿè(l=û Yÿ¸ø·Š“ñ¾þw!‡þ±¥Ž-dü¨?­¹?Àå y.a ûã?vo“üšÐxü„•©{÷î¾±aýàJAa‹4D¬KÈwLÀÖ`—žø¬`_}:O+zØê‡öÚk¯ ‚²¦ü×b–w×§ë+ð5±±¢|8LÛä=…i$´X–H€H€’Iþ˜¸$/¿ü²ÜqÇvŒš„"|<á_zá…šubÖ6>ø Âo¾•‰ùõa+eá* AL¶½î† Cø9B,õèÑÃÜœïh§N|n”ü;! 1^øTB,Câþ hçj"aÛÁPeâ Ö_$Ì39 íÂ2‡yÁú«Ñíæ"1vìXÛR‡Ë„ Ù˜0lëk Žu K'„¼¿øKÎXëÂ2yÑEÉG}dk³xñb;,5HÈÆ K8øaMf̘a–røy"Á ‹u‚ Ç¼píÄ8Ú„°íÚµ«YhëÖ­kÛòŸøâ#£ð% \‚ø…5}ã æïÜJÀu1ÿ„üPcõ/³k( Àÿ úYÿè†}\”‹6Ç?H*‚¬¾‹ÊÆqChó.!B÷p,”K8‚QÏj‘²Hj‹vÜòkÔQ ›‡hj•£™p_-mÖ®‘WDˆ«ö„m ¢òET#’Ü Eåc 8IÏ/µãŠÐ6~ÔwÒÓ d[Â)zÖ©oœˆÞVÁmyœpS•ç¢ÅŸ~úi;1À ë/MÖŽZií–Y4¸ëÑá8Î ìÔrjåql’kyXf÷»u놷¾¯¿þºï=.ԇוkÿhyõ)õTðúÊcìêÃiïq2‚ TëãÃ:ªß©¯¬Šy[WÉ®¢ÔŽƒB=Ö7/õõT„{ê–`uU„ûN@D;NKÀ‰ Ž^/¸àO-¢–_ˆÊÇÉî3ƒuõŸÿСCí³¡nÿ‰Ê5Ö@&X[ð7a¯Šæ«dBŽb"  PØJ…¿"‚jœ‹„ÃéaÙóßöF?° êžf¡ô÷EüaéÄ}ø¨¶mÛÖFGžK85ˆä‡¿ ¶+ÊÀ‚׿¹þúë®*h\Õ°_±- k*¬¾ðg Üš‡¬€…Ö8X~áG­„ˆwaN|à‹ŠÀ(w6Oÿ>á ,X c•°v^õlW; À¿/X"ñÙ‚…ÕMPÆààüHýë!§&À?Ù?a}áÒ‹k`{pÖWŒ .ÎúêÚÀ±àí¶þÝ}¼†«¹H¯ñ¹ÀaÍ ôEvm1øÉ‘à+ ʶÅá ˆm{ø$&…„w ä¶Üë{üâ_QâøIJ‚{Ž®J(Á1˜ÀJ¨|$÷q$W5‚VÁi.H+°€óC ¼Í÷X;Ò„„e ¸teñ…!!fÈÃO` ø •BI­¨ V 5Ö+E)ƒÂ4J Ù $Fþ£8 犺ル,²`çYBP z?¡ä%$Ž‚õÃ{i“,þ E÷ÇûŒ¸•ï+Äñ‘ ¤(”ØÊOÑ ±3ˆálå3*?N‹Ã    ŒN€Â4£8   ˆ¦q² dt ~ÊèŸÎŸH€H (lNÊ™³¼´]ö„SœeH€B 0 ‡Y$@$@žr4lذD'~àÀq=Ot¥Ìž½]n½µ¬Ô©óïsÕ­Ì$ „:ÊŒQùøƒÁ©“ $ÀwßÍÑGLŽÐljf“wß½SêÖü ú¤õÌZ$¾ Ðbš¾×—³# ˆ"C‡ŽJÇŽÃõyò³äÞ{¯TqŠçÞÿ÷ðó(vɦH C 0ÍPËÍÉ’ $•À²e[äÁ¿;È A¨•ôü¤6Åz$@ `T~`x›H€H€XH7þ@ Ì-ãÇ?CQêÀð•¢L€Â4Ê@Ù @ú"ðî»ã¤M›ºu_S·ðÛH±bI{Æ|ú¢ÂÙ@lp+?6\Ù* @'pâÄIy景åÛogÉûïß-ÍšÕHã3âðI þ P˜Æÿq„$@$@)LààÁ£òÐC_ÈŸ®’/¿|PêÕcÔ} /»Ë (L3èÂsÚ$@$@Á ò¾yó>²rå6µ–¶‘K.)¼ ï’ D…iÔ‘²A  ´JàÈ‘ãÒ²åç²|ùVó'=ï¼³ÓêT8nH“(LÓä²qÐ$@$@Ñ&pìØ iÕªŸ,X°AŸèô„P”F›0Û#Ä P˜&Έ%H€H€2'ž(³f­ÖÇ‘>&+òñ¢`É9Å8$@a‡‹Â!‘ ¤,7Þ£ç“Η¯¿~L}JK¦lçìHÀG€ÂÔ‡‚$@$@‘À€¿Ë'ŸL”>j.5j”ˈ8gˆ<`?n–‚! Hi'.–^øVž}¶‘Üzëe)Ý=û# ÉÓpoI€H€H ÝX¸p£4mú¡Üxã¥òÁÍÒý|9AH (LÓÂ*qŒ$@$@Q%°yó¹á†îR¾üY2xð#’5+7£ ˜‘@ P˜&«‘ ¤M‡3K)Î,=úIÉŸ?gÚœGM郟Òá¢rJ$@$@ xú顲~ý.7®Ei˜˜C©B€Â4U°³S  Ô €èûÑ£çÚö}É’…Rcì“H :Õ„€Ã,  ôC`Ê”¥òæ›ßËK/5‘Úµ+¤Ÿ‰q&$ŽÐÇ4-&§B$@$œÀÚµ;¤qã¤^½ ¤gÏÁ ñ. @ª 0Mõ%àH€H€bIàС£z$T‹¼5ªäÌ™-–ݱm d i2à±* @üèÐa¨lݺWƒž¦(ÿåâ38 Ó þàôI€H =ÀãFÇŒù[† yDŠ/³©>|Xî»ï¾˜µÏ†I ^ ôéÓGÎ8㌨ ÁOQCɆH€H€≞ìôê«ßÉ“OÖy°Ó±cÇdøðá²yóæxBÀ±@Ìlß¾Ý>ó‡Šjô1*N6F$@$<* ¾/g•_ÿx>.™3gŠé°öíÛ§g¢æ—±cÇJ£FbÚ'x 0mÚ4©U«–lذAÎ9眨 ‰[ùQCɆH€H€â…@§NÃe÷îƒòÍ7OÄ\”ÆËœ9H(LÓÃ*r$@$@>C‡þ)#FÌ’Aƒ–³ÏÎï»Ï  ø'@Óø_#ŽH€H LË—o•_üVÚ´¹VêÖ½ ÌZ,F$/(Lãe%8  d8q⤠ÒrÁŤcÇÆÉj‹•I€R‡·òS‡;{% ˆ2îÝ–eË¶ÈøñÏH–,´»„»zõjyì±ÇäóÏ?jàJ`Ÿ}ô‘üøã·í}ïÞ½¥lÙ²Aóbq³^½zòî»ïJµjÕ¤yóæ²sçÎÓº)^¼¸4iÒDš6mzÚýX¾AÐÜ+¯¼"$Zºt©”/_^.»ì2yã7Ô åì°ºÞµk—äÉ“G²gÏnëù÷ߡ~VÝx,Ĺñ¸* @DæÍ['=zü¬Ûø7ê÷3#ª› ïÙ³G80N<ÓéÿóÏ?2}út)Q¢Ä~²eKÙ'pMžû쳘2qãh±ÚµkË'Ÿ|"W^y¥¼÷Þ{z’DC6l˜‰Óùó绢!_Ï:ë,;¶ …Ž9"Ñ>¾)dç1ȤÅ4PÙ$ @Ê8|ø˜´m;HjÖ,/­ZÕN¹Ž“ÑĦM›¤dÉ’²víZÙ¿¿\|ñÅròäIY¸p¡ ŒK.¹D ÞvìØae]‚µV>$´µ`ÁYÅŠsŬ=XÓ.¸à¥4ðhŸ£G ¬n°Ð-^¼XO3Ø-U«Vµ:hhëÖ­R @#ÄÆU¸pa_˜KæÌ™m¬žç 6#G»‡BE‹ )ö0÷Y³f êÂZ˜/_>ksDÛn>Ç—õë×3\cÎ¥J•’U«VÙù±—^z©äÍ›×7.´·lÙ2É”)“œwÞy¾ûî¢nݺfAuï÷îÝ+åÊ•“¯¿þZzè!»õ?ô‹õqk°nÝ:gÁ‚§Ú®¸vïQ×n<³gÏö­)¬›H;w¶µþã?Œ·ÝÔ_­[·–*UªÈÓO?-?ýô“`\˜KîܹåÏ?ÿ”3Ï;Ö@"¿~ûí7«£ç˜&R2²lnåëJ0‘ ¤MÓ§¯¾}§È›oÞª–ÀØ=r4Vtp(?(ÿàƒdêÔ©fUƒ%kðàÁ¶ëéÝwßmV¿#FØ0°­ÂOZ´h¡ç´~cV5GfY…•íµ×^3+üU‰ŠE³ºÁ*ÁZk)¬Œ°Ò>ÿüó¾â°J®X±ÂòñTf¡CvíÚ‰ j+«"LÏ: ^]‚ecõÿ:t¨ÀR‹Ç¸ªø4‹-Ü °¥}ï½÷W?Ô+¬}Ø’Ç6=¬«ŽQ¿~ýlîx«b0Kà’%KlÛ[ç(Ï=÷8Âb‰Žà¯‚ØüQûöí+]ºt‘‰'JãÆEEµ•ÃZ ¹W܇•L°°²bnXWX¥±u¿fÍoõêÕ­nà/øÁ"aµ–Þ–ì¶R«ø_"Áê…ä|!!,‘tÔ^Eî‚w†nÑãðû„e­W¯^æ#Ø Aó?ìÖ­›Õƒ%¶FV¿à*ùGÈ# Æ ¡Ž|‘à{N‚Å`ÿŸ;ï¼ÓDêïÔ%çO +h` ÔƒqºQ­® &„å®Û÷.K*W®ì»vê~`"œtÛÛ,Ïš~‚ˆÆ}øÚú'¬Ʀ® æw ë(Öåþûï7Q«©®¨K1,â„*|JñŠët°ôóÏ?Ûm}¤@k7Ö ÿÄÆoê¯@~ø‘Ú‰Â4µW€ý“ DL`éÒÍÒ»÷yî¹ë58¦@Äõ㥂³ˆ%6XþÔÓDĶ»‘þúë/ ÊõrãÆ±õæ›oÚ¶q‘"E,(Æµí¶…ÝûÀWÔwIýOÛŽ÷σèCòß®wõ"yu¢U.! Wˆsl÷»kd` Æ"¢=.Áj™X‚°G`\Ð.ÄŸÿØ`åÄö?æ>`ÅÆ:Äl:u–i|i@XT‘ 0Õ/Õ¶Ü17œNË5‚¢°¯>§Íu À!nÑž óç“`mÅ?±ñ£$÷èÔ»øøMaëÀQ D@àÙg‡éöf Ýr®A­´[‘ÜØ.Çv;¶á㈄H|lÁB,bËWˆ&DÅCh}ñÅVÁ—_~9$´ Sˆ+ø¥bÛ%Xe! !€{ôèaÖWˆ8¤N:ù|;!Üàs q—X‚¥Ri´‹¾á K',Š˜ æôýúë¯'Ö¤/ÿ¦›n’Q£FÙö<Ü!`E'AÌà ó‡Û\" aõDºãŽ;ìâÂ.eBÜ ª5XÉÊàœXð€é…^hQðp‡@êÚµ«ùšj€•Y]!>ñ…GFA¿õÖ[V¿ jaqÆ?„.ÆãÜ=à/þ"u?ÊÄc:µw#ã˜H€H€H ~W‹ÑZ=‡³C\Z|‚ 9É·ü-‚Ø4hm CŒ aKâ³V­ZfQE0n°E _FlÃ? ÛÏ.³”Á¿ ÂÂ×_âX!+l•Ct!xɵ­oUtë­·šÃ¡ú·Ýv›o»Ú®¼B  0À‚»pÊaË‚ ‚‚Beq O(aº›Wbãw¬\¿¨çêº{©ñš Aü©Ñ1û$  H lݺW]ºi4÷•º%ú¯E/Òv¢]Oð(Ô㢂% 3ˆZG„6Ä‹B°Æ+¤¿¸ÀŸxX !Џq†'19‹+Ú€„5öرc¶-2þ¾‡°¾öïßß¶§àØ·ÿ8’rÈzD¿£_ˆ¾Àñ#ÈÛþð!$ÁϬ jý}d#iü`„5Â<Ò1 /ømâüQX‡Ü+±?{ÔÇXPaÉÆ|ôø-ß³ÈGBt>Ö×}a9u÷”rrÇïÚ |…•_ˆà‹x6n`ÙHÞÓb -–% HU]º|¯þƒ¹¤C‡†©:Ž”îVQAL»‡1Â*æg\$x¨±»²ÁÊÀo?ÑNð 2r}`ü ‰9W&¡W\<Ù)9 ý»@¥¤¶ 4¾P„JLK,8 íÀ²,Á#XŠÆøƒµË{¦±¤Ë¶I€H€¢F`îܵêï7S·S[ê¶õ©­ì¨5ç Á¯¾—ˆòNjÒCÔmû7ðˆ"lÓëáû&bƒµ<ÿ'=+Ã{±#€§<Åúѱ±}ä-s+?rf¬A$@$ š4é¡[˜YUœ>‘ ½‡î2%¶òC€¹$²¸•Ÿ²¼Ù @1b–<ýôÓÓq4*…H Úx\T´‰²=  ¨8tè˜)ô½FX×PŸÁs¢Ú6#ˆ/¦ñµ @ž=Õãˆëy™§-Èæ[ tD€ÁOéh19 Hop<Ô'ŸLÔgÁ7Òœ¼q9½ãÇOê§è¡öeìÐtDÏ3‘@z'챱ј3…i4(²   ˜èÑã=P<·>á©vLÚOn£3g®VÑ ¤ xJ~”³]CMÂ4æ‘ ¤õëw铎¦K—.·ª52¾þ\íÛwXÇ5Fœ.u랯ÏLPJ–,”j¬Ø1 ¤ñõ/=½På ,_¾U¾ùf¦<óL#É’%~þTõê5A…èGúèȳeÒ¤N¥ñùñá¨Ò0ZLÓðâqè$@$^ ¼ûîX·ÜR5.¦¸cÇ~iÛvL›¶LŸ¾t£<òHݸAé…iz[Q·H€Ò8E‹6É÷ßÿ-ŸÞ*ÁÇd¦ä—-Û"-Z|jc=úI¹ôÒ’)Ù=û" E ~öG2vN–H€H !½zý*\PL5ª”P‘» éM7õbÅ ÊØ±(JSŒ<;ʨ(L3êÊsÞ$@$‡Ö­Û)£FÍ‘6m®MõÑ þ—>mªÔ«WQ† {ÜŽ­JõAq$Î P˜¦óæôH€H -øøã‰‰ÓM•SuØŸ}6Ež|r°Fßד޽ï•ìÙ³¤êxØ9 d¦e¥9O ˆs0:t†‰ÁÔŒÄïßÿ7yõÕ‘úÓTž{î†8§Æá‘@ú"@aš¾Ö“³! 4K oß)’7oN¹ûîÔ;·tÀ€ß5ê~„þ4aä}šý$qài™…iZ^=ŽH€Ò Ž,•>xµäÌ™-Ufõõת…ôéÔézyâ‰kRe ì”2: ÓŒþ àüI€H  ÐèØ±Ò²åU©2šI“Û3ïŸ|²¾´kw]ªŒ’ ˆP˜òS@$@$êú÷Ÿ&·Ür™(+ÅDzpáFyøá/µÿªÒ±cã üK€Âô_¼" HÓ§¯¥K7§ŠµtÓ¦=vx~åÊ¥äý÷ïN…Ù³K ¦þ4xM$@$â¾øâ7©V­ŒTªTm†lÒnå§·å|H€H ˜:u™lÚ´[î¼³zŠV;²èûë®»0ÅúeG$@á 0 K‘ D™Î.­Zµ´”+wf”[Þ܆ »ôX¨þÒ¨ÑÅ<«48"Þ%T'@ašêKÀ @Æ#pðàQ;ö¹ãŽËSdò‡“V­úÉYgå—=š¥HŸì„H rô1œk $“À?ü-ÇŸ¦M«$³¥ðª?ýôPY¿~—Šáö’+Wöð*± @Š 0MqäìH€H`øð™ODäÇ:}úéd=z® üˆ”*U8Öݱ} d 0MÜà÷PE¢’7}út™={vTÚŠV#žçÉí·ß.Ë—/W?äG58®ƒüý÷ßrÍ5×Èøñã£ÕM’Úi×®<ôÐC’5kVyõÕWm|«W¯– HïÞ½ÃjóÁ”{ï½×Êž8qBöïß/'Ož «n<¢0§ÕàXH€H X½z»¬]»ÃŸ¢=Å É AÓM”ÆûÑPGއU«VÉ?ÿüc8 æÏŸ/³fÍ’cÇŽÙ½µk×ÊÎ;Oõ~ýzÙ½{·ïÄDà|÷pQºcÇ%mÍš5§åãÍÞ½{eÏž=Öß´iÓÌÊæ =zÔgm[¼x±üñÇz&ìQ—m¯˜‹+Dß¡C‡BÈG;˜;ú=~ü¸8˜ÿŠ+ãÀØýÞê9iÒ$ŸEùkoÙ²e‚§p!¡Ýyóæ™0g—~øáY´h‘Œ5J^zé%}øÂ#f‘,V¬˜ :ÔŠ…bâÚkŒgãÆî–ïõýõWe60!k¸(ÿÑGÉË/¿,ßÿ½> â Å̯½öZyæ™gl-B­ ÖãÂZc\*TáÇ›õÕŸüQæÌ™#X—pk·k×.™2eŠlذÁe¥Î«މH€H€bJàË/§yç÷œwìØ‰¨ö³wï!¯J•W½6mFµÝp;v,þÂ{º…VV¾^½zöŠºµk×öêׯï{¯vôT„xW^y¥W·n]_»[·nõ²dÉâõêÕËSKŸWºtiOõ÷4ÈËÓGAz*º¬¬Š&ïŒ3Îð2gÎlå«U«æåÉ“Çò^|ñEåUÅ®›7oîU¬XÑ+T¨—={vë¿U«V–÷ÝwßÙû«¯¾Ú—‡²ëÖ­³|üB?þ¸½ÿå—_¬¼ŠG{ÕUWy7Ýt“]«hòjÕªå›æ‹yë6µçxèöº÷Ï<óLO·¢­® %O·¶mü9sæ´<ÔCÒ§nY;wÜq‡1P7O-Â6'´£ÖG¯hÑ¢ÖÊõÕWVþ“O>Á[_Z°`‡¤PLÿ /üùó[[X+¿Èò&Nœè.\Øò±&ºï©Ø¶<Œ-wîÜ^¶lÙ¬žZB=ý‚aywÝu—óðáÃöÞÿ—›cŸ>}¼Pk‚u@Ÿ˜÷W\áãª_~¬9u«°ÏÖå°>X¤’%KÚç/G޾5øôÓO-/Ü_èWŸünñåh1UšL$@$@±%0yòb¹òÊsu«2ºvºuûQ­v'ä7n‰í¢Üº ³L}ðÁzRÁT³Âr5xð`³€ÂâÖ¢E ³`© µÞGŽ)*6E…ŒÎ÷ QAa–GÔ;ûì³E—Y0ï¿ÿ~QñiYl݇ò3„±gÏžf1ëׯŸõ“Ñ£Gûf[¼xq³ÐÂ" «ÜóÏ?ïËÃö³ j{¯"Y:vì(x LØšF?x|+¬Äùòå ,"*Êdûöíf‰„uĈf½ï¾ûô,Úšf̓•UźmW£ŒK°:ƒ |G1÷\¹rY°PV¯^]š5kfÂo¼Q.¸àÛ&/Uª” m|Æî /tÍYÝ`L`I|ë­·¤{÷î6°ý믿¬oŒ}_~ùåÆkåÊ•6§÷Þ{Ï,Á­[·¶­zÌ,àBÐ¥Këþ —^z©¨0ôÁ]\|ñÅví¹lMôËŠÜ}÷ÝÒ´iSûü¸²x…kðùçŸÛ¢?¸3ÀjìÖåô‹‡ºÛ\m\\^J¿F÷ˆ”=û# ˆ{'OzúGoyÔ·ñçÍ['j‰Õ?ºMcPK°j¹”sÎ9Gn¸áëþ…î=ÜwÞ)j!5‘†BØšEpŒZå,8fæÌ™òöÛo˶mÛLŒ¼ûî»¶M‹ºØ†øBÍ<àT*Uªd ‚åÊ•+gâÐUxå•WLè{î¹–ít—:wîlb”)SÆeû^!t1?ˆ/äck:0A¤,XÐDÊA8aË[õðUK£¨UWÚ¶mk‚n.uíÚÕDÜôƒ-m@øh‚D¤Zxm{È!v[åhÿ›o¾qÍIBLÔ’k[ô×_½}aPk¹}Q€`…°Ã=æaŒy6Ln¹åŸÈ†pƼ06ˆíŸ~úÉúÄ<æ,A\Ã5ëãR¨5qeü_!Ú (`B÷±V \\RK¹žý{™À­ÁùẼ”~åqQ)Mœý‘ @#°páFõgºøA ÆH 1Áš<õÔS&(Ñ&úuëçÆ ßN—`ÝE‚O+’ L²7ú m áˬ˜ÁÄ#X ŒK‘® ÆV¹råÓÄ-8‚¡Kü!†S+ý+ÁSkì—H€H ]˜9s•äÏŸK2ÎŽÚ<¿øâ7 ¦Ù¤Vº;¢ÖfJ6äo Õ/¶óa¥üì³ÏDýIEý6­øÏ?ÿl[±Ø¦GÀDª›6mò5ë¿ ì»ù¿ ÿXò`¥ô‘þù¿ýöÛiym%ôn°(ºäoít÷‚ñpâL.a®H°H&X ‘°ÕŽ-iü <¶Óq4ÜÔõ´jU«V5Aêïîà?g&´è}¡mX‚Ý ÌÉ?è îü±Y!!ˆ‘çÆ¥þ¢6ÔÁ©àì´C©o­YQÉ|ᬠ8"°ÂÚ%pñ_g7—Ÿš¯¦©IŸ}“ @ 0sæjµz•öýOî”·lÙ«ø?ÊcÕÓmÉ-mÉm7ë7iÒD4pÉ"¶!ª Rà/Oø—Â?Ûû\c–1X=!½_FøQ&” Pà× ë+|ùíÜ PÛÆhnà$ðÓt©S§N>7l•c<ˆ¬L 64?Ll)C a;>œä¶–ß|óM«‡qÀ ?N ¢k –΋.ºÈ"Ü1oà–-[ Æ ÿM°„ÕÑïîˆD‡E[ûuêÔq͘˜ Æ–Khˆø»ÂjmxœL€1Á>¨ `+,ÜÀ H°„ŧ€1\àvrΙ…ëÚ€?oÿþýÍw׉n”OhMàîÑ Nþ }a}1oä͘1ìïÎjì_6.®C†F1“H€H€’I zõ×½ÿû¿Ÿ’ÙÊ¿Õ}ôK<îâé¹¥ÿÞL¥«¤Få« ´«5Ó"©ޤ>…öØ.!R^ƒ§5wËC´ºŠ‹°FDý%—\â©¥å7Î"íQG…”EiûGå«•ÐÊ!]ž¯,¢ì»uëfy.Þhî*œ<=ºÉ7†Ä¢ò5ÇʪóTœYÄ·nÓ[ä»›‹ÊwƶU”꿟C–§¾Èúïóÿì¿ôKõí»ÆÚŒVT>L»L$@$@$[¶ìñŠ{Jÿh/‰Jûj}µö~úi~TÚKn#‘ Ó¤ô×¾}{OýÿSU-užFR{· ¢ BW#í}ÇEù—ƒƒ°B;º]îid¹/Û‰ äáÈ#ÝêöåEz¡:kcB{jµ4q¤Ö»°šB=µìÚQPîh¦PÝ|ÔÔú ,«ÖN’±í…bâÚQë°§þ™î­§ZžZDí=^ÕRë;ú ýB0[/טèö¼µ¡g»ºÛöΚ蹷¶æ§Uüߌ"=9k¬]Ü‹¦0eð“Òd" ˆ lãcû³jÕÒQéàµ×¾³ ª .ŠJ{ñܶűՌm{øM&Þ¸›À8ªKÏv Ù\¨6üœÐˆ¿¯&NQ€?k°„~kÔ¨,ËwLôŒQßû„.ZœEEéuQ  Jò@BTÌ“çu1˜ªÖá!úøÈ!J2‹H 1¦‰b> @’@˜&×ZÚ§Ï$}yiÕªV’ÆËJË–mÑ'-Sá]_y¤®<ýto}2S¶XvɶI Ý 0M÷KÌ ’ @êXºt³Ô®]!É;kéO\WÖR=÷Ü|^?üðóŸÅñUÑðJ2(V$tD€Â4-&§B$@ñD`Õªízþf⇅'4fø–ÂZÚºu턊¤øýwë³Íè3è×é³å›ØØ¢qÖgŠO„’@œ 0Ó…á°H€H -رc¿ìßXÊ”IÚ“föî=,}ûNV?ÖÒñãHûöC¤H‘¼òãíõÁÅÒòqì$—x\T\. E$@i›¬¥HeÊœ™¤‰|õÕ4{êP¦>¼  ˆˆ<¤H-¦C†ÌÛn«&Ù²e‰Æ0ÂnãÀ#Ңŧè”] xˆ–Ұɱ DŸ£ò£Ï”-’ @†&€m|¤H„é´iËdíÚrÏ=5R”ÎLmÝú Ù¶mŸ|ÿýSR°`îퟑ œN€Âôt|G$@$L°˜ÂêY¨Pž°[‚µO* »N4 vè0TfÏ^##F´±müh´É6H€’N€[ùIgÇš$@$@AìØ±_EiÞ 9ÁoíÙsHŸ=?O­¥W/£»Ýºý £FÍ–Ï>»_*U*£^Ø, @$h1„Ë’ $J`ïÞC’?ÎD˹£F̙͑3KÓ¦UÜ­˜¿ú§|øá/Ò£Ç=R§Îù1ï „G€Óð8± @˜ L#9ÿ´Aƒ‹R,èhæÌÕòÜsÃåÉ'ëËw\æ¬XŒH %P˜¦eöA$@ˆ¶æóçï`záiOMšTNB7îÖ`§~R¯ÞÒ©Óõ)Ò';!Ÿ…iø¬X’H€H ¦áF·ÿðÃßö°¢R’9P˜&+’ #ŽÅô?VÊÅ2èÿþûr}ºS»ˆü6§„îuíÚUÎ=÷Ü„²yŸ2 6Hûöí“=_ Ód#d$@$@þŽ9®VÊÐ^&N\,^xNØÑûþí‡s kì{ï“×^»Y.½´d8U’Tæºë®“Ë/ç!ýI‚ÇJéŠÀâÅ‹£"Lécš®>œ ¤>ÝA×GŒf 9 ©µ46AOûö–víIÆ•ôÜÒÚ!ÇÁL ø"@a_ëÁÑ @: àI¦ºg‰®X±5fÛø/¾8BŽ=.ï¼sg:`É)@Æ"z¯%c±àlI€H€¢@àäIÓ„•éäÉ}”‰@IDATKì€ûêÕËE¡·Ó›;öù替䫯Ò'<å9=“ïH€âž-¦q¿D ¤-ˆ†¡KåÏ?WÉe—•‘¬Y£û'hûöýÒ±ã0iÞ¼¦\wÝ…i GK$`¢û¿¡’ dxð1 e1ýóÏ•0T6ꜞ~z¨ä͛Ӟ¢ÞxopõêÕÒ¸qcÙ¸qcLgòì³Ï*ÿ×Âê£eË–jÝþÆÊ]fÏžVËÑ£G­ìƒ>(÷Þ{¯¯Þ¨Q£¤V­Z‚#ˆ:vì(:tcÇŽ™Èúúë¯}åÒúÅÂ… eÉ’%6Í›7KíÚµå“O>‘+¯¼RO•xOøʰaÃL ÎŸ??¬éú³ üñ‡­‡k´uëÖ6ï§Ÿ~Z~úé'Ù»w¯€{îܹÕ-æO9óÌ3¥B… V<%î>ÜʸöÀ ëZ¬X1©\¹²ow÷±ÎXO’_¾|y)^¼¸«–r¯:9&  ˆJ•^ò¾øbjÐö^ye¤×°áûAó’zó©§{Uª¼êé1QIm"âzº5® â©0«®Š +_¯^={E]µŽyõë×÷½¯Y³¦§¢ÑSk™W·n]_»*=s^¯^½<xž MO…«§î^‰%¼E‹YÙÉ“'{*=V¾ZµjžŠVË›;w®õ³lÙ2ï»ï¾³kÝ÷TŒÚuÅŠ½uëÖYYܻꪫ¬ Êž ïÛo¿õ}<þøãö^…£ÕŸ4i’½G½›nºÉ®ÕÊé¡]oֿܠAOŤ嫈ôtÛÚÂ\ÅWxº]o×?ÿü³•óÿµ|ùroôèÑÖ† _ã„ùºy¿ôÒKV<Þ‘”Eã*Œ[þüùmœX7µLZ¿‰ÍùÅ_´:˜+ê—-[Ö{àlÝUÜ{ºmoíþrõ0çæÍ›Wð¾õkÕª•UÁºø³ts[µj•å«ë€}>På°^*f-ëÏ#ÆÏÆøé§ŸZ^8¿ð9DµáO° ·ò•" @ôäÈ‘U-eÁ-¦3fD׿éýõŸòæ›·©E1Gô&£–TŒØöô| S§N5Ë,UƒÖG´N7‹Y‹-dÊ”)Ë%ÒÈ‘#Í +áo¼aVAlÍ£¬ž°ÛÊ?~ü¤ •*žJE…ú@>ÒoÜøâ¨´ëFÔòe[¿7ÜpƒuõÐCÙv©{¡rçwÚv÷ˆ#¬ ¶b!±Í a†-dÌ`›BîÝwß•9sæ˜Èyâ‰'¤T©RVN-q!§óÊ+¯Øv?©Š²jõô•ôÑGMlb»cƱóqÄ–óÍ7ßleQc)S¦Œ¯®ÿE¹rå,˜. ¨HNxú—ó¿×|n¼ñFQ«£UÇàð믿úš ‡·+NYl›C _ýõöåaìØ±ö¥‚Õ¥„æüÃ?è1iyäõ×_·`.|·U×$çªáÚr¯à $¸4kÖÌÞcÞèS-æ–—Ð/|Á‹Æ}÷ÝgE°vXG^jy5Vlóß~ûí&\j/V÷)LcE–í’ @%=;|LÿgöK—n6Kj¥JÑñ[ëÙóÙ¼yYKÿÓYœÞ(Z´¨,kÖS!ðQDÒmU{ÕýM ˆ GÄ:üa„ â ×°¸Â?BU·kÍÂ…|Ý Ç‹¥„¬˜.ß :¼GÔ;„®KþycH΂ëÊ„óŠv]‚?)rB%øÇ"ÁŸ20éö¾ù—"p b¾±þ |ÁÌ¥pxGRëóÔSO™G°ÆèÖÒµ“М!üav¾¼(5DÂ:"%$Ú1o$ˆI$Qÿ„5Jl}໌þœ¸E}P^þc‡òñãÿýwìßo,®)LcA•m’ @&;w 9ò nÔ ™¬úGø_±òŸBaÞØ´iôî=A­q Ôy* (̪©ZÌ_„Ä'„ÌgŸ}fAOê·iÅ!P°õŠmúY³f‰ú˜Z0°rÉmûº÷¯þGGýöÛo§mÇûçak)1¡Ø>Þ;Á,/¡{N¼ýøãÿ)òÎ;ïØö5,¹câq VGl­û3\Þh#œ²4w¸Z`»Ûçs |ïÆ‹7¶àý-°~#!Ø ÛøêÓiÁi®^«æµ×^+ùòå³,ÿõH‡ÅÜÞþõÝ5D:¬Þ×.á3ä_/¡±»ò)ñJaš”Ù d ðõÜ¿ÿ¿ÂtÁ‚ -^Ì¢ò“‹£k×ïU˜ä—¬“ܦâ²>ü(±íûòË/ËwÜaÑë(ü± ÿRD¸Cì@¤Á¡¿Eø" >1ÿ@lå£,\ýŽmq—à«D™=z˜{€óù„¤s3€Äxàšœ„­~ˆ-ŒV<ÌÇB![çø+Ɖs>‘0^lOk`–‰9X‘‘À+V Ö^X|€Ÿ/,ØÄðñM,áËæ~˜k·nÝN;Ÿ´k×®ækªo¶-2øÂ€#£Ð|[]‚ „_2¶øñE'-8w–®<^‘ò`‹q̘1ìñðï§DaO«Á± @: aÌbº`ÁFSÿ­“ԩλV…Ñ,ýÛD·EO=”Ô¶â­ž³ÚaÛ>~Bðûsé¹çžóYÇà/ˆíYÁ’6`À ¨ÂñLØâvÛ¾¨Ì†À”½çž{b¾.AðBøâ&°¡C‡úÚ€×ù%B ôÑG&”]]×^Ý|\žÿ«+‡{ðÙ„ÕVA$ÌÇCá,Ï‹.ºÈ~† bA>z²•Pö?8aÛO°8úÏÛ †øj|ÕP¬ð%à‚ .°/ÌðÓD¬Ÿ¡æ ÷ 7'ø–BðשSÇÇsGp,±X”Á¹¦p±øý÷ßõ¡—û†„­|©U¤Héß¿¿‰\=ÀòYºJ¸úÀ¨·ˆ{|±@ò_¼Ç|#áƒ:ÑH™¯†Ø €@Û¶ƒô)>‡õfëÓ€è1Rjíj(­[×>í~¤oš6ýЬ®#F´‰´jÔÊ#ŠºL™2vޤ¿`ˆZÚ•‡…лíÃïçW²èï Š<œA K'îÃGâÅEÓ# ‡×CLÁÊçÎLu®ÈÇ™¤;8p €K‰„³Uá¯é¶«Ñ'¶©a•…õ‚3P(AÂÀe@iÔ”H` ñŽ$|àVáÎh 50Åaú`‚u3Xº@ ÂÙmPn° ÂÒ ×ˆs¿U” Æ÷‘`5…/+Äm`Û§J$í7ÎÄÕãÁì ÔÀ3Z#iñ”÷u$5X–H€H€B€ÅtӦݧ•زe¯és ÙÓÑ£çªejµ>ŨÃií§§7؇EÛö8–(0A¼áÉ@Á,­nË=X~à½À ÿ|Xdñ“R ÖÛÀ7ªŸP‚•Ï%T&÷Ýö®m?Mw/¡W|¡ÀO¨„“ð*ás‹v°Œ¥+ç/¨Ý½xz¥0§ÕàXH€H È—/§YLý§²jÕ©ˆïòåOExûç…{Çœ¾ýöºu[Mÿ —·Zš+‡íñÞ½{ ÎuGû$e°†;ÂÛ¸[·®ä9K »Ç×ø!Q KrzM¦éue9/ H%… åѭħõ¾zõ{†ýYgå?í~$o†Ÿ©¾Œ;ÕßñÑHª¥¹²ð;ÄAçÉMvq1þmáô8ÿ4¡”Øy˜ Õãý”!€ µôœ2§çÉqn$@$@)O P¡¼¶mïßóêÕxf{ÿ[]ãpþîÝÇë–ÕõÉGÿ>C>¢FX˜H î P˜Æýq€$@$¶ÀbzðàQ=ñß#t`1-SæT HRf3tè ;LÿÉ'$¥:ë ¤¦id¡8L H+ L‘ìäÒêÕÛU˜&Í¿ôرz´ÎÏzTÏz„NÚ9Lßͯ$@á iø¬X’H€H ÿ Óý>! aÚ¼ù¿Ë £_XK·oß§ç-^ç»/.Ê”)›gTEð™­OÕIùG8Æ Žƒ¢A€Â4Ù €@‘"§›¸cÇ~»·wïaÙ»÷ùV>Ωüä“IrçÕ¥hÑ”;ºÈ7™.ð”¥aÆé‰véy’+Õmá¸<ñÄcêÿzÊZœ@5Þ&tO ±c®@aš!æ“ DDç˜æÎC}B÷Z½­[O½ž}väùãÆÍX[¿úꡈÆëÂû÷×Ãïʘ1‹ô°úªúô¥›õ‘ §y¬ûfû$ž P˜¦çÕåÜH€H •+V@…é©Cö0MÊQQ}úL’ .ÒCԓ柋éÿôÓ|}*ÓPÉŸ?—>¯üQ}|äù±è†m’@†$@aš!—“& ØÀ¶û¦M{¬“­[÷é£&³ˆó= ·çÙ³×è£7WÊÈ‘míÓrGŽWËè(}\çoˆõÆ·ê#0ƒ?R2¦aã$Ž P˜¦ãÅåÔH€H µ@˜nÞ|J˜nÛ¶WŠÉñP>þx¢T®\JjÔ(qÝhWX¶l‹<òÈ—²qãnéÓ§¥4iR9Ú]°= %Àã¢ø1  ˆ:a ‹i¤ÛøµãÆý£b°nÔÇiƒ'.Ö'(uøÎþúë³¥‘dyˆ€…i°X”H€H <ð1…uiË–½ SU°`n¹þúKÂë0F¥úõ›ªÏ«ÿL…é%òí·môø«3bÔ›%nåós@$@$u8 ÇEá P»vÂ…ÃßÊÇQƒϰ#¢²eËõ±…ÓàÉ“ž¼ôÒùòËiòüó7H›6׆SeH€’I€Â4™YH€Hà¿J•:õ<ûµkwèÁóGô©OEþ[(;“'/‘õëw&ù@þš ûö‰'õLÒzÔéÛ÷iÜøâ°ë² @òP˜&k“ !P²ä©Ãô×®Ý)ûö6ÿÌ Å‚Þ8pºÔ¬y®”+—òGD?~R{ì+_éÀËW”:FÞ$ˆ ú˜Æ†+[% MÇ(á P°˜îßDÙ™#,Û·ï—ñ㤊µ¢ô‘GúˤI‹eÐ ŠÒ°Œ…H Êh12P6G$@$pжó×­Û©Âô°äË—3,,£GÏ‘œ9³i°Ñ¥a•V!øµ>úè—2uê22äQ©V­L´šf;$@ 0‹’ „O té²f ,¦áoå5G6¬$9r¤ìŸ§çžûF&LX$C‡>FQþ³$ D·ò£Ž” ’ €@¹rgÉòå[OLÊ“'q‹é† »eæÌÕúìù*) ðý÷ÒSþ?¾OªW/›¢}³3 Ó ¤ìWÒÓûæ;  tL |ù³ÌÇSÄö|bi̘9R @.©Sç‚ÄŠF-Vï¿?NÞ}÷.³ÔF­a6D$$´˜& +‘ $F |ù3åøñV,kÖÄÿÜ|÷Ý;P?œ²‰õNþرÿ¶ð;vlœ*ÁV጑eH £HüŠŒF„ó% ˆ XL]JLl"HjÞ¼urÓM)³?oÞziÛv ´hQSžzª&_I€R™…i*/»' ôJ wîìröÙùmzY²„þsóË/ -rÿÊ+Ï9<"õ>WÒrÒµëm1ï „O ôÿá·Ã’$@$@$ðx4)R8Âôê«Ï—Ä,«ÿé ‡“ûïÿÜüïÓ§¥dΜ)ÂXœH –(LcI—m“ @'P¶ì©§7…œ‡“éÓ—Ëu×]sZO>9ز¾üòÁ°ÏVù Ø €£ò}(xA$@$mçž{J˜êùõ ¦iÓ–Ù‘R×\S1Á2ÑÈèÞ}¼Œ÷UZ¦L‘h4É6H€¢L€Ó(es$@$@ÿ¨P¡˜½Á¥ ¥_](_\BÎ<3_BE’}òä%òÞ{?Ék¯Ý,5k–Ov{l€H 6(LcÕ­’ ( .(jV®Üš ˆÆzõbwv鯻¥M›vpÿý÷×JpÌ H}¦©¿ ¤[ùóç²¹­Zµ-è!¿zõvµbÆ&ÿرòðÃý¥H‘|zˆþAÇÀ›$@ñC€>¦ñ³ ¤;Ù²e±9­Y³#èÜfÌX©‘øYäòËËÍOîÍÎGÉÒ¥[dìØ’+Wöä6Qý%K–ÈË/¿Q&x&ð /HåÊ•c:DZLcŠ—“ @Æ&àŽ‰JH˜þñÇ ó/…h7n¾|ñÅT}äè]‚§P¥tÚ¾}» >\:”Ò]³?ˆ*ãÇÛgyÓ¦MQm7Xc´˜£Â{$@$@Q!3g6kgÓ¦=*ÐŽ©ÕòÔ{×8„i½zÑÆßºu¯<ûì×Ò¬Y iÒ$¶7—„^?ýôS)VìTXBexŸâ™ÀþýûõxµØ'úÏS¼& ˆ:XCOž<)‹m<­íݻʒ%›¥Fr§ÝÆ›öí‡ü[ßxãÖh4Ç6H€Rˆ…i f7$@$Q äË—S`9ýçŸõ§!˜;w­xzÀéå——=í~rßôí;E¦N]&={¶<•‰H íàV~ÚY+Ž”H€Ò$¼ys¦ÿü³AJ”8CÎ8#wÔæµlÙéÚõ{éСT©R*jí²! ”!@aš2œÙ dXyòäÐÈûÌ2þ†ÓÀ‚Z©R‰Óî%ç ¬¯: •ŠÏ‘víê'§)Ö%H%ÜÊO%ðì–H€2 Ó|ùrÉâÅ›犺4þz‹Èwï“ûÚ¯ßo2oÞ:‹ÂÏœ9Sr›Ëpõ  "hóy?ûì³ú®×Âêg×®]rôèѰÊF«"ÐwîÜék®eË–òÍ7ßøÞ'ç¢oß¾Ò¨Q#9묳ô¤ˆòrë­·Ê„ ÂnòàÁƒ²oß>+¿téRiܸ±lÙ²%ìúi¡ …iZX%Ž‘H€Ò0rÙVþÑ£Ç}Pûö!U©Rñ¨ÌlÆ]òÖ[?¨°ºNŸ6Åø¤@Ź«¿ÿþ{RªFTgúôé2{öì°ê@ÀáÈ­”LcÆŒ‘Â… ë—¨cÖ-Ä`4Äq»ví䡇Ò݃¬òꫯʣ>ª—X- 4Þ½{‡5Å|Pî½÷^+{âÄ A´< ÓS¢0MO«É¹ @(T(þ‘?nQò³g¯±.X°ÁŸ.¾8:[ù;“âÅ ÊSO¥Ý-ü#GŽ˜PàXµj•‹ýc¬ <æÏŸ/³fÍò‰¥µkמfÕCÁõë×ËîÝ»­~AüA8pÀw3 ;v숮5kN­‰¡½{÷Êž={¬¿iÓ¦éC –úgËÖ­[ãE'N´WÿÈsÂ.8Ë5˜€‚e?¿¿þúËæŒù#aލ»yóf³kݺuòÛo¿ ÆèŸ6lØ`ÖDÜÿûï¿}Yà2uêT›«ïæÿ.0÷±cÇ ÎœE:|ø°Í ×ó'Ÿ|"M›6µ2hË?Á¢‹~]Bß`Èô×_•>úȸðý÷ßËO<¡Ç™=+üñ‡\{íµòÌ3Ïø88 èâÅ‹-߉b°ÆZbÍ6nÜ(*T0ÑñîÆ÷ã?Êœ9sŒÿ}¬Æ;eÊ”ÓÆìÊÄÍ«.: ÄŒ@—.c¼† ß÷îºëc¯]»AÖOÿþ¿y+¾•>GŽœí/ÞÁûë¯UQi/Z¨xòô½§""¬&U¤XùzõêÙ+êÖ®]Û«_¿¾ï}Íš5=*Þ•W^éÕ­[××® E/K–,^¯^½<e^éÒ¥½¼yóz™2eòJ”(á-Z´ÈÊNž<Ù;ãŒ3¼Ì™3[ùjÕªyyòä±¼_|Ñ«R¥Š]7oÞ\×§¢W¨P!/{öìÖ«V­|ýáÞUW]emdË–ÍË;·÷í·ßúòÑÇã?nïùå«?iÒ${z7Ýt“]wèÐÁú9ï¼ó¬-ÌY-ˆž BO—ÕÃXß~ûmOÅ®wß}÷Ù=ô‰ùvëÖÍ×'Ú¸þúëm>h_¸W½zu+Ÿ?~O-•Þ[o½å+ÿÒK/Ÿ9r;ï¼ÓÃXÑÆöõ ‚W²dIë¿sçÎúU1ík£aÆÞÕW_mïÕÂ8 Œ›‡~Q°¼»îºË+Z´¨§Â×W×]Ì;×Ê÷éÓÇûî»ïìm:îXãÆ뉶¯¸â Ï}^0F$u°±cÍPœUÌZæ€ÏæŠy¡ =_×òÂù¥îVGEo8Å“U†S]&  Ø€ÅtçÎý%?gÎ)ëÜʕۤ\¹ä?éС£Ò¥Ëh¹ûîêR­Z™ØM"[Ve­>øÀ,}°>Â6xð`³€.\¸PZ´ha–/X.‘FŽ)*¨DžÝú†¨1‹'ê}öÙfõƒóþûï×u¨bYlÝ;ë\°é©˜Õ#·zšµ³_¿~‚ŸÑ£GûŠª ’+V˜•~“?ü°Ï²‰mkBVVE²tìØQð,¡ŸÇ{ÌúÁ÷øñãÍZ‰±aÛû«¯¾²ú ` °þÁ’ùÜsÏ™¥Õµ«ÂR^ýuÁC àϹlÙ2uYd,Þ|óM=±¡«YaAíÒ¥‹ÍÈʰaÃDE›ÏŸ}”)SÆ5m[èð?5j”݃•–ÐxÀ8´nÝÚ¶êq}Âj‹>`q¾ôÒKE…¡½÷ÿuñÅÛý•+Wún/^ܸbü°”>ÿüó¢_:ôs~·Yoa ÷O°jƒÝçŸnåÑßòåËEÅ·¯˜ `A9XœUøŠ a_^<]P˜ÆÓjp,$@$ œ¦T•Ö?àÛt»õ°@˜–-›|aúᇿ¨:¢¸oH7äÔr)çœsŽÜpé9Á/Bއ T랉¨#FؼᇠqßHÕÌœ9SÔÊ(Û¶m31ûî»ïÚö.êb¹T©RV¢*¡T©R%}rV3¼(W®\9Q‹«¯8|$!6ÕZ*3\Ôº(7ß|³]Ÿ{î¹6‘gÿû…vÛ·o/ji4ŠÛdiÈ!RµjUcÑ­Va7nœ¯èm·Ý¦'3t01ñØŽÿá‡dÁ‚¾­~ˆKµ,ŠZum~˜'D/¸'”0ÎZµjù„«ZˆMPÞ~ûí‚uÀ–;æ A±«Ömùé§Ÿ¬9lÁ,X0hÓØþ‡àÅ —^yå}JZ.;°Wk³Ë úŠ/& µ([>êa,Î.©Å[.»ì2{ ÆŒqÆcâqQñ¸* ¤#¦ÕcœŠ™ßÖ‡0½ãŽjÉšåºu;Õj6Q^xáFdy“ÕV’9sæ´ÎÏÔ¿:ü6á O— ö܃õÑ%X ï¸ã³>óH‘".ËüWWwâ 6¡áaÿÛ¡C‡ZûÇΧÔ&¹úêFa—ø²è§ëÊ@MÜâ1¸Îwuý9CôB ÇcúWžÇãè8&  4O H‘SÏØÎœ9“¨?kÖÝNÜ©Âçß ¤L²sçïÔòWXZµª”êq[Çßrj°Â’öÙgŸ™åPý*­øÏ?ÿl[¸Ø GÀĪ&›6mò5ë¿}ì»ù¿ ظ jü…¬>¶ˆ‘üó]ÝÄ^ý…e¨²°fÂ=[ÑîEŸÁ¶±!À Î 6`äÜàÊà²à.WXXC%ô…í~¸ ˆ®Hê*p³pcSQs«@þ5×\cü‚z€`(r|ÑpÉŸ-½ãŠ/3°VãK‹KX{ÿzárvõSë•Â4µÈ³_ È Š-`3ݸq·n%–Ñ?èKÕZs"Y>¦þ¹J£©ÿÑó0oQ¡1ÿ”5iÒD4pÉ"½!˜œµ~†ðñ„é…^hÖUl·Ã¢Ë&|P½íðP~†6°Âb‹"[ÕÎ ŸGX!ˆzôèaî—\r‰­u§Nl{o 1ø£Fš°½ñŒ¾!¼áC +1ÆŸÑ[n¹Å"̓µ Ñ +)Ú€k€ó÷„¯-êæ¡×l‡k ‘ L´‡¨x¡‡{Ø.‡ÅB® ðÕDºñÆÍ‰-xX7á:VˆøG‚•~¿X3œ — ˆXøŽöïßß|hýÝÐÆ Ìí#a.­ÈóOè L^~ùeË›1c†YÑᓚæR²B§X™H€H€!pâÄI‹š=zŽ÷ùçS¼sÏíä+ö”·gÏ¡Dj&œ}Ë-y·ßÞ+áq“Ô¨|”6zd èk$õE´÷ˆÜv ‘ò*<<µÄ¹[žZò,’\-dÙ­bÑÓ`ËWL‹´GDŸ#ºÛ?*_}8­¢òukÙWQöþðˆG¿‹ðFä¸ÿ‹ÊWqgý<ýôÓ=î¯‚Ëæã¢¿ÍŽ±¢oµÚzz ½½Ç=âž3¹ªžnן6Fµ[d?扲*ö<µ”Z9TrQìhKÝ< ²²¶TXúNP1í©?®E廎06ÔA}ÿ¤g‘ZÔ;òðƒ(xD³»¤‚ÒNpùxÍ—/Ÿ§A]®ˆ/*ë‚|œ$ bÖN@!u°{X§À¨|ËïÖDE©§\Ö6æðÿ÷¾~ôË‹õí»‘ÈEJFåãÛ Ä”@•*¯êñ4“ô(£u&JË”y6ÉýM˜°ÈÚ˜5ku’ÛH‰Š‘ Ó¤ŒIƒ†<õ«üOUµ zº½îAÜ&ˆ)¡«‘ö>aê_ÂTƒg<´3oÞ<;ªÉ?ÂT­©„¤F ûgEýZÏ1µ#²\ÃêOiBÛÿØ&—øŠñc®8j âÑ%.µúº·¾Wë¤.¾÷á^¨ï© Æ`Ü]`†Ï†ZdíX,w¯î¸(Œ¢XÝ1ü³íóÆÚK3¾„«¬|¸÷RR˜2øI¿’0‘ Ä–¶ó±•ÑEçèViV}Dé© —¤ôÚ­ÛÒ°a%Ð.”ê颶Å4ƒmûîÝ»ÿgNœÒ³Nÿs7°åï¶Üƒð»‰vüŠü²ì[Ûø‰e‚?¨–8~ÂI¿ÿ\ásŠ—¸…<ëìh'W/¡WõU£F„²í>xé£!Ë 30øÌUPk´»üÏ+NeÀOZN¦iyõ8v H#Î9§ >Ágùƒ"Jÿøñ¤=Fq̘¹ȲQ>ü°y™yl† ÿQ<Æ>Šîˆ ¤ô„€(=„þ?UÅŽ€§„"ûÓºJhn©yLÁ6­*Å‚…i,¨²M  ÓÀb:þ»—'O=Ø}Ïiùá¾Á¹¥Mš\*çŸêH¥p륷ruêÔ˜žÜ„ ÿ€&ׂoB%ÿóLC•c^dpNjàáù‘µöKgÌPÆ´¿nœ ¤)8ÖiÍš6fõk³CñwìØÑ&N\¬ÖÒ Ò¦ÍuÕca ´C€Â4í¬GJ$@i–„éÖ­{åðácräžr“IfÌXÑ|>úè©W¯¢ù©FT1 ã W~ø§>©b*ôÎ.I í 0M»kÇ‘“ @š!Pºta;ëïßX$/¨[–áŸk‰Cùÿøc…´m{m\ÏókÛvÔ©ÓMÏßÜ¥¸Šëñrp$oèco+Âñ @:$aŠ„íü}ûŽÈå——5¡îT{÷þÕç¿âŠÛnÝ”(§g²ê!ó?K¿~S5b¼ôìÙBw? µk¿aOòO‰ñ°ˆ&”||)…i4WŽm‘ %;wvjùôIA[ì1—\RJ&L¯Ï?¤Ç ý{|O°Ê6ì–ñãhú½Á²SýÞàÁH×®ß[$uçÎMåÞ{¯´ÓðÄ£„—™êƒæH 8v Ÿe €€ÕtÅŠ­v ‹)‚ þüs¥>ÿü¢„ü]&Ê«Ï?õ¸Ë…S0sáÂÒ©ÓpŽ_+­[_­Ïbo¤Ï¬ÏáÁùçŸ/Æ ó½ç @âècš8#–  ˆ2eЍßå6k©D‰3ìȧÄüLqÞéÿ³w`VU__3ÀÐÝÝ!Ý¥„­ØØb‹(vaág·‚"‚…‚‚")ÝÝ C7Üo½ëþ÷sc†É;w˜w?ÏÌ=çì}öÞçw.﬽ÖÚ°H^ye{É—/6þËœ^ý7ʯ[רQ÷ ,¥^Q𠏨 äJ´˜æÊ×·& è¨S§œüóÏb"®}ûÚÇô3ýé§™²mÛ¹êªöÑŸp„/ި骾2ËïOô”oì¡/‘ ¤—@lüù™ÞÙó>  CÂtóæ6߸¸¼ºef-™={å4Mî!¾üò_9õÔFêÛ–µÛ^&7¾÷úÀ“ÌJš?>ùý÷(J½pxL™D€Â4“@²  ” Ô®]VŸ|Ö(>>ŸYLq>aÂ’ˆ7"è Ký—]–òÞãoÎċȽŠP÷ß?Ø|I‡ »SjÔ(‰#°+ G€KùŽ?I€H€²”|LóæÍ#GŽS,ç7lXQÆ_1êûïÿ“%,©~–N,…Î!ޝ¿þcY³&Q¾þú9ùäz)´f @F ÐbšQ‚¼ŸH€H U°|_¦LkŸ×>;v¬ð; íä»ï¦JϞͳ-èiúôU¶tèÐùå—{)JC_ÏI P˜fTvI$@$™@¹rÅ4ßgR]ÇŽudþüõà”tUdΜµšótƒ\xa+ïå¨=Oó6fͪÊÈ‘÷¶Te!Èz¦YϘ# ü@ÅŠÅ5i’2Ed~ž<'È¿ÿû™þðÃ4ÁÒË–Õ¢ÎnèЩrÝuËyçµÏ>»A÷»ú8 äV¦¹õÍó¹I€H `»NŸ8pØF‡Ÿi“&U–óýu¶œyfôêƺá†O--U¿~çgèÙx3 @Æ P˜fœ!{  H%XFQæÏO²˜â¼K—z…dûH¿Ӭ.ðe½êª¤sç:Ò¿ÿeY=û'H ÓT@b  Ì!P°`œu”˜¸WÖ®M t aºuën>|º4mZE ʨˊŒQZ§N9yï½kM gÅ8ì“H m(LÓÆ‹­I€H€2@ @¿0Í“'Ìšµ&ÐSƒlW¨ –f¹µtÿþCríµY*¨O?½Aœ{A`2< È6¦Ù†ž“ @î#à–ò+W.®Âtu€V­jHbâÁnPYYî¸ã+Y¾|‹|õÕÍR²d¡¬Š}“ ¤‘€ß =7±9 ¤‡€[¢¯^½LÅ}•*å‰WNOשºç¥—~–?þ˜'ƒß&5k–IÕ=lD$=´˜F5G" \O hÑ‚Æ[“†ZLÖ¬I €Z¸pƒ-­» =¦®éâÅå®»¾–k®é —]Ö&u7± @Ô P˜F9$ ÜM D‰)Z´€äË—WœuÖR¤jÞ¼šüùgæ Ó]»ökòü¥Q£Jү߹>Ÿžbœ…iŒ¿ NH€Ž7ÅŠ%ÈÞ½¥~ýò–Lχ-J}NKO™vOýúõUxÏÏ´þØ D›@›6Ñ Lß¿øháx$@$@Ç 2eŠÈ¦M»¤nÝòR¬XA™:u…,Z´QêÕ+oÏØ­[AÀ®§·<ÿüHc§ pµíð”Þ~x @t P˜F—7G# \OSˆF”-ªËøñ‹lÇ'U”jÕJYòû1cÒgeœ8q©|òÉß¾ _* @Î!@ašsÞgJ$@Dze‹ ö«ß¹s¿´n]]¦LYaÏå„)Nºvm é¦p ¸÷ÞArê©ä [Y¿üE$sP˜æœwÅ™’ ÀqASXM[·®!›7ﲤû¥K<–ó‘BjãF¿e5PqŒƒgŸ©‚wŸ¼üò%ÇhÉj X$@a‹o…s" ã˜@¥J%ìéÖ¬Ùf õO8A,U”÷‘E_°`|š¬¦Ó§¯’Ï>ûÇ–ðáÇÊB$óP˜æ¼wÆ“ @Ž&P¤HÝù© mGš¯P ’7¯ªSO)P ÎR<¥v9ÿèQŸ<üð騱Ž\pAKOO×æÍ›mü„„©\¹rÐO±bÅäÀšÆlŸ ä½/}#ûï‚н馛tç±|òÔSOi*³[eÅŠê }ª¼ûêzĈRªT)9t赇°?x0üßMª:‹áFÌcÃ/‡S# ã•@åÊ%ÍbŠçÃV¤Û·ï•Ý»HáÂùܽ{yì±ï48jyŠ òá£úÒK?Ëm·uUKT™Àý9ñ±#GŽ˜ùï¿ÿ4CA5³°A„LŸ>]³ T”5jhðØ~Ù°aƒT¨PAòç÷3ƒ Z¿~½TªTIââ⬠Df¹rå¤aÆr|&þWÖ¬Y£ü×HË–-•ýv«+]º´«¶ÏM›6©5»˜¾—Ý2kÖ,Ûõ‚(11Ñú^°`õÑ¢E Ý !Þê}>Ÿ¹åÉ“ÇD(„h¬þX¿07Œ‰çkÖ¬YÐÜÁVÏ]»v©…¼£=«ëïèÑ£VظqcÛÕ…~öíÛWN<ñÄÐËúGÒ¹ôÒKî» «W¯–•+W¢EýþÒ®üçÎ+5²¹ãúèÑ£åí·ß–'žxBžyæ×T7~¸[Î9çAâú /¼PJ”(‘,S¼o¼ZX\ß{ï½ žxOøÎ€=Þk‘"~w|§ fÑÿÌ™3í|òæÍ˜KLè° @T <þø÷¾sÏ}ËÆ¬Té^_… ÷øtÙ>l:=ïë×ïǰëÞ ÷ß?Ø×ºõÓ>È÷^މc">M°Ÿê¹Üwß}¾*UªøªW¯îS±àSQçëÝ»·O—í×^~ùeŸŠ#«0`@ o*>>G¾þýûû *äSád÷uÖY>mÖVR ïâÅ‹ût«I_¯^½¬î±Çó5oÞÜŽUdúTøYŸ*t}jaô}÷ÝwV÷Ã?X]ºtñ¡æÕ A›üñÇví¯¿þ²ö7ß|³¯L™2vüÁXÝŽ;ì<ô×ÓO?mÏV²dIŸŠi›ÃÖ­[­Ù–-[ìã©èõ©øò}òÉ'V7nÜ8Ÿ g»Ž:Õ>bVç}®Q£FÙø*|C‡¶s¼ƒV­Z…ݧÂßwÍ5ר½àÖ/¾ø¢µS±ì;í´Ó|Ž“ cžEE®¯|ùò>—vîý¥Ûú{ÿý÷})1Õ%c‚çÆ¸Ë—/·ïÉK/½dÝáÙñÁ;Wño¬q žï¦N:v/úPKmàû`Žñ«uëÖ>ÐÇh•9Õ\Ê×7ÄB$@$]Uª”T«ÓV³”Â?QÈ?Z`5=:ù|¦‹mAƒ&©éYj Š ½=GžÃ"wï½÷š…¬G¶Ô«âTTÈÉ%—\"~ø¡-?ŸtÒIA>†C† Ñm^{h†ƒBfëׯŸÝ£¢E~ùå[¢Ÿ8q¢‡õÓ­ZûšÅQ…­nn°(YN*€déÒ¥f…¤ L³ º`…ÅuñâÅ¢âQyä«‚¥÷Á4‹/.¨h3 ¡»/¹ÏñãÇÛR7ü<Ñæ¶dÉyüñÇí­¶‹vÒB}Ïž=塇2+!Ɔ–ä;wšÕò¹çžKn(ýÎ<¬ÛÞ^øå2¥òÎ;ïÈ7ß|#?þø£-õÃb‰>¦L™bᄈ˖-³yõéÓG0W•jö M›6 X¶½cÀb «2îs%Ó®]»Þ5Ü ô×ܬ×*˜uU¡½Y\ñ=éСƒ\}õÕæ–€†àuÛm·Ù¼áJ âÜ,¯Nbè€Â4†^§B$@¹…@¥5ÔY·.ѹY³ªÉÓ†ê;º^Ö®ÝM¿~#t™ºâqðQŸDµ0 Ä'„‹Z½4`¬¨œrÊ)±ˆQщ%^µ$ŠZ'åÊ+¯´¥Zˆˆ;逸ÌÚµk'jñøVBÄáóŠ+®Ð­`ëGd‹‹ð…Ä|ÐV­Ž&ºæÌ™hÿä“Ojö„‚R»vmQ««Í•8Wk^@@!Ð÷« 6ÌÜ ´PÐÏyçgËá8W«¢\|ñÅ6gpµÛþíXªþꫯlÉ"ý@0¯[··E,p-ÀÒ¿ûq¾›ëÅê†-ÌUKâjYV×“Âæ¯Z³fMs7xàäï¿ÿp †û\Ô2±[hÌî®$ÇÔÕ‡~ÂÅc….ïã]Á…îwÞy§þ›Y+p³@ÁüðÇê!PQÀ) }Lcñ­pN$@$pœ¨QÃï :{¶_8tèP[­x?¨Eç $Ëg»vµ,Çé˜1óÔÔ!ˆÊøñ‹U°Ì“o¿ít=§ŸÀ¯ÒøJ"ŠÛù BèÀ ‡¿ÄÛo¿ÝD„ ü7Ï?ÿ|¤‚¸?h§NL@!ð>›ÎýT­Z üY]PFq¾Ž8öÖcž,ÊHqóó 5ð€ð†€„ت[·n`øÜ":¢–U<|(\õꫯFô1 tr¿Røqž{î¹N¼]ú×íoØš ä!Rûªeþ ÉY¥á ŸY´q%­LÁ ~¥®¸ï¸¡àݸâü|1n,–$‰‹³ãœH€H€ŽKØv4oÞ<úöz{¾=i€Æ tò>p\\^éܹ®üñÇ<ïe;~ùå_t‡¨ú*ºê„Õåä :©)LBð Ra¢<,eci‘ïP‚`›:uª ]¡ ã-Þedïu{-ŽXfGÕoý?ÿüTçÚ¤åS}1Y'¾q¯ ƒX…8ž7/é»0iÒ$s/À3AˆÃˆ`Ÿ &H›6mÒ2ô1ÛBÃb W ÷ƒ &Xp±œeyÌLàz7´ëÖ­›®EÊv0räHûƒi«\I+S0CA°˜+`†RýKþ©ýN¹û³ó“Â4;ésl È¥ 8™¿rå6³ˆV©RB—˨ XFi£`=p )½Ðß/2Û§ÏéaísÓ,çÃê¦ÁFæSˆg‡ÅVDˆ&<,9c Ö=ç  Á6æoˆTE)-é:T®7ß|Ó¬«Mš4 Ʋ3–Ì!Œ1‡³Ï>Ûêf îðOE4h<úè£vì~Á'ó§Ÿ~ üà94HËÜÁŽ~!<ÿüóO¹ì²Ëì6ˆïáÇË÷ßoâËÓÈF€sXT!¼ñ‰ÔJh—™é”àÏŠgÄðo…ðÄ| þ‰ÑEé÷t¼Íî°và Vm h³?"`Ɇ+Ä5Ü)>ûì3óÅ…èu%9¦ÎÊåy¯p‡¥RÌï ÜàÿªKA–X׬r)?ÖßçG$@Ç)š5K›iáÂþBX· -Øžô›h=ùd¿?dÿþ£Ôÿ²žúü%YïBïˉç°ly—±qzî}.$! ,¥|BÑhvÌA` )ÄÄ ‚|`Y„O"–xUÍê/¯u é¡°,Že_ì6é­‡%ƇƒÕÏ¥CBº'c¸`™ú/õ…èóÏ?è\Þ¿XÜ‹vñnãbÞ.á=ÄD/úÅ<ࢀå{<D*Dî‡ÄF¯¼òŠ @W7ïÐOïpŒz/s×BR,‰cžðÝ…XÿôÓOm>¸`™¹%tìë®»Nœï,î‡{ª \½%9¦mÛ¶µþ0¿›Ü xÁ V[Ì>¥æ(¡Ïã+&Uu³ @Ô <ñÄ÷¾–-ûú:txÎÆ6lš¦ÀéãÛ³ç@Ø\zôxŇS(ÿþ»ÄÒKMž¼,¬]¬]Hkº¨´ÎiŠÔGÔ‡qB R+!Ø„VùÔÔ§‘Ú>õÃô©  ¤‹ò6TëÓ(tŸZଭ·Î¥6Ò€!ŸŠ$߯½Õ>ÆÜu9>Ù~UÀF¬Ã}*\ã«?¬OóÎ3ã@}:mnê2Ö˜Nž<Ù‡÷©€¥º<øÔê–®)5L‘r Ï©h´¾O—ðíù“?Ò}©¹ÍtQ´˜ÆäŸ œ ÿêÖ-/_|ñ¯F—³‡íر¶¬œâ,£ŽÒF >C­Pç«•i´¦Ã©­K•I9®]núÄÒ÷Ï?ÿlA·ÜrKØ£ÃÚÙ¹sç°ë¸€dú¡ õ#6Ô‹ðeÅOrÖ¹Ì.˜;~’+°®F*¡÷¹€­HmÓ{ ÖXüD*)e8@{pDJ«c•ä˜Â5?‘ ,µÈÓ }LsúäüI€H ‡¨W¯¼ú¶ (üLW®Ü¢{‹/ÐeárË-'çЧμiÃß/nrKÆéé»y£Â]X¢NNâ:êÝr²»‡Ÿé'@¦~v´˜¦ÿ;Ä;I€H€2@S”#GŽzA~$aÚ²euõe,$o¼1J}"K«?eÃÀ=¹õà…^È”G‡f¤2vìØH—í|;ùÎ’yÈÔÏ’ÓÌûN±'  4(V¬ æ{Œ×=ÕîêØ±ŽF¯Õ‹ö®á Ožlù~úôrà s„¥9Y·oOÝAÄ ˆ(L#báE  h(Z´ îJt 0|GQ4À)pÍ(O­«>M»ÓÌ]ŠÉϽ{j¢õ1šGóu;Ø“sä¤H V p)?Vß çE$@¹€@‘"tkÒ'…µqãJº­ã"M?tbà:fÌX£¿OÐdñ+Âê‚fÓ 6øüóñšïów˹ګW'Ý~ª^Ûiy>³iZ–2L›D«P˜F‹4Ç! #P¬X‚&Ÿ»æÖ@IDATJߤIÑ}¶\]ºÔÕ]‹fµ1c•ænܨ{¤W°mHCEkPãl8>|º¼ðÂOº]çNu5袹)»iBûÍ"0Ív ÍÙ™ Sä$#P˜æˆ×ÄI’ ÀñI D‰[ž_ºtS mT§Nu-%Ôúõ;tGš¢o¾™$õêUÐ}Ê››U2Vh,X°^º§)®–kâõVº‹Ï™9cŽØÁ?,$@©#@ÓÔqb+  , P²d‚YJçÎ]è½M›š«1Ÿ-çãâÁƒGäǧËå—·Õ}Çè^ð;,@*pC6 °é駇ëŽJ¯Ú²ýO?Ý#ýû_$J³aZ’r< Óÿ ù$@$s ÄÇÇIÁ‚ñºÕãÚÀC(§Éók„)ò–îÚµ_zöl¦[.Vֽȋi>ÓùöÑ>˜0a©tïþ²nÏ9I·Í¼X÷z¿Gš6œp=Úsãx$Ó P˜æô7Èù“ @&—×RFÍ™ƒÀ¦¤?S@¡Œ1Ãvy*_Þ¿¬ß­[}ó3Mj#Xnûö.]4À|]ÿúëa¹òÊvÑœ£@.!@ašK^4“H€b‘„),¤³g‡ Sáú¨Qs‚RDa¨iÓVjŽÐ½Q{¤%K6ÉYgõ—o¾™¨Q÷WÈ'Ÿ\¯–Û¢QŸ‘@n!@aš[Þ4Ÿ“H€b@BB~õ1Í#Û¶í‘5k3Ä’=vzBú¥Ý»¨(l¨ëÒ¥žù¥þùç‚Àµ¬<9r¦¦§zÝü^ÿøã~µ˜¶ÊÊáØ7 äj¦¹úõóáI€H { */‡1q굚böNêh‚ú…Ò¤IqËø˜máÂùmi?«ýL‘ª_¿róÍŸÉ¥—¶‘~¸KªV-•½À8: ç(LóÌÇ# X&P¨P~Û’´V­22kÖê ©Â2º~}¢œtR½ ë8Ár>‚¢|>_X]f\Ø·ï ôêõ±|öÙ?šºê*yöÙ $_>þ—™lÙ ¤D€ÿÊR¢Ã:  ,%ëçž=¤Y³ª2}úª ±ªU+¥ÂS, ?¨BOºwo [·îÖÝ ‚Ålh»ôœoÞ¼KÎ?ÿóc2¤·\pAËôtÃ{H€ÒA€Â4Ðx @æ(T¨€YL±\ݼeþüuæK «ih©[·¼T®\"Ó£ó×®MÔ$þoÉÞ½, T‹ÕB‡æ9 @ 0ÍB¸ìšH€H eØù ¥ví2²sç>Aô»+ãÇ/‘*UJɸqþ´QîºûìÚµ ÓÌËgºlÙf9ï¼·îÆÝIRšŸ$E¦Q„Í¡H€H€‚ ”,YÈ.”.]Ä¢Þ½VÓ)S–K‡µ-e¢öC üLá—Š%ýŒ–•+·Z~R¤€:ôv)UªpF»äý$@é @ašh¼…H€H s % vvjÔ¨’ùuâ|Ñ¢ ’˜¸G.¹¤µäÍ›'¢Õ´sç:‚<¨‚ÊHÁòýÅ0_Öo•bÅ f¤;ÞK$¦€Ç[I€H€2FÀ-å'&î•V­ª„é¤IËlI½uëv}ìØpñ‰­LÛ¶­™¡íI7lØ¡¢ô]£ 2pà-R¤HŒ=ï&È Ó áãÍ$@$@!k(,”XŽoÑ¢ºÌ›·Nöí;$S§®–-«[ðÒE»0â0ݺ5°ºô¤Ú±cŸ\~ùûŸO¾MŠ÷û»FˆI€¢B€Â4*˜9 @rÊ–-*°\Bˆ"Ù>üLçÌY+Øý ÂõXÞ-¦ð? M5Ú.ôüÀÃrÝué®RûÕRz«8_×Ðv<'ˆ. Óèòæh$@$@!°«Ó¦M;¥R¥âR±bq™8q©,^¼Q7®d-›6­bÛ“b¨ÐR§N9K•–] °£SïÞ_ÈÂ…ä›on‘ Š…vËs l"@ašMà9, €Ÿ@¹rÅÔ"ºÓNZµª¡N ÍrÚ¸±ßbŠíI;w®«Köá~¦¸éä“ÈŸF®óü»oßl«ÓÏ?¿Q lYH€b‡…iì¼ Î„H€r%òå‹ÊÆ;ìÙì4kÖIHÈ/5k–ð8ùäújI]&X‚-XΟ9sµ-é‡Ö…žõÕùøã¿å7.ŒÅB$[(Lcë}p6$@$ë`)ýz¿0mÓ¦†?´åyXJ]Ÿ)®c™?´ mTÞ¼'$ åÚÿûïyì±ïä¾ûN“sÎiæ.ó“H †P˜ÆÐËàTH€H 7¨\¹¤lٲˢñ‘Ë‘ú ñA(àŠmH#Eçc§&¸¤´œ¿vív¹ùæÏäŒ3šHŸ>§õÍ Ø!@a;ï‚3! \I J•’öÜHtŸ'Ï ¶T¤%{,ç'—L¿k×úÉú :tÄD)¢ÿû÷¿ši}«# Ócb= @–À2û¯¿Î1a 1Ù¾}-9rfظð3}æ™eöì5Ò¤I• zXLè„´PØ9jêÔÚÇ=¶üÔ0Ê'EŠ‘‹/¾8Ê£r8È<¯½öZæuvŒž¸” @¬& Èz¦+WnÑ¥üDA^ÓvíjÉÒ¥›MÞR¿~ÁNQ‘¶'-]º°4lXÑüJ_yåWËWê¶5õöÁc Ø%@a»ï†3# \C fͲ|£%K²]™òåË+&„'ÔïÒÛ“.ŒÈKýx‚нýönÛð" @ì 0ÝwÙ‘ @®!P£†ûQlMZ¼x‚%ØoÒ¤² Ó%a >§N].{÷ «;tè¨%ê䑳-QX^ ˆi¦1ýz89 È`%ÅÏ–-»¥hÑ‚öÐíÛ×6ÑP¦‡ «Û¾}¯ 2ÙéæÍá¹NCûá9 @ì 0½w‘ @®$P§N9Ù±c¯ Óöü:Ô¶ &ˆUo)Uª°4jT1l9ÿ¥—~–øø|–Rêï¿yoáq* |ùå—rÇw¤²uúšýöÛoº5ìjñÞ›¾Òq—÷¹mü1cƳ§£GZF…6mÚÈŒ3äž{îѼ¸ŸÙ}7Ýt“ <ø˜}¸}ô‘œ~úéš)¢¬ÔªUK.¸àIÍÜý‡Öü¾ÛÜ©\{íµ2tèÐÀùñr@az¼¼I> äpuê”·åy,壴iS쟑—óƒ· 7o|õÕyüñs‘û¦éû2,\¸P-Ñÿ¦ïæTÞµjÕ*ÍÀð«Z½§òŽŒ7ó>×¾}ûlüuëÂw iΜ9Ò§OéСƒT©REvïÞ-ú]HÆŽ+Ë–- ½%âù]wÝ%²ùòå“§žzJn½õVY±b…œzê©òî»ïF¼'ôâˆ#¤T©RšyâUAØ»¹„¶ÍÉç¦9ùíqî$@$p¨[·œþG{$°”_¨P~K …ôO¡ËùK–lÒÝ¡ü ùŸ~z¸4kVU.º¨• 8 Ñü n½-æÏaÛ¼y³î~uT¦L™"›6m²9C„Œ?^s½.·óýû÷›°9pà@à™p ±ã„ ÚÀ"7wî\Ëûh¨kÖ¬Ñ<±­-ÆÛ²e‹·ÚŽ16úܺu«î¨õ§}ºFD7n´Ó X_^‘„<³€xˆPÌ'µóûùçŸeúôéas?räˆü÷ßš™á¯À³º~1Þ´iÓdÖ¬Y±]]rŸ s…%uܸqúZkMÑ-Ê7Þ¨ßË¢òÊ+¯ÈW\a×Bá1.ÆÇ]=z´¼ýöÛòÄOhú²‘”w»<ðÀƬ{÷î‚Äõ`™S°sß¼cÌí½÷Þ“sÏ=× c¢b\víJÊfï”ëߩٳgÍ/ÐA¬è—‡…H€H€²Àر |*Üã4hb`.Ï=7Â×¥Ë swpàÀa_Íšú¾ùf¢O­£vßĉK­ZÿÓö5hð¨ïÃǺæÙöÙ·o_KƒTß}÷ùÔ2ç«^½ºOu‚/Ož<¾Þ½{ûtù×Îqíå—_ö­^½Úê è[…Š/oÞ¼¾õë×ûú÷ïï+T¨OÅ”ÝwÖYgùÀER ïâÅ‹ûêÕ«çëÕ«—Õ=öØc¾æÍ›Ûq||¼¯cÇŽÖg\\œ/!!Á÷ÝwßYÝ?ü`}téÒŇv˜žóBùã?욊$;¿ùæ›}eÊ”±ã>øÀêvìØaç¡¿t·,{¶’%Kút›ƒŠck¦ÚÎ1^þüù}š#Ö÷É'ŸXŠJŸZí:êŠ+æ›9s¦ÕyŸK…§¯ËûVÞ§œrŠÝ~èsT˱Íç¸>iÒ$_‹-|<òˆÝW§NßóÏ?oÇ*`íùÑV­¢¾òåËûTø[Ý¥—^jç*.íÜûKÝl¼÷ßß—Sý#h.úŠ}O^zé%ëÏŽïÞyŒ5îAÁw ïóuϧ–ÚÀ÷ÁãWÛ¶m}j9>F«Ì©¦ÅT¿E,$@$@ÙO víò6‰õë“—œŸih>Óøø¼šë´¦Z¸ÊóÏ”nݘo):ÀŽP¸oüøÅÙÿP阊;¹÷Þ{ÍBÖ£G[êUqªþ·;ä’K.‘?üP°›ÔI'äc8dÈA{'fëׯŸÝ+à/¿übKô°’⺠f³ª©°•E‹’÷Ç……véÒ¥²}ûvóTi–9÷X•*U²ºÅ‹›EUE›UU«VM·ƒ}Pð‰rÚi§ÉÝwßmÇ)ý‚UKÝü±õ‡¹-Y²D]4·Û°Åëüùóí–Üž={ÊC=dVUŒ­BZ7iØ ;wîT?äFòÜsÏ¥4\ þ£ìUl‹ EÝ䡽üþûïÖVGø™&W®»î:)X° Í c£íå—_nóÂ34mÚTT,‡Ý~â‰'Úu¯K@$¦]»v ¼kXwõ—@_°´^sÍ56_X}ñ=ëÁÕW_mo4³Ûn»Í,Ãà;jÔ(³®:‰¡ Ózœ äf%Jø£ñ‘dß•6mjª_^Þ°|Ôc§§Ñ£çËÌ™«顼¥cÇ:–U„ÞË9âb>‰ja4ñ A£V/[JVË^`9ÿª«®²¥g,ñb)K¸W^y¥îtU@ n îô£–2 4j×®¨ÅSSq%(¯GìËÒõë×O– |!1Ü£VG‹ð»tåÉ'Ÿ4AV»vmQ««Íu8Wk^@@!Ð÷« 6LÔÒiBËõsÞyçé{m·ªUÑvÑœ!ÀÕzlËëp_øê«¯lÉ"ý@L§Æ_ýõÒ²eK©P¡‚ºƒ\dbØLÅ/,­O˜0!ÐßQˆz¸ìÙ³GS ØD,\Ô2¨OŽi AÈÜ0¼+µlk`¼Üyçæ’7 ”š5kÚ;¨‡@E§X,I$bqvœ @®!päˆ_D®Y“$LâÕw´ŠZ³ÂýL!LwïÞoÛ—"Jß[:uª£V³}¶u©÷zN8†8rÁ2ˆâƶ¦(°ë‚©_xá…&D ÂðAzþùçÛ5ÒŠ+ZÀ >!há/ŠÀ£fÍš™x±NôWÕªUÝaØg5× ”Qœ¯#޽õ˜'üU3RÜü¼B < ¼áW ÿϺuë†À³!:b ¢[ÝÌjüÆo¤)¸ sw–Ï´f­\¹Ònu>Ÿðû|ñÅͪ ßPDà'g•†à†?*Ú¸’V¦`†aíŠû9ßaïóá{‚âõƒu÷ÅÂ'…i,¼ÎH€H@Å€?`dÕª­A4`ýü÷ßpëΖ-þzõü.Þ›zªté"-­Þv±x ñ™šËâ9çœcK¼XƇ(-\¸°-eci‘ïXÚ…`›:uª ]Q¹råD}Pƒº÷.#Uè‰×∥n·ÛïR%l¸#À?eРAòè£îÃò™þôÓO<‡i™»"ØÑ/„'2\vÙev/Ä÷ðáÃåûï¿·TMðÅ…%XƒzÌ¢ á Ë*R+¡7S@Ðà™x‚erø³‚·[ –ÏÁ¾¯pÃ@>RMáX²±Äq w äD…/®·˜VrLñ^QпW¸;øÓâ=¬·­[·²ÄÚÍ9àW¾0GN‘H€H pS¤ŒZ¼x£ú>ú—´[·®¡b+Ÿ3]xa+#±`ÁzùçŸEj!ë&Ÿ~ú·¦":¤–§¸ J´Œ‚àÍ“'uVÈ ²á–-ï26ŽCϽÓBÂö%J˜¥O(Ín"ðá‡6q„k¤w7HOË"|±Äë¬jh‡âµ®!ofÆ mÙW#»M`z똄ñár«ß3Ͼ¡C§ÍçüóßöÝ{ïÀÀµøÖ×¹óó¾uë¶Û=cÇ. Ô¹ƒE‹6XÝÌ™«Ü¥¨jô{šÒE¥u‚*Ü|ê#êSAv+R+!؄թ/¨Oƒt|êKéSAHåm¨"VÓq}ãS œµõÖ¹ÔFtäS‘äÓ<™Þê cl¿*`#Öá>¤nrEýa}šÓÓfé'XèrºOó˜úp©€¥º<øÔê–®)5L‘r Ï©¨ܧKøöüø^df‰fº(ZLsÂ_œ# äqqyí)«T)eAKÎ:Š‹ð3°©mf_ƒÕË” 8"¥Õ±JrLá)íúƒ¯ªæY=V×1_OÓ˜Eœ äX®G©^½´r¬ zhDÙÃ÷tõêmÌ3Õ–'/½ÔŸW²S§ºÉnAÚ®]-ÝagYP_ÇË |:ð‚à&oÔuZŸþ‘Þ¨pw?ÒK%'qõn9ÙÝÃÏô S?;ZLÓÿâ$@$@™HÀYL«U+©þyS,Àà Ÿ-ªi¾Ìxõ+]lugÕTóXæ·Ñ;w®+Ÿ>^ƒ>öj¾È„ µm[Sú÷tíx9yá…2åQà‡©`{Ëä |;ùÎ’yÈÔÏ’ÓÌûN±'  ÈŸ?Ÿ’äÑ”FÅ4)ù h{ˆVAýúël|^¥; µŒ„ 'C‰˜ ú÷hÉ ö< ˆ]¦±ûn83 Èu`…Õ"uÖ¬ÕAÏïÏgºD——´R®²hÑêÛW9âr~ãÆ•Ì²:yòr× ' Îo©Ÿ6¬¤IÉW=üLaI rB#,çc™?´ MT«VÕ5]OôüL±AÀƒ~«>˜Ïj¾Êƒš®Ê¿ÕjèÜxN$N€>¦áLx…H€H ›.\À¶mÞ¼ªÌ˜,L±ÌR¢D¡°ÙÁšúöÛXþòåƒ#ÈágúÍ7“ÂîÉì °¾ñÆï2pàDÝ«¾„æÜ¼Psnþ*ýúMcPfÃfQ'Øh ÓhPæ$@$@©"P²d! b‚0ýúë rèÐݵȟFê·ßæXý•+ƒ·,EÇmÚø“ð#5Ô$펺V­jÈË/ÿ"7îTÿÕ¢¸”©VÜ7ßü]·ü§)˜ kbø‹`­7¯¨º4ÊÔñØ dzõêEeX Ó¨`æ $@$@©!P¢D‚+5kVM·š<,s箕fͪڭ£Fͱ|¤&, ë »>!rËù¡Â"»áü÷ß 9ó̤í4Ã:IãM`®ÖÑIòÒK?›€~䑳u+ÊŽº»’_H£;ìš„ Ô iê8± @`™>1q¯æÕ,cAPÓ¦­´Q7oÞ¥ÖÇuÒ³g3ÝK}·ÌŸ¿>l6XÎ?>ÜÏU T©SW„Ý“Þ ÿœsÞ”‡ªsj®“›nê$JÓÛ7ï#ÜL€Â47¿}>; Ä,…C„¢ÀÒé„©n9jKú—]ÖÖk$Š´QHÀ¿vmbØSµlY]…iÆ#óaÅ}rÚi¯ÙRý¨Q}Ô‡ôü°ü©aà T 0M&6" ˆ2eŠš/(ÆjÑ¢º.¿û-¦¦ÈIš/íÛ׊˜³KùH3?ÓЂÈüÙ³×Ø’{h]jϱé_ŒWqzüøãÝR¿~…ÔÞÎv$@© @aš HlB$@$NÚ¶m9rTZ¶¬&+Wn±óI“–êãµm:ÔÑ]‡–ØÎPÞYA”BÌF¦°˜ÂÚ qšÖ_Ò·ÞúCÎ>û )S¦ˆŒó \}u‡´vÃö$@© @aš HlB$@$eËÕ¼ŸGeË–Ý&2±%é¨QseÍšDÛù ³€@ݱcŸÌ™³6lR°¦N˜°4ìz¥m¹=4UXà ðg½âŠ÷åõד'žè)C†ô¶TP!ÍxJ$I(L3 $»! È8Š‹['ëÖmìèT»vYùí·Ù’/_^õ9­fuX>/UªpDË(„)ܯ_¿#l2ˆîŸ1#x7©°Fž Hðߣǫ²|ù]¶¿Ë‚›<Õ<$ȦY•]’ ¤’ã#µ“ `‚o(|;5ª$ Æ:m×®–Fà‡û’b)yO'N ·š6mZEfÎ\è#¥ƒ¡C§jÚ©·[šþþûý–¦*¥ö¬#Ȧ™Ã‘½ d|ùòXü$aZCƒ¡v˜0õvå|ø=êó^6ñÚ¤I™<9| RXL—,Ù$»wº'ôyIïºëkµž¤N7J‘"B›ðœH ‹P˜fXvK$@$>•*²˜B|bG(oAj¨]»ö«Ÿix0¢÷'OO aŠ@¦Y³"/ç#àêÞ{Ê€ctkÑ+äÑGÏæV¢^è<&( 0dA$@$zU«–R?Ñmv"íQ²åDÝwíZß; I€¢H€Â4а9 À± T«VÊvpBËeË6KáÂ"FÓwèP+¢Ÿ)–ýëÔ)q9?4 ¢ôê«?´åýo¿ím»M{†lA$U(L³Š,û% HêÕK˾}m¨¥K7 ,¨† M‹©ßÏ4<Ÿ)¢ù§N]6>¢ì±m)–ùÝòýüùë4?éír≕ÃÚó @t P˜F—7G# 8$ÃGY¾|³YL›4©lyL§L hªWÏïg)5vzBj(4yKÆ•ìtöìÕróÍŸÉ´i+eàÀ[¥An-êåÄcÈ.¦ÙEžã’ D$€ÝŸ°|¿téfA¢}XP‘Ç4T˜âæ¶mkÚö¤¡ÁbºwïA™?}PU… Å,Âÿ¹çFjÔÅòÍ7·ÐRDˆ'$½(L³—?G' ˆ@ fÍ2*L7Ɇ ;,’‘ö‘„)íOšäÓ¢E Êÿ­ë½P¡üæSúᇽtÛSÿnRaxH [P˜f vJ$@$ZµÊÈÂ…ëÍ×)ži?wîZ³‚zéöí{Ã,£'œp‚2…ú™~ùå¿æcZ¹r 9ùäzÞ®xL$(Lcà%p $@$@ÁjÕ*+‹ûSEU¬XÜ„)üEáê- V0Ëh$?SlO:}zR{,Ý?öØ÷ræ™'ʦM»ÂüO½ýò˜H {P˜fwŽJ$@$,ů_¿ÝZÀbŠäøUª” [·eÖÔHËùÍšUѪ-¿råV vú\Î:«‰Üwßé‚4Qp`!ˆ-¦±õ>8  %€ŽñIþüq•ߘø· ÷'MÎÏ´yójDû7Þø© Ûþý/·§ùòå [þ'x ì'@ašýï€3  !€à'XC ˆ Ô ê¿ÿVÊÑ£¾À5àúÆ;VQo)]º°TªTB^yåW˃úá‡×Yqqy5Ò¿TÀUÀ{I€²—…iöòçè$@$@@<–(‘ yóž¨Å’ýîÝûÃ,M›VUËj>ÛR4Ðø§³f­–·ÞºÒ,¦®®·Õ]ã' @öÈ—ýSà H€H€H œ@±b ’˜¸'P„úH5eÊ2ÍkZ1p=>>¯4kVÕ¶ ½øâÖëkÖ$Ê‚ëÍ G†ë8€05jnеŒœ<öØc*tg¤ ÞK9’@åÊ•åõ×_Ï´¹Óbši(Ù @f€oéÁƒ‡]bi;:EÊg kêäÉIþ§>ŸOî¼ó+)[¶˜ZYȶmIB˜bg©P·€À`i<=z´î453w±9 älsçΕß~û-S‚ÓLÅÉÎH€H€2‹Ÿöí;$¶¥zô Ò¯¿ž6„é€c,§iñâ òÉ'ÿXj©Áƒo“ .xGfÏ^#'””·ÂýÂ/ÕmÖi/œsÎ9òꫯ¦ñ.6'œKàé§Ÿ–o¿ý6S€ÓLÅÉÎH€H€2‹Ÿ`ù\´hC KP,ѯ_¿#p °¤¢-òœ¢þ…~’;îè!ˆØ¯P¡¸Ì™³6¨}íÚå,¸Š~¦AXxBÙN€Â4Û_'@$@$‰@BBœäÉs‚ù‰ºúæÍ« R=….ç—,YH”×yd¨`g§{î9Ån;ñÄÊ*L׸.ì3!!^¸Éÿ Jž d ÓlCÏI€H€R" P vJyóÖš,/ V”©S—®¹ì{ÿÇódôèyj1½HÙÒ¸q¥0‹)®×¨QFV¬Ø‚C !@a#/‚Ó  &€À$¤Œò S´ð:… SDæÏŸ¿Nzöl&íÛ× tÖ¸qeY¶l³ìÙs p Õª• Ë}Ô€'$@Q'@auäH€H 5à3Z¬XÁˆÂbQÞ²jÕ6‹²¿æšŽÞËr≕ÌÿtþüõA׫V-•k-¦7Ýt“ <8ˆGfŸ<øàƒrÆg¨û°®?üðC«{ÿý÷ÃêB/¬X±ÂÚ®[ç·œ'&&j¶†ƒÖìã?–»îºËŽçÍ›gí0¦û9ûì³å¡‡’… †v›©ç_~ù¥ú4ßa}>|X³@lKuÿÓ¦M“Ë/¿\j×®­Y$ÊJ·nÝtSˆWô»|4Õ}$Ç$ÕÄPC Ózœ @,å—(QH¶nÝ-›6í T´jU]>"3f¬ \CJ¨!C&›ÿ)ª·`÷§Â… ùª¢Óuë¶ëÖ§©Þ~sòñرcÕŠœ”^++žeâĉò믿 DhhAÞKÔ-X° ´*ì|ÇŽÖvïÞ½Vñ6dÈ;>pà€þ²ÏŽ·nÝjíJ–,©ynÙOÅŠå‹/¾Ð ¸vúGÈ k—¿ |ÿý÷_ëzĈRªT)9t(ø§HãþòË/Ò¥KuM™*×_½<óÌ3R¾|y¨‡¨NMè79&‘ÆŒõk¦±þ†8? È¥8¹LQ¼ËùZÂ7êƒþ2Ù¤I™>}e±ºuË©Õ,)º °-)D)¢ø£]Ö¬Y£ùUwË®]»LÐ@`¡¬_¿^þþûoM{µÝÎ!¶V¯^mÇî¬qk×&eÀ=°JâÓ[`q›5kV@üA˜9K£·Ý¦M›4uÖý`«üùçŸöéêwîÜ)†HãÇ× ‹\•}Â:¸ÿþÀ5ôãS ‘#GªERÙÙ³gÛœòç÷¿[ÜŒgòÎýb¾GŽ ôƒU«V™õ{Æ ÆïÚk¯•_|1¨ÍÝwßmi»ºëƒ>ÿû¿ÿ3žÞ|›èl`­ áú„ ‚æíÞ™ \¼ï×Á*·Þz«|óÍ7šúl€@´BT£¤ôŽŽÅÄ}~þùç ïÆws\ºt©½_|'³»P˜f÷àø$@$@ )üL!BCÓ=!=Ôÿ­°ûà;úÑGã䦛N’V­ªi¢û`!‡FõëW¦XÊGA.Óh—:È©§ž*¥K—–Ž;š•¬OŸ>R©R%³ U«VÍ„ÓW_}¥ººlܘ”=à’K.‘«®ºÊDÏé§Ÿ®–ßjrî¹çJÕªUÖI,ívîÜYš6mj–ÃöíÛk°W ö¨UªT‘îÝ»K¹råä´ÓN³~¾ÿþ{k×»woõ×moóÃs½zõLL¹Nn¿ývkïÎ+T¨ Ùîq§rÖYgÙ÷ bÌP 8!ßxã {Ï矾=7òÝBœ‚ Äø /¼ €v]Øçm·Ýf¬hç)½£”˜à{€wÛ¼ysûÎàÙžxâ ësÆŒÆÜñ^;uê$5kÖÌöÌ(Lƒ¾  —]v™å[uBqóæÍò×_™È:t¨íºƒ%yX;!l‘ð¢§_¿~Êa¾YRaõ„àH©`.°šÁR ¡wóÍ7›E÷ ŸwÞyÇ–Ì?ùäݼàùñÇ­;YX(]¿ç)§øÓtáZ¡B…ÌßÓëÏŠ„ì—^ziDK¥ë'¹Oô|ùò™%â4Rùý÷ß-é;Æyíµ×LHC´Ãïåºë®“‚ ÚsM›6mÌÇÓqƒ„5Rˆõ÷Þ{/Ò0¯uíÚUð^Pàb€%}A¼ô9nÜ8³„bÙßYŸ!ŽC‹—³–Aîɽ£”˜àû€ï×’%KÌ*ýÑGɳÏ>k–q7&¬¹[¶l±ï"¬¨î»æê£ýIamâH€H U Êo‘ôH÷4wnÒÒ5n†Ÿ)¶]´h£|üñß*6:Z TÓ¦Uu)ùˆ‰Sï õê•×ÿ|wÙ=ÞëÈwºvmô—ò1X=áûËZ­ZµÌ‚ K*üaÃ2+„„ž;Æ 3avÑE™Ø„€yàlùÖC\ûî»ïÌú kÄ!–‰S*XB†å5!!A{ì1ºsæÌ±[`ÝDpNžÔÏ»B…î"e £ð ËÞ®ÄÅÅ™hqç—ÎñÊ+¯4k„‚~°\¬X1ç­ÌËÝW^ð·Ä}ð}ôZâ`1L©8á‚6èÅùJ†Z[Qïê¬á1~AAÔ>ܬÀÍš5“ºuë¦x— hJ±Q2•?ýô“=?@ü!„ýÌ™3Õ:¾Òî‚îø3,çÃrQŽ?ú÷ï/˜'„*‚¸"Œ©Î]Ã{… EæOü¡Ë$ú†¥¢8´ ÖU´q%¥wäÚx?á[ -Z´ð^6· XH]ÁB®À’ÉçÖÕGã“Â4”9 @š ’~×®ýšî©²ù)z <Ëö¿ü2GÎ<³‰n;Z,Ð?–þgÍ Þé©lÙ¢fQ Ý‚÷mؼ½i £,>€øLMo",oˆnÇ2þÕW_m·M™2EÙœ¨ns4»À:óm|î¹çl ¾«råXø.Ú#È ToÄu\58Æ/X!N dÂ:’µ,¼Yn™û]³‚øþûï·vpU€0DUAeøùï¿ÿ,X ~–p€•Ëã¸Áê¬ÍèË;GX~UðÀàï K6,²XRG4>,¦o¿ývX7°hBœÃ"íŠ÷=„¾#ׯû‰ùâøÍº¡˰÷ý¡],•ØšM,‘á\H€H€²•r˜îر׶Åqè¶¢Õª•¶åù^½:ÍyKgϦhP³fYK´ïm\¾|ö Sï„ –Xñ ‚碩!^] –fá ÿP³Ð„ïËk)C1X`!à 8Ý|ÐÏwÞi‘åŸ}ö™-}#R\C¹«®×Ñ1]¤HAd»[žF«‡À†‚ âÍ»üìæáÆèÙ³§‰tˆ,ïs„¶sí!Á ¢>›_ýµû`©þ½Äx^Ìåá‡X„á.¨z¡@žÉÍõn|¸Pà@؃%„;ú…o'¢üa)…PG`EF|¢_¸\à÷èÑÃü†Ý»FÛ”ÞQrLñïøb™þ¤H¡…dþ‘ žÁ=G¤ú¨\SÏB$@$@1G`ìØ…¾ îñ©8õ=ýôpß©§¾˜£8ùê×Äê'N\¸Ž]ò·ëº=iÐõ×^ûÕשÓóAׯŒ™omwïÞt=­'*F|ŸÖÛRÝ^£¸‘üÒ§Á:a÷àÚäÉ“}*\ƒêÔÇЧJŸŠ+Ÿæ§´û5—ePœ¨…ϧQŸFä‡õ¯þ­>µÖú47©O-z>õ} »?³.`¾j õ©»À1»Ô%rŸZÙ.¹îy4_©=›·êÔ msñ^DZú¡ú48(ôrØ9Ú©gà:ŽÕgÔ§Y×¼xµàúÔ=#âó§ôŽ\?É1WÌY]"öíîOϧ»ùôšôÜšì=ù¢¢~9 ¤‘@©RþÜŽnB°Ódzˆ{ø—þý÷"³¦–.]ÄÒFµm[3Ð;’é#0 ‘üÈ_ê –òW­Új–Ô¼yý †XÊGÕ´ví¤ wO,|bIVIXè¼¹?ÝÜ"]C,_°v¢xÜÛ…¿`!ÄO¤XS³²`¾ÞŸ”Æ‚ëBFJJσ:dGˆT°Üï,¾‘êÝ5´Ã+°v"¯lr–Qç:‘\\Oé%Ç\S3ç”Æf—ò£I›c‘ ¤š@éÒ~aºyó. tò§òç">|º.÷V³´QÓ§¯ ꢳnÝòš¿ÑßÖUÖ¬YÚ„íêÕI[––+WÔª1F¬ø B|"Ïiz –°±üŽeíЂÔEN‘ ¢ç±Ì’½RzGÙ;³ÌÓÌgÊI€H€2,¦°öÀbÚºuuͱ™ßüLa=5jŽî0tª¦ø9¤éxþ ÍŸP]Ðõ5üizªzõÒV‡$ûcÛ6ø«ÆfAîÏŒDõ»½ÜCûr9IC¯ãW,ÙO ¥w”ý³ËÜÐbš¹<Ù @&È—/@%hÎÌ&!H5eÊrÝ¡h¯æƒl¤¹&«Z‚ü-[‚…eƒ4yz°Å´H‘P…å|Wòä9ÁÒH%&îu—øI$(L³>‡& H™@¹rIéœ}Äùü1O}æÊª?bid®b̘¼œßRä'uQýnìô´fM¢;µODÿc) ì'@ašýï€3  H†€7Ï(ík¤½¦(š/]»Ö·;ßKô3g†îôäzZ° Øjê¦I>¦è¤dI Ódðó2 D}L£Žœ’ ¤–@ùòE[†b§§[PSŸ>gºp–ÔÀ=ÀŽN­¦ÞˆýJ•Jè~íÁÖÕ̲˜Ž1Âò^"·êÎñR´èï”xLÇä€ÍìB‹ife$@$@™F{Ù¯]ë_z¯S§œÄÇûí)íÛ'í!Áº)&€¨E‹6Í¥rå’aKù°˜&&fl)¿{÷îêVÐL6oNÐôUe5{)ÝÿÅÁçÉqG»hvÚi™ú\´˜f*NvF$@$™`á\»v»u‰@%X7üp¬n÷YF† é-;ÖñËc  0Í<ÞJ$@$µ ˆ“²e‹j´û6]‚÷Y¢ý|ùòZ>SïÞö T”Ÿ~š4™jÕJ鲦›Â4..¯nË™ AJ;mSk1ýë¯Ò§Ï`Ûmê©§ÎU‹iGß+ @æàR~æ±dO$@$@Y@ JDÒo³ÔO›õë—WÒ`ëhÆÍ2ŠtR®@„" [z ¬¦Þ¥|XL½ËýÞ¶8†•ô¾Õeû÷-õÔ?ÿ<*½zu¢( ÅsÈ´˜fDvA$@$u L±(vrÂŽNð)ÅÖ¤Þ‹é‘#G5=ÔA"~WªVõßëÎñ aê]ÊGð¢ N Œó6•þY,÷Ý7HëÊGõ’3ÏlTÏ Ì%@‹iæòdo$@$@™LVÒ•+·šEFˆÂõ'Åö¤XöÝé©jÕRæŸê\¼Kù.7ê¡CGÍà6ðì³#äÒKÿ϶=;öaŠÒ@Ö Å4ëØ²g  L P­Zi³˜Â·ÖÓzõÊËöí{-ñ>¢ñQàë ŸÓ… 7ˆö°zz r¡bkSWà‡Šrø°_˜nÛ¶Gn¹ås™6m¥:]._ÜÚ5å' @ 0ÍbÀìžH€H c`1uyFá3 ÒN8ÁÒC9aаÓS¨0…Å©¦`uJE‹ДSû“rÂm¦O_%7Ýô©ÄÅ哼;4hÌ ,%À¥ü,ÅËÎI€H€2JÂÔX@ Êo ìçÍ €Â2?|L½>¦°„®_ïß= uØéÉ+L`:tªœþÛÕ_½¢Ô ’Ç$%¦QÍaH€H€ÒG B…bjÁôÿwU©’?á~£FáyKëÖ-¯Ñû‰Aö΢ê¶5Å Š-èÙIJ,¥®?óÌpéÝ»›|ùåMA[ž¢Ž…H :(L£Ã™£ ¤“–íK•*¢â4¯8¡$ÌŸ;7ÉO×¼ õqŽ‚|,ÕoܸÃAÃbº{÷K¾åûÆXÝ£ž->xF H€¢O€Â4úÌ9" @ @LB˜º?Sìé –ü]B}w Ëô§H5å ,¦ØjóæÝrà ŸÈ˜1ó­ªgÏf® ?I€²‰…i6ç°$@$@©'€íHUK „)Ä¥7ºÂ>¨Ø‚Ô[Ê•+¦Â4i§'ø¨¢ôîý…Lš´LžþB;Ï›7IøÚþ"ˆ: Ó¨#ç€$@$@i%€\£Þ<£ð-R¤@XÞÒZµÊÊ’%›‚º/_¾hÐR¾ ³f­–Aƒnµ=ïqC|<…i8ž@6 0Íè’H€H mòåËcÑõÈ1ê vš?½;µÏZµÊ$c1õ/åcw¨^im_|ñbiÒ¤J@ðºDûAò„H ª(L£Š›ƒ‘ ¤‡’ë£,]šd ”·ÉøW®Ü4DéÒ…eëV¿ ½ÿþÁ2yòr«‡uåàÁÃöI‹©aà/ÈV¦ÙŠŸƒ“ ¤†€æ ¬¦^ÿÑúõËkBý`‹)ò–ªºgORPvzJLÜ#o½õ‡ Wéë¯_jCîßÈ>ôïøD‹ijÞÛ@Ö 0ÍZ¾ìH€H @<)RP–/O lÂÖ¤¡[¶ìŒ€žP±ïJ‰ Ún·¼ôÒÏÒ¯ßùÒ­[C«:pÀo)…Å)©ÜPî>~’ DŸ…iô™sD  4€ohñâu)?I˜"¡>Šw·'lYвjU’0ݱc¯ú§•«¯n/×]×)¬;B¡:tXòçç݃¿H › P˜fó àð$@$@Ç&€ÔPÅŠ%-å#?)ò›z£ð Œ³¼¥«VmµN‘çôí·ý ôo»­[Äöï?¬ù¦áð" D™…i”s8  ô€]±"8°©vír²xñÆ a5]»6Ñ®=øà·Üä÷%ݱc_P;,ߣìÚµO·)-TÇ ì!À?³‡;G% Hìà„¼¥ûöTѹ]*U*nwcRo¤>.V¨€„ú;dàÀI2|øtyÿýkåæ›?“½{“¢¼Co߾׬±Þk™}õ_Mê#³OÞyçùâ‹/2»[öGYNà¼óΓaÆeù8n SG‚Ÿ$@$@1KyL±å(–ó‘2ªS§:6ך5ËÈš5‰–$õ(¦ lÊ•KÈœa÷aÙÞ›BÊþï—ßbZÐ{)KŽÏ>ûl1bD–ôÍNI +\qźJì“ãxû¤©—I€H€b’‚“Þ Ro.SÓ£GjR}°&e|,ù¿üò%&Jq-!!^…©ßbŠ— QûÈuÊB$ý(L³ÿp$@$@Ç €tN¦¢Þ\¦Õªùó–ºÝž…?lØ4ë [–º7çc ÑŠR @œ}b)–X ì'@ašýï€3  8ˆÈIõꥃ"ó!8K•*°˜þßÿý©9KýùI·nMJ¼‹«Ûztß>”>RK¡`)?«}Lñx¬&ø S~H€H€bž@Á‚ñjñêpî ¶3E’}·)úDÁ®P\Ê7üEÙN€Â4Û_'@$@$p,ð…0…Å–O¤Œr¥J•’¶é[oýn‘û½{w·ªPaê|KÝR>„)¢víÚo)¦\ü$È>¦ÙÇž#“ ¤ysÞˆ@IDAT’€W˜âo¢}$Ô_±b«|þùx¹çžSÔ_´€ T¯0Í“'Ébê]Ê_·Î/p+VôçEMåtŽûf7Ýt“ <8KŸ Î8ã yê©§ÂÆY°`Õ]uÕUau¡ý¬[·Îªõ¿ñÇ,wÝuWà–yóæ ÒU®\YêÕ«'wß}·Œ;6Pøðaµ 'mg¨ˆp–¶nÏ’K±8§´>(…iZ‰±= @Ô ¹>,›%K’Â…  Sä4]±b³ú‰’+¯losÃÒ|bbðR~¸Å4.`y­X±DÔŸ)–„X[¶lY–N‚ò×_•×^{M­á{ƒÆúæ›o¬î¯¿þ ºédÇŽÖÖõQ¶lY2dˆ5=pà@ ÝÜ?.ºè"ÝÂv‰Üzë­rß}÷ÉÌ™3¥[·n2jÔ(k±\ªT)M?æ÷CŽ4ž»––¶îž¬þŒÅ9¥õ™)LÓJŒíI€H€¢N páü<¤Õ«û}JÝ$Ê”)¢âãŠÒvôPh}W°s”óKÅuXP±”¿n]¢YWcmKRXí6oÞl©°°kÔ¦M›ìQ ¾Æ¯™ –ÛùþýûU”¯ÐÀ°¤gÅ1®9q…6cÆŒ‘¹sç8.kÖ¬‘‰'Z[Œ·eKð–¯h‡±ÑçÖ­[åÏ?ÿ´OwÿÎ;Âca^‹-rUö æÈƒ‰”^(°èa>Þ‚k#GŽô^’o¿ýVòçϸëׯœã<ã‘#þ@7W±jÕ*{Æ 6èûß-×^{­¼øâ‹VýÓO?Éüùóu7°áòøãË-·Üb\*T¨ ƒ ²y9ÎèÛÍŸÓ¦M“Y³f®á"µÅ¼Ðí½ssï×ðîfÏžmsBßsæÌ‘ÿþû/ð¾Ü³€í¿ÿþ«}+Ý%ûÄ;SX†Ç§\­µëÉÍ •˜Ï„ ôßPÒkvS þ¢0Á—Â)‘ €•S”ªUK©(IÊ[:w® ·k×›`aݳ'I!ðÉå-õ;ùwzÂR~,.ã?÷ÜsÒ²eK©U«–´iÓF}`+è.V·k׺¹@' «)¯¼òŠ I´Á’µ+Ÿ}ö™Ô®]Ûäo¼!¥K—–óÏ?_7n,çœsN@œ>ùä“R¥J騱£ÀÊØ¹sgyðÁ]7O´éÞ½»”+WNN;í4å_U¾ÿþ{«ïÝ»·´oß^75(o–G,ßpà {!ˆäï¿ÿ¶kxÜïJ¡B…äôÓOr€°[¸p¡Y7];,÷_xá…îÔÄX8ç*Z·nm‚Ïñî»ï žý£@È¡üñÇö‰_øÖÒûï¿ß„ž¥AƒP·Êæ 6Ø’ï¡dÉ’&hûØc™5KÐ(°ÄB€ÁúØ«W/³º€"Xn_zé%yh{ÁØý8vV\'f±Œ±šÙ¥D‰¶¤=pà@9õÔSÍ…ÏáæöÞqa¹|ûí·eñâŶ_<„¹ ²ò¶ÃÒ?„%‚°àn1‰1ðŽ`ýuì*V¬(gu–]‚øÄ;rçhk4‚·¤Xô«ôo¿ý溑믿Þ,ê°¤;¿Ù@¥çÖô©S§Ú;€«æK{,—|±<9ÎH€H€@ÀíÌ䦥,°Éíò *RHmÚ´3 Éó“j°”Ÿd1ݦp hß¾và¾X:€èpV@,))RÄ.pB’Ï,–¸±D>lØ0‡¤Xº‹‹Rˆ! ˆ¸ àËÔÍš5“øøx7DÐ{àâÿ°lî „2Šó±„[· ÞÕy¯'w\¸paf°”b b aø}&W`ÑLkÁ²?ž÷²Ë.³ÜßKŒ…¥|¼ÐTÜ«*|H#ç käçŸh‹¶×§.(xŸ(øcï>¹®¯«¯¾Ú®¹_èË|\•6¹y¹?"`¡}ôÑGM„ýõ׿¶áîµOZLcíp>$@$@aœÅ»4!o) ’ê>MEX mEeãÆ$aŠ-LJppSì…è~lqºzõ6õÇLúO>làl¼àÄʱ¦P¬X1ó…ÕËø¥{X~Fd=„(ü+!²`=ûè£lI×L„1RŠÂ÷Z ±„Œâ–ç½u°îMŸ>=Pg Sñ bóüàƒ¤yóæÁæn — ×Bƒ¬\»”>±¬}ñÅ5iÑ¢… R¸„ˆk»Ûn»ÍRHÁÚˆåùHVPøôby?hzõÕWƒ\`U>VÁ$ÂXÖw}ýðÃæzáîMíwã÷ß7açÃ| n!Pc¹›P,Ïžs# ÈÜ–¡;vì ø„Ž=Ï|D/¸ ¥øÖe줥ü¸8lAš±DúÈ…Šâ–ò—.ÝdQÖuê”Ëñ ±œ?zôh ìq–6ˆD¥c)–8>XQ‹/p€o"¬ÂrurÅù bùþÍ7ß4ë*xP xà#‰¨}X! ÝÒ4–±áŽ¿IXA# £3Ï<ÓÄ,ް`†X‘Uâ¢ô™gž m8Ç3Bd{…,*á2«)ün!ÊñÜ`†¥}øé¢€ „À >°ðËÄ'R1!¢ßõëm ‹2üOÁþ ¸ìzè¡ ìÖù1~ÁPnaùÙÀþÁÇ*Þ9aþ.+üKañE*,¸cÄr¡0å·Ã¹‘ âô?ø|ıWLâl)~ܸEjY+gOä-…5Õ•¸¸ „ ‚’Hé¬vXÊ¿óÎ;-úž >‘(DkøDùKý_ …‚û]XŽîÙ³§]wþ¥Þz,³ÃB ‹'6,®¸>Ü9ú¨Ãò5ê7v\‡N<7úCD<|IQMerˆn¤VBðî{žñŽ;î°åøæzÛÂ5Käðñ…‹\ ¤ÁÉïæ—Ò'Ú"ªÁdÿ÷ÿgsPÅ|ðŽPBŸ÷¸1¼s‚¿*Þ½³`òŽyº~RšGvÖ ŠÚ—àØ$@$@$Í›÷U_ÊnrãH³óº.snU‘ÕN-`çHß¾?¨`X©4þˆïçž©QÏ‹tyø>ËZ§ÎÃjÕ»EÅDMMÁôFmß$3f¬ÒöÓ5pè‘Ô Ÿ¡6°ž!'¬nYQ`уÕîÆo4‹ w X2±, Áä|T]=„~`‘„X…¤Ž® ‚® 8aÕ„¥Ñ$K-\ðƒHzgµs÷gÖ'ä ‚Œ0GÙ” –®!Ìa= -ˆ˜‡ÕuÚNÔ¹vˆ”G†ˆqðÃOݺuíVLŒw‰Ð¶°t‚>Ñ·ó%µÓø óD_Êx·©-‘æ4yòdK/•–~0‚â`Y†ÿr´Šßû6Z£q  H',绀&ÏšµZ—¤Zoþž’,¦j( —6 ¹PáSŠ?Õ!C¦˜Å5Ð0‡`9úçŸ6‰¤ñ¡ 9J#ä8ÅOj ,nø‰T À IJ²ÀR˜Za…å÷ä ²ÀJš\÷&÷?'Rq þÂqhÛÌä€yšÖiNÈ}šS …iNySœ' är%J$–ë‘—–®V­ü–$Dí{—òõ–<ÝPXÊ÷ S,åŸzj£O ã‘HÁMÞhí´>|$áZ^Ê+̼õ°""à‰…2‹…if‘d?$@$@YJ‘ô‰‰{l ˆÐøø¼ºTê•€5N®ÀI Û¢„ZLÑüU—/ß|\XL_xá÷ØúL.¿¥ËI©sø_f¤ ¹?úpÛ™"ï&v¼B}JVOï˜È8€ÍàB€`½õÖ[Þ&<ÎAü”ƒ^§J$@¹™€)ß/L×®MT?>ÿþë`R¨P~ÍyH£§ýað¹tÂé¡P HW¯NÔ”9%5jzƒ¥‹jÜ8)7¤5⯨@:+¸ KÍJÂÎPH°qêøkB°ÃÇþ•éÉqz¬1X=´˜F5G" Èø‘b§§ v–íásŠ%~S,ÛcûRÔ¼yý¶DáâŠh~,åÿO ù5 %y_Ä L•·¦‚@ß¾}-( Û£z£ì±'"ïûôéc»!Oˆ¢G|<] ¢ÌQ‘‹€%™¹¨~L @à"+|`‘µ\ØšÑë¸ÑðhbÉ^´˜f/ŽN$@$J XÊŸ5kMà—»Ô Ó½{ýËùûö²åz4„0-W®¨Ý³lÙ&  )­Ë½«4Oå€j CD…À¡C‡,Ò[˜zE)Çr>rŸŽ5Ê6èÝ»·¥ŸB4~·nÝ,òâ¥uëÖräÈyðÁ-+Ü: KüÝ»w7‘‹ìÕ«Wd,À^ó¤Â®YÈ$€±ö*¥\®Ö)e9 Ó,GÌH€H€2ƒ€‹¼G4~µjþT>›7û“êÃß[“¢ìÛwP-¤þdéØ ;C!` IõëÕ+¯¹±%gUkË_Ñ'€m7aµLn'%5ïv£BÚ$äöÄ2=ÒYáçÇÔݾ‹6Ÿ¦ÿúÂÄ©÷I¯i²°Å)RuaÇ«gŸ}VþüóÏ@3lŠtYð£Å|°O=Kö 0Í^þH€H •àcº{÷~뾡XªwÂ4.Î/Lý?{g'UÙýñGº¥CA)»QE ÔW[ÁTõUQ±°Ay ìÀ¿„"(%-Ý % Þÿùžõî;Û»3³{Îç³;3÷>÷‰ß¹÷wOîHñ;M!¦)9,½ÆtÞ¼ÕB>vŠæ¬š›9s¹hÒŒ˜fú\oFîS$­,l'o(âsŒ¶hÑÂ]tÑEú-+ÚÍô‚²8’IrzŸbŠãÈmJz-/Uæ@áLùX“ø"`Ä4¾øÛ膀!`™DS>©¤âTÊ‹"TpBvìðÓéÊ•EcZ^ž–)™Ýºu§Ní2©"Ÿ˜ë‘X¦sj¼#5ÒWˆhXð3¥–},Á·tÉ’%{¸ à€†ÔK8½Ióq 0‰/FLã‹¿n†€!IИ"T|jÔho zòé£vkLSˆšÕråR¢/^+%(++1E[ŠÆµjÕr•É¡­Y.#@fü~ýúEjÏû!| {üC}¥ª¥K—úÝš7Õ—ÙŒlŒzƒ¦òJ~W/higΜ©¥Mý6¯‘õŸí5þ1ÿ9°†€!`dŠSˆ)i¢ ¦ÕpRýpVÒCaÒ_±b½šïјâ_úë¯óÄŒ_?ÜÜÞÇ>}ú8|M[·n­fyÈçÏ?ÿ¬)£ ‘áü¬&L’²ƒÔÄß«W/%³gžy¦ÎšÒ¢ø¢nß¾=Õ*0ãSJ“Âì{öÙguÇŽSµ³‰…€¥‹J¬óa³1 CÀˆ@¥J»ë£×­[UÊcBL·hkR!^–’Fª¬ÔVOñU$€•hðŸ%ê»­¶·ñC(‘÷W^y¥’S?“&Mš¸Ñ£G‹«Å!~“ú”vëÖMƒ˜*W®ì{ì1Ô§Aûöí5I? ö)[ê¿[4¤çŸ¾nƒÀ¢¡Å=Àû°F7ËŸI|0b_ümtCÀ0 L"@”=Ió1ÛãoZ¾|I©ö´Uö‰õÙì&¦«•làú矫”Ìâ—zÜqµý‹/ÓE‹9ò‘òÚ¸qã4˪’ƒ”$úDç“Þ êåý÷ßwÏ?ÿ¼6A>½`Êÿé§ŸT›ºnÝ:׬Y3ñ;Ny¸¡½˜ñí‡îßÚk0bGðmhCÀ0 ¬!P²dñˆïhÙ²¥$*?¥ªS˜˜bÞ'øS>©¥j×®ä¦M[¢DßS¶7o^+k[ë¡þæÍÛÝÒ¥ë$Qû>îµ×F¸óÎ;\ÒGý-eI7¸“OnªÉù³;~fŽ#mÕ§ŸNPBJàÕQGíë^yå2wƹ¢EÍ{.3Z›Â€ÓÂ}þmõ†€!`$ ë×§”ݹ3%à bêMùϽ÷® ©¢Ø^ªT1·zõF‡Oj•*åÜ”)‹Ý5ל˜gk%Ÿêÿþ7JÉ0ólßþP÷Ì3© Až j#¦ð¤Ú’ CÀ(ˆxéŽ)Sr—ì„,_¾Nò”Ö×¼¥)Pë4àiΜ•êgúûï ]›6MsH(æúþýr;wþ㮸â8wÝu­]µjår},ëÐ( 1- gÙÖh†@@`ãÆ­y_T˲œ·©ß(ï—/ß yJ+¸Ù³WH:¨½Õ¿”€§_ýSj«×TßÒòåS*FÑ>§‚{À«¯ŽP-iñâEÝÕW·r]º´r>+§ýÛñ†@aEÀˆia=ó¶nCÀ0’ ´“%KWó/WV‹Éþ•W~P“=Iüo½µ­»òÊã5¡® `…#¦…ü `Ë7 C Yظq‹øŽ×”QÌÙ'ÏÇ¿_R’êOš´Èuî|‚ Õ«WÅÕ¯_UŸÚ·?$Gˤÿ·Þíž{îk1Ùïr·ÜÒVµ¤ÌÇÄ0r#¦¹‡¥õd†€!‡`ʇyð-)é¡öab‡8b^Ÿûl'×±ã‘ù¼JÎ(ÜXŠÂ}þmõ†€!`$ DåS=©xñbд^+?‘"Š Kí-&÷’p¿ˆ«^½¼øšnrýµÉþ™Zß¼y«¥JÔ‹î¶ÛÞw:ê~þùn#¥™Bι‹€iLsOëÍ0 C À”_µj9MÍ„)[¶¤ú–bÞ'r~Á‚ÕðTZ jÔ¨¤)£2šÎë¯ÿä{lˆ&â6¬‡kÑ"kƒg4?Ûo&Œ˜¦³mk5 C ‰@cJE%ò‡Ré íèªUuEDÌãW:mÚΧ Ó]wŸîjI3uË-ƒ4÷i§J´ý)Y2û§Û¹í4 l!`Ä4[°ÙA†€!`ùÀúõ›Õ·´R¥2ná¿$UTñ']*dµ¼>-Rm*DuË–íB^KŠéá1§øã3]×®ïhÚ§/¿¼EjÚ×ÙÖv†@þ!`>¦ù‡µd†€!M¶nÝá¶mÛ©•+—ý7¿º›8qVzš¹)S‘ú©:°†€!o1Í7¨m CÀ0 ì"!%‡é¶m;Üöí»´r™6lXÝÍšµÜmÚ´U’â;W·n•T•žÖ­Û,¹L_rhL¿øâæ=4©Ùgyƒ€?å ®Ö«!`†@."@´=ùI‘uë6i)Ò1cæjj(|NK–,.{ör7ßÜV«6Ñ2Ц”ŠQŸ}ÖÍH) ˜ Ž€Ó?A6=CÀ0 §ùJË•+áH¤?þÑ”VsK–¬Õè|ï£I­Zµ¬»à‚”¢hU¯ºj€¦•úàƒ¥tiEƒÑ0’#¦Ip’lІ€!`v–/_¯¤” §ñãçk’}RCAJwíúGµ¤hK‹/ªPõìùFî¿÷ÞõJb ;~¶~C Y0bš,gÊæi†@!F`Ù²õîŸ5Ç/^ü—[½úoW±bi9 ‚@K“^rɱŠÐ€#ݧŸNp¯¾z¹kÞ¼V!FÍ–n$ü”|çÌfl†@¡C`éÒµà´M’æ× ¨?þXªZÒ;wiÐÓ 7œ¬ûÆŽýSr”vwÜqºkݺI\pú¿ÿû?÷öÛoÇelÔÈÎ?ÿ|q›¹ O†2ižÀj†€!`ä&hII²OÓZµ*kB}4¥{I(>O×\ÓJó™^{í@wê©Í%ê”Ü>K}Íœ9Ó 2$KÇXcC Yøê«¯ÜÔ©Sólº¦1Í3h­cCÀ0 Ü@`É’u‘Qsæ¬p%JÓ²£Tˆi—.­Ô¤õÕƒ”¤>÷ÜŹ1lŽú¨^½ºûðÃsÔ‡l$"x`žNˈižÂk†€!`ä¹sWj%K–JOëE[ZDüMSžJ•*¦ÚÑ?ï† ›â>úèF%©9ÓŽ7 ø `¦üøàn£†€!`d´¤%K“”OôU”¤BN=Ýz멙߫קZñ©eËF™ìÕš†@""`ÓD<+6'CÀ0 ³f­P-)åFñ'ݱc«hLhFK¹ë®;IþºêÕË»»ï>+rŒ½1 äDÀˆirž7›µ!`…‰¸-[¶‹‡¦Œò ïÕë,÷ý÷ÓÝW_Mu|“jSý>{5 äDÀLùÉyÞlÖyŒÀ AVØŸaÌß}öÙ'-yÛ=ÉógÎ\&¿Ã"ú[,R„ï£sUª”s;éî¿ÿ3÷ŸÿáÌ„Ÿýó@j«®]»f¿ƒLI$÷é§ŸîÞzë­T­wìØ¡ÛGŒ‘j{¬üñ‡;çœs\:u×é[n¹Åýøã±š§ÚNz£Ï>û,Õ¶x}èß¿¿k×®”ÖÝÛí·ß~î¼óΓ‡¬ï3=;wJŠ¿"í¯¸â y8û8ò9™ß˜Æ4™ÏžÍ=OèÔ©“^,òtëÜÈC†î¾üòË<!ﻞ1c¹˜îwIý¢5Ý¡~¥’%Ê=ýô’@„¦º÷Þ³ó~"xÒ[=:OW¸páBÇ÷‘qN9åIù•Rø`×®]ºýòË/Ïp|Òƒ‘?“à·ë¯¿^Ü7ª»÷Þ{Ͻøâ‹ø6LÒ„šncÆŒqÇ›R„!݆y¼óæ›ov}ûöugžy¦ûlP¶lÙ@•#¹@’¶"é[T fðફ®Ò}÷ÜsOp衇êûK.¹$hÚ´iP¥J•@§Ó¹sgÝ÷ùçŸëçV­ZEöÑ–y!ß~û­î³¼~¾öÚkÑjêû~ýúé¾ê«hòuû–-[ôó AƒôóO?ý¤ëfBhõx1që>qж¬9,Ó¦M“ïÄ4Ý´zõê@Ȩ¶â© Þxã ÝƬ¼Ä=Gÿü>!øhmõ8!ÏÚæ±Ç‹ ñ¢m¬ 9oôÃùs!zÚž5ÈCFÀøüU¬X1²ï / jÔ¨!ßÛ­‘¾ý!²Ú×k¯½¤‡5xða\Ö2oÞ<ýþ<þøã‘ñùݧ…!sæœ )×céC4µ‘Kz¯B´¾Oy%æc*gÅÄ0 C 1˜0ah›öŠ=Qf´X±"’¼þWw×]g˜€'4uÝ»wWM¦î—_~YMºh÷ð|ýõ×Õ¯òÄOL¥müè£Ô4.$Ä¡…{衇T#(äHÍÛhO1a³½wïÞªEbëfÍš󄣕Ä<.¤Ñ qÓ¿/¾ø"Òí,×Ù³g»5kÖÈy¸K÷¡é½ãŽ;TãˆÓN;M5‘å ¾mÚ´m÷MRbvSx—š¥1écnG3ËÚ[¶lé.»ì2‡fø¬³ÎrMš4Q3>ZRÚ ‰‹h‡éìP­*k`níÛ·wwÞy§j:Ù¿dÉõIEóìqf;ërìX'ëFùßÿþ×ýúë¯ìV¨ÇâçŠ&˜sôóÏ?»+V¨Æñƒ>Ðvখ1Ð@7oÞÜ=òÈ#ºÜ>øàˆÆ;¥ç”ÿh]…Ⱥ?ÿü3²9-¬O:é¤Èw€¹ÊM¤=Zíô0¤!ØÜpà ºN\ ¾þúkÕ¼F:‰ó#¦q>6¼!`†@ÚüþûB¹ynRÌ¡ýú]á}tˆ˜©kºsÏ=,í“p+¤7~“OŠh·ÔœÜ¶m[)B.½ôRéÄ”+ÚAGÐh9Õ$ ‰0`€#˜ 35®ÇsŒûä“O¦y¯_|±¼X0az¾è¢‹Ôü,ZU·ï¾û¦ 0ºï¾û\éÒ¥]£Fû™ÂgÑÚEˆ>¢Õ}á>æQ n óÅ4ÿ(&\ºuë¦d×ÌÏ'NŒøcB¸i+ÚÌQM£º`A`!ë¢iv¢ÁVó5cAr!qÆJ®Ùޝ*n `ˆ‰[4«’ެœú¿²{ð£šÏñ …8ÓבG!wï¼óŽšë!î[Aâ—.]ª}@ÆÃ&Ýøï?H,„×›ýÙ ëðqá÷aH[Î'A` AE˜k¢ˆÓD96CÀ0 T¼óÎ/©>ßzk[G0é¡ ZÎRüF½à—Ùñ¾•d…³©îÆÿBááÿÍsÏ=W·AH *Âï’W-šF9äˆ/(¡qŒ%—°@–½O#Ûñwõ±ôÁ>´´Þ–Ï^ ×A¿RúïСƒþù{/~.|æ@þ½„Ïd @#Ëý´%?–¶ÿSüciã%«Xg„!ýrμxÿ_ÆM1bš(gÂæaänDÞŒ”ƒn2<Ó&8ÄoJþ1Qqó+¨‚†í7S.è'Ÿ|²j`¸ fV0KúˆY4ZhÆL2F`èÐÉ‘FåË—òÑN4rCEkµŸÃ¤_$L€Ò[¿;‚dÂŒ)E³‡Ù0‘ï|ß GãÇWG A:a ›‹ÃÛyïµ{¼÷Xht½„÷cÊïóm2z½í¶Û48KüP#MÅ÷RßOž¼û¼C<‘b®Æ!: -'‘ú˜ÓÑ4B¢1µ{;v¬c O¼báì‰<.þÈùðx±Žõcñ GKŒ&’@£_~ùÅuÔQ‘&\?Ðj¦• EÒjyÉ*ÖaH¿™Y‡?¯FLãºiä2äñKïF“ÃqáG“&º§Ÿ~Z}§ˆ,ÅÄU…4è¡7x Ñ(Z.üøÑáïFtkfB ‰@ ñø…™¤ÀŒËĺ9ÒhРkݨQ³Å§o–ø žÙ^ßð{C»&ÁFjš4‚h!ShW1E£ÕCëç]ðÇ仇odz¦[È ¿s|4{õê¥U¤6ò‚¶ó4ßiæÀo!í]sçÎÕÏDÊß}÷Ýú>ús“€(ÕRú}\_ÐJò°;uêT³?fr´ˆr´šøÒB´Y 8`†Çý¨<Ø}úé§zMÄdÍo.£¨s|QY „Ÿu3ú‚ägUxhåa€WÒ:1ÿ`ʃ=®¬ 7.iÜ,¨×–°V7Ö^Œ‹ƒ×¦3ÏŒ0ÌêZâÒ>¯¢ª¬_C ™ÈjT>Q©’š$¡`Ô¨Q‘ˆKyÚ ˆÐ”‹›ÂAĨ˜ZRA#Á@R‘D¶qÌ7ß|ðyâ×ÈNq\×ÍDbÊWßaÙ§Oý,šÝF;yZ´a£h<¹¡r‘ DÓÈDÛúB´¹ØûºÚ"¢ÐS1CEöóFœç±1¢‰lI툶1U´gfq¢£ôæÊºY?Â|ˆHF˜?‘±rc Ä|¦ÛÂÿØ.šŠ@R©„7ëšåÈÍ02_¢få&qÄznÃ͚Ŝ¨›Ó›«˜5úõ©§žÒ~›ï^Á+üÝ`|ÖÈ~IG£ç‹ïXV$™£ò/¾øUÂ'"¿]»§uÙgõ\ÀöD—¬Få‹öP#Éýº¢'rœèk/|ÿ‰šs¼~?üv üÑHv .„1òûSw$‚\”4@8*_4Ú QùBµ¾ãâ×øèt).~–úý—ƒ@Vä÷•Ýu×Bд_ ÞÒcü\ý«øêv!—º‰>$…•n#ò\,‘ˆ{QÓ527??yPÄ@çz*ÁAºO4ƒÁ 'œ ×v‚×3Ï<£íøGô;Qûˆh†úñý’€kª—èc…,`êE½±¬èGypÕè}æ/Úä@HgVL¥û¹¶ ïÇâ•yð{õ’Ö¬—óȱò  kóQùéaý]ã~@C‡õCgøš×Qù0mCÀˆB «Ä4³©DÄßHÓ|xòȰ¡´nÝZo0\ÜD“H€‚^ÈH±‚ˆI('{½€p±ó71ñÄÔ_Ìb¥sI/ ã„Ó»ð™›ikÒ¡ˆË€¾ÿã‚.@|»t37GæÈ“©[¸Y ™Å‰¶éÍÕ§U3›Ž!š%Ù¤Aá"ËM€”,AWJV¹AˆÉSÛKÕ˜ÀüX)vDs¢}ñ-¢ Ñt;œ;$½¹ú›˜pã ] dá¼rîÙּІJ÷1wÖ"¾n‘´.¤Þ‰~0ÐÆ1þ%31 §‡Ú¼y[ ~¥JT'MJý`céqÝM,s{2<¬@”ÄZ±G×<ôð0ÌCr´@føÞóÐ&æâHº¨p;¾Ë|çxÈ“z„ØÒÆ__Ø+JøÐ\{ÏÃ1‘<8³ÖháAP¢å®ií§=ûÙ™‡<ÐóÛ̉pÂþbâßãRˆ‚@´ž‘b?ff°æá5üëå5# Ãm³ú>¯‰©™òåÊobä¢ÝÊ0•Nûø÷`fB ¢Ó&$Êöa’Ç”„©O䢡¾UrCQS‘›ÑÁ ÑóO+ňoC?¤FÁ  &:½ f9Ì€˜ñ—4'ÑBf0ÌO¢-ÖJ&øQ²œüI>9ÐKfpòmÓ›+m0ëB Â•W^©‘ÂÃ\ñëÂ7Ôã‡ùLnhš`3&BpÇJ±ÃÜ‘£>Z_Ãÿ8‡˜ÌÂî±æ v³PŠ€°p~1ãþhtHþ\÷Ã?DšÉÍG£¯q×À$é¿;‘ðÍ+¯ü‰Ä¿ÿþ³Å﮸{ì±!E}ø7×-€+Îü’0]ß~ûíúä’¤_´„‘À©p’é­ž‘Y›cøÎ’¾È›ŒÃýðžk.*y!øYâ;J“<¬í1‰ïåáN¯Giíç®Ù™× "ïÉá<„ƒ°ð}Å8,ø “!À—Àï ¿…5™'-ÉôŽI”m{žñD™™ÍÃH22“JBу„"*n8ïsñðpÓ9r¤F­BXØF ¤‘ü¤@‰å·å!Ã/)­t.ìO/Ltz—Þ’ÎÒ—Ù@ÖÃÅ–‘+$¯än?Ç‚ŽA¬õáIpׄì/ß/¹5ÃÑß~;d ¢”–@‚ m\“LòÂŒµÓ¼ýnYï…̦S™jV!Hà™C@âk´€*ž°Å·K5~¤@ kîÄŒ—.²žèЈ›cy‰Ö¶2N8Œo~emh)ÐèF ZG€£ù%U iiÂZ Ž…8zÉ,N´Ïh®htR½ hA}º°“½–H$JB,f{7dr €+ÅmHó¹4—ä’ ßØ3škt}Î+š¡°\Æ+L>xØÓe¸y{?`ÀÏÿ>í%ß-Zâ’‹r˜¤:ZtòFC—L >úè£NÜK\»vír4mÌÒÊ1ÊC-¿´äøãׇºðYZíl[Î(ÌX1Íù÷Çz0ÌjˆôDSG%È Ÿ*Œ@´ˆFçx­úBd(5š1Á‘ÆK؄췅_9ÞKt:—ð¾´RÁøã¢_!ÎR O‰^x±Ô°&…¤Šùc>÷B„¯øwúYÒ¶dv®>Š•œ>Õ ãJÀ‘j¸‘ãN€YíV´Î饨AC‰Æ”(çhAŒ+f/™«oyç¡ œ--Þ0^a’ï-ȯ÷Ý÷‰.¯S§£ŸrâÞð“¸9ü­©¢ òºmm†€!‚€Sû&ùŒ¦aÌÛh&0ÑúœuRëYMúøibò'y3Ä?"4¨o¾ù¦£ ¾ˆøE¦'ôV:Ž˜ÅJÞ…R~Þ§ÒGÊ\ ÈÁ‡v”9‘Ž…45˜ I)ƒ‰›ù1>9ñ—Ä·6;’Þ\Ãý¡­Ä4 ‰¤j )T˜ó?Ÿ;’߬Y3õË¢Nz)vІ’öùçŸ×äÝHH/ùbѾbVÇôî%½¹¢™åa§ŒñÇ`ÆÇý³,ûÐè"á܉¾max=ÿü—䡯©Æý™g:Éwéo÷ ßHuŸ“ä7Q¡0@`k4 =Å =€! DkKù½-< ÄæÝwßU‚iA0‡Cô0á QÅtNBiL¹˜ÝÈ;ˆ#‚Ã|X+¬YÃç}ˆ-Ä—\£^ q”ùƒàÒ³µ©4¸ ª¾›|F«+éT3ˆ6׃®]»FÆgLȾ›¤M$¾Ÿô‹ÙRêÊGc’N±æÖ22.¦EðDƒ‰+BÇ~¨¸Pó 4‘àM9!ÓÌ—ýX`O¤!ºàù”¼­˜¢õ†ìúsÇöXseÁa<,@„ÃçŠ~Ñâc –ôGnG|s!øÑ’^Ñí“éóöí;ä'Åö»ïnש÷éó¥ñ”’¢m’i)6WCÀÈ{‘& ÇÛ¡†@DçxÒòÁÊ|Ce‚t IaAÛ‡ß&Qßa²ÉOGÈ „ŠOIѸÒ‰œÑÆJ:ÕhÒ&ì£!Æ\ ÁdlÖ+ê6<§ð{|#ÑþáNÍh4Ñ©‚HCÖÂãG·KïsvæŠO(ëâ" ‰ô¶qãÆiï°.û™/ÑñZ_ÒÇ+xÒ/ZM4³øz†%3sÅ€ó&³ôÁyO4Ìhs£û“Õ÷ø,óPÂØ‰. ô|wI0Zeqk¹O4û „Ð?/Éà/¿áC}ú©æ‡ ‰ä÷U BªùðaË–bò0YBÖþ‘ïÛÖ|ц(lkpË-·¤Rxä&»¯Ú¹Ù«õe1@+Jš&4™Ñ¤”ƒÒÚÆv´e=r™‘ø¶iµƒ°ùÀ¡´ö§· ²ŒF/=!¢4V“ôŽKk_Væš^[öñ0–0WRìÄÈ$>´Izããž‘–p^ÃATiµ)èÛn¼ñm%¥¬óûïï‹$µÖ‡’‰`ÿ¤#¥¬¾p¥$¶å…lÛVLb‹+My-.VŠ"r­Äõa³Ó¼ÝúT˘·ÞåFLóUëÓH|)±—m,¦kÌïø¨†%£#¤‚!à)Äæš g)çs\¼x­¸LÔŽ®½¶µšîŸzj¸dZX-ps>@z Ó¹)K—®ÿéE,·H_y¿ví&ÑŒ‘|™5äÁª®ø=ד¿ºbɨ%–¢¹9¼õeäfÊÏ7¨m dB ¯MùÉ„…Í5yHS~:·iz¨’%‹‹¿í£âR±DLø/¸Þ½;¸Îck±“÷¬d<óU«6FÈçï¿/Ô÷«WoTמýö«! Ð-jk‚Œ{µ†@r `Óä8O6KCÀ0 'œðX¤xÃ;ï\#æü’&ím l\hHé_mJ¥EºlÙ:uÝiРšj@oºédñ®§$´lÙ’î{` 2Â1 £aï CÀ0ò~rsç¦eµmÛ\2=4–ô\ÅÕd»¤èº8_æßƒlذ5Š„.”dé4êÔ©¢ä-1šPJ¯V¨P*¿§hãqGÀˆiÜOM ‘øçŸ@ªÍÌ’‚*‰4-›‹!P X³f³äºýL×T¢D1Éßz‘ä ýN*‹M•<±7HbýòI¿^ö”)‹7Å£ ?µfa¨Y³’’Ï‹/>&BB«TI»ômÒa 0²ˆ€ù˜f0k^0˜:u‰Ô¯¯A+WnÀy|1¸`.ÖVU¨ ]W¢¥‹ªWï6¼çD t½šð;w~CÒÏœ“”&ü­[wHų%¿ÐI“Š6x•º)T«V^É'ZPÌñ¼â]¨~D¶Ø|EÀ4¦ù · –Håúé§”ΚµÜ5lX]r—¶tÿùÏ’³òWIÃrI"M׿bd Š5$’{ìÃRzÕUÇkþ…¾ìÐ&C°¹V§O_ú/ M Lš9s¹XYþ‘‚e•xžqÆAjЇ„Öª•:sF" ›‹!ˆ˜Æ4ÏŠÍ)Ïàæ¹ð­·F»‘#gɤŒD*•wŽp‡¶»ž{žMÀ:6 1ä&}ç_}÷­.Õ·®”Šg/Kú´†šªH‘½ ®3f,˜ãIÕ)ݱc—jü@!Ÿþ¯^½ª 5›Œ!Œ1MƳfsÎ2+VlP2:hÐG*–“On*%*qmÚ4“ê@E²ÜŸ`YCà›o¦¹+®è¯•*U\~WKþ;®qã}¤œìµqOy„ùìÙ+R™ãÿøc©ÃL_¦LI)HQû_šbއX›†@î#`Ä4÷1µ4¯¿þ“ûâ‹ß$}5^zé±Zö0¦iS1 4k×n–TG½4ð‡JW}û^"yJK±½•”–.]"ß×(¾ >aý”)K$#À6%ÈÍ›{𢠅<3oCÀÈ{Œ˜æ=Æ6B1b†{á…oݘ1s¥¶ymwíµ'J ùäN¹UC‰Ãé°! 9uëÞ¦>˜Àнû©ú°xøáõÕ|Ÿ¤táÂ5bŽ÷“j´üÆ[%ȱ˜”®1ÅS9©I“ZM©Ÿ2[¾!7Œ˜Æ z8/2d’RÒ´œtRwÓMm¤>z£¼Êú4 L дé=nýú”2¸§ÖÂ}ÿýt©#°æ*Í‹Å%KÖý«M L"MÓºu›Åe§¨”îÜGI¨Ž§tg^Ì!°XCÀˆ€ÓÀØæäB`øð©îÉ'‡IIÃ厈ØnÝÚˆOXäZ„ÍÖ(`´mû¤›6m©®ªY³ZRnt©»õÖSÝwœž++%µÄ“?ò…Nž¼ØùÒ¸ ø $4¡Í›×Š»k®,Ú:1 8FL ø .èË#~Ÿ>_ªi-Ìí··Ó`Š‚¾n[Ÿ!èÜxã[’ø7&Ù/¶mÛåžy¦“dÁ8$[S§tg Ý­ ]¾|½ú~6l˜Rº å¡´L™ü÷[ÍÖÂì CÀH…€ÓTp؇dA`ÆŒeþÏýðÃtG9Ã;î8C5"É2›§!Pxá…oÜc Õ%bBG{ٯߕúš™u¯_¿%”ä5¢‹§”î¬[·ŠÏz’¬>%0‰”MåË'V®Ö̬ÑÚ†@Ú1MÛš Ýûè£C¤Z̉ò­íî¿¿ƒ;öØýt¶6-C ð!0tè$wõÕ# 'i~¯^gÇ4£oÚ´M-ÞÏ+¥;’Ó§˜ãëEÖ£}51 ‚‹€Ó‚{n ÔÊ‚ ´2c””IÛ«×YZ¡©@-Òc$9“'/uíÚ=©«(Q¢¨{ûíkÝ 'ìYÕ–-”î\ñ %UÓœ9+5e:½)Þû†ZéÎtöÆ(41-4§:yŠÙþ¶Û>P­J—.'¸ž=Û¹²eK&ï‚læ†@Dàí·qwÞù¡®¬J•²nÔ¨{ܼyä õiš9JÿRM‰ý»«&¥ø…Ö¬Y±¢bK2 ¬"`Ä4«ˆYû|C€šÔÏ=÷µ{é¥ïÔœ÷ÔSJº—ù6¾ d#°té:wÍ5Ýo¿-ÐÆeË–pûî»·”ò\¦¥;+T("¡)~¡ø‰š†€!FLÓBŶÅñãç‹–ô}ÇMï®»ÎtW]u¼U^‰ûY± ÎQºÍç˜1º÷ß«– \mjÝuÔ¾"J¾P"æM CÀÈ,Å2ÛÐÚùÀŽ»4éË/ÿàN<ñ rº^ʇVÊ¡m C Ð"±ŒUrP_¶³ü”)‹¾¢¾½'¥ø…Ú=²½Ð‚i 7 !`Ä4GðÙÁ¹‰‰¸o¾ù]GùÀÇïè.¹ä˜ÜìÞú2 (p—éÙó‹…Õ¢@IDATwúéêß‚k"ÉêSHèb÷÷ß)¥;8 †–ð,R¤ˆFØó‰¿(rüñ݇ÞÕ»}4 C ë˜)?ë˜Ùy€ÀË//dt¨;üðZªÐ|Ðòdë2© ¡©X½úo÷ÀƒÝܹ+Ä4Þ#WÖ²bÅîÒ“&-tøpoذ%Ò7fùC­ç|ð\)TQÛ•,YÌQsþõ×tï¼ó‹~>å”fnĈŽß¬—¾}/•´m‡ûöšãÆ“‡€”±tšÙ.C á¨]»¶kÙ²e¾ÍËLùùµ À?ÌPRJÕ–/¾¸E54Ñmì³!PXÀ,þÆ?‹å`ˆÛºu‡+Zt/Ñbþ#Ì"Y‚À—îD#êS5­X‘Rºsß}«;ÔoÚ´U•dBð¥mƒÕ´æ|ÿþ?¹á總÷®àºvm#öKÝGýšj#FÜiY2R!’þ‡¾}û É'ýF¶×H@:tè å…?Ï·™1Í7¨m 7CÌö/¾ø;ï¼Ã¥táù–—Ôƒc¯…1cæºÛoÿPó~z²ÈëôéKµî{,P0½{ò‰&” ¥Å‹×józõªêÃÞ5×´’òõTJúµ×^¡V ´äû†Ÿ|ònåÊ êRóÜs»5k6¹§ž*Dv»oæJ—.!ã©~ð´ACî“n£F¤@Â53C4!z³³Ï>[Imï»ï>%EÇwœ’ÞN8A®ßwøn"¯§6mÚ(±=í´Ó䡪žûôÓOu?¾ø˜’kÔ¨!NVó{—.]"Ç~ÿý÷òSÆ9R·±ŽOO¼Ý“×Y³f)†}ôÑ®N:j®¦M›6é6æxÖYg)~ì±Ç"Ý÷êÕK ÄÒü믩+˜Eþû†6T:‚„B.*vëÖ­Uƒ h81™cJGpàuò¹…l£á„à"÷ß¿ü®ÿ£ïùG‰Z.¦L™ÙÆ›#}ºú4nÙ²EÊ꾡˜Â´‹,¯e„Ô¡! Ë7ß|ã>üðCý{úé§%h¶‹’©ÓO?]›]yå•¢ý/-•Ц«æÂwÑE)Áîß¿¿ûÍÖ}à¡ïÓ§VˆŸñ']±b…®—ud$8dΜ9ºfæƒÏ-šWæ0iÒ$÷ðÃ+!gîÚPæ…/(Dm'ZVüe™CV„¹¢mÅ¥!ü ðßÿþWŠh\ùëÙ³gºÝâg:hÐ uKàܼú꫎>2"çévš;Í”Ÿ ä!¨FÓ¹óšüÝw¯•dゼ\[›!T¨PJnÄÛö˜+fÉ%ŠˆV©Œh¿*¹ýö«&{‹–«¦˜xk‹6¨ª˜[³Gf÷Ì6äÈÜÍ7߬ý@>ñûìÑ£‡ä./YNÚF´–ˆ"³ñˆ#DQð¦ù`zF›ŠÖ”cp€ô@PÐdB¤°ÁϲK®¿þú¹¼çž{tl´ŠšXˆ"rÕUWi?Ì•¬hnÃZ:ü$£…à!æ€@ð0ýŸþùªáœ/AA¿üò‹cLæ1<õÔS•láOÉÚÑsÌ!C$›Ä4%ÚB>CÎ|ðAí,Ÿxâ‰èá÷øÜ¤IÝF3ŒæñœsÎQ¢Ê4ĸ ±Ž´«œÈòŸþ©DÞ›ò£Ûfõ3¦Ü¼ìØ‘âî?G¿¾÷Þ{î°ÃS÷Èô¡‡*”åÔ_­l¢ŠÓD=3I0/|á.ºèU͵øÙgݬ’SÏïpDg^M%7¢X¹¹àÅÍ5³‚VÁ ‡I¯k×®j:ÌLá1Ñ ùV|îòCˆ0Æç/–|öÙgJ"bíÏêöµk7‹/Z7fÌ·î½÷^âP[ó{¹ôú7nž€mb¶L¹9§×Ööå-Þ‘Q “˜ˆýï†séÓaÆDÎ÷„ Ó=þ¥o¿ý¶’:4~,Ü8Âó³'„Œ‘ž‰“³ÌÝD‰’b¿ß§ 2øô>¦/H0Ú`ÈZPmßÿþ÷¿HO˜ó!£¿Ž;J@áõm ûÇBÐñ« ¯‘5g$Þ„y+„Hý°0~ZòÉ'Ÿ8Ü^Èd,A‹™Á6-ÓX} 1ÆG×/•*UŠøÍúm‰öj¦üD;#I2¢ŠÏ9çI³]kk[yÑøž8.Þ\@!`y)>Šó\|‰b=âˆ#2 J@ôE>½9£åà¦Ê-nZq´&™ñ¿¢ïð˜áÖôÆÍÍ}h¾Ðñ‡)‘ ÿ™×ÌƬ̧NÊBLꙤùƒkÖLÿfD…©GùR4*÷ëïzĈ™YÎÚæ™ý^˜„Ö‡7ÌøR4c˜“!n\H?i‘=Ê¢–hK–.]Ù5jÔ(}ïÍóá}\ƒðµôû"eò ÄÚ›¨q È A«ŠkƒAÒHå D³‰™m©?–cÐBÃÖ2²þô"Éu¥AƒŠ\ç¼ò㜅{D´@ÆÑì¢$@ó‹¦×nÚr>y8ð’žë„o““W°CKîçÍkß¾}•Èç¤ß¼>Öˆi^#\û§fw‡/ÈÅ „ûüó›ÅLP¹®2ëK"º’§Süµˆ€%úáâC<¯ \ ÂÂEŒ'~/óí·ßîqãà‹#ýŒ3´)-|¡c#ŸñQBh‡/Y¸ &.ˆ,f n0ÑG.Ìh"¼°Ž°ÉÈG±rcÀT„ã>ù^‰bõŽ%(s^ø¦ÅÚÙÎÍ+¼=­¶ôñÝwßé…?9òÊ¢ºýöÛuMcpb­é­9zL"†¹y£}ò¹:t¨ÞPÃk`;Z nêøç…Ï‘?6­×0^ì‡PsCà- 7;ÿ™WMMÛðM”Ïy%ä)}þùo$HãañG|RÒóŒ,7È€Ýò ó¼ì“6¿®þÁBEð ß1¾×˜rÑ¢¢5ƒ°ðôÚk¯éw2†ù9–ðʵó=锸 D Šø2ò[ƒ(ò{<óÌ3uæv.!™ù>ï¾ûn}ëŸøç:…6–‡`Ö€•kkÂo”ß ¿´¤¬‹ù{w~ƒ¸pÝ¥-ׂ¢üµÑÍõ-°ãºÀu…ë[„€*®‰Š±v—µá«›–0H?¯ÿ÷ÿ'9„G®¿7VòÌXâbKX ákw¬¶±¶³~¾ŒÇ¹Áו‡®g -òe512À”)‹ƒ-zgŸý\°~ý–L—Œ %Ê3ò•é©Ó^|¹HöIÈÅ?°@ž’õ³¤éäÂÈ“ Z@´‘¾åb´nÝ:m^ Á\”ñÿ DKHÒfm'ä5HOí‹ã9æ}/„*Ó“¾— s Oóú¾U«V‘¹4mÚ42¬ýH^¼€Ï¡Ù/¦æÈ\ÄW-S\ä³Î@.ô³ø}¢ˆìóo$I¶Ž)UÝ$7í›5ƒ¸°6úñx0$V[öIrï@¢}!Ê|L%~ÍrcMwÍÑc Q×9ÉMYû“„Ûz>Àƒ¹IàB qÝÇ9•x 7À@ÒÓèqþ|¤šŒ|`ŽBÔÎ¥øïEïŽ|È6ò9ú<Ôr ä&šê;Ý.£Ï¢ Ä웪يëƒ×_ÿQÖôTP³æ­Aݺ·é+ïý_ýú=Iù–ê8ûs8ïB2Ý¿)¾‹^ÄŸ1-¤ÿH‘~'ýy€Ôß´Fý­ùí|¿Å´¯ßa¾ÇB´Ú"ò`ù=ʃZ ZÂ@|DuŸ<Àéw\Ó„ÔF~\?øž"\O$+€ŽÍoëß]/BŒôw3bÄÝ$°7}/ìºO¢Û}s}"¨×@ ~ÒÏüÖ… j[Æàw)ÚHÝ'ÁGsçšÈ:…@jÿÌ‘ÙÈq\KÄW7ð×;qˆì£_®Wà#.z¬ÿ'¤]ñ£ \D¡»…Ðê6!ÑúY‚•/æÃù^½ŽsMrˆ–WÛs}kú ³ÞxÏ5áÚÇg°d¼%€î‹þ¾¦‰Æ6¿Rm" €@|zõXŽ ‹><ÝÏœ_qH·Mnïä)ÊÄÈ¿ÿ¾0hÒä® S§WñAËÔ1ÉÜ(;Ä” L1ûbJÓ h%yJ× 6$ B Éáb‡ˆùG?C$>øà½ˆ@"ESÈ“~ Á <}«}p¡Íl Á Ú61•`9O›õBÇ…›#Â…†‹”h8ôÆ ŽÏòd¯ûÅ܈ÖAßóO´}‘ u,b*ZíC"kÑ2êÍŽõAFEc¢fyj×>™—¿ÐeÔ–›!D=-¡on´`äÉx¬5‡Ç _Äþùg·ŠèܸiŠ)N?󀤋ùOo*}I;“j:¢A n½õÖ@´<ú0!Ú*}PHÕ(ô!#b*Ú %ëâæ¸‰†#_Ö›ñÄ”È÷Þ+7¨¾A­Z݃:uzè«'¢Ñ¯FL³‚ræÛf•˜f¾ç”–|? ¥¢…ÛãP1s¢ñD;¸Ç>Ñbî ƒAOLà !¦\/Dû¨mÃû¸žH`P Ê@¬9Òn“ï}ÿ<üò>,|æ¡ßn®{@/¼ç8Ñ>úMY~…xrí-f†Ç‚7×=/\ã=‘åZNÌ1#á^‘“9ûþÅŸXïK(7²*ñ ¦ü$wd“Œ˜0aDm¾*þ2ûj5§%Šf|P!l!7'š@]9¹å‰9R=.¦wÌ<˜Ñ0¯à‹DÀþ“D¡bŠÂ s53˜z÷î­Ûð#Õ ¦&sæ³X±ø^áÃH¤ì»ï¾iš^mtÔ,ãg$á(VðÇblÌߘßD{¦<£¶˜ø1;¦%˜à0±Ñ·—ôÖìÛ„_Áÿ<*|!`Eô-f=/œr "œ#Ü pu{|õð##= fBRøä45ëÅä†f8¢« nÁ\É\ð·xáç¼uë1¹®—sÐVŸîQ3.U¤ä¦$gpñôeôè9âš±;Ð$ýÖ¶73,YRJ—²Wì £þù¾âŠ‚Ÿ¥OH>Ó89JÓ¾Wအ´ÚømüVøKK¸†e%0'­>ÒÛ–^ÿìónôÁµ‡?/¸Î„Éüö¬¼ò»&‡jf¼½;í¹Îyáú$óÛÓzå^‘"Ø{$ñÏ~óª#¦y…lêwìØ?Ågéu¹ù6?´+Å—ÇHi¬Ó¾øá#„O‘.HDžB¹ùðY¯‰À.øáËÅÁ=¤s¤ŠÖR‰]øÂˆWz¾øáOÉX^rEëûñ¯á(VÖ(DM§âfÅ#-ɨ-ä>ÚÖ÷ÃÍX´D’îh?¿)Õ?zÍ‘F¡7>29Ln9‡Üà½Ðnva‚ÀÈmHÂjò’32·…9ñà_WH1>iâpúÜ×úK>x€Á÷œ‡×ð÷5«+Á—3­A¶ÃD+Ü/>Û¢ý o²÷†@ŽHûn‘£.íà‚„¤ô’Kú¹“Njâ^yår ŒÈàäB>3#8 û”(â{¥7Ž#ñ1DŽ žyæÕžA‚Ðjeë%½ZÚàìïÉ©˜¬SEÉ²Ï 7¢h³K® jN4ø7Š•œ‰_ýµjKÑÒ°?­›ã“ó/½¶$º†˜LF%•° EZ’pû„Ñé­9|¬/®øAöçΗômüvÿ™WRÎ¼š ´ØÌ­4ç5¬© “÷œ74¦$g­ä°LK#Ýw©RÅESZQ‚Z¾-üJ ؘ$ú_%hìOÑ0ï¥ÿ>#EªŸ[¶läz÷Þb&ÍF¶1K\vÙ·’p=K‡dº1iÜrCÒÊËI¿Å¬9‚EéÃbò ‰…‹Af5†ó¯”`/®?Xi^xá…œLËŽ#»m`qœ„ ˜Œ?_’÷“›nSÉ!g¤47ÏQLÆ\!m¾Â éNÐŒq‘梌Æm#ѧhÎ )´!Š“rzBßD¤¢‘E£Bt©—ô¢h££f‰hõå9>£(V´˜hûÐÜUKúLòâ¦Ã£I†@2·ŒÚ… 2ù‰"ÆM€¤àÔª(> ÇZsxLÄ¿ÿˆ®%Z,™%øá‡H™ÁpÛð{4ÙÌ M1Ç æAm+¯Ì1»¾T®A%>­šÁj:d *N´¶;£q*H²ý‹.:Z~ºÊHoÁ¨ƒD9§ä`,V̬ágûó´yx%G)ždúàA1È©OàŸÑ ¸ÖpCÈ"’Õü õoûóј{ 0qâ‚`ÿýÿ+Ñ‹Ä)>kA{t–¤²üDàh8#«ŸRzõâ!Ç‹¤ÑÀg¼ °‘Ë€NÉ7 ÁÞGⳟˆ]^ ~ÂñŸ÷á¨|ßVˆ­dQ8[¦ègvÑJÄŒ¢ GÍÒ>•Ÿ™(Vœü b>yåJp„Õ@4›_ ê!r4£¶Œ/$6R®ýÑ'D›‹Æ’Ý*>ø)ÖšÃc†ƒŸ8˜€4ÑŠF"Ž¥öµž±/úœŠ6fHwÚ!¤±Ÿ9™KŽJ/*Ÿ`9Ÿ„,BÄcu“ávü«áüù«%CÄ×’1á!ȯW/%B¿nÝEåÇB-ûÛó:ø)û3‹ß‘\kÈ@"Ê©&!¥@õwÆï!ðˆÀ+X Iyýí’A…ë ¿C‚¼Æõ‘B‚€¼Eƒßû~9Þ$5ñ~²¨üÔçÀ> “&-Òè{ñ+• ÁÎB‹IV‰iV"Ý $‹ˆØha›$aß#›ˆNɨX.À1 ‹'iDªÒ–ŒaáB“Q´Ü<Â7 üÒÈ_æBth8B8½¶~îܘ¸yHCÍRà·óšÑši=&Û¼0O²)Dcå÷gõ•›^v…c¹YæDæÏ_œpB¯ ZµÓƒW_ý!øî»?)Šó!sÚ´%’‰áÿ‚C¹OIªÓœ Ÿö±FLSãÉ$«ééÒÒq}ãwË5+VŠ;Þiǃ¯ø^kŠ>ñÕ×.9¶µ¤ácؼJžUÝçP¹úTpdàŸö´¦Sh·Åƒ˜š©|£Mv#0sær-3zØaõ%âø* tÚ M®¾Ã$y¾hÖ6öãïèM¹˜Ç3ß6­v¸äe-¦è°¡À‹Ü$ü[}M¯­oHpÑïI¬5Gî':Š6¼/;ïq½È®ääX?fõêÜüù›å÷{€{àÁ~³¾ò"‰~Ù²%% ¥œDøW_ä½å¯ª{öÙ‹%¸j‡ø³Ú­!hö!× \&f÷pe¤ð ‚"Þ—ž NdÂüžZš” ”Ú$a>®:¸ö‰r’ÿ5ÒäpU·шª¿=×]ŽÃ'w„`B‚ Ãe·%Ü—L⇀]}â‡}ÂL%˜N^•2o5,%TŸ*§> ÿËìŠ<å;I\¿G`$KÌÉ‘`žèþ bmFkŽÆ  ^½z£ÎRJN£×*ªñ÷Ý%>µ›õoîÜ•ܲg Ò£ÞWR™u‹>Ü>¹‚€°Ž‰ï7"ZN}M/Å6Hã$ßzJ€"ÕâÈè E¨Åðç>øàƒ$Ö$¾1/þ 3úòåë%ãË®FŠî­·®Iñ„™[AœˆO¯”“µ¥M´z´üñš[3z»ÿL€PA“ŒÖ\ÐÖ›ÑzêÕ«*%#Ë 1ý[šf/Æ•UC ¯ðiÞÈÝœ–† !·0m !7(µéc‰¸=iÀ ø²§jB&4¤^œòBF 2Mâ‹@ö®Xñ³žËüõ×&1¼"inJˆ©ä:W®\ö͹<5ëÎ0²‰Àá‡W–´P[³y´s;™ící@C #¤2žšñ¥Äïõà‰ªG«I1 tÔ®ÒJqvŠM+ä½´´âÏž*už×Èú6öŒ˜ÆÿÄu[¶l×äùÛ¶ít|pƒ«\9Åï&®“²Á CÀ­]»Yò1.rƒÿ&9¿•:¿f~ÏÛ¶ý#?¸ÚµSûóf¶“råJe¶©µ3²…iÑð5•%Í• ù$w/)£ ‘áü¬é¥¸ÃÇ_T ¨J5ÌøTw£ðûž}öYÝ/ÙERµ³‰…€™òë|äëlvîüÇ]}õ@·pá÷Å·HÞÌ ù:¾ fføýI¤¼Ü˜×Èßj}•NŸO~“[¶ìPxVÂ/ôî»wç¡Í·’%‹IÎ×Mb9SÇȨýžû÷M•YNöÄŶä&hD)°A<È©‚?qS¢…LùݺuÓÎ2R{¤}ûöšÃ˜ûü^¼b‹†”ÜÐlƒÀ¢¡Å=Àû°úþyåXþLâ‹À^ä@ˆïlôx!pó̓ܰa”±»Iê ××4v\J~r<à€&’T¾¸”Ý+.>¸GÂ'ì‚lbqE`ÅŠ²nãÆâB8‹éßöí»“Ûs/”Tªbz}SlÑbµilËô$G£rl‘cÎÍéN9.k—ú_¼ÔwÞá™Ï¦€ä¯Õ⃧ΒþQ…g/å-Z¤EEÂ~Ÿ ©¶TƒJ}¢ó8à­òF‡è|JC>ÃÅA›JfÍšåje¶ð8õ=ØKjB')ùòm‰fÊÏ7¨k ÉY(&‰šÊHéžçfÍš¿…¬wMÕ±RƱ†ø)UÍSyù›8ìÙ‹m1v#Pµê!ŸNªa•³ânRJ Ôé‘RÚ”+—¢Aå}f„HäöíkÈÍ’ª¬¤ˆJ=fF}tíúŽhš^–yeÐfÔ¯í7ÒBEéà¢Ii¸­Oq‡f4Z¨”MJiƒÔ—9ÍÍrÁÑãÛçÜCÀLù¹‡eÒô4pàÏR÷þ×·ï%îÄHšyçõDgÏ^á¾újªûæ›in„r‘+%¦¢šÈ_S1ÿìŽÞÌë¹Xÿ©S—H)ÕÔTn›j¦ÏhµäýôÓÿ¸ŒÚ¦µÿ›ozº‹/~U4¨«œTrK«IšÛFž-Ñý·iPd«Vv­H$Û˜çÄwyZ`¦ü$>yÙ™:¤«sç7äÆx†øë´ÉNê˜É“»¡C'¹/¿œ$æžUšp¼mÛæR—¾…öý5SAZ°-&aøàƒq®wïÏÅD¹=]²ˆoÜ~ûUWw›C©ç=´žÔº¯íð#ÍŠlÞ¼Ý]{í@ 2™!)qbkASÜ ° ì%ÚÒ"Cð›8°Kä³½ÉfÊÏ^Ö:1ˆ‡)߈ibœû|™ÅäÉ‹Ägì%w¹'Ÿ¼ _ÆLÄA¦LY,þ2¿ ý]|šþruëVqgžy°;㌃Üá‡×7ç÷D}()å&Nìí*V,½Çq¶!}Œ˜¦íMLâAL³öȘ¸Ù¬2Ñ¿—_Þß}tC¹žŸ‰# V´¡Ÿ>QR‡LÔ¨ç ª¹sÎ9L éAÕ)X‹µÕ$ *”r}úüGJ)«æýß_¤s÷DTiºþúÖR)¬¡î#Šÿ·ßºßOùûøãñJZ)1Š¿8Uþ9¤¾¤Šª¤ÇøøÛ=ðÀ9’¬¼ºDù¢¾­ÑAQ=z´“ˆèÙnäÈYâ¾²’å Vi[ÈqÓ¦w»—_¾\~?‡úníÕ0 \CÀ4¦¹eâv´iÓ6)¿ö¼j@¾Ykd'îlsofh£¾øâ7ÉÏ:N|FçK:¬Š rˆjŒÑ™‰†¹Jï¿óþÖˆöÍåìÙ‹[Iêhc?÷]»þq3f,²º BVgÎ\.æú$¤Â¿D5E«Ê÷¾|ù”ü¤#FÌ·ž7%kG$À©jÕr¢•}P¯XX^|ñ{qu™,Ù(*Hµœ¿…$ïü—Ì:ÉÜÒ=þ¸åƒôç!£WÓ˜f„íODâ¡15bšˆß„\œš—+® 7›…rƒé±‡%‡J˜®FšíÞ}wŒ>|Šš!O?ý@)·z”;á„Æš:f6‘B‹T?>Dü9G h7÷íå]YÂÍ&þÓÕ‰Ѭ.p‹¯Õï?A|˜ÿ;¬¾Ô¸ï¾Ï$§ãßJN»u;ÅÝyç©Æš5k¹{â‰a’ZnФž*%‰ÿ·Dö·hQGòPÞùlob#1}çwb7°=†@‚"СC‡|MeÄ4A¿¹5­¬þkŸ|ÒU5'¹Õo¢õCYU4£ï¾û‹1qDשÓÑ¢!=ÔJ¬&Úɲùd iÓ– IüPr6ÖpO?Ý)SǤ×hÕªBRS´ªþuãÆ­®T©âš||óæmêV@S­Z©]èßlêwßý¡þ°>€ ìÌ™¦7´íƧUŽ C Ù¨]»¶kÙ²e¾MÛˆi¾Aÿ 4ÆõìùAöÃÜØ¿ÿH5Ùsƒ=ÿü#$ó±®I“šù¸hä+VlÈ“ªlXSæÌY©duìØynĈéòŠ n/¢U=üðê»ê] ÆŒ™ëzõúÔýñÇ2YmJt?9R.|*Vo]†@aCÀˆi=ããÆÍs;¾äºv=ÅÝ~{»µJ~“ÞiÀ€ŸÜ¯¿Î“jµ\—.­4˜Éß< Ô‚m1†@>!à#ÿÉã;qâ|uX±b½&çoÚ´¦’TOX!³¤»Ú°!Å´oä4ŸN’ cpŒ˜À¼lÙz×®ÝÓsö€ Ì ©þþûcÝk¯Ðúß§ÖÂ]}u+wÌ1û˜5ÚB DC`É’uJR „°bÒß¾}§æü%]ÕÊ•ÝÔ©‹uÚä@]²$û…mí6CÀÈŒ˜æ?æy:â6©‰Ý¡Ã nëÖnÈ[ D>~phG )õê·» /Äý÷¿g$}°VÒ€o5ò Çâ^xá[­xñ¢Ze rJ TfdÑ¢¿”¤r€°RÁÜI=ê¨óýú–¡#3xZC 0bš g)Æ©]Ý¥ËIUÙ‰ˆÇêÞ{o¬V–yðÁsUc‰¶Ù0’¶mŸMhJžÓ”{i€æ±Çf=ÿ0®>ø§BRqÀüOм½÷®!ªG½¯kÞ¼¶”YCÀH:Œ˜&Ý)K™0š„¶mŸ’œ¥‡ºÇï˜ð«Àå€\¤Ï<ó•3ÝsÏÙîÜsKøyÛ C gàKzè¡÷9 d U«–S_Òwß½6ÇÅ1È©JYbH*ZU\Ö­Û,.M¥T+‹Fõè£÷“ñë©¶6g+±£ C ?0bš(çò;vìríÛ¿àvîÜ%¥9oMøÀ€Ÿžíîºëc­Ötà 'K™Ô6ÎJ‡æò—º3®\ðrd†õêUsk×þí>ù¤«kÑ¢vd{n¼!ÚßU^/^«¹S:¨®jUѨBX+U2?ÕÜÀÛú0r#¦¹h>ô‡oæûïsÇ÷ÐT+ù0d¶†Xµj£{àÁîÓO'H‰ÔÝCëj×¶J0ÙÓ2’Šp- EÒ¨Ñ>ªÝ¤H^Vˆ¢¤j˜¨B\‘¨!ÚÔ}U£ÊkÍšu»ý3 ø"`Ä4¾øgyôdð+åÆóÖ[£%Ú~ˆ«P¡´{ä‘óÄí y–×j†@ÁAÿòãï£)áX¥KÉaJÔý—_Þ"V”ù²XLýø¨bú;v®›2e±Ã U·nu-ðdu¿ýªçË|lCÀH€ÓÔx$ô'üJO=õ)‰b?Ô=ñDbú•N›¶ÔÝ~ûšöåºëZ»îÝO3³}B«lr†@þ!@‘;ïü0RŠœ¥EŠ8ÕZÆ+3¾¯'ÎW¢:fÌŸúž|ªÕª•Wê1Çì§„µY³šJ¦ó-É(œ1M’óNðPûöÏë“}"ú•„ðì³_IÕ¦ï5Úž€¬dJ_Å×à믿mÎú$ùFØ4 ¬#P¦Lwæ™gfýÀ\<â쳟wK—®uË–¥üÖHûD¢}2t\uÕñ¹8RöºâZ‹m*D7´¬XÈ¡ê‰*¹U‹Vmb¹Š€Ó\…3ï:Ã,NTûW_õt‰fbš0aëÑã=¹Ù¬swß}VBÜ\²s&<ð@7uêÔìjÇI@:uÜ¢E‹â:WLèçžÛ×U©RÖýõ×& ¹Œ¿þzªäcîáš6­×ù¥5øôéË„¤ÎýW«:×Qm׃ëÿ/QÝWÈXäZàÙ6C ‹1Í"`ñhþË/s]ÇŽ/kZ¨K.9&SHsLL`?>DêÛt­Zí¯õ°“9¸ bzî¹çŠææÁ4×k dFàÙgŸ•tmÏĘ‚áWôwTu¢Ò%‰)9zàuÜÖ­;ìŠMlMä¼y«•¨z²ºpáü§|*Ur´¢]-[¶d2elî†@\°Äq=óƒ’Pº[·w$ª½…”ìLRJ¾À›o$¦ïÍr³ë$©`ŽÌü¢¬¥!`j°¬´ió¤T|;Ûõéó…&É/Uª¨X,–HÁäš×&¡ñiذšãŽÖyb-‚¤bú6l²ëÛ÷[%×$ú‡¤BV ª²U }Zmr ‚€Ó9±¦qûí)O>ya¬&ùºèÕ'žæ^yåwòÉMÝSO] UWòu6˜!`$5¤j:ÿü#¤œòhyà>J^ǹŸžë.¿ü8õUïÐáW¯^ò”­U«’;ï¼Ãõ³zõßêÈ‘³\¿~?êùjÒ¤fD£ a¥Ø€‰!`¤FÀˆij<êÓŒsC†Lr|pƒ«\9þÉ ÿøc©h2Þu˜­nJ$ nB8›Œ!`dˆ@Ïží\Ë–ˆFq7xð$÷÷ßÛÜGWBzÿýŸ»7ßì’a‰Ú ZµrÖ?æˆå ßZ´ª¸f½õÖ(·k×?®qã}þ%ªT³ºÏ>uI6/C ß0bšoPgm ùóW»^½>u7Üp’äþkœµƒs¹5yI_|ñ{÷ôÓÃÕÙÿûïïМ¹<Œug…’ê·oˆfò˜1£\SzJÙÒmzyÿý±nÔ¨Ùî¸ãâ{íË­ÓQ±biIõ×\ÿèsÓ¦mšKõ—_æ(Qe½X£6¬®5ÅüßH ’TÊ­)X?†@Ò `Ä4OOÒ7ÝôŽDßï-9ÿΈë ñêÚõ÷Ûo t.×_ßÚrùÅõŒØà†@ÁAছڈ¯éî‡fÈõåt÷ØcC¥ªÝXwÒIMÜÃ)þšÝ“f±Ã‡wo¼ñF–ç[º´“@©½Ü† %D³ºQ¬dKƒ1æ$(l§kÒd­+_~{–ûµ üBࢋ.ÒÀáÜ/±Csk•IÖŽóÓ§/-å¥é¯é:ÙrÊ“ŽŠ-C†tWí-ÕZLk®¹FÜ<>ÈóÉlß¾ÝõîÝ[nžGŠO\Uwâ‰'º»îºKj¯Íó±3`üøñ®C‡¢m«+¾Î{KvˆVRªwxF‡Åu?¸)2`À "¼9®ó‰çआÂWüÇ7ßÜ6Å>gÎJ7yò"I—<éÛæÌ™ã¾øâ‹lÁY¤H QÛ\ýú$;Á*1ï/•×ÕnŸ}6K ª]ÙêÓ2òaÆ _™ž«C™Æ4WáÌygTNzöٯŌ¶Ô’Þ;çf£Ò@Ýÿgîw~q—^ÚRÒ'cùù²c^òã?JIÇ}ót˜;v(8q¢»ñÆ]—.]Ä9νúê«z;v¬+W.>ƒv^x¡kÑ¢…»ãŽ;Ä<ºI|»ÓO?]4Nïë¾<'›C (>Ú—H4ú61_oÉfOã°®]ÛHÐЋRqiûãG„œõ””VÉ÷n½žvZ‹¤Yh¥J•܇~˜4óµ‰9E qãÜw·1iNÏJ.ÑÍ7¿«‰š¯¾ºU.öœù®pj×îi©]=I´9µôi©RÅ3ßA!j¹xñb ØøÛmܸÑ=ZIË_¶l™9r¤T‹Y§h¬Y³fÜ‘ýõ—[²dI-ŽùöÛoõØÈFyóØó&Ožìf̘¡›çÏŸѶùvhßV¬X¡i7f̘Tm6lØ ­ ™£Fr³fÍò‡êëÎ;%äÖÈ6Èm‘^xA‚6ƺo¾ùFH³îúë¯Wså믿.$â VùHÛ±Öà…>™ë®]»µ=lc-Üðv Ûùå%˜~¯Ìíûï¿—œ—ÓþÎ~[·nÝÜQG¥Øóþ¿ÿý¯Dvÿ,š¦¥ÐÃÝÚŽáC‡¦:¬“9²îܹРçÓ çÒˆ†ó§Ÿ~Ju¾|’Õ3&G Û¾ûî;ÅÉï[¸p¡®aùòåúݹâŠ+Ä|ý˜ßí¹F:HÂ7¤R:è ºBÖG©…Èû•Ž5Gµ¦øšš†@!B@.ô& ‚@Ÿ>_ÝHÔ{\fôöÛ£ƒ† o¤*K ¾¥q™C<Í[pï½÷fz b>Ž=öØ D‰°¥@´%A=qwÐÏ*T&Mš<÷ÜsA±Õ ‰ôݦM› uëÖ´à´ÓN Š/H¹È X±bA¿~ý´½ eË–ÚÇsÌ1ú^–î—'Õ OŸ>Á矮ÛÅŒ™KÓ¦M!MÚN4sŸ«T©Ùß¹sçÈ\®½öÚ zõê‘Ï•+WD;ªŸ›4iœsÎ9‘}á7b¶ ~ýõWÝÔµkWÅÂﳦÎé·ß~ÓM3gÎÔ9€k¬Q£F Z÷QýúõѼ*vR(Óî2”-[6KŽ•ršÉ@ÌõúY³2òÊØÌv`ÎàǺxíÕ«—¶e|úd}E‹Õ÷à Ä]÷s~Û¶m”,Y2²ßŸ!µÁå—_®Çpî8^fd?üðC nŠ7߇ýöÛ/òˆ¶Ta?þ¸~_Ž8â=.'s œÎI®€m"ŠXgôÚ³ví&^­Z·5kÞrÈýÁ¥—¦üqÞá9õíÛ7ØgŸ}›ì½!PàhÔ¨QðÈ#äê:Mc*w¦DÌX/¿ü½˜Ðñ—«’¯SÚ¼y»8ÝyçG¢;É}üñM®fÍŠù:‡dlÞ¼y“:ÚC4‚/¿ü²jÐÐ` YQÐN:iÀاŸ~ªË\µj•1b„¸I\*X,~t_¹?ÿüS|y׸Ûn»Í=ðÀªU{衇ÔwM*Ú·ŒÌöµk×V-íìÙ³µ/ü@½àôâ‹/ª þ¼?œcwË-·ø¦êó(„Lµšh?üðÈ>!˜ª=EƒZªT©ˆ3Ò Æ›+¯¼RJ8–Öõ°48ÌËÕ̱N|Dׯ_ïÐRÊÍ]]ÐD˃‚îgZKü™ÐN³Fä ƒÚcD!îì³ÏVÌÁ’sƒÿZÝþýûKPÍÃlóCä84²«W¯ÖóˆÕŸ'üþûïªIE3Šÿêk¯½¦Çå AƒC´ª¸6 ±¢®šsÖ‹O.ZsÎ-c<õÔSªÙb.é‚ÞR÷ƒÈ$äMNçî+ÙÞŸ{îaRw¾¨hàÕ©_xaJ1‘•+׋¶|º[°`M²-ÉækÙDÀˆi6ËÍÃ(ÃwË-ƒ´¬ç¥—››]gØ×Ì™ËÅ'ï¹)Ï”$××ÉÍòtW¤ˆ8eÜ¿ —¢É”úÞM%‹Â~’æTÉÍØRq &˜Š!Z=H(òÙgŸÉM¸˜$?_É&e·ß~»šÿï»ï>%Qlûä“O¤Q´«R6•yúßáS½p,äOž`ÝUW]¥ä×7À"(š:ÝÉ…P#çwž»çž{|S t-¢º(`Ò‡©Ä²M€ÐÛo¿-9ëñàù=3É<묳$ OCm.¢9V»?¢Šo ÄóàƒVüý>Ñ,+1¯Y³¦ž/.òÞ{ïIZ£Ã$Om'_w衇ª¯-WÙ ¸ž={êùhРú‚Yz’Ó¹¦×w¢ï+S¦„&§«NõÉ';êƒ_=®G~{¢¯Ãæg9GÀˆiÎ1ÌqbÂÍFÉÚ)Ç}e¥øŸqƳr£.+Z°ž®uë²r¸µ ,^Ĥ«äɆ\zRG  Dâ…_&½Š+:1ãJDòKnÊ”)JjÅ”¬>‡‡êÑG§”<¤Ïzõêù®Ó|õ䋨0–—hm+ã¬\¹ÒïNó²F>~’^ð‡Ä“?Èk, ô@Ò´ŠDÐóG?bVVM"¤‚ë!‡¢D?Yð„ÖªUË‘€W>ZÍHù®¢mŽ´¹EA‚Áq#P ©ßV^ öaÿ×è}hÅÖÄ9óë ðâœãGŠì¿ÿþúÊ?V˜{,hçt®±úN–í—]ÖR Vj^Ï¢E‹Èo#åa‚ôyÿûßh±Hdîa$YÖïyòÛœ<Ö HÃ<(ÞyçúPšƒse<ÿïðØâ äÄÝJýù3;6¿MqƒQ+9‘p&®OX…ÂÂu…{á\ïP`å)lbÄ4ÎgœšóŒsåy®Fü1Ÿoß¾K4£Êô}×¹ó jºÏ¯±ã w®ÉŒ -ÃôMÐfüË.»LÃôK°ÎÔ©SÝÒ¥K5ò]üuÔ¤]­Z5GŒLÂé Ç{á‚,~›þ£öí?pAßÏTûý¾èW´¾h0ÃAA´Á´Î^ÀÁ§@b[8ÀŠ ,"¾¶|„Y|„ jÚ†`B$ÅïSÍÜl‡°¼ÄÚY3ZHÐ £YåB _|{MÑòÄO¨Ë‚øì:8W^ˆÜGKÆ-r,‰u~=If-þO| ]ÇŽUCNÜ”½`úå•WüÇ=^™CNçºG§I¶¡yóZò`ROÜ_ÆéÌï¹ç¬È 6mÚª™‘ ö&Çð;À-&/÷$~¿X)š7o®üvpeÁò5%··‚O®‰Œ«ãsm!’‡D\ˆ2#\›q±âá’~r"f¿úê«#÷ú$ø‹ åd?aL\€ ³X_ “ľ"&â´VbÏžˆ¦²‰ÖÎi,[¶^L±}%­ÎoâgØYL¸g‰/¤} ò{LñhÕ0·£YóOôDšcÒ'Z“?Oʘù%àF5¨˜Îiƒ$þ–é }ãÓˆF¿T4^ |øDr£€B"Ñ ¤V G±£Íð~–˜×Ñ0_¢ó¹ÐC O9å”TWæÍøàƒ~huWà¦qÃìMæ¢Ñ‡uú\žø—6kÖLµ´Jˆ'í8 2ær´¨à‡¦<ÈãÊÜ!üÝpà ºöîÝS³ƒ®ZÖŒV@æDÚ·o¯ã°^0åa‚‡4dÿ£>ªsâ\pcñ75ÖÀÍ)Lä™K^Í5'ëÌïc©7?lØdÑŠï UCI,_*2Ê”$á7Uƒß¨Þ‚Áƒ#×\]¼ …§}Xø½øÌl•Õ‚‡J(ßSúöŒp_ø}ó°™Væ¾§éeýà·‰…„u X TaÁ‡kþ$€PÒ˜{Øâ‘QÖ*!váp?VÖÿÿì¼Õǯt— ˆ „``‚"*ú 0QÄ ,, ,@EA»›”2AAº»kþç{Ö;ovßî¾}ïíÛW÷|>»;3÷Î{ÏìÜ9÷Äï0ÆhĜǵñgQް׷o_UØúѮϘà!I ÂÔmŽs=½vÜÀ+„íà1ú˼$úÉx¸”ÃCÜ¢°æÐ?üÕLYx3W1Ú±aYAÓÊ=c>…¸}‰Dɨ?ñî{°¿)߆8Ê%<üðÂ_´hmJz °+^Ó¦w{'œð°D¯HÉ5óÓE2•/¦uHg«a[@IDATK"x"€Ø]¶¿N_wpÖôzöìé“ÉÉ#šžã¢QÕ¨mñ¯Ôr¢øm$>åÇwœÖ³Qùb*ÖHp•oëõ.®ž¼´¢ò‰ '*ŸvˆNFwëÖ-,š8•O‚ ê‰P¥çÚ~Šæ‰@é1fH&WO´ŸZtñåÔm•/&0OÜ ü6hO4±z®5iû¢Ô(vцúe¤|!2žoñ¼D=Á/UDúÅGÜ#< ìÒr¾äeïµjÕJˈ„§ ú Ù¨|yÁë>_ $XÄ‚ÈûËyå˗׺òBñÄÌæ‡{B‚%ÆD„6}âÛ&åâf Ç¹òòñ$LOËN_íuãýæå¨|Ûï+6xµjõò&L˜¡‡Ä²£ÑùDèó‘ž¶jžûá!ì9ʨƒ xðÔ­[×ÿ‚†a‘øïˆö_›£ KXâ¿„¸)òG,T ä|4 êƒÊ$.4ž,öt;r‡_b¡~ÈÂKû/– m+ˆòÁsÀ8dQ«eö‹yãÆ ÓC"üÅDí ‚,>un°è ¡€h1FY¬j{Ì!ŒÉŽQ®z\„q­k¿è×Pź¾ôŠäA]øÇyŒ Ä ;'1ç€,Ñêçq%ÒþS. x'¸Ïô•ºÌÛâ¤Û#FŒ ZÉâÅl\Oàøô8mœqÆ:FY ÇEɨ?ñî{X'âìäDT>’º£\àÀìÙ‹eRºÅ:ô»”\}ðà¯*¦—wõÕÃ<ÉÓœ’kæ·‹dV0Íìø˜ä˜ˆ,Rð|Ž p½?ÙÚ2Y +ÌhLTÐä|+˜Ú:öÅ $‘h7l‘þ2ùˆ¶V9YUû‚]X¥ vx Ã$šWOVáQkÓWÑzmшþq}Ñ4h_‚u(-‘ž<ζ˜æôe «ûÈ"ÝG¸§M^.öe¬H¿è»¸Äì[°~f¶¹/Ø¢ÍJwšh`<Ñ{¢=JWÆ¢#s²¯ùA0…Q:=ï]yehq j…R~>ø®t¼Ì+²"˜òöÊ î „‚€þ‰TçR Ü+(#AÐ ¦Ô…Ÿâ£Î¦Ž~3_X¢­O?ýÔÿXþÒ…TBî5‹æ^ÈÞ;qYȰ?¼bÝwÛŒ~sB0u™Ÿä®¤špæ¿å–‘í»¿éÚµUŽ^žˆ|I?ø`º˜<ÏÔ´¢9zA×xT`’— CMâ‚ š®N´cT’ Ù‡‰Âô“E9ëã"€?kVH¢çã} `EÖw}ÊðáŠF`É‹'Z‘Ãì™?ѯŒúëÜŒŽË‹Þ7ÑGÖ.ÌiE–á¶r²¯Ñ®—uèp˜ÌUïˆ_óvq‹¨'È%ÄTLÂOL×›a¢ L¤æÅ1$Ú'|mJZRýŠ0¢Á9¢eW?HëR#‚Bº±O’ Üu@ÅàÙà¿=~üxEµMšú„s}LÂ"̨ ÛN‚J!MÔîYä ©Zý­ŠDýíž—KìDþ叿@¸$`êÇ… ¿jLßø±)B©Úœ¡:ÿá¦C`¢ºj¾f>¤‹nð7 èÜsÏÍ0`ˆg“~ÓfF××F_o¼ñ†¢›Y‡K. ô';dÍô"úÍàgj“–0÷ã;z Ä â‚;n@vîåÞá:DÐ*è'Q¬ûŽ»Rn‘Lsó/¼ð•øá-“ ÐŸ,§º€?éå—¿*Ákd2¿Ö´ju`N]ʵ›D+¢¾‡L¾Y%&SYÙ«e° ^N ÔD#¢Ã™ð9ä´oßÜÜqÇ;êkzþù-eÞj(/ÙÙâGêýÝw¿+þ¼‡ˆ4ÉATg @ ”B<ÏVPáÇÏŸfº¯‡Ÿqˆ9Áÿiü­Y,!4ZŸUæKÁ ?{ÌþF.j#‘;¬àC}úDý°mÄú0a‚FµS.ZP® ÅGßVÔŽ×^{M·ù²¨ð@ÜŸÔ•c,®á„ J9¸È–â-RmæCK„8ësëúöû‹¿:>«ÚÃø¦Æ£Dæ^Ñ‚jfY%ýƒðeñ$«`€—‰ yÏìOF÷=xnª¶³'槪—è:ÿü³R '>‘ÕN;YéVͱ‘Mú¯LdOÈÊt§8Dßì„Òãtb 3ÂD\·nÝÄNˆR‹¨~‚Nƒ$>”ªq@pFh:€gJ&á|O€/‚‘áß2?H"‘kÀ¤ ‰ÿ¦¯9Jä\W§àr B…R¢¥k$‚é,äñÇ7TüÐÖ­;D{ô‘nç÷¯X‹ÉhãRMü8u‘,iÆj´b¡Z æÓœæpDûÀ4x`õ5©5YVÕÏ ôD3aBO™\öŽè…ÛuÈ:€qÂ´Ž†ó;Ñ®$}PWI„xqb’„˜ÈƒØ§‰œïê\œzjDþÒèücm ¦hÆì‹öå—¿‘EІ‚Ë€(#ûX|'‚HmÈ.êˆÒ¢Z€ ŒÐ,æf´“6sY”æÂ-rõc¡~`nÇ!ŠDùЃ_h€!´¥hìâ¡v ”!€1_PÁÓ¶ø¥« ·P1h•# ”´‘hn‰vïÑ£‡FÁƒ ‘Ñõ#ÛBKÉ5ùýàƒáæ=m5Ÿh¯ÑÄŠï­Îm‘m°:B!÷›H|Ú"cÈ&¸/ÀsLúñ(šG"ý‰‡Øïº9Z&»£q@ÒíiÄéôé räŠò x©¢ÁÚ¯Žã9r¡ÚhN?¶Å/“ªBÇDpèq@ Ȥ«A¢aÑ [Ÿ` Ñðj „h.4°‹@K9é*/#K@9×£]Îw”1òKð#YºtÎc_|ñ›¬Aƒ>aAPB]}õP-Ë+_™ ~‘@K qˆ†Òîj ÏH@wÀ#ÒF5‰ÐžÕB´m>‡wnƒDÀÓ€#Ú!&r‡ ~Š…ú•DùÁGÌ!➠ȇÚÁóM@ㆠsÌÉxD;ªÁA6*Ÿc41AD³sžýp>ÁR"ðyôÁR¼ëG?èEð×â~‰ ©ÁX6Â_I½÷$Þ+ð²H*l‹¯çô6bÑleaá‰ÿ®"yX´–`œ̓òxý‰wß97ʉà'•Ÿç“PgíÚÍ Õtçc’ÐZú&ˆ´ïÒåe‰dìí½ûîÔôÜ‘ 9àÓ Y¤B&0)@ÂD#&`&U¢Ô™ô$U«¾™È9na“Dû¡ûLîL¼@çeqnÆ¡ è*~ŧKË,Ä/&^2´Éä--w_±9ŸSFÑ®Ý@¯OŸÑ: Á^ö:è¯qã»êÍrß—ÅpŠK2+˜f¥{â>ã‰Ù7Ý©ñP-Ä¡‹Ìk–»TÍX2Ñj¤)þ`œ'°7~Q½2Ù*¨4&N"SìwTp8pÊ)M$hógÐyê–4gÿ™¢šDærÜSçX ì,8£Ž>ÌäDYc¶'Â=’â¡Z`ò'SZ"D;6°&ZýÈ@™hu²z,£kÄ$ÑVú»Ù¹Ç?˜ÉŒ®lWëŽÀq\&‚, Ü–…wä!uÑH$€+x"..ñG2êOfƼnNm;Óœâl ÝI“æ)ÄÉý÷w0åÊ• ”dsæÌE’ÁçIõÁ"ÈÉ ¥Ùç©k!6,dOÑÈžˆ–S‹- ûDÀòb‚&Eƒ?!¥!/fK@ÙРlHã‡ë¨`qÁtÉ’u’g±ø Öÿ­ºøn¡TÞÅò_úS‚t¬G þ£‚ã©þ‡]ºt‰R#±CøiF[T"ôÅ‚6C¨‰‡ú‘Ø•]­¼Èx÷=7ûë4¦9Ìý]»öˆ&g´!íèYgµHêÕ>þx¶éÞýu™hê‹Sûeaéû’z!טãÀ°«r eÉ"„!0¡H š c£"¾(Hþ„¬%°cE­Ú:î7ÿqàCj‹&ª¼ ŸÇGT(2¹nݽo­Ÿ œz’ZrœDjߘÿ˜‰ƒq ²Gv‰4Ä6q°-‚lb‘EýˆUîŽç_Ä»ï¹9*§1ÍaîKÆ%³`ÁjÉ›}nR¯DTêUW  Ý#Ìë¯_í„Ò¤r×5‹ÀÔ q!ßµ…z²u‰ªG«yÒI'ùXŒ™…"A³ŠðJÞgKhi‰ü šî¬FÖÖq¿“Çw äŸ# PBÕš5+«I_|à4Z{Ê”yfâÄØ0H“3gTâ›é ç ÎíLÊHœ`š6Fodñâµzü©dì8Åì·_r ›˜ŒÑôë÷žÀ†œ%7ÎWŸ«è=pG’ÏÉ ¯P(mÚ´Q³<Â'¸†@F!D0À¿h<(|LñEpãÁŸø »BÁÓI“þ1%K>_A`z*¨¦|f³>‹”Ç+¸¦…â¦é çÌp›>œ)ßgEò7 kÖ¬”4ÌÒíÛw‰éþ ÁjûÕ¼ðBXN®k@ò9àZ,ˆ@# t×®]ÅE¥?D2–üDK˜òÁ ŒG€þm‚Â1%‘Aç}«E°ECJ†Ž!À¢¡Å=Àú°Úöùå\>Ž ÈV·eË3mÚ¿ŠÇ,ër³hÑÁ},/ÉCv(Ø>þ¦?þ8×L™2_`ê<&àõë×OmCâ#óG v'@E~òÉ'F"×5ÃAN“&MR«Š †89-CÈÝ´i“¹ì²Ë Á––p[?]»ÈŒÄIòÒµ á|üÕ± 9Ê]8Á4‡ø8ô‡ΔˆäkÕì”Ýˬ[·EW5•éÈ‘×IÆŠúÙmÒï8e œ’……—¿9ý>müÑ':Ÿà „PKq“ª•À&„OK˜òI5hóPŽ)D¦¬A"3Š£‚É’ƒÔ®]YÍùüþûïj0ÖJnðæô´iÓvY¼ì%ÕâšQïÍ7»LFÀQ <“&¨E…R†Š/; ýç“!ŽÅ­@(if9„O¬, u€RH>>æ€Ùó âó 8÷œsÎÑýŠ+*@?i[I:€Ï.A]“¥@ùœËÜ¿¦/€lÏCr¦ü¸M<ÝsÏ»’´™h”eû LÄgŸýŒD¨®•Ì7:¡4Ûu $‹h$<ªPj¯a¡H‚B©-#ƒJP(µÇ-ü ©N­PjËÜoáâæü￟£¾¥hO¡ºu«Šö|“n£,ß±c—¤ëüC´oKô˜ûÊûÈ ôܳÏ>«âÕð!=)‚(sÌðáÃU8 Ž<=‡Õæ•W^1 z|õÕW~5 =ZZTPAå.œ`šüå•oD‹´ÆÜw_Çl·ÎD{æ™O©Õøñ=5i¶u 8¤€yŠ$Cw—H"L1åc¾G­X±´¤æ,!¦üfß}+‰Ï©ók)9VR\œÒŽ$vÁ5•pÐs9ÀÔÒ¤L“|#W¬Ø &¥O%ïIj‚ÊNóDšžsγ¦aÃfìØêüŸöܹŽ©äþ£ø”:rÈZ¶¬§QÑÕ«7k )˜¦C5n¼¯4í™·JàÝv3nÜ4Å>ÍÎõܹ©á€ƒžK ŸóãUœ`šä»öÀHG R:)[-òÉlsá…ƒ@¼‘yãkT­ÝÉŽŽŽùø™î½w9Á¿Ý ÚÑ=¦FŠ Áwøáû ¶©'>ÇFƒäИ–.]Â¥ç(ïsÀAÏåý{”[=t‚i9O†§1c¦¨ x“¬Ò[oMTŒÒNŽàü.0R4«M¹óò=Èh7þ*B*AP‡V×üñÇRõ=% Îóö:ƒ‘€ÓŸÿ‹ÖÏ÷Ã.ðpÐsþgi€Y—ž²t¹‚}y›O8¡‘9í´¦Yè A_äxÓ«W;së­§e¹w¢ã€ã€ã@AáÀá‡×•îït8åË—Ri‹u$ðe½9ÿü–æ³Ïf›uë¶JùNEA3fª¹ä’c Êð ì8ô\½µÙ˜L³Å¾´“Gžl~ýu±`ŒöN;˜É-Ü^|ñkÓ¿ÿ¹ Õ*“g»êÉà0"|2CEŠ”­vMùÔÖÏúõŸš;Wg¦ W×q %¨]»vJ®“ì‹`¶øá U¼xQñ)ÝfêÕ«ª—©SgoÚ¦X¶F•+WÒ ú½L“}r¨==—CŒÍÇÍ:Á4 7oëÖ¢åœ`.¾øÁj¬‘é1CõéóŽ9r¢4èbÓ±cÐp¦s'd™Tœ»Œضm·`ln0sçn0sæ¬\ÅÍš¦F2‚šPQ ÂN—âR5ãÊRÎÊó#µh±ß~¤%|[|KIQZ¬X=V·î>bâ_% ëÛë”àQ‡÷œî6Ðs|â‘…ž‹Vè¹hd¡ç¢•¹cy“N0MÂ}yöÙ/5;Ém·žéÖH©wã#ŒÿÕW/7§œÒ$Óm¸’ÃSO=5jC¼èH‹Hv>³f-ÒTˆ %´mÛÂ{lýT©R6êùî ã€ã@ö8@`SÆÕ%;Ïz]ÒÐQ×Ta´AƒjªÀ•)¦†ÿÁ ¦Ùc{ž9è¹-[¶ä™þ¸Žä,œ`šMþ.Y²Î ü•éÝû4É`“9Á„£×\3L…"ïÁës”ûvmK4A!ôúëÛJZÍ4R8÷{ëzà8P88ФI-…‚Ú±c·xÍšM’¦¶º™9s¡dÿ©'VŒ•Š÷̼ºgg>úh–X@¶*îiáàPÁ%ÐsŽ œ`šÍ{Ý¿ÿxS½zså•Çgª%2˜\vÙ+ê—:jÔõ’8¾ #S»Ê™â€D3Å.WÙq W8ФIMI9]€õwˆù¾¨¤›Ü¢˜¦ï¿ÿ‹@ë-¦¿˜Ö­™)Sæ‰)©%ÿyªó×Ï•»å.ê8u8Á4ë¼Ó\ÍcÇN“4g—k$h¢Má¸ÑE/jdé˜1ÝÍÁí(U@Úë‡æ¤3Í;hªî‚»Žã@æ8€Æ”Ô£+WnÔÌO<Çuëî­ûíãëàÕÕÚAËåË—4@ï¹@ÒÌñÙÕvÈm8Á4wà¾ûÞ3G}€9ýôf ·²nÝsÁƒu2%›Sýú¡ÈÒ„p3Í  úÓO«éß^|D šivºr…¦ÐÒ¥ëM™2%U%à BƒZªTqS¡B)ÍuÐAû*Æ)Bìï¿/MÙ⟼ë£GÖ>¹/ÇÂÀM›6%}˜N0Í"K?þx¶™¸¦ùôÓ_ÍÍ7Ÿ*ÒL³fµMíÚ•5:¿S§ç%pª§hZ]zçü|ÿ]ß œ`ç>c2Š„€Úºu§8ðÓ¥ËqŠ•çt-NêÜsŸSÿ§Q£®ÓI4£s\y8D9¦€Ú;h8çÜžã@Áâ@:•E Ý-Yž<Å+etÕª•WŸý¶mVlSüK‰”ÿ»ïþ’©}ÌŸ.37Üðºyé¥Ë4CTÁâŠã@Áâ€LãÜO‚”jîÓç ÁË«¦5_zékƒ ÄªÚ°a›šŒ*WNŸQÅ ¥¥K7ï¼sC:!Wp_é8)ˆh¿k×n¸µ¦y'ˆ¦c›;à8Pà9P¯^5Éòd$åoË”W«VASU²d1õAÅuËÖ•W¶KÕ4óÅ¿™[ny[ pZàÿ)n€ù™N0s÷æÎ]¡8£~8Ótèp˜¹úêãÍsÏ})+ï¶¾9lØ÷f̘)ò馱sBiÆF!ˆH–¬äѹ]ÇÇáÙŸ -[vjŠR¶÷Ù§¼¤^®f{Lü ®U³þ¦MÛ$J¿´)]:0uÿý ¸ÓµO?}‘œ¿§;rpÈcp‚iŒBº;€œ-?]œ§ LI sæ™Íõ0H^|ñk³nÝf9ö”¬Ê{ˆS~EÍN‚ùÞiJ-÷ÂI.Lñ9sf¸ Ú­[‰šw¦ùp®¹=ÇÇ’™@`–ZÁ²bÅÒµÍ-ZÄÔ©SES””ʼB†¶yóVª9ùò fذ«Ìå—¿*sûNóì³—h¦(ÇUÇǼÅ'˜Æ¸óç¯+±¦# JÚ´yÄ\|ñÑ:Ù­_¿EMKhHN_|ñ2Ó£Ç'”¸OE½æšPÔ¼ó 0Ím:8¤ãB(´}ûN?© ÊæÀ}Ì÷GY_ܧ&›ž=O•(ߊŸÿæãg™»î:Ó¼ùf7Nî:ôJÍ Ks_ŽŽ¹Â'˜Æ`û¿ÿ®Ò9ÐPAÂ×"£ˆVÙçøªUÃîyÁÖ«\¨}J Ê?‘ã€ã@²9P±bÈ—kUñâ¡û ` â üM›ÖRaµví*±ß¬Y-ó _ªÐzÔQõÍûïߤÙ÷P& r…iÔ¨F²»êÚspÈ"œ`ƒq¬ºñW"^4 ¥¶œcžxæ¯^½Q'ÃȈ~[¯ ý:A´ ÝQ7ǼÉ2;íµ×^¢Ø£Nô²ti4¦ÛµÃBMŸ¾P‚U«k=› Ó=þ¦_~ù»¹âŠÖÌJr”k®fÚ·Ê<ñÄæÿk‘7ízå8PÈ8àÓ7S>°$ñˆ A4HL˜›6m7gŸýŒ¤¦»ÁrHí`q®n“Ž À .82[ýp‚h¶ØçNvpÈ"˜sË–-¡s¬l*5¦ø ‚iŠ­Z•DCºRa£¦L™oZ·nè ¦œˆëÐèÑ×›~ýÞ“$¯iðeß¾g빡–Ý·ã€ã@npÀ ¦1¸>gÎRÀ9F•tB©­GÆœóÏ9g9ò:sÄumQ®üõ~ÿýï›×_ÿQû’YÁ4$ˆÎ3?ý4W'ï3úðMÖG” €®988ä$*U*«‚)s,„Ækónõê5e) 2¿¬rä‘õdÿÚkO” Pïjö= ¥ ¦x £d‹ªoz÷¥sAQ€ó;rpÈ8Á4ßçÏ_£Ä˜Æk™¿þZ¦ÂY¬J¬ì·mÛ%ÙF¦çª`úÍ7JÀ›â^°Y»:}ú‚°‰9Zÿc ¢`¹{ì›u‚F»:A4÷Ü1ÇÇœä@µjeÍ¢Ek4Ÿë0×B¯À. ¹SmRsþÔ©óÍi§53ƒ}að-E˜íiÚ·on;¬®¹ñÆjÚðæ›Û¹LQA&¹mÇqÀ ¦Q`F´}8í% 1wÞy¦báEšðm]òY­ƒ{zË-íÌ~ûím‹Rú ðß¾c%Oô¤° .úÆd P½¥x‚(Q'ˆZN¹_ÇÇÜæ@•*!Ë Ù ;U©R(jÆ­êG:jÔ$ „¢™üêÕ«ªVŸHÁ”v€úô6õC7àW?þxgÓ²e=Š98¤ˆN0ÂhŸ‚ÄŠœÏóÏ_j&NüG‚¢Š„EäS7”»y@Fµ0·ÞzšL€û›HéögŸýjzõé ×Adg´¨DµFšæÑˆ"ˆ^uÕñ*¸:hJo›»˜ã€ã@°‘ùk׆”{öìѳLË—·‚é6ܯ¢©I+U*£O¿ý¶Äw\Lã]¦k×Væ”SššÛn% †A‚´ÒR\ÎRml¼ó\™ã€ã@r8àÓ(|$@ÈR‘"EDãhÌ«¯^!&ùz榛F„ ¥VCzÆÍD =]WéöÜTÿ2QãC5vìT¤­&!Ø|±Þ~{¢˜¶>×¾:A4È·í8à8×9@d>ú \x[œS4¦5kVÒò%KÖŠûUM3{öb]xcE¤oj,"pjĈkÌ„ 348ªU«þ:¿_vÙqª˜ˆuž;î8à8}8Á4 É‚ÔóöèïðáW©OÒ“O~ªöœR¼8ZÓ=æÔS›ŠÓüi’*/wqð0;ÝzëÛ@ÿ¢ ¥‡0iMšt¯¦ð qߎŽŽùƒV+ºbEš`Š"BŸm2A¥ ¦ëL“&µÌ/¿ü«îU,Îm”~F#Æ÷´mÛƒÍSO}f|ð}äÿN@úÏ2§ŸÞ,£S]¹ã€ã@9zš³xrA= ¨(óK–,nFºN…R2>‘~M¨mÛÆæ‹/n3/¿Ü5W…RR§^uÕ0ù U³•MïÞ0† Ò´Âñêº2ÇÇǼÄråBšÎeËÖi·ˆÆ/Z4ÅR¥Šif¨òåK™råJ™Å‹×©Æô?–šjÕÊkÚRüì%4«wÜÑÞ|÷ÝÿWGçÚŽ©[W¢m¸zŽŽ‰s Æô矰á'o¡Öœ5kÑ”s‘yì±>:ÂeËÊš *Iúºmfÿý7˜Í›?‘à¢Oruô+W–1ÿ]Q„åÐú"ž–4ØQÜ~üqnXT°¼°mO™2Å<ú装mØn¼…˜7Üpƒ9á„ò%Ê”)©ýÞ¸q»˜äwjÞûR¥Šûc)QÁ4”­)é¢O>¹±f‚Z´h­9üðºú¯_?ÑÚµ+kœÁ5ל ° ÂéñÇ7_ÔÓ%¢ÿD›qõ2à@:éÂ… %2qt§ìbÏÛKVÆ+eµ½Óè֭Ũy…˜„V‡÷+¤xcãÆ¢!-a*VÜ.ýÙ!°&»Å„%x)„…+t<¤é¥SÖ·ßþQ³ðî.Y²Dÿó%T(¼r#/Hx÷Ýw%ÑF泼ƒ ºlÙz8­°J±tYÁ”¥+Wn0u놂QçÍ[¥Bä´iY‹û©%m̘%­é 6?ü0'¯°ÈõÃq _s ÆÔŽfÔ¨Qv³Ðý.\¸FÍ=ùqà€é¯\IJÔfÕªPjÔ•+7 ÐÿX™D÷H”ZþçŸËtò¶@Óùq¬Éîó›o¾)/µ6&Ùm»öò Ê”)“Wº’¥~ %%Ÿ §åË­`šÈ„EȦ’&"Ÿ ÐÊ•ËÈ"¾´ä«TcºvífóÏ?+MýúU³ÔN"©Èر=ÄÄÿ—yæ™ÏÍùç?¯Bï 7œdÚµkª}ÌrãîDÇB̘‚i!æI¾J¹geË–ÔÕØû8uê01ùï2ï¼3Ør¿ŽŽŽùŽ7n Q1>—.]/.V[&*©Ï`À›¶nM¤d‚ö߃ƴsç£$xµ¨™9sQ¶SmT¾ÀDåóË/ íä꫇i:Ô+¯<Þ\xáQa}³ç¸_ÇÇØHgÊ]Õ•88888ä.Ö/W®¤ —˜òLÑŒÉfƒ iLCYïÀ–FcZ¢DQMWú믋ƒ§d{ûÐC÷3C†\a¾ÿþEkyì±DƒÚÏôé3Z¡ª²}×€ã@!á€L ÉvÃtpp(@0­T©¬@÷…LùëÖmU3}´±U®\Ö¬[âÇŠ„Æ>*Ù‚©½>×yàŽfÚ4„Ò3ÌÏ?ÿ-‚êãšêôÍ7ö!ýl}÷ë8à8Î'˜†óÃí9888äa.ºzõò é´ßš5›Ä‡´¬ßcÉ>êS+˜’šø¨iÓZfÖ¬E~½œØÀ½€,zß|s»ú¢Ö­»·&@iÞü^Ó£ÇõM͉ëº6ò;ò½`úú믛îÝ»§ä>L›6M|†.”ŒI ¯š`™¶8©ÇÄ ?-â=^Gðñ\³&41Rï²Ë.ŸÏwâ’ëeQùåï¹Þ×4¤â?¿eË?Ý\sÍ5¾¿žíA¿~ýD#ô€ÝÍ•ßo¾ùFûg/~þùçë>}æsî¹çJÎóabæÝ U^}õUsã7ÚêÙþ}å•WÌi§¦óÀ`Î9çyN¾L¸]ø»qc þ¯¿þÒ>/_¾<áó sE4¤ûíвÇ4¿jÕ&³Ï>å|–€åŒ)àþ–-;t»zõ ó·]÷ј‚M hVéë¯¿Ö {6eu¼ß£>@ ¦ºˆ+Á ØúX‚QÇËæž„Ï×¶+ ¥ w|È;|xÿý÷³úXéyù>øéÏ?ÿLγńDNþè£$êò|‰jß×\qŦJ•*¹ô­`ØÝf¾úê+óÞ{ïÉd˜†¥­Í>ø@_`;vìк¼œØÎkôûïK͸qÓe²F½âÄOöGyƒ©øÏïܹÓ|üñÇ:àcŽ9Æ\~ùåþà§N*8¿¹;u¬ZµJ4Nßù}úì³ÏÌÁ,¹ÐÓcK—.ÕëË/¿,0>?˜—[ýúÙÙ@À4h˜fÛ –q_t¶˜·ÞzK̵§Jtö3æúë¯Ï°ù«®ºJÏ7nœ˜¤w‹ywSÂ Ü /àИ”O`è#DèS ¢,Úˆ…–Ú¶m§©Zµ¼rfÅŠ êcÊΜ9ËýãYe‹žòåCmg¦;öˆ¿ëy™9ÅÕuÈÓà½qñÅg»Ù~»0áó¨S§ŽdZ l³fÍt’ýí·ßô…pÈ!‡¨ Fy¹råT¨³=_´h‘«T)”×­$mrNÙ²iæ&î™3gšFIŽãÒ²Ò])Q–á ÆhGˆÆeÒ¤I2áTü†z)Àµk׊ ¨ºùã?ļ³NÓ“‰¡„–sÞ¶mÛ.ˆ”vÁ}˜}å•Wê‹!”1@×^{­iÕª•¬zøðáZgÅŠâïTQù@ÇÞ{ï­mSÍŸ?ß eê—JÄþ±Ç6Èûþ÷¿ÿÅ}6²Õ¸;Ùq q€9:‚)/£0üR ¼Öͪ>CÌP¼y‚rÑHëóFO5<Æñ±í¿2}út½Þ‹/¾èÅ›oà7c ý£>ZÛf›9ºï¾ût®`£ó‰³ZÆœÁÜ*x»þ\ðÒK/iY¢_²°÷^{íµD«ç¹zÐÇ9r¢'Ñîþ<5iÒ?~?k×î%üŸ¦ûg.“è}OLü^­Z½¼ñã§k™ãgkn%…ÞCQ’ø×vŽ…™Ì‹Ìe¼S³CIS‡ÉKIr/6O>ù¤šØœYÝZþÓO?©öá’K.Qó·ÕŽ;Vµ5h2ðYCëº~ýz=Í&E4…]»v5ò"R fÌx¾X"ÌšgŸ}VµC† øŽ!&èï€vméœ9sÄÇhµä@¾CøÆÝþj–ç7r0訣ŽÒßà—¼8TKôÏ?ÿø‡å#©BÿÖëà‡†Ÿ^Ë–-}RLŠuëÖõë£Í•¿6£Zx B¼¹ôÒKU£EEÆuÝu×é¸0~ú駪yõIpcãÆmæí·')t‹÷Š)rœ°kWb¾² ^ªÀWËïÿynfitô^E>¬Y³¦‘Å“Z°D¾–ôÐC’®±¿jmÝDøÄó‚UâꫯŸÁUÚÖ|P›Ak‹%)þ¥XL"‰¹áÃ?ÔÏSO=eî¼óNñEÜÏ7ïëÇ›'˜o°ÊPíªÞê[.­a.@ƒ-ýãxp.ˆ6ßÈB\2]`Î>ûlƒýÂí€çó0ó×›;w®ÍÜíWXÝÈÒ' m#‚°_VÐ7°âlÙ²]ᡎ>º¾?\2î¸ú@çwžÁ­ °PQÑöPÍvõê!ÁtÓ¦mzÌîã …æ:£æ||L¡zõªÊÜ–¦PЃîËqÀq ×94ÁTÌ[:^˜õBÛ€JÄ,‘èL¨h`ШB¼ðи¢é@{ŠÐhµ«bòÒz|Y¡Ï?Ø@€ ~[¶ Ž9"ë£i^‚ç³ÐÌ áší ¡&Ê ¾”¯aýÆ‚}žÏ6¾·}Ù°o„ö¢¯–¬_ªËín9’;¿ù?ä(Ï0V 1Ó‹T;HP Ö|%£ù¡&Â'›»+AÄ¥GŸ/æ4—–èK$õéÓ'ÌÇ4²<¸kž°ýÀZ#ænÿúðÍóo-(~á<“Á9"8$2ß0àSn™ ì<À¥‚sš]æ¦ÂBø—B¤­R%ƒ€ðYB@ó¡ ¶YÁÔ¾ô |qÞ† !áµN*fÉ’µ*´ZÖÖs¿ŽŽ¹Ç¤ ¦Á‰4Þpа¹D´,8ŽCDÕb®âˆ(TÌ‚Vhd¡ ©L¾Ð~YBãA[h-Qn_ßÿ}\!מƒÐ‰ÀM$.& ñ2Â4\Œ¥`0ÍAÓ±úm_Üh£ÄWUëÕ­[W#'X=˜àªûì³M´ ›ÌСO‰Vi¦h«§ˆfh®¼CšS^ü±¨£ *¡ ?>ôBËÌ ò>’h*o¿ývóðëå¢I“&Z…gáÁ MÈ,Ô‚”Ÿ¾D$àÈF8ó @d­ûØ9 jv(øŒç Û>Ï9sÄ¢’E4—@ÄáVî6AÂââ‘Å·í_fçæ`§xí3‚‹q{s èyXTbiå'HXƒPà Î|ˆû2óO"ÄœÆ"™sYHœ |.’ùФº“ü91‰c~BÓbµg¿T^‚hW‰îE{€ÖT|Cñ;‹çSÅ$Ží+/M̃ր±bZ£Ü$ØÃH ‡²3þvøºAÁ}4 ø¾I ˆš ñïzûí·õåÅŸæòË/×óøÂ‡Œ?æ{ÎÁÏ ¡E (¢)åÅŒçÐ?46ø¥µ/þ²±&¡sç#åO½ðò~Ó¯_›¦ÉbÅRþwÈÆHòÏ©yõ?Ñ2âjÿóz â‹…" %Ìî–ÀðEKJT?Ç­O(¾á™!žC&ižO¬¸ðÜò²á9`Båùàùç¹Í.þo¬yM*B7‹P®Å³JD?|¬9ÜS^ôXQxÑá«ÎÄ|œn¬ù~!´ò¬‰13w1?R† PŒOª£4(šOt4¥,®?þx–²'McrÍ‘*aD*S°L¡ýö  ®«SPwx¾S­ÈŠ…*Ï,)¼3qIA!•lâZ:Žî/|x6Aç±ûübáLl\2ÆÁBY'8_"‡ o  Ãß*\ýp)zþùçº,ptÖú”/áèD@ £¬Få‹@©íˆVPm«¬tŸ(UKDÊ w=yHì!¨t™ð5 •Èvä<ñõÒrÁSÔH{Îí‹F²Úˆ\qðöIëm+‚œ_—ˆcYIi™’% –vä¦{òrñˆ*†‚ÉÑöå¥éÉŸÄè·mˆpí1FKôˆa"ï©Cä¿'Ñ›b†Óã"{"°úQù\_^ðZÆå!ò$ÐC›½å–[42×^C^XZOüéì¡ ‰&ŽŒÊž$@ÕÞÓO&×é¯Q¬uêÜ¢¿D¸º¨ü §øq6òsTþرÓä~Üâ®^½[½¦MïòÚ·R½ÿþ/yoKfÏ^¬óؼy¡ÈùÞ½ßd…ç÷öFžìïgfC úa^O„ˆXæó.á=)šž&‚ƒ'ÖoÊ”)Š^ÃAq)ñ‘lÛ ÈˆÁîz²¸Òw‹}‡Ùž±Ôy"°yâí‰P£E¼+y7AâCîñ-G,‡ŠD¡ò%› ,Ó]ñ±Öÿ>Ç‚ÄX8‚×¢¡ó$ZOüÂuÛ~q=À|ô{\\W÷ÛËÌFfS»ÉïЊð(Ö‚–²h‚)Ç;‹›:WA‡<‹0«D¢œÅïR è¨#þ;‘Åq<è8·¢ ¦@/ZØ8œ´Ëu¸mRΛ}®Í¼1·Åëo<ˆ7îÁÅ$pz(ž¢AHòž†VHÖ‹ÿ÷•àè’%˜¦Ôv‹™RÌöDîGªkü¶¬h°“?æp|&2"ÚºEþpQ«b® D­ã &8ú!nõ­‹QMýíˆ Ž$̨î£côÓ‡h…¢UIɱƒÞWL“íÅ?·Ÿd´ºÑœxbúq¤¤#à"á?ŸÑmày ºªàsjƒ÷2:7²h)`٢͸öðÜÅŠŠl+£ýxó„-#ÈŠíh„O-™¦ð=ç÷k¾‘—{ÌùŒ9‚€Ï¬ÎSÑú[ŽáCŠŸ(´uëNqÿÀ•¤œ.êw¦ˆÄf™_ÓÒ“îØ +U*t9wÓ¦)Ÿ6HSj£ôÙO%Ÿ†3¾Ú6h6/A+£Œ`æp%—~€l¼è¢‹4ÆH8HG\îðï…Œº®áÃŽo6”Yâç9mq@‰@ÇižDƒ­¨=6™¦rbO€¤Ä·w=(^‰#é›Ä[´®ÈÅwI‚¸IáèàèÄ­0Ãr꘨…ÕG, ‡’•k1Y#tmt8ýF#;ÑÇ{D;/³Çx™Ä<3ÛV^¨ß²e½¼Ð|Û‡ÂðŸÏo7'Þ<‘¬±¤j¾IVóK;.Ùˆû4ßн>쉘,Á£Ä'¤ ¦¤"…J”½êÊ”)!‚PZh²A-_¾!¥Ã?dü‰ó#´"ÌêׯŸÏ3|7ƒP‹Œ7„Ð…€I¬…EÓ …/J‚¢D+©Ç †& 2þÜŠ,pÎ)GQƒÀŠÀˆŠ_|<è8½p_,,âñû‹ª jÄ·ßN(^ÅÊ£Š(+ÓÀHˆ7m$/GbRJÓN8Á]âæIÄ"R‡‚O˜ÓD„ #ÇËÂðŸ·cÍ/¿ñæ‰d!UóM²ú›_ÚAÛIôï¿¡ ¥]»vK€Úq¢uûJ‚lŠ”f‘²S+˜“Oø-¡1?T»›’_ «‰/HЊ–’ÝÌ<öØcvW´k×NƒŸb–M|Hâô±„ 8˵éÙ³§bÓ†õÓò A•ò bÊ »þÅ2±´ì` µ÷‚&l_ØŽ×ßD ÞhÃR,ååÇhM£Qa‚£Ë={q4λcŽŽŽŽŽ18@D}™2!ÁtþüÕ²]BMóµkW˜®C䥾LÍúöt4¦@æAhÞ0ÿ[ `ÍšMv7%¿‰ºi¡Í“àŸ˜ÐŠhÑJ"¼˜aÝ>‚pIâ«sL BXBXZ¡¥`y¢ÐŠöÜÈ_"Êq÷Áµ BcLÆ9 Âñ? a€ÔóÆo¨ ‹J9æ~ké´8É@ÇYBƒšU²íft~¼þ²ÐMÙ÷Åò’û :¥ ª‰=fƒâ>DCOÂÑÙú™½Gõ•vå‰íCNü:Á4'¸šÏÚܾä«Ä·†4­©¤ó«\wr‘[¶ìPa”.ÌŸ¿JðËùإݺµW®½“–p ä“d9'RcJ©µk£»Q?7© ÀÌY"Tbö†À/·°oÀ£¡EíØ±£šü7B˜CЦ>®˜¸%1G ãlÿâýÆë/ÖÛxoha§2 <¶-Ù8 !éàèBœI©)ßÞŒ¼þ‹3<¾GÑÈ®Šòª"Zÿ"Ñß+6Êä]B&í‚ûµøê¬5¥ªû’%ëül)œûË/÷E6áöò<ÉwÍŸ¿R‚—ÊËoȤØaûéñ‰Ó´„¦*¤¥.Z4Ü”_©RYÁ‹Í[‚©Õ¨ K†D‚‡Ž·D K¨Fó3A¶`{ ¶.FÖÑ&ï v1øÞ"(Ô×€áS_¢â5 °@ýè¥æÎ«Ç1£“4âþûï·]P-.¦xËàG¶“4ÁwÛŽÁ?A6À#Gë'pGŠû+pˆª!¥c%™þž¤ &Hšq€ÄµñÙ#×(ÆHzs›!ëâ›IÁ±Ú2ŽÙ¾E–³yÌžG\L¬þR5ý‡‡Öà ‘R™þÔTWœ5×è‰nµÉܰ‹»ví‡Ã½% Á5H±îiÝ .#aOûwŠx}?¼²ü ^7§·÷Á%Mÿ,WCš‡‰¨Ô +-XP^œå÷ˆIhsTüõWß-ÚñwÊxÔ“tpûö¢òЗ•Ô‰EåSLÀ„‹Ê*³ˆ˜öò¯€¯·¿¬ð;Ê#=}záL1‘„Ñ/ V@IDATI–‰Ð‘ã@Aæ#;6X#?õ‚ «飞/BÔCòB¯#BÉLñ|\ƒ˜=´¯gôèë1á@ñsüX’4Ì”lZ·éñ·Þš(;ã$Ò{€îýõŸ"È Ö}T•(?0³YMBkbNôÜDë |‘jѶ‰d€Çã#‰`!=*øpœDŸ‘AÂM-$ï{5Td «½C0EDC‰ÿ$AIÖM ØF2¶1ÕÔ²ÂqÞ"´ÁÄøyâ¶ÀëR% ¥#xíXÛñú‹Ö3}4›RÞ îÁö)ãþØqÚ2´Å¸ðß"`3(4&r8cQ É(^_íõ³òËXXdÐ?›Õ3+í¤Ó˜’Õ¤0 ¥0±té]2QU¿"2 nLÇ×:u6Šf±ªþC…ý?_(n´¤r€˜õËo,aþ"Û~¢‹­‘ ØCD€Ú­¬@Ð1Ç(Ú« b6í)–¢­aSŸ˜ë,Yí+©N3+˜Ú6râ_L‚]€VŒLƒÍõ8lôxäõ ÐÀ%B´CpQ,BÈÊIBÞàÆ‚üÏZè¸`y*¶ãõ7(DGö˜ÈhB)õ(ãIŽ.òxä~¬{)èÏ‹××`½ÜÚN'˜¢J¬0“Ì›“O~LV‹dE|ºLr熭VàÍÀŸÈçcÂ(&jeY±WÐÕ{§N-EûvhdIªy‰Ïè3Ï|.æ•ÏäÒ{©v4£>ˆCüwêeT­@–ƒYØÿóòƺA8„Óbb¾_¥Ñõuëî£cÄÄ¿`Áj±dèÙæ´ÓŠÙx†ø(† œXŠ‚‚iÙ²!À¦)Í+ s0syåNäÍ~ X"«µ¨y³§YëU:Á4kͬ³8 šÞpLÞo¼ñ£äýÝ$~—ê¤gGÚ£ÇÉ"ÌL’|×ë|ÁoÖ¬E⇲Xòc3­Z(.-e‚læ;ëÛssú—ÔÞ½OgòÃL¯^#%rs¾^2Âk#¬h $sŠ@jý-¾;û‰&¸xX¹ÛqppÈm ˜2¿1WñR®_¿ªv ÁtáÂ5í]Y4€µtîíÛwœÀÿT—¬J~·™ç^-•.]Â?ßË ¿f./Ü…¼Û‡V)‚¿Ì-¤Ù4r«yðºL|d$ý¯ø0Í2;Ÿœ´Œ!˜“¼ ÁS‘ä6?ü0GœŸGIŸg®½v¸ø ý¦æ§T·Aƒjµq£y≠ÄLURÌ?ird?(cœçžû¬øûÜ!õ ù®dÛ˜¦~d}·ï8à8à8jìØ±[ËþY)þ•Å/±¬vÐ|Óýö«¢û÷Þ{¶¸bíEÁÍ eû‰Æ487mÙ’6·Ûºî×qÀq w8àÓ|'-§U“#lN™2OœyŸ ƒSB+Ú±ãáa+pÛ\H@õ$i—:ßwéò²DÞe^yå[[%e¿;)¸hw«‹ š²l'š7¯#šÕ~2ξýw‰¤…¬/ÉÐñ›²ý€DÞk®¼rˆyá…¯Äé~žŽËžë~RÁÿÌËhLëׯæ[£¬)ß‚ëã;Ú·ïÙŠQº}{Z€êÎ{D0M{í¥ ¦i8“©‡»†ã€ã@l¤=¡±ëÊ’ƒÚWÎ4ö°Òž3g¹jñe²ôÀ%è ³wZä»-³¿8ç)²—hR=nb§ô·J•²âsz±DiÞ iàBP"¶Å‹óŸjÖ¬$x sß}4x௿6ãÆÝ(Zßõ…ÜT‡ÏH”àíæŒ3ž·…±÷‹øÙ®³Í¹_ÇÇÇå‚)!ër„`:oÞJc}N¹øyç¡sÖ„ 3% $œZUÛ9 ¼Á‘ã€ã@Þà€ó1q<°ºšñƒÅ§äU>ýô'Å¿ôz1Ó׀粺2ïÝûítðKÁsfzé¥Ë%6-]^°àsŠò «>§#ÇÇäqÀ ¦1xLÓR×Ùj§L‚ÿûßÓuj/ºèhóÖ[?›3Fõ#%âý®»Î4mÚ4²Íäê/þ±½zµÍçaæ–[F  ï?*L&Ú©:uªÄG ®â´䨶ÂêsÏ})cÖ¥˜¸/ÔòU„V4²Ž²Ê„K2Ô5hPÝ7åÿûïjõí¯W/MH\¶,”e¨OŸ3D0}WRªZ®\84>§¸^e–š4iâÐ<2Ë4W¿Pp¤›ìLcpÁ41‰aúéÜùyɸÑU4¨Ít5~ÒI¥;ΊK‹ {hº²Ü>@DëØ±=$/ñ¯ªùÍj0§á“ÊÇîª|ˆô2ä{§UµÌq¿ŽŽYâþ¥kÖlÖs1åã"Řù†² )Ÿ wйç!p~«MŸ>£U‘©1eŽÎŠÆM©Ã?V»/ǤrÀ ¦1Ø Ø2fz; FV#òóüUW 5®AEmÛÙT®ïŸzj“¤÷ >çœs¸¶VuÆŒ1µªhSí§V-§UMú q :àÏ¿|ùz5Ç[ë L€í3oXŸS†ºtéz5õ£¸ûî³$)Ê¿Š–Ò¶mã0N eçì°·ã8à8+p‚i¶7lXÃüüóßQk0™‰‡yŸJ¨gÏS%¸hª¤Å„äɤXܼýöõ Wrûíï˜K/}ÙÜtÓ)Š1j#þõÄBðÅ ãè£Ð.Z 0V§NýWÝ † iU«WÇWu_P=äÚÿ˜Ù3ݯã€ã@aä‚)¸Ò˜ñ-!˜2çQ¶dÉZq ÁþáG:tè•2Wßo&OþG5¤A!$RbÝ PthP p²D:i(Xwûöz¬OŸöâZõ©jU_y¥«›{•+îËq w8àÓ,ò½rå29ršÞ\|ñ1é¢?3Û,«ô¾}Ï–´yÊ þ-Ó®Ý|Í*uðÁûf¶)W?où€–mܸM@¸øZUû¢²©UƒÂ*«#ÇÇÔrø8‚•bš…Û)Jƒ¾¤ôhîÜåüî…/:‚*T–ð9…Z¶¬kÆŒ¹Á\|ñK”ú¬U^ijÔa Úºî×qÀq 5p6‹lðùòË[I¶‘Ê‚gú^6Z ?õ¤“›Ï>»U@ùË›öퟔ ©Ã+¸½ãÈ ÇßP%¼þúÕföì%SÌ]æ‰'.·€ý‰á¦›FHêÕöë^Ǿ™g>×l2¼98äð%µZÏ%KÖé…@ñ%%(2Hs箋ܧléÒu‚ªžU7¨9 üÆïi8vÚiO¨ëº/ÇÇ”r üiNé¥óÿÅÐrÞGYe¿h¾ÿ~Žj;“1*Vêï¼sƒDŸ˜;ï£mØY!«’Ѿk#qÔ«·ác“ a™5k‘ÂUá³ ®êÃOŸ·"Š­ˆŸªõUkÑw'ÎkWÓq þþ{…+`Ú´i- r$x1½`º<Ž4Ù¡"µ 7†”,J!‚ª&L¸YÒK¿.¾þÏ]»vm¯[®ÌqÀq Ép‚i6z≉ٽ©¹ë®1æ‹/nKšã<“í­·ž¦8|7Üð†9ùäÇÌàÁ—‰ßã~Ùì±;=;À háªl;hqðSålÕ¸q¿(Öb¹r¥þ ¬"¸*„à«,×ܯã@æ80gÎr™_‹*äéF¡Y³›Ê•ËŠÖ4”…ch</^—áS~$àþ¦MÛ8% F®\¹’jÊê©ÏÌÝw5?ýô·›šãŽržN0MÑšžpÂÃ÷ô­`k¶IB‹iMzï‹/zkÄh‡Ϙ;îh¯˜ªi5ÜVns zõ ÷ÕL?ô¸ß_ª¾ª«}4K‚äÒ«BZÕ Ú¬™ ¬Êíû箟?8€` üøÿ½R;={ö"q{*§æ|; Ìø76h–Š2Lù,*ƒ´aÃVÝe$,7ß|ª9òÈz¢=}CpO1=ÖYùƒõܶã€ã@ò9àÓ$ð”@@øüDç3ÕªUHB«iMàä?bÄ5æùç¿4ýûOPÓþ3Ï\œ_5í ·•›@ÛݤIMý+mØ@`Õ¿ú™6mø¦~f€°"°ªqãšÿ¡„`«"9rs,îÚŽy…œ›0!¤B³g/ßÐÚ¢% 1qŒ2ž« †)ÇÜÔ˜ðHÝHWêC¤•þòËÛԥꠋÛÖ1¤ê´§!þ¸oÇœà€L“ÄÕîÝO2£GO–Üˈvìâ$µÞ ÂïÑG ÓᲂÔ<õÔE¦M›Fá•Ü^žä§öÚk¹Ë­—OEÁ¿=ĬZµÍÌŸ¿Ñüûï& x›f^{í{2.[¶˜øº•—kyÑÐì+QĪ*OÞÔèT•*U$yÇI9Ðrþo’@'‚CúöÛ?å¹Y- ¾­‹Åܹ! *£üã¥jÆ'•´%¢ùÉüæ§lýú­bÆOæ·õƒ¿(î"Ïls±X1_ý‡jOÝÜä’ÛvHœ`š$^â{د_så•C|PNf`Lû·ß>Zƒ®®¾úxYÍŸ%«~'¼ä¿“Ùæ<`>ÿüó˜MîµW1S¼xUyÙî+ÚÔâ?WÍ r›˜%C)cžè ?üpIQ<¥ÀŒ'YÁ4ÿÏ?+ÅUªšjL ~šHIèúì4•йL¶ãÆÝ(‘£'™{ï«æ} BP®’ã€ã€ã@çQø¤Æ¿jÑb?³pá |’zµ*pü·ß–ðãkUuG¾0åGšñ)CcJ»Y!¦Lüñ.µ”‘Nº}û§Äÿõ¯¬4çÎqpøN0Í¿B'«ßÓ=÷¼›­§oÁ-·´3ï¿“NÀF?#}EwÄqÀqÀq rÿÒ`ŠQ"îwîÜ­ÙЂâºýúk×4ÒdÏù( "‰ (²ìe‡ªV-/ŠˆNæÓOoÿ×Òæ‚ ^÷ª'ÍÇÏÎN³î\ÇBË'˜æÀ­'©ÿó̇Δ`—ßrà Ñ›|Ÿt¦gžÙÜ\sÍ0Å>Å´åÈqÀqÀq ?sàŸV„ –6ST4¦–L_‹$"ú4¨yXü¸×«!]ApÝ#º nq/I}ZQaQŒ;Íw5ÈB³îÇBÇ•ŸC·œœë`š’R,¼Ò¥‹çЕ›%çó#œ¯Ù¨zõ©°RäzoݺaxE·ç8à8à8O80oÞ*ˆ·ÝÝ´i»¤ÞK#ó9–¦1]¢z¶¿«VmRX¨ Üß¾}—Y·nKÒS{ÍæÍëhpÔÈ‘Jºâ÷ŵëuq³zYü^Cȶžûuȯ ˆ÷ä“Oαî;iޱÖ(|8{O>ùI^%zÓmÛ¬ÀЇº¿˜– þÞ;šª/zmwÔq =®¾újóöÛo§/Hò‘·ÞzK2ì)&Õ}ÌñÇo  .)ÿfx•ùóçK¶­ÓÍ’%!¿BN˜6mš¹ð E;Ö@dªÉ¬­˜YÕž ۣ®]»Äïp_÷ÕW_?Âý}·‘zìÚµGÁñëÕÛÇ¿8Àú$2ùþû¿4  K>¦}0LÜÚR(RcºbÅ=^£Fx¤¾L—ç­73g¾$É3À/Þ˜„]޹ÏqãÆ tÛ?9Ú§1ÍAöâ{D Q‚’ˆ oÔ¨F^-}ÓD›¾ôÒeæ½÷~QÍí×_ÿ) üš£ŽªŸ¾²;â8Áo¾ùF̧9û_™9s¦¹è¢‹Ìÿþ÷?sùå—›7ÊBîIóâ‹/š3fH°Kl¡aýúõâÇ÷±§oÑžôÑGæüóÏ3ê¾æŠ+®hë*ˆò­†é«¯¾’çà=Á‰o¹øàƒÌ9çœcvìØ¡u·oß. ºPÚÊö¸Ýq€ §Ý»÷H‰4ÁtæÌ…¦U«†?Ç4lXC5¦¥;vìÒHý`×È…é?2#ß²e¡àTúsŠŠ-*¾ÿoæTó®]Ç”s€y5§ÉiLs˜Ã]ºkȇ~ë­oû榾dºæÏ>ûPÉVÒG&ðê" ?'šÜ÷î^:.彋-LÓM*¬ýøã‚qº];¹téRy!'fÈuº¿m¤æûå¤.Çvî ¥j¤Î—_~)Á!¿¦ûrŸþYë®\¹RLŸ«´Ýà׊+´ÍÕ«W«Ç¯¥ 6ˆ©t½žÿÃ?¦nxT2ZH®o‰¾Ù~ 8P"¬[¨ÐxÝuש9zôhÕ˜2fKñúOÚ¼òÊ+Å\z°¤}e!v§dH»Vp~ßÌßçÄïï#3|øpm.ÖX¸e¼CËzÙe—‰9öa=Æ÷ý믿Öûb ,¿9çï¿ÿ6𺎲Ï ž +˜¡ï|ÇŽ‡Êu£jS €š9s‘)S¦¤I…9‘¢üÓH¤€þH5²žÛwpH-œ`šÃüfÂ8ð™4JŸÜÃE{ûÚkWüMGŽœ(þ!™‰sVŸÃ¬-ðÍ{ì±æÔSOU÷qÇgjÔ¨!è ·ˆY°–š¼÷ßù_ÍTAò€¿¶W}ž 6LÍÙO=õ”¶Ñ±cGÓ´iSI­x–/œÞ{bïXGü SÓwëÖ­U8ôúoƒ:¤Ê¬^½ºø/·èý·1„:qýõ׋ÿß1Ú?Lç5R!Ѷqà 7h}»F³gÏžº‹Ù|Þ¼yú±åôMçG¡‡âõßž3~üxg[ªnåÊ…Ãÿ ðÒ'\ Xcùé§Ÿ cp,X ÖŽ{#ø4=Æb>·oß^]ØF MŸ>ÝÔ«WO~çêµZµj¥Úæ9sæh¹ûÊ:ǯ\¹¬j=ieÆŒ –ß®]3ØGS*Ӭα͚ÕJ‡UJòå‘Þé¾ûVR_ÕÈ2·ï8à8{p‚i x lÓ&èê>—Œy‰NZªö´~ýjb²|ÖÜsÏXç{“[¹_€Ð††î·ß~SÿÇçŸ^üê¾—hâå¢í)ª> µk×6'œp‚yçwü£uÄ9½lÙ²rï1¤CE«‰À‡öm$ZRŽ÷ë×Oµh#µ~ƒ²A_Т©EXÃÞjÿýwVÍÞC† ‘EØ1a¾¯§#ÈÞtÓM~SølžrÊ)ºÏ6¦r|BD{õê%Pgã%£Î±¦jÕªÚ¯Xý÷” Û:*xX·Y’ê3èm,-[¶ôyHŸêÖ­ë·…i¿K—.*€¯]»VyI/½ôÒ0M5ZW4ÎÜ3´¨Vx÷r™æÀ‚kßž8}úY8ÔW‹¢ËtˆÜûå*Œ¸OàQ$mJýHZ´h©]»räa·ï8à8Ëp‚iŠn@Ïž§ˆ¦«’h£F§èб/ƒ³ÿðáWiJS²•œxâ£bztšØ˽’K.¹D¢ŒV :4¨Dö Har†¨‡Ð‰)ÁSóÅ_lJ•*¥V´©¯¿þºh˜TŸLÚ3fŒ˜>ˈôú‹¯çA¤íEûÂ4Ž––sîºë.ƒ6vöìÙZM,AGEŠQ_Q|SÎ |6©o A¸C‡º‹€ŠV“>6š^üMéAMñúoÛãwóæÍ¦X±b*ˆÛmúŠ o)ÞXlà/îðšóðS-Q¢„À±õ…æb ¸ùïúàƒ –e%Õh7oÞ\²ÀÍõËÜFÖ8€Æ4Ž` 4„`J€)ö¿ÿ¾DqMƒW!³X¥‘™ ¨ƒÆ´víœ÷— öÇm;8dÌ'˜fÌ£¤Ô`uIÿë¯ÿÈ3©ëÈÂ÷´iÓZ4ò¼éÝ{”Lòi¾€I¸k$[Àìm ÁÒRX2åcÇŽÕ¦{Ž!Ö¬YÓeÏ/Â Ú |&BD¯ã;Š93>B)¾–z˜°‰^g‚DK:eʹ篨¿(~™A š»ƒÇÙÂ2Ü¡A…‚eLšhm™Vˆòö$~«/¼ð‚_ŠŒÉA—¾Åë¿’l3…ÆtРAÁúýÅ_¨»“¿¥`#Çbëñï…ðéµ4uj(7zÐ䯨Qr9°x1šÍùÇË4p³E‹4“}“&5Å¥d»hªËˆûEZä>½øý÷¥âR>jÚQÞ &6¹½Î­ýùçŸêâ“Ó=Gc1פIý4lØPŸ+¬(/¿ürN_>åí#|2'[Â} %óUß¾}Õ ƒ5k®Z‰‚æ<«´ 38ÒÚ?«ã9ÁW=¨ä^0ŸXA)rŸ¾´iÓÆ<þøãúá™eÎÚ{ï½Óá&ó ãSO"‰~ã/´XP‡ë²€üðà ç[Ê9þÑoðXXpÓ‰¤xý¡Ì¿ÄXâ>1~Øðræbüæñ¥'0´wïÞÊCéÌ]ð6¹oÜSî l{ß µ†±0~\ßR"c´usõW:í(Åøâ‹ß¼}÷íé}üñ¬_9±Ë‰¿©wÜqy Þî ò'zb'ºZq9 ÁHž Å­,³º÷ÄOø‡Ä§Ô“‰Ëß— "Oü:ý}™x=Á˜ó8OVÑþñûî»ÏÓ¾W²dIýœyæ™u!Ú­,3—'›'Ú?O8-“ Ϩ$ÝÍ¡Ö?M­+Q랼ܴLLsžgzmÚ©\¹²ºuëæI4¿Öå‹r‰~×}™°=NµMÎå#Pžø¡úõcõ_pNµ¾ÓZWLùžh <újÛ­„'ئž¼4üöâEåçK —'(ž€ÿë¹òòô$ €¶-šQí§Àoi™¼œõ¸Lüþu¸?‚§êïg´!x«žÀU+Tå’ã^çJA5Ñq ìž×±ã 0ôï?Þ«U«—wÔQ÷‡gçÔS÷î»ï½tÇ'MúGÛȨteÉ: 5ÿ_¢$ž Fè3ÈÿÿÏ Ï¥ý??úè£Úœø™{"ÜùM‹ÛŒ>›²àòx.ÄZá‰ÅDŸmñÝö$8QëŠß·>´Í³,‡ž¸Òh™øë3ÎÏ4Ï8ó‰}žìY\n´?b¥ð˨+B›¶ÃsB¿þúë¨ûb}›Ç´’|‰›’'‹YÝe~ˉ¶# Xí«‹¨ ‹_scéÔ©“Îy"¬+_8Æ<Ã/u!ûŒŠfÖŸÇÄåÈS¸–Ã{Y¬ëiç¹—^zIË2ê sx"X+?˜O™™?ì½£<òˆ×¹sgñK¤¶üd¯( ¼x<æ?açl‰ðÇ% mŽù’ëqï¨'('ž³ZoŒÁ¾ÄÛ†¯ô1' iÚQ.pছÞôš7¿×[»vs.\=ãKnÛ¶Ó0`¼9·ˆàð„g_ ŸéjÄâ@fÓXíÄ:Ž0ŠPzÿýé_ТUðD & ÙvÆxq!؉¯’/˜Úr~y9ñ¢Œÿ’³å¼Ä˜ì›Tþ'3}¡×–'ò‹@ÇKÓ¾Ü"ω×ÿȺ¢mЗ³h<Ñ*DÇ •yip½h$O´Ãž˜=Äÿhu3{Ì ¦é9&™T€­© Ì]:AóÎ;ßÑ:,öLßoDÀöE@»Õ3fŠÌnŒ5É«W¯·Ý͑߬¦t¢Aô4Å´«‚ ‹4AÔPá á ë† ¢]Ó}8þ·çwž'peúÿ­Ÿ.vÃã¹ßjO Ý<Ñ6 ¯æª K0¥/ŒyEP6´/’¤ÂšXó|±0DË„ö…}þËVPŠÜG0·#O²ÊéG3u0((Ú†CªP/–—Äįן4i’Îcô !œ¾ÑGö¿áqÒqIÒvl¿Å}ÀàX‹VTç› *ø‹h„6UquòDé!xÛ…b¼þ0_ì/ Ú…Œ[ ý<©Ó>°8yã7t›Å= ÖhÄX´Å¢”!áýÙgŸ­ÍX›ëŠvYy1tèP-ƒ÷(l_â1ZŸ¢K…`êLùòÎ ºÿþŽ î|×]crãò^³dÉbæöÛÛ‹‰¥·¸—è×'Õ7vóæÈ{† ¸ )å&"LBòb2¢¡LwmÌd`”–/_>]©@‰‚—Cº²Èø²ÆŠÜÇgªY³faÁT‘çÇڷجDæG£xý¬‹.ÀO€‹bE^jVŒvAe‡v˜šÏD+­Š;–D,_¾AþOÅ$‹WYõ-ýóÏe~à“½ÌâÅët³^½ªâŽò…=l¨K&(¤"iÞ¼UyÒ¿TMKð püPÊw½a,¢!ÔçÕ‘aÊÅ-†ç×üÈEC§®˜óIË‹YW„5äH½ {K$â!mPŒ_ž/ ÞhG4¤Úû\[¬/Q÷9È|uóÍ7ëó5Ã̸AìóœqŒ pÇg_y2¸‘}ÌažAÐ@D8ÕÀNø!!ŦúE]®g)rã¬ÛŽø>ªF¼þ€aŒ[「{Ô¨Qêço¯i1ÁãFp €38¯Äâq´ó9Fð+ó~ú÷ßÝàøcQOÈ#_nfÍ¥Q¡B)ñ¯é,¤iâ'3+—z‘ñe<°ºøv×¾-ÕºõñqÁQs.µ5ðѯŠà&Ñdùâ$ðŠ$à¥xéE#|œ°Ï/o,ùe …¥Ÿ¦Õª…SDãïÚµ[Ó´À'ø°|ùzJHDùIòÿŸ*As!ßøY³ÈUB^Î韇¿ÿ^!ÿó²D^â¥Ez O,ôx–íbR̲X8µ»<‹DbìÈbT´… G!ÐløU“ÚÔ žgѪùþ–üÿ-!Ç¢Œ6‚ÈôÿØD ¡N>øÊ~òÉ'ŠbƒŸôfÍšeD+¨„+:x€ßf„k"œ"„ÑmDC懜#‘3"Ë¡ŒúCæAK@úáÃIÜ ‹¹Y†ð(ZÓ°ù7³<†7Üó pËŠÿˆ¥Xc´åyá× ¦¹xN<ñ y Ž’`Ñòp†;¨çb·¢^ºsç#ÚçNÓ¦ÍA¢‘{Ítîü‚¬&C飞ঔ 0Ÿ}ö™jM²sa4+AÌQÛ˜¤DF#VõÁ´Ñêä¥cñÆ’—úéú:mÊPðKÑœFFÒ/[¶A4Š¥Ìyç!ÎÊI0ßWÊ:SŸf"I|WEH/°FÖKõ~´¾ÆêÂ'ZJ„9´‰àÿBÌ DCP"VRôZ$ˆÄ‘( 6‘HAd ”â ¹±Æ`3·`å daí6²‚†Ä_\ÑD@°ÁUâÿ©É>öBÓDÎ@CIÝ`ß‚B›½¾ýÅÿŒúÃùÁ '’ÑFlûdƃÁt˶Œ`(,2,8,e–Çá§Ú íðŽ?Öí5ó¯Lsù.ôë×AÌ5ÅDÈ›&ý {*W.£)Mßÿ&‰þÜ"P?šü@¢Ã1Ú‚ç¸mÇÇǬr€èy+˜FËì´k׉.ߨX¦`Ewëv¢yãŸt¡OèC ×®Ú~Ì›·R Éòž`jû—È/ðp6³B D2 ‰ˆÀnܸ±Z:HŠ& ÁloDïc"‘#ÅCÚऴƒLè‚ ×·Bfä¾VŠò…KÙé „lÚD#L:h@à1Ï/×EøFÈ\5a“F˜>`ÎÆrDd;Zcþd‡âõ‡D'¸ @8¥ß˜õÅŸS/‰k úC>ǹwàÆâZÁ9$96l˜¦ƒF¶‹Ç´‰Ð ‚ ü"ꟲ‰'ª6ý‚ .VËûÛÑœ[ݱÔr૯þPçýñã§§öÂÙ¸‘ú¯½öƒDnÞ)‘œ}Åi}j6Z+§ætðSáàbÁ¥ ~JoÅ2#ÜokAëÖý%²ùðJ¥sg‡Ïèq€òš5»Ç8> n"È)’¿TÏ™2e~dQR÷3üÔ–ÄzቦËîjBA"R^¤ !ƒ2‚ r͘ú‰&Ò?S=M|4}ô ÑzDuƒŸÄ ®õâ!m؈qÎåÚ÷Ì$pHz®fz\´¹Q÷ ~â¿ID¬Ó65ˆHp‡µ®ªHÿþýýSlä9eârà >\Ë#ð‹ãŒ`"‚« $ 9#…óÄBÏ%¨)^à9AF\—s,‚'3.Ž[T«l`Çí9¢eÕkñ•‚OùÎý²ã"ø í¸Þ{‹, B©GÐ&oŒZ!¯T?íE?„1Žr™·Ý6J}M¿üò6„Îåî$|y\ ˜ ÎêÅi|YwŒ©¥H¸ÑZÑú‘cÞ‘ã@$FŒ¡Z.W…8pÊ)+¶ò 7œ$~Ìw˜!C®0íÚ5õÙóòË߈6m¼`Þd†½R¿þújB›úÍ7·‡ažRAàúç÷eÑì ÿÍ–Ño0‰Ì„"hIl5¼)£ÐÐÍ×ÔÀ7R"Ø{7è§H™D‘«Ÿ#ÇÑH’ZŒÍ á&€m¨ v¨¹ sh‚ðùd\ø4âF`Ý‚m$c3>~£ø°‹@Ö$}FcéoŠHƒ†!ãxa &°¯?ø‡’‚¸®?´$Ü*ÂBÓi í0fw4Åø§Mì‰ðí1~ÈÖÙ¶Ë/ZS‰È×D%ɾ7Œ×­œ| Æmç0éÿý‰R|KLQùGpÁçë±Ç:É|¬d±'þ1OJÄhK1M´÷Mp¹ÇÕ¼we^"|9DãÁŽÒ8¸>s þ¢Í›‡›æ'Mš§åÅŠ¥!J\|ñ1ârô©¼œ7E |"ZÀþœJÓF3[˜É –ÁlOBŠHB`!'aò·‰1¢•ÑH±(2@*V½¬ÇìmMâ‘m G ¥ÔAÀ‹Ày~VöãõT“XA ¢MMw9¢çECžîxäX<ŽÔƒç+X5X/¯n;ÓWˆ—Ä[)Ø5 Jàåê>ޱþN[>¬_¿UýGgÌX  Ý5*†U˜ÛÀ”Lmø&Zh ¬ mš$Hwj<¤ "ûƒ¾t ¸Ùâ@aç±L³õ÷IîɘÂ{ô8YÌáï‹ãxâÐÉíEöZ;묒Îívqòn«‚i«VýÅ\4E…±ìµìÎvp(Lعs·¤ˆÜ!‚ii1U/Jç"´`ÁjIÛ¹ALÉ¥ÄDš&˜Â#`¦êÔ©¢©ŸwïÞƶ¿þB0Ý7ìX~ÛãüÌÛo¿=!üáXã#X†Üõ‘iC|85Õi"¸Ç‘íºýÄ8PØyìÓÄþ')«uË-íĽøâ—̯¿.ÉT;®²ã€ã@áã&„ižLM‘œ$ß½øœî§&û ÆT"õãòÌÿ³w`V”ßDi ¥T°@TJðo‹‰-*¶(?ÅÀnT»QìVìVÄDŤ¤»;dþçsÖw˜{÷Þ»wãîÞÝ=çyv'ÞþÎÜ™3ç=çûÒFVM:À ø–§®)S¨ÖSÐ01²SL³ðº°"ɵ×&Sá 9îä,ìaþºÄêQC†ô–)ýó…‡n¹µßåÎ=wHø²È_m–Û0ÊžyÚ´EjéŒWL¿ÿ~¢øG6ÓeG£ÓQ£þRùÍ•ÝäÜs÷Ö¨K/}Q!ûã™ê¹Ýv¥ÛÇ´<\cùE`ÃüGùÅ +G~ê©dßÄWóYÙ^Vª#H=À;nãÞ{ïb¥Åºí¶a²ômî¸ãö«ÆþbQ jðelk寘B†_§N5¤÷H,\¸BWž»æšæâÓþ·Låoð1~R×®]SÍÊ ÔÀǹîÝ睊¯åÃx…ÐùÔÕé_W&·P±®½‰!PVˆ§ËĸÌbš T‹¨ÎAƒNШv–,-KrÐA;ËjÿSš©/¾øChMn ñÈP–Æic1 ‚#°jUΊrø‹Æû—´oßÌ­^½.ÆÇtôèÉ©ÜTÓù‡¥µoßý4¨tĈñnÇ…i™Ü2sY&õèL6auÅŽ¶É(¬Šª3f1-*$3PV‚ûî;ÑüÃn¯½ZŠu17­Gš-–*ñëÙswY^n77tèñ«ýT—„2müSM C ü"°vmNðçßÏtûí·c Lãã'J`Ôš5S"îY.…5*_¼¿¬O>^Hç'Ér™ûF“2¶Ge:<•ë€Ul”RÌbšån¯½¶Sꥫ¯~M§®²¼»ùîSp§ýÈÕ²öñ¡îí·ÇGÞMîºëÞt³f嬛œïJ­€!`”zÖ®]§c?~N.+'O{ìÑ\ÓQLaAP<«TÙÔí´S¬UÎÍ[o=J¥ÈcbÙ‹€)¦Ù{mžõëw°òî0´fÍ¿áù²´ƒ‚zúé]TAeÕ¨wÞùYT–jÙŽ C K0Å4K.DªnT¬¸±{è¡“…êd¾»á†·Re-õiðöî½—ûÝM7õÐeZ!é¿à‚çÜŸÎ,õ㳆@zðÜC°†6o^/,äûÞbõ1ýþû áù°À;?ÿ<Õ5jTÛ]tÑ~®ÿ×î&†€!}˜bš}×$a¶ÞºŽp‚«‘¥}ô[Â×}ôÑenûíºË.{IüÉ®Kòûº6viŸõß06 P±b7i‹[„'ñ7…§Ô+¦ø—"¸¡°¶n½•«\9'*,$;sç.uÓ§/t»îºµž&ÏÓOŸ¡JéÙg?£¼Ñü¶o%‡€)¦%‡}ZÆßê±ÇNs&Ìq¼Y :J{!"nï¿ÿD÷ã×:"xî¹qƒ¬=D­&¥}|ÖCÀp¡%s›m6(¦cÇNw+V¬–ÀÈ ѪU9‘û<á(õçãñƒÛ”Èü]vÉQLIgQ§Ÿî­Š.>ìX_M C ä0Å´ä¯A¾{ЬY]w÷ÝÇÉCõ÷Ö[?å»|Y)°Å5Äjz ,Û:@ñ˜6mëÑc°®(õÄ_»%KlŠ®¬\kGùC`ÆŒw¥&MꆃÇ* ¿³WV½Å?Óqãf»rÖ°À;LQ¦zõÍb’ð9e¹ä>ë.¿üå˜4;0 ’AÀÓ’Á½Ð­rH^g:ž¿ò,JuT;÷î»}eùÖËeš¯…p“i»B¦ý¼Eß–ç›ÃÆ^j˜=;‡Þ):üHý4>ç½bú×_³Ëz ©höGšìÚ¶mZ±²>öX/õY¿îº²Íz’;id¦˜fÙÉOw®½öp]ýS¸ýLœð6ŸÓcܘ1× Iÿ᎕`Ž<ò~ץ˭îÁ?³eOí&1J 3f,Òž.^¼"ì1K‘FÓ•+s–-;v†ê7vÕªmæõ;ð¡þôÓ×®]ìjP>í>ûì îA'¹ÇÿJ}Ö£i¶oÅ‹€)¦Å‹w‘¶Ïß#ôÇþ%BbÓPQpyA|rG÷Á—¨•%]Yöt·Ý®ªGu…)øM C ;˜æõ×G¹×^©Qý¬sÄm%xj7¡¢jíC±þe,£ .wõêU“ Æ‹)Š)VO|I½x‹éÆr ßòDÂô?Ë”•ŸŽð|¨Vm3ñáR˜VÊÇ쩎g‡‰!`~áÅÓžµ’!.¼p_!ßÁuÖӯ陯õêUwgŸÝM9Q¿üò wôÑídzÿ'ñ5»C£úü°Ü•¥£e12‚€è¬W¯†ø…/Õ6PLホV¬È±˜î¼óV ýK)øÃ“r•Ë«Óݺµt/¼pŽûöÛñº в‰!`¦˜ÎÅÒ «™ÔªUE¾ôŸ*wäû…xÛmë»ÿýï`‰Þ¿F”Ó‹D1m©VÔ½öºUW˜4ècSR °•5ò‰Àĉs]•*›ºfÍêé*wBA?DÐ'«Ãuê´m¦O_¤Äúñ mÂÌq'Û·oæÞ|óBÇR§x·ûå—iq9ìÐ02€)¦™@µ„êÄÿê‰'N×Hô+®x¥„zQº›eªð†Žt£G©þ /§'ŸüÚ¡¤vëv»»óÎßÒ=Jë½!Ý ˜6o^×ábÊMX=¡…Ûu×Xʧ9s–¨h§N‰Ÿ~øaâå6ëçgä-[néÞÿbå@…Ý÷CÀÈ,æcšY|‹½vH¤xàd׫×n‡¹3ÎèRì}ÈDƒÇwœ{饗2Qužuâ›V©R# žÚÆýùçx ¤ºÓ-^üYžå,ƒ!PØÿý݇~X¨¡Oœ8G­¥(¦o¾9Zf3&¸wnœk¹Ñ?ÿœ©í$³ˆ2ýO9V†*¨0 5tèÙÞq¬õË/SÝUWª oAë´r†€!SL“cSjSð5ejúºëÞTžÓÎOs•¶î±ÇîÒK/-ñn¯Y³^ÕsJ¼ÖC Ûxøá‡‹¤K“&Ís°“kܸ¶*~÷ÝD·÷Þ­rÕ=~ülU:«T©”+0nð<,¬à.píµ‡©’ 5ßðáãÅp’DúoYت­¼!`Ä!`Ši eå°OŸ}ÜÌŸgÜ{ï]ìš4©Sê‡Ö¸qcwÌ1Ç”úqØ ²Š–Ò©S§zxS¦,p[o]G§òYÞ…2øØŽ—É“ç T•øÓz¼`Ár]¦ôškM˜^“GÙVWêÓç9õ;íßÿ]¯ uYCÀHŒ€ù˜&Æ¥Lœ½ûîãÜV[mîN9å1¡=±uãËÄEµAe"à!ÄçcºY³º:Z”ÓÝw]¹‰À&È÷ëÖ­–¦ñqÃI6ÍŸ°P'éAQ0¡ÜpÃÛµÿ°ó«T¥Qܲ†@˜bš@¥9¿ª§Ÿ>C•R,§ÿþ»¾4Çún嬠ÓêÕ7SNÑ:uª¹Í7¯3úáÃÇ)§é[T9ï˜Ægq ê(jaj¿oßýÝ;ï\$JéB ޼MøN?·glQmõ•KL1-ã—}Ë-kŠrÚ[¢Z'ºk®y£ŒÖ†g¥©S¸Š+¸† kéP Ôgå¦xùúë¿]íÚU“*žpvè˜t?¾®‚·i³•ûä“~îüóÿO;ÞÖ»$PkbA«³r†€! ˜i9¸ Z·nìî¿ÿ$å7mÑb‹2©_. Ñ(w@µå–5”Ÿ”YžåËW‰bšÛê‰Å”ó‰ŸXÆô÷ßg¸Ë.;°Ðø-^¼Xâø(e=âþî.¿|g÷ê«´R;nézölž²Œ%å ÿû¿ÿsuêäïbŠi9¹3:hgwå•Ý5R©¢ˆT-'Ðh˜gžy¦`¼¯¼œz¨|:…¾ÿþ{¹ž×¹GzZÀB@IDATyD¦=7ð4.]ºÔ{ì±îâ‹/vP÷Tî¿ÿ~ œ{/aqÆÕ«W¯„iÉNî·ß~Ù|­ëÒ¥ðf×_½Dco&1ÿKØÜÞ{ï-¬;e Ëv Ó“üòË/Ým·Ý&Ü•ï‡Yzè!Yè7vìXW³fMQ::º[n¹E| c95Ã%¼³nÝ:YÆs‰L}o®=9õÔSÝ¡‡*«›]Â=K¯yü56¬­™ûmº[·n½®fǶbÅœI>V†š5k±Ûi§Fþæx!ŠÿÒ=÷,¼ÅtòäÉú{Šo#ÙqåÊÛ ]V YîØ8O“adçË'ß|ó,†Ñ)ÏÁÛT~ž• \°8êïáÎ9gˆrñ•‘eßHPp&NÌì”Þœ9sÜ|à–-‹].qåÊ•z~Ú´i…æ×_„²§q®?´üÊW_}åæÍ›—ßb óÿþûïþJ˜ÆIðŸ;wnÒôd ôï믿“Ï8ã wÞyçIN3w×]w‰5ìH­ê²™3s84ÃÌY²óÎ;ï¨UbíÚµÚ£+V¸5kr–îÌ’.¦ìFŽbš3ÿãÿèTýš5ë„CxÞXKYÏå3‘búí·ãÔ¿´fÍÜ.)O‘øçŸ:‚°òú[±âoñë™g¾¼ê±ô¼±6ŒJF3fÌHñËÊdÓܘ”é3·Ýv´:ëŸ|òcnذ‹•'°,xÁ‚ˆð¯¾ G¥Ö­-¶ØB¢}W¸Ÿ~úI,2 UÙXµj•X^f¹ ¸M7ͱ¼¬^½Z•ŽF ‰ö&Ž<ß~û­«_¿¾,Z°ƒ¾ =f(üí¶ÛnnÑ¢EšV·nN$±Ïƒ‰"‡ùË/¿¸Ö­[‡ÓX¶x¸V©RE•Àzõê 7âv¾¨X‹ÖéÖA$þ8̘ÇNª1ЬŒ7Þ ¸ÕV[¹Ç{,i팽V­Z:YpG”¶ñãÇ ïãΚ­`„ nÒ¤IŠ×$*P a¡£5jD“T©2eŠXÉvŠ9ÏŽ7NñßvÛܼ½©ÆÈõþí·ßrý‹/¾U¿žT…4ÊŸ‹¥¸mÛ¶nРAj]¥}®-÷ýƒêÕsr¸Qk×®í~þùgµòrU¨Pbzï0µÅõ¿-ZèuÐÄÿþ¥Â¬PÒÛ·o/Ñéuµî7äŸþÑúàõ÷ç ÚWʇ ˜zîå‘#'éêkømþüóTµÒüKñÍYº´R®ná_Ú¹ó†ßQ® vÂ0²yš”3–-[ì»ï,³ÝJ©½LGuTÚ}½ä’KQª‚¦M›òë 6Þxã@,_(Bz̹;î¸#—¾¦=ðÀaÝò"DqD¹ î¹çž jÕª(IZ®{÷îÁúõë5ï5×\Ö-ÊYвeËà´ÓNÓ4QŽ™îÕýJ•*2}¡uŠ¢ˆ¼öÚkšvâ‰'Ûo¿} Ó®ùè×é§Ÿ®iü;묳QV¿ýöÛš_”ª0Ù³gëù'žxBϧóÏ>«ý¡_´-Sÿ(ØZNÜ‚6mÚè~²`Ü¡C‡°ïàöbÉÒúÀM2-ÎøD¡Ó󤋲<ÿüóš&ÊapÊ)§h}™R›½êª«4>R§X0C¬çÏŸ¯} ?QÒt+nZ>ÕŲÐgÊѧ]wÝU¯7ÅZª÷‹XÃ~ø±þ?þø£²Ï}Å}˜¸^Ÿ}ö™¦×—û1Ñû{üÄÅ!e>LôÑGµl^˜\}õÕÚgÊr‹ûFðÉ'Ÿè>íО|èïàöÛo/t_µ‚<þã+Œ´m{]ðÈ#_híÛ_Ü{ïGAƒƒ‹/~AÏÝ;\<úè—r½è6ÚžÐM ^|ôÑØèéïsÿ‚§XL \‡4Ê3b1ÕßL姃Må˧¼ S_Ï>{¦¬?ÁÇÝêÕëÊ$Xšð³Ä‚„¿çƒ>¨Ó²3àƒ‰%iê®]»JЫ!¯¼òŠæEC˜ ®q7Þx£ð%.vLEã{ˆõô»ï¾ÓóøxâÓ)Š­€ÿÖ¿# ‚ÃRˆUõÀt¢p†Sðüñ‡2~QRuÜà€•ïŠ+®p¢ü©õæ›oVRêäzPÞ xÑ÷×_ÝaQÅòë%¯1^~ùåjÕÅb?ýV”Jµšûúü–¾ã¿Ê¹(Ôb½ëà.\¨÷ >¨'Ÿ|²ü®Vkvúvî¹çêõ0`€Ò`Íô2fÌYIh¸Óïµ×^ê3LZ*Lp7à:‘‡Y€çž{νüòËŠ·¿—ÁQ>Ì|3EÒ×°² îÌ»ÔÕ«W]~·KÄ¢¼P,ÐMÕ::bÄmõ×_§ ÖËåþÙVŸaU«ÆZL±–BçÔ¡Ã6ì¥Um™BÀÓL!›åõB#õüóg«ßÖùç?ë֯烦l ÓÒ^x¡¼äê©òɳX°tŠ˜@¯Ü x¡t¢À¢81…+–LþDÉË£(òÏ:¦ˆQöÜsO lxM§ß¯¼òJÝžp ®U«VI<çœstª˜){±þ9±òéô9˜š>þøãåeº±‹«kÞ¼¹*I¤õèÑCó³ÄçœMüÿ;¦p“EÅêˆ#ŽÐiwƆ‚]çW±tæú‹¶~`‚ÇT4W(gLÓ3ÅUšÚ}÷Ý ¦ÇQÔQ .bzœ¾¢‹åR|«©¯ì°aÃݪ™ß urM£Êç»ï¾ë>ø`õÿÄõeÓKª1¢ä¢ørO0½Ž²)Vy_T~ëuj><‘`·ÆÇõõXõéÓÇMŸ>]~[j ®'H¤£ "(½^ÄB®Óÿ¸“ „ ’ “·ÞzKƒ›Pì¹o¸PìqQI&EÑ×duÕyVkZ·î_¹ÎÕÝèÑStl»ì²µ1Mž8 ׃¼Ä—1bD A8驯€…²Ç¼W¼(Ë”t~$]œ©3j=9r¤6C?Á-–@/o¾ù¦Za±>~üñÇjÁÄ:ˆP+)\?‡¼øz9N5FñÁÔ"”õ×-zM±öb-§m,Õ^°´2NÚ–[n©§ jÛgŸ}tßãßô¿iô¼ðI–ž úÅ„ûK-."ɤ(úš¬î¢:¿pá ­ âüQ£þÑué9Q¹ò&õé§èb!7Üp¤ZKI‹ZF¡š0aŽPÒä€#oy~cXæ¹?ý}‰qó,ä£2*Ìdð,~`FÓ3¹Ï³“>ÿ,ãùà´Ëý›îK|T¦#< ™­‰~'*÷Ì3ϸ_|1Q’ž+,u_ÒŠó™Å×3ÜÄž~úi}Ÿå³ªŒf·©üŒÂ[:*?à€$ºø7pàî©§¾).â^2ýé§ŸÊ*.Ÿ„DFp@ÂçÉk4¢Ð½+¢øòáWžïž÷A%úhn¬«X¦a±|J@‹Zf%ÈJÓxØõïß_÷ù=Æ Ëô3¼›P¡à2íÍCpÇwTÈTc8äCÔ:·(ÔJ”¥Ý(‡'¾¤œÿC+ˆÜ}÷ݪD2fú L£vØaŠ=à€O)¼Hà g)c¤Š™ÒQh™úÆ=ƒt/©Æˆâ Ómá>Àµ÷þ™”ç†{ÁÙgŸíð“Å∕W"à;î¸p ž:¸¶ôÿXêÆ­¡0’ °¡-îðuÆâÚ¿D=½‘ï–RõLôÕ·QØ-SùH­ZU4 ¿mÛ&a•û쳃ûì³ßU!íÒe;õ/%±J• SöXS7Ý´¢*±aÁr¶ƒ?<Ñ(!™ ðS×'ž5üÁ&Âs× TL™êSïÞ½Ãg7mðãÙLߘýà™ÁÇÇQùTýa6ƒ˜ƒ¼Î`fOøãƒüù`öçØÏ‰b„Ï,.KY'òÂ51Áƒ?ÕhÖW_͉6Î&Xò•/þ‹ ïÇ S½Xäüa ÓÓµìOMd¼(Œü`ýé@ˆÜ5ÒšÈgþDÑ È‹\vÙeaô¹<À”ÀGåËC:Œ*EA£½}T¶(PiDå‹£mËÃ!Z¡°D) DyÒ¼‰ŽÅbˆ{AØê ò]¬Œa™Tc…ZÇE9þˆ—`$-KT¾?¿õã/Q6öD!S\ü Ö dŠYÁ¡[·n(÷Z¯¸ ø£iò•Èëa{D·{V2ˆßh˜&–@ÖBöyá2¦Ãœ ïÀGå§£¬èFåÙ~Ì1ÇbqÑ>ñO¬àXBúÁÈ}y‡yˆ„EUóP‡¼ŒÏ”Š2©ù|ßâñ+WØ~^˜p]i>‰;H nÚ'ùÈÙ'$øKïi•_˜¾†N±SبüçŸÿN ®þøcFРA_ÁqÃ}ü×_3õÜ.» ÐÈÊNz,dûaúô*ìƒÃã¢ØÉoT¾Pòˆ›‰Þ?þ^á¹"Öù@,úgzw@>Äbº Sˆ|…çä#NŸ¢D„çØáw*³/¸ŒË—/ÄRªéü¦¸'äCYXW+Ëí-Ü¿1uðÛ¡¿Ô“Û¨æû ÷¤>ò;äÚú3ýÍDÏËG] {Úžç¨Ìèè¡2ó>[}Úù0¨Ã eÁËŸþÞäCNŸ_þÙ<÷£"þóŠ|ÈEO+;‹|t*Ž>kÃ3[ø‹Ãg"i\Ÿø¼¾ [ùHÖ6d&*<ß__¨Ç?kÉȳAè÷´ ÷ØPN¸¤õyÃý®7Ï~ïñ’¨\Û(FÔG?¢õR¬G2‡P7ç¹ö¼o`2ñýŒo7Ù±“t£ò±™!·Üò®ÐË\|ðÁ¯á¹lØÉ¯bšß>óDIßÁ\EùAó ’¯ì\i<x¨òã>è ƒB £hF2h‘xð7*(¦ba„ëR><ˆ "¼„)@‰Ê§ƒ/‹VB{Pïø\´M^>¼ xÆ 7˜þEM§.±Xª"=ï÷S‘—ºLáÇ(¾œßò_ÿ"õçýV,3 /þDãòù ²M… /6^Ìñâ•øóg²¯…ULzè3¡ûº>xá…ïEÙî'¿« ‰ô½iÓËDùÈQ6~øa¢*¦2}O’ ôQƒ}ì‹d›_Å”û¥H,sºe_f6TibŸ?(Ö¸%HP?Ö|GÅ·\•!èëh·‰|Ló‘%îrþùrÀG,&(OÂÒœESž/|'££ãÙ”ŒÊŽ>Ñ4{5ô]|¾õ8‘bJÔh|"<Ï’ÑÀ‰«ŽÖ'L!Ý}E Bxð!ËýX¡HCüù>ÙÒ?ñc×<ìÇ+¦$ðœÇ€ ìûZhèÄ5(¸õÖ[5 cuÐ>v©òjÿþ%RLãû …õG?êi—Z$/š¹DTqŠîˆkÎ(ð!) :‚ÂP\1ñ T…_Yw<Àª',ÊU .â• ,¦<_h‹6©‡™"ŽQžSñCUk+hÌZ`ñô–<¡7 ÄEDóR_¿~ýBK%Š©ø“âæ¢Xû™AQ6 -3pà@Uöà\æã]¦øµ}¬€^1¥ Ö8êGY·*-ËX9ö̾ïXvý… Eë¡¿Ôæ^g"Å´W¯^Ú'Œ÷Þ{¯*½^áGeÆÄ[§QT…ŠM«Ì+¯o7•bío^Š)ýGqå†ëÀ1X`$aŸ®©¿Ÿ>ÿüó<ÇÅ(ª˜bɤΧžzJ‡Áµ`¦N|•õÅ~f¬ý(™ÜËÜéJ~Só1•«a‹«CuïÞF9NYq¥¬‹(¦ê”<, <\|™ù‰Îê>‰¿,üŸL CÀ©ß(ÁL¬òMTT¾ûn‚øÃÊoúÛo3$ï* V¬R%‡­Õ jÔ¨œ«\´Žâ܇̓à#ï/³ÁAþX,Uʧ,ŠœrðÒ7üá9æyÁ³„@>Q–Ôœ GQ´tå:ÊÂ$"Ö?ÍÍ\2IEGG™TTvø.ã3Šà/I_|PçðËǧ?™ÖW?oÆèÙ-RQžQÁÇ6 êgb‘ÕóP½á#îMHד6½ˆ»Z¬š®@ëu |(?3ãg‰=Œ¢ä&ôA%!ݼÉú’Ÿþ&£™Å7)U\Aûˆ:~°p2#\ ®{ëd´vÉÆZ˜ó SØÊ–MÄŒ/:'Èkˆ8“?&çʃ&ö%Q–F.S(E2^‰âödÂC¹4 oúÃѼD ®üž€¢t$ñJ±X¦Ü}÷Ý—NQËSF`ѪU7“È{è3ʯ¿fÁƒ†¢8¬’…~¾ßz¢ÐTR唌(¦;n# Gzl1•gà@,ŠZ+̈§÷âùŠˆµIP™iÑ ;8lÅꥤ{¾c±¸j$ÔmC‡ ©ä¢Ôk2åO‘„’Wü(Oe—°ÂÈIxt£Ï=ñÙv,BðAv©(Ï|5Ñö1 ˆ‰¢Á‡QS±&‡§Xò8¿"ÖV­ÅT,NÜ´-ŒñËIGëÎOÞh¹è~ªþŠÕ8š5ÆH¥™מð^òĪ»°Š¤;_–-uB³&^”Œb5ÚDií|þ¢ÜnèEQÖju•z*TØØ=ô+Ú´p'œð°DRO+õc² PPÁ@ô9Dú /#VB9%:=áAç#^ÅM#hÓ)gyÊ.«W¯VŠuº]›6±Ãë³ÚSme‹‘ª zª(,©¬øÔ¹söÐDE_ò©®V.¬„(sXþ`c@ ƒuA¦ù•¹~a:¼‚ƒ”¦d"Ó¨aÊ -DÙhz<•]X0Í+`Ú`Å5‹1 &â7þÁr‚òä%Ú>+ÆÑ7°CI޲ˆ«û:ÒÝ¢(CCç•zðEÉBÃZŠÕ7™ä'o²:¢ç£LÓ‡§dú<ÜgÇÀÄœ”>üÁÁGÓóì„&knAûˆÂÏs›%/0§Dï“dýñù‹rkŠiQ¢YÆêªXqcyXž&ÖÒ&JÂ?vìô26BNA`zîS^bâw%¸½ST<È aaE'„} :râËZV}{|¡óDÉ.¥åŠÒ<ñÐå¥$Q§úBóåxK4ª>”yùÑÊ›” þýw½\ÏUJÕ¢EÎBŒ ©?þ˜)Šçv®gÏ=„6l‘¼H§‡¦cÆL‘ûm¥Ûk¯Òçï§_þ…Í[ǘE`•3ñKUJ5¦÷Y9ËJ³P†1Óm]2áw)~ˆ éè(“ŠÊŠ6¦Ô”!úã•N=™àVG~÷H*Ê3_”™ÆÁG*nULß#l™bÆÅ Ë1UjõÄÿ òCÉ¥./Ìæ@k…%ŒXF÷VìCxÎÐ_Ê¢úå˜yf!œGé§ý¼òj|üÂΘyÎáFà?Òóª"U\^}L„íá^MËWƒËFc½‡¯D$]çUËW~X¹rMгçCÁ;\%‘ã9“ÅF&ƒŸŠ{,¥¹=ñ¡Í’/ô„ÃéGu¢'¢6UD°X}4ŸX 4â•à3"‹‘TѸÞa&‚,ä¡©Nù‰"ÓvÐNfÂ?sÎ3U}£ÐÚ Šé§LÝKTú%”“ètÄ÷IÆ­Á Ô|÷Üó¡c\S¦¨ üä)uD±Ñû”{݃û–à/â¿§ç<ç r!èD,U¤$–He¬ Mx2CŠ9~CD¢ûà'ß_Xø N¤5mÆÓÑüý™ÿ-E©ìh'¯¨|‚¡â…g5}Šˆ ¦d4p>ø‰¾Ó7¦òG0@…Gcä¹C€£o_8žµèòÊEÿÄ7V)æó"Vi °¢~(êDIÖ èþÆBòÑä•××郟|@çõ—|Œ‰úéT„¾Ý¼hæ|=e£Tqyõ1Š‘–Š¿²v]¬ñz¯ù{A”Reð &ƒ(ƒ×!J«§¤ø' :N£‹J’%åU«ÖJÔãÃB=Ò_~důœšbšÿk–‰¼ìxÊêW «'‚—t™VÊ3"8ñULSEãú‡©ˆ(½´9мðâ0)y «˜žyæÓòÜ?èßÿµ˜ÁÀrÈ!¢ô_zéÐ÷‘ûGyзïó1eŠêÀ+PœeJ$x(ÿÃ\Õ9.³adz4´_ô E—ˆu¯˜FóxÖêOú¦¨¤¢²‹æ+ì~"Ê3¯˜Ò7±Â†ÌѶĨ¬jÁ#?Bûà象)/PÄñAŽä•×—Iw ­[TQN·ù`"HôAžWSat}ž%"?ýI•7¿Š©MåË[Ô$oXMå©§ÎÐ ¨ž=Ô¨Ù¼KY޲†~^«_%¦ƒ±@è6¯ˆ`Í÷/h\¦ÜèƒÐ–¸6mÚ8y¸ÇÕb‡¥õëÿ•)ùUn§ÅtŸ¢þ£‡¾«,G[AV[¡+A±|iiœÆgZüÑGÕåC‰l§ðãŽùL#yåõeÒÝÂÀø "ø#û€ºhù¼ú˜ #ÜE¸N‰®E´Lï›bši„ËPý9Êio pi*4'Jäì¤24:J:ø‡h¼£¾/KÀÝ’WD°fŠüÃG*hÜ胓‰ðùEj±ÝÒŠÀâÅ«äZ®—e$7(¦ø“Nš4×uê´!°‰gQãÆµå^Y(ÑøÉÒºëE1Ý®Ô ÿQ–3ÆçÑSõdü„(>WѼèèPB’QÙ媬ˆOx%¨8ƒjŠxV]†0Å4CÀ–Õj+Uª –SÖª&Zÿ«¯þ.«Cµq%@€¯t^€Xyˆ ëRÃ{'«°„V ‚¼$Šöi~‹¥5h\o‘õål[6X¼x¥F#·jµÁb5|ø8á¬èÚ·o3ÈÍ7¯¦ÑûÏ<3\‚ƒŠ‚•>—eLE%xеkW}ÑW\¡k¬´+¯ä/Eƒ ãÓ¡²#’¾$DüGܬ<°ó\af¢Ìa#HW žóÏ#4–nYË—}˜bš}×$ë{´É&D1éå:¨µDS?&¿e}Ÿ­ƒE‡øÐ®tëÖÍñbCù„æþB¦ú£¼°©"‚£¯ÑÞå77ZÖöK7æCۦñÛµk¦Ê©?ÇvíÚe*³¾ÒD•ÆiüèXÊë¾QÏ•×+ŸzÜ9Ì¿©óXª! H¬ï»ï%¸îÝû)¡ :^øwË•ÏN”=°ˆB¿"Kû©rêGˆšD+?ÇT~Ÿ>}„îgú—a½‘uÂ5*,:øv1ç­ (¶PÓ@8Î9X,´¸xV_?[ÊÚt`‘Ò»¿råZ±¶o3øIOŠ•´P’ñWÏÏ*Ra#¶S¤˜bZ¤p–¯ÊPî¸ãqœ¯,ÊÇPQ–»3ÏÜ«|PNG‹r i6/¶8áGý>=,¼àçê]zÕ.Ô%²ÂØ ]^Ïpž©|¡ÊQþ@8õvØa%Á&m=öˆ!æœPç°1)°ªSýú5‘üóÏ<õ#ú—úDò [ˆLo¤³6—]v O²m)@@¢ÇÝÓO?­ËƯð„/;œ©¬Å4=·£GÖé}x‹™¶g‰L¦íÛ·o¯>æB]¥[\x~° e…®JYr~U)€ |lYzówÞѲ<{àFNTT -3]´©ü2s)Kn W]uˆX¾s×]÷¦ø3 +¹ŽXËÅŽÖ†N:%TJ}gREG#^}~¶|ôä'7ZÖöK'+V¬WÕb!ß`/>|¼’í³ÈG¼,[¶Z\J扅~kYµgº{ÿý_ã³Øq#€;VËDA[t2|įjÅÇíàÁƒu…8¡Çrü½ýöÛª¬òŒ2dˆC9Šð}êb °v0k#4wJ¢y¼¡lÒ•ŸpK¢?~AŸnÛâGÀÓâǼL¶xöÙÝt:ÿÁ?—eÝ^ÒÈÚ29PTÚäœvE–±\ À”<]ëþÛoljâÒLhzb_U,AºbÅjY­g¶;øà6ú(>Š9oR:0ê¹ÒqJ¢—>MK¢uk³L!pÌ1íŰª“Õ[Äwg±,gÚK¬•ÊÔm0é#€ÿ¨‰!.(™( øzÁbÚ»wn÷ ¬¥Óù]»¶”@Ìe{›â}wüñ{øâ¶ÍbŒz.‹/N w-ö3´„;cÍ—~öÝwYÛø÷ë¯Óœ¬ÆâæÌYRúe#0 Œ#€b SúÈøñsôù‘Ì¿”<|CÕ´i]¡¯ÛÓÝyçûayÒM²£žËÞkSÒ=3Å´¤¯@l¿M›­Ü°a}Åh“e%Â:gŠ® Õ†dE„Šhƒ5Õ J•#FŒwU«n*«ò4ÎÕùH”ÛôòËÒ`¨{ïý(W~;‘õ\v^—’î•)¦%}Êhû[mµ¹8¦_$«³lî=t?ÿQFGjÃ2 ¢@‹)–ÏE‹V(G)4QÐAU¨û55oÞRm²K— «Am¾yU‡rúè£_ ýϼ¢è’Õ‘a<õÌð"7jÔÈuéÒÅÍ;W©çˆ¸÷â©çêÖ­«Ñü‰¨çî¹çž\Ôs-[¶Tê9Vˆc)cO=çënz.ŠFÉí›iÉa_æ[®U«Šø|+‘’/ ÿã¹x¡è¤àº;öØcËîÿ{EÖAªÔRe}Ü6>CÀHŒÀÔ© Ä¿°Ž&b9]²d•(¦‰ýK¿üò/¥•ªY³râÊþ;Ë4þi§uqW\ñŠ›1cQʼ–hÙƒ€)¦Ùs-ÊUOpH¿üò%rö,÷ÅÊÊ-÷(¡v¹ÁkŠÀ´i „Z®¶î)·Ë.¹a‚ pß|3ÎÕ©SÍñ›—\sÍ¡j½è¢çeM C û0Å4û¯Q™î!V?¼Ôá/vàw»—_þ±L×g¹ *Îcdåʵ:U¿Ùf›äÊ8fÌT·pár}^¤£˜RÇàÁ'9è¥î½÷ã\õåçD«V­”#Ós]Úv#ÃC¾ ì>ȃ† æç§æ,*?_pYæL аa-¡véãn½u˜»øâÔ‚ åK:/žLôÇê4 âC`ùòÕJªÏ¢ȬY‹…`½*¨•+Ç*§ø—6hPK¬ŸNž©§òývÞ¹±»îºÃ…Ûô ])ªsç ¤ü>Oªm“&MäƒùåTY,Í0Ò@€»tÄÓtP²<G bÅÓn{íµcÚmß}ït>xŠÛm·ú˜ŒwÀ0 A`úô…Ú.¨ø–úc(¤vØ!ÖÒ‚i×®-ÝÌT«iº†>êûï'ºóÎ{Ö}üñe®~ýé–€šî˜cŽI;¿e4 Â!`Sù…ÃÏJ1¼t>û¬ŸÛn»-ÝGÜ'dÙï ñöú"nŪ3 lA`Ö¬%Ú”ÅQ£þÑýJ•*Šò9#¦‹XVGš¬Šé²e«ò=£r×]=]­Z•Ýg<éÖ¬ù7¦n;0 ìAÀÓì¹Ö“ÿ *÷ÙgÏÔ¢{ì+ Œº[-$!`”=æÌYâðe cVtjÖ¬ž|˜Öw¿ÿ>3f°Ã‡w,]Ú¥ËvbY]™oÅ ©§žê­A–—_þRLÝv`Ùƒ€)¦Ùs-¬'qœrJG÷é§—+'!Êé}÷}bÖÓ8ŒìÐ(íàS w)2rä$%Ößa‡F¢˜NÓøø‹òáºté*™ÊOÏÇ4ZI‹õÜߢ˕>üðçÑ$Û7 ,AÀÓ,¹ÖÄ4iRǽñÆÂEx°4ècõ=ýá‡I‰3ÛYCÀ(uÌž½Äm¹eM¥súé§)ÿ)¦ Ýo¿ÅNåø„«®=«V­uÕªåM• ˜@®¾úPwÓMïº>›(‹3 DÀÓßšNè8Î9go‰ÖÿŸryäýî²Ë^ÒHÞôj°\†€!­°Dq:UÝ_ÍrøŽî¶[SצÍVnÞ¼¥)„€¨‰çjp$ÓøHª%I5CŠgŸÝÍtRYäãYõ[M‘Õ’ C ˜0Å´˜·æ Žt2Ï=w–NÅ}úéâkv«{íµ‘¯ÐJ†@‰#°`Ár]^tôèÉ®J•J®U«ª˜B´Ï)Â4>iíÛ7×i|ΖNî–[ŽRÕ^½w“&Í£JCÀÈL1Í‚‹`]ȇº‹ûê«+Û‹.zÁaAe ÐÄ0J äXLù ·n½•Ûxã4 ?S¥bºÇ-\¥J4ð‰QÄÇ4Ší<ôÐ)ºêñÇ?¬ü©ÑtÛ7 ’AÀÓ’ÁÝZ-$XK°x¼÷^_]y£{÷{dºˆ›|œú—Ò/ŸÂZL©@`èÙó!G_L C d0Å´dñ·Ö ‰–×_¿À=ýtoå=ìÚõ67`À›²láŠBÖlÅ C 8X´h¥*ˆãÆÍv»îºuØä{4wcÇNsß}7AFß@ áG k1ÕJäQþ/½t®r›b9õНO·­!`/¦˜/ÞÖZ†Øÿ•˜ÿÆto¾9Úuèp“»ÿþO¤Ü&†€!¬_¸+V«â Gé.»lPL;uÚV—}þùï•N ßSdéRÙJŽÕâŠJ ÷å•ó$àj™C9]¼8'Àª¨ê·z C }Šî—~›–ÓÈ*lìN>¹£1âj×»÷^nðàO$Xâw÷݆V–Œ4l•†@X¶,çÃqæÌÅ™_Í5jT;¬§ví*n§¹o¿¯AJ>‹iQLãûúü¶qãÚîÕWÏwþ÷è1ØÍ»Ô'ÙÖ0ŠSL‹lkªx z÷²Ët?üp­*¨?þ•(¨×ëò¦æCV<×ÀZ1ÒAÀO›O™2_ŸâËtìØB‚’)M”OÃbZ³fþÉõ}ùTÛfÍêʌ˅níÚu²$òý!]Uª2–fE‹€)¦E‹§Õ–Eðòºä’Ü?^ëúôÙW¨¦F¸Ýw¿ÑÝpÃÛ ‰!`”,Lã#&̉™Æ÷½ª[·†Nç7o^ÏŸÒiöLXL} Ö’E=úÈŠs•Üá‡ß§K˜ú4Û†@æ0Å4ó[ %Œkd_pÁ>jAí×ï yéŒê™ݹç yK¸‹Ö¼!P.`'dêÔb1mœ È÷qÑ5jr˜VÐåHÃ ÒØÁ­àµ×.pp'rȽîãK£”e1 ¢@ÀÓ¢@Ñê(@ sÖY]EA½ÆÝ{ïñJ-uØaƒÜÞ­Dýk×þ[*Æa4Ê «W¯ ‡²ÓN¹Sh¢š6­+K‡þæË”iØÀ;Xe_~ù£ð¿þú(MÎñ1Ý,šµXöY•êÃ/u-Zl!Ë Ö Ê¨+B±tÂ1ʦ˜–ƒ‹lC4 C ø÷ß¿nøJãå›oƹηÕÓGÕÎ}ÿýD7}úBù€\YbSéõêU×%L™Þ:t„(Ìw¹Ÿ~šßu;6 B `Ši!À³¢†€!`G`æÌEZx»í¶Œ©dÖ¬ÅJ!ÅêOH·n­téÐ×_­Ši¦xLc:‘âà¸ãvwŸþ?]€Êë®{Ë–2M—%ùAÀÓü ey CÀ0Š ©Sj]-ZÔ©“hüJ•* ïpŽ'ËvØ®%ÿƒcú¼zõâõ1éÜð>ÿüÙ²pÇ1ÊêѱãÍbMýֱ̪‰!`SL Ž•4 CÀ(3fäXL7Ž{ >ÞáÓ¹Ùf›„µŸxâžjEåDI[LÃNÉÎ 'ì醿Ê}t;Gäþ¾ûÞéð51 ‚!`QùÃÍJ†€!`|F‘xa,¦Ç»{LíDÅã‹ …T&W~Ši4̓56s.´RÕÝUW½"ÊêC®]»™n“MÖ§Yƒe3J'ïµ×^EÚù¸ïÔ"­Û*3 œyæ™î¥—^J‘£ðIÈssUôÎ;︃:È­\¹2WZ~N<òÈ#Zuù¿cŽ9F¸ïr«V­ÊOU…λnÝ:áº\¯zFŽ)ËN.¼˜[¹-¶ØB°|ðA¾ê(ÎÌñc|â‰'Ü…^Xœ](Ò¶Xñ ñ´QìO›¶PW‚êÔicä€vÖãÿÍN…/–¸ß~{XTSJc.œ”I^{í5áÿ§ÈÇfÓ"‡Ô*4ÒCàË/¿tÍ›7O/ss3Æ=:Wé)S¦Èj:8+Cš'~ûí7÷í·ß:”l/Ôݯ_?÷ÑGéŸ?Ÿé-Êv=DÉY#–ª SÀÉÚ}ë­·\Ïž=Å ·“öwùòåŽs(Ø/¾ø¢¦%+[RçãǸzõêB\”ÔX°’ä„D-¦ð—2…ß¶mSM‹þkÓfk=6ì·óιWŠŠæ-Éý7ÞxÎU¬h¯×’¼Övæ¨\93¾Þf1Íüµ³²iÓ¦¹eË–I4íRU®xÉ#3gα¯Ý¢E9þoXþø*ôéäaŸsk׿¬õMžÏ>ûL¬%¿)*y¼ÐÎwß}§yY™jÞ¼y>)ÜΙ3Gëœ?¾Dû~îØzY²d‰ð«.ÖòÇwÿ뿆-j¤o¾_¾Žt¶Œû“O>ÑñÇçŸ:uªûæ›o$"zI|’«]»¶ZH±’ò÷òË/»ãŽ;N늎#Yé^ß0× ¥ž•¾¸vãC„ë²~}ŽE l~ùåUΣJ8ùûôé#Á5»ëµgÿŠ+®Ð1î¼óβ X­‹‰Ú㼿hk„ âg8\ó’†0.,Ò .Ô…¦OŸž“ùŸ ²Lž<Ù½ÿþûáý’hŒ§žzª»í¶Û Ú×°‚bÜùçŸya Ð²e9¿=šG1Å¿”U—âeÕª5z ª&ãGÇŽ 2‚€V›eñs Äß%í±ÈômСC‡ R¥J„ѲÜbpÉ%—m´‘רQ#UnQ‚7Þ8xàº~øá B… (sÁ=÷ÜT­Z5 ?õtïÞ=eEó^sÍ5zŽòÔß²eËà´ÓNÓ´m·Ý6¸å–[tŸ>têÔIëk_P¥J•@¦I4íÄO ¶ß~û`óÍ7ûzúé§kÿÎ:묠^½zá±(ŠÁyç§Ç'tR°Ã;„i~gðàÁÚ/QìQØ‚8 ð튥'xôÑG5«(_Á)§œ¢yIgÌ¢ùjQè‚&Mš„Ç~G;Í+ŠlWé^ê–•½™rW¼7Ûl3·|ü1øÓÇI“&ýõ—âÆ9Æ´å–[ò ]k±æýøã}—Ãíøñヷß~[¯a²öÈL]Ô}ÄGh›ìsäÃAëb\²|g°é¦›†ééâ*dözR–q{ì±|4ä#÷k»ví´½ÂôU+Èã}’•ŸòÈ•~²¬ä4hÐWÿ~øabX°}û‚?£;¢Ûló¿ Y³Ëƒ!C†G“²bÿ7ÞÐ{B> ³¢?Ö C “ð ~æ™gм ³˜ÊÛĤü" ŒZß~ÿýw‡uíÁT«ÙìÙ³(8êÚ¸qc×µkW÷ꫯ†@½òÊ+}»¯…Ô‰òén¼ñFµjŠr V.¦·±’rþºë®SËž(¶¹¬a…²C_°¼a©=ðÀ(œ¡î?þ5º«îÉ'Ÿtü‰ò¤ÅE©t]tQX>‡ùYÏœq}øá‡nâĉj©½ôÒKÝõ×_¯–_Ú|þùçµ-¬¢«eñÇ ÛÃJ‡•”?¦À±<>ôÐCîøã— •êÚï¼êHç:0E/J²“ µBbEîØ±£;ùä“uë¯ýlÚ´©ëÕ«—cª ì°ôb¥OòuãÆÓþ³Äf¼´hÑÂzè¡juNÖÖR/X2±‚cÅåü믿î“®XR±Œ €O.’ W¬õ7Ýt“æY±b…{î¹ç[îÇø1ú†Ra“n_}]ŵ?~Žò€ÒÞòå9xNŸ¾H,Í äçö/%äúµkW‘øör/~‘kv‚<&†€!Pº0Å´t_?ë}!‹¢ÛsÏ=X$e©Á²’ËþªäÓ¾}{¦ ò¡t2]ŒÂ4²X2Ån3y¹6r¡<ûì³N¬ e‚:q ˧»òÊ+u{ '¸V­Z%íñ9çœãÄú¨y¯ºê*UÇŽ«ùñƒD©ë™‹«ú¦¢!øU’ß Š°XñôP¬¿þtÒ-~®ä»üòËÕ…áÚk¯ub5Ôs/¼ð‚L«¶Õ1²Fú®»îêªU«¦þ©¾B¦ª/¾øbýëÛ·¯»óÎ;UqD¹CÒ©#ëðÓO?éõ'|HÅʬÓñL‘ÿù矾;ºe:Ĉê/Êõ@9åÚ¢‹%5œê)wn{(‘b WųM›6НJ,Ûn·Ývs 4eêè0-&ø¹Šu܉Õ[¯7מaƾÚ\Û¢èk®J3|büøÙn»íêëYfùî»ñÊ_ÊT~"Y²d•r˜žsN7qu˜ïÞ}÷çDÙìœ!`”bL1-ÅϺ^xP¼ ì XzAYú†uÔQª ÉTã…ôÈ#Ôs(¤( ±ÅZ‰•Š  ]vÙE(_çÖ[çoøãè¶Y³2qÎÉ”°&y¿Éø )Ò}Z´Žø},–‰"ձʢä¢8ËT°Ãšû믿ªòFÝÞo?GιΠ/JXTá%¢å¿Y³f©Å+³_[=:Ò¹à‰ èyñåâýviÁÂëûΘèNq©Ðt,Åñ"Óûø„rŽäÕ1^°ÐF}YãÓ°Ê#©0aœÑûü(§Ûm·» %]lâûíkŠ3xŲY³zr?U–{t¹¶ôÝwå7³µÛtÓÄC(°5„š©yózr/î*>Í„¿Ñ vµÌVͳ ºŸL ³*|øòa^¿~}¡;Ö=õÔS¨˜é¶ Rÿ»ï¾«µÌåGøö~ï”cœ¼/RÉã?®3dü61Ž`h ^!]‰¶IüÁ›Ìø•f1Å´4_=ë{¡ˆ*X©*«Y³¦Nï2•Ê4>J)–C1¦À‰pÇrˆ• "6<€ (Š y“ÉŒ3Â$¦,¨H42Ÿ¦’ü#}ÄRúˆB‰rÊ´<?XgiKÝÍ7߬ÓÏ^Ñf*ÚÿÝÿýJ¨d‚2|öÙg«[yÒ©#ë >¢Ú$ÁL^F¥»LÝG…6‘{ï½7ì7y ÎB)e ‹ë{ï½-¦ûwÜq‡ºLøˆ¼ÚÃd’l\©0ᾉZuùÈÁ­ƒk–LÒÅ&U_“Õ©ó?5iRG—õŠ©øšº=öhž´ÉÅ‹WŠbš |É%Èoo®¼øs³N$­Àbà>Ãí(Órûí·»Ç{Ìí³Ï>îÖ[oUj6>ä :ÌF‘¸}¦³ÍôîÝ[]‹|ܹ˜½I&¸]  pÌ‘ŸÙÜÊÒ‘h›|hòàƒ?Ó)Ÿy’?Q³±·Ö'C `ºùÓO?Õhsü”"£QÖ°®2Õå«"–SBü ñ{äAã} Ãû ¢ 4È¡yH”*¦s‰rljO¡Yi5øuF£Èÿ÷¿ÿ…~ŽXzñƒeúŸ©xc^ LÓo&¦™Q†QаÖñ ”ÀYò0/ 9m£°¢”£„§’ºuëêчdA눯ßO‰Ó0Âê‹E— , \ „i}¬Ï;^ÆÍ9Æ 6Œ K+¾ÁðÈ‚>ÆüÁù 3® yµß¿ü§Â|×™\3°ºàn£·æÓn&ûšŸq¥›wåʵbñ_"Ši]W§N5µ˜¢œŽ7;\†4Q]K—nPL±šöè±›»ûîÃèþDe²ù("(<+˜@P,¸ÇùÝ{† ¬âñ³0?p¯x¨Ï¢Âï”ß0¶~F!š'ûÏo…ã·„ÂŹ¨0ßWîMžyŒÃ?ûøíñŒÃ½k>€qi‰ÞÇ|ü&cÿ <ùz¡àUÄø¸öÏ'fq°`R–瀗TíPÌ(¸"1Îè3;U{` îà5$Ð&þð_|ñ…Î*ù>0Þ<‡°ÐžþùjU¦MøË.»L1O…}|›Ìª`8‰ÎŒpðŽ1#Šu:¬!¾¯Å¾•ŽšeüFå‹âÜ}÷ÝáØEÁ äa©.S¨á±ìsªö`BñÏz‰1Ð2Ôù¨+¢~Ê,RˆªLEŒ!>¯ ‰5PëBqÆ‘@U™ö…e…:¥tƒ¦ç¤Lûk~žGÜïMDé¦mS§œ2»‘–bʳ•úÅ¥I·PÇ%j‡¾ˆåU?Qø±šê±È¿TŠ)yÀ‡ké¬ùÐ+°*º(‚žÞ …ãG" beÎûh›QÅ”6¹~âË«MpM0`€Bß ·¡@,¼zÏqßäG2¥˜ÚT¾\9C /˜vÁyŸ ü'ãE¾°X:”)>imœþ¡ûÉKðeM¹Ïô:¾ ò Í«š„é¢Tk„}²ò´Ë´x"?Dyˆ)Ó€XEÖÎÉ¢¨ƒväa¨ã`Ú*¾¯ò0—©á:awn_b©Ôéuêõ®Lûãò•Hp= P2ú|K…}¢:pÿá}åÂ5áúð.ó’Œ5ħ—Ô6ñ“º¤zcíYŠ€LMé B7EýwòÛ]ü=Œ —Š*TÑzQ˜ÄR=eû†@©F`ÆŒE!‡iƵtiR–'=í´Î)Ç••» b­ZUÄ'xñ&´n¥ÞÄ/û”—p¢^óOþƒD¦_µgbÅÒç×ø{ã.ÓÛêwNO/G°>Ó|ð :4dîàùâE¬~7×6/ö(sÏA”à¼?iø™Å¢« ùñWåC_¦UiFñÄ /žýßZ„ç ø‹Éx‰Vò1ï%U;äyúé§5«¸céÖÿƒ½å2‘Ä·ŸÇbrÅÚ3sð‘¿ŠŸ/‹ò(VSýðçò‹=¸Á Unñ­Ç¸â%ú.‹öͧ—ÔÖ,¦%…¼µ[ª `!,…¬QÎQ_—Li$¦?ŽnùRöôMÑó%¹Õƒ!Hëy|Cä¸H§o(àØÀK„ªIù@‹©W 4¨%÷Á:ýÛm·¦)€Ç´ÆQùÑŒ½zu‹c-±Ä½=]jö£ÊCªN€‰•’w,êÑ!<›–ã÷GÀ´h(¨^ñˆ²ƒ`L&Ñ ®xöh:ÐTJ®oƒ|Ì&Áà… K8ú–Kù¢AOX`YÄÃ+î^!(sXˆ“IªvPŒQúY`EÚÿÁ?…–gU~Û£¾L|ŸÄ½BñMÄŠ@0³|ˆxÉ/ö|ì@ÇGîè5KÖ7Ÿ¿¤¶¦˜–òÖ®!PJ€~Š ñX. `bÊ‹‡7 *Ãt„—&Ó‘/ñL§˜å)D-¦PF!(œ~?ÑYŠèë5b§òÉ»É&„1â(7lØÏ2U¹!j;Q=¥ù‘â~µ9(ÛP^ÿaG¤µ,A¬ÖU\T°˜ÁKÌ tDï™îWK„ŠK2öòó‘L=ün™EŠZ‰º÷n(¡|h¢Üñ¬`J÷@Pð˜Î_}u}‚G9KîE¸5`@9¥]¦õ± {Ë2–b¬¡âתϒDcã\ªvPJQNqÕÂrìÿ`óà#zذay¶# d”)!Y_p¯` \S,²(ÔŒY°Ü2–¨µ5öÉÚÄ „¨}¢þéÏ÷߯VöãŽ;.Y—²ç|~]-¯!Íd:ø)›Ç^œ}ƒ€  ¢B`QçÂÁ§§…"Eƒ¹ˆ(ÆŸà"/òÑH]Qj‚|ˆÜ-áü//Ñ@^B^„¸gÐõRÞ$óeðS»v×=ôYØéF.‘á&ˆðdÜŽ(³05rä?q)Ï=wˆ°Ü AUÎß^AƒŸ|T¹X35`… „`JÑ4ÆÖÎyÖÎË”¶³ˆL#É…f.d ŽåÑC,³ãÑà'¢Ø‘Tì>2œ²´-.ÄïÖK²¨|ÒÅ¢ˆo¨–¥<ÏX>úè#-.ÖÙ”ìŒÀÊòŒñÌ>ãŒ3ôŒ,*?Œ,¹œ#`Šiæo”L¢EeÚ>acÐÏð$z?ýŒXK5/J ’$8!ŒV¥,´8¤ñ²c‹R„ø/,þaKdi¢èõ„´“F (Ó&M. ^{mdØ(ŸzôØð2";PKÉÿ÷ß³"gcw…5hÙòJ¡4{76¡˜Žò«˜¤[âBˆßd®¢(P¤ ÜÆ l |è¡èmïÓh¾Tì^9¢ ±‚j„y´l:û”…ùƒ>FÚhÙT,Dë ‡ªFéG˰ÏG­¸ÄŸNzœª¤…" ©Úãù•ˆ%R<×®X4õ#›ñÁ •t°OÕ&}…&OÜ<¢ÕÉ~¦S ~’·¨‰!`¤‡ÓeL»ã[šH˜–C¼›¼ˆtjP8û4Ð(Pð…c Š)+y!ª_—¯O¸÷tJ‹%Aqøº%åÆ'‹éID,§êÄϪLL…1…ÈT¢Iö# <¥êOZ¯^uí,AODÕ§X@Kóá_ŠÄGåëÉÿþQç•Wv—éË7$¢½,PÑ8š\ª÷™'(†i{V4‹§|PP|Sþ~±Žø´øcê‰ ŧÇHŧ';¦ÞdŒ#¾ SÛü% üRÂñéÉGãóùãTíø<©¶©Ú+s ®É‚«¢ýH†}ª6ékªþFëÏ–}ó1Í–+aý0JPœ ‰˜8O"VNÝæE?£™âþ¡dâ»æ£P¡·‚èšáAÔ>ˆ•\igPbMJsç.ÕŽn±E ÝŽ3UD.Œ]­(~4Dä#ø¢¦’SOí¤Ëš^tÑó¢ÿ›*k©JÔÕãðAô@¾Ý‰>,‰zO¥øÙŸ­Á2Á¡´”A©,o؛Ŵ´ÜÖOC €âñ\|ñ]":3‰ÿÂ'CV|Ñ´DÿnaAñÑŠI&ÂT¦¤Âs>Ú˜МkR:`)RÄ[LÇŒ™,ÑãÕÝøñså:®¾ßÄö8LI«R%oß{î9Þ Y¿æ½/Ñé±Ô?¥¥Ü½ìÚµ«ƒÓ³°BPŒçGÖEpM2ê nT“âG ªÑµÑ.UÏT#ë<‹¿&E)NÑÏD˳¥å•)z/Xi‰òÒœx‹¬ÏcÛÒƒÀ¼yËTÁÜ|óªÚi,¦mÚl­ÓûãÇ'ÿhÁbšj?Š@ãÆµÝ€‡ ¥ÐçnôèÉÑ$Û7 ,GÀÓ,¿@Ö=C Û¸å–[”šE”ü«(ŸpB… ­‹—Tô3ø˜â‹ }LT˜ÆgÕ3 *z“Ò>¦â{ùùç)B)´­¬hVQ脦ûÓ¹¶‰V}Ê•)r⤓:¸®][ºóÎ{VVÊqˆ$Û®!`d)6•Ÿ¥ƺed+XD…æE—D9õB`dÑp'za*¿OŸ>º¼ú,СCM†SéC–HÅwÍ[AQl±²º çP`±Ðâà}X}ýl)k¾oQD²{_R¯˜Nœ8×-^¼Røo› Gd} z›ázôØ-á­ú”0cää A'ˆÿNYeèeáÝÍYš1’l»†€!…˜bš…źdd;(§S§Nu,{Ç¢ë¨ß§ï?ѽqO`J¨áßsƒ ÒÀ&”O/Låû5«!††0?RDxcV2áœð4²1)%D-¦¿ü2ÍU¬XA®q#·ÓNÄ…cZÒQ•ŸîT¾¯¤NjîþûOtÇ÷°Ûk¯íÜ 'ìé“2º…ÄÜhe´!«Ü(Aâg»Šª+¦˜’V!P’fÇ_*IE?ÃÒ„‰ ¨´J”nçJ/ ®pµkçø—Ž;MÖ@¯/,Ôjúî»oÉêN(u9kÄGGÉT~^ùÑü~¿K—íÜì#Öù7´–-·ôIE¾e…"s9)rX­Â,E@pM›6-òÞ™bZäZ…†€!ÐÏðdbDX¶ Ëç¦zjìØé™™Ã5Ú®]SñQ^-Öõ™nÇF‹è~~‚Ÿâ ÷ëwûñÇI‡û¤{ÿýK.k_¦ Ç,ŸÉÒ¼&†€!Pp,ø©àØYICÀHþ£ø”šQ–/_#ë½{ÅtšLáç(¦X2™ª5êŸhöp¿0Š)4S>ÚË­\¹F¬§Ï…uÚŽ!`d¦˜fß5±†€!PfÀ*Z¥Ê¦ÂW»H‚â–«o)ƒÅ}c×]›¨e3Ñà—.e*³DIi«[·š{üñÓÄù/7pà‡i•±L†€!Pü˜bZü˜[‹†€!`”[PL±˜â_Š2JГ—Z‘{âU¼r‚ŸR¯úäëI¶mÛ¶‰»é¦îî»?”)ý_“e³ó†€!P‚˜bZ‚à[Ó†€!`”7V¬X£«7á_Ú¬YÝpZTš1c‘¬•›hßÔÂXL=Îð›²liŸ>Ï ÀTÚ¶†€!%XðS–\ëFÑ 0xð`ÇŸ‰!`=­[·.t¥k×þ«dú£Gÿ£4QÑ wÙek¼ÿúë¿…·v‹h’ÃbZ­ZÁ§ò£•a54Q;nãPLO;­sØîªUkݺuÿæ›Ç4¬ n‡vyäTwØaƒD9}̽õÖ…1–Û¸ìvhň€)¦Å¶5•Y¢«e¶%«Ý0 ŠSäŸæ»V­äª"ü[o&Šèz!ßÏñ6óKŠæ—`?Wå‘Õªmêž}öL×½û½J#õÜsg‰Â\!’Ãv C $0Ó’@ÝÚ4 C œ"€å“hüõë×Ëj`¹Ó}÷ÝQ×¶ÿöÛ AP™PL¿Q£Únèгݘ1S”F*‚rzUl؆@ö `Šiö\ ë‰!`eVvš={‰ÛtÓŠü?àÆk Á~#YjvCÔ¼WL ²òS|ýñÇù?óLo÷ñÇ¿¹þý_‹O¶cCÀ(fL1-fÀ­9CÀ0Ê3PDÍœ¹H‚›ê'\zlùÍyäýâ~°¸¨›°ú C ¦˜&ÅN†€!`d‚˜*WÞ$ϰš¾ûî·x1ŠiÑ,Gšg£‘ ý¿÷Þ%nùòÕî ƒîq£GOŽ¤Ú®!`dSL3ªÕi†€!xLkÕªš0-þ$þž+V¬‘åKg›i|š5«ë† »X­·G5ؽøâñYìØ0ŠSL‹L«Ê0 C 5,5šn SݺՔÓtüø9R¦ø-¦~$ô÷™gÎpgŸÝÍ]zé‹îÌ3ŸÖÕ«|ºm C è0Å´è°´š CÀ0ò@`íÚuºêSÙÂä“Oîè-ZáXÊ´$6+®èî^~ù\÷óÏSÜÞ{ß.þ§¿—d—¬mC L"`Ši™¼¬6(CÀ0²¬¥«Wÿ›tŧD=îÜy[Ud'Nœ›(¹ØÏuê´­ûôÓ~®[·Vî”Ss—_þ²ú {G¬AC Œ"`Ši½°6,CÀ0² –"u.pø™æGªTÙÔýùç,¥ÊO¹Lå%kРÜOœî>øàWשÓ-î•W~ÌTsV¯!P®0Å´\]n¬!`%‡À´i µqVUÊ0¾ÑF¬eÿm~Še<ïAíì¾úêJ‰ØßÙ]rÉ‹îCîucÆLÉx»Ö€!P–°%IËòÕµ±†€!ELº@–ü¬ >£ùéÖŠ«]ÇŽÛºÇÿÊõîÝU— ÍOù¢Ì;uêT÷ÝwßÅTÙ¶­s[nÙÚ½öÚ$wðÁ÷¸ê»ãŽk“Ç ò†@»v턯¸Y¾‡mŠi¾!³†€!`A`Ú´®NªnÞ¼¥iÿ÷ßõnÕªµb•lí¾þúo÷öÛ?9øMKJ¾ýö[Q:KÚ|åÊÛ¹?®+ d—u7i‡-ÁÈ>ú¨0Xœ™ïÚM1Í7dVÀ0 C  LŸ¾ÐÕ¯_ÓÍž½DIókÖÌ{5'–#Eš4ÙÜzh÷ÐCŸ—¨bJ_6Þxc÷ï¿%Ë@?L lE V­Zîšù˜:+h†€!fÍZâ4¨©EæÎMÏjêSŽ.¸`_÷ûï3$àhl~𵼆€!PŠ0Å´],ëª!`¥¹s—ˆå³®ëi:²|ù*ÍÁþöÛ7ÎÖnàÀÒ)jy C "`Ši)¼hÖeCÀ0J#LáoµÕæ®jÕM]ºŠ©·˜V©RI‡|饨Õôý÷-XŸ C L1Í K6 CÀ(<p—Ο¿Üm±EuרQmQLá4Í[¼bê—$mÕªëÞ½YMó†Îr¥SLKåe³N†€!Pº ýúõ¢˜ÖøO1Mw*?'ø‰õê½\vÙJ¸ÿÆ£ý)Û†@AÀÓ2r!m†€!`d3sæä;¡˜6kV×ýóϼ´º»lÙ*W¹r¥˜eL·ÛnK׳g{wë­Ãd‰Óü‘õ§ÕhÊôì³ÏJÐØѲeËdyÖË]«V­„y¡¾;öØcÝSO=åÖ¬Y“VÛ+V¬pK—ÆÄ9Ò~øáâþ±•|ÐláöÚk/ |Ûà_üàƒºóÏ??­ú3™iáÂ…á8¿ùæ¡6;(üëÞ½»,¾p‰ûä“Obºpê©§ºW_}5æ\üÁã?î<ð@{‹-„¢‡ûì³Ïâ³%=Žbú÷ßkŸfÏž4¶$˜bš-WÂúa†@F`Þ¼e:ºzõª‹bZÏM˜0'­Ñ2•Oj¼ôëw°[°`™, úU|’Gøë¯¿Ü«™–Ûo¿Ý=öØcnŸ}ö‘†[U™‚òOŸ>i5Ý»wowòÉ'‡yßzë-×¹sgqù˜îúõë§ÊÝÚµðÙä^zé%Í7aÂ÷ÓO?…eJj¥ù•W^ÑægÌ€5âU¦wÜqG׸qcU&÷Ûo?wã7†]DiL¥´_xá…ÊZ±bE7`ÀwÎ9çÈÇÜ?nÿý÷w(äéHSèÍøx`Ö"ë%01 CÀ02ŒÀ›oŽ7¾D[ùì³?‚ úK–¬Ì³Õûïÿ$ØsÏ›æ»óÎ÷ƒ–-¯ æÏ_–0='_|ñÅ@xLÓ®zþüùÁœ9sQ ‚~ø!‹•–]¾|y Öµ`âĉa]“'O–±ÌÙ‘•¦±È…çFˆ¢ˆ’žcG¬ÁðáÃyóæÔ-JŒ¦_uÕUÁ®»îªû‹/-ZˆB¤m‹Òªçù·zõê`Ö¬YzüÇ#FŒÐs>ƒ(4(S:ÎE9¿ùæ›·Ür‹Ï®[QJƒêÕ«k^Ÿ0eÊ”à믿è‹ú|Øa‡¢¼¢ˆ+W® ÄJtéÒ%¦ëÖ­ vÞyç yóæZT,‘A‡QXY+øå—_ÂþùºÁé‹/¾Ðzý9¶Ó¦M“ûo‰öc̘1aR2|iãçŸH§^¸f*Tîºë.½¢4¢øœ÷V¢¤²´nð믿êiÆì¯a|_ĺªu\sÍ5¾ ÝrD1 *W®¬×*Õ5‹Ç”>Ïœ93¦ïÜ[Æ Fs8Ï5]°`Aðå—_*V1Iã fÍšì§‘3w—û”1 CÀ0Šgžì¸ãUZ©Lã«b*ëÊçÙÈm· öÙ玄ù–/_´ismp啯&LÏÄÉü*¦(O(YM›6Ue¥ö¼óÎ ÄʦÇ(1wÜ‘3¾Ž;ݺu »B‹ÒóÀ¨RÔ¤I“ Zµjªàˆ%.@DPj×®­ 3ùe)È jÕªšULO<ñÄ`ûí·W%²R¥JÚþé§Ÿ®ùÞ|óM=–éòÀ§‘%ñÊJ^ü1 íÊ´µ*•šAþÑ”P3”¨SN9EÛØd“M4ÿm·Ý¦YÁ¥ ,öÜsÏ@,ŽºÿñÇûªÂíøñヷß~[ë[phÔ¨QXþàƒóöïß_ÇR£F ­%–dÛm· È N(Å(ÉðE ú'Ì`Ë-·TE˜züu亊Õ8H¤˜’ïûï¿×òW\q‡zO‰ïKÏž=µU«VizôJ4ýxä‘G‚T×,SwÊMš4I«»þúëõ~áƒì;uê~q¿ò‘°é¦›êu¢\~•ÌÂ(¦6•/ˆ›†€!`dE‹V¸š5«h#PFá7ú×_³òltÅŠ5 §ò)…ÔÕWê† ùÖýòË´<ë*© ¢Ü¹‹/¾Ø‰¢æöÝw_ŠÅAV¿Z¬¾˜L#'t’ûꫯ4Ço¼ñ†®2%ŠŠNãkI±°©çÃ?ì˜ÞîÕ«—«¨¥C0ýKVÖJîG(ʬ àB[`ê¿Ïn¸Á±t&Óì‰ð%/øŠ•ÒXYÝî»ïîŽ?þx {Š5ÓíC† Q||ÝñÛÝvÛ͉‚,.,â“ô8ÚüAÛ´iãD1Ì•W,Æz^,íaZ¢ki˜YvIJ®îO<ñ„^cÚ…_~KW‡ÙDÖ|Ü»øöŠ"¦ezÇÓL#lõ†€!`Ä,Aºñƹm·­¯|¤yACðS4"?>ÿÑG·E¡™(P¯ª¢Ÿž Ç(qø ¢´uíÚU bPTð=D¡DË£{ýõ×õ¿E‚_êÔ©ãPÈ—sîܹªÀÝyçêcIy‚€¶ÞzkÍwÚi§iùDÿvÚi'UªXV•|2-îÄâf½öÚkU Ûf›m4],¤šÆ1m‹å7á1Ê.?ZÄtÝuשr…R‡¼ð ®mÛ¶ÂÈÐȉuRi±þÆ3iFù'V¿›ç–1£ô‹Ë@裊¢Ö¿ÿþ»,Èp°*ûï¿ÿ¾*ù(¬^Ž:ê(õ]%X+¾øu¢,ãÛŠ_(Ê)~žþ#À×•×–ë †(¸‰$ÚqÅpÉ–ôD1–iy‹¯'Ù5óéñ[”s±h:±`ký:âˆ#ܧŸ~fKºC™nР;úè£Uq 3¼S1Ãõ[õ†€!`†€(¦+äe›c1Žwl(/ùy"³|ù±Œæ¶E ÞzëÑ¢àÝå†ýN¬Ž¢IY±ÏËÝ Ö5‚eP¤,XÞP ¢µQ>ÿüs‡•‘)yµnÝsÏ=N¦¨Õº7tèÐк*SàšÞªžˆì ˆFK®—fÍšù]í'Jp^‚eK ÁJ2%¬Ù±Ú¥ÿÌ3ϨÒ,>—|ƒUÔ Ê—·|úsl[¶l©‡~øa¨lút™ÞwD«S/Ò°aCŸä6Ûl3Ý'ÐLûöí먃$,`ÎyI†¯W’±ðú6)C2Õî‹ç¹E©Å ì£!Ú”d”ëD‚òÈøÈã%¿×Lü|Ý.»ì£ÜrŠ_ª¯R¯½?@™F..1‹iq!m톀!PŽÈ™Êß`-Ú~û†iYLSMå{8[þ{ggsùýñƒ±ïû¾„$DR QQ©,¡-J¨Ô_«Ò&©(­¤BÒ¦½hOI(í¨”J’lE–lY¾ÿó9~Ïí{ïÜ{çÎ̽wîÌ|ž×kæ~—çû,ïïõò™óœsžCªÉÀdôè·5R»»œ2ŸáÄW¤Áa9VJ,ïâ¨þV‚ K­|€cÂ"âÐÿ2¯»æ>5î Ä¢ÚýBÖPÿ=÷\è'êi ’-—»{°BB¢`l°ciØýŒ?^Î:ë,÷HàKøêçjËò‹ÿ;P\sp"4ÛgŸ}VfΜiÖRô‚HuÑt$¾NøÂ%Àü5Ø)  CÇ`Inݺu¸ÛA×:vìhï%\6…·ß~Û8þ€q%³ïL}deñâÅ?ˆÐæä×ÑX¹~õIaš(²l—H€H @`çÎ=æê.4iRC-€ÿ¨µn«»öSœ‚ž [I/zŠ-ùcI?7øOÂgS#²M´9@¸À§²I“&f]-Q¢„Y¾`õ„$|C±LÍVXøBè"ermº‚ea´7ø=víÚÕnÁGý;Iÿ9D)–†‘ê‡~°6a„ÿ&,ÃŒeíÁŒ¾áƒÚ³gOóÿD%XèÖ;Ìi¡ ¾±$ŸÁƒÛ˜°tŸQUî îðË…EKäðÉ W"ñ……iŸ ¢ÁvÉ’%‚¤Ã† 3— ´…±ãú'øq"ç(üná‹´Yp·8ꨣÂut õàïŠïòÐÂmó‡¿ïSO=e¾¬N0ãÁHïÌÏÔßÞ7Þƒ·f™u¾OŸ>þj9wláYüE$@$@ $гçx鍊¦zزe§W£ÆÕÞûï/\ wйóýÞw¾îVºksç.±hÿwÞY”î^¼.d6*_E‰E<»þÕ/ÔSË”;õ4É"Ÿô‘òª ,-”»®AQÉ­–,‹4W«¢¥tÂ}D±#ºÏ :‘íþ¨|õí´f•¯KÀºˆäw‘ñ.ÂÏ¢DŸ«0 ¤4RQi×Õškm…ž#‚^ýO­žGä=² ¨ÕÒê#ý&ˆÜWÁ”^ \ѧ+Ò3iþRkíá‘ÞàåJ([¤7B= €²ÔMê#içÈ ÛS?Jã£AP^£FsG{Ñø")ªÜ8µŽtZ® Š÷Àòå—_ÔÃ5ô­ÁRžŠÇ TMêkQüh#t,¸¦"ÝRC¹>ñ‰Ô[êË‹ÛV2zg~¦¡QùÈX€ïƇ¶U”2*`l<ð€ëÆSÑn}.Äp¨|˜rYH€H€H ¡N=õïŽ;Þ ê£C‡»¼»îz;èZè ê<øàû¡—#ž_{틚ër¸æ`ܱNvndV˜f¥/µZ¾ÎÐg!Ö«T­s¡·LT årsB¼9aê¯a q†vó)œ\q"÷Ô*È·êîÇò‰g‘ ct9:CŸCSˆ:ˆÈЂk¿¿ '+òlª…6êÉ?£c<‡œž® ¿«?©»ŽÏh|3ŒÇ¡9`‘6ÞE-š–sV-µA¹FÑO,ï,S7FpÁ»p¹uÝõx|fG˜{«lf!  xصkúÆjöˆ#êªoÛÊ k¡'–ò£?ùŸ1âtõÑ\¢ËÔÓ4 Ñ; ùë¤ê1–ÉÜ‚eeø4†ï¨2ô²cÉ?\z¥p•ÑŽ?Ø&´Nh€TèýHçh[’F+X¢ÆO¸¢Üt—ᮀTXY-j zÔïGtCO¢ñ͈|jQà"áÊ¢µé…cêÚA°~R­ÐÇ4ÕÞÇC$@y|LC…i«VõD“ìa„NÁOÈWk)]º˜Ü{ooÍWùµ¼|ëc)Qþ£Øn¾„.•OV¿JäÚ -i.â=ô "ûs2è%tLù‰ÿI€rˆ…ig·$@$Ÿ@`:ÁiÞ]»¶<¹è|Ô‡ @" "õo¼±‹ þšÌ˜ñ}"»bÛ$@1 0« d@Ù²%Òå) mÛ…bOûéÓÚ-ˆÔDZL]ÿÿ÷ä‚ ÚÉå—O•/¿\î.ó“H P˜ætvI$@ù@¹r S0éÓçhKµqã?faM†0E¿wÞÙS:vz……´G#ä…¾´¢’e1Eß… ’É“ûkPÔÁrÎ9“l›T\g!H Óä±fO$@$o ĺ”@}û¶–¥K×Éúõ[5ø)9S÷bÒÒ j© ¥C‡F&N?ûl™»ÅO $ 0MdvA$@ù„éŽÿªô¿"1iÑ¢¶4mZS–/ÿ3áQùáÆq:qâ¶–õŸþ‹pÕxH (L•M’ €0E‰ÅÏõú÷?V6lØ&û÷{8Mz8…Ïéÿý߉2tèK2räây93–¤Ož’@ 0ÍAøìšH€ò jÕÊØT×­ÛÓ”{õj% P«é†˜ê'ªÒu×">ÚO·0ýTSJM‘íÛw'ª+¶K$ (Lù5  H8êÕË "ß׬ÙS_zªP¡¤üôÓZÙ»wLÏ$ªR-eÚ´ÿ“E‹VÉÉ'ß/ß~»*Q]±]È÷(LóýW€H€H ññ^©R)ùã¿cî¬L™âæ—úöÛ‹b~&Q[¶¬£ùU‡Jݺ¥{÷‡dܸrÌÍ Qsd»$ (LSá-p $@$Ô¨Q>f‹éž4n\M÷²ÿ0%èT©RF¡.ÑíK»Ëر3åŒ3–Õ«cÚ)1 ‚Rœ…iŠ¿ H€ò š5ËeJ˜"‚¿]»FòÃÈìÙ?¥ †Aƒ:ÈŒ×È–-;u·¨{ä±Ç>’}ûrÖÝ eàp $M¦ÙÈÇI€H€b#P£„iìÆ={öIíÚl«ÐñãgÅÖI’j5n\]Þ{ïZ¹øâãäî»ßÑÔR÷É_üš¤ÞÙ ä]¦y÷Ýrf$@$RÓØ‚Ÿ0ðÿÝ+EŠ’+®8I¾ür¹ý¤Ò„0¶¡CO‘9s†™€îÕëaM/õ¬lÜøO* “c!\E ¹[jä*4, @< Ô«WYÖ®Ý";wî‘âÅ gØôÞ½û$-­}ôAÒºu}óë|á…K3|.«(S¦LÉêãºjyùåšœÿR]Úßžåvø ägŸ}¶¼ôÒKAÓ¥0 ÂÁ  D8øàª–¤þ×_7H³f53ìfÏžý¶=*^wÝ©ræ™Ørù1Ç4ÈðÙ¬VhÑ¢…Ü|óÍY}üÏuËæó|œò>x ì$)LÃbáE  x¨W¯¢ Í_~Y“0=`1=àqÖ¶mCiß¾‘ús¾+¯¿>$ÞC ´WµjU9묳ç< H —_~9lÃô1 ‹…I€H€âM P¡‚R¯^%Y¶,¶Ýœü„¥|Wn¸¡‹|õÕrõé\â.ñ“H  0Íc/”Ó! T&€åüeËÖg8DìK$æwIî;wn&cƼë.ñ“H  0Íc/”Ó! T&аa•˜,¦nÒ‚ MgذÓdñâ?dúô…A×yB$7P˜æ÷ÈY @® аaUY¾|C†Ûyº„õiiÁÿM!è9紖ѣ߶èþ\1i’H fÁÿâc~ŒI€H€H óš4©!»wï•¥K×E}Ø ÓB…þ[ÊwÀjºmÛ.™0a¶»”/? ”.ÕN"@üøãÒ£G©U«–rÈ!rå•WÊG}sWÿý·æ¤ý7¨þ„ ¤C‡R¡B9è ƒäÜsÏ••+Wê Ðk¯½8ωƒ½{÷ʦM›]ßrË-rê©§Êo¿ý¸†ƒ¹sçÚõ}ûö]OÆÉ×_-}ûö•† J•*Ut3ŠŽrï½÷ê~±íD:Ç .¸@^}õÕd =b¦Ñð @¼ rH5ÍaZD-ú=jÓû÷{v?t)+V,eI÷}t¶¬[·%j;yù&ÄáòåË:Eøùžyæ™ê~±L.½ôR¹æškôÝ-24sæÌ˜ú†`zå•Wu  —]v™ Òûî»OzöìiB·uëÖšçv­Õûâ‹/dÅŠgrâà­·ÞÒïZEÙ³guÿÕW_én_ïÙØýãYµj•]«d–3f˜¸_°`\tÑErûí·KµjÕäú믗®]»ÆmL¡sܱcGº?"¢=Ÿˆ{¦‰ Ê6I€H€Â@d~Ó¦5²%LÑð AÇI¥J¥eÔ¨·Ãö“Œ‹°¦ýùçŸfš?¾lØp ÛþsÿôÓO–µ]»v™ÈÚ½{w`X8†ðr¢ufÏž-?üðƒ}*êÁêÕ«5ëVýýõ×_þÛvŒ¾ÑæÆ5kÁût•¶nÝ*[¶l±ç1®¥K—º[ö Aµsç΀• V4ŒåwÞ‘Ÿ~úIÞxã Åð’K.±qV¯^]^|ñE«ã~ýþûïòÉ'Ÿús¢ í¯[·Nþùç³.>ñÄAúôÓO› B>Ëwß}׿5nÜ8÷¨}bܰHþñÇA×q.óæÍðv–YpEùå—_¬_;Ñ_°.~þùç²}{ðæ˜ïwß}g÷Õówïí9 déÒ¥M„FJuäúBøÃaÍš5î’}bÌà°mÛ6ùì³Ïìá9æ²ysðÎháÆ†úx×ø‡z¨|óÍ7rÓM7ÙÏ?ÿ¼<òÈ#ÑúÌ3Ï ªÍ#Üw#Ü'Nœ(§Ÿ~º=‡_+æw€1»‚ïþúõëMÄâ»ÿý÷ßë¦q²ë†…H€H€’Fà–[¦{§ö`Ôþ6mÚîU¯~•÷é§¿D¬÷þû‹­Î'Ÿ,X'37ô?zïä“OŽùµzµk×öêÕ«S™W°`AO-žZí×î¹çO›ÝSÁh[€§n ž ïÁôJ–,é•)SÆžëÒ¥‹§BÈê><Ðv¹rå<]J÷ú÷ïo÷>ø`oôèÑv\¤H¯]»vÖfáÂ…½%JxÓ¦M³{ºLî©€ñtÙÜC=ŒK-lv¿fÍše×T|ص‹/¾Ø«\¹²«¸±{¯¿¨€öðƒ¢¢ÇëׯŸÕCߘ×Ýwßm÷ °3fŒƸ¦Òîû}üñÇžŠ»®-[¶´¶ (àáG­ÝS±ä}ôÑÖ˜¥¥¥ywÝu—ÝûöÛoíºæ¢µg¦Nꩅ׫[·®WªT)»¦. žŠm«ÿóÏ?0A;jqôôOÿH°w†ë˜.ß{'t’§.Þꩈ´6T`[ŸúG†«H4Îî}¶iÓÆSÑf÷0/œ»÷€wŠïæ‡¾ð Æ‹il¸§ËíVÿƒ>ÀiPÁwß“N:ÙõHßpsÄøðžPð>ð®ðÝ,V¬˜}'ð ÆŒï¾ƒàƒ±ãߎûÞZ¥ ~©%Þx†VÃ_2,$@$@$4¯¼2_ÅÜPOó”FìS÷›7ÑùÙgË"ÖÁþý§xÇ;ZÅÑÞ¨õb¹™aŠÿÕÊç©uÍþcÆùm·Ýæ©¥ÏþÓÅÜ('œp‚ý¸q@4tîÜÙSë¢ &µÚ-ˆˆ8µ|55?tèP ŒB4=|ý¾‰ºDöÝ!ª¾’Ž“ëÁ;à!Ž¢V>wKæŠ ü-Qð…mc!ö5j¤¾Æéßùa‡xÖ‰tu™0_Lˆjµ>üFáW WW}Àùغk¡Ÿih>·øÃļ﫮ºJÞÿ}Ëb€qà{á/þï æ‹?F\qß—¡ ÒØ hÁ"ÇþRˆbd=p%ÚwÃÕñ⻇¢ÖåÀe7nçãŒïº+ø>£ÄÃÏ”SG•Ÿ$@$@I!€ÿ|[µª§Ö¦ÈåΨ–‘ÅF Týú•U(½””ñû;ÉH8»ºeË–•nݺ™•ꥰæ!(B ÑÞH«+)¬?þ¸T­Z5¥îÚ‰…ï´A ¬d(þ{°Â"æîY…¿`„ôXG©àHX‡üä~ÆŸî9Ô…E_ê‰Ó@A[ê>`bÎ]ŒÄAXªH°–B G+è Ï … ZrÂW]ãÆ}fA@G+°FªË‚õç]Q—A¶C°P÷†t=Ò¼\øÌhl¼àZ>üðC fƒåÛÿûýn¸:þOD÷£ (̰A©÷?Ëz,ópÏfæ“Â43´X—H€H .Ú¶m¨QÉËâÒ"ý|°¯|õÕoò䓟ĥÍD4‚%\ˆ 6,S£À‰Ü‘°¶aV4X+–Œ5¯~‹åìpãC46"î±|èvXW›7onU!*±%^ˆ4Xf5ˆÇîaÙV¿_ýÕÎmá†1 «©a™HÆ80,ßÃuEý2mNȉöGeÂBó FŸˆ$‡°…¥ñ¥—^Xæ â°œ Ë',³XÓQíbé‚Åe8}n˜"â›4ib) àî+rÓ¦M=\°Dw1lØ0sÉÀ»AÁugùö· k6–²ÁÇX a‡5`­Å²{¤±¹çB?3¬¤°°ã=C˜C@Bƒ)¾g-Z´0— ×n¤ïF¤9ÂR )Þ%¾OÈë-þ°µÐº>âö©°YH€H€H ©æÏÿÍ‚›–/ÿ3l¿šŸÔîõUìÁcƼë5h0Ì[¹ò¿Àœ°G¸˜Ùà§k¯½Ö"á]sê·è©ÒZ9"–]A "ãU0¢´qoäÈ‘õ¬þ©~4¥EºãžŠŽ@Ä6‚ÔZˆÊ×eì@ô» Œ@» ‹˜ÖtDh‚ŸTLX߸‡5û¡Qù*=µÖâ–•[o½ÕƇgÝó®RM» !œ»ûæqÙP¡wïÞvÏõ©"Õ"Æ]}|"_Å•µ‡_`äÂp®âÜœpŒHt°PhãÂø0^ð@D;ÚC@—+*|-èH-|¤bÝ‚pÁR*cGð“P0?ôƒöT´[p¢òýAiºLnuø…`3Wá¼{¼KÝœÀÆŠŒ¡óR¡gïØµ‰€8M˜o§ÑƆ èAGx÷è?jEõ‘Àí»:GŒÏEåã{¡X»`­¾ÈL ¡ß}d(@ÿšöËM%ÃÏHÁOð¤6ÆB$@$@I#°wï~ ä¹IFŽì¡A@ǤëwÆ­ê_9Bóg^¡Všÿ|'ÓUô]Ð(9å”ÔÚXB—Ä/÷݉ípàÀfu‚`" ,}ðõC?°@ú ,š.Ô÷KÖø/",˜XfE.PAÐÕSO=eA7ȉé’‚ V;¸ ÀËÔÎRæo#Ú1‹`…•~“° †Xìà÷‰ö4å/XFÇ.OxÞø¸ÂGKÃp[ÈL%xaž˜ ,¹°ê9?ÈжP òqßïo‰z¸.ø õ …¿&üg‘h?3¬ðŒ{>£ð]õ$ÅÒ^´±¹çaÅøa‘†nþí»zÑæ_[p†Û ‚ä½w_™9†‹Úƒ•×_‚=rýwxL$@$@ "–VPg=Š^V˜ºn3c:)\¸ŒÛW—¨Çj”û<]6nïšÉñO,»$òXÆ-0íÛ‡/–­ñK/+~Âø$úƒ‚ÂÕ‰t Y4]S¤ÛvAEø W O,wã'+sqn xb,N§ˆ±@IDATTùÛE}D¾‡+Ѹ@Ôá'³AYþ‹?¯¿¾;Ž66WbßÏÂ]ýŒô݈6G5Áõ"™%ýŸ<Éì}‘ ä[mÛÑÏ4«‡VKýþNV߸·Ô7pmʰ…_)üÜ”U1†ÉÀ"ÎÇ釜u.tÒIó„>Ãó¼C Úw#gÉ¥üT|+ ä ®Ô¥é±ür£.[Îþúëµ ×ôJC¤uëú™¢¨gœñ°.íîÔh÷kÔâÛâ`¢—ò35 V&-¦yüÅsz$@$ªZ¶¬£¾ˆ%5ÊûǸ)¦~øjžæÌLß~VÚä3$@‰'@ašxÆìH€H “OnªÑÒË5çãΠÈMвoßþ ë™9éÞýpÍ‹ÙZwâyA£ÅäÔÌÌó¬K$|±9Þ$\ì‘H€H 8þøÆš2¦€Ìžý“m)ê¦ì„)ÒJe§Œu†m}:hÐS–z ‘ûÑ víÉjàU´vyH =lmZ(LC‰ðœH€H iJ—.&ÇÓÀ–Û±×½+N˜"÷gvJñâ…u{Ïþrê©È­·¾&wÝufÄæ.½ôRÑçïó @| „K/Fa_ÆlH€H “N:©©Üÿ{¶lï©ûÌÎR¾Fýú•mËÒŸ´dý½zµr·‚>‘§3£\Að„H îècw¤lH€H 3àg ÓO?]x¬P¡vœÝ¥|×ài§5×ýÙ—ë¯YwÉIü¦n|ü$8@€Â”ß  %P§NEÝŠ³Žæ,]‡³˜fw)?РÜrK7ëç —M›¶ûoñ˜H EP˜¦È‹à0H€H ?èÙ³•nÙùîÛ½7€!-­îÿ½/pžÝˆÝÉ“û[p–õãeÍî¸ø< À(LÿcÁ#  "púé‡Ëöíÿ%Û/R¤ìÙ?aŠ©•/_Bž~z ,^ü‡ÜtÓ«94[vK$‰…i$2¼N$@$4Uª”‘víÊôéÿ-ç#µÓ¿ÿþgA×`9¤ší õÜs_ÈOÌ‹W³l‡H (Lã‘M dŸ–ó±=é¶m»¬±"EÒân1u£DÀÕ 7t‘#^—Y³â»%ªëƒŸ$@™'@ašyf|‚H€H ºtin­Â×%‘ÂíÒÉv†ºôÒ§eÑ¢ßq‰…H ‡ P˜æð `÷$@$@ ÙþI'5“_üÒ.$j)ßÏûî»Ï´ÿçŸ?Y~ÿ}“ÿI€r€…i@g—$@$@á œw^ùòËå²té:I†0E¤þc](Õ«—•sÏ$›7ï?0^%H  Ó¤`f'$@$@±èС‘Ô«WI¦Ný\Š/";wî‰å±lÕ)Q¢ˆö7HvíÚ+ýúMÖ>ÿÍV{|˜H ë(L³ÎŽO’ $€¬¦¯¾:_ŠKKšHDV€çŸ¿D~ûí/¹ðÂ)qÍŸšDl’ò, Ó<ûj91 Èúôim–Ò­[w%M˜‚TÆUÔ¿u°|÷Ýï2`ÀAÉþs'IŽšr ÓÜ÷Î8b ÈÓ*T()ØÛ~ݺͲcGr—Õ›6­!/¼p©,\¸‚Ëúyú[ÆÉ¥* ÓT}3 äcçŸßV‘vÊúõ[“NáðÃë¨+Áåòãkäì³'ȦMÛ“>vHù•…i~}óœ7 ¤06mH¹r%eùò?sd”MšÔ×_¿Bþüs›të6NV¬ø+GÆÁNI ¿ 0Íooœó% \B eËÚ* ·ÊlΑ7hPYÞ~û*)[¶¸tí:V>þxiŽŒƒ’@~"@ašŸÞ6çJ$@¹ˆ@³fµ$-­Lž<7ÇF]©R)™6íÿä¸ã±<§&Ìɱ±°cÈ(LóÃ[æI€H (Y²¨”.]\ž{î Ù²egŽÍ xñÂòÈ#çËðáÝeôè·5(êqúæØÛ`Çy…i^Ü äRH°Ÿ–VP°;Ó3Ï|–㳸øâãäµ×†È’%k¥S§{å£~Îñ1q$×P˜æµ7Êù @!€™vïÞ£ʶ2eÊÇ)‘ôþÈ#ëɬY×É1ÇÔ—¾}'Êõ׿,ÿü³;ç4H ç P˜æü;àH€H€ÂÀ:ò˜ØA—òwhòû/ÃÔJþ¥2eŠÉ„ ýÔ÷õB™1ã{9þø»5‚ÿ›ä„=’@$@aš_*§D$@y–ò÷ìÙ'+–’óÎk+ãÆ}R»1uéÒB—óoPaÚXþïÿž•ž=ÇË÷߯Πè9È1<-9Ö;;&  æÍ[*½{OŸ~­Ëø{uùüN¹á†.2hP‡OäÜåï¾[-·Þúš,X°BÎ8£¥¬Zõ¶.¼?çÄžI zè!©V­ZBz Å4!XÙ( @v ”)Sܚضm—T®\Z.¼ðX?~–ìÜ™ÜmJc™Góæµt9ˆŽï\Ëw:gÎFÍÁš3›Ä2^Ö!¬øûï¿å•W^Q¿ê²òxLϤÅT‹•H€H€H ÉJ—.f=nÝŠTQååòË;jtþ§5O—Î;%y4±u׳çrÄU¤~ýûdäÈ÷¤C‡Ô³îÆ6Ö"ô¾ùæý~‘þF¯ÐbG˜lŠH€H ~üS´Z¡BI „B’ûTŽ„‡oìþý9—w5~o€-‘@ò P˜&Ÿ9{$ ˆ€¦þäúƒwTÑ·_&MšC ¬B$ÛP˜æ¶7Æñ’ @>!P¤H!)Z4M¶mûÏúˆTM—]ÖIÓ5Í‘õë·æœ& ä¦ùç]s¦$@$ë`KÒ­[w;0U¬XÒ¶ ºÁ \O€Â4׿BN€H€ò.XH•ï/°¢bßúW_] ‹ýî¿Åã,X±b…œzꩲfÍš,<û#ˆä¾îºë¤qãÆRµjU9ûì³åÉ'ŸÔT`±eYرc‡~¶u¸`Á9ýôÓ¥víÚR¥J 6{ï½÷u¦NªrÿgçS¦L‘+®¸"p/«{÷î•M›6óÍ7ßž={×¢`W_}µ}ôÑR®\9iÕª•\|ñź°>ÚcA÷ï¸-]ºÔúÏÌóA¥Ø …iн‡H€Hà?ð3õû˜º;]»¶Ö­ëˈ¯»KüÌ"-[¶Ä„_"˘1ct·¬ÉÒ©S'¹ë®»LH4H† S·”óÏ??P÷7Þc=VþøãÝöz¹æšktC†=&Ò^zé%«÷óÏ?ËgŸ}fÇ»wïÖTcÿ¹…ÊäÁ[o½¥ûŠÖýí·ßŒ|Ÿ3*ëÖ­“öíÛËĉ¥mÛ¶rß}÷IçÎåå—_6ºxñ⌚°ûáHÛ„²oß>KßKÿö@Šÿ¢0MñÄá‘ @~&P¾| Ù¼y{X·ÝÖCæÏÿMÞ|óÛ°÷sËE&X-!0 r¾ÿþ{:„„ÊÂ… "hãÆòûïÁVbXï Î\Y»v­Ìš5Kðé/hï»ï¾“%K–Øeôé¬n®Îå õ¾øâ‹ :6lÐÝ·v Æ1gÎûtÏâ÷œåû÷@¢_|>úè£2lØ0yä‘G䢋.’‡~Xý…/“^xAü{ýlݺÕÄäÊ•+M£¿íÛ·›x†ew×®]&hau„ð„¸½á†ä“O>‘Ã;Lnºé¦À³îà‚ .»ï¾ÛÚ'XâôéŠ{÷¯¿þ*Ÿ~úi o'úðCɈßm·Ý&?þø£µ9vìXÍ21P]RFÛ;Æ®½öZkÇøƒ,Ñ?¬¢®¬ZµÊxAä ݨQ#©«(î=¿ûî»é¾+«W¯¶w‹ëÇô½qíçø'v~b!  T$ [}z\ðxÄ¡]uÕóÞQGôvíÚ±N²o¨°ÃŽŠÞG}S×*þ¬þ 'œ`ŸxV­jÞI'8oÓ¦§¢ÇS1ã,XÐSQh[-ÞñÇï©°õÔúæ.\Ø+Q¢„—––æ=öØcVOÅ«§:kÏsÌ1v¬âÅûöÛoíø—_~ñ^ýu;Öü«^‘"EìøÐCõTÀY;¸Ö®];¯P¡B~¦M›Kùòå=›v®âØžŸ;w®§ÊžéÒ¥‹§"5P_Ež7oÞ½~ýúYè óQÑj÷ÜûèÑ£‡]Ç8*W®ì©8ôfÏžmüq ÏèöNp®¢5*?¼¿¢E‹zºlï†ô‰±¢¼«sÏ=×÷ *ÞƒŠy«¯Ôêá=ªÚsãÅXð,¾ ¸‡wÏ[n¹%к<Ø÷ ãÀøÑŸûŽ*E9øúë¯í|WUh1Õ·ÂB$@$šä´iSä]fn¼±‹üý÷yè¡Y©9LŒªL™2fÁzðÁEÅšYaázþùçåóÏ?7K[Ÿ>}DšLŸ>ÝZÆîR*üä¼óÎSŸÛWåý÷ß—åË—›%Ö·‘#GšuíŽ;îЭ]2K*¬qõë×:²š5kª¥z³¨±¶n¼ñÆ@}@fIÄýSN9Åü#ÝN@ðáTAmuëÖ­kKìø,Y²¤\zé¥òÎ;ïè.^•m¹}Ô¨QfÕÅr<æëä€tËÙAò×_Ùx-Z$wÞy§YY1wø“‚Æ…Ò¼ysûôÿjРtëÖÍÚô_÷ÃZ ®ð…5K밸Ο??P ÖQŒCÿÀ°wæúǃqF%þøãÆÖmWô³ÂÂZŒ &Mšän¥Ä'…iJ¼‚H€H  Jé°á—òQ¿J•2úŸói*\>ÔÿŒ,±†k'7\S‹™Ô¨QCÔªhÃ…@ƒÀqç„‚ðƒEyíµ×L¤œyæ™&6!ð`a{ë­·š@Á5µjš/#ü;!Ã-u[ƒÿû…g‹/. 6”þýû›øu÷!0!6Õ*+3–Ùo$–ªÕÒhUñ,üJxƒÈ²9‚‘„º-Z´Ð­f/´ú~X ÇóVðyUK±‰m×·û ]Bw×cý„ûv0_ˆ_µªJ©R¥ÌWÔµAŒà$ˆ7Œcе„ãW´®€#ŠZ9í³Y³fÒ·o_;Ç;ÀÉÑ víÚU:è «†çÔê*~øaà1¸Q àªzõê‚ïMfæh$¦ „˦I€H€²G»=mÜÙbŠÖ h/‡ZCêËÙë,‡Ÿ®V­šÖ0”ƒ>Ø>!,QtéÔ>u™× ¬¥€u°lÙ²‹ü7ᣪKàf™„O%žƒjëÖ­íyüªS§Nà8Ü6¸ßEôåŠÿ¬Ÿ(ÎïÒÕ ý„¿+D©ºXàŽa F0ÓÓO?m–JçSŠk°ŒâQ÷Ò¡åC±K°‡]Þ—Þ½{›jè=w޾ÀÉõ1 ÁèX£žóÙÄ1D:|€c-~FŽ,¹(ÎÚÚÆAjÕëhœ!ÖñžC· Å÷ –_WBç…,©T(LSémp,$@$@A*V,eyL÷í 2ñW*X°€Ü{ïÙõÜs_øoåªcg)ËhÐ={ö”bÅŠY„;–ñ]¤:–¡øë%„X„årÀJ•* ‚e\qËÅî<ôÓŸ: "RWü÷˜ƒâ¿ïêù?Ñ¢Ñ%ï ¬¿W]u•B¸Â‚§>¬¶efü¨Ï«À !´` uàZî¹ç[þ£H–iXž]?ø?~¼œuÖYGb}|~FŽ,²XÆWŸÎ €2<†åzX5aÑ.]º´µäoÖcìS3Æ ñŠ7W`¥sÿs~ñíê¥Ò'…i*½ Ž…H€H ˆ,¦°øE[ÎÇÍšÕÔç*ÄÞRëPt kP¹ðDXø°\ +r¢üðö4 ±Ñ‹+¬¯èbTä EDñ><êÌÑ6|Ha‘E„?–‡]UQâÀãÆ3ë«óõDÔ½ó… ‚Ï)|G!JaÕ…{Æ€%{Xo¿ývb°ö¢XïÐ7,´ðG…ÃŒ3¬k R2ÁqAÄbH ·øUâgðàÁ6^ä Vºwïnõà%tx~D«gT ˆQµÀY±CŸ‰Äø°Öj€’Y½!>!\‘2 "i´\A6øÁb|ÀdÌœ[Xà pô0„{\7pþÊ(~Áí¯Ÿ’Ç •…H€H€R’À/¿¬÷ªW¿Ê[²dm†ãÛ±c·Fèßî üL†uY!«QùjÙ´a©à°ÈgD[£h°’#bÞkvM-Žî’§ÂÆC4½Š O­…ž.Ùz÷Þ{¯ÝG¿‹ÄÇ}DÖãQùêciÇ*Qå®."ûÕUÀ¢êÑ¢òåî"º9®éšcˆ• ˆ WSë }#™fΜx^SJYä:îã™ ÔÕî¿øâ‹–i@—ªí\S)yš¿ÔÚqõUüz(h‘ƒyj±´{jôzõê x©h´{.Êݽ\D¶¯¢ÙØ¢OÝžŠskÇ•‰ÚB¶‚ZµjúF;ºé€§Qܶ‚¨|]ú·¨|ÜW—5ÔUÁžÇ57^Då#Ë“Ù=µ KÝXà@£ú[]8¼x pŽ{j¡ œgtŒ¨|¨}  HIê_jÂô“O–Æ4¾Y³~°ú~øcLõQ)³Â4+c€„`ÑÈítãÚW_}eé£ü7‘’ BJó`šÐÄó¦þâÒEAô¡.æâ/¦jųNáúö× wŒvñœZub7´žæï4±Z BÝ_ È!˜ÔB›nÎþzáŽÁB£ü-ÍR¸û‘®A„ªßfºÛñó? –SO­¥é£„©ZÅ=ðÒ¥yé­B þØP«hèeK“¥Mžúçzàñ,ɦ<¬õÛÉB$@$@©FKùEФiŠœÿ Gc§NM¤W¯V2tèK2{öõºÔ]"Zõ\yKòH„%|lïZÂ]Cøº€,gT\Ýpõ°,ŸÌ¸DŸk i³üZî:>Õrè?µcd@T}V ¶2ÅOf Ü#ð­Dã‡ç€–QxÁo8\»F¸‚÷ì­ÂÝOõkô1Mõ7Äñ‘ @>'€”PëÖm‰™Â¨Qg˜»ñÆ)•b~0—T„_'ÄvRÊjÑ¥xKÅšº[mê2tPtº¿ÜC–ð2âþ©ôW±›“Ë<þnÞ¾R&Þ¼=EÎŽH€H 7èÞ}œZÄêj²øù1c™ËGý¬9 'Ê„ ý4%PÖ¬i±ô®RúÀš…œ“ÈÉBy…2 ×\Z«xÏÓxe{$@$@q%PµjÙLYLÑùqÇ¢‰ÛXMcuˆë Ù @–P˜f " HjÕÊfI\Þ]w½))×\óB²†Ê~H€²I€Â4›ù8 @b T­š9S7šâÅ ËC+¼T÷ÿÌ]æ' @ `T~ ¿H€H@Ó b‹ÊåuÄuuoöNêŸú†Fz××€’Û~†ÖKÄùˆ#l'žD´Í6I 'IJAvÇE‹iv òy  „€0ݵkO†»?EÄС§Hóæµä⋟ҭƒwʉôLv®#vÚqûÈg§->K©DéºðÝÆöª‰*ŒÊOY¶K$@$+WnÔÔFwÊ{ï]£3ó9'1ˆµk·è¶œ÷É 'ªËûçÄe\l„H þh1?S¶H$@$G5j”Ý^Q~ÿ}S–[­^½¬ù›N›¶@^|ñ«,·ÃI€K€Â4±|Ù: @6 .\HýLËdK˜b'œÐX.¿¼£ÜrË4Yºt]6GÅÇI€A€Â4TÙ& @\ Ô®]A…éßÙnsذӤY³Z2hPrüM³=`6@ùŒ…i>{áœ. äFµjA˜f})ß͹P¡‚¶ÔÆÿÈu×½ì.ó“H EP˜¦È‹à0H€H€"¨S§¢¬Zµ1r…LÜ¿é£ö“7ÞøF&Nœ“‰'Y•H Ñ(LM˜í“ d›–òW¯ÎþR¾H‡Ô×´›Œõ¶Ìû³»ÌO &@ašÃ/€Ý“ dL nÝŠ²cÇî,'Ú×Ã%—/=z!—]öŒ¬XñW¸*¼F$d¦IÎîH€H€2O AƒÊöЯ¿þ™ù‡£E$¦qÁÈFH€H€M aÃ*q·˜º1uÔA*JÏ’qã>§ŸþÔ]æ' @’ ¤%¹?vG$@$@Y"aúÒK‰ÛN´wï£eýú­róÍÓ¥bÅRÒµk‹,“‘ d…iÖÙñI  $hРŠ%Ùß³gŸ`›ÒD”+®8Q|þ¦åÊ•c=8ݰM ¸” /“ ¤Ó}ûöËòåñÌåÈ‘=ÌZÚ¿ÿùüó_CoóœH (L—M“ Ä–òa)ýñÇ5ñk4BKcÇž#:5‘sÏ$³fý¡/“ Ä›…i¼‰²=  „€(mذjR„iZZA™0á|9ãŒ#eÀ€'lûÒ„LŠ’  iž ¤2&Mj¨0ý#)C,P €Ü{ïÙRªTQ¹üògeóærÁí’Ò7;!üJ€Óüúæ9o È…š6…0]›Ô‘qº\ý©rÓMÓdذWdïÞýIퟑ@~"@ašŸÞ6çJ$@¹œ@“&55¥ÓÙ´i{Rg‚hý)S.’éÓÊYg=b‘ûI;#|B€Â4Ÿ¼hN“H€òXLQ~ø!9Ëù~f§œÒLÞyç*ËuzÊ)È¢E¿ûoó˜H (Lã‘M $‡ßW©R&G„)fبQ5™1ãý¬*Ý»“‡š%û÷{É™<{!|@€Â4¼dN‘H€òï#_½*ǦT¶lqyî¹Kt‡¨nòàƒïK¯^[âÿ;&¸lŽŒ‰’@*¨S§Ž´nÝ:KC¢0Í6>D$@$S>ùä9ûìGåÛoGÚ²~²ÇqñÅËäÉ“Ý(¦)¥Ž–íÛ¿Ñeýë< üJ wïÞòâ‹/fiúÌcš%l|ˆH€H §`)¿`Á‚¶œ€¤œ('t’Ìœ93'ºfŸ$ÒÎ8ãŒl>¦ÙÂLJI€H€’M ï±=é×_¯Hv×ìH Á(L ˜Í“ ÄŸ@«VuU˜®ŒÃl‘H G P˜æ(~vN$@$­ZÕSÓUÜ…)+ðø ¤0 Ó~9 @xmÛ6”;þ•o¾¡Õ4$@$O´iÓP>ý”Â4£×=hÐ y饗2ª–íû?þø£ôèÑCjÕª%‡rˆ\yå•òÑGÚ}ôÑGåòË/œ'óã8õÔS­Ë·ÞzËŽGŒ‘nK–,±{çw^º{©rÁóq?HaöÁ¤Ê³5 ÓláãÃ$@$@9E ]»ƒeáÂòï¿ûrj¹¢_ˆ2·!@¢Œ½zÎ<óLY¶l™\zé¥rÍ5×È¢E‹¤cÇŽ´Z¿þú«º^|“¨!Dm÷¯¿þ’yóæY+VÈ{ï½'÷ß¿ºƒìzîù矷{sçÎ ºžJ'nü­Zµü4jÔHW>“Î;ËìÙ³Si¨Y …i–°ñ!  œ&Ю]CÙ¹3õýL7mÚ$þù§&ß߯»UÍ— 6:ˆ¢O?ýT~ûí7;ßµk—@tìÞ½;€Ǹ¶gÏž@ˆ~øAB7n\½zµ|ñÅVýAŒ…ô67nÜ(sæÌ±OWgëÖ­²eË{ãZºt©»eŸèoçÎ6\Ø»w¯`Ì(ï¼óŽüôÓOòÆoÈ-·Ü"—\r‰‰¤êÕ«§K´Žç¾üòKùþûïmY#úkûöífe]³f»dŸüñ‡lÛ¶M0F^W~ÿýwùä“O캻æ>1ϯ¿þ:hŽî>1Ž·ß~ÛI^~ùe)Z´hÐ5œ„ëǽ›}ûöÙ;Ä|Pðž/^¬4- ¼7»¡¿þù盄/æãÊßÿ-ëÖ­³g!2W®\)øÞø ÞïæÍ›—î¼óNÁϸqãl… 6þ z€g ÈC8ê¬]»VfÍšeŸþgpn¾¡uv®_4  È•Ž:êvïÞ{g$uìº4îi‚ý˜ûTë¡W»vm¯^½zØÜÓͼË.»Ì«R¥ŠãÚ=÷Üã©°{<òH í‰'z… òTDx>ø W²dI¯L™2ö\—.]<AVwøðá¶Ë•+çéRº×¿»wðÁ{£G¶ã"EŠxíÚµ³6UÈx%J”ð¦M›f÷Î=÷\ïÐCõ*T¨à¡ÆuÑEÙ=üRc×TTÙ5]>ö*W®lÇÏ<óŒÝÃxýE´‡pÐe~¯fÍš^¬þi§¨~ÓM7Y¿n~mÚ´ñTôÙ}Ìu1ÿîÝ»{* ½~ýúY˜Ý}÷ݶÔJì怾Z¶liÏ¢ÂC=dǧŸ~º×«W¯À3*x­>8`Œ(ÑúÑ?¬þ 'œ`Ÿè«}ûööÝÀ1~0‡ÿý×ÚúøãícÅŠ3vúG†Ý»ù曽fÍšùd ·Ýv›§Jïì³Ïö ¼P rðãJ§NLD¨¥Ð+Uª”÷ÀØ-ˆ\µzŸþy =µ8zÏ=÷œ‰”H´FžZa=Ô…ˆ¨X±¢§Ö;‚ ãÔål„O<ñ„«Ôúüå—_¼ë¯¿ÞS ¯CЪÅÎŽÕºç5nÜØêC„ŸþùDªZmí>~A˜¢}ÌóÄ9ÚSËžYýP­ïŸþÙÄÔ«¯¾jσIJ.¿{jY´Oª7ß|ÓS˧§[ÄZ[_}õ•Õ‡(ƒH„(+bB»âÅ‹Û<ñ‰¹£@vØaÞí·ß¦è/R?N˜BàªE×þpÀ|:tè`óGœûí·&pñ‡ êB¨BâX­Î„)ê⨥ռßõë×ÛØ 8!$ÁÓ SÝaÉÃω'žè•/_Þøãû„2vìX»¦Vl;3fŒWºti‚Uý­/ü!¤poذa6ü‘m¾ÖP ¿²+L¹”¯ß  ÜIओšê’ðj]*ÿoY4gR·n]¹âŠ+D-ŒrÜqÇÙr1ü0Õš%ØÞTÅ™ A7*¤l¹KñXòU±"ja12eÊ™:uª¨P³åYµ¬‰ DQ˧ÜxãöyÎ9爊ĈàŠñàD¶Ô¥gµÚIß¾}mËW¶R¿~ý@SÆ EލÀ²º*@ìyœ¨0²eó^xATx›KúQ‘**.­>~Õ©SG®¾újQ‘$*^í:\ÀÁSjµùϘ1ÃÆ€%|W°Õ%˜U­ZUÐÏGaL°´¯QQánþ¡*æÌeu›4i"*P%Ü6™Ýºu³¦UÜÚ'–ñ±Ç»¿DëÇÕCû¢l»„`3¼+wŽw ßZ¸d€‰ LQ‘-C† ÌW(`¢Û楬ˆZeúôévï•W^‘SN9Eô;Ç/ø–â§yóæ¢B\TÌ‹Z>í>¾GjE5׸YÀõùBàªY®»î:[æ¿õÖ[Í7×b™o` :HKP»l–H€H€NPE‹¦©¯Ü*¨Z'¼¿¬v_KWÔ'ºŒoB× Ôe·! ¹þÚk¯™0ƒ íÙ³§‰Rˆ µºÉ±ÇkBlÕªUrøá‡›Øq}@F*tPà!Šó{…hñÜw÷ü×Cá_ ±Õ§OûÁ}øwB` :Ô£p ÎÌ >š˜ÿUW]%ï¿ÿ¾Eõ«åRÀÉ_pÍø`Â_S­Žî’èÒ½±„°G{k®@¸†YˆGd,Pgï‹/¾¨­W©ZµjvèÆ‹?Pð^Q0¼#+¹â¾ÎÂ_-¸v÷õ*ƒ?0³üEÝ3ü§&Úáo AŽ`·³Î:Ë„/Äk¥J•u<òHQ—ûÁø"U-øæÛ‰k ¿õwÆæI€H€H žŠ/,§~˜ÚÂÔ‰”Œæ^¶lY%‚Ï@”B@!0bÑäº lŸ°¤>þøãfADP•¿ ®_úïù‹ä„ *Šÿf`éÓ¥b»í×wÜa–¿ï¾û.P Mˆ*ˆ%W"qxöÙg-z¢N&AhF*˜ÆŒ`+W^ýu˜nËŽA(÷ „4,̨ñêD¥»­ˆ¤Kî®zÄO'^ÁGÝ3¬‚£PêýÏm'¾_°zÂz +*¾ê[ë»›þÖwLáû4ˆ\ˆ^|§b lQÀ"Vr@©k…Œ5J `"qMßcb®dL31ý²U  ˆ ,çôÑÏ7ÒFA|øá‡1í–»a¼à‚ düøñfƒˆÂ’0Ä›sP?D‹šG¾PõÈÖ2,ŸC˜@4ºŠå`ˆ%Xæµqˬ[’ÆR1Üö –EõË´cˆiA Â2±ƒè}ÌKÃp]ȨÀj K22À2Œ}— ôyˆ4D”CÀc¬Vñˆn?ꨣL¬ã–ù]½Ð6p×°UX³î†Ö‰ÖOhÝhç°”ÂBŠ1;D-úÄX4höQ0U¿Xc ë§³0»ÊÈ΀¸= 8Pî½÷^³ C"3¬¤øŽà»€è}ðIJ>þ`À%p‹€‡µÙâ5_7Æ,}ª‰™…H€H€r-Õ«ÿöªW¿Ê›3gIRæÙà§k¯½Ö"áÝàT@xj•r§‚ŒUî c¯‚1•Ž{#GŽ´hn~ºvíjA4¸§Ëå<¤BÀ"¿Õ ˆÊ×¥Ü@ĺŠ0‹PG¨‹(|MO„&,ðFE’õ{¨ñGº‡FåkJ(O…=‹_ê«hãóîyÂhê*«ÊS¨÷î»ïZ’Š7;ÇØ07MÖo@jáóüs@cj͵À-חж@æÜŸ9sf *AD*ì,ø÷TÜ[6£¨ÅÔúU+³«õׂ¥p­ü„À-<ñà: ¼p®–\;?‹v cÒ¥û@ÆâžZ˜­žÿ²"  ÷ŽpãwóƧZ¡-ã²$¸@.M¶oßô6x7xWàˆ 7háYÜCv|'Q¢Í×*Äð+»ÁOЇŽ…H€H€r-SO}P—q«ë²dŸ„Ï»ì EÅOBú‚µ ~ °‚Áé/°"H>¥–ñ,Ûâ0XÛ°|¬¢×_ŬbO=õ”Y ±Œë’‚¥VJÚ ')vo‚513yFa…¥ËŰ‚f¦àYøWº øxb')…+È·‰"ŒXþW°‚ïf4·ÿ3‘Ž£õé™pב÷cÂÒ<Æ•ø‹Ââëw‘×n¸kp‡@_xÇx°bÃRë|[t…€(XsCÇ‘ùÂOïßï«n|‘®ÑÇ4^' È5zôh)cÇÎÔ¨ñ³ô?Åð"&7LËßjA4‰$õ¡‚ >˜á –nýA.áê¸kð;ÄO¸‚e] Q¸:‘®ÁÏÁ5Y-Ôñø;F+ˆúÇO¸‚ žìŒÅßf´~üõ2:Ær<|o3*p—ÀwY4õSFÕÃÞÇ{t.¨€%~\…sÿ%8÷—xÍ×ßf¬Ç™ûS&ÖVYH€H€’H [·Ãu÷Ÿ]2wîÔ;Iì:®]9ëR@Áß2«¥iÓ¦a}‘^ÊY#CÛ†(„å‘%ç `Ç&ø #˜n$óJ⸔ŸDØìŠH€H qzô¯Ö³  tnâ:Ñ–½”ŸÐÁÇ¡qE!H ÂÉŸzjîܹ–çÛ|FZzC÷a›@j*ÿ âîÈÇŠtKêךn™:\XöÆsêÛk·hw ±dŽ@v—òi1ÍoÖ& HQ§ŸÞRÓ(}¯û·ØW>E‡™ë‡¥»+Yº*ÝV5h.ÈÕ‰tVÉ]ATºóXBy ݹÉüku—*Ñ ªˆ‘ýþÁ#,É. üS‘‘€%ù(L“Ïœ=’ $€–ó!Jß{ïÀ.F è‚Mþ¯ B±[R´‚`*Ý·>(?*êc©‰Ü|£ç–{×5oÞ< ÒÁ¹¿ G·`5˦»ŽœÈ¿‰ùȹŠôUØ] )¯ ¢õ™gž±êØ(õ@†„õøDA@’ÛDAm>C*'ò~Œó€Ucví¹gàŠL¨Ë’u¦YgÇ'I€H€Rˆ@¥J¥4§gSyî¹ÏShTys(X&G~Ó+¯¼Òòކ›%r‘bi¹1±EgÛ¶mMô¡.ޱ낵ڵkgN,»£¬Ÿzr‘è°\biùV;vìhmbkT¸ @ÌÞu×]énÿ÷kðàÁæ3‹\ª(èAr{äîìܹ³µ‡-??ÿüsqÖ_\X~‘'ÂB¹F1_ÌǶ(ß~û­¹3`ùþ¹Ø »gEË#kòWD¦Ñð @n#pî¹Ç¨n™Z±þÊmCÏuã…)¬ƒÐ -H᱈ˆr$½Gr~øb«UW°‡<¬HiO´‹(öº‡*¶ Eyøá‡ÍŠ=í‘òÖÌn¸ÁÚCz)”Ö­ÓoG‹]¦ »`¹‚>aÙDÚ$ì=a$¹G¢~´ï߉ ¢ÁGmÚ´±y ù?D56>€µÔX]‘ª óÁu·Ç½»ÏÏØ P˜ÆÎŠ5I€H€RœÀ 'ªy˪Õô‹iî,˜ØŠ;N}ùå—Aª\¹² N쬄­0±¤Ž\™¬® o*²ÀJ +$,¨}ÈF±ˆ%rX<‘b ÖTìäk&ò€Â•®H‹„’Â,×û±°Ìk,RIÁ¢‹û؉)R{Æç›ù@‡ bó@PW°³r¥ÂÚÛ¢E Y¶l™»ÅÏL 0Í$0V' H] ÐýÅQßÇ¯Ô ·?ušGF‘шœ«°zº‚¨«®ºÊ¬°.¾ÿþû& Ý}|ºDï8†èóïSk§ ¢B’}lw ŸOüèŽP&Q‚ýÂZ`¹„(FWüY žQœ©«ãÿIJ> ,¯®¸qÃBêŠ?µr…b‹U–¬ 0Í7>E$@$¢úôi­–°íj¥û.EG˜w†kääÉ“mÿu"øgŸ}ÖvÆ‚0DЖá!$ý%ôÜÏ\£F õ>ÉÚA[øÑm9ûÇÃB ‹)ÎC Ôci^·È ÜZ³fMàJ(Ñ’øc÷,çïŠc¤ÊB©W¯ž}âWèÎI<È4 ÓL#ã$@$@©L fÍrê?ØL}ç¦ò0óÌØ°=êÕW_mVM7)X !Ö`I„_&–ͱìîÒ1¹z±|"x ÀKï£F’ž={šÏ'¬¡ƒ ’qãÆÉСCM@B¸Â?®XVïß¿ 4Á/Ë÷xîØÉm½Šåyg©ÅC°”ÂBŠ>ñ |Sáã W¿%6вM€Â4ÛÙ @ª<¸£¦Z©¾ÿ¾¤ÚsëxÂY:o»í¶@²}Ü?çœs‚Û^"?(œ°Ü¢ ,k= ×.!¸ J°"Šþœ£G6ÿT܇µtĈö ! ± Qzâ‰'ZD=Ü\ÁXš4ib[®B0c?wô‹à)ˆhˆT¸¸±ÀuêÔ©&º±M+žÇÒÿSO=åšL÷‰gÝóénòB†¸óS†ˆXH€H 7ÀNPeË—§Ÿ×áç÷Ÿ2ÖIˆ9ü À_´V­ZAI±¶K(‚§–©|ùòéƒ5ö§Ÿ~²ÄøØ’Õ¿/<*-ZÔ%²b*t¯xø¤"Ë€«¿DÝC\#èªaÆ\º÷à 9ÎîÎOi!íñ”H€H€òÁƒO‹.zB#¤7¨˜Èú¾óyFM¢Q£FA=Góç ªæyHñ©À2 ‹gF¥lÙ²úKÙtÕ \ñ®+VÌ‚¼ÂÝãµøàR~|y²5  !йs3õ¬¬‰Ò?L‘q9I©©ÂYCsrLì;= ÓôLx…H€H ¸òÊ“4hfYMóÈ”8,@ò{äJeIm¦©ý~8:  lèÕ«•.ãW•{Vø( @²P˜&‹4û! H:DGßpÃiòÎ;‹4•Ðê¤÷ÏI€2G€Â4s¼X›H€H —€¯éGÔ•»ï~'—œÃ%üG€QùùïsÆ$@$ïÜxc9óÌGdîÜŸåøãÉöü?øàæªÌ6E6W ôîÝ;ËScÓ,£ãƒ$@$@¹‰À AOi.Ê52gÎ0Ýé§P–‡Ž-)—/gâþ,äƒyž69À¦Y)¦Y¡ÆgH€H€rµk·HûöwÉå—wÔ-4ë^ œ/ÐÇ4_¼fN’H€H zõ²ríµuëÊY²jÕF!HA´˜¦àKáH€H€C`ß¾ýº‡ú}R£FYyî¹KÓ [%È2ZL³ŒŽ’ ä6… ”ûîë-¼Tž~úÓÜ6|Ž—ò< Ó<ÿŠ9A  ?V­êÊ!'Êí·¿)¿þú§ÿI€r˜—òsø°{  äÀ’~·nãdÿ~OÞ~û*IK£&ùo=’@zü—˜ž ¯ äqXÒøáódÙ²õ2fÌ»y|¶œ 䦹ç]q¤$@$@q$P¿~e5ê yä‘å­·¾cËlŠH «¸óSVÉñ9  \O wï£å‡þм¦/HýúU¤iÓ¹~Nœ äfô1ÍÍoc' È6ø›öí;IV¬øSÞ{ïZ©P¡d¶Ûd$@Y#À¥ü¬qãS$@$@y„üM'Mº@ *$^ø¸ìÜùo™§A¹…iî{g1 @œ ”/_Bž}öbµšn”~ý—Ý»÷ƹ6G$  ÓX(± @ž'РAeyé¥ÁòãkdÀ€'dÏž}y~Μ ¤ ÓT{# @Ž8ôÐêò —Èüù¿ÉàÁÏüOYH€’G€Â4y¬Ù @. мym[Öÿ裟uY²lß¾;ŒšC$¼A€Qùyã=r$@$@q&ðÝw«åüó“ªUËÈÔ©Ûgœ»`s$@!h1 ÂS  æÍkÉ;ï\mP]»Ž•¥K× @‚ P˜&0›' ȽjÕ*/o¾y¥Ô®]AºwHóœ.ν“áÈI  0Í/‰C$ È9eË—_¬Âôp¹è¢)2|økŒØÏ¹×Ážó8ú˜æñÌé‘ ÄÀo|#×]÷²n_ZY&Nì'õêUŠ_ãl‰H@h1å—€H€H€b$púé-eæÌk­öÉ'ß/Ï?ÿEŒO² @,h1…ë €’ïß}÷»òØcs娣’{î9[6¬â«ÁC ¬ 0Í 5>C$@$@J`ñâ?liÿ§ŸÖÈå—w’+¯¶jÕJŠ-*k×®•eË–Éa‡f÷wíÚ%ëÖ­“êÕ«Û}À@½š5kJáÂ…u>ûì3lÒ¤‰æNý/y*úÁÚß¼y³Ý«T©R× 6„ÄÚwß}'Í›77AƒJŽ#ÄÜW_}%•+W–Fž‡U?ÅŠ³kDæQG%¥K—–O?ýTz÷îm÷Þÿ}›Ç—_~)[¶l±>¿øâ ˆ:u’¿ÿþÛæë ®·iÓF&NœhmoܸQ¶oßn VØ5jX›ßâÅ‹EݺuíZ·nÝ?(Ãï¼óŽŒ1B=ôP»¶oß>AÞYÌű¬]»¶¬ZµÊ€=¬’°ðâ>x€³+áút÷À¹;Á ÌÁâã®S§N@„ã¼xñâÖ—n“ °ñΙ3GJ•*em\zé¥rì±Çê®b—Ë3Ïè•,YÒC}´Ó¥KOE•Õ>|¸]ÃóhÿCñú÷ïo÷>ø`oôèÑvŒ1´k×ÎÚTæ©õ¦M›f÷Î=÷\O§VÈÀXÕ‚g÷ðëâ‹/öTàÎË—/ï]vÙev®–=O7°c]‚÷жZG­×þ­·Þê© ÷Ô2êÝ|óÍ^³fͬ?ÌEÅ•Nº{µéØsÌ1ÖæÔ©Sm¬hõO>ùdOÅw`,8xã7잊ÌÀu½vME—çŽO8ỆvÚ·oïtÒIs¼'–ö|´>?þøcOEµ½êÆeöìÙöœZ¨­=ý#!0°¹é¦›ÒÍM]¬î|¨ëðnñUÈÛ¥Hïýâ½c>ø®`®ø~yä‘ö\´±:&=zô°gÑÞñÒ¥KÝ02ü¼á†ï>ÃÊQ*„·£ëˆXH€H€H€âK@Å‚`I–9X}ôQùä“O¾X‚†h­ZµDEoÀÏ#xå•WäÄO¤¢âSî¸ã³@ªØ,Ãz ‹#®c«Tøeª°'€±üúë¯fUÅF*8Í¢†~úé'Û8ËÀXvÇ,‘(;w–+¯¼ÒŽñ >Œ*êìVP×Ö,°BöìÙSÚ¶m+°ž¢`¾8‡åÖOìž«#,È®`ü}úô‘ÓO?]>ÿüs+¬ŠðOý믿lŒèëÎ;ïtdêS…½üñÇ¢BßÜ`5„¥ùù矷þðŽÀ'RŸ°ˆöë×Ϭ¼°üÂ"ŒyÁõmE+¡ssï©uëÖéƒ5–X¿F¸w‹µóÍÅ{«W¯^ ­XÇ «+Øâ;Š9LŸ>=ÐF²(L“Ešý ä{çwž¨õÏ–l±Ôª?3Xʆ°À, êAtbiBaîܹ¢–L[âÆr>|6Õ’'jød¢MµHÚò;vàÁ2ü9çœ#7¶öÂýÂ21–ÂQW-—‚¥sˆDµbZ–èÕâ*õë×7±‚{½zõ²ú8FVK›#XËæÉ¢Zp_€ðÅ9Ä8–õ!`]ÁÒ÷äÉ“[»ºë¡ŸIXè ®˜7–þà ­ŸÑ9æ ÷µ8[U^°uçÑúüæ›oì}#–ýÕ’)C† 1±»dÉ’Œººeý´´4ûÃ#èÆÿNðnð‡‹+ÑÞ«ãÿŒu¬ùx_ðuÅR>8'»ÐÇ4ÙÄÙ @¾%¿QW f ,]eLW8íôŒ3Î0¿Â×^{ÍüáÏIÁ…àIDAT Ë#ž …¨‚‚Pƒ"‚Žà/yøá‡›@rmÂg0R9è ƒ·à{‰â|!Dý÷Ý=ÿõÐcøjBdÃÏc‚EVV]ê5‹0D˜_˜"`ÉYOCÛóŸ¯\¹ÒNCƒ¡`aÎJA` !Š{x(xÑúoX3]qïLà]…ˆép¤@´C ãØ_`¹Ä)‹®D{w®Žÿ3£±:ŸV¼;WðNðGF² …i²‰³?  |KÀ‰žŒ 0 ÁaI}üñÇ-jþüùAM£®  º¡'þ´N’(.˜Èb 7¸dT0Võݤo‚È‚¥Ö7jÁ Kè°g¶@ôÁ*‰%v`„å,£g¥ÀœQ‰Ö§s;@ð˜ÚJ=]Fw ݲ>D˜„+ÈãÇ—±cÇUùðÃ- –jW\Û8÷¿;ÿr¿«‹O'Â#B%&V1¿2~+ ìœM“ „'€å|ˆ’Y³fR&A˜!Ò½–-[še˯ðó„ð™4i’ ø¯þòË/á׫ÎË÷ãÆ³èqD££@`Á×KÈ·Ür‹YfÝ÷‹/¾(ÀcõðkذaA¾ˆi"Í5ðÆêA°Âm×ï_–4æVGˆ0d@Ê$X5xJþüóO‹¼Ç˜àc›¨­OXJ!\Ge.#2 @tÃêé,°ða…åy[HÅxýsC}XÀñ†j™4Î,Ìø@ØÃ¥Â•Hï߸8ë;Î3+ê¤J¡0M•7Áq äi¡ÖRœ‡^ó€µQ#Þiœµù:! ±,ŽcøÂÚ† !XX!jl~£#GŽ”zj¹s}ù-bŽH5…åwî@pºñ`)þ’H3õÔSOÉÝwßmþœhk®ú»"Êø‡B@»â¬‡ÊþþœõÔÝwõ]ŸáÎO;í4³Ö∳‡~X&L˜`îÒ˜g¸Ún¸:Ñ®aìÑú„o.Ü*ú Áîà…+%§0f,½#?)|wݸüsC}ü±WøD¿pÀ(Å»GnX¿k@¤wŸ^,ǃ þ@_˜GFcEÿ¡Ϻ±†ÞKäyUÔZÙ Û&  #½;Wçÿú\Fc ­Ÿç¦9A}’ @ð+E  R@ù#¥£<ö,nð? -H/I0a—§HÑã¡íð<ù¢½»ä&þ=r)?þLÙ" @> è¥ü|€SÌCâµ”Ïà§<ô¥àTH€H€H€H 7 0ÍÍoc'   MySQL++ Reference Manual MySQL++: Class Members - Enumerator
MySQL++  3.2.5
 
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1InteractiveOption-members.html000755 000765 000024 00000015311 13515046516 027712 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::InteractiveOption Member List

This is the complete list of members for mysqlpp::InteractiveOption, including all inherited members.

arg_mysqlpp::DataOption< T >protected
ArgType typedefmysqlpp::DataOption< T >
DataOption(const T &arg)mysqlpp::DataOption< T >inlineprotected
err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
set(DBDriver *dbd)=0mysqlpp::Optionpure virtual
~Option()mysqlpp::Optioninlinevirtual
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1UseEmbeddedConnectionOption-members.html000755 000765 000024 00000013475 13515046516 031634 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::UseEmbeddedConnectionOption Member List

This is the complete list of members for mysqlpp::UseEmbeddedConnectionOption, including all inherited members.

err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
set(DBDriver *dbd)=0mysqlpp::Optionpure virtual
~Option()mysqlpp::Optioninlinevirtual
mysql++-3.2.5/doc/html/refman/_header.html000755 000765 000024 00000004365 13515046516 021076 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual $projectname: $title $title $treeview $search $mathjax $extrastylesheet
$projectname  $projectnumber
$projectbrief
$projectbrief
$searchbox
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1BadInsertPolicy-members.html000755 000765 000024 00000014050 13515046516 027276 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::BadInsertPolicy Member List

This is the complete list of members for mysqlpp::BadInsertPolicy, including all inherited members.

BadInsertPolicy(const std::string &w)mysqlpp::BadInsertPolicyinlineexplicit
Exception(const Exception &e) MAY_THROW()mysqlpp::Exceptioninline
Exception(const char *w="")mysqlpp::Exceptioninlineprotected
Exception(const std::string &w)mysqlpp::Exceptioninlineprotected
operator=(const Exception &rhs)mysqlpp::Exceptioninline
what() constmysqlpp::Exceptioninlinevirtual
what_mysqlpp::Exceptionprotected
~Exception()mysqlpp::Exceptioninline
mysql++-3.2.5/doc/html/refman/folderclosed.png000644 000765 000024 00000001150 13515046516 021756 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÚ}\ˆ/IDATxí]MOÔ@~ÚúuØlp]ö¿#›Å]PYECˆ\9ù¼yÑß`ÖÄÿàÿÀÉxóâ¢C &=qÐÄ£—vZçv¶3m؃‡vžLûNç}Þ÷}Þ½ZA@n° OäNp ’xóþK°ññ€xÜj”°8sÑ€“ “€œ_¼[Âíæ§ïD'‚•yye+ø¼û 7#rNŸlïük* ¾0Ь_d«_(àñÖ±àôz=ñxõv§÷h©‰z¹€šØP-äóä’̪uý¼$»\DãJc—B4¯ãÝÖ.:£Ï-ÑÏß}µŠLEíºþ #—ûáºÀÏgN;BŠ€6ïýñ䬜…ö@’Ðåñp&™h>p9¤™EEά¨ÎÊ‘" u¥n€$R"?{¹<˜…ë…%PNtâ$‰ß¶±úá+^<é"§2 ªDq”q´\¬«Ò™a–Œ‘©Aÿ€"Ôµ ™êŸèP£}#Eàz{û.8i îp³ê(ADwD¦E<ê¬cE¦$ HdÊÄ ”.:Ù GŽ-`ŒL‚ý¾'¢‰Ä<¤CIª½;ÙÇTZd±i};>èôß‚z×;K×§8t ¤Ž q”:uvÿv•Ý›¬²ÙvEân{„M·FXg¼ÌfZÖ¨°¹‰*›ßÌß©±ù©:›j–YqèÜë#3çÏSøWøÿÿÑr'ø Ôùù‚ ©¡IEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1SQLTypeAdapter.html000755 000765 000024 00000165555 13515046516 025436 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::SQLTypeAdapter Class Reference
MySQL++  3.2.5
mysqlpp::SQLTypeAdapter Class Reference

Converts many different data types to strings suitable for use in SQL queries. More...

#include <stadapter.h>

Public Types

typedef size_t size_type
 size of length values
 

Public Member Functions

 SQLTypeAdapter ()
 Default constructor; empty string.
 
 SQLTypeAdapter (const SQLTypeAdapter &other)
 Copy ctor. More...
 
 SQLTypeAdapter (const String &str, bool processed=false)
 Create a copy of a MySQL++ string. More...
 
 SQLTypeAdapter (const std::string &str, bool processed=false)
 Create a copy of a C++ string.
 
 SQLTypeAdapter (const char *str, bool processed=false)
 Create a copy of a null-terminated C string.
 
 SQLTypeAdapter (const char *str, int len, bool processed=false)
 Create a copy of an arbitrary block of data.
 
 SQLTypeAdapter (char c)
 Create a single-character string. More...
 
 SQLTypeAdapter (tiny_int< signed char > i)
 Create a string representation of SQL TINYINT.
 
 SQLTypeAdapter (tiny_int< unsigned char > i)
 Create a string representation of SQL TINYINT UNSIGNED.
 
 SQLTypeAdapter (short i)
 Create a string representation of a short int value.
 
 SQLTypeAdapter (unsigned short i)
 Create a string representation of an unsigned short int value.
 
 SQLTypeAdapter (int i)
 Create a string representation of an int value.
 
 SQLTypeAdapter (unsigned i)
 Create a string representation of an unsigned int value.
 
 SQLTypeAdapter (long i)
 Create a string representation of a long int value.
 
 SQLTypeAdapter (unsigned long i)
 Create a string representation of an unsigned long int value.
 
 SQLTypeAdapter (longlong i)
 Create a string representation of a longlong value.
 
 SQLTypeAdapter (ulonglong i)
 Create a string representation of an unsigned longlong value.
 
 SQLTypeAdapter (float i)
 Create a string representation of a float value.
 
 SQLTypeAdapter (double i)
 Create a string representation of a double value.
 
 SQLTypeAdapter (const Date &d)
 Create a SQL string representation of a date.
 
 SQLTypeAdapter (const DateTime &dt)
 Create a SQL string representation of a date and time.
 
 SQLTypeAdapter (const Time &t)
 Create a SQL string representation of a time.
 
 SQLTypeAdapter (const null_type &i)
 Create object representing SQL NULL.
 
SQLTypeAdapteroperator= (const SQLTypeAdapter &rhs)
 Standard assignment operator. More...
 
SQLTypeAdapteroperator= (const null_type &n)
 Replace contents of object with a SQL null. More...
 
 operator const char * () const
 Returns a const char pointer to the object's raw data.
 
SQLTypeAdapterassign (const SQLTypeAdapter &sta)
 Copies another SQLTypeAdapter's data buffer into this object. More...
 
SQLTypeAdapterassign (const char *pc, int len=-1)
 Copies a C string or a raw buffer into this object. More...
 
SQLTypeAdapterassign (const null_type &n)
 Replaces contents of object with a SQL null. More...
 
char at (size_type i) const throw (std::out_of_range)
 Returns the character at a given position within the string buffer. More...
 
int compare (const SQLTypeAdapter &other) const
 Compare the internal buffer to the given string. More...
 
int compare (const std::string &other) const
 Compare the internal buffer to the given string. More...
 
int compare (size_type pos, size_type num, std::string &other) const
 Compare the internal buffer to the given string. More...
 
int compare (const char *other) const
 Compare the internal buffer to the given string. More...
 
int compare (size_type pos, size_type num, const char *other) const
 Compare the internal buffer to the given string. More...
 
const char * data () const
 Return pointer to raw data buffer.
 
bool escape_q () const
 Returns true if we were initialized with a data type that must be escaped when used in a SQL query.
 
bool is_null () const
 Return true if buffer's contents represent a SQL null. More...
 
bool is_processed () const
 Returns true if the internal 'processed' flag is set. More...
 
size_type length () const
 Return number of bytes in data buffer.
 
size_type size () const
 alias for length()
 
bool quote_q () const
 Returns true if we were initialized with a data type that must be quoted when used in a SQL query.
 
int type_id () const
 Returns the type ID of the buffer's data. More...
 
void set_processed ()
 Turns on the internal 'is_processed_' flag. More...
 

Detailed Description

Converts many different data types to strings suitable for use in SQL queries.

This class provides implicit conversion between many C++ types and SQL-formatted string representations of that data without losing important type information. This class is not for direct use outside MySQL++ itself. It exists for those interfaces in MySQL++ that need to accept a value of any reasonable data type which it will use in building a query string.

One major use for this is in the Query class interfaces for building template queries: they have to be generic with respect to argument type, but because we know we want the data in some kind of string form eventually, we don't need to templatize it. The interface can just use SQLTypeAdapter, which lets callers pass any reasonable data type. The adapter converts the passed value implicitly.

The other major use for this type is the quoting and escaping logic in Query's stream interface: rather than overload the << operators and the manipulators for every single type we know the rules for a priori, we just specialize the manipulators for SQLTypeAdapter. The conversion to SQLTypeAdapter stringizes the data, which we needed anyway for stream insertion, and holds enough type information so that the manipulator can decide whether to do automatic quoting and/or escaping.

Constructor & Destructor Documentation

◆ SQLTypeAdapter() [1/3]

mysqlpp::SQLTypeAdapter::SQLTypeAdapter ( const SQLTypeAdapter other)

Copy ctor.

Parameters
otherthe other SQLTypeAdapter object

This ctor only copies the pointer to the other SQLTypeAdapter's data buffer and increments its reference counter. If you need a deep copy, use one of the ctors that takes a string.

◆ SQLTypeAdapter() [2/3]

mysqlpp::SQLTypeAdapter::SQLTypeAdapter ( const String str,
bool  processed = false 
)

Create a copy of a MySQL++ string.

This does reference-counted buffer sharing with the other object. If you need a deep copy, pass the result of either String::c_str() or String::conv() instead, which will call one of the other string ctors.

◆ SQLTypeAdapter() [3/3]

mysqlpp::SQLTypeAdapter::SQLTypeAdapter ( char  c)

Create a single-character string.

If you mean for c to be treated as a small integer, you should be using mysqlpp::tiny_int instead. It avoids the confusion in C++ between integer and character. See the documentation for tiny_int.h for details.

References mysqlpp::stream2string().

Member Function Documentation

◆ assign() [1/3]

SQLTypeAdapter & mysqlpp::SQLTypeAdapter::assign ( const SQLTypeAdapter sta)

Copies another SQLTypeAdapter's data buffer into this object.

Parameters
staOther object to copy
Return values
*thisDetaches this object from its internal buffer and attaches itself to the other object's buffer, with reference counting on each side. If you need a deep copy, call one of the assign() overloads taking a C or C++ string instead.

Referenced by operator=().

◆ assign() [2/3]

SQLTypeAdapter & mysqlpp::SQLTypeAdapter::assign ( const char *  pc,
int  len = -1 
)

Copies a C string or a raw buffer into this object.

Parameters
pcPointer to char buffer to copy
lenNumber of characters to copy; default tells function to use the return value of strlen() instead.
Return values
*thisIf you give the len parameter, this function will treat pc as a pointer to an array of char, not as a C string. It only treats null characters as special when you leave len at its default.

References mysqlpp::mysql_type_info::string_type.

◆ assign() [3/3]

SQLTypeAdapter & mysqlpp::SQLTypeAdapter::assign ( const null_type n)

Replaces contents of object with a SQL null.

Parameters
ntypically, the MySQL++ global object mysqlpp::null
Return values
*this

References mysqlpp::null_str.

◆ at()

char mysqlpp::SQLTypeAdapter::at ( size_type  i) const
throw (std::out_of_range
)

Returns the character at a given position within the string buffer.

Exceptions
mysqlpp::BadIndexif the internal buffer is not initialized (default ctor called, and no subsequent assignment) or if there are not at least i + 1 characters in the buffer.

WARNING: The throw-spec is incorrect, but it's irrelevant since they're obsolete in modern C++ now anyway, since they were always unreliable. If we ever get to MySQL++ 4 and can break the ABI, this throw-spec will just go away.

◆ compare() [1/5]

int mysqlpp::SQLTypeAdapter::compare ( const SQLTypeAdapter other) const

Compare the internal buffer to the given string.

Works just like string::compare(const std::string&).

References length().

Referenced by compare().

◆ compare() [2/5]

int mysqlpp::SQLTypeAdapter::compare ( const std::string &  other) const

Compare the internal buffer to the given string.

Works just like string::compare(const std::string&).

References compare(), and length().

◆ compare() [3/5]

int mysqlpp::SQLTypeAdapter::compare ( size_type  pos,
size_type  num,
std::string &  other 
) const

Compare the internal buffer to the given string.

Works just like string::compare(size_type, size_type, std::string&).

References compare().

◆ compare() [4/5]

int mysqlpp::SQLTypeAdapter::compare ( const char *  other) const

Compare the internal buffer to the given string.

Works just like string::compare(const char*).

References compare(), and length().

◆ compare() [5/5]

int mysqlpp::SQLTypeAdapter::compare ( size_type  pos,
size_type  num,
const char *  other 
) const

Compare the internal buffer to the given string.

Works just like string::compare(size_type, size_type, const char*).

References data().

◆ is_null()

bool mysqlpp::SQLTypeAdapter::is_null ( ) const
inline

Return true if buffer's contents represent a SQL null.

The buffer's actual content will probably be "NULL" or something like it, but in the SQL data type system, a SQL null is distinct from a plain string with value "NULL".

◆ is_processed()

bool mysqlpp::SQLTypeAdapter::is_processed ( ) const
inline

Returns true if the internal 'processed' flag is set.

This is an implementation detail of template queries, used to prevent repeated processing of values.

◆ operator=() [1/2]

SQLTypeAdapter & mysqlpp::SQLTypeAdapter::operator= ( const SQLTypeAdapter rhs)

Standard assignment operator.

See also
assign(const SQLTypeAdapter&) for details

References assign().

◆ operator=() [2/2]

SQLTypeAdapter & mysqlpp::SQLTypeAdapter::operator= ( const null_type n)

Replace contents of object with a SQL null.

See also
assign(const null_type&) for details

References assign().

◆ set_processed()

void mysqlpp::SQLTypeAdapter::set_processed ( )
inline

Turns on the internal 'is_processed_' flag.

This is an implementation detail of template queries, used to prevent repeated processing of values.

◆ type_id()

int mysqlpp::SQLTypeAdapter::type_id ( ) const

Returns the type ID of the buffer's data.

Values from type_info.h. At the moment, these are the same as the underlying MySQL C API type IDs, but it's not a good idea to count on this remaining the case.


The documentation for this class was generated from the following files:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1UseRemoteConnectionOption-members.html000755 000765 000024 00000013463 13515046516 031373 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::UseRemoteConnectionOption Member List

This is the complete list of members for mysqlpp::UseRemoteConnectionOption, including all inherited members.

err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
set(DBDriver *dbd)=0mysqlpp::Optionpure virtual
~Option()mysqlpp::Optioninlinevirtual
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1ReadDefaultGroupOption__inherit__graph.png000644 000765 000024 00000022417 13515046516 032225 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÈÄÚšnåsRGB®Îé$ÉIDATxí˜TEÖ† 9"&DE3ЀТ—Õ#&WŰÊ#sØ]uÍ¢‚ºË.EAA0D• %KN÷¯÷øW{§çNÏ 3Ó=ÝsÎóLß{+߯ê«sNUuO™À‰˜†@$e#C-Ð0#ˆ C FàX”!`±1`$@ \‚¸õé§ŸÊË/¿\"Úb(ZZµj%þóŸ‹¶Ð".­Äk ÈСC‹øµ­¸T#0~üx™4iRª›‘gý%^ƒð•+W–wß}7Ï—±éƒÀ…^˜-ñ$-P´Ff,FŒíZ{±¢@ÀR(Z‹€$c»Ö^¬(0‚Š¡2Þyç¹å–[B!ÅwûÍ7ßÈW\!Gq„ì·ß~röÙgËÓO?-»wïÎW¥;wî”5kÖÄÒ^{íµ2hРس݈AŠxÌš5K¾øâ‹".5gq#GŽ”3Î8C&Ož,7Üpƒ<ôÐCrÀH÷îÝ¥]»v²cÇŽœ™âBÞÿ}ÙgŸ}bi7oÞ,Û·oKUºÓb™· ]ÄŒ¸k×.íø)S¦È¡‡ª³+?uêT©S§ŽvØaZä¢E‹¤ZµjR«V­X?ýô“†Õ¬YSØ¥·mÛ&Ç{¬T­Z5–nãÆ2}út9ꨣtúçŸÖºb Ü͆ „ÃÒUªT‘‰'ʾûî+Gy¤&a ®]»Vöß™9s¦¬[·NN<ñD©P¡‚Æ“oëÖ­R±bE)[¶¬0ÛóW©R%mOçÎ¥aÆÂF*ï€ÜtÓMÒ²eKéÚµ«¼ýöÛBš•+WJ5Ä·—÷€”M²páB9üðÃå•W^Ñò5Ð} iËI'$Õ«W×(0†€{ï½·L›6Mó4jÔH²²²|Ö̹º—/ÑòÆo®còÝÆ;ï¼38øàƒƒzõêqŒ?pƒ+p»µ3Aô™°§žzJËkÞ¼yàvsce»¸N^|ñÅÀu|àȸÁ”)S&¨[·nðã?jÚqãÆnphÙ¤?ùä“G»ï¾û‚N8AﯺêªÀ âÀ0p_ëw³½Æ 6LŸˆÅ‘vñâÅ?zôh;v¬>ßxã#˜Þ;3Hã>þøc}8ó*p¤ Z·n­ÁÔÛ¢E }¯òåËެÁàÁƒƒO>ùDÛ¼ƒÛUÜž|òIÍ÷ÙgŸ)f¼—#¥ÖMŒikƒ 4/e´iÓ& îüÊ\\wÝuùMž²tib¹A&wÜq‡Îçœs޼ôÒKz¤aýúõÒ±cGéÓ§ëS‘«¯¾ZÜ@ˆÍ¤ìØ3[_vÙeòðË#š­ÂLÏ ËÌé:V Ä *Á¤Z±b…–õáH%/¼ð‚lÙ²EÞ|óMý>|x,éA¤ÚcΜ9²zõjéÑ£‡Æ¡ù0—¸"çwžÜvÛmz?{öl½žzê©z 82ël?þüX0íœ7ožÖsþùç‹#›4mÚ4æoÐ67¡Äңݮ¹æ9í´ÓTË›L¤S§Nª½HÈ{Ý|óÍú^>ø Œ5J5Q¬ ¹ÉH‚0¨ºuë¦&Í™gž©fŠ›õd¯½ö’sÏ=W6ýY0 † ¢Ý9pà@aa‚`r`ß»U0Ÿ¾üòKu€1Óp˜1‡rˆ¦»þúës7VGâ‘®~ýúâ4P,}Ïž=ÕDÃÑ&Þi 㙺ýÀ½øâ‹Åi'Û´i“”+W.›É+ÐÝ@4ÞË ¦˜`êQñ3fÌðÑ9®¼#fùœÖQ³ïÖ[o•%K–¨9HÞƒIˆxˆ‚@òL“Œ$Èë'+<Þ~f†uúZã!‚Sõ:“®ZµJíy´ Â@âþ™gž‘ã?^‰ðÕW_ Ú iÖ¬™^ùð³|, tÃ@ ~ˆ·ý ÷þ÷´2æ%¢Æ þZ‘4^ÂuP?nƒOç¯øf~‡)8!´Õ ~‚ï—i’‘ùHÀ¬Ù…³{ÑEiVgßËý÷߯措óAäÞ{ï Œe˖Ū›3±Àÿ¿Yºti,È/„ ŽŸ0aBB²ù‚X½‚øÏ?ÿ¼Š]ÇŒ£fÇK¸ŽÏ?ÿ\ƒÃmðéü•Õ0„E/`€xVŒ}éxÍH‚¤#Ú·o¯¦Ê< —^zilÇ-¨™†ÿÁ ÚmÂ,ŒÂÊ«8¯¾új®U2°ú÷ï¯f „þoÛ¶m,=&å`Þ9Ç\—h‰Ä·ÁLÄw@þóŸÿ(A¹G;téÒEž{î9¹ë®»t £Ù  Zï¸ãŽSs´ˆ[tüÌ*ò`²šåWÌXEóZ•ôh4Æ£>ªyhþ~KX3‘6Ó%ãÂ̆½ï…ûøgÇóàøƒšì'x¹çž{tY˜™–eRÌŽÞ½{«©Æf ǵYædi!,áÙ û½víÚÒ¯_?yâ‰'ÔùõéçΫå\yå•ÒªU+ÝÏ b¢!¸"h9œ|/Äás… z´!‹´ ßÀ ä†äMš4ÑEÈFqò1• æšo7ïøÝwßiòc’Ñ~$c ÌÔ”­Ÿå³â‚.󿳨lÉœ³¸Á“-Œ·b8“$p&TŽ8·ò£KÁn¯#p7¶ÌNÈ2o‡´g®Î?ˆEûe^êpZ"p+a±¸‚Ü8¤ípß­œ —#+˼NƒN Ä–©Ã‰Ü~HàüŠpPìžwt0pÚ,pþE,¼(nÒe™7ã6 2‘a¾`³cN=ûì³9²bç³¼%hfÞüå0{ç&ñŽ|né¢ÂÑùiZ¿xa#’¿(áÑ¥YJ5A0_Ø#aïuÿ=Ì”SN9%GvvÍqÌ£³…•0oÖD¥)Š0ê .“=C  êrϲ&'v÷í·ß®Ç6’S£Õ’ øF!›¯}ûöMFu{\ÇoÞìa ÌEÀ’¹}koVAŠÄ¢*bãÆmî—>rîŽUùVNÁH 'Ãtœ›ÊtY¹²ªóµ*¸}•µ™þªºÇĹ·’.%^ƒpŽè÷¿ÿ}IDZHÚ·reew«’ÛÕÎÿQ™"©8…œ~úéº3Ÿ‚ª Te‰_Å*ÐÛ¤qâU«6ºc,=Ý×e·²ÓÙooœÆo“9M/ñ$s Nü&ÇOÕ=‘¬¬²2xðäĉ-6iA’u⊜¤Úc×®ÝîËGß» FûnxbÄ’kIÎ kY¼x;¼8v¢vçÎ]òÑGß%Ìc‘ÉAÀ’œÖ2lØTwúö·orüb’zŒ ©ï÷ÃÜÝwÝû6fÖøñsÜoVm*­+ÝM0‚¤¸ÿgÎ\æ¾õëÏ┈Œ1-d÷)@À’ÐÃUöM6óÊÇq†ÔÌ,Fê®FÔa¯5Ç›W¾9ì‡L™²P–.]çƒìšŒ )ÝW9eÊÿdùò þ1ǵ\¹,Aؤ#Hê°wÿZnJ¤yå›´sçn3³<)ºAR<&ÔàÁS²­^ålJà~Ýd¹Ì›Ó‰Ï™ÖBŠ#Hq š2ÇŸí~a$úë¸ñÙ‡53+“d=ÛaÅd!WϦMÛÜÑö­ÙBŸyf”|ûí"yë­?f ¯T©¼ûi *ÙÂì!9¤Å÷A’Erk©Zµ¢ûÁºì¿&R­ZE÷cnYîGÛrþúHr[gµyÌÄòHØÕˆ@ÀŠ#ˆG®†@FP,ÈðA<v5"0‚D€bA†€GÀâ‘°«!€$ 2<F„] Œ  X!à0‚x$ìjD `‰Å‚ €Ä#aWC #H(dxŒ  »A"@± CÀ#`ñHØÕˆ@ÀŠ#ˆG®†@FP,ÈðA<v5"0‚D€bA†€GÀâ‘°«!€$ 2<F„] Œ  X!à0‚x$ìjD `‰Å‚ €Ä#aWC #H(dxŒ  »A"@± CÀ#Qÿ@gÅŠòÙgŸùwK»ë¼y‹ÜúÅýãÎi×vßàFÉ1ÇãÓÿêþa}ÆÈ¨Q£×#ö—B xàŒO¼HFi?]­[·NjÔ°cæñHÖµI“&ɪ*iõ˜’4¨­¢tDÀ’޽fmNF¤Am¥#Ftì5ksÒ0‚$ j«((õÙ¸q£Ü}÷ÝrôÑGËþûï/;v”¾}ûÊöíÛµ?wîÜ)k֬ɵogÏž-\p°Sòúë¯ËùçŸ/ûí·Ÿ~øárñÅË'Ÿ|’ï¢ãÛ{íµ×Ê AƒòßfG ÔäÉ'Ÿ”>}úHëÖ­åñÇ×Ù¥K¹õÖ[©÷ß_öÙgÙ±cGväþÿi×®]ÉvïÞ_Ànݺ u—+WN|ðA¹é¦›dáÂ…Ò¦My饗òUT|{7oÞ#{¾ °DÙȤ]¿QèöAòõZnðµjÕ {ì±lé9‚êÕ«Ä¿òÊ+ºñè4EàÈüôÓOÁ† ‚õë×ß~ûmàfì`Ù²ezݺuk°`ÁM7wîÜ`„ Á/¿ü’­lÊœ2eŠ–á´”–C‚Ñ£Gk=ñmÛ¶m A‚Ê•+Ë—/xæŠüøãÁ—_~©a3fLP¶lY¸¤cð7hÐ ¸ð ƒªU«]tQðÕW_iûì˜ýîfg©W¯ž7"n¶—‡zH^{í5}Žÿpƒ\ÜÌ-Žâf|2dˆ^;uê$Ž7räH5Ÿ|^|™ãŽ;N*V¬èƒbWv¨ Ÿ?~,ì ƒN Ì™3GÜì/=zô³Î:+²½d§ºæšk´þµk׊ӀҼys¡M´qIn¾ùfá]1ñÜ„“­š¨”}”j‚Ð×/¼ð‚8SHn¹åqæ‡ôêÕKêu×]—ëP¸ä’KÄ͸êÔG%zä‘G¤fÍšâfy-Ë™[2mÚ4Y´h‘ôîÝ[}|§ibÙ7mÚ¤yb¡gÒ Î·Óf±Ðž={Š3»äˆ#Žë¯¿^œÙ‹‹º™:uªvü§½Äiõ³–,Y"3gÎÔ,õë×—;î¸Cã! K³ü†x)DM9Z´h¡:÷ÎÇÐYõ­·Þ’I“&E¢’×™#V ¼0ˆqä)9ôÐC}”œp ±{V¬Ð"QâL=-ƒ4^;ì0« ?ÿüsì9êr"'tR,úÀÔ{´n·3Á4Œ¶—f)Õ§Ÿ~ºÌš5+6Xê½ýöÛõ퉄gzŸßùzëü ”˜sÌò_|ñE,Þߌ1B°,'{Yºt©¿U’‡‰‹Ýøúó u‹zïMÇ2eÊÄâìæWJ5A §~YZýþûïÕNǤÀ¿p«XròÉ'«)T˜!ÎQÝãqsì±Ç ƒÔ­˜)XŽÅ¼óÒµkWqµ´oß^ÞyçqN¿üðÃê[ôë×Oºwï.uêÔñÉ „ïŽàµk×Nã0øö¢9ÐøX3fÌмn…Nš6mªû-šÉ>r ‘ÇÝs¼e. X6Ñ ˆ[ÑTØç šÁƒë€dÀaz0ÀçÍ›'̲Q"—*4=yªU«& Î;ˉ'ž¨eâ‡x‚)öõ×_ ¾δˆ ‘ PXðköÞ{oÝ3A³@jäÔSOÍÑ^«T©¢Ä»üòË‘wÀçxï½÷ˆ.ð{i¦Òð‘Ÿå»tISÐe^ÿ^nP÷>ÿüól{>ž¥Wö #ìy|øá‡óbu8-œwÞy9ŠeÇ™Ó9–Yý2/mv„ Ü~Žü‰ÚË^ û0άÔýš™ ‰Ë¼¥Zƒø kŽšä&,±F-¿æ–>*ÍÄ •"ަüýï×°øô˜},ä%h€(IÔ^|4˜Iþ(Õ>Hþ *ºTn£O÷[n¼ñFyñÅÕ¿`¹¸ ±—fÍš©IT|–vÏ0 ²g¸íQ.6û÷ï¿Gy}&60Ýñÿh×bFÀ4H1lŧ7FÖ«Vm,a-*ÝÍÉHË­ôè²fºuí¼yÜRòw¼½nº5]ÛËù®L“Œ$H¢sT%¹kÔhí6&ëÊë¯Ìq/Éï”îm+òwº¿D&´çÎÝî ïs&·Ê˜1Ý¥aÃ_ÏIe»¥ó;˜RBzoܸ™Jެ¬²2tè¯g¤JHÓJu3Œ %¤ûžâŽ™g¹S»»ÝùªÉ%¤UÖ #H [¶ì‘#¿sß{ÿõhùŠëÝQû% eÖ#H £FÍp'‰wÆZ‚&6ljìÙnR‡€$uØÇjûì#Ï>û¬b }=—]v™ôêÕK† ¢xÕ¨QC¨—xÞƒúÑhh"ˆLØ1!x!Œ1âÇý–=Q¿ûü{z-4AæÎ+]»vÕÁƒY€4iÒD*T¨ S¦LÑgTìsÏ='?ü°ùå—_.·Þz«æ¹ï¾ûb 3x‡rˆ0cÝÿý D™2eLùÈ‘#µÿA¹líÚµ ÞÎ;å‚ .îÝ»Ë×_­³ý±Ç«³q”ÍÌÈhLgžyFß%þÙ×¾ÒÁ Þa`Qf“Îïܹ³ â1;  é7oÞ¬¦ÇóÏ?¯„äy:ÉËû| ü±Üxã À lØ DLCÚñÐCi¹Ìî/¼ð‚Ô«WOî¼óN™9s¦šG tßVfÿÛo¿]Ü©Š˜¶¹÷Þ{å”SNQí ¹ÈùÅ_ècÏž=åî»ïÖ‰‰÷ðäðiï¸ãiÕª•˜0ž™$xïO¿¯;|epàü÷¿ÿUb@¢Ï?ÿ<–âaýóŸÿTŸâµ×^Ó8´dõZ)þ™D @´~ø¡žÙï /Ô2Øl=z´<úè£Z?°OŸ>:™éÌ[n¹EÞÿ}}' ¯¼òŠÎš :&&¼„YÛéÒ¥šœ˜åßzë-m_Æ µLPSÂÁù§Ÿ~Ò´ÜC0aVί@"ü-ZÈK/½¤Ä$/íò&Ož,sæÌQ €–ôÂzýõ×Ë_þòmd£=˜’ù‘¼ú=?eD¥)2‚\}õÕj2à8"˜ xÿŒãÆ ÂÌæÅØ±cuVb¦;è ƒÔô€ Ž_|Qnºé&–¼:tPó‚th…Ü„™±uëÖZé<ð@¥|úk¯½V‘/Çk=žÿô§?ÅÿL~´ íâ‡Âaª!cÆŒÑÁAæ Zsoâĉ‚¹ÇÀ=õÔSu’@£¦ &*dÁ^§ýh¹3ÏûL<è/„¾C;ƒy~$¯~ÏOQi mbùByI„NCè8  æ!8nÜ8 N4 Á°iј"‹8¯-˜½äf£_§NŸL¯ L_^CpOuæW~÷»ßeóApœ1ßÐHÌÀø 2L /ØÍ`ÀûcÚac{¬ÐªÈÑGí³åib‘" LAC|ôÑGzÏu…gmæÃ/@³á×Ñ7‰„ºòL&„AùŠ ,ŠóÏ?_ïý øL~¢ññŒ©Üú'¾=yõ»/³ ×"#ˆ'B^ `æÂaPáp¡žÔ0N(~ê3ó¤K—.ÓHg#tnnÐ^‘²ÂK¡”ãg)LÁDdóåävmÚ´©toâÐ>ÊÃÄò2aÂ,ø ƒ÷BCàD{ÇÞÎùóçÇÞG>/Á|„˜L~‘Œ&Lðý÷ßg+î7ÞP_è½÷ÞÓ¼øž¨¾/ÔmõÌVHÜžEú´(Dˆ4)“ïï…÷Bóùw¡M¾=¤abK^ýN[û"3±ò[ióæÍÕìxóÍ7U‹x›‡•­ž33XéÂ<ÁLa±Àʋ̒¹ Î~3ƒÆ›yä¡^ÊAÕc³`Ãþãÿ%K–D>k`Äm£<„w£L4$õÓfL â~ ðŒ–„À´ͱ÷Þ{«ÍÍûù2â«c9›Ù“›Ÿö2ÉéÁ•"Êà}üqÁÇò+uáòhmgu‘Áæ÷Yh×hsˆ)œárÈÏàä(GŸzà˜n`Ž©•HèLo°£.ölVÎ,Ghq˜®¼?÷aÉ«ßÃi r_d$¯Jý¬!°¯™ý¼sK^€eÅ…%A@GEã¼á„²‚B\ûöíÕ\a@°èÅ—Í3ª–Ã’.³*è˜cŽfrPƒs'˜8ÙØÅ˜‡ñϤ!O¼0óÑaø¬º0 zõê¥É˜˜^˜‡ìŸ 5ñ(‡!´'ƒåcÞ‘|´—÷¡̺ˆ?0@È#|Í5×èa˜k˜v¬&y­‹™J™QíöxÓà}ÅW¨‰ˆ‡,„6LÿÐxÏ·ƒ«¿C&$$ @2Vëð'ˆÃÚÜç —AÚ ©i/q´‰þ÷¦:ã¢wïÞŠ'ZüÂZ$·~§ìÂHgó˜0kà,²RS\‚“Ë,ÉÌT9»â¬§{3ÈÇcG3#Îì â—y1mP͉“ŠiágOÂlNgúýfíâöA˜U©?¼o@]¼Ú‘Aƒ0C3àhÚÍ ð&“&*ÀR×°ŸUi 4“8±Ÿ&-Hï_F•A“íï¦Ó_´ƒ0?ÈsËïʘ«´B²øÊdâŠ//Q¿‡ó'ºg峕ÓV˜Àa)~(î{foLÌ)låxdvz£ÍÃÆW~„r¼•>Þ¡‹JS˜06¸Â›\á² MX‹˜”GuT8ºÀ÷y½{¸@Ò†1e@†¥'q8OÔ}ü$@ú+ÞéŽÊCsÄþpœXöÐ^8þ&…GÀRH YÒdçšÝì09(‡ò’K.Ñý Ì'VÞr;TDZHà°ÉÇ9&žÉË \nù8,ÊJñ¬:QK¤~#²¯Xª³›‰UÈîgæÇŠZ4 h¿*åwÛs;TÇ û=zôÐ=‰p³8ÃÅ’i¢ƒ|l²ÑÊQö-8ðgRxŒ …ÄsÉmߟ%ò›u¬ï':LÕœüä܃Œìa°ëOD•gaùGÀ’¬"SúuùÜ$¢ˆO¿Ã’uø0e|%˜Kl:Æï)Ää£/ìe`j™#H!1äÀ%æ&Müy%V¡ _ò»ÌQ‡ê›…ñÍAó0ø£ò…Zú#ñùí¹pA ‡ŸæöGÝùGø!'…ùþÇGüÙ(':TÇù#N*Ç-¯ƒ|Eð VD.Ø*V.À$˜ãô,ãò>¾Jê…c%œ; }+ê0%y8¼È7 ! Áû-yä‹×<LJù6Ùµ`ØNzÁðÊ35«ZVäøCüaÈüªc„= H–¼ò…ÓÚ}ÁÈm'={/¼\ˇ~AØ7ˆ‹ÖÇD‡êr;9‹FðŽ~T™V<AŠ×ÈR‹óP]d…XhŒ …†0ÿðe)“ôBÀV±Ò«¿¬µIFÀ’dÀ­ºôBÀ’^ýe­M2¹ú ½zõJrS¬:C up4Jr„Í-ÿû§Q,ÌÈDø 8¿./96 ãس!Pš0¤4÷¾½{žAò„È”fŒ ¥¹÷íÝóDÀ’'D– 4#ðµg°de“<½IEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1Row.html000755 000765 000024 00000346527 13515046516 023403 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::Row Class Reference
MySQL++  3.2.5
mysqlpp::Row Class Reference

Manages rows from a result set. More...

#include <row.h>

Inheritance diagram for mysqlpp::Row:
Collaboration diagram for mysqlpp::Row:

Public Types

typedef std::vector< Stringlist_type
 type of our internal data list More...
 
typedef list_type::const_iterator const_iterator
 constant iterator type
 
typedef list_type::const_reference const_reference
 constant reference type
 
typedef list_type::const_reverse_iterator const_reverse_iterator
 const reverse iterator type
 
typedef list_type::difference_type difference_type
 type for index differences
 
typedef const_iterator iterator
 iterator type More...
 
typedef const_reference reference
 reference type More...
 
typedef const_reverse_iterator reverse_iterator
 mutable reverse iterator type More...
 
typedef list_type::size_type size_type
 type of returned sizes
 
typedef list_type::value_type value_type
 type of data in container
 

Public Member Functions

 Row ()
 Default constructor.
 
 Row (const Row &r)
 Copy constructor.
 
 Row (MYSQL_ROW row, const ResultBase *res, const unsigned long *lengths, bool te=true)
 Create a row object. More...
 
 ~Row ()
 Destroy object.
 
const_reference at (size_type i) const
 Get a const reference to the field given its index. More...
 
const_reference back () const
 Get a reference to the last element of the vector.
 
const_iterator begin () const
 Return a const iterator pointing to first element in the container.
 
bool empty () const
 Returns true if container is empty.
 
const_iterator end () const
 Return a const iterator pointing to one past the last element in the container.
 
equal_list_ba< FieldNames, Row, quote_type0equal_list (const char *d=",", const char *e=" = ") const
 Get an "equal list" of the fields and values in this row. More...
 
template<class Manip >
equal_list_ba< FieldNames, Row, Manip > equal_list (const char *d, const char *e, Manip m) const
 Get an "equal list" of the fields and values in this row. More...
 
value_list_ba< FieldNames, do_nothing_type0field_list (const char *d=",") const
 Get a list of the field names in this row. More...
 
template<class Manip >
value_list_ba< FieldNames, Manip > field_list (const char *d, Manip m) const
 Get a list of the field names in this row. More...
 
template<class Manip >
value_list_b< FieldNames, Manip > field_list (const char *d, Manip m, const std::vector< bool > &vb) const
 Get a list of the field names in this row. More...
 
value_list_b< FieldNames, quote_type0field_list (const char *d, const std::vector< bool > &vb) const
 Get a list of the field names in this row. More...
 
value_list_b< FieldNames, quote_type0field_list (const std::vector< bool > &vb) const
 Get a list of the field names in this row. More...
 
template<class Manip >
value_list_b< FieldNames, Manip > field_list (const char *d, Manip m, bool t0, bool t1=false, bool t2=false, bool t3=false, bool t4=false, bool t5=false, bool t6=false, bool t7=false, bool t8=false, bool t9=false, bool ta=false, bool tb=false, bool tc=false) const
 Get a list of the field names in this row. More...
 
value_list_b< FieldNames, quote_type0field_list (const char *d, bool t0, bool t1=false, bool t2=false, bool t3=false, bool t4=false, bool t5=false, bool t6=false, bool t7=false, bool t8=false, bool t9=false, bool ta=false, bool tb=false, bool tc=false) const
 Get a list of the field names in this row. More...
 
value_list_b< FieldNames, quote_type0field_list (bool t0, bool t1=false, bool t2=false, bool t3=false, bool t4=false, bool t5=false, bool t6=false, bool t7=false, bool t8=false, bool t9=false, bool ta=false, bool tb=false, bool tc=false) const
 Get a list of the field names in this row. More...
 
size_type field_num (const char *name) const
 Returns a field's index given its name.
 
const_reference front () const
 Get a reference to the first element of the vector.
 
size_type max_size () const
 Return maximum number of elements that can be stored in container without resizing.
 
Rowoperator= (const Row &rhs)
 Assignment operator.
 
const_reference operator [] (const char *field) const
 Get the value of a field given its name. More...
 
const_reference operator [] (int i) const
 Get the value of a field given its index. More...
 
 operator private_bool_type () const
 Returns true if row object was fully initialized and has data. More...
 
const_reverse_iterator rbegin () const
 Return reverse iterator pointing to first element in the container.
 
const_reverse_iterator rend () const
 Return reverse iterator pointing to one past the last element in the container.
 
size_type size () const
 Get the number of fields in the row.
 
template<class Manip >
value_list_ba< Row, Manip > value_list (const char *d=",", Manip m=quote) const
 Get a list of the values in this row. More...
 
template<class Manip >
value_list_b< Row, Manip > value_list (const char *d, const std::vector< bool > &vb, Manip m=quote) const
 Get a list of the values in this row. More...
 
value_list_b< Row, quote_type0value_list (const std::vector< bool > &vb) const
 Get a list of the values in this row. More...
 
template<class Manip >
value_list_b< Row, Manip > value_list (const char *d, Manip m, bool t0, bool t1=false, bool t2=false, bool t3=false, bool t4=false, bool t5=false, bool t6=false, bool t7=false, bool t8=false, bool t9=false, bool ta=false, bool tb=false, bool tc=false) const
 Get a list of the values in this row. More...
 
value_list_b< Row, quote_type0value_list (const char *d, bool t0, bool t1=false, bool t2=false, bool t3=false, bool t4=false, bool t5=false, bool t6=false, bool t7=false, bool t8=false, bool t9=false, bool ta=false, bool tb=false, bool tc=false) const
 Get a list of the values in this row. More...
 
value_list_b< Row, quote_type0value_list (bool t0, bool t1=false, bool t2=false, bool t3=false, bool t4=false, bool t5=false, bool t6=false, bool t7=false, bool t8=false, bool t9=false, bool ta=false, bool tb=false, bool tc=false) const
 Get a list of the values in this row. More...
 
template<class Manip >
value_list_b< Row, Manip > value_list (const char *d, Manip m, std::string s0, std::string s1="", std::string s2="", std::string s3="", std::string s4="", std::string s5="", std::string s6="", std::string s7="", std::string s8="", std::string s9="", std::string sa="", std::string sb="", std::string sc="") const
 Get a list of the values in this row. More...
 
value_list_b< Row, quote_type0value_list (const char *d, std::string s0, std::string s1="", std::string s2="", std::string s3="", std::string s4="", std::string s5="", std::string s6="", std::string s7="", std::string s8="", std::string s9="", std::string sa="", std::string sb="", std::string sc="") const
 Get a list of the values in this row. More...
 
value_list_b< Row, quote_type0value_list (std::string s0, std::string s1="", std::string s2="", std::string s3="", std::string s4="", std::string s5="", std::string s6="", std::string s7="", std::string s8="", std::string s9="", std::string sa="", std::string sb="", std::string sc="") const
 Get a list of the values in this row. More...
 
- Public Member Functions inherited from mysqlpp::OptionalExceptions
 OptionalExceptions (bool e=true)
 Default constructor. More...
 
virtual ~OptionalExceptions ()
 Destroy object.
 
void enable_exceptions () const
 Enable exceptions from the object.
 
void disable_exceptions () const
 Disable exceptions from the object.
 
bool throw_exceptions () const
 Returns true if exceptions are enabled.
 

Additional Inherited Members

- Protected Member Functions inherited from mysqlpp::OptionalExceptions
void set_exceptions (bool e) const
 Sets the exception state to a particular value. More...
 

Detailed Description

Manages rows from a result set.

This class is like an extended version of a const std::vector of mysqlpp::String. It adds stuff for populating the vector. As for why it's const, what would it mean to modify a Row? If we ever did support such semantics, it should probably actually modify the database. We can't do that if we just derive from std::vector.

Not that we could derive from std::vector even if we wanted to: vector::operator[](size_type) would interfere with our operator[](const char*). We can avoid this only by maintaining our own public inteface independent of that of vector.

Member Typedef Documentation

◆ iterator

iterator type

Note that this is just an alias for the const iterator. Row is immutable, but people are in the habit of saying 'iterator' even when they don't intend to use the iterator to modify the container, so we provide this as a convenience.

◆ list_type

typedef std::vector<String> mysqlpp::Row::list_type

type of our internal data list

This is public because all other typedefs we have for mirroring std::vector's public interface depend on it.

◆ reference

reference type

See also
iterator for justification for this const_reference alias

◆ reverse_iterator

mutable reverse iterator type

See also
iterator for justification for this const_reverse_iterator alias

Constructor & Destructor Documentation

◆ Row()

mysqlpp::Row::Row ( MYSQL_ROW  row,
const ResultBase res,
const unsigned long *  lengths,
bool  te = true 
)

Create a row object.

Parameters
rowMySQL C API row data
resresult set that the row comes from
lengthslength of each item in row
teif true, throw exceptions on errors

References mysqlpp::ResultBase::field_names(), mysqlpp::ResultBase::field_type(), mysqlpp::ResultBase::num_fields(), size(), and mysqlpp::OptionalExceptions::throw_exceptions().

Member Function Documentation

◆ at()

Row::const_reference mysqlpp::Row::at ( size_type  i) const

Get a const reference to the field given its index.

Exceptions
mysqlpp::BadIndexif the row is not initialized or there are less than i fields in the row.

References size().

Referenced by operator []().

◆ equal_list() [1/2]

equal_list_ba< FieldNames, Row, quote_type0 > mysqlpp::Row::equal_list ( const char *  d = ",",
const char *  e = " = " 
) const

Get an "equal list" of the fields and values in this row.

When inserted into a C++ stream, the delimiter 'd' will be used between the items, " = " is the relationship operator, and items will be quoted and escaped.

References mysqlpp::quote.

◆ equal_list() [2/2]

template<class Manip >
equal_list_ba< FieldNames, Row, Manip > mysqlpp::Row::equal_list ( const char *  d,
const char *  e,
Manip  m 
) const

Get an "equal list" of the fields and values in this row.

This method's parameters govern how the returned list will behave when you insert it into a C++ stream:

Parameters
ddelimiter to use between items
ethe operator to use between elements
mthe manipulator to use for each element

For example, if d is ",", e is " = ", and m is the quote manipulator, then the field and value lists (a, b) (c, d'e) will yield an equal list that gives the following when inserted into a C++ stream:

'a' = 'c', 'b' = 'd''e'

Notice how the single quote was 'escaped' in the SQL way to avoid a syntax error.

◆ field_list() [1/8]

value_list_ba< FieldNames, do_nothing_type0 > mysqlpp::Row::field_list ( const char *  d = ",") const

Get a list of the field names in this row.

When inserted into a C++ stream, the delimiter 'd' will be used between the items, and no manipulator will be used on the items.

References mysqlpp::do_nothing.

◆ field_list() [2/8]

template<class Manip >
value_list_ba< FieldNames, Manip > mysqlpp::Row::field_list ( const char *  d,
Manip  m 
) const

Get a list of the field names in this row.

Parameters
ddelimiter to place between the items when the list is inserted into a C++ stream
mmanipulator to use before each item when the list is inserted into a C++ stream

◆ field_list() [3/8]

template<class Manip >
value_list_b< FieldNames, Manip > mysqlpp::Row::field_list ( const char *  d,
Manip  m,
const std::vector< bool > &  vb 
) const

Get a list of the field names in this row.

Parameters
ddelimiter to place between the items when the list is inserted into a C++ stream
mmanipulator to use before each item when the list is inserted into a C++ stream
vbfor each true item in this list, add that field name to the returned list; ignore the others

◆ field_list() [4/8]

value_list_b< FieldNames, quote_type0 > mysqlpp::Row::field_list ( const char *  d,
const std::vector< bool > &  vb 
) const

Get a list of the field names in this row.

Parameters
ddelimiter to place between the items when the list is inserted into a C++ stream
vbfor each true item in this list, add that field name to the returned list; ignore the others

Field names will be quoted and escaped when inserted into a C++ stream.

References mysqlpp::quote.

◆ field_list() [5/8]

value_list_b< FieldNames, quote_type0 > mysqlpp::Row::field_list ( const std::vector< bool > &  vb) const

Get a list of the field names in this row.

Parameters
vbfor each true item in this list, add that field name to the returned list; ignore the others

Field names will be quoted and escaped when inserted into a C++ stream, and a comma will be placed between them as a delimiter.

References mysqlpp::quote.

◆ field_list() [6/8]

template<class Manip >
value_list_b< FieldNames, Manip > mysqlpp::Row::field_list ( const char *  d,
Manip  m,
bool  t0,
bool  t1 = false,
bool  t2 = false,
bool  t3 = false,
bool  t4 = false,
bool  t5 = false,
bool  t6 = false,
bool  t7 = false,
bool  t8 = false,
bool  t9 = false,
bool  ta = false,
bool  tb = false,
bool  tc = false 
) const

Get a list of the field names in this row.

For each true parameter, the field name in that position within the row is added to the returned list. When the list is inserted into a C++ stream, the delimiter 'd' will be placed between the items as a delimiter, and the manipulator 'm' used before each item.

◆ field_list() [7/8]

value_list_b< FieldNames, quote_type0 > mysqlpp::Row::field_list ( const char *  d,
bool  t0,
bool  t1 = false,
bool  t2 = false,
bool  t3 = false,
bool  t4 = false,
bool  t5 = false,
bool  t6 = false,
bool  t7 = false,
bool  t8 = false,
bool  t9 = false,
bool  ta = false,
bool  tb = false,
bool  tc = false 
) const

Get a list of the field names in this row.

For each true parameter, the field name in that position within the row is added to the returned list. When the list is inserted into a C++ stream, the delimiter 'd' will be placed between the items as a delimiter, and the items will be quoted and escaped.

References mysqlpp::quote.

◆ field_list() [8/8]

value_list_b< FieldNames, quote_type0 > mysqlpp::Row::field_list ( bool  t0,
bool  t1 = false,
bool  t2 = false,
bool  t3 = false,
bool  t4 = false,
bool  t5 = false,
bool  t6 = false,
bool  t7 = false,
bool  t8 = false,
bool  t9 = false,
bool  ta = false,
bool  tb = false,
bool  tc = false 
) const

Get a list of the field names in this row.

For each true parameter, the field name in that position within the row is added to the returned list. When the list is inserted into a C++ stream, a comma will be placed between the items as a delimiter, and the items will be quoted and escaped.

References mysqlpp::quote.

◆ operator []() [1/2]

const Row::value_type & mysqlpp::Row::operator [] ( const char *  field) const

Get the value of a field given its name.

If the field does not exist in this row, we throw a BadFieldName exception if exceptions are enabled, or an empty row if not. An empty row tests as false in bool context.

This operator is fairly inefficient. operator[](int) is faster.

References at(), empty(), field_num(), size(), and mysqlpp::OptionalExceptions::throw_exceptions().

◆ operator []() [2/2]

const_reference mysqlpp::Row::operator [] ( int  i) const
inline

Get the value of a field given its index.

This function is just syntactic sugar, wrapping the at() method.

It's critical that the parameter type be int, not size_type, because it will interfere with the const char* overload otherwise. row[0] is ambiguous when there isn't an int overload.

Exceptions
mysqlpp::BadIndexif the row is not initialized or there are less than i fields in the row.

◆ operator private_bool_type()

mysqlpp::Row::operator private_bool_type ( ) const
inline

Returns true if row object was fully initialized and has data.

This operator lets you use Row in bool context, which lets you do things like tell when you've run off the end of a "use" query's result set:

Query q("....");
if (UseQueryResult res = q.use()) {
// Can use 'res', query succeeded
while (Row row = res.fetch_row()) {
// Retreived another row in the result set, can use 'row'
}
}

◆ value_list() [1/9]

template<class Manip >
value_list_ba<Row, Manip> mysqlpp::Row::value_list ( const char *  d = ",",
Manip  m = quote 
) const
inline

Get a list of the values in this row.

When inserted into a C++ stream, the delimiter 'd' will be used between the items, and the quoting and escaping rules will be set by the manipulator 'm' you choose.

Parameters
ddelimiter to use between values
mmanipulator to use when inserting values into a stream

◆ value_list() [2/9]

template<class Manip >
value_list_b<Row, Manip> mysqlpp::Row::value_list ( const char *  d,
const std::vector< bool > &  vb,
Manip  m = quote 
) const
inline

Get a list of the values in this row.

Parameters
ddelimiter to use between values
vbfor each true item in this list, add that value to the returned list; ignore the others
mmanipulator to use when inserting values into a stream

◆ value_list() [3/9]

value_list_b<Row, quote_type0> mysqlpp::Row::value_list ( const std::vector< bool > &  vb) const
inline

Get a list of the values in this row.

Parameters
vbfor each true item in this list, add that value to the returned list; ignore the others

Items will be quoted and escaped when inserted into a C++ stream, and a comma will be used as a delimiter between the items.

References mysqlpp::quote.

◆ value_list() [4/9]

template<class Manip >
value_list_b<Row, Manip> mysqlpp::Row::value_list ( const char *  d,
Manip  m,
bool  t0,
bool  t1 = false,
bool  t2 = false,
bool  t3 = false,
bool  t4 = false,
bool  t5 = false,
bool  t6 = false,
bool  t7 = false,
bool  t8 = false,
bool  t9 = false,
bool  ta = false,
bool  tb = false,
bool  tc = false 
) const
inline

Get a list of the values in this row.

For each true parameter, the value in that position within the row is added to the returned list. When the list is inserted into a C++ stream, the delimiter 'd' will be placed between the items, and the manipulator 'm' used before each item.

◆ value_list() [5/9]

value_list_b<Row, quote_type0> mysqlpp::Row::value_list ( const char *  d,
bool  t0,
bool  t1 = false,
bool  t2 = false,
bool  t3 = false,
bool  t4 = false,
bool  t5 = false,
bool  t6 = false,
bool  t7 = false,
bool  t8 = false,
bool  t9 = false,
bool  ta = false,
bool  tb = false,
bool  tc = false 
) const
inline

Get a list of the values in this row.

For each true parameter, the value in that position within the row is added to the returned list. When the list is inserted into a C++ stream, the delimiter 'd' will be placed between the items, and items will be quoted and escaped.

References mysqlpp::quote.

◆ value_list() [6/9]

value_list_b<Row, quote_type0> mysqlpp::Row::value_list ( bool  t0,
bool  t1 = false,
bool  t2 = false,
bool  t3 = false,
bool  t4 = false,
bool  t5 = false,
bool  t6 = false,
bool  t7 = false,
bool  t8 = false,
bool  t9 = false,
bool  ta = false,
bool  tb = false,
bool  tc = false 
) const
inline

Get a list of the values in this row.

For each true parameter, the value in that position within the row is added to the returned list. When the list is inserted into a C++ stream, the a comma will be placed between the items, as a delimiter, and items will be quoted and escaped.

References mysqlpp::quote.

◆ value_list() [7/9]

template<class Manip >
value_list_b<Row, Manip> mysqlpp::Row::value_list ( const char *  d,
Manip  m,
std::string  s0,
std::string  s1 = "",
std::string  s2 = "",
std::string  s3 = "",
std::string  s4 = "",
std::string  s5 = "",
std::string  s6 = "",
std::string  s7 = "",
std::string  s8 = "",
std::string  s9 = "",
std::string  sa = "",
std::string  sb = "",
std::string  sc = "" 
) const
inline

Get a list of the values in this row.

The 's' parameters name the fields that will be added to the returned list. When inserted into a C++ stream, the delimiter 'd' will be placed between the items, and the manipulator 'm' will be inserted before each item.

◆ value_list() [8/9]

value_list_b<Row, quote_type0> mysqlpp::Row::value_list ( const char *  d,
std::string  s0,
std::string  s1 = "",
std::string  s2 = "",
std::string  s3 = "",
std::string  s4 = "",
std::string  s5 = "",
std::string  s6 = "",
std::string  s7 = "",
std::string  s8 = "",
std::string  s9 = "",
std::string  sa = "",
std::string  sb = "",
std::string  sc = "" 
) const
inline

Get a list of the values in this row.

The 's' parameters name the fields that will be added to the returned list. When inserted into a C++ stream, the delimiter 'd' will be placed between the items, and items will be quoted and escaped.

References mysqlpp::quote.

◆ value_list() [9/9]

value_list_b<Row, quote_type0> mysqlpp::Row::value_list ( std::string  s0,
std::string  s1 = "",
std::string  s2 = "",
std::string  s3 = "",
std::string  s4 = "",
std::string  s5 = "",
std::string  s6 = "",
std::string  s7 = "",
std::string  s8 = "",
std::string  s9 = "",
std::string  sa = "",
std::string  sb = "",
std::string  sc = "" 
) const
inline

Get a list of the values in this row.

The 's' parameters name the fields that will be added to the returned list. When inserted into a C++ stream, a comma will be placed between the items as a delimiter, and items will be quoted and escaped.

References mysqlpp::quote.


The documentation for this class was generated from the following files:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1UseQueryError__inherit__graph.png000644 000765 000024 00000020654 13515046516 030434 0ustar00tangentstaff000000 000000 ‰PNG  IHDR³·Y…oåsRGB®Îé!fIDATxí]˜E~äœ$ƒ ’1ƒ"œ§r¢Ê!ˆ^%x‚ *xxŠbE>õN ’P²(IrÉ9G‰uïXMÏìÌî ;³Û ï}ßLwåWýõêUuÏncÌHRQüÀ²4Lfãÿ~hšœVAP®”Ì×ËHj?Hɬ$¸nHﵞ\¾|™>ì5µTéÓ§§kòçÏï„ù‘­yî¹ç$¼aÃS¾|y)‹6 *d~üñGsúôiS¦LIƒîgΜ1¥K—6Õ«W7L~é ¯&cÆŒm–,YÒ0‘¤Î¯¾úJt†îгAƒ†'…¤!íÚµEwÛ·1cÆ„ì× /¼`ø‰œ”›;w®)P €ô+sæÌÒ`¾h§iÓ¦R/îÑß7Jz$_ÀqñâÅ‘dMé<“(¥[Lª½hÉüÍ7ßÈíܹÓðRk^|ñES´hQÃÖÇŒ;VÒΟ?/ÍV«VÍÜwß}†— úÍ7ß@f¥OŸ>ŽŠ½zõ2ãÆ“pÍš5M¥J•̺uë„°76·Ýv›´³páB!GÏž= ˆ… ²iÓ&ƒ¾ÜrË-æøƒ” [ÇŽÍæÍ›…à:u2Ç—z ,hºví*íÌEŠ1lõeÂ4kÖÌ`R°¥MÐ/Kf¶¼æÖ[o5Mš41è3¸G›ÐÅ’ú=zT&wΜ9 [u§ÏIÝ(™“BÈ•-™a%`ñZ´ha¦OŸ.RCÜdÞ·oŸä³äD:ˆä¶Ìˆ %@X1uéÒ¥òùè£$ä†ôèÑCV¬Ÿ|ò‰ÄYò°û#a|ñÒ.zþûßÿ–òX…l°˜+V”¼ ó믿î”C耉ãî2X2Ûö¦Nê”CÛ(·|ùr‡ÌK–,qÒ1¹Ûµkç„“ºñ2™=ûn@D‚^(^¦‰] êÖ­õîÝ; <[b¬BÄÖÙ‰g7ùOìÆú³ƒ¦/¾øÂÉÊ–Ýñ±™ôæ›o^ÂiÙ²¥äÙ±c‡\Ù qÊÔªUKî'L˜ ×V­Z9i¸AVØòÛ[bw@îí>ÀIpÝØöð^‹•Â… Ë-6»Ð Ânˆ\ñ•%K²þ¿éÓßoÙ2[3Z½z5íÙ³‡ØÇ¥¾}û»C’/_> ¯ZµÊ‰GÙH„—{É6`À©u³¥¤wÞy‡Ê–-+“¤C‡BDl®ºté"ùÙm«{ãÇ>þøcÉØúʦõá3~üxzã7•Ð+جAØm±Q ®ìÇK6©V '„ݹâ‹WçþººIjYIéôhÝŒaÆøšóçÏ7Ø b‰ÇÆgÿþýfÒ¤I²Äòàʆù°¬bÉ1c†”s»Ç7/½ô’ÓåîÝ»øÑØÈU¨PÁÀçFY¸ð;á£M^¤,éLx¹Ÿ2eŠøÉðWï¿ÿ~ñÓÑf¦L™ ­I=pI:wîlØÚŠ®Ð.nFñâÅ 6ž<M5$Œ½€»_[7›Qž$¦^½zR~1¯¦jÕªR§uCvíÚ%a|aÓÙ¦M'œÔ—Ý ßo1€uêÔÄØÉ¿ýöÛ2&”0[9A€OmO3@¤æÍ›~ÍÔ¿öíÛ Ám„û4$.Q¢„´ƒúŠ+&þëÖ­[åDâ©§ž’b 7N!@*lì°ÑIQmµmÛÖVo $äF>õë×— 2€Ì8mÁI Òp’ÂGxR6¸_¼ÈDC"&¯BR},Uª”L$¤…"3N‚Ü:!_b¢dN  ´h-³-k¹hÑ"±”6WÔÇþ¢òcÓ«­ð™³•çsjƒûH–}ýúõ¢Kp$äp Èüõ×_ËQÝdºÓƒûåNÃFXuL®XŠ—Éìû [-‘råÊÙÛ€+/ë„l¯õWø¹üóh…­«øÖ¡ÊñÑñ™t¨$‰Ë•+á,Áýr§ó E|ŒèŽº!î¯Ó€ÿÇŽ}dyïÿž¤\®Ëœr¥LKx­j™£ÃKs{%s Ξ=W_BJænØ&<ëfðiƒótÍÏ£súôyzé¥ ôÁÍýÜ Gw> rî½vãY2óQ•×°º&}æÎÝÉïLoæ×<—ñ©ÄÕS•kªÌ#…ìcq¨ã¨á92ãÈ©nÝºŽ‚~¿4èc~¯ÙðßšÈJMšÜç÷îxZõ™ã8<‡Ÿb‹¼IZ5*²÷@â¨Îu_µ’9ŽCÅnâøñ34wîÆàh '%s2tÇ;ð—ùgwügÒ9;cÆôÎeO%¶xîE£Øv/ek;~ü,uêT? Qœ+ñ½újcJ—îªíÈž=s@> $ýßÙÉÇ0ѦM[MmÛ¥;úË#íD3kbrÐÿô´¬·¸ºîyK/ÕFˆ%sÔi¯" döêȨ^Q# dŽ2-àU”Ì^Õ+j”ÌQC¦¼Š€’Ù«#£zE€’9jÈ´€WP2{udT¯¨P2G ™ð*Jf¯ŽŒê5Jæ¨!Ó^E@ÉìÕ‘Q½¢F@É5dZÀ«(™½:2ªWÔ(™£†L x%³WGFõŠ%sÔi¯" döêȨ^Q# dŽ2-àU”Ì^Õ+j”ÌQC¦¼Š€’Ù«#£zE€’9jÈ´€WP2{udT¯¨P2G ™ð*Jf¯ŽŒê5Jæ¨!Ó^E@ÉìÕ‘Q½¢F@É5dZÀ«(™½:2ªWÔ(™£†L xc©V­šáÎêç7 Ò¥Ëf2g¾Í¤I“F1qñâµ×^‹1ó̤¸üO“‡~˜ZµjåÙ ¬Š¥.Ï?ÿ|\ˆ ™Ë”)CÍ›7‹ÂZ©ÿxõÕWãÒ õ™ã«Vš(™Sum3.(™ã«Vš(™Sum3.ÄeMãTé3Ï}ú8XöêÕËŒ7N 3û¦RêqØ"KžîÝ»K@l¶ø$Ä$;w®´3pà@ £}è1kÖ,Ó¿™¸'N4¼*¶ü’Æ.±dþóŸÿlØ…0›6m2 0O>ù¤´‡ø&Mš8úZ2c"¡þaÆIʱu7;v”0ÈŒôwß}×°õ7è'Â[·nuêJê&^döÄiLl!ˆg<•,Y’x¦[SbðeY…[€å²~ýú4zôhÆŽˆ‰BleßË`·n݈É@xÂqL2b«MlÅ)[¶lÄCʇûêСÝrË-w¢gÏž„%. äŽ;î &¸mÚ´_>7þ0ò[éÝ»75mÚÔÅÝ€›ü±^ýué½zõˆWúòË/¥ž,Ä’ØÊKí3¡Å5>|¸¸p³°äßsÏ=ÄÆ€¦M›f«,²dÉB¥J•"è<{öl'-Ô p…«Å_’Qýøî»ïœìÀ¤á1É%žI蠟ÖMªûÌè¸Û¿@¼„9x€<Ó%ÌMvþ¤Q£FÉîÀW©R…ØrÉD±ÙjÐîÝ»©zõêN}Å‹wîCÝÜvÛmN4üb|iHðFé6M2$òŸ™­yØØ'à}^UdòaBAvìØ€â@hüdø÷la%Œ/ì?€™w`€]b‚öà#Ãß·‚ñ9tè Š‘±»GÀÉHjËUSQ7ø‰©ñÈ#Ȇ)Xû2ÓâÅ‹e£ Š ¬Xß¾}eƒÍ,^ímÈ+Ê[aWGn-±ÜiØýÿüóÏbÅmþä\A"è\¶lYY}f̘!ÕaEÚ°aa ÁÆ’ýsZ²d‰Xg¬VØÚŽÝïŸuf"I}Ùå“•È´¹téÒ€r‘Žʦ¤x‚Ì‘vn–<¸°@5’¢8ÁÀù(ȇÁ‡e‡ kKÍþŸœr`'þÊ+¯$Ú,üÆe@ßÿ}‚%Ç)ƒŠ%®oÊä(ëÁ”´#F¸0°°cÇŽ•4|á4dòäÉ >81qpÖŒ>áïÞ{ï%Þ\Ê &0N"ÐNkà¾À€KÖ¸qcâ½€:a2 ?N1¬+”ÇJ†¼=ô$aÑ‘æôu'¤ýôÓOÄþ9µhÑÂÍ›÷I9ëѦG»d²Èf¶ÃGO¦k×®6(§جX™:uªl8:wîl£d³† #,›GltÞ~ûmIÇé‡=Á@:væ¸Ú 6[ö§ìw:»tìÚøá©›6öçe‡òؘÚrÈо}{Ù(Ifþ >Í@™PöcÍG} O&Ã~®a‚KuötåÙÕ1ìOK<6vؤÚz±q¶'3vhûŽ~("›`æÉ'›G>®“º0ö4n¶¾LdÙX##Nª€¡&|€î6>±k¼6€©~š‘X§C¥\¼uëÖ%HFvò8p ޶lÙbx)—ÁDyKfw>§ àúAf^ Ÿ±¶¦Çb))8QÉC ú…Ó CZ±d†¾è;N†‚ùyÅŽ–0ûÈRg¨r! D/2{bÈäŠHà.`÷‚IP&T2Ádz›7<,HJ°©Ä'”À}Áƒœ”œR¸7Æîö±¹Ä'œØ¾§óêå„ñ°È>0r"=~ã+Ÿ>,ËgÍ× +ŸU?¤ÿ4¸†@<íÃæÌ/‚~ ?^ݬÅG_YæåË—'%±«²{f*1^¿ŽÕV,â°‰d×#Uù¦_Yfß ªŠ¦ Jæ€ýâÅ+gÄ)ÐÔ Ý„’9ÎÃÏ›|zï½éqnE«¢8Q‰(«þÝŒÀóäL™Š™B…:ò¹mzç<˜¿áïãñÖ\04–ó/¤àI›ÊFŒØÂ±ýôôÓåøIâM Ëoà¥-<ÅŒ¡LŽ9™c¨œï«ºpáÿP '¿ tŽ|ð.~9ÿ)ß÷ÉØ¬>sGgÖ¬õBd41cÆþ¥Œ¿–G¨bRµ’9&0†®d̘%üÂÓˆ/^¼DS§® Qcc‚€’9&0&¬VxúôÕü»À+Çrx7zô’„5&f(™ce`EÓ¦­â~^}aýÒ¥Ëü+˜M¼9NúÝÀš4)JæH‘Š2¬pš4 á4iE”5iöHHˆv¤%5_XŽ=ÃVx£ü‘•ÀL†_’_¥¡˜! dŽ”W+š4)ô QüZ5ÿZe;ÿ.1ð×WKê]rP2'½0eGZìü78Kúôéh„eÁÑŽJæ€è®bÏžcücÓmüÔÐVqº1räbw½Jæi«™8ñgçlÙÆ^ ÿ`vÿ]+¾ 0MCÉA@ÉœôB”…ÕµgË!’‹JÿÜ^>YS® _ýÒäšz˜‚…:Å€&#¿Pt³Ó*ÞËØ½û(ÿ‘ÅB|TçDó߹З±®¢›;}Ñ(68†­eÚ´Õü70†ò_&Ꞔû¶ Mˆ }Ñ(2œ4—PŸÙ£¤:F„€’9"˜4“P2ûa”TLjP2G“fòJf?Œ’êJæˆ`ÒL~@@Éì‡QR#B@ÉLšÉ(™ý0JªcD(™#‚I3ù%³FIuŒ%sD0i&?  döÃ(©Ž! dŽ&Íä”Ì~%Õ1"”ÌÁ¤™ü€€’Ù£¤:F„€’9"˜4“P2ûa”TLjP2G“fòJf?Œ’êJæˆ`ÒL~@@Éì‡QR#B@ÉLšÉ(™ý0JªcD(™#‚I3ù%³FIuŒ%sD0i&?  döÃ(©Ž! dŽ&Íä”Ì~%Õ1"”ÌÁ¤™ü€@‚¿œÿã?Ò»ï¾ëÝ}¡ã©ShÏžìüo ð¿ÿBÿ*_tÄcJþç?ÿ¡Œ3ºµšœ€Ì£F¢Ç{Œî¿ÿ~wF½W<ÀáÇiõêÕtúôiþÿ1YÝ:Mûzz÷îíΨ÷Š€'X¸p!õèÑ#¤.ê3‡„E#ýˆ€’Ù£¦:‡D@Éô#Jf?Žšê°À¹=9}útZ·nuêÔ)®ÚaÓQ¯^=ª_¿~@;ƒ¦ 2ÐÓO?-É“'Óœ9shÆ ”-[6*Y²$=òÈ#T©R¥k©.YezõêEgÏž YGçΩH‘"!ÓR3Ò÷–yçÎrTo—,YÂÿ6xw‚fÖ¯_/äKeÄ|@ï¼óeÉ’…Ú´iC7¦}ûöQ·nÝhüøñQÖ–üìK—.¥ãÇSþüù|Ò§÷¦ L¶VçÏŸ§#GŽH‡8 ³¹D‰tùòeÚ¾};!ìß¿_+gΜÚ”¸ìÙ³KÜÆéÂ… „:0°V`%¶lÙBÅŠ£L™2ѱcǨP¡B6Y®8{4ÆPæÌ™ÅZçÎ[ò#už½ñÆBêH<Ù¢E úûßÿN(Ó³gO±¿þú+åË—ú÷ïOÅ‹§+VÐË/¿,åiø¿©$rêÔ©RýB½ ÒÑ£GeR]¼x‘5jDÝ»w§Ÿ~ú‰^yåþ'íwÊ`" uÃÂú,[¶ŒºvíJï½÷žô%8lÛHìŠÉ®XAÐèÉ’+W.êÓ§`÷ý}ôÑGªÇÄjß¾==óÌ3´`ÁÑKüÈ‘#ÂÁý©V­µk׎ÿ¹|ø6PfþüùB.耉óÉ'ŸÐèÑ£e‚£á×^{M&ƒŸe‚Áõýïÿ£çŸ^& Æ ®Ñ?ÿùOÁ|åÊ•â6ÁØ<ñÄâ’ÁС_x8× ývႚL2373OAìU«V‰@‡1€°°HPÙ óæÍ#¾è—_~)„E=˜¥'N$®_¿~bE‡.ùlùP½Ã@Á¸ 1"Xi&MšDx K4dÈI‚…ÀIJÖ>8lË'v ×”A°¢|ñÅ4eÊ*_¾¼LnX1VËZjwˆ©aé’’ÄÚ@YŒA™2e„Ä `1€À°À¹ õý÷ßSß¾}>ÀÍŠ»>ûh nR—.]¤¯ íÿû_úöÛoÅeBùŸþÙVA[·nî½÷^'îZobFf,G J5D—‡zHÈiÃðÿêÖ­+VÉ8{öl±*°RE‹ß„°ë±iÓ&ñ›6mJ ”|°¶áäÖ[o¥x@ÚA¾Â… ‹e·ù[·n-¤B{H·« °‚–ÌÁa[>±k¸> ï˜ÐÕ«W'¬:à*UªH¿@dÄÁ„.Iª Ô· « cQ¹re±ŠHØ`2¹_c€küÁªbÅ]Ÿƒ;„×!Pÿܹs©fÍš2HÞp‡°êYu‘Ý.¥M‹öšl7Ã6hýk]0°;°@ -Ë @‘`¹!˜ ØpÀ*öÙg2f­0\+ u8 ÞeÃG´u Œ%+6#€ K,ðá®@ÂõûVšiÓ¦É=¾0ùá§cÂÁo %ˆ‡Ü/›2Cµ4Œ V+°Â°æ00, žÝ» ˆÎgFzp}ˆÃJAŸáÏc_âðĹÍïÎs­÷W§ÙµÖð[9KÚ¤ª€ 1–z¤víÚR§­Zµ’|9ø±Ÿ~ú)åÉ“GÒ±Y°’Ø’ ­` aÙÝv×w(±‰aëÁu¬Y³Æ%›%XY[G¸>€´¿ýío2Y1aáÞtìØQ6¨ð/¡'ô±w8Àu5êf1¹!ØìY'Õ†­×}…E„{€±À˜4hÐÀœ¬{Xp ¸V°‰ÇJdñ²ñ±ºÆŒÌ‘*T«V-9møüóÏÅ:[_ ~ä‡~(»^¸ 8ñÀ©6{°è_}õ•œ@`à ëN°œ9s¦Ìþ¡C‡ŠÏm]”A»8É€%‚k¯ã1{ünذ¡l.‡ &B;¯¾úªìw¿ûÔ®°¼èÓØ±c ú£îýë_BhøÃp¡@Fla¹1Y±ë1b„ô¾<,&N ˜ 1Èn‰TR0è Æ„FŸP?VM·€xx±'øK‰[¸/X‰¡'6›LÌxHÌÜŒ¤”³Vä…‹ÙÿøG§XË–-ew£)øiXº±‰Àk~Øébçÿðà yÊ•+G8î±bëFË1H‰åŸ ÇFØÉC@VÔËÁÃf‚£#aiÅònÖ¬™,› ¬%àƒBÂõ®ˆ òCVžÞ½{‹˜´8~Ã’ÿÖ[oI:¾@6¬L8g®Zµª,ÙÀ a|p2ƒI‚þ'Õêsã„0+%&?®ÀÝ-x …O°XƒëC؇¾b⢟ˆGýSà‹“ŸXKØ÷™gÍšë¶œú°¹ƒU„•t –M<ÍË›7¯³i°éð-a)`0ÓAØà£9ì¼±”ሠË?Τaù 3Žæ0pö¼Ûº0¶H®Ð “,”›X½p wzU°“. ž‚øœ¨ÃîSÜzGÒ†;?\'¸?pk¬ïïNOî=öJ{öì‘ÕÏí³_KÝöШÞg¾–†’*«ˆ,–c,°.wÜqGp´„aÑñ !A=‰m,B‘0’z‘uÃõ '‰õ!)½P'V÷fqÁXÁí '‘´aËÂ`,pN"£Xd; m»ñº®+ñjå·z±tO˜0AΓ³ÙÀÆ®F°À§Ä¬PàlWå*cÆŒ¡²eËÊÆûj¬ïRÅÍð/\ªyj#˜›‘â§© †¶ý" d¾~Çö†ë™’ù†òë·Ãa7€8TQ¼†€û n°n ÈŒ³ÙæÍ›çÓ°"à ðd§RÁx \‚Ó Oh¬J(Ñ#0Y}æèAÓE@ÉìÑQµ¢G@É=fZ£(™=:0ªVôüŒ[—ÜùU/IEND®B`‚mysql++-3.2.5/doc/html/refman/structmysqlpp_1_1value__list__ba.html000755 000765 000024 00000023551 13515046516 026147 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::value_list_ba< Seq, Manip > Struct Template Reference
MySQL++  3.2.5
mysqlpp::value_list_ba< Seq, Manip > Struct Template Reference

Holds a list of items, typically used to construct a SQL "value list". More...

#include <vallist.h>

Public Member Functions

 value_list_ba (const Seq &s, const char *d, Manip m)
 Create object. More...
 

Public Attributes

const Seq * list
 set of objects in the value list
 
const char * delim
 delimiter to use between each value in the list when inserting it into a C++ stream
 
Manip manip
 manipulator to use when inserting the list into a C++ stream
 

Detailed Description

template<class Seq, class Manip>
struct mysqlpp::value_list_ba< Seq, Manip >

Holds a list of items, typically used to construct a SQL "value list".

The SQL INSERT statement has a VALUES clause; this class can be used to construct the list of items for that clause.

Imagine an object of this type contains the list (a, b, c), and that the object's delimiter symbol is set to ", ". When you insert that object into a C++ stream, you would get "a, b, c".

This class is never instantiated by hand. The value_list() functions build instances of this structure template to do their work. MySQL++'s SSQLS mechanism calls those functions when building SQL queries; you can call them yourself to do similar work. The "Harnessing SSQLS Internals" section of the user manual has some examples of this.

See also
value_list_b

Constructor & Destructor Documentation

◆ value_list_ba()

template<class Seq, class Manip>
mysqlpp::value_list_ba< Seq, Manip >::value_list_ba ( const Seq &  s,
const char *  d,
Manip  m 
)
inline

Create object.

Parameters
sset of objects in the value list
dwhat delimiter to use between each value in the list when inserting the list into a C++ stream
mmanipulator to use when inserting the list into a C++ stream

The documentation for this struct was generated from the following file:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1CompressOption.html000755 000765 000024 00000021737 13515046516 025611 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::CompressOption Class Reference
MySQL++  3.2.5
mysqlpp::CompressOption Class Reference

Enable data compression on the connection. More...

#include <options.h>

Inheritance diagram for mysqlpp::CompressOption:
Collaboration diagram for mysqlpp::CompressOption:

Additional Inherited Members

- Public Types inherited from mysqlpp::Option
enum  Error {
  err_NONE, err_api_limit, err_api_reject, err_connected,
  err_disconnected
}
 Types of option setting errors we can diagnose. More...
 
- Public Member Functions inherited from mysqlpp::Option
virtual ~Option ()
 Destroy object.
 
virtual Error set (DBDriver *dbd)=0
 Apply option.
 

Detailed Description

Enable data compression on the connection.


The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1SslOption__inherit__graph.png000644 000765 000024 00000012126 13515046516 027565 0ustar00tangentstaff000000 000000 ‰PNG  IHDR“m¥}S|sRGB®ÎéIDATxí]Enr”x$I‚D%(’$ Š‚‚‚d-(0‹ˆ $ ¡$+PXr ¨dPrïÈ¡Ç%é8Ü¿¿æŸçÞ»Ý÷Þ½Ûƒ{îtÕ½Ýéééþ¦»gÞ¾ÛtiÒH¹¢Ò§\†– 5pOL Ži@ƒÉ1UjALŽi c0’.]ºDùó禩n“Æ5'Oº|ùrP½ LêNƒ ¢J•*©K} q ¬^½šæÍ›ô(R¦ PãÆƒ¾¹n˜¶4påÊ•IçLiËž!Ý ¦6_Úê¼SÚ²GH÷Fƒ)¤Í—¶:ï 0EGGSóæÍéôéÓ©®ýíÛ·S‡¨L™2T°`AY Œ5Šþù矀ï¥ùíÛ·…úôéÔ³gÏ€Û>HFW€)66––/_N7oÞLU]/[¶ŒêׯOÔ­[72d.\˜úõëG-Z´ ;wît€0<<\xoݺEqqqµ{àLxj ¹tñâEi¿víZcþüùr{@W¾|yê:uêdàžùòåóô=™4c¯$r0†‘#G½{÷€¢c„P‡~à8`Ài§tܪU+é;t\ @ãСCRÈGJÁt_Ã\®\¹èÔ©S4vìXÚ°aÁ…³Ç¡¹sç{Ú¿?µoßžÒ¥KG?ÿü³xíóçÏ‹:wîLl0Z±b±w#4õéÓ‡Œ AC‡%ö4„]Ü«W¯RéÒ¥¥½ÝGÑ¢E ›tì­DÖgŸ}æaeFQQQRÿüóÏÓ›o¾Iì!¤ù O9/Y²¤„0ÙhRöôÓO{䨌§FÒoU†¾~ûí·Âf̘Aøûõ×_‰=#ñ$¡Y³f‰lÅ#Æ ±ç!|¥ÅžŽ† FkÖ¬ñ°±‡"öª´nÝ:ѯң‡!5OA¬7O°žiÛ¶m" ³…ÇdÌž=[®áöq½páB¹f¼³.ç“'O6²dÉ"a᯿þ2Ø0ÎX¹r¥qãÆ ƒó á+Q¢„”ËìÝ»WdÚy& ÁÿÉ'ŸÅŠ“¦ðLœëÈ9>"##E¡/êß¿¿xJ„+‚Gå¤\ªà™øk¨Dl ~ñB(„Ç3gŽÔ›=SñâÅ åÁTcx7Ü[y&¤ Šàý»wï®.ýCÊ3!aæÊ–-+GÌ\Vެl™YðJHD[¶lI¹sç&ÎGˆóâ<‹š5kFìÆiĈÒÏì\"Ëî£T©Rž*$¼¸—"sî:w¶<>úè£Ä9!Á«y<ðúõë <м='îãëX bŒÕ«WW"äÂ)ÂXeË–Üê2Õ÷5ÌqŒh@­[·¦¬Y³ÒÔ©S%ÄuéÒEÚ±g¢Ê•+{YæsîBÇ—PFœgyä#ú"ó6'«„P¥È\·iÓ&)6×+>ó«8L’ &˜‹åœ*Î^yåOùXeîØ±#Q<Œÿ?î8^¼xªØ3'ï‰ÚªcO³®ƒ7 DTŽ9ˆIÂS x${D }ûöQ›6m.T¨x6àxª™3g ò‰ú¼d#g‚çCž…¥»"x?ä@íøñã ^®J•*RÍ!Ñ“ÏÁÈ¡_ÁëôèÑCøûöí+F礞~úé'É÷ªV­J]»vU· Ÿ’+"÷ã$Zö•^|ñE©çÄ_ò+µ×¤¡œ /„¹'¨mÛ¶ŠåÁýR †`s&µ¼ÇöZâ<ÄsÂ,×Xi)â=)ëÕ«—*’ «0´eÏe`åÂRÕŸZÁ¡+2‘3a»çØP«9Å‹ü„è%89SµjÕ<+"¬º6oÞ,uø°[Í¡[_|ñ…g…†{B>[Ær&Ÿ¬æÀ™®ïUòg»ví¤¿(ãE†Q³fM©ã0hÔ«WOê°’C.É›šR§r&¥c"Oóα„Ùæ#¥9Ó}Ù°é»ÏbŠ6'ʪÊÌ{'»X‚³—ý€í&3)0ñ¢ðb_ÉL¯.%á·º·™×îûP0 ؇ò&€ Kxô{nØ ó&LµŸe®Ã±„DÛJ¶™7¹ç)SŠžgbc¥ !\a©ŒðV¡B…$÷°*y•Ø"ŸðGŠ×Š ?þ‚!„)}µGˆFhEãV„1šy+žU–&s&ä)̤I“‚Ö ï"o„JÎe‚Ç9Ä ðÌåêu©ýHr¹råˆ71Õ-ÿ;ÇäºBð'7g æºÍý×@JÃ\šôLÿ©ê®‘h0`ï„„À @Ü–Eƒ)ÓŽ³<.Í’‘9¹jÀ¦`j'©ÉíSjñgÊFaaù Ø)ü€[|jÝ&ÍÈMÁïæ¢‚ÚÈ™3gŠ~“f4@G/Ž¡U«NÒ‡ŽâÕ¡õr=1!ÃÂûlA÷5(ÏôÝB°aµj_²WŠå/‘KóW„àî[—õ¿Ôñ¥êˆˆhx¶m;ÆçW}±»¾N'à> °pávÊ”)ƒpdÈŽ^Ûáƒ[Wi0Ù`€¿ã§"ùG÷žâgÞ8Oüˆ[CL68X¿þÅÆþûk,z÷í;EÑÑÿ>ˆfÓÔµÅL6¦_¸0’vK¬\#ôi²Ö@bmYó¸®ôÖ­Z¼x'?†›xç×áá:ÔÙBƒÉB3«Wï£øxëL"ÌíÝ{Ê¢•.Ò`²ÀÀ‚‘„GX¬«»E‹t¨³Ò“—V®]‹çgÂ÷qˆ³þUVwóçGxµÒ—Ѐ“–-ÛÃßÁùþºòܹ«ô矾ýâ%Ö—L^fF‚íï«o<:«Wu^ŠãË ¾èM*æ¿Qw›B”ÀÏeõ (.îÅÄ\äç® &Ú*8s抇GŸÜÓ€þ¢×ð\«VßÐ΃ùÿ-åòÃíêjýE¯«ÍïðàuÎä°BÝ,NƒÉÍÖwxìL+ÔÍâ4˜Ül}‡Ç®Áä°BÝ,NƒÉÍÖwxìL+ÔÍâ4˜Ül}‡Ç®Áä°BÝ,NƒÉÍÖwxìL+ÔÍâ4˜Ül}‡Ç®Áä°BÝ,NƒÉÍÖwxìL+ÔÍâ4˜Ül}‡Ç®Áä°BÝ,NƒÉÍÖwxìL+ÔÍâ4˜Ül}‡Ç®Áä°BÝ,NƒÉÍÖwxìL+ÔÍâ4˜Ül}‡Ç®Áä°BÝ,NƒÉÍÖwxìL+ÔÍâ4˜Ül}‡Ç®Áä°BÝ,NƒÉÍÖwxìL+ÔÍâ4˜Ül}‡Çžä?Çmݺ•¾þúk‡oºâââ2Ò‰ñ¿!ŒåçœøŸÌ‡î¨RÞó‘#GR©R¥Ì‚¢’€)<<œ^{í5jР™QŸk ˆâââøuiÛ(22’ªW¯nÖŠý›0¿üòK3£>× œ:uŠ:wîl© 3YªE£ ¦`´¦ÛXj@ƒÉR-º0 h0£5ÝÆR!ÿ†‚•+WÒøUñZЩB¬b¾ÿþ{Ú²e ]»vªV­Êošž}öY~o&Ÿ·5jÕ¨Qƒ7n,|7oÞ¤3fð«ÆöÒÉ“'éᇦråÊQ·nÝ(_¾|>e©Êøøx~ÇË?”={vÞº8A&L O?ý4àöJŽ“Ç÷LP$Œ’Ú4wî\Z²d‰,‡{ôèAyóæ¥Ñ£GÓ7ß|ã÷Ö»ví¢3gÎߥK—¨gÏžüòè_©R¥JôÎ;ïÐSO=Ek×®¥·Þz‹Ž;æWЯ¾úJx*€¯~}”bÏtûöm‚‚ (@çΓA•.]ZfÍñãÇù]$·yÃïQ~ïHF~•ûß”-[6Ê•ëß×Fœ?^ÊræÌ)z8tè¿dùAxAYQQQT¼xqÊ’% ]¹r… .¬ªåxãÆ QhÖ¬YÅ[åÉ“GøQ ™ð(˜ù111týúu*[¶¬Ç«Àè+¼LúôéEŽºFÛ_~ù…:tè@:uòÜ/äY¾|9õîÝ›p²ë¿jïM“&Mo¤Ê_xáHQ øKll,¿\1žnݺE.\ bÅŠÑàÁƒ)wîÜJA¯ÐWþüù©L™2žþ¡úÇØŽ=*^¶s‚R ¦#GŽÐ{ï½GO<ñ¿_d§ô©råÊ”9sfÙØBÁc=Fãǧ¡C‡ ¨Æ'|Dûöíéƒ>à—ßT¦þýûóK–ï)*,,ŒÆŒC%J” Ì숂a4(€X¶l™ÈQ c^¾|Y@@Í›7§~ýúñ+½þ¤R•*Uhÿþýü>¹‘ ïenß¾úöíKcÇŽ•±˜¯Ë—//÷†„06Ð믿N5’sήÿÂÀ¸'À‡>!¬™©hÑ¢ôꫯҜ9sôðxvc™9s&mÞ¼Yš4ˆÞÿ}±Á?þ(ì‡~ üa‚bÁ>\@[A§»w僚wïʤïÓ§µhÑÂÜ Î s9räà÷׆ˠöìÙ#ž`Þ¼y³±iÓ¦2´aÙ10ȬY³Ä¨%‚PŒ1B¼”>ÕÞjÄò§+Vˆ¸M›6yXÒÅ‹‹Ñ®^½JS¦L‘:x9[y;ó5<äK/½Døªéå—_¹³gϦ‹/Ê$Àíúï¹1ŸÀ3ÃËU¨PÁ\ì9hA§OŸ–£ÝXzõê%ùWݺuÅ“ óÿ? {x?L èàÄFãôéÓ=lpȱ`L®ß~ûÍS—’ÇÀ„]QªV­ZÒ 3^]Ÿ={–6l(! !O¨Y³¦¸gÌ̃5qâDzûí·éðáĶ­Zµ¢B… ø0³íè‘G¡&MšÈ}ÀW¤HñlŠÿ7Þ0©ä(oŠkä, LÞ×(¼EëÖ­ÅëÁ`Ý»w C6ø­ú¯î‹#B5H…t¹0}À+ƒfAþÆ"L^7n$LìfÍšI úU¯^=ñ¼Š!ÀEÄ×f›”â0§:¡V!êݶHåÈIÓ±Z·n †DøŒP&¼Ò´iÓˆ¨S^¡R@eGX™ y“’rœ£N×voPŒ?òÄï¾ûN< €n×Ì|EJ'vÆÃ÷] Åço,J®ùï‡4@u°yœ·"äŸwNcžIÆ_§ê"„„¸jPDDuéÒ…ß0¹&Ož,`š:uª¬šPƒ*R+#um>"!U„$žÍ ³„_ÀTrÀ‡ÂŽ"¨M›6r ™výWü8b¼q+wfB2­¾<Åräo,æöêýŠм²Cîeg ¶R2=:¦@oX§NÂj û,p±*™]ºt©Äq¬6àÞ±âf<r¬Àï‘ Ø·zõj™‰Ès©P‹6¸/ä ÄÂxµk×Q ˜òækx„$ë0€€ý!äIB†]ÿ½û‰Ð3 €X?þøcY¡aE§È×X°:F[ŒÅL+rA5Nä«;vìðìq™y>w,Ìù똚 @„ı[QÇŽiذaÔ®];YñaÅUféçŸ.u-[¶”°‰ÙmÞQ²! ¡ À*¹ Œóøãr À9¹]»v•r€^±~ýúfÌ×X©bé%;6AçèÇ!C$W´ë?xÑ?ÕGl^B}ôª…°å<“G‘ÝXP¾cÒ`[ÀT„ÛH¼±7†=(,p°R©~(~sßTY°GÛç™Ö¬Y¬L¿í 4xÌ3!vc7‰!g3aIŽ J”#ç`¼·°üE’ Ãc R»Ó¶`µß…Çäú0bæcï ^ÉL¾úoæSçèöæ°OäÝ_cQí1ajU9ŽÈ‘ÐWèË[¶™/¹ç‰üP…dS{ûç™LLŽ¢#Ø¿AHÀÞˆ7A1ر"x40‚lzÚ‘wbkÇç]¹ð˜vä«ÿVmǘs+_cy衇¬šHRó&¦-£ƒ÷-Ì¡ÏØI†VK×`ƂՈÕ^ f8Y+‚b+V¬hU•&Ë|%Mv˜;õ@Â\ZU†î— ø s÷}5ç¿»š#T5 Áª–KƒýÖ`JƒF Õ.Ù&àú×)¡jÒÔí·ú~Ñê.IÀ„½™¶mÛZñê2­Ñ@É’%-÷®’¬æ´¾´‚Ô@”Ι‚Ôœn–TLIu¢K‚Ô€SŠÓÍ’j@ƒ)©NtIøìµëLbÞIEND®B`‚mysql++-3.2.5/doc/html/refman/functions_b.html000755 000765 000024 00000012665 13515046516 022022 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Class Members
MySQL++  3.2.5
Here is a list of all documented class members with links to the class documentation for each member:

- b -

mysql++-3.2.5/doc/html/refman/type__info_8h_source.html000755 000765 000024 00000136626 13515046516 023627 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: type_info.h Source File
MySQL++  3.2.5
type_info.h
Go to the documentation of this file.
1 
7 /***********************************************************************
8  Copyright (c) 1998 by Kevin Atkinson, (c) 1999-2001 by MySQL AB, and
9  (c) 2004-2008 by Educational Technology Resources, Inc. Others may
10  also hold copyrights on code in this file. See the CREDITS.txt file
11  in the top directory of the distribution for details.
12 
13  This file is part of MySQL++.
14 
15  MySQL++ is free software; you can redistribute it and/or modify it
16  under the terms of the GNU Lesser General Public License as published
17  by the Free Software Foundation; either version 2.1 of the License, or
18  (at your option) any later version.
19 
20  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
21  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
22  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
23  License for more details.
24 
25  You should have received a copy of the GNU Lesser General Public
26  License along with MySQL++; if not, write to the Free Software
27  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
28  USA
29 ***********************************************************************/
30 
31 #if !defined(MYSQLPP_TYPE_INFO_H)
32 #define MYSQLPP_TYPE_INFO_H
33 
34 #include "common.h"
35 
36 #include "exceptions.h"
37 
38 #include <map>
39 #include <sstream>
40 #include <typeinfo>
41 
42 namespace mysqlpp {
43 
44 #if !defined(DOXYGEN_IGNORE)
45 // Doxygen will not generate documentation for this section.
46 
47 class MYSQLPP_EXPORT mysql_type_info;
48 class MYSQLPP_EXPORT mysql_ti_sql_type_info_lookup;
49 
50 class MYSQLPP_EXPORT mysql_ti_sql_type_info
51 {
52 private:
53  // For use with flags_ bitset
54  enum {
55  tf_default = 1,
56  tf_null = 2,
57  tf_unsigned = 4
58  };
59 
60  friend class mysql_type_info;
61  friend class mysql_ti_sql_type_info_lookup;
62 
63  mysql_ti_sql_type_info& operator=(
64  const mysql_ti_sql_type_info& b);
65 
66  // Not initting _base_type and _default because only mysql_type_info
67  // can create them. There *must* be only one copy of each.
68  mysql_ti_sql_type_info() :
69  sql_name_(0),
70  c_type_(0),
71  base_type_(
72 #if MYSQL_VERSION_ID > 40000
73  MYSQL_TYPE_NULL
74 #else
75  FIELD_TYPE_NULL
76 #endif
77  ),
78  flags_(0)
79  {
80  }
81 
82  mysql_ti_sql_type_info(const char* s,
83  const std::type_info& t, const enum_field_types bt,
84  const unsigned int flags = 0) :
85  sql_name_(s),
86  c_type_(&t),
87  base_type_(bt),
88  flags_(flags)
89  {
90  }
91 
92  bool is_default() const { return flags_ & tf_default; }
93  bool is_null() const { return flags_ & tf_null; }
94  bool is_unsigned() const { return flags_ & tf_unsigned; }
95 
96  const char* sql_name_;
97  const std::type_info* c_type_;
98  const enum_field_types base_type_;
99  const unsigned int flags_;
100 };
101 
102 
103 struct type_info_cmp
104 {
105  bool operator() (const std::type_info* lhs,
106  const std::type_info* rhs) const
107  {
108  return lhs->before(*rhs) != 0;
109  }
110 };
111 
112 class MYSQLPP_EXPORT mysql_ti_sql_type_info_lookup
113 {
114 private:
115  friend class mysql_type_info;
116 
117  typedef mysql_ti_sql_type_info sql_type_info;
118  typedef std::map<const std::type_info*, unsigned char, type_info_cmp>
119  map_type;
120 
121  mysql_ti_sql_type_info_lookup(const sql_type_info types[],
122  const int size);
123 
124  const unsigned char& operator [](
125  const std::type_info& ti) const
126  {
127  map_type::const_iterator it = map_.find(&ti);
128  if (it != map_.end()) {
129  return it->second;
130  }
131  else {
132  std::ostringstream outs;
133  outs << "Failed to find MySQL C API type ID for " << ti.name();
134  throw TypeLookupFailed(outs.str());
135  }
136  }
137 
138  map_type map_;
139 };
140 
141 #endif // !defined(DOXYGEN_IGNORE)
142 
143 
148 class MYSQLPP_EXPORT mysql_type_info
149 {
150 public:
159  num_(static_cast<unsigned char>(-1))
160  {
161  }
162 
168  mysql_type_info(enum_field_types t, bool _unsigned = false,
169  bool _null = false) :
170  num_(type(t, _unsigned, _null))
171  {
172  }
173 
176  num_(t.num_)
177  {
178  }
179 
184  mysql_type_info(const std::type_info& t) :
185  num_(lookups[t])
186  {
187  }
188 
190  mysql_type_info& operator =(const mysql_type_info& t)
191  {
192  num_ = t.num_;
193  return *this;
194  }
195 
200  mysql_type_info& operator =(const std::type_info& t)
201  {
202  num_ = lookups[t];
203  return *this;
204  }
205 
210  const char* name() const { return deref().c_type_->name(); }
211 
215  const char* sql_name() const { return deref().sql_name_; }
216 
221  const std::type_info& c_type() const { return *deref().c_type_; }
222 
229  {
230  return mysql_type_info(deref().base_type_);
231  }
232 
238  int id() const
239  {
240  return num_;
241  }
242 
248  bool quote_q() const;
249 
255  bool escape_q() const;
256 
262  {
263  return num_ < b.num_;
264  }
265 
270  static const enum_field_types string_type =
271 #if MYSQL_VERSION_ID > 40000
272  MYSQL_TYPE_STRING;
273 #else
274  FIELD_TYPE_STRING;
275 #endif
276 
277 private:
278  typedef mysql_ti_sql_type_info sql_type_info;
279  typedef mysql_ti_sql_type_info_lookup sql_type_info_lookup;
280 
281  static const sql_type_info types[];
282  static const int num_types;
283 
284  static const sql_type_info_lookup lookups;
285 
304  static unsigned char type(enum_field_types t,
305  bool _unsigned, bool _null = false);
306 
307  const sql_type_info& deref() const
308  {
309  return types[num_];
310  }
311 
312  unsigned char num_;
313 };
314 
316 inline bool operator ==(const mysql_type_info& a, const mysql_type_info& b)
317 {
318  return a.id() == b.id();
319 }
320 
322 inline bool operator !=(const mysql_type_info& a, const mysql_type_info& b)
323 {
324  return a.id() != b.id();
325 }
326 
329 inline bool operator ==(const std::type_info& a, const mysql_type_info& b)
330 {
331  return a == b.c_type();
332 }
333 
336 inline bool operator !=(const std::type_info& a, const mysql_type_info& b)
337 {
338  return a != b.c_type();
339 }
340 
343 inline bool operator ==(const mysql_type_info& a, const std::type_info& b)
344 {
345  return a.c_type() == b;
346 }
347 
350 inline bool operator !=(const mysql_type_info& a, const std::type_info& b)
351 {
352  return a.c_type() != b;
353 }
354 
355 } // end namespace mysqlpp
356 
357 #endif // !defined(MYSQLPP_TYPE_INFO_H)
358 
const char * sql_name() const
Returns the name of the SQL type.
Definition: type_info.h:215
bool operator !=(const mysql_type_info &a, const mysql_type_info &b)
Returns true if two mysql_type_info objects are not equal.
Definition: type_info.h:322
SQL field type information.
Definition: type_info.h:148
int id() const
Returns the ID of the SQL type.
Definition: type_info.h:238
const mysql_type_info base_type() const
Returns the type_info for the C++ type inside of the mysqlpp::Null type.
Definition: type_info.h:228
Declares the MySQL++-specific exception classes.
const char * name() const
Returns an implementation-defined name of the C++ type.
Definition: type_info.h:210
mysql_type_info(const std::type_info &t)
Create object from a C++ type_info object.
Definition: type_info.h:184
This file includes top-level definitions for use both internal to the library, and outside it....
mysql_type_info()
Default constructor.
Definition: type_info.h:158
const std::type_info & c_type() const
Returns the type_info for the C++ type associated with the SQL type.
Definition: type_info.h:221
mysql_type_info(enum_field_types t, bool _unsigned=false, bool _null=false)
Create object from MySQL C API type info.
Definition: type_info.h:168
mysql_type_info(const mysql_type_info &t)
Create object as a copy of another.
Definition: type_info.h:175
bool before(mysql_type_info &b)
Provides a way to compare two types for sorting.
Definition: type_info.h:261
mysql++-3.2.5/doc/html/refman/options_8h_source.html000755 000765 000024 00000251436 13515046516 023164 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: options.h Source File
MySQL++  3.2.5
options.h
Go to the documentation of this file.
1 
11 /***********************************************************************
12  Copyright (c) 2007-2009 by Educational Technology Resources, Inc.
13  Others may also hold copyrights on code in this file. See the
14  CREDITS file in the top directory of the distribution for details.
15 
16  This file is part of MySQL++.
17 
18  MySQL++ is free software; you can redistribute it and/or modify it
19  under the terms of the GNU Lesser General Public License as published
20  by the Free Software Foundation; either version 2.1 of the License, or
21  (at your option) any later version.
22 
23  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
24  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
25  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
26  License for more details.
27 
28  You should have received a copy of the GNU Lesser General Public
29  License along with MySQL++; if not, write to the Free Software
30  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
31  USA
32 ***********************************************************************/
33 
34 #if !defined(MYSQLPP_OPTIONS_H)
35 #define MYSQLPP_OPTIONS_H
36 
37 #include "common.h"
38 
39 #include <deque>
40 #include <string>
41 
42 
43 namespace mysqlpp {
44 
45 #if !defined(DOXYGEN_IGNORE)
46 class DBDriver;
47 #endif
48 
49 
51 // Classes
52 
57 class MYSQLPP_EXPORT Option
58 {
59 public:
61  enum Error {
66  err_disconnected
67  };
68 
69  virtual ~Option() { }
70  virtual Error set(DBDriver* dbd) = 0;
71 };
72 
73 
76 template <typename T>
77 class MYSQLPP_EXPORT DataOption : public Option
78 {
79 public:
80  typedef T ArgType;
81 
82 protected:
83  DataOption(const T& arg) : arg_(arg) { }
84  T arg_;
85 };
86 
90 
91 
93 class MYSQLPP_EXPORT CompressOption : public Option
94 {
95 #if !defined(DOXYGEN_IGNORE)
96 public:
97  CompressOption() : Option() { }
98 
99 private:
100  Error set(DBDriver* dbd);
101 #endif
102 };
103 
104 
106 class MYSQLPP_EXPORT ConnectTimeoutOption : public IntegerOption
107 {
108 #if !defined(DOXYGEN_IGNORE)
109 public:
111 
112 private:
113  Error set(DBDriver* dbd);
114 #endif
115 };
116 
117 
121 class MYSQLPP_EXPORT FoundRowsOption : public BooleanOption
122 {
123 #if !defined(DOXYGEN_IGNORE)
124 public:
125  FoundRowsOption(ArgType arg) : BooleanOption(arg) { }
126 
127 private:
128  Error set(DBDriver* dbd);
129 #endif
130 };
131 
132 
137 class MYSQLPP_EXPORT GuessConnectionOption : public Option
138 {
139 #if !defined(DOXYGEN_IGNORE)
140 public:
141  GuessConnectionOption() : Option() { }
142 
143 private:
144  Error set(DBDriver* dbd);
145 #endif
146 };
147 
148 
150 class MYSQLPP_EXPORT IgnoreSpaceOption : public BooleanOption
151 {
152 #if !defined(DOXYGEN_IGNORE)
153 public:
154  IgnoreSpaceOption(ArgType arg) : BooleanOption(arg) { }
155 
156 private:
157  Error set(DBDriver* dbd);
158 #endif
159 };
160 
161 
163 class MYSQLPP_EXPORT InitCommandOption : public StringOption
164 {
165 #if !defined(DOXYGEN_IGNORE)
166 public:
167  InitCommandOption(ArgType arg) : StringOption(arg) { }
168 
169 private:
170  Error set(DBDriver* dbd);
171 #endif
172 };
173 
174 
178 class MYSQLPP_EXPORT InteractiveOption : public BooleanOption
179 {
180 #if !defined(DOXYGEN_IGNORE)
181 public:
182  InteractiveOption(ArgType arg) : BooleanOption(arg) { }
183 
184 private:
185  Error set(DBDriver* dbd);
186 #endif
187 };
188 
189 
191 class MYSQLPP_EXPORT LocalFilesOption : public BooleanOption
192 {
193 #if !defined(DOXYGEN_IGNORE)
194 public:
195  LocalFilesOption(ArgType arg) : BooleanOption(arg) { }
196 
197 private:
198  Error set(DBDriver* dbd);
199 #endif
200 };
201 
202 
204 class MYSQLPP_EXPORT LocalInfileOption : public IntegerOption
205 {
206 #if !defined(DOXYGEN_IGNORE)
207 public:
208  LocalInfileOption(ArgType arg) : IntegerOption(arg) { }
209 
210 private:
211  Error set(DBDriver* dbd);
212 #endif
213 };
214 
215 
217 class MYSQLPP_EXPORT MultiResultsOption : public BooleanOption
218 {
219 #if !defined(DOXYGEN_IGNORE)
220 public:
222 
223 private:
224  Error set(DBDriver* dbd);
225 #endif
226 };
227 
228 
230 class MYSQLPP_EXPORT MultiStatementsOption : public BooleanOption
231 {
232 #if !defined(DOXYGEN_IGNORE)
233 public:
235 
236 private:
237  Error set(DBDriver* dbd);
238 #endif
239 };
240 
241 
243 class MYSQLPP_EXPORT NamedPipeOption : public Option
244 {
245 #if !defined(DOXYGEN_IGNORE)
246 public:
247  NamedPipeOption() : Option() { }
248 
249 private:
250  Error set(DBDriver* dbd);
251 #endif
252 };
253 
254 
256 class MYSQLPP_EXPORT NoSchemaOption : public BooleanOption
257 {
258 #if !defined(DOXYGEN_IGNORE)
259 public:
260  NoSchemaOption(ArgType arg) : BooleanOption(arg) { }
261 
262 private:
263  Error set(DBDriver* dbd);
264 #endif
265 };
266 
267 
268 #if MYSQL_VERSION_ID > 40000 // only in 4.0 +
269 class MYSQLPP_EXPORT ProtocolOption : public IntegerOption
271 {
272 #if !defined(DOXYGEN_IGNORE)
273 public:
274  ProtocolOption(ArgType arg) : IntegerOption(arg) { }
275 
276 private:
277  Error set(DBDriver* dbd);
278 #endif
279 };
280 #endif
281 
282 
284 class MYSQLPP_EXPORT ReadDefaultFileOption : public StringOption
285 {
286 #if !defined(DOXYGEN_IGNORE)
287 public:
289 
290 private:
291  Error set(DBDriver* dbd);
292 #endif
293 };
294 
295 
297 class MYSQLPP_EXPORT ReadDefaultGroupOption : public StringOption
298 {
299 #if !defined(DOXYGEN_IGNORE)
300 public:
302 
303 private:
304  Error set(DBDriver* dbd);
305 #endif
306 };
307 
308 
310 class MYSQLPP_EXPORT ReadTimeoutOption : public IntegerOption
311 {
312 #if !defined(DOXYGEN_IGNORE)
313 public:
314  ReadTimeoutOption(ArgType arg) : IntegerOption(arg) { }
315 
316 private:
317  Error set(DBDriver* dbd);
318 #endif
319 };
320 
321 
323 class MYSQLPP_EXPORT ReconnectOption : public BooleanOption
324 {
325 #if !defined(DOXYGEN_IGNORE)
326 public:
327  ReconnectOption(ArgType arg) : BooleanOption(arg) { }
328 
329 private:
330  Error set(DBDriver* dbd);
331 #endif
332 };
333 
334 
336 class MYSQLPP_EXPORT ReportDataTruncationOption : public BooleanOption
337 {
338 #if !defined(DOXYGEN_IGNORE)
339 public:
341 
342 private:
343  Error set(DBDriver* dbd);
344 #endif
345 };
346 
347 
350 class MYSQLPP_EXPORT SecureAuthOption : public BooleanOption
351 {
352 #if !defined(DOXYGEN_IGNORE)
353 public:
354  SecureAuthOption(ArgType arg) : BooleanOption(arg) { }
355 
356 private:
357  Error set(DBDriver* dbd);
358 #endif
359 };
360 
361 
363 class MYSQLPP_EXPORT SetCharsetDirOption : public StringOption
364 {
365 #if !defined(DOXYGEN_IGNORE)
366 public:
368 
369 private:
370  Error set(DBDriver* dbd);
371 #endif
372 };
373 
374 
376 class MYSQLPP_EXPORT SetCharsetNameOption : public StringOption
377 {
378 #if !defined(DOXYGEN_IGNORE)
379 public:
381 
382 private:
383  Error set(DBDriver* dbd);
384 #endif
385 };
386 
387 
389 class MYSQLPP_EXPORT SetClientIpOption : public StringOption
390 {
391 #if !defined(DOXYGEN_IGNORE)
392 public:
393  SetClientIpOption(ArgType arg) : StringOption(arg) { }
394 
395 private:
396  Error set(DBDriver* dbd);
397 #endif
398 };
399 
400 
402 class MYSQLPP_EXPORT SharedMemoryBaseNameOption : public StringOption
403 {
404 #if !defined(DOXYGEN_IGNORE)
405 public:
407 
408 private:
409  Error set(DBDriver* dbd);
410 #endif
411 };
412 
413 
415 class MYSQLPP_EXPORT SslOption : public Option
416 {
417 public:
430  SslOption(const char* key = 0, const char* cert = 0,
431  const char* ca = 0, const char* capath = 0,
432  const char* cipher = 0)
433  {
434  if (key) key_.assign(key);
435  if (cert) cert_.assign(cert);
436  if (ca) ca_.assign(ca);
437  if (capath) capath_.assign(capath);
438  if (cipher) cipher_.assign(cipher);
439  }
440 
441 private:
442  std::string key_, cert_, ca_, capath_, cipher_;
443  Error set(DBDriver* dbd);
444 };
445 
446 
448 class MYSQLPP_EXPORT UseEmbeddedConnectionOption : public Option
449 {
450 #if !defined(DOXYGEN_IGNORE)
451 public:
453 
454 private:
455  Error set(DBDriver* dbd);
456 #endif
457 };
458 
459 
461 class MYSQLPP_EXPORT UseRemoteConnectionOption : public Option
462 {
463 #if !defined(DOXYGEN_IGNORE)
464 public:
466 
467 private:
468  Error set(DBDriver* dbd);
469 #endif
470 };
471 
472 
474 class MYSQLPP_EXPORT WriteTimeoutOption : public IntegerOption
475 {
476 #if !defined(DOXYGEN_IGNORE)
477 public:
479 
480 private:
481  Error set(DBDriver* dbd);
482 #endif
483 };
484 
485 
487 // Typedefs
488 
490 typedef std::deque<Option*> OptionList;
491 
493 typedef OptionList::const_iterator OptionListIt;
494 
495 } // end namespace mysqlpp
496 
497 #endif // !defined(MYSQLPP_OPTIONS_H)
Connect to remote server in preference to embedded server.
Definition: options.h:461
Specialized option for handling SSL parameters.
Definition: options.h:415
Connect to embedded server in preference to remote server.
Definition: options.h:448
Give name of default charset.
Definition: options.h:376
Enable LOAD DATA LOCAL statement.
Definition: options.h:191
Error
Types of option setting errors we can diagnose.
Definition: options.h:61
can't set the given option while connected
Definition: options.h:65
virtual ~Option()
Destroy object.
Definition: options.h:69
Enable automatic reconnection to server.
Definition: options.h:323
T arg_
The argument value.
Definition: options.h:84
SslOption(const char *key=0, const char *cert=0, const char *ca=0, const char *capath=0, const char *cipher=0)
Create a set of SSL connection option parameters.
Definition: options.h:430
Fake client IP address when connecting to embedded server.
Definition: options.h:389
Enable LOAD LOCAL INFILE statement.
Definition: options.h:204
std::deque< Option * > OptionList
The data type of the list of connection options.
Definition: options.h:490
Set name of shmem segment for IPC.
Definition: options.h:402
Define abstract interface for all *Option subclasses.
Definition: options.h:57
Allow spaces after function names in queries.
Definition: options.h:150
Disable db.tbl.col syntax in queries.
Definition: options.h:256
T ArgType
Alias for template param.
Definition: options.h:80
option was set successfully
Definition: options.h:62
Allow C API to guess what kind of connection to use.
Definition: options.h:137
Enforce use of secure authentication, refusing connection if not available.
Definition: options.h:350
Change Connection::connect() default timeout.
Definition: options.h:106
underlying C API returned error when setting option
Definition: options.h:64
Assert that this is an interactive program.
Definition: options.h:178
Enable data compression on the connection.
Definition: options.h:93
option not supported by underlying C API
Definition: options.h:63
Override use of my.cnf.
Definition: options.h:284
Make Query::affected_rows() return number of matched rows.
Definition: options.h:121
Enable multiple queries in a request to the server.
Definition: options.h:230
OptionList::const_iterator OptionListIt
Primary iterator type into List.
Definition: options.h:493
Give SQL executed on connect.
Definition: options.h:163
This file includes top-level definitions for use both internal to the library, and outside it....
Set reporting of data truncation errors.
Definition: options.h:336
Give path to charset definition files.
Definition: options.h:363
Suggest use of named pipes.
Definition: options.h:243
Override use of my.cnf.
Definition: options.h:297
Set timeout for IPC data reads.
Definition: options.h:474
Define abstract interface for all *Options that take a lone scalar as an argument.
Definition: options.h:77
Enable multiple result sets in a reply.
Definition: options.h:217
Provides a thin abstraction layer over the underlying database client library.
Definition: dbdriver.h:57
Set timeout for IPC data reads.
Definition: options.h:310
DataOption(const T &arg)
Construct object.
Definition: options.h:83
mysql++-3.2.5/doc/html/refman/inherit_graph_26.png000644 000765 000024 00000011137 13515046516 022451 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÊ1›06rsRGB®ÎéIDATxíœÐÅ€;!¸wwww ww îP¸C°àV¸îîîîîÜÝ}^]¯7{óïÞíýVÜeºjowǧgzZ÷úI00P}ëæ¦Ì„„Ã@"”´*` J$¥" ‰PÒH¨‚”ù<\uÕU(÷éJ8j÷ÀÜsÏ' {îWFLJ0eY)=a m1pÉ%—ȧŸ~Úa~¥„²öÚkw(œÚÏ<óL!¡$¥ÝW>ͯ[0¥[Иiw $Bi÷Nóë $Bé4¦FÚ-O(_|±ì¸ãŽ=¾Nn¸¡,¿üò5×–[n)7Þxcå¾ï½÷^Ye•UäÈ#ÌêœqƲ袋ʘcŽ)SL1…ÐÏ|å÷ÔÃßÿ-ß~ûm§›_b‰%ÅÀð“ÇÍšk®)\püøã•Ú0`€\sÍ5 ËvuÌ ;¨S å åÍ7ß”Ç{¬Î»'ë¾û¿þZfši&»¦vZy饗dµÕV“sÎ9§R';ì°ƒ|÷Ýw²ÔRKYù-¶ØB¶ß~{#ãŽ;NV_}uyðÁe¾ùæ“Ï>û¬R›-tóÍ7ËXc%ýõW§š`œ_}õ•Õ½ûî»åûï¿Ïp3Â#ØáñT_ýUþüóφE»:æ†Ô+{VÜá§—½ÿþûïaðàÁA©=¼÷Þ{A7ýçŸÂË/¿ôÔ ŠKÓ“2|óÍ75M}ôÑGA7O–öì³ÏÝøáçŸÎÒxøé§ŸÂ£>t³†_~ù%¼ÿþû–¿ÿþû‡9æ˜Ãžøá‡  fý=òÈ#A‰ÈÒùùã?ÂçŸnﯿþzxüñÇ-Í üûï¿A,0n ~üñÃ{ìáÅíNºÙÂ’K.Y“þᇆ‡~8ïðå—_†þýû‡#Ž8"èIî¿ÿ~sè)x»¿øâ‹a˜a† {ï½w–ÎÜxà«C]p©6 ºé³µðua>ï¼óN´üöÛoáÌ3Ï´þßzë­lÎÔ§Ö€õÌøŸ”úôén»í6{f^p€=ûÏ Aƒ¬}píÀZßzë­á¹çž3üz:kêëMÖA¹]Pb ü±kv̬÷`Ý—cփǞýìµ×^¡Èá(qÅf å‰'ž0„(+¶»eXd‘EÂÒK/½/°À¶y\pÁ°øâ‹g]²yاvš-Ðd“MFe[„‰'ž88’AØcŒúöíkå™ÈÈ#líä EÅ–0à 3cÂpà gýo¾ùæVî†n°ws²<ʲ0À=÷ÜcùlÈ¢÷"B¡Ü4ÓLV\qE«Ãâl²É&ÖΰÃkc=ꨣ,oÒI'µtð³çž{å&aÜqÇÍ+ôÿŸ‡z(<ýôÓöÆ3嘯žÔaœqÆ ÊÝ,OEÎn Úþù烯‹r<éÔeÓP\’þÙPø ­_¿~ùÒAÒy\óÌ3ÝëÊu×]ge80€C9Äúdm ²…Z(;4'™d’pôÑG[9žÙ;Ã?|6î³Ï>»é1¿ðÂ Ö¿Š…ÖŸŠèÖ~£Ÿ2Bé6Ñk´ÑF“O>ùDN<ñDQäˆnÑÓ@.»ì2ÑÓ[^{í5Ùh£D^”@ß"×_½è‚ɺë®+‡v˜(’DOa«7Þx㉞z&lºé¦¢\CtAQë‹/¾°úE?J\rê©§Šž@rþùçÛuÓM7eE'šh"Þ~ûmÑ ûå)‘Š"I¸ñ;iôMÄmo°Á¢\T¡úe¾ôGÿŒŸ}öÝô¦w êœ{î¹rÌ1ÇýëÆ%(«›ÿуFô00qD Ot“šÈnô°‘7ÞØð›¯Sö¬œÅDFD%ÖD7° _¸NÀ8'Ÿ|rÇ#Ž8¢€?t‹yçWÖ_}R›+éÔUn)à0p£„c×I'$ûí·Ÿèá J¢’€ 8PÎ;ï<ù«(Q‹r¡¸{×Mnuô3ýí¬³ÎjzÌÞ°J5¶Ï‘»1…u–£<õÔSÖ'–(8#~ð®Dab'­*°VVeõ°òÊ+Û3¢'&¢ §âדO>iõ¯½öÚl¨tP)G™y晳r{VÆts›Tàïù;\ˆ:HÌ£häÇcÆÚC½1ÃEç³Ì2K\µSïCFÞ©êC*å‘0$µãâ—ê¶¹ô´5s)¥°œÀŠ«ôD ‚q¤å­@ˆ;ehÚ¢òz aåóUÁ­É+k³,}™e–‘YgUÞ}÷]+¢ÜFT¾D¿N9å3ŸÆm¨œob%óÎó?üðÃmþ~ø`]s7â›A9‚g "M UÖ…qˆL>núÁ‡•O9„ Â8¸YØßÝ™Ç+¯¼bbœ—¥ý²Ï7¹—-º×3‡PwC·JÕ©¨%ÊžåÀ´ „)@~ÝyçM?™qÆû¨¨c'\¤Ze™µ Xôô¤ÊvV\Å6kçꫯcd¥•V²Xsæ â´I̱hfÌÍ´[©l,¿uVGq3&bí8³˜`ÎäÁKi˜g‘Uõ41«”žÔfÂ%ÿŽ;î0Kuô„ *†Õè(ºá¬¬^º²²ènur…º´ƒeýÈÍ’.û׳z!¿Æ † æGÌšk¬±†µO®syt5ø«™Ó1-SÖ/LÝnb§ ãR±|æ®âXPâ°60 ëéiyèO›m¶™=ç­^¾.TP11¸P} fM£_=L/DŸóq°˜Ðår¦{yV>t/×QT¼ì`¶Š¹•lm±²Ñމ™©)‚žçV/žO8ᄬ¦ AES{of̘¹éG&Y[UÊtØa 4K(5•+¾ìºë®AeÇ¥±ãã+ØbPùÛLÈ› ¥1s(í°Ù0×:8¡ÇÆ`ñ{ ð£°ÉðTÆ‚âî~ž¸sWNi&ܼBL9üà "mðµàÃpp¼áçà9ô«\­pmòåê=Óxé î›s½±”å•J·)óJ½ ±†0Ä,äá0`þ,D4ô*@;õ”¸Xá¯Òf3e0DpUô0×ÅŠê0wÄ´"@žÏ(ŠÊ”¥!Vq9ÔúâYWó8WW ™1w¥Ÿ¸n¯ ~•ÓO?Ý|ø: l*ìü1V‚_,–³*ŠbQý”6”c fA½!zÅ}öö;žñå–[.¨Å©C×xÉS¥Ùt(žo¹å–åð¨! ¿Q‚y¬ÑCðWàò0¯ŒØ¸Ë.»X9uÐt«­¶ÚªFäB£OÂtšÆLÝü¥fø ¦ÝL MÒòeòψ¥á.„ì éÁðp#òæÅY+Øf?e¢W¯[½þ ç’ꢲ0˜QIËÃòCp"¶øOòœ óèÁl¢~Ì·xé±PaÃ’¦Ž2QG]fSýCð¸ã™'~ðÁèÁdÖ-¬Z>ÆVä;h„;,`ˆzà&w8¨.~f†§ LÒø00ÁÇ—G ¨rmøQcƒE;ÃÅ•¨e§vj4ŒöÌ„vã(xžcàÄÇ"…¥È­^”Á «lqFœüÖ,dXm”g¼ÎX×\&¾Kj–ï?Ä8Ñ–[†ðDÓ§ ±;ñYXuÔ,lïp4êå*k*ÔyÑMÔ7Ñ¡„†¢˜ÅÉw<ç-–ó"& ®˜Úg¬à ±!Ÿ×jÏCG!¦éŠ+®°pvü&E€m_\T¬Ê²ñghŒL?ýôY Á0çñYÄxáÀŸ§€ëhˆ]^‘'ü"Äl©ɾÏàDŽaøCðßàå/ò·x{]¹£ì£Œ»¢Q[à…¸2<òx¹ðƒÏø@?„ ©E+În‹÷^Uæ{cˆˆ6|ÌE8•9µpzNq” ad -5 '"jÜIP¢SB9ß脜¼É‡X®°Â ¢~ „xÉ+ˆ€šy‹²›J#ä„ylx •KY€c>T†ƒ„¹äG/ÑàfÛm·ê¶ K.œÅÜc ¸“· ÅÉK9p¥ºOMØJ\¯•Þ[^GáÄã”Ǭ 7 RÏ1!/ÄRÍ6Ûl¥ëhÀ¡Å[±¡à묳N‡òp8BE Ó/ò…[¡îñÇo2?_÷᥇32£Š¹'ºÜç÷¢2UÓàJê§²KÅG‹Ñ"Í›t8Lþ‚ë8°é ñáëQâÑÐÉÀ%QÆ1 §y¬›~ob&g)BT8d°v¶<Ä2d«é(8(uL¦.²bÅóã½ý=…Hg ‡Ïô "]GÉ×Çs½õÖ[ç“Ì1GTËÿdbÒàB6,HŒÑ£jÐí²|”Ý­£`iS…ݾ›ñ~é(xüý;¯ƒ3T9©Ó#Å=¯è®1c¦Ë1oäþV¶ÕQˆJåôÃÁ‡‰ÓX¯¢HÚøTCÄÀB…BìW7É×áÄÍŸºäé,C|ûîÀ)‡cÎFð'â\  €2^D:,dp7 ¹ñ&ºíޏE<ÎÞª'ÁBG¼›ßÁ¡€|€ªçûºÄ±!ŽÑ§~â`ý{~«Þ‡ðÚ“|‹Žè„RÉæD¾ÆTË=–Ããi¢Ã .°¨%®Ë;" ²8‘|°…ŽÀ·ä¼£à£«.š`Öx2SÜ;²=²‘Ÿ‡;ï¼ÓÆÅظˆhè,d‰¾ÂØ o;gì ÃÐû,E´$èÂÃ@‘åZ¢2SèÑψ@FæC>ÄÑžŽ„È¥Çžc–Øj¢W<~Þ©¦#²ˆí#z©¬mU‰£Âä©‘ºYSdò±W |h´ÝvÛÅÉæ0Äi§‹”]/ª\_SV-[A¿ÌÊPžrôó’qëUÔä{›ÔkjT(4+ײ6q1z»ñ‡'€«¡üY9>ÌâSnæâ/âZÅ‚qvK½—‰^}˜…"+A¢ä,¿ÕuòñL=9~NP8'(޼2À©È‡G8ñ0«rZ#>òÑV²"`=h»l]Ñá/ºpzòÉ.æoyDÕ"ÇpÖX,-*û_OãÓþq£PÚÊ<œŸ˜?÷‘Ðß’}Oîcñ;ß’s9@,è)õ˦Û2@„Ôÿ²ìN¥$™÷)•5Ò›8.CO§·=¡ô4{«} îé­>S?C0ÐòÊü©¤§„žÃ@"”žÃmj¹0¥3M¥ç0¥çp›Zn# ”*óq¾µ^ÒT†R ðmNÕ: ¡ x‹$ à³ >}ˆ¡ƒÃ1.ÞD’Ž’vAÂ@ $B©€¤T$a JÚ 0¥’R‘„ÿßeeª0IEND®B`‚mysql++-3.2.5/doc/html/refman/inherit_graph_32.png000644 000765 000024 00000010403 13515046516 022441 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÊ1›06rsRGB®Îé½IDATxíœŒäÆ†ë.fffff…™.$% 3'fR˜ŽÂ¤033ã…™™ûý_½´ãñŒg<³›ƒÝ.É;v»±º««êïòö "K”88Д}›¾M/œIPÒBH¨À$(˜”²$$AIk q  pæótå•Wâܧ+ñ ×®yæ™'/~߯L˜$0e¯Rzâ@åÀ%—\büqÝøJeuÖ©Ëœz:žzꩆ‚’|”ž>ói|ÝÂ$(ÝÂÆTIOç@”ž>Ãi|ÝÂ$(ÝÂÆTIOçÀP/(_|±m¿ýöÿù©Tg§™nºé&{ì±í?þè¨ úùÅ_xÙ;ï¼Ó¾ýöÛŒ7#Œ0‚o^OúùçŸí÷ßo™µ«}nÙ@³ Å“•xàXL/{þõ×_ÃÀƒ¤=¼óÎ;A‹Ç³þõ×_áÅ_ Úu‚˜àiÚ)ÃW_}USÕ|´x²´§Ÿ~:há‡ü1Kãæ‡~?üpÐb ?ýôSx÷Ýwýý~ûíæœsN¿ÿî»ï‚&ÌÛ{衇‚„ÈÓùóÛo¿…O?ýÔŸ_}õÕðè£zZÌð÷ßMX ßPñy‚ &»ï¾{Ìî¿´§Å–Zj©šô÷ß?<øàƒ÷‘>ÿüó0ú裇#Ž8"h§ ÷Þ{¯èI@bÿ}þùçÃ0à öÚk¯,±ßwß}^†²‘à¥0ÿø´è³¹ˆóÂxÞzë­?¨úå—_™gžéí¿ñÆÙ˜)OûÌó™'ø?ÉõéÓ'ÜrË-~ϸöß¿?üp¯^Gb®o¾ùæðÌ3Ï8c:sç›<̃´]0†?üгµÛgæ{ Ö%DŸµñø}«?{î¹ghtàhÅ‚í Êc=æ ‘*ö_ eXtÑEÃ2Ë,“=/¸à‚¾xZh¡°ÄKdM²xX§všOÐä“OFeŸ„I&™$D&ð1Ç3ôíÛ×ó3‘GÙëÉ ŠÌ–0ãŒ3™1a¸á†óö·Øb Ïwýõ×û³Ìœìy™è®»îò÷,ÈFÏ…|ÓN;mXi¥•¼ “³é¦›z=Ã;¬÷õ¨£Žòw“M6™§ÃŸ=öØ#H›„ñÆ/ÛD<Ó?xàðä“Oú÷äc¼Ú©Ã¸ãޤÝüLÎo#!Ôÿì³Ï†8/ÒxÞÒ)Ë¢¡<¼$ þ³ øAZ¿~ý㥤ÞqÍ;ï¼þÛLP®½öZÏÆ|ðÁÞ&sƒ-¼ðÂÙ¦9餓†£>ÚóqÏÚ~øá³~Ÿ}öÙm÷ù¹çžóöez{2ѽþVÊ¥ÛL¯ÑFÍ>úè#;ñÄMÌ1-Ón`—]v™i÷¶W^yÅ6ÞxcÓÄ›Dü6»îºëLfë­·žzè¡&&™va/7þøã›v=7 6Ûl3“Ö0M¨aj}öÙg^¾Ñ —zꩦÈÎ?ÿ|¿n¼ñÆ,ëÄOìf›o¾iZ¶Ï>ûø; ©‰IÆ/T|&¶‰Xà¢î 7ÜФE  ¢]ÆK{´Oÿ÷Þ{oÓ¢w¿SçÜsϵcŽ9Æh_ Ó$P^6ÿGi3psD‚gZ¤n²Ám6¶É&›8óeÊî¥YÜdÄTbN´€ ÿ"úôsŠ)¦0x<âˆ#ü÷˜o¾ùlƒ 6`#õ±’NYiKƒ‡E‚7¿N:é$Ûwß}M›ƒI L–€ 0ÀÎ;ï<繄Õ$Ô&-T¬ÆŸµÈ½Œ61÷ßÎ:묶û+–Uãë ¹KT”°N5ÊO<áU±c©C!J0æÏ 7›ØiåÀz^Ùêa•UVñ{L vLLvÌ5®ÇÜË_sÍ5YW<ðÀR2Ë,³dù¸™jª©Â®»î¢F‰ZŠw´‰æªBì°#4R˜h¢‰üBÃ1.4;2„¦ÓsÓó³ yÈ!‡ø{Ì4 Šß/²È"íÖŒ¢V¸õÖ[³lQóÁ£*…>DBÓ €ðǸãÃcúÏXÐÎô›KBïiðkñÅÚb5n“?¯Q˜W´¦˜ü¬€6„vÛm7O‹f-i[o½uŸÇm(j”¼ÙyòÉ'{YòµÓç¨Q(Ó•i”Ò1¢-ÒBòüRÛþ+“Ä¥fýWuçÝlíµ×6Ù龓A“ä» ‰Ýír饗fÚgðzøwý,!w#ÁÈ=™ÉÜÈêàÈR$™4™CÓšýâx{ì±Y–;î¸Ã–[n9wæe“»Ö­m«­¶Z–gŒ1ưȃ,Q7ÓO?½]tÑE&¿ÁFuÔü+“`¹¦™fši<}î¹çÎÞO8á„~°P$´C‘c$4†k|Ì~#ʆ¼ð ³tm"ÆxÐùqÏ1ÇYžx£ÅíVA|Îÿ¢…(ƒõ‰q4ï‹}í*R³>£E#ÏguÖbÑŽžÿíyGÅÿ-”g¿©õw˜_ò|qi·u¸”\ '¨bÌ*íhÆ$!0‘iys§Œòm )²×k+ÿ^nÍ»²:ËÒ—]vY›m¶Ùìí·ßö,Ò6&ûÚ0âuÊ)§8|Z¬Cv¾›•Œ;OŒÿ°ÃóñÇÍt-¼0—X Òñ•aҩʼÐo“)ö›v@â@ù¤! &R„…ãs«_ÆñÒK/¹óRÙ†yÌÛè·YŸÙ„º›ºMPªvL¦–I=Ûà (Â~ÝqÇÝ?™i¦™\ûÈÔñ­€)TưYˈ ÀOÀÿ@ðXHr¶³ì2Û¼ž«®ºÊdÆØÊ+¯ìï°±i?.úâsVAáfœqÆq¿ŠdÎH¨Iûh _ á"á×Ì5×\&Ä®¸â ·ýñß>ê\ýõ MÂÎK=,4ÆÏ®M=õÔ†Ö~ùå—½=„MT•vxÖ×^{͵,PÃ_Òúël-!§ÚÇÅyÑå—_î~¢ŠªÍx>ø?˜sÆ sÚ­ ÆØµÓçvê­”·h¿uê£DˆX gˆ p&Ïø‘@¢HŽ„=‹­ªÝÄQ)íÔáòþ¶Ûns$‹2Ú!ƒÌ°E ΫõÒÊòâGDÔ)ú(”¥ü£KFÛ¿ê…ýZ$ÞàG`Í5×\Óë§èsÅ2ø(â£Ãé@ËäPw„ØÉH¿$8þž±Ë ¯hX»§¿ÃÚ|óÍý>zÅy¡€ÌÄQ@8šF»ÚÜ/ÄŸ‹ý`.€Ð!i9÷½â;P>|¯è£È¼¬ƒ‡½`[P6ê‘8LMü¼ˆzq 'd%µ™¦þÜNŸ¹iG IVW•›2uXCí JMኻì²KíX—Ÿ³„­H²¿BFðXl8EBP€C©‡Å\) ïXLþEœ£°È8 ¨BôÇ=žóË0viJ‡pó1ù8߀_i»ÄY g‘"ß8çà>O´+­ÖpnòùšÝÓ|é ïÛés³¾”½+”nsæ%½- ³†0Ì,ìá"6"L4ü*D=Íœ¸¢Ã_¥ÎvòDpU%ü°è‹5*ÃØ1Óö| h”§, ³Š+R3¾áë`žu…€Ç¹ºBíô¹+íËRAá\åôÓO÷³ Î:%8‘+ÁoDLÈYG±Qù”Ö»9ДgNîºë®[ƒPäß­÷+®¸b͘@bˆ©Â©ntè×Î8/9¤#°qh!ù*MãÉ8 Ž@ËÐ2¦îè'q}çi£^ùÆå½íü´óøPv²í°Ã~âË"ï Ö`½;4Ë9 —MÆÙ3iIó[tj…3_lsP‰:YTD/üñ¾°vÚi'?³ˆ°7ð6‚K¯À  ™ê0Õ…(•ò¤‚,=ì]ß½x¹WWl‡¶!`ÜwÞÙ?@¨D™i¶ÿç¨ýÛJPø ‚sââèQ]3²yô4*”^ã£,Îìq†fpˆ”x$¢œ‰E9#Z–SrìwNé”±Û"ïÑÑœð[fËó•Ÿ‚1(h ’GDWƒîø•œèÎóÐ)À”å—_ÞaTNÂ…‰ÖåÄœjÂ~t›õ?¶C˜ ÍÀë ug”tBˆ)›}öÙ³2íÞ¯cÙd::¿h?g€¢‚A3{: RxxHd¦|_ŒÄ8A ²#ì]ßÍø…^ƒÐÈ¿ñrÅ?ñG‚þùAñÔ @`ë²@QÿZYÆvtHèÈñcñ+Êb¿ºòÌY cçB8l%lþèd½+Uñe{µFa!êÄÞÏWZÙ²(‰¹"°’HbvÙ(`e3Íâ"V-ب/4]K±#Ce¢íYË÷0tÑLp&1o"ŠËúZ%@R u¾¥á­I¼ZO§^%(‚‘O`%ZBμ€bZ5 $ø”sÌ)ùÆI6'Åù`=Ùìuk†ÀKÎ%ôMiò)ÿgY h;A–h8¾ÉGCtÈx¶Ùfªä—ç:%às}'dèò0Ø0óøPO~”·ÕiÝCM¹¢3Ö“áaMŠ;Ãü*LÝù|6P®X–'Èwú|hEY‚ÁÍÅ`=>HŠÁ˜ÔÍ'Ï|¨EY/ W Ø/OEšYÛÉ×Ç=Ÿ´C (Njáì7ƒ‡‰¿Ã‘WôoÏVVMH/sæ{ <\u›Rˆ¨Sñ)ëÛ#x¡ä‹C He¢äk7ȲX7Ïô¯S¢lq¼Ö5¤—+”^ïÌk—¯!Ì©è ×¼øç”¬ƒõŠy@Çø†¤H­EÉßne± žé_§Ô•²¶9¤•ëU>ÊÆ|úzÔ¢CâØzRŸ’F̳©Üàø`îFj¾’FiÁ ô:q$AIë q ’ T`RÊ’8Pꣃ”(q ·q€ŠâÿYƒu‚OŒ{“Òxø¿ `üºO«ê9|”zž¤”Ä:$A©cIJH¨ç@”zž¤”Ä:$A©cIJH¨çÀÿGµØ´ªQ¬IEND®B`‚mysql++-3.2.5/doc/html/refman/common_8h.html000755 000765 000024 00000013731 13515046516 021373 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: common.h File Reference
MySQL++  3.2.5
common.h File Reference

This file includes top-level definitions for use both internal to the library, and outside it. Contrast mysql++.h. More...

#include <mysql.h>

Go to the source code of this file.

Macros

#define MYSQLPP_UTF8_CS   "utf8"
 Use this macro in CREATE TABLE strings to get the best available UTF-8 character set and correpsonding collation. More...
 
#define MYSQLPP_UTF8_COL   "utf8_general_ci"
 Use this macro in CREATE TABLE strings to get a matching collation to the character set selected by MYSQLPP_UTF8_CS.
 

Detailed Description

This file includes top-level definitions for use both internal to the library, and outside it. Contrast mysql++.h.

This file mostly takes care of platform differences.

Macro Definition Documentation

◆ MYSQLPP_UTF8_CS

#define MYSQLPP_UTF8_CS   "utf8"

Use this macro in CREATE TABLE strings to get the best available UTF-8 character set and correpsonding collation.

MySQL++ is built against a version of MySQL or MariaDB older than 5.5, so we must use the legacy 3-byte-limited subset of UTF-8.

mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1ssqlsxlat_1_1CommandLine-members.html000755 000765 000024 00000031023 13515046516 031047 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::ssqlsxlat::CommandLine Member List

This is the complete list of members for mysqlpp::ssqlsxlat::CommandLine, including all inherited members.

ArgumentList typedefmysqlpp::CommandLineBase
ArgumentListIt typedefmysqlpp::CommandLineBase
CommandLine(int argc, char *const argv[])mysqlpp::ssqlsxlat::CommandLine
CommandLineBase(int argc, char *const argv[], const char *opts)mysqlpp::CommandLineBaseinlineprotected
extra_args() constmysqlpp::CommandLineBaseinline
finish_parse()mysqlpp::CommandLineBaseprotected
input() constmysqlpp::ssqlsxlat::CommandLineinline
input_source() constmysqlpp::ssqlsxlat::CommandLineinline
operator void *() constmysqlpp::CommandLineBaseinline
option_argument() constmysqlpp::CommandLineBaseprotected
option_index() constmysqlpp::CommandLineBaseprotected
output() constmysqlpp::ssqlsxlat::CommandLineinline
output_sink() constmysqlpp::ssqlsxlat::CommandLineinline
parse_error(const char *message=0)mysqlpp::CommandLineBaseprotected
parse_next() constmysqlpp::CommandLineBaseprotected
pass() constmysqlpp::ssqlsxlat::CommandLineinline
print_usage() constmysqlpp::ssqlsxlat::CommandLinevirtual
program_name() constmysqlpp::CommandLineBaseinlineprotected
server() constmysqlpp::ssqlsxlat::CommandLineinline
SourceSink enum namemysqlpp::ssqlsxlat::CommandLine
ss_ssqls1 enum valuemysqlpp::ssqlsxlat::CommandLine
ss_ssqls2 enum valuemysqlpp::ssqlsxlat::CommandLine
ss_table enum valuemysqlpp::ssqlsxlat::CommandLine
ss_unknown enum valuemysqlpp::ssqlsxlat::CommandLine
successful() constmysqlpp::CommandLineBaseinlineprotected
user() constmysqlpp::ssqlsxlat::CommandLineinline
~CommandLineBase()mysqlpp::CommandLineBaseinlineprotectedvirtual
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1String-members.html000755 000765 000024 00000053740 13515046516 025522 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::String Member List

This is the complete list of members for mysqlpp::String, including all inherited members.

assign(const char *str, size_type len, mysql_type_info type=mysql_type_info::string_type, bool is_null=false)mysqlpp::Stringinline
assign(const std::string &str, mysql_type_info type=mysql_type_info::string_type, bool is_null=false)mysqlpp::Stringinline
assign(const char *str, mysql_type_info type=mysql_type_info::string_type, bool is_null=false)mysqlpp::Stringinline
at(size_type pos) constmysqlpp::String
begin() constmysqlpp::Stringinline
c_str() constmysqlpp::Stringinline
compare(const String &other) constmysqlpp::String
compare(const std::string &other) constmysqlpp::String
compare(size_type pos, size_type num, std::string &other) constmysqlpp::String
compare(const char *other) constmysqlpp::String
compare(size_type pos, size_type num, const char *other) constmysqlpp::String
const_iterator typedefmysqlpp::String
conv(Type) constmysqlpp::Stringinline
conv(Null< T, B >) constmysqlpp::Stringinline
data() constmysqlpp::String
empty() constmysqlpp::Stringinline
end() constmysqlpp::String
escape_q() constmysqlpp::String
is_null() constmysqlpp::String
it_is_null()mysqlpp::String
iterator typedefmysqlpp::String
length() constmysqlpp::String
max_size() constmysqlpp::Stringinline
operator !=(const T &rhs) constmysqlpp::Stringinline
operator !=(const mysqlpp::null_type &) constmysqlpp::Stringinline
operator [](size_type pos) constmysqlpp::Stringinline
operator bool() constmysqlpp::Stringinline
operator const char *() constmysqlpp::Stringinline
operator Date() constmysqlpp::Stringinline
operator DateTime() constmysqlpp::Stringinline
operator double() constmysqlpp::Stringinline
operator float() constmysqlpp::Stringinline
operator int() constmysqlpp::Stringinline
operator long int() constmysqlpp::Stringinline
operator longlong() constmysqlpp::Stringinline
operator Null< T, B >() constmysqlpp::Stringinline
operator short int() constmysqlpp::Stringinline
operator signed char() constmysqlpp::Stringinline
operator Time() constmysqlpp::Stringinline
operator ulonglong() constmysqlpp::Stringinline
operator unsigned char() constmysqlpp::Stringinline
operator unsigned int() constmysqlpp::Stringinline
operator unsigned long int() constmysqlpp::Stringinline
operator unsigned short int() constmysqlpp::Stringinline
operator=(const std::string &rhs)mysqlpp::Stringinline
operator=(const char *str)mysqlpp::Stringinline
operator=(const String &other)mysqlpp::Stringinline
operator==(const T &rhs) constmysqlpp::Stringinline
operator==(const mysqlpp::null_type &) constmysqlpp::Stringinline
quote_q() constmysqlpp::String
size() constmysqlpp::Stringinline
size_type typedefmysqlpp::String
SQLTypeAdapter (defined in mysqlpp::String)mysqlpp::Stringfriend
String()mysqlpp::Stringinline
String(const String &other)mysqlpp::Stringinline
String(const char *str, size_type len, mysql_type_info type=mysql_type_info::string_type, bool is_null=false)mysqlpp::Stringinlineexplicit
String(const std::string &str, mysql_type_info type=mysql_type_info::string_type, bool is_null=false)mysqlpp::Stringinlineexplicit
String(const char *str, mysql_type_info type=mysql_type_info::string_type, bool is_null=false)mysqlpp::Stringinlineexplicit
strip_leading_blanks(std::string &s) constmysqlpp::Stringinline
to_string(std::string &s) constmysqlpp::String
type() constmysqlpp::Stringinline
value_type typedefmysqlpp::String
~String()mysqlpp::Stringinline
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1examples_1_1CommandLine__inherit__graph.png000644 000765 000024 00000016303 13515046516 032221 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÎ{<¿sRGB®Îé}IDATxí ¸UÓÀW£ŠDÈ_ÆÌS™K’ %C¦LJ)$ÊL†¢ˆÏPhPJ…ŠÊ˜FÑ@I4Ji>ÿý[ìÛ¹÷ÝóÞ¹Ïë¼{ïÛëûÎ=çìqíµ÷÷>ïó<¯8ppH‰Å ãx)Õp…¤¸££€£@êpŒ“:Í\ G§qÜpÈJ&Vš?¾|ûí·‰ÉîÝQ ÈRàˆ#ŽÃ?<~üüЧO‚îr4pkàß5ðÈ#øYDŸshËV&×>º»£@‘¥Àa‡–tì.8”,.ÑQ w 8ÆÉ>.×Q )ã$%‹KtÈŽqr§ËuHJÇ8IÉâr§@Æ3Î;ï¼#·ß~{î£, ÜñãÇKƒ dß}÷•=öØCN?ýtùä“O ¨õôhÆ„^åÉ'ŸTdÚ·o/\É gÏžrçw&ËJ)mðàÁR¯^½¸ë¦›n’áǧÔNÔ…3žq~þùgùæ›o¶;Ý>úè#©Y³¦,X°@Z·n-÷ÜslÚ´I'üƒ>ØîýGÕÁ´iÓšßÿ½ ,’Á† äï¿ÿN–•RÚœ9sTøT¯^]¸9äϺuëÊ矞R[QÜÇ ‹\¸p¡Já¹sçÊ_ý%Gu”lݺU˜ò>úh)Uª”_¶lYÙm·ÝbÍsR´ *hÚĉcuvÞyçX9Ú2eŠT«VMvÜqGYºt©ì·ß~±|V¯^-ì?í´ÓN:é•*UÒ‰ oãÆ²råJÙsÏ=eÆŒ²jÕ*9þøã¥téÒdk½õë×Ë;ì Å‹{§îwÜ!'žx¢Œ1"V§U«VrÜqÇÉ< W\q…¶Ã¸úé'a\Ðí¤B§TÊjãægíÚµºÈ>ø`Ù{ï½m²¬X±B|×]w•~øAÊ”)£»à%J”ˆ•Y¶l™ÎÍ‘GKËë¡Y³f±1‡écóæÍº¸sÌ1â{ì±X—0óŒ°:óÌ35ºNž_}õÕžÙ°ò cz†!´ÿ믿^ó¨ïƼŠåQÖUó Chþ¨Q£r¼sLóŒù yþŸY³fyƒ òÌÄzféøÀÓâkL-ž R)Kã†quLfQ(žÐ{Ë–-گьJÃPJ;³P¼sÏ=Wñ¥ô#‹úûï¿¿wÝu×i]æÐH~}Nü¡]æÈ«£Áú0 ß«\¹²Ç_|QûÖ—Œ–Ó5н{wM3fŒW±bEÏ5½Ê—/¯ë…LÆ ŽF0{F`jû=zôÐzFy×\s¶O>kí‰'žÐ¼°?‡z¨—ìä’5òË8Æö÷Œã=ÿüóŠ( ÔH]¯wïÞún¤…×­[7]ü‹/Ö>! 2Ï»ì²Ë÷ÜsJˇ~XßÁÑHv}¾ÿþû=Æö /è{~'¨€‘vWAí/ºè"eP„eœK/½Ôã:ûì³Uè°`ÿüóOÃi§¦uŒÅàÁ àFiž1“g 1=ƲÏ>û¨`xöÙg•6£é¼×^{MËTë†ùÙîŒc‘ùå—_9ã´+^ ¢0@Fyå•W4"Õ¯__Ÿ°1#¼Î;{0ŠkìØ±Z¿ÿþ±q>ôÐCŒcÔx¬p€JDË8V‹‘GŸh¶¼À.¨¼†¶ζ‰öCª[fC§TʲLðÅ_x]ºtQíÎŒ ,,Z´Héùé§Ÿª¦GsÓ†]~'¨ó &L˜ ×Ë/¿¬iàm§mÛ¶ø¢AO?ý´¢EMh÷þûï{æÀ¥ Y2ǧe7nì}öÙgž1Y•ÈC#ó:Ö/𠋦cÇŽd‡‚ ÆùÏ>Ž!Š‚Q¿zǰµC½,Ũ[u¦4£aÄL´í ù†°²|ùr1K}|ƒ^½z‰1ç4ÿä“OÖ;?‰¾M,Ã<˜ ô¿ ~Žmƒ £½bùDÆð•òìmÀ,6iÚ´i\q¢?¯¿þº¼ùæ›8ÀoòtÁ‡°†N©”…®-[¶TÜŒP¿ÊÎm‡qZÀÇŒvc–ªÝoý<Ò=öXn)CPøÀ«¯¾*o½õV¬]pŧ´`¦}Ô»a 1̯A#45ºžœRÆO²`˜CŒ©¯—1AÕ¿Å÷ìСƒú5øÆDB-àKÛ5iÓòs÷°òÓ¿uµ ¦Œi¤fÔ¦ŒÚÖ¢,@BŸFª‹‘Laqºí„àüY0f†}Ìqÿã?biÆ,I“&Å1š?ÿ«¯¾ŠË‹ULx ¸Á¤ :4!Gä©§žÒè ˜”†v"T~FK'ÚSöÝwß#iÅøê³$ÇÂZ(2#õ5cqŠ¢Ùü {P6Pa4¡â‡£Îü>óÌ3j'ž åª·Þz«¾óÉ A F㨰 ÃܶhÑB:uê¤õèÛøi±~i˘Ýrùå—Ûêù¾ã„ÅÀ˜fB´ìÁÔX h÷ˆF!U˜T#ùè£j$ŒÈñ»cRÐbh/‘ˆØ\+ỏ`Z ôÌ5lØ0iÞ¼¹3M5T"jDC¹³ïC´ úDÒ°^¾þúk-ƒ¥ƒÆ¥mÆÇü`á°`¨† jtÕö›ï{¢¡—ßàN*€Ói‰EMLˆXßñ1,àPÆì¿Ø$È >‚‘\j£)ïé¢ùDµð¨c‰g̶8Ç ªvàÆÊÙ²QëãP—vp ñ¯Œ*׺¹EÕ(`¢ðѨÏEt‡€¢„8,žDŒ@Ðlë·„¡S*e׬Y£ú$jd˜×»øâ‹•NØÿ÷Þ{¯‡smÁ0Šâg´§&³&6¢]µk׎ùiDßìXýwcj»ø@^}à³âÙ6˜g;·6ðbó˜ÿªU«zfÔclA¢¤Ì=‘W|!æ¯M›6êÓˆ¢>>² 1߈@Ä%—\ë×úÐÚhÈŸ ç?GÕBöWÌHhÏìqÄ¥ñÂâ4’#•ò bBÈFd±Úp´¿ ŒÃ¢¡c2Å9½–qÈ3ZE£HþºaŸq>Í^“F¯ˆb%‘""8¢L\T@4褂D’€1qtLc¶Ø9v<§ Œ1Z@HYÆ"@Áƒdsbö•QÙ.H‚§À‚†ãóÌ ‘#G f6o" bM¨11Yß1éð5Âí°ù‰„ rÉÒ1Ùô l}£õ‚²·[:;î~ðûUþôdϘ¢‰›†ÉÊý—´¼æ$¯¶1ݹ,`¾ûÁ,pÿkÜ3&®‚„HÿÅì7ˆQµb6¦ò=ìy¿ƒhbñHÈ\›¬ŽKs¢@Ž?HˆÓl6—0á‚ê¸tG"C>6›æBPÉ‘GÕü»gGL¥€cœ4¹-[¶š}‹µiŠC+ÐÇÁdsPx˜1c•,Z´NêÔÙvÒ¹ð°)º=›È]ÒÁ2~ŽƒÂ£@… 發Š&˜Ò«ðp=R Gp °¤ËˆŒë×o2§'Ú›³\ÍG]í¤jÕÝ#ëÛuŽÎÇ G§HKÁ€Æ)nŽðLŒ´o×Y8 8Æ G§HKõï?Þ|!YÜœÞ*}ûŽ‹´o×Y8 8Æ G§ÈJ­Y³Þœ®˜¦LC§sæ,3Ÿb/ˆ¬×Q8 8Æ G§ÈJ 2Ŝ޶ù\ªTIg®EFýð9Æ O«HJöëÿWe6mÚl>SˆO‹×I®pŒ“+y¢Í\ºtùßD³â4,Y²ZÆŽ þx/Z,]oPÀ1N­ƒAƒ&›ÒþùÔÜV©R%œ¹æ'H<;ÆIƒI°(ôéó}mCÞ¦M[ ãLˆ lyw/< 8Æ)<ÚÇõÀ¼yóæiÙ Ÿd¸úË‚ÏÔ©Såï¿ÿŽ%{ž§ÈâHÐ “ Ð÷qÂkÖ¬YrÛm·É±Ç+“'OÖjì•.]Z€„Ã?\^xá>|¸tëÖMúõë'»í¶›–}ä‘Gt>÷ÜsÒ¦M™8q¢”,YRüÝwß-^x¡¬Y³FÚ¶m«]¬X19ôÐCeúôéòÄOHÅŠµ~ÆŽ+>ø }ôÑÊ4,²ÿýïòÌ3ÏH¥J•„M]êÂP´C?<ð€œ~úéÚÆ¥—^*gu–´lÙ2Ç; µ}ûöʸŋ—òåËËc=&p€´jÕJH{íµ×„ÅwË-·H¹rå䥗^vÑÁÉ.Pè-<ð@y÷ÝweÔ¨QZwñâÅŠÓE]$£GV†‰›o¾Y7n,]ºtQ惹h‹±Õ«WOÍTEÖ÷„+óó¶k×N… ºûî»Ë³Ï>«t‚ö÷ÝwŸ<ÿüó:Ÿôùå—_ÊÀ}­§÷cÆhKÆwÞYúöí«L„DDôéÓG uΜ9ræ™gêâ`2¤-ÌvÎ9çèbÁäzï½÷dРArÅWÈ[o½¥ ñí·ß–ßÿ]`È!²÷Þ{Ûn“ÞY ü±.L¤z=bå0gzõê¥ù'žx¢.»¨aœ5jÄÊúßaÒvØAq:t¨žªxôÑG5 ¦ž?¾¼óÎ;Ò³gOÕ–,Î%J(3yä‘òᇠ¸W­ZUñ² ™.¿ür0`€T¯^]>úè#iРâW§N½Û²hÑ»îºK>ýôSe˜aÆÉ×_m³c÷ \ajh‰æ ½Ê•++“rN8á™Ç8Mš4QéuòÉ'+ÑL}Çœa’XHTbqÕ®];Æ ¯¼òŠJék®¹F8ša̘1:‰ÔÝqÇåꫯÖúA?Íš5Ó½Ï>û¨T¶šòHtF™2eœa,LJàÚk¯;-aßÁæ?餓Ԍ‚‰a0Ò‘îHò+¯¼RñE›¶hÑBè€î¼óNe,Æ‹çdì¹çžº8+T¨ ÇsŒžD3"ˆèÃï·ÀthD´Úf¯½ö|?ä…+xa># \‘ACä¡á,ã ‰›6mêo>íŸ3ÆT³”´¦ŒØ…ÃÂvډȤa¦œrÊ)R¶lY©V­ššH˜˜>HwL˜€…Æâ´ÀbË ìÄS†‰OcÅf<Àú6=ñÎbÌŸ|òI,Íf}€ .¸@†<ûì³ceh!Îî·ß~1ßȰtãÚÓN;íd³ã–²‰¸ç…+Âz m^ýun˜ ˜·ÙÇ8–Aò">çß°ó1¥Ð;vÔ*8Çø o¾ù¦š:˜y˜>矾úÖé§ðü‘k7,ƒ`6úÍ/íúé'mÇŸŸ¬a¸ýöÛ•ñyfÁ`Øwß}U(à£Q ?îÞ{ïÕ20 ¦RÆèÔ©“j*ÚÂÒ²~ÜñOfΜ©œ< yኈÁ—¡>þ¾þX6@Æ™ja‰Ž©óÀ hÌèá‡ֈѮ»î*UªTÑ…†¤ÆdÁžÇ¤Â´zã7ríŽ|L"4:´š4æmaVí±Çꨓ߽{w5 mYûb&á§ Á×xüñÇÕw?ü’ñãÇkp£yóæ*X *ƃÆýæ›oÔ'ñGîl_aîDÂFŒ¡†¤k Ûúyናà[1&‚hI€q½øâ‹²`Á}g_¦Ê$È8“qý’sÀÈ€# sà°±ño¸á]tHkœï믿^Ëâl[ð·kÓ˜øúõë«/c^wÝu6K ¾ šˆÛC=“úhA6ÊæÇW¡ì7Þ¨má¿uèÐAˆ†½úê«R·n]•þÇwœúpO=õ”:â8þ Ì"˜´aÆòþûï+Ó;þŠžßmwL56Z ¡.Gq„¡-.´Z®´}ÕUWi4à ´‡hGf"HÁø1µ±¾úê«Ø˜µPšÿú‡lDŒ¶×gì`ö5câü€Ô[·nrÈ!q‹‰£Ìdï²Ë.jÂá+YEL2¡_˜’vCÚ[€Q ySÓ/±o[.èξ֟ *oÓñ)Д˜uþ>ø…L<˜šð=8Ð&rÕ<Âù„ò­IÔN*éÌ>i‘þ-‚¥R­‚¹@(8ÙÂM–FûHSëÛðqnýÚ²ÉÊ ­¹R†IØóá²`ƒö=•{Xr+Gž_k§Òº—Í:SͼÿþAû/aN&ž([ââgqæöÕ*u°é3ðùŠú±¢0ó–Õ¦ZnÀÑ9r¤:ïø9HFnˆ9·ú™ÇÉ„[o½UÃÓøM—]v™jàDÜ @œzꩺϕ˜—Žïé`ªmóÓ‘BÛ 'jŽy`w³°jÕª¥|l(&ž]ÛN(DÒ,›–ø9DÅ8-Sž 9'žÇKVÎ¥m£@ÖšjÛ†ÿDÿ‡ çwžÜtÓM‚‰ÇÀÇa÷ ˆ`7 qÀ‰–aŽºe†à€Ýó`Ã:é”ÕŽÌ œ}Ú.y¤Ó'›¡rÅ¿"êfÀQAü4L®°pÏ=÷èžåóêƒ2%ÌÎ8³IC3¶°P䇠8͉g£8 É¡C¢Pö{`¢C0 ï„S94™JY•EÌ&-ýÑ7¡rB»‡\ j€8Á¼„x9vƒr–#;'$ÂáfÂ×çÉ­Úƒ~ÖD‹{_Ð%Ñ Ûw¦–+r¦™#)v_Ç?qaÁa¶tîÜY÷.¬ñH³G_ÌaM†-ËHð#|Î3>Œçî±1ÊÆ"'Àü´(ácNH|ðÁª ücKå9¨ö­0saT|Dðä4'/Š9ÆAJÛólA“Íög8¨ ƒ±Dæ( Ž)€y†ÖB{åuh2lYö8EŽß~û­Ì1§`ö›,p4æfo„C«v÷òìî㯱Êù»üBPEÓ°ïF¿hD"ˆøOE Šœ©†©Ãqy£õYì¤#Aa{pÂýÇäLåÐdزø5:tP?ƒGÿžŒÅÿ7ƒY‰¹ÄÅY9:è û˜ò=Y4‚0Ø$õƒßÏò§gós‘c¤5£œù²G^˜`vø19ø»v¡c†ð‰@°Î0xX[–saLÅ ÂgàÌþŒ’µÅ~åíW±”·A ݰÏÉú .tA° `¬Ð¡ÿW©aûÈôrEÎTãXþÁ¬.‡ ‘¢„mùÄ ÏGph þÑ#Gýa:«¶ÇÄc¢‹_Çú˜Gyû0|lÆÞš«wïÞ9ªÀX˜tþ‹óhaC¬h7·æ¦ö iØv²¡\‘Ó8HgÎañ™3çä,`Úð\X´\|ꌣÍO$0áek¢ðžxH2ñݶ›JY{0ˆrÁØ͇‰5ï6:>ŸYø;þP6iœºæò‡9m¤ûŸí»MƒF|ÊGi„í4²ÿp«&Ÿ"{r€¹å[¤3æ—5ÏüsNÅÈ!I4Ÿ9üå ò‰NŸøb%8þ‚Ƴ>Vn}¡±ˆ¬Á0v)·òùÍc‡~ػڞýá—'ŠœÆñOï?ÕìÏãà HÌßïhDö”,°{K6-ècï¿ÿþAÙ–Î%ÿ—²Öp5Tä|œ š‡jSÀ1NOŽC-})à'}çÆa–ÆpŒ“Æ“ãPK_ 8ÆIß¹q˜¥1 =ªÆ”àÛ}Ža)à?»¶NA—+4ÆaSÓÅòCªæON%;Ë—Ÿ¶òS§Ð6@󃬫ã(.p>NºÌ„Ã#£(à'£¦Ë!›.pŒ“.3áðÈ( 8ÆÉ¨érȦ þ*×Ã_"(ÒIEND®B`‚mysql++-3.2.5/doc/html/refman/folderopen.png000644 000765 000024 00000001125 13515046516 021450 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÚ}\ˆIDATxí]?oÓPÿ9iš4i°;ii“¶‰ZЉ‘‰ÀÀ7`bèÔÙ¬Øù,HìU'ô$*Tµ]‚T¡DPÚÄ6wÏ}‰;¡C; a¿ÓߟûÝïîž¼jAÀ­InSþ}€9H“ÓŽ|?íÁ÷ =_ÊÆŠ­†¥Àue*;¯YEäsYäæB¢Ÿ¿þÄ—£sÙ½½ÙŒ† É«›©ÀYÇq !GÇ¿v̇¹ÑØ®š °Œ‚ÔF¹}q¥b]÷7í·0)Úd›¾ÿð-èº}Pfä£ÖY{4™ÑÂ@}úæôñ2ÛüÔ—ñúåNŒI‚ÁǃcçÁº%£¬UаI³mc±ô˜å¼ÔÆüÈ>é¸xþt9Æ$µý OæVE*õU´Ì‚ç#ž×ˆ•ïûr@l$øPÿrHaaÇ¥ ²›dZ®rè‘ãqI„o¼øT\Ž,tªj2FAxv-LŸp׌p TÄI/ \¥sfí½; jViTƒèú¤o^cpÅü¼ûû»Ïb]”€¢¤<†aþÕœ²“ßÓ˜y“£§9:Œîù+À³€ñà,E žf³6éNˆÄE£KU}Ü^;¶ØnZ¢uß­US4— ѬëbížN¶.Úk¦ØjTÄöº%µªâ i¯VÄÊÝò§™ Èù¸)ùÿG€™òºJ@T x”IEND®B`‚mysql++-3.2.5/doc/html/refman/inherits.html000755 000765 000024 00000073676 13515046516 021347 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Class Hierarchy
MySQL++  3.2.5
Class Hierarchy
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1Query__inherit__graph.png000644 000765 000024 00000022004 13515046516 026734 0ustar00tangentstaff000000 000000 ‰PNG  IHDRCm;âõsRGB®Îé#¾IDATxí]˜EÓ.’䌂ä,A…_2ˆ(A”œ‘¬Ã#¨EQ‰¢ä IŠ‚d$GErÎA‚Àüõ_¯s{»{{{›¯êyîfgº§ºçíîêêªI,&RRE q#0=iâþ~ýzE@Pî  ÂPk‚" (Œ€ C­Š€" 0* µ(Š€"À$wFáÔ©S´}ûvçÇz$²eËF÷ß@Rk×®}õÕWá­LHA yòäôï¿ÿÆÊn,ahb”,YÒüÔk8räHÀSz衇èÍ7ß x:š€"ެY³†>ûì3—Ys+ ï¾ûn—/èÃÀ!púôiºuëVà`Î÷Þ{/5iÒ$ i(sE \¸yó¦[a¨6Ãp-5Í—" †A…[SpE@…a¸–ŒæKP‚Š€ à­‰)Š@¸"PacåÙ³gÝ~ûÊ•+éÉ'Ÿtî€sçÎÑ7üÁJyŽ;ÒÌ™3ƒ’êØ±cé‰'ž { *D 6¤Ÿ~úÉë´ÿùçºté’Äß³gÔë'Nxý¾/íøŒ1BÒD{rþ ÕtªP`â Žæ€ Ã PÖ¬Y]ÎéAà=]½zµÉK@®¨Ü_ýu@x+ÓÀ"€Îrß¾}M„¹wïÞ X0ÿ¬oß¾Ô¥KÚ¿?ÕªUË­çÑ9S:t gŸ}VcFÀåË—éöíÛÎÑüzoÇgëÖ­´~ýzÊ;w¬¿Œ3ú5]o™…oóæ*žÛ©5®"{zvìØ1™¬ù‰˜¾qíÚ5:yò¤¼‚Š…Þ6iÒ¤týúu‰—/_¾Xì†8)R¤ l¦)S¦”gˆ|øðaÚ²e‹ð/]º4%I’ÄÁqþùgÊž=;•(QBÂ<(|Ž?.•-‘䯿þJ*TxÐ`wìØA¸–*UŠ’%KæàkÒýûï¿©L™2”&M |sžø |K ft­ Ú† eìÐãÿñÇ”3gN*P €”0F¹£¼@Ÿ\¹r ®ÊÇ@rÅð=þ¼” &ŸÛ u 8£[ä tñâE)g” ¦…-ZÔñºs]B9ã/UªT´lÙ2‚VõöÛoÓ€ïôèуêׯO¯¾ú*5jÔˆ2gÎLe ~íÚµKòùðÃÓ]wÝEgΜ¡+W®ÐÕ«WéèÑ£’6:`ûô4wuÏñÀ í˜Ù ¼ÿýw*R¤ˆ`n³ÿF]3fŒý‘ã7ÒA{1¼1Z‚æš%KJ›6­”ó¦M›D»­T©RŒzë®}€G¨0Ù¸q££!ÿ~!láe'®tÖòåËí<þæÆbÕ®]Ûbfqe´¸wµFmñÃbÁ†íÁ,. ‹{2+S¦LòŒ Æâ Àˆƒ?W8ë…^û¥K—J¼+VÈ}ÿþý…ž…w¹À,®„öé§Ÿ Ÿ 2È;uëÖµ¸W¶¸áÊ=òñá‡Z}úô±xu‡U¼xqyÎÐÚ½{·ãyÏ‘#‡Å‚Røróyä‰ Þÿàƒ$ qðmÕ«W—+~W©RŪY³¦ãž…­ÅFâ{ó…¨Å ›¨>Åyî¹ç¬:uêxýî+¯¼bq³òçÏ/ßQ>W|óàÁƒ­C‡IÙŒ5ÊÁû‹/¾rçÃrW>ˆÌBÈÁuã¾ûî³x¥ŒðáÆo½ÿþûò›…Ž”9ê’©k³gÏ–°V­ZI¢n òõüóÏKþ9×¥N:Y,¨$¼Y³fRæ¨ ÎÄÂAx}ùå—Ö¼yóäwÕªUi áÛ ê$Ò-_¾¼ÔüFyª»Àu†;Á ï¡ýêÝ»·¤gê6êÚÈŽk¶wäæµX×—_~Yø¯[·NÂpÏ…:Ç#4Ái#éÓ§·Æ/ñ<µP`²yóf‹;e+]ºt‚9kÂÖÎ;c}¯»Ó¦M“vì"|zÔ_aÈ6©¨Ü3Zo¼ñ†Å½£9sæH˜,¼ÜÏZµj•…± C¢XsçΕüìÝ»×zýõ×¥Bñ¬qá3aÂG÷ÐV×®]-Ö ˜O>ùDÂÀï€ À¦L™"¿! Qàh<¬éÈ3T.îáPÖx¬§žzÊbmGò?tèP Ú€ ŠŠ!i„aƒ ,^9" ¼ÑX¸¶:îÑ ¼¥p†ø†aÆY¨††.u÷Àé¡€Cç Í×1gaìœÿPAh«høƒ6 aBО AȰÓEFMžÚ‡†ÁÄXA£ÅˆŠê—Q¶Lþ=]= ÃÛ Ë–-K<<’?œa·yíµ×ˆµÆñ?bMì:¬:b¬7›l„Ü›9¢Ã> ì‹,€ˆšÁ➃¾ÿþ{‡}Ïñÿ(\¸0¥NZ8p@®<¤£‰':¢Á Œ÷Xº†5ðA9Û±ð«å=®`rå *WîÑåÊ#×Hýœ áa3äEáÍ÷Á®öâ‹/ )'ØãžyæåcÊv7Cyóæ5?c]aŸ4dìq°%‚Xø™ ¹"Ü„ÅpºÞ_W{"k‡bÇ3áö< llâ‰Ì7ºª»æ=ð1„º ØöìÙ“–,Y"NؤM=3ñíWjÄZ±ýQŒßh«hG°?Âa„òƒ“ÇÔo¶à¶mÛ4 wíÃÄ&&hç°Ñ²é…Ø„ 6{Q8Mv|¾þ']|dÁ½8¶mÛ&Æc¶ŸkÄÃæ ‘ØÞõ† pÀß4<¼Ãšôa¸‡Ð‚ðƒ1—‡@Rؘ*¡ÐAÜãJ~‘gð2d±6Co½õ–N]ìäcº3Ù+¹sX4ܡ׷À¹‡áÄ{AÈvòT>pFÀ e'OÞc8' ­]»V~²æ*W{˜qð˜0óŽ«ëc=&Î 8ßœ‰Gâd±Oÿ²§ƒEÿq¥á©îšôÜaÌæâÑA‘@Ýœ?¾0ó^|¯p® ~£Ã†ÂÇê/:•8ر]‘Ø®*Î"Ì ÁÄäÇ”v 羊 „¢?(ÁÂB‚Çñ„Ê‰Ê  Ñ{Á«hz|xßÐ+!‚’ ÄFmi8ö`˜xh-Ø>"Sx˜Jì‘Þ?xQX°¢\ê <ׯfœQn ØÊàì@zˆ gks›!w%m„¡™÷ÁÙ› ûÊÑ 1‡sïã¶eØ û¼Åçßb*Äa+ÏP¿LÝ`$¯{ª»ÀÊ8ÿ¶W¤ ‚s¤‡ïF½~úé§ÅùûŸx“MÞ¯À³ZµjP,¬…7<üˆÇÂSfe˜Y( 89ayj¡ÀR´Qäu‚;CG{• ÇñÏ“ÍÚT Н04/È g*2³Ý`0C Sަ¬oxy„àp.˜÷MÃGèØ]ÕAž—é²þ‡§ºkÒpw…ï‚CÅ8Í3\ѱ»ú.ƒ«sû&ÈDE‰ïw{† v pï"T¬X1ó3ÆÃMü‚J‹!³/•®ÏÝQ1<÷DÖÃ8íŠf†b‡Û8`\ÅO¬ÏàlÀð‹-±æ OåS„±)ÇzÑél“øsEžÊÑU|çgà‹ Çq‘³³ÆÄgÔüŒuõTwcEvzçâ²SÚãÆç·™íüŽ7¸ä§bÅŠÎÙLð½ß„a‚s¢ "ØÏ`›‚ 6._ 6*cïµóàá©ÛŽÂN“@„òÀó@&Q¼£ “$P3í%€©pŠ<úè£öÇú;ððO¦rò L7‘]IHŒLŸ>x¾°+'”"Ÿ+„~³" ÄF ÁSkb³Ô'Š€" D* ¹ÌÖ®ÝËóªîÌú¼"Ô‡ ð¼ÂÀÚ*Cõm‰1]·Þ-&Ñà±jÕAzî¹±TµjnªQ£O²M²o÷Ö«êkáñU'€¯èO‚Nɳ ŠñDßyRþ?<É{¶ïÌôÍ o´+Šå@á9Z²LÇUäh~Ö¤É8^ÝpggâR¥rQ³feèñÇ‹ñ´ ×À LCâíšÂË÷ïßÞÑÎôàÁË´fÍqÚ¸ñ4ßos‡B¼R©4ïáxgËhÿþhú>¬êÁZz'šK:EH4·ëÖíãeI#ä{“&ÅÄkkSR‹å©uë ¼ÁƒïÓE ˆQö¡—/_ç%jxóƒÕÜQç%wÉXb‰\jÙ²< Ü4ʾ8QŽ C{ñwìø/Œß*=¿yn@Ù²ùy(]™×¢–æõÐ1wÂ6qõlÚt×)ÿÌ‚p#ï sKÖ¨Û' ¥N‚~û­/ïí§–£¶Hÿ †ö?õ¼Âpüøv¼ßÛ bØèm„ ›ð¤Ix“Ö¬¼§{[pòäIyƒ‘|&±ë ="äs5›Pa蜖-ˉ÷ö!w4xp^¿­ÃcwøDÒóŒSÓ¬Y/ȈBÏñîd¼1qCWAú,Jp]òQòq¾~´¾ɰə¦UÔªUR¦V8‡é}ä";wfÞݺ®ì,í<)c“&ÿÇÛ¼åŽÜԜlj€ C7U®\„']—ˆ1t‚¦X­Z1Z±b7oŸ>Q—ð¹Á.Ïžý;Ÿ­1‡j×¾?Vöïxï!+PD * =e¿~O˹*ˆÛR™2ùø\Œö|†F^°‡š6ýŒ¡Òµ© Œˆ ¡C nݦò¦´òy,méý÷ÿ[AسgMu”EDI&,“* =àW°àÝÔ¾ý#sçΆöN"Ë—/Ä'•õà“ß.ðABCéÀ3¸hP¸"ïq¯^3èã—Ї6‘ùƒÈkÛ¶•è…“lÃÛ !©ýèr¼8ÊøÂ…«ôôÓ#hÊ”Ž”+WÌmÝOŸ¾Ì§À¡Ã‡Ïò¹Ëèá‡óÅÁMƒÃ+W®óÙÁ_Ñúõ8¯ oÐQ"VÖºt™DO<ñ—¿wç{Çb " tíMiݸqËíܲ«WoÍš5{iäÈÖ:õÂ@C}ëÖ£ù¼–˼쮣[ÇÖ!Ã<¢”(ÐI×Þ³§µÈ©SßE&´ç]nMc̘UÞ°Ô8!B`çÎc¼¾|¨,¹\´¨§[Aˆì© Q!…(ÙàîO¢ t²˜n£{žƒW§Þø£¦Ný•·àú†6,ÃÛø7ã݆tÐã\Z‚ÒÞ°á€ZÁˆå`Ø @Éw>üp1 ö#{ŽŸà¿Ú¾3Ò73:µ&T¥¿ÿi™zƒóT¦Ní¬ç2ûPX;üòËÓiÁ‚MôÑGÍxKµÿó‹¾¢:µ&T!þl܈{PöìSopˆ½’÷\¼xš7ÿ‚~üq;ï(ÔI¡÷ÐiL7¨aÅ 0ÁxŒCÈ¿þúE>«¹7ìÏiÞ¼?‚‘lħ¥Žwö‘£zM›ÖYa$^„æUm†a\p™2¥¡™3_à]WŠÉvTsælãÜú/kЊ1÷Sh0u¦bÅÂþc®œ7¨0tL¸<ÆaTXÃŒuÍ/½4E–…KÞ‘ØKëÕFiÒ¤”©3‰Ñ<\•gÜèÔš¸1 ‹}úÔ“©7}úÌ–©78ôxš±ûM¨SgúöÇ[“­¦·ß®ÏûVUV4]EÀêMö„N¤†•,™S–²!ÿõê %ÇPvÜéÐa ä_dE‰ ÂP”‚¦é-:Lö©‹m›)’žyfïþ²;¨_€©3’ƒ®fÎìÊB¹TPÓ×Äø" Ãäø"ö¿ø¿üò OþÔÇ·ƒ÷še%¡½{3ñGz>h Ÿ?Ÿ’öíËDÅ‹ŸaûàÍ ¥ëkBeË–¥×_Ý××õ½ÈG`ºz“},ÄC‡ñÉv_SµjÕ|ä¼×2e:Á‰%¡“'­à%Ê)åÎ}˜.]²ø/¨ÉÆ;±;wÒÕ«WUƹèzA…a˳_¿~ ä ¯‡†: š~  6Ã0(Í‚" „†¡/Í" „* à4 Š€"zT†¾ 4Š€"¨% !Yøá‡^Ó=z<¹={öðn:3h÷îݼ$ð2,XÊ•+GM›6å)>Úÿ¼4ŸКél‘÷¦mÛ¶-à_·nÜ¿ÿþ›êÖ­Ë[ù·§,Y²ð ”/y'ë7éæÍðŸsp4°D@…aŠåâÅ‹tþüyº}û6íÚµ‹Î;')_»v¶nÝJÇŽsääĉ„øv:uê”hYæ´¯íÛ·Ëü8ó WÌ—ƒÐ»pá÷ñãÇíÁòûÊ•+ ‚ iCPú÷ßéìÙ³r{ðàAÚ±cá™!¬5¾~ýº|žÙïoܸAƒ¦¢E‹ŠðkÙ²%ùù¯I~[äúõëiÉ’% ߃¼‚‰gv:yò¤äù5„¼˜o:|ø°üÆ=Ò6„ßx¦‚× ¢WoÐa²7(ù!Δ)SxIÜ &BØ%I’DÅÊ•+EH"‰Î;SóæÍéÝwߥäÉ“ÓСC%eQ<ïÖ­=ðÀÔ§O‡°Ë–-}üñÇ”7o^Ú¼y3½õÖ[|Àá_¸pa‚@ûî»ïb|øB˜B C Ah<ùä“2éš„׃>(‚aà=dÈ>sånÚ¸q#½úꫲú¦téÒ1î!€!HûöíKwÝód» М9sè§Ÿ~±S§N|lAKÞíº‰ämþüù´hÑ"š:uª_¤‡¡}²dÉDàBÃDüðî7e²;°{饗hÔ¨QÔ½{wÞ-ûiáõý÷ßó‘ªÃdR<´R%EÀT3ô%?ÅæƒÆ?wî\*S¦ ¯þ–·ìoÀ›*,äƒâ•+’ªY³&mٲš=®^½Z„[õêÕy‹®I"” 8°‚BkРA¼¹MŸ>]âíÓUö!$a?„¦†eh˜k×®uD…E¾ Ä¡¥Ž=ZÂräÈ!‚Wýšyp&hŒGƽiðYºt)a24ò÷Ê+¯Ð˜1cD£6|÷íÛ'F:u¨T©RÁh¿¯ Bƒˆ^½A@…¡7(ù)NöìÙù(ÌF¼µV&iÀ)R¤§BÚ´i kcÍP‚ŽA4ÊGy„2fÌH¹råÇ4FhE]ºtáõÇ{ehíé ´=w”?~ªQ£†¤ƒx÷Þ{¯h–&~Û¶m)eÊ”>›6m’ ð…k„¡ýÃräï¹"DüÅEË–-Á ü×_ñšê”*U*Â0Û´ÃÊ•+óºçÔ1:h§Èëã?n¢êUð &{“"Ù5 ÿ Ó¤I‹9„¼¯Ðp°öÃ_PëÖ­eˆ ­pìØ±¢%"Ìh%J”pðƒPtG9s挄¼0¿!'l¢°×9óÇ»pª¸zŽ0RC0#`øs€¡téÒŤðPªZµª˜Ðy@cˆ^¥J¬WEÀ+T3ô &ÿDòF+2)a¨ !ˆ¡*´ŸJ•*IÐï¿ÿη>+CmxhaÇÃ2sæÌ~æÌái:Ø~œ>}ÚqAÍÒ.í|àdñ$X #Ø!ŒfÏžm‰Û«W/ùhyõë×—0`aw̘!6¡BS†À7Ò»Û‚²bÅŠÒy@‹6£#úCð†^€Š(hÜŽ?^„€qH,^¼˜FŒ!žW u3dÈ ñ0”„F9yòdñÿùçŸbKt—w8P`—ƒÆ7nÜ8±9–/_ÞéÂà á²aêP¡‚„ÁÖ8|øp:räH¬{ ™aãdäÈ‘2ÄE¾¡ÂÉ[¢h¹sçá‰íÐì6?|;ÒÄ3äß§òãŽÐyÀ¹ƒ÷jÕªå.š>WÜ" Ãd·Ðø7š´&Cøí|oÂp…à€cÆ<ªï½÷5kÖL<ÎðôBóÂp»wïÞí é+VL‘y×®™b¸ ¡v‰÷ׂf\É’%iÍš5Â|G ÙÛµk'ÏႃCS?çûž={ŠãbÚ´i14ÄB… ‰p„ lذ¡ä¿ÿþ¼vÑ:a5Úa«V­hÿþýdv‚mñ`€ðtEx?}úô¢EÃy¢¤ÄÝÜ5¾ˆý/þ¬Y³¤A/_¾ÜGq¿ç4hivºuë–¬&Éš5«8>ìa˜c‡yƒpˆ@³‚ÀsžZ/-lrF˜ª’'O‚ÀAB ƒÖÛ†èfnO'®ßðnC‹Ä4MØKÁù3¿!LîŠ0ÏÃyä‚ÎÁVÙ¢E ™¶Ó¦MOQc…há ,ˆ¦ º¹k85´2 ù0$Æ<:g‚óåþûïw~,÷Ð(¡…yCàcwD8¿ãÎÙáÏÕ=æI:óvöð"¯î!xÞsÏ=ò犿ý: ÌÄÚØ$íáú[ð&{ƒRã@[ÂD bÿ‚Ceg‚½«H\ìŽÅ‹w¶Ï 1|0`€OZlØ~˜f,¨è0ÙG¸ƒ1Lö1kúZ<Ðar<‹ÎèzTht–«~•" ÄÿÜ›ñ}Sã+Š€"E¨0Œ¢ÂÔOQßPŠïØÉ›f.\Ùèë!D›Þbž¢RâF@…¡å¹ofû)Yèka‚¦ð`ùŸRâF@½É‰»üõëEàêMÖš (ŠPŠÖE@P†Z E@`Tj5PE€øâ ²ìü«5IEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1MultiStatementsOption-members.html000755 000765 000024 00000015335 13515046516 030605 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::MultiStatementsOption Member List

This is the complete list of members for mysqlpp::MultiStatementsOption, including all inherited members.

arg_mysqlpp::DataOption< T >protected
ArgType typedefmysqlpp::DataOption< T >
DataOption(const T &arg)mysqlpp::DataOption< T >inlineprotected
err_api_limit enum valuemysqlpp::Option
err_api_reject enum valuemysqlpp::Option
err_connected enum valuemysqlpp::Option
err_disconnected enum valuemysqlpp::Option
err_NONE enum valuemysqlpp::Option
Error enum namemysqlpp::Option
set(DBDriver *dbd)=0mysqlpp::Optionpure virtual
~Option()mysqlpp::Optioninlinevirtual
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1TooOld__coll__graph.png000644 000765 000024 00000016723 13515046516 026331 0ustar00tangentstaff000000 000000 ‰PNG  IHDRØ{¨N­sRGB®ÎéIDATxí˜ÕÀ¡(*˜ ¨ *Š­ˆÝ¢(‚ vJÙ¶`‹b ¶‚Ý m¨  ó?¿ó÷¾ovvÞÛ·Ë[˜y{Ï÷í›™›çž{OÞ;³Õ‚  <<*…Õ”Á‚JiÙ7ê)à) Õ= <<*žÁ*¶¾eO¯Áüð¨L Ô¬ÌÆ—¤í ÈŸþ¹$MøºU„µjÕ’UW]5‘£M,ƒÍš5KÆŒ“H¢y¤’E5×\Sš6mš,¤þÃ&± ~5jÔÝvÛ-‘„óH%ƒáÅ‹'™,|#†(>ÉS Pð V(Júv<b(à,†(>ÉS Pð V(Júv<b(à,†(>ÉS P¨ 6þ|™3gNVš½óÎ;rÀdÍOSµÛn»MZ¶l)_}õU¥¡>sæLY¸p¡µß·o_9÷Üs+­¯47\%ìÔSO•öíÛg§éÓ§Ë{ï½—5?M£F’‹.ºHvÞygÙ`ƒ * õµÖZKž}öYkŸCýõW¥õ•憋ŽÁ¾øâ ùðÃeÞ¼y6/üñ‡Ý£Å~ùå—Ì\±((K~ÈûçŸ,™— Xa ,Z–Ó+Ÿ|ò‰õ¸§o‡—K_Áqܸq–„PátýÍ;7SlöìÙ¼\›Ôûî»ïdĈ%ÊR |†*£Gδ1iÒ$.¿ýö›•ïСƒÜpà ™|Úûæ›oäµ×^“É“'gÒóé/S¸Xnx]%‰ “è"͵¯¿þ:Øh£‚ÚµkÕªU Ö_ý@7!ƒ3Ï<Óžu¾‚wÜÑÚS“0XmµÕxMÇò¶Ùf›`å•WÎôµúê«[=† bå†P:ºh3e·ÝvÛàÊ+¯´gÕÁ>ûìèÑ@7É­ì<`yºÈ5Û,M~P³fÍ W¯^™v6ÝtÓàÀ4ýôSQ©+[l±…Å:òÈ#K”ëÚµ«¨T·4•öÖfƒ J”ÉöpòÉ'K‹-¤~ýúÒ¶m[a¡'œp‚á‡ùôꫯs;“еà…p á›9f³Œ?Hw˜\Xä˜I@®¨ f"<|³\Û 9º5œaP=¦© ­çªCtZo½õDƒ"Ædà€Pp¡ÆV3/õ0ѺÏ?ÿ¼åA+í]¡hìòË/—/¿üÒ$%Ò‡Ðèœåíµ×^¦" Á¶ÞzkÙo¿ýÌ÷KÕ|0ã3À°½{÷¶À ¦Î)§œ"Hr| |¾-·ÜRœÖrW·hÓµ ÓjtNVYeiÖ¬™ì¿ÿþÆè.˜B]WÖÕ§ŒFâlQà¨Àìá[}öÙ¶¡í'Ü.xð‡¶íß¿¿Œ;ÖÞµ:âˆ#Ì„€C=T®¹æ6aÜaÈÍ7ßÜüOÚ@h$UðeãÀõ—W i‰ýªÁdyÞÃßa‰ƒs²Ý$±7Eä‹à‹`þ0ñ8øåöÎÐ<¹"zqí}6nÜX4ôm{fhUð´ã`Oëꫯ¶"ø8q~™¼Ù»á†–j -‹  T^À &PÓ@ƒ´æˆÚ, ø¸h7Ɔ5£U¸÷Á’úÂeQ1XeMâ²hÓZ¶ðó\`€íˆ°ÿÆ æ"Œ^• é V4QÄb[Tø<øMø2޹£ÓdÅ6ÞbO•f06| ést‰ €Miü–¨9TèÀf7QÁk¯½6¶i|lZ³§‡æ oغ|w}ôÑGåé§Ÿv¥®\pì»ï¾¥ÒIÀħ*IÛP$WO”˜ßɪU–ÁðvÙeÛ;;ï¼ó,¬ïNR°Éšo´­¢«„p"ùAöôâ6ÎÃõñ‡\0³’¨a»ví,tN9‚?Ù€ýÁð^U¶råM' «G¸Ê[­hÊW # uĉ0âø£\ø`§8Èc/å0×Fy$òåÒaŽþÐABÛÇ„è—( Ûlãðó!Ÿ(„Ð3†¦Aa ÑõCÃqPíJdŽ}1q8‘ïʼôÒKÆ`hÈ&Mš¸je^ÙŽ"aÓ”Šq}ºÁšà€n.˜äò£W>Š–Þ±ÇòõTÞþÑÖuÑf44h?špàö´ÓN+•®º`РAFë,O™Í¬ªv°¯ªõ"Z^®Ã½€Õ…pˆ×üUó,ÐÈ Õ¥ uÛ}®C·´£ èB 4’W&NV@u8 ›p —ƒËÔ¡?ÁSO=•©š‹ÊVf´ƒÊÔãÀðÛo¿muõ„MÀaê(0.5ëñ«@L4;ïgÆ—äþHœDBE bŸþùv \7šÝ  Ôä+1FÚf!é~V‰ôèÃûï¿oå~øaËÒ â@7©ƒÎ;Û3 ÆbÒý°@_[ ôpo ÒÛòX@ôÁIvÝŒ T“س†¯-?ŽÁtß+Ðí;µÐW@¬l§Nݯ³û²p²BúSSÔNàëk1¶øyã@_W rõ sÀøz˜ÚÆÉ3÷ªÉ„\6SmwÜq†ðÝ€·ùù 7F®Ig°¢ØhÆDëׯŸ½dÈÆ/GŸx? ³‹ߘ[a`)àD~ˉ'žhÅño8LÝA¶Ã½äo¼ñÆB`óT™ÒªÄUrmås6œ\{å½â¯ñ&4Çšxi“},Žuåê“Í}eHQ!`ãdïœsα3‰lRgÎ+âW2GŒ? z×]w•Gy$ï2ÙÚOJzQ0/Nr‡š3‰*qms–ã_м7ß|³T6'Ü>úháô:§Að¹Â'¨„ý6TÝá^çáƒlÜfƒpyÚŠ+›NÙÚ/+]ß—Ëq~¾d®>Éœ¿Ê½Û8Ó‰ô8@€qÆö*û~œ:á~¶½¾¸6’œV p|‰sr}"ä¬þCÎרõAQ?Áá âxÑ7œ|Nj0áj‰dŠàȇ®º€G¦@è&W^¨Xæ6ÌÈ™ÄÈM>8Eªäýˆ&rÀ10€±æêÓf ð…F€šŽvÍõéBù­[·–ƒ:Èêp4-©'3r%.¯(ŒC½¼ÚAx=L3L$)WµÓKýŽ;î°Ã¨0$æ ’X}-3éxž7α(6w1—h›}(öÊ–, NêÚÆu6ÜùXšÁÄFÈ`¶åêÍ9<0‚Nœ>á°p®£Y”=ýôÓ­.g$y-†cnÌ!Ï•y¼*Ûø+%=ì0&é¾¢A7^Ñ×öö™=õî’K\_|ñEû´€ÖªA55ͱwùQ5 Tæ ô–MP ü:>ýixÚòÔ‡ d8Ð…g}¨dIä \QÃàöÌA õïì™Ï¸  ¹p² úã‚|6Á]¼î±Ä•(b+}Õ_ýEÓO.„ƒC¹úÔýC T@Gh¨¾j ¾›µOƒèdDAHúJK4;ïç¤9ªÄYDö™²Ì àÁÁTNuàw¸W\ÂÒ -FpÍö“Âe–ö}Epâó|ÀGwVtùÈ ö£&k®> 4a)°wG0(Z7Ú!å_Í+ÏsÒÏ"V +Ï„sY¾ÙÁ»on3¼Æšt«[éŰŒ 3ŽgyXº(Š ÇÒ%™ïÍS  xËŸV¾¤§@¹)à¬Ü$ó<ò§€g°üiµÌK.ÐHç=íà!=Htƒ£BYòð LWZÌÔSþûZ–§Ëÿ)À§â’ ‰e0>DS,Çe 5ùoÜz«ÌÑ÷Òé7kåxy²Pý¥¥l{œIÀ?± Ñ’,™–öäÍÓ7°§êÉu=)3ôÈV³JúŒöÒW±÷ç}°”ÌðX}C¹:oCW«&ßþ÷¹R‚z•FÓ3XJ¦¦ xÕE5Ø}ßm®~VÀCò)à,ùs$³ô5’iú⣞€5l«ë·,Æ”Ì=ŠžÁR°ƾø¢ÀTý`Ì(ýWB’OÏ`ÉŸ#c¦ÅÊTÐcÓõuü™ú€‡dSÀ3X²çG¦ñ£~¶- Õõ;cT³yH6<ƒ%{~Ìת¡Ì…ÅúÍEMŒR%yÏžÁ’7'%0úVßßZ¤Ì³õ3SõÉ¥€g°äÎLÑoTÌÓÿÑœ ÌLÔOËyH.<ƒ%wndŒ2OœyèPÆL­ÿ}…½1ɤ€g°d΋m*Ö F6óС=_ÿçóä>rþš0 xKØ„8t&é§äëÇzj,¿|æ½0ŽK…Ójê™Í‰¯¿îªùkÂ(ØÞ$ŒN‰@g„þ°‰ú5âúÏù<¤ƒ^ƒ¥cž<–)¥€g°”NœG;ð –ŽyòX¦”žÁR:qítPÀ3X:æÉc™R xKéÄy´ÓAÏ`é˜'eJ)à,¥çÑN<ƒ¥cž<–)¥€g°”NœG;ð –ŽyòX¦”žÁR:qítPÀ3X:æÉc™R xKéÄy´ÓAÏ`é˜'eJ)à,¥çÑN<ƒ¥cž<–)¥€g°”NœG;ð –ŽyòX¦”žÁR:qítPÀ3X:æÉc™R xKéÄy´ÓAÏ`é˜'eJ)à,¥çÑN<ƒ¥cž<–)¥€g°”NœG;ð –ŽyòX¦”žÁR:qítPÀ3X:æÉc™R xKéÄy´ÓAÏ`é˜'eJ)à,¥çÑN<ƒ¥cž<–)¥@©ÿpù‘þ¿ßÛn»-¥Ã)n´ëO™"ufÍ’±M›÷@S:ºÝvÛMÎ9çœØ×,ñ¤“'O–gŸ}VöØch–^Ƙ¶Ür"k®)2mÚ2ÆÄw¥À¨Q£dyýÚe2˜«ØµkWw믞žePફ®Š-á}°X²øDOÂPÀ3Xaèè[ñˆ¥€g°X²øDOÂPÀ3Xaèè[ñˆ¥@©(bl©'¾õÖ[2fÌ9ï¼ó* Ëo¼Qþøã¬íwïÞÝ"HY äȘ?¾ôë×OˆBýüóϲîºëÊf›m&'Ÿ|²¬±ÆV³¬1žþùÒ¹sgÙ|óÍsô”=kРA2tèPùá‡då•W–-·ÜRN=õTYgu²W*@Μ9s¤[·nrÌ1ÇȶÛn›³ÅÅ‹ËsÏ='o¿ý¶\|ñÅÒ¨Q£ØòSt+ãÎ;ïŒÍ#±qãÆFÛ¬ œ‘z ƶ‹³2aíµ×–õÖ[Ïþ~ûí7;vlæ™ôŠÂŒ3äÜsÏ•—^zÉ5L²ýöÛËðáÃåŒ3ΰOÛeñ믿–Yº?V¸é¦›äŽ;îúõ듲—C{gžyfN¡R‘¾¢u,X Ÿ~úi^ýÀü÷Þ{¯ÑiM¶*²¡r7W\?ûì3™={v&­nݺYjVNòk°…  …AOÓý™¿þúK6ÞxcAâüôÓOBþ&›l"5kÖ”©S§ÊŠ+®(«®ºjf4¿ÿþ»¥Õ®]ÛÒÆ/ÿüóµAY´ûÝwßÉl µjÕ²•°óæÍ“ d…V0­¶Új«YyÚ M$&ZaÒ¤I2wî\ÙtÓMe9ö–¨® Ä¢b’`Gh9s¦Ÿ‰?à€äÒK/•?þX®¾újiÖ¬™Œ=ÚmßrË-&¾øâ 3=n¿ývKô9ÜOø¦¥Ýo¾ùÆ&?þx9å”S¬Ø£>*ü!@(‹ù“²@ßxã Ã$ï‘G)O<ñ„Õ ç± ¯¸â ée™…˜Ï,2´nß¾}ÃMÉàÁƒ!D_a@ BÀØ®½öZa^XàÎó6Ûlc8B[Òa"˜a»í¶4£[»ì²‹|øá‡–W§NéÓ§O¬``1'ôG{´uÑEIÆ åúë¯7\0]©À̆“Ìóçþûï7f>øàƒ<Àͳz™Å f"b»s"9Ò0`À1XÐHê}öÙLjï½÷ž1Ìž{î)=ö˜-ôW_}ÕÚAÓ`:Á$7Üpƒi›þýû[9W?nt0ìÍ7ß4Æ‚ GŒ‘) ã²àX¼,ÖxÀòІ0»ÓŠÑçL‘˜Mýä“OÊË/¿,—\r‰µýå—_ÐR08c¡O|:ÚœE‚OŽq~ùå—ÙŒ‡þXpÏ<óŒ ¢ôq¡}ðã0õ  c‹ZmƒÐ‹‚À±gÏžÒTg1>æ!Aš ýÃ;ÌhÞ¡C3Ë0¥P?H{ï¾û®Ë*u…){÷î-¬p OúFÐ[N¥Î’°÷Þ{›éÕ«—´mÛÖ¬è[((ƒp 6Ù;á†D@]»gÞªU+3¿`,_£eË–‚TCjc‚ÀDh¶»ï¾ÛL— &u?üpq¾Z)4hÐ@öÚk/ë‡røøXHfú#ßi]žñ{ƒEŸ]ýè•Å‚ B?mb.¡ßÿ}ÓjûåÑæ®»îjy˜7€3í!ôƒß`®†MMñ•0½ÂŒÃX¸°P`>$2LÍ‚E¸E ¹™  ?ÂàÐC5FD·iÓF¦OŸnŒE]Æ~ÔQGY>å˜×Úœq6oÞÜÜ„L6À<†±1§9®W6œ²µMÇz@ Às« à ‘h½|ŸK‹®|kFʹˆ¶7Àbœ¿ÁDÂH;ì°ƒ¼óÎ;F<„;bƒ²¨Ð‚=ô1'yN[af:€Ñ²Q¸0`¹6Hw Ä=yn!ó\^`²ÐðåÂ-hM‚´ 3‰Ësô‰[@´åÌkWŽ4Ì&¬‚!hßÌE´³}ûö‚ qsáò£WÌ14=‘LçS¹2hf4›ë?lƺ@£tt€@«¯¾º»5áÎËdüwn AȘ£€¯äÂ)Z§¬gÂ?L^ܢǘ§Îš(«¸ü’â1®DžiŽ‘Ê*Ž$…±0Ópv‘²ÑÆÀ»í÷àƒŠ›œp˜[?°àà3 íÂLn‡Åš‹Y];Ù®0 ‡Üš ‡œva&¢_a-HcÇ<ÄÂl Ñ5ŒÐuxáÃ0,„p.ð@}LQ4$æ* †ö"p X8,`h?þ¸Íœi0Àѵ¬¹/+ßµË5Ÿ²ùàn3Ÿ{Ö Û!\p\~ùå66"¼XDKc°|‘Øyç-ÊÇÞ&€“x¯½öš™2,E4‰h ÍÇ„ùÃFÇÏLþ!CLƒàëàÃ93•:ôK;˜§,bÌ;?â®»îʘ$Ñg+óC}L^´2ŒÂ^ €9L¿h1×'¾(¾YëÖ­­ ;æûX„LÇ„IŒôçdß AóÔSOeŠ`n#y±0µð׈Âxq~9´/Á$ö—Àsšþ¡9x¢%XÐ0+ÂÚA˜Ói· Ké¦81&ü;=쟥¾ï¾ûÌŠÂvžŠ­`&bY8ÉCÁXL>‹ÀÁqÇgþ Óó…üÊ+¯´¼C9Ä$’Â8pm󌉣±CÚ³Hq’ñ‡L2ÚAû`®žtÒI–c£=wß}w[8Ñg+¤?á¾H£}˜±k×®–îàÍâãˆ"‹FÀ4" ã¢v-Z´Âðqœ˜d|аùçú%|NÀs€‰Da€! ç±ÇkŒK`aÃØÂ€F¼îºëlÁ˜è¼ П  AðÀç" ð6]Ù®”wcÉvuuÃe]WÆ› §pYîsámjàs!£´Œ¶UÞçR/\"ýŽ>úh6lXyÛÊ»<‹ídæ ael|4pù8›˜^¤£-`"˜4 L:&‹¢±P]Ø#œŽvCRc¢9ó3ÜFEî1‰ö!ݨöJ=|ܳõ Nøìke+ãpƒQ‹!J'W&z…~ÎZˆæñŒŸŠFÄìs&X¸õalè†àȵhÃõ*ó¾8•E—|ñ'^ÀÜ#LÃP3üPÙ÷,2¢k˜ƒgŸ}v©î¨„€ã€ÅÁþL>@;løfƒh $[¹|Ó‘´¹Ì%Ì-þr~Y¾þ ‹»¡:ßå\ÌE;0u.Ʀ~8¨Pž¾+«l!p*‹.KŠûRe0Ì.öC0›\èº" °·„ô'@,ð&MšÄeù4OJ£À21+m4¾aOeDl&bõe„ïÖS JPÀ3X•˜f?ÈeEÏ`ËŠò¾ß*A¬AöuXÅiçkz ”IÏ`e’Èð¨8<ƒUœv¾¦§@™ð V&‰|OŠSàÚ§‡“+¿öIEND®B`‚mysql++-3.2.5/doc/html/refman/utility_8h_source.html000755 000765 000024 00000023742 13515046516 023171 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: utility.h Source File
MySQL++  3.2.5
utility.h
Go to the documentation of this file.
1 
8 /***********************************************************************
9  Copyright (c) 2009 by Warren Young. Others may also hold copyrights
10  on code in this file. See the CREDITS.txt file in the top directory
11  of the distribution for details.
12 
13  This file is part of MySQL++.
14 
15  MySQL++ is free software; you can redistribute it and/or modify it
16  under the terms of the GNU Lesser General Public License as published
17  by the Free Software Foundation; either version 2.1 of the License, or
18  (at your option) any later version.
19 
20  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
21  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
22  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
23  License for more details.
24 
25  You should have received a copy of the GNU Lesser General Public
26  License along with MySQL++; if not, write to the Free Software
27  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
28  USA
29 ***********************************************************************/
30 
31 #if !defined(MYSQLPP_UTILITY_H)
32 #define MYSQLPP_UTILITY_H
33 
34 #include "common.h"
35 
36 #include <cctype>
37 #include <cstring>
38 #include <string>
39 
40 namespace mysqlpp {
42  namespace internal {
44  void MYSQLPP_EXPORT str_to_lwr(std::string& s);
45 
48  void MYSQLPP_EXPORT str_to_lwr(std::string& ls, const char* mcs);
49  } // end namespace mysqlpp::internal
50 } // end namespace mysqlpp
51 
52 #endif // !defined(MYSQLPP_UTILITY_H)
void str_to_lwr(std::string &s)
Lowercase a C++ string in place.
Definition: utility.cpp:30
This file includes top-level definitions for use both internal to the library, and outside it....
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1TooOld.html000755 000765 000024 00000012420 13515046516 024012 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::TooOld< ConnInfoT > Class Template Reference
MySQL++  3.2.5
mysqlpp::TooOld< ConnInfoT > Class Template Reference

Functor to test whether a given ConnectionInfo object is "too old". More...

Inheritance diagram for mysqlpp::TooOld< ConnInfoT >:
Collaboration diagram for mysqlpp::TooOld< ConnInfoT >:

Detailed Description

template<typename ConnInfoT>
class mysqlpp::TooOld< ConnInfoT >

Functor to test whether a given ConnectionInfo object is "too old".


The documentation for this class was generated from the following file:
  • cpool.cpp
mysql++-3.2.5/doc/html/refman/inherit_graph_33.png000644 000765 000024 00000006252 13515046516 022451 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÊ$È+¥ZsRGB®Îé dIDATxíœ °ŽÕÀ²¥d´Ð:²g©!•¥I“ÄŒe$1ÉÒLŒ%ÊHÚ4Å´Ð1)KÍ ²µ)5vm*­–²¶)çÿüžç÷¾÷û¾û¹ÿÛÿžgæ~ïyÏúœç<ûy)æ$@ @ @& ,-ž©5´  ü—AP' dA (Y)t ‚x P ”HöYµj•<öØcÉêð(Pd(0}út9å”Srì7—EÙ±c‡¼üòË9:…—@¢@Ÿ~úÉxÿÏ?ÿ̵Ý\Å÷˜3gŽ/†g @‘ ÀÒ¥KåÚk¯M¹×\%e¯P(PÄ)¥ˆ3@Ø~v‚’B¯"N (EœÂö³£À¿^Pf̘!wÜqGv»-@¯ƒÊСC墋.’J•*IçÎ…4bª I–)ðЫ¯¾ZV¯^ÍCùÆo” .¸@*V¬(Í›7—×_=j/Œ…_~ù%¢ë³Ï>+ øŸ£ù¯”Í›7Ëûï¿Ü ùðÃË”)Säšk®‘|И®wïÞÒ¿ÿã¾öÑ,ðöÛoË®]»lÈ«¯¾*W]u•|÷Ýw2lØ0|XÚ´i#/½ôÒÑL{Bû"ÐþŠâ?þß~ûí„®Ÿr1¾Žƒ¦…ùš8^•±üûï¿»mÛ¶¹¿þúËmݺÕmܸÑúÿý÷ßnÓ¦MN5šS­kuß|óÛ³gOŽùôÞÆ©‰êÖ¬Yã”ñjð¨ŽÂÜÊ•+ÝîݻݡC‡Ü×_mí#GŽt 4°ò¾}ûÜÞ½{m½÷Þ{Ï©Y=?Jp÷ã?ÚûgŸ}æ>øà«óŽ9â~ýõWÞ@üúÓO?Ý=ðÀ¾»=UH\¹rå¬/Ѐý®X±"Ú³þo½õ–µíß¿ßW牕¹Ý† ´a8€'ûüâ‹/¬ºX±bnÑ¢EN™Ë©qÍš5˱OÆ_|ñÅ®jÕªÑ4ì™ù.\è¶oßÕû³¥ý«¯¾rД}xà,¡)´ýè£ìì“øq&œ›?/?–'mš’uŸ|òIT œtÒIîÑGµµàÎÜC~qõã3=—,Yb¼ÿóÏ?'»-É%G+(z“o“«É·'BÆáh>:zoÚ´©1ÎW\áZ¶l!±sçN#ÊSO=eU¹rewê©§:ûüóÏw04 ZÒU¨PÁ/^Üú7jÔÈéÍ©µÅ¥[·n®víÚÆÔ¥J•²õo½õVë·`Á{W×Ãù6ú"¨î0sòÃâð®¿þzc@ë ?àÿî»ïš p˜W^y¥ÍQºti iÓ¦Y×wÞyÇ©–4œË”)ãÎ:ë,·|ùrkË /„<Á­D‰îì³ÏvЀQ¡-mü]vÙeöDPÔ½²2‡Ÿ˜þµ×^3¼a ÎÚz5ʆø³mß¾½íŸ5ÀÝ ¥Z(íFQ{ëÖ­#Å¡n±+[¶¬+Y²¤áBŠ X¡ÊäŒ3ΰ³à¼«U«æ¶lÙbtbðQ+îXƒó ‚«MÇO&A9f®×i§f&þñÇeÁd~ûí·2kÖ,Qí-Ÿ~ú©Ü|óÍ¢L#Ê`J ‘ùóç‹Dºté"cÇŽ5?ZµŒ#˜|¸Ñá–[nehÁ÷fª0¤{÷îÖf‹éO:¼ØûÉ'Ÿlóª%’ÆK×®]Qp¶7Ö›7ož¨%°9ü|ì¸ä’K|UôT¦”n¸A<Þœ (#ÊÔ©Såþûïe䨿ZQE ¸uœ+ëy`ýÛo¿Ýè=zôhyóÍ7E­‡(ÓK¯^½÷”±ôS«es3ûRÁ¶³PODXC­ˆ­*yá…ì<ü:<¡qApÏuÔå¤å×¢`z´"áÐ&æ•w 3¡h—I“&Y[«V­œ˜••©Ú÷fýúõfpÙ>üðC?wî\ëÇϽ÷Þ›Ö¢Ô«W/êG­ä5·XÔΚX®l×ã®»î2Ëvg_=zô°á¸9}ûö¦Ò¸À=÷Üsfqè·xñâ¨Í[/ö™ /\ZÆb5q»øS%`uì£E‹nŠæÅÅ¡?eâĉVV¥µ§*€··º¾7“5½EÁô€·pÛm·Ù+t»p¸a¬ÿÆo¸GyÄÊX;– ·ÏÏ <€» ™½BÛ™3gFkx‹R\ý:™ž™,JÚOXtÃGêX´ æØžh-@5µ¦_yå騱£i-, cš‹4bij./¾øbd}š4ibýøñZ?ªˆôàbobÀ[0ªT©µ4úÀ7ªLQÀr ! ŒÕ½²X5²`Ï?ÿ¼iTæš5kF£Ï=÷\Q!Š‚Ò† FmçœsŽ•Ñ´Rá¥þº5cYYǃ ·…Sæ’ñãÇûj©_¿~T®U«–••iÍzE ZP†0Ë1]³và}饗ƛ…³Œã<`Ý4Nð¯–Ôð/ªè¬H»ÇËpÇúqzae3ÆbÆ5Óüyµ3× *ÀýÒ8À2H˜‹Â8O}c3½ª‚"0þ`V˜êtðý÷ßGM„˺uërV¼]-D޶h`¢@?Õ¤æöù&\ÃÚ+BƒK†[àA-¡ôéÓÇê©Ó$‡oö\xá…öä'^0aÂácUþ‹‹R·n])_¾¼hÂÄúðC*Ø.—Æb¢ÖÅWEOÕöæ*iü`øÅqÓD‰í3®Œ2­W„ÑäÿP¬M<îj=Íņv@œ^¸Ëêiü3:÷ qApÍ=kö5ÙqwöóåÙߟÿž{î‘N:‰×B>_N\S§N³>$ZÃ[àç>óÌ3iב°RÄ ÷„GýÕm³yH?ªé—¶mÛZ±ùz,GH`JümÍÐØœÄ÷ÝwŸhÖKÔ5:éXüwyРAæÏSÀ4Ä4ü±­…À?'Vð /¬#ñÄOؾ?ÿüs³RÄ>š00%Ú³g϶øí¡‡òÓٚИ40 ¦äx‚}ƒÀþ‰Õµµ}aÑΦ À¼šö…Õ&¾ãÔµ½“‘f'ð¹óÎ;Í‹`MuφÉ;ªã…kVûLúlùQ”Ám*eóM}f†T¨"b¾¸_ Ÿ˜:ÒÀÈ áƒª†²LˆjDKáÒN¿™1ªYœºa9bul²^dO|_²8Ê<ÖæcÆ2~0ñ‘OCã/S¯ÖÎú'ßñ_ÕXúk‘Åó~5(Ÿùcøò>;Ä\gžyf„õêÕ£”h^xǰ&ЈÔ6@ü¡‚µ‘•#kHŒVÖû“(ëÄxxç³qô!s§.e„;UZ4E±„?[ê®»îº(¦2dˆÅkÔd´XïÿôÓO;æó¸“ õéeÎ[-‹µ‘bÇIšÜ±zÎŽ5Ø#P\m‚<~2Å(Ä9àh%Çà,_T›YP—ìÎÁÔ!lIà^€\?‚ÇAûôp¼‚BÀÈ<Üçß÷à’6Òy¹~\üÉX‚hpôo§ S¥šüÕÚÙw²ÁËïgíÚµ¶7?–'s©¥JI3ß{'Æ’jޝíÛ¹‹!eLÐÎѱ’9(ÍTgÊ‹ZIÇ}MH øû·xÛñÄ5“ ³`^µFž€[³lÙ2ÁÍÂïN‰€tA.ZªTgrÞ™G³+©š¬.ð§í˜h`^>aɸ©ü“As²_:¼2íß÷,àÂ’^OÄq70]¿üÔsmpùå—§ªwSâ“É>ŽIÖO\“kÅßO¨ ¨9¶» îò øøþI ‹BŸ ȸ‘9ƒÐ… +^…‰F…—b˜µ8"¹|𗨎w å@ÿK h,iÿ‘‹Woã{ ÿ^œ¡(Ž'<=œ‘P(P˜)¥0ŸNÀ­ÐP m0Oœ P (Q€/,ÒA.‹¢Z¾•M·X¨(Ì %Í |z“„\Y¯d‡ð(( !ë˜ P  är½²ú 5 A)j'ö›/ AÉÙ ¢FÿPmŒá’±IEND®B`‚mysql++-3.2.5/doc/html/refman/inherit_graph_27.png000644 000765 000024 00000011036 13515046516 022450 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÊ1›06rsRGB®ÎéØIDATx휌%E†ëŽÃÝw‚»]ðàîN„w÷ùÃ%8Á]‚»»ûîîÚÔW¡†~³oæÍÛ}ûvÙëJfßÌ´WwuUý]³ý‚’$JH(å@ÿÒÔ”˜88`H‚’Bâ@$A©À¤”%q JZ‰U8€3ÓUW]…sŸ®Äƒ‘v ,´ÐB±HØý€"aR)JJïú,.½ôRùøã;Œ¯PP6Ø`ƒ™Ó‹Ä¾Î§Ÿ~º® $¥¯Ï|_K8¥%lL•ôu$Aéë3œÆ×$Ai S%}ÿ{A¹ä’Kd—]véöyÚl³ÍdÕUW­¹¶Ûn;¹ñÆ+·}Ï=÷Èšk®)ÇsLVæÌ3Ï”e–YF&šh"™a†„vÞ{ï½,½»nþüóOùúë¯;]ý AƒÇø‰y³ÞzëÉ…^(ßÿ}¥ú,×\sMü]ísÃJ2üïå7ÞG}´dˆ­Iº÷Þ{åË/¿”¹æšË®YgU^|ñEY{íµåÜsÏ­ÔÈÎ;ï,ß|ó¬°Â –Ûm·•vÚÉä„NuÖYGxàYtÑEå“O>©Tgg3Ý|óÍ2ñÄËüÑ©*èç_|aeïºë.ùöÛo3ÞŒ1ƶy!ºx²wÏ<óLÐ…~üñÇì7?üðCxä‘G‚.ÖðÓO?…#FXúæŸ~»ÿî»ï‚N˜µ÷ðÃ"{ÏŸß~û-|úé§öüÚk¯…Ç{ÌÞy†¿ÿþ;è„ú 埧˜bаçž{zvû¥=]laùå—¯yÿþûz(îôù矇ñÇ?}ôÑAwÚpß}÷Ùž ˆg±ß^x!Œ2Ê(aŸ}öÉÞ3öûï¿ßÊPÖ ^*æïA}6>/Œçí·ßðƒz _~ù%œuÖYÖþ›o¾™™ò´Ï0Ÿ1ÁøI~¨_¿~á¶Ûn³{ÆuàÚ½ÿ9ꨣ¬~xíÄ\ßzë­áÙgŸ5þú{æÔç›<̃j» Â>üðCËÖlŸ™ïáº.!ú¬Ý7ú³÷Þ{‡zŽ’/ج <þøãÆUÅö«B–^zé°âŠ+fÏ‹/¾¸-Þ%–X",·ÜrY“,Åé§Ÿn4ýôÓ‡qÆÇ&aši¦ Îd6ᄆþýû[~2öØc[=± ¨Ùæ˜cŽ fLm´Ñ¬ým¶ÙÆòÝpà ö¬fN–F^&ºûî»-Y﹞ o–Yf «­¶š•ar¶ÜrK«gÔQGµ¾{ì±–6ÝtÓÙ{ø³×^{Õ&a²É&Ë6ËôïŸ|0<õÔSöÄ=ù¯îÔaÒI' ªÝ,MMÎoêî¹ç‚Ï‹j<ëï)Ë¢¡<¼äügA!ðƒw Œ—: ’vHãZxá…í·LP®»î:ËÆvØaÖ&sƒ-¹ä’Ù¦9í´Ó†ãŽ;ÎòqÏÚ}ôѳ~ŸsÎ9M÷ùù矷öÕ,´öÔD·úý)”–™^ã7ž|ôÑGròÉ'‹2Gtшîrùå—‹îÞòê«¯Êæ›o.:ñ¢¢ü¹þúëE'L6Úh#9âˆ#D™$º [¹É'Ÿ\t×3Ó`«­¶Õ¢*˜ZŸ}ö™•¯÷G…K† &ºÉ\`×M7Ý”ezê©ÍLxë­·D€ì·ß~–¦B*Ê$áÊ?󎶉Xà¢îM7ÝTT‹ &D»Œ—öhŸþï»ï¾¢‹ÞüLóÎ;O† "´¯ ST ¬lüG7ÑÍÀÌ<ÑEj&¼ÑÍF¶Øb ão\¦è^5‹™Œ˜J̉.`Á¿pŸ€~8Pàñ˜cŽ)ðßb‘E‘M6Ù„ÔÆÊ{ʪ¶x˜'x£‚c×)§œ"ûï¿¿èæ *¢–€rÈ!rþùçÏUXE…ZT 嫱g]äVF71óßÎ>ûì¦ûì«Ucë ¹K”—°Îj”'Ÿ|ÒªbÇÒ—`ÌžU(Ìlb§UÖòª­ÖXc »ÇÔ`ÇÄ4a7À\ãzâ‰'¬üµ×^›uõàƒ.Ô(sÏ=w–›gœ1ì¾ûîÁ5Šk)ÒhÍU…ØaÇk¬0ÕTSÙ…†c\h vdM§ ÌLÌÌN4äá‡né˜i*(v¿ÔRK´[¹V¸ýöÛ³l®ùàQBœÐô @Ø£ïøð˜þ3´3ýæR¡·wðkÙe— º)x5f“?Ö(Ì+Z SLý¬€6„öØc{çf-ïvÜqÇ ~·!¯Qb³ó´ÓN³²äk¦Ï®Q(Ó i”ÂeDS¤ Éò«Ú¶_5IìWÕ¬ýjgÍyÄÁc7[ýõEítÛÉ “d» ‰ÝírÙe—eÚg±Å³zøã»~ö"ºQÁˆžDÔÜÈê dÉIMšÌ!õwe¿8ÞÇ|–åÎ;W^ÙœyµÉMk¨­-k­µV–g‚ &çAöRof›m6¹øâ‹EýwÜqã$QÁ2M3óÌ3Ûû\0KŸrÊ)í`!Oh‡<1F'4†.VÌ~eC^tÑEÙ{ÝD„ñ âqÏ7ß|Y¿ÑÅmV?Ç¿h!Ê`=81Žzc =ßgЮ<•õ-ê<ŸgžyòE;õü_Ï;Uü¿B1þ{ÛñóKý[\ºÛ\J.T1f•îhÂ$!0δÂÜ)¢8  4EíõÁŠÓÕÁ­I+ª³èýJ+­$óÎ;¯¼óÎ;–Eµ¨}-˜ ~ :ÔàÓ|jç›YɸcbüGy¤ß7Ð5'xa.±T#x’`Òä©Ê¼Ðo“ÉûM; q |ª!ÆÉaanôË8^~ùe3ã³ µšZ&(U;¦¦–¨z–ƒ:ÈP"„ýºë®»š2çœsšöQSÇv"´> ¤¢2‚ÍZDL~þ‚ÇBRg;Ë®f›ÕsõÕW‹š1²úê«[66íû¢Ï?gän&™dó«xÍ u¢1i-ä $œ'üšX@Ô‘+¯¼Òlü7„:7ÞxcA“°óR ñ³ë#d3Í4“ µ_yåk!AU%;,ë믿nZ@¨á/ïëÙZBjçEW\q…ù‰ PTmÆòÁøÁœ35§Íš`ŒÍP3}n¦ÞJyóö[g}‡ñ€ˆµá 1ÎäÁ $ŠwÀÀNستº›*¥;µA¸¤ßqdždQFwÈ fX¢ ΪõÒ”åÅpÔÉ}ÊRÈþ‘Ã’nû—¡^دyR Âúü¬¹îºëZý´á>——ÁGQÀ NZ&¯_@ݱ“‘~©àX:cWs,¨pX@ú{ZþÓÖ[om÷1êåóB5ƒ£€zbhíêæ`~!þœ÷ƒ¹B‡TË™ïåi |ø^yÙ¶‚ѵlnAÙ¨G…Ä`j²àç9êÅýI'”•Ô 4¨ijÏÍô˜›v4ÉêªrS䣠k¨YA©)\ña·Ýv j;vÈ ŽÏY –'µ¿ BFðXl8yBP€C©‡Å\ëä‚B ƒÉï.â…EÆY@¢/8î~Γ/ÃØUS„;Ääã|~!¤Íg-œa89ß8çà>&ÚU­Vwnâ|e÷´_ºÂûfú\Ö—¢´"Ai™3¯ÒÛ0kãÀÌÂÎ@ðg=ÂDèBÔSæÄåþ*u6“ ‚«*ᇹ/V¯ cÇL«GØó1@Q/OÑ;Ì*.§2¾áë`žu…€Ç¹ºBÍô¹+íä˶UP8W9ãŒ3ìì‚ó΋ œ?O„•àÀ×#&䬊£X¯|z7rs *(fNî†nXƒPÄé#Ã=–8œ v'Lüš'ô8˜Ä¡üJ/£Fýå€x„€E´€H¼izè¡¢þƒ9Üemõõ4 âú8$Ž©­%n¸7߃xµ#Ðh³‰Sø˜ˆJ€ÐŽ1üç‰ïõ×ÕïF¬(§ýêügÕ€bz%ªÏçŒ+´xw#Ô‚sv>«Øuñ9ÔqµPÒñWÿ óÂÔ0ñxÇa¤Î©…oPhÚ‰z9£wç0ŽhØ<¶O8}ªÖè;ÀÄÄs"‡s¯‹6b;œ¾bßÓWêá0 ;›wð4Ðw= vøœtúLŒÆÉ÷3.O;„ÈÀS?øÓáÆ›™¶Š."ø¨§öS3~¨™¹ñzËú ?Ø”ØÐxñ:ðò8üëQR¦ÖP;P/Ú$\87³ ÍC7z{ %}%ø’?`OÂ8€iãp j=Ñ'k‡ÀËzQ·–ñß?ºQd°)!AÔMº`‚ž·X¤4YãÀP=¯( `$²š²§žzª……Àé¤kˆ!Ï*ô¬1|¥ë74–µ™¹¡@Y¿5 ÃÐKÚ _ÀΠxyš}öÙ-äÅEóé­|.B½ÚzàHøÄ-·Übßp0ÇŽI`a½]ÝãÿhÉ® ¢ÇaÚ*«¬";ì°Cæ{pˆÉi=„Љ¨Ñ*T,JÄ‚_ ÷Z~ÿCÝPn¿ýööA€"ƒœàç‰`ÍFŒœjë¹……ÐF”'ü#4õˆÉ§nj¢Ÿ7dY«ÌMY¿ ÝámJ¶jL[]“—ÀU"8h%8V£Í×YgÚq“—ÆîÐ(|‡Â®§&CP'pÞ¡öyöD¾¾kõö@KúFñ Gž9ïÐyËëxWDh…\ƒFéÖ\#þýÖÆ5ŠF[º¨³ E΋ü,*Ö(eŒ®Q°±MH`"g±Fá¼C¹lêÆ–}:€ÐÌÜ”õ›`LK¿Æ¼Ù÷"ô#ÿLÌ;­#ÝX컟8OWï‹4J[|97!|4ÁûmëäN¦k·c•)½.Ð’pÈ?%h4FB\Š|/뀄×ÇD<\LV `¤ <ÔïÉý–<šáv°2Ê’W™Ñë-é> ŒìÇç´q°gêÕ(˜0Ôˆû<>pñ¹¬=0´,€Ñ}”•c |j­¦X†zá?jôƒ ØÉ‡r ßš?ÓìÜ”õ›Ïƒ©_ár»ð“~¦K52Š?â«5‰-~(òQæj— x£8oõ˜ãéU{"Ð’¾!(ÖoP-_v'ñµ( •£ŒZÀHP$¸>7]âÌw†Êú p@ä8Á®E„“ß.*”¶8óeª‘° ®Îdo´Ä7àêN’å_5"ü‡®0âï¸ùH{ø,\¡²~s8 ÈSFqàfY¾îLëqAéêà°U{*Ð’¾hŸÄwu<©|ïä@ Šìó’zÕC( Šl êÕCcNÍ&´ŒIPZÆÊTQ_æ@”¾<»il-ã@¡3ÏÇ[‰F6ðÙEþÿ¬Áƒ‚Â7 Äù$J9$N$Iž: ^ù é9q q@$ù(i$Tà@” LJY’ ¤58PIP*0)eIø…JËsíIEND®B`‚mysql++-3.2.5/doc/html/refman/sql__buffer_8h.html000755 000765 000024 00000014154 13515046516 022372 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: sql_buffer.h File Reference
MySQL++  3.2.5
sql_buffer.h File Reference

Declares the SQLBuffer class. More...

#include "refcounted.h"
#include "type_info.h"
#include <string>

Go to the source code of this file.

Classes

class  mysqlpp::SQLBuffer
 Holds SQL data in string form plus type information for use in converting the string to compatible C++ data types. More...
 

Typedefs

typedef RefCountedPointer< SQLBuffer > mysqlpp::RefCountedBuffer
 Reference-counted version of SQLBuffer. More...
 

Detailed Description

Declares the SQLBuffer class.

Typedef Documentation

◆ RefCountedBuffer

typedef RefCountedPointer<SQLBuffer> mysqlpp::RefCountedBuffer

Reference-counted version of SQLBuffer.

No one uses SQLBuffer directly. It exists only for use in a RefCountedPointer wrapper.

mysql++-3.2.5/doc/html/refman/cpool_8h_source.html000755 000765 000024 00000055535 13515046516 022607 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: cpool.h Source File
MySQL++  3.2.5
cpool.h
Go to the documentation of this file.
1 
4 /***********************************************************************
5  Copyright (c) 2007-2008 by Educational Technology Resources, Inc. and
6  (c) 2007 by Jonathan Wakely. Others may also hold copyrights on
7  code in this file. See the CREDITS.txt file in the top directory
8  of the distribution for details.
9 
10  This file is part of MySQL++.
11 
12  MySQL++ is free software; you can redistribute it and/or modify it
13  under the terms of the GNU Lesser General Public License as published
14  by the Free Software Foundation; either version 2.1 of the License, or
15  (at your option) any later version.
16 
17  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
18  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
19  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
20  License for more details.
21 
22  You should have received a copy of the GNU Lesser General Public
23  License along with MySQL++; if not, write to the Free Software
24  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
25  USA
26 ***********************************************************************/
27 
28 #if !defined(MYSQLPP_CPOOL_H)
29 #define MYSQLPP_CPOOL_H
30 
31 #include "beemutex.h"
32 
33 #include <list>
34 
35 #include <assert.h>
36 #include <time.h>
37 
38 namespace mysqlpp {
39 
40 #if !defined(DOXYGEN_IGNORE)
41 // Make Doxygen ignore this
42 class MYSQLPP_EXPORT Connection;
43 #endif
44 
67 
68 class MYSQLPP_EXPORT ConnectionPool
69 {
70 public:
73 
78  virtual ~ConnectionPool() { assert(empty()); }
79 
81  bool empty() const { return pool_.empty(); }
82 
106  virtual Connection* exchange(const Connection* pc);
107 
120  virtual Connection* grab();
121 
137  virtual void release(const Connection* pc);
138 
150  void remove(const Connection* pc);
151 
162  virtual Connection* safe_grab();
163 
165  void shrink() { clear(false); }
166 
167 protected:
176  void clear(bool all = true);
177 
188  virtual Connection* create() = 0;
189 
197  virtual void destroy(Connection*) = 0;
198 
207  virtual unsigned int max_idle_time() = 0;
208 
210  size_t size() const { return pool_.size(); }
211 
212 private:
214  struct ConnectionInfo {
215  Connection* conn;
216  time_t last_used;
217  bool in_use;
218 
219  ConnectionInfo(Connection* c) :
220  conn(c),
221  last_used(time(0)),
222  in_use(true)
223  {
224  }
225 
226  // Strict weak ordering for ConnectionInfo objects.
227  //
228  // This ordering defines all in-use connections to be "less
229  // than" those not in use. Within each group, connections
230  // less recently touched are less than those more recent.
231  bool operator<(const ConnectionInfo& rhs) const
232  {
233  const ConnectionInfo& lhs = *this;
234  return lhs.in_use == rhs.in_use ?
235  lhs.last_used < rhs.last_used :
236  lhs.in_use;
237  }
238  };
239  typedef std::list<ConnectionInfo> PoolT;
240  typedef PoolT::iterator PoolIt;
241 
243  Connection* find_mru();
244  void remove(const PoolIt& it);
245  void remove_old_connections();
246 
248  PoolT pool_;
249  BeecryptMutex mutex_;
250 };
251 
252 } // end namespace mysqlpp
253 
254 #endif // !defined(MYSQLPP_CPOOL_H)
255 
Manages the connection to the database server.
Definition: connection.h:59
Manages a pool of connections for programs that need more than one Connection object at a time,...
Definition: cpool.h:68
size_t size() const
Returns the current size of the internal connection pool.
Definition: cpool.h:210
bool empty() const
Returns true if pool is empty.
Definition: cpool.h:81
MUTually EXclusive lock class.
ConnectionPool()
Create empty pool.
Definition: cpool.h:72
void shrink()
Remove all unused connections from the pool.
Definition: cpool.h:165
virtual ~ConnectionPool()
Destroy object.
Definition: cpool.h:78
mysql++-3.2.5/doc/html/refman/structmysqlpp_1_1equal__list__ba-members.html000755 000765 000024 00000012563 13515046516 027573 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::equal_list_ba< Seq1, Seq2, Manip > Member List
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1InitCommandOption__coll__graph.png000644 000765 000024 00000021061 13515046516 030513 0ustar00tangentstaff000000 000000 ‰PNG  IHDRзcUЖsRGB®Îé!ëIDATxí]xUö?!„Þ{ïué .å£,ÁE”"²° «‚®q‘ÝUÐYE@@Å•D@¤÷"„Þ¤KïBè$aþ÷wò¿Ãäå%y™ä‘™¼s¾ïefn=÷wϹçÜs罆1‡„AÀëÒªZìÔ”:‚€ @÷Ò‚€ `Q ûØIMA€DD$ €=«hóæÍtîÜ9Wñ,Ìú†@½zõ¨pá¾vJ)…sµoßÞPØÉ'b°`ÁWÉ¢bv¦ë,ž®]»Ò·ß~ë”5HøH"QQQ”6­+EQö@Iœ{©àH!À@†Ÿ4D’†ŸÔpD\døIC@(iøIíG@ÈÏðÊ+¯Ð÷ßïç^¢›Ÿ:u*µjÕŠòåËG¥K—¦?ÿùÏ´zõjŸû¾{÷.ݺu‹Ë9r„Z·nM—.]ò¹~ òó¬¯[·ŽNœ8áç^ˆHPV„ƒGŽIýúõ£S§NQ‹-hòäÉ>õß»woêÞ½;—EhùöíÛôèÑ#Ÿêj¡T¯@gÏžeAÀÊŠ·Ú/_¾¼Ñ³gOÎ+[¶¬1vìX¾õë×ç6CBBŒL™2óçÏç¼nݺ+V4råÊeòÚ«W/Îß>}úyóæ5ŸsæÌiôïߟŸ_|ñE£@†R03_ßìÞ½›yûâ‹/Œ… ò}Æ Í>Ð'ÆŽ¶4&uêÔ1ÔbÀeOž<ÉM=šñ(‡q(¥ã<`ܼys#}úô<6à3eÊÍB‚Wµ8p_n|!Õ[ ¬žJ®ÔÁƒ +9\š7òj¬„÷(EŠ¡FѼyóP… +p³fÍH)¯îcÆŒa+Uö§Ÿ~b‹«ƒôQ£FñþA)`,ë¡Ûü?~œ-ö+J1ØB"ïСC4iÒ$^ͧOŸNø,Z´YÔ²eK4hßã\6%´ü kU­Z5Rlæë›*UªpºÕÄûf°¼GeËóî»ïøîܹ3©жlÙ¢«óná´iÓ¸<ú;vì >Ü,§•PN)#)%¥°f^j¾ z饗H­ª¤V[Þ\c_€±Ù®]»6»i˜d”ƒrÀÕ‚ ¶víZR–2dÈÀ/9B€¾þúkRV…]´©,)KBB\ñšQ… â”ìMŠ/Îe‡ ƹÿ~._¹reêÒ¥ )KFÊ‚Q©R¥Xñ‘‰€Êk‚ÂvèÐáz)˧³b\ábÑ@›šÞ{ï=ʘ1#•)S†ûÁ8ã£ÐÐPÊž=;½üòË\ õÐ7\GMÊZR­Zµ¨`Á‚ôüóϳ‚é¼Ô|}Œj*%&U“rXô³rGL¾cÇŽ„| >Pœçž{ŽÓ 8… â:®Xý±9}ú4U¯^”{¦›¤bÅŠ™÷ž7%K–4“”KÆ÷PXÆJÈ×yÖtÏ{DÜ<÷Lº „”Ñdå‹ölñ‘£U ©uŸ‡v4A9¡´@¡@P_«l»víØƒûåÉ’% ]¼x‘#iË–-ã2¬ÎŽ;aãüùóV²ºKÖtÜcƒ® . dÍÃf›uÇâøÓ¤I.‹ ‰'!¨€…!iMÖ~àÊ&Ô‡Ú_¬¤ÚÌè&(,,,F=_16H%7¡@‰™+¸qXµW®\i†ta]zôèÁ‘.Q5Ø*Ám‚%¾>?"QØ_aoé=òÓO?ekUµjU.¡œ={6»uØ_ B¦‚œ÷¿ÿý†j6ûÎ;ïÚtó3¢nj#ÏÊK ~°ßƒ[9cÆ zûí·ÙzêÊpá°Â"q¶mÛ–³`}¡\:2©ËƒDéåCÞ¶mÛ8Šˆ=SÀS‚!‡HlN¹SÆøñãÍQ¨=¡Âºæ³Úœjßa>+·Œ#a¨§\3Q(µ’s¤ Ñ&%tÊ‚Ð"SJ˜ åÊ%J”0£p*lŒ7ŽË! §”ÏŒT!¦¬ç! §Ü,îí ʦë¡@ß¾} eí¸,þX£pxV‚o¨½ó€úødÍšÕPA d3é(¢lÈWgF†²¸†:ïá|¥¤œV³fÍXQ8¥¼ÂPQ4 Ü%S¬¡@ÊÂjç²Ö<(Ú˜êlÇØ»w¯©œÖ2¾Ü£må–êœÇ ³ëzZЇŠê-e^¯_¿îu|(€ñ«×zf6nܬ@îü“ZýApÝpPˆÍ±Zñcu‘;wnjРA¬t$äÉ“‡?^3=±×ÂÇáM„žíÚUg4 V÷ Xè ʲéÛXWŒ¡Çˆ=Æ‚÷jõçд5ªd)âÓm¥J•¼†•öŽKqòÀ? }ƒ‡@ÝðûÛ X\4ì¯6qþ€ƒMùJ·¿~òí"ÌË‹ "Ÿ.¢Y…sÑl «ÎC@Èysbrtþ|ô‹®f‚Ü8Wîp2Ž3ŒÔN¡¡'Õ«Fù¨H‘Ì©z¨nþÊ„+§çø¤fÂF?_¾>´dÉ _Ÿš‡êê±¹.ˆàj´ÁüÆGé…&+%ÊF»wNDM)ú Â;Q]…††©7¨ƒÔˤáêÕÿ£5QÌIa "˜P8ç&""J}h—ú:µ¡Þ¹ Vo†ïtsÂI DbÀጇի©¯WGÕÊk)¿MàŒÙ‰É…(PL<ñ4þu°lòrëÖ}õÅºÃæ³Ü8Q çÌsr÷îCZ¾ü€²8Q&gpã,7ÎÄA7¢@š °²lÙ¾ʃ4¸qK—îUß7Šþu ¤ 9Q g̃ÉÅܹ۽¾ìùða$­XqÀ,'7Î@@ÈóÀ\\¿~GýVÝQõ±ÁÁAê«æÛÄ­°D$‹ïQÖÇ;CˆÂ­]{Xý¬Ö=ï$5EJؽw ÷-¾o— oÉ’=Þ+KjŠ ”"°Çîo^‡…âÃÓØ¹Ñ)†¤^¢7..|R"Ý•/“¦PþîsáÂè0uHHZåÆEÇQÕQƒ_<ûå—“êUÃÕÏieó7KÒ¾ˆùÒ“(RªT>=:ú—Fu'®T?Ù[LýTn9Ä×Û·(Š‘$)„€(P ïÙm«V•=“hÖ¬Íêû@%Õ¯¡6Š•' Î@@ö@ΘáÂ¥ˆ¹tâ„mg äŒy.\Š€(K'NØv¢@ΘáÂ¥ˆ¹tâ„mg äŒy.\Š€(K'NØv¢@ΘáÂ¥ˆ¹tâ„mg äŒy.\Š€(K'NØv¢@ΘáÂ¥ˆ¹tâ„mg äŒy.\Š€(K'NØv¢@ΘáÂ¥ˆ¹tâ„mg äŒy.\Š€(K'NØv¢@ΘáÂ¥ˆ¹tâ„mg äŒy.\Š€(K'NØv¢@ΘáÂ¥ˆ¹tâ„mg äŒy.\Š€(K'NØv¢@ΘáÂ¥ˆ¹tâ„mg äŒy.\Š€(K'NØv¢@ΘáÂ¥©ÿüý9]:€øØ~ýõ×iÒ¤Iñqt^úôE)*êEFÞp4Ÿñ1·}ûvzê©§â+âæ¼Y©þ_téÒ%ŸÛ³ò{äÈjݺu¢êûÜQ€²L<ŽÄžþy:vìõë×Þ|óMÚ³g5iÒ„–/_Î%{÷îMÝ»w·ÔŠyûàÁºwï^ÌDO/^¤ ÐçŸNõêÕ£>úˆZ¶lIsæÌaEÚ¿¿O­ZùŠŠ¢Û·oÓ£G|ª+…|@©©•Ô9„¡„Ðçáýøã8T6”™u”Ð… 6zöìi\½zÕxöÙgæÍ›çÎã2gÏž5ÂÃÛ7o»wï6”€r9d^»vÍPŠ`(¥2~ùåcïÞ½Fdd¤Ù6n”51víÚÅéwîÜ1îß¿Ïù}ûö5BBBŒ°°°åÁ[Ö¬Y-Zp:ú½qã†ñðáCcãÆÆ¯¿þj–÷ä}_¸p!gΜ1–,YbìܹÓPŠeÖEº²^Æõë× e Œ31tòäIÆR¤&¦šÛÊÎ$·qœ~«@³fÍâIW«~Œn8`àÓ¿#((ˆËÔ©S‡Ë”-[Öxæ™gŒÌ™3³r)«e¨“wÎý:È5P&88˜ëAðµ ¾÷Þ{f{꼊ˢ(Cúôé å®ÅàC? 6ŒÛ‚pwëÖëåÊ•ËH—.§÷êÕ‹‹zò»uëV·pƒÔ³‘&Mu1®úõë³Ò#¯hÑ¢¼P€Íû”)Så‰ù“³ %V *T`!ƒ)WÍ€2a%×Ô¥K£}ûöú‘•‚ûñdzµñT X´ñãdzRŒ9’Û>qâ¯êÈS¯±ùç?ÿÉy¯¾úªqôèQ¾Ÿ:uªÙõ&44”ówìØÁ „vfÏžmÀZNŸ>ó~øá®båת@°V¨÷ÕW_q9ô™?~ýƒ0þ¼yóèãüùóFÆ µã<_þŠÉHI‘¦œ9s’reè»ï¾#e)H ï…”0Ѽyót±X׎;ò~I `¬¼R¥Jq @¹c¤„“ó•°Ò¢E‹¨téÒ4`ÀÊž=; 2„”Àr¾råøŠÀ7R®!'+ëÁ×Ê•+“R³r5 }ZÞÚPJÈý¾üòËœ]¦Lž¬ZµÊ,®,ï· ,hî ÍL¹aD,‚°oß>:}ú4uîÜ™ÔêOˆZ©=*Tˆl)ó¶J•*1,Oùòå3Ÿ2dÈÀ÷ØÌ«=+VÌÌS.U¯^Ÿ¡X (š7Z±b'CèAP+Añ.Z|„q¢?­„( EQÖÖ¬få=cÆŒê¥ÖH3On¢²H˜1cb½7W³fM^}:¶4IP oT @‚Â*wÈ̆‚²dÉ¡kµç µ2óqƒ¬DÓ¦MI8O¹Xf„­UP‚Š/n¦y»AÿˆäYûÇba­ïÞÚ Ô4Q ËÌ·k׎…zĈ¤¢U¦°Â¥kÔ¨—„+U‘/KÍÄß"$Õ^8lþÎ;ïÐo¿ýf64vìX~nܸ1»cèSí[8” ïÃ?4ËBðÕˆàÚ >œ•®M›6œ¿ÈGyŒcÙ¶m­Y³†­¯Ù°Ü$ˆ€("œï@ qæ·-S¦Ll‘ð}–o¾ù†Kªˆ¯ð° ¬ÒV7Èúl½ç–?8Ðüàƒè“O>á[o¥J•H»yhgO*œLP"Jçs¡+W®ÐæÍ›©víÚfkpáðÝ'¼y>cÆ 7nÕ­[—ó=ùÕ• ÀC‡%(*ꩨ"µmÛÖ<ö´>£uœº€¿úQqk™ÄFáô8q¶‚ó œë ²åIˆÖáì')¤¬ñóÏ?sûÊ-ã¦ôyCYDÍpfäIc«7'Œˆˆ>g™“'ÅÇ/"Œ[¶lñÚ¶g;‰y”(\ªÿ>2[¶lñ~‹Ѻ¤ö6Xñ}ƒµY¸p!»lxûÀ“l°<óñœ6mZŠ+˜¿¹sç&|„ì! .œ=Ü’\ ´/¿ü’CåÊŠÐáÇI½ AåÊ•KTÛ(wö„R±@)ƒ;÷Ú£GÂ')„=›PÊ! (å°—žS¢@žÄÈHykÚÁÓì‰9x†fÎܤÎjn;˜Ca-Õï6lØçÛNŸþù„ ,ÈÖ AÚ³gõïߟ®]»f–sû ÆtãÆ Æõë×YÐ-ZÄ‹«víÚŒKß¾}y!ñe¼V,#""èÁƒ¾Tók™$[ ‡Ê›7/]¾|™…§T©RAúí·ßù¥K—¦´iÓÒ¥K—xÏ–-›9¨+W®pZ–,Y8íÈ‘#pÐV|MJ¬8E‹¥ôéÓóäx®ØwîÜaÁÅŠ«”#G.6Ð&V0X…Ó§OÓíÛ·©lÙ²¦e€ÀƒWXŠ4iÒp;ÖgÍ®áááIY³fežpÈV¼xq ¦"EŠÐèÑ£){öì<^”>àÿ×_¥Ÿ~ú‰úõëG/¾ø"²˜ZµjE}úô¡ùóçó‰º<î±RgÊ” ·Ü7°†À*þü”3gN>£€‚çÉ“‡•3±e¹qõG÷‹q -M˜'ô LNœ8Ás® øÁ²1:×3fð9ÊäÉ“y,:ï™gž¡W^y…þïÿ›â›?ÈHcÙ²eKúÓŸþ¤›byƒEŸ|ùòqøE<_¸pïË”)C¶ÌFlÜ$YŽ;F  êÕ«ÓîÝ»™…*UªðÉmXX?ÿá O?ý”ƌʄ„ªsçÎôúë¯ê 6Œn޼ɀÉûøã©X±b¼B>œÆ(„ÑJhBõû￳ @È[·nMo¿ý6mÛ¶FŒAU«V%Xä¡í>úˆ•çÎ4xð`Ž÷c,žÏÖ~p"ö¢¢¢xR ÐO=õÁº@I€Çwß}Çy_|ñO0 JݱcGks¼Ààœ hïÞ½4räHÆ}@yð\£F > ‡Eƒ’C¨€Ç³Ï>KëÖ­3W|¬êÀ|úZýN:•¾ÿþ{ž;¸\˜7¸£è c^à ëׯO[¶lá6°¸Mš4)–¢[yóõ>Ù\80Ž·ô¾}ûxÅŸ3gAð!°§ÔInóæÍyûŒ]¸%¨ ÿî ÊÁªÄE%J” ¦M›r?(‡½V*Mv¬ôºm5ñŒ•[+ç³®¯¯hB e€ÁÂÄGXAõÞ(®r/„m¢m¸”Ï=÷]½z•­.êX1X³jÕªq¼~…E –®Š&_Ë¢-âÿøG^ä`a1WèW\.|îܹùU¯sçÎqVvÌ3ösp•°i‚KÒ.ºN×Wx ôJhþ¸Ç(CݺuM×ó÷^„&X#𼰥мë|»×ØK¡Í–`1@Ø€ € ¸ L'&îÞµƒðÂB €Ö®”yÚÚÀСˆ‹ݱC·t­ ¸Gžž@<'†PWö@ (H|–î‘ÞÓèò^(ŒÆÍêî@`AšW5Ò€7xñly _Ëb~àÖlß¾Bì#ô\F·—¾Ç"Wx h‚‹­I'.Õn¾.—Ðüévõ˜CɱŸµÆ­ñB:ö‰šÀ{Bs¥Ë&tM6 ¤%¡áÆAqàn Hߨ{÷îì–À¯…}ùå—æÀ­*ë ëÙŸuÅÄËXÑ­JcmŸ2z¶m}öu¼Ö:X½!p«•°Éýúë¯yÌZà0Ñ„}H#1}ûZvÅŠ¬<Ø«bƒËèY×󵦮]»Ò|Àá]wQ¸&C‡å¼víÚñªˆ Â¥I·g¸PDf°2br°!߸q#‡‚  ÜÉž={r:Õ† ² z>£îWí³såxþÀÂ~õÕWìžaŒq#ò‡ˆ¤&,ãbÜø`¼Øã}a¿õüƒ‹{ö >¬¼XïS¶Y³fì`ˆ6°7ïð•D[V³NCþ” aþ@X°°øiB ãC0è7ÞÐÉ|Ä€½®Õå‹kþPÉŠ¥ul˜c,x£Fbž€!d ŽÕÓ[y×iv¯q~hÍš5vÛL°@Ãêk`%¸78¿Ï¡±¢(0ËHÇJ%ñ cCÈ`¾!¤ˆ áÌH¿B¨Ö «!\ «_lí+¹ïá¢Á¢bb5a_†Õn™vÛt®/„|B¬Ša-—Ü÷À¼Â"‚À;í¹òì ˜Cq<çÎZØã¼çLžøÇ7º oX"{8Dò`=K(F èzI¹ê¯3$êû@Ié0®ºXý»†p©'a’²õF°\ˆžøBh›à¸Ès£W¹äJ÷¦ O²ö‡ñZ Ö<Þcѱ’ÞwYÓ¼ÝCÁK–,é-+Fö%Ö½IŒÌÿˆoþ¼a‰j°*þtq½ñ‰´ÇKb\%’1nbñ8äjÑ¢…í–±iôv®€U-®×;°¢V¬XÑvŸRÑÿÄ7þïÝ^)âÂÙcUj )ƒ@|.ÜÂ¥ Ò« àDüƒ«´ ˆÈDË0ýƒ@œAÄÔ…A :”±aL¼$)$ÑàY¼¤ëbEá¼’4A@ðŠÀ,ÙyÅEßò ')%xE@È+,’(ø†€(o8I)AÀ+ÿ.ð›Ó™þ¢4IEND®B`‚mysql++-3.2.5/doc/html/refman/globals.html000755 000765 000024 00000006741 13515046516 021132 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: File Members
MySQL++  3.2.5
Here is a list of all documented file members with links to the documentation:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1NoTransaction-members.html000755 000765 000024 00000011241 13515046516 027024 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::NoTransaction Member List

This is the complete list of members for mysqlpp::NoTransaction, including all inherited members.

commit()mysqlpp::NoTransactioninline
NoTransaction(Connection &, bool=false)mysqlpp::NoTransactioninline
rollback()mysqlpp::NoTransactioninline
~NoTransaction()mysqlpp::NoTransactioninline
mysql++-3.2.5/doc/html/refman/vallist_8h.html000755 000765 000024 00000252450 13515046516 021564 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: vallist.h File Reference
MySQL++  3.2.5
vallist.h File Reference

Declares templates for holding lists of values. More...

#include "manip.h"
#include <string>
#include <vector>

Go to the source code of this file.

Classes

struct  mysqlpp::equal_list_ba< Seq1, Seq2, Manip >
 Holds two lists of items, typically used to construct a SQL "equals clause". More...
 
struct  mysqlpp::equal_list_b< Seq1, Seq2, Manip >
 Same as equal_list_ba, plus the option to have some elements of the equals clause suppressed. More...
 
struct  mysqlpp::value_list_ba< Seq, Manip >
 Holds a list of items, typically used to construct a SQL "value list". More...
 
struct  mysqlpp::value_list_b< Seq, Manip >
 Same as value_list_ba, plus the option to have some elements of the list suppressed. More...
 

Functions

template<class Seq1 , class Seq2 , class Manip >
std::ostream & mysqlpp::operator<< (std::ostream &o, const equal_list_ba< Seq1, Seq2, Manip > &el)
 Inserts an equal_list_ba into an std::ostream. More...
 
template<class Seq1 , class Seq2 , class Manip >
std::ostream & mysqlpp::operator<< (std::ostream &o, const equal_list_b< Seq1, Seq2, Manip > &el)
 Same as operator<< for equal_list_ba, plus the option to suppress insertion of some list items in the stream. More...
 
template<class Seq , class Manip >
std::ostream & mysqlpp::operator<< (std::ostream &o, const value_list_ba< Seq, Manip > &cl)
 Inserts a value_list_ba into an std::ostream. More...
 
template<class Seq , class Manip >
std::ostream & mysqlpp::operator<< (std::ostream &o, const value_list_b< Seq, Manip > &cl)
 Same as operator<< for value_list_ba, plus the option to suppress insertion of some list items in the stream. More...
 
void mysqlpp::create_vector (size_t size, std::vector< bool > &v, bool t0, bool t1=false, bool t2=false, bool t3=false, bool t4=false, bool t5=false, bool t6=false, bool t7=false, bool t8=false, bool t9=false, bool ta=false, bool tb=false, bool tc=false)
 Create a vector of bool with the given arguments as values. More...
 
template<class Container >
void mysqlpp::create_vector (const Container &c, std::vector< bool > &v, std::string s0, std::string s1, std::string s2, std::string s3, std::string s4, std::string s5, std::string s6, std::string s7, std::string s8, std::string s9, std::string sa, std::string sb, std::string sc)
 Create a vector of bool using a list of named fields. More...
 
template<class Seq >
value_list_ba< Seq, do_nothing_type0 > mysqlpp::value_list (const Seq &s, const char *d=",")
 Constructs a value_list_ba. More...
 
template<class Seq , class Manip >
value_list_ba< Seq, Manip > mysqlpp::value_list (const Seq &s, const char *d, Manip m)
 Constructs a value_list_ba. More...
 
template<class Seq , class Manip >
value_list_b< Seq, Manip > mysqlpp::value_list (const Seq &s, const char *d, Manip m, const std::vector< bool > &vb)
 Constructs a value_list_b (sparse value list) More...
 
template<class Seq , class Manip >
value_list_b< Seq, Manip > mysqlpp::value_list (const Seq &s, const char *d, Manip m, bool t0, bool t1=false, bool t2=false, bool t3=false, bool t4=false, bool t5=false, bool t6=false, bool t7=false, bool t8=false, bool t9=false, bool ta=false, bool tb=false, bool tc=false)
 Constructs a value_list_b (sparse value list) More...
 
template<class Seq >
value_list_b< Seq, do_nothing_type0 > mysqlpp::value_list (const Seq &s, const char *d, bool t0, bool t1=false, bool t2=false, bool t3=false, bool t4=false, bool t5=false, bool t6=false, bool t7=false, bool t8=false, bool t9=false, bool ta=false, bool tb=false, bool tc=false)
 Constructs a sparse value list. More...
 
template<class Seq >
value_list_b< Seq, do_nothing_type0 > mysqlpp::value_list (const Seq &s, bool t0, bool t1=false, bool t2=false, bool t3=false, bool t4=false, bool t5=false, bool t6=false, bool t7=false, bool t8=false, bool t9=false, bool ta=false, bool tb=false, bool tc=false)
 Constructs a sparse value list. More...
 
template<class Seq1 , class Seq2 >
equal_list_ba< Seq1, Seq2, do_nothing_type0 > mysqlpp::equal_list (const Seq1 &s1, const Seq2 &s2, const char *d=",", const char *e=" = ")
 Constructs an equal_list_ba. More...
 
template<class Seq1 , class Seq2 , class Manip >
equal_list_ba< Seq1, Seq2, Manip > mysqlpp::equal_list (const Seq1 &s1, const Seq2 &s2, const char *d, const char *e, Manip m)
 Constructs an equal_list_ba. More...
 
template<class Seq1 , class Seq2 , class Manip >
equal_list_b< Seq1, Seq2, Manip > mysqlpp::equal_list (const Seq1 &s1, const Seq2 &s2, const char *d, const char *e, Manip m, const std::vector< bool > &vb)
 Constructs a equal_list_b (sparse equal list) More...
 
template<class Seq1 , class Seq2 , class Manip >
equal_list_b< Seq1, Seq2, Manip > mysqlpp::equal_list (const Seq1 &s1, const Seq2 &s2, const char *d, const char *e, Manip m, bool t0, bool t1=false, bool t2=false, bool t3=false, bool t4=false, bool t5=false, bool t6=false, bool t7=false, bool t8=false, bool t9=false, bool ta=false, bool tb=false, bool tc=false)
 Constructs a equal_list_b (sparse equal list) More...
 
template<class Seq1 , class Seq2 >
equal_list_b< Seq1, Seq2, do_nothing_type0 > mysqlpp::equal_list (const Seq1 &s1, const Seq2 &s2, const char *d, const char *e, bool t0, bool t1=false, bool t2=false, bool t3=false, bool t4=false, bool t5=false, bool t6=false, bool t7=false, bool t8=false, bool t9=false, bool ta=false, bool tb=false, bool tc=false)
 Constructs a equal_list_b (sparse equal list) More...
 
template<class Seq1 , class Seq2 >
equal_list_b< Seq1, Seq2, do_nothing_type0 > mysqlpp::equal_list (const Seq1 &s1, const Seq2 &s2, const char *d, bool t0, bool t1=false, bool t2=false, bool t3=false, bool t4=false, bool t5=false, bool t6=false, bool t7=false, bool t8=false, bool t9=false, bool ta=false, bool tb=false, bool tc=false)
 Constructs a equal_list_b (sparse equal list) More...
 
template<class Seq1 , class Seq2 >
equal_list_b< Seq1, Seq2, do_nothing_type0 > mysqlpp::equal_list (const Seq1 &s1, const Seq2 &s2, bool t0, bool t1=false, bool t2=false, bool t3=false, bool t4=false, bool t5=false, bool t6=false, bool t7=false, bool t8=false, bool t9=false, bool ta=false, bool tb=false, bool tc=false)
 Constructs a equal_list_b (sparse equal list) More...
 

Detailed Description

Declares templates for holding lists of values.

Function Documentation

◆ create_vector() [1/2]

void mysqlpp::create_vector ( size_t  size,
std::vector< bool > &  v,
bool  t0,
bool  t1 = false,
bool  t2 = false,
bool  t3 = false,
bool  t4 = false,
bool  t5 = false,
bool  t6 = false,
bool  t7 = false,
bool  t8 = false,
bool  t9 = false,
bool  ta = false,
bool  tb = false,
bool  tc = false 
)

Create a vector of bool with the given arguments as values.

This function takes up to 13 bools, with the size parameter controlling the actual number of parameters we pay attention to.

This function is used within the library to build the vector used in calling the vector form of Row::equal_list(), Row::value_list(), and Row::field_list(). See the "Harnessing SSQLS Internals" section of the user manual to see that feature at work.

◆ create_vector() [2/2]

template<class Container >
void mysqlpp::create_vector ( const Container &  c,
std::vector< bool > &  v,
std::string  s0,
std::string  s1,
std::string  s2,
std::string  s3,
std::string  s4,
std::string  s5,
std::string  s6,
std::string  s7,
std::string  s8,
std::string  s9,
std::string  sa,
std::string  sb,
std::string  sc 
)

Create a vector of bool using a list of named fields.

This function is used with the ResUse and Result containers, which have a field_num() member function that maps a field name to its position number. So for each named field, we set the bool in the vector at the corresponding position to true.

This function is used within the library to build the vector used in calling the vector form of Row::equal_list(), Row::value_list(), and Row::field_list(). See the "Harnessing SSQLS Internals" section of the user manual to see that feature at work.

◆ equal_list() [1/7]

template<class Seq1 , class Seq2 >
equal_list_ba<Seq1, Seq2, do_nothing_type0> mysqlpp::equal_list ( const Seq1 &  s1,
const Seq2 &  s2,
const char *  d = ",",
const char *  e = " = " 
)

Constructs an equal_list_ba.

This function returns an equal list that uses the 'do_nothing' manipulator. That is, the items are not quoted or escaped in any way when inserted into a stream. See equal_list(Seq, Seq, const char*, const char*, Manip) if you need a different manipulator.

The idea is for both lists to be of equal length because corresponding elements from each list are handled as pairs, but if one list is shorter than the other, the generated list will have that many elements.

Parameters
s1items on the left side of the equals sign when the equal list is inserted into a stream
s2items on the right side of the equals sign
ddelimiter operator<< should place between pairs
ewhat operator<< should place between items in each pair; by default, an equals sign, as that is the primary use for this mechanism.

References mysqlpp::do_nothing, and mysqlpp::equal_list().

Referenced by mysqlpp::equal_list().

◆ equal_list() [2/7]

template<class Seq1 , class Seq2 , class Manip >
equal_list_ba<Seq1, Seq2, Manip> mysqlpp::equal_list ( const Seq1 &  s1,
const Seq2 &  s2,
const char *  d,
const char *  e,
Manip  m 
)

Constructs an equal_list_ba.

Same as equal_list(Seq&, Seq&, const char*, const char*) except that it also lets you specify the manipulator. Use this version if the data must be escaped or quoted when being inserted into a stream.

References mysqlpp::equal_list().

◆ equal_list() [3/7]

template<class Seq1 , class Seq2 , class Manip >
equal_list_b<Seq1, Seq2, Manip> mysqlpp::equal_list ( const Seq1 &  s1,
const Seq2 &  s2,
const char *  d,
const char *  e,
Manip  m,
const std::vector< bool > &  vb 
)

Constructs a equal_list_b (sparse equal list)

Same as equal_list(Seq&, Seq&, const char*, const char*, Manip) except that you can pass a vector of bools. For each true item in that list, operator<< adds the corresponding item is put in the equal list. This lets you pass in sequences when you don't want all of the elements to be inserted into a stream.

References mysqlpp::equal_list().

◆ equal_list() [4/7]

template<class Seq1 , class Seq2 , class Manip >
equal_list_b<Seq1, Seq2, Manip> mysqlpp::equal_list ( const Seq1 &  s1,
const Seq2 &  s2,
const char *  d,
const char *  e,
Manip  m,
bool  t0,
bool  t1 = false,
bool  t2 = false,
bool  t3 = false,
bool  t4 = false,
bool  t5 = false,
bool  t6 = false,
bool  t7 = false,
bool  t8 = false,
bool  t9 = false,
bool  ta = false,
bool  tb = false,
bool  tc = false 
)

Constructs a equal_list_b (sparse equal list)

Same as equal_list(Seq&, Seq&, const char*, const char*, Manip, vector<bool>&) except that it takes boolean parameters instead of a list of bools.

References mysqlpp::equal_list().

◆ equal_list() [5/7]

template<class Seq1 , class Seq2 >
equal_list_b<Seq1, Seq2, do_nothing_type0> mysqlpp::equal_list ( const Seq1 &  s1,
const Seq2 &  s2,
const char *  d,
const char *  e,
bool  t0,
bool  t1 = false,
bool  t2 = false,
bool  t3 = false,
bool  t4 = false,
bool  t5 = false,
bool  t6 = false,
bool  t7 = false,
bool  t8 = false,
bool  t9 = false,
bool  ta = false,
bool  tb = false,
bool  tc = false 
)

Constructs a equal_list_b (sparse equal list)

Same as equal_list(Seq&, Seq&, const char*, const char*, Manip, bool, bool...) except that it doesn't take the Manip argument. It uses the do_nothing manipulator instead, meaning that none of the elements are escaped when being inserted into a stream.

References mysqlpp::do_nothing, and mysqlpp::equal_list().

◆ equal_list() [6/7]

template<class Seq1 , class Seq2 >
equal_list_b<Seq1, Seq2, do_nothing_type0> mysqlpp::equal_list ( const Seq1 &  s1,
const Seq2 &  s2,
const char *  d,
bool  t0,
bool  t1 = false,
bool  t2 = false,
bool  t3 = false,
bool  t4 = false,
bool  t5 = false,
bool  t6 = false,
bool  t7 = false,
bool  t8 = false,
bool  t9 = false,
bool  ta = false,
bool  tb = false,
bool  tc = false 
)

Constructs a equal_list_b (sparse equal list)

Same as equal_list(Seq&, Seq&, const char*, const char*, bool, bool...) except that it doesn't take the second const char* argument. It uses " = " for the equals symbol.

References mysqlpp::do_nothing, and mysqlpp::equal_list().

◆ equal_list() [7/7]

template<class Seq1 , class Seq2 >
equal_list_b<Seq1, Seq2, do_nothing_type0> mysqlpp::equal_list ( const Seq1 &  s1,
const Seq2 &  s2,
bool  t0,
bool  t1 = false,
bool  t2 = false,
bool  t3 = false,
bool  t4 = false,
bool  t5 = false,
bool  t6 = false,
bool  t7 = false,
bool  t8 = false,
bool  t9 = false,
bool  ta = false,
bool  tb = false,
bool  tc = false 
)

Constructs a equal_list_b (sparse equal list)

Same as equal_list(Seq&, Seq&, const char*, bool, bool...) except that it doesn't take the const char* argument. It uses a comma for the delimiter. This form is useful for building simple equals lists, where no manipulators are necessary, and the default delimiter and equals symbol are suitable.

References mysqlpp::do_nothing, and mysqlpp::equal_list().

◆ operator<<() [1/4]

template<class Seq1 , class Seq2 , class Manip >
std::ostream& mysqlpp::operator<< ( std::ostream &  o,
const equal_list_ba< Seq1, Seq2, Manip > &  el 
)

Inserts an equal_list_ba into an std::ostream.

Given two lists (a, b) and (c, d), a delimiter D, and an equals symbol E, this operator will insert "aEcDbEd" into the stream.

See equal_list_ba's documentation for concrete examples.

See also
equal_list()

References mysqlpp::equal_list_ba< Seq1, Seq2, Manip >::delim, mysqlpp::equal_list_ba< Seq1, Seq2, Manip >::equl, mysqlpp::equal_list_ba< Seq1, Seq2, Manip >::list1, mysqlpp::equal_list_ba< Seq1, Seq2, Manip >::list2, and mysqlpp::equal_list_ba< Seq1, Seq2, Manip >::manip.

◆ operator<<() [2/4]

template<class Seq1 , class Seq2 , class Manip >
std::ostream& mysqlpp::operator<< ( std::ostream &  o,
const equal_list_b< Seq1, Seq2, Manip > &  el 
)

Same as operator<< for equal_list_ba, plus the option to suppress insertion of some list items in the stream.

See equal_list_b's documentation for examples of how this works.

References mysqlpp::equal_list_b< Seq1, Seq2, Manip >::delim, mysqlpp::equal_list_b< Seq1, Seq2, Manip >::equl, mysqlpp::equal_list_b< Seq1, Seq2, Manip >::fields, mysqlpp::equal_list_b< Seq1, Seq2, Manip >::list1, mysqlpp::equal_list_b< Seq1, Seq2, Manip >::list2, and mysqlpp::equal_list_b< Seq1, Seq2, Manip >::manip.

◆ operator<<() [3/4]

template<class Seq , class Manip >
std::ostream& mysqlpp::operator<< ( std::ostream &  o,
const value_list_ba< Seq, Manip > &  cl 
)

Inserts a value_list_ba into an std::ostream.

Given a list (a, b) and a delimiter D, this operator will insert "aDb" into the stream.

See value_list_ba's documentation for concrete examples.

See also
value_list()

References mysqlpp::value_list_ba< Seq, Manip >::delim, mysqlpp::value_list_ba< Seq, Manip >::list, and mysqlpp::value_list_ba< Seq, Manip >::manip.

◆ operator<<() [4/4]

template<class Seq , class Manip >
std::ostream& mysqlpp::operator<< ( std::ostream &  o,
const value_list_b< Seq, Manip > &  cl 
)

Same as operator<< for value_list_ba, plus the option to suppress insertion of some list items in the stream.

See value_list_b's documentation for examples of how this works.

References mysqlpp::value_list_b< Seq, Manip >::delim, mysqlpp::value_list_b< Seq, Manip >::fields, mysqlpp::value_list_b< Seq, Manip >::list, and mysqlpp::value_list_b< Seq, Manip >::manip.

◆ value_list() [1/6]

template<class Seq >
value_list_ba<Seq, do_nothing_type0> mysqlpp::value_list ( const Seq &  s,
const char *  d = "," 
)

Constructs a value_list_ba.

This function returns a value list that uses the 'do_nothing' manipulator. That is, the items are not quoted or escaped in any way. See value_list(Seq, const char*, Manip) if you need to specify a manipulator.

Parameters
san STL sequence of items in the value list
ddelimiter operator<< should place between items

References mysqlpp::do_nothing, and mysqlpp::value_list().

Referenced by mysqlpp::value_list().

◆ value_list() [2/6]

template<class Seq , class Manip >
value_list_ba<Seq, Manip> mysqlpp::value_list ( const Seq &  s,
const char *  d,
Manip  m 
)

Constructs a value_list_ba.

Parameters
san STL sequence of items in the value list
ddelimiter operator<< should place between items
mmanipulator to use when inserting items into a stream

References mysqlpp::value_list().

◆ value_list() [3/6]

template<class Seq , class Manip >
value_list_b<Seq, Manip> mysqlpp::value_list ( const Seq &  s,
const char *  d,
Manip  m,
const std::vector< bool > &  vb 
)
inline

Constructs a value_list_b (sparse value list)

Parameters
san STL sequence of items in the value list
ddelimiter operator<< should place between items
mmanipulator to use when inserting items into a stream
vbfor each item in this vector that is true, the corresponding item in the value list is inserted into a stream; the others are suppressed

References mysqlpp::value_list().

◆ value_list() [4/6]

template<class Seq , class Manip >
value_list_b<Seq, Manip> mysqlpp::value_list ( const Seq &  s,
const char *  d,
Manip  m,
bool  t0,
bool  t1 = false,
bool  t2 = false,
bool  t3 = false,
bool  t4 = false,
bool  t5 = false,
bool  t6 = false,
bool  t7 = false,
bool  t8 = false,
bool  t9 = false,
bool  ta = false,
bool  tb = false,
bool  tc = false 
)

Constructs a value_list_b (sparse value list)

Same as value_list(Seq&, const char*, Manip, const vector<bool>&), except that it takes the bools as arguments instead of wrapped up in a vector object.

References mysqlpp::value_list().

◆ value_list() [5/6]

template<class Seq >
value_list_b<Seq, do_nothing_type0> mysqlpp::value_list ( const Seq &  s,
const char *  d,
bool  t0,
bool  t1 = false,
bool  t2 = false,
bool  t3 = false,
bool  t4 = false,
bool  t5 = false,
bool  t6 = false,
bool  t7 = false,
bool  t8 = false,
bool  t9 = false,
bool  ta = false,
bool  tb = false,
bool  tc = false 
)

Constructs a sparse value list.

Same as value_list(Seq&, const char*, Manip, bool, bool...) but without the Manip parameter. We use the do_nothing manipulator, meaning that the value list items are neither escaped nor quoted when being inserted into a stream.

References mysqlpp::do_nothing, and mysqlpp::value_list().

◆ value_list() [6/6]

template<class Seq >
value_list_b<Seq, do_nothing_type0> mysqlpp::value_list ( const Seq &  s,
bool  t0,
bool  t1 = false,
bool  t2 = false,
bool  t3 = false,
bool  t4 = false,
bool  t5 = false,
bool  t6 = false,
bool  t7 = false,
bool  t8 = false,
bool  t9 = false,
bool  ta = false,
bool  tb = false,
bool  tc = false 
)

Constructs a sparse value list.

Same as value_list(Seq&, const char*, Manip, bool, bool...) but without the Manip or delimiter parameters. We use the do_nothing manipulator, meaning that the value list items are neither escaped nor quoted when being inserted into a stream. The delimiter is a comma. This form is suitable for lists of simple data, such as integers.

References mysqlpp::do_nothing, and mysqlpp::value_list().

mysql++-3.2.5/doc/html/refman/functions_w.html000755 000765 000024 00000007213 13515046516 022040 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Class Members
MySQL++  3.2.5
Here is a list of all documented class members with links to the class documentation for each member:

- w -

mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1UseRemoteConnectionOption__inherit__graph.png000644 000765 000024 00000015254 13515046516 032761 0ustar00tangentstaff000000 000000 ‰PNG  IHDRã{†»7bsRGB®ÎéfIDATxí”ÅÒÇ‹Œ¢&ŒŸä)êQÄ€Å|Ìဘ#*&Ì‚I"&}fP²’ ˆŠ€”8_ÿJû¾¹aîÞ]vwîÝ­:‡™îžêêwuUW÷\ªA0PŒ C nWqÊÄ-…Õo2¯ª`ù€)c~ôƒIaˆ)£ C O¨ž'r”ª«W¯–W_}µTy³ü@ zõêrüñÇç‡0¥,E… àüù矲ᆖ2TÆ.XýõeÙ²eù JiËP±8o¿ý¶,¶ƒgŸ}¶´ ¯øÙš1¯ºÃ„©Ì˜2VæÞ·¶ç¦ŒyÕ&LeFÀ”±2÷¾µ=¯0eÌ«î0a*3¦ŒyÐû³fÍ’víÚÉœ9sÊ\š?þøC®¸â Ùwß}¥^½z²×^{É…^(óæÍ˹îE‹ÉÊ•+µüÓO?-—^ziÎïZÁhL£±)·œ%K–Ȉ#dùòåeZçܹså?ÿùôéÓGZµj%÷ÝwŸ´mÛV¨J9eÊ”œêßd“MdРAZvÅŠò×_åôžÊŽ€)£Ã‡…uZ³füðÃ2yòdEmíÚµÂ?~¼¬ZµJÓ,X ?ýôSª .”_~ù%‘ö믿Ê{ï½'\ÿ¯¾úJ¾þúkM¦Noa|9ž½•¢Ü矞Tfþüù*/r|ðÁÂ5L´ÅËÊþ*ŠB½Ð­·Þ*Ó¦M“Ï>ûL|ðA9ÿüó¥GÚ¾¥K—ÊUW]¥å¸g‚€eg̘¡éü™={¶îۢخ8묳äî»ïNäû6¾õÖ[I8yŒÉÿî»ï”/ï…pVáȹb|¸MÿœÚæ¼–?øàƒõʻ΂‡vXâ¹eË–S”À â jÕªŒ Þ‡zhЦM›À)sà,MP£FÀ ÜÑ­à‰'žÐrNag”ïï¿ÿþzïm0iÒ$½Ÿ9sf0lØ0½?ðÀƒš5kêýN;í¸ @ùvÀÕªUKÔ3dÈ„,õë×:uê¤ÏnBÐ÷?üðC•½V­ZsIeÃ77Þx£–EÎÓO?= Î $d8÷Üsµ¸³ŠZŽ6ÜsÏ=Á•W^ì½÷ޚǻà@rp½é¦›4Ïc|ÜqÇ©ì`¼ñÆNÑÃbd½w›þŠkÖB…›9×,chbÚh£ÔÂõêÕK>ùäµ@?ÿü³¼ôÒK2zôhµ*§œrŠT©RE†ªoþöÛo⻜qÆ2xð`yçwäûï¿W‹…¥¹í¶ÛÔ’tïÞ]¦OŸ®˳Í6Û„jN¿mÒ¤‰,^¼Xœ‚*¯ë¯¿>Qëu!ÿˆ#ŽÐ5Ÿ·2¬ßÜ$¢e›5k&×^{­pýñǵ=¬3‘S(MFvY}ôQµ¬Ï<óŒðoøðájµ9Ú¯_?å­…ÿýC[±¼ß~û­à-<õÔSrÇw¨÷åþþûoùý÷ßå£>Ry<Ž>¿R_ w"‰–¼¤–q̘1Ê”ÙÚ Š ÿþúì\6}v‡ÏõÙ)@pÈ!‡è}ß¾},ŽSŒ`ìØ±SÔÀ)lðî»ïî eàÜD-·å–[jº>¸?ÎýUžQ–Ñ)ƒ/tíÚ5Øb‹-ôËxûí·'òœ ­|Üd‘HËtã­¯›02eNq”Ï„ Ô2î²Ë.IåÜä¡VD,þ /¼ ùaËØ´iÓÀ[Pÿ2Ö«ë-ã¸qã|–zÎUN<uc–±MU›nº©¶–™Ún»íôŠ%„Ü`Ñ«sãtfÇ*È8æ˜c¤nݺ‚uéÝ»·®9?üpqn˜®§x5å~ûí§ïóÇ)gâ>ÓÍÖ[oH&`B]žÂyÔ±–ÌFÛn»­fci3ÑÈ‘#5¹yóæzMµÜÔ“­Ö‚´qÏ=÷Lb¦XBO´ÅÓzë­§ëtÿ\ٯ榆F€[ㄞ¢où„§víÚòä“Oª‹zæ™gjage×]wÕ Ûní&wÞy§àê6jÔHzxòî N½†·9>ýôSu5}™pW4m°ÁºáÖ°I!Þ!Èóþûï‹[û&¾v ×A”wâĉYë;–•'¾®øæ›o’ÞËcÏ£2]s}• ‘ÚZ§NqéÖ­›îÕ±GM:UN<ñD6nÜX-+VÖ¹±‚¥ä«ʰžºù曳ÖoÖ„X^"³G}t¢<Ö—'‘Þ‡zH­ìn»í¦ùÎ¥M¬gQÖ¬/!"§¬]E-; ‡¢³½âÜu×]ZŽ?DY+­uAU࣎:Jó]€J×Å©‘`dä;RPÒò¬½¡“N:I¯ö';òãâìM.ynxV'`óâ‹/jà†Á uìØQ®uëÖj9 ¸Á5ëÙ³§cÜZL˺ˆ¨^ùãÝàD‚»!â"’‚2£ìn˜Ènذ¡´hÑB]<õ”$x`­ æœp j‘yäéСƒà¦bùÜZVÎ>ûlUHÏpÇw”Q£FÉ{ìá“4ÀÔ¥K8ƒí QÖüöíÛëDäÖ¯Z¯Çef`B" \°Ä¸¾©[00¢Ý™Úž¢²Ýµh.ÄüâpJÒF7x5à´x>¤ b«#Ln]8+¸½ºÀ)Œ¾O'L~kÃíñiY·çÎÖ­g±4`”©î¤ÂYœ… œU Rùó [lA ƒs;·G˜Æ‰­¶zR‰6º‰$ PãÜÛÔìuz®è³Œ%˜}q7 õc±°*©”)2XÉåku_6•?ÏŒøWR"€TT «Ì8á†g"ÚèƒE™ò--[3Fc™Ã: …{ì±Ç"Ë•á6íÕíã|h˜pAÝ€H÷<Ê”%m¿ýö²Ã;”eÆ;ú7pøÙ 6Å*Ï=÷œtîÜÙ~§bt§µÂÈ_ÌMÍß¾ÉY²ùó—æ\Ö æ/:€ÃùR¾ß«Èä“ҷït¹øâ¹™Ú6UTdªÐkÆŠÜq¾mµj5• :¸#gýÝ'OÉŸSù2éj¿›Z`½ÉÑ/,FeøwÉ%=µwºwïW)ڛ˖P ׄ¸¶fL@Qx7«V­qŸ5MTÁ Wx 0‰“0eL‚£°þûßéîèÛ zΜEî0÷ìÂj€I›„€)c…õ0tèxwvµš ]£F5wH{|a5À¤MBÀ”1 ŽÂyX¾|¥;ô=EV¯^£Bã²2ÞýÞÍ?ß\NKLR€)£G¢À®#FLvÑÓÑ‹¾hÑ2÷ùVæ‡}»æ/¦ŒùÛ7Y%ìM¶˜>ß®ù€)c~÷OFéÞxcRÆt—/_å~BcZd¾eä/¦ŒùÛ7‘’ 46ñãX©…ªWçg$ÍUMÅ¥žM ¡—B2Ι³XÆ›5]½z­Œ9Õ}fôÏþcèU»ÍsLó¼ƒRÅ{íµ‰no1{·±v$ÚjTXdïÕÂjK¥vÈqjkÖ¬.Qÿ8“;x°¹ª…6 *ô'T…ÖEÉ»bÅjißþÿôŸ/;oÞRyå•1rÎ9­ÝožÖöÉR­šÍ³ 0 ä¦B~BU Ø—Š˜“&Í–#ì%cÇv“&Mê— Oc ólúŒw«ÔHGÀ”1K1bAÀ”1Ø­RC SÆtL,ňSÆX`·J tLÓ1±C LcÝ*5Ò0eLÇÄR X0eŒv«ÔHGÀ”1K1bAÀ”1Ø­RC SÆtL,ňSÆX`·J tLÓ1±C LcÝ*5Ò0eLÇÄR X0eŒv«ÔHGÀ”1K1bAÀ”1Ø­RC SÆtL,ňSÆX`·J tLÓ1±C LcÝ*5Ò0eLÇÄR X0eŒv«ÔHGÀ”1K1bAÀ”1Ø­RC SÆtL,ňSÆX`·J tLÓ1±C LcÝ*5Ò0eLÇÄR X0eŒv«ÔÈ€€ûÿß“hàÀ+fÿ ƒªUk5k6ªT©f}V }†~}ôÑGIzçæVÏ ŸštË-·DeYº!`”eË–É}÷Ý—ñíHelÓ¦MÆ,Ñ0JŽÀÂ… #_¶5c$4–a”/¦Œå‹·ÕfD"`Ê eå‹€)cùâmµ‘Dp"ßȳŒwß}W¦OŸ.—]vY™Jvà 7ÈÁ,‡vXR=}úô‘5jÈyç—”^œ‡Y³fÉc=–ôJµjÕd«­¶’víÚÉ–[n™”WÖÿý·¬]»VÖ_ýœªúóÏ?å©§ž’¯¾úJæÍ›'›l²‰rÈ!ròÉ'KÍš5sâQÞ…Âmüé§Ÿä‘G‘ë®»N4hPÞ¢$ê+xËS¦LI4¨¬nÆ'¿üòKû¯¿þZ¾ùæ›´ôâ$,]ºTÆŽ+m´‘l½õÖú¯aÆòÎ;ïH§NdîܹÅa·Îe{öì)=zôȉÑÁ‹.ºHÞ{ï=9ðÀU^ÚЯ_?¹óÎ;sâG¡p™xþúë/q{}qˆ’¨s-ãÊ•+…ÙxãeþüùÚ¨m¶ÙFgÖüQÈßvÛm¥zõê:k®·Þz:輿ýö›¶ÁhÒŒ3dÕªUÒ=Öwß}'M›6•ZµjÉâÅ‹eÓM7õÙze@k×®­Ö²^½zZžLxþñÇ:óÍž=[˜Í·Ûn;µjäó²båªV­šöL™\)ª kÖ¬¬ W0Áú…©C‡²ÓN;%’>ýôS¹ùæ›e̘1Ò¾}{MâB3¨Phêoܸ±Ô¯__°3gΔFÉf›m–àMÙ~øAÀ¬±fÐ’%Kô+VÈï¿ÿ®ï‘¶”‡O÷çŸ^y<óÌ3²Å[PTŽ:ê(yî¹ç„<&ªvØAÓ©‹>d¢iÞ¼¹T©R%‘ŽÜàÿý÷ßËæ›o®ã‰LÚµzõjÙpà õ],m³fÍ’°‹’÷ÁëÛo¿Õq¹Ë.»è8Lm#rßvÛmR·n]^Q*‰¬þÝ’^×YihçÎe=öI“&©»îº«º'ãÇ×ç-ZÈC=$Ý»wW0|ðAMG¡N9åéÒ¥‹ðÎ7Þ˜ túý÷߯.Ú—_~)7Ýt“:ŽD¡Þ~ûí¤v׸hÑ"ŸNÄÍ»öÚkå‹/¾Ð½Ûn»É´iÓ´ƒqÿØ€e"™0a‚\}õÕÒ«W/mKêsRE ´¨6`Áir£ìtüwÜ!`E~Ð{W/^xA>üðCå«N(°;é¡u`ÁÀ›I %Ç­¬S§Žâzúé§««ýì³ÏʨQ£T¤nݺ©ûKEÉßxã ídfÝ'žxBóø T¯©Ï Yn¢ÚÀ+´‹NG¿õÖ[j™œÂ®®ð| ÿ^yåpX¬ýöÛOk-гùI'$¯¾úªìµ×^òÚk¯É±Ç«íå톯åÅ_”×_]®¹æÅcâĉrùå—ëzï€PEÄ5gà£ðã]&þýû«G´|ùrµòÊ8ô‡¶Â¼XJúƒ>EÁàûôÓO'Þ`RgÝÆ˜aÂD.Oô)í OÏ:ë,'\÷l²ñ®o'WdGž¾}ûêø`MëÛèëẮ²†y÷¾Ô”ñŒ3ÎPà÷ß•ÎC¹ü3à1 ° (!ÄL¾ï¾ûª•hÒ¤‰ÎX(³wïÞrñÅ«‹Å»Çwœº^”ÃÚEAC=Të¡®–ÕÉ@ñ|¼5çËá•1õÙ¿ŸíÊ;̺©m@~&$” ·E`v'kçiðàÁÚnÚÎ@ŽÜqÇw;¸¦¸º”ß}÷ÝÕtìØQ­õaY ?þXZ¶l™p[Á 7o •è+,bëÖ­uð#?Öœ5nx"I}/üŒ»Íd…À ~áúŽ<òHug±¤tPÒúœ>d’Á²ywýçŸÖq%õP/c«Ë’‡þeLñN­«¬Q|sI_g7ÕWâ£P~à_Ðq¸f H\'Gp# ”·ëJdE&Ï[Á°;Ç ‹"Öab`z¤{eãž<êÌ…èL,i*árùhgTp» ¬Âˆ#,°¬“dõÄd‰[ê)œç]vÚ‘M6ßN¿Ž…xqÄžmÆëºÊš‘iމ¥¦Œ^銪W÷ —‰Ž«ázœy智nÃ"°Æ|òÉ'å‚ .Ðü (˜<ø^3Rþ0Ð<ùà.›'øø@.I6ÅöïpE‰§NN‚X¹}öÙGÓ£ÚеkWÍgmâ·F˜ p HeŠÆ2pÙÀmÇ#àEñ /—>€/ƒ›@‰'‚cXh/›OçŠÒ`‘põ¼b#¯ŸÎÐ&¯(¼÷þûïËçŸ.W^y¥ò  ²—Ñ™( ùôž’ÿFåe“Í·“þñ„wÂáŠ+®ðIiWx®‹¬i ‹‘𿩪/­KÑV­Zi´“èÖÑw ±f`݃«Éž¨(3*•5 €µÖ!Šèd‚ Ìò¸z¸$ÞUæê….2&Ü5ˆuÉÃ?œpRŸÛ¶m«Á!¸ŒÔC€ƒÂúŠjÊO›†ªòÃû®»îÒõ*…(ˆhaIydâM›q?ñPˆ2ãCmœK¡|LjàDY¬¸±|=z´\ýõT¡,“…W¶6‡\\Ä(Zq©4xP'ÝŽµÀúmå¬6ë´01™!ŸwM±ÎÈf©}Ã{¬ÑX>À}@¼šTÂ[a2äý’`ŸÊÏ?%+Nj©môü¸–•¬ìÉ3 1†™øC4¯Ü,#•ÒDÐpçpoR‰Îgÿ)aQýº)S~8 > ö(ʤDQeSÓáÍŒEÙÚP”\Q<Ãé¥Á~Xo Ãüý=ÑÕ0 ÑÂyÜc½²ñ£ Ë þ•6%^H&Jmc¸LYÉ®#õ¾\•‘Šý\æN(—g¸ª©D䌠J&\©Ì”oi†@ÜÄâ¦ÆÝè|ªŸh). !\B¬?Û{î¹gNb1ÆEä]Üø|8ðœ“à•´P67õ+þJ NœÍfÝËq<\O#°¡M¤–Èä°aÃr-<ç$¸JC \ÝÔ´Ú+q,¢µD÷Î=÷Ü,î‰?þøãºÀg]C ý/" Hüw‚ XF¨»8žs9€ÊnÊSÆr9½ÜS¢{œÚ Ñ_¶Ø~àL-eˆg:àÎÙÒ’x.êvX&»/ÌM-œÓja}GTÖz ŒR†Oe:àžz¨;Ì#—ÏXÚL°Ã|ì¾ü0e,?¬“j½dS?q®“ýD¿ñM™¨î™Þ'-—Ïì÷e:€ÅÓÒËSƲÅ7’;{XÇLÄz’ix?´¸Ü‹{àÙ[hê5ŠSÆxp×­ ÎÙfúÉÎâ¦rdËÜ=årÀ€'…¬Šs8Û×e×òCÀ”±ü°Nª‰O‹8Bä”Õb}8Ë}€ÍYP>¢åKyÖ‰žü!ëÔîùxàÙËl×â!`ÑÔâáUj¥9 Êöß0ò‡'ÎÌ^zé¥ißFp_—ÏQ°½,v-_ìNùâ±6öq)9²Çáöpà&—îqxÎØK,l'pÌ2 _Ù ªÊç=EQ8 .›ožÃ²Ù}îØš1w¬b)iÜc=–JÍ2Æ{î•b1Sm<÷·­d!!`–±zËd­Ð˜2VèîµÆ¦Œ…Ô[&k…F rÍÈ †@é"þÜTÎiÊÈ>‡‡ C l@¿2ý.OÚ¦ÙTo\ C æÙš±„,Û(/LË i«Ç(SÆ"²lC ¼0e,/¤­C þîK=|Y4¤IEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1Query_1_1RowCountInsertPolicy-members.html000755 000765 000024 00000012220 13515046516 032053 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::Query::RowCountInsertPolicy< AccessController > Member List
mysql++-3.2.5/doc/html/refman/functions_n.html000755 000765 000024 00000013212 13515046516 022023 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Class Members
MySQL++  3.2.5
Here is a list of all documented class members with links to the class documentation for each member:

- n -

mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1Comparable-members.html000755 000765 000024 00000014232 13515046516 026312 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::Comparable< T > Member List

This is the complete list of members for mysqlpp::Comparable< T >, including all inherited members.

compare(const T &other) const =0mysqlpp::Comparable< T >protectedpure virtual
operator !=(const T &other) constmysqlpp::Comparable< T >inline
operator >(const T &other) constmysqlpp::Comparable< T >inline
operator >=(const T &other) constmysqlpp::Comparable< T >inline
operator<(const T &other) constmysqlpp::Comparable< T >inline
operator<=(const T &other) constmysqlpp::Comparable< T >inline
operator==(const T &other) constmysqlpp::Comparable< T >inline
~Comparable()mysqlpp::Comparable< T >inlineprotectedvirtual
mysql++-3.2.5/doc/html/refman/functions_rela.html000755 000765 000024 00000006131 13515046516 022513 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Class Members - Related Functions
MySQL++  3.2.5
 
mysql++-3.2.5/doc/html/refman/inherit_graph_19.png000644 000765 000024 00000004506 13515046516 022455 0ustar00tangentstaff000000 000000 ‰PNG  IHDRœ$|!SUsRGB®Îé IDATxí›g¨T;ÇÇ޻ػboˆ;‚]Á† ŠEì½+Š Š]Û¿Ø{{ï½÷‚½í;¿<²/÷ìïÞÝuÁGvO’3™$ÿLþ™dïMäsD¬XbƒÀþıiǶbøëpÖbŠ€u¸˜Âm³g} ¦$u·vüøq™={¶»Øæ- F`Ù²e’>}ú8õîÁƒ²aÆ8J6cHÏŸ?W>ôõë×€j §5Ö¯_¯“öiHû÷ï—:uê­ÀpAµl¡E JX‡‹ÖLhX‡ '«%¬ÃE Hk&4þz‡[½zµôë×/´Ñ†©õéÓ'iذ¡ôìÙSÜ?=?^&Mš¯å»wï*?3MÅ!C†È„ âµ1tèPeƒ¾ðiÖ¬™ªûðáCU×m7^ƒ —.]Rö¿}ûæ¡~±ç)5|“±­yíÚ59zôèmôû÷ï²}ûvÕFÕªU¥k×®þöN:%I“Æã»wï” œ÷ãÇþ4†Ž;&™3göÛôJpGúâÅ iÙ²¥Ryòä‰,Y²DÖ®]+÷ïß³ /¡”¿zõJõïçÏŸ¡¨'H'b†ã®…•Eçîܹ#.\Pøõë—\¼xQ˜& ”ׯ_«´þbu¾}ûVgåôéÓj˜S>|ø  0˜´{÷Uúýû÷ tÚ;räˆ\¿~ݯÃj}öì™Ê_½zU˜\¦OŸ®¶*ýg4"æ¡EëÄ÷ôÂÁ«^òäÉ•S˜ø »fÍÅN°‹–°B/~mË×åúI<;lØ0™5k–ÂQ—Gò ÍK"iÁUšN“&Œ3FZ·n-zeqâ0`€Šû˜PØ ¶cÛ{;wN/^ì²ú_g%n$>Ãq½­£Å–жóÝ»wK“&MTebÚ¿uëVм*4¾X ùí×Ü‚`uî°`pœmâĉFÐ’^8èÚ8ÐðÁ©ü‰Å#L© ,×%0''V}c`êz¥Á—qrøâÀ©ÄÌá4â`½Ò­[7ÿa ÍF2dPW(\†¦K—NQ:«-cÆŒR¡Boù+: s¥²¥öïß_²dÉ"+W®T,ÄÉUËÍ›7•öíÛKíÚµýNÁö1oÞ<ÿ©Õ§¾i¶¶V³mÆ›²8äÐW-¦ž™v¿÷ÂAëÁXõêÕSœ€ë úÑ¢E‹8}a|,V}/ñ:Œˆ•éƒ9mŸ§Ù?ækÁ‚jn8€D,Î^Gœ?K⿸â”E;ãª>çÊ$À¬³ú|Î)Ìçl™ïœxÈ簛Ϲ ò9A²ÏaÉ:øP}Øq®|NPï×Ù²e‹ïó9']ÿ»h&œ{<Õg;ÛìïpH¨Q‡¹}N¼ì¯æÄž>‡©üù?‘pbs…µ;»Íï‹ÿЧË/¿羺*üg×ÀÌ3Ïœ‹„ßRO˜$0õ^UéX\xá…öᇶ_]AYe•UÚe®* èxâ‰'j Jå£ è3_¯[8P J·°±ªd@ç@%(ú WãëT‚Ò-l¬*Ð9𯔠.¸À¶Új«Ÿ§µÖZË–Xb‰6ׯol×]w]Ómßyç¶ì²ËÚ!‡R”9å”SlÞy絑FÉ&˜`£wÞy§xßS7¿ÿþ»}ùå—®~0_à'çÍJ+­dçž{®}ûí·MÕ¿ÞzëÙ•W^ÙaÞ®ö¹Ãdø× Ê«¯¾j=ôPƒ!vÏ«»îºË>ÿüs›jª©üštÒIí¹çž³å—_ÞÎ8㌦ÙrË-í«¯¾²…^Øóo´ÑF¶Å[¸€yä‘¶Â +ؽ÷Þk³Í6›}ôÑGMÕÙÙL7Üpƒ<òÈöÛo¿uª úùÙgŸyÙÛo¿Ý¾þúë‚7C 1„o^O3ôã?Ú¯¿þÚaÖ®ö¹Ãe(Ÿ¬Äc9½ÞóÏ?ÿœúöí›$íé­·ÞJZ<žõ?þHÏ?ÿ|Ò®“ÄOÓN™¾øâ‹6U½÷Þ{I‹§H{òÉ'“~úþûï‹4n¾ûî»ôàƒ&-ÖôÃ?¤·ß~Ûßï¹çži†fðûo¾ù&i¼½x Iˆøà¤6Ý}÷Ý~ '‰,þûì³Ï¦8íºë®E:c¿çž{¼ eƒà¥0ÿxLZôÅ\ļ0ž7Þx#Áê~úé§tê©§zû¯½öZ1fÊÓ>sÀ|æ?à'ù¡^½z¥›nºÉï×^{íå÷ñç ƒòúáus}ã7¦§žzÊùéÌiÌ7y˜i»$aLï¿ÿ¾gkµÏÌw_­Kˆ>kãñûŽþì²Ë.©Ö£• ¶*(<òˆ3DªØ%”ižyæI‹,²Hñ<ÇsøâsÎ9ÓüóÏ_4ÉâaQœtÒI>Aã?~f˜a|ÆgœL†a#Ž8bh øÀŽ9æsL‹Æ´ØÅ_lÚ½í¥—^²µ×^Û4ñ&¿Í®¹æÓ„Ùj«­fp€‰I¦]ØË>úè¦]ÏMƒõ×_ߤ5Lj˜ZŸ|ò‰—¯õGÂe'žx¢i²³Ï>ۯ믿¾È:öØc»™ðú믛€í¾ûîþNBjb’ñ •ŸI£m"¸¨{Í5×4iQÄ‚h—ñÒíÓÿÝvÛÍ´èÝïÀÔ9óÌ3íðÃ7Ú×Â4 ”—Íÿh£1mnŽHðL‹ÔM6x£ÍÆÖYgço^¦Þ½4‹›Œ˜J̉°á_„O@?{÷îmðxÈ!‡4ø‡o1묳Úk¬ÁFêc%²Ò–Ëo$8~{ì±¶Ç{˜6“@˜,ëÓ§uÖYÎs «I¨MZ¨\?k‘{mbî¿vÚi-÷9*–Uãë ¹KT–°Îj”Ç{Ì«bÇR‡RH0æÏ 7›ØiåÀz^Ùêi™e–ñ{L vLLvÌ5®G}ÔË_uÕUEW÷ÙgŸºeê©§.òq3ᄦvØ!…F -Å;ÚDs5Cì°C 5Tk¬±üBÃ1.4;2„¦ÓsÓó³ ¹ÿþûû{Ì4 ŠßÏ=÷Ü íÖˆB+Ü|óÍE¶Ð|ð¨B‚Ðô ü1v|xLÿ Ú™~sIè= ~Í7ß|I›BTã&0ùs¼¢õ¸0Åäg%´!´ãŽ;zZ˜µ¤mºé¦I~·©¬Qr³óøã÷²äk¥Ï¡Q(Ó ÕÓ(uCXĈ–H ÉóKmû¯Lÿ•šõ_uÖGø?˜sÆ sÚ­ ÆØ µÒçVêm*oÙ~ë¬0±.àLžñ‚@¢HžÅVÕn⨔vj‡pyË-·8’EíIfXE ΫõÒ*òâGê> e©dÿ(`ɰý¡^دeá}~Ö\qŽ~ÚŸ+ÊࣈG‡Ó–ÉPw@ìd¤_ÏØeŽ% ‡×4¬ÝÓßá?m°Á~Ÿ£^1/™˜Ôˆ£i´«ÍÁýBü¹ès„I˹ïï@ùð½ÂG‘yÙö‚ÙY>· lÔ#!q˜š,øyzqôÑG%µ&™¦þÜJŸ¹iG IQW37õ|ÔajUPÚnòaûí·O²ÛåÇç¬a+“ìo‡<Nc™àPêa±×… ðŽ…Áä÷qŽÂ"ã, ¢/8îqÎS.ÃØ¥)ÂÍbòq¾¿ÒV‰³Î0‚‚oœspŸíJ«Õœ›<_£{Ú‚/]á}+}nÔ—zïê J·9ó’Þ ³†0Ì,ìá2Ö"L4üfˆz9qe‡¿™:[ÉÁÕ,ᇅ/V« cÇL«EØó9@Q+O½4Ì*® F|Ã×Á<ë su…ZésWÚ)—í§‚Â¹ÊÉ'Ÿìgœt–XTàüe"¬¾1A gÍ8еÊWiÿmôˆ ,¹ä’mPâ—p`9Lê rGìU™pÔë‘Î-üà³ÞûžN—JwäHg E¬W´I¬‡yŠ¡5qÊ ôÌAòhè¼ÊvƹN—ée @ï‚æh’Ì(‡v9ôÄ‘¦~òÑ@Äâà´­UX‘YÛ¦h&óͬ!p¨¹)2ÃÐòJƒt‚ªø,¾øâ&ŸÏtŽS«X?MëÔKd~2ªª“Mj[o½µŸ®rêÛúGãºÐqù &P¢f¥œWÚÄ#ª—3›\;²xöÝw_7 c„T ½Óáœ/*Nð!æÈd ]"AÏØ´ZòËñ|_«¯ÔP7‚R™ë¸ÐÚ´  ι °ù":A>ƒŸ­qb¿Ùf›™‰[pÁóªœÊNMw8óTÒU›ªo½õVG!4ÙmÒkFP1¸üé<êõ€ƒ ªƒƒO§±é àQÎdþLº`Ë"ðŽgêPˆ KÒ ZíüÿMû¿œv—‰SqP0Щ@ÚÈè¿d{§í¶Û΋ÑwP9"‡“n½pÚ‰)Ó!ž¿?ÄUQhN¯„ÈOÿ¹Ï‰Ø:òE”±U b!m€I¬]Q…¿8Ê`§õÔvù"A ÷‰xµ æQá2ŽæEZü–Á†Hïêo=g¾GP¯Z‚€þ˜l¨Q! bâ‹`a±hêÆ”(SÏQ0í`Ž4x ””2-¼Mžž£KÀ³ä‡»¡=Úe :ÓðhdÞ•Û!-'£L!$V|WþÊï}§áÂr饗ï !ìfºé¦+…—„qØÉ†À‚¦?lAÒÚâ„@³lª³/a$‘‡_ò+GÔsO BÌ&u$(ŠRðþ²æpxžNXýfcÏÑÍbæw„Öçe¹'vKh™'wUP;sÆÅfÁ|±I) £hAáH?¿BË¥O>ùäÞgÎp/B©¨è¯àrÆ °ç‚#§œ­åçz‚Ò#>Š&¨&‰GâDâˆy‰Êi0ÑÁ8Øñ8vع G÷Hdœtl×zˆ_ÔaÓqŒSŒý©áüëA`iÞkQ‘³D/‰wF9Nñq¨i ÿÐ@&c1–h‡¢‡²¥ <:˜ÓjÂlˆß’v(Ê”oˆ”Æw Æ `ƒ(âUW]µœÍ#y9…ç´^³mø191Êjƒp›Ÿ/ ñ à1a:úfÇÇ&áÍ‹÷ÌA=~™š¼!ò@‚ê—„ÝÁÒˆÂÈ _„Óõü¢ËXD'àÓ᫳G¤s^k‡X@xŸ h/ˆ”îV*‹\Où(´Ãi,;+Ä·ìrìÚ\ì®»¾œCßaØ©ûôéãéµ4 »'„ÉÆKäkNb G«’†y…VA›½,!ñ¬úúÐÛ*÷‡“|ˆ?ÚÁ‡Ñ$x@nyÆ:B£àŸ0ú‰~æW®Q¢NË7Ùd“xô_42&U¾Ûb~( ÑûÅ÷.¡I9\­E˜zh¨«¥ì£`nÁGxÔ‘é…¯&0#²û/Z­Z®¿M¦ìߌv˜›øž'{ÝÔí?®QˆöFä,j@”É!ñMìŽ @ 6ì5"v'âÂ@„‚ØY‰Û³=‰Ø+ K Y…«ø·¼=b§¢ŒÀ@ú ¢T&"aùö„ÝŽèavwâËjEï–Ë{¢ñä§ñfµ´I^†1Å®éšq“a|oDß9›B³Ë‚viC°ãŽ;.²x°)Ÿ!3v´8qf=ADCS7ÌÍ|.ÿÓE´ÚÔ´¡ùËAÇ€Ó{+X”˜5¸î¤3½Òã¬h¬‘äÌJ5 r„A„wc.igr3‚SY”Ê‚)‹“J߯¸)Å9“ÀBżœfïº)Ç é| .ÄÌ™T&̾Çt"Àʼn™€°ñ‹°5"‚©Ÿ…Ô‘ Ôª†3¢øHŒó úÌs_}ÜÆ‡YÚ‰ýÜŠEƒ9Äæÿà­4”›½˜’A1fúWG㈲µ~ ì”OÙæì„ +êÎi3 ›ÀIMsS¬Ö9 ›(ã€çœ×pØ ÌÍœðÌ'ÝJe}Ô]¦—:é*_I¹ãåÐÎj½B¾‰Ç‰¥,ªNâ ¸YLmÌÇÇ?øÈX0©ø(в˜aÀ®Öå¤Åïï˦æù£ï˜$á —ÛÉë㓊v0ÕPßeÂôÌ€€¹ ôà "‡´L´»ùæ›—“˜°}¥ÏLæð;ß½KðÝé1É/q„ $‘¢ нxŸÿ–ùÓ®JPÄuMÓ(P7L@ˆÀɼîüž Wˆ¾2ßñ@€5œ—‰¾ñ9ñ9çœãÿC¡ü¾³ÏõL¯^T¨Žæ@)¹xßÝ7˜9|BÌÁ$]Nh œ^ÂÍsóG]´^Ü}êå'Ñ8xåÝ…O“qÄù¼ç7'DI'L&ü}3÷ôÝ»_¼C3¡Õ8È«E,ÂK"ÑÎhiLEAÚ¦hâZE< >Rw½µÿù7KÝIðk­‰ùÏ{Þ}Ç„înâÓ,!ÌÿœþqAÉ;Ó/îµ9b…-ç¯_4ù¯mƒÍ¨‘ aBb2 Q=Aé‘X¯þ™q8·|øÄ§Ç5æp½LñÆ™þ#oÿs‚‚³WQÅV9Ðc¨W«©òWèŸ9P Jÿ<;UßúT‚ÒßLEÕ‘þ™u}”΄õÏ­úVq p0 "Z¦v‚BXFœb—3WÏtð(Q ejwŽRÎP=W¨8`Vù(Õ*¨8Ð*Ai‚IU–Š• Tk â@¨¥ &UY*ü)]ìZÖ%ÞIEND®B`‚mysql++-3.2.5/doc/html/refman/inherit_graph_25.png000644 000765 000024 00000012312 13515046516 022444 0ustar00tangentstaff000000 000000 ‰PNG  IHDRà1ÃO¥ksRGB®Îé„IDATxíœä¶@uÉ…™9f¦ _˜™Saff¼0333C…™™™™é.Ìúý:Õ*­×ÖÌzgn7ùê*m±ZÝR“§p22zƒ†è‰^sŸÿ` 3`¦„ŒÄ@fÀD~î:c 3`¦ŒžÄF˜®ºê*Œ2ùÊ8È4Ðb¸ãŽ;bVãy`ß*æF¬ÊÊé]ÀÀÏ?ÿì6ÜpÃÒ• ¸úê«—Vȉ]ÃÀ Aƒ*+d°59#c ýÈ Ø~ç2*1°59#c ýÈ Ø~ç2*1Pi„©¬ÑË2.¾øb÷ÄO¸SN9¥í#{öÙgÝÑGížzê)7pà@7ÓL3¹¥—^Úí²Ë.nˆ!z×^öꫯº½÷ÞÛ=ýôÓn„FpK-µ”[e•U\ÿþýOçž{®{á…ÜI'T oo¿ý¶Ûn»í*ëÎ9çœnÜqÇu¯¼òŠ;õÔS+˵"ã´ÓN«ÝÏf›mæ[l1·æškvÊ<àŽ8âwÛm·uÊkUB³zã7Ü£>Z£fת° .¸ {饗ܦ›nê=ôP%°ÝwßÝ-·Ürî?þèZƒm,-þ%·Új«9˜dË-·t;ï¼³2Û"‹,âî¼óNíù·ß~s¿üòKíQ ;ì°nŠ)¦í~õÕWá}¼ñÆsï¼óŽ{î¹çj÷ÑlÅîô“½û]}ýõ×*ÍkYbÑ3hŽøbzÕû¯¿þêß{ï=ÿçŸz™ˆñŵè_ýå…X½ìÀþ÷ß×´>øÀóÍ7šúè£üwß}Òžyæ/ åüñÇÆÃ?üàyä/Hñ?ýô“ÿý÷5Ÿ}öñ³Î:«>‹¹×Ëɤý=üðÃ^˜SÓù‚óŸþ¹¾¿öÚkþ±ÇÓ4+ð÷ß{ñ×xÆ ÄïÌQÊ zžcÝ]ÖçœsŽ&3ÆjÀx>þøc{Õû‡~èea=ã5`|àxóÍ7õ™÷¸?Ã5øŒÇGÙ¼0þæ›oÖ1 ê;?Ìk‚ &ðm´‘¦_pɺÑOñŠçÀ8Á½á<4= =ôÐþ€ˆR¼Æ÷óÌ3ŽíñÇWÚ0üçûÙgŸ…ºeø±ÌO?ýÔßu×]ž»Aª+úÜrË-^¤Å¥O9å”þ°Ã³WÅ74n®¹æ/ÒCÈ«û Ãú2G¼+6ÚU±4¾ð ëçXÀ/¾øâáE€hæw^¿ÐB ….¿üòK?äCzˆXÄ!߯_??âˆ#ú>}úø 'œÐÃ(€ìR~´ÑFó"æiù9æ˜# &fÀuÖYÇO;í´~ôÑG÷cÙxãµn¸Aßa"Ë£, Ü}÷Ýšÿý÷wzg!hëÁÔ¼øF˜zê©ý¢‹.ªÉc=¶?î¸ãB‘Ã?ÜËI¡ïÝú믯m 5ÔP:q4ïùçŸ×tñ¿êüO<ñD/¸18ãŒ3´ÄZïæ›oîÇk,-zÑEi[”AÄAÏ@´àBfnÅ먣ŽÒr"âûá‡Þ3^Ê,±ÄºÉifôSÅ€¬#ŒÏšR™e–ÑZÅùÒO ?0î’K.©ã`<}ûöõgu–¶Å\ªú¡À¨¸„.Ç|óÍ‚˜¡³QGUÇI96öv3`ËDБGÙ}òÉ'îøã×c[édçw—]v™“ÓÆ¡“¬»îºNˆØ ãÉZ8wýõ׫î„ü}ðÁ»‰&šÈá´¤Þ8ãŒã„€T´#Š@ád—vˆœ_|ñ…Ö/û¦U}ñê¼óÎÓ릛n E…T{ë­·œœÆn¯½öÒsº5ˆÓ—_~¹òìò¬Ápà 煉µº€q[Ûn»­Jˆï§ õî»ï¾0fa/DWÓçªP6€PV6hmQ¬l¾)üˆáKO¯µÖZË‹¾©jˆ‰ÜÌ¥ªaT?Ê(£tX»-¶ØÂO5ÕT:.;QO8õ SÙÐYZ{Jm™”BÕ»LL Ü1Æj5d7ÃH «'ùBäºCq‚b½ã4¼ôÒKÃi9÷ÜsSLÁN){ïÂpñ«±,´AƤ“NòÙé›Ùå&Ÿ|r'º’îÜÅöiŒ]œ2e@ èÀNt/·âŠ+Z’‘ÇŽHd6XuÕUÝ6Ûl$ +¯¼²eWÞ0„bÕ‹‚Xp×Xc ·ë®»*î‹•9!9¡‘DDÓlÆ ¬·Þzz·Ù´ì±á}üñÇe? YH‹ç›Â0§ZS±¨ŠìD uœX¢wj[Uýˆ>éf™e–Vj Dœè1 ™A£²A†ä2‰'d¶è¡e"h³fxÄPѳÜÙgŸíd÷w+¬°‚NEk /åtp,2Œ“¢÷èŸ*«y¢ÓpS€ø±ÂÅ çËNß!ÏêïX?EWu¢—…,ƈùšy –É®ªyàANîPQ×"ÝØ‰Þ®“O>ÙUÅÝÊÎíDBplXˆŸ08kˆóÅ6g›m6e¼2ñõÀ¥ '‰#MhB…‘QlÌ"I¨º 5xˆ7—E] ?¸~`Ö—_~Y×xë­·VK4ãªúá` ÌeÀÚÅ4Aú˜cŽ©Ùl^ôÙnh6;P ¿Ô~ûí§Db»"2úöÛo¯úz §%»»§D%G¹;»u€\ôä}ä|˜aÙe— ÅE|Õv h1d¨ LtKúGï)¾sº¡ Á,;K¯f˜aTW㇃¸9­N~Ú¦ŒXÝôY3ä‡Í†>a(Ƈ+¦+°étgúçž{´^|Ç{ÅWè†EàBÇl\è›´!"iðZGèÕH#$º8øãâä@—äägH Ì\¶Ë/–ÂþDƉN‡}<#m±)`¼à\@?øŒ‘¼bÀoI»¬ ª­S\¦-ÏE™¶®(J°6…+B걎ßÿ½¾£ƒ`™¤ î,Œ"vªŽ>!Nnuûí·«e“:XBE ²9ú™0€6ƒT˜%”ÅrjVFÓ©K;ètèŸæî(Z‹ï˜ëÑ=õ¹d×õ3Ï<³¶%mÃ7Þè…(4’I&ñBÄAß@/gx¨o:/±Ó¦œ˜ÚŽý`Äz‡Žë Åñ¡×Y5+íÛXÁ}£KèFè£XJ­L|GÄÉæC>ÖíØE¡…ä¼ ËÆ@X ¾ýö[íK 1¥óMá×lÆÀ¼Ðµ%(B›NõC‘¤t­°¸S=ÒôGtA£tK³‚BgX¤Gi$~í{Jähî]eÀ•›|Ùi§Jy|Yø›`â"€0ˆ†=%0`\ÄH@;ø#!^c@òä”ó6ê†!ÚÆg~EÑU=üu±ÎÒ펟 ?$Ù`:˜¯HÜê‘ ã˜y›©—¡6Ô²u‰Ëµê9…Œhüº:ÑùçÖFg±oº»óê5 QŠøèÅe¡LTwb°¬Ý˜Ëò{c§>ü^§7Ž?é ¤°eVP9Ú¾âöð½á›ª fbk•µ#â„‹­Ž–ÎKj•²—í-Ï€ªKŠ &£zËØò8Z„â.UGÓv§0¤b»­~GT@5@“€ãEÊÊïßéÅ¡ÉD«˜¿¬X®ïbV×ñÇaYíì¯NÛìæbTI¿«8æ;„ÌÕi×ê –Çªƒ¥7sÇG*n-¯g3uÛY&u¶Ä J¤ ~¦Á DÇVA¬~X¸¦Ÿ~z½°ê]rÉ%NÂÄÔ„ÞhlqP.§hìJhT·ù¸ðŠÁ)øF[Ñn+Û`ŒDý`eæËŠc=Vq-ú©F9µ¢/¤¬Èu˰æÇëY§­ÁU§% Vv0 ƒ€ñ£À¢0ÇEÔ4Žxûö¬~üsrºY’2ƒ…/áWÃ/%' Š›±_Å;æ˜cô"Ì‹/DÎ .¸ ´…L8þAÙõBzü@ÝØYÎX0ãÓ¯fzæmËn'uz#P§4Ø,p»ô—Ï…øÄªec°28°q Ëä—áÓêÿªu`CecÏ„~1G1‚¨œM÷*®ÜUxNÑ8eM‰#`÷ Ïo«ŒeëUÕ¶õ]vÇ‚kˆyÅôÆ´E1T­W\¦[ÏÅ£·ŽŠ©Y|8ÚF‚œ ñ1³/¼-c¹ª ¨Eìh6P™Àg\2quIбÄ+jPt<ÌÚ˜‘ÅɬÉÍåâ9òÈ#µŽøŒ¼èjf§OÜXQSåñxÆ*JXã–ØÏb¶¾#Êáž‘ÍBç%W(W5 ˆ¯SqëÓ¹D»(žSøL­–f‘Jƒâ9ÁsÀ3îBÍ€žSôk5eàxžH©¶)O5ýÙWr2†6p?‰s>¸É,$΂à-„R‘‰©õ¸x°ŒÖ…”Ú7D‘A_`²0`€"ö•W^©Ï²+«†XL"åaNgÔŸ&§–~"#&Z“³! d`ÍĵöÚk{9¥N â:ùä„ Dâ’`,˜ü‰oäùüóÏ×:è†øÍ¶Új+}Ìï'Ĉn ‘‰ÓZÇKücŠY'±î犹Û@"0¼8dŠÈ¬s±|»³¸Œ Fc±`&p¤Æ€ï”z|1S‰hÚIá3µâìöóÏ?¿¶C‰È鉉ÄåB_®fÃ.½7Â3 H;eôAƒ0ˆHÚ6 EYÜKrº6\Ã*äk|Ÿ0XG ITº+£­xb^x¡n¶ŒC‚Btþ]uQ v$ÚÀŽ\S¤, 6ˆkHŠ•Ë$ñùˆ]8Yml6(—qÚ§V¸ ðSâ°…ÑÊËñWâdÑ›› ¾´*ÀpÀf€“\¢6ÔÙÍfS¥ÆÀœpÒDzã§ð™Z‡ª xûl©6Â3 XẸȀH00 Шí2dÓdȃ‰¹˜i0dmig…Ÿ×_]¥ ‚Ú ÀÇÜ ¤°-nt1 5br©€ÚT ®µîZZ|Çà"ˆŠ“Â3úE3A¹¡‚†9 *^3å«7úž¨–Ôå»ñv l‰´ÐhÃ×T@­ìªM*‹èÖaáv,š ÊÛâK”p,’E¨ ,/–³÷²6,/uO«0ÿDP)|V­ëUAñôq+2_ôÃÌePÏÖ†;,èUP§mæD½èè¬_Õv1½îzÅíô:Œ÷o}nU`ù¿uþyÜÍc Å€ƒUà?è­,ÿÏ $O¤Ú↨5’Y%BÆ0´dÈèò ØìåºÝÄ@fÀn"0WÏè2v{¹nÆ@71P©ò’22ºÔ'MN@¢<Šÿ)Ùý!ä2þ1@tûìj¾èĉéñǧüùóSéҥ驧ž¢%K–]ÁåË—éÂ… ’÷îÝÔ°aC:vìXÐåÃ-£ÿfn×ýû÷ßA ÁíÙ³'a‘EGGÓ!C¨[·ntðàAª_¿>?>¨J:wîLíÛ·—¼7oÞ¤‹/Ò­[·‚*Ž™Ò4ñOŸ>M'Nœ \»v-?~\æÚíûï¿§ÈýÕ«W…(×®]³ça'..ÎÎ ºmÛ6âv>Ž9B«W¯–¼hïäÉ“ñÒqƒ¶Qç©S§héÒ¥r5™ÎŸ?OçΓòè4®SÐÞ•+Wl"Þ¸qƒÐgÈâÅ‹iìØ±4hÐ š;w.ñC>zå•W¤?>ú(õéÓG4÷õë×m ¾sçNIG}ºté—£GR¹rå(66VvÉÀ0Æùóçžž;ÇŒ±3 .`¼eËÂÂIóƒôŒàÉ-?À º?½{÷¶Š+f•,YRžö¦OŸÞzþùç-6ì§¿o½õ–uøða iï¿ÿ¾]÷‡~hEEEY¿üò‹5zôh+kÖ¬VöìÙ¥\£F,Ö†’— g×3gN«|ùòV§N$­lÙ²Öˆ#$œ!C«V­ZRgLLŒ•%KkæÌ™’Ö¶m[«bÅŠVîܹ-äcÒXÏ>û¬¤áÏ¢E‹$nÙ²e×µkW+_¾|nÕª•U°`A‹‚Ü;ÿlÚ´IÊM˜0Áš={¶„ŸimbìÀ$]ºt’^³fM‹±„Y1HuÆ |Ð?äÃ8x±H0F=+ðBßy§±ñqö'Pý÷Ú“Û4­ñ¡uxb饗^ûØcÉÖÏ-¶eË–ôñÇSÑ¢Eéᇦÿýï("‡üLxѦÇ—2ß~û--X°€V®\)ZñC‡û˜NmmêÃ;̾}ûèìÙ³b3Ť@ÚŽ;hܸq¢Ù'OžLø|ñÅH¢%JPß¾}åŠû P¯^½”öªU«F3f”{çŸ*UªH¼ÓÜ*R¤ˆ´¿gÏÑôýúõ#ô»uëÖÔ´iSZµj•³ Ùa>Mš4Iòc7ÂûR´ó¡ïÝ»w—¾#ï×_-»¥! Ò<ñAØÀ¬!…Ü k)bíMõêÕ³ÍvíÚH “¦ kWbML™2e"?mÚ4bÍ&&kFbM¬¹ äÁõ™gž¡ *œfØÞèò0@ˆ´uëVÉ_¹rejÓ¦ ñÎC¼cP©R¥ìW3ðòÖ›o¾I¼sI^\Q…w ûþ ³u€LŸ>ú÷ï/axqø/‹;ÎÛ·oókÊ”)r6À.e¦ÎXÜgãÆ% c¢@šSÐx}à5BÚš5kÄ+…3AXK “xjÄ'׫óòË/‹ÂôuÔ¨QkQskñR<&‚Íñ¬0!-ÞªM´¯kN‹Ïòa²XÈ aw¡í·ˆípÛ«ÃnAkäÈ‘’ž^4¶çžÖÒ’¯›#Ò6“ÉÊ•+—]|½:Ï=÷œÅ»”Å&¬xRPÖ|Øœ³ø°lç1^xm‡Í>‹w8‹ýõ’‡“ÄÕ¨Q#W‡™ŒÑxm˜ô»W¥œ/Ƽ8¤~v}Úm'ð¢W[œg$¹ÄOnÇAvþÕW_MP”mZ‹¿¤±l±gÃ⃤Åf…M|gFŸ5ºb ¯S@|>0ZüÌÀÚ¼y³½¨œy‚ £n6_,öÓ'p'⣠Þ9,ö½'¨’}ò~LJŒ?{|ü–KPQ2#¼H|Ï}…µ•+hphcš Â¯;Ÿ’–@þo¿ÝÅ/‡¹ûp+ÃJsM(ñCÆôÕWÛøwzâä›!CÿNO”r¡å3dˆ–¸x°…\*î#๷3Ýrè[È“'+ Ö,^ÃS§~Ï_U¼‹þ£Z¼x½ úvfhpNÐJË–ðÏ棑#[$HÓ×з3]‡Xð$jã{rZ´Sn# Äwa­ß“(ñ=9-Ú)·Pâ»°ÖïI”øžœí”Û(ñÝFXë÷$J|ON‹vÊm”øn#¬õ{%¾'§E;å6J|·Öú=‰€ߓӢr%¾ÛkýžD@‰ïÉiÑN¹€ßm„µ~O" Ä÷ä´h§ÜF@‰ï6ÂZ¿'Pâ{rZ´Sn# Äwa­ß“(ñ=9-Ú)·Pâ»°ÖïI”øžœí”Û(ñÝFXë÷$J|ON‹vÊm”øn#¬õ{%¾'§E;å6J|·Öú=‰€ߓӢr%¾ÛkýžD@‰ïÉiÑN¹€ßm„µ~O" Ä÷ä´h§ÜF@‰ï6ÂZ¿7à5éY0`€Å¨…å'C†BVLLÞ°ælêÔ©žåwl—çÿV‰%hÔ¨QÞÔÚ+¿´mÛÖo¼—"=Oü9rÐÓO?í%Ì´/I СC‡$r¤~²Úø©?ÚƒT@@‰Ÿ  k“©€?õç@{ (ñStm2õ+âùå—Ô°aÃxŸ®]»Ò7ß|“"HwéÒ…>û쳩+©J&NœH?þ8åÏŸŸJ—.MO=õ-Y²$©bvúåË—éÂ… r¿{÷nÁ䨱cvz¤Šø¤… Ò½÷Þ+ŸråÊÑÊ•+©AƒÉ"M R,_¾œöïß(9Åâ{öìIXdÑÑÑ4dÈêÖ­alõë×§ñãÇÕNçΩ}ûö’÷æÍ›tñâEºuëVPe#!“çÝ™·3 ¯½öš] „)_¾<Í™3‡êÖ­+ñ ÀÖ­[éÈ‘#T¥J*V¬˜ÄoÞ¼™ *DÕ«W§téÒÅK777nÜ íÛ·®ÕªU£¨¨(“$WÔsàÀY„Y²d±ÓŸ'Oºzõ*mÙ²E4z‘"E$}ñâÅ4vìX4h½úê«v™^½zQ“&M¨OŸ>Ô¼ysÊ•+9s† (@;wgÏR5(C† têÔ)ºté]¹r…Ž=JP±±±”/_>»¾@cL¬ovápxùñžÜV­Z5è.¾÷Þ{ò$ÔY`ݺuך0a‚DŸ>}Úzä‘G¬ôéÓ[L¹8Ð.2lØ0‰Ë;·”«U«–ÅD’ô²eËZ#FŒð®]»¬Š+J{¬™­‚ Z«W¯–4Ö®Ö< iÙ³g·þÆoØmðB³êÕ«ge̘ÑâÅ"ù>úè#IoÕª•ÔÅ‹ÂÎo›6m’¼ËìÙ³%\§N‹É.aôçðáÃÖóÏ?/}g~Z5kÖ”~!Ì‹PªJlŒ‰õÍô#©k¦L™<ÿä–’Dj¦ß.ñY#Zø<öØcBî *XçΓ¡°æ´Øn¶Ød‘ûÉ“' iØ~¶V¬X!áO>ùDÒöìÙc±Fµºwï.÷Nâ?øàƒkXkÇŽÛÓÖO­ZµJŒ8D2ÁÅþ†Yƒ¶˜|Ĥ›zÞ¼y´mÛ69hž?Þ®æÙgŸæT‹-hïÞ½’%gΜv>gåaVñneG<˜2gÎLè+ƲlÙ2;Í_ ˜1꛿úÒj\XÚølŽÄ›Þ½{Ó˜1cèÅ_¤ŸþYlag6SèäÉ“ÄfØôNb˜HsÊO?ý$·~ø!ñËXvRÑ¢EÅnǯY -,À¼yóÚyLÞ# . ^‚ʼnƒ*ò1 ÷¨óĉ&ÉïõСCIŽ1PßüV˜F#WitÁt›íl!u\\œðpp5 -—á°pèå-Ü$Óúõë%ÍŽà@áÂ…å–Mb›Z>È÷öÛoËAšÏ ¢…±` íq õ•@fÀ7nÜ(Þ(ß2sçÎ%6#d§1i8¼a3&A_Mš¹3Æ@}3u„Ã5,‰7> , ¸õðv'Û»BF˜9ØîgΜIׯ_§Ñ£GËË__áºå±³˜vŒvdÒñÃòp›ÔÖ Öy@ô͇Kø$%x²Š`þið*ÁŸä§È³„pKjŒA5~j ®m¦:JüTš‚7ôMÉT‚^šUâ§ú ná7;ø”J݈Øf=oãã)k8>IÌ» ¿¦p–Οÿ.bÉ—šO÷ljv ±¶ñú^ 7¹rå& ðeÍMÇßnÓñàå@¼âQÙíi_¹reÂ'Üdúôøµ†5¬íã˜÷ñ¤¿½)nãôòxÔÆO…Ù‰ýAÌ·˜˜(~oh}*ô@›T⇘'N\ Õ«÷³Æ·(.î&¿j¬žO)ñCŒøœ9ù‹$éìVÏŸ¿Bß~ëÿý{;“R%~ŠCšx…±±kEÛ›\11éùi5w ¡º*ñC…4·sèÐ)þU…#ñ¾èw‹æÏßÌßÜJú]ýv5ì›Râ‡pŠaÏGGÇÿ 4íÚuþÑ«m!ì‰6¥Ä!fÌXË­n&h1* æÎºñáJ|÷°W3^O8pÀÿÁñÞÎ’%;د5^½q%¾{ØÆ«yöì ü=Ø„fŽÉ„è°õUBƒ€?48ó—Á׊ß>Psxq¶TBƒ€?8¯]{€ŽûýǤü5‰Zx°…\*î#àéwuÜ~hZغõgþQÙbñܘ‡Ÿæxæ}Ínw?dµqã!þU¶JvœÜAÀÓogº3doÔÚ²åTªT>9²…7:Y½Ø­¦NdM¸ŽöÿPâ+"%~DN»Z‰¯ˆH”ø9í:h%¾r "PâGä´ë •øÊˆD@‰‘Ó®ƒVâ+"%~DN»Z‰¯ˆH”ø9í:h%¾r "PâGä´ë •øÊˆD@‰‘Ó®ƒVâ+"%~DN»Z‰¯ˆH”ø9í:h%¾r "PâGä´ë •øÊˆD@‰‘Ó®ƒVâ+"%~DN»Z‰¯ˆH”ø9í:h%¾r "PâGä´ë •øÊˆD@‰‘Ó®ƒNðQV¯^Mï¼óŽ"ã2GŽdãt“òç¿ìrKZý¨Q£¨D‰N v' ~ll,µlÙ’~øagF +iË—/ÓÚµkiÓ¦Mü?Ȫ9û¿;à?:t¨3£†4‡ÀáÇ©C‡~û­6¾_X42ÜPâ‡û ëøü" Ä÷ ‹F†;JüpŸaŸ_Ò<ñ¿þúk3fŒßÁ¥dä|@S¦L ªÊ .P\\\PyS*ÓÍ›7éüùóvuo¼ñ-_¾Ü¾¿Ý<#ãÆ£nݺQãÆ©k×®ôöÛoÓéÓ§ƒ®òêÕ«„z 8pöíÛ7Yåƒn(Ó<ñäÖ­[“1äÛ˺}ûvÚ³gOP…›5kFË–- *oJeZ¹r%5mÚ”nܸ!U‚lwºø@îž={Ò_|A•+W¦îÝ»Óý÷ß/c{î¹çèÀAu~ô#FHÞ[·nÑ•+WȲ¬ Êº•鎉ýúuúõ×_ ç—_~¡ýû÷Û0»ví²'ãØ±cñ´2ž8q‚.^¼ho÷îÝ´mÛ6ÇŽäÀÁÏ;G˜T´é+—.]’º0ù[¶líbò€FK:tˆ@d'10×®]#L Ä÷ÞÔƒ+4+êBù;wʘ1~ÆA:úläøñãÒ'ôÑÊ›q9rÄîÒËæÍ›e¬&¿¹¢Ìš5k ÄaΜ9#ÉHÃz÷îMµjÕ’<¨Ë)Ø‘œqè°5}1y±Ãù„°ALX@àËÿû_*X° M:U>wÝu—;Ë믿NÙ³g—|˜#(ô x¾üòË2^Ó—Û½Þ±Æ7 gÍš•ðÔƒ‚¶…6›1c°Ð®ÐõêÕ“AíôÝw߈üç?ÿ™þõ¯ çÍ›'õäÎ[¶XLÈÈ‘#©lÙ²ò™ò¦mç ¢W¯^ôÕW_ á±8¾ÿþ{; ÔܹseÒ ¹?úè#IÃ$`â ñ½—HÇ´Óí€lëÖ­ ‚¥OŸžúõëGmÚ´Â-Z´H&y¡‰?þøcÙ)LuØ%AFã‡ö!îܹ³ô ‰1>Š&´(m˜1à¾~ýúBƒ40ÂÏ?ÿ,‹ gΜ9Òæ¾}ûhÚ´i²sa+T¨€jHùòå%îèÑ£r „û‹/¾HuëÖ•ÝÇì¦2ð» l~˜Sú„ÅmŠuìØ±Â%(­/¿üÒ$ÝÑ5ň߮];©jÖ¬)˜Ð¤æÛè#<"¤á!˜´x€räÈAÐ"0‹  °¼ÿþû¢=±ý¡,ìæ H>LZ )Y²$=úè£Òò*THv “$͘1£]gCÐ>ìVCß{SÞ\QïÓO?-;ØOY<ˆœsâÄ Ëœ¥L·{M1â;'2±ÎÀÜÁ¶sàã©Ð¾}{±³¡åaÂ$€6„œ:uJ´&Â8D Œ@ƒ¡®{ï½×DI=ÐÖlµ‰-"»Ÿ@°ã…¦GNrAÓÁvÅ¡ÔW°Íc!ÁôÀ} ’+W.Á dAyØ×Mš4ñ­&Þ=” òsÔõ׿þUÒA2œ¹`Vá<Á®‹‚¹™Ó;ÎFp>ñkÔ¨a—K wSÖyEû7n¥hðÄÍ9'&ÞY.%Â)fêÛ™?ýéO²ÕOž;v샌1GL:¶u<¬B<´'Èíë΄9{¸ a#›-ć¦Å€H L·~|ìZFí‡>·b ¶lv,~ô¦´¥9ÄbŒÐø¾ö>0BvŒäüðÀ xøânêfÚôÅ-1ÜMy("œÿŒIeâqÅN…„¶}ëvæKnؼ–œ¬÷ñ“ÛH0ù18œØaÖÀŸë+~\‚¢téÒþ’Ä¡çÑ7ƒïAÌ7=%îÍaßÔ•?~þ¶U~s›èýwއ:|Œ`Ñú’iÀȘŽ&o0WxVœÎe`w;moyÃ=±ÅŽ…šÜÅê¯ýäÄ…ÌÔA§`>àІí͸°’ÓY“[º?ÿ2ÈíèOlÅŠý%iÜ"îwXµkÅSÅÔqm4Z±"à@ 1S'ä^G¿4¨¤JüTƒ^NM”ø©‰¾¶j<Ü¿sªõLVîóåÕ$ >üÌxD­¢„x Àù¾S¯ŽIЫ"ÆìV?ŒgW‡%~`l4%ŒPâ‡ñäêÐ# ÄŒ¦„1ÿ" +öNÇCIEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1UseRemoteConnectionOption__coll__graph.png000644 000765 000024 00000015254 13515046516 032250 0ustar00tangentstaff000000 000000 ‰PNG  IHDRã{†»7bsRGB®ÎéfIDATxí”ÅÒÇ‹Œ¢&ŒŸä)êQÄ€Å|Ìဘ#*&Ì‚I"&}fP²’ ˆŠ€”8_ÿJû¾¹aîÞ]vwîÝ­:‡™îžêêwuUW÷\ªA0PŒ C nWqÊÄ-…Õo2¯ª`ù€)c~ôƒIaˆ)£ C O¨ž'r”ª«W¯–W_}µTy³ü@ zõêrüñÇç‡0¥,E… àüù矲ᆖ2TÆ.XýõeÙ²eù JiËP±8o¿ý¶,¶ƒgŸ}¶´ ¯øÙš1¯ºÃ„©Ì˜2VæÞ·¶ç¦ŒyÕ&LeFÀ”±2÷¾µ=¯0eÌ«î0a*3¦ŒyÐû³fÍ’víÚÉœ9sÊ\š?þøC®¸â Ùwß}¥^½z²×^{É…^(óæÍ˹îE‹ÉÊ•+µüÓO?-—^ziÎïZÁhL£±)·œ%K–Ȉ#dùòåeZçܹså?ÿùôéÓGZµj%÷ÝwŸ´mÛV¨J9eÊ”œêßd“MdРAZvÅŠò×_åôžÊŽ€)£Ã‡…uZ³füðÃ2yòdEmíÚµÂ?~¼¬ZµJÓ,X ?ýôSª .”_~ù%‘ö믿Ê{ï½'\ÿ¯¾úJ¾þúkM¦Noa|9ž½•¢Ü矞Tfþüù*/r|ðÁÂ5L´ÅËÊþ*ŠB½Ð­·Þ*Ó¦M“Ï>ûL|ðA9ÿüó¥GÚ¾¥K—ÊUW]¥å¸g‚€eg̘¡éü™={¶îۢخ8묳äî»ïNäû6¾õÖ[I8yŒÉÿî»ï”/ï…pVáȹb|¸MÿœÚæ¼–?øàƒõʻ΂‡vXâ¹eË–S”À â jÕªŒ Þ‡zhЦM›À)sà,MP£FÀ ÜÑ­à‰'žÐrNag”ïï¿ÿþzïm0iÒ$½Ÿ9sf0lØ0½?ðÀƒš5kêýN;í¸ @ùvÀÕªUKÔ3dÈ„,õë×:uê¤ÏnBÐ÷?üðC•½V­ZsIeÃ77Þx£–EÎÓO?= Î $d8÷Üsµ¸³ŠZŽ6ÜsÏ=Á•W^ì½÷ޚǻà@rp½é¦›4Ïc|ÜqÇ©ì`¼ñÆNÑÃbd½w›þŠkÖB…›9×,chbÚh£ÔÂõêÕK>ùäµ@?ÿü³¼ôÒK2zôhµ*§œrŠT©RE†ªoþöÛo⻜qÆ2xð`yçwäûï¿W‹…¥¹í¶ÛÔ’tïÞ]¦OŸ®˳Í6Û„jN¿mÒ¤‰,^¼Xœ‚*¯ë¯¿>Qëu!ÿˆ#ŽÐ5Ÿ·2¬ßÜ$¢e›5k&×^{­pýñǵ=¬3‘S(MFvY}ôQµ¬Ï<óŒðoøðájµ9Ú¯_?å­…ÿýC[±¼ß~û­à-<õÔSrÇw¨÷åþþûoùý÷ßå£>Ry<Ž>¿R_ w"‰–¼¤–q̘1Ê”ÙÚ Š ÿþúì\6}v‡ÏõÙ)@pÈ!‡è}ß¾},ŽSŒ`ìØ±SÔÀ)lðî»ïî eàÜD-·å–[jº>¸?ÎýUžQ–Ñ)ƒ/tíÚ5Øb‹-ôËxûí·'òœ ­|Üd‘HËtã­¯›02eNq”Ï„ Ô2î²Ë.IåÜä¡VD,þ /¼ ùaËØ´iÓÀ[Pÿ2Ö«ë-ã¸qã|–zÎUN<uc–±MU›nº©¶–™Ún»íôŠ%„Ü`Ñ«sãtfÇ*È8æ˜c¤nݺ‚uéÝ»·®9?üpqn˜®§x5å~ûí§ïóÇ)gâ>ÓÍÖ[oH&`B]žÂyÔ±–ÌFÛn»­fci3ÑÈ‘#5¹yóæzMµÜÔ“­Ö‚´qÏ=÷Lb¦XBO´ÅÓzë­§ëtÿ\ٯ榆F€[ㄞ¢où„§víÚòä“Oª‹zæ™gjage×]wÕ Ûní&wÞy§àê6jÔHzxòî N½†·9>ýôSu5}™pW4m°ÁºáÖ°I!Þ!Èóþûï‹[û&¾v ×A”wâĉYë;–•'¾®øæ›o’ÞËcÏ£2]s}• ‘ÚZ§NqéÖ­›îÕ±GM:UN<ñD6nÜX-+VÖ¹±‚¥ä«ʰžºù曳ÖoÖ„X^"³G}t¢<Ö—'‘Þ‡zH­ìn»í¦ùÎ¥M¬gQÖ¬/!"§¬]E-; ‡¢³½âÜu×]ZŽ?DY+­uAU࣎:Jó]€J×Å©‘`dä;RPÒò¬½¡“N:I¯ö';òãâìM.ynxV'`óâ‹/jà†Á uìØQ®uëÖj9 ¸Á5ëÙ³§cÜZL˺ˆ¨^ùãÝàD‚»!â"’‚2£ìn˜Ènذ¡´hÑB]<õ”$x`­ æœp j‘yäéСƒà¦bùÜZVÎ>ûlUHÏpÇw”Q£FÉ{ìá“4ÀÔ¥K8ƒí QÖüöíÛëDäÖ¯Z¯Çef`B" \°Ä¸¾©[00¢Ý™Úž¢²Ýµh.ÄüâpJÒF7x5à´x>¤ b«#Ln]8+¸½ºÀ)Œ¾O'L~kÃíñiY·çÎÖ­g±4`”©î¤ÂYœ… œU Rùó [lA ƒs;·G˜Æ‰­¶zR‰6º‰$ PãÜÛÔìuz®è³Œ%˜}q7 õc±°*©”)2XÉåku_6•?ÏŒøWR"€TT «Ì8á†g"ÚèƒE™ò--[3Fc™Ã: …{ì±Ç"Ë•á6íÕíã|h˜pAÝ€H÷<Ê”%m¿ýö²Ã;”eÆ;ú7pøÙ 6Å*Ï=÷œtîÜÙ~§bt§µÂÈ_ÌMÍß¾ÉY²ùó—æ\Ö æ/:€ÃùR¾ß«Èä“ҷït¹øâ¹™Ú6UTdªÐkÆŠÜq¾mµj5• :¸#gýÝ'OÉŸSù2éj¿›Z`½ÉÑ/,FeøwÉ%=µwºwïW)ڛ˖P ׄ¸¶fL@Qx7«V­qŸ5MTÁ Wx 0‰“0eL‚£°þûßéîèÛ zΜEî0÷ìÂj€I›„€)c…õ0tèxwvµš ]£F5wH{|a5À¤MBÀ”1 ŽÂyX¾|¥;ô=EV¯^£Bã²2ÞýÞÍ?ß\NKLR€)£G¢À®#FLvÑÓÑ‹¾hÑ2÷ùVæ‡}»æ/¦ŒùÛ7Y%ìM¶˜>ß®ù€)c~÷OFéÞxcRÆt—/_å~BcZd¾eä/¦ŒùÛ7‘’ 46ñãX©…ªWçg$ÍUMÅ¥žM ¡—B2Ι³XÆ›5]½z­Œ9Õ}fôÏþcèU»ÍsLó¼ƒRÅ{íµ‰no1{·±v$ÚjTXdïÕÂjK¥vÈqjkÖ¬.Qÿ8“;x°¹ª…6 *ô'T…ÖEÉ»bÅjißþÿôŸ/;oÞRyå•1rÎ9­ÝožÖöÉR­šÍ³ 0 ä¦B~BU Ø—Š˜“&Í–#ì%cÇv“&Mê— Oc ólúŒw«ÔHGÀ”1K1bAÀ”1Ø­RC SÆtL,ňSÆX`·J tLÓ1±C LcÝ*5Ò0eLÇÄR X0eŒv«ÔHGÀ”1K1bAÀ”1Ø­RC SÆtL,ňSÆX`·J tLÓ1±C LcÝ*5Ò0eLÇÄR X0eŒv«ÔHGÀ”1K1bAÀ”1Ø­RC SÆtL,ňSÆX`·J tLÓ1±C LcÝ*5Ò0eLÇÄR X0eŒv«ÔHGÀ”1K1bAÀ”1Ø­RC SÆtL,ňSÆX`·J tLÓ1±C LcÝ*5Ò0eLÇÄR X0eŒv«ÔÈ€€ûÿß“hàÀ+fÿ ƒªUk5k6ªT©f}V }†~}ôÑGIzçæVÏ ŸštË-·DeYº!`”eË–É}÷Ý—ñíHelÓ¦MÆ,Ñ0JŽÀÂ… #_¶5c$4–a”/¦Œå‹·ÕfD"`Ê eå‹€)cùâmµ‘Dp"ßȳŒwß}W¦OŸ.—]vY™Jvà 7ÈÁ,‡vXR=}úô‘5jÈyç—”^œ‡Y³fÉc=–ôJµjÕd«­¶’víÚÉ–[n™”WÖÿý·¬]»VÖ_ýœªúóÏ?å©§ž’¯¾úJæÍ›'›l²‰rÈ!ròÉ'KÍš5sâQÞ…Âmüé§Ÿä‘G‘ë®»N4hPÞ¢$ê+xËS¦LI4¨¬nÆ'¿üòKû¯¿þZ¾ùæ›´ôâ$,]ºTÆŽ+m´‘l½õÖú¯aÆòÎ;ïH§NdîܹÅa·Îe{öì)=zôȉÑÁ‹.ºHÞ{ï=9ðÀU^ÚЯ_?¹óÎ;sâG¡p™xþúë/q{}qˆ’¨s-ãÊ•+…ÙxãeþüùÚ¨m¶ÙFgÖüQÈßvÛm¥zõê:k®·Þz:輿ýö›¶ÁhÒŒ3dÕªUÒ=Öwß}'M›6•ZµjÉâÅ‹eÓM7õÙze@k×®­Ö²^½zZžLxþñÇ:óÍž=[˜Í·Ûn;µjäó²båªV­šöL™\)ª kÖ¬¬ W0Áú…©C‡²ÓN;%’>ýôS¹ùæ›e̘1Ò¾}{MâB3¨Phêoܸ±Ô¯__°3gΔFÉf›m–àMÙ~øAÀ¬±fÐ’%Kô+VÈï¿ÿ®ï‘¶”‡O÷çŸ^y<óÌ3²Å[PTŽ:ê(yî¹ç„<&ªvØAÓ©‹>d¢iÞ¼¹T©R%‘ŽÜàÿý÷ßËæ›o®ã‰LÚµzõjÙpà õ],m³fÍ’°‹’÷ÁëÛo¿Õq¹Ë.»è8Lm#rßvÛmR·n]^Q*‰¬þÝ’^×YihçÎe=öI“&©»îº«º'ãÇ×ç-ZÈC=$Ý»wW0|ðAMG¡N9åéÒ¥‹ðÎ7Þ˜ túý÷߯.Ú—_~)7Ýt“:ŽD¡Þ~ûí¤v׸hÑ"ŸNÄÍ»öÚkå‹/¾Ð½Ûn»É´iÓ´ƒqÿØ€e"™0a‚\}õÕÒ«W/mKêsRE ´¨6`Áir£ìtüwÜ!`E~Ð{W/^xA>üðCå«N(°;é¡u`ÁÀ›I %Ç­¬S§Žâzúé§««ýì³ÏʨQ£T¤nݺ©ûKEÉßxã ídfÝ'žxBóø T¯©Ï Yn¢ÚÀ+´‹NG¿õÖ[j™œÂ®®ð| ÿ^yåpX¬ýöÛOk-гùI'$¯¾úªìµ×^òÚk¯É±Ç«íå톯åÅ_”×_]®¹æÅcâĉrùå—ëzï€PEÄ5gà£ðã]&þýû«G´|ùrµòÊ8ô‡¶Â¼XJúƒ>EÁàûôÓO'Þ`RgÝÆ˜aÂD.Oô)í OÏ:ë,'\÷l²ñ®o'WdGž¾}ûêø`MëÛèëẮ²†y÷¾Ô”ñŒ3ÎPà÷ß•ÎC¹ü3à1 ° (!ÄL¾ï¾ûª•hÒ¤‰ÎX(³wïÞrñÅ«‹Å»Çwœº^”ÃÚEAC=Të¡®–ÕÉ@ñ|¼5çËá•1õÙ¿ŸíÊ;̺©m@~&$” ·E`v'kçiðàÁÚnÚÎ@ŽÜqÇw;¸¦¸º”ß}÷ÝÕtìØQ­õaY ?þXZ¶l™p[Á 7o •è+,bëÖ­uð#?Öœ5nx"I}/üŒ»Íd…À ~áúŽ<òHug±¤tPÒúœ>d’Á²ywýçŸÖq%õP/c«Ë’‡þeLñN­«¬Q|sI_g7ÕWâ£P~à_Ðq¸f H\'Gp# ”·ëJdE&Ï[Á°;Ç ‹"Öab`z¤{eãž<êÌ…èL,i*árùhgTp» ¬Âˆ#,°¬“dõÄd‰[ê)œç]vÚ‘M6ßN¿Ž…xqÄžmÆëºÊš‘iމ¥¦Œ^銪W÷ —‰Ž«ázœy智nÃ"°Æ|òÉ'å‚ .Ðü (˜<ø^3Rþ0Ð<ùà.›'øø@.I6ÅöïpE‰§NN‚X¹}öÙGÓ£ÚеkWÍgmâ·F˜ p HeŠÆ2pÙÀmÇ#àEñ /—>€/ƒ›@‰'‚cXh/›OçŠÒ`‘põ¼b#¯ŸÎÐ&¯(¼÷þûïËçŸ.W^y¥ò  ²—Ñ™( ùôž’ÿFåe“Í·“þñ„wÂáŠ+®ðIiWx®‹¬i ‹‘𿩪/­KÑV­Zi´“èÖÑw ±f`݃«Éž¨(3*•5 €µÖ!Šèd‚ Ìò¸z¸$ÞUæê….2&Ü5ˆuÉÃ?œpRŸÛ¶m«Á!¸ŒÔC€ƒÂúŠjÊO›†ªòÃû®»îÒõ*…(ˆhaIydâM›q?ñPˆ2ãCmœK¡|LjàDY¬¸±|=z´\ýõT¡,“…W¶6‡\\Ä(Zq©4xP'ÝŽµÀúmå¬6ë´01™!ŸwM±ÎÈf©}Ã{¬ÑX>À}@¼šTÂ[a2äý’`ŸÊÏ?%+Nj©môü¸–•¬ìÉ3 1†™øC4¯Ü,#•ÒDÐpçpoR‰Îgÿ)aQýº)S~8 > ö(ʤDQeSÓáÍŒEÙÚP”\Q<Ãé¥Á~Xo Ãüý=ÑÕ0 ÑÂyÜc½²ñ£ Ë þ•6%^H&Jmc¸LYÉ®#õ¾\•‘Šý\æN(—g¸ª©D䌠J&\©Ì”oi†@ÜÄâ¦ÆÝè|ªŸh). !\B¬?Û{î¹gNb1ÆEä]Üø|8ðœ“à•´P67õ+þJ NœÍfÝËq<\O#°¡M¤–Èä°aÃr-<ç$¸JC \ÝÔ´Ú+q,¢µD÷Î=÷Ü,î‰?þøãºÀg]C ý/" Hüw‚ XF¨»8žs9€ÊnÊSÆr9½ÜS¢{œÚ Ñ_¶Ø~àL-eˆg:àÎÙÒ’x.êvX&»/ÌM-œÓja}GTÖz ŒR†Oe:àžz¨;Ì#—ÏXÚL°Ã|ì¾ü0e,?¬“j½dS?q®“ýD¿ñM™¨î™Þ'-—Ïì÷e:€ÅÓÒËSƲÅ7’;{XÇLÄz’ix?´¸Ü‹{àÙ[hê5ŠSÆxp×­ ÎÙfúÉÎâ¦rdËÜ=årÀ€'…¬Šs8Û×e×òCÀ”±ü°Nª‰O‹8Bä”Õb}8Ë}€ÍYP>¢åKyÖ‰žü!ëÔîùxàÙËl×â!`ÑÔâáUj¥9 Êöß0ò‡'ÎÌ^zé¥ißFp_—ÏQ°½,v-_ìNùâ±6öq)9²Çáöpà&—îqxÎØK,l'pÌ2 _Ù ªÊç=EQ8 .›ožÃ²Ù}îØš1w¬b)iÜc=–JÍ2Æ{î•b1Sm<÷·­d!!`–±zËd­Ð˜2VèîµÆ¦Œ…Ô[&k…F rÍÈ †@é"þÜTÎiÊÈ>‡‡ C l@¿2ý.OÚ¦ÙTo\ C æÙš±„,Û(/LË i«Ç(SÆ"²lC ¼0e,/¤­C þîK=|Y4¤IEND®B`‚mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1BadInsertPolicy.html000755 000765 000024 00000033001 13515046516 025643 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::BadInsertPolicy Class Reference
MySQL++  3.2.5
mysqlpp::BadInsertPolicy Class Reference

Exception thrown when an insert policy is too strict to create a valid INSERT statement. More...

#include <exceptions.h>

Inheritance diagram for mysqlpp::BadInsertPolicy:
Collaboration diagram for mysqlpp::BadInsertPolicy:

Public Member Functions

 BadInsertPolicy (const std::string &w)
 Create exception object.
 
- Public Member Functions inherited from mysqlpp::Exception
 Exception (const Exception &e) MAY_THROW()
 Create exception object as copy of another.
 
Exceptionoperator= (const Exception &rhs) throw ()
 Assign another exception object's contents to this one.
 
 ~Exception () throw ()
 Destroy exception object.
 
virtual const char * what () const throw ()
 Returns explanation of why exception was thrown.
 

Additional Inherited Members

- Protected Member Functions inherited from mysqlpp::Exception
 Exception (const char *w="") throw ()
 Create exception object.
 
 Exception (const std::string &w) throw ()
 Create exception object.
 
- Protected Attributes inherited from mysqlpp::Exception
std::string what_
 explanation of why exception was thrown
 

Detailed Description

Exception thrown when an insert policy is too strict to create a valid INSERT statement.

Thrown by Query::insertfrom() if it is unable to add VALUES to an empty query. This means the size threshold or max packet size of the policy is set too small.


The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1BadQuery__coll__graph.png000644 000765 000024 00000025705 13515046516 026645 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÀÅý´sRGB®Îé+IDATxí]˜EÓ.8rÎ$HR¢AODA$ʇYA D$HRÀâ§ Šp€"’A$H’,9ƒä ±ÿzëþöövïvgwïöf»žçng:wuUW˜ž©Š  D(RFè¼Í´ † !D4 Dôò›É04ÑHå>û“'OÒ_ýåžlîà  R¥J…dDkÖ¬¡K—.…¤í¤nôÎ;ï¤B… ÅFйwß}·¾4¿a„ýû÷‡|4yòä¡Ü¹s‡¼ŸÄì`çλóÊNC€ÇÙ'ÃÄ£G†|Ô2dpìÞ½Û#ÞŒ à-&1R0` RVÚÌÓ# xD‹IŒ ˆ”•6óôˆ2À7èôéÓ;Fâ/¿üB5òš®îóêܹ3͘1#\‡›dã:sæ ]»vÍcÿðÊ`í?î1?±CÊsæÌ¡œ9sÒõë×=ÎçÔ©Sô믿zÌ çD÷y]¾|ÙëB‡óvì˜:Ö × x¬aÉ’%…9À$À³¦‘¿ÿþ›~ûí7©ãŠ´µ}ûv)‡ôsçÎ$qÀÀ Ç^xÅ +-¾^@õðëԩS+ö«T©R©Ï>ûL1BTÊ”)qÔZEEE©½{÷*& •-[6IK‘"…ª\¹²Ê˜1£Õ|öìÙÕóÏ?/÷ÌLRމHî'Ož,í£´Ù AuöìYÅDúéÓ§”cb–û¡C‡Êý›o¾©ÐWÚ´i%½M›6 cf¤«N:I[hc2dˆÔÁ¿4iÒ¨ZµjIºž[tt´Çy.\Xéþ–/_®xQe^éÒ¥Sü yäÅêœâ]¹ÏK3˜ªhÑ¢Š¥ÂœqkàƒwIa,àÈ‘#%óÅýž={¤O_þ…°DV™2e’ù`ìÀ7››á”)Sä €¹¶oß^­[·Î"zWhذ¡bI!%JoH/¾ø¢à~Æ B7–¶Â‚X”Ëûøã«…  ±€®„ÂâOÊiG>ÚU Í 6L& Âòð‡Ý¢|ùòRÄ…Ýâ@´€ž={ª9rȵþ&ÀZµjU†Ôí­]»VóÝwß•¢`}”îZµ*Ö¼§@ïd¬n!Y@K2,$@ñâÅu–NÐæ‚ ¬´„.‰Àä¥K—V|lF}õÕWŠÕ_atl(wÈœ9³b{Iò4®\k »|·nÝä¶H‘"ªoß¾:K$*ð Ø`B"ÞaEŸeµD¡3çòøbï¢2ÑY¬Y×ñ]h¿cÇŽ¢kCßfd3Tcõ†Õ1ºãŽ;$z(tMWh×®$C›ÐÁÑþ˜¡ˆÕ3buÉ*^¬X1ëZ Ñv•árþUªT±RóçÏ/×Ú&ΫU$¹L®v«†Äª)ápÞSO=%¿õë×^ÏÑõ‡ÑÒ§OïšëÚ7(§ñrøðakMQÁ¿±°q0À˜ã˜¶lÙ"Æ'ëð4hÐ ‚qé ¹rå’[Ôõ@D¼#ÓÖ­[¥]´={öl8p Tá¡OÞĹhÑ"Ig5‰x·· i[O?ý´0 ‹…¶ôßG}D=ö˜5$Ó`˜4sét×ß|ùòÉí¦M›¬d–rͪ‘üº2˜U(™^À¨eõæÏŸO0rÙFÜNœ8ÑÖŒX}òXëÈÔʃ1,ðÜ£­ãèô£>*–;Š—EaWÑ0`H äƒPYŒ‹ÇÈÝwÎö±Ú$u@¸Ý»w'xš6m*»{ÿþý ǵçÎKll‰g‡å"uéÒEvoÖ߉%êÚµ+±L­Zµ’_6„Å;5`ÀbŒØ¥æÍ›[c€§ãBy,¤H6ø«ÁÜcÆŒ!ÅT¡B…XóBÿ°3YÑê` ðU«VJ”(¡‹9æë‹g Ø8€HtHHR®Á ðzêX7ü¯/½ôR ÍÅ®k)VÿᯠF'·ªàõ€õ?|øpi‰Õò0!‹ ½@0–x·UÐ 5Äç?~¼xrÐþx÷ƒtìØ±rÿÓO?I3ð°øTÌrÿÎ;ïˆa†:п¡« ‹Â°Õía샖<üƒ /Œk”÷ž€û¼ £j/t~–vRsd±¯`ô`“À³¤^,´­Ç®Óãû 'ã~;xÙðÇ›•ÿÈkÛ¶­ÌÆ,Œà{î¹Éžl€C‡élñ,òF&÷À7ÚÅZ`maHoz=¬Jñ\„Ì ¤û„g¸]*ë¿V†3¬} ί ú€çF»ÔÜûdõI [öÑÇÊÀ`‘bnîà>/×|8`4ÃØvLJk9;×áÆ˜Ö x…܆¾öºçùz¿zõjÅj¥xùyb5Zkã+xc¯ï0‡ùeÊ”ñXªþ4à¬9Ô!;Àº÷Þ{ý®Ê®º8ưn„=8„?o5kVŸ;¸ÏË5Æ-ïv®I޾ÆÓ~öÚxœ#ÔÞ@v[Óûï¿O0”YêP5<®‹¿}üí8ÜËÁXXIèüð pìk›,`À q”Á@x`Ò–Ÿ8‡d0{B2*Ó¨Á@"aÀ0@"!Útžˆhøøã¥|êðjx®ŒCFunÿUÚ=ïö³•p›–W€Oa†ÛXƒ>ž?ÿÜJ“&-¥>}jR®\ÞѽãÄSìPÂ>>^Ž¿@áòŽTtô« ”¯ý:´Ìó;!öhýð£º6‚ã8w °`Á6êÝ{eÉ’žÆoËG:BKXÁÂ)ÎÉÀµ À“ð`œ³ÿûû ´å“³ü„˜¨á7(]ö¨P ׯ63àÎâ0€k¦Ó¯÷ì9ÉG'˸T©RÒØ±¨Y³JNŸvHç§øýžCÒö™'¥Ÿô9SQ‡…BÚg G´ P¼xnJ—.œc¹qã=óÌ—ôᇋÁgD×½zþ&ýøÌNÚ1;æm¼L]yˇFR ÑÍ@âÝwǨ=Z:t.¶úš_±Lþ¯*‹H|içܾ«4ë‰ítbó%R·b´ê)SPžò1GÖ}i#)ÊD<ÜsÏ|jñ¶/:ëìÙë©uëq|šórR¬I²ëóЪó4³ã6ºtâݺqÛ¤Äuî»3„õ|"žÊ—/d½x¡WêæÍ[|þü¿\3‚óÆè²:ÏüÆÆÀ_ßœ¤ùÝwÓÍoÑ­›·‰_—ÊUÖ0€ÆEXþ–+W_˜‰»p7nÜäwÎñ·kFÒªU‡åØ“rPŠ?Èðë{h刃¬òðÙd_7Éœ? ¥É”ôÞŸøðñ dɼ¬y^$0Á¥KW©M›ñôÝw¾½½²’wõÜMšc÷þ´MܽC¦ ý?oÅð6€1Јg€¨¨”üŽpÌ«ŒžÒ*ÑË/O¥!Cæz*QiŽ\£Y¶Ñ‰ IyPy42àÊ}wxÀkÄ3P¥JQ¯Rù`’üù³QÅŠEpѵ¦Ò“ù(5«6)SÝþ€€;R’ƒŒ1`$Àöd¤JÅ/ó¤¢^½ò×ÌÞ`{ ¼û:GÞ=Ó|™GrÑã?”£RÍø} ¾O— r•o‹wÛÿyKiÍ8ÆtÛŠÃSa<+\8;ëþ/PÁ‚1/y[Ì¥ÍE÷¿Y„r•IOë??FWNñYŸ[)Ø$ˆ1 ²NGQéâ2F¸¡ÎH^‘2eò‹šƒÅIÉÆ[ñâyølPG~ é,-Xpû3.á¶xI=¨9[¦ž¤¼å2Rí~EX-J)j à|•ÃßþŒ`$¤IÅŸ-ÉÃo=Ko¼ÑŒÚ·¯)Œ°uëúàƒùüѬ{(GŽð7è›!6O>AùáWãñ%)c¾ÔTì¡ìôÇG‡i;…÷`W}N#¿ láwMKð‹Ö·O ^¾|jÕL ÜMC‡Þþ`–k½H½¾tì:}÷è_T¹k~ªÔ5ö‹ï§¶^f)e.ó]¨pÆ‘a€V':z-õèñ 3HOëÜPU""{qï½tz×ztzÙx½AᎠc$°B­[WåOœ¡7ߌN dädþýí]r†îë]8Y?VÌ0€tûÞ{p@‹}|HîOJ;» ß•ÃR±ºÙ¨PÍÌÉ~²†|X  ÓãW§÷Þû£ÖöKº û"%›æ š= ‡ý8} a_°Äeúõk"/ÐGú 3xú[©k>ñúøˆº°.fÀÇåÉ™3õìÙ¿ö¼”àC`ãòcq(®nÝaòÌ`Ò¤®~Ô4EÃFø±287pà#b3-_¾Óš¦h¸bÀH+Óµë$Üq‚Cƒö¶ŽPØhÆT   `c h!vÀ¤I¿Ú¨mª„ ØX"ErÒ³Ï>ÈŸë^À´/Úh!ùTYÒw/m˜tܯ#–Û<`÷§2>Ê…€â‰†lbº{÷züu¶´´Á¹o‰á‰ïžEgÈßÛ9"áóòEÇoìΙ3Gâ2p$¿ëÚ©`ÀÖ¸NúôiøxDsúöÛ?hÓ¦ƒ6[ ßjžžø"˜ Uh@ÀB×{ìÜîad$˜ó3”Ø’’£ÉÓúõëw›¬(ž`]ß&E™ƒ¯1–L9ÏhÙòCÕ¬ÙhÏ™É8uäcjR­?Õţ׬Y p8‚ê@ØSqÈ++(^³fͦëxDÎaañ†ŒâPI ˆ'ÆÑw¬Àz‚J!ö_#° Ê# ÞÞ½{¥|(ÿ àóÞ{­y';À1rרRøTÇQçõŸ•£Î8篡qãÆõ;7> üçŸJÈ"„§…îµe4 >’#»»‹Û¯_?>f^‹ß¿8&íp¤y -ûàƒZe8Ð éØÊº½PüšbÄ*>­Ø¾} >'ô#¿3\2dÿ3ð MyÕÈC”1wªÐévT{ÔAà?5‚ÖAUÁu¡B…ŸÒGlh¨9 6”ØÀ(øÌ:!ˆ|×®]H¦)S¦ð G)å*â)ã>) izMŠ™†°Ï>}ÓÕ«×iôè…!ì%qš>±ù²×£ÎˆrÇN?ìØõêÕX²d‰Ï;·5P ׀ș2VnQ¾téÒRwôèÑAù»îÇß_ÃþbÌCy¼.‰/G|öÙ/X┇É')Où Ôlbi¯G¡â¬X±‚–.]* ðÐCñ3VÒ¼yób©?˜±§]’ƒƒfÓsÏ='îÎU«VÛ I† ÃAB}—.µùeúÜÔ¿ÿì µ˜tÍä«ìýýç ˆ°víZaèòl¤Òo¿ý‡¼ÍÞ¨Oø…Ûóûï¿'¦-Å9@¹ünß¾]ÚõÖFÐÒCiaGZÛ+VìTùó¿ÌÞŒ¸‘å„ Š­X··¦ÄR@¼sO¶îa@0Ð0€…Îà]àŒÐ§Ÿ.c½øuÊ;ù¿7<Ì„_KFF‡`M^x¡.eË–žîü‚ÖƒÛäùƒ‘'Ù0@péIZK—.5{ƒZÐôékøiéôœ&ñÄ7ºÝ¶°dœ™zoÅ0€wܔӴiEªY³? P;¡¬¬Ÿø¯¹ÿ5 B Ã÷„pRtÚ´?BØ‹½¦ôq+{ˆ©e ì%P_îÔ© ü£|R%≖íé¨s¢ufñ‚¼öZC ±4rä‚÷ä{óú«ÎNù¸•ï3[Ò0@\œ5%[¶ Ô»wcúüóåü"ýÉ ¶m§1oGí´å„:†a;t¨)øú÷Ÿ•½ÅßÅÁ•ç(SÞ¸Gã¯åÜ\ó ,‘Övõê=ÔªÕGôå—ݨ~ý»©WÏÝÜüW%‹ðEžGÜTÃÁÅg¼­=÷ÜW´qãA>?ßW¢ÒÄ[Ød& Œ ”(hŽéä­·šóá®ó|¾eY"öjºŠ†âÃNó ÈF/½TÆŒYDÇŸrë¦9;0 `kÔÁµð¥é÷Þ›@+¦j°0` X˜ô±Þ~ûíò‰µk÷ùXË  „ ³ñ´‹ˆóuê”–sBü’S<%ËÂßmÓO‘ºX;N®m ‰VwàÀV„8ÄS§®ÙðÄ÷÷1‡è2¢¸ðˆÃÑúÄ’%óÒ“OÖ¦!CæòÇ¡üÿ†fB#¼tÜóÇ­ªiù†’pÅr 0bÄü bÕÏ· zGɼAÃI¸€Y²¤£¾}›Ð_¬à¯¤ù÷ òø†mŽ:LJØyæIpl|$úŒàFFñ+”øKÓÏÜ? ßè6Û({‰tToxñ€ÛszF$ñ ãsƒxqfùòüuµÍÆuö…†üÃWHJW­Z”Z·®Jï¼ó=c40Ÿeªô)©ÚóÇ7$wiÔ¨@.ÈHÊK¨]{0½øâCÔ£Gý¤JDõ¶ŸGçÏê>œIP·n>þ’Ä þØÓÙHšv@sM:5µlÙÒva+¾ûî;jÛ¶­í‰%ÇŠ)R@#U‰óQØäˆ cÎ’% ;wÎCŽoIa+ôðCyT@÷a~“'&NœH={ö hðÆ}¦rrÇ€a€ä¾‚füaÀ0@@è3•“; $÷4ã†BŸ©œÜ1ö^ ä‚àÉ“'ÓêÕ«iìØ±!òc='êºîpܸq§¬¸¾M´ß3gÎPÆŒ%ZËçŸÎ_¾ØH~øa¢õHGF‚=—º;vìh‰.I!¹\´h:uJâó"F¯ë %pL/~€7]ºFx#¹N.à púôi‰C›3gNZ·n!~æòåËÑ¡tŠ+&ëràÀÊ”)åÈ‘ÃZ'Êvf0 àm>È÷ƈ%¬%Ê Áœz<p;&ƒÿ#þp·nݬû„.‚ÁޱxE¯Å/1fadÎ¥/ž0B%vB£FhÆŒÄ;>Çô]Ê_g˜*y¼8¿vÔ¨Q¢gó"Ò×_mÅ«­Q£†”Ã?f8ëÚýÂÝ;À5æ­¶GPã„-á+´nÝÚ£  ë3qPŽÁ¢O?ñÄ’ ] m\³*ˆ‰ÔŽßŽ;âÇØš.§¡û³ûF§á7_¾|bÄë4Ì]l*–¼ú6Q~å‘û ¬rðGj—ï"B(Í›7—ªð²°žÊŸ.<.Æ4ˆ§^(nX´ëË8¿GŽ±Ò´!îÊ0®ù+V¬ˆ—™¬†|¸“?ûì³âêÃb0º[·nµZË–¥ l0‘Ƕˆü±¤¢Ze]Çëi>VÁÿ¿`éÃ!bs‹Ã@çÁ‡·Ì(—”´½'áÌYåïÎ[o½Eð­³Ú#£»{÷îâµ€—ÒÞœJ•*É‚‚(àY¯›Õ ¯3€' RÑÐÁPðþ4iÒÄ*Ïê“´÷!B7mÚTò@ èŸS÷HD™¹sçÆùƒA³ZCÿûßÿD Ðô¼yó¨ZµjâÝaUI}²Ž/^ôÍF2G¶ì/’mc¬¨§!¾ùÀýŠÍst´;kÖ,þ ^´äAª€ï°„ô¬¤Ê÷׿NÕªUËîðáÃï4Ö= 0xn\ú)/„Z¹r¥•¼|ùr1ná%aÈnPÃ0þ|ÑaQú5«C±lèæèÌð°@ßEYx@´q§mÔEôgØìB”º yؽ)õP×ý‰^<9]ºt‘¶`È'ìãsƒq‹z¬ÆÒÏá€Í¤Û¬_¿¾ºpá‚´ß|P€ßÛz˜#Ö¡zõêRÎ8Ð&ð…öyƒ‘í™Æ×*Ž.Çž¥€çö À‡Øž¤SÈ“§3M›¶…¯sÊ”žD?<‚Ê–-À.Üל8Å$™“±’íþw:kÖz~¡%mÛv„Iø~pÎÿž"«†a€d²ÞÑÑk‰ªò)×(š={}2uøÓ0@ø¯ýþûß|H킌ôÆ›üþíšd0êä1DÃÉ` þ¤NeôÀø˜ñAëÞ\ØÇ€aû¸K”š7nÜ•çúõÛ/Š€ÀÇ€a€ÀqÒ–-ÛN.Ä£ fˆŽ^g½áÒ8¼qÃa¾À3g®‹¥þèáž:umïo¤éræ7~ ˆ?Iš{åÊu œçªþèŨAæ˜Æ‡Ý_Ãv1—õ.ܯzš¦øþû?ùUÆ[‰0çva Œ×vÆŒµòðËÛa,]ºÍ[¶I÷†|@RR9wî ýòËvþLˆ÷jlö1`À>îBZóÇ7&¨Þ@ š?3ŒÖ“¶»aÔîÄ’{½ ®Póæ•cM.ÑÂ…sð;¶yb¥ãlP¹rc¥™ß0`Nƒú†§°(U³æ jß¾†Ó‹9`FrÀ"š)ØÇ€aû¸35€ÃXD3û0 `w¦¦0`À‹h¦`†ìãÎÔt 8`ÍìcÀ0€}Ü™šÀ€a,¢™‚} °;SÓ0 à€E4S°Ãöqgj:†°ˆf ö1`À>îLM`À0€ÑLÁ> ØÇ©é pÀ"š)ØÇ€aû¸35€ÃXD3û0 `w¦¦0`À‹h¦`†ìãÎÔt 8`ÍìcÀ0€}Ü™šÀ€a,¢™‚} °;SÓ0 à€E4S°Ãöqgj:†°ˆf ö1`À>îLM`À0€ÑLÁ> ØÇ©é pÀ"š)ØÇ€aû¸35€° ‘tñâEêÚµ«ÐÜ)lܘ›òä¹Bùó_ nÃɼµêÕ«S¯^½lÍ",ƒä]½z•¦OŸN+V¤lÙ²Ùš˜+åÏB¦u"æÇ‰Sô{N[·nåhšžƒ‰ûÒXX2€x§Nèž{îÑ·æ×` Þ}÷Ý8iþ$Àl™²ŽÃ€aÇ-©™?0 à¶LYÇaÀ0€ã–ÔLÈ „µìÏD’²ì±cÇhäȑԻwoÊ•+WH†×°»Á—)S&ºë®»¨U«Våw¿6l ©S§Ò°aìº;wî¤o¿ý–vìØAè³xñâtï½÷R›6m(eJçí—Λ‘µ”‰wBY³f Á}*¸víšô‘&M*]º4•(Q‚®\¹BãÆ£>úÈV·çΣ͛7[uW¯^M=zô ½{÷R“&Mè¿ÿý/åÈ‘ƒ>ýôSêׯ_@îF«“0»p„qœ>}šrçÎM'ØIÂÀÎuëÖ-Ú¿?!“*U*¢ƒPóäÉc-Åùóç% õÿüóíÛ·Š-J9sæ´Ê¡=GêÔ©©H‘"„ß5¯_¿N.\Â9pà€ì¢%K–”:È?sæ e̘QƸgÏgÖ¬Y‘%€±b§ÅX•R2vô§¡~ýúôŸÿüGßÒK/½DË—/§—_~ÙJÃü±ƒ*T(ŽDBû˜[Þ¼y­ò¸@:$A©R¥høðáF4oޜʗ/OcÆŒ¡ cœ:tèÌé`2ÝƵ„$B ¡ï!Ô3àöwïÞM/¼ðUªT‰ ÖX4 uݺurU‹¸hÑ"?~<͘1CÌwÞy‡nÞ¼)jLß¾}iýúõ‚|,Ø+¯¼BM›6¢Æ.ø×_QŠ)¨L™2´mÛ62dH,&À.úÖ[oQ… H?¤³|ðÁB P%Pyh‹üúë¯S:udœ­[·¦‡zHãÀÎQ£F ÃI—3ºX±bVêĉiÚ´i2÷Ë—/‹Š ¦Ú¸q#½ñÆtéÒ%)çwZõV­Z%„÷öÛo[Ĩ3[´hA3gΤŸþYàé§Ÿ¦'žx‚{ì1)òÃ?Ðܹsé믿"Ç\.\(j˜’å±=õÔSÂÀ¿üò ½øâ‹"ÁºwïN-[¶”¶æÏŸ/ë„¡`ŒPƒ£T ì4@˜¢üÝwßÑ›o¾)‡¯nݺBx¿þú«àöìÙ³Â4ØY±(Pe¾ù梶mÛ–¾üòKÙ‰¿úê+Y@,.»@ñ® v°ü‘¦L™B0Ÿ}ö™UþèÑ£B,ÈÇcü#FÈŠ`€ªU«JYì”?þ¸ì˜º2ˆD ¦ÁƒBì¤;w–lìÌ BÖœ9scÞ¾};é¹~òÉ'²#ñÅBd˜»´€´r0*$Ñ#GܳâÜÏš5‹/^Lƒ ‰ñꫯ҄ dº0$ßÀ©qãÆò´x×€ë*Uª$ ñ£OG1@‡DtÖ¨QCð‰bYßCeÁ®k¤ƒ8`@B­ÐDýñÇÓ¦M›„À@P ¨ÕªU“ºýíÛ·×kæñD™6mZ*X° 5jÔÈ’L( µÄ.]:˜Á P­]ºt¡ÚµkË5ê>óÌ3±ã‡jS”Õ3Hµ 2€c#`X­?¤vþS§NÉîf€B]H(WUêßÿ•²³'ð—,Y²D˜ÀßÿM2˜çüaU…ÀGl<+TCH3HðzõêYeC}áH#I‹LíôÂA€t¨.Ø—-[F5kÖÆ%téÙ³gÓk¯½&ŒÄ "Áipסuºþkabq5äÏŸ__Zg@¾€» • ;>$Æ?vìX‘b @ØA 2Ô/ ®*˜66 ½èrøƒzJG˜Gô~ØPµ4À^Ðk€4ŒKT¿Ñ£G‹”³Bm½ÿþûuvÈÅ®HŽsØ}€h¨ Øq´{;$*Œ5¨O“'OQ CÆ™†„ÔÔׄâte0“†-[¶È¥k¾Îó倱Á¾ [;‘ÈhWK÷r¡ºw” ä+’ zh:*6ôklöìÙEÕÀ / ôòyóæÉN•eÒ¤Iñv‡|xG a`ˆCÊh€„9xð ´c)x©p9BÝÀ‹ôá‡ÒáÇåÿ@À0ŽÑ&ì æ`¨yØÁAÄ8è1vgœ–ÄÎ9¡œ¨¯Õ@´ i Æ.¤ÔlØùa£À6Ð*T0ÔEϮ퀘uÛzØ@àÀx¼¤šžSƒ ¼ Iº£$@Br•@:Œ5üjwÛ< D¯ˆF5< œgŸ}V NýžB¹rå¬î\ÛÕ‰ ÚfÍš A‚Áž|òIEY²d] Qÿþý-R *Tµ0*qr¶À¼ LýÐÝ¡;£>T60 ìZµj SÁCû8tpŒíºêæPÿ Fâá$0'ˆÌñÈ#ˆsž³nݺÉn~´€m„DK àå >¢ O€ú™3g›öYbBX¾õ¢;O¨ŽCkÝF£&.xì¼p!ÂóBÒ0  ;&l -APâ;˜ ú0¤ H®VÔÚâÞ·.È/¤ ˜L«=Ðëá €4ƒD€;;>È@bp—¢˜ó ƒ9p Õv–{;xU¯pá‚+÷|×{líÚµ+<[þÔWH<0§ˆ(  Uæ§Ÿ~’ÒzJC]ìšÚÄ.è²žÊø¼ §òþ¤è\ÁÕ ‡GÆr|w5TQÖÝ3õÈñ£<Ô:ׇHóP—à­‚º‰™Ø‘ ñ"èØ±£m|c7…Xw'bìºeË–õÚ.ê`w6ƒ0T#ìä®’2±ð±*Pb!ØôZ ªÝVpC;NÓºÁ@XbÀ0@X.‹TbaÀ0@baÚô–k#>oJ3`0à 8U‹‡šv!,uôQ[»3õ"pµâAš]K/ÝɘzþbÀØþbÌ”w 8j9ÍdüÅ€a1fÊ; †µœf2þbàÿóå(Œ 4ìÒIEND®B`‚mysql++-3.2.5/doc/html/refman/functions_func_s.html000755 000765 000024 00000024736 13515046516 023060 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Class Members - Functions
MySQL++  3.2.5
 

- s -

mysql++-3.2.5/doc/html/refman/sql__types_8h_source.html000755 000765 000024 00000111543 13515046516 023645 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: sql_types.h Source File
MySQL++  3.2.5
sql_types.h
Go to the documentation of this file.
1 
8 /***********************************************************************
9  Copyright (c) 2006-2009 by Educational Technology Resources, Inc.
10  Others may also hold copyrights on code in this file. See the
11  CREDITS.txt file in the top directory of the distribution for details.
12 
13  This file is part of MySQL++.
14 
15  MySQL++ is free software; you can redistribute it and/or modify it
16  under the terms of the GNU Lesser General Public License as published
17  by the Free Software Foundation; either version 2.1 of the License, or
18  (at your option) any later version.
19 
20  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
21  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
22  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
23  License for more details.
24 
25  You should have received a copy of the GNU Lesser General Public
26  License along with MySQL++; if not, write to the Free Software
27  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
28  USA
29 ***********************************************************************/
30 
31 #if !defined(MYSQLPP_SQL_TYPES_H_MAIN)
32 #define MYSQLPP_SQL_TYPES_H_MAIN
33 
34 #include "common.h"
35 #include "tiny_int.h"
36 
37 #include <string>
38 
39 #if !defined(MYSQLPP_NO_STDINT_H)
40 # include <stdint.h>
41 #endif
42 
43 namespace mysqlpp {
44 
45 #if !defined(DOXYGEN_IGNORE)
46 // Suppress refman documentation for these typedefs, as they're
47 // system-dependent.
48 
49 // Define C++ integer types that are most nearly equivalent to those
50 // used by the MySQL server.
51 #if defined(MYSQLPP_NO_STDINT_H)
52  // Boo, we're going to have to wing it.
53  typedef tiny_int<signed char> sql_tinyint;
54  typedef tiny_int<unsigned char> sql_tinyint_unsigned;
55  typedef signed short sql_smallint;
56  typedef unsigned short sql_smallint_unsigned;
57  typedef signed int sql_int;
58  typedef unsigned int sql_int_unsigned;
59  typedef signed int sql_mediumint;
60  typedef unsigned int sql_mediumint_unsigned;
61  typedef longlong sql_bigint;
62  typedef ulonglong sql_bigint_unsigned;
63 #else
64  // Assume a system where C99 is supported in C++ in advance of
65  // actual standardization, so we can do this portably.
66  typedef tiny_int<int8_t> sql_tinyint;
67  typedef tiny_int<uint8_t> sql_tinyint_unsigned;
68  typedef int16_t sql_smallint;
69  typedef uint16_t sql_smallint_unsigned;
70  typedef int32_t sql_int;
71  typedef uint32_t sql_int_unsigned;
72  typedef int32_t sql_mediumint;
73  typedef uint32_t sql_mediumint_unsigned;
74  typedef int64_t sql_bigint;
75  typedef uint64_t sql_bigint_unsigned;
76 #endif
77 
78 // Now define typedef equivalencies for the other standard MySQL
79 // data types. There aren't serious portability issues here.
80 typedef float sql_float;
81 typedef double sql_double;
82 typedef double sql_decimal;
83 typedef std::string sql_enum;
84 typedef std::string sql_char;
85 typedef std::string sql_varchar;
86 typedef std::string sql_tinytext;
87 typedef std::string sql_text;
88 typedef std::string sql_mediumtext;
89 typedef std::string sql_longtext;
90 
91 // Aliases to match the rules MySQL uses in translating data types
92 // from other database servers into its own type system. From:
93 // http://dev.mysql.com/doc/refman/5.0/en/other-vendor-data-types.html
94 typedef sql_tinyint sql_bool;
95 typedef sql_tinyint sql_boolean;
96 typedef sql_varchar sql_character_varying;
97 typedef sql_decimal sql_fixed;
98 typedef sql_float sql_float4;
99 typedef sql_double sql_float8;
100 typedef sql_tinyint sql_int1;
101 typedef sql_smallint sql_int2;
102 typedef sql_mediumint sql_int3;
103 typedef sql_int sql_int4;
104 typedef sql_bigint sql_int8;
105 typedef sql_mediumtext sql_long_varchar;
106 typedef sql_mediumtext sql_long;
107 typedef sql_mediumint sql_middleint;
108 typedef sql_decimal sql_numeric;
109 #endif // !defined(DOXYGEN_IGNORE)
110 
111 } // end namespace mysqlpp
112 
113 #endif // !defined(MYSQLPP_SQL_TYPES_H_MAIN)
114 
115 
116 // The following sections are treated separately to avoid making the
117 // #include tree too dense: if mystring.h (for example) is not yet
118 // #included, no sense pulling it in to define all the typedefs based
119 // on String. The separate #include guards for each section allow
120 // this file to be #included as many times as necessary to build up the
121 // full typedef set. This trickery is necessary because sql_types.h
122 // is needed in a few places within MySQL++, but we can't (and don't)
123 // depend on having the full set of typedefs. mysql++.h #includes this
124 // at a late stage, ensuring that end-user code does see the full set.
125 #if defined(MYSQLPP_MYSTRING_H) && !defined(MYSQLPP_SQL_TYPES_H_MYSTRING) && !defined(DOXYGEN_IGNORE)
126 # define MYSQLPP_SQL_TYPES_H_MYSTRING
127  namespace mysqlpp {
128  typedef String sql_blob;
129  typedef String sql_tinyblob;
130  typedef String sql_mediumblob;
131  typedef String sql_longblob;
132  typedef sql_mediumblob sql_long_varbinary;
133  } // end namespace mysqlpp
134 #endif
135 
136 
137 #if defined(MYSQLPP_DATETIME_H) && !defined(MYSQLPP_SQL_TYPES_H_DATETIME) && !defined(DOXYGEN_IGNORE)
138 # define MYSQLPP_SQL_TYPES_H_DATETIME
139  namespace mysqlpp {
140  typedef Date sql_date;
141  typedef Time sql_time;
142  typedef DateTime sql_timestamp;
143  typedef DateTime sql_datetime;
144  } // end namespace mysqlpp
145 #endif
146 
147 
148 #if defined(MYSQLPP_MYSET_H) && !defined(MYSQLPP_SQL_TYPES_H_SET) && !defined(DOXYGEN_IGNORE)
149 # define MYSQLPP_SQL_TYPES_H_SET
150  namespace mysqlpp {
151  typedef Set<> sql_set;
152  } // end namespace mysqlpp
153 #endif
154 
155 #if defined(MYSQLPP_NULL_H) && !defined(MYSQLPP_SQL_TYPES_H_NULL) && !defined(DOXYGEN_IGNORE)
156 # define MYSQLPP_SQL_TYPES_H_NULL
157  // We have null.h, so define nullable versions of all the above
158  namespace mysqlpp {
159  typedef Null<sql_bigint> sql_bigint_null;
160  typedef Null<sql_bigint_unsigned> sql_bigint_unsigned_null;
161  typedef Null<sql_bool> sql_bool_null;
162  typedef Null<sql_boolean> sql_boolean_null;
163  typedef Null<sql_char> sql_char_null;
164  typedef Null<sql_character_varying> sql_character_varying_null;
165  typedef Null<sql_decimal> sql_decimal_null;
166  typedef Null<sql_double> sql_double_null;
167  typedef Null<sql_enum> sql_enum_null;
168  typedef Null<sql_fixed> sql_fixed_null;
169  typedef Null<sql_float> sql_float_null;
170  typedef Null<sql_float4> sql_float4_null;
171  typedef Null<sql_float8> sql_float8_null;
172  typedef Null<sql_int> sql_int_null;
173  typedef Null<sql_int1> sql_int1_null;
174  typedef Null<sql_int2> sql_int2_null;
175  typedef Null<sql_int3> sql_int3_null;
176  typedef Null<sql_int4> sql_int4_null;
177  typedef Null<sql_int8> sql_int8_null;
178  typedef Null<sql_int_unsigned> sql_int_unsigned_null;
179  typedef Null<sql_long> sql_long_null;
180  typedef Null<sql_longtext> sql_longtext_null;
181  typedef Null<sql_long_varchar> sql_long_varchar_null;
182  typedef Null<sql_mediumint> sql_mediumint_null;
183  typedef Null<sql_mediumint_unsigned> sql_mediumint_unsigned_null;
184  typedef Null<sql_mediumtext> sql_mediumtext_null;
185  typedef Null<sql_middleint> sql_middleint_null;
186  typedef Null<sql_numeric> sql_numeric_null;
187  typedef Null<sql_smallint> sql_smallint_null;
188  typedef Null<sql_smallint_unsigned> sql_smallint_unsigned_null;
189  typedef Null<sql_text> sql_text_null;
190  typedef Null<sql_tinyint> sql_tinyint_null;
191  typedef Null<sql_tinyint_unsigned> sql_tinyint_unsigned_null;
192  typedef Null<sql_tinytext> sql_tinytext_null;
193  typedef Null<sql_varchar> sql_varchar_null;
194 
195  // Also do nullable versions of optional sql_* types, where possible
196 # if defined(MYSQLPP_SQL_TYPES_H_MYSTRING)
197  typedef Null<sql_blob> sql_blob_null;
198  typedef Null<sql_longblob> sql_longblob_null;
199  typedef Null<sql_mediumblob> sql_mediumblob_null;
200  typedef Null<sql_tinyblob> sql_tinyblob_null;
201  typedef Null<sql_long_varbinary> sql_long_varbinary_null;
202 # endif
203 # if defined(MYSQLPP_SQL_TYPES_H_DATETIME)
204  typedef Null<sql_date> sql_date_null;
205  typedef Null<sql_datetime> sql_datetime_null;
206  typedef Null<sql_time> sql_time_null;
207  typedef Null<sql_timestamp> sql_timestamp_null;
208 # endif
209 # if defined(MYSQLPP_SQL_TYPES_H_SET)
210  typedef Null<sql_set> sql_set_null;
211 # endif
212  } // end namespace mysqlpp
213 #endif
This file includes top-level definitions for use both internal to the library, and outside it....
Declares class for holding a SQL TINYINT.
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1BadOption__inherit__graph.png000644 000765 000024 00000017763 13515046516 027526 0ustar00tangentstaff000000 000000 ‰PNG  IHDR˜·î8—ÂsRGB®Îé­IDATxí]˜TE.`w‰J–Œ‚À!z ¢ xàyU£v7ÕýÊ[¹r%-Z´ˆN:%:räˆ\ü_ýÕäáÇ º¡&äܹsΤá|ªpñâE§î‰'háÂ…ôË/¿8yÇŽ£ØØX§ p?ÜÇ ôgÍšgËöìÙCóçÏ'´m};xð $7oÞL‹/vú{öìY:tè”á¾èßðáéI“&¶º|2oÞ<š;wn€‡ÕC»hçYëÖ­£ .8õ2Ì×ñKöîÝkx=7¿fÍsóÍ7›zôhØèèhÉoР9~ü¸ùùçŸMÖ¬YÍ+¯¼"zLIóÖ+éž={J?øðXòŸ|òIÓj˜Ìæ™gž‘¶Ðf¶lÙÌ€¤Î”)S$¿N:&&&F®+Uªd˜ŒæÇ”v0ÔÙµk—)Uª”±÷ûé§ŸÌM7Ýdøã“#GS¸pa©ƒ†;wîlÐNùòå¥.ÚÀ8˜¤r_/–.]*÷ô¢©EZÑK½Ôì‰'ž0÷ÝwŸLÚ¾}ûÌwÞi:uê$·jÑ¢…á•-×¼Úe¢@^ÅfðàÁ’v¬wïÞfòäÉ¢ÏW™nݺ ˜Û·o—‰F»qqqBà"EŠ˜—_~Yt¡‡ÉÙ*T¨`@ “I:t¨¤ÇŒ#é9sæ˜÷Þ{ÏDEE™iÓ¦ö©Ìˆ#¤ h †þ³6è HÓªU+¹ß¤I“D—-‘¤-Á@ZþGÆŒ2¤1þ%J¶|B0ôgàÀå/Ò;wî”v¼ü¹îÂ`¥¾ùæ›fõêÕœÞM0L2V5@·àݳùÁïo¿ý¶CŒ+V¼š6mjªV­*ª˜¼*Uªa`AfH—.]LäÚþÉØï3wÝu—¹û-´·|ùr±ÂýúõsKlã„u†„#o¥ÒOÞŽm5ÇX°²eË:eýï¾ûÎÉKé"=æûg‘¼ª< o{kРAÔ½{wâÕL_~ù%ÝÿýmÀ©V­ñ–ãäW¯^ݹNîÂú\ÁO¸TÃg§(cÐÃ?L¼eKþîÝ»‰·£€¦™ô’F›xjÄí;åË—x›wôy w®Ù‚Ño¿ýæ¤C]à~¶âNq±bÅäÚú„hÇ /L¹Ìh~X†ròøáb?GœW¶„IÑ‚Q[„§­F°ZÈ4& ÄDÔ §/ÞÆèõ×_}Llÿþý©bÅŠr\€>Ax•(Õ l=©C‡„û/^œêׯﴇ6‡ BÍ›7—ºøãNXâ: AE‹•œµk×:%ÀbŸ~pØQÊ`Š`#GޤŽ;ûnT¹re ßí³Jì<Ë$±3N7&¼ÃÊ`âØ¡v"5‹/Êxû‘$Ž/ÐîŽ;¨aÆ„³§^½z‰™1c=úè£ò–BÏ>û,ÁúðöAìR»víä^Íš5“w,€ýû÷SŸ>}ˆ}¢R+¸ú<~üx‚.ú±V&îo– ‹m­_¿^ê"ÂüýïOåÊ•³jÿ=¥}úJÊSëäц“‹oƒ†+¤ _ýµøE5jÔt×®]Åç`„ ¯vS·n]Ãdpº›\9lØ0ƒHuñbëcø×|øá‡’ž9s¦´³uëV“3gNä“4æ:QüŸ/¾øBòá¼?öØcN{ÖD¡uòýâ^5jdxK•º¼UŠÓ2^¦téÒN‰è·P¡BRÑí­·Þj6lØ õàÖ®][®ñQ0Ú°}w ’¹H,CE‘À‚Í‚ BFC|öcøŒÉŒ­—ás0 œLˆ áH§&êBÓ "ˆJx{•~Z±ø@ D½Á‚À‚ýªàlIóù&ͦ¥¤Á|ýÚ5|šëùéS§G©rxËÖ‹LÆÐòÙšãÓùѳ åƒù1À«Ý&Þ"ʫݧô¼ÆZRé9òtº|ìu½ŠZ°ëuæÓiÜJ°T}æL=œNE Uõ}‹ÄÁdJ§Ö™e¾ýv#?Ñp–Pkd–.'ÛÏô8õ÷`xΉÏn’hf)üê«ÅüØPgÏ,]¾êýôõ˜âª. ;w†ªVíÉŸ\ä‡zóÇCùÒ°õk·)õÁ<Îíôék䣜¨¨¬4uê*µTM æ‘&,c‚?5z‘Æ[ê±–ª)Áqðݪ{÷¥5kö¸³ô:J° ¸³¦LYIQQÙÜYr}i›¼ô„i’BÍpP‚9P„¾ÀV˜˜˜ôû†Ø&'LX‘IJ…nåúÍU‚%3÷ë×ï£ØØË_º V=z4ž¿¼»=8[Ó.”`.0‚/)FG‡ÿ4 eM£˜V‚âÂájBBb@ž;2a`»T €,4.´dÉN~ ä¤8ø11ÙøÛ?ÙØš]zÅÄDq:JÒññçèÇ7…iE³ÃÛÿë©oߦ(Lš´‚ΞM –-käçÍ›3 ­‰ËèÓ—±HñªcÇ1wšFjŸ¢®*\B@·He‚¯(Á|…WW‚)|E@ æ+¼Ú¸L9à+J0_áÕÆ•`Ê_P‚ù ¯6®SøŠ€ÌWxµq%˜rÀW”`¾Â«+Á”¾" ó^m\ ¦ð%˜¯ðjãJ0倯(Á|…WW‚)|E@ æ+¼Ú¸L9à+J0_áÕÆ•`Ê_P‚ù ¯6®SøŠ€ÌWxµq%˜rÀW”`¾Â«+Á”¾" ó^m\ ¦ð%˜¯ðjãJ0倿˜0²wï^üvо\DG611E&àȺuë°ȘÿGëo¼A*Tð—åÚz¦D`ß¾}ôÏþ3Ù¾§H°|î½÷ÞdÑÂëM›RþïÚêƒ]ŸÜH·Q+ÁÒ êëóFJ°ësÞÓmÔJ°tƒúú¼QŠN~f%66–þö·¿ÑÈ‘#©xñâ¾u»yóæ²ý¡C‡RÙ²eC–ù™yúôiþEÞ tà 7ÐÖ­[©S§NôùçŸS‘"Eü¼­§¶¯‚ÅÅÅÑ·ß~KÛOùᇨ|ùòT½zõ$·‰ŽŽN’—íÛ·—qO™2Eˆ†pñâÅô¸uŠ÷H3‚;wŽöïßO¥J•¢Ý»wË*¯Zµª tãÆ„òjÕªñHEÓ‘#GèZ9zô(9s†J”(!YhkÆ tûí·S±bŬš´·~ýzþ1ªºí¶Ûø÷c“X¬óçÏÓ±cÇdoÞ¼™Ž?N5jÔ:hèСC”7o^éãÚµk¥_ tî¾fÍšUúÊ'ˆüûDg){öì’¥fÍšQ÷îÝ}÷PS–,Yœq /¤ Pîܹ…«W¯¦“'ORíÚµå¶~bb"ÿ|óFþÔDúÝï~Ç?Dé—vOœ8!?|š+W.Zºt).\Ø9›–§Nì~ýõWÉ?~¼èØvÑ'Œ8ba äcÜ–R¹råœ~ÛºWüîÖžä/X° œJ@þâŋ儛ÏÍœ“îûï¿ßÔ¯_ßIתUË0àæý÷ß7<æÀN=ôyà ›zóðÃ&¢a@MTT”ùøãEIhøLNÚCýš5kÊõÌ™3 Oš\oÛ¶ÍðJ–ë:uêðÉ{Œ\WªTÉìÙ³GÚAO®á tî3qâD§/ùóç7/¼ð‚¤gÏž-õçÎ+i&¦éß¿¿£|ÁÒî’%K¤é9r&Ž9|ø°Ü—'Í0a oiæÓO?½-[¶ôesÑ¢E 0…<ýôÓRÆ$uÆÓ®];)C?™0RxØyصk—”÷íÛW°F]èaÜLJ)ã.óƒ¾ ÜÛb- )üÁ˜P'¹“|¬Œ)Áš4ibø„× 4HnŽIF[cÆŒ‘4ˆba@Æ “{³E‘ô'Ÿ|bÆŽ+z [4óÊ+¯¶j†M¾Ádaò1é¼ ˜–-[Šn8‚µhÑÂð–i@º›nºÉ´jÕJŸfØú^ýæ±Ç3¼’ [)ïÝ»·™ûLÊ0öË ûª’ÁpÿåË—¶~suçwJ™—?W…`lÂ¥oìlÊàF-iö‘$m'îü£©W¯ž”}ôÑG²¢y+3Ë–-“•öÔSO™ï¿ÿ^€Iƒ”.]Ú ß o•Òf8‚a"­€¨%K–”$Ö¯_?[dV¬X!í,Z´ÈÉ w‚mÛ¶ x½õÖ[NŒV/Xp,&ôùçŸwô°Ù7°^ L=¤/èχ~(yº…ƒ Ó¹sgÉ G°.]ºô¤´‚ûóG’D€‹•>ø@ôm:¥w/K3ŒaÓ.ï ®¼Ã!†Ø}Ÿ;-iž}öYþÑÏß>C£FÄ/ºë®»Ñ^ 4 ø]»v%¶*„Ͼî¹ç©?L8ç:Ô['›-˜ÜËf¸ËàÓ@à›y‘Ç<¬†ú|¶ ôÜsÏÉØát£ÿîÏuí¶iÓ†æÍ›'·>|8ÿTà(§ ¼ Ä?BFptŠ>§Ô_øÂèüI+ðÃx«¶I.VræÌ)þŸM§Åûå;§Ek܆{0É5 G™}1b±C­[·u^ý„àŽ<œVö1ˆ·qH *D¼½:ÍîܹӹuúVx» ›o¾Ù&¥m›`?S.Ýå¶,’wŒ‰­D›XpÒ HÁ«Þi’ý4êСƒsœÀ¾)±k /Ô÷Ýw©bÅŠ¢ï "åU«VŒÇiÔuÅí¢FÚuÓ.|Wµ4½Ls‚yí"ª¦M›R¯^½(_¾|ôÈ#HUDŽO<ñaÒqŽ kˆ(ý ‰.u¾öÚkÉÞm#‚„…d¿6lèèÃBâÌÀ>’XCD¹Þ6hÒ¤IrÍÛuìØ‘vìØ!iüAÞŒ3’¼`ÙW#Þº„8¼u‹Õ|饗¤.ûMÒ6žD@ÄŠ1"Z2d­Y³†ù²¡7Ä`L"ðž={¢ÓG}TÊ™ƒ€«[PŽ(8¡ „f¿ØÍp«ù{nŸÔÉG=(>„„xKž•Y³fIO€ÍŸ Î&Z¢/8çï¼óŽ”#8°‘#Êá>OŒ\»£H« _ˆ·`q¬Ñ|°;î¸Ã‰œà”/\¸ÐéCrQ$/¹îüâs8S·n] àOBl°Ã„”èÍFÙˆèeÃW… ø_eÛ„d}Bø`|„ ÊÑ¿H=üùúë¯Å߃oèvòQÆÇ)âÓÚ(>¬Û§8p ÔDøZ"[›NéÝ‹–fQdJ UŽI`ngÜê!ƒÛAEf¶&†ý ! êƒ`n±Ç ¢ËçPîb!"2 Ô½”}H`÷ ·Aù¼Ê¬\¹R®í­A0¶öN9[=[ä¼ã‹8”àxd uÏPú^ó¼,Í|žpO‚­ŽÃmÙq`,¡ò ŸÁ:¼8`LI¬n(=ް$°Uægž=L¾\øŸá$¹r¶jáªÉaªû 9¬¢W̓ßñYXÄÃb³O|~$>œ»€ÉÛ£¹ºËp²«xp_¼¤yZgß‹~FÒÉsªC©&ÃÙÖ'ZC!¤yì^PåÊ•åc&>§ ÈU³`!{£™×J°TNé… ã)…Tvûª©+ÁRýòå±|ê¾%5T5Å(”¨\B oÞz|"Ÿš¥xD ,ÁðüÒ¸qã<6sí«!zõÕ¥üYÝE>qoÃÏ–©ñ·³žÜgÂa †>ñx°Ê%æÎÝÂõ-䣢þ?K¶A¶G«Š§S—.ÝÅß:a³ô= J°0ÀØì™3×òWå’~\›-[š6m•UÓ÷0(ÁÂc³±þÿk„6KÞù{|N¨Ûd(!J° Ø¬Ã‡ãiÑ¢íüeÙ¤ Žþ† û(6öò(l=}¿Œ€ì2I®°&÷¥œ‹Mž¼2I=͸Œ€ì2I®°=†ò¿¬"ÎÄ4š´h„~W‚…Æ…¿:v”¿á³'à+_¡T±E®_¿/T‘æ1a?‹¼ÞÑYµ _Z-`ÁöR¢Äåçß³fÍÂOtî¥*U.ýÓ–ë·àñ‡}d:XQÓÄßÃæo_·W8<" [¤G T-2”`‘ᦵ<" ó”ªE†€,2Ü´–G”`RµÈP‚E†›Öòˆ€Ì#PªJ°ÈpÓZP‚yJÕ"C@ nZË#J0@©Zd(Á"ÃMkyD@ æ(U‹ %Xd¸i-(Á<¥j‘! ‹ 7­å%˜G T-2”`‘ᦵ<" ó”ªE†€,2Ü´–G”`RµÈP‚E†›Öòˆ€Ì#PªJ°ÈpÓZP‚yJÕ"C@ nZË#J0@©Zd(Á"ÃMkyD@ æ(U‹ %Xd¸i-(Á<¥j‘! ‹ 7­å%˜G T-2’ü‡ÃÅ‹ÓÀ#kí¯uà@nþ—æY¨D‰øk|¤‘ ¯C‡ô‡?ü! r’ÿѺgÏþÏÉã©nݺŠš þµÛK¯C‡`,X„\ÐIB0[±OŸ>öRßhܸqHõÁB¢™i…€,­ÔvB"  ‹f¦J°´BRÛ ‰@X'?¤vÌüþûïiÓ¦MÔ©S'ßzOýúõ h?Ožâg¯¦\±øG¥Â… Ó!>  ʖ-++é—_~!”c%FEEñO¤œ9sÒ7ÞèŒù·ß~“L%K–¤¾}ûRÞ¼yöÐ7`X°`AºõÖ[Ÿ*D>æýÛ¹s'/^\æÓ©xWL°íÛ·Óßÿþwþá¨ê³©Zµª¬vÁV2xð`zýõ×…hï¿ÿ¾äƒ$O=õa¢P§Gü[@—€*T¨½÷Þ{TºtiþÕ³5Ô³gOðû$™5k–´cÿ ]ôرcBôÄÄDzä‘G¨[·n´dÉzíµ×¨Zµj´qãFþ îDiV‹cåÊ•ôòË/Ó Aƒd,î4ú,.\¾–)SFа:wîL›7o–í “ý—¿ü…Z¶l)åƇ1@0+ØóçÏO­Zµ²Yò²?ÿüóôÜsÏ2¡n _~ù%-\¸PêõêÕ‹þñȼ|õÕW²GÅ¿±4а±ÐªT©Býû÷baþ0Ƶk×ò'Ä8téÒ…6lПHi¶EæÎ[>@gaúa1Æ'ÄÀ„båÂ` äçŸÂ<øàƒôÅ_ÈDl|’¿aÚ´iB„ˆµXгõC ă?öÝwß ±@BLŽwúôéôßÿþ—Nœ8Aü±Á‚ìÖ*§¡4vìXêÝ»·X•gžy†öîÝKØÎ è7Ò˜D\·oß^îâA†.Vù³Ï>“ņÅeÛ<‡-8X°€h°ŠVBV´^½zT»vm6l˜U•wÌÇçŸ.xSŒ}ß¾}4räHG†>æ ‹ð›o¾qÊ®ä"͆Շ׬YSúöÃ2Ø4ü‰x@¶ 2wî\ºûî»ÅŒ—(Q‚¶lÙB À‡ó׿þ•¶mÛ&¾HÓ¦Mek¬R8¹å–[衇’û@¯X±bb­>-Ö¶c­.Ò°–`ÁiÔé±õà°Êp¦AÏG}$«Ñ¢E² @®Ó§O‹ Ëöä“OJ]L û£8X;ë"Hc®?¨«âþåÝpcpU ¸œ?>Á4hÐ@ò1¶ûî»O¬¶UüÓŸþ$þ%¶Oô L ¹â-ÒvÂF*6¢Â ø4ðî¹ç‰”0L.¶>ŠíÖë“O>r¢ÌZ+L¨•`Ææãþƒ[à‡Ù6o „k”áž^%ØÛ°aƒlE°°2øx þ üD·ï« ¹í¶Ûœ[¹·HôV,”ÀÍ€ÃîWjÇß÷ƒoióå;°°‚R§…\¾ã¶f‰”R3˜$ Ûœx˜tÈòåËÅÉ…³ Kë7bÄñ;P~äȼ‰¸· ›gßáàZe€tOˆ»#9²Úv½ÂAä`»Á7uêTÙŽþüç?;Õ,Ùà@[µ¶‚clQ¡¢aXC ÓJjÇ2íÚµ+ ¢„¯ê»×ù³}ðúžfózÃ{ï½W¢«O?ýTL±õ;fΜ)>,¶ D5ˆÂ°ò0A£G–È?"œ¸Ù³gËêĤÙ·Û4êྈ ±=Ã:ÔªUKš‚»5§¡‚ÀùG=ø1¯¾úªl“hVýD´ _ ý…àþ°\pÐQýG}œwYÁö…ˆçzX@±ì³Â?„/Ù¢E q?¬~¸1àÞX`Ÿ[Ð?ø›¶|âU«V‰ÏæÖóã:ͶȔ:gW…íÎ7ö}+ˆ¶Þxã ÂÊPˆjÉÀJx”5jÔH¶\LV¤Û6ÒØJ@DJðkÝ~ûí?¡l° mÛ¶•|ÖÇØÞÝiE"À°‚¶qÌ [Ší?Æ„þƒØš™‚lCÞBÑô÷Yºt©4‡ú8Š@0óÖ[oÙ[ˆ…ïØ±£¶:™|n ¢Y÷Ñ üܧŸ~ZŽÃ],V8¸ñ³éà&ÀžÇÁª¤¥ ÿ°< $î‹3)XŒ‚-ýÃ9õÐÇâ5DÿÝíe XXðƒíöí|.¦õØq0Œ# MySQL++ Reference Manual MySQL++: connection.h File Reference
MySQL++  3.2.5
connection.h File Reference

Declares the Connection class. More...

#include "common.h"
#include "noexceptions.h"
#include "options.h"
#include <string>
#include "tcp_connection.h"
#include "uds_connection.h"
#include "wnp_connection.h"

Go to the source code of this file.

Classes

class  mysqlpp::Connection
 Manages the connection to the database server. More...
 

Detailed Description

Declares the Connection class.

Every program using MySQL++ must create a Connection object, which manages information about the connection to the database server, and performs connection-related operations once the connection is up. Subordinate classes, such as Query and Row take their defaults as to whether exceptions are thrown when errors are encountered from the Connection object that created them, directly or indirectly.

mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1SQLBuffer.html000755 000765 000024 00000047165 13515046516 024421 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::SQLBuffer Class Reference
MySQL++  3.2.5
mysqlpp::SQLBuffer Class Reference

Holds SQL data in string form plus type information for use in converting the string to compatible C++ data types. More...

#include <sql_buffer.h>

Public Types

typedef size_t size_type
 Type of length values.
 

Public Member Functions

 SQLBuffer (const char *data, size_type length, mysql_type_info type, bool is_null)
 Initialize object as a copy of a raw data buffer. More...
 
 SQLBuffer (const std::string &s, mysql_type_info type, bool is_null)
 Initialize object as a copy of a C++ string object.
 
 ~SQLBuffer ()
 Destructor.
 
SQLBufferassign (const char *data, size_type length, mysql_type_info type=mysql_type_info::string_type, bool is_null=false)
 Replace contents of buffer with copy of given C string.
 
SQLBufferassign (const std::string &s, mysql_type_info type=mysql_type_info::string_type, bool is_null=false)
 Replace contents of buffer with copy of given C++ string.
 
const char * data () const
 Return pointer to raw data buffer.
 
bool escape_q () const
 Returns true if we were initialized with a data type that must be escaped when used in a SQL query.
 
size_type length () const
 Return number of bytes in data buffer. More...
 
bool is_string ()
 Returns true if type of buffer's contents is string.
 
bool is_null () const
 Return true if buffer's contents represent a SQL null. More...
 
bool quote_q () const
 Returns true if we were initialized with a data type that must be quoted when used in a SQL query.
 
void set_null ()
 Sets the internal SQL null flag.
 
const mysql_type_infotype () const
 Return the SQL type of the data held in the buffer.
 

Detailed Description

Holds SQL data in string form plus type information for use in converting the string to compatible C++ data types.

Constructor & Destructor Documentation

◆ SQLBuffer()

mysqlpp::SQLBuffer::SQLBuffer ( const char *  data,
size_type  length,
mysql_type_info  type,
bool  is_null 
)
inline

Initialize object as a copy of a raw data buffer.

Copies the string into a new buffer one byte longer than the length value given, using that to hold a C string null terminator, just for safety. The length value we keep does not include this extra byte, allowing this same mechanism to work for both C strings and binary data.

References data(), and length().

Member Function Documentation

◆ is_null()

bool mysqlpp::SQLBuffer::is_null ( ) const
inline

Return true if buffer's contents represent a SQL null.

The buffer's actual content will probably be "NULL" or something like it, but in the SQL data type system, a SQL null is distinct from a plain string with value "NULL".

Referenced by assign().

◆ length()

size_type mysqlpp::SQLBuffer::length ( ) const
inline

Return number of bytes in data buffer.

Count does not include the trailing null we tack on to our copy of the buffer for ease of use in C string contexts. We do this because we can be holding binary data just as easily as a C string.

Referenced by assign(), and SQLBuffer().


The documentation for this class was generated from the following files:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1UseQueryError.html000755 000765 000024 00000032100 13515046516 025403 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::UseQueryError Class Reference
MySQL++  3.2.5
mysqlpp::UseQueryError Class Reference

Exception thrown when something goes wrong in processing a "use" query. More...

#include <exceptions.h>

Inheritance diagram for mysqlpp::UseQueryError:
Collaboration diagram for mysqlpp::UseQueryError:

Public Member Functions

 UseQueryError (const char *w="")
 Create exception object.
 
- Public Member Functions inherited from mysqlpp::Exception
 Exception (const Exception &e) MAY_THROW()
 Create exception object as copy of another.
 
Exceptionoperator= (const Exception &rhs) throw ()
 Assign another exception object's contents to this one.
 
 ~Exception () throw ()
 Destroy exception object.
 
virtual const char * what () const throw ()
 Returns explanation of why exception was thrown.
 

Additional Inherited Members

- Protected Member Functions inherited from mysqlpp::Exception
 Exception (const char *w="") throw ()
 Create exception object.
 
 Exception (const std::string &w) throw ()
 Create exception object.
 
- Protected Attributes inherited from mysqlpp::Exception
std::string what_
 explanation of why exception was thrown
 

Detailed Description

Exception thrown when something goes wrong in processing a "use" query.


The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/structmysqlpp_1_1equal__list__b.html000755 000765 000024 00000031416 13515046516 026000 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::equal_list_b< Seq1, Seq2, Manip > Struct Template Reference
MySQL++  3.2.5
mysqlpp::equal_list_b< Seq1, Seq2, Manip > Struct Template Reference

Same as equal_list_ba, plus the option to have some elements of the equals clause suppressed. More...

#include <vallist.h>

Public Member Functions

 equal_list_b (const Seq1 &s1, const Seq2 &s2, const std::vector< bool > &f, const char *d, const char *e, Manip m)
 Create object. More...
 

Public Attributes

const Seq1 * list1
 the list of objects on the left-hand side of the equals sign
 
const Seq2 * list2
 the list of objects on the right-hand side of the equals sign
 
const std::vector< bool > fields
 for each true item in the list, the pair in that position will be inserted into a C++ stream
 
const char * delim
 delimiter to use between each pair of elements
 
const char * equl
 "equal" sign to use between each item in each equal pair; doesn't have to actually be " = "
 
Manip manip
 manipulator to use when inserting the equal_list into a C++ stream
 

Detailed Description

template<class Seq1, class Seq2, class Manip>
struct mysqlpp::equal_list_b< Seq1, Seq2, Manip >

Same as equal_list_ba, plus the option to have some elements of the equals clause suppressed.

Imagine an object of this type contains the lists (a, b, c) (d, e, f), that the object's 'fields' list is (true, false, true), and that the object's delimiter and equals symbols are set to " AND " and " = " respectively. When you insert that object into a C++ stream, you would get "a = d AND c = f".

See equal_list_ba's documentation for more details.

Constructor & Destructor Documentation

◆ equal_list_b()

template<class Seq1, class Seq2, class Manip>
mysqlpp::equal_list_b< Seq1, Seq2, Manip >::equal_list_b ( const Seq1 &  s1,
const Seq2 &  s2,
const std::vector< bool > &  f,
const char *  d,
const char *  e,
Manip  m 
)
inline

Create object.

Parameters
s1list of objects on left-hand side of equal sign
s2list of objects on right-hand side of equal sign
ffor each true item in the list, the pair of items in that position will be inserted into a C++ stream
dwhat delimiter to use between each group in the list when inserting the list into a C++ stream
ethe "equals" sign between each pair of items in the equal list; doesn't actually have to be " = "!
mmanipulator to use when inserting the list into a C++ stream

The documentation for this struct was generated from the following file:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1String.html000755 000765 000024 00000263556 13515046516 024102 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::String Class Reference
MySQL++  3.2.5
mysqlpp::String Class Reference

A std::string work-alike that can convert itself from SQL text data formats to C++ data types. More...

#include <mystring.h>

Public Types

typedef const char value_type
 Type of the data stored in this object, when it is not equal to SQL null.
 
typedef size_t size_type
 Type of "size" integers.
 
typedef const char * const_iterator
 Type of iterators.
 
typedef const_iterator iterator
 Same as const_iterator because the data cannot be changed.
 

Public Member Functions

 String ()
 Default constructor. More...
 
 String (const String &other)
 Copy ctor. More...
 
 String (const char *str, size_type len, mysql_type_info type=mysql_type_info::string_type, bool is_null=false)
 Full constructor. More...
 
 String (const std::string &str, mysql_type_info type=mysql_type_info::string_type, bool is_null=false)
 C++ string version of full ctor. More...
 
 String (const char *str, mysql_type_info type=mysql_type_info::string_type, bool is_null=false)
 Null-terminated C string version of full ctor. More...
 
 ~String ()
 Destroy string.
 
void assign (const char *str, size_type len, mysql_type_info type=mysql_type_info::string_type, bool is_null=false)
 Assign raw data to this object. More...
 
void assign (const std::string &str, mysql_type_info type=mysql_type_info::string_type, bool is_null=false)
 Assign a C++ string to this object. More...
 
void assign (const char *str, mysql_type_info type=mysql_type_info::string_type, bool is_null=false)
 Assign a C string to this object. More...
 
char at (size_type pos) const
 Return a character within the string. More...
 
const_iterator begin () const
 Return iterator pointing to the first character of the string.
 
const char * c_str () const
 Return a const pointer to the string data.
 
template<class Type >
Type conv (Type) const
 Template for converting the column data to most any numeric data type.
 
template<class T , class B >
Null< T, B > conv (Null< T, B >) const
 Overload of conv() for types wrapped with Null<> More...
 
int compare (const String &other) const
 Lexically compare this string to another. More...
 
int compare (const std::string &other) const
 Lexically compare this string to another. More...
 
int compare (size_type pos, size_type num, std::string &other) const
 Lexically compare this string to another. More...
 
int compare (const char *other) const
 Lexically compare this string to another. More...
 
int compare (size_type pos, size_type num, const char *other) const
 Lexically compare this string to another. More...
 
const char * data () const
 Raw access to the underlying buffer, with no C string interpretation.
 
bool empty () const
 Returns true if size() == 0.
 
const_iterator end () const
 Return iterator pointing to one past the last character of the string.
 
bool escape_q () const
 Returns true if data of this type should be escaped, false otherwise.
 
bool is_null () const
 Returns true if this object is a SQL null.
 
void it_is_null ()
 Set a flag indicating that this object is a SQL null.
 
size_type length () const
 Return number of bytes in the string. More...
 
size_type max_size () const
 Return the maximum number of characters in the string. More...
 
bool quote_q () const
 Returns true if data of this type should be quoted, false otherwise.
 
size_type size () const
 Return number of bytes in string. More...
 
void strip_leading_blanks (std::string &s) const
 Returns a copy of our internal string without leading blanks.
 
void to_string (std::string &s) const
 Copies this object's data into a C++ string. More...
 
mysql_type_info type () const
 Get this object's current MySQL type.
 
Stringoperator= (const std::string &rhs)
 Assignment operator, from C++ string.
 
Stringoperator= (const char *str)
 Assignment operator, from C string. More...
 
Stringoperator= (const String &other)
 Assignment operator, from other String. More...
 
template<typename T >
bool operator== (const T &rhs) const
 Equality comparison operator. More...
 
bool operator== (const mysqlpp::null_type &) const
 Equality comparison operator. More...
 
template<typename T >
bool operator != (const T &rhs) const
 Inequality comparison operator. More...
 
bool operator != (const mysqlpp::null_type &) const
 Inequality comparison operator. More...
 
char operator [] (size_type pos) const
 Return a character within the string. More...
 
 operator const char * () const
 Returns a const char pointer to the object's raw data.
 
 operator signed char () const
 Converts this object's string data to a signed char.
 
 operator unsigned char () const
 Converts this object's string data to an unsigned char.
 
 operator int () const
 Converts this object's string data to an int.
 
 operator unsigned int () const
 Converts this object's string data to an unsigned int.
 
 operator short int () const
 Converts this object's string data to a short int.
 
 operator unsigned short int () const
 Converts this object's string data to an unsigned short int.
 
 operator long int () const
 Converts this object's string data to a long int.
 
 operator unsigned long int () const
 Converts this object's string data to an unsigned long int.
 
 operator longlong () const
 Converts this object's string data to the platform- specific 'longlong' type, usually a 64-bit integer.
 
 operator ulonglong () const
 Converts this object's string data to the platform- specific 'ulonglong' type, usually a 64-bit unsigned integer.
 
 operator float () const
 Converts this object's string data to a float.
 
 operator double () const
 Converts this object's string data to a double.
 
 operator bool () const
 Converts this object's string data to a bool.
 
 operator Date () const
 Converts this object's string data to a mysqlpp::Date.
 
 operator DateTime () const
 Converts this object's string data to a mysqlpp::DateTime.
 
 operator Time () const
 Converts this object's string data to a mysqlpp::Time.
 
template<class T , class B >
 operator Null< T, B > () const
 Converts the String to a nullable data type. More...
 

Friends

class SQLTypeAdapter
 

Detailed Description

A std::string work-alike that can convert itself from SQL text data formats to C++ data types.

This class is an intermediate form for a SQL field, normally converted to a more useful native C++ type, not used directly. The only exception is in dealing with BLOB data, which stays in String form for efficiency and to avoid corrupting the data with facile conversions. Even then, it's best to use it through the typedef aliases like sql_blob in sql_types.h, in case we later change this underlying representation.

String's implicit conversion operators let you can use these objects naturally:

String("12.86") + 2.0

That will give you 14.86 (approximately) as you expect, but be careful not to get tripped up by C++'s type conversion rules. If you had said this instead:

String("12.86") + 2

the result would be 14 because 2 is an integer, and C++'s type conversion rules put the String object in an integer context.

You can disable the operator overloads that allow these things by defining MYSQLPP_NO_BINARY_OPERS.

This class also has some basic information about the type of data stored in it, to allow it to do the conversions more intelligently than a trivial implementation would allow.

Constructor & Destructor Documentation

◆ String() [1/5]

mysqlpp::String::String ( )
inline

Default constructor.

An object constructed this way is essentially useless, but sometimes you just need to construct a default object.

◆ String() [2/5]

mysqlpp::String::String ( const String other)
inline

Copy ctor.

Parameters
otherthe other String object

This ctor only copies the pointer to the other String's data buffer and increments its reference counter. If you need a deep copy, use one of the ctors that takes a string.

◆ String() [3/5]

mysqlpp::String::String ( const char *  str,
size_type  len,
mysql_type_info  type = mysql_type_info::string_type,
bool  is_null = false 
)
inlineexplicit

Full constructor.

Parameters
strthe string this object represents, or 0 for SQL null
lenthe length of the string; embedded nulls are legal
typeMySQL type information for data within str
is_nullstring represents a SQL null, not literal data

The resulting object will contain a copy of the string buffer. The buffer will actually be 1 byte longer than the value given for len, to hold a null terminator for safety. We do this because this ctor may be used for things other than null-terminated C strings. (e.g. BLOB data)

◆ String() [4/5]

mysqlpp::String::String ( const std::string &  str,
mysql_type_info  type = mysql_type_info::string_type,
bool  is_null = false 
)
inlineexplicit

C++ string version of full ctor.

Parameters
strthe string this object represents, or 0 for SQL null
typeMySQL type information for data within str
is_nullstring represents a SQL null, not literal data

The resulting object will contain a copy of the string buffer.

◆ String() [5/5]

mysqlpp::String::String ( const char *  str,
mysql_type_info  type = mysql_type_info::string_type,
bool  is_null = false 
)
inlineexplicit

Null-terminated C string version of full ctor.

Parameters
strthe string this object represents, or 0 for SQL null
typeMySQL type information for data within str
is_nullstring represents a SQL null, not literal data

The resulting object will contain a copy of the string buffer.

Member Function Documentation

◆ assign() [1/3]

void mysqlpp::String::assign ( const char *  str,
size_type  len,
mysql_type_info  type = mysql_type_info::string_type,
bool  is_null = false 
)
inline

Assign raw data to this object.

This parallels the ctor with the same parameters, for when you must do a 2-step create, or when you want to reassign the data without creating a String temporary to get around the fact that operator=() can only take one parameter.

◆ assign() [2/3]

void mysqlpp::String::assign ( const std::string &  str,
mysql_type_info  type = mysql_type_info::string_type,
bool  is_null = false 
)
inline

Assign a C++ string to this object.

This parallels the ctor with the same parameters, for when you must do a 2-step create, or when you want to reassign the data without creating a String temporary to get around the fact that operator=() can only take one parameter.

◆ assign() [3/3]

void mysqlpp::String::assign ( const char *  str,
mysql_type_info  type = mysql_type_info::string_type,
bool  is_null = false 
)
inline

Assign a C string to this object.

This parallels the ctor with the same parameters, for when you must do a 2-step create, or when you want to reassign the data without creating a String temporary to get around the fact that operator=() can only take one parameter.

◆ at()

char mysqlpp::String::at ( size_type  pos) const

Return a character within the string.

Exceptions
mysqlpp::BadIndexif the row is not initialized or there are less than i fields in the row.

References size().

◆ compare() [1/5]

int mysqlpp::String::compare ( const String other) const

Lexically compare this string to another.

Parameters
otherstring to compare against this one
See also
compare(size_type, size_type, const char*)

References length().

Referenced by compare().

◆ compare() [2/5]

int mysqlpp::String::compare ( const std::string &  other) const

Lexically compare this string to another.

Parameters
otherstring to compare against this one
See also
compare(size_type, size_type, const char*)

References compare(), and length().

◆ compare() [3/5]

int mysqlpp::String::compare ( size_type  pos,
size_type  num,
std::string &  other 
) const

Lexically compare this string to another.

Parameters
posposition within this string to begin comparison
nummaximum number of characters within this string to use in comparison
otherstring to compare against this one
See also
compare(size_type, size_type, const char*)

References compare().

◆ compare() [4/5]

int mysqlpp::String::compare ( const char *  other) const

Lexically compare this string to another.

Parameters
otherstring to compare against this one
See also
compare(size_type, size_type, const char*)

References compare(), and length().

◆ compare() [5/5]

int mysqlpp::String::compare ( size_type  pos,
size_type  num,
const char *  other 
) const

Lexically compare this string to another.

Parameters
posposition within this string to begin comparison
nummaximum number of characters within this string to use in comparison
otherstring to compare against this one
Return values
<0 if this string is lexically "less than" other
0if this string is equal to other
>0 if this string is lexically "greater than" other

References data(), and length().

◆ conv()

template<class T , class B >
Null<T, B> mysqlpp::String::conv ( Null< T, B >  ) const
inline

Overload of conv() for types wrapped with Null<>

If the String object was initialized with some string we recognize as a SQL null, we just return a copy of the global 'null' object converted to the requested type. Otherwise, we return the String's value wrapped in the Null<> template.

◆ length()

String::size_type mysqlpp::String::length ( ) const

Return number of bytes in the string.

Note that this doesn't count the number of characters in the string. If your database is configured to use an 8-bit character set, this is a distinction without a difference. But, if you're using UTF-8 in the database, you will need to "widen" the UTF-8 data to use a fixed-size character set like UCS-2 and count the characters that way. You might use std::wstring, for example.

Referenced by compare().

◆ max_size()

size_type mysqlpp::String::max_size ( ) const
inline

Return the maximum number of characters in the string.

Because this is a const string, this is just an alias for size(); its size is always equal to the amount of data currently stored.

◆ operator !=() [1/2]

template<typename T >
bool mysqlpp::String::operator != ( const T &  rhs) const
inline

Inequality comparison operator.

For comparing this object to any of the data types we have a compare() overload for.

◆ operator !=() [2/2]

bool mysqlpp::String::operator != ( const mysqlpp::null_type ) const
inline

Inequality comparison operator.

For checking object against MySQL++'s global null constant

◆ operator []()

char mysqlpp::String::operator [] ( size_type  pos) const
inline

Return a character within the string.

This function is just syntactic sugar, wrapping the at() method.

Exceptions
mysqlpp::BadIndexif the string is not initialized or there are less than i fields in the string.

◆ operator Null< T, B >()

template<class T , class B >
mysqlpp::String::operator Null< T, B > ( ) const
inline

Converts the String to a nullable data type.

This is just an implicit version of conv(Null<T, B>)

◆ operator=() [1/2]

String& mysqlpp::String::operator= ( const char *  str)
inline

Assignment operator, from C string.

This creates a copy of the entire string, not just a copy of the pointer.

References mysqlpp::mysql_type_info::string_type.

◆ operator=() [2/2]

String& mysqlpp::String::operator= ( const String other)
inline

Assignment operator, from other String.

This only copies the pointer to the other String's data buffer and increments its reference counter. If you need a deep copy, assign a string to this object instead.

◆ operator==() [1/2]

template<typename T >
bool mysqlpp::String::operator== ( const T &  rhs) const
inline

Equality comparison operator.

For comparing this object to any of the data types we have a compare() overload for.

◆ operator==() [2/2]

bool mysqlpp::String::operator== ( const mysqlpp::null_type ) const
inline

Equality comparison operator.

For checking object against MySQL++'s global null constant

◆ size()

size_type mysqlpp::String::size ( ) const
inline

Return number of bytes in string.

See commentary for length() about the difference between bytes and characters.

Referenced by at().

◆ to_string()

void mysqlpp::String::to_string ( std::string &  s) const

Copies this object's data into a C++ string.

If you know the data doesn't contain null characters (i.e. it's a typical string, not BLOB data), it's more efficient to just assign this object to anything taking const char*. (Or equivalently, call the data() method.) This copies a pointer to a buffer instead of copying the buffer's contents.


The documentation for this class was generated from the following files:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1GuessConnectionOption__inherit__graph.png000644 000765 000024 00000015021 13515046516 032127 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÃ{Éæ4²sRGB®ÎéËIDATxí ¸MUÇßk–J”Ê ê1”$=•&Q*¡Y4QѨò%C=h”¨h4d¨ˆJ†J†Ì$”4RÉ<ïoýÞ¾u¾}½ÏÜsïq÷zŸçž½÷Zk¯á¿Ö;®uÎMó|¸¦ìرC¶mÛæËð-§VS‘ *ä™}†Lwí×_õŒÔô6nÜè}ýõ×žÙØÑw´ö¦Nêi¨Ïëׯ÷~ùå—tõþùçŸÞo¿ýKãÏ>ûÌãê§={öxóçÏ÷–,Y¢É?ýô“g“7oÞÿüs1ÚG*Uª”О8úè£ÅHg1ÚBëzä‘Gbåéç?þ¨ù7V›ßHhÍÇì¹çž{be±ç/¸à1]0ið‚È,hM¦ï}}ñÅÕzýõ×…¿?üP±0L.C† ‘|PËÚÆ vFò‹a 8p tïÞ]&Mšd‹ˆ‘êb´™âL,ޱòMb^λÜìh†ûï¿?ÖáSO=ÕkÒ¤Iì¢eË–úl ×¨Q#½õÕW=$.fŬY³T“†ñ>ýôSoË–-1“¥B… é–Œ}®’2L3XSŠò=ôwÌ1Çè«h†'Ÿ|ÒV£&Y?jNÅn¬)f6 ×óÌÂÕþÌ™3G5C5Ò•3Ì«Z€D°}ûí·5íi5ÚÕjû2Ú­c5÷ß~k³<ã¿xmÚ´‰=gtã4C.JŠ#<2ÖýN:館3ÚÀL–>3B%ZGòòË/—’%K Òõ¥—^’… Ša1f€<ýôÓúÞªU«¤N:±ú sÄîƒnŽ?þøX2+mYòçÑ´nÝ:›x=á„4MDÆÇÑäO„}<à¯ùÊLbÁg†š5k&ÅŠ“×^{MM¤ë¯¿^_3šAjÖ¬)De“[]zôè!ƹ–Ã?\ˆæX²æˆ}Ž¿ò¾%LµŠ+ÚÇt!Xãìkº??VÐwsðÁ«‰d|˜XXÔf š8q¢ßGŒ#­Éþö‰rÍ;7]ì»öjüeþ Ø$1šQŒóî=ÊåWÊ¿#K0c%J”ãJ—.]4VÏ´xñbiÞ¼¹°@Ë—/¯šûšãÆhŠ7ÞxCË`O?þøã Z­Ÿ̓ŸqÙe—ÅÊ£}Œã©Lׯ_?AËœrÊ)šÿþûïKçÎce‰³Ë{ö쩾ƒqrU³±àa4ü îSO={ÏDœäÝwßUÅ8ÁÊ@—^z©æ£5af»×`_¢£F¾KB^Ÿ>}4ëꫯ¶Eòõ5e¿Ü“UÔãµÏñiþ:q˜9"ΕÅ]sÍ5ºàëׯ¯šÃD ÇÓ W¯^ê [\Ëšˆ^ùj'ÔDdf‚ÙŒŸ+_¦L©^½ºš&ê#0€­gÞD¤„…¡½p®¯¼òJ•üÆ—‘›nºI`KU«V•iÓ¦Éi§f“ÔÁoß¾½:ÂôsÏDÛ4ßøRʬÆÑv­´‡™ÐÒÀM„éE@!ž2Â8¾|Ê?gäôäU~Vè¬öÓ,u8ýŽ®­ƒ´™3gj¨Õ¦q5vµg¢@'>o&×Ãö“ ­²_@Yöü„m$¶:ìAmûË&ºg¿€X|ý¼Ch•(}0fOº}['¡e»aÓ¸2Föp”yåÏÚïûTw ófÈŠÔÁÜ!ÔˆÄFªÆSPe„Ö1Å,ɈlÙ r8ìüe—0­2râÑJø@A„DŒÑ:ëAùù9-’>v: ž}ˆìû˜œò&Ù‹™=þ<îÉ£L2©råÊR¥J•d6‘/ëNéï@ŠƒbÓïŠ+®Ð;÷è(®7æHšI©6;ëÖmLµ.E²?)í@Ϙ1#öÌϳӿÿ¹ýöjùyˆ:6¡Jé1¦´Ï…ßM*\¸œÙÝniâøÃÍFת”^,9Õ9û9Ÿ! hš¹ž 2Áí|}íÒe ¢Ò±cß|=Nÿ<¦"#0 Îgȃ&£èˆÿš£FÍ1;Òîç4“qfëtÌY¤’PnÆŒæ$é¿ÎóÆÛdêÔeIhÅU™Y3d©$”=zŽ Ôš *`¾\”Úf H©*3äÑt`aíÚõï÷vïÞ+Ÿ|²ÐlHíÊ£¹f3äј2e©ùúhú_¥Ø±c§|öÙâ<ê‘kÖ1C­>˜3‘l ,`¾KàL%‹Gn_3ä6â¦=L¡qãÄL$ÛL¥/¾Xb4Æv›ä®¹ˆ€c†\Û6…)´sg°o@<Fq”û8fÈ}Ì5j„IDüfÁðá3ƒ²\Z’ž‘$7åê1&MZb~×)xƒÍ|ÑL¦O_a~McS”aÊ“±;fÈeØÇޝÇ.5[ @šŒ37Q——3$ÔDUE⟘)R(ô¿ÁmÀ%B19y)}„;9CλZYäçž[E4¨ëĆ [ÍO=N“뮫c~·èßß<²™lÈÙj›æ®ÉC ep'oÈ©UóÊ•ëÍÏË÷0›mÈÉ'•Z‹Xoœ™± wà GÀ1C86.'b8fˆØ„»á†#à˜!—13DlÂÝpÃp̎ˉŽ"6án¸á8fÇÆåD Ç ›p7Üp3„cãr"†€c†ˆM¸n8ޱq9CÀ1CÄ&Ü 7Ç áØ¸œˆ!à˜!b€c†pl\NÄp̱ wà GÀ1C86.'b8fˆØ„»á†#à˜!—13DlÂÝpÃp̎ˉŽ"6án¸á8fÇÆåD Ç ›p7Üp3„cãr"†€c†ˆM¸n8ޱq9CÀ1CÄ&Ü 7Ç áØ¸œˆ!à˜!b€c†pl\NÄp̱ wÃM€€ù×Jéhذa柯ŠûË% ÒÒ yEŠ”÷¸:ÜsoݽþúëéÖ=¡ÿÓí?ÿùOrYž={v>”6lø‚Ktè<ûì³Cp>C ,.1Š8fˆâ¬»1"à˜!—E3DqÖݘu K§`â§Ÿ~*K–,‘{î¹'é½[³f 8PÛÛ¾}»T¯^]êÖ­+—^ziÒÛNÔÀæÍ›µ_ ,µk×J¹rå¤Q£Fríµ×J‘"E½šgyà·wï^9è ƒä×_•^xA~øa)]ºtžõé€g€\´hQÒ\¶l™tìØQ=ôP¹ì²Ë¤`Á‚2gÎéÝ»·üòË/rÇw$½A üõ×_Ò¾}{ù矤yóæR¶lY™={¶ 2D~øáéÚµkÐkyžÖ«W/Ù±c‡tïÞ]™bÛ¶mbBýyÚ¯ý6“vîÜ)HÌ={öÈï¿ÿ.+V¬ÐÁõ?ýô“,]ºTvïÞ­iH­7¦ðü!H6K,ºÅ‹ àø‰g=“ŽT¡ÍxÚ²e‹ÖE{ .T‰cËìÚµKX8‹÷»ï¾Ò,1Lý†üÏÜ÷íÛW¥Ök¯½&-[¶T©ûÌ3Ïȹçž+#GŽÔ~ñãñ÷±‘æ§uëÖiÿèo<ýù矺˜¹ÆS6ƒÖúû÷ï/7Ýt“j©.]ºH«V­dêÔ©Š¿­‡~LŸ>]–/_žná‘ÎØ7mÚ$óçÏO×_;¿à²jÕ*í·|ÔÍÜÿøãBÿ¸÷ϬyóæÅÖCæqýúõrÌ1Ç(ÓvØa±W³ÓרËÙ¼ÙoÍ€ô¹ë®»ä´ÓNÓÓš5kªzFBA˜ýúõ“nݺI¡B…ta‘¾aÃiÑ¢…J6ÞyôÑGc‹ýð×çž{N*T¨ ôØc ‹'--MN<ñD]П|ò ÕĈË„üý÷ߺ aŠ‹/¾X|ðA™1c†<þøãrÊ)§(#GÝHv¤)Rþþûï—>}úèXüÏ%K–TÓˆþ•(Q"Ö7÷ÝwŸ°'cAÛ¶m•Y®¾új-÷á‡ÊرcåwÞQæ£=L;4 Lvë­·jyf킌JÝh!Z6Ÿþ¹\xá…º ü»îºë䤓N’2eÊh2LÃßÁ¬‹¾FÒ£GÕtÌX`f1úÒ©S'mÛÎïÙgŸ-ß|óæÇ‹/¾¨m¢™™L„<¤=s΢'!V¸paZ æ˜6mšö ƽûî»u ½÷Þ{rÄGh?³ÓWÿø³s¿ßšÁ6Ê">|¸ ©Ìdš£ RxåÊ•rÁ(à,VèË/¿ÔÅ}Þyç©ZgQ²p¨Û‘…Ä¢}úé§ub õoß·mû¯L þÄ ” `˜¯¿þ:V&ûøãåí·ßV-5`ÀÍc`L®ÿ™:¡Ê•+ë•$è·ß~«R–†͈F%,^!ýÃìBÓ|ÿý÷2eÊ™5k–0Fƽς€as6hº­[·Ê 'œ°OÓE‹0ãe>Þ|óMŃº;R~РA±÷XôØíÌã£>ŠåqÃøÆŒ£‚Œ¹Eë@Ì mÑ×qãÆIµjÕTèÑoÒ~þùg½ò.ýyõÕWu~ðix~ùå—µû‘}µueõšcÌкuk‡B¢1ö³ Šô€  É“'KíÚµUš}ôÑ*1X hŒ—^zIn¿ýv]l¼Û´iS)_¾¼PiFÇwœœþùÚåŽ<òH]¸¶ü7Þ¨“gëA}C<·k×.Æ þçxÓŽòìb¢iø{àt,¤'¢‰'*C±@‘öh¸bÅŠÉÌ™3娣ŽÒW_yå7Üpƒj4!}AšÆcÃ‚Ë }õÕWªÑÐ õÕ¯__µ}ÿ’K.‘*Uª¨&ÁôƒYü„ƒéO=õTe>ò™]:uÔteáŸyæ™šŽÆ ]æ­S¼xqÅ—9EÀ…QNô5¬îŒÒ÷ÛL² Ø(êpˆÉ„˜8T(À!œ…ˆ…`&Ô*Zˆ ŒDžÕ¨]K0EÙEeó±Cm¤YÉÏ=y´™aÓB˜0L,„Ù!%7n¬÷AØÅ–ð™°·1y,±ÀÀˆ…xï½÷ÊèÑ£•¹¶h*ü€0làDcÐ(Íš5³UêÃ"DhÆCYb¾üc÷Ûë´mÍ>[¾T©RöV… ¦”õÛÐ6ãÇåÃì~Àfž+ÊåD_m{Y½þ¬¾WÞ.ú¸ä}1•`L¤ªÂä¸þúëSU 3`BØIð;”8êa„Cf‰ ÁYô3€¿Tr"ƲõTªTIm^úOHu†%p€A,ýöÛoöV5'’†·˜tL%Úyã7dĈrÅWÈ[o½%8ÛaØP1L4wîÜ}Ì4´Î2u²ð fø5 ¾•ìÍ_P>‹Âæ·ãÁì$²V±bE6h Kh|¦xF³ù\s¢¯þú²rŸcÌÙFÏ:ë,5 ÌZ]6޽‰ÍJá8cêÂÄ„@¢¡QXDf°m‘DaÄ$c—#õ°‰QÉÖTãÚ¥L4üzõêiUøÏ?ÿ|Ì<ð?Ó>$|&`¥ñ¨+þÐZ͇„Ãɽ%ÆN›¤Ñ?Æ„™E¨“Â0(€zв8žaØP/ æÃTÃQE²â'af^tÑEŠ#ãÇÔ³cgQÂ@ØíûC˜ ÌÑ4æÌžzê)ň~cŠaöà_¬^½ZûD_Ac÷S²úêo#ì>Ç̤°lº•,,~$!†j‰ÅFÇ 0Gˆh`tîÜYó.¿ür5)ªV­ª’ξkëæ3‰EM˜ä¶Ûn““O>Y'…|l]êÁdÀd»ùæ›IV&D+5hÐ@M<˜ÒÿL¨Æ:t¨Ú`Ê }lè?±ý6mÚ¨äÅ'²Ú:XôO<ñ¯ëB§& L:tè é$°ÓaŒ0l¨ƒ÷¨h‘ˆ¾à/áAô¶qœß}÷]Õd-®ºê*Í·}×óÁs|šÍãjóYÔ˜|D„ÀB£Óðelûu"†hìZ0-åt_m½™¹¦ՙΠCÝ]sÍ52iҤ̼Ÿ­2H-$$’ÊO¨Ov“ "uüD4`IG²²àY<~"JƒMÎbD={챺°(ƒ„B 3HOL4k‚ùëÈèž~P7Ljý¢øw(3…åcú éß!‡’îu¤+ö>‘+¿Ÿ*ÀTÃ|DÒb¢ Uã m„0ÃìŒ=¾>ûLßÀ„+ÌiýF›¸ø6X”ËxJV_i!Ì´‚жkš™œPÔ>ê=ž†øw¡Q‚BˆAe©‡I £x';¬\P:ý ~Ÿˆ(ƼÇq þ‚È:èñy‰°¡,Œ“¨MÊ ÉøËiÊo´EÅ ™dõÕßFü}®2‚x3*Û†ùâ;”™g"˜Jñ„ÍNj.1pG0r•Ø¥&lº¿„Ók_]ì!„öjüOXÙ¬¤³IˆÙ†ãŽºG{æ¬U«V¦ªÁ´`g€„Š£_å(wÈõhRî/¹­á·*ÄL€›4i¢±w";ìd†8–@ÕnDö‡f3S‡+“3äªfÈ™.§F-ˆ6¹å–[b"BCô‹d"SØÅ8ŠÄÏqŽqpñ9=âhÛ A6°ðeˆ®àsX" Àî3„SmMB¥0õÆågÓQöpÌ=Üô Ñv‡ýÄ"'¤I¨‘} ÊÅ : HȕÅš…]mB«˜Y´ãàaI´æŒÀóé§Ÿ®aR’N‰hzì{$ ‹úûêîÓ#à̤ôxdú‰0/‚~)n_&’SøwÊÙ­? È¢¶ß7ààž§S‰Ÿ4a„Csø&DÚHC£@hL,Þ…™Ø©¶G$l_Ü5ó8fȲ„€c†,ÁõÿÂØ÷h‡ ŸÀlñïgø¥~f²1ùÛï&°!ù×Y å?'¥…ÜG¦pÌi¨Ò$tÊyœ ¯œr& IΑKY= ˆÃ á["| YÆòk[Æ]³€c†lbÇÑhvV‰ñÍ5üÎqØžê¤ {HnrÜALÓÇ2Cpžˆ§D¡8 È)ÕŒvšµB÷‘e\4)Ëýûö?áS¾éÅF™%Î<ÙˆMãv@Cz˜;Ê#šd¥=g‹`´'Ÿ|RC·¤ã#pþ âÙvIÝÇ~!à˜a?àÆçWÚHoŽ|pøÎ.hÕO: È;œ„e?ÁÞÛ÷Î8ã ýž&C#Xˆÿ5œùd®´}ÊÏWÇ 90»,DŽ{dD~‡Ú_ç×:ÀþtîI÷;Ññùî9çp>CÎaX“; KJ&:ÍäiIÖÁ$w;’Õ;ÍÉiwƒBÀ1C*.-’8fˆä´»A!ê3<ñÄAå]šCà€G ìÛû0qrû;¡ü¨Ýð“ã?~Ÿœ}~cŸ.Á!œÏ‘‰vÃÌÇ cäJDÇ ™h7ÌŒpÌ1F®DDø/0áçM~àЂIEND®B`‚mysql++-3.2.5/doc/html/refman/mysql_09_09_8h_source.html000755 000765 000024 00000033170 13515046516 023447 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysql++.h Source File
MySQL++  3.2.5
mysql++.h
Go to the documentation of this file.
1 
11 /***********************************************************************
12  Copyright (c) 1998 by Kevin Atkinson, (c) 1999-2001 by MySQL AB, and
13  (c) 2004-2010 by Educational Technology Resources, Inc. Others may
14  also hold copyrights on code in this file. See the CREDITS.txt file
15  in the top directory of the distribution for details.
16 
17  This file is part of MySQL++.
18 
19  MySQL++ is free software; you can redistribute it and/or modify it
20  under the terms of the GNU Lesser General Public License as published
21  by the Free Software Foundation; either version 2.1 of the License, or
22  (at your option) any later version.
23 
24  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
25  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
26  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
27  License for more details.
28 
29  You should have received a copy of the GNU Lesser General Public
30  License along with MySQL++; if not, write to the Free Software
31  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
32  USA
33 ***********************************************************************/
34 
35 #ifndef MYSQLPP_MYSQLPP_H
36 #define MYSQLPP_MYSQLPP_H
37 
42 #define MYSQLPP_VERSION(major, minor, bugfix) \
43  (((major) << 16) | ((minor) << 8) | (bugfix))
44 
52 #define MYSQLPP_HEADER_VERSION MYSQLPP_VERSION(3, 2, 5)
53 
54 // This #include order gives the fewest redundancies in the #include
55 // dependency chain.
56 #include "connection.h"
57 #include "cpool.h"
58 #include "query.h"
59 #include "scopedconnection.h"
60 #include "sql_types.h"
61 #include "transaction.h"
62 
63 namespace mysqlpp {
64 
72 MYSQLPP_EXPORT unsigned int get_library_version();
73 
74 // This won't exist forever! Wean yourself away from these as soon as
75 // you can!
76 #if defined(MYSQLPP_OLD_CLASS_NAMES)
77 # define ColData String
78 # define NullisBlank NullIsBlank
79 # define NullisNull NullIsNull
80 # define NullisZero NullIsZero
81 # define ResNSel SimpleResult
82 # define Result StoreQueryResult
83 # define ResUse UseQueryResult
84 # define SQLString SQLTypeAdapter
85 #endif
86 
87 } // end namespace mysqlpp
88 
89 #endif // !defined(MYSQLPP_MYSQLPP_H)
90 
91 
Declares the ScopedConnection class.
Declares the Connection class.
Defines a class for building and executing SQL queries.
Declares the ConnectionPool class.
Declares the closest C++ equivalent of each MySQL column type.
Declares the Transaction class.
mysql++-3.2.5/doc/html/refman/mystring_8h.html000755 000765 000024 00000016761 13515046516 021765 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mystring.h File Reference
MySQL++  3.2.5
mystring.h File Reference

Declares String class, MySQL++'s generic std::string-like class, used for holding data received from the database server. More...

#include "common.h"
#include "datetime.h"
#include "exceptions.h"
#include "null.h"
#include "sql_buffer.h"
#include <string>
#include <sstream>
#include <limits>
#include <stdlib.h>
#include <string.h>

Go to the source code of this file.

Classes

class  mysqlpp::String
 A std::string work-alike that can convert itself from SQL text data formats to C++ data types. More...
 

Functions

std::ostream & mysqlpp::operator<< (std::ostream &o, const String &in)
 Stream insertion operator for String objects. More...
 

Detailed Description

Declares String class, MySQL++'s generic std::string-like class, used for holding data received from the database server.

Function Documentation

◆ operator<<()

MYSQLPP_EXPORT std::ostream & mysqlpp::operator<< ( std::ostream &  o,
const String in 
)

Stream insertion operator for String objects.

This doesn't have anything to do with the automatic quoting and escaping you get when using SQLTypeAdapter with Query. The need to use String with Query should be rare, since String generally comes in result sets; it should only go back out as queries when using result data in a new query. Since SQLTypeAdapter has a conversion ctor for String, this shouldn't be a problem. It's just trading simplicity for a tiny bit of inefficiency in a rare case. And since String and SQLTypeAdapter can share a buffer, it's not all that inefficient anyway.

mysql++-3.2.5/doc/html/refman/functions_func_f.html000755 000765 000024 00000014370 13515046516 023034 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Class Members - Functions
MySQL++  3.2.5
 

- f -

mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1ScopedLock.html000755 000765 000024 00000013607 13515046516 024650 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::ScopedLock Class Reference
MySQL++  3.2.5
mysqlpp::ScopedLock Class Reference

Wrapper around BeecryptMutex to add scope-bound locking and unlocking. More...

#include <beemutex.h>

Public Member Functions

 ScopedLock (BeecryptMutex &mutex)
 Lock the mutex.
 
 ~ScopedLock ()
 Unlock the mutex.
 

Detailed Description

Wrapper around BeecryptMutex to add scope-bound locking and unlocking.

This allows code to lock a mutex and ensure it will unlock on exit from the enclosing scope even in the face of exceptions. This is separate from BeecryptMutex because we don't want to make this behavior mandatory.


The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1BadParamCount.html000755 000765 000024 00000033217 13515046516 025301 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::BadParamCount Class Reference
MySQL++  3.2.5
mysqlpp::BadParamCount Class Reference

Exception thrown when not enough query parameters are provided. More...

#include <exceptions.h>

Inheritance diagram for mysqlpp::BadParamCount:
Collaboration diagram for mysqlpp::BadParamCount:

Public Member Functions

 BadParamCount (const char *w="")
 Create exception object.
 
 ~BadParamCount () throw ()
 Destroy exception.
 
- Public Member Functions inherited from mysqlpp::Exception
 Exception (const Exception &e) MAY_THROW()
 Create exception object as copy of another.
 
Exceptionoperator= (const Exception &rhs) throw ()
 Assign another exception object's contents to this one.
 
 ~Exception () throw ()
 Destroy exception object.
 
virtual const char * what () const throw ()
 Returns explanation of why exception was thrown.
 

Additional Inherited Members

- Protected Member Functions inherited from mysqlpp::Exception
 Exception (const char *w="") throw ()
 Create exception object.
 
 Exception (const std::string &w) throw ()
 Create exception object.
 
- Protected Attributes inherited from mysqlpp::Exception
std::string what_
 explanation of why exception was thrown
 

Detailed Description

Exception thrown when not enough query parameters are provided.

This is used in handling template queries.


The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/inherit_graph_24.png000644 000765 000024 00000012112 13515046516 022441 0ustar00tangentstaff000000 000000 ‰PNG  IHDRà1ÃO¥ksRGB®ÎéIDATx휔%I°†sÖ¶mÛÞYÛöžµmgmïÎÚ>kÛ¶mͬïÿâmÔ«®©ªî¾÷6f^Æ9· ™•™™ø«ûDQH”88Ð0DOôšúLHø_$L+!q 9°™ŸºNH˜Ö@â@Or€ Lž®¹æ‚2é—xÖ@‹×À]wÝ•5ÎûU%üĪ¢t?q q øõ×_æ›nZúD¥®µÖZ¥¤›‰‰ãÀ€*H>`%kRAâ@×s `×ó8õ8PÉ$€•¬I‰]Ï$€]ÏãÔCâ@%y¼ôÒKÃ;ìPù‚­,xþùçÃzë­¦šjª0ÖXc…Å_<wÜqáßÿme7M·õú믇å–[®ÍoÅW {ï½wxë­·šn¿ØA†í·ß>Ì2Ë,aÔQG 3Ïÿüóí6ïÃXϧŸ~ê—vüøãã#<¯ãƒÐÛo¿mç\çûs^ÃÏüøxF þöÛoœÆ‡~ØÆôÔSOÙµÿ¹ñÆíþÙgŸí·l¬>ø`|àâ?þh÷i‡¾}ÞàwþÚÇÁ¶ÝvÛ8ì°ÃÚ˜³FurðÁ[_Ì¿¼¹í¶Û¢, þ~ÏX/Ìüyúé§m}±Ö ÖÓC?þø6<÷v{Ë‘5 e‰øPdgðÉ'Ÿ´Æ[l1;ÒÑ /—Zj©ìzþùç·É\`bß¾}³.¿þúkc ‹ø¥—^Š“N:ii¤‘bŸ>}âDM衇Š£>zbˆ!¬þ\sÍGqD+Ë àl§Ÿ~ú(͇fë³Í6³z7Ýt“]#D^F]tï½÷Z9‹±x}Ýu×Y »H,Âi§6.±ÄV$O<ñĬÚÑGe²Ú5‹hã7¶¶†zh{—cŽ9ÆÊ^|ñE»¯ü«½ÿ)§œbï oœÜ_|1Ðx·Új«8öØc[Õ*|á…¬~ýúeõ/¼n¸áìùûï¿ßøÎ<Þzë­V1r}à 7صvÒ8Â#˜re”Qâ–[ni÷óPf7ß|süì³Ïìö¡‡jïÃÜ0¿ .¸`¦Œëx¶Ûn»ÙœN=õÔöîŒc饗6æ9®YÇ{l¾û^u^'€-3A5AÌ'tRv7û_šßLí6¿“D‹#HðÄ·¤‘ƒ˜ÖYgpøá‡‡‰'ž8àOðܸ㎴àÌ´E ].H ›ƒÙSEÚpúé§iñpá…Úï–[nɪO8á„A ï¼óNÀTÛwß}­LÂoæ$G(­Éî1†"i1™ ¦Ý¿X4Ð5ãÂTc<Œ÷ÛgŸ}Â3Ï<“ÕÅÄ…/RaÑE þ¬ SkÉ%— ˜¾ùñQa™e– ;ï¼sV—“{î¹'€hâ‡i¸ù曇I&™Ä|Cü&)ƒ åð£à»dØh£Âä“On?æ ’´£”“ï»ï¾ …c|Ô®fuV»Ÿÿ3üðÇ•W^9`úÊr ÚÃ\`<‡Ÿï¾ûn8à€òTž3§Úig´s÷Ýw›Í:j¨¡Ì´Æ$©¨*Ý1 Ì'1"*8bטY\cþ`>¢ùÏ:ë,+ÓbŠ+­´’+@`Zø¨£ŽŠì˜?ü0£xþú믷zü9è ƒ*wÀ™fš)«ÇÉSLÑ¢¾ú®J}²Ó¶G첚èÌ<-Ö—b±~¸_§ÍÙ¹ç™gžˆ™ÍóŒ_þ’½3ïé» miÁšÖ×B‹ß|ó³û´G¾*P%öc‡£ý5×\Óv·\äÛf͹ÿT‰óÎ;¯¹#HI˜Å"¿Ø,Þk†9¡œúX>o";ʧ k¯½v`פ/ækljgé§Œò<£œyr‚cèÿ8ÒäÛä™[×f(“rÞyçi3S¨¹„I‚YÁÄkg ûí·_Æ|ù=Y³uæž´rV‰”ßcæšßÌ—+PÓ¦ÌëD?å{ùeYcÄä=XÐÒèV0ïœ0u0ÇäÛfó;í´ÓBî–¾,ÌO„ž5BŒk=ö°Gß{ï=3c¹PÐ,kŽw‚&›l² ŸÞ”©|Ø -h綨*& ¬ 3e©«]=Èo Ìp™Ñ•W^P¤&Pί¾úª)a¯@_®HëxFý¼‚òç—c˰£ aAÉéx -<×hø;í´“ù3Ì0ƒí–rôMs²‹á#â»±ØÏ9çœÊî˜Xü,ü;aXa…²ú2_­´L.K!PH:ƒþYœÅkv7ü'„e—]v±E«È_xíµ×‚‚aŽ9æìV;?m³°Y€œ;áÑ'ã#W†PáƒU Ÿ‹çðÏœŠã½êª«LayyÙ Âßcçcb ¼Å'{î¹m7LJëÛ·¯)FòG%»ŸÓÉ'Ÿl<Æ%ÄnwÑE…]wÝ5l²É&&´ðŸ÷eÎéGn…Y?ë®»®5SÇ3ï§êˆ…€BÎ+½ªº½ò~ÑhnÔôP»˜a6:>Dh[/n>˜÷Ed’{¤œð[ð-4Ñ¥Äß U)§e‘Mž‘¶Œ2GÛø€«GTÂ’Õ%rêQF÷y–vðð?=Ýáþvgk«xMèßÓ#¨´ÁX€°¶N=õT{ŽÈayʵ“Då3_‡È reVF9~>/D˜{Ú1íÚÿ9%r¨àIª8>|*®ì1R´ULCðøàJÒ[=ÚÀO¤.|%Z+¥â]GÞ‰2ŸK¢°\;¼"¼Å—¦ÌÛ’ÂÊÒÔ“5cü"ŠK _–6©ãþ#S'÷§n¿ýv»¥žµçóìõzÓÑÇì~knlý1 ÚPg°ÍüvŒòuªM.‹\B\$rS,RZÑÍLóõ@ùU–#Éâur¤ír‘ÀF#D`ˆ¶YäžW¼üòË-`âí‘'S”Ï/:’D¹|ÿý÷•o—DøÔtÁWY –3õh#ýð,ʃÀyÃ2"Ç{—ñ¾=ž•µç÷˜楷RV~(-Õr¼ÜÂÜÄt)Báe„©Š?Ñ¢|0£øL1PS,¯»Æä)¶½þúë·yó´*(CEÒ-üÚ#x%MoÁ ÷1Û{¦³åðºY¢WG˜ÀnëµÇ³býü5)«A•ºUÉïyæ™Q#Õ(#(P$…µC1‚æu˜x"©ƒ’C/Ñ|I¥`²`”¿O:&(nÛ˜ Š®ÅC9¤ØT—^cæ8tŠŽðW–]vÙ6?ÐEŸªjPÂwF2¬´Š‚'UU»ìþž{îiãéÒ[ sj»í¶3 y×#Ž8¢ d®™±c–ç]‡Î´EŽ”ü%”ŸÏδÑuëLЖDAÉ ñ¥@w€è|TÑ5âV‚6&–åëÆÚÃÓì¢ÝU#ýB5QÜÞHŒ±«×X7ùÈqgø@dØùùùìLÝ]·%˜´4˜åòXÀ@¬ŒbÒ”œæU>·çm#?Äɉ¶>üÁO^ X‰e%Ÿ×cò̵!u _˜œýúõó¦,Í_E~PÚ.»Ÿ?áYåNŒŒ~·ó®yÂÄ–¶Ëßè¼ê« ”iàg|bU¤²1xü|­Q–Ø.ã§?W7(T+|v’Eaüê)ÈⱯBHç#µâyDêË2>×­xÊœ(¨¶ô çÂÛš`ù|Uµíã,;¤ 5Ä{å×cqmÑ_žªæ+_§©óâ–Ûˆ J˜X9.kªµ3fm°æ ÈR+E¼C(ùÓM7]$Å£ÍÄouúXg‚¶$ Q@˜ÅÒ.QÈ c©…«¯¾ÚÎ¥•-SàhÃ& ,l©]Ëð‡B˜X]0¦Î$˜A:OWôa¬á ¹(>wá#II0Bß|žÄ¹’Äö¾!y3>§òæÈ„OªÅˆo‰0 nãå“lÁ{H]àS,„Ú”àŽJÜ›£pd2Û»x¹™\Ɔ 1Y¼êÆà˜O¾˜@¨dºfíÔñ³nÀŠ.´ÐBÖ_2ÈäŒy[Ê…1¶‡ûlÏ í”­Þql'E]ÒK¤JÚk»Jù‡\18`æ‘ÍBD[wek‹q8]|ñŦl‡àtöþùÏç¼^ݱÛ° <ËBc! +D»å‹ÈCA*— LâÓÿöõ]­=@p™:`™„µyJÆŽ ‘Ô.Ëy@ÔL:ãA9¡L¥W”€k!FìS.” BU7Þ‰$}žB4~?ëæ¡ ß*àugÀÕ Bµ7‡eˆÒd(Cˆù¡D¸‡@ºæAðy~úù›o¾±^Ø0„ŠðÉw„ê°KÒøbN5Ób2Ü ´uà§oºÌçQäÏü üìþ¼ïUTööóG.bTþVvŽÑ@0ò DzÃ)Ÿ§äß>àûh×0hÁ| `k ƒm­#™ŠÜ$¾»<™Â•ªGþû—ܨã'øÍªyÐBµ> Å%_) AÐ7žðš?‘'€×¼³¢£^W­|›~NnXÔÈ¿^»™ó¬±¬‹,-UÌífÿ;am‹ ÄQ&²}få»býŽ^·<CÇ>ÊHš×’Ø` ž0a` t¨\Ö~ݽöÁeÏz‚7|á›>ízV½ XŽS‡… >ð5‚©±¬ !|¥*ð#ЄŒ©eDþR@3ØT¡QjùY7U xÚoðšvªÖeuÔȲ® €¬3~‹Ö!T%„áã¾­äK_m£¬^—`YGܼÌnÁš,´7¨P*ƒHAˆµ½Wu׿~{€à6•ÿ»˜Ì¼h>„!á‹„ *–Éd‡iciP7Ûl³Ÿ9æ…™6ˆÐ"´|àJ]~h}þ¿ x¾<¨@nÞLD“È$Ÿ-)hQËϺy¨Å3ÖV¯i§Ž˜Wv¢“Ejdá'©)€ôù±‰ËÔ¶uWì£xMJ%*ŸÑ" Ž(,|FÁ6ME¶Ñ(¨LGkª¿”Aus˜¯ŸŸOü÷øŠ'œˆd‘ª€åÅz~]Ö†—ÕëÆ@T˜ÿDPFuü¬š‡:P<}0oD‘^—3¯=pu#sÈ;¢—n`ý|uçÎW¾Í^'€ùÁ ªç|í@êÜ_g$J¨â@v«¨í°!ü€Vˆ¤iˆ]’†hh$ƒØC@Æ´$Jh†il†{éÙÄ&9°I¦Çšá@Àf¸—žMh’•> ÿÓ1Qâ@â@ó¨û¤i ”GÕÿ©l~(©…Äÿ݃L¥+RrÅ›é:q q [80` °[ºM$$’¦…8ЃH؃ÌO]'$Lk q 9ð?þdç3‡ àIEND®B`‚mysql++-3.2.5/doc/html/refman/inherit_graph_30.png000644 000765 000024 00000010510 13515046516 022436 0ustar00tangentstaff000000 000000 ‰PNG  IHDRÊ1›06rsRGB®ÎéIDATxí䯆u— 3333s…*Ì ª 3ã…™™*Lfff¼03s¿ÿS½v¼Þ±gfwn“mUyÇn¶ºÕ’þ–ïú‘%JH¨ä@ÿÊÜ”™88àH‚’Bâ@H‚Ò“R‘Ä$(i $4œù<]yå•8÷éJ<è³k`®¹æÊ‹„ß(& LYVJOh[\rÉ%öñÇwz¿RAYsÍ5;N ‰íΧžzª¦ $¥Ýg>½_K8¥%lL´;’ ´û §÷k ’ ´„©‘vç@¯”‹/¾Ø¶ÝvÛ!>O믿¾-»ì²®Í7ßÜn¸á††û¾ûî»m¥•V²Ã?<«súé§Û"‹,bcŒ1†M>ùäF?ï½÷^–?¤nþüóOûú믻Üüâ‹/n8¾ÀOž7«¯¾º]pÁöý÷ß7ÔþÀíꫯ®[¶»c®ÛAE^/(¯¿þº=òÈ#¯Øš¬{î¹Ç¾üòK›qÆýšfšiì…^°UVYÅÎ>ûì†:Ùf›mì›o¾±%—\ÒËo¶Ùf¶õÖ[»€sÌ1¶êª«Úý÷ßoóÎ;¯}òÉ' µÙÕB7Ýt“9æ˜öÇt© ÆùÅ_xÝ;ï¼Ó¾ýöÛŒ7à 7œo^O#ôóÏ?Ûï¿ÿ^·hwÇ\·ƒªÅ“•xàXL/{þõ×_ÃàÁƒƒ¤=¼óÎ;A‹Ç‹þõ×_áÅ_ Úu‚˜àiÚ)ÃW_}Õ¡©>ø hñdiO?ýtÐÂ?þøc–ÆÍ?ü~øá Å~úé§ðî»ïzþ>ûìfŸ}v¿ÿî»ï‚&Ìû{衇‚„ÈÓùóÛo¿…O?ýÔŸ_}õÕðè£zZ,ð÷ßMX`ÜPñy¼ñÆ »îºk,î¿ô§Å–Xb‰éï¿ÿ~xðÁù‘>ÿüó0ꨣ†Ã;,h§ ÷Þ{¯èI@bÿ}þùçÃPC öØc,w¿ï¾û¼u#ÁKaþñ1hÑgsç…÷yë­·ü è—_~ gœq†÷ÿÆodïL}úg˜Ï<ÁøIy¨_¿~á–[nñ{Þkß}÷õûøçÐCõöáu$æúæ›oÏ<óŒó7¦3§q¾)Ão‡?q×Ïr7ŒÜ“™Ì¬ 2@–"ɤÉÒ˜Võ‹ã}ôÑGgEî¸ã[f™eÜ™—MîZC¶¶­¼òÊY™ÑFÍ"²DÝL;í´vÑE™üyä‘óY&ÁrM3ÕTSyúœsΙå?þø~°P$´C‘xÇHh -Öø˜ýF” xá…féÚDŒ÷A#äß{¶ÙfËÊÄ-n· âsþ-D¬‡H¼G­w ¿8fЮ"U-y>óÌ3«véùŸ‘w©ú?•òLø'µóæ—ü_\Úm.¥È ª³J;š1ILdZÂÜ)£|@hŠìõ‚•Ï—ƒÛ!¯¬Í²ô¥—^Úf™e{ûí·½ˆ´É¾6L†x|òÉŸÛïf%ï'ÞÿCñ÷›èZ$xa.±¤b–aÒ©‘yaÜ&S7ý€ÄòIC&L¤ Ççz¿¼ÇK/½äf\,Kûe^\ä±l­ßª1³ µšZ&(L¦–I=Û~ûíç (Â~Ý~ûíÝ?™a†\ûÈÔñ­€)TưYˈ ÀOÀÿ@ðXHr¶³â2Û¼«®ºÊdÆØ +¬àyØØô}ñ9k p3ÖXc¹_E2g$´‰Æ¤´ /p‘ðkæ˜c“ bW\q…Ûþøom®³Î:†&aç¥ïÏ®M9唆Ö~ùå—½?„MÔ( ì𢯽öškY¡†¿¤ ÔÙZBNµ¿çE—_~¹û‰(íÆËÁøÁœó2§Ýšà›¡fÆÜL» •-Úo]õQ"ŒD¬Ž3Ä8“g|„H Q¤GžÅVÕn⨔vj‡pÉ¿í¶ÛÉ¢ŽvÈ 3¬ƒ¢çÍ€zieeñ#"ê}êÒÈþQ„%£í_…za¿I@„øXsµÕVóöé#ú\±>Š@€øèp:Ð2eãÔ!v 2. Žçóî2Ç‚„ÃÛÖîéyøO›l²‰ßçQ¯8/T™" ¨3GÓèW›ƒû…øsqÌ:$-ç¾WÌåÃ÷Š>ŠÌËNð°WÌý‘uàs ÊF;‡©)‚ŸQ/î;¦6Ð ÓÔŸ›307ý4ÉÚjä¦ÌGAv f¥CåvÚi§ Û±Sip|ÎJ¶"ÉþvÁc±á4 A¥pm¤((ä±0˜ü!Eœ£°È8 h„ Ž{<ç)ÖáÝ¥)ÂÍ;Ä”ã|~!¤Íg-œaDŠ|㜃û<ѯ´Z͹ɗ«º§/øÒÞ73檱”å• JËœyIo]¬!Œ3 {¸HÀŸµ  ¢*'®èð7Òf3e"¸%ü°è‹ÕªÃ»c¦Õ"ìù<@Q«LYfW¤*¾áë`žu‡€Ç¹ºCÍŒ¹;ýëö¨ p®rÚi§ùÙç]%8‘+Á¯ELÈY#Žb­ú)­os *(ϜܵÖZ«B‘ÏoÇ{Ù핱UŒFСøþË-·\^ð«…³^ë0±X¿êX”Ã?&õ 0ˆëã8O=Žzå;ÿ¯ÜSrfÁ¥Ã7ÓáiöLZ•Òa ŸÂc–KÊþ¶í¶ÛÎO’YäÝ¡5°;oǺE§¦'œùbŸ=ýÌitéœ'hÑ—ewJך:Œë~ûí·;ârÀtH¯, €`éL% rÄìíí€3 8ºÆ= Ž<¤³NÁ†8Îô—'A´Y!éDMÐN 0eAÊMÈç„;OE0!Ÿ×÷eÎü¿‚zý -Ñ9€Gú*þªt­æª†ª‚%YxÀ¶„€ñ[—bBˆN ^äÊ‚ –8”žGÒ€¢cP*!FôG¿»Îo<òšñè)“Ò‘E ‘”>ùÀîù¶³½ü¦Ï æŽ;îèáð, vÚ%ósÛ*AQ¡/z`Öc=Öï,éáëú~Å'ñq:lô{´Z„8'º¶ÈÇ61F…E \Lè<Ï矾¿g & [mµ•/bÎ,žx^ŒÔ&ÖŒ(c¢«wØa×ÄsQ/~F€ ϸ‹ÂÀ'œ‰#‡Pë@ÕµY»hš2AiKE;­G¼5kvÇŒÓdÂ`ˆ¯šuÖYµ¾†,M7Ýt½«r¢ ¼KÔ-'ßDB¾£ƒTªÆRè½G]9@dm™_D\ŠÑ á%AÄŸ"JžèkÂib”0e‰±“zÄeé ¤e™ŒSøJQÁ¤ÞN–¨b×b\›¾-ñw¤,~Þ Eƒl¶#õ(<ÜS Ô™£N EÄRÅ/ {ªú‘mï‹A!€¯,X’pz}ãá+Òz.4òoja ¸ªl(Íãáó|‰šIø‚ ×Ïñu‘ªÎ¡(Ã{1^.„$„†MJ§ì±™¶ùmKB¤*߆pèGt/;+ñ_2mzdâXˆŠðs:¬ –†dQËEÀ&ÊìØ'Ö£zÁ†Ä™k£D‚AüqS|#ƒ /ñtÍA¥Àà|WÃa2ˆØµv¤¶ve¾OgW'ófË-·ôC~Y  8,Y«‰`ï„ݰ‰–3Ÿ}V,IP#»1¡ì˜K:b"q”£Ñ©ëzÁ†Ÿb^aÎa2ÅoØ 匆t´ &mu×# o}3dîòb h|ÄÆG{òiœ×õÚè•ùîéåþ´+zô¨Ô½iÓ&©ã†n L™2I(A[úôé «|²dÉB‹-"ÌÊ_~ùezíµ×ì6Ÿyæºï¾û¨GÔ¢E Ê›7¯ß6P÷¤,ö°`e2zôh©ßTxòäI† ýÌ™3§$cÔÝõ  ødÈÁ¥S§NÑo¿ýFåË—Ìí¯‹%Jиqã¼b¯ÜŸãÇÛãØþùG02Xïܹ“6nÜH5jÔ g*Ûµk!½Zµj”+W.‰„ûáÇ…î3gÎH;ø¯xc‚1Ǿüo®¿þzû? &øomذ*W®,å úƒðC¡!Ê2dˆÅ ?hªºwïn1²J•*…ãæ-f´V—.],r¸Áƒ[ÌH$mäÈ‘vÝÌ,fx?ÔÖ°aììÙ³[Ìd¤Ü½÷Þk]¾|Yò2“¶ëΓ'U¡B«cÇŽ’öÒK/YÕ«W—ë6mÚX+V´òåËg±2:u’´Y³fÉ}ݺuí4ä] .”ô%K–ÈýÿýßÿY,läºeË–V‘"E,førïüZ½zµ”3fŒ¨ VWIÿúü×_ no½õ–T÷Ã?fÀ€…´2À´² ²¨ƒW46>}úô‘>ìjÕªe±—²(3pà@¹æ•‘Å›ÍäÚ××Ò¥K…Æ^½zIò?þ(÷†Æ¾}ûZ,À-¨ÿÐCI;,ô­öíÛ ,ô…ÆAƒI0Áÿõ¡?5kÖ”üø/™ö^}õUiã‰|µk×¶XÀH¾@˜ ï 6´@ O,^ ZcÇŽ•rÁ|±@šxÕLvÍ~dþf´…$!a‡}øðáÏœ…‰á¾ÿþÏR-00,„úõëËÇtûí·ËCÍ+‹Ïà±ÞyçIã„гZ¶l™<¸¨gÏÖ”)S„qøhû“O>&6aÂ);{öl›‘?üðïz¬?ÿüS˜sÛ¶m¥MÜ÷ìÙS˜8">ÿüsë7Þ4#0_Œ Ì Ö0FmÌœ9SèáÙ¶Te#˜-„mÓ¦M-¤á×¼âƈ~¤³LîY½dñÌ[ð`U˜ô Ì‘m!Ò†·°àÕŠ¡êýÁX!3>ê‚pE1& Â÷À÷ß}÷õöÛoK›|TŒÅ«1‹W.’Æ*¯D1Vè« Œ=êÿðÃ% ãÃ+NëÉ'Ÿ”û@˜°FÊb"À«`i&¦-¿*,ü!“jñ'ÔfÁOƒTOÐéCíS¯^=QåðÃ,ªˆ;3x-ÝdÆLÌtDsèÐ!âY<1Óµ TQãÇ'¬™Á‰‹g›ÄL[ÔJ½{÷–ßÖ­[Óµ×^ë¶*Uª3 Q%±@¡2eÊôö&¼òÊ+”5kV*W®!4 àžg´ÄL[îa¼æU‹\CÅÃ+¹öþ‚ê ê*¨®Lð׆I÷þ…ºª)ØA Žƒj¬k×®´gÏ‚Ê ýxî¹ç$¦Ä1Ì¡ºçž{Ûùóç -(ë+˜úцócòBÍÆ«bÁ.jÉ'J},p‰gøÄ«¹Æ,0Dåõé§ŸTzC¨ÉX¸Ê|_ýµ©–’ŠÉ_|A°£ðŠEêÀø4kÖLT‚¦R˜ *LœqÆBOÚÞºu«­Â2åõ7vP›EìŒU@J¡O6`Ø,Œ¾-ÏG$zý§žzŠÀÀ\¡{oÞ¼¹0@ 0g‘¡ç®S§Ùüý÷ߢ«c3¡dÉ’æ2Á/…3@€[âa?1t 0JžU[_ñ°»°¿¿¯$8m@âOÃ5¼Š’¼ßèæ´Ó$§>e`cò6t›¼PÕáã/øÃ› ýü'ðINä5—œú´Lê! Â"õ°O•–a#€nl§'KR‰ÁŽ\_®¬`˜0jû `8pÅõgõU&©q‘h#©4¥v~Å$µGÀí§ÃÇ]qO/†J¬»&Vc¸§SÚE `Bƒ×ªÂéÁ{Å–„j4kèˆWo¨Ð©5)Š€"àZTX¸vhµc)A`ïÞã))®e×! 6‹(Rèý±ACê 0wîßT¥J>Þ—#uHã­bGº†èB@…Et‡M ŽÀàí{½ˆ0À,ø(Íž½7Ù}¹†µ%E ŠPwŽ’–:¬XñŸ±ô.{{eãÝÜoðîìÏWJŠ´UE ÕPwªuÌšµŠ_j”ž¸8Í'¦ú>¼0êˆV‚0# î0¬ÕÇ—.]æ=(¿ñi²—yca>{éÊa‚±Õ ¥V=*,B©ÖÃ,]ú'¿öŒôàâÅKôå—«éܹ‹1Ü#%] *,Bƒ£ÖâfÎüWÿ>gÎ\äz7º¤wÚ E ùüûT$¿-©¸¬ æÎ]ËoÝ»ò¾t*..«¥TåŠÖN¤)‚O » … 7°Êé¼G— 8òä9x½QÒ*,ÒÚˆký"0cÆoì•!A:ŒÝóçÿû½4BH¨°Hƒ¬]Løø³b›€QÛ;`“Þôé¿yGë½"¦Pa‘¦†[;믾ZËï¶ö}3V?ÿü'¿bô¤¿â¯¸®bí`0@è=H›3gu0UiEÀ•¨°på°j§’‚À¡C'iÙ²­²Ï_9¬:¦MûÕ_²Æ+®G@týkC`öìU¢‚ʘ1¯.®ä6¯3« ¨¢Ö¬ÙE»w¥âÅý¿‚4±¶4]ˆUTXÄêÈ)Ý!C dÉ|ôê«Í<ê5j1U¨p5hPÑ#þÌO×ZD½Q\Œ€ž:ëâÁÕ®%;îBwÝU…zöl”üJ´¤"àôÔY÷Œ¥öDPð! îða«5+Š€"àTX¸f(µ#Š€" „áÃVkVEÀ5¨°pÍPjGE@*,‡­Ö¬(Š€kPaᚡԎ(Š€">TX„[­YP×  ÂÂ5C©QE |¨°¶Z³" (®A@……k†R;¢(Š@øPa>lµfE@P\ƒ€ × ¥vDPð! Â"|ØjÍŠ€" ¸®Jíˆ" (áC@…Eø°ÕšE@p *,\3”ÚE@P‡€ ‹ða«5+Š€"àTX¸f(µ#Š€" „áÃVkVEÀ5¨°pÍPjGE@*,‡­Ö¬(Š€kPaᚡԎ(Š€">TX„[­YP×  ÂÂ5C©QE |¨°¶Z³" (®A@……k†R;¢(Š@øPa>lµfE@P\ƒ€ × ¥vDPð! Â"|ØjÍŠ€" ¸®Jíˆ" (áC@…Eø°ÕšE@p *,\3”ÚE@P‡@:‹Cøª×š£ ={öPñâÅ£¬¨£'S¦btùòiºxñhÔÑMU¯^~ÿý÷h"Ii ñqá©Wkv:uêD%J”ˆv2•¾(F`áÂ…têÔ©(¦PI %*,B‰f Õ…a•*Ubˆb%5Úزe ýñÇÑF–Ò&Ôf&`µZE@PÜ„€ 7¦öEP0! Â"LÀjµŠ€" ¸ nMí‹" (aB@ ÜaV« ûöí£wÞy‡zöìI M¥>jyã7èĉ) ¤ZµjQ:u<âC}3dȺñÆ©AƒtöìYvÙ½LÙ²e£“'OÒk¯½æÑ\Ž9¨R¥JÔ¼ysÊ!ƒGšÞ(áD@WáDWëN1`˜+V¬ sçÎ¥¸®@`¯ÀñãÇ©téÒò[ñ¶mÛèå—_¦¹sç*šâ´5kÖÐÞ½{¥ŽÊõùóç¥ï™2e¢ *PÙ²eéÌ™34räH1bDŠÛÕ ¤  +‹¤ •ó‚a9r„0Ë>pà€0«2eÊÈìwç΄t0±¸¸8a¶`ê… ²‘Âlq(pøðaÚ±c•*UŠòçÏoçÃlú¯¿þ¢Œ3RÉ’% + g:2^¸pâãã)_¾|ô÷ßËÌ»|ùòRéG¥ìÙ³ Û·o'Й;wn$I­éÓ§Z±÷hq×_==ùä“r/ì!hݺ5}÷ÝwÔ¸qc;8ìß¿_êG{Îà«À´›þ\ºt‰<(˜8WVXY¯C‡ÙtÝyçT¯^=»™®]»Ò?ü@Ï>û¬‡ú p®¹æÊ’%‹ ôsýúõ”7o^Á=]ºtv:úܱj+R¤ˆ¯Š€7*,¼Ñ{¶nÝJO=õ”0ÒÕ«WKZÕªU ³Ý•+WÊ=Ô"ǧ Ðûï¿O3f̆ŽÄW_}•À¡JzñÅe·/ ˜çsÏ='L wïÞ´aÃ#»öÚkÅРA6ƒE]Ë—/—™~µjÕhãÆ¼»ú¢–¡C‡ ã}衇¤,ÒPÚéÓ§Õ­[Å©E‹tûí· “ÅJ¢G4lØ0é›dðú‚ È™3§ôI m}ûí·¢‚ÀyôÑGE @Øùë߇~HØ“€aÛ¶miܸqT®\9‰ÃòýüóÏrÿÊ+¯TcÞXšÒ°ÒèÞ½;mÚ´ITW6†&¤c,Æ/‚çôéÓT³fMY¹Œ×Ûo¿-8¢Þ›nº‰úõëGPuiP¼P5”7"zï0ÎéÓ§‹àX·n0ÎiÓ¦Qß¾}…qcµ;˜ÐÒ¥K¥ŽcÇŽ fÆßÿ½¨T>ýôSš3gµlÙ’>þøcÃ8q"a•FºõQÞ0L§pà1êgºI æ«ÐlèÁŠu9ì?þ(v“@ýv˜Å›uWJVÀ 8o¨’ ¸`óÀÊͤƒv ¬€`J ÂÂê+SßæÍ›Åi@ ë—"à…€ª¡¼ÑÛ”!5„˜×þó©êOÁÜá••V)˜ÃŽ0þ|QAm4a„€D .µX¹ÀÈŽ½&`åf ÕŒ»ðÌ‚·Ô5Py!À›êÝwߌDøù‚ C[·Ür‹´5ŒÌvp­Ez þ¡¯ å@l4þ8žiùàÙú ; œÀà¡„a4¢lÆæá„8¬òfΜ)+?¨Ó‡qf0jK¬¡ÂB½°ihP|! + _¨h\’p®< 6!¿`N·Ýv›„nݺ‰€€Á^;;wFC,‚ó4\g½’È_бßwß}âáaÔ±cG“D¹råÛ˜(\páUdêÀ,j$xGÁÕk\•šq¡µ+ã ¨²ÀH1‹‡-B¡?«} è ž‚ +<_ýƒÍB å`k©_¿¾Ø<¤þ}†FôØÁà ŒÁ)\ÀèÁôᡆºàÚ‹ÕVhÀúá‡<½ 8@3Œ€ÙüÚŸyæ±Ï|þùçÒÒœXJ¤~)ÿC@_~”Æþ æåGØÔådÊ¡„ÁèÔ¡âÃvÌè᥃ýNæ ›ö €áÁ]ÌÌÒ¬LPT>˜Éƒ™BçŽU „ Np_E0wï¶M¾”þbŸfÿ°€VgÔ?ã&(À•«.£ ”iX!ì`!†þB`ŸV&f_VAð6ƒAÞ»Nì³@p4ª½ÄÚ3é@8¢|ÕªU&JÝ‹€¾üȽc›:=ÃìÞ7p[õŬ}ÅR̬Çfÿ‰“×W>̾ñ W€j˹ñÐÙN þËŒ½³~_×,FÕ†t#§@‚š {S|¬ðœÎ¾òhœ"T ¥ÿƒ"•<ƒÚµk—ìzÁüÀÀ¼>˜^ÅŠýÖ‹2PCiPÐ# j¨ÐcÕ5FB Õ(q!C@ÕP!ƒ2*ŠO T*Š€" (©‹€ ‹ÔÅ_[WE &PaäD&3g.òfº+û#’Z6ùwïŽg¯¤K¡¨JëP¢5pGÅ0Džsí¶—‡½€JóyMeÙ…´»·~Æ;§ÿÝÉþfÊT”wI7çãÁÿa¡±?;˜–ã‘$!"mU¯^="íh#©€ ‹ÔƒˆR€cpÔ†ÂåËçSTò‡Y8œµ»õÀ¥éÖ[¯¶gGFøbþü]|p_F`WKËùógaÖ|T¹r^ÞÄ—‹÷R\9W+Âd…´9ç>—V¬•Eê uC¢Bàøñ3|Œø&>"|Ÿ»‘7Ÿã³‘2ð þŠÊ'..=ËQŽ>ûìß—ª/œi—.]¦{ïÆïéØ+çЖ¡5kÖŒ¼«½"ÝuWe>–¼"Ÿë¹¹/œtiÝŠ@2ˆWa‘ Ô´HdغõïÚÞÀ›ýÖòI;¥ñôéq8ßeB°±/GŽÌ|þSo>ð/:ö[ìØqˆ÷Ìj¨ ´â&C˜ -$ï)Jwß]•¿Œ©„}üG‚B¡¤*,Rwm5V¯þ›ß9ñ1¾w„méY8XöQèþÊÛßµq¿äT‰ÿä“_ø­|PýYÛ7«Ž¼y³óáOóæÆ"ók¢"AtŸEÁÖ¦’ˆÀuוàCþòñRéøˆíËE\\jÞüƨèrëÖ5YÝT‰^†€@•;ÔR*(B¥‰©€€ª¡Rtm2xöï?ÁºýA–ãö=3‡0)P '¿™¯7ì—%øÊ#˜óÈ‘Slp“6?í·PK.œ›2ïEÙ³>l0‚¤kSŠЕ…þ¢ØÞ}·_ ê!DÞ¿]Ô Ð˜/_v>¼]À~ðÁ»|”ø#*(˜†¨C@7åEÝ(AÞÀ»©zõ«ÿgöLÅlü‰'n(Ï”è»»í¶ Ô©Ó­>ûÕQíÚå¨té‚ÑG¸R¤0ª†Ò¿AT##÷“ONYx:íÙsÄö‚‚ (Uª»Ðö—Ô¨îÈÿˆ;wî"Û$ó›ú³Ôo.Ø[*U*ʯ›=)qXIÕ©S>º£4¦T •vÆ:¶zŠ—!½÷Þ"jÒä]ÞÀV€÷Vôä7Æ=æñÂ$ö”¥Ñ£‰AÈœ9ŽUMØ5öÊxÀÝ^PãÇwd÷à¨FÒÔ²å(zýõ/Ù¨¯Ç…ÄÖ¿ÖÝÔfàW=öwwµw±†ŒÚ:}HÓ§¯ >}ÓÀðÞ2ñ›ßrÈgáÂ?ÄCêÅó¦7ß/õ‰æ>*”“$ÉÄù-âá…•„D–,ùu±×óûÉóÒ°aßòkZ×±z­¼Ø;¢¹?J[š@༪¡ÒÄ8ÇN',ØÀïŸþŒrçÎJ£Fµ§ªU‹' ¾cÇñ|´ÇIš3§[Ìn^ÃÊ©E‹‘윗FŒh“ ØÌ×¥Ë$Ú²eõïߌڶ­• F(D@7åElm*Ðå¿þúš0a)«anæÕD ~Çv&Ÿ%Ž;M§NFë3CŒDîÛw\<¸ü¹Éb‡úСóY·˜6¬Ì×­ø]ÙÙb¤wJ¦ËPaá²Éîüùç~êÜy"¯Ò[o=HM›êI¦Îüå—mÔµë5~;AÑëH# îH#®íy"0yò2>éÞ[I ¼*(<ñÁ]Íše=Œßo¼¡Æï„(iL¸P›E¸Öú}"URSùïõ|lß~»åÉ£ÛÄ‘K˜ú† QãwBd4&L¨°°Z­»w•ÕÄúõ{¨_¿¦Ô¾ý-^9ô69¨ñ;9¨i™d  îd€¦E’ˆÀ—_®æ—ú ‘“cçÏNEñ ”ÝÛø­;¿¡¥i)A@ Ü)AOËDàÌ™óbŒýôÓåÔ¡CYQภáA@ßáÁUkT ¥„ð uS—. ïq€m¢aÃ*áiHkõ@@ßpèMèPa:,µ&ƒÀ¸qßÓ€så¼#eQ¤Hn“¤¿@@w~Gä´×„ ‹´7æáë1ŽØîÖí9 û&°§ªjHÔø:¸»´U.؈wkÉ’ÍôÌ3Sä<'¼µî†®Ž8 Ú`BŽ?C={N£¹s×ð‘*õéÅïIô]à kÑE€TXèŸ eà o¾9ÆŒYBÍšUç³"¼¤HCt! Æïè¤F…E ZÔ¼}ûA9F{Û¶rJìƒÖˆÚ”„¨ñ;!&4*,‚†J3z 0m^Lô9•+WHÞ;Qºtt½‰NÔøãT©°ˆAŠ*ããÏR¯^ÓiöìU¢ïÝû^Š‹KU4*1‰# ÆïÄ1Ò¨°ð€Co"°råNÙ;áU uë^0¿&F7jüŽîñ‰2êTXDÙ€D%9x舋øMm_S½zø ÀÖú^è¨©ä¥Æïäá–ÆJ©°HcžäîîÝ{œž~z2ýþû¶QÜG?^7ÉuhèG@ßÑ?F©L¡ ‹T€¨n/&zþùϨ@ò¢Ê•‹F5½J\ÊPãwÊðsyi.àduïìÙ ôꫳéã¢6mjÑk¯5çÍv“U—Š=Ôø{cŠUXDä˜jbóæ}ìå4‘öí;Æ/×iI_Sô+±¡A@ß¡ÁÑEµ¨°pÑ`¦¸+}ô#¯"æPµj%häÈvT¬XžשÄ6jüŽíñ !õ*,BfÌVuôèiêÞýSZ¸p#Ÿït'_7¤ôéõÀ˜Ð®Æï›Õ©°ˆÍq Õ?ÿ¼U¼2dHOï½×–þóŸ2¡«\kr úÎo× er;¢Â"¹ÈÅz9çÃߨQUÞCÑ’rçÎëÝRúÃŒ€¿Ã pôV¯Â"zÇ&|”íÚu„ž|r"mÚ´—ú÷oFmÛÖ _cZ³ëPã·ë†4˜©°%7åùâ‹ßùÓ©dÉür Ô $cü.[¶8D”-[09Õh™Ø@ ^O€‹J1•§OŸgãõ'ôÔS“¨eË›iÞ¼çäÄØW¬¤Yð?Z° ‡8C4l8”&O^–f±H OÇçþXi¡£i¹k×îbµÓ$:qâ ý÷¿Óí·WJËphßCŒ€ÓþÕ°ae¶µ¢¼y³…¸­.•P5T*@Ø›5ê;4hÕªUŽOŠmM… å {›Ú@ÚD@ß®wnÞƒã©[·)ר^½îá£Å¸µ«Ú¯(B@ßQ4¡%E…EhñŒŽÚ/þCì9sf#öuוˆ”Š4ƒ€1~—)SP¡Tãw̽¸c~8þõë7‹]aÇRýúÅø¨‚Â^F cüÆfO5~G ö°6¤î°Â¹Ê·n= o±Û±ã0Û( ûï¿1rkKŠ€ôØs?ÀÄ^tB5Ô/¿üBï¼óNìu%MSœŽ~û­0eÌx™*T8LY²\JÓhÓù®]»Ò­·ÞLÖ$åÙ°aïþj’ʤ…Ì'Nd¦Í›óRŽç©bÅ#i¡Ë1ÝÇ>}úÐõ×_ïìCB5Ô®]»húôéÎLzõXT©Ò!>-ö  Š ÆêóÏ?§;w‘3éY8 ÏϹsç’^ØÅ%rå:GÕ« 2eŽ»¸—±ßµ .Èÿwß¾} :— æÓ¦Mó—¤ñŠ@L#9sæ°Ó?~üx~Ã`°·£ (¡D >>žråòí^¯;¸C‰´Ö¥(Š€KPaáÒÕn)Š€"JTX„M­KP—" ÂÂ¥«ÝRE ”ļ°˜4i¿éíéPbâ³®“'OÒ /¼@×^{-.\˜zè!úðÃéüùó’ÿâÅ‹täHx]?øàºûî»ÅpZ¶lYÞKq?-^¼Ø'½áŽlÓ¦ 5jÔÈãóØcÑìÙ³ÃÝ4=þøã4uêTiçèÑ£ö„½a6©ç§I“&4eÊ”öìÙ“^~ùåñɉÐçƒhÇŽòLþóÏ?a(Ÿ˜›7oæó~NÎ+IeÞzë-7nŸØz;½ùæ›| _!aZð×GøòË/)þü׳p„nݺI{9rä ×^{:wî,Œ»îº‹Sx?M¬BêСCT¹reù\sÍ5´víZjÖ¬™à°p ¿ÿþ{Ú¾}»Ô‚qPWïä©ççÛo¿¥­[·& ô×_å=B¿%ˆOj„>W;~ü8}ýõ×túôi‰éó#Ê]fqd¹3*àõÙ³g­¿þúË♵ŰŠCò_ºtÉZ·nÅ‹gßǾíÖáÇ=êã}K?;nåÊ•3‹gòv.Ø¥Ëúé§Ÿ,fPÖ©S§,– ’þÒK/YÕ«W—kÊ:v옴÷ã?Zü H<¾ØïÝbßa¹ÿã?¬eË–IœÉpùòe‹¶@7‚óñùòå³h²Ë/ +gΜRnôèтۖ-[ì:@ó’%K¬ï¾ûÎ:qâ„]´3äß»w¯\³ ±Ö¬YcàiÂÂ… ¥î!C†˜(ùE=,,¬¬Y³JßL½¦È´gÏ‹W<åþþûokéÒ¥ð2Á”Å=hâÍeò9Æn÷îÝU¤H«GÎd©¦ÅÕ#ÞW{&Ï€¬ Xø5í8ï ð2˜”/_^Æÿ§ 2XC‡•ÿ‡)ŸØo¦L™,žQ'–-Yé,De¬<Ty·½ä¿é¦›¬ìÙ³KšSX°jĪX±¢0v0ÐÒ©S'É7kÖ,¹¯[·®eÒ Á0d0wï{.0¥{ï½×:s挤ã ôƒé.Z´HhC{ÈÆöÃ?X,Õ…Î,Y²X ´ÀHÌ€>øàƒÒW0.6Ѓ:âââ,0c`‹Ð²eKÁdï`ê3fŒà„ò†¡#ï 7Ü`ñnL)†?|ûöí¥Œ3 ­ƒ ’4S¡©mÛ¶Ò'#`‘ BÀŒŸ/a<`äÀ !P{h 6´@G¶lÙ¤ÏcÇŽ•r¬V´ðŸ1g¤BóªU«$Ê à‹þâÁ+?“=Ñßhny~:žÑ.]ºþÞÏS0Â%< ÏG 6båù0tBX$çù$,B¦†ÂFžÅÒ°aÈ(1£ fZôÉ'ŸÏâiãÆ|À][b&JØåŠðÅ_ð[¶Òó›ÛZÒ믿N%J” ,£Pvž­‹Z§C‡¼û³:1æ#6Óþýû¥¼¯/0ôÞ{ï3uš0a‚|æÌ™cg-V¬ñêƒLâ,õîÝ[ÒøOJПâÁyÏ‚IÔ>óæÍ#fú¢0`ñŠ€êÔ©C 4 3fH9´[´hQb¦Ìï¨EТO,(©]»v‚‹dä/^y PÝ ¼B ÐÏF7ß|3=üðÃæÄ3}ªZµ*±1Eí_Äc“™QËØ >.€ Æx€Nàûâ‹/ÒŠ+ì܆&YÁB›fΜ)i?Áâí |$ž@m˜>¤éçC¦ޝä®,X÷(µ@…ÁÀÚË|¨:pÏ‚ATH˜IŽ5JòÞqÇÖ}÷Ý'×½zõ²0‡ªÒËY|–/_.åùˆ›ÊW^yÅïÊ¢J•*v>\”)SÆêÞ½»eVfµ‚4´‰L°ª-f®VíÚµe&Œ~=òÈ#Rœ™ªÐ šÍlѹ”33-ôÍH”AÀJua•„%8>Ìh%ô²=@V’Ùë Ë}ະC=þVX‘±²Û€Š+9¶$  Í@=À‚PZÄʳC¨ù°²ÀŠ€£|0«DÛ%K–”þ O öX@ɪªU«Vë³EµhVmÁ®,ÐVa“'OÆeÐ!Wn~‚YYøã‘x>kÃû™ÅŸ-ŸC'VI}>­,NUù‰ON`æ!ÅÌì—UrÙ)Ó-`xÐ`VùÀëòe¦‹tf”2ÓÇʇXa•ï ³ ©Y³&²I0³sïüeá༕•€© ¥K—¶ÓaüÁŒ9±€ĶmÛdÁ‚B²cV ï¨?þ˜ßký”G¬£—ûoü÷ä׫®ºJâ`6Ç@`U€`Î)ÂLõ™À‚ŒXÌç锑•‰wþb…dò8ã͵1táíÀ««iÓ¦&™òäÉ#+ahÂ=<ž0ÛF0"³`§Ü¹s›¬|Êmb;Š}#&«–ÄÀ•W öX«å#= Á“õÚv}æ« ·7??;¶íÉóí=ŽXyC‹€àð„HÒÃù|$ö >––Ÿ©¡ N &@u<‹àÙ—:6rRß¾}EÅÄ3k£„ÐCGÃ6!ÊŸŒ!/%ë¹mÕâœé¼RðHCº¯€|8¡jðöÙgåÖI"̃ï Ð'„R¥Jɯó j+„ÿþ÷¿„ƒñA~6Üò)²DÍõûï¿è0Q<õ߉m 6Ó‡ í¢º3eÐÔ¦ üŽ1BÊš<ÎßæÍ›óÁ„Yd¬0fP£ `úÕªUÁŠ|Úƒê ÞúõëeL x `@L^¡ÙMA çöàæçc‡ÿ=ÔÑ΀IÔ®fòçDâùH¬ 'Ýæ:­=ÁqxƒN~1;… ¾Õ`p`F8x :OØ+*Uª$«Ì6qL.ìÐgÂÖÀF0b•ˆ_JÀd¡—‡ÂL‡ ®v~VaI=˜)³jˆ7n,ih+ç=fÔðïÇÔ¨3z0l̘0KfÕ†”Û´i±Q™°’ó3ݘÕ¨Qƒ°?Â;`åT0nôu°zK„ìX¹ÀÖ‚ÁG}$+¯Áƒ«`dFŽ‚YÍau†™l0Fp Mfô+;àúð‡ÇìÎWÀ8ÁžÌP?V…‰¬š`£AÔpÄê’=Üdf Ú±*EqtÐ AœýVkŠÝÃ)\üåuC|´>?À“cãr>?Hƒ .²ýúõ“ÿ&&?-Z´‰«"‘Å/ˆÄó‘XB ×Wš{>D±åøJ®ÍÂèÉá>˘ڞ?Ñõ?HkÏG:ÈjçÀð‹Cò¼¢YôZˆi`D‡C<óBàŽMšp76.Ò¡nCëSÂ…€ySÛ,äÐRG; ßÁíHÔKE@PE@ˆ¨J1WE@ˆMTXÄæ¸)ÕŠ€" D¿Ç}Àn¡Ap#xQU¸S„mDƒ"K°ë°_r ì ÆÎj Š€[ÀÎasÄD¨ûO=}~BªÖ)p"þ¿æÈ"g» ¼¡œ‰z­(Š€" 0ê ¥E@PÄPwâiE@PÒ<*,Òü_@PE qTX$Ž‘æPE Í#ðÿO•Ë(,2ŠIEND®B`‚mysql++-3.2.5/doc/html/refman/inherit_graph_18.png000644 000765 000024 00000004312 13515046516 022447 0ustar00tangentstaff000000 000000 ‰PNG  IHDRŽ$_z€sRGB®Îé„IDATxí[e¨UOŸ÷|¶˜Ø¨Øˆ`b XˆøE0?¨¨èE?<[°P±, ìîî®u~#»œ{Âsïõþßû?ÞÜ{vwfc~gvvfï{IЉ,YbD 9Fy+n¬áXCˆ k8qÁf;Yñ6)î^'Nœ yóæ¹›m=#PµjUš6mZsÿþ}Z¿~}„­d^Ξ=Kû÷ï÷àñ8Z"55Uí3#0vìX‚ñ¸ÉãqܶnðCÀŽ*¶-k8¡Y?¬áø¡bÛBÈð†³fÍ=zt¨¢é%à\Ÿ³¶ž×¯_Ó·oßÂÄÒŸá çêÕ«tìØ±t0lbçúœå°~EŠù__‹ü³á|ýú•îܹC?þ¤Û·oÓ… “_¿~ÑÅ‹éôéÓôýûwi»wï½zõ*³Л7oLÛ™3gèøñãôñãGӆ‡Ä@^¾|IŸ>}¢»wïFðQy÷î½}ûVæ;zô(]»vÍÈ`÷>}úTêW®\!\t:w4þHàóçÏ„uƒœu­#x7oÞ$Œõh‚Î:ÖððáCÍŽù œ0ÿ“'OèÅ‹‚/Ö I¯¸>{öŒP.¸oÁÓMÀ›Ë3·lÔu^`ñý þÌ"¢ío~"ߺuky¢oóæÍUÛ¶mM½qãÆŠ_’jÒ¤‰jÕª•Ž•VY²dQ‹/VçÎSeË–UyòäQIIIªT©RêòåË"{ðàAU @•œœ,òõë×W¹sçÞ¤I“Tݺu¥Ü¯_?U­Z5U°`A•-[6™È!ÂÛ²e‹Ô[´haxå OáïÝ»WøðÔµŽÝºu“ù¡cáÂ…¦È²wP|Û.e|Íš5KUªTIêÎõ9ËFا€ñ0ô0a‚<‘¦¥K—Ê:?~,º4mÚTêY³fU¹råR7nÔ¢ŠGic¶k×NñF5ü°Â˜1cT³fÍÏÍð·nÝ2ewáÑ£G¦ /¿³8 ÍÉ?räHÏt (éˆvg c0‘”/_>êÒ¥‹l8xi °ÓäÔ ;:/^œ8Ö#„ øñŽõ$,Ð}ã}F÷¶ãݧàÀ–¦L™B½zõ"ìÐÊ•+ ?¨!¾©^½ºx'¸Þ:uêvb œá8£—-[æ3òŸ&¼Ü5 /T—ÀQ…qð8 ¦Î;KGÄN˜qÈ]—Æ€/xWŒwþüyÚ¾}{BÒhf D$6ܾ}ûdÍn³d8ž.\(Gz­ZµD·?~ˆÎð¬X°Ø¹sg€&14»Ãåx³*~á2++Ñ;2§‚RGV£ ™/QqЍ›ÍŠƒcɨ±âŠÓráïÚµK2%ôáÝ­øØŠÈªêÕ«'rȪ8V2²ÈÄfÏž- MySQL++ Reference Manual MySQL++: sqlstream.h File Reference
MySQL++  3.2.5
sqlstream.h File Reference

Defines a class for building quoted and escaped SQL text. More...

#include "common.h"
#include <sstream>

Go to the source code of this file.

Classes

class  mysqlpp::SQLStream
 A class for building SQL-formatted strings. More...
 

Functions

std::ostream & mysqlpp::operator<< (std::ostream &os, SQLStream &s)
 Insert raw string into the given stream. More...
 

Detailed Description

Defines a class for building quoted and escaped SQL text.

Function Documentation

◆ operator<<()

std::ostream& mysqlpp::operator<< ( std::ostream &  os,
SQLStream s 
)
inline

Insert raw string into the given stream.

This is just syntactic sugar for SQLStream::str(void)

mysql++-3.2.5/doc/html/refman/structmysqlpp_1_1SQLParseElement-members.html000755 000765 000024 00000011136 13515046516 027430 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: Member List
MySQL++  3.2.5
mysqlpp::SQLParseElement Member List

This is the complete list of members for mysqlpp::SQLParseElement, including all inherited members.

beforemysqlpp::SQLParseElement
nummysqlpp::SQLParseElement
optionmysqlpp::SQLParseElement
SQLParseElement(std::string b, char o, signed char n)mysqlpp::SQLParseElementinline
mysql++-3.2.5/doc/html/refman/classmysqlpp_1_1Exception.html000755 000765 000024 00000031273 13515046516 024557 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++: mysqlpp::Exception Class Reference
MySQL++  3.2.5

Base class for all MySQL++ custom exceptions. More...

#include <exceptions.h>

Inheritance diagram for mysqlpp::Exception:
Collaboration diagram for mysqlpp::Exception:

Public Member Functions

 Exception (const Exception &e) MAY_THROW()
 Create exception object as copy of another.
 
Exceptionoperator= (const Exception &rhs) throw ()
 Assign another exception object's contents to this one.
 
 ~Exception () throw ()
 Destroy exception object.
 
virtual const char * what () const throw ()
 Returns explanation of why exception was thrown.
 

Protected Member Functions

 Exception (const char *w="") throw ()
 Create exception object.
 
 Exception (const std::string &w) throw ()
 Create exception object.
 

Protected Attributes

std::string what_
 explanation of why exception was thrown
 

Detailed Description

Base class for all MySQL++ custom exceptions.


The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/ssx/classParseV2_1_1HeaderExtensionOption.html000755 000765 000024 00000040337 13515046515 027471 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++ SSQLS v2 Translator: ParseV2::HeaderExtensionOption Class Reference
MySQL++ SSQLS v2 Translator  3.2.5
ParseV2::HeaderExtensionOption Class Reference

'option header_extension' directive line More...

#include <parsev2.h>

Inheritance diagram for ParseV2::HeaderExtensionOption:
Collaboration diagram for ParseV2::HeaderExtensionOption:

Public Member Functions

 HeaderExtensionOption (const std::string &value)
 Constructor.
 
const char * extension () const
 Return the extension used for C++ headers we emit.
 
void print (std::ostream &os) const
 Print the option description out to a stream in SSQLS v2 form.
 
- Public Member Functions inherited from ParseV2::Option
virtual ~Option ()
 Virtual dtor, since this is a base class.
 
- Public Member Functions inherited from ParseV2::Line
virtual ~Line ()
 Virtual dtor, since this is a base class.
 

Additional Inherited Members

- Static Public Member Functions inherited from ParseV2::Option
static Optionparse (const StringList &tl, bool subdirective, const File &file)
 Attempt to create an Option object from information in the passed StringList. More...
 
- Static Public Member Functions inherited from ParseV2::Line
static Lineparse (const StringList &tl, bool subdirective, const File &file)
 Virtual ctor, creating one of our subclass objects based on what we're passed. More...
 
- Protected Member Functions inherited from ParseV2::Option
 Option (const std::string &value)
 Protected ctor, so we cannot be directly instantiated. More...
 
const char * value () const
 Return the option's value in string form, unmodified from the original parse. More...
 
- Protected Member Functions inherited from ParseV2::Line
 Line ()
 Protected ctor, to prevent instantiation.
 
- Static Protected Member Functions inherited from ParseV2::Option
static bool parse_bool (const std::string &value)
 Convert a string expressing a boolean value to a bool. More...
 

Detailed Description

'option header_extension' directive line


The documentation for this class was generated from the following files:
mysql++-3.2.5/doc/html/refman/ssx/classParseV2.html000755 000765 000024 00000050312 13515046515 022624 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++ SSQLS v2 Translator: ParseV2 Class Reference
MySQL++ SSQLS v2 Translator  3.2.5

Parses SSQLS v2 documents and holds the parse result. More...

#include <parsev2.h>

Classes

class  AccessorStyleOption
 'option accessor_style' directive line More...
 
class  ExceptionOnSchemaMismatchOption
 'option exception_on_schema_mismatch' directive line More...
 
class  Field
 'field' directive line More...
 
class  File
 Holds information about an SSQLS v2 file we're parsing. More...
 
class  FileException
 Exception object thrown to indicate a file I/O error. More...
 
class  HeaderExtensionOption
 'option header_extension' directive line More...
 
class  ImplementationExtensionOption
 'option implementation_extension' directive line More...
 
class  Include
 'include' directive line More...
 
class  Line
 Base class for parsed SSQLS v2 declaration lines. More...
 
class  Option
 Base class for known SSQLS v2 'option' directives. More...
 
class  ParseException
 Exception object thrown by File::error() to report an SSQLS v2 parsing error. More...
 
class  Table
 'table' directive line More...
 

Public Types

typedef std::vector< std::string > StringList
 List of tokens as returned by boost::algorithm::split.
 
typedef StringList::const_iterator StringListIt
 Iterator into a StringList. More...
 
typedef std::vector< Line * > LineList
 A list of pointers to Line objects. More...
 
typedef LineList::const_iterator LineListIt
 Iterator into a LineList. More...
 

Public Member Functions

 ParseV2 (const char *file_name)
 Constructor. More...
 
 ~ParseV2 ()
 Destructor.
 
LineListIt begin () const
 Get an iterator pointing to the start of our LineList.
 
void clear ()
 Dump our line list. More...
 
LineListIt end () const
 Get an iterator pointing just past the end of our LineList.
 

Detailed Description

Parses SSQLS v2 documents and holds the parse result.

Construct an object of this type from a file name, and you will get either a parse result or a thrown exception.

Member Typedef Documentation

◆ LineList

typedef std::vector<Line*> ParseV2::LineList

A list of pointers to Line objects.

These are used for holding the results of the file parsing step

◆ LineListIt

typedef LineList::const_iterator ParseV2::LineListIt

Iterator into a LineList.

It's const because once the parse is completed, we switch into LineList traversal mode, which doesn't modify the list.

◆ StringListIt

typedef StringList::const_iterator ParseV2::StringListIt

Iterator into a StringList.

This is const because StringLists are never modified once created

Constructor & Destructor Documentation

◆ ParseV2()

ParseV2::ParseV2 ( const char *  file_name)

Constructor.

Given the name of an SSQLS v2 file, load it up and try to parse it, throwing one of our inner exception types if that fails.

Parameters
file_namepath to an SSQLS v2 file to parse; may be in a different directory, given a relative or absolute path to the file
Exceptions
FileException
ParseException

References ParseV2::Include::begin(), ParseV2::Include::end(), ParseV2::Line::parse(), and ParseV2::File::read_line().

Member Function Documentation

◆ clear()

void ParseV2::clear ( )
inline

Dump our line list.

Doesn't delete the line objects. This is used by Include, because its creator will take over ownership of those objects.

Referenced by ParseV2::Include::~Include().


The documentation for this class was generated from the following files:
mysql++-3.2.5/doc/html/refman/ssx/classParseV2_1_1Line-members.html000755 000765 000024 00000007453 13515046515 025534 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++ SSQLS v2 Translator: Member List
MySQL++ SSQLS v2 Translator  3.2.5
ParseV2::Line Member List

This is the complete list of members for ParseV2::Line, including all inherited members.

Line()ParseV2::Lineinlineprotected
parse(const StringList &tl, bool subdirective, const File &file)ParseV2::Linestatic
print(std::ostream &os) const =0ParseV2::Linepure virtual
~Line()ParseV2::Lineinlinevirtual
mysql++-3.2.5/doc/html/refman/ssx/doxygen.css000755 000765 000024 00000074330 13515046515 021623 0ustar00tangentstaff000000 000000 /* The standard CSS for doxygen 1.8.15 */ body, table, div, p, dl { font: 400 14px/22px Roboto,sans-serif; } p.reference, p.definition { font: 400 14px/22px Roboto,sans-serif; } /* @group Heading Levels */ h1.groupheader { font-size: 150%; } .title { font: 400 14px/28px Roboto,sans-serif; font-size: 150%; font-weight: bold; margin: 10px 2px; } h2.groupheader { border-bottom: 1px solid #879ECB; color: #354C7B; font-size: 150%; font-weight: normal; margin-top: 1.75em; padding-top: 8px; padding-bottom: 4px; width: 100%; } h3.groupheader { font-size: 100%; } h1, h2, h3, h4, h5, h6 { -webkit-transition: text-shadow 0.5s linear; -moz-transition: text-shadow 0.5s linear; -ms-transition: text-shadow 0.5s linear; -o-transition: text-shadow 0.5s linear; transition: text-shadow 0.5s linear; margin-right: 15px; } h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { text-shadow: 0 0 15px cyan; } dt { font-weight: bold; } div.multicol { -moz-column-gap: 1em; -webkit-column-gap: 1em; -moz-column-count: 3; -webkit-column-count: 3; } p.startli, p.startdd { margin-top: 2px; } p.starttd { margin-top: 0px; } p.endli { margin-bottom: 0px; } p.enddd { margin-bottom: 4px; } p.endtd { margin-bottom: 2px; } p.interli { } p.interdd { } p.intertd { } /* @end */ caption { font-weight: bold; } span.legend { font-size: 70%; text-align: center; } h3.version { font-size: 90%; text-align: center; } div.qindex, div.navtab{ background-color: #EBEFF6; border: 1px solid #A3B4D7; text-align: center; } div.qindex, div.navpath { width: 100%; line-height: 140%; } div.navtab { margin-right: 15px; } /* @group Link Styling */ a { color: #3D578C; font-weight: normal; text-decoration: none; } .contents a:visited { color: #4665A2; } a:hover { text-decoration: underline; } a.qindex { font-weight: bold; } a.qindexHL { font-weight: bold; background-color: #9CAFD4; color: #FFFFFF; border: 1px double #869DCA; } .contents a.qindexHL:visited { color: #FFFFFF; } a.el { font-weight: bold; } a.elRef { } a.code, a.code:visited, a.line, a.line:visited { color: #4665A2; } a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { color: #4665A2; } /* @end */ dl.el { margin-left: -1cm; } ul { overflow: hidden; /*Fixed: list item bullets overlap floating elements*/ } #side-nav ul { overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ } #main-nav ul { overflow: visible; /* reset ul rule for the navigation bar drop down lists */ } .fragment { text-align: left; direction: ltr; overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/ overflow-y: hidden; } pre.fragment { border: 1px solid #C4CFE5; background-color: #FBFCFD; padding: 4px 6px; margin: 4px 8px 4px 2px; overflow: auto; word-wrap: break-word; font-size: 9pt; line-height: 125%; font-family: monospace, fixed; font-size: 105%; } div.fragment { padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/ margin: 4px 8px 4px 2px; background-color: #FBFCFD; border: 1px solid #C4CFE5; } div.line { font-family: monospace, fixed; font-size: 13px; min-height: 13px; line-height: 1.0; text-wrap: unrestricted; white-space: -moz-pre-wrap; /* Moz */ white-space: -pre-wrap; /* Opera 4-6 */ white-space: -o-pre-wrap; /* Opera 7 */ white-space: pre-wrap; /* CSS3 */ word-wrap: break-word; /* IE 5.5+ */ text-indent: -53px; padding-left: 53px; padding-bottom: 0px; margin: 0px; -webkit-transition-property: background-color, box-shadow; -webkit-transition-duration: 0.5s; -moz-transition-property: background-color, box-shadow; -moz-transition-duration: 0.5s; -ms-transition-property: background-color, box-shadow; -ms-transition-duration: 0.5s; -o-transition-property: background-color, box-shadow; -o-transition-duration: 0.5s; transition-property: background-color, box-shadow; transition-duration: 0.5s; } div.line:after { content:"\000A"; white-space: pre; } div.line.glow { background-color: cyan; box-shadow: 0 0 10px cyan; } span.lineno { padding-right: 4px; text-align: right; border-right: 2px solid #0F0; background-color: #E8E8E8; white-space: pre; } span.lineno a { background-color: #D8D8D8; } span.lineno a:hover { background-color: #C8C8C8; } .lineno { -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } div.ah, span.ah { background-color: black; font-weight: bold; color: #FFFFFF; margin-bottom: 3px; margin-top: 3px; padding: 0.2em; border: solid thin #333; border-radius: 0.5em; -webkit-border-radius: .5em; -moz-border-radius: .5em; box-shadow: 2px 2px 3px #999; -webkit-box-shadow: 2px 2px 3px #999; -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%); } div.classindex ul { list-style: none; padding-left: 0; } div.classindex span.ai { display: inline-block; } div.groupHeader { margin-left: 16px; margin-top: 12px; font-weight: bold; } div.groupText { margin-left: 16px; font-style: italic; } body { background-color: white; color: black; margin: 0; } div.contents { margin-top: 10px; margin-left: 12px; margin-right: 8px; } td.indexkey { background-color: #EBEFF6; font-weight: bold; border: 1px solid #C4CFE5; margin: 2px 0px 2px 0; padding: 2px 10px; white-space: nowrap; vertical-align: top; } td.indexvalue { background-color: #EBEFF6; border: 1px solid #C4CFE5; padding: 2px 10px; margin: 2px 0px; } tr.memlist { background-color: #EEF1F7; } p.formulaDsp { text-align: center; } img.formulaDsp { } img.formulaInl, img.inline { vertical-align: middle; } div.center { text-align: center; margin-top: 0px; margin-bottom: 0px; padding: 0px; } div.center img { border: 0px; } address.footer { text-align: right; padding-right: 12px; } img.footer { border: 0px; vertical-align: middle; } /* @group Code Colorization */ span.keyword { color: #008000 } span.keywordtype { color: #604020 } span.keywordflow { color: #e08000 } span.comment { color: #800000 } span.preprocessor { color: #806020 } span.stringliteral { color: #002080 } span.charliteral { color: #008080 } span.vhdldigit { color: #ff00ff } span.vhdlchar { color: #000000 } span.vhdlkeyword { color: #700070 } span.vhdllogic { color: #ff0000 } blockquote { background-color: #F7F8FB; border-left: 2px solid #9CAFD4; margin: 0 24px 0 4px; padding: 0 12px 0 16px; } blockquote.DocNodeRTL { border-left: 0; border-right: 2px solid #9CAFD4; margin: 0 4px 0 24px; padding: 0 16px 0 12px; } /* @end */ /* .search { color: #003399; font-weight: bold; } form.search { margin-bottom: 0px; margin-top: 0px; } input.search { font-size: 75%; color: #000080; font-weight: normal; background-color: #e8eef2; } */ td.tiny { font-size: 75%; } .dirtab { padding: 4px; border-collapse: collapse; border: 1px solid #A3B4D7; } th.dirtab { background: #EBEFF6; font-weight: bold; } hr { height: 0px; border: none; border-top: 1px solid #4A6AAA; } hr.footer { height: 1px; } /* @group Member Descriptions */ table.memberdecls { border-spacing: 0px; padding: 0px; } .memberdecls td, .fieldtable tr { -webkit-transition-property: background-color, box-shadow; -webkit-transition-duration: 0.5s; -moz-transition-property: background-color, box-shadow; -moz-transition-duration: 0.5s; -ms-transition-property: background-color, box-shadow; -ms-transition-duration: 0.5s; -o-transition-property: background-color, box-shadow; -o-transition-duration: 0.5s; transition-property: background-color, box-shadow; transition-duration: 0.5s; } .memberdecls td.glow, .fieldtable tr.glow { background-color: cyan; box-shadow: 0 0 15px cyan; } .mdescLeft, .mdescRight, .memItemLeft, .memItemRight, .memTemplItemLeft, .memTemplItemRight, .memTemplParams { background-color: #F9FAFC; border: none; margin: 4px; padding: 1px 0 0 8px; } .mdescLeft, .mdescRight { padding: 0px 8px 4px 8px; color: #555; } .memSeparator { border-bottom: 1px solid #DEE4F0; line-height: 1px; margin: 0px; padding: 0px; } .memItemLeft, .memTemplItemLeft { white-space: nowrap; } .memItemRight { width: 100%; } .memTemplParams { color: #4665A2; white-space: nowrap; font-size: 80%; } /* @end */ /* @group Member Details */ /* Styles for detailed member documentation */ .memtitle { padding: 8px; border-top: 1px solid #A8B8D9; border-left: 1px solid #A8B8D9; border-right: 1px solid #A8B8D9; border-top-right-radius: 4px; border-top-left-radius: 4px; margin-bottom: -1px; background-image: url('nav_f.png'); background-repeat: repeat-x; background-color: #E2E8F2; line-height: 1.25; font-weight: 300; float:left; } .permalink { font-size: 65%; display: inline-block; vertical-align: middle; } .memtemplate { font-size: 80%; color: #4665A2; font-weight: normal; margin-left: 9px; } .memnav { background-color: #EBEFF6; border: 1px solid #A3B4D7; text-align: center; margin: 2px; margin-right: 15px; padding: 2px; } .mempage { width: 100%; } .memitem { padding: 0; margin-bottom: 10px; margin-right: 5px; -webkit-transition: box-shadow 0.5s linear; -moz-transition: box-shadow 0.5s linear; -ms-transition: box-shadow 0.5s linear; -o-transition: box-shadow 0.5s linear; transition: box-shadow 0.5s linear; display: table !important; width: 100%; } .memitem.glow { box-shadow: 0 0 15px cyan; } .memname { font-weight: 400; margin-left: 6px; } .memname td { vertical-align: bottom; } .memproto, dl.reflist dt { border-top: 1px solid #A8B8D9; border-left: 1px solid #A8B8D9; border-right: 1px solid #A8B8D9; padding: 6px 0px 6px 0px; color: #253555; font-weight: bold; text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); background-color: #DFE5F1; /* opera specific markup */ box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); border-top-right-radius: 4px; /* firefox specific markup */ -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; -moz-border-radius-topright: 4px; /* webkit specific markup */ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); -webkit-border-top-right-radius: 4px; } .overload { font-family: "courier new",courier,monospace; font-size: 65%; } .memdoc, dl.reflist dd { border-bottom: 1px solid #A8B8D9; border-left: 1px solid #A8B8D9; border-right: 1px solid #A8B8D9; padding: 6px 10px 2px 10px; background-color: #FBFCFD; border-top-width: 0; background-image:url('nav_g.png'); background-repeat:repeat-x; background-color: #FFFFFF; /* opera specific markup */ border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); /* firefox specific markup */ -moz-border-radius-bottomleft: 4px; -moz-border-radius-bottomright: 4px; -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; /* webkit specific markup */ -webkit-border-bottom-left-radius: 4px; -webkit-border-bottom-right-radius: 4px; -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); } dl.reflist dt { padding: 5px; } dl.reflist dd { margin: 0px 0px 10px 0px; padding: 5px; } .paramkey { text-align: right; } .paramtype { white-space: nowrap; } .paramname { color: #602020; white-space: nowrap; } .paramname em { font-style: normal; } .paramname code { line-height: 14px; } .params, .retval, .exception, .tparams { margin-left: 0px; padding-left: 0px; } .params .paramname, .retval .paramname, .tparams .paramname { font-weight: bold; vertical-align: top; } .params .paramtype, .tparams .paramtype { font-style: italic; vertical-align: top; } .params .paramdir, .tparams .paramdir { font-family: "courier new",courier,monospace; vertical-align: top; } table.mlabels { border-spacing: 0px; } td.mlabels-left { width: 100%; padding: 0px; } td.mlabels-right { vertical-align: bottom; padding: 0px; white-space: nowrap; } span.mlabels { margin-left: 8px; } span.mlabel { background-color: #728DC1; border-top:1px solid #5373B4; border-left:1px solid #5373B4; border-right:1px solid #C4CFE5; border-bottom:1px solid #C4CFE5; text-shadow: none; color: white; margin-right: 4px; padding: 2px 3px; border-radius: 3px; font-size: 7pt; white-space: nowrap; vertical-align: middle; } /* @end */ /* these are for tree view inside a (index) page */ div.directory { margin: 10px 0px; border-top: 1px solid #9CAFD4; border-bottom: 1px solid #9CAFD4; width: 100%; } .directory table { border-collapse:collapse; } .directory td { margin: 0px; padding: 0px; vertical-align: top; } .directory td.entry { white-space: nowrap; padding-right: 6px; padding-top: 3px; } .directory td.entry a { outline:none; } .directory td.entry a img { border: none; } .directory td.desc { width: 100%; padding-left: 6px; padding-right: 6px; padding-top: 3px; border-left: 1px solid rgba(0,0,0,0.05); } .directory tr.even { padding-left: 6px; background-color: #F7F8FB; } .directory img { vertical-align: -30%; } .directory .levels { white-space: nowrap; width: 100%; text-align: right; font-size: 9pt; } .directory .levels span { cursor: pointer; padding-left: 2px; padding-right: 2px; color: #3D578C; } .arrow { color: #9CAFD4; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; cursor: pointer; font-size: 80%; display: inline-block; width: 16px; height: 22px; } .icon { font-family: Arial, Helvetica; font-weight: bold; font-size: 12px; height: 14px; width: 16px; display: inline-block; background-color: #728DC1; color: white; text-align: center; border-radius: 4px; margin-left: 2px; margin-right: 2px; } .icona { width: 24px; height: 22px; display: inline-block; } .iconfopen { width: 24px; height: 18px; margin-bottom: 4px; background-image:url('folderopen.png'); background-position: 0px -4px; background-repeat: repeat-y; vertical-align:top; display: inline-block; } .iconfclosed { width: 24px; height: 18px; margin-bottom: 4px; background-image:url('folderclosed.png'); background-position: 0px -4px; background-repeat: repeat-y; vertical-align:top; display: inline-block; } .icondoc { width: 24px; height: 18px; margin-bottom: 4px; background-image:url('doc.png'); background-position: 0px -4px; background-repeat: repeat-y; vertical-align:top; display: inline-block; } table.directory { font: 400 14px Roboto,sans-serif; } /* @end */ div.dynheader { margin-top: 8px; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } address { font-style: normal; color: #2A3D61; } table.doxtable caption { caption-side: top; } table.doxtable { border-collapse:collapse; margin-top: 4px; margin-bottom: 4px; } table.doxtable td, table.doxtable th { border: 1px solid #2D4068; padding: 3px 7px 2px; } table.doxtable th { background-color: #374F7F; color: #FFFFFF; font-size: 110%; padding-bottom: 4px; padding-top: 5px; } table.fieldtable { /*width: 100%;*/ margin-bottom: 10px; border: 1px solid #A8B8D9; border-spacing: 0px; -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); } .fieldtable td, .fieldtable th { padding: 3px 7px 2px; } .fieldtable td.fieldtype, .fieldtable td.fieldname { white-space: nowrap; border-right: 1px solid #A8B8D9; border-bottom: 1px solid #A8B8D9; vertical-align: top; } .fieldtable td.fieldname { padding-top: 3px; } .fieldtable td.fielddoc { border-bottom: 1px solid #A8B8D9; /*width: 100%;*/ } .fieldtable td.fielddoc p:first-child { margin-top: 0px; } .fieldtable td.fielddoc p:last-child { margin-bottom: 2px; } .fieldtable tr:last-child td { border-bottom: none; } .fieldtable th { background-image:url('nav_f.png'); background-repeat:repeat-x; background-color: #E2E8F2; font-size: 90%; color: #253555; padding-bottom: 4px; padding-top: 5px; text-align:left; font-weight: 400; -moz-border-radius-topleft: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-left-radius: 4px; -webkit-border-top-right-radius: 4px; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom: 1px solid #A8B8D9; } .tabsearch { top: 0px; left: 10px; height: 36px; background-image: url('tab_b.png'); z-index: 101; overflow: hidden; font-size: 13px; } .navpath ul { font-size: 11px; background-image:url('tab_b.png'); background-repeat:repeat-x; background-position: 0 -5px; height:30px; line-height:30px; color:#8AA0CC; border:solid 1px #C2CDE4; overflow:hidden; margin:0px; padding:0px; } .navpath li { list-style-type:none; float:left; padding-left:10px; padding-right:15px; background-image:url('bc_s.png'); background-repeat:no-repeat; background-position:right; color:#364D7C; } .navpath li.navelem a { height:32px; display:block; text-decoration: none; outline: none; color: #283A5D; font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); text-decoration: none; } .navpath li.navelem a:hover { color:#6884BD; } .navpath li.footer { list-style-type:none; float:right; padding-left:10px; padding-right:15px; background-image:none; background-repeat:no-repeat; background-position:right; color:#364D7C; font-size: 8pt; } div.summary { float: right; font-size: 8pt; padding-right: 5px; width: 50%; text-align: right; } div.summary a { white-space: nowrap; } table.classindex { margin: 10px; white-space: nowrap; margin-left: 3%; margin-right: 3%; width: 94%; border: 0; border-spacing: 0; padding: 0; } div.ingroups { font-size: 8pt; width: 50%; text-align: left; } div.ingroups a { white-space: nowrap; } div.header { background-image:url('nav_h.png'); background-repeat:repeat-x; background-color: #F9FAFC; margin: 0px; border-bottom: 1px solid #C4CFE5; } div.headertitle { padding: 5px 5px 5px 10px; } .PageDocRTL-title div.headertitle { text-align: right; direction: rtl; } dl { padding: 0 0 0 0; } /* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */ dl.section { margin-left: 0px; padding-left: 0px; } dl.section.DocNodeRTL { margin-right: 0px; padding-right: 0px; } dl.note { margin-left: -7px; padding-left: 3px; border-left: 4px solid; border-color: #D0C000; } dl.note.DocNodeRTL { margin-left: 0; padding-left: 0; border-left: 0; margin-right: -7px; padding-right: 3px; border-right: 4px solid; border-color: #D0C000; } dl.warning, dl.attention { margin-left: -7px; padding-left: 3px; border-left: 4px solid; border-color: #FF0000; } dl.warning.DocNodeRTL, dl.attention.DocNodeRTL { margin-left: 0; padding-left: 0; border-left: 0; margin-right: -7px; padding-right: 3px; border-right: 4px solid; border-color: #FF0000; } dl.pre, dl.post, dl.invariant { margin-left: -7px; padding-left: 3px; border-left: 4px solid; border-color: #00D000; } dl.pre.DocNodeRTL, dl.post.DocNodeRTL, dl.invariant.DocNodeRTL { margin-left: 0; padding-left: 0; border-left: 0; margin-right: -7px; padding-right: 3px; border-right: 4px solid; border-color: #00D000; } dl.deprecated { margin-left: -7px; padding-left: 3px; border-left: 4px solid; border-color: #505050; } dl.deprecated.DocNodeRTL { margin-left: 0; padding-left: 0; border-left: 0; margin-right: -7px; padding-right: 3px; border-right: 4px solid; border-color: #505050; } dl.todo { margin-left: -7px; padding-left: 3px; border-left: 4px solid; border-color: #00C0E0; } dl.todo.DocNodeRTL { margin-left: 0; padding-left: 0; border-left: 0; margin-right: -7px; padding-right: 3px; border-right: 4px solid; border-color: #00C0E0; } dl.test { margin-left: -7px; padding-left: 3px; border-left: 4px solid; border-color: #3030E0; } dl.test.DocNodeRTL { margin-left: 0; padding-left: 0; border-left: 0; margin-right: -7px; padding-right: 3px; border-right: 4px solid; border-color: #3030E0; } dl.bug { margin-left: -7px; padding-left: 3px; border-left: 4px solid; border-color: #C08050; } dl.bug.DocNodeRTL { margin-left: 0; padding-left: 0; border-left: 0; margin-right: -7px; padding-right: 3px; border-right: 4px solid; border-color: #C08050; } dl.section dd { margin-bottom: 6px; } #projectlogo { text-align: center; vertical-align: bottom; border-collapse: separate; } #projectlogo img { border: 0px none; } #projectalign { vertical-align: middle; } #projectname { font: 300% Tahoma, Arial,sans-serif; margin: 0px; padding: 2px 0px; } #projectbrief { font: 120% Tahoma, Arial,sans-serif; margin: 0px; padding: 0px; } #projectnumber { font: 50% Tahoma, Arial,sans-serif; margin: 0px; padding: 0px; } #titlearea { padding: 0px; margin: 0px; width: 100%; border-bottom: 1px solid #5373B4; } .image { text-align: center; } .dotgraph { text-align: center; } .mscgraph { text-align: center; } .plantumlgraph { text-align: center; } .diagraph { text-align: center; } .caption { font-weight: bold; } div.zoom { border: 1px solid #90A5CE; } dl.citelist { margin-bottom:50px; } dl.citelist dt { color:#334975; float:left; font-weight:bold; margin-right:10px; padding:5px; } dl.citelist dd { margin:2px 0; padding:5px 0; } div.toc { padding: 14px 25px; background-color: #F4F6FA; border: 1px solid #D8DFEE; border-radius: 7px 7px 7px 7px; float: right; height: auto; margin: 0 8px 10px 10px; width: 200px; } .PageDocRTL-title div.toc { float: left !important; text-align: right; } div.toc li { background: url("bdwn.png") no-repeat scroll 0 5px transparent; font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; margin-top: 5px; padding-left: 10px; padding-top: 2px; } .PageDocRTL-title div.toc li { background-position-x: right !important; padding-left: 0 !important; padding-right: 10px; } div.toc h3 { font: bold 12px/1.2 Arial,FreeSans,sans-serif; color: #4665A2; border-bottom: 0 none; margin: 0; } div.toc ul { list-style: none outside none; border: medium none; padding: 0px; } div.toc li.level1 { margin-left: 0px; } div.toc li.level2 { margin-left: 15px; } div.toc li.level3 { margin-left: 30px; } div.toc li.level4 { margin-left: 45px; } .PageDocRTL-title div.toc li.level1 { margin-left: 0 !important; margin-right: 0; } .PageDocRTL-title div.toc li.level2 { margin-left: 0 !important; margin-right: 15px; } .PageDocRTL-title div.toc li.level3 { margin-left: 0 !important; margin-right: 30px; } .PageDocRTL-title div.toc li.level4 { margin-left: 0 !important; margin-right: 45px; } .inherit_header { font-weight: bold; color: gray; cursor: pointer; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } .inherit_header td { padding: 6px 0px 2px 5px; } .inherit { display: none; } tr.heading h2 { margin-top: 12px; margin-bottom: 4px; } /* tooltip related style info */ .ttc { position: absolute; display: none; } #powerTip { cursor: default; white-space: nowrap; background-color: white; border: 1px solid gray; border-radius: 4px 4px 4px 4px; box-shadow: 1px 1px 7px gray; display: none; font-size: smaller; max-width: 80%; opacity: 0.9; padding: 1ex 1em 1em; position: absolute; z-index: 2147483647; } #powerTip div.ttdoc { color: grey; font-style: italic; } #powerTip div.ttname a { font-weight: bold; } #powerTip div.ttname { font-weight: bold; } #powerTip div.ttdeci { color: #006318; } #powerTip div { margin: 0px; padding: 0px; font: 12px/16px Roboto,sans-serif; } #powerTip:before, #powerTip:after { content: ""; position: absolute; margin: 0px; } #powerTip.n:after, #powerTip.n:before, #powerTip.s:after, #powerTip.s:before, #powerTip.w:after, #powerTip.w:before, #powerTip.e:after, #powerTip.e:before, #powerTip.ne:after, #powerTip.ne:before, #powerTip.se:after, #powerTip.se:before, #powerTip.nw:after, #powerTip.nw:before, #powerTip.sw:after, #powerTip.sw:before { border: solid transparent; content: " "; height: 0; width: 0; position: absolute; } #powerTip.n:after, #powerTip.s:after, #powerTip.w:after, #powerTip.e:after, #powerTip.nw:after, #powerTip.ne:after, #powerTip.sw:after, #powerTip.se:after { border-color: rgba(255, 255, 255, 0); } #powerTip.n:before, #powerTip.s:before, #powerTip.w:before, #powerTip.e:before, #powerTip.nw:before, #powerTip.ne:before, #powerTip.sw:before, #powerTip.se:before { border-color: rgba(128, 128, 128, 0); } #powerTip.n:after, #powerTip.n:before, #powerTip.ne:after, #powerTip.ne:before, #powerTip.nw:after, #powerTip.nw:before { top: 100%; } #powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { border-top-color: #FFFFFF; border-width: 10px; margin: 0px -10px; } #powerTip.n:before { border-top-color: #808080; border-width: 11px; margin: 0px -11px; } #powerTip.n:after, #powerTip.n:before { left: 50%; } #powerTip.nw:after, #powerTip.nw:before { right: 14px; } #powerTip.ne:after, #powerTip.ne:before { left: 14px; } #powerTip.s:after, #powerTip.s:before, #powerTip.se:after, #powerTip.se:before, #powerTip.sw:after, #powerTip.sw:before { bottom: 100%; } #powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { border-bottom-color: #FFFFFF; border-width: 10px; margin: 0px -10px; } #powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { border-bottom-color: #808080; border-width: 11px; margin: 0px -11px; } #powerTip.s:after, #powerTip.s:before { left: 50%; } #powerTip.sw:after, #powerTip.sw:before { right: 14px; } #powerTip.se:after, #powerTip.se:before { left: 14px; } #powerTip.e:after, #powerTip.e:before { left: 100%; } #powerTip.e:after { border-left-color: #FFFFFF; border-width: 10px; top: 50%; margin-top: -10px; } #powerTip.e:before { border-left-color: #808080; border-width: 11px; top: 50%; margin-top: -11px; } #powerTip.w:after, #powerTip.w:before { right: 100%; } #powerTip.w:after { border-right-color: #FFFFFF; border-width: 10px; top: 50%; margin-top: -10px; } #powerTip.w:before { border-right-color: #808080; border-width: 11px; top: 50%; margin-top: -11px; } @media print { #top { display: none; } #side-nav { display: none; } #nav-path { display: none; } body { overflow:visible; } h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } .summary { display: none; } .memitem { page-break-inside: avoid; } #doc-content { margin-left:0 !important; height:auto !important; width:auto !important; overflow:inherit; display:inline; } } /* @group Markdown */ /* table.markdownTable { border-collapse:collapse; margin-top: 4px; margin-bottom: 4px; } table.markdownTable td, table.markdownTable th { border: 1px solid #2D4068; padding: 3px 7px 2px; } table.markdownTableHead tr { } table.markdownTableBodyLeft td, table.markdownTable th { border: 1px solid #2D4068; padding: 3px 7px 2px; } th.markdownTableHeadLeft th.markdownTableHeadRight th.markdownTableHeadCenter th.markdownTableHeadNone { background-color: #374F7F; color: #FFFFFF; font-size: 110%; padding-bottom: 4px; padding-top: 5px; } th.markdownTableHeadLeft { text-align: left } th.markdownTableHeadRight { text-align: right } th.markdownTableHeadCenter { text-align: center } */ table.markdownTable { border-collapse:collapse; margin-top: 4px; margin-bottom: 4px; } table.markdownTable td, table.markdownTable th { border: 1px solid #2D4068; padding: 3px 7px 2px; } table.markdownTable tr { } th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { background-color: #374F7F; color: #FFFFFF; font-size: 110%; padding-bottom: 4px; padding-top: 5px; } th.markdownTableHeadLeft, td.markdownTableBodyLeft { text-align: left } th.markdownTableHeadRight, td.markdownTableBodyRight { text-align: right } th.markdownTableHeadCenter, td.markdownTableBodyCenter { text-align: center } .DocNodeRTL { text-align: right; direction: rtl; } .DocNodeLTR { text-align: left; direction: ltr; } table.DocNodeRTL { width: auto; margin-right: 0; margin-left: auto; } table.DocNodeLTR { width: auto; margin-right: auto; margin-left: 0; } tt, code, kbd, samp { display: inline-block; direction:ltr; } /* @end */ u { text-decoration: underline; } mysql++-3.2.5/doc/html/refman/ssx/index.html000755 000765 000024 00000004255 13515046515 021430 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++ SSQLS v2 Translator: Main Page
MySQL++ SSQLS v2 Translator  3.2.5
MySQL++ SSQLS v2 Translator Documentation
mysql++-3.2.5/doc/html/refman/ssx/functions.html000755 000765 000024 00000027424 13515046515 022334 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++ SSQLS v2 Translator: Class Members
MySQL++ SSQLS v2 Translator  3.2.5
Here is a list of all documented class members with links to the class documentation for each member:

- a -

- b -

- c -

- e -

- f -

- h -

- i -

- l -

- n -

- o -

- p -

- r -

- s -

- t -

- v -

- ~ -

mysql++-3.2.5/doc/html/refman/ssx/classParseV2_1_1ImplementationExtensionOption.html000755 000765 000024 00000040654 13515046515 031270 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++ SSQLS v2 Translator: ParseV2::ImplementationExtensionOption Class Reference
MySQL++ SSQLS v2 Translator  3.2.5
ParseV2::ImplementationExtensionOption Class Reference

'option implementation_extension' directive line More...

#include <parsev2.h>

Inheritance diagram for ParseV2::ImplementationExtensionOption:
Collaboration diagram for ParseV2::ImplementationExtensionOption:

Public Member Functions

 ImplementationExtensionOption (const std::string &value)
 Constructor.
 
const char * extension () const
 Return the extension used for C++ implementation files we emit.
 
void print (std::ostream &os) const
 Print the option description out to a stream in SSQLS v2 form.
 
- Public Member Functions inherited from ParseV2::Option
virtual ~Option ()
 Virtual dtor, since this is a base class.
 
- Public Member Functions inherited from ParseV2::Line
virtual ~Line ()
 Virtual dtor, since this is a base class.
 

Additional Inherited Members

- Static Public Member Functions inherited from ParseV2::Option
static Optionparse (const StringList &tl, bool subdirective, const File &file)
 Attempt to create an Option object from information in the passed StringList. More...
 
- Static Public Member Functions inherited from ParseV2::Line
static Lineparse (const StringList &tl, bool subdirective, const File &file)
 Virtual ctor, creating one of our subclass objects based on what we're passed. More...
 
- Protected Member Functions inherited from ParseV2::Option
 Option (const std::string &value)
 Protected ctor, so we cannot be directly instantiated. More...
 
const char * value () const
 Return the option's value in string form, unmodified from the original parse. More...
 
- Protected Member Functions inherited from ParseV2::Line
 Line ()
 Protected ctor, to prevent instantiation.
 
- Static Protected Member Functions inherited from ParseV2::Option
static bool parse_bool (const std::string &value)
 Convert a string expressing a boolean value to a bool. More...
 

Detailed Description

'option implementation_extension' directive line


The documentation for this class was generated from the following files:
mysql++-3.2.5/doc/html/refman/ssx/classParseV2_1_1File-members.html000755 000765 000024 00000011043 13515046515 025512 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++ SSQLS v2 Translator: Member List
MySQL++ SSQLS v2 Translator  3.2.5
ParseV2::File Member List

This is the complete list of members for ParseV2::File, including all inherited members.

error(const std::string &msg) constParseV2::File
error(const std::ostringstream &msg) constParseV2::Fileinline
File(const char *file_name)ParseV2::File
name() constParseV2::Fileinline
parse_error(const std::string &msg) constParseV2::File
parse_error(const std::ostringstream &msg) constParseV2::Fileinline
read_line(std::string &line, bool &subdirective)ParseV2::File
mysql++-3.2.5/doc/html/refman/ssx/annotated.html000755 000765 000024 00000016374 13515046515 022303 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++ SSQLS v2 Translator: Class List
MySQL++ SSQLS v2 Translator  3.2.5
Class List
Here are the classes, structs, unions and interfaces with brief descriptions:
[detail level 123]
 CParseV2Parses SSQLS v2 documents and holds the parse result
 CAccessorStyleOption'option accessor_style' directive line
 CExceptionOnSchemaMismatchOption'option exception_on_schema_mismatch' directive line
 CField'field' directive line
 CTypeA smart enum for converting SQL type strings to one of a relatively few types we directly support
 CFileHolds information about an SSQLS v2 file we're parsing
 CFileExceptionException object thrown to indicate a file I/O error
 CHeaderExtensionOption'option header_extension' directive line
 CImplementationExtensionOption'option implementation_extension' directive line
 CInclude'include' directive line
 CLineBase class for parsed SSQLS v2 declaration lines
 COptionBase class for known SSQLS v2 'option' directives
 CParseExceptionException object thrown by File::error() to report an SSQLS v2 parsing error
 CTable'table' directive line
mysql++-3.2.5/doc/html/refman/ssx/hierarchy.html000755 000765 000024 00000017343 13515046515 022301 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++ SSQLS v2 Translator: Class Hierarchy
MySQL++ SSQLS v2 Translator  3.2.5
Class Hierarchy

Go to the graphical class hierarchy

This inheritance list is sorted roughly, but not completely, alphabetically:
[detail level 123]
 CException
 CParseV2::FileExceptionException object thrown to indicate a file I/O error
 CParseV2::ParseExceptionException object thrown by File::error() to report an SSQLS v2 parsing error
 CParseV2::FileHolds information about an SSQLS v2 file we're parsing
 CParseV2::LineBase class for parsed SSQLS v2 declaration lines
 CParseV2::Field'field' directive line
 CParseV2::Include'include' directive line
 CParseV2::OptionBase class for known SSQLS v2 'option' directives
 CParseV2::AccessorStyleOption'option accessor_style' directive line
 CParseV2::ExceptionOnSchemaMismatchOption'option exception_on_schema_mismatch' directive line
 CParseV2::HeaderExtensionOption'option header_extension' directive line
 CParseV2::ImplementationExtensionOption'option implementation_extension' directive line
 CParseV2::Table'table' directive line
 CParseV2Parses SSQLS v2 documents and holds the parse result
 CParseV2::Field::TypeA smart enum for converting SQL type strings to one of a relatively few types we directly support
mysql++-3.2.5/doc/html/refman/ssx/classParseV2_1_1Option.html000755 000765 000024 00000047354 13515046515 024471 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++ SSQLS v2 Translator: ParseV2::Option Class Reference
MySQL++ SSQLS v2 Translator  3.2.5

Base class for known SSQLS v2 'option' directives. More...

#include <parsev2.h>

Inheritance diagram for ParseV2::Option:
Collaboration diagram for ParseV2::Option:

Public Member Functions

virtual ~Option ()
 Virtual dtor, since this is a base class.
 
- Public Member Functions inherited from ParseV2::Line
virtual ~Line ()
 Virtual dtor, since this is a base class.
 
virtual void print (std::ostream &os) const =0
 Print line's contents out to a stream in SSQLS v2 form.
 

Static Public Member Functions

static Optionparse (const StringList &tl, bool subdirective, const File &file)
 Attempt to create an Option object from information in the passed StringList. More...
 
- Static Public Member Functions inherited from ParseV2::Line
static Lineparse (const StringList &tl, bool subdirective, const File &file)
 Virtual ctor, creating one of our subclass objects based on what we're passed. More...
 

Protected Member Functions

 Option (const std::string &value)
 Protected ctor, so we cannot be directly instantiated. More...
 
const char * value () const
 Return the option's value in string form, unmodified from the original parse. More...
 
- Protected Member Functions inherited from ParseV2::Line
 Line ()
 Protected ctor, to prevent instantiation.
 

Static Protected Member Functions

static bool parse_bool (const std::string &value)
 Convert a string expressing a boolean value to a bool. More...
 

Detailed Description

Base class for known SSQLS v2 'option' directives.

There are subclasses for all known SSQLS v2 options, having the same name, but with different capitalization and an "Option" suffix.

Constructor & Destructor Documentation

◆ Option()

ParseV2::Option::Option ( const std::string &  value)
inlineprotected

Protected ctor, so we cannot be directly instantiated.

Parameters
valuethe option's value

Member Function Documentation

◆ parse()

ParseV2::Option * ParseV2::Option::parse ( const StringList tl,
bool  subdirective,
const File file 
)
static

Attempt to create an Option object from information in the passed StringList.

This is a kind of pre-processor for the Option subclass's ctors, creating an object of one of those subclasses only if the given StringList makes sense, passing those values as ctor parameters.

References ParseV2::File::parse_error().

Referenced by ParseV2::Line::parse().

◆ parse_bool()

bool ParseV2::Option::parse_bool ( const std::string &  value)
staticprotected

Convert a string expressing a boolean value to a bool.

If we cannot recognize the value, we return true because SSQLS v2 options all default to false. The assumption is is that if the option directive is present, the value is most likely truthy.

As a consequence, the only thing this function recognizes is "0", "false", "no", and "off", with any mix of upper and lower case. All else is considered true.

◆ value()

const char* ParseV2::Option::value ( ) const
inlineprotected

Return the option's value in string form, unmodified from the original parse.

Subclasses typically either expose this function in their public interface with a different, more appropriate name, or they define a wholly different method returning a reduced or more type-safe version of this value.

Referenced by ParseV2::HeaderExtensionOption::extension(), and ParseV2::ImplementationExtensionOption::extension().


The documentation for this class was generated from the following files:
mysql++-3.2.5/doc/html/refman/ssx/tabs.css000755 000765 000024 00000021747 13515046515 021103 0ustar00tangentstaff000000 000000 .sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255,255,255,0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;-moz-border-radius:0 !important;-webkit-border-radius:0;border-radius:0 !important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px !important;-webkit-border-radius:5px;border-radius:5px !important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0 !important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}}mysql++-3.2.5/doc/html/refman/ssx/classParseV2_1_1FileException-members.html000755 000765 000024 00000005661 13515046515 027402 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++ SSQLS v2 Translator: Member List
MySQL++ SSQLS v2 Translator  3.2.5
ParseV2::FileException Member List

This is the complete list of members for ParseV2::FileException, including all inherited members.

FileException(const std::string &what)ParseV2::FileExceptioninline
mysql++-3.2.5/doc/html/refman/ssx/classParseV2_1_1Field.html000755 000765 000024 00000040663 13515046515 024240 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++ SSQLS v2 Translator: ParseV2::Field Class Reference
MySQL++ SSQLS v2 Translator  3.2.5

'field' directive line More...

#include <parsev2.h>

Inheritance diagram for ParseV2::Field:
Collaboration diagram for ParseV2::Field:

Classes

class  Type
 A smart enum for converting SQL type strings to one of a relatively few types we directly support. More...
 

Public Member Functions

 Field (const std::string &name, const std::string &type, bool is_unsigned=false, bool is_null=false, bool is_autoinc=false, bool is_key=false, const std::string &alias=0)
 Holds information about a SQL field declared in the SSQLS v2 language. More...
 
void print (std::ostream &os) const
 Print field description out to a stream in SSQLS v2 form.
 
- Public Member Functions inherited from ParseV2::Line
virtual ~Line ()
 Virtual dtor, since this is a base class.
 

Static Public Member Functions

static Fieldparse (const StringList &tl, bool subdirective, const File &file)
 Attempt to create a Field object from information in the passed StringList. More...
 
- Static Public Member Functions inherited from ParseV2::Line
static Lineparse (const StringList &tl, bool subdirective, const File &file)
 Virtual ctor, creating one of our subclass objects based on what we're passed. More...
 

Additional Inherited Members

- Protected Member Functions inherited from ParseV2::Line
 Line ()
 Protected ctor, to prevent instantiation.
 

Detailed Description

'field' directive line

Constructor & Destructor Documentation

◆ Field()

ParseV2::Field::Field ( const std::string &  name,
const std::string &  type,
bool  is_unsigned = false,
bool  is_null = false,
bool  is_autoinc = false,
bool  is_key = false,
const std::string &  alias = 0 
)
inline

Holds information about a SQL field declared in the SSQLS v2 language.

Parameters
typethe field's SQL type
is_unsignedtrue if type is an integer and is unsigned
is_nulltrue if field's value is nullable
is_autoinctrue if DB automatically assigns an auto-incrementing value to this field in INSERT if it isn't specified
is_keytrue if field is part of the primary key
namethe field's SQL name
aliasthe field's C++ name, defaulting to the SQL name

Member Function Documentation

◆ parse()

ParseV2::Field * ParseV2::Field::parse ( const StringList tl,
bool  subdirective,
const File file 
)
static

Attempt to create a Field object from information in the passed StringList.

A kind of pre-processor for the Field ctor, creating one of those objects only if the given StringList makes sense, using the values we find in that StringList as parameters to the ctor.

References ParseV2::File::parse_error().

Referenced by ParseV2::Line::parse().


The documentation for this class was generated from the following files:
mysql++-3.2.5/doc/html/refman/ssx/functions_enum.html000755 000765 000024 00000004306 13515046515 023352 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++ SSQLS v2 Translator: Class Members - Enumerations
MySQL++ SSQLS v2 Translator  3.2.5
mysql++-3.2.5/doc/html/refman/ssx/classParseV2_1_1HeaderExtensionOption-members.html000755 000765 000024 00000013676 13515046515 031127 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++ SSQLS v2 Translator: Member List
MySQL++ SSQLS v2 Translator  3.2.5
ParseV2::HeaderExtensionOption Member List

This is the complete list of members for ParseV2::HeaderExtensionOption, including all inherited members.

extension() constParseV2::HeaderExtensionOptioninline
HeaderExtensionOption(const std::string &value)ParseV2::HeaderExtensionOptioninline
Line()ParseV2::Lineinlineprotected
Option(const std::string &value)ParseV2::Optioninlineprotected
parse(const StringList &tl, bool subdirective, const File &file)ParseV2::Optionstatic
parse_bool(const std::string &value)ParseV2::Optionprotectedstatic
print(std::ostream &os) constParseV2::HeaderExtensionOptionvirtual
value() constParseV2::Optioninlineprotected
~Line()ParseV2::Lineinlinevirtual
~Option()ParseV2::Optioninlinevirtual
mysql++-3.2.5/doc/html/refman/ssx/classParseV2_1_1ParseException-members.html000755 000765 000024 00000007626 13515046515 027600 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++ SSQLS v2 Translator: Member List
MySQL++ SSQLS v2 Translator  3.2.5
ParseV2::ParseException Member List

This is the complete list of members for ParseV2::ParseException, including all inherited members.

file_name() constParseV2::ParseExceptioninline
line() constParseV2::ParseExceptioninline
ParseException(const std::string &what, const std::string &file_name, size_t line)ParseV2::ParseExceptioninline
~ParseException()ParseV2::ParseExceptioninline
mysql++-3.2.5/doc/html/refman/ssx/files.html000755 000765 000024 00000005350 13515046515 021420 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++ SSQLS v2 Translator: File List
MySQL++ SSQLS v2 Translator  3.2.5
File List
Here is a list of all documented files with brief descriptions:
 genv2.h
 parsev2.h
mysql++-3.2.5/doc/html/refman/ssx/classParseV2_1_1Option-members.html000755 000765 000024 00000012201 13515046515 026100 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++ SSQLS v2 Translator: Member List
MySQL++ SSQLS v2 Translator  3.2.5
ParseV2::Option Member List

This is the complete list of members for ParseV2::Option, including all inherited members.

Line()ParseV2::Lineinlineprotected
Option(const std::string &value)ParseV2::Optioninlineprotected
parse(const StringList &tl, bool subdirective, const File &file)ParseV2::Optionstatic
parse_bool(const std::string &value)ParseV2::Optionprotectedstatic
print(std::ostream &os) const =0ParseV2::Linepure virtual
value() constParseV2::Optioninlineprotected
~Line()ParseV2::Lineinlinevirtual
~Option()ParseV2::Optioninlinevirtual
mysql++-3.2.5/doc/html/refman/ssx/functions_func.html000755 000765 000024 00000022112 13515046515 023334 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++ SSQLS v2 Translator: Class Members - Functions
MySQL++ SSQLS v2 Translator  3.2.5
 

- a -

- b -

- c -

- e -

- f -

- h -

- i -

- l -

- n -

- o -

- p -

- r -

- t -

- v -

- ~ -

mysql++-3.2.5/doc/html/refman/ssx/classParseV2_1_1Include-members.html000755 000765 000024 00000011257 13515046515 026225 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++ SSQLS v2 Translator: Member List
MySQL++ SSQLS v2 Translator  3.2.5
ParseV2::Include Member List

This is the complete list of members for ParseV2::Include, including all inherited members.

begin() constParseV2::Includeinline
end() constParseV2::Includeinline
Include(const char *file_name)ParseV2::Includeinline
Line()ParseV2::Lineinlineprotected
parse(const StringList &tl, bool subdirective, const File &file)ParseV2::Includestatic
~Include()ParseV2::Includeinline
~Line()ParseV2::Lineinlinevirtual
mysql++-3.2.5/doc/html/refman/ssx/classParseV2_1_1AccessorStyleOption-members.html000755 000765 000024 00000013160 13515046515 030611 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++ SSQLS v2 Translator: Member List
MySQL++ SSQLS v2 Translator  3.2.5
ParseV2::AccessorStyleOption Member List

This is the complete list of members for ParseV2::AccessorStyleOption, including all inherited members.

AccessorStyleOption(const std::string &value, const File &file)ParseV2::AccessorStyleOptioninline
Line()ParseV2::Lineinlineprotected
Option(const std::string &value)ParseV2::Optioninlineprotected
parse(const StringList &tl, bool subdirective, const File &file)ParseV2::Optionstatic
parse_bool(const std::string &value)ParseV2::Optionprotectedstatic
print(std::ostream &os) constParseV2::AccessorStyleOptionvirtual
value() constParseV2::Optioninlineprotected
~Line()ParseV2::Lineinlinevirtual
~Option()ParseV2::Optioninlinevirtual
mysql++-3.2.5/doc/html/refman/ssx/classParseV2_1_1Field_1_1Type.html000755 000765 000024 00000035657 13515046515 025551 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++ SSQLS v2 Translator: ParseV2::Field::Type Class Reference
MySQL++ SSQLS v2 Translator  3.2.5
ParseV2::Field::Type Class Reference

A smart enum for converting SQL type strings to one of a relatively few types we directly support. More...

#include <parsev2.h>

Public Types

enum  Value {
  ft_tinyint, ft_smallint, ft_mediumint, ft_bigint,
  ft_float, ft_double, ft_string, ft_blob,
  ft_date, ft_datetime, ft_time, ft_set
}
 Known SQL field types. More...
 

Public Member Functions

 Type (const std::string &s)
 Constructor. More...
 
 Type (Value v)
 Copy constructor.
 
void print (std::ostream &os) const
 Print type description out to a stream in SSQLS v2 form.
 
 operator Value () const
 Enum value accessor.
 
bool operator== (const Type &rhs) const
 Equality operator.
 

Detailed Description

A smart enum for converting SQL type strings to one of a relatively few types we directly support.

This object defaults to a value of ft_string if the type cannot be discerned.

This class is public only to allow it to be tested, in test/ssqls2.cpp. It shouldn't actually be used outside ssqlsxlat.

Member Enumeration Documentation

◆ Value

Known SQL field types.

This list is shorter than what we support in MySQL++'s lib/sql_types.h and shorter still than the full list of types that SQL database engines support. Its length is limited by the diversity of data types in C++ and MySQL++. We map SQL types to one of these values as best we can.

This list doesn't encode anything about nullness, signedness, etc. Those are considered attributes modifying the type, not creating independent data types. We store these flags in separate variables in the outer class.

Enumerator
ft_tinyint 

TINYINT, INT1, BOOL.

ft_smallint 

SMALLINT, INT2.

ft_mediumint 

INT, MEDIUMINT, INT3, INT4.

ft_bigint 

BIGINT, INT8.

ft_float 

FLOAT, FLOAT4, FLOAT8.

ft_double 

DOUBLE, DECIMAL, FIXED, NUMERIC.

ft_string 

*CHAR, ENUM, *TEXT

ft_blob 

*BLOB, VARBINARY

ft_date 

DATE.

ft_datetime 

DATETIME, TIMESTAMP.

ft_time 

TIME.

ft_set 

SET.

Constructor & Destructor Documentation

◆ Type()

ParseV2::Field::Type::Type ( const std::string &  s)

Constructor.

Given a SQL type string, try to figure out which of the relatively small set of known values to use. Defaults to ft_string if we can't find a more appropriate type, as all SQL values can be dealt with as strings.

References ft_bigint, ft_blob, ft_date, ft_datetime, ft_double, ft_float, ft_mediumint, ft_set, ft_smallint, ft_time, and ft_tinyint.


The documentation for this class was generated from the following files:
mysql++-3.2.5/doc/html/refman/ssx/classParseV2_1_1Table-members.html000755 000765 000024 00000010205 13515046515 025661 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++ SSQLS v2 Translator: Member List
MySQL++ SSQLS v2 Translator  3.2.5
ParseV2::Table Member List

This is the complete list of members for ParseV2::Table, including all inherited members.

Line()ParseV2::Lineinlineprotected
parse(const StringList &tl, bool subdirective, const File &file)ParseV2::Tablestatic
print(std::ostream &os) constParseV2::Tablevirtual
Table(const std::string &name, const std::string &alias, const std::string &filebase)ParseV2::Table
~Line()ParseV2::Lineinlinevirtual
mysql++-3.2.5/doc/html/refman/ssx/parsev2_8h_source.html000755 000765 000024 00000301265 13515046515 023663 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++ SSQLS v2 Translator: parsev2.h Source File
MySQL++ SSQLS v2 Translator  3.2.5
parsev2.h
1 /***********************************************************************
2  ssx/parsev2.h - Declares the SSQLS v2 language parsing related classes.
3 
4  Copyright (c) 2009 by Warren Young and (c) 2009-2010 by Educational
5  Technology Resources, Inc. Others may also hold copyrights on code
6  in this file. See the CREDITS.txt file in the top directory of the
7  distribution for details.
8 
9  This file is part of MySQL++.
10 
11  MySQL++ is free software; you can redistribute it and/or modify it
12  under the terms of the GNU Lesser General Public License as published
13  by the Free Software Foundation; either version 2.1 of the License, or
14  (at your option) any later version.
15 
16  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
17  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
19  License for more details.
20 
21  You should have received a copy of the GNU Lesser General Public
22  License along with MySQL++; if not, write to the Free Software
23  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
24  USA
25 ***********************************************************************/
26 
27 #if !defined(MYSQLPP_SSX_PARSEV2_H)
28 #define MYSQLPP_SSX_PARSEV2_H
29 
30 #include <exceptions.h>
31 
32 #include <cassert>
33 #include <fstream>
34 #include <string>
35 #include <vector>
36 
41 class ParseV2
42 {
43 public:
45  typedef std::vector<std::string> StringList;
46 
50  typedef StringList::const_iterator StringListIt;
51 
57  class File
58  {
59  public:
62  File(const char* file_name);
63 
65  void error(const std::string& msg) const;
66 
68  void error(const std::ostringstream& msg) const
69  { error(msg.str()); }
70 
72  const char* name() const { return file_name_.c_str(); }
73 
76  void parse_error(const std::string& msg) const;
77 
79  void parse_error(const std::ostringstream& msg) const
80  { error(msg.str()); }
81 
92  bool read_line(std::string& line, bool& subdirective);
93 
94  private:
104  void add_directory_to_search_path(const char* filepath);
105 
108  void split_path(StringList& parts, const std::string& path) const;
109 
111  std::ifstream ifs_;
112 
116  std::string file_name_;
117 
121  size_t line_number_;
122 
131  static StringList search_path_;
132  };
133 
136  class Line
137  {
138  public:
140  virtual ~Line() { }
141 
152  static Line* parse(const StringList& tl, bool subdirective,
153  const File& file);
154 
157  virtual void print(std::ostream& os) const = 0;
158 
159  protected:
161  Line() { }
162  };
163 
167  typedef std::vector<Line*> LineList;
168 
173  typedef LineList::const_iterator LineListIt;
174 
176  class Field : public Line
177  {
178  public:
192  Field(const std::string& name, const std::string& type,
193  bool is_unsigned = false, bool is_null = false,
194  bool is_autoinc = false, bool is_key = false,
195  const std::string& alias = 0) :
196  name_(name),
197  type_(type),
198  is_autoinc_(is_autoinc),
199  is_key_(is_key),
200  is_null_(is_null),
201  is_unsigned_(is_unsigned),
202  alias_(alias)
203  {
204  }
205 
213  static Field* parse(const StringList& tl, bool subdirective,
214  const File& file);
215 
218  void print(std::ostream& os) const;
219 
229  class Type
230  {
231  public:
245  enum Value {
258  };
259 
266  Type(const std::string& s);
267 
269  Type(Value v) :
270  value_(v)
271  {
272  }
273 
276  void print(std::ostream& os) const;
277 
279  operator Value() const { return value_; }
280 
282  bool operator ==(const Type& rhs) const
283  { return value_ == rhs.value_; }
284 
285  private:
286  Value value_;
287  };
288 
289  private:
290  std::string name_;
291  Type type_;
292  bool is_autoinc_;
293  bool is_key_;
294  bool is_null_;
295  bool is_unsigned_;
296  std::string alias_;
297  };
298 
300  class Include : public Line
301  {
302  public:
308  Include(const char* file_name) :
309  pp2_(new ParseV2(file_name))
310  {
311  }
312 
314  ~Include() { pp2_->clear(); delete pp2_; }
315 
317  // sub-parse's LineList
318  LineListIt begin() const { return pp2_->begin(); }
319 
322  LineListIt end() const { return pp2_->end(); }
323 
331  static Include* parse(const StringList& tl, bool subdirective,
332  const File& file);
333 
334  private:
335  // Never called. Include directives don't appear in the parse
336  // list; the included file's contents appear in its place
337  // instead. Since this method only exists to test parsing
338  // behavior, we can't be called.
339  void print(std::ostream&) const { assert(0); }
340 
343  ParseV2* pp2_;
344  };
345 
351  class Option : public Line
352  {
353  public:
355  virtual ~Option() { }
356 
364  static Option* parse(const StringList& tl, bool subdirective,
365  const File& file);
366 
367  protected:
371  Option(const std::string& value) :
372  value_(value)
373  {
374  }
375 
386  static bool parse_bool(const std::string& value);
387 
395  const char* value() const { return value_.c_str(); }
396 
397  private:
398  // The option's raw value string
399  std::string value_;
400  };
401 
404  {
405  public:
407  AccessorStyleOption(const std::string& value, const File& file) :
408  Option(value),
409  type_(AccessorStyleOption::parse_type(value, file))
410  {
411  }
412 
415  void print(std::ostream& os) const;
416 
417  private:
424  enum Type {
425  unknown,
426  camel_case_lower,
427  camel_case_upper,
428  stroustrup,
429  overloaded
430  };
431 
435  static Type parse_type(const std::string& style,
436  const File& file);
437 
439  Type type_;
440  };
441 
444  {
445  public:
448  Option(value),
449  throw_(Option::parse_bool(value))
450  {
451  }
452 
455  operator bool() const { return throw_; }
456 
459  void print(std::ostream& os) const;
460 
461  private:
462  bool throw_;
463  };
464 
467  {
468  public:
470  HeaderExtensionOption(const std::string& value) :
471  Option(value)
472  {
473  }
474 
476  const char* extension() const { return value(); }
477 
480  void print(std::ostream& os) const;
481  };
482 
485  {
486  public:
488  ImplementationExtensionOption(const std::string& value) :
489  Option(value)
490  {
491  }
492 
495  const char* extension() const { return value(); }
496 
499  void print(std::ostream& os) const;
500  };
501 
503  class Table : public Line
504  {
505  public:
512  Table(const std::string& name, const std::string& alias,
513  const std::string& filebase);
514 
522  static Table* parse(const StringList& tl, bool subdirective,
523  const File& file);
524 
527  void print(std::ostream& os) const;
528 
529  private:
530  std::string name_, alias_, filebase_;
531  };
532 
535  class FileException : public mysqlpp::Exception
536  {
537  public:
542  FileException(const std::string& what) : Exception(what) { }
543  };
544 
547  class ParseException : public mysqlpp::Exception
548  {
549  public:
555  ParseException(const std::string& what,
556  const std::string& file_name, size_t line) :
557  Exception(what),
558  file_name_(file_name),
559  line_(line)
560  {
561  }
562 
564  ~ParseException() throw() { }
565 
567  const char* file_name() const { return file_name_.c_str(); }
568 
570  size_t line() const { return line_; }
571 
572  private:
573  std::string file_name_;
574  size_t line_;
575  };
576 
588  ParseV2(const char* file_name);
589 
592  {
593  for (LineListIt it = lines_.begin(); it != lines_.end(); ++it) {
594  delete *it;
595  }
596  }
597 
599  LineListIt begin() const { return lines_.begin(); }
600 
605  void clear() { lines_.clear(); }
606 
608  LineListIt end() const { return lines_.end(); }
609 
610 private:
612  void tokenize(StringList& tokens, const std::string& line) const;
613 
615  File file_;
616 
627  LineList lines_;
628 };
629 
635 std::ostream& operator<<(std::ostream& os, const ParseV2::Line& line);
636 
637 #endif // !defined(MYSQLPP_SSX_PARSEV2_H)
HeaderExtensionOption(const std::string &value)
Constructor.
Definition: parsev2.h:470
SET.
Definition: parsev2.h:257
LineListIt end() const
Get an iterator pointing just past the end of our LineList.
Definition: parsev2.h:608
Value
Known SQL field types.
Definition: parsev2.h:245
virtual ~Option()
Virtual dtor, since this is a base class.
Definition: parsev2.h:355
Field(const std::string &name, const std::string &type, bool is_unsigned=false, bool is_null=false, bool is_autoinc=false, bool is_key=false, const std::string &alias=0)
Holds information about a SQL field declared in the SSQLS v2 language.
Definition: parsev2.h:192
FLOAT, FLOAT4, FLOAT8.
Definition: parsev2.h:250
'option implementation_extension' directive line
Definition: parsev2.h:484
const char * name() const
Return the file's name.
Definition: parsev2.h:72
'option exception_on_schema_mismatch' directive line
Definition: parsev2.h:443
'include' directive line
Definition: parsev2.h:300
AccessorStyleOption(const std::string &value, const File &file)
Constructor.
Definition: parsev2.h:407
TIME.
Definition: parsev2.h:256
A smart enum for converting SQL type strings to one of a relatively few types we directly support.
Definition: parsev2.h:229
Exception object thrown by File::error() to report an SSQLS v2 parsing error.
Definition: parsev2.h:547
Type(const std::string &s)
Constructor.
Definition: parsev2.cpp:251
const char * file_name() const
Get name of file where error occurred.
Definition: parsev2.h:567
LineListIt end() const
Get an iterator pointing to just past the end of the sub-parse's LineList.
Definition: parsev2.h:322
~Include()
Destructor.
Definition: parsev2.h:314
const char * extension() const
Return the extension used for C++ implementation files we emit.
Definition: parsev2.h:495
LineListIt begin() const
Get an iterator pointing to the start of the.
Definition: parsev2.h:318
static Line * parse(const StringList &tl, bool subdirective, const File &file)
Virtual ctor, creating one of our subclass objects based on what we're passed.
Definition: parsev2.cpp:485
virtual ~Line()
Virtual dtor, since this is a base class.
Definition: parsev2.h:140
void print(std::ostream &os) const
Print the option description out to a stream in SSQLS v2 form.
Definition: parsev2.cpp:452
static bool parse_bool(const std::string &value)
Convert a string expressing a boolean value to a bool.
Definition: parsev2.cpp:575
std::vector< Line * > LineList
A list of pointers to Line objects.
Definition: parsev2.h:167
void print(std::ostream &os) const
Print type description out to a stream in SSQLS v2 form.
Definition: parsev2.cpp:305
Exception object thrown to indicate a file I/O error.
Definition: parsev2.h:535
bool operator==(const Type &rhs) const
Equality operator.
Definition: parsev2.h:282
ExceptionOnSchemaMismatchOption(const std::string &value)
Constructor.
Definition: parsev2.h:447
Base class for parsed SSQLS v2 declaration lines.
Definition: parsev2.h:136
'option accessor_style' directive line
Definition: parsev2.h:403
void print(std::ostream &os) const
Print the option description out to a stream in SSQLS v2 form.
Definition: parsev2.cpp:459
'field' directive line
Definition: parsev2.h:176
void parse_error(const std::ostringstream &msg) const
Definition: parsev2.h:79
static Option * parse(const StringList &tl, bool subdirective, const File &file)
Attempt to create an Option object from information in the passed StringList.
Definition: parsev2.cpp:536
Type(Value v)
Copy constructor.
Definition: parsev2.h:269
Include(const char *file_name)
Given the name of another SSQLS v2 file, load it up and parse it. Its contents will appear transparen...
Definition: parsev2.h:308
~ParseV2()
Destructor.
Definition: parsev2.h:591
~ParseException()
Destructor.
Definition: parsev2.h:564
void error(const std::ostringstream &msg) const
Definition: parsev2.h:68
void print(std::ostream &os) const
Print the option description out to a stream in SSQLS v2 form.
Definition: parsev2.cpp:122
'option header_extension' directive line
Definition: parsev2.h:466
FileException(const std::string &what)
Constructor.
Definition: parsev2.h:542
DOUBLE, DECIMAL, FIXED, NUMERIC.
Definition: parsev2.h:251
INT, MEDIUMINT, INT3, INT4.
Definition: parsev2.h:248
static Include * parse(const StringList &tl, bool subdirective, const File &file)
Attempt to create an Include object from information in the passed StringList.
Definition: parsev2.cpp:466
Line()
Protected ctor, to prevent instantiation.
Definition: parsev2.h:161
void parse_error(const std::string &msg) const
Throw a ParseException containing the given message and our stored info about the file name and curre...
Definition: parsev2.cpp:399
const char * value() const
Return the option's value in string form, unmodified from the original parse.
Definition: parsev2.h:395
Parses SSQLS v2 documents and holds the parse result.
Definition: parsev2.h:41
static Table * parse(const StringList &tl, bool subdirective, const File &file)
Attempt to create a Table object from information in the passed StringList.
Definition: parsev2.cpp:605
LineListIt begin() const
Get an iterator pointing to the start of our LineList.
Definition: parsev2.h:599
Holds information about an SSQLS v2 file we're parsing.
Definition: parsev2.h:57
BIGINT, INT8.
Definition: parsev2.h:249
ParseException(const std::string &what, const std::string &file_name, size_t line)
Constructor.
Definition: parsev2.h:555
const char * extension() const
Return the extension used for C++ headers we emit.
Definition: parsev2.h:476
Base class for known SSQLS v2 'option' directives.
Definition: parsev2.h:351
ParseV2(const char *file_name)
Constructor.
Definition: parsev2.cpp:52
std::vector< std::string > StringList
List of tokens as returned by boost::algorithm::split.
Definition: parsev2.h:45
StringList::const_iterator StringListIt
Iterator into a StringList.
Definition: parsev2.h:50
SMALLINT, INT2.
Definition: parsev2.h:247
DATE.
Definition: parsev2.h:254
void error(const std::string &msg) const
Throw a FileException containing the given message.
Definition: parsev2.cpp:392
static Field * parse(const StringList &tl, bool subdirective, const File &file)
Attempt to create a Field object from information in the passed StringList.
Definition: parsev2.cpp:170
virtual void print(std::ostream &os) const =0
Print line's contents out to a stream in SSQLS v2 form.
void print(std::ostream &os) const
Print the option description out to a stream in SSQLS v2 form.
Definition: parsev2.cpp:162
TINYINT, INT1, BOOL.
Definition: parsev2.h:246
void clear()
Dump our line list.
Definition: parsev2.h:605
size_t line() const
Get line number where error occurred.
Definition: parsev2.h:570
*CHAR, ENUM, *TEXT
Definition: parsev2.h:252
bool read_line(std::string &line, bool &subdirective)
Read a line in from a file.
Definition: parsev2.cpp:406
LineList::const_iterator LineListIt
Iterator into a LineList.
Definition: parsev2.h:173
File(const char *file_name)
Open a file for reading, using the search path to file the file if the direct path isn't readable.
Definition: parsev2.cpp:325
'table' directive line
Definition: parsev2.h:503
Option(const std::string &value)
Protected ctor, so we cannot be directly instantiated.
Definition: parsev2.h:371
void print(std::ostream &os) const
Print field description out to a stream in SSQLS v2 form.
Definition: parsev2.cpp:239
ImplementationExtensionOption(const std::string &value)
Constructor.
Definition: parsev2.h:488
void print(std::ostream &os) const
Print the table description out to a stream in SSQLS v2 form.
Definition: parsev2.cpp:645
DATETIME, TIMESTAMP.
Definition: parsev2.h:255
Table(const std::string &name, const std::string &alias, const std::string &filebase)
Constructor.
Definition: parsev2.cpp:595
*BLOB, VARBINARY
Definition: parsev2.h:253
mysql++-3.2.5/doc/html/refman/ssx/genv2_8h_source.html000755 000765 000024 00000017016 13515046515 023320 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++ SSQLS v2 Translator: genv2.h Source File
MySQL++ SSQLS v2 Translator  3.2.5
genv2.h
1 /***********************************************************************
2  ssx/genv2.h - Mechanism for generating SSQLS v2 DSL code from
3  an SSQLS v2 parse result. Implements ssqlsxlat -o flag.
4 
5  Copyright (c) 2009 by Warren Young. Others may also hold copyrights
6  on code in this file. See the CREDITS.txt file in the top directory
7  of the distribution for details.
8 
9  This file is part of MySQL++.
10 
11  MySQL++ is free software; you can redistribute it and/or modify it
12  under the terms of the GNU Lesser General Public License as published
13  by the Free Software Foundation; either version 2.1 of the License, or
14  (at your option) any later version.
15 
16  MySQL++ is distributed in the hope that it will be useful, but WITHOUT
17  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
19  License for more details.
20 
21  You should have received a copy of the GNU Lesser General Public
22  License along with MySQL++; if not, write to the Free Software
23  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
24  USA
25 ***********************************************************************/
26 
27 #if !defined(MYSQLPP_SSX_GENV2_H)
28 #define MYSQLPP_SSX_GENV2_H
29 
30 class ParseV2;
31 extern bool generate_ssqls2(const char* file_name, const ParseV2* pparse);
32 
33 #endif // !defined(MYSQLPP_SSX_GENV2_H)
Parses SSQLS v2 documents and holds the parse result.
Definition: parsev2.h:41
mysql++-3.2.5/doc/html/refman/ssx/classParseV2_1_1FileException.html000755 000765 000024 00000014305 13515046515 025745 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++ SSQLS v2 Translator: ParseV2::FileException Class Reference
MySQL++ SSQLS v2 Translator  3.2.5
ParseV2::FileException Class Reference

Exception object thrown to indicate a file I/O error. More...

#include <parsev2.h>

Inheritance diagram for ParseV2::FileException:
Collaboration diagram for ParseV2::FileException:

Public Member Functions

 FileException (const std::string &what)
 Constructor. More...
 

Detailed Description

Exception object thrown to indicate a file I/O error.

Exception types

Constructor & Destructor Documentation

◆ FileException()

ParseV2::FileException::FileException ( const std::string &  what)
inline

Constructor.

Parameters
whatdescription of what went wrong reading the SSQLS v2 file

The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/ssx/graph_legend.html000755 000765 000024 00000012425 13515046515 022736 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++ SSQLS v2 Translator: Graph Legend
MySQL++ SSQLS v2 Translator  3.2.5
Graph Legend

This page explains how to interpret the graphs that are generated by doxygen.

Consider the following example:

/*! Invisible class because of truncation */
class Invisible { };
/*! Truncated class, inheritance relation is hidden */
class Truncated : public Invisible { };
/* Class not documented with doxygen comments */
class Undocumented { };
/*! Class that is inherited using public inheritance */
class PublicBase : public Truncated { };
/*! A template class */
template<class T> class Templ { };
/*! Class that is inherited using protected inheritance */
class ProtectedBase { };
/*! Class that is inherited using private inheritance */
class PrivateBase { };
/*! Class that is used by the Inherited class */
class Used { };
/*! Super class that inherits a number of other classes */
class Inherited : public PublicBase,
protected ProtectedBase,
private PrivateBase,
public Undocumented,
public Templ<int>
{
private:
Used *m_usedClass;
};

This will result in the following graph:

The boxes in the above graph have the following meaning:

  • A filled gray box represents the struct or class for which the graph is generated.
  • A box with a black border denotes a documented struct or class.
  • A box with a gray border denotes an undocumented struct or class.
  • A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries.

The arrows have the following meaning:

  • A dark blue arrow is used to visualize a public inheritance relation between two classes.
  • A dark green arrow is used for protected inheritance.
  • A dark red arrow is used for private inheritance.
  • A purple dashed arrow is used if a class is contained or used by another class. The arrow is labelled with the variable(s) through which the pointed class or struct is accessible.
  • A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labelled with the template parameters of the instance.
mysql++-3.2.5/doc/html/refman/ssx/classParseV2_1_1ExceptionOnSchemaMismatchOption.html000755 000765 000024 00000040770 13515046515 031447 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++ SSQLS v2 Translator: ParseV2::ExceptionOnSchemaMismatchOption Class Reference
MySQL++ SSQLS v2 Translator  3.2.5
ParseV2::ExceptionOnSchemaMismatchOption Class Reference

'option exception_on_schema_mismatch' directive line More...

#include <parsev2.h>

Inheritance diagram for ParseV2::ExceptionOnSchemaMismatchOption:
Collaboration diagram for ParseV2::ExceptionOnSchemaMismatchOption:

Public Member Functions

 ExceptionOnSchemaMismatchOption (const std::string &value)
 Constructor.
 
 operator bool () const
 Return true if our emitted C++ code is supposed to throw an exception on schema mismatches.
 
void print (std::ostream &os) const
 Print the option description out to a stream in SSQLS v2 form.
 
- Public Member Functions inherited from ParseV2::Option
virtual ~Option ()
 Virtual dtor, since this is a base class.
 
- Public Member Functions inherited from ParseV2::Line
virtual ~Line ()
 Virtual dtor, since this is a base class.
 

Additional Inherited Members

- Static Public Member Functions inherited from ParseV2::Option
static Optionparse (const StringList &tl, bool subdirective, const File &file)
 Attempt to create an Option object from information in the passed StringList. More...
 
- Static Public Member Functions inherited from ParseV2::Line
static Lineparse (const StringList &tl, bool subdirective, const File &file)
 Virtual ctor, creating one of our subclass objects based on what we're passed. More...
 
- Protected Member Functions inherited from ParseV2::Option
 Option (const std::string &value)
 Protected ctor, so we cannot be directly instantiated. More...
 
const char * value () const
 Return the option's value in string form, unmodified from the original parse. More...
 
- Protected Member Functions inherited from ParseV2::Line
 Line ()
 Protected ctor, to prevent instantiation.
 
- Static Protected Member Functions inherited from ParseV2::Option
static bool parse_bool (const std::string &value)
 Convert a string expressing a boolean value to a bool. More...
 

Detailed Description

'option exception_on_schema_mismatch' directive line


The documentation for this class was generated from the following files:
mysql++-3.2.5/doc/html/refman/ssx/classParseV2_1_1ParseException.html000755 000765 000024 00000022326 13515046515 026142 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++ SSQLS v2 Translator: ParseV2::ParseException Class Reference
MySQL++ SSQLS v2 Translator  3.2.5
ParseV2::ParseException Class Reference

Exception object thrown by File::error() to report an SSQLS v2 parsing error. More...

#include <parsev2.h>

Inheritance diagram for ParseV2::ParseException:
Collaboration diagram for ParseV2::ParseException:

Public Member Functions

 ParseException (const std::string &what, const std::string &file_name, size_t line)
 Constructor. More...
 
 ~ParseException () throw ()
 Destructor.
 
const char * file_name () const
 Get name of file where error occurred.
 
size_t line () const
 Get line number where error occurred.
 

Detailed Description

Exception object thrown by File::error() to report an SSQLS v2 parsing error.

Constructor & Destructor Documentation

◆ ParseException()

ParseV2::ParseException::ParseException ( const std::string &  what,
const std::string &  file_name,
size_t  line 
)
inline

Constructor.

Parameters
whatdescription of what went wrong parsing the line
file_namename of source file where error occurred
lineline number in source file where error occurred

The documentation for this class was generated from the following file:
mysql++-3.2.5/doc/html/refman/ssx/classParseV2_1_1AccessorStyleOption.html000755 000765 000024 00000037177 13515046515 027177 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++ SSQLS v2 Translator: ParseV2::AccessorStyleOption Class Reference
MySQL++ SSQLS v2 Translator  3.2.5
ParseV2::AccessorStyleOption Class Reference

'option accessor_style' directive line More...

#include <parsev2.h>

Inheritance diagram for ParseV2::AccessorStyleOption:
Collaboration diagram for ParseV2::AccessorStyleOption:

Public Member Functions

 AccessorStyleOption (const std::string &value, const File &file)
 Constructor.
 
void print (std::ostream &os) const
 Print the option description out to a stream in SSQLS v2 form.
 
- Public Member Functions inherited from ParseV2::Option
virtual ~Option ()
 Virtual dtor, since this is a base class.
 
- Public Member Functions inherited from ParseV2::Line
virtual ~Line ()
 Virtual dtor, since this is a base class.
 

Additional Inherited Members

- Static Public Member Functions inherited from ParseV2::Option
static Optionparse (const StringList &tl, bool subdirective, const File &file)
 Attempt to create an Option object from information in the passed StringList. More...
 
- Static Public Member Functions inherited from ParseV2::Line
static Lineparse (const StringList &tl, bool subdirective, const File &file)
 Virtual ctor, creating one of our subclass objects based on what we're passed. More...
 
- Protected Member Functions inherited from ParseV2::Option
 Option (const std::string &value)
 Protected ctor, so we cannot be directly instantiated. More...
 
const char * value () const
 Return the option's value in string form, unmodified from the original parse. More...
 
- Protected Member Functions inherited from ParseV2::Line
 Line ()
 Protected ctor, to prevent instantiation.
 
- Static Protected Member Functions inherited from ParseV2::Option
static bool parse_bool (const std::string &value)
 Convert a string expressing a boolean value to a bool. More...
 

Detailed Description

'option accessor_style' directive line


The documentation for this class was generated from the following files:
mysql++-3.2.5/doc/html/refman/ssx/classParseV2_1_1ExceptionOnSchemaMismatchOption-members.html000755 000765 000024 00000014130 13515046515 033066 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++ SSQLS v2 Translator: Member List
MySQL++ SSQLS v2 Translator  3.2.5
ParseV2::ExceptionOnSchemaMismatchOption Member List

This is the complete list of members for ParseV2::ExceptionOnSchemaMismatchOption, including all inherited members.

ExceptionOnSchemaMismatchOption(const std::string &value)ParseV2::ExceptionOnSchemaMismatchOptioninline
Line()ParseV2::Lineinlineprotected
operator bool() constParseV2::ExceptionOnSchemaMismatchOptioninline
Option(const std::string &value)ParseV2::Optioninlineprotected
parse(const StringList &tl, bool subdirective, const File &file)ParseV2::Optionstatic
parse_bool(const std::string &value)ParseV2::Optionprotectedstatic
print(std::ostream &os) constParseV2::ExceptionOnSchemaMismatchOptionvirtual
value() constParseV2::Optioninlineprotected
~Line()ParseV2::Lineinlinevirtual
~Option()ParseV2::Optioninlinevirtual
mysql++-3.2.5/doc/html/refman/ssx/classes.html000755 000765 000024 00000015350 13515046515 021754 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++ SSQLS v2 Translator: Class Index
MySQL++ SSQLS v2 Translator  3.2.5
Class Index
a | e | f | h | i | l | o | p | t
  a  
ParseV2::File   ParseV2::Include   
  p  
ParseV2::Field::Type   
ParseV2::FileException   
  l  
ParseV2::AccessorStyleOption   
  h  
ParseV2::ParseException   
  e  
ParseV2::Line   ParseV2   
ParseV2::HeaderExtensionOption   
  o  
  t  
ParseV2::ExceptionOnSchemaMismatchOption   
  i  
  f  
ParseV2::Option   ParseV2::Table   
ParseV2::ImplementationExtensionOption   
ParseV2::Field   
a | e | f | h | i | l | o | p | t
mysql++-3.2.5/doc/html/refman/ssx/classParseV2_1_1Line.html000755 000765 000024 00000026103 13515046515 024075 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++ SSQLS v2 Translator: ParseV2::Line Class Reference
MySQL++ SSQLS v2 Translator  3.2.5

Base class for parsed SSQLS v2 declaration lines. More...

#include <parsev2.h>

Inheritance diagram for ParseV2::Line:

Public Member Functions

virtual ~Line ()
 Virtual dtor, since this is a base class.
 
virtual void print (std::ostream &os) const =0
 Print line's contents out to a stream in SSQLS v2 form.
 

Static Public Member Functions

static Lineparse (const StringList &tl, bool subdirective, const File &file)
 Virtual ctor, creating one of our subclass objects based on what we're passed. More...
 

Protected Member Functions

 Line ()
 Protected ctor, to prevent instantiation.
 

Detailed Description

Base class for parsed SSQLS v2 declaration lines.

Types of parsed lines, and related stuff

Member Function Documentation

◆ parse()

ParseV2::Line * ParseV2::Line::parse ( const StringList tl,
bool  subdirective,
const File file 
)
static

Virtual ctor, creating one of our subclass objects based on what we're passed.

Parameters
tllist of tokens found on a line in an SSQLS v2 file
subdirectivetrue if there was leading whitespace on that line, which changes how we interpret tl
fileinformation about the file we're currently parsing
Returns
Line object pointer if line was successfully parsed, else 0

References ParseV2::Field::parse(), ParseV2::Include::parse(), ParseV2::Option::parse(), ParseV2::Table::parse(), and ParseV2::File::parse_error().

Referenced by ParseV2::ParseV2().


The documentation for this class was generated from the following files:
mysql++-3.2.5/doc/html/refman/ssx/classParseV2_1_1Table.html000755 000765 000024 00000034457 13515046515 024250 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++ SSQLS v2 Translator: ParseV2::Table Class Reference
MySQL++ SSQLS v2 Translator  3.2.5

'table' directive line More...

#include <parsev2.h>

Inheritance diagram for ParseV2::Table:
Collaboration diagram for ParseV2::Table:

Public Member Functions

 Table (const std::string &name, const std::string &alias, const std::string &filebase)
 Constructor. More...
 
void print (std::ostream &os) const
 Print the table description out to a stream in SSQLS v2 form.
 
- Public Member Functions inherited from ParseV2::Line
virtual ~Line ()
 Virtual dtor, since this is a base class.
 

Static Public Member Functions

static Tableparse (const StringList &tl, bool subdirective, const File &file)
 Attempt to create a Table object from information in the passed StringList. More...
 
- Static Public Member Functions inherited from ParseV2::Line
static Lineparse (const StringList &tl, bool subdirective, const File &file)
 Virtual ctor, creating one of our subclass objects based on what we're passed. More...
 

Additional Inherited Members

- Protected Member Functions inherited from ParseV2::Line
 Line ()
 Protected ctor, to prevent instantiation.
 

Detailed Description

'table' directive line

Constructor & Destructor Documentation

◆ Table()

ParseV2::Table::Table ( const std::string &  name,
const std::string &  alias,
const std::string &  filebase 
)

Constructor.

Parameters
namethe table's SQL name
aliasthe table's C++ name; defaults to name
filebasethe base name used for generated C++ code files; defaults to name

Member Function Documentation

◆ parse()

ParseV2::Table * ParseV2::Table::parse ( const StringList tl,
bool  subdirective,
const File file 
)
static

Attempt to create a Table object from information in the passed StringList.

A kind of pre-processor for the Table ctor, creating a Table object only if the given StringList makes sense, using the values we find in that StringList as parameters to the Table ctor.

References ParseV2::File::parse_error().

Referenced by ParseV2::Line::parse().


The documentation for this class was generated from the following files:
mysql++-3.2.5/doc/html/refman/ssx/classParseV2_1_1Field-members.html000755 000765 000024 00000010373 13515046515 025663 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++ SSQLS v2 Translator: Member List
MySQL++ SSQLS v2 Translator  3.2.5
ParseV2::Field Member List

This is the complete list of members for ParseV2::Field, including all inherited members.

Field(const std::string &name, const std::string &type, bool is_unsigned=false, bool is_null=false, bool is_autoinc=false, bool is_key=false, const std::string &alias=0)ParseV2::Fieldinline
Line()ParseV2::Lineinlineprotected
parse(const StringList &tl, bool subdirective, const File &file)ParseV2::Fieldstatic
print(std::ostream &os) constParseV2::Fieldvirtual
~Line()ParseV2::Lineinlinevirtual
mysql++-3.2.5/doc/html/refman/ssx/functions_type.html000755 000765 000024 00000004755 13515046515 023377 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++ SSQLS v2 Translator: Class Members - Typedefs
MySQL++ SSQLS v2 Translator  3.2.5
 
mysql++-3.2.5/doc/html/refman/ssx/classParseV2-members.html000755 000765 000024 00000010751 13515046515 024257 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++ SSQLS v2 Translator: Member List
MySQL++ SSQLS v2 Translator  3.2.5
ParseV2 Member List

This is the complete list of members for ParseV2, including all inherited members.

begin() constParseV2inline
clear()ParseV2inline
end() constParseV2inline
LineList typedefParseV2
LineListIt typedefParseV2
ParseV2(const char *file_name)ParseV2
StringList typedefParseV2
StringListIt typedefParseV2
~ParseV2()ParseV2inline
mysql++-3.2.5/doc/html/refman/ssx/functions_eval.html000755 000765 000024 00000010065 13515046515 023334 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++ SSQLS v2 Translator: Class Members - Enumerator
MySQL++ SSQLS v2 Translator  3.2.5
mysql++-3.2.5/doc/html/refman/ssx/inherits.html000755 000765 000024 00000012414 13515046515 022142 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++ SSQLS v2 Translator: Class Hierarchy
MySQL++ SSQLS v2 Translator  3.2.5
Class Hierarchy
mysql++-3.2.5/doc/html/refman/ssx/classParseV2_1_1File.html000755 000765 000024 00000026246 13515046515 024075 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++ SSQLS v2 Translator: ParseV2::File Class Reference
MySQL++ SSQLS v2 Translator  3.2.5
ParseV2::File Class Reference

Holds information about an SSQLS v2 file we're parsing. More...

#include <parsev2.h>

Public Member Functions

 File (const char *file_name)
 Open a file for reading, using the search path to file the file if the direct path isn't readable.
 
void error (const std::string &msg) const
 Throw a FileException containing the given message.
 
void error (const std::ostringstream &msg) const
 
const char * name () const
 Return the file's name.
 
void parse_error (const std::string &msg) const
 Throw a ParseException containing the given message and our stored info about the file name and current line.
 
void parse_error (const std::ostringstream &msg) const
 
bool read_line (std::string &line, bool &subdirective)
 Read a line in from a file. More...
 

Detailed Description

Holds information about an SSQLS v2 file we're parsing.

This class exists simply because there's so much file-related processing in the parser, and it's confusing to have it scattered about.

Member Function Documentation

◆ error()

void ParseV2::File::error ( const std::ostringstream &  msg) const
inline
See also
error(const std::string&)

References error().

◆ parse_error()

void ParseV2::File::parse_error ( const std::ostringstream &  msg) const
inline
See also
parse_error(const std::string&)

References error().

◆ read_line()

bool ParseV2::File::read_line ( std::string &  line,
bool &  subdirective 
)

Read a line in from a file.

We read the line from our internal file object, trimming any trailing comment. Does not trim whitespace; we depend on ParseV2::tokenize() to cope with that. Sets subdirective flag if we see leading whitespace before we trim it away, as indented lines are interpreted differently by File's users.

Returns
false if our internal file object is in an error condition on entering or exiting this function.

Referenced by ParseV2::ParseV2().


The documentation for this class was generated from the following files:
mysql++-3.2.5/doc/html/refman/ssx/classParseV2_1_1Field_1_1Type-members.html000755 000765 000024 00000020165 13515046515 027165 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++ SSQLS v2 Translator: Member List
MySQL++ SSQLS v2 Translator  3.2.5
ParseV2::Field::Type Member List
mysql++-3.2.5/doc/html/refman/ssx/classParseV2_1_1Include.html000755 000765 000024 00000036245 13515046515 024601 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++ SSQLS v2 Translator: ParseV2::Include Class Reference
MySQL++ SSQLS v2 Translator  3.2.5

'include' directive line More...

#include <parsev2.h>

Inheritance diagram for ParseV2::Include:
Collaboration diagram for ParseV2::Include:

Public Member Functions

 Include (const char *file_name)
 Given the name of another SSQLS v2 file, load it up and parse it. Its contents will appear transparently as part of the overall parse result. More...
 
 ~Include ()
 Destructor.
 
LineListIt begin () const
 Get an iterator pointing to the start of the.
 
LineListIt end () const
 Get an iterator pointing to just past the end of the sub-parse's LineList.
 
- Public Member Functions inherited from ParseV2::Line
virtual ~Line ()
 Virtual dtor, since this is a base class.
 

Static Public Member Functions

static Includeparse (const StringList &tl, bool subdirective, const File &file)
 Attempt to create an Include object from information in the passed StringList. More...
 
- Static Public Member Functions inherited from ParseV2::Line
static Lineparse (const StringList &tl, bool subdirective, const File &file)
 Virtual ctor, creating one of our subclass objects based on what we're passed. More...
 

Additional Inherited Members

- Protected Member Functions inherited from ParseV2::Line
 Line ()
 Protected ctor, to prevent instantiation.
 

Detailed Description

'include' directive line

Constructor & Destructor Documentation

◆ Include()

ParseV2::Include::Include ( const char *  file_name)
inline

Given the name of another SSQLS v2 file, load it up and parse it. Its contents will appear transparently as part of the overall parse result.

Parameters
file_namename of other SSQLS v2 file to parse

Member Function Documentation

◆ parse()

ParseV2::Include * ParseV2::Include::parse ( const StringList tl,
bool  subdirective,
const File file 
)
static

Attempt to create an Include object from information in the passed StringList.

A kind of pre-processor for the Include ctor, creating one of those objects only if the given StringList makes sense, using the values we find in that StringList as parameters to the ctor.

References ParseV2::File::parse_error().

Referenced by ParseV2::Line::parse().


The documentation for this class was generated from the following files:
mysql++-3.2.5/doc/html/refman/ssx/classParseV2_1_1ImplementationExtensionOption-members.html000755 000765 000024 00000014066 13515046515 032716 0ustar00tangentstaff000000 000000 MySQL++ Reference Manual MySQL++ SSQLS v2 Translator: Member List
MySQL++ SSQLS v2 Translator  3.2.5
ParseV2::ImplementationExtensionOption Member List

This is the complete list of members for ParseV2::ImplementationExtensionOption, including all inherited members.

extension() constParseV2::ImplementationExtensionOptioninline
ImplementationExtensionOption(const std::string &value)ParseV2::ImplementationExtensionOptioninline
Line()ParseV2::Lineinlineprotected
Option(const std::string &value)ParseV2::Optioninlineprotected
parse(const StringList &tl, bool subdirective, const File &file)ParseV2::Optionstatic
parse_bool(const std::string &value)ParseV2::Optionprotectedstatic
print(std::ostream &os) constParseV2::ImplementationExtensionOptionvirtual
value() constParseV2::Optioninlineprotected
~Line()ParseV2::Lineinlinevirtual
~Option()ParseV2::Optioninlinevirtual
mysql++-3.2.5/doc/html/userman/tangentsoft.css000755 000765 000024 00000002400 13515046514 022053 0ustar00tangentstaff000000 000000 BODY { background-color: #FFFFEE; font-family: "Georgia", "Luxi Serif", "New Century Schoolbook", "Times New Roman", "Times", serif; margin-left: 30pt; margin-right: 30pt; } a:link { color: #491E00; } a:visited { color: #7D2E01; } a:hover { color: #CC5500; text-decoration: none; } a:active { color: #DA7417; } DIV.footnote > P { font-size: 85%; } EM.phrase { /* Georgia's great, but oldstyle numerals make math hard to read */ font-family: "Times", "Times New Roman", serif; } H1, H2, H3, H4, H5, H6, DIV.navheader > TABLE > TBODY > TR > TH { color: #501000; font-family: "Verdana", "Luxi Sans", "Helvetica Narrow", "Arial", "Univers", sans-serif; font-weight: bold; } H1 { font-size: 20pt; } H2 { font-size: 18pt; } H3 { font-size: 14pt; } H4 { font-size: 10pt; } H4.subtitle { margin-left: 20pt; } H5 { font-size: 10pt; margin-left: 20pt; } P { line-height: 140%; margin-left: 20pt; } div.sect3 { margin-left: 20pt; } li { margin-left: 30pt; } li p { margin-left: 0pt; } pre.programlisting, pre.screen { border: 1px solid #882200; margin: 10pt; margin-left: 40pt; padding: 10pt; background-color: #FFFFCC; } .type { font-family: monospace; } .symbol { font-family: monospace; } mysql++-3.2.5/doc/html/userman/tutorial.html000755 000765 000024 00000334435 13515046514 021556 0ustar00tangentstaff000000 000000 3. Tutorial

3. Tutorial

The previous chapter introduced the major top-level mechanisms in MySQL++. Now we’ll dig down a little deeper and get into real examples. We start off with the basics that every MySQL++ program will have to deal with, then work up to more complex topics that are still widely interesting. You can stop reading the manual after this chapter and still get a lot out of MySQL++, ignoring the more advanced parts we present in later chapters.

3.1. Running the Examples

All of the examples are complete running programs. If you built the library from source, the examples should have been built as well. If you use RPMs instead, the example programs’ source code and a simplified Makefile are in the mysql++-devel package. They are typically installed in /usr/share/doc/mysql++-devel-*/examples, but it can vary on different Linuxes.

Before you get started, please read through any of the README*.txt files included with the MySQL++ distribution that are relevant to your platform. We won’t repeat all of that here.

Most of the examples require a test database, created by resetdb. You can run it like so:

resetdb [-s server_addr] [-u user] [-p password]

Actually, there’s a problem with that. It assumes that the MySQL++ library is already installed in a directory that the operating system’s dynamic linker can find. (MySQL++ is almost never built statically.) Unless you’re installing from RPMs, you’ve had to build the library from source, and you should run at least a few of the examples before installing the library to be sure it’s working correctly. Since your operating system’s dynamic linkage system can’t find the MySQL++ libraries without help until they’re installed, we’ve created a few helper scripts to help run the examples.

MySQL++ comes with the exrun shell script for Unixy systems, and the exrun.bat batch file for Windows. You pass the example program and its arguments to the exrun helper, which sets up the library search path so that it will use the as-yet uninstalled version of the MySQL++ library in preference to any other on your system:

./exrun resetdb [-s server_addr] [-u user] [-p password]

That’s the typical form for a Unixy system. You leave off the ./ bit on Windows. You can leave it off on a Unixy system, too, if you have . in your PATH. (Not a recommendation, just an observation.)

All of the program arguments are optional.

If you don’t give -s, the underlying MySQL C API (a.k.a. Connector/C) assumes the server is on the local machine. It chooses one of several different IPC options based on the platform configuration. There are many different forms you can give as server_addr with -s to override this default behavior:

  • localhost — this is the default; it doesn’t buy you anything

  • On Windows, a simple period tells the underlying MySQL C API to use named pipes, if it’s available.

  • 172.20.0.252:12345 — this would connect to IP address 172.20.0.252 on TCP port 12345.

  • my.server.name:svc_name — this would first look up TCP service name svc_name in your system’s network services database (/etc/services on Unixy systems, and something like c:\windows\system32\drivers\etc\services on modern Windows variants). If it finds an entry for the service, it then tries to connect to that port on the domain name given.

For the TCP forms, you can mix names and numbers for the host and port/service parts in any combination. If the server name doesn’t contain a colon, it uses the default port, 3306.

If you don’t give -u, it assumes your user name on the database server is the same as your login name on the local machine.

If you don’t give -p, it will assume the MySQL user doesn’t have a password. (One hopes this isn’t the case...)

When running resetdb, the user name needs to be for an account with permission to create the test database. Once the database is created, you can use any account when running the other examples that has DELETE, INSERT, SELECT and UPDATE permissions for the test database. The MySQL root user can do all this, of course, but you might want to set up a separate user, having only the permissions necessary to work with the test database:

CREATE USER mysqlpp_test@'%' IDENTIFIED BY ’nunyabinness';
GRANT ALL PRIVILEGES ON mysql_cpp_data.* TO mysqlpp_test@'%';

You could then create the sample database with the following command:

./exrun resetdb -u mysqlpp_test -p nunyabinness

(Again, leave off the ./ bit on Windows.)

You may have to re-run resetdb after running some of the other examples, as they change the database.

See README-examples.txt for more details on running the examples.

3.2. A Simple Example

The following example demonstrates how to open a connection, execute a simple query, and display the results. This is examples/simple1.cpp:

#include "cmdline.h"
#include "printdata.h"

#include <mysql++.h>

#include <iostream>
#include <iomanip>

using namespace std;

int
main(int argc, char *argv[])
{
    // Get database access parameters from command line
    mysqlpp::examples::CommandLine cmdline(argc, argv);
    if (!cmdline) {
        return 1;
    }

    // Connect to the sample database.
    mysqlpp::Connection conn(false);
    if (conn.connect(mysqlpp::examples::db_name, cmdline.server(),
            cmdline.user(), cmdline.pass())) {
        // Retrieve a subset of the sample stock table set up by resetdb
        // and display it.
        mysqlpp::Query query = conn.query("select item from stock");
        if (mysqlpp::StoreQueryResult res = query.store()) {
            cout << "We have:" << endl;
            mysqlpp::StoreQueryResult::const_iterator it;
            for (it = res.begin(); it != res.end(); ++it) {
                mysqlpp::Row row = *it;
                cout << '\t' << row[0] << endl;
            }
        }
        else {
            cerr << "Failed to get item list: " << query.error() << endl;
            return 1;
        }

        return 0;
    }
    else {
        cerr << "DB connection failed: " << conn.error() << endl;
        return 1;
    }
}

This example simply gets the entire "item" column from the example table, and prints those values out.

Notice that MySQL++’s StoreQueryResult derives from std::vector, and Row provides an interface that makes it a vector work-alike. This means you can access elements with subscript notation, walk through them with iterators, run STL algorithms on them, etc.

Row provides a little more in this area than a plain old vector: you can also access fields by name using subscript notation.

The only thing that isn’t explicit in the code above is that we delegate command line argument parsing to parse_command_line() in the excommon module. This function exists to give the examples a consistent interface, not to hide important details. You can treat it like a black box: it takes argc and argv as inputs and sends back database connection parameters.

3.3. A More Complicated Example

The simple1 example above was pretty trivial. Let’s get a little deeper. Here is examples/simple2.cpp:

#include "cmdline.h"
#include "printdata.h"

#include <mysql++.h>

#include <iostream>
#include <iomanip>

using namespace std;

int
main(int argc, char *argv[])
{
    // Get database access parameters from command line
    mysqlpp::examples::CommandLine cmdline(argc, argv);
    if (!cmdline) {
        return 1;
    }

    // Connect to the sample database.
    mysqlpp::Connection conn(false);
    if (conn.connect(mysqlpp::examples::db_name, cmdline.server(),
            cmdline.user(), cmdline.pass())) {
        // Retrieve the sample stock table set up by resetdb
        mysqlpp::Query query = conn.query("select * from stock");
        mysqlpp::StoreQueryResult res = query.store();

        // Display results
        if (res) {
            // Display header
            cout.setf(ios::left);
            cout << setw(31) << "Item" <<
                    setw(10) << "Num" <<
                    setw(10) << "Weight" <<
                    setw(10) << "Price" <<
                    "Date" << endl << endl;

            // Get each row in result set, and print its contents
            for (size_t i = 0; i < res.num_rows(); ++i) {
                cout << setw(30) << res[i]["item"] << ' ' <<
                        setw(9) << res[i]["num"] << ' ' <<
                        setw(9) << res[i]["weight"] << ' ' <<
                        setw(9) << res[i]["price"] << ' ' <<
                        setw(9) << res[i]["sdate"] <<
                        endl;
            }
        }
        else {
            cerr << "Failed to get stock table: " << query.error() << endl;
            return 1;
        }

        return 0;
    }
    else {
        cerr << "DB connection failed: " << conn.error() << endl;
        return 1;
    }
}

The main point of this example is that we’re accessing fields in the row objects by name, instead of index. This is slower, but obviously clearer. We’re also printing out the entire table, not just one column.

3.4. Exceptions

By default, MySQL++ uses exceptions to signal errors. We’ve been suppressing this in all the examples so far by passing false to Connection’s constructor. This kept these early examples simple at the cost of some flexibility and power in error handling. In a real program, we recommend that you leave exceptions enabled. You do this by either using the default Connection constructor, or by using the create-and-connect constructor.

All of MySQL++’s custom exceptions derive from a common base class, Exception. That in turn derives from Standard C++’s std::exception class. Since the library can indirectly cause exceptions to come from the Standard C++ Library, it’s possible to catch all exceptions from MySQL++ by just catching std::exception. However, it’s better to have individual catch blocks for each of the concrete exception types that you expect, and add a handler for either Exception or std::exception to act as a “catch-all” for unexpected exceptions.

When exceptions are suppressed, MySQL++ signals errors by returning either an error code or an object that tests as false, or by setting an error flag on the object. Classes that allow you to suppress exceptions derive from the OptionalExceptions interface. When an OptionalExceptions derivative creates another object that also derives from this interface, it passes on its exception flag. Since everything flows from the Connection object, disabling exceptions on it at the start of the program disables all optional exceptions. This is why passing false for the Connection constructor’s “throw exceptions” parameter suppresses all optional exceptions in the simple[1-3] examples. It keeps them, well, simple.

This exception suppression mechanism is quite granular. It’s possible to leave exceptions enabled most of the time, but suppress them in sections of the code where they aren’t helpful. To do this, put the section of code that you want to not throw exceptions inside a block, and create a NoExceptions object at the top of that block. When created, it saves the exception flag of the OptionalExceptions derivative you pass to it, and then disables exceptions on it. When the NoExceptions object goes out of scope at the end of the block, it restores the exceptions flag to its previous state:

mysqlpp::Connection con; // default ctor, so exceptions enabled

{
  mysqlpp::NoExceptions ne(con);
  if (!con.select_db("a_db_that_might_not_exist_yet")) {
    // Our DB doesn’t exist yet, so create and select it here; no need
    // to push handling of this case way off in an exception handler.
  }
}

When one OptionalExceptions derivative passes its exceptions flag to another such object, it is only passing a copy; the two objects’ flags operate independently. There’s no way to globally enable or disable this flag on existing objects in a single call. If you’re using the NoExceptions feature and you’re still seeing optional exceptions thrown, you disabled exceptions on the wrong object. The exception thrower could be unrelated to the object you disabled exceptions on, it could be its parent, or it could be a child created before you disabled optional exceptions.

MySQL++ throws some exceptions unconditionally:

  • MySQL++ checks array indices, always. For instance, if your code said “row[21]” on a row containing only 5 fields, you’d get a BadIndex exception. If you say “row["fred"]” on a row without a “fred” field, you get a BadFieldName exception. In the past, MySQL++ delegated some of its index checking to the STL containers underpinning it, so you could get std::range_error instead. As of MySQL++ v3.0.7, this should no longer happen, but there may be instances where it still does.

  • String will always throw BadConversion when you ask it to do an improper type conversion. For example, you’ll get an exception if you try to convert “1.25” to int, but not when you convert “1.00” to int. In the latter case, MySQL++ knows that it can safely throw away the fractional part.

  • If you use template queries and don’t pass enough parameters when instantiating the template, Query will throw a BadParamCount exception.

  • If you use a C++ data type in a query that MySQL++ doesn’t know to convert to SQL, MySQL++ will throw a TypeLookupFailed exception. It typically happens with Section 5, “Specialized SQL Structures”, especially when using data types other than the ones defined in lib/sql_types.h.

It’s educational to modify the examples to force exceptions. For instance, misspell a field name, use an out-of-range index, or change a type to force a String conversion error.

3.5. Quoting and Escaping

SQL syntax often requires certain data to be quoted. Consider this query:

SELECT * FROM stock WHERE item = 'Hotdog Buns' 

Because the string “Hotdog Buns” contains a space, it must be quoted. With MySQL++, you don’t have to add these quote marks manually:

string s = "Hotdog Buns";
query << "SELECT * FROM stock WHERE item = " << quote_only << s; 

That code produces the same query string as in the previous example. We used the MySQL++ quote_only manipulator, which causes single quotes to be added around the next item inserted into the stream. This works for any type of data that can be converted to MySQL++’s SQLTypeAdapter type, plus the Set template. SSQLS also uses these manipulators internally.

Quoting is pretty simple, but SQL syntax also often requires that certain characters be “escaped”. Imagine if the string in the previous example was “Frank’s Brand Hotdog Buns” instead. The resulting query would be:

SELECT * FROM stock WHERE item = 'Frank's Brand Hotdog Buns' 

That’s not valid SQL syntax. The correct syntax is:

SELECT * FROM stock WHERE item = 'Frank''s Brand Hotdog Buns' 

As you might expect, MySQL++ provides that feature, too, through its escape manipulator. But here, we want both quoting and escaping. That brings us to the most widely useful manipulator:

string s = "Frank’s Brand Hotdog Buns";
query << "SELECT * FROM stock WHERE item = " << quote << s; 

The quote manipulator both quotes strings and escapes any characters that are special in SQL.

MySQL++ provides other manipulators as well. See the manip.h page in the reference manual.

It’s important to realize that MySQL++’s quoting and escaping mechanism is type-aware. Manipulators have no effect unless you insert the manipulator into a Query or SQLQueryParms stream. [2] Also, values are only quoted and/or escaped if they are of a data type that may need it. For example, Date must be quoted but never needs to be escaped, and integer types need neither quoting nor escaping. Manipulators are suggestions to the library, not commands: MySQL++ will ignore these suggestions if it knows it won’t result in syntactically-incorrect SQL.

It’s also important to realize that quoting and escaping in Query streams and template queries is never implicit.[3] You must use manipulators and template query flags as necessary to tell MySQL++ where quoting and escaping is necessary. It would be nice if MySQL++ could do quoting and escaping implicitly based on data type, but this isn’t possible in all cases.[4] Since MySQL++ can’t reliably guess when quoting and escaping is appropriate, and the programmer doesn’t need to[5], MySQL++ makes you tell it.

3.6. C++ vs. SQL Data Types

The C++ and SQL data type systems have several differences that can cause problems when using MySQL++, or any other SQL based system, for that matter.

Most of the data types you can store in a SQL database are either numbers or text strings. If you’re only looking at the data going between the database server and your application, there aren’t even numbers: SQL is a textual language, so numbers and everything else gets transferred between the client and the database server in text string form.[6] Consequently, MySQL++ has a lot of special support for text strings, and can translate to several C++ numeric data types transparently.

Some people worry that this translation via an intermediate string form will cause data loss. Obviously the text string data types are immune from problems in this regard. We’re also confident that MySQL++ translates BLOB and integer data types losslessly.

The biggest worry is with floating-point numbers. (The FLOAT and DOUBLE SQL data types.) We did have a problem with this in older versions of MySQL++, but we believe we fixed it completely in v3.0.2. No one has since proven data loss via this path. There is still a known problem [7] with the SQL DECIMAL type, which is somewhat related to the floating-point issue, but it’s apparently rarely encountered, which is why it hasn’t been fixed yet.

The best way to avoid problems with data translation is to always use the special MySQL++ data types defined in lib/sql_types.h corresponding to your SQL schema. These typedefs begin with sql_ and end with a lowercase version of the standard SQL type name, with spaces replaced by underscores. There are variants ending in _null that wrap these base types so they’re compatible with SQL null. For instance, the SQL type TINYINT UNSIGNED NOT NULL is represented in MySQL++ by mysqlpp::sql_tinyint_unsigned. If you drop the NOT NULL part, the corresponding C++ type is mysqlpp::sql_tinyint_unsigned_null.

MySQL++ doesn’t force you to use these typedefs. It tries to be flexible with regard to data conversions, so you could probably use int anywhere you use mysqlpp::sql_tinyint_unsigned, for example. That said, the MySQL++ typedefs give several advantages:

  • Space efficiency: the MySQL++ types are no larger than necessary to hold the MySQL data.

  • Portability: if your program has to run on multiple different system types (even just 32- and 64-bit versions of the same operating system and processor type) using the MySQL++ typedefs insulates your code from platform changes.

  • Clarity: using C++ types named similarly to the SQL types reduces the risk of confusion when working with code in both languages at the same time.

  • Compatibility: using the MySQL++ types ensures that data conversions between SQL and C++ forms are compatible. Naïve use of plain old C++ types can result in data truncation, TypeLookupFailed exceptions, and worse.

    Type compatibility is important not just at the time you write your program, it also helps forward compatibility: we occasionally change the definitions of the MySQL++ typedefs to reduce the differences between the C++ and SQL type systems. We’ll be fixing the DECIMAL issue brought up above this way, for instance; if your program uses sql_decimal instead of the current underlying type, double, your program will pick up this improvement automatically with just a recompile.

Most of these typedefs use standard C++ data types, but a few are aliases for a MySQL++ specific type. For instance, the SQL type DATETIME is mirrored in MySQL++ by mysqlpp::DateTime. For consistency, sql_types.h includes a typedef alias for DateTime called mysqlpp::sql_datetime.

MySQL++ doesn’t have typedefs for the most exotic data types, like those for the geospatial types. Patches to correct this will be thoughtfully considered.

3.7. Handling SQL Nulls

Both C++ and SQL have things in them called NULL, but they differ in several ways. Consequently, MySQL++ has to provide special support for this, rather than just wrap native C++ facilities as it can with most data type issues.

SQL NULL is a type modifier

The primary distinction is one of type. In SQL, “NULL” is a type modifier, which affects whether you can legally store a null value in that column. There’s simply nothing like it in C++.

To emulate SQL NULL, MySQL++ provides the Null template to allow the creation of distinct “nullable” versions of existing C++ types. So for example, if you have a TINYINT UNSIGNED column that can have nulls, the proper declaration for MySQL++ would be:

mysqlpp::Null<mysqlpp::sql_tinyint_unsigned> myfield;

As of MySQL++ 3.1, we also provide shorter aliases for such types:

mysqlpp::sql_tinyint_unsigned_null myfield;

These types are declared in lib/sql_types.h. You might want to scan through that to see what all is available.

Template instantiations are first-class types in the C++ language, so there’s no possible confusion between this feature of MySQL++ and C++’s native NULL concept.

SQL NULL is a unique value

There’s a secondary distinction between SQL null and anything available in the standard C++ type system: SQL null is a distinct value, equal to nothing else. We can’t use C++’s NULL for this because it is ambiguous, being equal to 0 in integer context. MySQL++ provides the global null object, which you can assign to a Null template instance to make it equal to SQL null:

myfield = mysqlpp::null;

If you insert a MySQL++ field holding a SQL null into a C++ IOstream, you get “(NULL)”, something fairly unlikely to be in a normal output string, thus reasonably preserving the uniqueness of the SQL null value.

MySQL++ also tries to enforce the uniqueness of the SQL null value at compile time in assignments and data conversions. If you try to store a SQL null in a field type that isn’t wrapped by Null or try to assign a Null-wrapped field value to a variable of the inner non-wrapped type, the compiler will emit some ugly error message, yelling about CannotConvertNullToAnyOtherDataType. (The exact message is compiler-dependent.)

If you don’t like these behaviors, you can change them by passing a different value for the second parameter to template Null. By default, this parameter is NullIsNull, meaning that we should enforce the uniqueness of SQL null. To relax the distinctions, you can instantiate the Null template with a different behavior type: NullIsZero or NullIsBlank. Consider this code:

mysqlpp::Null<unsigned char, mysqlpp::NullIsZero> myfield(mysqlpp::null);
cout << myfield << endl;
cout << int(myfield) << endl;

This will print “0” twice. If you had used the default for the second Null template parameter, the first output statement would have printed “(NULL)”, and the second wouldn’t even compile.

3.8. MySQL++’s Special String Types

MySQL++ has two classes that work like std::string to some degree: String and SQLTypeAdapter. These classes exist to provide functionality that std::string doesn’t provide, but they are neither derivatives of nor complete supersets of std::string. As a result, end-user code generally doesn’t deal with these classes directly, because std::string is a better general-purpose string type. In fact, MySQL++ itself uses std::string most of the time, too. But, the places these specialized stringish types do get used are so important to the way MySQL++ works that it’s well worth taking the time to understand them.

SQLTypeAdapter

The simpler of the two is SQLTypeAdapter, or STA for short.[8]

As its name suggests, its only purpose is to adapt other data types to be used with SQL. It has a whole bunch of conversion constructors, one for all data types we expect to be used with MySQL++ for values in queries. SQL queries are strings, so constructors that take stringish types just make a copy of that string, and all the others “stringize” the value in the format needed by SQL.[9] The conversion constructors preserve type information, so this stringization process doesn’t throw away any essential information.

STA is used anywhere MySQL++ needs to be able to accept any of several data types for use in a SQL query. Major users are Query’s template query mechanism and the Query stream quoting and escaping mechanism. You care about STA because any time you pass a data value to MySQL++ to be used in building a SQL query, it goes through STA. STA is one of the key pieces in MySQL++ that makes it easy to generate syntactically-correct SQL queries.

String

If MySQL++ can be said to have its own generic string type, it’s String, but it’s not really functional enough for general use. It’s possible that in future versions of MySQL++ we’ll expand its interface to include everything std::string does, so that’s why it’s called that.[10]

The key thing String provides over std::string is conversion of strings in SQL value formats to their plain old C++ data types. For example, if you initialize it with the string “2007-11-19”, you can assign the String to a Date, not because Date knows how to initialize itself from String, but the reverse: String has a bunch of implicit conversion operators defined for it, so you can use it in any type context that makes sense in your application.

Because Row::operator[] returns String, you can say things like this:

int x = row["x"];

In a very real sense, String is the inverse of STA: String converts SQL value strings to C++ data types, and STA converts C++ data types to SQL value strings.[11]

String has two main uses.

By far the most common use is as the field value type of Row, as exemplified above. It’s not just the return type of Row::operator[], though: it’s actually the value type used within Row’s internal array. As a result, any time MySQL++ pulls data from the database, it goes through String when converting it from the string form used in SQL result sets to the C++ data type you actually want the data in. It’s the core of the structure population mechanism in the SSQLS feature, for example.

Because String is the last pristine form of data in a result set before it gets out of MySQL++’s internals where end-user code can see it, MySQL++’s sql_blob and related typedefs are aliases for String. Using anything else would require copies; while the whole “networked database server” thing means most of MySQL++ can be quite inefficient and still not affect benchmark results meaningfully, BLOBs tend to be big, so making unnecessary copies can really make a difference. Which brings us to...

Reference Counting

To avoid unnecessary buffer copies, both STA and String are implemented in terms of a reference-counted copy-on-write buffer scheme. Both classes share the same underlying mechanism, and so are interoperable. This means that if you construct one of these objects from another, it doesn’t actually copy the string data, it only copies a pointer to the data buffer, and increments its reference count. If the object has new data assigned to it or it’s otherwise modified, it decrements its reference count and creates its own copy of the buffer. This has a lot of practical import, such as the fact that even though Row::operator[] returns Strings by value, it’s still efficient.

3.9. Dealing with Binary Data

Historically, there was no way to hold arbitrary-sized blocks of raw binary data in an SQL database. There was resistance to adding such a feature to SQL for a long time because it’s better, where possible, to decompose blocks of raw binary data into a series of numbers and text strings that can be stored in the database. This lets you query, address and manipulate elements of the data block individually.

A classic SQL newbie mistake is trying to treat the database server as a file system. Some embedded platforms use a database engine as a file system, but MySQL doesn’t typically live in that world. When your platform already has a perfectly good file system, you should use it for big, nondecomposable blocks of binary data in most cases.

A common example people use when discussing this is images in database-backed web applications. If you store the image in the database, you have to write code to retrieve the image from the database and send it to the client; there’s more overhead, and less efficient use of the system’s I/O caching system. If you store the image in the filesystem, all you have to do is point the web server to the directory where the images live, and put a URL for that image in your generated HTML. Because you’re giving the web server a direct path to a file on disk, operation is far more efficient. Web servers are very good at slurping whole files off of disk and sending them out to the network, and operating systems are very good at caching file accesses. Plus, you avoid the overhead of pushing the data through the high-level language your web app is written in, which is typically an interpreted language, not C++. Some people still hold out on this, claiming that database engines have superior security features, but I call bunk on that, too. Operating systems and web servers are capable of building access control systems every bit as granular and secure as a database system.

Occasionally you really do need to store a nondecomposable block of binary data in the database. For such cases, modern SQL database servers support BLOB data types, for Binary Large OBject. This is often just called binary data, though of course all data in a modern computer is binary at some level.

The tricky part about dealing with binary data in MySQL++ is to ensure that you don’t ever treat the data as a C string, which is really easy to do accidentally. C strings treat zero bytes as special end-of-string characters, but they’re not special at all in binary data. We’ve made a lot of improvements to the way MySQL++ handles string data to avoid this problem, but it’s still possible to bypass these features, wrecking your BLOBs. These examples demonstrate correct techniques.

Loading a binary file into a BLOB column

Above, I opined that it’s usually incorrect to store image data in a database, particularly with web apps, of which CGI is a primitive form. Still, it makes a nice, simple example.

Instead of a single example program, we have here a matched pair. The first example takes the name of a JPEG file on the command line along with all the other common example program parameters, loads that file into memory, and stores it in a BLOB column in the database.

This example also demonstrates how to retrieve the value assigned to an auto-increment column in the previous insertion. This example uses that feature in the typical way, to create unique IDs for rows as they’re inserted.

Here is examples/load_jpeg.cpp:

#include "cmdline.h"
#include "images.h"
#include "printdata.h"

#include <fstream>

using namespace std;
using namespace mysqlpp;


// This is just an implementation detail for the example.  Skip down to
// main() for the concept this example is trying to demonstrate.  You
// can simply assume that, given a BLOB containing a valid JPEG, it
// returns true.
static bool
is_jpeg(const mysqlpp::sql_blob& img, const char** whynot)
{
    // See http://stackoverflow.com/questions/2253404/ for
    // justification for the various tests.
    const unsigned char* idp =
            reinterpret_cast<const unsigned char*>(img.data());
    if (img.size() < 125) {
        *whynot = "a valid JPEG must be at least 125 bytes";
    }
    else if ((idp[0] != 0xFF) || (idp[1] != 0xD8)) {
        *whynot = "file does not begin with JPEG sigil bytes";
    }
    else if ((memcmp(idp + 6, "JFIF", 4) != 0) &&
             (memcmp(idp + 6, "Exif", 4) != 0)) {
        *whynot = "file does not contain JPEG type word";
    }
    else {
        *whynot = 0;
        return true;
    }

    return false;
}


// Skip to main() before studying this.  This is a little too
// low-level to bother with on your first pass thru the code.
static bool
load_jpeg_file(const mysqlpp::examples::CommandLine& cmdline,
        images& img, string& img_name)
{
    if (cmdline.extra_args().size() == 0) {
        // Nothing for us to do here.  Caller will insert NULL BLOB.
        return true;
    }

    // Got a file's name on the command line, so open it.
    img_name = cmdline.extra_args()[0];
    ifstream img_file(img_name.c_str(), ios::binary);
    if (img_file) {
        // Slurp file contents into RAM with minimum copying.  (Idiom
        // explained here: http://stackoverflow.com/questions/116038/)
        //
        // By loading the file into a C++ string (stringstream::str())
        // and assigning that directly to a mysqlpp::sql_blob, we avoid
        // truncating the binary data at the first null character.
        img.data.data = static_cast<const stringstream*>(
                &(stringstream() << img_file.rdbuf()))->str();

        // Check JPEG data for sanity.
        const char* error;
        if (is_jpeg(img.data.data, &error)) {
            return true;
        }
        else {
            cerr << '"' << img_name << "\" isn't a JPEG: " <<
                    error << '!' << endl;
        }
    }

    cmdline.print_usage("[jpeg_file]");
    return false;
}


int
main(int argc, char *argv[])
{
    // Get database access parameters from command line
    mysqlpp::examples::CommandLine cmdline(argc, argv);
    if (!cmdline) {
        return 1;
    }

    try {
        // Establish the connection to the database server.
        mysqlpp::Connection con(mysqlpp::examples::db_name,
                cmdline.server(), cmdline.user(), cmdline.pass());

        // Load the file named on the command line
        images img(mysqlpp::null, mysqlpp::null);
        string img_name("NULL");
        if (load_jpeg_file(cmdline, img, img_name)) {
            // Insert image data or SQL NULL into the images.data BLOB
            // column.  The key here is that we're holding the raw
            // binary data in a mysqlpp::sql_blob, which avoids data
            // conversion problems that can lead to treating BLOB data
            // as C strings, thus causing null-truncation.  The fact
            // that we're using SSQLS here is a side issue, simply
            // demonstrating that mysqlpp::Null<mysqlpp::sql_blob> is
            // now legal in SSQLS, as of MySQL++ 3.0.7.
            Query query = con.query();
            query.insert(img);
            SimpleResult res = query.execute();

            // Report successful insertion
            cout << "Inserted \"" << img_name <<
                    "\" into images table, " << img.data.data.size() <<
                    " bytes, ID " << res.insert_id() << endl;
        }
    }
    catch (const BadQuery& er) {
        // Handle any query errors
        cerr << "Query error: " << er.what() << endl;
        return -1;
    }
    catch (const BadConversion& er) {
        // Handle bad conversions
        cerr << "Conversion error: " << er.what() << endl <<
                "\tretrieved data size: " << er.retrieved <<
                ", actual size: " << er.actual_size << endl;
        return -1;
    }
    catch (const Exception& er) {
        // Catch-all for any other MySQL++ exceptions
        cerr << "Error: " << er.what() << endl;
        return -1;
    }

    return 0;
}

Notice that we used the escape manipulator when building the INSERT query above. This is because mysqlpp::sql_blob is just an alias for one of the special MySQL++ string types, which don’t do automatic quoting and escaping. They can’t, because MySQL++ also uses these data types to hold raw SQL query strings, which would break due to doubled quoting and/or escaping if it were automatic.

Serving images from BLOB column via CGI

The other example in this pair is rather short, considering how much it does. It parses a CGI query string giving the image ID, uses that to retreive data loaded into the database by load_jpeg, and writes it out in the form a web server wants when processing a CGI call, all with adequate real-world error handling. This is examples/cgi_jpeg.cpp:

#include "cmdline.h"
#include "images.h"

#define CRLF            "\r\n"
#define CRLF2           "\r\n\r\n"

int
main(int argc, char* argv[])
{
    // Get database access parameters from command line if present, else
    // use hard-coded values for true CGI case.
    mysqlpp::examples::CommandLine cmdline(argc, argv, "root",
            "nunyabinness");
    if (!cmdline) {
        return 1;
    }

    // Parse CGI query string environment variable to get image ID
    unsigned int img_id = 0;
    char* cgi_query = getenv("QUERY_STRING");
    if (cgi_query) {
        if ((strlen(cgi_query) < 4) || memcmp(cgi_query, "id=", 3)) {
            std::cout << "Content-type: text/plain" << std::endl << std::endl;
            std::cout << "ERROR: Bad query string" << std::endl;
            return 1;
        }
        else {
            img_id = atoi(cgi_query + 3);
        }
    }
    else {
        std::cerr << "Put this program into a web server's cgi-bin "
                "directory, then" << std::endl;
        std::cerr << "invoke it with a URL like this:" << std::endl;
        std::cerr << std::endl;
        std::cerr << "    http://server.name.com/cgi-bin/cgi_jpeg?id=2" <<
                std::endl;
        std::cerr << std::endl;
        std::cerr << "This will retrieve the image with ID 2." << std::endl;
        std::cerr << std::endl;
        std::cerr << "You will probably have to change some of the #defines "
                "at the top of" << std::endl;
        std::cerr << "examples/cgi_jpeg.cpp to allow the lookup to work." <<
                std::endl;
        return 1;
    }

    // Retrieve image from DB by ID
    try {
        mysqlpp::Connection con(mysqlpp::examples::db_name,
                cmdline.server(), cmdline.user(), cmdline.pass());
        mysqlpp::Query query = con.query();
        query << "SELECT * FROM images WHERE id = " << img_id;
        mysqlpp::StoreQueryResult res = query.store();
        if (res && res.num_rows()) {
            images img = res[0];
            if (img.data.is_null) {
                std::cout << "Content-type: text/plain" << CRLF2;
                std::cout << "No image content!" << CRLF;
            }
            else {
                std::cout << "X-Image-Id: " << img_id << CRLF; // for debugging
                std::cout << "Content-type: image/jpeg" << CRLF;
                std::cout << "Content-length: " <<
                        img.data.data.length() << CRLF2;
                std::cout << img.data;
            }
        }
        else {
            std::cout << "Content-type: text/plain" << CRLF2;
            std::cout << "ERROR: No image with ID " << img_id << CRLF;
        }
    }
    catch (const mysqlpp::BadQuery& er) {
        // Handle any query errors
        std::cout << "Content-type: text/plain" << CRLF2;
        std::cout << "QUERY ERROR: " << er.what() << CRLF;
        return 1;
    }
    catch (const mysqlpp::Exception& er) {
        // Catch-all for any other MySQL++ exceptions
        std::cout << "Content-type: text/plain" << CRLF2;
        std::cout << "GENERAL ERROR: " << er.what() << CRLF;
        return 1;
    }

    return 0;
}

While you can run it by hand, it’s best to install this in a web server’s CGI program directory, then call it with a URL like http://my.server.com/cgi-bin/cgi_jpeg?id=1. That retrieves the JPEG with ID 1 from the database and returns it to the web server, which will send it on to the browser.

We’ve included an image with MySQL++ that you can use with this example pair, examples/logo.jpg.

3.10. Using Transactions

The Transaction class makes it easier to use SQL transactions in an exception-safe manner. Normally you create the Transaction object on the stack before you issue the queries in your transaction set. Then, when all the queries in the transaction set have been issued, you call Transaction::commit(), which commits the transaction set. If the Transaction object goes out of scope before you call commit(), the transaction set is rolled back. This ensures that if some code throws an exception after the transaction is started but before it is committed, the transaction isn’t left unresolved.

examples/transaction.cpp illustrates this:

#include "cmdline.h"
#include "printdata.h"
#include "stock.h"

#include <iostream>
#include <cstdio>

using namespace std;

int
main(int argc, char *argv[])
{
    // Get database access parameters from command line
    mysqlpp::examples::CommandLine cmdline(argc, argv);
    if (!cmdline) {
        return 1;
    }

    try {
        // Establish the connection to the database server.
        mysqlpp::Connection con(mysqlpp::examples::db_name,
                cmdline.server(), cmdline.user(), cmdline.pass());

        // Show initial state
        mysqlpp::Query query = con.query();
        cout << "Initial state of stock table:" << endl;
        print_stock_table(query);

        // Insert a few rows in a single transaction set
        {
            // Use a higher level of transaction isolation than MySQL
            // offers by default.  This trades some speed for more
            // predictable behavior.  We've set it to affect all
            // transactions started through this DB server connection,
            // so it affects the next block, too, even if we don't
            // commit this one.
            mysqlpp::Transaction trans(con,
                    mysqlpp::Transaction::serializable,
                    mysqlpp::Transaction::session);

            stock row("Sauerkraut", 42, 1.2, 0.75,
                    mysqlpp::sql_date("2006-03-06"), mysqlpp::null);
            query.insert(row);
            query.execute();

            cout << "\nRow inserted, but not committed." << endl;
            cout << "Verify this with another program (e.g. simple1), "
                    "then hit Enter." << endl;
            getchar();

            cout << "\nCommitting transaction gives us:" << endl;
            trans.commit();
            print_stock_table(query);
        }
            
        // Now let's test auto-rollback
        {
            // Start a new transaction, keeping the same isolation level
            // we set above, since it was set to affect the session.
            mysqlpp::Transaction trans(con);
            cout << "\nNow adding catsup to the database..." << endl;

            stock row("Catsup", 3, 3.9, 2.99,
                    mysqlpp::sql_date("2006-03-06"), mysqlpp::null);
            query.insert(row);
            query.execute();
        }
        cout << "\nNo, yuck! We don't like catsup. Rolling it back:" <<
                endl;
        print_stock_table(query);
            
    }
    catch (const mysqlpp::BadQuery& er) {
        // Handle any query errors
        cerr << "Query error: " << er.what() << endl;
        return -1;
    }
    catch (const mysqlpp::BadConversion& er) {  
        // Handle bad conversions
        cerr << "Conversion error: " << er.what() << endl <<
                "\tretrieved data size: " << er.retrieved <<
                ", actual size: " << er.actual_size << endl;
        return -1;
    }
    catch (const mysqlpp::Exception& er) {
        // Catch-all for any other MySQL++ exceptions
        cerr << "Error: " << er.what() << endl;
        return -1;
    }

    return 0;
}

One of the downsides of transactions is that the locking it requires in the database server is prone to deadlocks. The classic case where this happens is when two programs both want access to the same two rows within a single transaction each, but they modify them in opposite orders. If the timing is such that the programs interleave their lock acquisitions, the two come to an impasse: neither can get access to the other row they want to modify until the other program commits its transaction and thus release the row locks, but neither can finish the transaction because they’re waiting on row locks the database server is holding on behalf of the other program.

The MySQL server is smart enough to detect this condition, but the best it can do is abort the second transaction. This breaks the impasse, allowing the first program to complete its transaction.

The second program now has to deal with the fact that its transaction just got aborted. There’s a subtlety in detecting this situation when using MySQL++. By default, MySQL++ signals errors like these with exceptions. In the exception handler, you might expect to get ER_LOCK_DEADLOCK from Query::errnum() (or Connection::errnum(), same thing), but what you’ll almost certainly get instead is 0, meaning “no error.” Why? It’s because you’re probably using a Transaction object to get automatic roll-backs in the face of exceptions. In this case, the roll-back happens before your exception handler is called by issuing a ROLLBACK query to the database server. Thus, Query::errnum() returns the error code associated with this roll-back query, not the deadlocked transaction that caused the exception.

To avoid this problem, a few of the exception objects as of MySQL++ v3.0 include this last error number in the exception object itself. It’s populated at the point of the exception, so it can differ from the value you would get from Query::errnum() later on when the exception handler runs.

The example examples/deadlock.cpp demonstrates the problem:

#include "cmdline.h"

#include <mysql++.h>
#include <mysqld_error.h>

#include <iostream>

using namespace std;

// Bring in global holding the value given to the -m switch
extern int run_mode;


int
main(int argc, char *argv[])
{
    // Get database access parameters from command line
    mysqlpp::examples::CommandLine cmdline(argc, argv);
    if (!cmdline) {
        return 1;
    }

    // Check that the mode parameter was also given and it makes sense
    const int run_mode = cmdline.run_mode();
    if ((run_mode != 1) && (run_mode != 2)) {
        cerr << argv[0] << " must be run with -m1 or -m2 as one of "
                "its command-line arguments." << endl;
        return 1;
    }

    mysqlpp::Connection con;
    try {
        // Establish the connection to the database server
        mysqlpp::Connection con(mysqlpp::examples::db_name,
                cmdline.server(), cmdline.user(), cmdline.pass());

        // Start a transaction set.  Transactions create mutex locks on
        // modified rows, so if two programs both touch the same pair of
        // rows but in opposite orders at the wrong time, one of the two
        // programs will deadlock.  The MySQL server knows how to detect
        // this situation, and its error return causes MySQL++ to throw
        // a BadQuery exception.  The point of this example is that if
        // you want to detect this problem, you would check the value of
        // BadQuery::errnum(), not Connection::errnum(), because the
        // transaction rollback process executes a query which succeeds,
        // setting the MySQL C API's "last error number" value to 0.
        // The exception object carries its own copy of the error number
        // at the point the exception was thrown for this very reason.
        mysqlpp::Query query = con.query();
        mysqlpp::Transaction trans(con);

        // Build and run the queries, with the order depending on the -m
        // flag, so that a second copy of the program will deadlock if
        // run while the first is waiting for Enter.
        char dummy[100];
        for (int i = 0; i < 2; ++i) {
            int lock = run_mode + (run_mode == 1 ? i : -i);
            cout << "Trying lock " << lock << "..." << endl;

            query << "select * from deadlock_test" << lock << 
                    " where x = " << lock << " for update";
            query.store();

            cout << "Acquired lock " << lock << ".  Press Enter to ";
            cout << (i == 0 ? "try next lock" : "exit");
            cout << ": " << flush;
            cin.getline(dummy, sizeof(dummy));
        }
    }
    catch (mysqlpp::BadQuery e) {
        if (e.errnum() == ER_LOCK_DEADLOCK) {
            cerr << "Transaction deadlock detected!" << endl;
            cerr << "Connection::errnum = " << con.errnum() <<
                    ", BadQuery::errnum = " << e.errnum() << endl;
        }
        else {
            cerr << "Unexpected query error: " << e.what() << endl;
        }
        return 1;
    }
    catch (mysqlpp::Exception e) {
        cerr << "General error: " << e.what() << endl;      
        return 1;
    }

    return 0;
}

This example works a little differently than the others. You run one copy of the example, then when it pauses waiting for you to press Enter, you run another copy. Then, depending on which one you press Enter in, one of the two will abort with the deadlock exception. You can see from the error message you get that it matters which method you call to get the error number. What you do about it is up to you as it depends on your program’s design and system architecture.

3.11. Which Query Type to Use?

There are three major ways to execute a query in MySQL++: Query::execute(), Query::store(), and Query::use(). Which should you use, and why?

execute() is for queries that do not return data per se. For instance, CREATE INDEX. You do get back some information from the MySQL server, which execute() returns to its caller in a SimpleResult object. In addition to the obvious — a flag stating whether the query succeeded or not — this object also contains things like the number of rows that the query affected. If you only need the success status, it’s a little more efficient to call Query::exec() instead, as it simply returns bool.

If your query does pull data from the database, the simplest option is store(). (All of the examples up to this point have used this method.) This returns a StoreQueryResult object, which contains the entire result set. It’s especially convenient because StoreQueryResult derives from std::vector<mysqlpp::Row>, so it opens the whole panoply of STL operations for accessing the rows in the result set. Access rows randomly with subscript notation, iterate forwards and backwards over the result set, run STL algorithms on the set...it all works naturally.

If you like the idea of storing your results in an STL container but don’t want to use std::vector, you can call Query::storein() instead. It lets you store the results in any standard STL container (yes, both sequential and set-associative types) instead of using StoreQueryResult. You do miss out on some of the additional database information held by StoreQueryResult’s other base class, ResultBase, however.

store*() queries are convenient, but the cost of keeping the entire result set in main memory can sometimes be too high. It can be surprisingly costly, in fact. A MySQL database server stores data compactly on disk, but it returns query data to the client in a textual form. This results in a kind of data bloat that affects numeric and BLOB types the most. MySQL++ and the underlying C API library also have their own memory overheads in addition to this. So, if you happen to know that the database server stores every record of a particular table in 1 KB, pulling a million records from that table could easily take several GB of memory with a store() query, depending on what’s actually stored in that table.

For these large result sets, the superior option is a use() query. This returns a UseQueryResult object, which is similar to StoreQueryResult, but without all of the random-access features. This is because a “use” query tells the database server to send the results back one row at a time, to be processed linearly. It’s analogous to a C++ stream’s input iterator, as opposed to a random-access iterator that a container like vector offers. By accepting this limitation, you can process arbitrarily large result sets. This technique is demonstrated in examples/simple3.cpp:

#include "cmdline.h"
#include "printdata.h"

#include <mysql++.h>

#include <iostream>
#include <iomanip>

using namespace std;

int
main(int argc, char *argv[])
{
    // Get database access parameters from command line
    mysqlpp::examples::CommandLine cmdline(argc, argv);
    if (!cmdline) {
        return 1;
    }

    // Connect to the sample database.
    mysqlpp::Connection conn(false);
    if (conn.connect(mysqlpp::examples::db_name, cmdline.server(),
            cmdline.user(), cmdline.pass())) {
        // Ask for all rows from the sample stock table and display
        // them.  Unlike simple2 example, we retreive each row one at
        // a time instead of storing the entire result set in memory
        // and then iterating over it.
        mysqlpp::Query query = conn.query("select * from stock");
        if (mysqlpp::UseQueryResult res = query.use()) {
            // Display header
            cout.setf(ios::left);
            cout << setw(31) << "Item" <<
                    setw(10) << "Num" <<
                    setw(10) << "Weight" <<
                    setw(10) << "Price" <<
                    "Date" << endl << endl;

            // Get each row in result set, and print its contents
            while (mysqlpp::Row row = res.fetch_row()) {
                cout << setw(30) << row["item"] << ' ' <<
                        setw(9) << row["num"] << ' ' <<
                        setw(9) << row["weight"] << ' ' <<
                        setw(9) << row["price"] << ' ' <<
                        setw(9) << row["sdate"] <<
                        endl;
            }

            // Check for error: can't distinguish "end of results" and
            // error cases in return from fetch_row() otherwise.
            if (conn.errnum()) {
                cerr << "Error received in fetching a row: " <<
                        conn.error() << endl;
                return 1;
            }
            return 0;
        }
        else {
            cerr << "Failed to get stock item: " << query.error() << endl;
            return 1;
        }
    }
    else {
        cerr << "DB connection failed: " << conn.error() << endl;
        return 1;
    }
}

This example does the same thing as simple2, only with a “use” query instead of a “store” query.

Valuable as use() queries are, they should not be the first resort in solving problems of excessive memory use. It’s better if you can find a way to simply not pull as much data from the database in the first place. Maybe you’re saying SELECT * even though you don’t immedidately need all the columns from the table. Or, maybe you’re filtering the result set with C++ code after you get it from the database server. If you can do that filtering with a more restrictive WHERE clause on the SELECT, it’ll not only save memory, it’ll save bandwidth between the database server and client, and can even save CPU time. If the filtering criteria can’t be expressed in a WHERE clause, however, read on to the next section.

3.12. Conditional Result Row Handling

Sometimes you must pull more data from the database server than you actually need and filter it in memory. SQL’s WHERE clause is powerful, but not as powerful as C++. Instead of storing the full result set and then picking over it to find the rows you want to keep, use Query::store_if(). This is examples/store_if.cpp:

#include "cmdline.h"
#include "printdata.h"
#include "stock.h"

#include <mysql++.h>

#include <iostream>

#include <math.h>


// Define a functor for testing primality.
struct is_prime
{
    bool operator()(const stock& s)
    {
        if ((s.num == 2) || (s.num == 3)) {
            return true;    // 2 and 3 are trivial cases
        }
        else if ((s.num < 2) || ((s.num % 2) == 0)) {
            return false;   // can't be prime if < 2 or even
        }
        else {
            // The only possibility left is that it's divisible by an
            // odd number that's less than or equal to its square root.
            for (int i = 3; i <= sqrt(double(s.num)); i += 2) {
                if ((s.num % i) == 0) {
                    return false;
                }
            }
            return true;
        }
    }
};


int
main(int argc, char *argv[])
{
    // Get database access parameters from command line
    mysqlpp::examples::CommandLine cmdline(argc, argv);
    if (!cmdline) {
        return 1;
    }

    try {
        // Establish the connection to the database server.
        mysqlpp::Connection con(mysqlpp::examples::db_name,
                cmdline.server(), cmdline.user(), cmdline.pass());

        // Collect the stock items with prime quantities
        std::vector<stock> results;
        mysqlpp::Query query = con.query();
        query.store_if(results, stock(), is_prime());

        // Show the results
        print_stock_header(results.size());
        std::vector<stock>::const_iterator it;
        for (it = results.begin(); it != results.end(); ++it) {
            print_stock_row(it->item.c_str(), it->num, it->weight,
                    it->price, it->sDate);
        }
    }
    catch (const mysqlpp::BadQuery& e) {
        // Something went wrong with the SQL query.
        std::cerr << "Query failed: " << e.what() << std::endl;
        return 1;
    }
    catch (const mysqlpp::Exception& er) {
        // Catch-all for any other MySQL++ exceptions
        std::cerr << "Error: " << er.what() << std::endl;
        return 1;
    }

    return 0;
}

I doubt anyone really needs to select rows from a table that have a prime number in a given field. This example is meant to be just barely more complex than SQL can manage, to avoid obscuring the point. That point being, the Query::store_if() call here gives you a container full of results meeting a criterion that you probably can’t express in SQL. You will no doubt have much more useful criteria in your own programs.

If you need a more complex query than the one store_if() knows how to build when given an SSQLS examplar, there are two overloads that let you use your own query string. One overload takes the query string directly, and the other uses the query string built with Query’s stream interface.

3.13. Executing Code for Each Row In a Result Set

SQL is more than just a database query language. Modern database engines can actually do some calculations on the data on the server side. But, this isn’t always the best way to get something done. When you need to mix code and a query, MySQL++’s Query::for_each() facility might be just what you need. This is examples/for_each.cpp:

#include "cmdline.h"
#include "printdata.h"
#include "stock.h"

#include <mysql++.h>

#include <iostream>

#include <math.h>


// Define a functor to collect statistics about the stock table
class gather_stock_stats
{
public:
    gather_stock_stats() :
    items_(0),
    weight_(0),
    cost_(0)
    {
    }

    void operator()(const stock& s)
    {
        items_  += s.num;
        weight_ += (s.num * s.weight);
        cost_   += (s.num * s.price.data);
    }
    
private:
    mysqlpp::sql_bigint items_;
    mysqlpp::sql_double weight_, cost_;

    friend std::ostream& operator<<(std::ostream& os,
            const gather_stock_stats& ss);
};


// Dump the contents of gather_stock_stats to a stream in human-readable
// form.
std::ostream&
operator<<(std::ostream& os, const gather_stock_stats& ss)
{
    os << ss.items_ << " items " <<
            "weighing " << ss.weight_ << " stone and " <<
            "costing " << ss.cost_ << " cowrie shells";
    return os;
}


int
main(int argc, char *argv[])
{
    // Get database access parameters from command line
    mysqlpp::examples::CommandLine cmdline(argc, argv);
    if (!cmdline) {
        return 1;
    }

    try {
        // Establish the connection to the database server.
        mysqlpp::Connection con(mysqlpp::examples::db_name,
                cmdline.server(), cmdline.user(), cmdline.pass());

        // Gather and display the stats for the entire stock table
        mysqlpp::Query query = con.query();
        std::cout << "There are " << query.for_each(stock(),
                gather_stock_stats()) << '.' << std::endl;
    }
    catch (const mysqlpp::BadQuery& e) {
        // Something went wrong with the SQL query.
        std::cerr << "Query failed: " << e.what() << std::endl;
        return 1;
    }
    catch (const mysqlpp::Exception& er) {
        // Catch-all for any other MySQL++ exceptions
        std::cerr << "Error: " << er.what() << std::endl;
        return 1;
    }

    return 0;
}

You only need to read the main() function to get a good idea of what the program does. The key line of code passes an SSQLS examplar and a functor to Query::for_each(). for_each() uses the SSQLS instance to build a select * from TABLE query, stock in this case. It runs that query internally, calling gather_stock_stats on each row. This is a pretty contrived example; you could actually do this in SQL, but we’re trying to prevent the complexity of the code from getting in the way of the demonstration here.

Just as with store_if(), described above, there are two other overloads for for_each() that let you use your own query string.

3.14. Connection Options

MySQL has a large number of options that control how it makes the connection to the database server, and how that connection behaves. The defaults are sufficient for most programs, so only one of the MySQL++ example programs make any connection option changes. Here is examples/multiquery.cpp:

#include "cmdline.h"
#include "printdata.h"

#include <mysql++.h>

#include <algorithm>
#include <iostream>
#include <iomanip>
#include <vector>

using namespace std;
using namespace mysqlpp;


typedef vector<size_t> IntVectorType;


static void
print_header(IntVectorType& widths, StoreQueryResult& res)
{
    cout << "  |" << setfill(' ');
    for (size_t i = 0; i < res.field_names()->size(); i++) {
        cout << " " << setw(widths.at(i)) << res.field_name(int(i)) << " |";
    }
    cout << endl;
}


static void
print_row(IntVectorType& widths, Row& row)
{
    cout << "  |" << setfill(' ');
    for (size_t i = 0; i < row.size(); ++i) {
        cout << " " << setw(widths.at(i)) << row[int(i)] << " |";
    }
    cout << endl;
}


static void
print_row_separator(IntVectorType& widths)
{
    cout << "  +" << setfill('-');
    for (size_t i = 0; i < widths.size(); i++) {
        cout << "-" << setw(widths.at(i)) << '-' << "-+";
    }
    cout << endl;
}


static void
print_result(StoreQueryResult& res, int index)
{
    // Show how many rows are in result, if any
    StoreQueryResult::size_type num_results = res.size();
    if (res && (num_results > 0)) {
        cout << "Result set " << index << " has " << num_results <<
                " row" << (num_results == 1 ? "" : "s") << ':' << endl;
    }
    else {
        cout << "Result set " << index << " is empty." << endl;
        return;
    }

    // Figure out the widths of the result set's columns
    IntVectorType widths;
    size_t size = res.num_fields();
    for (size_t i = 0; i < size; i++) {
        widths.push_back(max(
                res.field(i).max_length(),
                res.field_name(i).size()));
    }

    // Print result set header
    print_row_separator(widths);
    print_header(widths, res);
    print_row_separator(widths);

    // Display the result set contents
    for (StoreQueryResult::size_type i = 0; i < num_results; ++i) {
        print_row(widths, res[i]);
    }

    // Print result set footer
    print_row_separator(widths);
}


static void
print_multiple_results(Query& query)
{
    // Execute query and print all result sets
    StoreQueryResult res = query.store();
    print_result(res, 0);
    for (int i = 1; query.more_results(); ++i) {
        res = query.store_next();
        print_result(res, i);
    }
}


int
main(int argc, char *argv[])
{
    // Get connection parameters from command line
    mysqlpp::examples::CommandLine cmdline(argc, argv);
    if (!cmdline) {
        return 1;
    }

    try {
        // Enable multi-queries.  Notice that you almost always set
        // MySQL++ connection options before establishing the server
        // connection, and options are always set using this one
        // interface.  If you're familiar with the underlying C API,
        // you know that there is poor consistency on these matters;
        // MySQL++ abstracts these differences away.
        Connection con;
        con.set_option(new MultiStatementsOption(true));

        // Connect to the database
        if (!con.connect(mysqlpp::examples::db_name, cmdline.server(),
                cmdline.user(), cmdline.pass())) {
            return 1;
        }

        // Set up query with multiple queries.
        Query query = con.query();
        query << "DROP TABLE IF EXISTS test_table; " <<
                "CREATE TABLE test_table(id INT); " <<
                "INSERT INTO test_table VALUES(10); " <<
                "UPDATE test_table SET id=20 WHERE id=10; " <<
                "SELECT * FROM test_table; " <<
                "DROP TABLE test_table";
        cout << "Multi-query: " << endl << query << endl;

        // Execute statement and display all result sets.
        print_multiple_results(query);

#if MYSQL_VERSION_ID >= 50000
        // If it's MySQL v5.0 or higher, also test stored procedures, which
        // return their results the same way multi-queries do.
        query << "DROP PROCEDURE IF EXISTS get_stock; " <<
                "CREATE PROCEDURE get_stock" <<
                "( i_item varchar(20) ) " <<
                "BEGIN " <<
                "SET i_item = concat('%', i_item, '%'); " <<
                "SELECT * FROM stock WHERE lower(item) like lower(i_item); " <<
                "END;";
        cout << "Stored procedure query: " << endl << query << endl;

        // Create the stored procedure.
        print_multiple_results(query);

        // Call the stored procedure and display its results.
        query << "CALL get_stock('relish')";
        cout << "Query: " << query << endl;
        print_multiple_results(query);
#endif

        return 0;
    }
    catch (const BadOption& err) {
        cerr << err.what() << endl;
        cerr << "This example requires MySQL 4.1.1 or later." << endl;
        return 1;
    }
    catch (const ConnectionFailed& err) {
        cerr << "Failed to connect to database server: " <<
                err.what() << endl;
        return 1;
    }
    catch (const Exception& er) {
        // Catch-all for any other MySQL++ exceptions
        cerr << "Error: " << er.what() << endl;
        return 1;
    }
}

This is a fairly complex example demonstrating the multi-query and stored procedure features in newer versions of MySQL. Because these are new features, and they change the communication between the client and server, you have to enable these features in a connection option. The key line is right up at the top of main(), where it creates a MultiStatementsOption object and passes it to Connection::set_option(). That method will take a pointer to any derivative of Option: you just create such an object on the heap and pass it in, which gives Connection the data values it needs to set the option. You don’t need to worry about releasing the memory used by the Option objects; it’s done automatically.

The only tricky thing about setting options is that only a few of them can be set after the connection is up. Most need to be set just as shown in the example above: create an unconnected Connection object, set your connection options, and only then establish the connection. The option setting mechanism takes care of applying the options at the correct time in the connection establishment sequence.

If you’re familiar with setting connection options in the MySQL C API, you’ll have to get your head around the fact that MySQL++’s connection option mechanism is a much simpler, higher-level design that doesn’t resemble the C API in any way. The C API has something like half a dozen different mechanisms for setting options that control the connection. The flexibility of the C++ type system allows us to wrap all of these up into a single high-level mechanism while actually getting greater type safety than the C API allows.

3.15. Dealing with Connection Timeouts

By default, current MySQL servers have an 8 hour idle timeout on connections. This is not a problem if your program never has to run for more than 8 hours or reliably queries the database more often than that. And, it’s a good thing for the database server, because even an idle connection takes up server resources.

Many programs must run continually, however, and may experience long idle periods, such as nights and weekends when no one is around to make the program issue database queries. It’s therefore common for people writing such programs to get a bug report from the field complaining that the program died overnight or over a long weekend, usually with some error message about the database server going away. They then check the DB server, find that it’s still running and never did restart and scratch their heads wondering what happened. What happened is that the server’s connection idle timeout expired, so it closed the connection to the client.

You cannot detect this condition by calling Connection::connected(). When that returns true, it just means that either the connect-on-create constructor or the connect() call succeeded and that we haven’t observed the connection to be down since then. When the database server closes an idle connection, you won’t know it until after you try to issue a query. This is simply due to the nature of network programming.

One way around this problem is to configure MySQL to have a longer idle timeout. This timeout is in seconds, so the default of 8 hours is 28,800 seconds. You would want to figure out the longest possible time that your program could be left idle, then pick a value somewhat longer than that. For instance, you might decide that the longest reasonable idle time is a long 4-day weekend — 345,600 seconds — which you could round up to 350,000 or 400,000 to allow for a little bit of additional idle time on either end of that period.

Another way around this, on a per-connection basis from the client side, would be to set the ReconnectOption connection option. This will cause MySQL++ to reconnect to the server automatically if it drops the connection. Beware that unless you’re using MySQL 5.1.6 or higher, you have to set this only after the connection is established, or it won’t take effect. This means there’s a potential race condition: it’s possible the connection could drop shortly enough after being established that you don’t have time to apply the option, so it won’t come back up automatically. MySQL 5.1.6+ fixes this by allowing this option to be set before the connection is established.

A completely different way to tackle this, if your program doesn’t block forever waiting on I/O while idle, is to periodically call Connection::ping(). [12] This sends the smallest possible amount of data to the database server, which will reset its idle timer and cause it to respond, so ping() returns true. If it returns false instead, you know you need to reconnect to the server. Periodic pinging is easiest to do if your program uses asynchronous I/O, threads, or some kind of event loop to ensure that you can call something periodically even while the rest of the program has nothing to do.

An interesting variant on this strategy is to ping the server before each query, or, better, before each group of queries within a larger operation. It has an advantage over pinging during idle time in that the client is about to use far more server resources to handle the query than it will take to handle the ping, so the ping time gets lost in the overhead. On the other hand, if the client issues queries frequently when not idle, it can result in a lot more pings than would happen if you just pinged every N hours while idle.

Finally, some programmers prefer to wrap the querying mechanism in an error handler that catches the “server has gone away” error and tries to reestablish the connection and reissue the query. This adds some complexity, but it makes your program more robust without taking up unnecessary resources. If you did this, you could even change the server to drop idle connections more often, thus tying up fewer TCP/IP stack resources.

3.16. Concurrent Queries on a Connection

An important limitation of the MySQL C API library — which MySQL++ is built atop, so it shares this limitation — is that you can only have one query in progress on each connection to the database server. If you try to issue a second query while one is still in progress, you get an obscure error message about “Commands out of sync” from the underlying C API library. (You normally get this message in a MySQL++ exception unless you have exceptions disabled, in which case you get a failure code and Connection::error() returns this message.)

There are lots of ways to run into this limitation:

  • The easiest way is to try to use a single Connection object in a multithreaded program, with more than one thread attempting to use it to issue queries. Unless you put in a lot of work to synchronize access, this is almost guaranteed to fail at some point, giving the dread “Commands out of sync” error.

  • You might then think to give each thread that issues queries its own Connection object. You can still run into trouble if you pass the data you get from queries around to other threads. What can happen is that one of these child objects indirectly calls back to the Connection at a time where it’s involved with another query. This is properly covered elsewhere, in Section 7.4, “Sharing MySQL++ Data Structures”.)

  • One way to run into this problem without using threads is with “use” queries, discussed above. If you don’t consume all rows from a query before you issue another on that connection, you are effectively trying to have multiple concurrent queries on a single connection. Here’s a recipie for this particular disaster:

    UseQueryResult r1 = query.use("select garbage from plink where foobie='tamagotchi'");
    UseQueryResult r2 = query.use("select blah from bonk where bletch='smurf'");

    The second use() call fails because the first result set hasn’t been consumed yet.

  • Still another way to run into this limitation is if you use MySQL’s multi-query feature. This lets you give multiple queries in a single call, separated by semicolons, and get back the results for each query separately. If you issue three queries using Query::store(), you only get back the first query’s results with that call, and then have to call store_next() to get the subsequent query results. MySQL++ provides Query::more_results() so you know whether you’re done, or need to call store_next() again. Until you reach the last result set, you can’t issue another query on that connection.

  • Finally, there’s a way to run into this that surprises almost everyone sooner or later: stored procedures. MySQL normally returns at least two result sets for a stored procedure call. The simple case is that the stored procedure contains a single SQL query, and it succeeds: you get two results, first the results of the embedded SQL query, and then the result of the call itself. If there are multiple SQL queries within the stored procedure, you get more than two result sets. Until you consume them all, you can’t start a new query on the connection. As above, you want to have a loop calling more_results() and store_next() to work your way through all of the result sets produced by the stored procedure call.

3.17. Getting Field Meta-Information

The following example demonstrates how to get information about the fields in a result set, such as the name of the field and the SQL type. This is examples/fieldinf.cpp:

#include "cmdline.h"
#include "printdata.h"

#include <iostream>
#include <iomanip>

using namespace std;


int
main(int argc, char *argv[])
{
    // Get database access parameters from command line
    mysqlpp::examples::CommandLine cmdline(argc, argv);
    if (!cmdline) {
        return 1;
    }

    try {
        // Establish the connection to the database server.
        mysqlpp::Connection con(mysqlpp::examples::db_name,
                cmdline.server(), cmdline.user(), cmdline.pass());

        // Get contents of main example table
        mysqlpp::Query query = con.query("select * from stock");
        mysqlpp::StoreQueryResult res = query.store();

        // Show info about each field in that table
        char widths[] = { 12, 22, 46 };
        cout.setf(ios::left);
        cout << setw(widths[0]) << "Field" <<
                setw(widths[1]) << "SQL Type" <<
                setw(widths[2]) << "Equivalent C++ Type" <<
                endl;
        for (size_t i = 0; i < sizeof(widths) / sizeof(widths[0]); ++i) {
            cout << string(widths[i] - 1, '=') << ' ';
        }
        cout << endl;
        
        for (size_t i = 0; i < res.field_names()->size(); i++) {
            // Suppress C++ type name outputs when run under dtest,
            // as they're system-specific.
            const char* cname = res.field_type(int(i)).name();
            mysqlpp::FieldTypes::value_type ft = res.field_type(int(i));
            ostringstream os;
            os << ft.sql_name() << " (" << ft.id() << ')';
            cout << setw(widths[0]) << res.field_name(int(i)).c_str() <<
                    setw(widths[1]) << os.str() <<
                    setw(widths[2]) << cname <<
                    endl;
        }
        cout << endl;

        // Simple type check
        if (res.field_type(0) == typeid(string)) {
            cout << "SQL type of 'item' field most closely resembles "
                    "the C++ string type." << endl;
        }

        // Tricky type check: the 'if' path shouldn't happen because the
        // description field has the NULL attribute.  We need to dig a
        // little deeper if we want to ignore this in our type checks.
        if (res.field_type(5) == typeid(string)) {
            cout << "Should not happen! Type check failure." << endl;
        }
        else if (res.field_type(5) == typeid(mysqlpp::sql_blob_null)) {
            cout << "SQL type of 'description' field resembles "
                    "a nullable variant of the C++ string type." << endl;
        }
        else {
            cout << "Weird: fifth field's type is now " <<
                    res.field_type(5).name() << endl;
            cout << "Did something recently change in resetdb?" << endl;
        }
    }
    catch (const mysqlpp::BadQuery& er) {
        // Handle any query errors
        cerr << "Query error: " << er.what() << endl;
        return -1;
    }
    catch (const mysqlpp::Exception& er) {
        // Catch-all for any other MySQL++ exceptions
        cerr << "Error: " << er.what() << endl;
        return -1;
    }

    return 0;
}


[2] SQLQueryParms is used as a stream only as an implementation detail within the library. End user code simply sees it as a std::vector derivative.

[3] By contrast, the Query methods that take an SSQLS do add quotes and escape strings implicitly. It can do this because SSQLS knows all the SQL code and data types, so it never has to guess whether quoting or escaping is appropriate.

[4] Unless you’re smarter than I am, you don’t immediately see why explicit manipulators are necessary. We can tell when quoting and escaping is not appropriate based on type, so doesn’t that mean we know when it is appropriate? Alas, no. For most data types, it is possible to know, or at least make an awfully good guess, but it’s a complete toss-up for C strings, const char*. A C string could be either a literal string of SQL code, or it can be a value used in a query. Since there’s no easy way to know and it would damage the library’s usability to mandate that C strings only be used for one purpose or the other, the library requires you to be explicit.

[5] One hopes the programmer knows.

[6] Yes, we’re aware that there is a feature in MySQL that lets you transfer row data in a binary form, but we don’t support this yet. We may, someday, probably as an extension to SSQLS. The only real reason to do so is to shave off some of the data translation overhead, which is typically neglibible in practice, swamped by the far greater disk and network I/O overheads inherent in use of a client-server database system like MySQL.

[7] SQL’s DECIMAL data type is a configurable-precision fixed-point number format. MySQL++ currently translates these to double, a floating-point data format, the closest thing available in the C++ type system. Since the main reason to use DECIMAL is to get away from the weird roundoff behavior of floating-point numbers, this could be viewed as a serious problem. The thing is, though, in all the years MySQL++ has been around, I don’t remember anyone actually complaining about it. Apparently there’s either no one using DECIMAL with MySQL++, or they’re ignoring any roundoff errors they get as a result. Until this wheel squeaks, it’s not likely to be greased. To fix this, we’ll have to create a new custom data type to hold such column values, which will be a lot of work for apparently little return.

[8] In version 2 of MySQL++ and earlier, SQLTypeAdapter was called SQLString, but it was confusing because its name and the fact that it derived from std::string suggested that it was a general-purpose string type. MySQL++ even used it this way in a few places internally. In v3, we made it a simple base class and renamed it to reflect its proper limited function.

[9] SQLTypeAdapter doesn’t do quoting and escaping itself. That happens elsewhere, right at the point that the STA gets used to build a query.

[10] If you used MySQL++ before v3, String used to be called ColData. It was renamed because starting in v2.3, we began using it for holding more than just column data. I considered renaming it SQLString instead, but that would have confused old MySQL++ users to no end. Instead, I followed the example of Set, MySQL++’s specialized std::set variant.

[11] During the development of MySQL++ v3.0, I tried merging SQLTypeAdapter and String into a single class to take advantage of this. The resulting class gave the C++ compiler the freedom to tie itself up in knots, because it was then allowed to convert almost any data type to almost any other. You’d get a tangle of ambiguous data type conversion errors from the most innocent code.

[12] Don’t ping the server too often! It takes a tiny amount of processing capability to handle a ping, which can add up to a significant amount if done often enough by a client, or even just rarely by enough clients. Also, a lower ping frequency can let your program ride through some types of network faults — a switch reboot, for instance — without needing a reconnect. I like to ping the DB server no more often than half the connection timeout. With the default of 8 hours, then, I’d ping between every 4 and 7 hours.

mysql++-3.2.5/doc/html/userman/index.html000755 000765 000024 00000040714 13515046514 021014 0ustar00tangentstaff000000 000000 MySQL++ v3.2.5 User Manual

MySQL++ v3.2.5 User Manual

Kevin Atkinson

Sinisa Milivojevic

Monty Widenius

Warren Young

July 21, 2019


Table of Contents

1. Introduction
1.1. A Brief History of MySQL++
1.2. If You Have Questions...
2. Overview
2.1. The Connection Object
2.2. The Query Object
2.3. Result Sets
2.4. Exceptions
3. Tutorial
3.1. Running the Examples
3.2. A Simple Example
3.3. A More Complicated Example
3.4. Exceptions
3.5. Quoting and Escaping
3.6. C++ vs. SQL Data Types
3.7. Handling SQL Nulls
3.8. MySQL++’s Special String Types
3.9. Dealing with Binary Data
3.10. Using Transactions
3.11. Which Query Type to Use?
3.12. Conditional Result Row Handling
3.13. Executing Code for Each Row In a Result Set
3.14. Connection Options
3.15. Dealing with Connection Timeouts
3.16. Concurrent Queries on a Connection
3.17. Getting Field Meta-Information
4. Template Queries
4.1. Setting up Template Queries
4.2. Setting the Parameters at Execution Time
4.3. Default Parameters
4.4. Error Handling
5. Specialized SQL Structures
5.1. sql_create
5.2. SSQLS Comparison and Initialization
5.3. Retrieving data
5.4. Adding data
5.5. Modifying data
5.6. Storing SSQLSes in Associative Containers
5.7. Changing the Table Name
5.8. Using an SSQLS in Multiple Modules
5.9. Harnessing SSQLS Internals
5.10. Having Different Field Names in C++ and SQL
5.11. Expanding SSQLS Macros
5.12. Customizing the SSQLS Mechanism
5.13. Deriving from an SSQLS
5.14. SSQLS and BLOB Columns
5.15. SSQLS and Visual C++ 2003
6. Using Unicode with MySQL++
6.1. A Short History of Unicode
6.2. Unicode in MySQL
6.3. Unicode on Unixy Systems
6.4. Unicode on Windows
6.5. For More Information
7. Using MySQL++ in a Multithreaded Program
7.1. Build Issues
7.2. Connection Management
7.3. Helper Functions
7.4. Sharing MySQL++ Data Structures
8. Configuring MySQL++
8.1. The Location of the MySQL Development Files
8.2. The Maximum Number of Fields Allowed
8.3. Buried MySQL C API Headers
8.4. Building MySQL++ on Systems Without Complete C99 Support
9. Using MySQL++ in Your Own Project
9.1. Visual C++
9.2. Unixy Platforms: Linux, *BSD, OS X, Cygwin, Solaris...
9.3. OS X
9.4. MinGW
9.5. Eclipse
10. Incompatible Library Changes
10.1. API Changes
10.2. ABI Changes
11. Licensing
11.1. GNU Lesser General Public License
11.2. MySQL++ User Manual License

1. Introduction

MySQL++ is a powerful C++ wrapper for MySQL’s C API[1]. Its purpose is to make working with queries as easy as working with STL containers.

The latest version of MySQL++ can be found at the official web site.

Support for MySQL++ can be had on the mailing list. That page hosts the mailing list archives, and tells you how you can subscribe.

1.1. A Brief History of MySQL++

MySQL++ was created in 1998 by Kevin Atkinson. It started out MySQL-specific, but there were early efforts to try and make it database-independent, and call it SQL++. This is where the old library name “sqlplus” came from. This is also why the old versions prefixed some class names with “Mysql” but not others: the others were supposed to be the database-independent parts. All of Kevin’s releases had pre-1.0 version numbers.

Then in 1999, MySQL AB took over development of the library. In the beginning, Monty Widenius himself did some of the work, but later gave it over to another MySQL employee, Sinisa Milivojevic. MySQL released versions 1.0 and 1.1, and then Kevin gave over maintenance to Sinisa officially with 1.2, and ceased to have any involvement with the library’s maintenance. Sinisa went on to maintain the library through 1.7.9, released in mid-2001. It seems to be during this time that the dream of multiple-database compatibility died, for obvious reasons.

With version 1.7.9, MySQL++ went into a period of stasis, lasting over three years. (Perhaps it was the ennui and retrenchment following the collapse of the bubble that caused them to lose interest.) During this time, Sinisa ran the MySQL++ mailing list and supported its users, but made no new releases. Contributed patches were either ignored or put up on the MySQL++ web site for users to try, without any official blessing.

The biggest barrier to using MySQL++ during this period is that the popular C++ compilers of 2001 weren’t all that compatible with the C++ Standard. As a result, MySQL++ used many nonstandard constructs, to allow for compatibility with older compilers. Each new compiler released in the following years increased compliance, either warning about or rejecting code using pre-Standard constructs. In particular, GCC was emerging from the mess following the EGCS fork during this time. The fork was healed officially in 1999, but there’s always a delay of a few years between the release of a new GCC and widespread adoption. The post-EGCS versions of GCC were only beginning to become popular by 2001, when development on MySQL++ halted. As a result, it became increasingly difficult to get MySQL++ to build cleanly as newer compilers came out. Since MySQL++ uses templates heavily, this affected end user programs as well: MySQL++ code got included directly in your program, so any warnings or errors it caused became your program’s problem.

As a result, most of the patches contributed to the MySQL++ project during this period were to fix up standards compliance issues. Because no one was bothering to officially test and bless these patches, you ended up with the worst aspects of a bazaar development model: complete freedom of development, but no guiding hand to select from the good stuff and reject the rest. Many of the patches were mutually incompatible. Some would build upon other patches, so you had to apply them in the proper sequence. Others did useful things, but didn’t give a fully functional copy of MySQL++. Figuring out which patch(es) to use was an increasingly frustrating exercise as the years wore on, and newer GCCs became popular.

In early August of 2004, Warren Young got fed up with this situation and took over. He released 1.7.10 later that month, which did little more than make the code build with GCC 3.3 without warnings. Since then, with a little help from his friends on the Net, MySQL++ has lost a lot of bugs, gained a lot of features, gained a few more bugs, lost them again... MySQL++ is alive and healthy now.

1.2. If You Have Questions...

If you want to email someone to ask questions about this library, we greatly prefer that you send mail to the MySQL++ mailing list. The mailing list is archived, so if you have questions, do a search to see if the question has been asked before.

You may find people’s individual email addresses in various files within the MySQL++ distribution. Please do not send mail to them unless you are sending something that is inherently personal. Not all of the principal developers of MySQL++ are still active in its development; those who have dropped out have no wish to be bugged about MySQL++. Those of us still active in MySQL++ development monitor the mailing list, so you aren’t getting any extra “coverage” by sending messages to additional email addresses.



[1] The MySQL C API is also known as Connector/C.

mysql++-3.2.5/doc/html/userman/incorporating.html000755 000765 000024 00000045413 13515046514 022564 0ustar00tangentstaff000000 000000 9. Using MySQL++ in Your Own Project

9. Using MySQL++ in Your Own Project

Up to now, this manual has only discussed MySQL++ in conjunction with the example programs that come with the library. This chapter covers the steps you need to take to incorporate MySQL++ into your own projects.

The first thing you have to do is include mysql++.h in each module that uses MySQL++. In modules that use SSQLS v1, you also need to include ssqls.h.[23]

At this point, your project probably still won’t compile, and it certainly won’t link. The remaining steps are dependent on the operating system and tools you are using. The rest of this chapter is broken up into several sections, one for each major platform type. You can skip over the sections for platforms you don’t use.

9.1. Visual C++

Using MySQL++ in an MFC Project

If you don’t already have a project set up, open Visual Studio, say File | New | Project, then choose Visual C++ | MFC | MFC Application. Go through the wizard setting up the project as you see fit.

Once you have your project open, right click on your top-level executable in the Solution Explorer, choose Properties, and make the following changes. (Where it doesn’t specify Debug or Release, make the same change to both configurations.)

  • Append the following to C/C++ | General | Additional Include Directories: C:\Program Files\MySQL\MySQL Connector C 6.1\include, C:\mysql++\include

  • Under C/C++ | Code Generation change “Runtime Library” to “Multi-threaded Debug DLL (/MDd)” for the Debug configuration. For the Release configuration, make it “Multi-threaded DLL (/MD)”.

  • For both Release and Debug builds, append the following to Linker | General | Additional Library Directories: C:\Program Files\MySQL\MySQL Connector C 6.1\lib, C:\mysql++\lib

    Connector/C does include debug libraries, but you will probably not need to use them.

  • Under Linker | Input add the following to “Additional Dependencies” for the Debug configuration: libmysql.lib wsock32.lib mysqlpp_d.lib

    ...and then for the Release configuration: libmysql.lib wsock32.lib mysqlpp.lib

    This difference is because MySQL++’s Debug DLL and import library have a _d suffix so you can have both in the same directory without conflicts.

You may want to study examples\vstudio\mfc\mfc.vcproj to see this in action. Note that some of the paths will be different, because it can use relative paths for mysqlpp.dll.

Using MySQL++ in a Windows Forms C++/CLI Project

Before you start work on getting MySQL++ working with your own program, you need to make some changes to the MySQL++ build settings. Open mysqlpp.sln, then right-click on the mysqlpp target and select Properties. Make the following changes for both the Debug and Release configurations:

  • Under Configuration Properties | General, change “Common Language Runtime support” to the /clr setting.

  • Under C/C++ | Code Generation, change “Enable C++ Exceptions” from “Yes (/EHsc)” to “Yes With SEH Exceptions (/EHa)”

If you have already built MySQL++, be sure to perform a complete rebuild after changing these options. The compiler will emit several C4835 warnings after making those changes, which are harmless when using the DLL with a C++/CLI program, but which warn of real problems when using it with unmanaged C++. This is why MySQL++’s Windows installer (install.hta) offers the option to install the CLR version into a separate directory; use it if you need both managed and unmanaged versions installed!

For the same reason, you might give some thought about where you install mysqlpp.dll on your end user’s machines when distributing your program. My recommendation is to install it in the same directory as the .exe file that uses it, rather than installing into a system directory where it could conflict with a mysqlpp.dll built with different settings.

Once you have MySQL++ built with CLR support, open your program’s project. If you don’t already have a project set up, open Visual Studio, say File | New | Project, then choose Visual C++ | CLR | Windows Forms Application. Go through the wizard setting up the project as you see fit.

The configuration process isn’t much different from that for an MFC project, so go through the list above first. Then, make the following changes particular to .NET and C++/CLI:

  • Under Configuration Properties | General change the setting from /clr:pure to /clr. (You need mixed assembly support to allow a C++/CLI program to use a plain C++ library like MySQL++.)

  • For the Linker | Input settings, you don’t need wsock32.lib. The mere fact that you’re using .NET takes care of that dependency for you.

In the MFC instructions above, it said that you need to build it using the Multi-threaded DLL version of the C++ Runtime Library. That’s not strictly true for MFC, but it’s an absolute requirement for C++/CLI. See the Remarks in the MSDN article on the /clr switch for details.

You may want to study examples\vstudio\wforms\wforms.vcproj to see all this in action. Note that some of the paths will be different, because it can use relative paths for mysqlpp_d.dll and mysqlpp.dll.

9.2. Unixy Platforms: Linux, *BSD, OS X, Cygwin, Solaris...

There are lots of ways to build programs on Unixy platforms. We’ll cover just the most generic way here, Makefiles. We’ll use a very simple example so it’s clear how to translate this to more sophisticated build systems such as GNU Autotools or Bakefile.

“Hello, world!” for MySQL++ might look something like this:

#include <mysql++.h>

int main()
{
    mysqlpp::String greeting("Hello, world!");
    std::cout << greeting << std::endl;
    return 0;
}

Here’s a Makefile for building that program:

CXXFLAGS := -I/usr/include/mysql -I/usr/local/include/mysql++
LDFLAGS := -L/usr/local/lib
LDLIBS := -lmysqlpp -lmysqlclient
EXECUTABLE := hello

all: $(EXECUTABLE)

clean: 
    rm -f $(EXECUTABLE) *.o

The *FLAGS lines are where all of the assumptions about file and path names are laid out. Probably at least one of these assumptions isn’t true for your system, and so will require changing.

The trickiest line is the LDLIBS one. MySQL++ programs need to get built against both the MySQL and MySQL++ libraries, because MySQL++ is built on top of the MySQL C API library[24] If you’re building a threaded program, use -lmysqlclient_r instead of -lmysqlclient here. (See Section 7, “Using MySQL++ in a Multithreaded Program” for more details on building thread-aware programs.)

On some systems, the order of libraries in the LDLIBS line is important: these linkers collect symbols from right to left, so the rightmost library needs to be the most generic. In this example, MySQL++ depends on MySQL, so the MySQL C API library is rightmost.

You might need to add more libraries to the LDLIBS line. -lnsl, -lz and -lm are common. If you study how MySQL++ itself gets built on your system, you can see what it uses, and emulate that.

You may be wondering why we have used both LDLIBS and LDFLAGS here. Some Makefiles you have seen collect both types of flags in a single variable. That can work if the variable is used in the right place in the link command. However, this particular Makefile is made with GNU make in mind, and uses its standard rules implicitly. Those rules are designed to use these two variables separately like this. If you were writing your own compilation rules, you could write them in such a way that you didn’t have to do this.

Beyond that, we have a pretty vanilla Makefile, thanks in large part to the fact that the default make rules are fine for such a simple program.

9.3. OS X

Makefiles

The generic Makefile instructions above cover most of what you need to know about using Makefiles on OS X.

One thing that may trip you up on OS X is that it uses an uncommon dynamic linkage system. The easiest way to cope with this is to link your executables with the compiler, rather than call ld directly.

Another tricky bit on OS X is the concept of Universal binaries. See README-Mac-OS-X.txt for details on building a Universal version of the MySQL++ library, if you need one. By default, you only get a version tuned for the system type you build it on.

Xcode

I have no information on how to incorporate MySQL++ in an Xcode project. Send a message to the MySQL++ mailing list if you can help out here.

9.4. MinGW

Makefiles

The generic Makefile instructions above apply to MinGW’s version of GNU make as well. You will have some differences due to the platform, so here’s the adjusted Makefile:

SHELL := $(COMSPEC)
MYSQL_DIR := "c:/Program Files/MySQL/MySQL Connector C 6.1"
CXXFLAGS := -I$(MYSQL_DIR)/include -Ic:/MySQL++/include
LDFLAGS := -L$(MYSQL_DIR)/lib -Lc:/MySQL++/lib/MinGW
LDLIBS := -lmysql -lmysqlpp
EXECUTABLE := hello

all: $(EXECUTABLE)

clean: 
	del $(EXECUTABLE)

Note that I’ve used del instead of rm in the clean target. In the past, at least, MinGW make had some funny rules about whether commands in target rules would get run with sh.exe or with cmd.exe. I can’t currently get my installation of MinGW to do anything but use sh.exe by default, but that may be because I have Cygwin installed, which provides sh.exe. This explains the first line in the file, which overrides the default shell with cmd.exe, purely to get consistent behavior across platforms. If you knew all your platforms would have a better shell, you’d probably want to use that instead.

Note the use of forward slashes in the path to the MySQL Connector/C development files. GNU make uses the backslash as an escape character, so you’d have to double them if you’re unwilling to use forward slashes.

Third-Party MinGW IDEs (Dev-C++, Code::Blocks...)

I have no information on how to do this. We’ve received reports on the mailing list from people that have made it work, but no specifics on what all needs to be done. The Makefile discussion above should give you some hints.

9.5. Eclipse

As far as I can tell, the simplest way to build a C++ project with Eclipse is to set up a Makefile for it as described above, then add an external run configuration for your local make tool. Get the project building from the command line with make, then go to Run | External Tools | Open External Tools Dialog and add a new launch configuration.

For example, on my OS X system I use /usr/bin/gnumake for the program location and pick the project root with the Browse Workspace button to set the working directory.



[23] MySQL++ has many header files, but the only one that isn’t intertwined with the rest is ssqls.h. mysql++.h brings in all of the others in the correct order. Some have tried to speed their build times by finding a subset of MySQL++ headers to include, but mysql++.h already does as much of this as is practical. MySQL++’s monolithic nature rules out finding a true subset of the library headers.

[24] The MySQL C API library is most commonly called libmysqlclient on Unixy systems, though it is also known as Connector/C.

mysql++-3.2.5/doc/html/userman/tquery.html000755 000765 000024 00000030304 13515046514 021230 0ustar00tangentstaff000000 000000 4. Template Queries

4. Template Queries

Another powerful feature of MySQL++ is being able to set up template queries. These are kind of like C’s printf() facility: you give MySQL++ a string containing the fixed parts of the query and placeholders for the variable parts, and you can later substitute in values into those placeholders.

The following program demonstrates how to use this feature. This is examples/tquery1.cpp:

#include "cmdline.h"
#include "printdata.h"

#include <iostream>

using namespace std;

int
main(int argc, char *argv[])
{
    // Get database access parameters from command line
    mysqlpp::examples::CommandLine cmdline(argc, argv);
    if (!cmdline) {
        return 1;
    }

    try {
        // Establish the connection to the database server.
        mysqlpp::Connection con(mysqlpp::examples::db_name,
                cmdline.server(), cmdline.user(), cmdline.pass());

        // Build a template query to retrieve a stock item given by
        // item name.
        mysqlpp::Query query = con.query(
                "select * from stock where item = %0q");
        query.parse();

        // Retrieve an item added by resetdb; it won't be there if
        // tquery* or ssqls3 is run since resetdb.
        mysqlpp::StoreQueryResult res1 = query.store("Nürnberger Brats");
        if (res1.empty()) {
            throw mysqlpp::BadQuery("UTF-8 bratwurst item not found in "
                    "table, run resetdb");
        }

        // Replace the proper German name with a 7-bit ASCII
        // approximation using a different template query.
        query.reset();      // forget previous template query data
        query << "update stock set item = %0q where item = %1q";
        query.parse();
        mysqlpp::SimpleResult res2 = query.execute("Nuerenberger Bratwurst",
                res1[0][0].c_str());

        // Print the new table contents.
        print_stock_table(query);
    }
    catch (const mysqlpp::BadQuery& er) {
        // Handle any query errors
        cerr << "Query error: " << er.what() << endl;
        return -1;
    }
    catch (const mysqlpp::BadConversion& er) {
        // Handle bad conversions
        cerr << "Conversion error: " << er.what() << endl <<
                "\tretrieved data size: " << er.retrieved <<
                ", actual size: " << er.actual_size << endl;
        return -1;
    }
    catch (const mysqlpp::Exception& er) {
        // Catch-all for any other MySQL++ exceptions
        cerr << "Error: " << er.what() << endl;
        return -1;
    }

    return 0;
}

The line just before the call to query.parse() sets the template, and the parse call puts it into effect. From that point on, you can re-use this query by calling any of several Query member functions that accept query template parameters. In this example, we’re using Query::execute().

Let’s dig into this feature a little deeper.

4.1. Setting up Template Queries

To set up a template query, you simply insert it into the Query object, using numbered placeholders wherever you want to be able to change the query. Then, you call the parse() function to tell the Query object that the query string is a template query, and it needs to parse it:

query << "select (%2:field1, %3:field2) from stock where %1:wheref = %0q:what";
query.parse();

The format of the placeholder is:

%###(modifier)(:name)(:)

Where “###” is a number up to three digits. It is the order of parameters given to a SQLQueryParms object, starting from 0.

“modifier” can be any one of the following:

%Print an actual “%”
""Don’t quote or escape no matter what.
qThis will escape the item using the MySQL C API function mysql_escape_string() and add single quotes around it as necessary, depending on the type of the value you use.
QQuote but don’t escape based on the same rules as for “q”. This can save a bit of processing time if you know the strings will never need quoting

“:name” is for an optional name which aids in filling SQLQueryParms. Name can contain any alpha-numeric characters or the underscore. You can have a trailing colon, which will be ignored. If you need to represent an actual colon after the name, follow the name with two colons. The first one will end the name and the second one won’t be processed.

4.2. Setting the Parameters at Execution Time

To specify the parameters when you want to execute a query simply use Query::store(const SQLString &parm0, [..., const SQLString &parm11]). This type of multiple overload also exists for Query::storein(), Query::use() and Query::execute(). “parm0” corresponds to the first parameter, etc. You may specify up to 25 parameters. For example:

StoreQueryResult res = query.store("Dinner Rolls", "item", "item", "price")

with the template query provided above would produce:

select (item, price) from stock where item = "Dinner Rolls"

The reason we didn’t put the template parameters in numeric order...

select (%0:field1, %1:field2) from stock where %2:wheref = %3q:what

...will become apparent shortly.

4.3. Default Parameters

The template query mechanism allows you to set default parameter values. You simply assign a value for the parameter to the appropriate position in the Query::template_defaults array. You can refer to the parameters either by position or by name:

query.template_defaults[1] = "item";
query.template_defaults["wheref"] = "item";

Both do the same thing.

This mechanism works much like C++’s default function parameter mechanism: if you set defaults for the parameters at the end of the list, you can call one of Query’s query execution methods without passing all of the values. If the query takes four parameters and you’ve set defaults for the last three, you can execute the query using as little as just one explicit parameter.

Now you can see why we numbered the template query parameters the way we did a few sections earlier. We ordered them so that the ones less likely to change have higher numbers, so we don’t always have to pass them. We can just give them defaults and take those defaults when applicable. This is most useful when some parameters in a template query vary less often than other parameters. For example:

query.template_defaults["field1"] = "item"; 
query.template_defaults["field2"] = "price"; 
StoreQueryResult res1 = query.store("Hamburger Buns", "item"); 
StoreQueryResult res2 = query.store(1.25, "price"); 

This stores the result of the following queries in res1 and res2, respectively:

select (item, price) from stock where item = "Hamburger Buns"
select (item, price) from stock where price = 1.25

Default parameters are useful in this example because we have two queries to issue, and parameters 2 and 3 remain the same for both, while parameters 0 and 1 vary.

Some have been tempted into using this mechanism as a way to set all of the template parameters in a query:

query.template_defaults["what"] = "Hamburger Buns";
query.template_defaults["wheref"] = "item";
query.template_defaults["field1"] = "item"; 
query.template_defaults["field2"] = "price"; 
StoreQueryResult res1 = query.store();

This can work, but it is not designed to. In fact, it’s known to fail horribly in one common case. You will not get sympathy if you complain on the mailing list about it not working. If your code doesn’t actively reuse at least one of the parameters in subsequent queries, you’re abusing MySQL++, and it is likely to take its revenge on you.

4.4. Error Handling

If for some reason you did not specify all the parameters when executing the query and the remaining parameters do not have their values set via Query::template_defaults, the query object will throw a BadParamCount object. If this happens, you can get an explanation of what happened by calling BadParamCount::what(), like so:

query.template_defaults["field1"] = "item"; 
query.template_defaults["field2"] = "price"; 
StoreQueryResult res = query.store(1.25); 

This would throw BadParamCount because the wheref is not specified.

In theory, this exception should never be thrown. If the exception is thrown it probably a logic error in your program.

mysql++-3.2.5/doc/html/userman/configuration.html000755 000765 000024 00000030023 13515046514 022544 0ustar00tangentstaff000000 000000 8. Configuring MySQL++

8. Configuring MySQL++

The default configuration of MySQL++ is suitable for most purposes, but there are a few things you can change to make it meet special needs.

8.1. The Location of the MySQL Development Files

MySQL++ is built on top of the MySQL C API. (Now called Connector/C.) MySQL++ relies on this low-level library for all communication with the database server. Consequently, the build process for MySQL++ may fail if it can’t find the C API headers and library.

On platforms that use Autoconf[19], the configure script can usually figure out the location of the C API development files by itself[20] It simply tries a bunch of common installation locations until it finds one that works. If your MySQL server was installed in a nonstandard location, you will have to tell the configure script where these files are with some combination of the --with-mysql, --with-mysql-include, and --with-mysql-lib flags. See README-Unix.txt for details.

No other platform allows this sort of auto-discovery, so the build files for these platforms simply hard-code the default installation location for the current GA version of Connector/C at the time that version of MySQL++ was released. For example, the Visual C++ project files currently assume MySQL is in c:\Program Files\MySQL\MySQL Server 5.1. If you’re using some other release of MySQL or you installed it somewhere else, you will have to modify the build files. How you do this, exactly, varies based on platform and what tools you have on hand. See README-Visual-C++.txt, README-MinGW.txt, or README-Mac-OS-X.txt, as appropriate.

8.2. The Maximum Number of Fields Allowed

MySQL++ offers two ways to automatically build SQL queries at run time: Template Queries and SSQLS. There’s a limit on the number of fields these mechanisms support, defaulting to 25 fields in the official MySQL++ packages.[21] The files embodying these limits are lib/querydef.h and lib/ssqls.h, each generated by Perl scripts of the same name but with a .pl extension.

The default querydef.h is small and its size only increases linearly with respect to maximum field count.

ssqls.h is a totally different story. The default 25 field limit makes ssqls.pl generate an ssqls.h over 1 MB. Worse, the field limit to file size relation is quadratic.[22] This has a number of bad effects:

  • Generating header files to support more fields than you actually require is a waste of space and bandwidth.

  • Some compilers have arbitrary limits on the size of macros they’re able to parse. Exceeding these limits usually causes the compiler to misbehave badly, rather than fail gracefully.

  • Because it increases the size of two key files used in building MySQL++ itself and programs built on it, it increases compile times significantly. One test I did here showed a tripling of compile time from quadrupling the field limit.

  • More than 25 fields in a table is a good sign of a bad database design, most likely a denormalization problem.

The default limits try to mitigate against all of these factors while still being high enough to be useful with most DB designs.

If you’re building MySQL++ from source on a platform that uses Autoconf, the easiest way to change these limits is at configuration time:

./configure --with-field-limit=50

That causes the configuration script to pass the -f flag to the two Perl scripts named above, overriding the default of 25 fields. Obviously you need a Perl interpreter on the system for this to work, but Perl is usually installed by default on systems MySQL++ supports via Autoconf.

On all other platforms, you’ll have to give the -f flag to these scripts yourself. This may require installing Perl and putting it in the command path first. Having done that, you can do something like this to raise the limits:

cd lib
perl ssqls.pl -f 50
perl querydef.pl -f 50

Note the need to run these commands within the lib subdirectory of the MySQL++ source tree. (This is done for you automatically on systems where you are able to use the Autoconf method.)

8.3. Buried MySQL C API Headers

It’s common these days on Unixy systems to install the MySQL C API headers in a mysql directory under some common include directory. If the C API headers are in /usr/include/mysql, we say they are “buried” underneath the system’s main include directory, /usr/include. Since the MySQL++ headers depend on these C API headers, it can be useful for MySQL++ to know this fact.

When MySQL++ includes one of the C API headers, it normally does so in the obvious way:

#include <mysql.h>

But, if you define the MYSQLPP_MYSQL_HEADERS_BURIED macro, it switches to this style:

#include <mysql/mysql.h>

In common situations like the /usr/include/mysql one, this simplifies the include path options you pass to your compiler.

8.4. Building MySQL++ on Systems Without Complete C99 Support

MySQL++ uses the C99 header stdint.h for portable fixed-size integer typedefs where possible. The C99 extensions aren’t yet officially part of the C++ Standard, so there are still some C++ compilers that don’t offer this header. MySQL++ works around the lack of this header where it knows it needs to, but your platform might not be recognized, causing the build to break. If this happens, you can define the MYSQLPP_NO_STDINT_H macro to make MySQL++ use its best guess for suitable integer types instead of relying on stdint.h.

MySQL++ also uses C99’s long long data type where available. MySQL++ has workarounds for platforms where this is known not to be available, but if you get errors in common.h about this type, you can define the macro MYSQLPP_NO_LONG_LONGS to make MySQL++ fall back to portable constructs.



[19] Linux, Solaris, the BSDs, Mac OS X command line (as opposed to the Xcode IDE), Cygwin... Basically, Unix or anything that works like it.

[20] I don’t say “Connector/C” here because the name change generally hasn’t percolated out to Unixy systems. It’s more commonly used on Windows systems, since the separate Connector/C download lets them avoid installing a MySQL server just to get development headers and libraries.

[21] If you’re using a third-party MySQL++ package, its maintainer may have increased these field counts so the resulting headers more closely approach the size limit of the compiler the package was built with. In that case, you can look at the top of each generated header file to find out how many fields each supports.

[22] The file size equation, for you amateur mathematicians out there, is Nlines = 18.5f2 + 454.5f + 196.4, where f is the field count.

mysql++-3.2.5/doc/html/userman/licenses.html000755 000765 000024 00000105701 13515046514 021510 0ustar00tangentstaff000000 000000 11. Licensing

11. Licensing

The primary copyright holders on the MySQL++ library and its documentation are Kevin Atkinson (1998), MySQL AB (1999 through 2001) and Educational Technology Resources, Inc. (2004 through the date of this writing). There are other contributors, who also retain copyrights on their additions; see the ChangeLog.md file in the MySQL++ distribution tarball for details.

The MySQL++ library and its Reference Manual are released under the GNU Lesser General Public License (LGPL), reproduced below.

The MySQL++ User Manual — excepting some example code from the library reproduced within it — is offered under a license closely based on the Linux Documentation Project License (LDPL) v2.0, included below. (The MySQL++ documentation isn’t actually part of the Linux Documentation Project, so the main changes are to LDP-related language. Also, generic language such as “author’s (or authors’)” has been replaced with specific language, because the license applies to only this one document.)

These licenses basically state that you are free to use, distribute and modify these works, whether for personal or commercial purposes, as long as you grant the same rights to those you distribute the works to, whether you changed them or not. See the licenses below for full details.

11.1. GNU Lesser General Public License

Version 2.1, February 1999

Copyright (C) 1991, 1999 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.

[This is the first released version of the Lesser GPL. It also counts as the successor of the GNU Library Public License, version 2, hence the version number 2.1.]

Preamble

The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users.

This license, the Lesser General Public License, applies to some specially designated software packages--typically libraries--of the Free Software Foundation and other authors who decide to use it. You can use it too, but we suggest you first think carefully about whether this license or the ordinary General Public License is the better strategy to use in any particular case, based on the explanations below.

When we speak of free software, we are referring to freedom of use, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish); that you receive source code or can get it if you want it; that you can change the software and use pieces of it in new free programs; and that you are informed that you can do these things.

To protect your rights, we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it.

For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link other code with the library, you must provide complete object files to the recipients, so that they can relink them with the library after making changes to the library and recompiling it. And you must show them these terms so they know their rights.

We protect your rights with a two-step method: (1) we copyright the library, and (2) we offer you this license, which gives you legal permission to copy, distribute and/or modify the library.

To protect each distributor, we want to make it very clear that there is no warranty for the free library. Also, if the library is modified by someone else and passed on, the recipients should know that what they have is not the original version, so that the original author’s reputation will not be affected by problems that might be introduced by others.

Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license.

Most GNU software, including some libraries, is covered by the ordinary GNU General Public License. This license, the GNU Lesser General Public License, applies to certain designated libraries, and is quite different from the ordinary General Public License. We use this license for certain libraries in order to permit linking those libraries into non-free programs.

When a program is linked with a library, whether statically or using a shared library, the combination of the two is legally speaking a combined work, a derivative of the original library. The ordinary General Public License therefore permits such linking only if the entire combination fits its criteria of freedom. The Lesser General Public License permits more lax criteria for linking other code with the library.

We call this license the “Lesser” General Public License because it does Less to protect the user’s freedom than the ordinary General Public License. It also provides other free software developers Less of an advantage over competing non-free programs. These disadvantages are the reason we use the ordinary General Public License for many libraries. However, the Lesser license provides advantages in certain special circumstances.

For example, on rare occasions, there may be a special need to encourage the widest possible use of a certain library, so that it becomes a de-facto standard. To achieve this, non-free programs must be allowed to use the library. A more frequent case is that a free library does the same job as widely used non-free libraries. In this case, there is little to gain by limiting the free library to free software only, so we use the Lesser General Public License.

In other cases, permission to use a particular library in non-free programs enables a greater number of people to use a large body of free software. For example, permission to use the GNU C Library in non-free programs enables many more people to use the whole GNU operating system, as well as its variant, the GNU/Linux operating system.

Although the Lesser General Public License is Less protective of the users’ freedom, it does ensure that the user of a program that is linked with the Library has the freedom and the wherewithal to run that program using a modified version of the Library.

The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a “work based on the library” and a “work that uses the library”. The former contains code derived from the library, whereas the latter must be combined with the library in order to run.

GNU LESSER GENERAL PUBLIC LICENSE

TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

0. This License Agreement applies to any software library or other program which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Lesser General Public License (also called “this License”). Each licensee is addressed as “you”.

A “library” means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables.

The “Library”, below, refers to any such software library or work which has been distributed under these terms. A “work based on the Library” means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term “modification”.)

“Source code” for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library.

Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does.

1. You may copy and distribute verbatim copies of the Library’s complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library.

You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.

2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:

a) The modified work must itself be a software library.

b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change.

c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License.

d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful.

(For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.)

These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library.

In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.

3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices.

Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy.

This option is useful when you wish to copy part of the code of the Library into a program that is not a library.

4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange.

If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code.

5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a “work that uses the Library”. Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License.

However, linking a “work that uses the Library” with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a “work that uses the library”. The executable is therefore covered by this License. Section 6 states terms for distribution of such executables.

When a “work that uses the Library” uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law.

If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.)

Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself.

6. As an exception to the Sections above, you may also combine or link a “work that uses the Library” with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer’s own use and reverse engineering for debugging such modifications.

You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things:

a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable “work that uses the Library”, as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.)

b) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (1) uses at run time a copy of the library already present on the user’s computer system, rather than copying library functions into the executable, and (2) will operate properly with a modified version of the library, if the user installs one, as long as the modified version is interface-compatible with the version that the work was made with.

c) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution.

d) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place.

e) Verify that the user has already received a copy of these materials or that you have already sent this user a copy.

For an executable, the required form of the “work that uses the Library” must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the materials to be distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.

It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute.

7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things:

a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above.

b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work.

8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.

9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it.

10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients’ exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties with this License.

11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library.

If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances.

It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.

This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.

12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.

13. The Free Software Foundation may publish revised and/or new versions of the Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.

Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and “any later version”, you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation.

14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.

NO WARRANTY

15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

END OF TERMS AND CONDITIONS

How to Apply These Terms to Your New Libraries

If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License).

To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the “copyright” line and a pointer to where the full notice is found.

<one line to give the library’s name and a brief idea of what it does.>

Copyright © <year> <name of author>

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

Also add information on how to contact you by electronic and paper mail.

You should also get your employer (if you work as a programmer) or your school, if any, to sign a “copyright disclaimer” for the library, if necessary. Here is a sample; alter the names:

Yoyodyne, Inc., hereby disclaims all copyright interest in the library `Frob' (a library for tweaking knobs) written by James Random Hacker.

<signature of Ty Coon>, 1 April 1990

Ty Coon, President of Vice

That’s all there is to it!

11.2. MySQL++ User Manual License

I. COPYRIGHT

The copyright to the MySQL++ User Manual is owned by its authors.

II. LICENSE

The MySQL++ User Manual may be reproduced and distributed in whole or in part, in any medium physical or electronic, provided that this license notice is displayed in the reproduction. Commercial redistribution is permitted and encouraged. Thirty days advance notice via email to the authors of redistribution is appreciated, to give the authors time to provide updated documents.

A. REQUIREMENTS OF MODIFIED WORKS

All modified documents, including translations, anthologies, and partial documents, must meet the following requirements:

  1. The modified version must be labeled as such.

  2. The person making the modifications must be identified.

  3. Acknowledgement of the original author must be retained.

  4. The location of the original unmodified document be identified.

  5. The original authors’ names may not be used to assert or imply endorsement of the resulting document without the original authors’ permission.

In addition it is requested that:

  1. The modifications (including deletions) be noted.

  2. The authors be notified by email of the modification in advance of redistribution, if an email address is provided in the document.

Mere aggregation of the MySQL++ User Manual with other documents or programs on the same media shall not cause this license to apply to those other works.

All translations, derivative documents, or modified documents that incorporate the MySQL++ User Manual may not have more restrictive license terms than these, except that you may require distributors to make the resulting document available in source format.

mysql++-3.2.5/doc/html/userman/overview.html000755 000765 000024 00000027415 13515046514 021556 0ustar00tangentstaff000000 000000 2. Overview

2. Overview

MySQL++ has a lot of complexity and power to cope with the variety of ways people use databases, but at bottom it doesn’t work all that differently than other database access APIs. The usage pattern looks like this:

  1. Open the connection

  2. Form and execute the query

  3. If successful, iterate through the result set

  4. Else, deal with errors

Each of these steps corresponds to a MySQL++ class or class hierarchy. An overview of each follows.

2.1. The Connection Object

A Connection object manages the connection to the MySQL server. You need at least one of these objects to do anything. Because the other MySQL++ objects your program will use often depend (at least indirectly) on the Connection instance, the Connection object needs to live at least as long as all other MySQL++ objects in your program.

MySQL supports many different types of data connection between the client and the server: TCP/IP, Unix domain sockets, and Windows named pipes. The generic Connection class supports all of these, figuring out which one you mean based on the parameters you pass to Connection::connect(). But if you know in advance that your program only needs one particular connection type, there are subclasses with simpler interfaces. For example, there’s TCPConnection if you know your program will always use a networked database server.

2.2. The Query Object

Most often, you create SQL queries using a Query object created by the Connection object.

Query acts as a standard C++ output stream, so you can write data to it like you would to std::cout or std::ostringstream. This is the most C++ish way MySQL++ provides for building up a query string. The library includes stream manipulators that are type-aware so it’s easy to build up syntactically-correct SQL.

Query also has a feature called Template Queries which work something like C’s printf() function: you set up a fixed query string with tags inside that indicate where to insert the variable parts. If you have multiple queries that are structurally similar, you simply set up one template query, and use that in the various locations of your program.

A third method for building queries is to use Query with SSQLS. This feature lets you create C++ structures that mirror your database schemas. These in turn give Query the information it needs to build many common SQL queries for you. It can INSERT, REPLACE and UPDATE rows in a table given the data in SSQLS form. It can also generate SELECT * FROM SomeTable queries and store the results as an STL collection of SSQLSes.

2.3. Result Sets

The field data in a result set are stored in a special std::string-like class called String. This class has conversion operators that let you automatically convert these objects to any of the basic C data types. Additionally, MySQL++ defines classes like DateTime, which you can initialize from a MySQL DATETIME string. These automatic conversions are protected against bad conversions, and can either set a warning flag or throw an exception, depending on how you set the library up.

As for the result sets as a whole, MySQL++ has a number of different ways of representing them:

Queries That Do Not Return Data

Not all SQL queries return data. An example is CREATE TABLE. For these types of queries, there is a special result type (SimpleResult) that simply reports the state resulting from the query: whether the query was successful, how many rows it impacted (if any), etc.

Queries That Return Data: MySQL++ Data Structures

The most direct way to retrieve a result set is to use Query::store(). This returns a StoreQueryResult object, which derives from std::vector<mysqlpp::Row>, making it a random-access container of Rows. In turn, each Row object is like a std::vector of String objects, one for each field in the result set. Therefore, you can treat StoreQueryResult as a two-dimensional array: you can get the 5th field on the 2nd row by simply saying result[1][4]. You can also access row elements by field name, like this: result[2]["price"].

A less direct way of working with query results is to use Query::use(), which returns a UseQueryResult object. This class acts like an STL input iterator rather than a std::vector: you walk through your result set processing one row at a time, always going forward. You can’t seek around in the result set, and you can’t know how many results are in the set until you find the end. In payment for that inconvenience, you get better memory efficiency, because the entire result set doesn’t need to be stored in RAM. This is very useful when you need large result sets.

Queries That Return Data: Specialized SQL Structures

Accessing results through MySQL++’s data structures is a pretty low level of abstraction. It’s better than using the MySQL C API, but not by much. You can elevate things a little closer to the level of the problem space by using the SSQLS feature. This lets you define C++ structures that match the table structures in your database schema. In addition, it’s easy to use SSQLSes with regular STL containers (and thus, algorithms) so you don’t have to deal with the quirks of MySQL++’s data structures.

The advantage of this method is that your program will require very little embedded SQL code. You can simply execute a query, and receive your results as C++ data structures, which can be accessed just as you would any other structure. The results can be accessed through the Row object, or you can ask the library to dump the results into an STL container — sequential or set-associative, it doesn’t matter — for you. Consider this:

vector<stock> v;
query << "SELECT * FROM stock";
query.storein(v);
for (vector<stock>::iterator it = v.begin(); it != v.end(); ++it) {
  cout << "Price: " << it->price << endl;
}

Isn’t that slick?

If you don’t want to create SSQLSes to match your table structures, as of MySQL++ v3 you can now use Row here instead:

vector<mysqlpp::Row> v;
query << "SELECT * FROM stock";
query.storein(v);
for (vector<mysqlpp::Row>::iterator it = v.begin(); it != v.end(); ++it) {
  cout << "Price: " << it->at("price") << endl;
}

It lacks a certain syntactic elegance, but it has its uses.

2.4. Exceptions

By default, the library throws exceptions whenever it encounters an error. You can ask the library to set an error flag instead, if you like, but the exceptions carry more information. Not only do they include a string member telling you why the exception was thrown, there are several exception types, so you can distinguish between different error types within a single try block.

mysql++-3.2.5/doc/html/userman/unicode.html000755 000765 000024 00000032477 13515046514 021342 0ustar00tangentstaff000000 000000 6. Using Unicode with MySQL++

6. Using Unicode with MySQL++

6.1. A Short History of Unicode

...with a focus on relevance to MySQL++

In the old days, computer operating systems only dealt with 8-bit character sets. That only allows for 256 possible characters, but the modern Western languages have more characters combined than that alone. Add in all the other languages of the world plus the various symbols people use in writing, and you have a real mess!

Since no standards body held sway over things like international character encoding in the early days of computing, many different character sets were invented. These character sets weren’t even standardized between operating systems, so heaven help you if you needed to move localized Greek text on a DOS box to a Russian Macintosh! The only way we got any international communication done at all was to build standards on top of the common 7-bit ASCII subset. Either people used approximations like a plain “c” instead of the French “ç”, or they invented things like HTML entities (“&ccedil;” in this case) to encode these additional characters using only 7-bit ASCII.

Unicode solves this problem. It encodes every character used for writing in the world, using up to 4 bytes per character. Before emoji became popular, the subset covering the most economically valuable cases fit into the lower 65536 code points, so you could encode most texts using only two bytes per character. Many nominally Unicode-aware programs only support this subset, called the Basic Multilingual Plane, or BMP.

Unfortunately, Unicode was invented about two decades too late for Unix and C. Those decades of legacy created an immense inertia preventing a widespread move away from 8-bit characters. MySQL and C++ come out of these older traditions, and so they share the same practical limitations. MySQL++ doesn’t have any code in it for Unicode conversions, and it likely never will; it just passes data along unchanged from the underlying MySQL C API, so you still need to be aware of these underlying issues.

During the development of the Plan 9 operating system (a kind of successor to Unix) Ken Thompson invented the UTF-8 encoding. UTF-8 is a superset of 7-bit ASCII and is compatible with C strings, since it doesn’t use 0 bytes anywhere as multi-byte Unicode encodings do. As a result, many programs that deal in text will cope with UTF-8 data even though they have no explicit support for UTF-8. Follow the last link above to see how the design of UTF-8 allows this.

6.2. Unicode in MySQL

Since MySQL comes out of the Unix world, and it predates the widespread use of UTF-8 in Unix, the early versinos of MySQL had no explicit support for Unicode. From the start, you could store raw UTF-8 strings, but it wouldn’t know how to do things like sort a column of UTF-8 strings.

MySQL 4.1 added the first explicit support for Unicode. This version of MySQL supported only the BMP, meaning that if you told it to expect strings to be in UTF-8, it could only use up to 3 bytes per character.

MySQL 5.5 was the first release to completely support Unicode. Because the BMP-only Unicode support had been in the wild for about 6 years by that point, and changing to the new character set requires a table rebuild, the new one was called “utf8mb4” rather than change the longstanding meaning of “utf8” in MySQL. This release also added a new alias for the old UTF-8 subset character set, “utf8mb3.”

Finally, in MySQL 8.0, “utf8mb4” became the default character set. For backwards compatibility, “utf8” remains an alias for “utf8mb3.”

As of MySQL++ 3.2.4, we’ve defined the MYSQLPP_UTF8_CS and MYSQLPP_UTF8_COL macros which expand to “utf8mb4” and “utf8mb4_general_ci” when you build MySQL++ against MySQL 5.5 and newer and to “utf8” and “utf8_general_ci” otherwise. We use these macros in our resetdb example; you're welcome to use them in your code as well.

6.3. Unicode on Unixy Systems

Linux and Unix have system-wide UTF-8 support these days. If your operating system is of 2001 or newer vintage, it probably has such support.

On such a system, the terminal I/O code understands UTF-8 encoded data, so your program doesn’t require any special code to correctly display a UTF-8 string. If you aren’t sure whether your system supports UTF-8 natively, just run the simple1 example: if the first item has two high-ASCII characters in place of the “ü” in “Nürnberger Brats”, you know it’s not handling UTF-8.

If your Unix doesn’t support UTF-8 natively, it likely doesn’t support any form of Unicode at all, for the historical reasons I gave above. Therefore, you will have to convert the UTF-8 data to the local 8-bit character set. The standard Unix function iconv() can help here. If your system doesn’t have the iconv() facility, there is a free implementation available from the GNU Project. Another library you might check out is IBM’s ICU. This is rather heavy-weight, so if you just need basic conversions, iconv() should suffice.

6.4. Unicode on Windows

Each Windows API function that takes a string actually comes in two versions. One version supports only 1-byte “ANSI” characters (a superset of ASCII), so they end in 'A'. Windows also supports the 2-byte subset of Unicode called UCS-2[17]. Some call these “wide” characters, so the other set of functions end in 'W'. The MessageBox() API, for instance, is actually a macro, not a real function. If you define the UNICODE macro when building your program, the MessageBox() macro evaluates to MessageBoxW(); otherwise, to MessageBoxA().

Since MySQL uses the UTF-8 Unicode encoding and Windows uses UCS-2, you must convert data when passing text between MySQL++ and the Windows API. Since there’s no point in trying for portability — no other OS I’m aware of uses UCS-2 — you might as well use platform-specific functions to do this translation. Since version 2.2.2, MySQL++ ships with two Visual C++ specific examples showing how to do this in a GUI program. (In earlier versions of MySQL++, we did Unicode conversion in the console mode programs, but this was unrealistic.)

How you handle Unicode data depends on whether you’re using the native Windows API, or the newer .NET API. First, the native case:

// Convert a C string in UTF-8 format to UCS-2 format.
void ToUCS2(LPTSTR pcOut, int nOutLen, const char* kpcIn)
{
  MultiByteToWideChar(CP_UTF8, 0, kpcIn, -1, pcOut, nOutLen);
}

// Convert a UCS-2 string to C string in UTF-8 format.
void ToUTF8(char* pcOut, int nOutLen, LPCWSTR kpcIn)
{
  WideCharToMultiByte(CP_UTF8, 0, kpcIn, -1, pcOut, nOutLen, 0, 0);
}

These functions leave out some important error checking, so see examples/vstudio/mfc/mfc_dlg.cpp for the complete version.

If you’re building a .NET application (such as, perhaps, because you’re using Windows Forms), it’s better to use the .NET libraries for this:

// Convert a C string in UTF-8 format to a .NET String in UCS-2 format.
String^ ToUCS2(const char* utf8)
{
  return gcnew String(utf8, 0, strlen(utf8), System::Text::Encoding::UTF8);
}

// Convert a .NET String in UCS-2 format to a C string in UTF-8 format.
System::Void ToUTF8(char* pcOut, int nOutLen, String^ sIn)
{
  array<Byte>^ bytes = System::Text::Encoding::UTF8->GetBytes(sIn);
  nOutLen = Math::Min(nOutLen - 1, bytes->Length);
  System::Runtime::InteropServices::Marshal::Copy(bytes, 0,
    IntPtr(pcOut), nOutLen);
  pcOut[nOutLen] = '\0';
}

Unlike the native API versions, these examples are complete, since the .NET platform handles a lot of things behind the scenes for us. We don’t need any error-checking code for such simple routines.

All of this assumes you’re using Windows NT or one of its direct descendants: Windows 2000, Windows XP, Windows Vista, Windows 7, or any “Server” variant of Windows. Windows 95 and its descendants (98, ME, and CE) do not support Unicode. They still have the 'W' APIs for compatibility, but they just smash the data down to 8-bit and call the 'A' version for you.

6.5. For More Information

The Unicode FAQs page has copious information on this complex topic.

When it comes to Unix and UTF-8 specific items, the UTF-8 and Unicode FAQ for Unix/Linux is a quicker way to find basic information.



[17] Since Windows XP, Windows actually uses the UTF-16 encoding, not UCS-2. This means that if you use characters beyond the 16-bit BMP range, they get encoded as 4-byte characters. But again, since the most economically valuable subset of Unicode is the BMP if you ignore emoji, many programs ignore this distinction and assume Unicode strings on Windows are always 2 bytes per character.

mysql++-3.2.5/doc/html/userman/threads.html000755 000765 000024 00000066253 13515046514 021345 0ustar00tangentstaff000000 000000 7. Using MySQL++ in a Multithreaded Program

7. Using MySQL++ in a Multithreaded Program

MySQL++ is not “thread safe” in any meaningful sense. MySQL++ contains very little code that actively prevents trouble with threads, and all of it is optional. We have done some work in MySQL++ to make thread safety achievable, but it doesn’t come for free.

The main reason for this is that MySQL++ is generally I/O-bound, not processor-bound. That is, if your program’s bottleneck is MySQL++, the ultimate cause is usually the I/O overhead of using a client-server database. Doubling the number of threads will just let your program get back to waiting for I/O twice as fast. Since threads are evil and generally can’t help MySQL++, the only optional thread awareness features we turn on in the shipping version of MySQL++ are those few that have no practical negative consequences. Everything else is up to you, the programmer, to evaluate and enable as and when you need it.

We’re going to assume that you are reading this chapter because you find yourself needing to use threads for some other reason than to speed up MySQL access. Our purpose here is limited to setting down the rules for avoiding problems with MySQL++ in a multi-threaded program. We won’t go into the broader issues of thread safety outside the scope of MySQL++. You will need a grounding in threads in general to get the full value of this advice.

7.1. Build Issues

Before you can safely use MySQL++ with threads, there are several things you must do to get a thread-aware build:

  1. Build MySQL++ itself with thread awareness turned on.

    On Linux, Cygwin and Unix (OS X, *BSD, Solaris...), pass the --enable-thread-check flag to the configure script. Beware, this is only a request to the configure script to look for thread support on your system, not a requirement to do or die: if the script doesn’t find what it needs to do threading, MySQL++ will just get built without thread support. See README-Unix.txt for more details.

    On Windows, if you use the Visual C++ project files or the MinGW Makefile that comes with the MySQL++ distribution, threading is always turned on, due to the nature of Windows.

    If you build MySQL++ in some other way, such as with Dev-Cpp (based on MinGW) you’re on your own to enable thread awareness.

  2. Link your program to a thread-aware build of the MySQL C API library.

    If you use a binary distribution of MySQL on Unixy systems (including Cygwin) you usually get two different versions of the MySQL C API library, one with thread support and one without. These are typically called libmysqlclient and libmysqlclient_r, the latter being the thread-safe one. (The “_r” means reentrant.)

    If you’re using the Windows binary distribution of MySQL, you should have only one version of the C API library, which should be thread-aware. If you have two, you probably just have separate debug and optimized builds. See README-Visual-C++.txt or README-MinGW.txt for details.

    If you build MySQL from source, you might only get one version of the MySQL C API library, and it can have thread awareness or not, depending on your configuration choices.

  3. Enable threading in your program’s build options.

    This is different for every platform, but it’s usually the case that you don’t get thread-aware builds by default. Depending on the platform, you might need to change compiler options, linker options, or both. See your development environment’s documentation, or study how MySQL++ itself turns on thread-aware build options when requested.

7.2. Connection Management

The MySQL C API underpinning MySQL++ does not allow multiple concurrent queries on a single connection. You can run into this problem in a single-threaded program, too, which is why we cover the details elsewhere, in Section 3.16, “Concurrent Queries on a Connection”. It’s a thornier problem when using threads, though.

The simple fix is to just create a separarate Connection object for each thread that needs to make database queries. This works well if you have a small number of threads that need to make queries, and each thread uses its connection often enough that the server doesn’t time out waiting for queries.

If you have lots of threads or the frequency of queries is low, the connection management overhead will be excessive. To avoid that, we created the ConnectionPool class. It manages a pool of Connection objects like library books: a thread checks one out, uses it, and then returns it to the pool as soon as it’s done with it. This keeps the number of active connections low. We suggest that you keep each connection’s use limited to a single variable scope for RAII reasons; we created a little helper called ScopedConnection to make that easy.

ConnectionPool has three methods that you need to override in a subclass to make it concrete: create(), destroy(), and max_idle_time(). These overrides let the base class delegate operations it can’t successfully do itself to its subclass. The ConnectionPool can’t know how to create() the Connection objects, because that depends on how your program gets login parameters, server information, etc. ConnectionPool also makes the subclass destroy() the Connection objects it created; it could assume that they’re simply allocated on the heap with new, but it can’t be sure, so the base class delegates destruction, too. Finally, the base class can’t know which connection idle timeout policy would make the most sense to the client, so it asks its subclass via the max_idle_time() method.

ConnectionPool also allows you to override release(), if needed. For simple uses, it’s not necessary to override this.

In designing your ConnectionPool derivative, you might consider making it a Singleton, since there should only be one pool in a program.

Another thing you might consider doing is passing a ReconnectOption object to Connection::set_option() in your create() override before returning the new Connection pointer. This will cause the underlying MySQL C API to try to reconnect to the database server if a query fails because the connection was dropped by the server. This can happen if the DB server is allowed to restart out from under your application. In many applications, this isn’t allowed, or if it does happen, you might want your code to be able to detect it, so MySQL++ doesn’t set this option for you automatically.

Here is an example showing how to use connection pools with threads:

#include "cmdline.h"
#include "threads.h"

#include <iostream>

using namespace std;


#if defined(HAVE_THREADS)
// Define a concrete ConnectionPool derivative.  Takes connection
// parameters as inputs to its ctor, which it uses to create the
// connections we're called upon to make.  Note that we also declare
// a global pointer to an object of this type, which we create soon
// after startup; this should be a common usage pattern, as what use
// are multiple pools?
class SimpleConnectionPool : public mysqlpp::ConnectionPool
{
public:
    // The object's only constructor
    SimpleConnectionPool(mysqlpp::examples::CommandLine& cl) :
    conns_in_use_(0),
    db_(mysqlpp::examples::db_name),
    server_(cl.server()),
    user_(cl.user()),
    password_(cl.pass())
    {
    }

    // The destructor.  We _must_ call ConnectionPool::clear() here,
    // because our superclass can't do it for us.
    ~SimpleConnectionPool()
    {
        clear();
    }

    // Do a simple form of in-use connection limiting: wait to return
    // a connection until there are a reasonably low number in use
    // already.  Can't do this in create() because we're interested in
    // connections actually in use, not those created.  Also note that
    // we keep our own count; ConnectionPool::size() isn't the same!
    mysqlpp::Connection* grab()
    {
        while (conns_in_use_ > 8) {
            cout.put('R'); cout.flush(); // indicate waiting for release
            sleep(1);
        }

        ++conns_in_use_;
        return mysqlpp::ConnectionPool::grab();
    }

    // Other half of in-use conn count limit
    void release(const mysqlpp::Connection* pc)
    {
        mysqlpp::ConnectionPool::release(pc);
        --conns_in_use_;
    }

protected:
    // Superclass overrides
    mysqlpp::Connection* create()
    {
        // Create connection using the parameters we were passed upon
        // creation.  This could be something much more complex, but for
        // the purposes of the example, this suffices.
        cout.put('C'); cout.flush(); // indicate connection creation
        return new mysqlpp::Connection(
                db_.empty() ? 0 : db_.c_str(),
                server_.empty() ? 0 : server_.c_str(),
                user_.empty() ? 0 : user_.c_str(),
                password_.empty() ? "" : password_.c_str());
    }

    void destroy(mysqlpp::Connection* cp)
    {
        // Our superclass can't know how we created the Connection, so
        // it delegates destruction to us, to be safe.
        cout.put('D'); cout.flush(); // indicate connection destruction
        delete cp;
    }

    unsigned int max_idle_time()
    {
        // Set our idle time at an example-friendly 3 seconds.  A real
        // pool would return some fraction of the server's connection
        // idle timeout instead.
        return 3;
    }

private:
    // Number of connections currently in use
    unsigned int conns_in_use_;

    // Our connection parameters
    std::string db_, server_, user_, password_;
};
SimpleConnectionPool* poolptr = 0;


static thread_return_t CALLBACK_SPECIFIER
worker_thread(thread_arg_t running_flag)
{
    // Ask the underlying C API to allocate any per-thread resources it
    // needs, in case it hasn't happened already.  In this particular
    // program, it's almost guaranteed that the safe_grab() call below
    // will create a new connection the first time through, and thus
    // allocate these resources implicitly, but there's a nonzero chance
    // that this won't happen.  Anyway, this is an example program,
    // meant to show good style, so we take the high road and ensure the
    // resources are allocated before we do any queries.
    mysqlpp::Connection::thread_start();
    cout.put('S'); cout.flush(); // indicate thread started

    // Pull data from the sample table a bunch of times, releasing the
    // connection we use each time.
    for (size_t i = 0; i < 6; ++i) {
        // Go get a free connection from the pool, or create a new one
        // if there are no free conns yet.  Uses safe_grab() to get a
        // connection from the pool that will be automatically returned
        // to the pool when this loop iteration finishes.
        mysqlpp::ScopedConnection cp(*poolptr, true);
        if (!cp) {
            cerr << "Failed to get a connection from the pool!" << endl;
            break;
        }

        // Pull a copy of the sample stock table and print a dot for
        // each row in the result set.
        mysqlpp::Query query(cp->query("select * from stock"));
        mysqlpp::StoreQueryResult res = query.store();
        for (size_t j = 0; j < res.num_rows(); ++j) {
            cout.put('.');
        }

        // Delay 1-4 seconds before doing it again.  Because this can
        // delay longer than the idle timeout, we'll occasionally force
        // the creation of a new connection on the next loop.
        sleep(rand() % 4 + 1);  
    }

    // Tell main() that this thread is no longer running
    *reinterpret_cast<bool*>(running_flag) = false;
    cout.put('E'); cout.flush(); // indicate thread ended
    
    // Release the per-thread resources before we exit
    mysqlpp::Connection::thread_end();

    return 0;
}
#endif


int
main(int argc, char *argv[])
{
#if defined(HAVE_THREADS)
    // Get database access parameters from command line
    mysqlpp::examples::CommandLine cmdline(argc, argv);
    if (!cmdline) {
        return 1;
    }

    // Create the pool and grab a connection.  We do it partly to test
    // that the parameters are good before we start doing real work, and
    // partly because we need a Connection object to call thread_aware()
    // on to check that it's okay to start doing that real work.  This
    // latter check should never fail on Windows, but will fail on most
    // other systems unless you take positive steps to build with thread
    // awareness turned on.  See README-*.txt for your platform.
    poolptr = new SimpleConnectionPool(cmdline);
    try {
        mysqlpp::ScopedConnection cp(*poolptr, true);
        if (!cp->thread_aware()) {
            cerr << "MySQL++ wasn't built with thread awareness!  " <<
                    argv[0] << " can't run without it." << endl;
            return 1;
        }
    }
    catch (mysqlpp::Exception& e) {
        cerr << "Failed to set up initial pooled connection: " <<
                e.what() << endl;
        return 1;
    }

    // Setup complete.  Now let's spin some threads...
    cout << endl << "Pool created and working correctly.  Now to do "
            "some real work..." << endl;
    srand((unsigned int)time(0));
    bool running[] = {
            true, true, true, true, true, true, true,
            true, true, true, true, true, true, true };
    const size_t num_threads = sizeof(running) / sizeof(running[0]);
    size_t i;
    for (i = 0; i < num_threads; ++i) {
        if (int err = create_thread(worker_thread, running + i)) {
            cerr << "Failed to create thread " << i <<
                    ": error code " << err << endl;
            return 1;
        }
    }

    // Test the 'running' flags every second until we find that they're
    // all turned off, indicating that all threads are stopped.
    cout.put('W'); cout.flush(); // indicate waiting for completion
    do {
        sleep(1);
        i = 0;
        while (i < num_threads && !running[i]) ++i;
    }
    while (i < num_threads);
    cout << endl << "All threads stopped!" << endl;

    // Shut it all down...
    delete poolptr;
    cout << endl;
#else
    (void)argc;     // warning squisher
    cout << argv[0] << " requires that threads be enabled!" << endl;
#endif

    return 0;
}

The example works with both Windows native threads and with POSIX threads.[18] Because thread-enabled builds are only the default on Windows, it’s quite possible for this program to do nothing on other platforms. See above for instructions on enabling a thread-aware build.

If you write your code without checks for thread support like you see in the code above and link it to a build of MySQL++ that isn’t thread-aware, it will still try to run. The threading mechanisms fall back to a single-threaded mode when threads aren’t available. A particular danger is that the mutex lock mechanism used to keep the pool’s internal data consistent while multiple threads access it will just quietly become a no-op if MySQL++ is built without thread support. We do it this way because we don’t want to make thread support a MySQL++ prerequisite. And, although it would be of limited value, this lets you use ConnectionPool in single-threaded programs.

You might wonder why we don’t just work around this weakness in the C API transparently in MySQL++ instead of suggesting design guidelines to avoid it. We’d like to do just that, but how?

If you consider just the threaded case, you could argue for the use of mutexes to protect a connection from trying to execute two queries at once. The cure is worse than the disease: it turns a design error into a performance sap, as the second thread is blocked indefinitely waiting for the connection to free up. Much better to let the program get the “Commands out of sync” error, which will guide you to this section of the manual, which tells you how to avoid the error with a better design.

Another option would be to bury ConnectionPool functionality within MySQL++ itself, so the library could create new connections at need. That’s no good because the above example is the most complex in MySQL++, so if it were mandatory to use connection pools, the whole library would be that much more complex to use. The whole point of MySQL++ is to make using the database easier. MySQL++ offers the connection pool mechanism for those that really need it, but an option it must remain.

7.3. Helper Functions

Connection has several thread-related static methods you might care about when using MySQL++ with threads.

You can call Connection::thread_aware() to determine whether MySQL++ and the underlying C API library were both built to be thread-aware. I want to stress that thread awareness is not the same thing as thread safety: it’s still up to you to make your code thread-safe. If this method returns true, it just means it’s possible to achieve thread-safety, not that you actually have it.

If your program’s connection-management strategy allows a thread to use a Connection object that another thread created, you need to know about Connection::thread_start(). This function sets up per-thread resources needed to make MySQL server calls. You don’t need to call it when you use the simple Connection-per-thread strategy, because this function is implicitly called the first time you create a Connection in a thread. It’s not harmful to call this function from a thread that previously created a Connection, just unnecessary. The only time it’s necessary is when a thread can make calls to the database server on a Connection that another thread created and that thread hasn’t already created a Connection itself.

If you use ConnectionPool, you should call thread_start() at the start of each worker thread because you probably can’t reliably predict whether your grab() call will create a new Connection or will return one previously returned to the pool from another thread. It’s possible to conceive of situations where you can guarantee that each pool user always creates a fresh Connection the first time it calls grab(), but thread programming is complex enough that it’s best to take the safe path and always call thread_start() early in each worker thread.

Finally, there’s the complementary method, Connection::thread_end(). Strictly speaking, it’s not necessary to call this. The per-thread memory allocated by the C API is small, it doesn’t grow over time, and a typical thread is going to need this memory for its entire run time. Memory debuggers aren’t smart enough to know all this, though, so they will gripe about a memory leak unless you call this from each thread that uses MySQL++ before that thread exits.

Although its name suggests otherwise, Connection::thread_id() has nothing to do with anything in this chapter.

7.4. Sharing MySQL++ Data Structures

We’re in the process of making it safer to share MySQL++’s data structures across threads. Although things are getting better, it’s highly doubtful that all problems with this are now fixed. By way of illustration, allow me explain one aspect of this problem and how we solved it in MySQL++ 3.0.0.

When you issue a database query that returns rows, you also get information about the columns in each row. Since the column information is the same for each row in the result set, older versions of MySQL++ kept this information in the result set object, and each Row kept a pointer back to the result set object that created it so it could access this common data at need. This was fine as long as each result set object outlived the Row objects it returned. It required uncommon usage patterns to run into trouble in this area in a single-threaded program, but in a multi-threaded program it was easy. For example, there’s frequently a desire to let one connection do the queries, and other threads process the results. You can see how avoiding lifetime problems here would require a careful locking strategy.

We got around this in MySQL++ v3.0 by giving these shared data structures a lifetime independent of the result set object that intitially creates it. These shared data structures stick around until the last object needing them gets destroyed.

Although this is now a solved problem, I bring it up because there are likely other similar lifetime and sequencing problems waiting to be discovered inside MySQL++. If you would like to help us find these, by all means, share data between threads willy-nilly. We welcome your crash reports on the MySQL++ mailing list. But if you’d prefer to avoid problems, it’s better to keep all data about a query within a single thread. Between this and the advice in prior sections, you should be able to use threads with MySQL++ without trouble.



[18] The file examples/threads.h contains a few macros and such to abstract away the differences between the two threading models.

mysql++-3.2.5/doc/html/userman/ssqls.html000755 000765 000024 00000213606 13515046514 021054 0ustar00tangentstaff000000 000000 5. Specialized SQL Structures

5. Specialized SQL Structures

The Specialized SQL Structure (SSQLS) feature lets you easily define C++ structures that match the form of your SQL tables. At the most superficial level, an SSQLS has a member variable corresponding to each field in the SQL table. But, an SSQLS also has several methods, operators, and data members used by MySQL++’s internals to provide neat functionality, which we cover in this chapter.

You define SSQLSes using the macros defined in ssqls.h. This is the only MySQL++ header not automatically included for you by mysql++.h. You have to include it in code modules that use the SSQLS feature.

5.1. sql_create

Let’s say you have the following SQL table:

CREATE TABLE stock (
    item CHAR(30) NOT NULL,
    num BIGINT NOT NULL,
    weight DOUBLE NOT NULL,
    price DECIMAL(6,2) NOT NULL,
    sdate DATE NOT NULL,
    description MEDIUMTEXT NULL)

You can create a C++ structure corresponding to this table like so:

sql_create_6(stock, 1, 6,
    mysqlpp::sql_char, item,
    mysqlpp::sql_bigint, num,
    mysqlpp::sql_double, weight,
    mysqlpp::sql_decimal, price,
    mysqlpp::sql_date, sdate,
    mysqlpp::Null<mysqlpp::sql_mediumtext>, description)

This declares the stock structure, which has a data member for each SQL column, using the same names. The structure also has a number of member functions, operators and hidden data members, but we won’t go into that just now.

The parameter before each field name in the sql_create_# call is the C++ data type that will be used to hold that value in the SSQLS. While you could use plain old C++ data types for most of these columns (long int instead of mysqlpp::sql_bigint, for example) it’s best to use the MySQL++ typedefs.

Sometimes you have no choice but to use special MySQL++ data types to fully express the database schema. Consider the description field. MySQL++’s sql_mediumtext type is just an alias for std::string, since we don’t need anything fancier to hold a SQL MEDIUMTEXT value. It’s the SQL NULL attribute that causes trouble: it has no equivalent in the C++ type system. MySQL++ offers the Null template, which bridges this difference between the two type systems.

The general format of this macro is:

sql_create_#(NAME, COMPCOUNT, SETCOUNT, TYPE1, ITEM1, ... TYPE#, ITEM#)

where # is the number of member variables, NAME is the name of the structure you wish to create, TYPEx is the type of a member variable, and ITEMx is that variable’s name.

The COMPCOUNT and SETCOUNT arguments are described in the next section.

5.2. SSQLS Comparison and Initialization

The sql_create_# macro adds member functions and operators to each SSQLS that allow you to compare one SSQLS instance to another. These functions compare the first COMPCOUNT fields in the structure. In the example above, COMPCOUNT is 1, so only the item field will be checked when comparing two stock structures.

This feature works best when your table’s “key” fields are the first ones in the SSQLS and you set COMPCOUNT equal to the number of key fields. That way, a check for equality between two SSQLS structures in your C++ code will give the same results as a check for equality in SQL.

COMPCOUNT must be at least 1. The current implementation of sql_create_# cannot create an SSQLS without comparison member functions.

Because our stock structure is less-than-comparable, you can use it in STL algorithms and containers that require this, such as STL’s associative containers:

std::set<stock> result;   
query.storein(result);
cout << result.lower_bound(stock("Hamburger"))->item << endl;

This will print the first item in the result set that begins with “Hamburger.”

The third parameter to sql_create_# is SETCOUNT. If this is nonzero, it adds an initialization constructor and a set() member function taking the given number of arguments, for setting the first N fields of the structure. For example, you could change the above example like so:

sql_create_6(stock, 1, 2,
    mysqlpp::sql_char, item,
    mysqlpp::sql_bigint, num,         
    mysqlpp::sql_double, weight,  
    mysqlpp::sql_decimal, price,  
    mysqlpp::sql_date, sdate,
    mysqlpp::Null<mysqlpp::sql_mediumtext>, description)
    
stock foo("Hotdog", 52);

In addition to this 2-parameter constructor, this version of the stock SSQLS will have a similar 2-parameter set() member function.

The COMPCOUNT and SETCOUNT values cannot be equal. If they are, the macro will generate two initialization constructors with identical parameter lists, which is illegal in C++. You might be asking, why does there need to be a constructor for comparison to begin with? It’s often convenient to be able to say something like x == stock("Hotdog"). This requires that there be a constructor taking COMPCOUNT arguments to create the temporary stock instance used in the comparison.

This limitation is not a problem in practice. If you want the same number of parameters in the initialization constructor as the number of fields used in comparisons, pass 0 for SETCOUNT. This suppresses the duplicate constructor you’d get if you used the COMPCOUNT value instead. This is most useful in very small SSQLSes, since it’s easier for the number of key fields to equal the number of fields you want to compare on:

sql_create_1(stock_item, 1, 0, mysqlpp::sql_char, item)

5.3. Retrieving data

Let’s put SSQLS to use. This is examples/ssqls1.cpp:

#include "cmdline.h"
#include "printdata.h"
#include "stock.h"

#include <iostream>
#include <vector>

using namespace std;

int
main(int argc, char *argv[])
{
    // Get database access parameters from command line
    mysqlpp::examples::CommandLine cmdline(argc, argv);
    if (!cmdline) {
        return 1;
    }

    try {                       
        // Establish the connection to the database server.
        mysqlpp::Connection con(mysqlpp::examples::db_name,
                cmdline.server(), cmdline.user(), cmdline.pass());

        // Retrieve a subset of the stock table's columns, and store
        // the data in a vector of 'stock' SSQLS structures.  See the
        // user manual for the consequences arising from this quiet
        // ability to store a subset of the table in the stock SSQLS.
        mysqlpp::Query query = con.query("select item,description from stock");
        vector<stock> res;
        query.storein(res);

        // Display the items
        cout << "We have:" << endl;
        vector<stock>::iterator it;
        for (it = res.begin(); it != res.end(); ++it) {
            cout << '\t' << it->item;
            if (it->description != mysqlpp::null) {
                cout << " (" << it->description << ")";
            }
            cout << endl;
        }
    }
    catch (const mysqlpp::BadQuery& er) {
        // Handle any query errors
        cerr << "Query error: " << er.what() << endl;
        return -1;
    }
    catch (const mysqlpp::BadConversion& er) {
        // Handle bad conversions; e.g. type mismatch populating 'stock'
        cerr << "Conversion error: " << er.what() << endl <<
                "\tretrieved data size: " << er.retrieved <<
                ", actual size: " << er.actual_size << endl;
        return -1;
    }
    catch (const mysqlpp::Exception& er) {
        // Catch-all for any other MySQL++ exceptions
        cerr << "Error: " << er.what() << endl;
        return -1;
    }

    return 0;
}

Here is the stock.h header used by that example, and by several others below:

#include <mysql++.h>
#include <ssqls.h>

// The following is calling a very complex macro which will create
// "struct stock", which has the member variables:
//
//   sql_char item;
//   ...
//   sql_mediumtext_null description;
//
// plus methods to help populate the class from a MySQL row.  See the
// SSQLS sections in the user manual for further details.
sql_create_6(stock,
    1, 6, // The meaning of these values is covered in the user manual
    mysqlpp::sql_char, item,
    mysqlpp::sql_bigint, num,
    mysqlpp::sql_double, weight,
    mysqlpp::sql_double_null, price,
    mysqlpp::sql_date, sDate,           // SSQLS isn't case-sensitive!
    mysqlpp::sql_mediumtext_null, description)

This example produces the same output as simple1.cpp (see Section 3.2, “A Simple Example”), but it uses higher-level data structures paralleling the database schema instead of MySQL++’s lower-level generic data structures. It also uses MySQL++’s exceptions for error handling instead of doing everything inline. For small example programs like these, the overhead of SSQLS and exceptions doesn’t pay off very well, but in a real program, they end up working much better than hand-rolled code.

Notice that we are only pulling a single column from the stock table, but we are storing the rows in a std::vector<stock>. It may strike you as inefficient to have five unused fields per record. It’s easily remedied by defining a subset SSQLS:

sql_create_1(stock_subset,
  1, 0,
  string, item)
  
vector<stock_subset> res;
query.storein(res);
// ...etc...

MySQL++ is flexible about populating SSQLSes.[13] It works much like the Web, a design that’s enabled the development of the largest distributed system in the world. Just as a browser ignores tags and attributes it doesn’t understand, you can populate an SSQLS from a query result set containing columns that don’t exist in the SSQLS. And as a browser uses sensible defaults when the page doesn’t give explicit values, you can have an SSQLS with more fields defined than are in the query result set, and these SSQLS fields will get default values. (Zero for numeric types, false for bool, and a type-specific default for anything more complex, like mysqlpp::DateTime.)

In more concrete terms, the example above is able to populate the stock objects using as much information as it has, and leave the remaining fields at their defaults. Conversely, you could also stuff the results of SELECT * FROM stock into the stock_subset SSQLS declared above; the extra fields would just be ignored.

We’re trading run-time efficiency for flexibility here, usually the right thing in a distributed system. Since MySQL is a networked database server, many uses of it will qualify as distributed systems. You can’t count on being able to update both the server(s) and all the clients at the same time, so you have to make them flexible enough to cope with differences while the changes propagate. As long as the new database schema isn’t too grossly different from the old, your programs should continue to run until you get around to updating them to use the new schema.

There’s a danger that this quiet coping behavior may mask problems, but considering that the previous behavior was for the program to crash when the database schema got out of synch with the SSQLS definition, it’s likely to be taken as an improvement.

5.4. Adding data

MySQL++ offers several ways to insert data in SSQLS form into a database table.

Inserting a Single Row

The simplest option is to insert a single row at a time. This is examples/ssqls2.cpp:

#include "cmdline.h"
#include "printdata.h"
#include "stock.h"

#include <iostream>
#include <limits>

using namespace std;

int
main(int argc, char *argv[])
{
    // Get database access parameters from command line
    mysqlpp::examples::CommandLine cmdline(argc, argv);
    if (!cmdline) {
        return 1;
    }

    try {
        // Establish the connection to the database server.
        mysqlpp::Connection con(mysqlpp::examples::db_name,
                cmdline.server(), cmdline.user(), cmdline.pass());

        // Create and populate a stock object.  We could also have used
        // the set() member, which takes the same parameters as this
        // constructor.
        stock row("Hot Dogs", 100, 1.5,
                numeric_limits<double>::infinity(), // "priceless," ha!
                mysqlpp::sql_date("1998-09-25"), mysqlpp::null);

        // Form the query to insert the row into the stock table.
        mysqlpp::Query query = con.query();
        query.insert(row);

        // Show the query about to be executed.
        cout << "Query: " << query << endl;

        // Execute the query.  We use execute() because INSERT doesn't
        // return a result set.
        query.execute();

        // Retrieve and print out the new table contents.
        print_stock_table(query);
    }
    catch (const mysqlpp::BadQuery& er) {
        // Handle any query errors
        cerr << "Query error: " << er.what() << endl;
        return -1;
    }
    catch (const mysqlpp::BadConversion& er) {  
        // Handle bad conversions
        cerr << "Conversion error: " << er.what() << endl <<
                "\tretrieved data size: " << er.retrieved <<
                ", actual size: " << er.actual_size << endl;
        return -1;
    }
    catch (const mysqlpp::Exception& er) {
        // Catch-all for any other MySQL++ exceptions
        cerr << "Error: " << er.what() << endl;
        return -1;
    }

    return 0;
}

That’s all there is to it! MySQL++ even takes care of quoting and escaping the data when building queries from SSQLS structures. It’s efficient, too: MySQL++ is smart enough to quote and escape data only for those data types that actually require it.

Inserting Many Rows

Inserting a single row is useful, to be sure, but you might want to be able to insert many SSQLSes or Row objects at once. MySQL++ knows how to do that, too, sparing you the necessity of writing the loop. Plus, MySQL++ uses an optimized implementation of this algorithm, packing everything into a single SQL query, eliminating the overhead of multiple calls between the client and server. It’s just a different overload of insert(), which accepts a pair of iterators into an STL container, inserting every row in that range:

vector<stock> lots_of_stuff;
...populate the vector somehow...
query.insert(lots_of_stuff.begin(), lots_of_stuff.end()).execute();

By the way, notice that you can chain Query operations like in the last line above, because its methods return *this where that makes sense.

Working Around MySQL’s Packet Size Limit

The two-iterator form of insert() has an associated risk: MySQL has a limit on the size of the SQL query it will process. The default limit is 1 MB. You can raise the limit, but the reason the limit is configurable is not to allow huge numbers of inserts in a single query. They made the limit configurable because a single row might be bigger than 1 MB, so the default would prevent you from inserting anything at all. If you raise the limit simply to be able to insert more rows at once, you’re courting disaster with no compensating benefit: the more data you send at a time, the greater the chance and cost of something going wrong. Worse, this is pure risk, because by the time you hit 1 MB, the per-packet overhead is such a small fraction of the data being transferred that increasing the packet size buys you essentially nothing.

Let’s say you have a vector containing several megabytes of data; it will get even bigger when expressed in SQL form, so there’s no way you can insert it all in a single query without raising the MySQL packet limit. One way to cope would be to write your own naïve loop, inserting just one row at a time. This is slow, because you’re paying the per-query cost for every row in the container. Then you might realize that you could use the two iterator form of insert(), passing iterators expressing sub-ranges of the container instead of trying to insert the whole container in one go. Now you’ve just got to figure out how to calculate those sub-ranges to get efficient operation without exceeding the packet size limit.

MySQL++ already knows how to do that, too, with Query::insertfrom(). We gave it a different name instead of adding yet another insert() overload because it doesn’t merely build the INSERT query, which you then execute(). It’s more like storein(), in that it wraps the entire operation up in a single call. This feature is demonstrated in examples/ssqls6.cpp:

#include "cmdline.h"
#include "printdata.h"
#include "stock.h"

#include <fstream>

using namespace std;


// Breaks a given text line of tab-separated fields up into a list of
// strings.
static size_t
tokenize_line(const string& line, vector<mysqlpp::String>& strings)
{
    string field;
    strings.clear();

    istringstream iss(line);
    while (getline(iss, field, '\t')) {
        strings.push_back(mysqlpp::String(field));
    }

    return strings.size();
}


// Reads a tab-delimited text file, returning the data found therein
// as a vector of stock SSQLS objects.
static bool
read_stock_items(const char* filename, vector<stock>& stock_vector)
{
    ifstream input(filename);
    if (!input) {
        cerr << "Error opening input file '" << filename << "'" << endl;
        return false;
    }

    string line;
    vector<mysqlpp::String> strings;
    while (getline(input, line)) {
        if (tokenize_line(line, strings) == 6) {
            stock_vector.push_back(stock(string(strings[0]), strings[1],
                    strings[2], strings[3], strings[4], strings[5]));
        }
        else {
            cerr << "Error parsing input line (doesn't have 6 fields) " << 
                    "in file '" << filename << "'" << endl;
            cerr << "invalid line: '" << line << "'" << endl;
        }
    }

    return true;
}


int
main(int argc, char *argv[])
{
    // Get database access parameters from command line
    mysqlpp::examples::CommandLine cmdline(argc, argv);
    if (!cmdline) {
        return 1;
    }

    // Read in a tab-delimited file of stock data
    vector<stock> stock_vector;
    if (!read_stock_items("examples/stock.txt", stock_vector)) {
        return 1;
    }

    try {
        // Establish the connection to the database server.
        mysqlpp::Connection con(mysqlpp::examples::db_name,
                cmdline.server(), cmdline.user(), cmdline.pass());

        // Clear all existing rows from stock table, as we're about to
        // insert a bunch of new ones, and we want a clean slate.
        mysqlpp::Query query = con.query();
        query.exec("DELETE FROM stock");

        // Insert data read from the CSV file, allowing up to 1000
        // characters per packet.  We're using a small size in this
        // example just to force multiple inserts.  In a real program,
        // you'd want to use larger packets, for greater efficiency.
        mysqlpp::Query::MaxPacketInsertPolicy<> insert_policy(1000);
        query.insertfrom(stock_vector.begin(), stock_vector.end(),
                insert_policy);

        // Retrieve and print out the new table contents.
        print_stock_table(query);
    }
    catch (const mysqlpp::BadQuery& er) {
        // Handle any query errors
        cerr << "Query error: " << er.what() << endl;
        return -1;
    }
    catch (const mysqlpp::BadConversion& er) {
        // Handle bad conversions
        cerr << "Conversion error: " << er.what() << endl <<
                "\tretrieved data size: " << er.retrieved <<
                ", actual size: " << er.actual_size << endl;
        return -1;
    }
    catch (const mysqlpp::BadInsertPolicy& er) {
        // Handle bad conversions
        cerr << "InsertPolicy error: " << er.what() << endl;
        return -1;
    }
    catch (const mysqlpp::Exception& er) {
        // Catch-all for any other MySQL++ exceptions
        cerr << "Error: " << er.what() << endl;
        return -1;
    }

    return 0;
}

Most of the complexity in this example goes to just reading in the data from a file; we have to get our test data from somewhere. There are only two key lines of code: create an insertion policy object, and pass it along with an STL container full of row data to Query::insertfrom().

This policy object is the main thing that differentiates insertfrom() from the two-iterator form of insert(). It controls how insertfrom() builds the query strings, primarily controlling how large each query gets before insertfrom() executes it and starts building a new query. We designed it to use policy objects because there is no single “right” choice for the decisions it makes.

MySQL++ ships with three different insertion policy classes, which should cover most situations.

MaxPacketInsertPolicy, demonstrated in the example above, does things the most obvious way: when you create it, you pass the maximum packet size, which it uses to prevent queries from going over the size limit. It builds up a query string row by row, checking each time through the loop whether adding another insert statement to the query string would make the packet size go over the limit. When that happens, or it gets to the end of the iteration range, it executes the query and starts over if it’s not yet at the end. This is robust, but it has a downside: it has to build each insert query in advance of knowing that it can append it to the larger query. Any time an insert query would push the packet over the limit, it has to throw it away, causing the library to do more work than is strictly necessary.

Imagine you’ve done some benchmarking and have found that the point of diminishing returns is at about 20 KB per query in your environment; beyond that point, the per-query overhead ceases to be an issue. Let’s also say you know for a fact that your largest row will always be less than 1 MB — less 20 KB — when expressed as a SQL insert statement. In that case, you can use the more efficient SizeThresholdInsertPolicy. It differs from MaxPacketInsertPolicy in that it allows insertfrom() to insert rows blindly into the query string until the built query exceeds the threshold, 20 KB in this example. Then it ships the packet off, and if successful, starts a new query. Thus, each query (except possibly the last) will be at least 20 KB, exceeding that only by as much as one row’s worth of data, minus one byte. This is quite appropriate behavior when your rows are relatively small, as is typical for tables not containing BLOB data. It is more efficient than MaxPacketInsertPolicy because it never has to throw away any SQL fragments.

The simplest policy object type is RowCountInsertPolicy. This lets you simply say how many rows at a time to insert into the database. This works well when you have a good handle on how big each row will be, so you can calculate in advance how many rows you can insert at once without exceeding some given limit. Say you know your rows can’t be any bigger than about 1 KB. If we stick with that 20 KB target, passing RowCountInsertPolicy<>(20) for the policy object would ensure we never exceed the size threshold. Or, say that maximum size value above is still true, but we also know the average row size is only 200 bytes. You could pass RowCountInsertPolicy<>(100) for the policy, knowing that the average packet size will be around 20 KB, and the worst case packet size 100 KB, still nowhere near the default 1 MB packet size limit. The code for this policy is very simple, so it makes your program a little smaller than if you used either of the above policies. Obviously it’s a bad choice if you aren’t able to predict the size of your rows accurately.

If one of the provided insert policy classes doesn’t suit your needs, you can easily create a custom one. Just study the implementation in lib/insertpolicy.*.

Interaction with Transactions

These policy classes are all templates, taking a parameter that defaults to Transaction. This means that, by default, insertfrom() wraps the entire operation in a SQL transaction, so that if any of the insertions fail, the database server rolls them all back. This prevents an error in the middle of the operation from leaving just part of the container’s data inserted in the database, which you usually don’t want any more than you’d want half a single row to be inserted.

There are good reasons why you might not want this. Perhaps the best reason is if the insertfrom() call is to be part of a larger transaction. MySQL doesn’t support nested transactions, so the insertfrom() call will fail if it tries to start one of its own. You can pass NoTransactions for the insert policy’s template parameter to make it suppress the transaction code.

5.5. Modifying data

It almost as easy to modify data with SSQLS as to add it. This is examples/ssqls3.cpp:

#include "cmdline.h"
#include "printdata.h"
#include "stock.h"

#include <iostream>

using namespace std;

int
main(int argc, char *argv[])
{
    // Get database access parameters from command line
    mysqlpp::examples::CommandLine cmdline(argc, argv);
    if (!cmdline) {
        return 1;
    }

    try {
        // Establish the connection to the database server.
        mysqlpp::Connection con(mysqlpp::examples::db_name,
                cmdline.server(), cmdline.user(), cmdline.pass());

        // Build a query to retrieve the stock item that has Unicode
        // characters encoded in UTF-8 form.
        mysqlpp::Query query = con.query("select * from stock ");
        query << "where item = " << mysqlpp::quote << "Nürnberger Brats";

        // Retrieve the row, throwing an exception if it fails.
        mysqlpp::StoreQueryResult res = query.store();
        if (res.empty()) {
            throw mysqlpp::BadQuery("UTF-8 bratwurst item not found in "
                    "table, run resetdb");
        }

        // Because there should only be one row in the result set,
        // there's no point in storing the result in an STL container.
        // We can store the first row directly into a stock structure
        // because one of an SSQLS's constructors takes a Row object.
        stock row = res[0];

        // Create a copy so that the replace query knows what the
        // original values are.
        stock orig_row = row;

        // Change the stock object's item to use only 7-bit ASCII, and
        // to deliberately be wider than normal column widths printed
        // by print_stock_table().
        row.item = "Nuerenberger Bratwurst";

        // Form the query to replace the row in the stock table.
        query.update(orig_row, row);

        // Show the query about to be executed.
        cout << "Query: " << query << endl;

        // Run the query with execute(), since UPDATE doesn't return a
        // result set.
        query.execute();

        // Retrieve and print out the new table contents.
        print_stock_table(query);
    }
    catch (const mysqlpp::BadQuery& er) {
        // Handle any query errors
        cerr << "Query error: " << er.what() << endl;
        return -1;
    }
    catch (const mysqlpp::BadConversion& er) {
        // Handle bad conversions
        cerr << "Conversion error: " << er.what() << endl <<
                "\tretrieved data size: " << er.retrieved <<
                ", actual size: " << er.actual_size << endl;
        return -1;
    }
    catch (const mysqlpp::Exception& er) {
        // Catch-all for any other MySQL++ exceptions
        cerr << "Error: " << er.what() << endl;
        return -1;
    }

    return 0;
}

Don’t forget to run resetdb after running the example.

5.6. Storing SSQLSes in Associative Containers

One of the requirements of STL’s associative containers on data stored in them is that the data type has to be less-than comparable. That is, it has to have an operator < defined. SSQLS does optionally give you this, as demonstrated in examples/ssqls4.cpp:

#include "cmdline.h"
#include "printdata.h"
#include "stock.h"

#include <iostream>

using namespace std;

int
main(int argc, char *argv[])
{
    // Get database access parameters from command line
    mysqlpp::examples::CommandLine cmdline(argc, argv);
    if (!cmdline) {
        return 1;
    }

    try {
        // Establish the connection to the database server.
        mysqlpp::Connection con(mysqlpp::examples::db_name,
                cmdline.server(), cmdline.user(), cmdline.pass());

        // Retrieve all rows from the stock table and put them in an
        // STL set.  Notice that this works just as well as storing them
        // in a vector, which we did in ssqls1.cpp.  It works because
        // SSQLS objects are less-than comparable.
        mysqlpp::Query query = con.query("select * from stock");
        set<stock> res;
        query.storein(res);

        // Display the result set.  Since it is an STL set and we set up
        // the SSQLS to compare based on the item column, the rows will
        // be sorted by item.
        print_stock_header(res.size());
        set<stock>::iterator it;
        cout.precision(3);
        for (it = res.begin(); it != res.end(); ++it) {
            print_stock_row(it->item.c_str(), it->num, it->weight,
                    it->price, it->sDate);
        }

        // Use set's find method to look up a stock item by item name.
        // This also uses the SSQLS comparison setup.
        it = res.find(stock("Hotdog Buns"));
        if (it != res.end()) {
            cout << endl << "Currently " << it->num <<
                    " hotdog buns in stock." << endl;
        }
        else {
            cout << endl << "Sorry, no hotdog buns in stock." << endl;
        }
    }
    catch (const mysqlpp::BadQuery& er) {
        // Handle any query errors
        cerr << "Query error: " << er.what() << endl;
        return -1;
    }
    catch (const mysqlpp::BadConversion& er) {
        // Handle bad conversions
        cerr << "Conversion error: " << er.what() << endl <<
                "\tretrieved data size: " << er.retrieved <<
                ", actual size: " << er.actual_size << endl;
        return -1;
    }
    catch (const mysqlpp::Exception& er) {
        // Catch-all for any other MySQL++ exceptions
        cerr << "Error: " << er.what() << endl;
        return -1;
    }

    return 0;
}

The find() call works because of the way the SSQLS was declared. It’s properly covered elsewhere, but suffice it to say, the “1” in the declaration of stock above tells it that only the first field needs to be checked in comparing two SSQLSes. In database terms, this makes it the primary key. Therefore, when searching for a match, our exemplar only had to have its first field populated.

5.7. Changing the Table Name

Another feature you might find a use for is changing the table name MySQL++ uses to build queries involving SSQLSes. By default, the database server table is assumed to have the same name as the SSQLS structure type. But if this is inconvenient, you can globally change the table name used in queries like this:

stock::table("MyStockData");

It’s also possible to change the name of a table on a per-instance basis:

stock s;
s.instance_table("AlternateTable");

This is useful when you have an SSQLS definition that is compatible with multiple tables, so the table name to use for each instance is different. This feature saves you from having to define a separate SSQLS for each table. It is also useful for mapping a class hierarchy onto a set of table definitions. The common SSQLS definition is the “superclass” for a given set of tables.

Strictly speaking, you only need to use this feature in multithreaded programs. Changing the static table name before using each instance is safe if all changes happen within a single thread. That said, it may still be convenient to change the name of the table for an SSQLS instance in a single-threaded program if it gets used for many operations over an extended span of code.

5.8. Using an SSQLS in Multiple Modules

It’s convenient to define an SSQLS in a header file so you can use it in multiple modules. You run into a bit of a problem, though, because each SSQLS includes a few static data members to hold information common to all structures of that type. (The table name and the list of field names.) When you #include that header in more than one module, you get a multiply-defined symbol error at link time.

The way around this is to define the preprocessor macro MYSQLPP_SSQLS_NO_STATICS in all but one of the modules that use the header definining the SSQLS. When this macro is defined, it suppresses the static data members in any SSQLS defined thereafter.

Imagine we have a file my_ssqls.h which includes a sql_create_N macro call to define an SSQLS, and that that SSQLS is used in at least two modules. One we’ll call foo.cpp, and we’ll say it’s just a user of the SSQLS; it doesn’t “own” it. Another of the modules, my_ssqls.cpp uses the SSQLS more heavily, so we’ve called it the owner of the SSQLS. If there aren’t very many modules, this works nicely:

// File foo.cpp, which just uses the SSQLS, but doesn’t "own" it:
#define MYSQLPP_SSQLS_NO_STATICS
#include "my_ssqls.h"
// File my_ssqls.cpp, which owns the SSQLS, so we just #include it directly
#include "my_ssqls.h"

If there are many modules that need the SSQLS, adding all those #defines can be a pain. In that case, it’s easier if you flip the above pattern on its head:

// File my_ssqls.h:
#if !defined(EXPAND_MY_SSQLS_STATICS)
#   define MYSQLPP_SSQLS_NO_STATICS
#endif
sql_create_X(Y, Z....) // the SSQLS definition
// File foo.cpp, a mere user of the SSQLS:
#include "my_ssqls.h"
// File my_ssqls.cpp, which owns the SSQLS:
#define EXPAND_MY_SSQLS_STATICS
#include "my_ssqls.h"

5.9. Harnessing SSQLS Internals

The sql_create macros define several methods for each SSQLS. These methods are mostly for use within the library, but some of them are useful enough that you might want to harness them for your own ends. Here is some pseudocode showing how the most useful of these methods would be defined for the stock structure used in all the ssqls*.cpp examples:

// Basic form
template <class Manip>   
stock_value_list<Manip> value_list(cchar *d = ",",
  Manip m = mysqlpp::quote) const;  

template <class Manip>   
stock_field_list<Manip> field_list(cchar *d = ",",   
  Manip m = mysqlpp::do_nothing) const;  

template <class Manip>   
stock_equal_list<Manip> equal_list(cchar *d = ",",
  cchar *e = " = ", Manip m = mysqlpp::quote) const;  


// Boolean argument form
template <class Manip>
stock_cus_value_list<Manip> value_list([cchar *d, [Manip m,] ]   
  bool i1, bool i2 = false, ... , bool i5 = false) const;  

// List form  
template <class Manip>
stock_cus_value_list<Manip> value_list([cchar *d, [Manip m,] ]  
  stock_enum i1, stock_enum i2 = stock_NULL, ...,
  stock_enum i5 = stock_NULL) const;  

// Vector form  
template <class Manip>
stock_cus_value_list<Manip> value_list([cchar *d, [Manip m,] ]  
  vector<bool> *i) const;  

...Plus the obvious equivalents for field_list() and equal_list()

Rather than try to learn what all of these methods do at once, let’s ease into the subject. Consider this code:

stock s("Dinner Rolls", 75, 0.95, 0.97, sql_date("1998-05-25"));   
cout << "Value list: " << s.value_list() << endl;  
cout << "Field list: " << s.field_list() << endl;  
cout << "Equal list: " << s.equal_list() << endl;

That would produce something like:

Value list: 'Dinner Rolls’,75,0.95,0.97,'1998-05-25'   
Field list: item,num,weight,price,sdate  
Equal list: item = 'Dinner Rolls’,num = 75,weight = 0.95, price = 0.97,sdate = '1998-05-25'

That is, a “value list” is a list of data member values within a particular SSQLS instance, a “field list” is a list of the fields (columns) within that SSQLS, and an “equal list” is a list in the form of an SQL equals clause.

Just knowing that much, it shouldn’t surprise you to learn that Query::insert() is implemented more or less like this:

*this << "INSERT INTO " << v.table() << " (" << v.field_list() <<
    ") VALUES (" << v.value_list() << ")";

where ‘v’ is the SSQLS you’re asking the Query object to insert into the database.

Now let’s look at a complete example, which uses one of the more complicated forms of equal_list(). This example builds a query with fewer hard-coded strings than the most obvious technique requires, which makes it more robust in the face of change. Here is examples/ssqls5.cpp:

#include "cmdline.h"
#include "printdata.h"
#include "stock.h"

#include <iostream>
#include <vector>

using namespace std;

int
main(int argc, char *argv[])
{
    // Get database access parameters from command line
    mysqlpp::examples::CommandLine cmdline(argc, argv);
    if (!cmdline) {
        return 1;
    }

    try {
        // Establish the connection to the database server.
        mysqlpp::Connection con(mysqlpp::examples::db_name,
                cmdline.server(), cmdline.user(), cmdline.pass());

        // Get all the rows in the stock table.
        mysqlpp::Query query = con.query("select * from stock");
        vector<stock> res;
        query.storein(res);

        if (res.size() > 0) {
            // Build a select query using the data from the first row
            // returned by our previous query.
            query << "select * from stock where " <<
                    res[0].equal_list(" and ", stock_weight, stock_price);

            // Display the finished query.
            cout << "Custom query:\n" << query << endl;
        }
    }
    catch (const mysqlpp::BadQuery& er) {
        // Handle any query errors
        cerr << "Query error: " << er.what() << endl;
        return -1;
    }
    catch (const mysqlpp::BadConversion& er) {
        // Handle bad conversions
        cerr << "Conversion error: " << er.what() << endl <<
                "\tretrieved data size: " << er.retrieved <<
                ", actual size: " << er.actual_size << endl;
        return -1;
    }
    catch (const mysqlpp::Exception& er) {
        // Catch-all for any other MySQL++ exceptions
        cerr << "Error: " << er.what() << endl;
        return -1;
    }

    return 0;
}

This example uses the list form of equal_list(). The arguments stock_weight and stock_price are enum values equal to the position of these columns within the stock table. sql_create_# generates this enum for you automatically.

The boolean argument form of that equal_list() call would look like this:

query << "select * from stock where " <<
    res[0].equal_list(" and ", false, false, true, true, false);

It’s a little more verbose, as you can see. And if you want to get really complicated, use the vector form:

vector<bool> v(5, false);
v[stock_weight] = true;
v[stock_price] = true;
query << "select * from stock where " <<
    res[0].equal_list(" and ", v);

This form makes the most sense if you are building many other queries, and so can re-use that vector object.

Many of these methods accept manipulators and custom delimiters. The defaults are suitable for building SQL queries, but if you’re using these methods in a different context, you may need to override these defaults. For instance, you could use these methods to dump data to a text file using different delimiters and quoting rules than SQL.

At this point, we’ve seen all the major aspects of the SSQLS feature. The final sections of this chapter look at some of the peripheral aspects.

5.10. Having Different Field Names in C++ and SQL

There’s a more advanced SSQLS creation macro, which all the others are built on top of. Currently, the only feature it adds over what’s described above is that it lets you name your SSQLS fields differently from the names used by the database server. Perhaps you want to use Hungarian notation in your C++ program without changing the SQL database schema:

sql_create_complete_5(stock, 1, 5,   
    mysqlpp::sql_char, m_sItem, "item",
    mysqlpp::sql_bigint, m_nNum, "num",
    mysqlpp::sql_double, m_fWeight, "weight",
    mysqlpp::sql_decimal, m_fPrice, "price",
    mysqlpp::sql_date, m_Date, "sdate")

Note that you don’t have to use this mechanism if the only difference in your SQL and C++ field names is case. SSQLS field name lookups are case-insensitive as of MySQL++ 3.1. You can see this in the examples: some parts of the code deliberately refer to the stock.sdate sample table field as stock.sDate to exercise this feature.

5.11. Expanding SSQLS Macros

If you ever need to see the code that a given SSQLS declaration expands out to, use the utility doc/ssqls-pretty, like so:

doc/ssqls-pretty < myprog.cpp | less

This Perl script locates the first SSQLS declaration in that file, then uses the C++ preprocessor to expand that macro. (The script assumes that your system’s preprocessor is called cpp, and that its command line interface follows Unix conventions.)

If you run it from the top MySQL++ directory, as shown above, it will use the header files in the distribution’s lib subdirectory. Otherwise, it assumes the MySQL++ headers are in their default location, /usr/include/mysql++. If you want to use headers in some other location, you’ll need to change the directory name in the -I flag at the top of the script.

5.12. Customizing the SSQLS Mechanism

The SSQLS header ssqls.h is automatically generated by the Perl script ssqls.pl. Although it is possible to change this script to get additional functionality, most of the time it’s better to just derive a custom class from the generated SSQLS to add functionality to it. (See the next section to see how to do this correctly.)

That said, ssqls.pl does have a few configurables you might want to tweak.

The first configurable value sets the maximum number of data members allowed in an SSQLS. This is discussed elsewhere, in Section 8.2, “The Maximum Number of Fields Allowed”. Beware the warnings there about increasing this value too much.

The second configurable is the default floating point precision used for comparison. As described above (Section 5.2, “SSQLS Comparison and Initialization”) SSQLSes can be compared for equality. The only place this is tricky is with floating-point numbers, since rounding errors can make two “equal” values compare as distinct. This property of floating-point numbers means we almost never want to do exact comparison. MySQL++ lets you specify the precision you want it to use. If the difference between two values is under a given threshold, MySQL++ considers the values equal. The default threshold is 0.00001. This threshold works well for “human” scale values, but because of the way floating-point numbers work, it can be wildly inappropriate for very large or very small quantities like those used in scientific applications.

There are actually two ways to change this threshold. If you need a different system-wide default, edit ssqls.pl and change the $fp_min_delta variable at the top of the file, then rebuild ssqls.h as described below. If you need different thresholds per file or per project, it’s better to set the C macro MYSQLPP_FP_MIN_DELTA instead. The Perl variable sets this macro’s default; if you give a different value before #including ssqls.h, it will use that instead.

To rebuild ssqls.h after changing ssqls.pl, you’ll need a Perl interpreter. The only modern Unixy system I’m aware of where Perl isn’t installed by default is Cygwin, and it’s just a setup.exe choice away there. You’ll probably only have to download and install a Perl interpreter if you’re on Windows and don’t want to use Cygwin.

If you’re on a system that uses autoconf, building MySQL++ automatically updates ssqls.h any time ssqls.pl changes. Otherwise, you’ll need to run the Perl interpreter by hand:

c:\mysql++> cd lib
c:\lib> perl ssqls.pl

5.13. Deriving from an SSQLS

Specialized SQL Structures make good base classes. They’re simple, and have few requirements on any class that derives from them. There are some gotchas to look out for, however.

Consider this:

sql_create_2(
  Base, 1, 2,
  mysqlpp::sql_varchar, a,
  mysqlpp::sql_int, b
);

class Derived : public Base
{
public:
  // constructor
  Derived(mysqlpp::sql_varchar _a, mysqlpp::sql_int _b) :
  Base(_a, _b)
  {
  }

  // functionality added to the SSQLS through inheritance
  bool do_something_interesting(int data);
};

We’ve derived a class from an SSQLS in order to add a method to it. Easy, right?

Sadly, too easy. The code has a rather large flaw which makes our derived class unusable as an SSQLS. In C++, if a derived class has a function of the same name as one in the base class, the base class versions of that function are all hidden by those in the derived class. This applies to constructors, too: an SSQLS defines several constructors, but our derived class defines only one, causing that one to hide all of the ones in the base class. Many of the MySQL++ mechanisms that use SSQLSes rely on having these contructors, so our Derived above is-not-a Base, and so it isn’t an SSQLS. If you try to use Derived as an SSQLS, you’ll get compiler errors wherever MySQL++ tries to access one of these other constructors.

There’s another minor flaw, as well. Our lone constructor above takes its parameters by value, but the corresponding constructor in the SSQLS takes them by const reference. Our derived class has technically hidden a fourth base class constructor this way, but this particular case is more a matter of efficiency than correctness. Code that needs the full-creation constructor will still work with our code above, but passing stringish types like sql_varchar by value instead of by const reference is inefficient.

This is the corrected version of the above code:

sql_create_2(
  Base, 1, 2,
  mysqlpp::sql_varchar, a,
  mysqlpp::sql_int, b
);

class Derived : public Base
{
public:
  // default constructor[14]
  Derived() :
  Base()
  {
  }

  // for-comparison constructor[15]
  Derived(const mysqlpp::sql_varchar& _a) :
  Base(_a)
  {
  }

  // full creation constructor
  Derived(const mysqlpp::sql_varchar& _a, const mysqlpp::sql_int& _b) :
  Base(_a, _b)
  {
  }

  // population constructor[16]
  Derived(const mysqlpp::Row& row) :
  Base(row)
  {
  }

  // functionality added to the SSQLS through inheritance
  bool do_something_interesting(int data);
};

Now Derived is-an SSQLS.

You might wonder if you can use protected inheritance above to redefine the SSQLS’s public interface. For instance, OO purists might object to the public data members in an SSQLS. You could encapsulate these public data members in the derived class by using protected inheritance, exposing access to the base class’s data members with public accessor methods. The problem with this is that each SSQLS has dozens of public member functions. These are needed by MySQL++ internals, so unless you re-exposed all of them as we did with the constructors above, you’d again have an SSQLS derivative that is-not-an SSQLS. Simply put, only public inheritance is practical with SSQLSes.

5.14. SSQLS and BLOB Columns

It takes special care to use SSQLS with BLOB columns. It’s safest to declare the SSQLS field as of type mysqlpp::sql_blob. This is currently a typedef alias for String, which is the form the data is in just before the SSQLS mechanism populates the structure. Thus, when the data is copied from the internal MySQL++ data structures into your SSQLS, you get a direct copy of the String object’s contents, without interference.

Because C++ strings handle binary data just fine, you might think you can use std::string instead of sql_blob, but the current design of String converts to std::string via a C string. As a result, the BLOB data is truncated at the first embedded null character during population of the SSQLS. There’s no way to fix that without completely redesigning either String or the SSQLS mechanism.

The sql_blob typedef may be changed to alias a different type in the future, so using it instead of String ensures that your code tracks these library changes automatically. Besides, String is only intended to be an internal mechanism within MySQL++. The only reason the layering is so thin here is because it’s the only way to prevent BLOB data from being corrupted while avoiding that looming redesign effort.

You can see this technique in action in the cgi_jpeg example:

#include "cmdline.h"
#include "images.h"

#define CRLF            "\r\n"
#define CRLF2           "\r\n\r\n"

int
main(int argc, char* argv[])
{
    // Get database access parameters from command line if present, else
    // use hard-coded values for true CGI case.
    mysqlpp::examples::CommandLine cmdline(argc, argv, "root",
            "nunyabinness");
    if (!cmdline) {
        return 1;
    }

    // Parse CGI query string environment variable to get image ID
    unsigned int img_id = 0;
    char* cgi_query = getenv("QUERY_STRING");
    if (cgi_query) {
        if ((strlen(cgi_query) < 4) || memcmp(cgi_query, "id=", 3)) {
            std::cout << "Content-type: text/plain" << std::endl << std::endl;
            std::cout << "ERROR: Bad query string" << std::endl;
            return 1;
        }
        else {
            img_id = atoi(cgi_query + 3);
        }
    }
    else {
        std::cerr << "Put this program into a web server's cgi-bin "
                "directory, then" << std::endl;
        std::cerr << "invoke it with a URL like this:" << std::endl;
        std::cerr << std::endl;
        std::cerr << "    http://server.name.com/cgi-bin/cgi_jpeg?id=2" <<
                std::endl;
        std::cerr << std::endl;
        std::cerr << "This will retrieve the image with ID 2." << std::endl;
        std::cerr << std::endl;
        std::cerr << "You will probably have to change some of the #defines "
                "at the top of" << std::endl;
        std::cerr << "examples/cgi_jpeg.cpp to allow the lookup to work." <<
                std::endl;
        return 1;
    }

    // Retrieve image from DB by ID
    try {
        mysqlpp::Connection con(mysqlpp::examples::db_name,
                cmdline.server(), cmdline.user(), cmdline.pass());
        mysqlpp::Query query = con.query();
        query << "SELECT * FROM images WHERE id = " << img_id;
        mysqlpp::StoreQueryResult res = query.store();
        if (res && res.num_rows()) {
            images img = res[0];
            if (img.data.is_null) {
                std::cout << "Content-type: text/plain" << CRLF2;
                std::cout << "No image content!" << CRLF;
            }
            else {
                std::cout << "X-Image-Id: " << img_id << CRLF; // for debugging
                std::cout << "Content-type: image/jpeg" << CRLF;
                std::cout << "Content-length: " <<
                        img.data.data.length() << CRLF2;
                std::cout << img.data;
            }
        }
        else {
            std::cout << "Content-type: text/plain" << CRLF2;
            std::cout << "ERROR: No image with ID " << img_id << CRLF;
        }
    }
    catch (const mysqlpp::BadQuery& er) {
        // Handle any query errors
        std::cout << "Content-type: text/plain" << CRLF2;
        std::cout << "QUERY ERROR: " << er.what() << CRLF;
        return 1;
    }
    catch (const mysqlpp::Exception& er) {
        // Catch-all for any other MySQL++ exceptions
        std::cout << "Content-type: text/plain" << CRLF2;
        std::cout << "GENERAL ERROR: " << er.what() << CRLF;
        return 1;
    }

    return 0;
}

5.15. SSQLS and Visual C++ 2003

SSQLS works on all platforms supported by MySQL++ except for Visual C++ 2003. (Because the rest of MySQL++ works just fine with Visual C++ 2003, we haven’t removed this platform from the supported list entirely.)

If you do need SSQLS and are currently on Visual C++ 2003, you have these options:

  1. The simplest option is to upgrade to a newer version of Visual C++. The compiler limitations that break SSQLS are all fixed in Visual C++ 2005 and newer. Visual C++ Express is free and is apparently here to stay; coupled with the free wxWidgets library, it lacks little compared to Visual C++ Professional. A bonus of using wxWidgets is that it’s cross-platform and better-supported than MFC.

  2. If you can’t upgrade your compiler, you may be able to downgrade to MySQL++ v2.x. The SSQLS feature in these older versions worked with Visual C++ 2003, but didn’t let you use a given SSQLS in more than one module in a program. If you can live with that limitation and have a Perl interpreter on your system, you can re-generate lib/ssqls.h to remove the multiple-module SSQLS support. To do this, you run the command perl ssqls.pl -v from within MySQL++’s lib subdirectory before you build and install the library.

  3. There’s a plan to replace the current SSQLS mechanism with an entirely new code base. Although this is being done primarily to get new features that are too difficult to add within the current design, it also means we’ll have the chance to test step-by-step along the way that we don’t reintroduce code that Visual C++ 2003 doesn’t support. This may happen without you doing anything, but if there’s someone on the team who cares about this, that will naturally increase the chances that it does happen.



[13] Programs built against versions of MySQL++ prior to 3.0 would crash at almost any mismatch between the database schema and the SSQLS definition. It’s no longer necessary to keep the data design in lock-step between the client and database server. A mismatch can result in data loss, but not a crash.

[14] needed by mechanisms like Query::storein(); anything using an STL container, which usually require default ctors for contained data structures

[15] takes the COMPCOUNT subset of the SSQLS’s data members, used for making comparison exemplars, used with Query::update() and similar mechanisms; see Section 5.1, “sql_create” for more on COMPCOUNT

[16] used in taking raw row data from a SQL result set and converting it to SSQLS form

mysql++-3.2.5/doc/html/userman/breakages.html000755 000765 000024 00000166766 13515046515 021652 0ustar00tangentstaff000000 000000 10. Incompatible Library Changes

10. Incompatible Library Changes

This chapter documents those library changes since the epochal 1.7.9 release that break end-user programs. You can dig this stuff out of the ChangeLog.md file, but the change log focuses more on explaining and justifying the facets of each change, while this section focuses on how to migrate your code between these library versions.

Since pure additions do not break programs, those changes are still documented only in the change log.

10.1. API Changes

This section documents files, functions, methods and classes that were removed or changed in an incompatible way. If your program uses the changed item, you will have to change something in your program to get it to compile after upgrading to each of these versions.

v1.7.10

Removed Row::operator[]() overloads except the one for size_type, and added Row::lookup_by_name() to provide the “subscript by string” functionality. In practical terms, this change means that the row["field"] syntax no longer works; you must use the new lookup_by_name method instead.

Renamed the generated library on POSIX systems from libsqlplus to libmysqlpp.

v1.7.19

Removed SQLQuery::operator=(), and the same for its Query subclass. Use the copy constructor instead, if you need to copy one query to another query object.

v1.7.20

The library used to have two names for many core classes: a short one, such as Row and a longer one, MysqlRow. The library now uses the shorter names exclusively.

All symbols within MySQL++ are in the mysqlpp namespace now if you use the new mysql++.h header. If you use the older sqlplus.hh or mysql++.hh headers, these symbols are hoist up into the global namespace. The older headers cause the compiler to emit warnings if you use them, and they will go away someday.

v2.0.0

Connection class changes
  • Connection::create_db() and drop_db() return true on success. They returned false in v1.7.x! This change will only affect your code if you have exceptions disabled.

  • Renamed Connection::real_connect() to connect(), made several more of its parameters default, and removed the old connect() method, as it’s now a strict subset of the new one. The only practical consequence is that if your program was using real_connect(), you will have to change it to connect().

  • Replaced Connection::read_option() with new set_option() mechanism. In addition to changing the name, programs using this function will have to use the new Connection::Option enumerated values, accept a true return value as meaning success instead of 0, and use the proper argument type. Regarding the latter, read_option() took a const char* argument, but because it was just a thin wrapper over the MySQL C API function mysql_options(), the actual value being pointed to could be any of several types. This new mechanism is properly type-safe.

Exception-related changes
  • Classes Connection, Query, Result, ResUse, and Row now derive from OptionalExceptions which gives these classes a common interface for disabling exceptions. In addition, almost all of the per-method exception-disabling flags were removed. The preferred method for disabling exceptions on these objects is to create an instance of the new NoExceptions class on the stack, which disables exceptions on an OptionalExceptions subclass as long as the NoExceptions instance is in scope. You can instead call disable_exceptions() on any of these objects, but if you only want them disabled temporarily, it’s easy to forget to re-enable them later.

  • In the previous version of MySQL++, those classes that supported optional exceptions that could create instances of other such classes were supposed to pass this flag on to their children. That is, if you created a Connection object with exceptions enabled, and then asked it to create a Query object, the Query object also had exceptions disabled. The problem is, this didn’t happen in all cases where it should have in v1.7. This bug is fixed in v2.0. If your program begins crashing due to uncaught exceptions after upgrading to v2.0, this is the most likely cause. The most expeditious fix in this situation is to use the new NoExceptions feature to return these code paths to the v1.7 behavior. A better fix is to rework your program to avoid or deal with the new exceptions.

  • All custom MySQL++ exceptions now derive from the new Exception interface. The practical upshot of this is that the variability between the various exception types has been eliminated. For instance, to get the error string, the BadQuery exception had a string member called error plus a method called what(). Both did the same thing, and the what() method is more common, so the error string was dropped from the interface. None of the example programs had to be changed to work with the new exceptions, so if your program handles MySQL++ exceptions the same way they do, your program won’t need to change, either.

  • Renamed SQLQueryNEParams exception to BadParamCount to match style of other exception names.

  • Added BadOption, ConnectionFailed, DBSelectionFailed, EndOfResults, EndOfResultSets, LockFailed, and ObjectNotInitialized exception types, to fix overuse of BadQuery. Now the latter is used only for errors on query execution. If your program has a “catch-all” block taking a std::exception for each try block containing MySQL++ statements, you probably won’t need to change your program. Otherwise, the new exceptions will likely show up as program crashes due to unhandled exceptions.

Query class changes
  • In previous versions, Connection had a querying interface similar to class Query’s. These methods were intended only for Query’s use; no example ever used this interface directly, so no end-user code is likely to be affected by this change.

  • A more likely problem arising from the above change is code that tests for query success by calling the Connection object’s success() method or by casting it to bool. This will now give misleading results, because queries no longer go through the Connection object. Class Query has the same success-testing interface, so use it instead.

  • Query now derives from std::ostream instead of std::stringstream.

Result/ResUse class changes
  • Renamed ResUse::mysql_result() to raw_result() so it’s database server neutral.

  • Removed ResUse::eof(), as it wrapped the deprecated and unnecessary MySQL C API function mysql_eof(). See the simple3 and usequery examples to see the proper way to test for the end of a result set.

Row class changes
  • Removed “field name” form of Row::field_list(). It was pointless.

  • Row subscripting works more like v1.7.9: one can subscript a Row with a string (e.g. row["myfield"]), or with an integer (e.g. row[5]). lookup_by_name() was removed. Because row[0] is ambiguous (0 could mean the first field, or be a null pointer to const char*), there is now Row::at(), which can look up any field by index.

Miscellaneous changes
  • Where possible, all distributed Makefiles only build dynamic libraries. (Shared objects on most Unices, DLLs on Windows, etc.) Unless your program is licensed under the GPL or LGPL, you shouldn’t have been using the static libraries from previous versions anyway.

  • Removed the backwards-compatibility headers sqlplus.hh and mysql++.hh. If you were still using these, you will have to change to mysql++.h, which will put all symbols in namespace mysqlpp.

  • Can no longer use arrow operator (->) on the iterators into the Fields, Result and Row containers.

v2.2.0

Code like this will have to change:

query << "delete from mytable where myfield=%0:myvalue";
query.parse();
query.def["myvalue"] = some_value;
query.execute();

...to something more like this:

query << "delete from mytable where myfield=%0";
query.parse();
query.execute(some_value);

The first code snippet abuses the default template query parameter mechanism (Query::def) to fill out the template instead of using one of the overloaded forms of execute(), store() or use() taking one or more SQLString parameters. The purpose of Query::def is to allow for default template parameters over multiple queries. In the first snippet above, there is only one parameter, so in order to justify the use of template queries in the first place, it must be changing with each query. Therefore, it isn’t really a “default” parameter at all. We did not make this change maliciously, but you can understand why we are not in any hurry to restore this “feature”.

(Incidentally, this change was made to allow better support for BLOB columns.)

v2.3.0

Connection::set_option() calls now set the connection option immediately, instead of waiting until just before the connnection is actually established. Code that relied on the old behavior could see unhandled exceptions, since option setting errors are now thrown from a different part of the code. You want to wrap the actual set_option() call now, not Connection::connect()

FieldNames and FieldTypes are no longer exported from the library. If you are using these classes directly from Visual C++ or MinGW, your code won’t be able to dynamically link to a DLL version of the library any more. These are internal classes, however, so no one should be using them directly.

v3.0.0

Class name changes

Several classes changed names in this release:

  • ColData is now String.

  • NullisBlank is now NullIsBlank. (Note the capital I.) Similar changes for NullisNull and NullisZero.

  • ResNSel is now SimpleResult.

  • Result is now StoreQueryResult.

  • ResUse is now UseQueryResult.

  • SQLString is now SQLTypeAdapter.

When first building existing code against this version, you may find it helpful to define the macro MYSQLPP_OLD_CLASS_NAMES in your program’s build options. This will turn on some macros that set up aliases for the new class names matching their corresponding old names. Then, when you’ve fixed up any other issues that may prevent your program from building with the new MySQL++, you can turn it back off and fix up any class name differences.

If you were only using ColData in a BLOB context, you should use sql_blob or one of the related typedefs defined in lib/sql_types.h instead, to insulate your code from changes like these.

The SQLString change shouldn’t affect you, as this class was not designed to be used by end user code. But, due to the old name and the fact that it used to derive from std::string, some might have been tempted to use it as an enhanced std::string. Such code will undoubtedly break, but can probably be fixed by just changing it to use std::string instead.

Connection class changes

The option setting mechanism has been redesigned. (Yes, again.) There used to be an enum in Connection with a value for each option we understood, and an overload of Connection::set_option() for each argument type we understood. It was possible to pass any option value to any set_option() overload, and the problem would only be detected at run time. Now each option is represented by a class derived from the new Option abstract base class, and set_option() simply takes a pointer to one of these objects. See examples/multiquery.cpp for the syntax. Since each Option subclass takes only the parameter types it actually understands, it’s now completely type-safe at compile time.

The new option setting mechanism also has the virtue of being more powerful so it let us replace several existing things within Connection with new options:

  • Replaced enable_ssl() with SslOption.

  • Replaced the compress parameter to the Connection create-and-connect constructor and Connection::connect() method with CompressOption.

  • Replaced the connect_timeout parameter with ConnectTimeoutOption.

  • Defined Option subclasses for each of the flags you would previously set using the client_flag parameter. There are about a dozen of these, so instead of listing them, look in lib/options.h for something with a similar name.

Collapsed Connection’s host, port, and socket_name parameters down into a new combined server parameter which is parsed to determine what kind of connection you mean. These interfaces are still compatible with v2.3 and earlier up through the port parameter.

Moved Connection::affected_rows(), info() and insert_id() methods to class Query, as they relate to the most recently-executed query.

Changed the return type of Connection::ping() from int to bool. If you were calling ping() in bool context or using its return value in bool context, you will need to reverse the sense of the test because the previous return code used zero to mean success. Now it returns true to indicate success.

Renamed several methods:

  • Use client_version() instead of api_version() or client_info().

  • Use ipc_version() instead of host_info().

  • Use protocol_version() instead of proto_info().

  • Use server_version() instead of server_info().

  • Use status() instead of stat().

Also, removed close() in favor of disconnect(), which has always done the same thing.

Date and Time class changes

The sql_timestamp typedef is now an alias for DateTime, not Time.

There used to be implicit conversion constructors from ColData (now String), std::string and const char* for the Date, DateTime, and Time classes. It’s still possible to do these conversions, but only explicitly. (This had to be done to make Null<T> work in SSQLSes.)

The most likely place to run into problems as a result of this change is in code like this:

void some_function(const mysqlpp::DateTime& dt);

some_function("2007-12-22");

The function call needs to be changed to:

some_function(mysqlpp::DateTime("2007-12-22"));
Exception changes

If an error occurs during the processing of a “use” query (as opposed to the initial execution) we throw the new UseQueryError exception instead of BadQuery.

If you pass bad values to the Row ctor so that it can’t initialize itself properly, it throws the ObjectNotInitialized exception instead of BadQuery.

Together, these two changes mean that BadQuery is now used solely to indicate a problem executing the actual SQL query statement.

Field and Fields class changes

Field is now a real C++ class, not just a typedef for the corresponding C API class. Major portability impacts are:

  • It has no public data members. Where sensible, there is a public accessor function of the same name as the corresponding field in the C API structure.

  • The main exception to this is the flags data member. This is a bitfield in the C API data structure and you had to use MySQL-specific constants to break values out of it. MySQL++’s new Field class provides a public member function returning bool for each of these flags.

  • The new class doesn’t include all of the data members from the C API version. We left out those that aren’t used within MySQL++ or its examples, or whose function we couldn’t understand. Basically, if we couldn’t document a reason to use it, we left it out.

Fields used to be a std::vector work-alike which worked with the C API to access fields and return them as though they were simply contained directly within the Fields object. Now that we have a real MySQL++ class to hold information about each field without reference to the C API, we were able to replace the Fields class with:

typedef std::vector<Field> Fields;

If anything, this should give a pure superset of the old functionality, but it’s possible it could break end user code.

Query class changes

If you were using char as an 8-bit integer in query building, there are several places in MySQL++ v3 where it will now be treated as a single-character string. MySQL++ has had the tiny_int class for many years now specifically to provide a true 8-bit integer without the semantic confusion surrounding the old C char type. Either use tiny_int, or use the SQL type aliases sql_tinyint and sql_tinyint_unsigned instead.

The ‘r’ and ‘R’ template query parameter modifiers were removed. They made the library do quoting and both quoting and escaping (respectively) regardless of the data type of the parameter. There are no corresponding Query stream manipulators, so for symmetery we had to decide whether to add such manipulators or remove the tquery modifiers. There should never be a reason to force quoting or escaping other than to work around a MySQL++ bug, and it’s better to just fix the bug than work around it, so removed the tquery modifiers.

Query::store_next() and Result::fetch_row() no longer throw the EndOfResults and EndOfResultSets exceptions; these are not exceptional conditions! These methods simply return false when you hit the end of the result set now.

Renamed Query::def to Query::template_defaults to make its purpose clearer.

Removed Query::preview(). The most direct replacement for this set of overloaded methods is the parallel set of str() methods, which were just aliases before. (Chose str() over preview() because it’s standard C++ nomenclature.) But if you’re just looking to get a copy of a built query string and you aren’t using template queries, you can now insert the Query into a stream and get the same result.

For example, a lot of code in the examples that used to say things like:

cout << query.preview() << endl;

now looks like this:

cout << query << endl;
Result, ResUse, and ResNSel class changes

In addition to the class name changes described above, UseQueryResult is no longer StoreQueryResult’s base class. There is a new abstract class called ResultBase containing much of what used to be in ResUse, and it is the base of both of these concrete result set types. This should only affect your code if you were using ResUse references to refer to Result objects.

Removed a bunch of duplicate methods:

  • Use num_fields() instead of columns().

  • Use field_names() instead of names().

  • Use num_rows() instead of rows().

  • Use field_types() instead of types().

Renamed several methods for “grammar” reasons. For example, some methods returned a single object but had a “plural” name, implying that it returned a container of objects. In cases like this, we changed the name to agree with the return value. Some of these also fall into the duplicate method category above:

  • Use field(unsigned int) instead of fields(unsigned int).

  • Use field_num(const std::string&) instead of names(const std::string&).

  • Use field_name(int) instead of names(int).

  • Use field_type(int) instead of types(int).

Removed several “smelly” methods:

  • purge(): was an internal implementation detail, not something for end user code to call

  • raw_result(): end user code shouldn’t be digging down to the C API data structures, but if you really need something like this, look at the implementation of Query::storein(). Its workings will probably be educational.

  • reset_names(): no reason to call this, especially now that the field name list is initialized once at startup and then never changed

  • reset_field_names(): just an alias for previous

  • reset_types(): same argument as for reset_names()

  • reset_field_types(): just an alias for previous

ResUse::field_num() would unconditionally throw a BadFieldName exception when you asked for a field that doesn’t exist. Now, if exceptions are disabled on the object, it just returns -1.

SimpleResult’s member variables are all now private, and have read-only accessor functions of the same name.

Code like this used to work:

mysqlpp::Row row;
mysqlpp::Result::size_type i;
for (i = 0; row = res[i]; ++i) {
  // Do something with row here
}

That is, indexing past the end of a “store” result set would just return an empty row object, which tests as false in bool context, so it ends the loop. Now that StoreQueryResult is a std::vector derivative, this either crashes your program or causes the standard library to throw an exception, depending on what debugging features your version of STL has. The proper technique is:

mysqlpp::Row row;
mysqlpp::StoreQueryResult::size_type i;
for (i = 0; i < res.num_rows(); ++i) {
  row = res[i];
  // Do something with row here
}

...or, in a more C++ish idiom:

mysqlpp::Row row;
mysqlpp::StoreQueryResult::const_iterator it;
for (it = res.begin(); it != res.end(); ++it) {
  row = *it;
  // Do something with row here
}
Row class changes

Removed Row::raw_data(), raw_size() and raw_string(). These were useful with BLOB data back when MySQL++ didn’t handle embedded null characters very well, and when copies of ColData objects were expensive. Neither is true now, so they have no value any more. Equivalent calls are:

mysqlpp::String s = row[0];
s.data();                          // raw_data() equivalent
s.length();                        // raw_size() equivalent
std::string(s.data(), s.length()); // raw_string() equivalent

Row::operator[](const char*) would unconditionally throw a BadFieldName exception when you asked for a field that doesn’t exist. Now, if exceptions are disabled on the Row object, it just returns a reference to an empty String object. You can tell when this happens because such an object tests as false in bool context.

Specialized SQL Structure (SSQLS) changes

Renamed custom* to ssqls*. There is a backwards-compatibility header custom.h which includes ssqls.h for you, but it will go away in a future version of MySQL++.

SSQLSes get populated by field name now, not by field order. In v2, it was absolutely required that your SSQLS had its fields declared in exactly the same order as the fields in the database server, and there could be no gaps. An ALTER TABLE command would almost always necessitate redefining the corresponding SSQLS and rebuilding your program. Some alterations actually made using SSQLS impossible. For the most part, this change just gives your program additional flexibility in the face of future changes. However, code that was taking advantage of this low-level fact will break when moving to v3. Before I explain how, let’s go over the high-level functional changes you’ll find in v3’s SSQLS mechanism.

Because MySQL++ no longer needs the SSQLS field order to match the SQL field order, the sql_create_c_order_* SSQLS creation macro was dropped in v3. We were also able to drop the ordering parameters from sql_create_complete_*. That in turn means there is no longer a difference between the way it and sql_create_c_names_* work, so the latter was also dropped. Thus, there are now only two groups of SSQLS creation macros left: sql_create_*, which works pretty much as it always has, and sql_create_complete_*, which is the same except for the lack of ordering parameters.

In general, you should be using sql_create_* for all SSQLSes unless you need to use different names for data members in C++ than you use for the corresponding columns in SQL. In that case, use sql_create_complete_* instead.

In v2, it was possible to have different SQL column names than SSQLS data member names while still using sql_create_* if you only used SSQLS for data retrieval.[25] In v3, you must use sql_create_complete_* for absolutely all uses of SSQLS when you want the C++ field names to differ from the SQL column names.

The new Null<T> support in SSQLSes causes an internal compiler error in Visual C++ 2003. (VC++ 2005 and newer have no trobule with it.) A poll on the mailing list says there aren’t many people still stuck on this version, so we just ifdef’d out the SSQLS mechanism and all the examples that use it when built with VC++ 2003. If this affects you, see Section 5.15, “SSQLS and Visual C++ 2003” for suggestions on ways to cope.

If you are using types other than MySQL++’s sql_* ones [26] in your SSQLSes, code that previously worked may now see TypeLookupFailed exceptions. (This can be thrown even if exceptions are otherwise disabled in MySQL++.) This version of MySQL++ is stricter about mapping SQL to C++ type information, and vice versa. If the library can’t find a suitable mapping from one type system to the other, it throws this exception, because its only other option would be to crash or raise an assertion. This typically happens when building SQL queries, so you can probably handle it the same way as if the subsequent query excecution failed. If you’re catching the generic mysqlpp::Exception, your error handling code might not need to change. If you see this exception, it does mean you need to look into your use of data types, though. The table that controls this is mysql_type_info::types, defined at the top of lib/type_info.cpp. Every data type in lib/sql_types.h has a corresponding record in this table, so if you stick to those types, you’ll be fine. It’s also okay to use types your C++ compiler can convert directly to these predefined types.

The _table static member variable for each SSQLS is now private. The recommended way to access this remains unchanged: the table() static member function.

table() used to return a modifiable reference to the table name. Now there are two overloads, one which returns an unmodifiable pointer to the table name, and the other which takes const char* so you can override the default table name. So, the code we used to recommend for changing the SSQLS’s table name:

my_ssqls_type::table() = "MyTableName";

now needs to be:

my_ssqls_type::table("MyTableName");
Miscellaneous changes

MySQL++ does quoting and escaping much more selectively now. Basically, if the library can tell you’re not building a SQL query using one of the standard methods, it assumes you’re outputting values for human consumption, so it disables quoting and SQL escaping. If you need to build your own mechanism to replace this, quoting is easy to do, and Query::escape_string() can do SQL escaping for you.

Removed success() in Connection, Query and SimpleResult (neé ResNSel) and simply made these classes testable in bool context to get the same information. An additional change in Connection is that it used to be considered “unsuccessful” when the connection was down. Since the sense of this test is now whether the object is in a good state, it only returns false when the connection attempt fails. Call Connection::is_connected() if you just want to test whether the connection is up.

The debug mode build of the library now has a "_d" suffix for Visual C++, and Xcode. This lets you have both versions installed without conflict. The release build uses the current naming scheme. If you have an existing program building against MySQL++ on these platforms, you’ll need to change your build options to use the new name in debug mode.

Renamed NO_LONG_LONGS to MYSQLPP_NO_LONG_LONGS to avoid a risk of collision in the global macro namespace.

v3.0.7

Most MySQL++ classes with at() or operator []() methods now throw the new BadIndex exception when you pass an out-of-range index. These methods variously either did not check their indices, or threw std::out_of_range when passed a bad index.

I say “most” because there is at least one MySQL++ class that doesn’t follow this rule. Fields is just a typedef for a specialization of std::vector, and the Standard has its own rules for index checking.

10.2. ABI Changes

This section documents those library changes that require you to rebuild your program so that it will link with the new library. Most of the items in the previous section are also ABI changes, but this section is only for those items that shouldn’t require any code changes in your program.

If you were going to rebuild your program after installing the new library anyway, you can probably ignore this section.

v1.7.18

The Query classes now subclass from stringstream instead of the deprecated strstream.

v1.7.19

Fixed several const-incorrectnesses in the Query classes.

v1.7.22

Removed “reset query” parameters from several Query class members. This is not an API change, because the parameters were given default values, and the library would ignore any value other than the default. So, any program that tried to make them take another value wouldn’t have worked anyway.

v1.7.24

Some freestanding functions didn’t get moved into namespace mysqlpp when that namespace was created. This release fixed that. It doesn’t affect the API if your program’s C++ source files say using namespace mysqlpp within them.

v2.0.0

Removed Connection::infoo(). (I’d call this an API change if I thought there were any programs out there actually using this...)

Collapsed the Connection constructor taking a bool (for setting the throw_exceptions flag) and the default constructor into a single constructor using a default for the parameter.

Classes Connection and Query are now derived from the Lockable interface, instead of implementing their own lock/unlock functions.

In several instances, functions that took objects by value now take them by const reference, for efficiency.

Merged SQLQuery class’s members into class Query.

Merged RowTemplate class’s members into class Row.

Reordered member variable declarations in some classes. The most common instance is when the private section was declared before the public section; it is now the opposite way. This can change the object’s layout in memory, so a program linking to the library must be rebuilt.

Simplified the date and time class hierarchy. Date used to derive from mysql_date, Time used to derive from mysql_time, and DateTime used to derive from both of those. All three of these classes used to derive from mysql_dt_base. All of the mysql_* classes’ functionality and data has been folded into the leaf classes, and now the only thing shared between them is their dependence on the DTbase template. Since the leaf classes’ interface has not changed and end-user code shouldn’t have been using the other classes, this shouldn’t affect the API in any practical way.

mysql_type_info now always initializes its private num member. Previously, this would go uninitialized if you used the default constructor. Now there is no default ctor, but the ctor taking one argument (which sets num) has a default.

v3.0.0

Removed reset_query parameters from Query member functions. None of these have been honored at least going back to v1.7.9, so this is not an API change. As of this version, Query now automatically detects when it can safely reset itself after executing a query, so it’s not necessary to ask for a reset except when using template queries.

Removed overloads of Query::execute(), store(), and use() that take only a const char*. This is not an API change because there was an equivalent call chain for this already. This change just snaps a layer of indirection.

Query::error() is now const and returns const char* instead of a std::string by value.

Removed Lockable mechanism as it was conceptually flawed. Connection and Query consequently no longer derive from Lockable. Since it was basically useless in prior versions, it can’t be construed as an API change.

v3.0.1

Connection::thread_aware(), thread_start() and thread_end() are now static methods, so a program can call them before creating a connection. Ditto for DBDriver methods of the same name.

ConnectionPool::release() is now virtual, so a subclass can override it.

v3.0.2

ConnectionPool::grab() is now virtual; same reason as above.

Query can now be tested in bool context, as was intended for v3.0.0. Had to change the “safe bool” method signature to make it happen, so technically it’s an API change, but it’s still used the same way.

v3.1.0

The addition of a few new virtual methods to ConnectionPool inadvertently changed the library ABI. I knew adding fields changed the ABI, but erroneously assumed that the inverse of that truth — that adding methods was always safe — was also true. Adding normal methods is safe, but adding virtual methods breaks the ABI because it changes the class’s vtable size.

That left us with two bad choices: either we could come out with a 3.1.1 that removed these methods to restore the prior ABI, or we could just declare this the “new ABI” and move on, resolving not to fall into this trap again. We’ve chosen the latter path.



[25] In MySQL++ v2, data retreival (Query::storein(), SSQLS(const Row& other), etc.) worked fine regardless of whether your SSQLS field names matched those in the corresponding SQL table, because the SSQLS was populated by position, not by field name. Thus, if all you used SSQLS for was data retrieval, you could define your structures with sql_create_* in v2. This was never recommended, because such an SSQLS wouldn’t work with other features of MySQL++ like Query::insert() because they depend on being able to map names from C++ to SQL and back. You needed to use sql_create_c_names_* to make these features work in v2 in the face of a naming scheme difference between C++ and SQL.

[26] These typedefs have been available since MySQL++ v2.1.

mysql++-3.2.5/doc/pdf/userman.pdf000644 000765 000024 00001445070 13515046514 017321 0ustar00tangentstaff000000 000000 %PDF-1.4 %âãÏÓ 143 0 obj <> stream xÚ…Ý[odWråñw}Š|mgï}"b_žÝmµÝ3­éQK†aÀÀ€.Q-zJ¤Ìb©­ùô“ç$/yaü %¯ÃbÕ¯¨Rle÷í_¿(»o?þÏ?þ÷/_üöÛ/~ýû²[|?†í¾ýþ‹º+‡ÿ©»j¶_b׿Ø÷zH~üâo¾ú囯ÿø«_í~>$ûØýó§ÛÇÝW7÷ûí¼~”û²ïóüÃ>ß|\ùõï?©ïýô“,1¶ÏÛzÙ·eÙÿŸ§?ßÒú~ÖåìÛ³zì}´³~¾»ßýæéÿÞÝz8ûÅ-Q÷s>[ØÞüøì7w÷wŸnv_Ý}¼ûùôY[lßìüÙ‡ÿ8ûÔ‡ÿ÷Þk={äç»çŸ1ö¥û®YÛ—v|䫇û§_vgOÍ~ÀZΞú—»ïnïï>:ǨûX¿×zÀÏÏcø>Üϸy|¼½?ûtVË~´zöÔ¿ž?0ögùÃçû¿¼þ!–Ó?Âç\Ö¯“RöKkÛÿ{øéô§›Ë!9â—ÇÓê!é~þÄÝ_~xÚ?ãrñkûvñø¿•RÞÿõե§wuÎñ÷K)õïv‡ÿ‡Ö¹;ÿÂóÃãqþaç_xû¨çœ~áíþíoÏU8ýòwywóqwóù采ÇûÛ¿ÛmÿŠí~óÛ³§¿ƒ:Ï?ðïv_~÷ùÃÍÓÝÃúñgOÃïwœ?ýíÙ‡?ËŸîöÃ÷þòËÙïp,±‹1öÅëöàŸo?=|~üp{þuÙÛÞÚ.z}}îœÿDu_ÏóÏÙ-›~Ç?·Ãƒë/üìKkÙ¾Ü÷cÚõïbý){;Ëoþýü‹j}âì·»‡ïw¿;üûw{ÿtü죭%þú÷vùe}øÜÅö³oY÷»?Ü?=>ÌWòõCËúqoY¶ÓÇ÷g¿›yæ dÙȳ¨9d=ÏZÌ —.\:¸tpà2Àe€Ë— .\fî²”²€,wYj…Ì!Ë]–¥@f5ÈÀÅÀÅÀÅÀÅÁÅÁÅÁ%À%À%À%À¥K—.\:¸tpà2Àe€Ë— .\fîb¥Bæå.‡Q 2ƒ¬A–»Ø²@‹‹‹‹ƒ‹ƒ‹ƒ‹ƒK€K€K€K—. \:¸tpéàÒÁe€Ë—.\&¸ÌÜÅKÌ kå.^ȲÜÅ— ™C...0ï:Ì»ó®Ã¼ë0ï:Ì»ó®Ã¼ë0ï:Ì»ó®Ã¼ë0ï:Ì»ó®Ã¼ë0ï:Ì»ó®Ã¼ë0ï:Ì»ónÀ¼0ïÌ»ónÀ¼0ïÌ»ón¼7ï>ŸW_Ÿ9Ÿmm;˜îíðUqòÐÁÞg};ʳgçjûõ¿ß'Ïüf÷ÛÇ»Ûïwÿt÷ééáñ—õÔüü½¿«“ï:AŸ|äÕgYϳÃgYƒlæÙa‚γ€ \:¸tpéà2Àe€Ë—.\&¸ÌÜe óÌ!Ë]Ö :Ï ²Yî²NÐy‹‹‹‹ƒ‹ƒ‹ƒ‹ƒK€K€K€K—. \:¸tpéàÒÁe€Ë—.\&¸ÌÜe óÌ kå.ëgYî²NÐyæ‹‹‹‹‹ƒ‹ƒ‹ƒK€K€K€K—. \¸tpéàÒÁe€Ë—.\&¸Lp™¹Ë:AçY@–»¬tž9d¹Ë:Aç™AÖ »v¹šŽ×úä¡çº~©#tŸo#ô²ßýáûó)z±}]ÿn}{ì_Ïó¹·z–?|ÞýÓÍù Ìa’_ÿî~{æçó|쇟巻¯?ß~Zï¤>í÷ûëé¼¶ÃÏ8N?ââ{ø“óeyˆ|pnUä.òι‘›È…Ÿ ¿~!üBø5áׄ_~]øuá×…_~Cø á7„ß~SøMö³RDn"o"g?«‹ÈCäìgK¹‹\ø™ð3ágÂÏ„Ÿ ?~.üBø…ð áׄ_~Mø5á×…_~]ø á7„ß~SøMá7…ßd?/‹ÈCäì絊ÜEÎ~¾‘›È›È…Ÿ ?~&ü\ø¹ðsáÂ/„_¿~Mø5áׄ_~]øuá7„ß~Cø á7…ß~“ý¢T‘»ÈÙ/j¹‰¼‰œýBœ?Bœ?"9\ðâú áëƒËöO=}Y ¯3óñ‘Ã1ðOg'´Ã8¸~Ÿúí‰ÛÇŸïnÏo[Ú~ý–ÃÛ#½~5áúý¦·.^MX 3Èd3Ï|, y¶~¿)Í2piàÒÀ¥K—.\:¸ pà2Àe‚Ë— .3wY_¡˜gYî²¾B1ϲÜe}…bžd 2p1p1p1pqpqpqp p p p piàÒÀ¥K—.\¸ pà2Àe‚Ë—™»l÷«iæå.Ûýjšd ²Üe»_M³€ \ \ \ \\\\\\\\¸4piàÒÁ¥ƒK—.\¸ p™à2Áeæ.Ûýjšd ²Üe»_M³€,wÙîWÓÌ!˜wæ]‡y×aÞu˜wæ]‡y×aÞu˜wæ]‡y×aÞu˜wæ]‡y×aÞu˜wæ]‡y×aÞu˜wæ]‡y×aÞ ˜wæÝ€y7`Þ ˜wæÝ€y7`Þ ˜wãy÷òÀç³mOß~˜$/®W×›°—Sõ;¯PìëÞžùö‡Ûu‘ïþvÛÇÛýéßÿãð£w®?×o_ÌÓ¼8 ˜È›È'çÛ·/(‘ηëSÊ]äs~.ü\ø¹ð áÂ/„_~Mø5á×…_~]øuá7„ß~CøMá7…ßd¿ãõ)å&ò&rö;^ŸR"g¿ãõ)å.rágÂÏ„Ÿ ?~.ü\ø¹ð áÂ/„_~Mø5áׄ_~]øuá7„ß~CøMá7…ß~“ýŽ×§”‡ÈÙïx}J¹‹œýŽ×§”›È›È…Ÿ ?~&ü\ø¹ðsáÂ/„_¿~Mø5áׄ_~]øuá7„ß~Cø á7…ß~“ýŽ×§”»ÈÙ/Äù#Äù#Äù#Äù#Äù#Äù#’óÇÕ.®/'½yuÒs{;é-×'½±~×øí™õ¤÷õçÛÇ_²C^}ù"ò¬Ocyˆ|`¾¼|¥¹‹¼sþòE”æ&ò&rö{=Ħyˆ\ø™ð3ágÂÏ…Ÿ ?~.üBø…ð áׄ_~Møuá×…_~]ø á7„ß~SøMá7Ùïõ›æ&ò&rö{=Ħyˆœý^±iî"~&üLø™ð3áçÂÏ…Ÿ ¿~!üBø5áׄ_~Møuá×…_~Cø á7„ß~SøMá7Ùïõ›æ!rö{=Ħ¹‹œý^±in"o"~&üLø™ðsáçÂÏ…_¿~!üBø5áׄ_~]øuá×…ß~Cø á'Î.Î.Î.Î!Î!Î!Î!Î!Î!Î!Î!Î!Αœ?®Î¦q}Ðx>ÄŽ—‡X«o‡XÛïþ|ûéóǧÝ7·Ç^Ñóêzo5ùišÍ<[¯ãÓ, y¶^ǧ™CÖól½ŽO3p™à2s—íå§iå.ÛËOÓÌ!Ë]¶—Ÿ¦™AÖ —————. \¸tpéàÒÁe€Ë—.\&¸Lp™¹ËöòSƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒzƒz»¬÷¹8«ÅùpÇר–vyž«óí<çûÝ—ÿõáö§­Vçýã\ùq.Ífž­_Þi<[¿¼ÓÌ!ëy¶~y§¸Lp™¹ËvœK³€,wÙŽsiæå.Ûq.Í ²¸¸¸¸8¸8¸8¸¸¸¸¸4piàÒÀ¥ƒK—.\¸ pà2Áe‚ËÌ]¶ã\š9d¹ËvœK3ƒ¬A–»lǹ4 ÈÀÅÀÅÀÅÀÅÁÅÁÅÁÅÁ%À%À%À¥K—.\:¸tpéà2Àe€Ë— .\fî²çÒÌ kå.Ûq.ͲÜe;Î¥™C........... \`Þu˜wæ]‡y×aÞu˜wæ]‡y×aÞu˜wæ]‡y×aÞ ˜wæÝ€y7`Þ ˜wæÝ€y7`Þ ˜wãy÷ò¤ç³m?¾'Âúž‚ç=åuáÐÎ_`:l¿þòÞòó7ûuˆzK??=<Þß¾ôü ¸þ½U’v”õï­4sÈzž­ohý)ÐúS õ§@ëOÖŸ­?Z ´þhý)ÐúS õ§@ëOÖŸ­?Z ´þhý)ÐúS õ§@ëOÖŸ­?Z ´þhý)ÐúS õ§@ëOÖŸ­?Z ´þhý)ÐúS õ§@ëOÖŸ­?Z ´þhý)ÐúS õ§@ëOÖŸ­?Z ´þhý)ÐúS õ§@ëOÖŸ­?Z ´þhý)ÐúS õ§@ëOÖŸ­?Z ´þhý)ÐúS õ§@ëOÖŸ­?Z ´þhý)ÐúS õ§@ëOÖŸ­?Z ´þhý)ÐúS õ§@ëOÖŸ­?Z ´þhý)ÐúS õ§@ëOÖŸ­?Z ´þhý)ÐúS õ§@ëOÖŸ­?Z ´þhý)ÐúS õ§@ëOÖŸ­?Z ´þhý)ÐúS õ§@ëOÖŸ­?Z ´þhý)ÐúS õ§@ëOÖŸ­?Z ´þhý)ÐúS õ§@ëOÖŸËìâ ç³í8^ÍÖËUP›ñvN¯ûÝŸ?ßßßÝÿe÷ôÃíîËÿºùñ§·×÷¯ë™áä¯Î yæõ<;æ™AÖ ›yv83äY@........ \¸4péàÒÁ¥ƒË—.\¸Lp™à2s—õÌgYòÌ kå.ë™!Ï2p1p1p1pqpqpqpqp p p piàÒÀ¥K—.\:¸ pà2Àe‚Ë—™»¬g†<3Èd¹Ëzfȳ€,wYÏ yæ‹‹‹‹‹ƒ‹ƒ‹ƒK€K€K€K—. \¸tpéàÒÁe€Ë—.\&¸Lp™¹Ëzfȳ€,w ˜wæÝ€y7`Þ ˜wæÝxgÞ½<Äùlû|f°ëCÃx{¿ó÷úc–õkúí™ßì¾¹[/Šë»¼çýÌ“y·&Ïæ/ý0yî"ïœ?ïg湉¼‰|r¾,"‘ ?~&üLø¹ðsáçÂÏ…_¿~!üšðk¯ ¿.üºðë¯ ¿!ü†ðÂo ¿)ü&û½ôÃ义¼‰œý^úaòÜ<Ý~—W—ç·¤=ùèË«‘»È;çÏoI›ç&ò&òÉùó[Òæyˆ\øuá×…_~Cø á7„ß~SøMá7ÙÏJ¹‹œý¬‘›È›ÈÙÏ–Eä!rágÂÏ„Ÿ ?~.ü\ø¹ð áÂ/„_~Mø5á×…_~]øuá7„ß~CøMá7…ßd?/Eä&ò&rö󺈴\ŸÙü¤Ä$ö»¯??<­ËQ7÷ßí¾üôáæ§Ã?¼³õ|úõ´pó—Óoš»È;ç/§ß47‘7‘OÎm¹ð3áçÂÏ…Ÿ ¿~!üBø…ðk¯ ¿&üºðë¯ ¿!ü†ðÂo¿)ü¦ð›ì÷zû–æ.rö{½}Ksy9û½Þ¾¥yˆ\ø™ð3ágÂÏ…Ÿ ?~.üBø…ð áׄ_~Møuá×…_~]ø á7„ß~SøMá7Ùïõö-ÍMäMäì÷zû–æ!rö{½}Ks¹ð3ágÂÏ„Ÿ ?~.ü\ø…ð ᯠ¿&üšðk¯ ¿.üºðÂo¿!ü¦ð›Âo ¿É~¯·oi"g¿ççççHÎW´¸>hÔåy­m\åì¤ç¢íw¿ûÕ¯v?Úï¾ùú»¸yºÙ]\4ííìc¾½¨èÛ¯ßzx‹ùé½–Œõk‘_Ù¤™CÖól=Ö¦™AÖ ›y¶^Ù¤Y@.... \¸4piàÒÁ¥ƒK—.\¸Lp™à2Áeæ.Û•Mšd¹Ëve“fYî²]Ù¤™AÖ —————. \¸tpéàÒÁe€Ë—.\&¸Lp™¹Ëve“fYî²]Ù¤™AÖ Ë]¶+›4 ÈÀÅÀÅÀÅÀÅÁÅÁÅÁÅÁ%À%À%À¥K—.\:¸tpéà2Àe€Ë— .\fî²]Ù¤™AÖ Ë]¶+›4 Èr—€y7Þ™w¯Fø8n«= ürÎ_Nª)ú~÷O7÷ß}\ïlÖAÿ}þøñ½6»rúa×/K³Ù̳Õ7Ͳ‘gK…Ì!ëyfàbàbàbàâàâàâààààÒÀ¥K—.\:¸tpà2Àe€Ë— .\fî²'Ò, Ë]¶óDš9d¹ËvžH3ƒ¬A........... \¸4péàÒÁ¥ƒË—.\¸Lp™à2s—í<‘fYî²'ÒÌ kå.Ûy"Í2p1p1p1pqpqpqpqp p p piàÒÀ¥K—.\:¸ pà2Àe‚Ë—™»Ì»ónÀ¼0ïÌ»ónÀ¼0ïÆ;óîåI!ÎgÛLJ“äÅq¢ž”Œýî«_çˆ_ýê¿]¼Ò~ý£{ôÓn?ÜÝ|Ü}óô¸>.Fîíráíño/_µ~Q¿Åï_.¬Ãk­ùðšeëðšfYƒlæY_ ÈFž ¸ p™à2Áe‚ËÌ]¶á5ͲÜe^ÓÌ!Ë]¶á5Í ²¸¸¸¸8¸8¸8¸¸¸¸¸4piàÒÀ¥ƒK—.\¸ pà2Áe‚ËÌ]¶á5ͲÜe^ÓÌ kå.Ûðšf¸¸¸¸8¸8¸8¸8¸¸¸¸4piàÒÀ¥ƒK—.\¸ pà2Áe‚ËÌ]¶á5Í ²Yî² ¯iå.Ûðšf×.—sé6¼¾=SÛsWÖá?çÓë2OvÎç~÷·7Û÷Âÿz÷ôÃî·w÷7¿l/~¹ž.—zúÁWßNγžg‡_užd ²™g¾@< p p piàÒÀ¥K—.\:¸ pà2Àe‚Ë— .3wY'ò< Èr—u"Ï3‡,wY'ò<3ÈdàbàbàbàâàâàâàààààÒÀ¥K—.\:¸ pà2Àe€Ë— .3wY'òz=÷|W5Í|, y2‡¬çÙ:÷|W5ÏÀ¥K—.\¸ pà2Áe‚Ë—™»lówÏwUó,wÙæïžïªæYî²Íß=ßUͳ¸¸¸¸8¸8¸8¸¸¸¸¸4piàÒÀ¥ƒK—.\¸ pà2Áe‚ËÌ]¶ù»ç»ªy–»lówÏwUó¬A–»lówÏwUó \ \ \ \\\\\\\\¸4piàÒÁ¥ƒK—.\¸ p™à2Áeæ.ÛüÝó]Õü\±áß»ýðy{߀ß=|w»ûþáq÷å͇.'ûÃß5^Î>쯻?Üïn^ßÜ>] øÇðìƒÞ!ß@ÊMäMä“óm¤8ß@Ê…Ÿ ?~.ü\ø¹ð áÂ/„_~Mø5á×…_~]øuá7„ß~CøMá7…ßd¿ãH¹‰¼‰œýŽ å!rö;€”»È…Ÿ ?~&üLø¹ðsáçÂ/„_¿~Mø5áׄ_~]øuá×…ß~Cø á7…ß~SøMö;€”‡ÈÙï8Rî"g¿ãHùû~WcÝq<{p™Ç'[½œÿìd«òðX¿k{»½{÷§Ÿ²×aÛéÇ]¿ÖÚò·’M³õ{ß–¿•lž<[*dYϳõÛዟ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿ‹Ÿv¹øy~ˆóÙÖÊóvèå‘a9]ûŒ‹&–“óÃùL½ì×ñqytYÆ~žßâ»o>?½søhg]“ ,î-°¸·ÀâÞ‹{ ,î-°¸·ÀâÞ‹{ ,î-°¸·ÀâÞ‹{ ,î-°¸·ÀâÞ‹{ ,î-°¸·ÀâÞ‹{ ,î-°¸·ÀâÞ‹{ ,î-°¸·ÀâÞ‹{ ,î-°¸·ÀâÞ‹{ ,î-°¸·ÀâÞ‹{ ,î-°¸·ÀâÞ‹{ ,î-°¸·ÀâÞ‹{ ,î-°¸·ÀâÞ‹{ ,î-°¸·ÀâÞ‹{ ,î-°¸·ÀâÞ‹{ ,î-°¸·ÀâÞ‹{ ,î-°¸·ÀâÞ‹{ ,î-°¸·ÀâÞ‹{ ,î-°¸·ÀâÞ‹{ ,î-°¸·ÀâÞ‹{ ,î-°¸·ÀâÞ‹{ ,î-°¸·ÀâÞ‹{ ,î-°¸·\.îÙÕ,y2(úóáô«½½zº·×¶o@øüøx{ÿ´mçÝÝ~Ú=¬¯x,ß™ çéÏs=ÛUX «°Va)¬ÂRX…¥° Ka–Â*,…UX «°Va)¬ÂRX…¥° Ka–Â*,…UX «°Va)¬ÂRX…¥° Ka–Â*,…UX «°Va)¬ÂRX…¥° Ka–Â*,…UX «°Va)¬ÂRX…¥° Ka–Â*,…UX «°Va)¬ÂRX…¥° Ka–Â*,…UX «°Va)¬ÂRX…¥° Ka–Â*,…UX «°Va)¬ÂRX…¥° Ka–Â*,…UX «°Va)¬ÂRX…¥° Ka–Â*,…UX «°Va)¬ÂRX…¥° Ka–Â*,…UX «°Va)¬ÂRX½zÃ~½v2¸=/…õvõ½ÂrºÖ÷»¼}Ú^=úû»Ûßí¾º}ºùû?ÜÿðøãÍû“]¬¯‰˜§?ÏÅ•´‰¼‰|r¾-•Q"œoKe”»È;çCø á7„ß~SøMá7Ùï¸TF¹‹œýޝ)¦ÜDÞDÎ~Ç×S"~&üLø™ðsáçÂÏ…Ÿ ¿~!üBø5áׄ_~]øuá×…_~Cø á7„ß~SøMö;¾¦˜ry9û_SLyˆœýޝ)¦ÜE.üLø™ð3ágÂÏ…Ÿ ?~!üBø…ðk¯ ¿&üšðë¯ ¿.ü†ðÂo¿)ü¦ð›Âo²ßñ5Å”‡ÈÙïøšbÊ]äìw|M1åïû]ÍòÇן=xœúë~‰³WN u¾¾ðØÏ‹ØãféqúÀÙËÿµXÏz'ñí?}¼yº}ùVðÕ¡ŽÅ'ïÏß˰Bæõ<;‹óÌ kÍ< d¸Lp™à2s—µ›;Ï ²Yî²¾^<ϲÜe}½xž9dàbàbàbàbàâàâàâààààÒÀ¥K—.\:¸tpà2Àe€Ë— .\fî²^åY@–»¬×@yæå.ë5Pžd 2p1p1p1pqpqpqp p p p piàÒÀ¥K—.\¸ pà2Àe‚Ë—™»¬×@yæå.ë5Pžd ²Üe½ʳ€ \ \ \ \\\\\\\`Þu˜wæ]‡y×aÞu˜wæ]‡y×aÞu˜wæ]‡y×aÞu˜wæÝ€y7`Þ ˜wæÝ€y7`Þ ˜wã½y÷ò¨çíçW•·ËnÀÚçÛ°î×úíèóOçÝÛ1\OÿöâÐv8>žåê|¸¾ýZ†rò!³tˆ|pîUä.òÎy‘›È›È'çMø5áׄ_~]øuá7„ß~Cø á7…ß~“ý^ZóÜEÎ~/­Šyn"o"g¿—VÅ<‘ ?~&üLø¹ðsáçÂÏ…_¿~!üšðk¯ ¿.üºðë¯ ¿!ü†ðÂo ¿)ü&û½´*湉¼‰œý^ZóàæñæÇÛ§ÛÇO»›§‹6ÆuKv=ë½=¼•1^®Úþ•Û®Z²k»ìgùÝ·×'§m2>{ìɘòÉù6S"˜'cÊ]äóm2¦ÜDÞDÎ~Çɘò¹ð3ágÂÏ„Ÿ ?~.ü\ø…ð ᯠ¿&üšðë¯ ¿.üºðÂo¿!ü¦ð›Âo²ßq2¦ÜDÞDÎ~Çɘò9û'cÊ]äÂÏ„Ÿ ?~&ü\ø¹ðsáÂ/„_¿&üšðk¯ ¿.üºðëÂo¿!ü†ð›Âo ¿)ü&û'cÊCäìwœŒ)w‘³ßq2¦ü}¿«y÷8Ÿ½ÏÕ1‡¿Ã.'ãˆ·ÉØÖî˜ïÏûÆÇ~¬/;x{ìfí ?šÿå^¯*Ožy™™¯_¶ÞïDä¯gJ²íõLif5Èfž­÷;i<[ïwÒÌ!————. \¸4péàÒÁ¥ƒË—.\&¸Lp™à2s—íõL‘¯µçYî²½ž)òµö<Ë]¶×3E¾Öžg 2p1p1p1pqpqpqp p p p piàÒÀ¥K—.\¸ pà2Àe‚Ë—™»l¯gŠ|­=Ïr—íõL‘¯µçYƒ,wÙ^ÏùZ{ž‹‹‹‹ƒ‹ƒ‹ƒ‹ƒK€K€K€K—. \:¸tpéàÒÁe€Ë—.\`Þu˜wæÝ€y7`Þ ˜wæÝ€y7`Þ ˜wãy÷ê|çÃíË)æ0ú\bÜÞ1¾ß}ùøøð˜¿sé¶ßá–ïw¤Y@6òlýúH3‡¬§ÙvJ3ƒ¬A–»lç¡4 Èr—í<”f¸¸¸¸¸8¸8¸8¸¸¸¸4piàÒÀ¥K—.\¸ pà2Áe‚Ë—™»lç¡4 Èr—í<”fYÒÌ k‹‹‹‹ƒ‹ƒ‹ƒK€K€K€K€K—. \:¸tpéà2Àe€Ë—.\&¸ÌÜe;¥™C–»lç¡43Èd¹ËvJ³€ \ \ \ \\\\\\\\¸4piàÒÁ¥ƒK˜wæ]‡y×aÞu˜wæ]‡y7`Þ ˜wæÝ€y7`Þ ˜wæÝ€y7Þ™w/O:q>Ûz}>4v¹ïo¯; ±ß}óÓ퇻›wÿïö»Ý7_ÿq÷ÍÓãçOŸßÛÞyušeçóååÕii"œ¿¼:-Í]äó—W§¥¹‰¼‰\ø™ð3ágÂÏ…Ÿ ?~!üBø…ð áׄ_~Møuá×…_~Cø á7„ß~SøMá7Ùïu;&Í]äì÷ºc•·c¬òvŒUÞŽ±ÊÛ1Vy;Æ*oÇXåí«¼c•·c¬òvŒUÞŽ±ÊÛ1Vy;Æ*oÇXåí«¼c•·c¬òvŒUÞŽ±ÊÛ1Vy;Æ*oÇXåí«¼c•·c¬òvŒUÞŽ±ÊÛ1Vy;Æ*oÇXåí«¼c•·c¬òvŒUÞŽ±ÊÛ1Vy;Æ*oÇXåí«¼c•·c¬òvŒUÞŽ±ÊÛ1Vy;Æ*oÇXåí«¼c•·c¬òvŒUÞŽ±ÊÛ1Vy;Æ*oÇXåí«¼c•·c¬òvŒUÞŽ±ÊÛ1Vy;Æ*oÇXåí«¼c•·c¬òvŒUÞŽ±ÊÛ1Vy;Æ*oÇXåí»|Ëé‹C`\4|9>9¯–cê|;-ÖýîÓ~ü?oožnßow«3owK3‡¬çÙúÝ43Èd3ÏÖY@.\&¸ÌÜe»ýK3ƒ¬A–»l·57ð<Ë]¶Û¿š¿xž‹‹‹‹‹ƒ‹ƒ‹ƒK€K€K€K—. \¸tpéàÒÁe€Ë—.\&¸Lp™¹ËvûWówϳÜe»ý«ù»çYî²ÝþÕüÝÀó¬A........... \¸4péàÒÁ¥ƒË—.\¸Lp™à2s—íö¯æïžg¹ËvûWówϳYî²ÝþÕüÝÀó \ \ \ \\\\\\\`Þu˜wæ]‡y×aÞu˜wæ]‡y×aÞu˜wæ]‡y×aÞu˜wæÝ€y7`Þ ˜wæÝ€y7`Þ ˜wãy÷ò¤ç³íËq®ÚU¹[éoç¹µìà›¯ÿøÍîw?þtóx÷i}ïÆûïv¸¿{Ú.“÷ùy¹)/BÒÜEÞ9¹Isyùäüå"¤t¾)/BJç‹Òù"¤t¾)/BJç‹Òù"¤t¾)/BJç‹Òù"¤t¾)/BJç‹Òù"¤t¾)/BJç‹Òù"¤t¾)/BJç‹Òù"¤t¾)/BJç‹Òù"¤t¾)/BJç‹Òù"¤t¾)/BJç‹Òù"¤t¾)/BJç‹Òù"¤t¾)/BJç‹Òù"¤t¾)/BJç‹Òù"¤t¾)/BJç‹Òù"¤t¾)/BJç‹Òù"¤t¾)/BJç‹Òù"¤t¾)/BJç‹Òù"¤t¾)/BJç‹Òù"¤t¾)/BJç‹Òù"¤t¾)/BJç‹Òù"¤t¾)—eóðëEÈÛƒnÏ…bã² aÆÛàlûÝŸoŸïnϾ'oco=Nüy­ûîæéæÝ-£é5CE4:œ¹ÒÈó¨gÑzÁ0ó¶…™—-̼kaæU 3oZ˜yÑÂÌ{f^³0ó–…™—,̼caæ 3oX˜yÁÂÌûf^¯0óv…™—+̼[aæÕ 3oV˜y±ÂÌ{f^«0óV…™—*̼Saæ• 3oT˜y¡ÂÌûf^§0ó6…™—)̼KaæU 3oR˜y‘ÂÌ{f^£0ó…™—(̼Caæ 3oP˜yÂÌûf^Ÿ0óö„™—'̼;aæÕ 3oN˜yqÂÌ{f^›0óÖ„™—&̼3aæ• 3oL˜yaÂÌûf^—0ó¶„™—%̼+aæU 3oJ˜yQÂÌ{f^“0ó–„™—$̼#aæ 3oH˜yAÂÌûf^0óv„™—#̼aæÕ3oF˜y1ÂÌ{f^‹0óV„™—"̼aæ•3oD˜y!ÂÌûf^‡0ó6„™—!̼ aæU3oB˜yÂÌ{f^ƒ0ó„™— ̼aæó²áâPg“§ûóÅ€_ž\†½\.Þâ³VÛÃßyoüæ»ïòSËá«rXúb¬4²~‡¯ÎxxàõÇvøáñÙõG?|ñýñ´ôÛoOfÛÇ.|ødýÔ«_Àéçï‡Ùõåûåå]þÃëê¾ÇñWðúã㯡~[Û'(ëO¼þ&wgÿÌù×_üçëפÏõӵßêÛÊöyŽO¼üóÛ/óÃÿ²»?ü\ÿ£BRÔ endstream endobj 144 0 obj 12565 endobj 223 0 obj <> stream xÚ…ÝÛr$וÞñ{>E]Ú–¦œ;×aïå;‘"ÈM45²/¡n„£ ÑhQôCù]™…*ÔiýWLL_ˆþQèZ»r;§í<6ßÿòÕ´ùþýWÓñþ¸ûÿ¿úúû¯þûdÓvá_µÍ´û¿¶ ßôÖ¶Þ7ßúê¿ØÖ¶›ïž><üðëÃã›w/wÿõûÿ½|»_ޝh=N_²].8fc†Ì y 2…¬§ÙÛZÛ_$ýìªÝ`âoë!ßnÞ½<=/«¡wïþãÛw÷Ÿ7›‹uÆÖvï¿'/ûÝçÏOïî^Îç`ÝÚtvÝ?.æä­ØY~¿ùæéñåîáñþùóÕ:l™¯N®½š¯ò,ÒLξ«ù*ÏFžíæ«Í2‡,wYçù43Èrƒy×nÌ»W“º·¦û«tºšç»½Íóc»ùëçe˜¿{Übº|^úÝ—/?ï&óïž>|ùxãÃÌe€{û6×\š<[¸4SÈzž-\š dY¤Ù:À¥™A–»¬\š)d¹Ë:À¥™@æ‹€‹€‹€‹‚‹‚‹‚‹‹‹‹‹ƒ‹ƒ‹ƒK—.\¸ pà2À%À%À%r—u€K3…,wY¸4ȲÜeàÒÌ —.\:¸tpà2Àe€K€K€Kä.ë—f™C–»¬\šd¹Ë:À¥ÙµËÕh¶p'³Ùë·üù/8—·.¶›?Ý=?Þþ|¼é½ùóãËýóãÝǃ›ÌÛX˜·oqñi¦ùà\[‘k‘wÎm*r)r/òàÜ ?/ü¼ðë…_/üzá7 ¿QøÂo~QøEáì'S+r-rö“6¹¹9ûÉ<¹yá'…Ÿ~Røiá§…Ÿ~ZøYág…Ÿ~^øyáç…_/üzá× ¿^øÂo~£ð‹Â/ ¿`?¦"—"÷"g?ms‘[‘³ŸÎ­ÈµÈ ?)ü¤ð“ÂO ?-ü´ðÓÂÏ ?+ü¬ðóÂÏ ?/ü¼ðë…_/üzá7 ¿QøÂ/ ¿(ü¢ð ö³i.r+rö³ÖŠ\‹œýlžŠü¶ßÕ2Äæ+(³×}¼»EüÅ‚ÅN*‹» j·b9Û²ûKe©ê\öe1óû‡η—Èv, ··Ë~¸¾|Ùüááþã‡uɺÝ÷›ßüfs÷øa³[ ]-€öÚ8ý&74ʃóu@£ÜŠ|p¾h”k‘wÎ×òÂO ?-ü¬ð³ÂÏ ?/ü¼ðó¯~½ðë…_/üFá7 ¿QøEá…_°ß~@£\ŠÜ‹œýöåVäì·Ð(×"/ü¤ð“ÂO ?)ü´ðÓÂO ?+ü¬ð³ÂÏ ?/ü¼ðó¯~½ðë…ß(üFá7 ¿(ü¢ð‹Â/Øo? QnEÎ~ûr-röÛh”ßö»»öÚÙ…Ö®49éPíþ„›ýçÏ» êíåïîÞ??Ýø8ùð/‘¤¼$s‘[‘ε¹yçܦ"—"÷"/ü¼ðóÂÏ ¿^øõ¯~£ð…ß(üFá…_~Á~û›)×"g¿ýÇÍ”K‘{‘³ßq5“æVä…Ÿ~RøIá§…Ÿ~Zøiág…Ÿ~Vøyáç…Ÿ~½ðë…_/üzá7 ¿QøÂ/ ¿(ü‚ýŽ«™4—"÷"g¿ãj&Í­ÈÙ︚Is-òÂO ?)ü¤ð“ÂO ?-ü´ð³ÂÏ ?+ü¼ðóÂÏ ?/üzá× ¿^øÂo~£ð‹Â/ ¿(ü‚ýŽ«™4·"g¿ãj&͵ÈÙ︚IóÛ~Wk»^hØØ_Ùµ_®fæ“ÂâîoÀÍ7_>¿<}zø¿‡ÒâëšæþýOwŸ?ÝØÞüÊ2w‹Ó¼s~‹Ó\ŠÜ‹<8?ŒÅinE>0?ŽÅi®EÎ~DZ8ͥȽÈÙï8§¹yá'…Ÿ~Røiá§…Ÿ~ZøYág…Ÿ~^øyáç…_/üzá× ¿^øÂo~£ð‹Â/ ¿`¿ãXœæRä^äìw‹ÓÜŠœýŽcqšk‘~RøIá'…Ÿ~Zøiá§…Ÿ~VøYáç…Ÿ~^øyá× ¿^øõÂo~£ð…_~QøEáìw‹ÓÜŠœýŽcqšk‘³ßq,NóÛ~WÃîq,>™x_Çâyš/ÇâvÒûÛMH›ßß??œïÃðí¼4LÞ.\÷aüðüô騼qàõ‡mI_nö"Î÷ÒÜŠ|p~¸‡æZäóÃ=„4/ü¬ð³ÂÏ ?/ü¼ðë…_/üzá7 ¿QøÂo~QøEáìw\,¥¹9ûKi.EîEÎ~ÇÅRš[‘~RøIá'…Ÿ~Zøiá§…Ÿ~VøYáç…Ÿ~^øõ¯~½ðë…ß(üFá7 ¿(ü¢ð ö;.–Ò\ŠÜ‹œýŽ‹¥4·"g¿ãb)ÍµÈ ?)ü¤ð“ÂO ?-ü´ðÓÂÏ ?+ü¬ðóÂÏ ?/ü¼ðë…_/üzá7 ¿QøÂ/ ¿(ü¢ð ö;.–ÒÜŠœýŽ‹¥4×"g¿ãb)Íoû]-ìz¡a±¿Òãr­4Tlw€×[Ë®ò¯¿ý÷¯7ß<}üòéñV¿6N_{}`šd#Ï–ÓÓL!ëy¶œ˜f™C.\:¸tpà2Àe€K€K€K€Kä.ëa2ifå.ëa2i¦å.ëa2i&9dà"à"à"à¢à¢à¢àbàbàbàbàâàâàâàÒÁ¥ƒK—.\¸ p p p‰Üe=L&ͲÜe=L&Í2‡,wY“I3ƒ \\\\\\\\ \ \ \\\\:¸tpéàÒÁe€Ë—...‘»¬‡É¤™@æå.ëa2ifå.ëa2ivír9®gɼ]ãÓ뮚vùô‹Ój¦ºçÝ˾µÝßk'—ÿçåÑÞm>Ë>¹û¸v1çi’›“òÉÕW“ržd#Ïv“rž)d=Ïv“rž d¸tpéàÒÁe€Ë—....‘»,“ržd¹Ë2)ç™B–»,“rž d¸¸¸¸(¸(¸(¸¸¸¸¸8¸8¸8¸tpéàÒÁe€Ë—.\\\"wY&å§Ïg/“W?î=÷éÙ}|xÿôá~óËÃËO›ï~ÝÍοùÍõ¨ûú øÉ7¸xlxçüõð<—"÷"Î_wàä¹ùàüuNž~ZøYág…Ÿ~Vøyáç…Ÿ~½ðë…_/üFá7 ¿QøÂ/ ¿(ü‚ý;pò\‹œý;pò\ŠÜ‹œý;pòÜŠ¼ð“ÂO ?)ü´ðÓÂO ?-ü¬ð³ÂÏ ?/ü¼ðó¯~½ðë…_/üFá7 ¿QøEá…_°ßaNžK‘{‘³ßaNž[‘³ßaNžk‘~RøIá'…Ÿ~Zøiá§…Ÿ~VøYáç…Ÿ~^øyá× ¿^øõÂo~£ð…_~QøEáìwØ“çVäìwØ“çZäìgÅúÃ’õÇÕ"Ê®.¯ÇK^îÀ1ïo«­¶=¿±˜–ìß.ùÝæÝOOÏ/›?=|~yzþuóôÃaivãÆÃtúÊ«‡€æ™Cy¶ÜÌðü! y6òl¹™áùC@ó¬ç™ƒ‹ƒ‹ƒ‹ƒK—.\¸ pàààà¹Ëz3Ã󇀿Yî²ÞÌðü! y–»¬73<hž9dà"à"à"à¢à¢à¢àbàbàbàbàâàâàâàÒÁ¥ƒK—.\¸ p p p‰Üe½™áùC@ó,wYofxþÐÞ¿_öžm¾»{¼ûñþÓýãˇ¯ŒÓW^êi¦õ<[þ4#o·ç™Cy¶Œê#o·ç¸¸¸¸8¸8¸8¸8¸tpéàÒÁe€Ë—....‘»¬£úÈÛíy–»¬£úÈÛíy–»¬£úÈÛíyæ‹€‹€‹€‹‚‹‚‹‚‹‹‹‹‹ƒ‹ƒ‹ƒK—.\¸ pà2À%À%À%r—uTy»=Ïr—uTy»=ϲÜeÕGÞnÏ3ppppQpQpQpQp1p1p1pqpqpqpéàÒÁ¥ƒK—.\¸¸¸Dê#o·ç™C–»¬£úÈÛíy–»Ì»vcÞ½Âí|¶õ¾~ƒíî]übRïímR—íæO÷¾ÞüáËã:®ß¸W²üÇì-¿Ïf YO³õ>Cš dYäÙò³çeø<Ë]ÖÅKÏËðy..... . . ........\:¸tpà2Àe€K€K€K€Kä.ëâ¥çeø<Ë]ÖÅKÏËðy–»¬‹—ž—áóÌ!—.\:¸ pà2Àe€K€K€Kä.ëâ¥çeø<Ë]ÖÅKÏËðyæå.ëâ¥çeø<—.\:¸tpà2Àæ]…yWaÞU˜w æ]ƒy×`Þ5˜w æ]ƒy×`Þ5˜wíÖ¼{±.±óÙ¶·Ãñ¸—‹‹·Å‹n7ï~º{>mIüþîånóîåùËû—/Ï7ö}­³¢E>+¦™Cy¶ÌŠif<[fÅ4SÈzž¸¸¸Dî²ÎŠifå.묘f Yî²ÎŠi&9dà"à"à"à¢à¢à¢àbàbàbàbàâàâàâàÒÁ¥ƒK—.\¸ p p p‰ÜeÓL!Ë]ÖY1Í2‡,wYgÅ43ÈÀEÀEÀEÀEÁEÁEÁEÁÅÀÅÀÅÀÅÁÅÁÅÁ¥ƒK—.\¸ pààà¹Ë:+¦™@æå.묘fYî²ÎŠivír9®³âÉ8¿>κÛEVõX뎔ÿ÷ã—ÓiñÆ'Ým»|°©=Ùp¯wŒcâX8vŽƒâåÇãÖ8VŽQm9 cáØ9f5a5a5a5e5e5e5c5c5c5c5g5g5gµÎjÕ:« V¬6Xm°Z°Z°Z ÚRXÇX9Fµ¥­Ž±pì£ÚÒTÇØ8f5a5a5a5e5e5e5e5c5c5c5g5g5gµÎjÕ:«uV¬6Xm°Z°Z°Z ÚÒGÇX8vŽQmé¢cl£ÚRDÇX9f5a5a5a5a5e5e5e5c5c5c5g5g5g5gµÎjÕ:«ñÚ@ym ¼6P^(¯ ”×ÊkãµñÚÀxm`¼60^¯ Œ×v{mpµR´«U@?<š]Úåý±·%eÛž?d7éø²¿åíšïºß|ûô~=ƒwóôÃæe÷Ïëâsóûûóq~÷R=ûöÿ¸ØR³ÕóýýǧŸ—NÅæoÜèØŸ!ÔO_qã !ʽȃóõ !Ê­ÈçëB”k‘wεðÓÂO ?-ü¬ð³ÂÏ ?/ü¼ðó¯~½ðë…_/üFá7 ¿QøEá…_°ßþ !ʥȽÈÙo†åVäì·?Cˆr-òÂO ?)ü¤ð“ÂO ?-ü´ð³ÂÏ ?+ü¼ðóÂÏ ?/üzá× ¿^øÂo~£ð‹Â/ ¿(ü‚ýögQnEÎ~û3„(×"g¿ýB”ßö»Úög]xïæ«G*ë,oãÝ|c¼[ny¼]³ŒwßÝýóáÓ—O›ûòéï÷ÏË÷‡‡û>oÎç·Ø.»6Þ^ú»ŸÎ?÷ìË~þ“+~¹ÿp½}eÙÂ1CWq†®â ]źŠ3tgè*ÎÐUœ¡«8CWq†®â ]źŠ3tgè*ÎÐUœ¡«8CWq†®â ]źŠ3tgè*ÎÐUœ¡«8CWq†®â ]źŠ3tgè*ÎÐUœ¡«8CWq†®â ]źŠ3tgè*ÎÐUœ¡«8CWq†®â ]źŠ3tgè*ÎÐUœ¡«8CWq†®â ]źŠ3tgè*ÎÐUœ¡«8CWq†®â ]źŠ3tgè*ÎÐUœ¡«8CWq†®â ]źŠ3tgè*ÎÐUœ¡«8CWq†®â ]źŠ3tgè*ÎÐUœ/»Šóõ“xO.:Ldm7S\Ld­½Md²œêøüpÿáõC´o6—û/lùå{ÉïþòçÍŸ–ÃÒŸol^êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êm êmíòY¯“ì:ï¾]Ô_öºû«â|Ü•ˆ·qW_1?-¸==nÞýúùåþÓ匾Õvúò¿Ï—ëMü“øáå§§//›ož>ýüñþå~óÍnòy÷å矟ž¯Oé[Þ=N^zõî‘g™Cy¶{÷È3ƒl¤Ùòî‘g Yî²¼{ä™@æå.Ë»Gždà"à"à"à¢à¢à¢à¢àbàbàbàâàâàâàÒÁ¥ƒK—.\¸ p p p‰Üey÷È3Ì!Ë]–w<3Èr—åÝ#Ï®].ß–7“ko:]>?NÆq SÜx~ÜÙ‡%˘ýì%ÿëüóvgùÓ—çÍ¿ÿò¸¹ùà¼~½ðë…ß(üFá7 ¿QøEá…_°ßá±|y®EÎ~‡Çòå¹¹9ûË—çVä…Ÿ~RøIá§…Ÿ~Zøiág…Ÿ~Vøyáç…Ÿ~½ðë…_/üzá7 ¿QøÂ/ ¿(ü‚ýåËs)r/rö;<–/Ï­ÈÙïðX¾<×"/ü¤ð“ÂO ?)ü´ðÓÂO ?+ü¬ð³ÂÏ ?/ü¼ðó¯~½ðë…ß(üFá7 ¿(ü¢ð‹Â/ØïðX¾<·"g¿Ãcùò\‹œýåËóÛ~W+ÃcùN.ì¶?Õéêþ­t{[’\&tyÁÉ%ÿyï~Þe5ý?|þr÷qóÍ­æþù…çÝøeÙÝógýå™@æEž2ƒläÙ²ìîù³þò,wYÎàÍ3Ì!Ë]–3xóÌ Ë]–3xóL!—.\:¸ pà2À%À%À%À%r™fÈ ²ÜeÙ¤g Yî²lRÈ3Ì!—.\:¸ pà2Àe€K€K€Kä.ëm¦ž?ë/Ïr—õ6SÏŸõ—gYî²Þfêù³þò \\\\\\\\ \ \ \\`ÞU˜wæ]…yWaÞU˜wæ]…yWaÞU˜wæ]…y×`Þ5˜w æ]ƒy×`Þ5˜w æ]ƒy×nÍ»Ûë= '×ì—tÓv÷·ÈÅ’ÎåmI7o7}|øç¯›¿|¼{ùáéùÓçÿ±ùöáñË?»ùo_¿ûýo7ÿþnó?»ùæ×yxüíæÝÓÇ»ç‡ÏÛíöz—Áò¶èyW%Ï2‡,òly[ô¼«’g#Ï–·EÏ»*y.\¸ pààà¹Ëú¶èyW%Ïr—õmÑó®Jž9d¹Ëú¶èyW%ÏÀEÀEÀEÀEÁEÁEÁEÁÅÀÅÀÅÀÅÁÅÁÅÁ¥ƒK—.\¸ pààà¹Ëú¶èyW%ϲÜe}[ô¼«’g¹Ëú¶èyWå2»|Ç[ßß®é¯OÀ½¬‹µ·wEÙ®ï{×S.¿–<kùýK3‡,òlùýK3ƒläÙòû—f Yϳ.\:¸tpà2Àe€K€K€Kä.ëǰ–? -ϲÜeýÖòG¡åYî²~ kù£Ðò \\\\\\\\ \ \ \\\\\:¸tpéà2Àe€Ë————È]Öa-ïŠåYî²~ kyW,Ïr—õcXË»byæ‹€‹€‹€‹‚‹‚‹‚‹‹‹‹‹ƒ‹ƒ‹ƒK—.\¸ pà2À%À%À%r—u½iyW,Ïr—u½iyW,ϲÜe]oZÞË3ppppyWaÞU˜wæ]…yWaÞU˜wæ]…yWaÞU˜wæ]…yWaÞU˜wæ]…yWaÞU˜wæ]ƒy×`Þ5˜w æ]ƒy×`Þ5˜w æ]»1ï^,%í|´íëcœçëÇ8‹ÄÛzS·›ïÿø·ëçò !‘/ÓläÙò ‘f Yϳå"Í2‡,òl€Ë—...‘»¬ À4ȲÜe]¦™A–»¬ À4SÈÀEÀEÀEÀEÀEÁEÁEÁÅÀÅÀÅÀÅÁÅÁÅÁÅÁ¥ƒK—.\¸ p p p p‰Üe]Jþ|Ã<Ë]Ö äÏ7̳Üe]Jþ|Ã> stream xÚ}ZÛ’Û6}Ÿ¯À[’Š!xgÞÆ³IÖ»ñnR£­ÔVù…"!‰1EʼŒ¢ý¤<øòu{$%4$»’8r±Ñl4ºOŸnÐëÓƒ'Öþø ÿíÞ¬¾ûѾ'“ ëíƒþQ"ñEâùÒ•X¾Vò›õï—‡i*Ã8bâm3t¶ŒòéûŠ µåX UÛÜw?ByÎ+ã$–Išáwç—_þö[Qõ"Ç–éCré“î¶c-ž±àÔåÇ£îĶí„Qb/õ“P&[úžÈ(`Ï{ñ,˜HæË(d"O¿¼]ö„åö¦/•pUœ*éÏÂêþöåK®UŠ·C/Žcwl{M~ZqÈ?ض„ž'cn®'&¡BgL¢í>TÍNœªa/>Žº«4\Ü ÷güß^LG‡W'³g™Tü±­÷eý³(ÚfÈ«Fw½t•†þeÕz¯EºÄ+;d•ÊH1QhBôˆv+–à(òFl4ŽzlJ‘b€²vû©¨òZœôFôÕ ÍË=©¢ˆâß6ƒâ~Öý2m7\£æª}Ÿ—¯%݇¼ªiuÕ’GEšÈ,`*×{XtÌwÐÐö8IWÈ»b_±Ã Bq»^ùóL {®û•ȱùA×u/Î툗ÙK"É0dKN$F2žëë"D{ïÇM_tÕfr!…BR§NÒF©'ƒ šq‚#…B|ª€Ëˆ'ñ1·‡Z¾Še˜$Lül÷g#ŠbéÁs6pœ8E2N™B¾è4"¯U#T–¥bsÿdöød>[¥ùóPüí¯ÐÅDpd^ÄDžäIß6”ߢòŽLhÇaÚåcÔEõ©X‰ ÏcOúÜ”ÑÄ{‡„§?tÞÕg¡·lQÊ,d‹߃A’¡;;YV/ÎAH9X£ä›¼×USê£ÆÍ0Åd‘×5I˜ópÓ%#ಕ­÷€8ü{2{2™\—H”M—wgÑä-þì?ÖÇzìÿ‚jüuÛµ®6BeêF­»ÑÀ¿<¦òR÷-ÞÊÁGÉ,b‚ç‹I¦"„œP ÀÝéO°=#½ÅeKÑ·ØIQç}oöØOøùç»3öú Šdš0ˆ¦DKÐ?™h~OAѪõx |£]7 º=´ðÞA¿/ÜÉHª¡öò'4Ò”'ÌL&Æ“'H¤Ç­@òðj¡Ô¦L¤®Qªà(Âe8ùQIŸI"RóT:šñ°YêJ‚†YjEŽnfhÈVSrr? öe€C{ÍÓ¸ºý Z~ð± R®ü•ãèAÀÀ`JÇ_¨õQö-A$# èº=èq:tÆs:1où11{iªw0HÊIn†bJçòY5E9€±Èô¼10‡¬>k¦ÙpR?a ÏZ¯ÄKÕT}.Þ¢0yØ«õyK‚$÷áíï©  ânKkþ<¡ân?§â΃!ߘŒ )Àu¸±B±iÛà„A‚f+ø‚†4 JÆ4tD3›A7ySh ˆù`gf š`j 0g®Ó“ï!¸gÖ‡ M©ÿùwS‚ljc}Þ0@1ßÿÊ$ÈEé^Eüy[s ´"¾âfÌ3»ÄÁÏØÆ7Ø_+錌_qìPDžm±Þö­\<{2ÛLZeÚnñ»kǹi°º†;ÄUùè{x‘aƒZú©X‹rì¬w<² 75†ÕÓÜ•`µüÃXÕ±ÖKeGKv8æCµA†¬ËJ—+Óñ´7<ƒ¶Ù•¹©ôæà­7í\èàÑõz!{L'ÂÐO%ÂOÝR=»êÂæÉÃðlKÓô¬mI;{î+t@ OµUçÂ@f1ÓíЄT¦Êy7•Öâ : Úóþë_t·Ï=Á3ï«c´(|oùÔâ馫›l/©+ŠuzètSìM˜nÛºvæ%%¢Í‘ò²0G/õœ› %![8n6õE>š,ßëEXm† ˆä­·|ÿø›‰7q ¨K=èòÆÊ"5É G/¼i¾xŸ Œé§þšbý,éz§û1ø`˜0u(Á‡¼ÔยáõÄ÷eÆeOf(Å3ÈW¶¬5Š}G=ìAB{=f]™ÊYíš¶£®¬»—AvŃ#LË|à­ÓìÁ$—Ùì–Ël8fÚV³¨ä0¨P†Š‰ž/ƒœpßÃÙnZ‰gsY±©v;³lòý·a #­»X]Z0çÅ‚+Çö8Öyg†l$UMûB |÷qöy>å¶mö…N4ÎÑ)ƒÉW@œuÁ쮹µ‚yAucÇË€àÊ»Òé.Ñ,~Æ4<ѱL¼¢ŠÉˆƒãëY¤R¶ý'po~ ¶ú¡‹!L€ä¤oˆ¾ FÚ N&ü^"Ës÷ډ͢éÔÝÕåRü{'!ˆ.†_{Y ¹îr•Ò8¿±`p«hRBëIc]Qí[-¹Âa‘x^Âôä5"ß ¬/â»)Xåìý]Ñ‹é?…)õz/·g`šjS«‚“ï*i3í+ñÓó37š Ar#h zÐ\xFÄ¥vd!¦áòðÖµa鬻àù?=¿Ü…ß·G6Xn:;-y”WµW­Í1c剷¢Í£mAìt¯óšÐîÂ/]/‡PE9a‹—ÔWœ?„Äm9š²ðV2•h¾m‘“ÛR„ŽgÊàR×¹ æb«9ÓLˆŒ2sønôpÒúRÄl7+ϪÉ&G&ÝNrù`˜\údˆ*Û -kØÌK‘—í‘.84ƒMÙâµAÓ~x¤ãwfè:’˜I/- 3¡KuªmpJ¼;#Ðþž¹9Ÿeqí¢#t3ê¢mãèã[Íø‚ø›³ÁøÍæg,¡’زuN»›È'ãßK4,Þç5Ê1w]€ÅŠ­e@Z†Ñ0pÆ(l·&f‹P†í|§{~L@âßÃ]ßj3ÉcŒÉ¢OóR&2V5`1CG$rB9G\éÉFñi„ L4MD¡íš„§®nE(79I$:¦÷µªÏ|VìKåq™Õ9Ÿ‡t}ÄÜx‘MĨÛîºüÐßC)?a€yÒuýýõö„{×k/걄βê |‚—s;^t¯Dߺ„'4=ÏGŽq@ãEf‚©4H”Nè®k;ÃÚgÚ;G ½ÖÁßêîfƒœ&0•qÌÄh¸Û‚‹\Êå‡Þý8= ÛξÎâ–¤ú>r%cj G%òhÑK¼êã=ÂfÐâŸþ ZºP–~I|"Yü}N²¦âÞ×D¤ßhã?"àmãLÖ|•I1 ‚™=ͨs­(æ‚àÒ°UÚMñÄÊÜ[ÑÀ¹$£/½-òA£½G<ÜKe_óáª~‚õMþ¿`‘nF8»¤‰>7¹Âü¦,û`2©Ç#]ƺ„ݽÐQV‹T2ª¹qg~<Öç©}žY4Ò>4èõÇQ›iп§«šY#i胤&É=Á$&p³_…Ä*Þ?…ð_È-Ä®râLäÕà¡lÙÏ51§‘¼½ó9ZÈ¢=òk´„ Êi7°S©çöýRüXí&P¢&ö´¯Ð¨w¿ÿZ÷ï¿™zNG_ÆŠ©Žä /éÛnáÏMSÀ3+‹Œ7­å¸ßH ÚÏuWT°bØL$Ñic|‚6{MkX×êÎ`GÅWDâ$ U¨Õì9Q¸~©G3ÃâÝ”ˆ¬½Ê-3Êj¯ÐüLW¿î¥˜º-÷4îÆ©Ê…+qs#‘1ñ߸ItÏžçÚ}NsÁÕBþÎÿº×ŸI;â0‰"lò£šõ ‚sÞß\©,âÊ^o‚"dÏy3’µ1âïúÚ)ÓüQyó Ð2±°ÏÀjç¨äûÕî”ýèï‡ÀÖš›l„²s—î#/#Åtèy¾WºC=ðë b¢ÏŒ¯¨ÀãËÔˆ3¤4£ºf¯œÒB9éRd9f›÷º>º[µ›Qª&tBÛ®BÅî—É׿´5VÙ#³jb<ÐÚš˜ãøG©˜Ú‘@rÇ &ø]Ä„èc¢òªs«óaì´»04çÞB§cDÓLÀÀ:Fsd¼žd1Uækiƒ®£»Q?ˆœß¡ù»³¥`™”RØ»ñË7šëD|ÍÍ- íÖîMÎPO?ìùx  ˜(͵x«ªhdn‹p¨(E{n°é‡õÃG”Ò@ðôG¤}§txP0mú]?¼<ü:}oˆ›O xôý¡ýuÿÌ(¿hVãKû<Ýò/ó(bÛ’O¿¼ËšÖí[©´¤O •„ç¶iÀkÚî»çeoËO<ª.üŠÃƒùŒ~/?Sì1 =ç'.¿üœdé×þa»øÃùa ôþäáàÆ Ûˆaù!ýåmî_.¿}ºQOòóïÙk˜ ¡÷àði bOõ_‰~\ü‡úB½qšéÀ4Z÷8)ðÈ.r”`ÿòó_Møx‚ž$Y+ßúå3'‰åïW‰eÍþá7Ñ@×ÿ‹ˆÔ endstream endobj 306 0 obj 3735 endobj 309 0 obj <> stream xÚ}VÍnã6¾ë)æÖ›p)Š%ôV Ûè ê¢è‘¶h›­LzEÙ©_©‡}€}ºeKÑ(u$ Âof¾ùæGâ°zÎ8¬6øçüÝeß­²÷8䚉 VÛ,Ž?9hš+&r «CöuÎûfõ×tsÎò‚bà§-L^1!ÁüI¢b\Nð£! ­˜.+:[x:ÙØ»à#c±GÎ$¯Szï?Ho‘KYqVr°Fš óLó‘¬.)Îøúö`\ 1lð6ýÃÄ¿áÓÌ:œ·wZ·îLw™û-DÁr‘¿ðla×YÓ·8vvk;´7ýÀ*ZßÀ#õ{ /¿=ýüî]rÊSzó¤ÊjršLœß!‡Ø3Z!Xžð ýÎ É›n³ws;‘—¬*‰Ý™Ü‹œiê×6(¸«À{RGQ VÕo¸«4Ó’º{‘ùÕI4“4ÑÚ')4‚0`„µµ>UhîZ ÎJµ`:$-U9]®í6t–-…œ¤u…%&טüÁ\à3–òhñµ_‘‚(Í*I "8ß8Úö5StvÍÉ´·~4MÓÙm²„WB–9±4 §Ÿ[„?;ìU?o-h°:·ž;‘²b’&uJ3øµµ&ÚTú¥DØjSJ‹F>ÀÉcü8´†éìÐé©Ód%J»ë¸”ÑÞvÖãa»¼iüz0m áZôcçüÆQÆâµdZ&gz_³’2µmHaÐóm‘(¥—“–¿Œï¨ÚCï’Ùô´veÁD]«3`ËH °©®‹|.¦ª¨îûª( et@¿E©ëyÓXð‚ñJßw[pzA±éÂñhH+oáP£ uù†Cº¾\8ô2½¶°hAô˜×Ìà´ÛaôëʽÕaÜþ¨é¢hªžo¼¤öŽÁ¢)\“¨ãÜê¼[^PÀP´iŒhá0—÷ý œ­BQÀX88ïúÐ ­>ßÔÃ~½M'[Eâ:.¥×ÃÎö}²5ž`K…µ  ]€Î–K–”Ý?}gàßM »Ûëò~š*/X-(Àvfg¿üß+MU³5|™vÄšÄáõÛ4.­¢×«ph…ïW“?¹Äi†Í!KC<œÇcm¦$_0 <^±é´Ï¶éci>@ ”Ä/œ¬|{Z£Øã‰1Æòa:á‹U]ƒOçEx!q~9~[I\öšì¥3.¤ö{ÄÏŠÆã+ãF-Ù=^ðÄ+Éäùíû§ìS–ŽéF׉m‰ï½—h^ãó b´Ùg€G_ÿMT’ endstream endobj 310 0 obj 991 endobj 313 0 obj <> stream xÚ•ZÛrÜ6}×Wàm“L$xó›£È[®rÖM*µU~¡f0c9áEãÙòþâžH ™qv+å˜2nîÓ§…bu¸ Åjÿý®~^]½|Š( ²8«í•!þ“"‹DFA”J±Ú]ý?®þXó¾ûé'ñXö¢u;ˆv+Öín_ó $’õüZ GQ6±o]dXCt'†£îµ8Tãµxr;ÅQHÞ©ì* °šCf2ˆsŽ<öb¯[¬XŒ½›r(ïË^÷×âÞí©ò0ˆùæÇA”ƒ¸o‡¡Ý‰jpÑd¦T-ÈM«ûæo. ÀÉå 3ð•J9G´ÝQÖ5öi7Õ–ÁÓ,H2ßêN7C}$|#ZX­[v'ÊõZ÷½`¶ ó¾çñúÃÛ>à 8$_Öê‘,W>h±/‡Aw ü ýÒ‹ºú ?T¬£ÆÊªþ•o7-ɽ]±Æ÷{Ý_X·M£×CÕ6þPN::Êi|ÃÚŠ@IÖÜv;ãªÜ§#xjÂp_Y{¬>Œ^ƒ6+þsÔÝÑ[l—˜‘±¿X·ñíVô£9¾íX_ÃñtWšq»v|°ÑÑé~¬Ñkß)Ç}ÕÉ$NãmÝëk±ÑemcNw]ÛõþhÉóaÞ–ëG 7L÷ê½ïq0V²o›MO\Š™.Öu çk»éã±Âºõ#s´$ ò‚MqäíY)ÖîyjJ¼Ç¯ ’K"Ây%O)Y»î<îTaä ÃÈšì±mëšÍ¶r>ã¡,Õ¢[Ê=¶M¢4ˆãdòa2ŒÁÛ9ÃP4Þ,!Þßÿ¯‹\ž€ñÃ$²Öqûµ¦ŸØ• »÷ÂŒ“þÅ'¼¬ãV‹£IÉšg¤Ÿg àŠƒ‚þÅÏ> ‚µ·£h´Þ!׺쑇ýìŽv7Æ 7­çĪ—QJÆ äk?‚°š‡@ü¬×%% 2‚%ÖÙ³ç™ŽíØ‰}×>tåÖ&|»ÀY æÚˆÏ?,‹­šMÕ¡_}üü£h «ÑB^„ÌbÒ /ߨÓÃSY„‘]Ù ãÀÓ³–1ÇcÊ~(›5‚œ6a;ùsHø¿Êäÿ5Q¤NûÌÞD'd¡®ØqÊ4³‚uñò{è磆ö¨Ûæþ¦ôxþ@ªÆœ ’E];¦é2ìtdï$J-ÉëÇý¾í0ðŽ;LAøŠu8ž$ë¬$ƒØ\-†ãÁ·¥<íܽzNwuEXJHô£~ b(ŽÙèº{%üTÌ÷´ºùðòí†&äk¼¿5ÕWЮ¬üL«b…Åõíš%~ÄO3„ ®hý<ŸFA‘3Üï<Ÿ"ÚùL›–KÝ"H9ô¢)w †}Órš‰dNÜ…{>èFwÕúBLDiîoç¯B‚ä©×eJ|‹¿ØêZ|{;ðŒh¡0%ÖFû—EP¤“ƒýv"¤Ýf"¨18²†:0l„{{—¶ë:£>oëÕ«É?ÿðùÇ {ÌS¿?h믶fö/ σ*ò˜Á¢å†ûrû£gY<‡³k”0[€3ù¶ $°eÊ °ÊP­ÇºìXBCà&ìÀ+øÓ÷æ„Fþô•4–{²XVq‚Se3—kò´7<ïÇA* ê‡ ÈÞ…|-iÖi]¬|HhVÅÀ¾8‹‹diCx;¹ýü‘)å’u;œIceÍBõTÁç:ðö"k§z‹ra‰Cxq§Ä.%Ÿø#¾FøûRÔœP¡L‚¤àðŽseäïù»b,¦* Êʱè¬s1D'G¯‡IPå2Üñ¯t)"Y¤6ÿ´$oHI\›s\wšô?%%ª+*Mö%ú(ÍÜÇ9ûZÜFÜ¿“òI5£@vçû+zSÑI—iÊàü´ô‘©œ‹¡3ª%äP”­D–t×@êeSvqCI~öàš~Àw×¢o­aÀˆ‡õ‘M§à¾jð«Ò8ê6‰6\äC¯K†jÇzs™N‰¢Œuè‡ ñèxáÊN¯ ¤I&*%Í‚¯©}µ¾`Ô²"vfƒ£P±f¹`ax£ SÖ—gI™u)†X¡n•- väŽ8„ªäF‹ò…tÁ:–ÇE˜Uxh#VUÂÐOÕμS²«˜¸Hƒ”/y¬ê ¹ü¸‡k˜êZؽó½(ô”yáíEÃ)îQ€qh®æËFE¶à«f]´.kVÒÕùd@}l%J(/Jf¤¼,eCqsÁ( Ýv“‰Èk÷G…¹‰r=ÊÍþHîxïWb!Ÿ’ EVêÍ€`ªÖPǦPEàd‚ÉåBPÙ¥Â#Ê’@†ÿSôºPäìÆ^nÁE#¶Gók.#”uÊ›eÅ,Å™’Xð£e@žƒâ±âK±²Š§8Ešå GWn} Euß wäÈ‘·qó7ßW“OÞ_" l<ÏS†ÝɇíeÝ¥’ð¤ØŽÕm†Éz=˜¸˜+Ê(÷êŸâdîûÝaå]…¹í8+7¼¦ Ùò ¬áj#€êÙ5ÇÁ(*bÞÉy8su‹R$#û8s”]UÞ×VªAH½µrå±ä² %Œâkç¹b",8d5ÖCEW½s¦œö\]%òù̆n\Ãc)\H V¼ôȳ.6;åxœè0ûêÉ-`™7ÕIö®ÁöŒ !½Q=»½`Áv¤ª‡?0%¥+åüò6Š Ó²tº‚³#¯’Ó·›Sö•‰¢›f·Ë̾³Q+ShТ/ x‰ñ‰ò´u;n:E×p.èlvÇéPÑ囋ñ/·Á9˜L7“U­íÍÎ,¹HzÌŽ1ùÒdñIŒAN†Ê޹«è2Õȳv]?ê]éU¨ôn‚âÂí¼2Zäc׈‡Š§”nÞ\8ó”âŽ7ëïT¹”9è÷N¨8A7­xÏ®´E‡sýÃV$ü6fM’òîU”²éÑé¥i‡±é;Ùu‰a²tÜZëƒZ#í®’“+3dAè ·çÛÞÝ~ò¯{¢ˆƒVÒašyÁ¡×—æF]•F Ã~ºýðî5ÏƒðŽ”ƒnn/‘DÁpìrs:gA–Ä þÛ‡_¸³¡öô |y©‚i8`uiyŠ¡”cˆQެïäÁÜëAÚ›|Áƒ!#‡ä1žó&³ˆ9`ºb3õF6B¸[|ÅhsEX²Æ©±RYÄËÀw·ïnoVâïâÍ'ÿ‘H ùþWqűò5xÄa´ã ¶D_ºà…™éÄ{(Uí<Ù‚ ›]½C@AŽM/[»}ýý÷ ‰SNŠx*‰c¯$†Üˆ9F|²oSwàÒYjÒãá|á+Uh朄ú7]o–Ó)w.{kC;ÛØ¦~¯×UY_â7hÂB¦îð¦b²ªæÂ²ƒ×ç…¯“j†AôtÕ7 Ý»sUIœRå|¯H;ÓãXIiŒ IÌ8O¼=1Fu—ÑõSï«I·“Ó;çž¼z©cîL¶+Ç¡%7µ‚¿–,‰"Ï…§œ˜‚Ëmžd •á\OEpÂ:§ÛQºá¬Öâfªè'wº¤ AJN××›MEM‹çw‹2Pl’ë¹6«nÔãSÕK¯"”2»mô·FO§¥Ož½é×/B:ÜçZüîàžÑ²•‹ªvúz*SæËŒªÁNʺú·Û®Ýͪ8ã‰< ¸#½!>pŠN‚Ű §Ç3¸âÆ_©DŽÊ ì×sÒ:kŸ–ju>²®Ìû•á4¯@¥}J¾î†t÷ÊzL§ßà…AŒ0ÊÜ"zïýšN9qA_×zOs=½Tš§ˆF<¶ÜèÓ*âƒÃQÏQ v=“¬¶5àtá‚’È$ŒÛÕÅ Œ ¥²Þ]™ß¡ïù3õU¢Bï€å;ƧÅÒ×ãÕ–~³ê¹H€ADB²Ä¬&9™Û:Ãîæz'²sø?,_(Ý;ùòíM)dä0A{FþêþþÔò;–ö[O/—e3Ú[v,ú½°„´.2`?¿ýãÕŸWôI-YA«Meä|…f™1ÿüŒ˜û<^ý.Œõ_bt€K endstream endobj 314 0 obj 3220 endobj 321 0 obj <> stream xÚ­ZmsÛÆþ®_qõ—ÚµtƇ76uÇqìŽgì6–”éd¢|€À“ˆÃvú—ü[ò“úì oAÒöt:–5 nwïvo÷ÙÊ×›3O\çøõ7ü¿?ûöúìÅÛ@(¼¼;SÂÃ?%b_ÄJÉ(×˳§¯ZqW7¢[јv]v¢5]+2üˆÍ¢.͹ø°½úøþùs±°/«õòÖ4¢¾óâîÙõ/;¹Ë4ueß™ÆTØ0ªÈ“iàReÛ–¤5f…€¾¨îé8˱½x &-õD( e”(ËÿqmšÂ´ÂÝEù‰TIÊè®Y'¾«ÅßëN\šnÝT⻬ˈíÂ“ŠŒwÔXQäË µ"ˆ5+K{ˆ_‡m›^Ô¢$;ƒïAÅÈeU Ã(|O†±Kñ[¶\•F½6/Þ†“ãø‘’:q9^_¾yÅd&‰LØ®×oرOË€­³UåIéÕ·ïßô‡™Ú&b.IŠ·L–Že¤\‚ÞÑZ#ºíÊØ[¬xNï«x&Ú•É‹¬üq¸Ÿ§Â ¹÷z£\'nž^d½KËvó "qá-½Û’wÕ üšü¼í²nôvr¶»¦^Ú:Ìv·7tšý+îÁZ2ˆØþŒvç¦mïÖå¹XÔ.}èáFüĥ߈eV1š ”žR.Í–Ö½©ÎA2®7l“×–¸Ë›V€òYÞ™9ŒSÜ ¾§Â½(íòlož Óåòs‘§|©½¯ˆ<‡ÎFžr3æ°:‘Z…Œa9D-®ºfƒÙ´Çý§ “”ôï73bY·à©1ù}”Ö¤¬CžmEWSCF™ÄRG.å#[NáÔÊ]6ðÜ=‚’'Cî¾ÞZO#9Neâò´Î7k»º17Oožˆ¹(àls‚(‘ÑÄňQ[W$ÞnÕ‡‰¨o•·( B=ñ¸0Ž¥ö.µ(ò…˜ãΙ%NÄq¹¥T"〭ÃelÌ·ŒB Äiâ2´Ý|6{Ä9ëæ›å¶ýµ\­f³Ëzóò„‘¼ 爸 vî)«æõò"³!+òºê²¢ê“Ú% +k3´R¼«™¡’å‹]”*BÖ‹×¾åÄqŸ6õ\²áBÈÊâ2H šZr¹S6ôeº´Ž ÃÇ=q2Ç ç | Dsh£°î ÉpJN=( د+cë2¥ødʹ(ªI1Â=\k%ÓÈvM™2P©lëµÈ3hLÖ?:] 'ŽÍÃá¸*J\¦¾8ê8°¤€½Ø¥ª/æÅÒTmQWÈeYÓdH-ãï¤eØ Z×½Ö~5Ø52!Ö^ðFÜnÇ´ÖfÛÙiª=2–MV¿ŸÔÏ?éŸOh©µËÀÍ®€ÒÊ]þ‘­†Zúl»AϬlk1„×ËGñ.ËF˜ÒÀbÈÒPÐZ¥Ê–¸ÕIa(C—å@nvÂWƒÄ·7s` ÿ矞¬š"7OND§Þ„Sºç ûRÌ}™$JRòhÒ ÕA1’b‹¡² ]šº±xµ)à"}ÒŸ»ýrjIS2YCnËg2K¬&\ç¢Gü}öø¡=’;ŒâE2Ýçž¼Ì`T!‡€¦}d‡xV‰«ë÷À€ÕØ™&C€®‡zŒ<ê”ÒT÷*GعŽsôáÉ»•øïÒdåÎÑÔëûQ7nÊ_559úȦ~N²©Nõ ˆ€GDɰ'ÙˆŒ’UWPd%8 `̈ù2REê.S“u_Ûj·n-á¾fûfÍ|ÒÉPu9?òN¡âsU³±ÿGF{Rkw2™y.ÖëêèCa¼Þ¥§Ûuâ¡âI-¦æ–ä%¹F¹¬8Á´ ÇGÌÀ»ø.×K§ ‰ÒŒ4£Jäk4µ¥U攢·¦šÛ:b•m ñ†×]T¨FxC¢ŸKá¼éF©£ÜeS¦Ê‡dHyæÖt$±4Ë bî>åDÀÍŽ&ÖŽ-_Žeì»Ëçšg„@PæXŸ¢qßãq:@¢&óÚ´üJ©A¹ºgêDeдån©]C޶.rùêÃÄ1ãPÆ.£Eü<ô´.)^z½ÊZÊnXf S܇x‡ïžÍH>×%iô©úr—äÒ}U—ä2ˆ«¾Q.þŵÕR¥šQB5Y|E#¥}E „Íhù€f»Ä3ßÐñ÷5M;þÖÎDp}ã¦}w¿B:é¶¢¬ù¨@Y„ÙsoOyÖ‡†.¿c¸ã7%¥ØìÛ#÷ C¼u Á½úüÄC¬ØL³n‡IÔ$¿i/¬!Äk~µØÔ%zõý;Ä O|Š2CƒlWÕÕ=Ëu¾˜Î‘"©˜D¿Êv¢ÎòP{n@?´Ú“=òÕÍŸ»L3ÔUÕ=]ZYt]iËë–ÌS[›\Re˜žÜ @KŠÓYîoˆ!qÞ¢ôí*Ë ™X«S›H uý˜œÎui[zíšáVÜ<ÍlºZ·T~Ü× D-Û›g5½µI=ÉÌ€š8r;±Èx7“ÊÀ%xä©)-;ˆԙ4PV~"W4í±¤ÄÁ.”òSš:;„ %‡ûÕt„jï(Uç|ÌáH’‘K•Á’HÖÉáKKÓ-ê¹­ÞÉo¬gÀóï›l íJšw’nf’¼ƒ¼˜É¥ô5¤YÞšù|€÷¼ž›i³É0aÌ ;40!öØúCÉü&Hk—ú7¾ŽÖA±u“¯»1ˆ=ÿÀ¢Ámú‡[9!ˆ\ª¾*D‡eŠi#¡áJ~70C²uãVïöëŠí‰/Œ …HßÇÂØ¿¬ÛŽXÚƒèˆ)V¯ÑÇòÚRÇ(wøqÑÚg·÷膑>0š»n8j0=㘫)d.'wŠKg‚6ãP gYûÐÃ|qÛd–ùz¹r uB8¼š¶rMµ‹éßQ=á²Q"¬±j© ´ˆ5J™®˜Ž`=å²NF°Š¾ép–QôÇêKê_íRZئLÿ»-½¡²¯ëª-æ6ûílì2tå¼Dòäc=L:û™$JÔüá¥xüó¤T ú4Õýì ïá¿ùF<¹zóþÍëkñ'ñöò„å}rÀ¡ôÔñžSÚ2¸¨nž>Þ<; ¦‘ˆî¾¤Ï ?Øl¶k¥aŸ¿ˆGykîI$Ñ›?Ð+´$ý‹çÏ úöäßÓ=tˆ„3LÀpÙ(YH™ïi‚2OèCÑ]¼´úyåÁ9qª·ÜN– ¾"$íU7¹IxD3Šnøš§,ò‡¿N¶#‰ÒAÒÝÑœ¥TD¥˜K9Þ gøœÀNÑÓ”qŸiñ¦¯,²L‹sŒ}ZÁ.ЦÝ+PA³ý6Ÿö 4¢êÐ%?9ia· ­ áéÔlqº[/ª¶3Ùü3á@ãzß÷Ýp`#úèPš’Að?DÝEBiä«¢B)Â×ð0*Øùþ/Á¡PÖj?úRpdÝÍÓaæ!'‚$…¿ Î}:HâX&^oˆwúÖüÊôÜ4Á¢ÝŠÑõäÓ&=§Lb—ûžC**8&<³£„[Þéù5—ÈÎêìŸÈ ðÕ¾Šzs½ãñÄЇ0ùòŒ¾D´Ïãc"ʳP{“Gìž<ö´ô´8»£¿lØÛØy°œ0:ØÛÝ:Ö¾¤?î1ý°{RÔt–=ýð<ÙÞײyˆõxü‹†}ŒKGûz¦Yµîgx8ñ]ô<:™G°ÏŸ_ÿxöë=ÒJœÒi#å;Ož=fO1~ÞSŒ<‹³Š ²þ p›k endstream endobj 322 0 obj 2966 endobj 326 0 obj <> stream xÚ}TMo›@½ó+æØ*ÎdwYØå)饩•ªÊÛë@ƒ!…u\~Uÿbgq ŒUÖÀ¼yóæcW@~ŒäúûBÏctGW·¤Ae!ßEý$F$¨¤|}R¨ñsþkvK!PÆ76îÙWmÓèÕmL°3ÎÔ Ìb=â¯غݒ5³h5ÇگÀ—êjÝÝ@v×2%ÆbbYб†ÈÊŒ!÷§¨9+d©X£• ÇÒ5ŒL¥1Ê”^¸ß¢à$®ƒÊƒk6í¡ñ®ë¡hÀu]Û-ãâTaÆE"p€AÁÌobäýo°¡TEÿÄÜBïü,þKž0Dªa"©šÞ»b»‚j1ÖÕë­–˜±·‚5C$)JÍ ? âC² ê˜Áæ!Q ß·ƒªÙµÝ¾ß¾µÚ¦¦=k#k‡M1㥠¼©[ô¾«šGØ»ýšÆã]]‡W*0p\ ´0t”–M¡:æ,—©¬F:!KÿðA}RÐk› „#o˜Æ$K²èߟ +QÅ–ëjƳDm*èéùâê˜h¹¾¹Ú¢Öຢæu(CƒI?®ÃÏ®_Aߎ«–o[õž:{¨úÖÎ ߨ¥  ÂÓƿîçHÄùD´~«¼òeÕ„ÁR¶Ú§}Y×íæi¼Õnò9NÀ¥¤þ&°ÙG#G°'ÓB%Zœ™˜í˜Ì6Xe´ ì¼s‚Z 4>¥FQæ]îej£Lª)ÇùËlI4É)ùlŸ¥"!¿Áôteß ßï¿^\À Ý $íGOË~W4‡¢~•â.O"è íöþÿ}ô; fð˜,¨M¥ZXb”yBLïoˆ)¦Œ~BC\ÿ2—: endstream endobj 327 0 obj 663 endobj 331 0 obj <> stream xÚ­ZÛrÜÆ}çWÌ[|!‡À`pSždENTe9²M—ʺ\àbÈ……Ö¸ÚŸÒk~#Ÿ”Ó`5=»`ürÉîô\º§ûôéqótˆ› þ÷wü{¸øææâúÛ@¨@¦Q"nî/Bà¿P¤J¤’* ÅÍîâ‹H~yóûq0W2ŒS&p㎇È1à ŒCÛUEMb×ßFñvKÒD¦Y6-¶5‚íÈ fûÎøâ@®ÄcÕŽ½Øl‹ý`:&'2ä²¢j†®-Ç)Å€½wÅïm'†vU³mT’žlÃÆS%5WÅÔbgpЦêw=öo?ýðÝ×_Kñ}ëNÕA,£œM}Oæ/L& ˜@]‹²z%_(‰dà-ÔˆBÔÕ0ÔF”Æì¹=Èö‰> M)Ì@&iEgŠZpKëHÆlÂÇb·¯M/Ù…Y(ãˆÉ½gã¸Rºg܈~(ºA´÷̤JËtÅÁÆÛ‚ÙWcJ´¾²Ö¹Œ3O3˜²$SÒÁ/éä±ú|]l,—!n»bÜÓ’»¶3bÓ’ù™mS„KÊæ|$g>ZªèÈÖ¤ÚSUšú@wm:ƒŸš~‘Ê¥wº_ØxËLóãbS4X¿Ý“û”XsŽ©f„Š{l…ª³±I{é€ùâtPòHøp ÷ÉE–›ºÕC`Y6!‹%¿ê@Ë$÷Ö¥HßÃÛzÄnÛô¦!—uAÇ›OÖË ­°J*UæV¨$ôŸá1”àÞ—?ŽM³ôõ5«pg0OÙ™/a¨LóøEãX!—µWÜÄHy>I s²=Ý?K¤'»;ôÔ_}UšG³’ÊC>> ‘¶ùP<Ž- q™19¤}ýä ¬6ÃPVÔ·2êœ4¦TͦK\þ‘,黬ú¡«ØíÄa&³\³eÆ¡j­Foë"t̘ñÒ,VÌc&Ë®9T‘LÙp«CÚ†©;˜·`ø™EDg£M QÈÆ`|AE!W¢m6)˜ØÓÊí é¹dí£}ÿÔv寫¬A´ÑÄ6ÃH(ÉyI,Óœ‰Ùd×ñB#Œ@ò&JA©î®6»%ÞŠ”²i?îÌL-Ý(\H¨^QŽpÀÆ‚%œaƒºðpœúˆ‡\À€ –‡Ìa¢€J“„%ÊuJTŠ’×Ì0)<áJ”¼¨b¸ç·­"~ާ³¦#Ô‡1?Ç‚bwSÆül¿s)DS9OtÏN FZ`àVLb™°y=‡öjÁI ¤ûÛ´÷EÀÅ¥ø IÓLèÙ(²™{§qƒtnžGÁÂý ¼1N¹(š–øv­¤G M8CåÞÖÔ{16(ý%®)æË¼d‡„3ÏWG4Çk±Dd`Gøñ„áñÅÌ1uù¾%HåühOVÄ~¿éª=jO8ƒÕœöÔóÜf(g¥ÕâY1ÊbÄ-·"Š¿Ù‚ÏÐ1êÒÀEÜùæ#s>¿¨ðDQ‡BjÖG ,€AÕÇÃìýëûG@&ufyW¬A $ñfo¶D í¸'‚ýré÷|<§Æ¢;^5¼ •T®È“×ëŠUHIÕù…§ÔÂrÇÛqáæö€#J#êIŒþ¹²?@…Å%y1jÍ^ Ôàìõ4Šwârw3¹â3´\%Ë4›øŒ£ P:Ÿ]Ÿ7€1)“BeH¡Î ¬Ù®m(ìÅM[SyŒ‹{s–)ñNg¾å—¤ö¥ˆ¨uIÒ¯oŽqŒc±Ù]ØïÓèyyÌD}ëÀ{„Àñ9Âã$KOÛ‹{úæös&¥¯)A.æ¯u²“½Ý­Sè½< ÑÎ{øŸB Ïz’ŸŸ½íˆOÄOåÜb\:œ‘T8Úϸ)ñÖ~º7æ]M t.2`??þÃÅôH#iN§MBå<ö˜“Äò÷g‰eÎöâ½h°ÖŸÞì} endstream endobj 332 0 obj 3582 endobj 337 0 obj <> stream xÚXÿnÛÈþ_O1ç¢8;–ÖüM®/-곕À€“\l¥Á¡*ŠZYìQ¤BR¶…¢”·ìÌR¤v—’[–ÚÙÙÙof¾™¥“ç“¿Þãÿãà×Éàâ 6þ¸Ø`០¡¡m³ÀƒÉjpz»€m±y‘ÿ|6ùW'dÛ‹lU°†ÇT“p8 4UOÚ´ë1/T§ÐüÅ;ϰÇölæi[6¤i¹í»†äÒâªÚ¬DEç(aS‰òx% È¡^ ˜Çu<‹+8¡Yèz!³5m¸2­ä¢ŠÄ;•Yñ˜æšÎ¬HâLÕ…˜œ·zVq²LsÁL‰0dý ®A]‘8„º2ý?PW$GëWQW$%êÏi–í —˜|Ø>|¾kàŸ¢ÒæÚa­lkNÀ÷èÁ\ÍôƒÅ°ÆýŸ5±€3íøE9g0=ý” XkAÞE§†y^1ÛÑÍ£3%7Œ±é™éIßg~$¿.Eå&ÏÓüñÔh;çê¢RT¢žÏŽàº†øP³ì\ˆ9ž¤€™€EQBœCœ$Å&'¯ÔKX‹r•VUJÑZ@RЏn|T‹ªî‚Á§<dÃÈb¾{àÈr9QˆzZÏm-Ñ ltχ2š´DsT¸Ç’žÛ+Ùî­UÁ#Ý~• 4—úãŽfÅK¼ZgÒ—1…Q7ã»ñd<„Ûã{ͱÜef¥²x¢Ïsfs_Âj»–bVǨ*èÎlœÏáËo7ZZó=UèJÏp¾:=+þª¤?¸JC4ð˜j:ºü+‹¢n"…¼1/ Æ,¥˜B±D½¬Äfzð;,rUu›Zús•>.ÑGª¬ï N¡Am&‡Í»p)uÑž5æj%ÖqIHÖiHz¾ºlhpƒÙÌâªÄL‘g[‰•Š_.QUq¹¥Ð×¹Áó™§™W”4 Óü²Ídt¦Q;}n1Ûò¥‚ëûñúï F¬¶Õ÷l½þFzþöãÏ?àöfüqrûîv|¿þ?ç›|ÏÒ*™w{è°[YVh!ÊCæûšÖgrYR¬V˜4¯ÁëræX¡\Â.Ä ²ìèFíÀ0ZƒŠêñ³Û! £¦6OO¯UK#4TˆÓ|™ˆÍºlGš˜^v PW›G.[è•9`–¾ÓBb×Xí÷Š.–CMš])Í"Ý6˜a}Fò×sH¶'ªØWmžG,ÐÕ¤ù\w*¢àØšÈsÕ/Ž÷Yè{Ç"M&’‰·f¶7 ªÊ`cãjó‚’½# –#5+¼¡ôÕ"ìØ–)ñ¢F^mËUUP?¸8Z¶|\bûŒie&‚ÈweûÄ#qÙØ ˆ¶yÑØm3,wdz·ø•ªâûEŽûSš'Ùf.à$YÍ3º§-O ë],ÇmÝÚ‹¯Ë4¯eíí/ð9³"__ðV«ós¶ü«)îÙ††xZ`؈xÕ“v¨ŠF=i¬¤éº'Œ€`¯$Û¸ŠÂ–n Õ:N°|×s³ïp°üÜÙѽÙÉ9xÂzw§Mó)É@\>&C"§Þàøéÿì•'À”æM¶ÿÛœóC4° ðsqïžó¢»Ör fq%p±%.‹UÛ99ÌÔèaɃNã®G¸¼l£éòòºY}‡‹açõéis:Âô¬ ÒVÀÃNgºÀ[äOíÒ3è ¯¯:yú”¢Þ”9Ø=ÝTG9ïdÿcÌã…›A[E躡"‹˜Yìˈåô¹îF’Íôtg•èŸÞñîi¹úéiÛqÔôôÈóÙ7 ¶a‹0£7.¢œžNφæÏ\ËÓà¢O»’îr]÷ ]õéúë¡oã]¹íÉ[UˆÚ½¨ËT'7Ì ‘þ`òazzR‰Œ¼ÖbÕD¿´ô䀣°ò-=줳º]j¬Ôr«{Éæt<ÜNîÄ*šlPícŠ7U×â}x=|ûN¾ lÜžÄå =‰|žõŒ³pÞÛé©Ö,¾/žñ†ýŒÛ¼ÙÙ6žt:,!dxëIVùÖ„Æí0‚là{–1Dnìâ°‘¥Ñr°8üöÖµ\º°xÌilå=+T#B¼ð¶æ´»™ÝÈÆî³1£ï éÊ®ç2 3-ô°p4-_<œŸÃõi>|¡—â|Ó¼!EÓhݨQ`‘]hϯÏ|ÐfBNÖè¨ýÈ’f6íó^¢]³|…uýÅÓÇ endstream endobj 338 0 obj 2092 endobj 341 0 obj <> stream xÚX[sÛ¸~ׯ@݇:&ð¦¦é¦›íCÒ™$êt:« MÁ^‚”íéôíËþÆýII(¥µÇ $|ç8—ïÀc«Ç…ÇVþù‹ïW‹Û·ŠÅ<`«û…`~‹| ŸÇ‰b«rqÍœŸ¬îZöú5ûe½n¡AS?þäýL#]mŠ?¾XýÛRåù÷“ÈÂèÂhöùÜKâÙ¢™nÚèÕÛ4/ô†µ5{Ð-Ë[]²"7í’]Ñô×N7ÏغY_¯_\:Z X)™­Òè¶k*&fø@ðèÛ”‚KÏ·0£6o¦Í\xòˆéO¼“ÏÊóxäÙÞ9é¯ßÃÙU¥³6¯+vß›l´}ÿ¿ $¼ðÜqfÆ bG.'ˆ<wpi?wûV2á9¨˜‡ñpžÕ67LOÕ$!" ó”–»B3“ã¿gŠÃÚ­ÆaÚ¼ÑìŠã ‡-ºhêr˜ê”"æ‘<§´Mï }ÃÒjÃvM^õªkø`?W*@zXâiÑiÃeÜ5ò0@¯Û<ÃÛ´eïŸ?}x÷òå¦pÈê©„aŸÚºÑ(¶?jÓ-Ûè&Ÿ ùhiKííùÛÛÀF{³ QŽCü$æHWkíf¹Ü#¤êæ¼e¨\™Á†kËìP-¥{„™-ŒB†ø6fŸo°å´bð‡nî-tÊB§ —é—)4ðáóØ1^Q¼+âYŒ­Þ±´x¨È—H¯ªWwÃt›ñón€R Æâõ±~j;øÕ%.¥Â#f­+-N µ}z妚‘W$,±Öf]é5E<íŠmikeIŒVä¶ØØ)¸çzè(‡Ø.mz?´õhdx š„bÿ|KŃpPDôçqñÏ´8Õî œ‚Ȳ¥v½‰"àÒYO?ÑZuu~\Îe½é ‡r¨ˆ'¸žqî»jhLl—!÷(Ý&ð'tv¦ïõr»„ÐB º·'Ù‡šwTfÂPÙKö-å8:%ƒõÉ…óšøŠ+g (:—YMù>Ì6:ÔdÂпÔM›VTÓ[4jÆ¡í[Òÿ²ækÓÉ‘ZpuÇÌ©½ï"KÌîŠ4ûÂîê§%É´vÍ” íª#c.D“ 쓦ÍCvÒ¢ÐBöÂ¥IÀQ½ûóz)0K <¸ëZÓ/bÐð‚#qb—ì„w”Ù¤hS£§}4Ò¬ŠH0cÝ\DIog®Œ©WÉ%·K zaicØ_Ø{ª#oê’ˆ<³a? ax±[–AÄ£09òòyà pC˜bûvY‹ Ô!}ïp7XíÊ0vÌ] 4B¸L{{>á‰} mw¾'9Š)^ÜáÒ¢9ͯê©×Z-O ÎÞéÖªN>¶%Û ý5òXÐ7Zï´Åë2ÄíÆVÎÙßtÓ——Kñre‹è‘Vnø<ÛíÎ;!3áåa™ùuŸê”J†«äïó*+:PÊUVn¨Hðí•áí¯?¾œàý‡þŒ€á¢Ú¯Ëgóµxù’oÿìÀý¼;ÞÞOð¼6ÄGå !{Æ[ø*—ïf`”‡-‡¾†Z³£NW÷RêKÔáñŽÓ¹³è§äxÃ.Ñ©­ ȬnX¶MöÌO?Ev*ïˆñÖíÞÈ}´‹ÉäÎ|{Ë~Dl™dlÑN,2\À¦=…£äŽ;þéfÝÛ}·[.á´\¾¤ßQC2º}}=„ް~á†R3ðN,ù=[_ÿî úböÎ@ýšô’ÿë%€º?!.>¥ÐúS½Ø•ª!Ug3°ÉÁdn7*¨Ø 9·Ç›I_¯¯ïÑë3‡GÕ–BÙ‡ï_DFš__Ÿ±ñæî3ÅÚÍÁÀÜèf¯û÷“w\€„˜¿™$;3ʿ٥ÆÐ7ô;7>± °Ÿa`µ ¨÷zj3ÓÖ(áýË*\˺]ñæÎQ›HøÁ~Ï:»eÞÑØŸ†×¢þÃúúÊ ‰†¯¾â¶_ðjnãXÂGñyå³w ì« ¯v†&ɽÆVG¥{³âºž• zùêLJaÌŠE ­º´·Fr¯í‹ìĬÏßžÿ°øº !ÍD í6DvžF^¿Íqø|Bd¶‹² º~ýC… endstream endobj 342 0 obj 2003 endobj 345 0 obj <> stream xÚYߓ۶~×_ñKìñLüé¸ul'žIÚf|OÇçÉð(èD‡"‚:Yíôjê÷üuý’’.—Þ}”°»v¿Ýýìj; ØUÿ¾Å¿ÛÙ˫ٳ7!KyÄ®3Áü –H–’Ǿ]ͳáçÙ3öª4ë*ß±V›MÕ™'WŸ¦Jq&y˜ÅD©\°ëÇ¿~Âþå‹§’Ë,!âÞÚoþƒß#—FI—¦g]zˆNFíbÕ÷™2žÙ7»í!tå0ã‰øã†×S÷ØUÄÿaØÌ-è>ž°(3®„¼×â)|F"ãB£üß¾\òL„DΗ ³Þ¢XוÑG SXq ÜB·­ËÉ7yYé9ëv‹$1]Sü̺ü¦Òϙ˸_6ºÝqH7­ò¹ä “N9r«»M[3q$§pFzÿ&Ä'Ôσ¹àÈœJx$Q>2%®äÁÖi_‰„ I´÷Ó«—¶6Ôºèʦf çµÁEöûx(ˆy&ÃSÛ9òŽÊbì<:»•ÆØnU7öìb"𩊣}Y½Zj¶ÊQúÖ-uÍ‚uËÒ0=5,â„Ç)Qûœ¯Ö•fì–yǶú«©‚ Qq©B«Y^Ú˜²¾eÿÕÕÜØzÛaö¶™ª*¤» KܲææükØÍŽÕùJ_@ÕthÃv¹e='‹ SD<¦‹åŒHdˆyêy;)ýâ®"µ—0YfªxH¶” ÑG§ì†85HxJ%PÖ*tf!‘¹+›©v¬¨tÞÒ)… >•¦™à’ ¼§ãOS2îÅkFq™ ظV¦é;¥­mN6¬h–%]ɸ`uÓ±Oƒ ÖyQmV5ïñ » —©Qò¸Ç9<Í©ãÐÁa¯?zmМ=ÔTÜ¢—;6× /\iHdr öÃîÝß?}Ê6FûI‘f<De¿[5My[çséohdòLU(%dœÆA‰À_îÀ”©v£uÍÌf½n‡,t‰Ž$Ì«ªI’¼™®¡ÏyÃm⻼<£Î[䪕¹D¬e9þ$½G©^r÷‹Yø¹ÁSÁÜVføµpèX¨ØDã›}Y> ‘ë|Eó’ 8&hºvStMKkº3ŠÞTØ ;Ò&FñžJ¸Âó3‘BÃŒu`e# é‘üšVL‹bEö¡*]™Îû”,ã*¼iVš}¡áÎO2:ëçò¦¬Êng™°• ü0&ñ!Œ´:â ‘qTG 5— l ƒ‚ÎÙ[ Íy²n›Û6_] •à‹¢Y­Ð+ûæ²k6 ÕŽì9Š,ä¦3Јр2îá[y8ä®®mÉš{=ÑEÅ›jüƒ¦Kh+ãt«ž7}’¡oéðO2÷,3ä¤öK˜‡mhSY[›Î%Np•þ½<Á‘Ê} ·Ûœˆ^°Æ&;;¬¿@@;}‰ _Ì蜹P¥¶OÍñ¡jDqèà 8¥þŒ’ Õ™&m¨x*©8’½§Yù<ä ¦™J`€3~és¥ˆðHɸf‹“æÌÂäð&G*ÞÅ¡cy8 Â>û'f®lX²d)¡¿¬Ü,‹Ï/+L¤¥dY¦_×»!ÊÛÓ¹­.“?ž‡3ÉQÒ§æ 3Çåˆd7þ\{?S—A®<µÞkœ½+ëB;UåM›·àAym) ¨FÑYZ”oŒŸé@Wšs¤Q¶:‡X»£Svíg«HAŸz ß÷ÓÓ¦%¸ ‰ˆjGÁ)Bˤ§2Ì-%Ç-&ëÈÚ'^]Áaní#QA&:žå ÙŒ<•J‡ÖéBš0Ž}5ξk(ÿV®DLD¶^« ]=›PÄfŽXMÇiáŒp`JÒûÉÀahº??œ03ŽÝè®C‡B–9¦Êˆè­Í‚Û 2׎GÉ3RÎ7hz}´o*œ­»2rwQî f»uJÚùhëõV4†Œu»µ6‡žI½nÙ²¢zkäLÏ•Ïñ¯ïËpâñ•@ÌäpŠï;Ù¹Œ—OˆøëßIöHø¶¡œinHå˜È>´¶iQ-èm)7Øõ¯. —ȹß\ 6µW>KƧêÎqzî98ˆxH§Ù§(÷݉¢< ½_‚–Ó¾dï¹"tHvúö$^Ï”þ¸a†ó†-ý‚-CÄò‘Í\['ã‹þdÝc¦ÓgìÜÏ.5®ƒ“$âR‘aËÑG>`Rvòý¬_rû#?+gߨª>B 7ÒÑ’©ý­Ãµ=\ ðr•¹1Õ8ßÏÞBN…iê)ätüÐ&|YZ”öBuóåÕáHŠ‚€âB9|µ¼Ðþa´švP?O'‡T ï_Ëé Q*óUü¥¢Ä–º©ŒG¹Á02º§®ô(7÷YyΨ…‘L–uã@<¬»xð×ÉÈ2õ³³Ø[Ú4¥³A^ÅûÁ!äåÉ0*’#"Ž8ÚfÄÖ=²xûö€6s{:§“ìK8’dd9Ú (ÛSê;ÔuEmêv×9ð…¦•=ØÇDrküçpX\}Áæ¥Á‰–|/¡¥ì'#cè1>ä‚sÈx 5]Þvc¿N€Ãt6ä–äö¼¡ìáô 4‹T¢ìÛƒ©äp×ǶK’î èýTpÇN^N„QêOîî&lïJÃqrZw À?zàÕ„¢òÓ%”ö}eBd ûµ[ÒKUißÄDjëaRJžQ;{þ? 0Ú2¤}ë¹/ž½ÛsW‚Ñy$N†‡›ÎÞvôÞEHEMéµíMÚÝJTÕÅpâºù뫽fÀ.A룈«™{‡jŸÇÇ”U³( ¼GìŸ{Yû´œ-ìðIÞ³Œ¢C!ÄÑÔÓ™“P²ñËq ÿÃþÉ]ÒT½üðìÍ.Á\ƒ Âx‡›½‘oÜ).ÑÂþnŠòlvXšÕ»ì v]Ö;Œ|¾üÇÙ/3ûhGìT5‹AäO[f/1~>HŒ:ËÙ{VÃÖÿ¼iÈa endstream endobj 346 0 obj 2548 endobj 349 0 obj <> stream xÚZےܶ}߯@ôb)Qï”*‘²Š]%Û‘µ)=D©-.‰Ùa–CÎò¢Ñ$岜ÇTéër¼,3£¤\^sF£Ñ}ú4`W\í/\q•ãÇŸñïíÅË«‹g¯}!ñÇõ….þ‘"öD,¥Åâj{ñøjSvB=¹úÇ2žFN›"Ÿrµë˦ݰ۵ªëè{«òMV—ÝV`þýPöJܶY=TYk*óÒÐá :âûþSÄwS'’¦H'v V¹©”èQ©Œ‰Ç¾ã2ùpì$Ì|Å·ç'©#Omn¨3¬YˆmÓõ¢Y‹~Ê­Z™ó±›(MçÉ7l(rspè—‘.¸ >Tù¸Ø¤?o %öÕ*ú•¹; BSßAd­ª-ç…Ž/M¡^lTµ[•#˜`à;q` ^ñáÔqÙb(˜Tv+±ÃFÈÖÉv2]›Ýo²^šAìMU¡ç;QdªÊêžžºN¤¦/“x±¼uC+µ©OJÏ R&¹çG*½ÈqýÄ”x8Ô²îJØš‰›ªÉïV"« ‘·*ëéo?6—’ÍÍ?°A‘›í›ÝxFø]Oåþ BéÄ1[óýFÕ“êb%J~Æý‚ðð"s‹ÜЧd㪛üæ%G~‹C‡œI~ÛX!žºÈ¹ÈYRøßÙíy4ãÙëÀB¥N˜˜sÒ3³êÁSãLW(^ùLQ¨¶´ÑÀM™eùxê$ÏúÒ‹ð+|8× tˆî2JÂÇ2†@O‡U”e¼€AèÁŠà”ÿ$5TðPeˆ³#¡P ×>µÈ'¬›Oíô$‘ÃEÍ(=í{&Öœ9šol¯4žuy³Ss|+8aŠ„)3±€ª¾ÁqS6)Ss…ŸPPi׸[6+tÇ‹ÍYËfèlû%qB«rE¾çøþèäí¡»¯v»çÏ_5u=ASÞÔ/ijgˆ¼u6T½È±•衎`Þ6!õ#­ù_ö˜‹d÷ÇœbY—¡G­><Æêž¼°&‡©tB Ó8¹\‹A§SŒ¾.n><~”á?×5×ÛòvÓ_¯Õ§²ë¯ªôáɇ'¶)L$<‘Njmú§¡z ÜV]ýM/´Ú3æáØÇ•鼩î¼êÂú#‡„±td`êÇï†n#Pø‹ª¬'$AýϳE,;àk*rYýàïQZµŽ­>r4˜‚Uüb†À°ÀÓ£¿œŽy’òR@cú€¾M}׿>Ÿñ š5õÙ8‹Ëpd B¢%清l^ôøšø+à”F5d+e'9f.{”­b dž’o&°ÐPÆU­šÎ8³OFÆ‹Rà‰9 àBjš‡c-Ýór-Ë5“#72L‰I˜‚d= Ü©–‚¹¬ µ©º¯œ;Ip6“c¶®æK&pEÉ`‘+0.ÔQ²°Ýø^âÜ-H8ø¶jn² žñF4í\oƤѥ¸^ƶ2JbœÃL @„xI Á½prãèD‚‚Nkå°œ{MU{D8• S:èS?_<ôÄåëþï¥I¾5K¬HC;b’mOÅ4Œlëà‹ª€) ?S[• ÆMø¾¢ßf—¡©„¯³¯W§Šwú‹QŠé4 ›Œ¦”Ǧ0cäÙ}Ûùú´¬¸ 'MØì+»ÑòO¯p´=ßw —LÙ=’>o†ª78íºUVŠX2m¢ æþ,Pxf]Êj¼” ›×ಬ«¹u3$†9”‰|SV3I§?­AI˜EçN>Dœ¶À.?°eúáðîí›o¿=î<ü€²ÑÝw¨¥[ë@$b5õ™Ü÷ž(G{«ÃsÛ¤Ó<é? L§1Û˜oT~סl2À¿2WèвŠ„9}ÏÇ bŽg‡Î¯y$z:Ž !:¨ ­ÎÕŠˆ ޤ;Á.+ ñù4`P&»)SÔ6û¿yòï§¡"øYò_(q2ÁO‡:°0ä»$þ×ge­ÑªXh»Ô#;Jÿ¦ª¾;ÂEôi!,Ä­B_xŽYPáŽØ„—Yñ=ªÒ§3|Âõí V‚K—:S`ާÉáñÃ9‡{)5šl:9üѺUÅ£3N÷#ÏžsÒé~J•‰Éížì7Ôbdâ3­ñEgµcGÇis°œô4œ³Ï^—˜÷c¶Uçšœ€Í°’ü(N™€á´wÁi€7s* Ávo‰ÖÒÔpk÷–©dã 4 € —ºòÊöWès«ÆÖUvÄÜwWoæÀUmgG,z9ñüÚÛ]Yëø.G^O^±“|}&"¤n)MU]_<Þfõ­ºVmÛ´gÂBzöD *+ì륄IýQ_pÍžþè;8œÕÈ{º¶<ªBT­µ_}?7iÙd;л•¸áùé:QÂäÆû)‰-²‚ªË„RÝt³Fw1š8PkdW?ŠE6›cïú–ܾ'=o©NHŸ sÂPAbãÀÛãr{舸´@{ËÑxÊÅx£ SÜÑGT9ØS‹Dñ’uwä“^ßñ¡Y+·»–8µè;º’dëð·ë_/ðjmŽ×³ •GËÝ((¼€ÇPÅ·ö)Ûî*uŒÒ¡‡Ä’L´ªf’ÇDÝðå¢ ^åìDÖó N—èœ|GSnaWcÍ}« ¾å'ÏM×ÙLë`L‰dªíÅgŠŽ/ú…è v\&õ|6ÑN÷¤ËiZvøðsâËóvøQ.ž²Ãug;Ì;ì‰1¢Å_ saÇ®íÝÀ_TÞÕõ¬‡L`ß·«Dþp ]¶V¨ØGY‘€ŸMäM)9>´TÛ Ålœ:4ìmÝfùD$AFû#dðäyd 1w›JòС³SWjMïÕ– êmІ_Ú{ˆÝ”ièÇûIU7Ãí†lA„×»ñG8ëˬŸ[³y™ÕÀ"ô¿ [â- :œa\é‘ôsÇÍ’møÞv jè<–xý…'=p!lõU3Ô½]Í¥ƒziJ.ÕÜ:%/‰û”Ì1ã”2ñŠêÖg#âé~™Nì0FäÂôMïö}b¦Þ^X‘Nf­½?ú¥*bbÐCö-‚Æ‚e_çú=Ïé™ÇÔ3RÃ3ÝÐÀ?bh]dÂD¬«_0>ŸOŒn¡î~Åa‡LÔí¨nÝø ºçºú=}'dQ%1&}.#Þ®BT×.»<ÛÝ8´K}Ëê>Bjv49ŸÐô¨j­ºJzkÊkh}¦äjˆÀßc…Ô—^oÛ±sÐý•Ç! ñ^ZÞ]¾¹|u%~/^ÿüÓ`ÿM~'Þwùó%è†ÚŠ?ˆ_¿kú¢¹/‡ºûUœß:Ý@†c‹ªòLyz »Ï†–/s×Ñíë.Ó·$½Ø]oî‰sµÈ‘’-òžS5 UÈÆ 'ì[l›]håSnxlå<;v‚€‰pJÒã¥l\'FVè‡ÓÎÎ:‰övÔÛD#ÖÞuøYË¥×åÕ2ÅOÑKƒ³åÛ z^Óßóg"ª‹0p­O,ß>>GYúÚ\¬éty((ãoGÒ;ZÚ\™ž˜æjÑÆ%ì_–/I¶å§okuÊvÜ:–G|£ ö²íÎ?hÇL¦Ñ¼§£—ì"ïöû×Çß^Ü_Ð'Ä)YIÏørµ™£ÄüûƒÄ> stream xÚZےܶ}߯@ùʼn=‚xo¶S)É–l¥¬rd­K•§w»Ãh†ñ²£ÉÙ/y÷×å4@rÐŽRN©¤âŠÍF£/§ˆÛãM n×øç{ü}¸y~{óô¥¹LÄíýM(ü E‰,ˆdZà÷7êú¶ªD'þ">û¡é7̓x>ÔÝg_ÿùö_îš´ˆ¤*R³æÃ Û“øæñÙÛ?¾øöV|!^þüÓkÑõÍú½x÷ËŸ_ˆª×{’I°CÓë6õÎ,ê¾$ûI U‘ÒO_Æ" <Ó,”A›ïÝnË^¬›‡¶Ù k݉~«EWîµ°ºŒ»(;QÕæÝ¡Õî¢\I(ï }¬š¡ ‡P9ƒ},÷‡–‚áT*Ó„‹{ÇI"#ï{Z Þå^ŸÞ¾ùñË/]»ì˺: »²oZWPg2 ¹ 2œk®¤˜ÇmµÞŠu‰ïu¢ƒ]vÚ~ fkÄåfMʶj«Pí+‘Š‹üØÛ­êN·=W5D™Cè[]î¹}T¨¤bëo·U'Ž £B™3LÓ¾ïÄ}ÓŠ²f@:ºŒ!O¢?´hîŦìËÑ™’È8ž‚8¦0p­£²yqoœ©¬Éë†}*Œ ™ƒ?2@¬dJÇá¬=`ñT?g¦„G¥QÈt8ŠSx‹b [€­’ŒKžmÊC¯[cŒ•8ìou/pV8“ï·Ö{û{ eÞ2{G©,×F”»®ÆŸð…N»îÚÍîøV“YüE·u¹Û˜=ƒBR¼9@9g¤ ßÅÃxF½;SÀëé} PQœ®Ä“Ÿe2K[:ôdÑê¾üh7ÖÜ÷º­þ0T­Ù"yεD2Yo˶\CùŽæ7ݭ˃Þü.Å«}ùPÕZT÷S@¡ÅÐ BÇ KÙ‰ÌpàBv ‘ Šœ¡lrâE{ƒ!-þö²-ë÷žoæ&Ì`'ž¶N!øb¾×åÆOˆJ¶öû‚õ†9›–yÄǑ̹bͰÛÀ¬_l¹TÁíe‚]Wý_ÅæW³É_vñ«°ŸX(4IÈ0KæBÃlTÄ2 ¤uÓ žB_ÌPå®Ú8nÆmæ…ŒïÔŒÚV¯ûÉ3«îSf‰™ý!£üA«¨¢Qf?ñ¬§fûêaÛû.#Pøã{XÍ%›ûž/x¬6SÌÝë²Zqß4øg‹õ°Å>&ì®UI5²œI•Ø`/¶š¤½18¾Å²îÅ]Óo=Ò£òl†|SÙШƒ¼sMQÒB¶È0—;Ê Lù¥ðß7]/ŽØ7 ?’êý°swö‰cWI&ó º n6¸Nø‚Æ)dõ4ˆÿç0¸eÇAùóÙ©ígwÆÌ±{èÎ6ÕWýcPÕ"v¥žÜ”lܦl‘~ávU¹#úÇ“þ®5-¿â˜aÊL¹@ë—PÖ-wD2z·“(´Ú'½•[q(ôÄ?[}߫׿íP‰Wâ<š>ùŠ'Ÿ—iÊÞƒ§6Bß3~A1.åùg© ÇҭͶC½ÓMj–ОqtRCoK1E"÷ò…,Ê\o(’–C"J}°€|œ•Yówæë‘2~†–í¾c ›äg<-ÄÊ8­5µ«¢eMbé‰ò³âµŒN2™»¢1f¹òž§< “‰“|Z5ò¤‘q’š/œ±'+ý'>oɽqê}yBoBbz)^ò1u¥Àª¼‹)ç.²¥•ø®¤”4 ßéi?wܨR¡»µ„÷H*F;¤s3ª˜Ò–kÖìdjÁFû¬| ¢³œì^›.Ë#Š(t…‹zùgíTëÊ$¬)Èk²Ê\¬X8š¬9<<讯šz®M»ê®-[ÆÒU‚Í0ÝV†­›=bfcyŠ» tI#pʶÇj‡ÜüuôØA¸Ÿ†“T½x_sªæ2]aÇŽ`G~È™d˜¦þœwôp“Äô#I¥Dm˜Öº¯ÖÔ—<©ê‰M„zÉì"_S®‹>‘¯Ïï;Û^\OÚ‹¹Š-çÌ9ŠÝ|"ïı‰­¶Sƒhˆz÷©:ßÃÓB‰+€{8òMî¾…×Q V­«WRU‚Ž#¥l¦èŠÍªxYû$Š=[þƒEp2¡ûº¦1@Oc•{ iÞ„ÿàu²—–9‰ÿ”¦ä×zšÈ0‚ú?SÜ#±Ì+Gé¬ãú£ÇEt’WÛè(ÏÏÇÝL”*QWkÓ™N:®Í‹MsEÍñÜÞïJR5õ9{-µBã+÷›•ÏŠ<ˆÇžÊS.²‡¦ëª»Ѥñ¼ÒÈ‹¯(K'<ÂR¬¡Pw͡ “8e*£?©e C Žlñ¶"v6¨äÊGt2¹»€Ç®*ï`¤‡èν¾zìåóÐVp¤•u+Óö7m¹ß#T6öÌE£¾ˆm‘ÆD©šÞ›Œß7WmÊ05it´MrÅ6à¼Eè >·oûò=Ÿ-ÄèÆ]¨¶4ÊÄø€b/¹×DqFgû¢X¦’6˜;æñ-xì8.Md:ÅpÔgGîÊ0 QþCò¡Z r¤ @…tJü*¹:›ŽB+{jrHQ:cRäÌ`ºS‡\âó^âä9šWÆ#@Ÿ„ Œs›BF’˜¸pE´èŽ6Õ='QÔ7óOmË4+k;H&ßEÜîG·h¬6}G]u]Ðî`ý2I>çÃî¹6ePê$÷ek8ŒW¢DÞ&^°ñú1ºS_V ”hCÛ°éûæU*$ã.9ù­>ÊL‘3ÈGëB¿oõ2!Wt)(&Á»ÓD…!¼ó'AÄÕÔÆ5 7úYóNçöð¼X£ÃƒÑÕ(÷âñåðéH1¨ë!gfoI=œö’ƒÖ Òè éÇ⫱•£¾ìÒ骎öhw ã/玂<ˆoªZ.•Q‘Ë •úÚ¦þêÝI…²È¹öÏveGÓ o|£¼d×ÑeónhctÅ8u-ˆLoÿI@3¾}þ>‘qÄu²|©;²`7ˆB?ëñ\j<ž#s)C˜t^rF­d”)†:Þ;j_šfc3ÌÅu)*‹ ÙšnþyÀ÷³$g(âë†xJOVêº'ÃÁ·o§¤¾¢BëÒðþ ï.‘:0pWà³y娻ÒÌÌζJðÞÐÙÐÜÖH¹Ù˜¶2%Á6ÊSϰ…šs?ý*"‘¨,u14þ´ì d«´Cf$•½³D޽%i«¹éh¨ Væ€;3Ô.;ï²”~' ‰™"§÷‹RdõŒ <šôâÊb“àÐŽÊ=ÝZ8,’ÏÏhÌZx ]yWá ŒB4¤ôb’Ä|Ú–¾ÞYË-Õ\ÍՈܤ©Ña -M C÷µ½yá38›³tå*~¾À7©³rcQùg>z+¿jfù M®Í,™þOØÆ¶9Œ¿Ÿä´û‹‰0D£vàxWº†ü<µ:$OB%Ñ:®÷7æ—^èyz¤v'Q÷ÀüãÑbéi{s?uDSH‘(Ua|¡„«Câ7=Ð Ö~Ìÿa~gJ¬óó¨Ç™x¢¼¢}Îè3c3æGt<2¿PƒóÚ\ºªÑº'V@@z‘ûùÓïߘf2ô&+HÛ”b~ Œš1ý|FLk¶7ïD YÿµA endstream endobj 355 0 obj 3332 endobj 360 0 obj <> stream xÚ[Û®ÛF²}ß_Ño“ÁÈ ïÏSb;|™À2‚JjisL‘ /[ÖOyÏïUÕ$ÕÕÒÎ޹wWߪ«V­ªn¿ð½ KÕúüà«õöá…õã?ðçððãúáûŸ" yÿ(ÿ* U^š©õñá»÷m?¨v¯†G­våPªárÒ½º´£Ú–ꇶӪjT©>ýüŽ%6e¯U‰ßê :ÕŒÇîzÕvjÐ]ÿ{™(ÊS/‹c{¶¯FìªæÐ{êížfù‹Ý#N/HR»æi›ú¢ê¶ý‚~ªh©ÔɧZ›J‹bîÄ9´$¿ÑÃYëfÙ¯¾×Ý“=oú^,FÀ¾ÊfG ÄÇéTWÛr¨ÚfEãt¼ýF¬þ($ŠÈÛ`£§ÃgoMÅVº»O‚ìŽêÉj?Òva„™×.Þt Iž;ã&Åâ@kXȦ:4b°´â0ó"x¼%ËfŒ£=#êªÿ´0àæðâ„7ÌPî©ßxÄŸÞ}tq!/°ÆúA´—\´¯Ys¯?~þñÝ›%îx¿ýUK =ƹÝûé¹ó°ÛáLÕÈ(Är/¡œ'÷lã0”Ô³áß;¾$_p„UÆ~ÿhëbÉ“‹ŒC¯ˆì.#ާ©á¤k°Ë[‚’y;5 óí«8¡“‰!¬Vüçü4°{‚{¡§>´`Lš#O_5[MJD^þüŠ’æ"WÔ88œdð ò ÆRÖñ©%z©QÖµÛšY„û ¶T_±Æ0B,›ù°Õ3Q=44 ÉÒ9ªg÷£:ë\ ®& Ñlì¯ß¼zûþ‡wlï+u~¬¶¼T„ɾ°€D¬‘`¬Ó„]à7­«µäÊ 1“táªïGíØXÁæ3»l¬²à0fK¦'¾:…WÕáéfÛŽäôÎÚÐùQ2ÐÀ R{¤ ÙÌH2Ýp"7£½“&ljеC%=¸!=‰2†·H$^–Ûrå…¨K)8ôÂØºño_4· %hòᄳ¸QLSK¨ ¥ö@gÙ\xy!×Ú+btà3¿›ãœTvú[C.݃oih÷b³®6ß÷Ô¿8~¼oãp9» \¼?µÍŽÈ 6Æ™ Y{¿}ÔÇR:l„ü+àph˜r§÷=ÎI&z1OKüÐY @qN°!nMj"ÕÑŠ%«B'v/Oý$m(ãÀwh)…£óØêÕ¶|$R}—‹õ®ß~øõ퇵úüáÓÛ|xóZ}ü&‰À½ ÑÁÑjœ…núðù§Ò8rœ0@’ÝnñIÀ} C ^jt¼À¶O§—/Ù«æÿ}lúêW¾ï”14-™« j×µ|ÚÎÞbò¬Àî±V¼ üàæ÷ò%ÀH—§4u]õÏl1µ¸Y£üéŸ-âvŸQQ8#Íl˜`IÒ4*ùLB 0¶Ú‰9A G°„ÊÐ@nHy€³ d-Œ‚j‘Xt•fß àJÌHG°OkȯW‹ï|?ŒÄZEÁÅ¢\´â`ZÆx¤9’û0T1ó“[‹ Ñ>Ñѹ?WæÚ±ÞÍ#ÀÓQ)uêH1®Ü€~*®¼¸µœ, ì—3£ÍB}žñ†‰M$fú¸w”×5$Í¢ø@ê¸J}-‰÷zNâ{YÙbk¢c}Yí ÚLæu/Wˆ£`î´„¸CåÒ"°%Ãiv»Y;Å• bóìX>­Þ€Š+åNJe!ÕÞ,)–éãK üb–ø»)MŸ(ü)½ÿ¶­À]B•¦¶ì奭D«Ñ´ª.;P²„r«32lŠvj4âm_vLᑊ]e_qé!yÞ3û°šþÕvC¹©êjÀ*«½á60ýCW9ÂdÝJШãXvÕÞ©P×¶ÝkâЪ¿ôr³ßß¾»á=¢,éRJ›ØÍ`ÉÿAp£ðs¢4~±Å–ÞŸ#9‘½®¹èú©¬À8Š?Š©öo+ꟺö :ª=Á”(Õ˜÷BSC;tTDÄÎÓ=CçˆÙ´GSaÅnÛÝ\vÂo¹N¶ÅÙ ½Å·|{MtŽIôì9^›^Áø Íb^-vF”m‡löXA¢fã±ù…óÝHLŽ~ÛUýR`w?2¤52«ˆÓ“s·_/0úÓÝUÆ‹Ë.lZHÍeö~º“P¬í¡:ê+¤7òù%óâ´¼Š¿š˜ØdÛ÷‰˜e?v¼},å^̉ˆ¾ØKK"Ï÷»}6º¹xOª&»¡3¡#7¾%ŠÏ=íÆ_,ùCiA8‚ï~óýà~l€;…ÝWâ ¸:«Ys´Â©Ã&M‘Ç2ª{C=p}âzS¦76ó•ŽTVL¼vYCf·büwmûe<ýäº>àÓ’+«Z;÷,1ÕÝÄT_·ú4˜@Oº–›ƒ;æ¶tÛõzáUQf‡4¨=Ì“»;®DÝJœpk›1ÄêHW%ÕÛÁ€ÖdädßÌÎpU- vEõ.ì>êúÔ“È-$±—aÖäD“¶ÒÆÏ3Äù…»¥ìê­[dˆÐTY ú˜ %$ÒÕ`Áå-šQ,`´0dˆŠŒÊÖLZìk,2-:! }C'h¡© î:ùdå´EKö—jÙͲ¤@™±ÝŒ„rC…Ã!æ*W–Ô¦kÇÃã Æ“*7"ÿŽbf6ÖHf6ö:L™OV>µÀø-©ò"õêS2hµ¦7烿 Ûpçþ>ù$ÇG@ q ›;½­Žå3ÉHç¶æÇbæ3в®J(Ÿy¹ø$WľmyB§z`êýb>»|pć~Du€9ýÅ…;Ùn˜yydwzýÃúÍúíû7ϘX•”'œ½´°ZâiȾ`ë’ÙÇIáù¹-z‘Ĉ/y­æÕ3»‰ÓÜ‘ü¯EIRPðãã¶õ¸Óü¬Á¤16’g‚`bòçŠ #ß‘WäI8¯gNÊ "[^¤µð=<Jk²3»æ›õðÕBîü@HùÕÁñ!ˆãù‡úáÓÃϦ>´pz·“ºÊ£Ê@”Ê ¹Âf“†j„~D´ð ¹ÝNn~vâŠN3!F,“a¶ˆS³/¼0–S L—ðÓÕG9Œæy‘IY ¦$\Ö™‘( °æC.§7ÈÅï”6UC &±TÄ( E¢Ÿ¹´ÛµÎG3ŒÙ’Ãü.ÃÀ>]eÈúCŽ8éË>ò"”®§‚Xê_eœ¤bx˜Hí¯øæiç{ät«™ î+¾™¤–’½Liœ§?!ÖO…üW gQ NòRÏG¢ ÙO8ÄOnq:N媄rº âG_.kú_o¦ßµT33½¼?&^r˜'÷Jƒc P ³$äAÜþžµ/_ÈY·D2ô‡>²ÊüùEae¾ÐÝ#èˆu-0œâ}#.P(tóPƒ7ƒ¦Ü‹‡R™4š±¦Ü‚H€Ñô޳æ^”Hñòx2·!´ç½<õ”2/!Ü©Îh€£î(õ&bÜ€,»×åy(û!ãVo¿ÿ(Uf€ŸH®æÉ-.0*¤BÅ£)Ú`»S:XNOÎ^¸/̨FÝŒc½H3µ’ºúâÖ ÒTîcÊ1fÆÕØ»èMO¦>Ù³èM&8{“É.fˆ~[µwdk¿ä ­3¸KïncÐ/N ’û·¼À¥PHõq{@½NbKààÌ|&.Mšëž‰r¶ ¡.åÕ7›.vvƒYA´;^¿™m5½#l{º*6ïepÊH.ú;EÔÄË¤ç¤ ó~J_/KŒxê?¤ ¦#•®DfvÍ´è7=ÈÅœ`Éùœ¼80‘Á^ÐÅ”Øhʳ®@Ï‘À5;‰WtÑE²ãÞèÓOoô ¢6GŠ–è‰”¥ 6b‰Æ 9À[}ÊzäL…—`6úúªZ©°ÏêM<ƒëW§ª«aÚwéG3gió¾zÄ”ßlü蘾çϹZûÎ'–ïŸF–¾ö÷ÿFäÃWbú'´Æ ¾Y„½† ÉÈüA ­™Ìýaù èŸ"ÔF~úžÖqÅSñÏâå©Ò  O‘z‰ú  VïËf4u5,ú½0ø´.Ò“?ÿyûÏœûŠZÈ ê‡”Žyùòy™Fbþù*1÷y|øE5ë—ÚøÐ endstream endobj 361 0 obj 4374 endobj 368 0 obj <> stream xÚ•YÛŽÛF}×WôÛÚÈL›Í;mï±sÙ’É#Èbƒ’ZŠTØäŒõKyðøëöTó"VäÝE„œ®ê.ÖåÔ©Öµ'½ w OÜ­׳×ñïvñænñâ‡@(,oJxøG‰Ä‰R2NÄÝ~ñìçã»_úæ±®µ©þöüîã$§ÂHz^2nÅ.g"Q&Ã,œ‹<°õ8”AÈÖµh½Ö#6u#ÚûÚ´BÏõüØ—±ÊæzŸê¶X‰uÞævs%Êâ¹Nz2‰œ£vµÑÓ9[]›CÞyÙo!Å¿æ„I(£ˆ9'oW;mD[‹UÝ4zÕ’¼Gž93βÉ?»ÂˆÇ¢,ÅÒÞmwí¦+Ë#ô+S¬u£×’öxñ”é§N`âDI_õ›2‘Ì™ž'UÀeÄ?ój]ÕV ŠâG™~û3AÃXfAhõÞÔíN¼EØ¡nU¸ÆJf ÓpâË”ïHß ;Œ(*rö^¬ò²Ôkqûþ§Ÿ®Ä’E7‹%òt®Ýµ¤Ä©R§Lè(ÖņɉôB&³Ñ Y`ø^qvù[‚$iÄ¿¥AŠ<2¡,•aÌ„ò#è-ªÿìtÕ–GžKJ*nÙ•Km—›¹,…&'9$Û¡©çYdÏžÉ< •„9èå²é‡ºi‡4/PMgÒK^‰Šë±É¢Bês#2¾/_í7ÌÖµÍ|b­ËWEY´ 'G:´È„ E„³…>•°(ŒéP…S=„2tSÖKeFvW›àH&¨‰aƒ}„(ts1å£4’qÔ[u84Å>o(L[T«¶¨+Ú®®´¨7vO)n**ˆ+ñöÅ9ísØ)wP’);æJ<îŠÕNäÌK¡Œ™àp°Øi«cÝY?•,q#/¦"˜«mÙ:AUÀÖQuG'»"dø¸l򼄿¢ P!xMûʘp^vº¯çQ¬Ën_IÁ*ÙCjFLnn4ë#~ €«Ü aŠý°XÕ5ž`9¾Kq[4elAÚŒA³SÊAâ(R';˜(¶\ ½ïʼÕbÌ«S}:åGöû\›êÏØžB+Z¡½P»ð?Ó æ‡LûÑj®ÛDæù(þ¢¸äËRáÁ‰€ýYÌvÑ6’ws®)EAv’d®ˆ©èçËŸìá[[ÚC_|W[4aŠ* ¥çhæøn}%ŠÍ_ÞCü¸š2ù¾žÊ$à†"1™HâË‹ÜÝÜþ~s{'Þß¾»ùñöûRÄÃÐ&õ%#Â0“ø;7‚bm-`Ô^òä[?™¤×zUæMHrÙ˜CÜuÀÈ„éÕ]¹IxÙCW(R9Ø¢å¨$³Òû£ù³<^¾¤t{=½áºcQµ:ð‹m¥×ÿû#0±\¿ºˆŠ!r ‰b»ó·”@“ÕTÀ/„¡4Oº,B­Ï•û6´Có‚åe‘ݳ:Óm.}íC"@Šà¹Oú`Áê¿–”¤# ™ži¾x}˜@G€ £E|•2ˆØ&e±|aí±E±;°Ÿ<Ñs0àrßÙ:޶ŽZÚ Žñ3ð{&˜W-aŽ¡Äow ñ;èZ£»àˆd»Ë{$\?ßËÁó³ L#øúIê@NÉÿú†Š-xYT¦Å7¶~úH}nL{`3„¯ç“ʼÚvùˆƒôlŸ4šÓF˜±ƒ :Œ8ÔÆ0Hø¦#ÔDåµZW–/‰ €¸kô9 2uŠÊ©Nˆ5à >.Å £1Ó0O8—JSÉwå=8 ¤±uÝ“˜¾Ò‡ökd)ˆ¬ ;C–ºªGåÅ'Â1%j÷«+} ez¡ÇV1:ÖhX½vùÖèz2Ñ693¯X Ñí¶Ý±§ 9gÿ“ypGLƒóõ!Ç„¢Ìƒqë©ï s4èä/'ËØoÚ˺uêÚ ©´æÒäØ+9&Ïz"=º4ÚÁ Åç'ýÆÖñ9iÌÖ5u=ηh8 ˜P+:£ŸdlvÁu.hú¬G k•“*q/|ò~Yl»ºCs\jûã'y*xÊw+s\¤¯mW-cY—2©-š ‡Ë©€ØDÌ?µò"gC³ R~ú‰´mËz »Ï7"*á'Ùpþ1˺Ң^~¹'‘ÚÒÐÎ,G¼ptXÔïu{ñä0J\áíuEŒô,¬Á=£Ò>gÔ;ͤâ6úS¤ÇâøJc§Žç·õÝvmñw1µxÒ~5uËáÏ"Žaªñí.7=ÁÄWi ºùõÏ´õ®.×N‚,#/SeßübZ0íý•Ýa«Á±ïŸQ’ß?ÿB}d¯ûbä㛯˜ yÑ`^é*gR!N‡a.©ûÌõ¹£Œ[ZÂV7{8¶îÚCדØBÔ³3V›ºd‘Ý 3ÍÙIùÛãy¥%oô—éË9»­õÙÉ„Dcÿ0q¤VÌV_SË#Jóúë0]"(½þk(Sœ9Ûܘv¶Ü @s[ì{¿ØRÙë 2µ{gLà%Â`Ŷs(L&³”­#“œÂã¹ß (›§\‹îEdj›g†7›~¶uXÒU8¨~ '³Mû›˜xèòx‚ ’*˜+]†€ ÊYAÀÝ›<ÀÍe¬AÍþ·sÂ(td¯Çï°.à~÷ÑÒ¹ðÈ+fŽVÀýÑ'T©l ,™‹äMa;÷^EU¡ETu5YA1è¶!“šþVï]Tã¢Û¢ŒtÓÀ?{dª%‘G]Ú«Ó|‰òs L£ñô·y…Žý–gŸRh\ñ\Ì!>zá|ÀE¾ã×çto3—ª¿å§ qcŽ¿ïýõÀvòA:â” Ò]Ö½½õr®Ö3ŠåLòS 38…ºüèBç•.IgZ×k}ÐÕ%*«È=NA­kçW…-Ó¹`ëÞ)JUÐ♌Eð’¥v.®щ>uc®¦.¼ÚaˆÐý5Šð@eb›‡{·‚©ûl§ Xoå°½€dæ[Lrè)0Nir4º“­§&=R¦4ê[`ø´ªHÉaÖ¾\Y<—“â ø¶ÞðlLˆèͤò®l¯zŠw² /tÊ¡ÿ^!%òªï8À¶G;èÓ¥ÅeèÁ‘sÚÈ£1?šŸ~Çï0AÑ3¶^£÷•ù§s]T¡¥EÁðc‹ž³ŸÆÊÞÌ DiEYuÚñ²} —=q-{µý4èÖ3™k éã¦lÄÒc‚”±Ò^ñø·njBöþí Æà?¤‹Wñ þvø©©ïª^í– ƒ›Eg.™ÆË*˜æJ°ÅÞ¢é¦éþãv÷Ï_9Æ¥ À£í P+^¿Ué(Rº Ý”%Lœî~¤“÷Ï™â÷w“®'®ýŒ'Vû…ýÍ‹žÇÇT”‹(ôœGLÏ{YzÚ-6çB €í‘ÕÈB=1bnC0>H<Ì}™žÍ­e/?<vœ¦À@zÈÆ$LÜ_q‰jïÁÅÏyÎ>˜Fz×ýÙE~ìýëë¿.þ\Ð#­$YƒŸž> stream xÚ•[ÝŽä¶Ñ½Ÿ§ r“™QD‘úÛ vòùƒ;€³A’ M7gZ^µÔ‘ÔÛÛy$_$÷~ºœ"¥n[jo`˜Yž¢Èbýœ*ržâ(Õ¥x>=ÄâyóðäýúÿøÿíáËç‡_¥„Äðëƒ1þ“"OD.e”iñ¼øÅó®Ä©nqèëv?Ä?ŠñToL$¾~çî(vÕV³ãΈ­yýåó÷—¹’LFÒŸ®:6£xíz ̦k·‚~ý•–¡T¥©ö…ÿxl׬Ò2‹ÑìM5q¨újoFÓû+Ó*tžùvQÿî‡QtÇñpÅ0B~oÚ‘$cÒœ§¤¬,gÉ“?s^F’vÇf -ù4ê>²a©"œ”7lœú¡åþþ‹?þù›oþþËEÕn}Ež¸êó(•á:ÚŸ3L‰ï°eŒÂø'Q)Wשâ<‚ýu¶bÓíuc"wR€åQR–å°‹"·"**"®›8’ŠcÄ·ç÷ß}ó«_±ÕË¢ˆ´ÌpïfSWx?Bao‚-7öë <3€Š£,ã3žf ¼G'’l`Ñe2EEî”0-g>ÀWØ’5)¼`èNlšj °»j 1ÖQš§ßMýÁ°nMó`fů•Ee¦v·ïÞ Va+þEv‰±C·'Ÿg:Ôy¤øßzcÞÍB6 õp_Äò³œÉ€g¤E–ZÖyI:b¨)¸ô“„d!-˜@G&¿^r!úhlèù§V”¤E(ö(óVR>’òo<±21‡ZÒ?ìpjÑ,‚„Æ ?˜x&RH9 늄ÎS#æÁeE ’/†ãÛ›ÆáÑþS×"ÚÍ1ʃyT¤ѹLSÕä(y1ÎOlăö8FKá*qÚuṎhx†¿¤òNr"‹ {á$"Õ ¾îφÉÈ•<KPe%†‰ƒ5 °·pùãfìzl¹kU3‚¼¿·“ᤞhAóõ|Bo´0û=MÊ3fÂW[5G|¨nÅ?ÈÞfˆHó/K„J—ò*ÜÏ{@„ò7å(Üœm€¢hÎæ07¡ïû#¢ëž *™÷à‚>xà4…rÆPgç¡Õ8}Æ•^¤gr[kMƒøaZÂ¿Ì 1]£.\<\PH0|˜´Iʤ¹¡ú=>۳ũ¼œ­e®xP‚—0Muñ rÅ?Áç þQ GU&H¥^_yÞ”—l|Á.Á%‘¦z^8fi¤I{nضÛ1f±Æ0RÿaV¬ýçP¯Ù5È€µ"/ G*K`}01Ó€£c¿R2ÐIðº=ˈ‹2‡kÁ5üq¤Ïªå¬MÛô1gU›v¤ºÕS@´Êœ´NmÁw7—1ÃQtD  S+¢‡<Ÿ`Ïæâýd{s„¬^›e«ÍÆ Žò©T‚¡ùTä8/REÊPÜ6R"Wþ0Q;? Q8:ÖEªK at43ë Þ$‘ø¶ú¾ëCëQba%ª\{VvGbo6»ª­‡ý¥Ó³’™KçΟ·2•Ü ÉÃLµÇg»q.ÒͰ©ôËea!]å÷§ù+/ R¥½ñî(6Ðox¨ÔL6_ºãZ \âL9zÕô%EBŽ«‘Ðü3jù0äÙqIêmPñÀƬí¡/£¢™-¢6\cv/™ÂPy¡ŒóÊ4“>ÖÍÖj~Ù uV¤˜QñÖÙ: ïŽo»õhÃUégD ­BúyÓI©¢ñ“‰é~àQ3‰âŒÁ Ï0ÀÆAëj³qœã¢pÊÏaÆ &þÌÄ…©†3+ápùQÖªŸ6]O5®Ïbî )ÍiäNHPØ[<…¤¯_/kßT-YËPÕ[ZVÐ-FÆ9åíⲌb>µqü—™,jsXº:µNõƯ˜ÃM%i$S&9¬ví%E5zO!ŠšÔö”òœ(›8Þ‘ ¡¦Ì‚¶Ý(Ô¨áqí² Ó’«P ¢ÒÅExj'óRðó0_’2<8(N7 µM¶ÄmñÅñˆDÂc$ Å$]²}£KmøÖ”&æ uÞt\“’A>(‚“ Ð¥AÏÚššö|Æjc#WÝnšã6¨tVsòá¼@UX$Á®Î mó™/$¥PïÈÿ¡ñã Xv7qÃ*8„H67*7^8Hbö>äÚR’€—³PP°\ÕjõšÀN³ÜÕ“œŒ§RP–Åê½’ ëÅ•‚³è¿ÏSŽagC~¯ù85‘ç{¥6d%µ¾Ä=ÿ”àé!þ¦³] ™ÃPs8 ?qA´¡øÙ¨ˆObV  î~ºº QR j…‚^Ùú:‰=Å* Vj«¢º®Ž¥@¹#(š“HÊ´¤ÁþajÈÕ=õ÷0A×l—Jgƒ LÉìwWb‰¯ÂË&daâl‚S”¤ ò©¢–r€»Ý­ÛztÝEJ›s7xN?$qœ?Iù$Ë-žHSýÖÞá«:“t'èöžê2á¶¿Gæ~ â8s™8¥€™ö­÷åµbB4éŠ7P9ÁÁâCË!C’-ä4ˆ]à0¶ÛÃ0.üzª¶-è×¾Û¯ù]ðÝM´‰ áa¢OÏ9Â]ÞNØJ`®î¹Mþ8ݼ[ã Ô(TŸ½ !|jÑñæõ5ùV\oŽºßM½©ÇÐh½gèbkÎ,´æüá9ˆXRÿckþÝ"{PÕZ6qÍŽb‹XË‚Bš®[›õìÚ#XÜTÓ¶kêC?ËTõSÊ‘ˆÑƒi]%5õ¢:z®Í_ET–—NîËû>‚Qp?u§wïfüí+îUÞÈÁöÀ£Úaõ.Ù¶d÷¬'éðkЪ)uáíº‚5å’‰Û—z7¯ªà\€´þÉ‚éÙÌ'ñ[Ñw§¿ýìÓÏþñ›‰ÄHík´ ¡44U_S›ãcÀ R™1µ ˆíº}\;šÔ9¹'x7ýøm£ïÈb8iBÝøHžÝw_—<˜õSj.¦9_êêuCž†Øw«q“.l>_Šîíü g@èLŠl}÷Š®°Ux`Èø7AŸ’Ÿ¿å3±@žàIßµ¢—7›‚qIJXRb¼nz±º€—c¡XŠ…Þ°Ý$_/íàfÛôºAçLÔßõ*é¶­BÎ&)) úÏÿÄÿàé[’¶{Rˆý=ÿ™kÞ?|÷Gù ʘÃe:ˆOŽ|¹ŽâÏ™R`PW³³²QšFÌñS~Hü¢ÏöÛª¾©ùkŠˆ`¾ôÕ³ þ<ˆ<÷‘Ë€\*+ì»O*x”gQnïªK9´¸z¦á |!Üø@JåCÆ÷øÆßRKa[|©ª gce¸Ô®}=DUgx¹*œ[ª¯¼q\Òë%’Í”Niˆ#•«€‘Ë”ˆifááë•BÓ…€àæaß¶øÃÄ|ÚWð®ZJŸ_(|¸ˆ=c&2ß’N%í*©QQbû¾Œ%YwŸY̶lÂSIu±®Õq´SÛtt×?§ðáfÁ5ŠÌm¯^ƒÆE©X1äi~:aÛ"-5‡Øé#K•™d"ô~d© £þ½šw¤é–u_m-Ÿ«¦{}ñRÍÏf¬µõ† Ïí«Ãoÿ¡#Ù#*jp#ðŽ}M‡2·«.aï&&](•ø7|ú6(©$Ê'ÐgÄÚO„–®ÑèÞŽ´ïÁFzeÂÛµe”Å-],0“Óˆáüë®âwIVF:åÀg2á˜+ˆ0MpÙ”€òå\ÀÞn=о~Ûá¬\s舥¹Ëf¯leÒô%Ø—GI8–JÅKOq¦+8ºàw%˜:áz¥˜ÒíÝŒ4ç'¹È$ótÎê7=äqáõ¥nóV ''ÔôºÛ.wvíƒ"Æ2÷åðTÐÒ6ÏПHäó~Õ¹›gˆòÙ¤àÉþ®kP¼WËi= ðö…Ç)4M¾ã¡ùfÇsÈ0V½5g„Öû_‚èƒÀ/ùÞÞÂð$s°%¡×=’ßuöRh:]>(±ÏħFÒžöÛº‡›®9î[K»°K{_#5™)MßXÖ¬Ööýµ?ûýN½H@5H0Õ6ÌåÔ=Ë =Ž /Ÿ©Ÿœð)ÞÑS·¡L9,hG€!K3+€2 ß‹q»ë_X^ÛÑËIŠûn‹ÑLµpÁÿkUÓ°O)]й‚NÓßGðî[’X²ïá\÷Í¯Š¸ƒ¥ü”-¯ï͸Ïs:ú¸øŒV±5 ìIᲤ:*R¶CÇCVChp|PP+›ª¾®Úqm2Y mÔ5P™Çþ—"*ædýþØÏo·7ÇÃÉ<,¿fK¨ÀÆMÓèïC|.ÿQEñ#|þõí9£· [Λ߭B†¯ç3ò¸R¥ý«OŠUˆùFqS&ìw¨:=,âh"R%<í[3sêcóÞ“Îè] Û7ø–·ÇA“Lûœõ6Ý×§i’S;ËC?»7W˜%MwÉÌ&”{MJw‹}ãG¬‘‡žßÄÒåÔþøÇðr0)Ù¸±–F5ðô‡1îoŸ^{c¶ ù¤«úÒð=(¥|h;zÁx­X‚ИÒcO¾HÛ”iéE·OoØø~N.½•½&~«YÛ˜¶66ŽÚß³˜y÷RÃnWÒùÚ°{+¶W®ãËáU¥?»wwüU® QÁ‹ù˜Þ¹3À_ù¸£®Þxwä Xºk$±µo¬±»Êú¬µÚ¿ÔoÇî8xÛ^x[WÀÚ½yn˜äšOÓ÷ÔU¶E"Y’=ºm» "zêM=y®X> stream xÚZےܶ}߯À›“Ò,M¼ÚO^9Ž]%—bk]zH¥R³C/‡ñ¢õø“ò È×å4@Π±³[)ÛÉHh6¾œ>Ý`(îŸnBq_áþŽÿnîîo¾þ!¹»‘"Ä?Rd‘Ȥ ÒXÜnþòašîá¯÷¿CRy’2Ì]Q±/G1=‘ìYB¥A¤\¡^ʦó¨ÇÀ•Ä[Ó¼Ri¤îNbç®b%v×ËAL{-ý8‰ª?z£Q4£ -`å‹nkñÙUÅÐÁ^R¶³Óé¨E¿ö„¾-¢¢¤rúµºn %3OtC›Ñî”Ê‚(qeþ`ËqHwUŽmóE×¢ÜöL°Hƒ4s%ÙQãP ;ªÄOÓWLFAζ2Š®ŸÄï3LJô4ÝjŸëæ!§eYä«i¾ù¦?ꡜúáŸÿz!fRöÌïêç‡ý7¢áû‹Âœ\~‘„k«i.Ûöd¶Ç}›æÆ·é‹oµxj¦=¢îú)T’²ðNò‚“³Øe›VYßuÓMzèÊV”ÃPž˜ Ê[ŽÃ KÜõï`øeœÛ ±Õ1á" ré ÃLÍÁDßm¨"§äwý–&A’ÉŸO~y÷æ8Îm;ŠºœJ±úƒ13ýi[Žzÿˆ‡^Sv ä°&Fdæ®ú×D©ÐO{Ý!©;nØçb»þÌד Vl]^KÛ>f4;»~8ذ@Hàè¤(ôÍ“¨U‘5¸õ„Ã÷FÑ[XËØÉDØ©Ÿ/±Éà/J²@)WYÙMg»âõÏÒREYºX8«úÁ ÔrŠoÃ_{¸¬œ ßAWû²kÆ”ú°ËU=þ'þ vº$ «coáŠoÈTÁ$Ç®Ð%@J?ÃrÀ È`¹®Jçë#C.“µâÄÊ“&̧cµ%pë84#¼®­‹a¯ÅÌç´!/Š­Þ‘9) É§ý<‘è’$“8ˆb÷u—|)P‡5ÁÒLù„ƒÅ… Å®¾…¸±†/ËÛ ÷o®¾4’ ü¸ F1~jÿ½mû-Ò¾ÆYàu„/E_­w@§läéh\öÎIJé*~ÍÖ±’¾x ~)ƒ<ìAL¨˜møDpû t ¿³ŒH¢(ˆ¢Â•íç¶¾–‚ ¶»ˆ úÓÜ ”ÇFßÂòM«ÛŸö=~ý§ÓœwD‘"8tTôÃ#@%cWö\Áî8¼„ÕWzø¯°g<è²-¹D‘qòV l{‚§;½ûR5º›¼,Irµ*$¿"vÛÖTá’±Dé®(Ž»j(‡Ç%¸G³ìi g•&BÙ*RWÁFܽ{‡ÔAlªa¯Ûæa#Fâgt®¹ët¥Ç±N‹ÝÍ¡]zÊé™\ãi¸I¶Ž@uÃ'á¬ÔÚ!±ºJóz(ã,@sÄ>î›j/¶Â#ç‚À3ˆÁ8WIbT‡páqšíR#‰™„݃xÛÏÝôb’V„´´5÷žÙØ/ÝÕ^”žiÂÄ]g!W(¢gîÓMÍ|²e¶AÝS®ôÌ-œ©@åîúΠyu#¶ýôb9W†V8~¸ÿîº%¢$ñD V½ õ:bÇ{•% }àÒñ*<d•­ä€åÃH9H`¿DÐmEÞÓõ‚Ò ’À®:aæ³Ø]?ÝöÝíÓ@ Ím¯è,LÔ³>Š–âºÈücµÇîqGæ¯P¿½Ç=Ì”ùòòÚÕzhOg– ¿1vE¢P52œ{ÛzùƒŠeiê¾ö~ßXƒ„(øÜ q‘¯ÒÓ¾œD³3ü|ÌòÑw+PöÛßD£¥X% %‘O˜M W«a’5˜dçŸ4@ßÂÞaUžoTV ”+|r¹yOßµgô*Á—Œ¹ÎÁà—ì>_ßÝ_h÷6¸€Dœ;²ž·Á࢔ ì¸Q$’ªàÖ§MW & Á2ðß9Š…‰bpEK­ÑM·Ýñö2!cŠŸì\ÍC§ Ô“Y¿Ý"¦“£SwE.‘;Ÿš‘íšúÐ͵:SOd!Ïê×Î`Ž Ð»ÞûmœJ]…OïúNÌ^zZ‰ñ–·ÚÈÊÌ•ãnR””‰»îyIƒî:Ï.•ä?¼I.rJ)ÚÞã€n*ô~€ª~ßg,;¢ðJhœÜ,£fû$ Tî*T “™œ—"ÃÜ•ûÌ—Á)™ôX¶ó~‰—ã|užø¿Úû(ö[ ãK• ƒ‚ÿõJzң؞ø0@¡oNRf²v6 ìWÏZÊ”«²l%k*ŒÎ½ª+¤èõéA ëdÄU\F|âDØD£q×t%Jªž”Î#'ñ=rwA«8Ï(ï³i’V]ç"qX±´“¶Ñ õ…çkÇÉC.Kcä)çê2 Á˸ aNó‚Kh@Ík©m3 ,·có'MLõhÊôPrüÅüeOà¤qsgúõ3O÷ê]BgLÃýóSÅ2%yv*PhØ«R-äy\êXü,Oáˆe]“OmZ¯M5¶IahŽma?C¢L3‚ZO“‡GhÇòœ‰ml ŠºxGýßЛÀ=ÐïyÉÔIˆn ašVK_Ãw•'g¹Åtrj’¨¬B}7¶z ¸Oš÷²Š éªøcZªôhaÌ&YúŒ "…Rö`e»Î+˜“Ç¥v†‚!†ÎËñ"$tu5(ÞÒ\€hϧY|f—¦4 pŸØP |Ìù=TW Þ«ÜìÍÌk4úâ¥D.•ËÒ rö[7|l-ƒL1EŸ›z.Ÿux¦‡rÅü‘ŒJäyí;K8›ÊjçÍ —2ñ§m@ùÁš;‰XåJšü4ÆJŠJ=sÀóÞq Ê” ”Ñ/híÇÓ8éC >ôÈ 8«kxõ3ÒŒg4cÿÒ?©*XÄš÷êî&Cžâ g 4uöÌ“mê¯pVª]Yʤ'ÊXÌmÃ.§ŽÎöì ‚Œ-k¼0à“?ëD»áJöC[û‘½q…>Ò\A=œ­'Êþ©O–µøFŒ.ð€¢Oœé¡ïkf>Ê’qO3{3Ø3³„®ïV0¢îÄÁ#Öí5NyåJH…‰³ö¦‡Gk¤‚D2A;‘GÝÓÿÑ®ÌH¹nÆjÍüj¢$§åÑîž·Û²z䆌ŒµýtŸ ·¢<[xšÆ¯£áæÆ„:Wè]T\Ó¼Õ&kÉ=ó‚úÖÊ/`p0£o6ê0nT·,aëzØ#ÌmÕP¯ ÏÇ:V7Íó;ËiDãªÅO_¿G¬Vfö·‚“ï|Á\ŒtY³¸à5½dèó@KŽJ‹—ΪŒ£Ò‚@ÝSt›v×NI®>îF¶%`Ï«÷êf@¾÷ÈQË0Îg}TK3ÞÅLD÷ì-ÖGk)~ûÕò$;kX­F(åÛ)¹ÀÑƒî¨ Aþxÿó»@¬7 xÌ»C ÝGq–^_¥iX\™Ï"^0[žÓ „+Oåj±˜8–`÷†Höu7¶MtQ¿ìž ÏS¦¯„ zÖ‡¸¦ˆ/Xô‘¬Bºew—¯@‚÷†—ì—‹#šçq¹¥ÀWc;GÓϘ <ÅørM|Éž"È2¦`gîd`‘3b,¦>˜[˜%øüa~Œž2âŠúáÑFÑbXÛ/ÒE'ZN_#åàŒIÃk‡ô)vO»&<9µ¬h‹Z%þÑΣÅmÞÊØëwW—w›€ÚÌ×i¸kF;~#çé+Š`¥ü]Ö™éÃ<î×H¶—•ËÍ-ýžyØß¶š_ÍdÊ_Ùw¢"°e. Ûk-C]³-»‡™òÚP¥pRP•šP—›Žúšäu<³§²³ÃÍ#ê2}U³1÷#oß¼Y(áRåmçn:NDÒ:ÝDò{sš¾¾3<`CT¸9XKÁÕa=DŽÌðŽ)ò>3±iº<ÎÓ07êjƱOk«8züS¥!]n¸O#/~dO¥!"psE»GÑ[ÊH­`ˆ÷kz,¥j¼æ-é4‚”S×`O¢=O%]Q£*†Þ¯ãèk&+î#sÓšŒ·)DCåièÛuoþ·2èÍøæ>û¾0óvtµœˆã? e‡^kX€¦¢¶ÜPÿKbk·‡­2»€Ìû œ˜m‘²ÜÞ}Quí´¥ÚŠ_^§ºW˜.oEàeäŠm€†& †oV„ˤï¿Ôi2Aú>%yîKК,ÍØsäLD)M)ÍÍàåó†Ñ~pgò®ô†¤155®&dúû;Pû IÈ"g¢÷ ïw„æË# tš]Ìvuæ,nqcÂØ†Ø(rårñ¿X„œ3Nè}‹vªb!µ¿Š½ÁÝ”¦îºnƒÕ9á3çDl…ޏá }QD­è¿$˜.ÇÓBcM ôlÞ<’LIp~߸ìæO=ôb{¢«ìg<êª)[Acô»Û妨ڗ4¤Gø{HgY 3ö†yò»¸0†¸B'ÞëÀ¹iWB[âEÒ,—ÛÅi4×-ã,Óð·ã~ïrȧô±žŒ™xy:'ÂxOT”óGr¥gÚËE!Ån‹8g¢†Îs§&ij_<]¸Æ|Ýò»æjùuú`ØÕÃJÑåT®"Ñ"Kš%®Ìz›±‡ÍW§c9ŽËÝí…‚<¡u1ß|Šf> ñÀfI˜ö{£Bû_”Fì8v3Áæú¸4S‰%¯ì:ö¤«}×|š—aÐßîÏr¡¸•1í£:ܘïÚè÷ú3íM‡ÞOœ+ü´²ôk³£ÏŸÎ.èc/û•—Ìž½Ú}s†&cýA&ØWø8ÿ’ä™ÖÊ/¿½·G± Â0ÁzFßõºe~VA$â7ú|ìgpš²]¶FÏÝZ!틬#ØŸ__ÿåæÓ ý¤•¬ Ý¦2r~…f›VbýóEb}fóQtÐõ?–è endstream endobj 378 0 obj 3966 endobj 383 0 obj <> stream xÚXmo¹þ®_1u\^dŠÜ÷u“š»8õ!‡öEQµ¢¤Mö-ûbEíõ/å7ö!W+/WòµNbÓâÌpæáÌ3ÃpºÝÍ8Ý&øöÿ6³··³Å5'á1n×3A……wÆFuÒ¤kœÉ•á~dmÈ­¥m¦ˆ¹à>—»G+} ]qàz1¥«ŠÞL=0÷ŽŠÃW­PxªFhïÙ´¯ÏYüþî9`eº>u*Þ½˜V…ë,æþÑzº¦^¥Iÿ¥Lö¾&áøøy‚5º{È˯—ýѺçåºÈ–hm-e ¾j“´Ü¨‹‡Z fÿ3Ýç*xtÜWY£z¯á÷ªúÿ'ýî ñ¯××ðù×_©ÿT>ý1Ò œÄâ ¿ ?‹y­J´:ýÁRmÐäÌàf‚Þ`ŠóÑ8‘Ïbñd0NˆÁMˆ³Á`êJòʸO¯(˜ÓÅO×7×sò€?ž=› |ô/ç$Y蜽w_Óµeï2¾Ï\áþȨ¦‡€¢]Y¯NAñÐÑ„÷4*®Ð|•ÇÐ=•~üäL¼–}Zâ=Á~;×”ˆžtQDæé:l,­1bž˜¡‹á¼¿ã3çØ“LoÑ÷Ð9–j­ß±MÛ­úÎÆ0ô.‰—DÛê7K9íEÂuàà±ð.3õ 2m~Ù¿3Lƒ¾öeWãñ¯_HÚ©»C¿Z¿pDüâÂa¾Ó£}qîu²œðÿ0 ]]ýпŽ>`TyF‡™e>5Ì1˜9‘uý¼rèhžÊür¯G‚“æÉN8ç»^„±k3á0:©¯hÊ÷²Þ4ú^ÉñM_‡ÆÒ»Û£1N—:ß|„1Óï³–e3L^“%ŽkË^V¯¶³uÿ_>ÓÉÐE§ó=æôy(¢'Æ>„žCÂ9ÃaÓ_Ž+ÁB¿÷â¸>øñørGçÑŸ‚þªÞüåëWôà2Ü?ýc3ý,‹Nf×´Þeo€k¿4NdýþÛû¿Ì¾ÌôRö6Ù=®¸q³—~”t¶³¿Q[ÿ4åïm endstream endobj 384 0 obj 1930 endobj 388 0 obj <> stream xÚ}WÛnÛ8}÷WLóP8­C‹¢®Ù´À6è]¤Ýmãbê e:V«‹#JIŒÅ~Pþr‡¤eG”Z1(“:3nAI²À9…2´”ççË´àÕn~ÚCô(ñú ŠÆ;…íõŒæ¸v¯³¦Újv¢E-1fÎÏ¿ÀÖÈÓ"Í›§·;Œ8Æw>~¿JËÜ6àRBfÛŒ#G+ç°©ëíùt*kžü(ïDµÎÊ{‚¡˜Þ6BÖiYÈ)¥Ã¢éüÔ¶@;v*Ú‹‡„Žo»ñfYÉW*eUìõ†õ>9\¾| ȹššÍÀ„çü|Šž'~ì ùmDe—2½)Œ^Ã*­DRg;Цò¼Í¶[¾Íˬ\Nà^¿+Ó•m!r0\¡mk¢HxÝnÃ$¬xÍ™U²†¢ÁÚK6¼âI-*;£ýÐÁPEpL¢pô¦6¨N“EÂe}™˜O©yñz>¶Aý£w@ÛÏó.±ŠS¸¸8¤?©VËfm˜žŸž½ÞÓn§¼ÏbâSjsr¹Éøóï·ï ª%I^¤õ®·o7&ŒvkÀìMQõDU•UÏ* ¥Ý¼6Å&ß·âFWÝ‘º <×0j'½"ôˆÄÔëqô‹ŽçÅ i7Ÿí®çEØ·i7E&EϾFH@سŸ Ë* 'm\t‡ÃñÉ|~©,UU$ŸÃ þn’ _{£(Ñži ¢Xe½ú!’ÿz§^HB÷§íßsCÂÜã|ÛŸ·˜{õ¢‘ü[íÉW6xßNúYæÑP÷ï}lÖ í­u»&ž¶/, ÐÃ5Z·gƒ­ÂrìsµðI&:áŽï¾~ëµæûhÒ°d‡—y> Yçðµ.Š%ÇlàI"¤„-v…\`[°®Ê¼sÚ€Ì'>;VÜ¡‰žo3çÓ¥yû _néžÍ>Ôúü2×'Œ¹ÝƒëYûj¿fõ elH!ж㑘y?Í7òp?ÇB©±yÚöÜÐCÿz÷-6Äe–ÊÍ^;öõTI‰Rÿr`õÎ]¿åº‡»èÈÍË#ÏÇ4¯–º"'6¬ÏpÃÃM·M~ã‘ío´ÙâÁe:°MªËñ½^Û½Âãôx–*çVCÊÊsažk=X—Ru'[W'Ø:®QF¨×ÍýQÞö0¬w%> ÝEé{^¿±+¡°8ôˆùxOÑDaNŽÀC ž¢> =¿äë½QÂz³æ ÂŽxýéÊhc­Ew† s +Álˆ\ F0d )³&/PŸÍæ‡ØiÁ…­Û‘{ñˆO›2;h ŠßÛਞ™?Uiñ)³I“Q3R¯´á£ û^`ŽJUÛª\f"ß»ð2¡2 éAí ¥âeÐªìØ‹‡ p —­‚™ 4ÞYÞH…¦Rë¬VeKà•“ ’;Œí† æ5öú2]©‘lÔM#ÅšÞÙØ(Ï}Ÿ¯D®4JÕÊ>4u ÿ#ú~Ñ Åk4eã£:g¾;„_”÷Hñ W—5ãøDÑU®áßP3‚šÚîh”¢Þ÷YñS#0Qnõ÷+X¢ÇC‚Ž¢Vý¾Ò/suÔòªÿ* ðÐïÇâZq+> Ùd5ž=0`âA$M-^¼Ð8£x,øØ Gúb¥Æí0‚lä{Ž5ć1áY«F›ÑÚÜ¥îîéUšá]Í÷È^œÐ¸çÄSBì퀸­1ûá0Òi™™õûñÞÞõ0†x+ Q?¦ÀÛàÞ1‚-¾ Ùð Ïö®©÷Î €£üR> stream xÚ•XmsÛ¸þ®_êfZûΆ’à‹›|‰ë¤žIÓ³£››NÕñ@$,1Ç™/RÔ^ÿ{¢DRîê$$î.Ï.vŸ%#³í„‘Yˆ_ðo9y7›Ü¼wˆO™½L8aøÃ‰g[Ô2K'¤÷ssCžÔ:/*RÖa¨Êò¥NHœ•ª¨â<»œ}1Œ0‹º óº"oÞéC£¨"2ŸO§ú›8]>g2UXl¹EÀÙê~¦0Gª6äR•¤’‹D]‘Î,d%Û_eüo5¿˜_žØÄ·¨xç7!‹]¥Ê+òð—Öp¡JÚžþ9Žö6‰Ê¢äÏCËžEYà–ÿ;”q902£ç‚Ó£o¡¬Â™_„yVVäŒkUìþHT/þ3Tu8ŒÛ#”•pU™íȫֆr‘åPÙæÔf–¡B² áãQï¶ÅDt»’Õ7Ѱ8åÌ6,ªª‹Œ\ó‘0g4`ÎyX£ç¹Ë³*JäçtDÀ€Ž{…Œ±‰!8ÂgÇ; ÎqçßBhœ‹ÂcÀÈ?™‹Hö x±Úàòè¤&:©æÇvE8ƒÓv¯ˆ «Z&sí—ÏúËs!N@=þû"*ì€ ÎÏFTXµ¹u&¢÷_Cµ®¾MPÎía4ï´‘k™$ä%/š”Ï«•*ÈßvŸ?þðQÙQ„™Oðýÿ—øNà%ñû`r|Ôeîž…Éq}ô˜!{CldGx8@ñÆÆ5Ò{º`Å,_w„›÷6álÐÛ=ÝOy‡ŠT8!Ù*R—H.HTʵ"©ÌâuÈ ànW*#‹¾–‡ÒÆLƒuœDq¶lŒ<|ú|ÿÔW°‡rÇT˜í‹”\ä†(n/jv_rc>Ô LSŠ’¾ˆÃênî¶ŠK‚¿ J–¤»ò5Y¯ooñßó"É›ó±CGí£f9+0ð¥FÒÊŒÈ$–e“|y¦HþÒ¼\«0Æ}ë²ÐÍu¨íæJ\k Ùn­Œ4µQ#=×½Bb\›(ÏþdˆºŒú­ Dd]å©DŒMd,äŠéÃkL€¨Žmðñ¡¯"˜ ÂôÅD[ÀYÛ7f+eHX™)±Û'®m»ó>ÜüÈ BiÖ(ÚL_¢º:D´Ã\&e®ó¹ÔÁ÷M=m & «<‰H!M´ušf·¶öùÙ©ì°5ðD†¦Ïy …’¿¨VzË(¯Á]¢C‚õ‹fw"7Ȫ.$~!±¾£…:•jc7ïan¹í9hm û¬Š¾»¸:6Âß—Ø4[¤ \ØÔµCÎÈ îZH#×¼/ÆfÏIé å)y÷ñïïЀ“:ÍÈ&–äîÃC{˜ËE²ø!§ö%ÞÈ-Î=j†äW™®Ñèã € »–q¡o~!írº{¥)@Gª¹+³qõÔ°¸%iÐÇúf"’‡ V bÿF¢el^ô}ß°¶Ù—Éî hJmd…†Êý}ÅÑôõªKiÔkä”fÊØˆƒ¹ø®0”7¦€hšU_`;’\F¨ÿ ßÖeL¹¸;‹iƒã ‚c£8¦§ÚÈó—µZž§NƒÆUSt¶E ®ÁÕsD5¥ëj p·jA@Çs¬Þ1Qt}Ð †XZåbF£“BÝ|,³ªl›ÝºÈõ0ÔÜÆ&À!ˆ¼ÛØÆÕŠ­×ZV aɵaÖFï±ÁÇú†ó%¡aŒd¥I(ìš%ÔÆ ئ7]Ã:¿Ã‘O…ž†j¿¼ —q®×§ƒ!lo¤~{(P§gHÐbê·ôä»8 “:Rd¦ú8Š®¦–‚¹‹º>ˆ·ÃÜ iþø-Éû.R/0Iîž>¾°äb>ÏFª®G™ïŒT­±êŽ O÷·-«†O5‡ðÛê•Ê8›k"‹eˆ²’Å÷z½ùç¿æ—CEËÅ‘Z¼†œ•>I;øìU¯lfq]c0Jt:«ÉÏ$ƒ­ÿóô0ˆ endstream endobj 393 0 obj 1977 endobj 398 0 obj <> stream xÚ­XmoÚHþί˜ËIUúÂâ}³½\«Ó5¥m¤´½Pª^u9Epkl×6!èt?èþåÍÚ‚ &©Ž(°xwŸ}ö™ÙÙ,,[ Føöÿ§­—ƒVçµ—HLZ,ü£à0p(#®0˜·NáÎ+ÍÆÝî(Zdðü9œôúýý.¼ôÆð}¡“v'~8=1ùHŽƒ_¾î@[ŒØJÖ -’hu¼­ÊÞÿOuŒËSÎΤþ®t±”[[ÜŸO¯ý1¼/‹ü«ÓÑÔ¿.vôøÕã%›¢:ª™’¤dK¨Ö+(‘Ýôï'Ë)áÛY¦0€N’Ü¿£!²™ŸBœDÓÄ›ƒfx°ÔCHur£“SÀÍ´‡~'UxF µxM ó:û‰eQ²z† è°Ù¤6µˆ²DQ?¼‰¾ið3XúÙ ~ê_@àã#C¿{Þ²ˆcÉÃðgJe¡Ìv1ód–eq·Ó)#¡7×dÍ;kÝÌçõ×XOõÇ/˜aZ]ĵÐLÎ^3s,ßý‘=I…b«†= ŒG,ý 0g*ñõQÅŸ{S]èþ i] Eú#ü¸"’6Ì<ù- zèµCo¬`掌f^ˆÓh®!šä¬ë‰ê´æ¾’)Â)Ûï¾^–O΢qŽl”*B)oà«o½yètã ddž®Ñ2_(ˆ¢o‹üÙ2J¾‘}^b¹DQñ0/ÊE#ìzþ¡8)\ ãÔ>r„íâ>·×é@¿tÂ5&I4‡W/a¸B©Î–Òßz]†±±¯„pˆ³kù*ýÄq·{…!? a…W§›ŽRÜnw<¼6gïY•;D2ºW¸Ñ| sâè^^=~¶y¶H«Ob/MÍ“z@Ì!œ ~™_Åuð°'yÛ Õp¨C(Ûõ¥b¢ñ£½‹ÞÙžÀëþ‡w…æ)|~Ûë÷ ¿{r?-n¢°eÅÄ~‚1Nëœe_§‹ CI._˜¤¦sW®l´Ö®où¸:5³=2 $\̯“h¹V­fpîÚh{Ïmšo ·‚4çOë¯Úꎊ׃fÎ'’±—yÄO¯ÃEì[Ú¶Qi÷ðqÚ$)èy™³v¶Šu2}›uâÀó‹+í¬ñšÕ¸I‰b«{`¿ÖGgT,òÓ´†)$qêwmõr.‰äugß›p& çì<ÿhŸšíóq÷®—mÈš`0‰ëáb:Å®º•„rþ`µsq:&dÆDqñè@‡ÓlVl¤Æ”@•å^°;©^á\ù[füû ;0W Mìã Kä€#ÐNÎQã3[ ÊncZÉ$G¹ÔñL— Nœc üÃÏãœHAïWlŽG™tìó½êŒ.X³”*øÁ«Ža‰¡Ävó#/Í0®à)M³mÜĺ%šoŠzˆ¡Xx8b×™ðœ¼õð¢Öà…å€iB”¤ÕÉX‘H±/óüqí)/\8 ˜—Ÿzý/°V?„v9ó²»^ƒµªéÞ+É XÕ(¡*O±®qä1á{·#›\àòXøHI«ÊŸ´6&]y¬2ˆ0÷JàÝêãåÅÓ§ KØš1°Òá’ý¿Æ X=IÞ€ù¦÷¾×ÿíâÁæÀjGIq/s`yãH¹kÞ`3‚6ÅØ%1jåE§i—M‚–V¥‰6mŽÍb¬iÍZ“â÷Žïþ\À±Ž•‚¬Ó'Fk$îrpðh— ÂÊŪ_6­Ü›‚büº½æQ›8gaqè`òig£ô‡NðÂ§Ôøˆ.¼`MÍÌk–áet‚ïÍý—­ï-Ó4=Ž2lm,D¶-+§YŒ(¿oG”sf­Ï"Ö÷k:z endstream endobj 399 0 obj 1404 endobj 402 0 obj <> stream xÚ•XÛ’Û¶¾×S îE× àIuÚ™8Žg3N§näñEÔñP$Ò¦H™ VV2y ¼e?"—µÉÄ{±Â>}?ÄÈò4cd™á¿×ø·›}³œÝ}'HL²ÜÎ8aøËI䑈{4NYîg7Ù›Š°<_~´è˜GÃ$èè~Õwwßù„3GZsê᧦zŸ¥$çúH²´"ͱ"EKÖg’§ÕfŽó߯<Æi’XüЬ¥jI[“¢RmZ–¤Í …_HJNrM”lÆ"|_PZ"dc)ñ… !w”¼|}OM½kÒ=ÙÌÚº9¹„ðhX\s˜"+ø£àÔ©hsõî¿o4ß-£A¢€K¸ÎÂ8BaB=aĔŧ±¢Ø£<Ž, IL¨…ê8¦¾¶iDš·íaqw·?SÙЬÞße»âv]Tú燹ûW±ùš_Ïžï‡4ð}K&%vøàYÌ-Šež¶ºfšBZ¤1£¡íŠ«8 ÂKl_•Ž*ùþ?¯^›ˆÞ ÊmSï»Ï7i›®SÕ©aC}#Dƒ,”Ø¥’•NjH‹¸V5ˆ8Eù™ec$õ¹E0'§¼ÈrX‰ü+ ]ÐQW½šuS[¾z‚F±%à¤l¾ð)·uP§ÿB? ¿t–U5ˆ´°®¥UôÚ?nÝ[þ'B›-–•ÇÜôm±OwÒäã‡óoß|õ|DÎû¾>ªËmלv `Éþ’î ‡´°ýOb”¾E9¢òó]Ri¤ª»²ÞÕôãaw½À¸œÔPâÝYÆBéN!t2+#œ%4 y§Šjgu z6ÙÒ"ˆ­ë&­TšµE]©'§l€I!5Ó€ÒR'3Ä¢°Ò ƒ|ëúQ!ÉÊT)²O?Ù&Æ:f‘]SÉT²ÑE¯k¥AÚ‘ñÝœ®œ‚]˜Ç¢¾dò éoUº•P]Uvgß×54f¡äßu³Çè=›"ldÚJÝx—áË"®Çôttä"F…¸ÄåÑÚë‘æ~l1zýðÐu:¢LÊ>£¶uc`®PêØB>%b\4ãÀ`^´öX˜|³l¼è)1À7–9LÀ±cAL7ÌšÚÑеrX>f²‡bÈP–ãkL5 c:Þ¦ûaÙõ&õŸ¡%`íÅд/ÚÕÍêùX%.?s «ŠIXï·=s¿G`?rp"!õãÇP=°!ehÉ1ñ ^Øú¢ÙÕÈ]}Dõl‰ÊêƒWÎï„ÒÇ  c™>àˆÏ‹g~-bÈ'iê²Ä¨_£˜ºLt»ŽCÐ ùJ©žâ‹Øc€\®÷¹Ûèþ°á‘#ÉIh1Ôdtpl<±EÔO’n[=†ï`'´iµk6(Á«Ä’„¤\rQt1ámuO¥V¸>*LØ;ÀxÞpWÊmKŽ‚W—vÈ۴rC¯W„–Éö¿ÐF¿‘4;®—†‡vs¬0GÖ¶[¿ µè•NŸ 0‹;¶¿^Vò,ÛoÊ¢’4æø-0Îbl‹6ù¡)ªV¯rW0tÂØsT[£0§ÄØE½XØÄ/Š®ÈtÿO—Z§)êLµ›¢žÐꆄv•Ñ!z•î¥:¤™ù÷]äp½Ø`7\so1Ș¹Ü§EµÒ$$mvÙœdyÚ¿ãüðÓÿL#ùB”{b‚÷‹{‡† ox±ÝÝ‘×hå~?&i–IÀø!Å‹F¢5”Ù¡uUëµXgË•(0g¸?«Ïåá°XôµµX¼4ÜoÀL.)_ÝG´ «ç“¸øzmx|Wb¬nþÒ³>'¯¼‘ úÑ[”Odc]‹“p ýÕ¹÷’þÄÃ}Ûœ'ú<ìÅ^’XúÉWë²Py×úY}Ätþe·¢|yd¹R£ˆrKæË—² vus%È›õ]ksWhÒ„Ùbû?}ûs4$̇ϰ–9Ÿ°ßéO¦éò0äæ»áø1¯OØ8жHK=O[·t<¼}&®»ü+˹[\Îäkí5íÎÚ‚‰~/ÄŠm§?Ópùâyv?6 P=ˆÎ”\<Ó$xƒ•‘K -‘ÝøùбèØW7Ƥ‰AúÙ°Ø È}… ¢…ÉVž§Ë÷zN”xuEâÑë3»äܲäQ _‚nª¡ùnm’»hWÊYêHØàT—©)ÖøÙ=×\ñ¡Àkðªüz»Õ³b}&¹M%Ö)ÒÁ=Tl‚«ƒ +Éxé ðÐåÞ5á‡FnЬ‹8°6OŠºü÷ò·i‘ÂìJ؆\ÑB˜n*Úztô¯—Œãîò(ýö›K·ŽúÙí1®œ‹k T­­3¦™½³’_°2”("lu='ÈF¥'Ü ¢®~›$>çÁ5áf×0vÖèP—“ûÈW8áZl´“šH¬°N½Ã£9âÑÕ ò”¸ÅAC×?묹,ø<þÓ•ÂáÒl¯–ƒ@Fn¹Ð_²eû™~ywçþ“ræA0œ} ­>å³­ùºs²3½FSÏT¨çMŒÛ ôêõÊÜ_†ÇÞX1œ/v ›—ÀK.Â#84©è¿Pyð©‡m ÞÒꘖÓ4ß­À´]:NÄúý÷ïßÎ>ÏôQßD‰¶6D>žXg¦¡è¤èyòÙ{RAÖÿ¸c¤ø endstream endobj 403 0 obj 2037 endobj 406 0 obj <> stream xÚµXÛ’ÛÆ}çWLö!Y•¹#Ì7ÅOVÉIªì¸d1ñ «TCp–@(`°0íÊùÅßè3Abr-§*+í.–ìéî9}æL7=²jY%øñ7|ï_­¯¿–$¢>Y=.ñð‘“qÅ’¬ö‹{2úªM™<‘ªl×÷wT£«§J5ænI$_Fñã¡¿|µúãÍã4ˆý™·ák¬?å‡Ã›7øõq«Œ†wîyÁƒ'¼ànýjy1)š<_¿úë$Bs*ã`áR<Ò¬¨ueÖ÷6ïùÒˆS‡7–êuÒØ„®, 0Šg “²1äË/ÉÝz]|_¶¤®·K²ÁEi`±ßg/Ñ;k¨‹m>sî3Þvýo]eGbÒ¬&mfR¢à7Õ9Tå®R{²¾×tGIí¹fÁ»iɨﱛE¹ƒ¿‚¤™!ï £«RŒ Ïí´IRU]…Žy4öä‹Ð½íAÊŠ1•*j•˜¬,È.{Ö5iê7·óñÀAoÎ¶Î í±¿–”{dΡC•æcÇüFmr¡ãÆ‘$ܲýwjãÇØºËš×¯É?A”\›_jbtmUùP•y¾QÉÓÔƒŒièÖí穉ˆ©ÏæµE FUðO ÝŽq]’'­Ø©&µÚk’Õe®:Ìsý¬óiSÁøµ-hÄØ”Ïz  œÒªº{Ý”D=>êÄô¡t]#ºg1eLÌÜŸu`5âD·õ}RWjâE4f/SÍ‚¯¶[»ûD™º9ØmrÐ"µQµ¦ô6ýeùdÁ‹Rù¶ó ™øOã%á4ާ*)ȆÿG•”AP£ÿE%¥Æø«¤”! ù‹GBŠúÜe«[ž%96ÉÓŸÈ(IYübHž=éS­(ùçÄֳǥS†iRÁùUl¯•…”q—~Ÿ¯"°ç‹M7,¢¾PIRÒgÿ\įÔö½ ðg¢«õ«Ù!a€=…S%ù»Â~4.„c_,®Êªž.lÐ¥BËó÷—uoHOüж©êdóÖ9¾Ocî2¤Ò¦© òÀfÆÒ§¡¸ ð©/Øgô¶,žued@‰©3îS!ø œ6j ² Nf01Ÿ2!®Ãt‰ý{XÍ )Êc+ûé©SNï*…¬–<ÂΙÜpßÂcSCPº+Ádƒ]¿ï8i»Õ*òÀà âÚÑzè¯EV§=©F)lt¢š>²Ëþ¨Üÿâøµ @,ÜãÚ]zŽ‰ÊºéqÝ]úÙÇî6§ZÎ.ªÖ𲈲WWè¬êE4-óí)‡NUþ8è½SVz"}/ £4¢x¬­ý:n?HplûØõÞNšº(›]Úë¸é‡>¼‡«~›õsçÆKŒbì«—dÖ÷Š­í¶´î1^VÃiÝ =¹)8§\¸›É.PuQˆM¥Õ öÓ‰E÷”çî5„ïhU;LпVÈw85¦€æ{;;§¢ƒþÝêìÒCƒ€VË'É~Ñ}HcŸ‡Çˆä _z“GœŸ{[û”.íG|gp=`!é)U.f¡Ç‘Ct$ÃåCˆéç'FC¿}~žD·í•çùx?¤Aß-Ù³ çþ_µmÓTfô”š]÷Ð;ðl^âüýòûïŸöѾÆ6Û€ñѓץÙ[ _,†5éâRÀ×o–=Zq endstream endobj 407 0 obj 1843 endobj 410 0 obj <> stream xÚ•X{ܶÿÿ>Åä ¤wÍ-Ro×ia;N`ÔAêäŠü‘ ®–{+[µ(y}(úÚÐO×JÚ%©½¶Ù Oœ9ßÌ0€ÛÃE·þóþñâöâÉ·!pü¸½ààR)ç,Iá¶¾¸ºÝ)Ъh› ì»ö¾“54íõíû#9OÅ6ËvRCßÂFÉ e¿ƒ¥lm.çDnqÉ¢G2ÙCÙ#s'_ʶ÷ƒîá¾íA®Û®W¶ ˆ',õÜ©ß;$‘`™M¢A‚Ö}¥ú(EŸ5C}wuw}^Q„Ì5Ü]µÝ#z"ž³ pô¼l›F™døßÊâ0eqæ°¯ˆ28&¿í»4ž‰´¬)¦0Žï®W°vü"2–F6ñÐcÜcª¢#Lã§<·)« dU·˜Á…êzY6ÕƒñeÙè^É `.+¨•l(ƒþÕ´c8ÁŸs:B™»z:ÿ î>æNhïÿ¼s$bÂ1Åßáuï"H3r‰e.X«B˜¾ "î`aæ0ÜžÀò|Lð$óy ]¿·RK}[# еUu³–ÅMȸÀí0ˆ¶$Y(h·n&‡‰`©«ÐÇ t|!µZG¥X9ö{ÕècÄÚ&Šù,l­¶mgLßy"bFØw"õÂN`W•ÚÀÁ_ëÁ¶vìcDgžäýèÀzFØcoÿðæÍ Ç]}'Šçζà,¶w«0L\BøHàCþ#nd/×hN,ÕÝ'¿ö!d[Œ.>GQn°é´ï•×8b©£øv7èÕùØ$'…9ÂÏoAGž8\Щ~è=–)Â(Ú©u[”ëÿÜQ #Oqc¬á¦}ÄÂØ–¼ÂÆ¥­…ÈSµ…Sb£$öèQ“݆Pob3ÐeE:,Ø,k+s)ç€d¾0ªÂ#É­³…!Æíݤ½ŸåšNûŽÿŒ2g·-7£í’*U¯0ö·î‘ÓÌ4'ž%øâj‚g, mºc®à‚m–&ιÇù²A¥¨†ÏPI, £“1FÖ”s<ÓÄx‹Ù)ÎVÂDnïz VRU[æÃ9O#$6#š£Ý• /9ɾ-›þüű¢¤á9½+Ð-*E€Á¦²t3‹YæèÜâuM¿A ¼¤ È­¬wpp貈%±M×ÕÆ: ~4Iã Q'þ­IjqYªƒ¹ý]Z/E6dž»Kïg bq;‘”ΑMñYÖûJ=V%†Ff“«‘^?™“Ÿûý#a,CtöŒŒ6ÑØünŽúË¢ÞTe£ØîÒ¿;¶}Y”¸äÏêý±Â‘b÷'Ÿ<À^=JÏ‘oÞ™ŒZòD"Ê=ž›³NÉzAMCÛ-Iƒ-¢ÞS½×ýæ>9N8Qò'OàEG˜Í÷v>ìÚjC_L¬›h¾/?QèŒõ린^ì|©aÆDMĘk€²ƒç]Uaqˆ›Þx´ Òy»!N Ñ”(5¶¢wD²»/VPìdÀõ§_~“ÀfÄ2«aü»¿‡øŒnüáÕ¿Ãô;ÖcYJ#ºHœqÊÄÑΤ|ÑÖ5&P,øqžÎæ"?ãÓýstŠà§O_ŽÜo¦€º»ïA7¸»öíÆ Kq”Ynqùbf½†Å¥"œé“ðHO¿±._ÈÆÎDÌs þþáïs>ÇB/w K¶öÉùäÉ“…à€UGávŠ2Bj-?`êiì ÔLs+)((S0¯g3±ùA‘Çxë̵ÒÝÕQÊ_Gc}ù%¸ÅÝõ |‘äŽ qêàÙ3ã¥_‚_iy 5½o¬vlmnjXoja hcúk/ÎAêHŸ—ô‚2EØ Ýšô µjzÍ.I§B^\>ÁF5åÿ—Ë1#Y’ŠG].B©Òh§A–¼´+°,§ñ‘­ÇþvaUŽ Mš8ÇĈz¥1ߪR/MÅI͹þØí€I(èIêó‘3ß]ÉÇÍúaãÊËiL³³>šãq<Eãêø ;IïË»_ú²ŒYžbS•ùæø©—"›Ó¿jÕ3kVÄAÜï1ÿ†^}ª‰m¾岌û0öËm‰ÝR×ôØö`§thçGBœ[êÒÛ¡}bÞö²Ä®aë«Àz›dÂWA’a=P*C»ß·ºÄ³¶Ý†@tBŽC×RM)ÑösžÐg<‡¯Ç ( }ÇÃʪ:Žd&”bÚÖ)`àCC§Ùµ‡ñ]“Þ }!u ‘¯Â}.\Mp6=ôÍf¦}l”MÐâõ} B ¯c_ƒ„rcú8PÇáb¼‚ÕÃâ)¦€¥ x|h]8‚sôõ"¹Lß)›þtuo‚0¦õ,&dŸ‹üÒ×’Y꫘o`w¢ã¼vþíku|~YN 9GW/RÂNÍÔˆ70åY}VÅ@­œÆêîĸÕVoµÑ~bc[+²Ü×€ ÖÏ-Î;/áù__ÿSÃåbιœìƒ Lüêö¨ €Qß\Ô4šõ¼Ì ºÀÎÒ["Áqâr¤¥Õîb{þ•? 8¶¨ôòE×ÑâöÒHÀ¼ÀNhRæÿq\qz2¨Fúi=ã4 „æ‘3ÒùÉÙš6ÓÃăïe3Èj:ñÝŒ:Ù œ¿ÿûþÛ‹´¤4§Ó&\X«Às¤˜ÿ>QÌ<»‹Ÿ¡AYÿ `ƒ– endstream endobj 411 0 obj 2321 endobj 414 0 obj <> stream xÚYm“ÓÈþî_1Ù/à ½k¢àX®®r—ÎW$•MQZy¼È’ÑHì:©ü¥ä¯ÜOÊÓ#ÉVË6ÜR,cOOwO¿>=8bq7sÄ"ïð÷vöj1{òƱ Äb5SÂÁ%"WDÊ•qâ‹Åfö@ô?OžˆÅZ }Ÿém“W¥¨n>ê¬YZ×¹6"oŒ¨îJ‘UÛ¨V¢!⺮jQ¶›]?\|d"W†I0‘6öà¶ÊËnuw—|S“Œ¸6ë܈/ºÞ‰Z§¦*åD@˜¸ÒOB&`³3Ÿ‹íöòòmK?ÛßÏ¡r)íúúÁõçS>±+Ý$:ÍgQ§¥I3«_Cëë`v‚I¨`ÐdzÛWm^,EZ.EÝ–öº¤¬9wy³¶ßTõR×b©·º\æå­¨:ÂÇ›©ˆ@Éh*`U¤·sa*eSa4Ô[2mëê¶N7X“.‹*û$òÕ”½¯d਩ÒûnÚòZåµiür—æ )KŽº*]yÇSÒs\Æ.[§¸h»Ùìþ¡çŸG6t•TŽÇŽÿë+9üè<Å?Ï„ûTlª¥Àwÿáùs0xæ—âq~»Ž##'8â›Um#ž=‹zGÖ°2.転)¥ýÎ-¦lƒØ¢#¶]ØÒi£ JÁïĪ®6{ç}h´i˜˜)ãÈ%ã#ÆÃÏ\ªk-îa®®5x»]¦¾8R7H`Ýä´ºÒ4U­OåWà%2Pê¼ñ^fŸÛ¼ÖË“æ⯵6¦ 2ÑTâX-7‘žrÏòGøø÷¢]K}ßEü}¡ïóæâ„Ò*‘Jy畾ì]­Yvb™¨ã0ÌòRÞê¦ÈKÊæR7ÿ—®VýÇë‡ÇšøI,#Åcï?Sš%^JáÑ~ÃD‡@ËÒ&[Ã0û2÷*]vSŸÈ*?Œa Mù ǵDýGñ'¯“‰¯Þ}øé/ßÿéÃë«—¯iqŠWÁ4Ç1”SŸI‡‚»/VKÝ ôògSÉ÷#¹çÙ~_•¥¶\//;¥‡Ð§Þ0ºÆ³gSÎ^$WÏ¥¹¬7e­9ãÓŠ»‘ô\÷ëîU‘T.F]}l]'”‰ëŸ7ïþ­5e_dl¿Ô½Cùš²^ÂÊ_E/a/Þ–kÝ´u)Ô¿(Ä壳që…!.ŸÛ«=x8¸^À<Øö¦øA—ºN‹oY ;5eì2ò~ß½@ž:EHåxõ|œ#>Ž/¯s­åñä'”3Áunìíkí‚ð“³÷‚ˆÑܧ›-ZûݘJAãÐcdUýÉ\yÓ€zɱƒJ< ä3¦_¡¹”M±#TÒ¡™ ¿j#™!ÝÄ™êów¾ArEZ HªRÄ{B‰Ñ@*£ƒ¶¡Âs¢%¬ƒ_y#¶ikz™ePb'2:4q•©ƒ%ÐNwÐkkûXçº`â:å…Ö†£“¶áv´Øô=F=·RÈ6iim=µëÃù\ÂŽí€N>ÛŸx É…ŒãB9çÈPJþ!}¾veß|ÿ½7ö¡}Ì©êæVPïåfâ*”ì@eðÔWÁœ¤7UÝpù¾û°øQ‘kí4:7Ô ‰½œ3BÝ(ê!Û†Á2¤‹Ñºƒ{‡k3¦·M :° ݤ Lfz«ot³®––(K»›>v ƒGs!V3vy4ÍA8´ã|~¨SÐ5ŽbvŒßY…(^À(Þ“®¤Ó²°pkGej·”´‘ÒlÙ‡‘¡ —õ0¶üqÌßÇØ$ãopÒä·¥²ÌÎ4z#Ò:[çÚZÛÁÄÙÆOÞ€Q$©©ðÊ Àç]«ñwØ<$(UȉÞÃæÜ:¾t'ŒÖ‚p÷:¹1ªäEì*F±`ž+=Jÿ1‹­&kþjô‹³½A%¾Œü`È\Àÿ´¦©®F¼mÒp9o!ZÄN¥;CRx>žzœìžiëxÒåÂuÖ6Þ#¼?ï~yûÓ£G—}¥ð'º{*–aÀX pëÞò¢†}¦n  LŽÎÏHñaÎÓRö“Íinx$ÁxZ 9"v÷ˆ¾^s^€ò}vf’s>æ¶ÿÞV³®Ú¢«àn5B`®AqLøÑÝ‹óZ‡Ž ãރ߲» „§VØ¿~t ½j@<9ÓÞ5á„›ùÒñÃ-:œÑ§…»IŒcr)Þ0€+ÝòÒ4i™éù™†åatáføþÝÕKÆ6FÓ‰ÉâJüøç×W;žHe€®)+xÀ'`MÄ÷Q,&7±•–jùMŠæeªî;C àŽùÔ§ÌêÎå%„†B`zß~lfÂÐõ—ã"³ãÓ2‡ípŠyߦNG˜ë'À4\¥o†™‡Ô›êãÉV*z²¤V¨É»¨8¿ä„ôÞiÓMÿ¼)ÅØY.óêm¥üpj+¸baíÍZû¼ÆD_òª5â7ˆý_z+[öÁ øÒ³á-p'L›eZ/1’Q×EBüÖ=}öϯia*R›4§K­Áĉba€9*¹ŽÝƒ]×Å‘ö]p|%Õ±çêjÌ0¶ha¼×'íAï”O-C£+;g¾+[„ª² ·\“XØK’YZ3‡§X£÷¼DF\ѲA=zõß,×ôˆ\YŸ+ë-~Â8šÇùÐ"óm g¨8Î{°b(vûP»©ªBYæM#‡Æœþ!¼³EÝ[pY¡n[z–¥â·Ï:út“šn$édiƒ€í&ÝÜœë“Ô \&ï­Ëéä„Äxýš|uÈiDÞÍNš³qkŸöO…[ï­SmJ"wFÛ¬ÚÄ¡t’ñ®¦†¶ì„u˜Wb`çØ%–I8>c‡áÁ](d¬ %j”n0AÙ䈷º#4šJV4ðÆâ0x›­ÎrÄ¥²®{bG<¦Ù$ÙffŸÝi=,cQÌß™,A°_{Xv´´ZÏVôŸ<‡z8âËþ9É ŽD%G¾+†…tÓû•’QÐÉÞ¯'Ò]ßC °É¦{Ô鑸(§µø9-Û´èU£s;éEÖìó×÷ßÎ>ÏhI;QBچʭ«fG1|>P gÖ³÷¢¯ÿò&¹¼ endstream endobj 415 0 obj 2385 endobj 418 0 obj <> stream xÚYë’Û¶þ¿OndË0Þ·Nf¼N“ñÔiãx3™N·Ó(hÅ,E*$µŠ¦Óê#ôéú”HÊXï’‹spîß^\f»ß]쾸ze½~‡ÿWw÷W¯¿ ™ÀòòJ°ÿK%K…à (×W7ES¿¸ÿå°˜%<ˆìõg{5x–Û«º.uݳ¹.Ô¶ÓŒh_yŠXðH8»~ê›VÜêvÿ£î¶U?0ú'•Qê3²…nKûH2‰x.³‹G–IÎÓÔY×[¶ÍúÂiÃ@ðÜ¡ïúÅíí³.pæ7ë}÷kµÙÜÞþØì¾>ê(öÌX×°²gÍF×ëWšíVM¥‰= wYžIò|âÚ¨ºÙT{Ö,Ù§ûÄܪ¾l aÙ´L…~4òÚÆÑ9&mY»Ž•õ@iìÍ:Ýsfó„aÆ“ÄæykvðD‡iÊãÄݪzѬqÔ]Ù¯X·wE[nzV7½9ñÌ–@JféÄ]ö¤•&•v6•—©M©ÚEǰ›«âɥ͞Һ& "f6%AÎeh/ëÖ3׌µÛÚxBUM Mרc0*Y“sxXUsÎÉœç±-¸iŸ:V«~Û‚xïÐf=¸o¸$æ‰0Kï—lßlYU>9¦€Â¡Óæ€åB+ ¤1L1ÖvÔÍD†4C1èUYC÷¹ãt §ÛB·=[4õMó<´‰z×a’ñÐ!P¨}Ã.Žˆ´Il+/$_{,3c§0øùÈ´qÈãÌp˜ºt{K¶Òeýpóðâü^"Él6رëµZpö¾g•†aic#Å ¥ÑÜnê .R[Ôlu„±ç–‡›½îflÞPžé_·(¾¥ª(-üH‰ãÁfº¥º®)J$£,2àIh“>»Ë12{zì7º{x1©J!µ5Eè¼]%DˆÜñy…?”ÂãóŠäJgýï¾A#a/ˆ­KÔ³Á‹´íšµ¦ã“gÔbQR‚%ªWsÕißœHãX«F­Z›ºÆVºB=Ú_ì{!Ï#›÷sÛ^îñ}áVwÉÝ#A)¨¤ÅÁYQÁÙ36lp‡¿ÌØÊ-áèñ‰Ã¿sÔ óŒ¡½î„EHžeö²nupa/›"l"²˜šÝùì Ðéó1Åa£/'ëd`“3$A[¢¥+¤™fD&yÆ6¹á°D.õÐÌÜú'‘(èèbˆ§hºž‚È©Á2Í)m¡z35jJØÖn+TÖŠ~èuÓîM¡¢ØìË5”š#åšf4`¯¸h!ÎãiUù¸2•‡€­Û¶›¶¤ÜD_¦sº½F!—"¶%Ìè(˽‘‡‘*<Ü CЦĦy˾ßúøáKP³}vó3ä:Ńè5Žï ¼Þ`+B?5[”ݓ瑨.“ÎÉà4àV£±"QTìϬ8 '³ñde€,ÕfÖ;é ÐJP-¾ßú-*UÏ@|håýªìœºÏžÊÚTM³÷¼j~¨¥‹²bž9’–èy€ Û5‚½00èîÃßî†zlXÃÅ>\ˆS1ñ¼|i8‰|[HW{ ËwÌJIj³¾ýá=`ƼUˆNUÉ®”ÃôEž82¸È*ƒù"{ÙtòuñY(R‚ŸÙî y\ÜŽði.œíÚ:Õ`þ±ÎN/;Î>5ˆzƒ¤|ÓBO™¥6ÀíÄóT7nƒÌ¨ÍX¤»Á™dà‹Á/eÈÓÜæ:ƾö'› ³ ½Á&3ÑfËÙ#ØŠ¦5¦ØFµ}Yl+(«æ•&ö—»Ûl«Š\¯Ðñ‹ |oÀ’!ib´3²Šf‹Þ§UW"I{å¢ÐSdls“üT R›ÂÕML:ÛcJ¨Øww¤ØfÖP—†8èÌ`,|¹«„†c 96FÌ6É Ó(BcA¦„ w°ŽÓ©£4B×sN¹ªGµ\îö8Œ'R3¯Mæžzhœ'~=¨¡áøÖ–šØ<®6f A@"|‘êGÒG»AK˜g‹ù³„fcR…í’ñe’Pï·â_6½Ì}ò3¦Ç!ã(²‰|DñÔÕb,¾C?Pì§ÎF^¬™ÿ‚’:ƒÓÊbEÚt%ra0 ™Cã az_8P[† §¹` À3±)?ø‰4áQdóym ¦Š,t=Jµ4{Ž€vÈ_ wl©iÚÔg±8ƒ¬Ì’e Vv‡ÛÅþ‹_ÿ¼®XUSÚí5ð,eù(Ò/~öÖ:MÙ ¢lìJS«¤ur¯!rB®Gö£ÖÉ+ÍHpϦmHi½@Ϫµj]Ø&’ëQA&wŽ…\Ð3UÕ<6ÛŽ¶PìÚh×·Z­ÝdÏCº±°Ëz³í½ (1­«ÆMÆ  ™ëH4c è~³iH#³½ëÛIȈ"¬QÑ»ÃÔï Y3·qbè@_µÖiÈF@¹ÆÉib<-u‹°ºÛ›ë(ƒrB’i¼û9Ó\#Û0®VG—ÁÏË0ƒ:Š_¤ÐõÓÐftk”II„MmB»×Ū.Íä t ±tù´ Æx¡$)OmAú7µÞTº{rß!/6› 7™Çz;mðÆŸ(BÃÌ“þ±¬‹j»ÐìºX/(†ùêÚ·ºD–Ç9à~ÝSnža“S—a¸Ë|ù’¯¾öÈC ê Ï=ò²¢þ„:‹ø)íZÕåæ„&äØ(Zj…1P ¦_üÉ'Ð?ƒ1[j?“hŠÈƒÁ 4A= ‚豘±bÐó%žŸÿñÏ¡ïØŒ„À‚¡ËþÛ_CÿˆƒÁR Ÿ×¯ÙwÒhnL;@+¹7^%c^Y´&ù1i…Avx¸AžBéööÝÀýÌltúÃÍ ©ððÂ7ŒD­A~ ûpó‡‰õóµ’„sq §ÏЙ8JžŠ#íüõXrÉ6릮Q-¦Qª3jLæ%2’\ˆèÔ£¨bpçÓ†>£|ˆ1KÄ®òÄÁ‹AÂÃÍ/æÿ¢X›MæÔštK°Ä¿ž–RÀ‰c.úLœhŠßá/Õuôúwj|`ÝX¤Ž8Xím÷4\ä£m·Ín $Ë€ˆè‚Ú¦ØÂ¼©ÔÞ—ŽöŠÌ—9˜NÙO5Ú€fC±’l4PUOdsù¬á€pÓp•Ÿe"pWîËš®}8]-_¾å0¸Ýé1—'ÒCŠQbzàrÚÌ9<¡èÅÃ)Ïã9ŽÓ!ÐqS ´IêÜ+=üÖ Zö½ª1âŽG#¾Wƒ€€ÎEvbÎûﯼúõŠi%Íé´ }#|x Ì1ŠéýH1ñ¬®~f5dý—êC endstream endobj 419 0 obj 2797 endobj 422 0 obj <> stream xÚ•XÛrÛÈ}çWL)±wåÀà¢(yX¯¼›ªÝJlk³qÊC1.4.¢Y©|ÐæÁ¯ËéH¢RŽ¥²jàéééëéîqÄÝvሻ~À¿‡Åww‹«W¾ˆ¤w«…~•]*WF±/îŠÅ31ú¹º?˜V˜$]‹ºÚЬµiº¼i/ER.ŦÎÊVdm#ÒªlMÙ6ÏïþÉx;® b=ã½]g¹ïž»æc¾Ù\_¿ÁtÉé¹2mº~ïwÏÞ=÷\ükÂ6ˆ]éÇÁŒ-ý¤U׊›Ç=Çñ^¿ÈZS\üƒ>ÃïÍÍ”käJ7OrÝÿô\ãÓ²{’gèJ'޾’çÖdëö)¶‚Ïâ¯d w¥æ)®ZɯU¿Y&mÏsÊÌWR;êIv¦\昞ó”ôwvîßS:åÈØ9¶/×&ý VU-L]WõµH“ò·V,³¦Íʇ.kÖâW‹j5DtsAá<½ÀqdèèSX¶àÚ˜¦O‹¶«K±ª«B°ÐU»6õ6kŒœ0×±ëÌ#8[!+L¥Ä­3  #F:í«'É=·VÊÚ¤&{4KÔ ˆ„œw-.ænÓ¡#•ótÀîå«j«$î:åH­c8ètŒS³3~,CõEßk/–ZÍé¶ÎŒ­KOñ˜šñT±TÊc4&oÌÜöN$c5¼ƒÝ_%·¥h+ñülÚ ÁHÐÓÛ[|ìL½û²ùü8‚)ô9g¦ó#@» žÔÑ#Øá6³ý ‚ ŽÎ?©¿¯CèÏýzÐýûïlt˜´Í*Ä›µÄ ÷ÿ5¾Ê{ê¬Æ^(µ«Îkã†Òs{^vïê•'”3)¾£eôêÜ­³F˜1›8:d4Ÿ’bƒÚµ¬ûÈnÑ$…ÁÂfU#úküÉ5.¤óh2âáž–É †ÑMk‹cØ@ Õû­± ~J‡ë9E#/òdäõ{c{l;É»äúŸÕU¹€&Î"“ËO««ôŒÞêÁ¾Im.ÉÈc‘\åI?bô;Ѭ«._вjޱnù\7-¡{U·„|M•?’‹6u鋆lÆØúµŒí§Ô4Mƈt ~÷#75jžÇö(LQÁY0‚n?¦×¨ušën;¨Žt9·ÌI¡:PÝ›¶55U‹]ÕQyŸQϱsWtÀ ØÁdG¸dãog͵éòœœYthóPË“¾Œ‘ éë5Žìw0é&OR(òs²ƒ¡q9×ížö¸¨5¥È¶'B‡tºz¥çiè¡Zì¼½ýéöåøæLÀ(àoÀpW*WË@3æ%å¡ö²mC VÝÃÚšsY•L+€ï…ìbª(Ì2£æ‡ i€÷ IfJ«¼+ÊæhÇ–FŠ¿Ô,TœbÆôR'­ê‡¨^#…Q?çˆ éI~-¡GÊ}ËÞ#ÈËo¿…„K$ðŠ"ˆô¥*•µ'üÞ˜šÎs=øŒ½aJy°l0Äü1H—.HÚ£ì¨!A %k‹µe§çW>òýȦíX¤>lNاT¿þxûæö\€‘|F-Ò;Ò:£UB²r¸¾D÷?æc ŸáÐSy?mdM? $g¢ØÇØãÆìعâ{‘ ¸Ñ†\¹늡F–ˆË¼åC½·‡Rñ«8úhÇŸ÷ BýQ9 u¬Ome^òXpk„Ý'QÛÖÊÞ  I`Ž1.j¹õm¸'•+9[Œ7>£/«r™Û$oz°~Ã çÆ¾ '§¶âGÄp>TÕ“}­‹r¡œ~žy[†B¬±H\tÍP÷-îž)ú3ðG CÆù8/-Ó$m;TÀ}-D‚Ù0¦Â‚`›ãŒv”Ät3f'ÅÛ×?qp÷aAFÃÛ 71Û>tO4Èé4\ÔŠ=ý—«À˜z_0$l˜‹DpÑ(‰·¦^uù¥¸g„±¶ÏAc®µˆžL™ºÀÇ'˜-ê8ã8P÷?tbE¾~òþ¿›,ý@Dì|=Í®yœz[ͺõÐÎM 0vBoŸWŸû{EÍ…Åø<¦Ýö¹B)º®1YR¶Ô½~àUÒådÆl.©Ý>;ŒiI.xM3Óõµ Þg«óʇ®mrV ^]É÷íL™›–¼ §¹øý„Ù\íÅ‘éfs}1óON_ïï™?ôºJËpxßü]V¦y‡6ð"-GŒ\_L@ÒÅÀ¨‡§Ë#¹}ò%˜ àö†GÉãûþq‚8„ÌÃóàøÆ¾#²×š’k_Cøɳ -£Iе‡žîFÌ“v}‚³ƒsxðººß›¬ê¸êʰψ­±/‡ôÞ]$yÖî¦tŒ™txê‚D] ÐkÞõ´5†/öYåöî°éˆʧ.-öù”Öûe$ò…öɇµ‡eOK«õbÕ?øÏ&‡)‡W7œ 1–!ô]±_Pœõ—M?+%CÝKqXr!̓Ó5öCôøó ™ä†AÄþ‚²ƒá²D-D£s/zÉEvìûéý׋ ZÒN“´jÊqåX1{Šý÷‘bf½øU”àõ?OÐ endstream endobj 423 0 obj 2128 endobj 426 0 obj <> stream xÚWÛrÛ6}×Wl2“Œ\ÛqãE±óÄÍKú‰:}¨:Š‚,¶)µÉå/»àE²@É =–@\Îîž½`Àx3`œáÇü¿¼^ý* &Æó…ÿ(D "ÊHœ/CÀgZUT+¥S[éÉpr6fUi,[eÿ¼39;ÿ}€0&r‡ðŸ·&Œˆ$Ü­»'Ÿb )×K¸¾69ƒ¯_áÑ GÉg}¬˜–DXîÑÊ®u V¯Õk÷þê0HËpHµÂùü!O ÈR£Œ1$ñä7OH‘¤ä`*Œ:´ãjoF7õ¢žBs‚ãæHJN3OQÂëÆ˜,-¿[˜*Xé|Y‹EaPiPªôA%2 OÄ)áëÔÓQBÞÓu/Te±…UeL>Í‹Ün¡Ps ¹»HñÛ~70Cêq¹P0Ý¢K||$Çð«Ù éÒ5BÊÔÈemùý=j+”bÀà úYW•%¾„ Q {æˆ1æ%ª n¯ñëê´ gÕnè<çVÏ›0õ’I€t‡=ü^˜¿€| }”8@‡DGQz1áŸôQ|ô¬ïx)ä;éííí ‰è“yæŸà ‘ôé°“,!œîî·NBimß|"ÆêE¢Ñmþj#tCà2ÍËÆµ©¾Ë. [¤~ÁñßõÊ—c”Ù°ç{EȈ$tÏFåea–ÚtŠ¥Ò,s!¹JuºTVis]-!«–KW|мT>¢ˆH´'`¹5÷Åj5©/ér…ñ=½kij-gc2lìp`,ú<"’퉯ƒîYw´j‚E„³ÃÜoýJ{Ø4"”ñ“ãIˆæì“ËêmOCÔï0Aȃ$¹Y`F£¥UYªÌæUéRÚÍìH6J?(í§5B´â0avl¾Û£!ðdx„æÙô¶D§]ø°aˆÏ¥–RÒ(äîÆ‹ÝÜÚø3«Ô˜úþì9Œ I"îóñ®* Ô¹¶½¾k±°©¥MnmÙÇ"WÚÜæ½;ŒsI$?Ì=cg£Ñ"VúªÆ{ƒ^6ëšž>LÎÙq*?­úô¾þ¼vl’zì,ëáPI(?4¬ÞLP¾V·ù|2lU¸hLlËÍmmßq¶X"-éÓõyQmj®ZDÿT,‘àC!¥½­ß.T:skO“ÿ{J~$èÜŽFu—t‹>«;'t^(HÏahµ—Ej;M¦êÎU¯úαðl¿ ÊY3}~žÛ#yÍ$' ï—öÇfëjãÄ]¾q±E2œm£ÖÍá%Õ 6*¿[X?5˜à$'o(wEeªÁ0ïS«Ž°É9‘âé[‚1N¸8}K0Ê û8ËR›- ëSw‘û6ÕÁûŽUA†]k"D/¬*,䋼¼ƒÂûc£+7t)èbíó§mD{h{ÜHÈ~dJk¸º‚çMÍÓ¼P³*šýí¸Õ£ƒw%"À^;Â.'l¢°óý'Æð»qñ–Ø»·ª¹s— @àôr<ÁÁûÓëŸ÷7t+Qâ´ ±ÃÜ‚ZÍfG÷¾ßÑY þ€±þe¯º endstream endobj 427 0 obj 1394 endobj 430 0 obj <> stream xÚ…Xko¹ý®_A¤ÀÆ©zHÎÓuûa»ÙbE6* £%Ífò<, Åþ¥þÆž;#HJÚM˜ò=÷’¼ÏCyl¾›ylžá¿àßzöý|vÿ£b¿\ÍóðW°H²HFl^În~b˺_t,­>Ì0BHî›°}]iÖè´(ö¬ÒzÙ²®f­.tÖ±¦6U¥Œy LÝ]ËVM]²”ué¢Ð¬Û¤Û¤¦’ cSéÕKŸÊkXÛ6y©YÕ— ݰ¼ÂoÖ¹©åKÉ=ÿªQ_†\hökßvl‘6¾-ëF³¬&}Ë©"â‰ox#7Vìë—² ?Ë´J×úŽ,ÚŽUŠ©h;VÅ\Yâ:_²zÑf}“Wkì¡Ù¶Î«Îñ‰ o¨Í)¦7‚æ©’Êýþyþ…qÄCPüÒëfÿðÐv¸øs¾zºyú0ª¹i+"ßÔí‹‚m4ÜeG]JRÉ€¾Úâ€RÉë–íëÙ“ÕU—æ’iÕÃv½B·}ѵ¬Ôº#wÓänòº³˜·M½@^ï)ïÍ­d­š[unBDÁt Kr™˜Ò·-ŽÒR’#àv,„‚ya‚ÿc‰}Å#eŠqä]ŽûUõ¡ôíR”RpeÙsürZ'geŸmÆÌí[ ß½”ÒᢆYBEð‹u½]E^\7iÙr×E¢ë ­j5ø›Ú"q¥RD”pe©½±ʱ±^(¡©•]NM*îG¦ò祒®ûVÙ÷õ=nßqcCBŸ{±šƒ…‰c[˜>/–l·AÛrª:T&Òn|H ß2 ÔK[_íÆxþmÛÔÛÒÆ©p(©èÎ ¢/Ž¢n(Y4;Öí쉓pak;i„BLÀ«-¹2¥º)ê”Æ•i¡ÇREz^ÈGàü‰©Œ|s¦í¨ rö/¤ŒS4Îèêq|!åùy0¿Y¸DòØ>w;䨹=[æ æl±·‚˜ÄŽæb¸<¶]Óù2áA<ú”¼O^¸°‰•k"öy웪ȵ}£Û\+´Ý$45†Î~¹fdà‚ßÛAϲvoé”:-ÑPÐXV6uðx˜à4Ó|ÜòˆËØ>žàBŽsKq¡¬–#¼dØÛÀ°Oovªa‚xÑY? ˆ¿×KÍVö]." \7ìSšYwð"Ke¡6ìg'ã‚ÁgdÇ~"Öóó0¥ØWÝ]ö6®`¢ÄþØl‰2€À ýsè‰ÿHÙ2=KÛcZiµîÁ)8ûŒK5ÕI®«5¦d;ðŽ4ëú.AkÐ1Œå¬/Ò#²eØtó1ýé,dó€›lœ’ö‰Ÿ™p$o›/q¤ïûŽ®‘·öÐ%¦äÛZ¸\a°Ä5lµ"‰‰ê KžîÇŠYh¸Ê'Šfµ ¦Þ½FÏ!à”TÂ:öÜV(àÀ·¡V>8Ø(ó7Œ8¤Uvêú1@ï£æË±ÖŽò}ۆܱÏ{„þöö½M†¬2í• À€+šÐy[ÕͳN³Íõ!)ßÕuÊ$ôhš€4Ë‹¼%Î×›nâÉ»#í"9¬Ô hD˜6æcŠ\%¢æø\#moï×áÙv{…‹&±¥úpÜ!uw ¼±1ý)¯²¢G8ßeå²@ ñÍ;7¨xE(/qàxéTÕÊêÂÁƒµdßα~Œ##-,ðc¹o_ŠÛ[¾ù› GLÔÁ‘'x^­ø ­ž€+8ÆÓnsÁ2š,ž|öþžý WpZЪ¯2.Jý¬.†ÇeÛ¡—´]žµ,]Ô}7¶ ºßøšt,+?ÝxO\îDLCÈ`‚î4ÕÃ,:W"à ›!V#ÒÊ‹&àÙÅÑEOòß¹L" ÎIü:¼·ºI=ºðÓ Sm7ê;Öž@Æ!O”¸z‰)9ÉONbìö¯¬åxöÿÅÕ ‰‡*Kçà-Òyº´ØŸ¡=þúéÙ PA¥|ËÄàDÆ\¨Ið *Ê f|<’TpÝ}x„Fjt?켦v3D z§ž"0Tév‹—òKñ¼È×ôÒr¶9Ú RÉeMzñúè–»ñr®b‰ ΪÉ5PÛ-ÕÿÝîÇGxÅ–´n^âíReGst-%ÉyÍ cÚs¯ ŒÊÀãûÛ™P)œ9œZJ_n‡VAz]á çüùFÃ÷%'nÉ6}™Vñiy¡·I´4:n1Qº¯U6øÎj:ÅÅyŠ+ŒÑï:ò\ä˜ÁÅNKž§ˆÖ-{|„~¨)|x7¦~>>’ò§ù¤ï±Â§¯‘²r6¼æh}\Ƭ˜a:K¦µÂrÄÒj3[]þ^Rçòù¡ÝÊäìæ(›Ž .›¹¦•àQ0žbZÎ1<Š=°zøøÖ/±W0<Ìõƒ ²ÏiÕlG#½£ÎE~bÖçß—™½ÌhI’(¡Ó†˜]§•7sD?ŸGÍìVÁÖÿxl% endstream endobj 431 0 obj 1977 endobj 434 0 obj <> stream xÚXíŽÛºýï§`·@»{³á’"õå›h‚½i‹EEQ ®LÛê•%G’×1Š>ÐýÓgì!é‘¶“$Ùl‡Ã3Ã3‡bd²12)ðë=~£·“ÑÃO’d4&“ùˆ†¿œ¤IyD³\’ÉjtKn¶º\,ËzAnÈ›7¤ë¨ý¢2ŸnH×7µ&ªžÙá»É¿=Ÿ,¢IŸû,š®º4Ÿ÷‹fÛ–štK]UÝÍÇ$¨Ì“£ÇV÷›¶&Mwf˜E4ÊSkøßp,æÔ”uŽINcÆíèJ•õÔØÕ.Š{R,UK~ÀóË?ÿ5½ ' N‹ìÄÿ„c§œ‰cÔä½îÉLõêYu€¯(tבµjÕJ÷ºíȼmV€bµ2ÈVe­CœÑœ²µÚuŸ«õz<Ö_Ôj]én<~çfÀdR¬fÆÉôÖmÄlazwc4e§l•s2½ýÕaê wç P%^v÷ùà¡ï8c@'=Ú†)‰ãûÉã}»;_Oæ4åÞrò±ˆUÙ-I¿ÄF›ºÖE_65éûÍäN·/º¥¡S‘Ó˜û^`¾;yƒãéí”gÏO5’vºr*xtVùæÏQêšÞNïîßmºð›µê:óÍy¾b–ÑœË÷ Ûn표•ݺR;‹`êQWMk?éº/[óeSüL €aÉ<Øñe\>n4òóÙþþ†Úgf¤Ì@5Ü/’®ŸÇE³é퉟 ZüX6°ž(â|ÒªXNomˆ’Ðsšâô"Ä ‹Á“ûdwî 4 üB±¬c‚Ðõ¬:‹8É(çÙÕR•q ØO¥Z¨¾X⤆®?aôVÍ,L¿!—ÎŽ”)M£0uŸ˵[$ˆlÛÆ<–½«íO?ìÑ ‰”Æ¿€±n[‹±KØ\••žΚn—ª7°|(¥"оëKžR‰ëȱ„æ‘ür_ ½6‡е°yìâ¼wÆÛkUU¶ÈU½#=Ù¸W¯ˆ>¸íBYø’¯À÷ضM{À­ý>àDš¸ô»€Ià®—œ1MEØôØ™ÓXðSÏ{Í(ˤÑ? ÂYÐò—”¥nÙx¾püáfCšºÚ‘Zë™aÖV«™-J3Í ß9Çæe–x.\7u}ó<œò#œAæ›úÈå 4LEM3#åL+Ò̉Ƀ bÝ6 ´N2ktGÉp'R0*ìÐ-‡üìÅZAzFÚ7ÀË|ƒmË&Œ¢™!д¶•Å ÞC”!‚˜t“TM>¡?Ï=Ðx¥ghû‹r,®†¹›+xGqìy°G~<>é5äE$¹ôÊ2"ÊBÓïðŸM"hsã4‹F‰ó¯êB› >‘1-Nøs7eHöÕ°}uËóêŽ OØžÇ;]¡“œ®šüáí‡ÇËÁòLRžeÞdGºÃ°"„aé¡ÕýµÔ °?Ó•®œUv ËNSò§ž´›Ú`‡Òw úT·5xÏ Q Ë`#03íår¨Rø¨wÑc}_䓼q˜‹CkÊ‚´Wé\PéÙmýa¨ÀÔ÷3$MsÏ`bÀÁ?Ð}¿3r¤oK/]ËÌŸõâKšûaå¼#AÝs?2'$;p#ÄŒ©Ê¢ß˜<€‡\Î;Ô÷½_ÓÑ$~4PB[ý[Ÿ·b*Ï ªØd§{õÌsì º¾C™C:ûáô-$B':Xàú±öu!gDé})9HЉo¡=a k{¿³Å«‰—ä(Æþý•ÔÑÅL¯Œh•¥}£ C±IAóÌÍûóºAuN"]éD‘KÜ`ê¹ÕOåü:eñìlÒ=B늶|Fe¨g¯¨#\Ñb†Ö~yItwáë{³Û½ìí=x ×%þÚÍ^Éx« \¦×W ’܇K·U£fîp…àÁզ쓾MðRžMrüT¡e›Ó¶7ÿ·a&q¦Ž[ôÆ ïbox[ïÉ¥º¢.ئù€…ú™pòPPm¿‚sÓj‡6dpËûëI ^d8žæ4жº’,•¡´joiT‡g½Ð¤Þ¬žMç¤qË8”,_5YúEQ õ8t±%%T²ò¤‹på=4ÛwÖoÜ„=vH¡¤ï¤õ ÌMÓ3¸·ÒÄ96Ì„l¶ä'éÑ`å³^*DÜjXâY¿ø sÔ`Þ6<ü°yî­àºÇÑWö·® ãYn´ùÐÀ¼~ók<6¢ih²–ƒ«>ó6«^ÄþhˆÝêŠ~›Ä_oÿòãa”Jw#-Öë+ê/Áôñaów]/—î&öë².ª ÊÍáMÈò&D)Bâd˜¯Á½©õ  22÷'¼±ÏW¯èò÷9´`óÀZU‹¦E¿YYëÇÉq#¯A6PºÅjd_$šçÃcFªQ,Yðƒã³À£³5OËÑܽª=ÓáœIºÇR°³ †1¤ ¡Ã*o¿XøáøÄ íVÎ~ÿ¼ãÔÊe,ÆxjšÔ‘Qð/¸C!¡ëÌ•[ÕBûÐ̼×Î3qœˆ÷ùëãGŸGæÑŒ¤¹‰6Á8=1¦³8|>Yæ,G'5|ý篨ó endstream endobj 435 0 obj 2020 endobj 438 0 obj <> stream xÚVÛnÛF}×W TÀ x½W.ב] @Sh«íCY¬´²ØR”Â%­¨—ò_vxѤª42h ¹gfÏÎކÂdÓ£0™â¿ïðzî}3éݼ“à“yÅ?šƒfœøFÂdÙ|%Ó8ŸYG+—¥6\Þ'¿Ÿ )'žQ-ô2L¢uìN¤ñà;ÍVi «9¡Æ/±¹‹’gHÂ¥uëpjÁe³·M¸Çµé„/·îc¼^·\#‚òÒ%Û®íÌΡâ2vÑŸö)»‡ï“ì§òÉ×[þ”M«£»,Ì¢)¼¬¢Y¥ %ŠVg^§Q’=-l8³i08 ~›h–-ÜxÄ'ö!·éöƒuyœ]Aj]0l†õ)’×eØ¿škšF«Ô~¦«<ƒñú÷ ÃÙlÅq0x…×`Ø<—R†jöîóU Á J Dpô-~ ZdÙxöT¦:ÃëûVX‚!´¸IC4ÛÇ>¥·#· U6H˜ƒ(b qsC\HŽWûx¸ÖQ„!жû§¹Î Œ·2e“YÜŠÅ aL”Øféã{ļ ¥ µ»é£RHW›³uðaµAéД^z>ñ;¥—JÃÌ—J/¥&š_V~µ!¡G£¨Ch)4QüK•^m~Ù©ûë9q%×Dp~V\É4a\|–¸’zÄpÙ)®Ðî£/ˆ+<wóOÅ}rv¦!j{Fæ–¸B)$b:ÅR-º´5´½îÐVE”`Å­õ¸ô" ®ˆ¼[ßë ú"Á 7j©*˜"Lˆ³ª *‰ò³TåFbÂT§ªÜ“¸AU®îfŽU-›r0èlÓo!xÍì§–²\ ¢e§°\¢äAš›x\¬6P\øCº-Þaj14Tp§9àR3Dȃ*M–··•àX‚äËú4Õ/šë^ófT&“Mpë`€pu…Æqœ{ ¥Æ­â˜`¤ì®–ŠZQ.U_(óWUö"tÕ³ãMÆãFt†s…–ê$úîÓ/’W†8ezw‡¾_C¿·Ðwýº.o_ÏÕó9jä­K†óŠz¿ncg[i`ÇDúÿ; ‘»\g[Ò?KO1L°9‰œÚ,O“R2¢ÕùspœŠ?®ÅwÑs޵Wð̶n°š—wéžõ«Ã³Äù2qÍŒ¦åsÒ ëp-–8\u(˜ºO_u±b–Ó€ë*Yœº´R›]ñä\‡Ã K)ï$£u/[çnñô[8ý#,ÃOÁ püv²÷¥pÍ$úÂtÙ+æÄÒÞ™>Ä=%iÃDÀÞhVØÂZôæÕ¬.0'Ç£º  §)Rÿ Ö"qÌAcOØ„ï6kÞì­²Bâ _Û5]ø¢›Q~5N ^Uõï·?ŒFð"¾*ð£³)¼“<Œkj…ßu€¼Š<ÁÉý¯?ô>ö ³XѦ`ëáìv°hI³BìîˆÏ¢÷3$ë_=A@ endstream endobj 439 0 obj 1107 endobj 442 0 obj <> stream xÚWÛrÛ6}×WlýБk!‚;yp%õŒ“Ø–Üt&Êh` ²Øð¢”eµÓê_vAˆº€TbMÈÀž½],,; Æøç=þ>vÞ :/ßyƒi‡‚ƒ uIy0H;]°~ ©È4–Éd؇Ç$Ï£DfålØŸþÚr\âGüÇ@£L¤Ò ©øo©qôçÜÂò#—x‘¿Áú×Þ\âDáfÿåK¸)â¬ÔŠI J–0“b" [Чèm´œk©Q‘/GJÎE!ʼv—ñ¤œ©«8%%j´Ô2§Ú€AîПÔêRB¶ëëÛXͱ‚r&w=çY)³RÙÔ!‘³Íð4/`Øí£Ry»Åê®B8;Ó •«¹„^ƒsŽW-Ò‘Q¡ÎáäÿØøŽCg?ñ÷"ó%þÚôGçp®yà ÿ?Îõ4ÏËF®9ÐïŸÌ5÷"˜Œ5 ¢¡Ô$D•¢ŒÇð”Çû”’ˆš¨Í)ZÏYÇsØ­Âÿ+|×á±àE!Z`Âj‡Ü ±©¿“Þ³/JiÀ@dã/ˆ$Ù‰”Í / £[R۬ТH† ”(½©K֖燑Ўt…0ìâóœ)`„"‹—ÚfÍ?z¾Öš¢ÒmÈæ =/ øØeaÃøQ&ŸËVX@¸KÛ8¼ëEÜ"鄹îAúz4 Ôe­Lb¡ZMQ—½øˆlr“Š83±ÅãøÆ3QÀo¸~úòµÁæû¨2leãœDn´Ëœ÷¦udr\Æyº4R‰å¤`Zä)n¥©¦SgÒó8 ¶)]©ïÉ|~v&ŸEŠDWgg—FøeaœN4ưk\ÐÆ7ÃÉ'œmO‘¿Ô¢Í¬3—Æì´—‹"CÙg)'”±ƒ©r#ÝÙ6² ÉÖç†ÚçïéÓÕ—‰‡DBUâ/4áb¼ñ>æØ$öiQÂ*_`1¦¹Ò5¹+¥ëÑF<ô&°Ñ?¬ú·×''»YÊçú¡àAbÙH؈’XÍâ챺”,žÑõ= @hÃoaO«ÆQc Þš eÀcyƒ .g$b‘ Œ•ÅTŒ%ãjªcð‚NE'12x—³ÊÜE†·h²Ò .áâæÊ.\‘À³ÑuH¿eùÒq­›çØIÐ)+¼Ç+4Wo*Ì(5±mb¸ŒîÑCaª,ĸTk”I<¢ªlŒíE`xˆ ç2¼}N^nS‡–5  ŒPíIà1‚a™l »™\Âͯ>Þ92Õý§õVY,dÛEqŒ þ]Þõ.½5ä/¢ \}軸ç¹€·¿]}ì÷îZøÓ üqq}ßë»Ô9€âŒÈývÌû›·Úʸ~oñäµëÀçß{w=½¦Î·7Ø@;ð‚bCçH­N5¨ëu½ !épϱ–x`³f¸4gõjÖ™š÷,†aÝ}Íb8ûs¬§æ6ŒØµ!ÀÎQ/ˆ[+³¿lVøJ›õÚŽ^÷Nçó$ß”ZÝÙžÁ"‡{¬0ø ²…HÖ¦i¹ÀÑvé8ÁÞ÷ïßv¾wôRï‘¶Ö§îÎÊ©Ì4'êï۵̬ó2ÄújåÄ  endstream endobj 443 0 obj 1407 endobj 446 0 obj <> stream xÚ¥XoÛ¶ýߟâ"ÃÞK·„%EêWº= I½I³&Þö™‰ÕÚ’+Éq‡} ~ËJ²lÊr×amšÊæååå¹ç^ŠÓh9à4Šñë'ü{œŽ/ÏÌ¥Ñã@Ç_A¾C¾pX*͇Ôùsp;¼žè;:¿¹¾¢Rå}=Lõ+: ~x1zoyâóB·ßÓ››ëŸiôúôr¸åæàUÇ…:L…žå"Î%£ƒ«Å´LŽ?.t¾:©Ö'ާæÿê»õ;>}‡ñ0°|¾|IÃO:^”šŠ2*õL§%Eé˜ÆI1ŸF+ЦSÊu©ÐeÁº>=ÐBËçwlsš|ÐíW÷õ—ý«©ù¢±áÛ7¯v*ß•!s…è¯üÛiéo‹€+B&ÄŸÏrê¯ÜY£K\—,꟔¼ ¿ÂÛ ÂˆM_–"%¨´fnhʘþžš:{}y¹á<ø’ëiRLÀ“$(/JAÞmaþE¬•ë©$ŽJù̯5î,‘J ?ź¥TËØÀcp«qD«n¢NxÕÜ”F`*whs,ù—Ü«¤eËÛÒðž¡Ç4§lÅ è±RšênÏ$x^Ì]eEðF†\`‡ÀVñÚ¯ñYuTP1ɬ ¢¤”²æ,SsšÕíºè{¶iÓX ›£(5iòl„ ô´ ôÉZr€Ã"m6>öQš:àv4%2ÜÓÐñ¨Ââ—ï¶ÅѺU“;§¢P­'#‡5‰&è“ta^âšÞIcGœqiûµòÑ’k¦M_–³îY%=Ó[Ó!H±iA«h>Ÿ®Ö%¾&hÓ]ÄÐDÔ+€ÜÙð'™é5¶€iwW½w-p¯Õi\¿qŽZ_œŽ˜ëR<T/LÍóú1 éÀU¼óƒöYâ±¶5O“Á£y¾)%H»bÍ+)w–Þ^ÙW­˜³^¢û¡}Fç§µ}óÜYÝA7Ź‹qŸyþ¦SÇ-î,sé—ÂÜì¢tM›Ð̼ãÚ7qtÈúüåñwƒóhFüÐDë gë‰WaÖëÏ‹õœÉà7JáëOS¶5 endstream endobj 447 0 obj 2105 endobj 450 0 obj <> stream xÚ[ݲ۶¾?O^53 þåÎNšŽ;M4§ãÉLn ’S¤BR–Õ‡r_¥ÔoRÄBÇžNÓ–GXü-v¿ývÄâéò‹§-þç¯øïþáõÓÃ7?¤BâÇ݃1þ#E‘ˆBÊ(/ÄÓñá«7;qíÏþúé÷›@UFUåË Fì|)“H1 }lÚFâÒL1šijº½Øö]g¶SÓw¢?Ñÿ¢éÄt0âÇë/?ÿ]|'üASû#¾úéÍãÝÊÒ¢ŠR勵­8h&RåQÎD>øÍ*–ÁÒ˜z±7M6ˆƒÑµÐCîj»R¶ï,I£2gûÞN¾T›WÕÒ8ôä¶úâÛ†LsÚ†':Þ+KÍö »f<ŠfZÏ[¨¶9žZ3° §Y”gþ`âÐìTžû"/[ÃõŠùíLgi)#Éf0­¨ÍØìé4±Çº7cÇv¨ò4RlÆI f4ÇMk¬^¿ ÕVÞɓ莛\ÉÒ»Š HTÄÚõ•«<²Êoo/#%ýö'Z%—ɳ(.Ã¥ô(Æþh¦Ù|Û¼÷»$™²ª[»thw8Ϻÿ·éDÝ0 Kaa)ÓÆÎ ¦›VcÅ®n.¶ø•=˜Ð4ô-é—Æ|GiQ&øz.²eäÕâU$蘤¾(éâ?Ìb¤*¢’NxúØlÓUô;wÄ/^ˆéz2b¼Ž“9 ݶ=Ó 6Y¬C\FqÉ/ƒ>Q‡y¬Ñˆó F èö°"²ñÀŒࡈ Dîü¥Š²ŒµÃ’oª%Ñ8Ô yYÜ¡Á´ðø3v%ȰG°ŒžÌ0oUï 4€ãp@Ç ()ã(+ý1É€B½¤2*Åf#øæ4QRhžéDS˜[Ä*†N“ßÝÒÒ-Z·_E%*eŸš£éÏÓ8[—Ì+ÒÖ³&‡¿V8\êöú ´Ø&/$ÒçvzÛó`ÍÝˆÑ ìü’8Ž ÚŒ×Ï c AgLŠ“”Q™ql'Jq ÐÔRn¯jYeäž’Vð”çv¶ô`K mC*2H&Ï# !V–2G±1[}ÆhÛp¬eÁ$ùTUK3¯œáx|Ò< _°Â‘p-Ü Et¥‚­PøÄ¡mÍ¡3ËÕMîG5+4}ëb‚#Å8Yã ¸ÑtÕ¸›ÄîüÞ`ÂSÝ”‰\˜*•E˜wÅLFqÅÚù©%YID‚/Bƒœõ•ŸZ+Šà¾äÇÙt·5¢íaböxè§¾ÅH| Ò!ŽL£ób ;°LR¼à«ëê1Ô–¬»?Àº¨a,k›‰då¾ç&”Ø#öº:^4Ÿ:gÏÚgïŒÄîW)ÈK6ŽuáÁìÈu·ýñØ;ï?™Ìµ±Q‹vîC­(v3’™k±á¾¯—¬Çy =õÃ$vC´{ùdÚš–pjuÓѤ–¥ø»¬S‹>„ÔŒ Ì].”òv3Ø$0c#)%‰¬v(Ó,d06jMåÎbDA. ” ˜¬èvKp è¡0Ã@ lÆQïm6\¾ˆh ÀRlT,pß“&yÊîšJ&xá™ð$e휧`© _è2‡òžÀÓ!È ”5hO‚h¼a{0Û÷v§ß¿¾Û£“Á9cKB<ŠO67ƒ)A&K%/^¨ŠrTÅ?,¹¢ë85 š€Bk¥„Ý3d7e}xD 7¬¸Îªnj‚íIÃ+hÔq;è ¨e4.Õy“ÆiÌÓw5\ŸL’v|Ч“éLaXgœò~ï|q¢›ó…g%Y”ˆ°ÅšÍ#)¹Èøl¸ŽW¨ô!cT\µE!×ðû}<5ƒ…{°Ø¶ýh\.îGÖÞýÒÞ§0 ’ÑT±ìWÖVF’7÷g±ÕqµÚL›ÈˆÍÅëÆÎ³¹¢½µdÙ1pPݾ•K6æJ¨¿ýv^²©ûê·¯Ý!YNË4!p¾Òº·/ðî`æÔ{0Óy p8b]âwŠêG£»0L©‚XZ+¦¡@áköeß½ÜÚt†~1æv"XuBŸQ@‘GyÎFŸGû–Ó8ìcÕLQikLóÖ‹_L@ï(xœß™CJ–GiÉÚMXœ@\!¢ßÜùe|•ÎCÅ‚¢[ŸMttï9Nľü—ŽÚ­þA"ž ­ÀûÒóÁ!j BŽéwÂ![/Ÿá¨¶ÆÆAH)…¼œÐ Ì€‡|ŽI¼ïxø-Ѝ’|«dŸgpÍVhäC¨GäE”5 WR¢cBÚR ^Ò!Z–±nA!IGQ0%;³u4¤¥g³@I§áH”ìû'ʈ'Ÿ§Þ/ælˆ–|. àPQQjîó”ð$Á@>_”öVzÄ"oÉ£¥a8³O{Z¢ËñKPøŒ‹(©ØxÜ0dIÅÚÍLw ÏyÃàžÄºY%.hÞØ¢îh3G Ú³‡„¡Aaþe„ P*ªtøT  ³X2UÌ’”e/3ž‚TEfl„_y;Ò>Chõäeˆ€¿r!ŠV\Hw…;š…ÓY¥‡Oý86›Y³Ïü2ÎS„n¯xiÍn²§óèèÔ©›Ò‚Ó@TÅ:ê–M´3Ä“ŠO`IÅl^†ÿ7,[\ð»!"4ˆ¸åäh)xm¶MmV¦±¨!eì;½iCè¤Ð¶Œy³@Wî¶4\½¬á!Ÿ“'¿3ظø/ÝÇ|µür94à[´B«já¼ 97Ž,ÍâÇÒØ öf?©¾T㲤ˆdÁ&»„»(Vd T ‹o¦ »Ù4ÖˆuíØ„nW7£ºÒ€ií¶Ì ­¹ìtÁ…²ݲI³Õ!_ÀÐH¼ .a«EÉ9À<Ò"4ÍÉ‹l0nÐh¿ßK/®!êà€nIž£`Ô¦Àq“ ¿ä+µ‡°± ;g$ÿ4óàoOwEHUA³J²!Ö¥ÜP&u£<'>-¢7Ü-@w™L6 _À"Þ…’W.š/ulumYþHîrFØäGyæyêzj¶6Klvë¡?ÓÄk^â†&’ƃ7%È)k×®ì^T [DÎ]‹¼ôîºMÊÂæIb¬3àç(„­E9yÐýjÆ;;¬ªµà €f_ŒgÁ ½’¯Ö3KßA–O„I)ùÚ´Íx „‚Pkâ6J M ‹€ëdIEÅ@_âN“ÒãA¼ÎƒÈ&¹€w¥pÐ5_b‡å‰Ö´bBÖ"-Íwå~neE—œ¾TŸ‰OU|Ñ®4 õ½ùæ­p׎ùÙ `ö¤$ït“îªæÂ­%sX±9õói;ÝwUÎúú…‹VòùžÊúaïH,²ˆ¯L˜vPë$Ghš…eò™s‰ ò-Y¨©ðîâë»bäZAi,Ó¢¬x‰ÃŸÍ3@¹DîÏÁCWÈb.ñø¬Ç) ¤\¨4QMKè¥U'Ç•ï ¶¢áØC39â0žúÎÕ¹>SZ©ã%›äËÇb/ŽxV ŠÄK4–ßváM^Æ·¤[Z-ˆ¾Ñµ‹ÝA’ObÀm˜B_Oó[ÐSÿ_¼)‰¥~ÿ€`HØJÎ"ñÓlÿ‚4EÞDHÆJƒ‰êþζ02^»íaè¸Fò¾GÁ+AE”ó­L‡Ê·a‘4cBáÝL/môˆƒbÁûÆÑÿ à,éÒÞ—.;szÍâ·*¶}o3ÓçaÍ7©Ä9××nïTNph+ÿÉççN‘}°ñ¹g´¢s¤‚÷òdÑñA‡ÕÈ„Rè¹;e/6ÀÐù„±Â^ÆÊ%Ï¡7 †f ùá›*Y1q=4”S¸²2 z â„¶ê÷Ù_çrËÉ…¼ç®e2*~ùàÝs4pW©JÁqeʺ ï½@¸ÈÆLA™L‘«ôNl{ôîDêŸo Cmž§6¤vÊVõpÇú &Jå&£]Jòf²o `Uº^VdQU²®8ºïâׯ F´ OŒ“+zåâ·c‹G×g{âÕ ºµä0§£TBp7l=9xðŒnŠ3¾J÷,}vÏÿ‹©}ÂD/_ìËYu· ìbùˆ’e²ðÛø{æVqûž×±ê%µÏT u{ë½”•?¤Q‚Tâ_°5ñ£¦—yóÒ¨ßK7@Lë"= ö÷—Û¶q'ÔB Ô>äðÁõ+¶ËtËß«ÄÒçððNtë,ð… endstream endobj 451 0 obj 4234 endobj 457 0 obj <> stream xÚZÛŽÜ6}Ÿ¯ òb˺_f‘‡¬w5°Á&ë ‚ j5{Z±.mQšvïÅûÀ_‘OÚS¤¤a±{&áºYE‹U§NQí‹Ûã•/n+üùÿï®þz{õòu$|¹» „ÈB‘—fâ¶½zþºîʦ9}yûË*P^ZØ2×Bõ­‡¡¿ʶ•ƒÂ³ÜÉAŒ½8åAŒ{)>Lr8ÕÝheµ/»Zµ¢îDÙ 9 ý ðÕ¶!•}9Šª«½TZý½~â'^ÎŒ”¤®Hæ…ïÅQAµ¶“’ÅFò®ï¤(Ùn2/+[æh~ì/OŸg›a²‡š íÅ ¥ËMS«½¶»ê»NVcÝwZnµR“|p…½J”%^–0K=Árß ¢È¸Ý×J”Û­2Þ¯úöÐH['ÎBø)µu>Ö#[7αûˆ‰\‹ “€ü"³%¦QÔ£hË÷ìP":–“ˉøiìžÖ¥Ný4,¡#Ú~bè™AšxA‘Û:“ű÷=LË÷TÓALäo©T9œàm…yñÉovkˆm³‚Ë®õ§ªŸš­àîJ"/)ìeîùpîű=,;A|gÎô,J£Ð #f¶HÀw}³ŸEÛ¡?ˆ™`Å2~éw£ì®±Ø„x;͛ޱ=„y€ó´§<"7˜ÎÇm‰ÛWß¿|ó½@ìVï-¿‘ÒË×Pɼ0wð!ñe`Ô#/H=ž1…—ÅLF¼ê»jÙâÄ>e ¥}?ïÑ,w‹Ò0ôŠ(Öó|Ó‰º=ôÃXb¢¦në±ÔùÕïô|wzûÃ?Å+¾ß(÷Š”Ïòý(oŠ“ßÅq_W{£úÕW)µáy—zÓžêfåØõ(Ô¾4TAײé÷%ø‘^Îþ:[­ àé˜ö]s–ñø¼¼`Z÷|<Õþ¶Æ+ÝŒ2„±:»äsYb·4!äÈuÛÐUªó0ŽCß gúKd^p‰5ëFX€% ô•˜Ko .ò ù(§ªd¹()òu.³ Sc¶—©±n{g&©ïäHõ¤ß(›œ1º%D@Ž–B‹O¯ú¶Ãø„¸Q§®ú,vCßj?LÝV %×bdœ­eÓ6q±ÈŽ€)h XÇ.Œ½(N™¨'Þ=ÿBüFqÁ„°Õ®ZªËzÏ:ô–}RM]ÙC„(ö}nÚÇJtL]CBnäá£Ìæ1ß1äZpé@+B$Î’‹++ ³BÙ”Ûk²]§ã%˜L2bßèV©ë‰‹wXìLº¬ ‡ªßJ]‰ ÔÄÔ(t 5¶â:ÝÜè`z÷üÝ——*"2µ¥ã4tŠg&°÷•„«Êí^ÂPÀ‰húQQxr.H#¦Qž ÷˜€ŒÎe†B7îb‘¿ªþÆ¢–Á …NŽ Qê†Ø²å‰R’Ö6¹>)éH!$ìƒ ‘–¿àÉÄg;5#ê÷ Ë­Ü.ÕÿZ×tSëŠÎv#4'cÈ ”lò;ÆQ¶)ÔÅÙ €óŠ=LÙñÄ~˜fsàí3gGQâñúá=ÍGˆ±ú®þ/öYU}´Û‰Ž5m—ÝMå€%åö,’Éh?]çÄ|,z‹XÊ$½(73ÃîqÈ×â®fG‚˜£¨°tîµÖÉyži¶åS°‰<'~â<~4~h,Ï̃°<÷> ß·õÝž $ Îë´g}8ù Óãu¯`­=,Mu3!cêª>|µœ>">à§\¸Æ»G"AÌc&ûGü%ÎTæ<àô>Ž!?îÂ8 \[0upIþ%I°pº˜5Ç¡Ÿ¶¢6õùP*µ€Ru9\|VBƒúœ^ôf÷*§?ÁaÁ—úÉtr Êá€s^¸¥µalÈÑ u}Ioê3ËSþ›÷¬ý†3ì¶õ€'¿ %„ˆëÌc.Ÿ\H$†ükM÷GGæç:”ˆ¥k¤âQCu=>ã #}#¦C3™é§LæÞueáô ÉÁÞ.ÕðYvæ˜ÎzL:š I˜’…YŠÃã[¾‘ } ft Ðâ8_å+–^HѰ`ãlEê8ÚÃp*Ú²FI^tXÎä´û5aàPÃS&øv®>¨œ×âÓ[puÂÆ…ý¢þí8LJµTŸù9:w­ÉΫw¦ëèo eLÝ2eKý ÑïÜ0d^Nn°„ÊÓyUÇ qÛµñ”AytDúø?¡ð}^r÷š¸U5)%·Âåc0’­¸é9 \&ÁI_Œ6ìôÒ8x¾¥‡F¼ïžñ†ÂKZ5µòb¸ñƒÙ„=wgè%9:*ƒhåÜmäŽ837&sÎP?¤AkÅÓX#“;ž…óUv¤Á6ægLàþŒV'l\ÑFsE†3wX8’×YO—eÄËØt†e9—Bä?xè!]ׯüƒÝ˜ÏôíÁžø2Ž\˜¬¤l:T ÐÞª>ÔRÀÇsà–ÃXWSSšê«Q7 Nç^bƒ.¬‹²È‹@¥iº•¤ë‚Ó¿¥ÂVĈ¯ÍzˆòwÏ¿P²!JyWj}ô!bžw}¿©å׿Že[Þõ#jͯ_¼ûò/Ž?¢4òæ‹ wÁðò‚›¦Ü›Õ6ýº’+|ý«j§a·®s^XhEdWd+Õ6mñc ¸vÄu´1µ"Az&¯ ¥Ó&å¨2“ÓD1•UIÜ™ŠéÿpÙÁ¸BìKÅS7BÊ|)8GÒŘIß­8ÉÑ%‘QP¬â.‰´ÇÞjv³ä¦Ó ù^V0éKi]ÇP3øC»ÓøÏy`î…|y¾Ó8`ƒÊ$× (;YRýpªi¨ïÉm-]L&¦ýàt7F­Œ¸8ÏpK@ª=þh†G()‹ÐJ}í´F8\ãH‘™åˆCڜ𡭫¾Á±]ë&™h !VJ§´¦ØfÛËÃ3/c&¬Ð¯ÑÖ±5DË“æsð ˜­­Ú\àI 9ú[Y'îÍígG¦í(Œ×7ol×:üõNy(ä¨m ›A­Ò5x~…A>Öo¨Éápžà£ŒÍÁ/ØÂÑGJö®ëò•3›¯D+—}Ewi1Ö>ú¹“Ç'`\ÊQÓ=š¾odM%᜹pœx+·:ðº\†Üæûz‹c~¤Ù+È#&>0Ýü<¯ö¸ùI˜¸úè¡g†ùÃ)B½4\ßHˆ÷'è㊸`bGÂ} MPxÆi(Ž Åß–FñeE uRê~ê‰3 Ó lŠ?sjÔϺz¢¼ãMJà%“(ëŽ.F€·:†¹–¢)Y¸^ñ7N–¯9^"naR¬œx™:§_né±Ô2ƒ[:ì± o-éµàØ–¢{—ÔS&F¤†WŸ‡0™KÕGïEMÃa¨•\ï†ø•,p=¦=oô€YÄÆá(j U¿ESS¡::ô]Z%·ÔÌxçU޼„¼X¦Z/‘—›JS©‹‰¯´4±±FRlŒÇþø@/okXQdêHyf±ÎçZb•Í£éRM¯:…¾^ü¬1É™p¹V@Gî"Òy™Á6"þÕCu¤—HgÝsPÄh¹s¦jà^MU…œV7ë ÊÈïQ c®Û/€ymêŒ]fç×Y²ÝÈ-Ý^4( ±³0:7èbæùVjš;·e¹e5 Fõ†»Óõz\±ÚAÅ™ ]Ý]tûÃ˘õ*× Â î)}§g÷vàØ 53L²ÕÚKØâز”/H¯:ºÈé¤{á›óÅ60ñnÈm†ãˆi~£„ÛQg1uh¶ÓÁâËŸ=yäÌ!"h‹ÑËÐ3n !L #À¹G¡[s{ܽ“ñ 6,õ yÐ!ò%ºCÃÖüs¥:Œ#Wñ‰÷4!ºµ8`Ò®0&®šþu G›Ä‹¸ Ýùë_(pAz‰ÎD`?ôÓÝž‚qI*+vÝóI“U™³*ÃÃ/%”Ƨ^ÈSÕ æœšÙK/ämñ­õ›’×µl¶â;9–/Þt;ž9@ý„OMõâÉ—õAzy¬H½ë›Æ¹É© ÛrG²Ã¹ïK.m¡¥†ü­l‘ö#5Jì{þ¢?¤ßg°™ÂZw»Åôù=°æ÷ØúÜÙ`Ž34·â]Ù.wÕ |¸'2ëÐD Ó× 9žN3€ÏðÛZËÍêc¯#Sú‘“­ ÔËöäU‡Ã#ц®¶¾rùûí*â‹Aì%‰¨Ú+ý“z^sÑ\%±ï;«žø~‚ñõ—7KOrð¡øQ:}WvSÙ̦‘Þ 3Ov‘wûüôøW®è‘F²‚¬MƒÐzòµ™Fbùü ±èì¯~æú?MYS: endstream endobj 458 0 obj 3372 endobj 463 0 obj <> stream xÚWMsÛ6½ëWlÕ‹Û0AüpâšIrq:“Z™¢Œ‡&A EÒhWÍäé_vAŠŠRN”±‹‡ÅÃÛÅÂÅãÌE‚_ïðïnöçbvþÖƒpXd3 þ£¸P—„‘‹ÕìèwY&E› ˜'«´¥ ùüxñÏž¹ã?â–yÝÈR§±ŽÇüÐ%nìOx%+¥¯þ°­—8Q8²^Å¥¬GÆœ’¸U²¼ƒ2^ Ulj¥Ó—¶±K uXgŽÎÚ£Ô!‘Ó³°Še¹467wÉ)$yÜÀ l?|þ²<¶': œžoÖ¿üœŸÃ;¡Áðt+q’¥ Žt\‹FAÖT+Hªn7s6bèæ;ÄÕZÝu}q!þWu!ÔÅÅë~öN†í).ú˜-,mbxà 1áSf°<úm˜z £]ñ©ŠvöæÓÝ6%ж‘€îL¿ÛÃnDuwãºY—£¡”í-‡D¾QHb!U:ÇVe)-«tÕõìHV¢y ±QDÔÛCÝ‘ùú/&XNooŒÚN-X/ q¿|vø !Õ;´á$ßhüZWèVø[¨¶Ð(…«t+eÍÎG, Ü¥ö¾¯óêd™UßV­'9dR)ö¢b=½{7 Ìu÷к@”©ÎÕç/èÐ7 î)¸øçùð}ä u÷…™ xÀ:ÃüQ¡L ‘é‰8>‰\o4^½B¹êÇåÑÖ ó霿5û™cÓBb‘OwZo{Ht@ºþp‹u-¦ÀB öæ`oî[ù(9x}rr7ð‘ê`W”iaÓÃ|‰ÝfV5˜•”üOÜhx6ÎKüéž*…+“«×›ÓôZi±:SµHd&;_»¡‡œù'U*Ýî H:×.Ÿp`înrü2©”‹©Üâal,Ñ]ÊêÐèƒߊ2ýìz£e|O2-SõBëK"ü5šÇP41Ïh&Ôs_Ü {ë"Å1ߎÉtèEÕŽôêzŒÞá˜JGû"Û#8¹ÁMl׳WbŒpN¦ƒùªRä0 ËóÜ_rV/’1e„zì ÖT\ºX Gž÷l¬ÓÈEzù/Ç:Åú—y£ËýZö׸Ñ\’‹ä«=ÍwÑý}auuœ­MY¸¼ì€Œ.¶ îx")P,®#ïpnìn’Î!,66ƒw³½vW• É¢ÂJam´"Vxý*°ÔÃêd|nª8“uz»¥Èü oŒÎéógAñÀG•䢑É×õn/ºr#³ –æ:•Wm‘– y\טðnEcÅfÌì%ð5qÏ^"*idÝU”=GyŸúà¯WWkÜâm«ø„VˆÔ”±©¼ƒØZ_ç6~!µFy¤BÔ˜…ñà<Æx+#м+± ÂŤ2QÕ6O¶ªì<‹ï ÎýŸëˆ?¯£7‹¨gs7ÇÊvfÞK]{h†P̸çXM4ص6{[ÓÊgYÿ’eHõÓ‡,s(>6ȶ cþȉ§>˜4†q‡Åì»V'Ó¢·ß¶·~ ð&‰:ø ¼€ø}ð¾_c| zqñÍý |x—m\l]3óÎzÇøex‚½ßϘÝÏLÓŒ‘ñÖÇ—Ô–Ó¹Ù[ ¿X sòÙ'(ë51J endstream endobj 464 0 obj 1498 endobj 467 0 obj <> stream xÚ••ßoÓ0ÇßóW}@¦y¶óÓcÒ`Àâ÷Ö¹ŒÓDćxî0 øar'‘ð ^8cxö$媆ós}ÍÊU‘‚.kÈär©ô+ˆ×KI¦’0—y±2ŠŒ¬¯Òiñæ(þ¾“Ÿr'ÿïžO 8ñD°ã£ŠJA>‡éبŠÌsU¤75®;ûÓ#¸¸;ÈÓéx±®îŠåòì ÿnfE9»Ñ«¢˜¡×¯þ:'\„ö:ùÜä…r©ª“/ë¼ÔД¢³BU0ê§9¡"ÚKÝ=# V–Ä`¸—&—º¶‹Ô™‚wÇÇPÕ&×·ÍÚÃ(ƒ€a©Äa”>#á>È=#>eÃ$®UnÒ3Üö¼ÎÚÍ?V-š¼Â^x«²ŸÔeÄ¥|Á …$Z.ÐÂZ í™3¨;,ô}žBU.TY€F%J×Å»Sê[«›šÕéìí0VF‰ Þa¬”’n»¸?ï Š<·œÈ:ɰw“RW5lZôR¦“•2ë× Ì ýéGî–ïô>IT­@ê5ÜÙh 6¥©úÁ!ER»˜ gCi²;ƒ–„!™¬±÷}`vûͨze4œ°=gO rñû «Ÿ‰jNÜ!.ˆËxŸÐ;›íDÌKÓ€*ñdø²ÆÇKui÷ 1As_†võŸ¸hDóþ —'"Ä5ÜP^áF·­ð”ˆîå "Ü@[õ&ÇU¼™¦¸®G|’…Óœykwf…ã{´g¢ÃÆvÑl}­•9óöqÑçwˆ‹¯ß#¼-Šî‰x®!ô8táÝbýÁÆÂw™ßªØØO:ºôÜs Ńz! Z\]Ñï]ÂñºûVÙFz%‹'i6î¤M@­.Ë vƇç'ÎcM; «6À–ÜZ´‘Ùztã­G“9× 1×»\Ñ< endstream endobj 468 0 obj 738 endobj 471 0 obj <> stream xÚ•XQ“Û¶~ׯ@Õi#;>@‚yq:{b'3I&+Ó‡(ã¡(èÄš"uy²&ÓÔ—þÆ~%JuV¾ó@Äîbñí~»Ëcd¾Ÿ02Ïñß{ü>LÞÌ'·ï •aLæë ' ÿ8‘‘, AÌÉ|;™ úbþa3 (¤#0¿Üç,¤Q:j»+³V‘ûN5…ÒFü†ÑfàÓí»JÞù±Œ©Œ«ýMU·Õ]íœÃcÇ¡#¹Wͺ+ÉZem×(R¯É‡÷?|ù%)4Yª¢z Ù²T¤­‰V-év¤=¹öØ»FÉåa’PÉRçŒùFiE2˜ÿTT+sFY|ºTqJSÁ%EÞ~áÈ$M¥pd´=úöðÐ@œ1éÈj׋Ùâ…ÑaÏËAg}逌h:ÛY^”E{¸#‡º#…uÈh$é'w?¢aêì«ùŒè¶1ÈçuÕfEe–'ù÷çKAÊh»&Vd—5­6¡É€9"–«M]®T£Éºnì¶ã‘) ¤{¿¦°±·6_9X§(8 âƒAžUĤFCt·ÔmÑvH“¢râibý¾Ô/;¥!ˆ$k75råÒ]ê he0dnS–n𳄯©#·7îšú¡É¶d¥¶u„á¨&G5yª&õ;øÔnÀˆ#O¼œç’¦‘ç„‹çò3’ G^}ÎÀ*¥o[3NóÝ®×õSTľîÝé„F~2sNEX±?U^v+E¦ùvU•¢›©-ã4ˆBOÜ2g•µÙX!JM¢ÈUx]Ô@WeÛ¿ùÒ1ƒ7ÒJwÚ„¤Ê¶Jïkdüê+_\0Ê #üÝ ¥Il7·àȈ Æ<ä¯H¾Éòë§ß~ïé~©ÇSÁ¾Èþáï±”Š¸‡‹às{Kޣ虻/3SÂò\imø¿[K¥¦Þ‚¦Û­¡€Õ³(R°*‹Ûƒ~,w»»»SÀïîÞöÚ?@™#³˜õ1WX¼ðqIJY,›Åš,f:©¾ þ­„L€T4È›O£Æá#Û1¸ǃì?ý}‘à>ɰߢ¾ŒÎ ø—:çÉo5P, ½±µ¥­Ry[Ô±¬Wg”µjžTãÓ^’&Ò1:€ùöl v³+(¯–M²ùUL€º±äŽÙÓçD“ÞÓ9^ ÏP¼'»Lkód¯0•¨¬¡Ç›®(W¨õN?=44Ö'eA"dÐ`žTE–ßz")“·nUÌ}CôÄDF×¼·.ôŽ|m°¤v½˜ùFbL2¾ ÛT«Á /{rô7ØcQ½S_“¿°Ç阢˜ éFØžh­ ¶#•0ÆÝG™öË€_Õ™­VhËųZ~…Çd_Wÿj1â˜ä3¾­}ãAD“Ä·Ý×ç—-T4š*ßtA=C;0G4NøuÐ?´u£,ò¿(Ý•­1ÂSymv³éO}•—§*?[0ƼÊ?kª¥jÐß »ék ³ˆŠ$p±õÜI‘‰í¡O⫃óOŽBÞnšz¾Ì›luß§Ìô×ù»›„,áɾkt{LɺEÇîP-1øí$ÀŒÇq5­lj™ ¢^Y¼H_¹c çf¸_Ç‚H9Î;yØz„qa$ß«åÙR‰ì‹vRÊ›%òç›o¿ÿÞ7+@%M¶ƒ±ÏÅ6³%ªo}Yë52mË-~ò¡*ébX ,1†£0Û= eíõTÔö«‹)²¾ù ¤×¬“ׯɴۭŒrObóp¦°Çiþ8‚‡ÄøÿÃè¯B˜ÞŸ!JaŠù™$Á@õYå˜5 M:é lîMýºÏÓix5Ó ~c¿ã‡æ1É\¯ê\€-òCý³–lþT ££ŸÍ0&YÀÇ­¢vØúhñþhµ³¾À-Rùl«æo“é9ó¬Í7`zn†ß1aÿJÐÑÆ´ç˜ˆY:*±ßab)M=u Õ4u£}å€SW5‡œM¬û³Ö™šGhùûMfÓÙ~Å£+cœ•Œ_›dnF£ Ç0±àY|RNCþð`º@ÿ× î3%œr&žh™­L-X„¾Ú Ž Š :ßNÌn×§eBÊ †`o abÙËšÕf²îÿBá¿3„À /èÁ“‘—>HÓoÇÃü/à ‰z/†õÑá¥J„x°of-ëÂéM÷ ,DëúÓù1«º¬<ºfônzÌøep"Î÷ÿ¾?yœ˜¥Ù‘©ñ6æÁÅŠY7{‰Ó÷³ÄIg3ù;©`ë?L•p endstream endobj 472 0 obj 1747 endobj 476 0 obj <> stream xÚXmoܸþ¾¿‚pàÖ‡³ñEo¾ë‡6MŠîŠçâPÀ@!k¹^å´ÒZâÚq‹ûCþ_×Râj´k'6œâp8œ×g±«‡EÄ®Jøçðw»øÛÕâõ;Í2³«ÕB°~K%K…äY®ÙÕfqƆŸÒtûñGvò¦mîM×WmÃàSÛ]²ün:þ°.ìõÙõwnÚ,køÿ»«„q$y’Ç„ñøsr}m;c»ÊÜ›%[¶`}õ_³g¿_<à›ä’ë<9Î÷œ¥ÝõŒÿøü8 üÜm&¹ÌS¤Øu »Ä©äQžâ?æë‰¥æa½,l¹f×geÛô–mû»z»½¼|û©4[ Úý ºüßœM,8•èõköy]uÍVmNJ摵vm:öËã¯~þþ{fF¦ýœ›<ŽÄqK¿}Ù¼ P‚«H~£¶¤à"RÏk+Šxí=e`ÍùÄyð–w<^¿SLD3‡Ž“œG±?íjmX]5†}ÜÞo hÌ0Ðôg[æ¹è‘k®3ÂéngºG¾-ºÞ ^ŽŸ.Á-fûXolf³­ kÀE›¥ûâ¸yQ¶; ª,«ʬ¦שàIL˜®Li9{×µàSعšâ4Pn[àÈÚæœ=¶;8ªå^ìzTBÕ3w)vóèd¨š[lÊK&š'„øÚ nDˆrÁÁ©¦T÷t=æåb:ÐîìÙÜ€ï®vMé\ÖÝb]xoÔÛü–:æ‘nYtÅÆXÈTœýÔø»zK9nºçSlÁæÏDÜ"7%”à2»µsÜY¤J¸d‡»Ûå¥ùdÊ}Á_”’ó­|~M©ÂÚÏÆY³Œ A(z¶¬n½9%¬L¡dXQ`mmØÒ˜­éÈ…eÆsE¸p/-¬¦\f³ðÒ±OJš "®€8а_µ¨»Ý–R—Äõ”ôŠš¬H¦ëƒ8Ç©ŒKnW ;Ôº£™@§È„{š¢Ú§Ë-Æ) YóîG„N5Ïã˜lôÕW°çߛΆ8Æ÷nÞÞ|„=ü¨Ù¡ÓCmƒsJ³në%x.{€$NœVƒ}3•“ãHhé\ñ$£L(ÐÔ.–)OAOSº¢qi#BåMUgnp®snÃr]4·>y*r€¢›ùÌÜ š@jY sñ˜]ÕólͰ»l »Ás‰Y( xËkê7wé'`ôÅ™pˆŒGF1˜Ø*‹ùÝ" JÛv('ˆ¾Oÿì¶š*IÃGô¨{º®1ÙO×󹂖rþöž\¬ÐϧôE·éCx÷¶è0ÛÍ ¥¤ ôÎÔÑ<Ë+Èœ#Ūò³é¾¸rØÐR2gd@œÁ†«¶®[šàÙð2:ë¾½Zˆ(Šžd›a&¹’Õ ™cò! Ä“e(nyäågëÅŠlØàŒË)¿8Ò³‘û8KÆ“ýÖ)wwè·oÂLá&’@x4÷!¥9WHB¨¿ï°€D2ôÅO§_|JŽç=L§OŸ¬È?´ª=ÙßÛ†`RpR¥„|k1_3Ó—ÅÖ°¦ePu a3,lü&lNNÈpQ Œ"„†åsRj¨G¥jÆC@b3ep`@d8uý3{Ã(K €ä„×_ßÿ“{b!‡Ž ˆqýþ…?ùb@*ˆ-Šå’áñµyA““ï^0‰È÷d¨m¨¢]»ó¦èÔ¦ï z4T†<'{Ï¡CØBÃ""üZDêNŠÒ@m·¡îР@ ï”¶¨wÆÁ=è>ùœ)Èx°óç,7„D„šPí,[Î]/~(%Tv´÷MÑÞö7b= ÖíêÐDDe¨Di¸€þð©åéî Eµ*† ¦cBë< wO€¨¬#JJ±<¤:SìÛn*‡Î¶]‹t¾ZmÌtw"'iØZ­œ®oP:Ã^|Jøà5âœr‘†v!t/É*¸rÚtâ1³ û wnböÝrŒn™nÂbÜùäð¦CŽþEŒµîý ².@Ž©Ê5+*ñUÃ>û—Ž£øNA£$EF¸#ÀãìŸÈÍZ¶-€ eù\}¬¨·ëâ ,ô«%öOä`©Ç³^JíÕAÃ@ÃŽ²í̬¡Ò1hŠìø7E‰èš”£ÿY¿X7!t÷´qÓÐcuôJÛ•ScÙÖø¸äUì¼kuÛ€ÀKÀêÞ 3ªî̶3½!õÈ1`ÅÊÒW Ô†ØGªmy~o¨>¢ÔÞ§½í+»f–tÃRD<#ô­—¢§*–:çRBì˜>w½uxÛ—“á)Ï6¾ëõ¼d鉈—$>bz4Ma:9=_-Ç蕎 } Ø…€ð‹Y¹Y¸^à ÁœŽfC cCO«Ž! |™âÒË¡òƒ£§'§Z²q€xÆ1Ÿ„‘@ S{úa<;ë^ 3Õ)O|C>>pß+.¡#ýWÞE^4ˆ†û.<ƒåBí02yýÃânC\Á²U/hå÷£È‰é)Æùžbܳ^üÆàõ«¶.þ endstream endobj 477 0 obj 2240 endobj 480 0 obj <> stream xÚ•YíŽÛ¸ýï§ H7A®(êsý“f³-°[4;SÅÎ¢ÐØôXYrDi<~¥þèôéz.e{tikÚED^^’‡÷ž{.ˆÛÝ,· üñ~?ÌÞßξý•Ê0·«™~)‘†" bªTÜnf¯#Ê7·¿†UH¥¹¸1]WÖ¢[ñ·±u¨hͬ‹¶Ø˜Î´Ì. ešÄÌΊ¢ß?ʹΤ"ff}W6µÛEA(3klw[n Ù|ûQãÞ‰“,9;ñ§4•Z±áFØ­Y”«½;íöx+vkS‹}Ó‹;Y˜È aŠº]# 3‹c©cfÆN&äÛ¤sQˆ¯½i÷–›mµ½5b8däR'JÆ)óð‰f^_Û®iÍÝëESÛNÜ|úñ¦kq— ¬œd2K‡yÀ¡7Á\ü"¥œ ožp£Jýz÷æ2ÚšÐy“ìæ4&ãËÝ®K+ºýÖˆf%6}Õ•Û ßþ}ëˆÍzäã©T97mÕKQTÖ»‰(Neœ1Û§ÒvV¬šö2´OœÈ,:‡µ¬ï^O¡’ŒÍ›OÜœJõ%ÿ¸êißa³9¢¨—îÃ$’°º°‚yr16½ŠFPzS¥ø—‹Žÿ .ÚÖØmS/-E;%Ë¿[DÊöRþÇ:–?æÜÀ(:™nÁÃ&KAÌäãá\Ë,cÃHÓM±?¥r¿¥=†ñ(Ÿ¥øÈ0J%ò†ùh½NB©ø.ž ¤¥¹>"ŸÉØ…¼Org|Cã°ÿÙXĹ~âC‚ËC–^}(ëÚ´â禪ìÕ\\•ÙŒÿÞ¶åÂ\MÝVŒF%nÅ]Ù­ÝÍ`ò¶*À'›l[–^ ì¬s6ó±\dÏ}ùNɈ›ùTˆÇãÆ#Ë( º[4}µ¤ý,ûÅK8ÆÅ© ‡©Ì¢w¯ “¹pˆÜ½«¶ÙÀ¸øBTÝAÃÀ—C:[¤Ù’ .§°(;;#–å²þ†ák êÏ@Ü÷‡zT:ÊZÔýÆ`£¢i—<5¨æEš9ï¾€„Ò zÍ‘x\¯JS-Õ\¼RÃgx ’WáµûX—Wú+~(ºID¢ñw´+«JÜ›E³AUÚâpeή›¶«ö œ5™OV¸¬E¢DË$?j}Q‹Œmij*(y˜Qiá3Ë‹:$²bv– Þé„DÔe(t.#‚Ã˧Y¬‹º´Ô›Š§ nKÇ s°³NF€¬éÄÒ¬Ø:IÈWtç=…“`I§7žuÕëUÝ$Åñ"fÆT§ªˆ`‹ÕQX[>ÔÐ"¼è" Âäliª£\:Ѥ€ BxeìCõ@Pµ ’ÙåNcK§ú946QÚ‚H¦)óu(mÇûùçrˆ;Qà¢Ìw ж-öE´?6òÐMcÄÈ€ƒ›) °q`»(jpÌ ÷y8ÿˆ/ x÷{¯FFTM.N5d(jÌ}?uCuh(8gý¢~%¶t…æ;oa:â}§f_ Ärå9¹˜N:FÛ‘ é÷¾AZX™ò”X,p´OSr|Î=Vjê9:ƒ±yÓ~y¿X‹ªüÂr.P2Í™­zûö^Ý(1™‘=K^ÄÒllãrwÕ× wWÏI|Úöµ(WŽ.A¡¢ægþìyŽÙKI¦C4ñaÞP t"d6}VP½s·2…âÌ%šÚ‰ð‰lÓȶ˜9uÙ6¡P“3k'()ÖlÜØ”‰.h‰²8¶ã-c€–‘û9vŒfÝ@’ jzbPð:wÒNhÈ‘ÀCmàÒ¿8k?'°òÑnØxW|áå+'Y5¶3tu};ÎuRî¸/Öó<¥H¹ç‹Å$ððø© KqÑó þ êD1þܶ׸’÷•~Ý"຾~ëmç¡æÉÉ…¡ñô}¨™ÉÓ¶*åD·¡Ð·x.| MäI¦ÑÉ꯬vgP©)ß@²ÒvÍEa$s4©cû=ÉG(¿{0ãò¢ŽÝñ¢ÉÀÛ`±?RãokUŽ+ñ¶kãT”¢­JŽR”åj›Á [D:Eclñ™µuèË㈘Aâšå%F¢êhˆCœñ¸ ׎ 1Öúü¬²Dæl®*AÙ$ }0b]ð W2O˜9OjBw'ÖåUÜá®ìœöE@7\økœ3ø)@'º÷}ýüÆr÷æÜwšI•Å“¾Cß·Œ£7šïĤV ¡T‡Ï!å< U 8H”Uã·”¤V#æaG–vRxS/èØ<ÂgB¾¡8pÛž5 È÷Nô\ZûÆs:ò–J¯9=êŽ }2¸#”…"W¡;iÍßù†ä(*•Aœý.Ïn®)f&Ã$Á?C~à„JGrÆù#èkøÉ5ш1žû!Š»{RŸÞx ú†_Xµ‚g{â÷¡À"éx\ÌkŸŽ¥Rc‹æµ¨^¥µ=t(ÅÙè¡ûÙeí‰vtuêIÛÞƒ纬'Η>O¢àŒ\íž·*‰LÔØÀ©ÉïoOx§"Çb±™¹§lú>~f¢šÅQà}Âàô­ñ9ØÒ×z¶¢ÿ¼{N.謈žÔÜYp¶ôxå÷sü ·Øa ÿ‡Ó—¢­ìßÞê!=K1ÆS™ ©óÓþæÓoߊGˆräØß-’⧢Ѽwƒƒ€öEèöóËãŸf_gôI#iN»MT8ú Ü6‹ãÏÏÇ9ëÙgQÃ×­Œ?É endstream endobj 481 0 obj 2359 endobj 484 0 obj <> stream xÚ¥WÛŽÛ6}÷W ö¥ â0âM— ú’"i 4@Ó¸(Ц(h™¶••%G”ÖñOõ;¤Ö^ ×›¼^Pæá™áÜ•Àâ0K`Qâ¿ñ»™½ZÌ^¼‘ÀñÇõŒC‚™€Œs–f°ØÍž|hw¶æéâÓÀ“”iº%Ûø»Ì¦Û–Ö6ÐÛݾ·+¨š¾…ÁUÍúmå`gË­i*·ãÀÀaJ&½,9%3GÀãÎö`êÚ5rØ@]›ÞÂÞtfg{Û9ƒdŸÛ¯=ã‹7 r¦£›¦¹`¼Ð9`Ù‰êï•]›¡îÝŸW‡­é¯þ‚ïáê­Ù-‡nc;x54îêåTUÏ–qVé±ÙήG¾ ÷²¤œeEöu–ue럲@L£9ÓEþ?hÄH³ïªÒ^àQèÏ¢£¡o;ûÞ“ýj2@gdz#¿ó»Ÿ||úr4ø…ÈJyÁŠl´ÐÂ;¿4 õ8çše9¶ÝÍ–$sVpz¨ðÏÁ(;dó4eŠÊoÚVÖU›ƒ²o/ë,DæpzŽÁO ¬§ê…QZ)û9*ôe<†9¸iZ‚)˨¼Cã#ž”"agD`UöíºjY}ì·…²ÝíÚmì,#nUZ1Aí÷ÙO&©í‡ 3Î[mcû8H’ìþNÇÝÞô[Z24ËA¡’k8"+*‰Q4¹¼Ã›øÚPWs|ÙŽŽõb£ÊP0™JŒ<ˆî Ä2¯,¬ZëâÅs&©Ê(¨ì+’&!‘*§”`)½‘EÃwvpLµ5¨¾wB»Žl¥ }/x×,7,Å|júU•usH(<¡DJ%)"°Š`àN1cÍ}wüðþçgÏæ`šÕ]ÊÔÕ 1m†¦-ÈQ7 ÂÞÜPKbÜs DJ‡fˆmUPu#[¢­3JÓl¬¼9yTOtŠé)d8£˜b4èÆ%ÅÀë®#Q0HÛÁ[4ÁG˘V’ àlk<â|ŸìÐé£Ò°ªV!fÝÞ–ÕúšUäll XšÖKø”ý Ù–’åétÛ–C?öQ;ÖààTÿÔYÌ£ÆïM$®B©yž Ó„¦7’ÜW„S]¤¿HY’äSÌmlè\“}땨: 8)˜ÔjŠ3õ`]èæ·•SŸŽJwèÑ„>´ ëë í²Ã¤Hc‚ùÄdíò“-û±ºõÛŽ”c…Q99zÀ±â•YýBëeŠÕ€Þ ­þC;`ü!4“ØêX`y~Š£0 mÍ~o›1éCwÜøQ' Ïøôø4Dcú Ãg"?±Ü1ao[‘¨Eõ²…%Ö Œ¨ ¿àù×מÏ7öËöUyŸÇ%E'ØÖ¦‹ó•¹LåËý­3ÂJ¦“ô›g •bEL²Gg xBsjƒàÑâK^®ÕýDz[AG íP¯Ä&—šiŠ;<–BJ3‘(ñðc³ŒOá$_ßâ|ú\–%2ÅRIÕ #ï#ÉÉ“î[Ò¹vþcW,ö†ÐgìOahh»#-H™¢¦¸ù˜]–PbÃ!°/¥Ý‡$rÛ`ó&J»‚ z€8ÁãT?|UXÚ®Ú—4<4apñv¥2 lMùe%ñB1³Ôñ:böm~ßµKãgCu»©J°]‡}«jÆY ·7 ÁÔ¯gºžã°ÜÍ»€_Ÿ–9Ô3­’h‰€óZârÄúÕv¶ö¯œ÷œouLˆ±{ó¢§’3ÞO L®;ñÃy…oPz”}^GÒvÑ+L†w÷jy7Á-†=V¤ß:ïiSß©æÏ= ¯—·ç¯ï¿Ÿ}žù¥ßÉ ¯mŠár¿J‚š#âô|8ÙÎ~‡¹þ\qóÀ endstream endobj 485 0 obj 1400 endobj 488 0 obj <> stream xÚ}YínÛÆý¯§X ?êÀʆËop¥×€í´µ‚Þ ŠZYl)RáGd݇Ê3Þ3K‘æP’[$¥½3³3³3gÎn-1ßM,1Oðׯøó4ù8Ÿ¼ÿl Û’ã‹ùj¢„…•lX¶´}%æ›É…'ßÎÿîÃPº¾ÇÄÃV'iœ¥ÿ ªÐ‘* ˜¤^ЇßoÅC]6IÝ”º"…w–ôT@î½ÿìe\ñ_ahôçký²Ùؘx¼xÀ/ߊ•ŽÍo2]Wb_4BÇUšíÅRÿ̵¸¾¼U×q-6q¬ñ©Åª(7¢X‘ZI‹y7ôÉw{Ÿêx‘éJŠaìQ„e&uU㛢ªEÕluù“‚€ƒC5Û²¤Åõ~ðuWF[×ÙTĹ0‹u\‰Xlôf¡KÁ4Û•NÄ4ã2%ÏER”ȶȗiþ$ê¹B&~êl)ÒÜ8MY6QÊÃqYv0Nˆg÷†?6õÀ§8« ãXÅBUA(íÐcŠ?ŽÊÇáºDÊ6º^Ëj* d1®‹²¢Ý–b×]ì•h*TÇb/îöpâòò—¡e×ñ‘ňY®k­ËÞR ¶e1Ôð,GúnÈM—Z䨳“õáZ½àªÉ“:-`:­÷,BÛF+1٩حSdGÇÂÓHÊÖ@v”-xÆ–QæøÒJ$ëx‹àX%¹‘©´ërŠA…2ðÚµol-”Š/£ÁÚÎ2G®)ý¦–¨àã¤,ªvÙYzÿÙõ¹X2Œ˜ÑªúžUrÝÊqÁQöXžw £(&0§\¤•q«È³¾8ÄZÇK¤+/j7u(H“8Ëöã„X"»µ•æIÖ,РjítdÊC3ÝÍ‘]^ž Ͷ‚‘ÌVJrg¾ñå@:|î­c&ãàô}&ÃqÆudÄ}ÐÔ‡¨EZÓI&Å’mÙdˆ¢ëZÀ0aÙ† »$c Ü=‚À;ÌÅjP •ÃeR÷WR²>=²‰ŒG‘mäouýËhz)Å$LñÞ!Ï‘riL”wœ«dÄ7Ó‡ù‘eŸ7m.¹£öèaõCW9¡ôƱ·Íp„Òõ³«ùL̯>ÞÎ0¿ŠäL¼Qz 8¯Ú#ø'­õF\ÿçêÇ ÇÂ`¼ÿ2÷_oo§c=L¥¢^/o6âãͯ7÷ó³*näÈC8¤±ÓéÓºŸ¾|%÷Î*Õ[õZÛ2M´ø4»¾¹»º}¼ð§ö+Nº#=ûeË eJÊYßA78½ÊRWI™n ÅÝìÓÍ×»ùì¿­êãÛ³åÒYŸ—EÔP‚¹×–'1ãÇsÖ`³)‘¥ÿŒÁË‹–µ¨ŠWªÄºvÛ!/ ò—ÿxaÊd*ÔTøG©!^fû}j ,m·> 븜šê«9‘ÝÎÿSj‹ô stJås¤*Úái½eÑ ÓC©JúvtFlpƒ™R:Rõ•t3šÈÑ´-¢#5ë¨c½û&ËþŬlô2m6µ~®ÿ=–W[N†Û:Ĉ6yŠø÷ÉslPÆ`0¨W·ôTŸ-€ñÐr˜®9ðÓ…¬üHz`1Cñ—úì¨GË!dÊŒ8à °’"k6ùt0á«x"„¿FØ%¬uÜQdúeÇž8™[É04»=}Œ©¨ÈPóα³rAC×ér©sƧbÁ:,ÄhsÙNMM´kÇB{p˜P‘¨$ÊËcµx¢Aiú#ñï„?çlܘҎ¯‡4‡ëcnfGÜÉé6.qàxb¡q\zÀáéd:"†{yà^³9‘7gÈëHIiêaŸÉ½ßê6»Ë Ýrsäg]À=ZG3Â=AKè"è±å8kúà éà%¨<ÀÁ4þ\§À[÷IÑ`¢,Û,† ò†y]™Ê776Ô¶¨ô¡ü+ Þ¬@ýãœñ§ªA !3ްÕm{%Mcq–ïI7`ŠÏñf›i Å”[?­8M´l-4BAâ;šÖñ_ v©Wkß“¸} Õ»Ûzšßvè2Ñ =¨Ã`pŠR¹ž´Q*à™ÏÖ,î/±„¿ c&„L¶éƒ«Ú'‚>ÀÁ‘Bb ßóÄ;p:`Öž·ß¶–I}“Ýd­7±×À\ÿJþzAO³†a™íÐ=ä g[hd9Š FÉ8ÇŒòpµ*™–—'o½¶ 2EL¼à Ƥ©e¸ðsÝö2Ü€˜®´qÛ%U½Dm×%†F*î šÀt9†Ë ’>µð0)¸DâœC +mËe‚{ð¥ü©{ÀÅùÄä ¢ïäy;z˜çl9ΓxÙáPl¦Û€ò ‘Cú.7ì‘âfÔ–h›À ™`Õ?¢Íq4ñaä‘äÖ›ú€šIŒŠ†‰ÒP¤t÷b)õÑ!×¥q‰¶Ñß›”¿bx`•ºDä)]ñiª;²¦©LºÞiÝŽz7®VW1¥bZ%O=ý¨Hõâ4šŸtnž­èY1>LxhÞEÐK¯°z僠Èëp ?^Ü_ÝͦâúËÝo×_¾Þϧâa6?|Í¿ý6Û¿™Ïîð)¥ùÍ›ö7o^¹ã(z j9ön܈7Ý(?â]¼5¨U™úáa”«Ý,<Á7¦Añœy Ü‘lïñšv..Y4tviµ¦¾nóuÎ yCË”¨çÓn¸ÑX¸sƒêa4÷•Ê ½WÁ¿ÓﱊHq4=d­}Ë<í2½™¢}Jt¨Ïçž‘ÆÂ­Ë¨ÁÑ[MC÷ØŽkMï©ÊœÀ˜˜*z2rúâ?GDW¡¡h_Ég&ëŽ^K’O 3îšãLžZ6ÎŒ—ãÁé…C§fPÄU׎é…îËsN,ÜÀœó‹2Æh¥ÍµÅän6ïe-ñ½äy"ÙLÌ2}wŸ¡È&žk>!Ð;øleék=YÑÿàéýïòL£’®}´õpç3 ûv·Åø‡þK+ÏZùÃ÷hwzO´p‚²á·Oêÿp¤ äûZ¡Cî⼉³ƒk¤÷®5`‘_”Á~~}ý÷É÷ }ÒJ‘·¾²_–q³•è~~‘ètÖ“?E[ÿkžË endstream endobj 489 0 obj 2402 endobj 496 0 obj <> stream xÚYÛŽÛF}×W4¼öÀšûÆ‹íxñn€ØÙÀ  `p¨‰kŠ”y™±òIyÈä붪›’X-ifǰMMW»««NÕ)Elñ0‹Ø¢€þW³³ïÞGL$\¦lq7,‚?‚%’%‘áR$l±™½€'~µøïaYDŠÊ°OŸ~ýù{×l¶y[vMÍòzÉ~ªË¾Ì«ò÷¼/›m|÷^~ð²8xigh±¶Ì ê@0‹xdˆl÷µú\´6ïíç¿7.b*±M^´ Ë—ËŽmìæÖ¶ìn¨ Ü`ç6Ýlm›÷MÛ±¾a6/ÖãÙúuÞ³¼ªš©/´Ž¸JÈ Ø®P·p଩íT§BFg/¥¤Ž\E¬?”Fèf¿y5:Z¨,t4Ë^@7X›;FÜ!4à¾ÔDÃR@+AvÞ!l)°ÁÂ,¹\)d'RùŽJd<•TbÎrŸì®iýÙË~Ñ?Xö ¢SE 4ã£/Î…Ñ»—/!ƒ–Ö§Þªœš2 ¼ bêž  qê¾(¼oq4ßXÛª¢ª;>Ø"욟$0jÒ”'éÿ‡lp3Sq¶ ‚hà‚*›Ã³ ×)#ɪƒå¼ÚÖÖ=+Ô7ðäº «óÀ¢d¡LÍ<]éU–…J¬Èk(¥Ì+B¢úPöëfèƒòb’ø YÛ˜°Eà¡Àb¼Ú¶È(º"ç&$Qz3…9‘>F#™ÊvÝ5ô%õµß1¢ÛÜ¡ áVÊÞEÄâgè\VM 'ßø.§hàÊÚb›ƒ×B•mXs–‡W÷€¾PÔhˆ øÀ$Éd•àùçp¬c wMQB4„˜ ‘¼§ë))Y·“Ó¼Ú;>…†)}¨m2ÉF¯/_½È}ãÜÿvL«×Œ±Ð‘âQêt¾¶ÝqPhmYß¼ð*7W¯ A^§b ¤¡goÞŒæyÕ<Øöóm3ÔËñ7/žý3ßÜíʶÏn®n®®ßb€:¶^V¯/öÌ:zjÒc]tP´…’Þ«35V¿WfÜ…ßÒ MÔý©Õô¤.WظE—œ¢‰ôІx*2jŽv´*VØL%8]GrAÖÿ  eFËô€3 í’all9Û_ê\D¬9U_¤ŠLÀó0+u­,þôã⤕РÐ+ßá‰:|MÝÔ¿Û¶™c:;âÙ]n…ࡊæw~þèè6•p•ç¶ýÍ‹›« ðQá ¡›úâ:Hð=­R(§Dùž6]§¶¡"»œDŠÌ‘^ XF°ôÁúý6&Ä&»¨( Í|¼Ðª ƒ„˜Ý·rÍ]HhÞ“Ê.$ψ^Ó†1‹žÙŸ™¬9 3]ö$h„óf€F¿¤_ùf2 @Þœ¤D:8>p,òvʤúŸÙ«JÚ CFÊ80Õ5ஂèΰ±§‰8G®$ç£Tjx"Ç¢?›¨n·Úha·s‡n'j‰áFšój·%`Z?ÇH›³ýOhpGÁùÎX6ƒ«°¶\­ÁЉ²1\È䂲-ÊM^ͤ {FYï±åD<Å×ýêAŸÈìTïãPUoˆ•]–æ·ßú·s¶´]Ñ–[ÌdS›À”Ç2­ÁZÕôËfõlÎŒ r <ñÃù2%±&þP@þ¼J7y}Äë „Qö¯ˆ 15÷Ú4ÆcàÇF9hÆVó2 W"Å®uªöHO¦ô‰ô¡­„¼Î)›ŽxœfDúž @¸**ÉͺrSVyKÜs~÷^EôÔT.ßL`{\itÌçÒ³ó¹©ìSü>Ðp¥ëÂd†ŒH?QT6 AÀàÅk"Wм‘7Óq´j,Å.T0pÞTw‡LîÍ=9´5Žm8gÁÁ¤"úMPÒÃKÐñAt’)c‹V.¡ –E^MúŸªì°F>¬KhÙ±‘¨èL C&ÓÄðŠ®C“‘u°í$Ð_JüvÿÔÒh¿ó(&ëPÔ6¢ŽOvØGàN‰‹ÀhLϽcËÆ"a±Àjk—ˆ#h ô•{œøÊµ nç”C«R¢Ãyøïì§žŽ Åà›ÊbƒÐ»áZMýˆüHÒ8ê“e[—H˜ÇÃAÉÁÇ.ßA…«]c·Te °FÆDÊN&q&xÝ7öý÷#–ÇÂSœQ&éeàbãSµ`è8-1ï'ŽÁŒt$¤þ’ñü¤·{Î Ãkƒ“-jú Ò‘>Q Pœ‰Æ‚HŒ ¨›òûé¦=ô#Û¦ÍÛÝyÏ4à ;1OVl¿§¢Çï€Ø/÷´îÎûªJÃÑRædÊ+(/ãƱ `Е4hŽ.nÛê@aðaûIÇqI£ùH:Ý„êØÇ è0ò¼LZÎ ÀŽdÆŽ(ï‚‘¤ïÈ÷®8ºo›wØÀl¿@ÐRhbÿñZ¢´”Ò1pžî†íBºó¨Å–ö”î-‰ipñs:!È}§Æ–Â!…÷l(}é/ʹ£¿X¢ àÛTù‰ôqªÑ(Cf1À"ê‚ÕæË`@ ¬SáÅHq7 07ØþÝàJÌ=&œLÕl `Ýtå›/‹“©s£¤(­ã ¿™ªvÌæ]i}5Ê:zÖȃ襸tÅ*IçßÀ¢„¬ão÷•"ögƒù4Õ2`SÔPîëÂñ»ÅGˆNå)ñ#ñú첯h~‰_yˆÿqq0±kàưb3õ{Þ?¦¬š pxVðèeñi=»ó_BŸät´FÃæÝÞµ:ÙÄt‰–lÿÀåþeá‡Ã“Àb\yùñyÜÇ‘q(è© ¬kölîÃÂìåKv?ÿÖÁ½}Èëñ Øê]{î ýÄÈçÇ×}á#®$î6rò¹mz‰ýç£Ä^g=û7«ÁÖÿzý endstream endobj 497 0 obj 2610 endobj 501 0 obj <> stream xÚ•WÁrÛ6½ë+u¦µk@7‡$NzH®ÕÉ¡êdh ¶Ø’M@JÜL?ÈÙ(R&H%©lË °»Ø}x» 4ÿ4!hžÂ×[ø»›¼œOÎßD#Ì$šßN("ðCQÄPDBÌh„æÅä(Ä>žÿÕ-SB0 ú2è7eêLõÄ .{bÛ¬¼CËÄ$VðüM¶¼…$8&ÜI¿Sæ§§¥Ä”ö$4ª6]__½»Ff6ZaÔó!"Ø3:_eÁoã÷<`6¶¨§ >'E•+}®õ}®)N«jÜû€r_wÖî"qè*(wû!+Ó|³ThšË<+^MŸ†aÅCŠ9‹=ñªÎJcñQà³À“×fþ="Ë–p¢=á‹l­M­’â…/M gúb«R³®}Ù0&àEèd7Úž~™JWIª6Ë羸ˆÁ‘†+™¿ưqY‘dåÂÊ ¤¾KOQºJjô3Œ·ü¹8öyŒyЀ÷Å_ bÌšÓBð9?Go•q½I´BIš* 4KjðÛ¨Z£Ûz] t]I¹Dö°|ƒ,Æ„ÓÎbñ¼©ªÙ¬%ÒlöªÑ~Êhwâ‹£&Áâx€ •XrÖÙÌnÑâèY«zŒA ¹tòöS+³©KD}Û<–˜ó=ÿúë‘„xD·nêô|UÛQÏ øR¸y¦WȬ€uYw²uiSØÎtàkUoU}«aä ËS«ȯöÖÀðâhýåÍGKÂSß,‡¸g¶ý´iÙ8´8ZŸvsPt¼™*ÑÚÎ Ï‘³“ú€4Ås lCzs£ë[‡„ËWdÑRÊ7E©$À@êÌå¾Kc ðý&S~z±À<ä¾õä&Ë3ó`Éáb€äà±±ísù¼ ¤À, ÇysµQÀë{÷ý‹õ»ñâhªUˆ¡Ì¨ât©tZg•£— Æm7t 8hÑÛ«þ©¼€tÔ%ÂñõÓÅy]à¶àÖÈf<àb¸×™®òäÁÁb½×¾Z¹ïbº†vzq¦Z%[5›Ú'U.óÁž,ÄDÐÃÎf°gXªef  ­RŠ>Q-s ¢€ßrðFÝÙ€!ZÐGÏšIð¤™:9ÉÌHÝ ÇBƒnãz\,Ì£dæì…ÅÄwŒÅsÁ\ÁµJONuü)7y>â“0Ç‹J 6˜ž¶N=µo×ÇÓèÅÀ¦_¸™äè cÇÊì¥MôkëÀ.£ø`Ã`A€Ù~Û41é B´Áì{™,]Îýˆ |ŽÇL¢A¥üJ${R¶¹ªêz]ûÌf”aõé•‚¤Côj¯7C ¿küi•ˬƒ¸†E4ÚP쥮 óèpG¥’@áw Ý ú2€‰F ``ºI–¶”íLèçHá;ŒÌC¥P‘éÂm[­«Mž[žwýÀß.ª2ŠÆÁÜ;ø-Dá¿o®´"’£¹1…D­w]qÙ4/ý£öæ÷‹C»póåÑx#ŸBó„&ªo®™üh'Q€3ù `I3®ÐR²o1àòsª\)8túð¶"ä ¿²ÖÎ’¼éÆ6WÖÐjôþÚâÉ R­Y?oà²Î%?éËÿ—0ðÄdø´.ç89Ž¡3§ÅĽ¹Øq;”(Ÿ„œxCèÆ Y;ZMn›ÛÁë¡ð"€Yƒ:ç'žúÁe»À¥a·™ÿÐ(ŽÂÆ‹n¼ó£{±„¢IHëpym’©=Ž-”Kx=üÝÞ¢Þ»[ÔÎ5«wÖ Ö/‹ê=}ýjr?±C»ÅÖ[AÙ“qn6íó^¢ÕYM> lýÚÁ endstream endobj 502 0 obj 1462 endobj 505 0 obj <> stream xÚ}Y[oܸ~Ÿ_Án6AÆ )êš.¤è¦í¢[4°‹ FCϨ«ËD”<ž‡þ ö!}ï¯ëGJëpÆq[c}<<<×ïЂÝW‚ÝøöGüß­~·zû1d)ØÝÃJ2’%KdÀÓ,dwõêÃ׿^ßýsù>Îfñù}§û¡k˜øKd‰Ã9o?*&…·[ ž&ãnÒf¥aý^3ӷů|Ïö:ßêŽ FoÙæ„WyÏôr§@)NÅ<åõ¡Òk–7n‰!p%".c‚$ï¥àB’÷ºË+ÖB©Î°®ZO$)üøn<ì5ÛÆ¡äQ–:Üo˦¨†­f?Ô'ó¥zó†ïßû&T’«,óàhs,%P݂߾ew0âC[Uí±lvÖªE^Uö1gº;±¢µVzbu^t-;îËbÏŽeU±¢Óy¯}áÁ,ü;ÓwCÑ^ún=-ßç£ïj]oà³Ç¼+óM¥Í;OX”  5 ó_¦‚‡"œwb §ý\ì󎕽®ý ‹Á=£9ç>¾"¦k½-‡º×OýçfÀ¡·Ú]yè˶¹Ø"ÌpôämU†£¤³ðC5¿ß·[˜¢EôVvhC“:ÛUn {èÚŽøùtûé/¬kœ±[í¾ü ƒ5²Yþ-ð·ˆèÂ*jXÙ8™HŽ~lÄéCÛ±‡¡³ÑŠCõy‰PñeÊŒcœ8Û:Žï_9o®}´ÈòœîrÍâ5›¬Öyccª}°Š ŸWƒ6.ÜZ„’öRGoƒ0Ky*ƒó.‡wïfǯç}½Â4å±T×—mÊ]ÙôkÖ —ë’^_·m‡-G]îöýÅÒ8…á¢o-uÑ´f‡®,ôÅò(…%ã–Ãkfþà~<}^šæß=rØè£Söå£þ¿A˜À’Éõ ¼ˆ_/Cþþõ‹õ9”1êåxæ»=üJ"4‹y”ÌX|a€v;zªåy­Y;ô‡¡g(sy¤{¡â •eJ+Kòâp¸®ŸBlzk™Dj´²Å™ nÇ bhköNCIþÀn"ìÇñpÿ[âÃ8â(.Küýë5Û BNfK”½M c7{ƶE/-/Â3|pÔ±|ÂUD07q )‚4:‰6O_k”Á¼ÏÙXÛ‡Þ;äè}•v}ÃzÒ¾ß ™)öºÎ‘ܦGƒ¶ùïjÙ›7ßc">D“] £Õ‡Š@Žô¨aò øÖYC§/Ÿ5D•V‰Øn4òÔ?4Ÿ<¢l[!Q`>óú?#”+Ó:^=»ŒCž¼\dH\Jô®Œ¨“ˆ!yÿTh—°†0 ©l.q® è®Ã÷=hóßÂWÛÖþ‚ò"§8¢ÚPbcá©Ûúý(Î>R«KžIº ™!E7a‰È3Ås!Ùuy=§I_8|a^S•¿.Å‚€†1è±M­]0“0” ‘2ˆšæ‹Jx–P€îö“EÇ"m'%§hß©¢‹Î>„´iHÐH˜8%ðIxÂÄòŠJ}`Ô[*æAìk{Bc³¥C), …wr[žPƒjvÁÚ§'!¸¯ÏźÓ0Áp`Ç%0B€fž¾m÷+Ç¢„ïPtÙU •Ý÷  þ‹æ›´Ì¢h·Úç6*DUãâ¿¶=ºð825Ë1\´Mub`c6ø+Új¨›‘”ÙÀ¸Þ ”¼a¹ƒ#L/´&uf}îȵ~Œi+%¸á¬.äwséíhÕŒ0ÆH²ìèø`>'J&­]ñ$Tfç¾¥‘P.Ÿ°}÷Ž„N¦xjÓfB·l»Üißs†ÒW#$Q1iºÉ,äI˜Ñ•ìÔ¶é£<<|-JÝôŽç$êӌˈ.|¤iJ<Á_/æ¶8QfhÜàøUWàãQ§‹¶ÛÚ3|O[ŒBÞ¥Ô2Lç¦D¼tÚr§qþÜê¯Í2n…oÚ 8 @| £û±8|c* PöâØ'är"äŸG)>› \u›y9X¹¸@$Àã™X[w5»‘K|o $šÕ4/¼=íý60þ\`–§<ý2 ¸p®ºlî_}ÿúŒãó†AM÷Å4®9”Ìku.®ÓÑÀŽçáÈú§®k‡ÿÒÆ©""Á>•H=–oÀBçyÌ&–óÌÔòí~ õ *(¦»’À/&IR]Oxkí,UdW›*G?ÒÓ8# TBÌŒ¶ÐyíK…P°>(Z@辿\\QÄ’ŠÙ¬Qþ0”»ÆHš hQL ˆlhlùÚŽ<6Ñ, ;äŒDÀá¤j5ÊÁ‹©$1žmäæKVåOq3 ÜiÓ³miƒ”Yi<#СÇaÌ ¤¨ž‡Tê+Ô!©]…ÚñÓ`Ü“³ -Ê üR(²âhÇ^¹µlºÏwÆq„¼÷õ Ñ"SéëgìpÉE<‹ ³D³Õé!~mk®—|2ÏØ}ô|'ç‘»LW.“mºUÏlñ*Ú¦ÏK7å}ÒŒuÛR¥T’9s-6ònê&ö(%ˆ'xj6¾Sƒ3zÐgYñÁšïŠí#!f ÔÚÞ7C>Û×2w7KÛÒ°Õ´„d¶¿.ñ9,bØq¯GuùN_cp˜ÁAŠ– {¶+ Ä^HEB»=5y­=V™Ø®OO‡ª,,´'Š”gTw=ㄎN]0Aù²bj$ÔT³sË~ÏjúÔnm«ÔÛ©ºK$¥yuël!Kí,á™BÁÂñ.w¼a7·p÷•;©ç=®.3Eö°îóÌe<ˆBвöáìþÕ?t׺)ªj7%ö§ƒµÙ'L1…ƒ^Q F»…›¶­Ö×®Œž« «Nö9è¢üZ\D"dcˆ"‹ìQìyCÂB`„!Ài:sNï{i3ÂDGðOë‹™¶ÔDËt¾W²·Uw4‚…TfYk>òïV_`ŒŸ€>®¬P.1·Ö+†ó‡ju»ú´H}u¤P,öXúMªb¯§”2°Ñ`ým")õ–("–À¡„eóO&((·“4 %%r‰B1vCÞóÕˆ½„Ó@^¯AJe8þb};TqºÜìÑ.X^Õ­í: `áÂbÕ‰Õ%ì~›Žz*Vþ½Í”Nc2¹EµS^œ¦!'±ŽöÚ¡õ‚9KÛ¸ÀÍ`Ú–Um³Cëkt¡É‘Í8¶7-$.û µ>œµÉ *B"zƒ6} G**7LØ“<ŸNwôÞGÚ;0¢œµ¤x¨Ôàu •DÄKÀ‡gÛ:U)èéÔ®Zc®f=2CLHâ÷i¸| †Ú´8Øè|>eÎ ìÆ’ÑˆõÊýAÉ>Ï)ò' …÷ÀùYáqÄÚ§ýêaN±‹Y—EîÖÍjFJ,uH€Ípé´™ÿáü$yZœŸ'=–WÁ2A/Âõ·×–·´êçó_ š]w3 V/k'F>ûý'W›³o’ÌjË`ñ$œš#bþüŒ˜×ìW¿°²þW> stream xÚ…Xko¹ý®_Áu?¬½+3ó~xÓ¶Þd[ A‘µ‹ ¨Š€š¡¤Iæ¡ gìEÿRú{.G’RZ'NFâåå}ž{8·ü=>Ï<öXÌn¿áw=ûÓãìÅëùX^Í|æáÏÒ€¥¾Ï“ˆ=6³ë¿´¬ézÉŠ®-z9H6ȾQs6l$“7Ûü,å‘›{¿ˆf[K&–)„!Bë'{=ãAf­KV)¨®¡cÛn;Ö‚, ´ñÅëÈq! #¸™*ÔП&i×á09“fÝò£,ÅFUµk&kÆbêvÕõª®¥ïªm„š“VÂjD0ÉsžøZ—hKVKaÅÊóxdÊ<Ù«1bsyòµ—¨Z²ç«¬Kd ¯«ž•re0塵_Œõ 8»ïZK.MyìÓ ä€‡‰eF¯d½3eB˜ç¦ÌœíºÕ2Ö%µê˜F˺0K¸Ÿš[V{ïYɺÕ7’EØhÙóðêÍ«ûGö{ýû_ßšgPPŽqöÿRï{–$Œûv]ùˆléþ Æ¥’Ãå#/wö°‡‡woµ¢½,Ïú#x›ì´ÀKüé¼à ãqhJ}z±¯›gKE¥¦¤NÝÇQ l‰¾[·èþ’»ÑMâƒø{s)󨃌Uù½µœòÜ7—,°«¤šîÇöv¨8²úZT²-,§Ñ0AhîÜ1´"û´ ßç©uü—jYÕÕ°cÙË9ºyu½›ê­Zo¨èì íÌÊJ }µ4F~Æ£ÜT8H˜Ú©A6œ=Tm!ÙÛÒ €rC‡‡M‚µr°¢žgº&N"]ÿÉ‚@µæIÇ–bK¡$S²·#Mx–[Ò½ ͸Ä\Ÿ³FØXà%< M‘¢%u;æž«ºfŸ¼jµ#仫½[n±øX²yÈ=˽¿ÛË9÷-cRDkÕR„O,§‚v`ç¥Ô°=M 71‘´p[Ò YvÃF×ÄY`ã€'©¹Cö‹kµ¸aê(%½«¨Q®Ã™(bªä9ün,ðãH~Rúd/ç:õÆ™4õñÉ`;RÙ8aÖb²bèE¶Ý¸ÞÞ¢ÛJ¤wظQ òÖ²²c!KÌõz `ÙTõ4ªŠh×øfÛw[±¶ -ðx™Û‘»:‚0áIlŠü¢XÝMs˜´·ÒAÔL'ñg£U E ;íâ¡ ,+»®cë¾S á¸%÷â3Ÿ¶ê»F›ÔÕåÜ „TAO±X÷¢QLm4Ä‚Q U;êìüJ·ªu½¬åÀDZ.iM)•³Î/}¡ä…0P?ÐØ8ú¼÷Þï8?ÂÙ#áâ÷2ù¦„"d¤dö8SW8¨Øç±’Ôm[2k)íú0§š†Ž§ P݈~Õ'ŠJ8¤qÌ£ØÜ6Ò­ªJÙOîïlÛÛŽ£a’Ð9oTgvÅ^À£ìÌ. —c1°ü×A½,t8^œ¡‡fÑdšÎ±n¬^¨ ZB¶zÅ­Èu ‚‡ÀWµkÁ-©µä|m+"šs௠| «Q˜›Ç£=* ¢Ìç€tSFÒÜëh¦6”Ä!œ#3eÛKœ6NýST€€¬jà¯=¶2Â.CÐ†Ó $Fi,Ë]Ä'â Í®ì«HÁ‚TK£@¸K£ýЖa¿”ö‘)OóÌÑtƒòq™°Ñ¡ð#‹¦«€ï?þˆDÙzb:¦ ½-ÝùAådH9ó%å”%c]ö¢¶kÒG.1„L!±S”˪ÅÀ´+Da¦Â¡ÊÄcũ腧8£€£¨Çû+ŸrøÈAêE–F$Ah ÌÿÝf°~ÌC/·äŸ¿ì(ª†Ñ˜ªèÖúÙmõE«2}LM'öÎ’tXªži =ˆñ’é"µÅ!øûÛ$ê2O¬ rºÚªJ}®UÀ‹íö²(©³÷îp ÌpCƒæî[ã —õXJvU4e]µ’o® "t.®_¶øh9Pæ/lÀÃì¶åõæ‚,î-˜{¶ð˪ñ“¢ùÙ‘Ö(lK×US êL6E%'SYL÷ë”ImÈ´ÊŸ\ñ$<™Zž¹«;™BF×ãÉ`z®‹9±žý€ç§üsqãn 3ôÞ¼¹k¾i<ÁÏ‹ì79œºI`; 7P/j{ÍŠ®iôe¿²'3)D %©ÔØìP7ÛíÝÝ¡îîî§Ýo°™í3¾¸žü 7gqñR¥ÁQgµb‹ëï[o˜ëT^Óð(O?½ƾe¾«;ÀMÍK££ì¿Ýõð—&Çõ¡ßŸƒ¤©u"ùJUjvð­,tŸïoÞÖ-Gö.y!v¤™¥õÍû“6(^\_s¹ü@Õæ’5âœ^š[j?‡þ› Z\/næÇïÀÅœo¶B)úæù<'+ŽÏ{;N÷«{¸¦Í‹£>!† CÂØ[ÑŽ¢Þ›Fûn'ÙEqbÖçÿ½þnöyF´’ædmâÆ“§Íœ$ŸO‡=›Ù{ÖB×a.„ endstream endobj 512 0 obj 2317 endobj 515 0 obj <> stream xÚ•YÛŽÛÈ}Ÿ¯èø!±³š6»Ù¼9F€xáݰƒµ=`ƒCµ$Ú)ó2ZmÊ‹¿1§š¤Ä¢FkÇWJ]]]}êvŠã‰›ý•'n2üó3þ®¯^Ü\=ýɈXâfu¥„‡ßJDZDJË81âf{õX ¿ž>/µY×ZÑn¬øÒÙú …ø`E×Xaû¥ÛÇ·OÄÍRúîÕ?Þ¿|w#–•mÊÿ¶On>±#<-Ã$˜QÛ¶«K‘â¡éŠV4¶•³a¢¥IB¶³·fbÄ_æ›"-½$ž÷ζunï­HË¥ØÕyÙŠªkÝK»mzWX‘Uek˶93$T@)a:ŽM[eŸ?ºÝ·mX(÷þg¾j” ܪ*‹ƒK‹vS5ÃwíaË[ÀPŠâÍíFK ©í—.§0èÛ÷ÓŸ c¤™Å—…(»}é|U6¶f÷óB4Äœ»Þ¤%“ *.wï*&“„2D/›Êì›Þ²âÞ´LâèdW&(Šåý æºÑÈMÈöì oP UWÀˆD.x¸h#ØFpCÕ‰m¾Þ´bÏbÑK¤VL8[é•;šBéæl[¡TŠÙÖC‚ð*<ÝÃ`f0@l×»jÿ0d&1sYQÝ}²Y‹’0g~>rv”ªÊÌÊc~.gÀF5m*¿oÄ†Ë ­éä© !±¬\¼º,Xˆf—ÖäA¶çv™mš¼=P•Ø×¹s/-Uµ“â—¢kG«àGÜ¢ÒÕÓzö¾ŽO÷AÛØ¢I.E¾Ýv‹DL©‘Ð9í&§¹®pÞf»»4ûLçòº'2 c¦”×E‚ZqP1(‡*pÏê¦0¿çw¼F¨ƒ|ÿBØf—醱IÐ4<}Ù¦‰zfÓÆ‚6U«7%„!è'4„LT¡L‚~߬?ßëF™iÜíÞR݇QYA…ÍU,„9GÅÇÀB°M4ñjB|z*pVQuàK­C&ÔˆO(G*–ùŠû ,ä Wh|4A°¼ÕZ¢ÂOÅîù:‚¡=Ÿ~uŒ†÷Lö5¬ªŸ»î¯(mó±Za¾ëV«9·ÒQ MÜ“+)å®ÚuE:L˽ÑT[»©öXïEÓ±?°šeG²#å]ç%9yÁm‘`˜ôõ퓳!øÁ§/‡ã^œ…{ÞzcJ–‰TÊŠˆBÅÓå…(A¥2ÛLe6CÛV¼ÏãuSIÏð£¬x6Ö^Œzkrs?ÍÀ,æ ÛÁT¤º« ñáíår¬"´ºõ[ÅXko¶ClR""mš*ËQ6–¢Î›ÏïW5i´—>˜Ý,îhŤÓ#Å>/Š¡é*Œœ¬¨ÈÜÕ± )æ¤;ŒÌTŽ ZÚÓHê žJ¥ô¶®74G‰7/¸bMýÇc[þ5Ÿ÷ÍÖ‡*R§yÓWQ§~F¢}z§Ä÷ /ðj›6VG»Ð¾®»Úñe|DÑ"²¦ÁÊA†ëÜ‹M·¶ãÈf’9¬A–® Aj%½'êöÃH‚Yã._¯-‡p ¹yñÐ(¨L8nmª~džEnB1‘sĻʙŠT]Aoi-ŸþbÉÎc•[E¾ô‚é24êOn?Q>1éˆ;°k‹¬qå4ÌâX‚ò.Ld·š òͨŸÃ‰†òä´¼§!JШ´ ƒùK:Ï•Ñ ë®¿Õ2oÐòà­=FD;V¶;´“žèßÙÒ~mŸ¹+ý°OWCËYºë Œ38•$ÖȧÖ9~L/Qs·ëcACï‡ÁެgÚ.ÒØO亢÷uU®g±Nï§0§O}àÝذuTg!Òv³]å<5軞àÐMÜå6ð• \÷õŽ3UJý£Êä€kÔ˜ †(f2¶}0 Ô©–1ïƒ=ÓU³1ý\`²8LRô§#²N/rèÕef§ÑrpÞunƒa¤Fq4#/3ª†ãt7¿Q.Ñ&G¶}{áo·à›„YÖ‡(ºÒ*ß MHNe±r®w<æåÍQÆ×ʽ;ȶWîÇô<>Æ¢¸ Œ7{„ÀñÙÇc/KO›«ýLëôʾqì 0ÑÙÑÓ“#£Åø€Þ61ÿp|‚‚þìãóìtb‹jOØÂ~ß(ÜcÌÄÔñφÞ9§e—ƒi´ïºWà‘]„Ž`ŸýíÕ—+z¤•(!kC‡Ó“çÌì%ÆÏ'‰qÏæêƒ(¡ëº' endstream endobj 516 0 obj 2544 endobj 520 0 obj <> stream xÚ•XY7~ׯàzdf£¡›W'œE€p<‹mLÿ ~—Ýf$½®ñ{´€üò Ö’µ.‚ëI`¥òo6õª)ù­5¡M*Éi¢"›Æ.vAží·Ën©`IB•é6MEî ¨!Û¾ Þ±'Näe*|¡mKZíHÌw$¾š% ;ÏkÎr*»B¶rAYæoÒtÝzºs3:ðãfIþèË„¦¥eDCPÈX¯ %è.¤½[Ö?C蔜SÎávN³Üßž‚ûJ½¬ëšÉ\Ñ,0¯7À€ç%â¸ej[›>¨\’ªÌß¿q4+;ð Ð<̦ʄ˗’´ÈýmTú•e±@ÅYŽ4Þ•¤Ð@. š1:ŸÃ™*Ðw‡‰Žé´ªKH£›úßÀÂ%„Ïf™å%:ÃÀ¹ôµuŠPâ ²¢;VP£“@Ø:N 3ú;˜á(ïˆ6»š]_¨Ì<ñáSâ`{ì… Hi.™/ãÊ–­ä›û›^· WKŸ"ãG£+»Ñ;žtûjƒÈí²kBüî¢*Ïñ¢þõ  ìÎÆÄYt”ü™IšaJÛ c³K‹ÔEÍ0¥JûÆeë¢Ñø? =ÃeRF@QÈÃÓ_ê¦Ü4zÄÀw~Ï[°k{Íüϲ6-Ôƒ5:¿îÚC½5aµä4O‚žJc*ð*Â’Ø_¢ØÃÐÓq¡f‰ÂÂy%RÖë8—Y!±8[÷¿ù:¼z&mèoHæ£Àvˆ\Å`rIº¢êl¶LaÝM­.Ì <+°ßzòo°zÜÞ:^Íûnu™ù¢‘pTV¡™çÁþAª&)zí¸ D ö±5>@ǵ;Ïqû1ÜΨÌCõØ“IUÏà F€›ÃD jõÊìs.Ž Æ[¹ô™]!mÈ3]·¾Â–ü£ôÿª-<É"‰°ûr¦pnõöÃîÉ Zâ¦o:]š8¤êÌÐi-XJ™ô¥F{Ó<“ûS,|ܦ†ºŒ ân£b¾äå™/ðÓ¯o_ÿƼ Rø»óž‘Œ cÛ^Ü Â`A*,ëri›˜ÙžÈ(`¶âÎcO¦ÜŒæKõ?õñ”ü4FódAó‡ dÕõXÂ"©˜8s‰G0~Cïò5B›1uû"É$™º¦­í¤ºíõz°‘æ×X“ås³fX(ÁM˜åúdާÚOs£G¬îõ%‚a hƒÀʬ:H08Éì®+ Ä¥¾œyÒ«uc†—Ãð©RZ®×®­x$z»?#‡Ú=ÅáÎ ¯Û²ÙT†¼(WUí”._Ä÷Ý S|Ý×íˆo 3Ð.s¨—¡„®|8æ`2ËCð«98ËèÕ÷18a4q¾ßØ1k×] ZäX}¡e–PÉ……¿|I~DxQ?ÂÜ5š'|dÀT€s†¾¿ÌZ»ÍkÓTƒc4 0œ¼ç±~¬¨\îõƒÉ`ÒwAÌ΄«}k¥m™Æ‡éÃׯîÁ´Bûfð‚òìôemž÷†~µzf¬×··oíî÷_íÍp âëçе¡*¡þÿÄ{X¸ _N‡óÉW(n¼ˆ°-£{LÌX@@çÎ;Ô; aø4Ì®ì5OaO?BMƒÄœ]Áüãü²Sgä”|žÍÆÏ³ëÙ5‰/'ÒJ­8¨ñ^o†å‡{˜rfW‘'gWV1j<±Kå” yPøßx_À8 ÒÃ~o @´‡31úgý<.@±JFr`ÚïЩ‘ÈÈÚÊØÙ Xk =Mw'îݘ¥ð$Ø´•û)€›—}í¹›Ôwê5êvüÂܰ‰KÞÂ÷–t÷áûŽó,…W÷9~ßuMŒJ¡J±{êêƒÕüŒ_ {’—KÝÿÃÞSû@s‹´äF ÷å Ã9ôi.åY†sÑ©Ž$œïù×®7#Ûx.8'õ$‚sb§dãßcY@¶Òô=yõмxÝ÷èÒµ±¡±*ìUÉ縿·ÁbÝW¦­šƒ`’2ŽØQl®›Áœà®‹‹teð²Î‹“S,VÅ2ISuÌÈ EhOõñTR©Ä]2%®œñ.>Ûá\ÝÆ#*˜®D*!ùî;’žS'%M” Ô9Yæ—û=þç ÄNÿ»äýìúpÚ;ö~#88=9&*Fïøû£á­¥·VïÏU$Æá‰­BÖ„™ p~Ht9õJ"ÀÉʼn¹¡YGÛF:»²CögxæêGCÒ]#Ï[2GçÀ•\vÊ “þÿÜÈáµ›²Ë¦×í£nêÊš{»SmM?£öõÝAsBn˜Äáº\MpÒ¶ëý2'ÍDÉ$Zà°°tX\-'óó?¹ ¼×à.¿d~b„oCåv¿€pí‹?VŒfÊYqXïìð‘$ ö¡ eÁ«ýSä¿à G~ÑíF7;ÓPîÆ)HÐ.ô >yÿÍäÓ—¸“hmʸ·J¬™±ÿ|Dìe–“?H ºþ\6E$ endstream endobj 521 0 obj 2229 endobj 524 0 obj <> stream xÚWÛrÛ6}×WlýБÆ•ÕÍC\%ÍL2µy(;š‚,&¼È$eÙíôƒò—]€”dRâVK .»gÏ.@ “Õ€Â$Á¯Wø3x1œ½”“Ù€Å?>Ÿq„&ù`ÝçŸãɧ9”/T›9î¸pÂC3^éfYÐTKý£;Õ焆ڃ‘Œ(ÊìXZ4î¨`DPnGó8-"3âê&9dWð¶ïþø3:vrFváßî£$¤[ïÏÎà•n`7ñu\kˆ“D×5,â*Îu£«fU™CRæy\L!K í"RJ|ºå*¨o³Åb4Ò÷q¾Èt=]´«ßàbHò©‰†­#Æ…èØ%M…‰ñ6˜é ¢áwë¥Çàz¥ŠTù;1íbÂzØ>Ev‚ƒ±U2$>{LÐ{O!- $étª³4O=…Yši(gP7eòÙRèB‰(¶ÅºÓISVçvþóvÙUÛ×3’‡D0îP¡!Wí24 ¯£áÑšä3ÛMšûæèd9:ÞÇ câi|Ñ€„LäK˜cl«¦zèí'ýÝÙ;®‘Ð,­çÐÌQeQ Éi‰‰TÚž*k]Ý銸¨^€^;¨õ]lÑ8î‘åôúª@•Ÿ¸°ÊG‡ÃØõ§“ i ІÑñɦoY»=‹¸®MO_àRøDqær‘iÌë8Ë@ß§u“7P•«.[™Æ4æM +ý¥Â„½.— ænÀ}"8w7H 4‹\/‹dnÄ[è”…®ó{¥a›* šR@ÅîñÎ|¸ØÏûåR£ní÷O†zbÛ†† Ô#!ß­Äv2Ñ÷:Aqÿ<~3žŒáåû_ß¶ÞõADà!“žëèëÖQ£ 0iÓRhDuñáw›¹'†çre8^.Œâ¥Ô÷=d±§[S}ãÄVÇ…®°X&ŸuC>Úˆ,kƒC›@Öé_ÚfžÖ.ºç!‹Þ >-kX˜•U¢!_fMjºÛÖ¸ÝkS’й UyƒÛU²P Ý Êå—ig„GÙB†exãJ·„DFAÏfi’ê"ypu ¤"þ×d0½ïßYÐ6ïÊ,MΟwN\-ìs44Ôï ­PD ¶GírÒhø¸Ø‘k}cJ“„;ýº˜Ú^w®ˆ|oªïšØ7ŽJ érû^7Uªï´Í¦EeNl›Ÿ(<“i6{MV4ºÀ:˜<”H¨ÚÁ´]Ñ·«£a›P=‹x ‘.ï`¡æ¾Dg·bNâK@4DkPh›È½ˆ§6xß–³þÑÁ=I˜è‰öô73^¯s_WUY¹ŠçJ i»‚Lp&œŸÃÑåvÝŽL–üÕTò[lï½hgÞâ}Õã通³Ñ3¦b”X+xûðáòͳgxþu¨.wxÉWÊÛOÝø l'4Ф`µTxUØ1Ó^7ÈJR§‰6mÍv®iͳöuS qß6¾Û)Iºk˜ {F<¶ÁÇʳn¾ÞÌ}Ø´¬³v~×îìXÛÒHñÅÌ—>ñÚ4ZS|'¦,üVÚã3±3ͬ;m¨±Ëð;Ï_¿ÜLÓŒø¡±Ö÷˜m‹Z3ÛëçíŒõšùà#ˆõ/>H õ endstream endobj 525 0 obj 1425 endobj 528 0 obj <> stream xÚ[ݮ㶾?OÁ»$­W%ê/) t‹¦Ø6A’æA½Ñ‘i[YYrôs¼.ÐêE O‘Gê7¤¤Ã¡ímÒ¶I½á̈œßo†L(Ï¡x¬ð·?ã¯ýÃëLJO¿P"ñ¸{"Ä¥È"‘É(È %‹ù?½§¾¯äçŸ<þÀˆÃ(H‹d%þ—·žæQÙº> }9ia‘:#ãÓ/b!Cok© •¥†ê«nE·ãA‹ª;ž튔ª Fÿ¾/¢nA_‚ÓE rN\’@±ïô ÆNü0á[½.·u»·2´Ø–c)v}w¥ø©ÑŸ‹³‡Ò•«¢™Üg¶Ë æ‡Òôµ½ÆÁ¦^Œ_]?ã+,ÊW®¡;²0`Ê(ÎÝë@°SGQ %£z$*Q⯮m.bûÌŽÌúöã·ŸÜö÷8 }î€(_…A˜ÅÏÎI’BJ.f„‡_)M"¬Ã$c”‹Öȧ¥ (m<”p¾zÇ ¨â +R&b—iÇFîh!ʳ dž]®_tþ¤¸â³G[åΩÂ<Ȥb´Ý«zÔ}9v°h×É¢·7¨ò0(²äÆïo.ïùŸú𯷀 í™›žÈø»þùVKáIÉ¿Ñ;µºÒÃPrgIÂÂ׎aUôR¾ÞË}ÝjÂq%'d”Ï~±)¶ÔÛAÍ’ÛÛê€ï-v[o°¥pèø¾ô(‹ÑnxÒwÝA&ÀŒ_Œ˜ùÝFoëÁ ìtÐ$1%"E¡øëkqÒ½¯…ЯªµÁk=’%;jœwÉŸë¾k©^Ž“r ’‘^ºeÓfûw¾™(OŒ2¶WvGß„)¾Þ‚)j2ÜuÝt‰ö@—3&|²Ñ> “ė𕤄.]Pc3tb(/ zY0P sΞ’É“—5jÁJÁ#ZQYV]Æ^Æ”(u²`ô{šqú . òœQÑœ5 ÓAH¸Ññõ,à+/Ô‘ŠFœMJñÕkñ³ýÖÏ~¶¸_ó)ED\Ò{ s4r[aj#ºÈ9ûêC+³-¼<£¡ vµ­Õ›¹O¶ùDï~ªjB”÷fjh­¸üï€ìѽ¢§l¶ÿ»Ÿ#dïI0@Þk}US3ê’¡õÖ‰4*wæw'2qQú5›.«m/mi.›Æ¯ØBÂéÏwg‘8h\Ú_4ŠDwå±Q8Îe·÷Ú÷0Heêïç©©ÛmCIjF¬˜Ú±n–ÖÁ/Éq®’¤ÊÒ g«ÀS Ðþ¬ŸËy_i=ÏöÆÅi6s ܼ$‰ÒÌ\†iæ}ôoJ—ì‘ †³S–[˜".¤É Š?á-8ÍÎû©‡©¢Rº›šÍ‚ÖýY l3ÉøÏ ô”~{«|¥º‚s…ìc$\y”1‚ÇĞǙk¾å7#2Ëãó,t¢ª3 õ]Æ:Œo?±¹JÁˆÌ…dͶáöŠ ÇW"õv…¹æŽ-4RØqÂÎðÿz¯F¤ÐbbάìÐʧÍ¢÷4 j¦ÿu­0Zu–»~<€PŽåF$LvƒO—Ñ¿Ê*dæœq/ÍÐSM÷I§Sßzº¦€æ8š‰e¨„1?רu˨¿ p@qrW÷(ƒ¹6ëuƒ¾Õ°„©' JIN a˜áˆD·!£ÐÝÌåTWeCSÐY³Iv¥YÂñ ÜË'Ô4ÓDÎ×Zdõ×_~ýÚhÓ$zˆå•ÆTÄ;i³°Áã|âWds)Ÿ{ #/ð8U”Ô€J\j®0´³YÄ Ð?Üé´á…C}¾™de´”^’¥¯9ËÌos8äÜ45à-“ Зº4ƒv}¹'Dp5¤Ž *«kúCM™voÜê¡ÙÉcX/õà5fæ~Ǧh4Ц¹œëÎJÿ&£+f>N­ð‚½44ñ!ÄcŽt1ДßÑÐ6æ¢ÏâÈ5ª2ä–Ô;57¼Ê¯s¶]…éš}…gùJöRØ×ZMA󰿥ä,4’.¯9#G¡a(N„fDI|I1~EýcÆxx«JÂnî:RœØwuj€tï_Çå9ªËsOõ<õì¯MàÓÎU¶[ «¯D”œ…Ùªš3¿ÔÄŠ&“.¹™ÓxW¢iYºTW~ òŒÑø~@cPdw&fX1÷lhS ±º¢ž“WR6É·»RÓ-ïyÆ—YóòüE—l>0ÏQ¿»Ó¨…¦᪠Êä Q+×0)éÒY‡ >3aàImËé÷ÓQ̨.äH{3Ä¡¹™iÛ% êÌŽžÅ c]½[î×Ê¥¥½qììèÊÝk4Üt«U¯cÂèn³©(ÙýTö»ß¿ý8 ïaü•°^9Þ¼ÙË‘Ð]ê5éòAZTÉÅšá›n‡‰†FÚ+~4 —üìO–èm–K½{íªDWÎÕaöåÞf…üøºçprùJÒ·Jf‡+‘±ërïe¾ñì_•“q޲™®.%ÚÚ\2²g>“r1ÚŽÔ(9ý¤½©ö|³á2À7¡w3ñÂ,†ÿ+N|6:+ýÛHù=ÆHž…·GÔyXÇ™yÆÁ?fWšGah°îÀ«$É•ÿ^ø3[§dg‡¾ˆ¥»ÑDžSÞŸX1ˆ”fÊ 1Ÿ¿¢T¡¡w×7W¶z‰¹Œ—þµÍR›@jn3Xòí[›ùª’ær‹ΗjkWÖ›A§íÉ–G+*òc°`‘P¶64Ï~2NÉ®ìÐèz*Ò†\ì²1ØÌ´‡6H¼‹ÅJr>óV‰©\^\ì¸û~K¾¯rjF;K»îìcR7¶uãêP)4 ”ÝòGó¼s»¼¹õ²-‰¼-]͇©§yIýûLiÌrX~à’˜!ßù\¿:‘)¼•³ ¶mD˹ïKzÚÔãPfzº¥LÖ;Sê'š"êÚ\'Ïן^RTôÔ,áö{Ì<äsØÕ”=¾æ}ô|Driô(‚fS| Lóa1ÒÁ–_ $’ÎBòD#kûjg>#Zci¤ŠÞRº\4îoôüða[WãKµêv7Ûp€à„Ë €_U½Hiø ½ÔJ­ßrÉ4\×€ZhÐ0›ãä§Ñ¨ç1£®·æ ŒÁ’×é.4 ÛeX™W,\7QfÞ0¸äˆ˜©žGê-Íí^†ÆºÌ3¼ùÙ¬¨¦a쎴ý@ü…^-ã´½Üx” ªÃ€Ü›QséNˆýÎÓC•5:¬Mýô©=¸9÷%øÍê0[ÀaŸ(aUÊ«EæqrdŸ¿ié9@e¶f0¤ÿâ£È ÆðèCŠ4JA_¶ƒ8Ü}jNS¼xMA·^¾Iºˆ]³Ò0¨$H¢¡Zz»ܵ·iÈ‘H z´y`¼Î¯1!G*e×aydì¢eÉwÉ ZHw(ÎòË™½œ+iˆÌNK“! r³¿ ½=&¨MW[ÜÜȪyøë^e:,âÜ—óܘÓãôÓü<Äô–f’2¾Ϥi{Y°óZ—87WŽðËúädyÈ7ïþ#¡û‡¥¬›  ùŸWŽP¼¢÷˜‰¨Žæ_Y ßËÏ\4‰ ½Ÿ XÇøiié×áaGÿ¢†“óõG‘ÙI^}Úýr†£.?èfÑ~ÂÿÃúKÒ»ÆÒÏ¿½¯Óóï0L°žÑK%÷åsD¨‚‡ÅWe;Ù›:lø^Y!í‹´#ØŸ?¼þíÃô“V²‚v›Âí_~…f›–bùó ÅÂsxø^´õ_P‰” endstream endobj 529 0 obj 4111 endobj 532 0 obj <> stream xÚXkoÛ8ýî_ÁÍ~Øt&aõ~dÛ¶ÁtP -¶‹Áb2(h‰ŽÕÊ¢+JñƒýAû/÷\Òr$ʬƒ$´xyyïá¹êÚãa˜±å~á±e±¸}ý¿‹WËÅó×!ó1½^øÌÃÏÒ€¥¾Ï“”-·‹K-ÛÇgË/§Ù,ã±?-kU]kÖmä–‰ºf+Q|ål¼ÈOî¥ãUËM¥Ù®•c©Àƒîp²ûdëÀy˜MæeÓi&&ÛVµ¬jȶ­Ê²–L­Í7µ“­è*Õ°u«¶¬–b¬3òžOu>VÍûÒëŽíDÛ j Õt¢jdû·ñò8L¸ïO£y@íG9A=B5ÉóA¨€¹·“å`7=\ -¯Ø~SvP=ëuH¬TÍdã €U6ÖÙ±ýD"xšåc Ñtk,úOâ±ÌmU+aP…“MÃ,á¡N™nyOÓÈÝt#ê5LYL«&KÒˆ‡ñÄ“=ë[É@œä=Í4åIt$“„É¿J•¬•B«FÅ)¡?/;„·Õæcrዞ‡cqr¤m9û—l7bg3A»#¥+ËÒôüuäDVäÇŽ ÖC"æýåý3»ÊÇ(KU¬ 0Ãn¦#ߢÈ(Án¾Y0Y°Z´P@ÿ,‹> ž»V4Z4œ½;Ü}x þIí00òy”Œ—vL÷»ÂV @¯GzôÓêO  ³|kû¿ ‰cg•…f_áÏzÂ2DC%EUÓiU8Ô¶’CÔâˆ\cX–YÓ²1é¥Bò™pÙÀå<¯Ù7N*L…ÇÿžÎ&<šì †ÅÐú;ÐQZLÓɦïÕrýyì‚ÏŸ³Ÿewj˜( „ÅSLiÛßj»MÉè\QÊ)½nàÂnws3ãææÖ.~‹µìxŠ÷—ÖòàþÙ ô?yìŸt"¡Þ_þeXúŒÍœ žÆÁIž>­ìú¶aþL7jSŒì>ÈþÇ™sô^ñ“?]{˜íf1ìK&ûÈŸÆWu¥7Ck×H›6:5éÄu¿²å®Ö4†éDë ÍÛ'mP|yærõ™ØvåªEqЇTì|†˜²QE¼:=ëµû„ª=™XÅÜŸáñª¯êÝÁ·^¶&IáLP¥AÃÒÚ{´…ÔÍiö©©(źÚCTÙÄwÕS /GeCËLËûiùú:£’³á uM‚óø~06ZK_ÄÜŒï//´¬<ûÁ‚µúâ ~Äã$œh·ê^¼`{ÓKg_² ztÚù[¯PÄHè½M‰é/ï=ÏsÒäeÛ¬dKíÔ+Ü?ô…kõç~»X}#ߪýøGŠî9¿rg¸e[—5ºí —Ê“ä<|wÚ{ƒáG©ûšzW O \Ó$gflŠ#™2ÞÄ:Vs”÷î`é6 À A9Oæœ6N=YõJ”ާhi±fû¾Eé4GAíùZõ!Ž›ù´ a’Ÿú\P°ãVÕö y+»ru†A„b?õÐÍ8A e fÑ# ¤uôFõ&ÕàÖ†; µŠäêñŽ×ZÐa„ý]ºÊÒÿj €vŒÊ Ñ1!F ñô¸[¾}º¨Îh>"L#wƒ_¤i0ÍÑëŠ`'›ËªE@Áì«èþfB µ/²Ýà÷óν:¢sì™ÉJjxà,µºC'¾‚ˆ‚}ľjõûºöû™ÏótJkkÙú’øÕûÍ=V?A˜f®U·h ÌFìöj"º# hVÑØ”ðµQ{ºIÚIWwŒž5Í]Ý8œ‡ª5{uONµræ :W?;ã ­ý|ôGígθ^g3Þâ²þ0ÎÕ@@l“¶böp’éõ iãŸw·oÞ ¦7¥»ï¡£ž“P±RÖÕŠÞ¤HËë}URO¯ ¤px[¨ºß64ÑmèÝH#gúÑY‡ÙŒƒ«ƒ•ÿlÌÿl╊ [޾<›2 (ñ![¿Ç‘ÉqÖ5ÄfÞŸ–'E»¦£\.Ì-‚ÆÃ0cõ"ŽúWØÓŠý™c¨q<6s¿œF>ÚkÅi|´ãévrÏ‹1ŸoUÌEþÇÙcÈ‘iØ't ìhzQM£u×VGvNlòýÏç?,¾-hH3iNÖ&ôjì4òŒ™Vbøþ$1¬Ù,~a tý‚yT/ endstream endobj 533 0 obj 2033 endobj 536 0 obj <> stream xÚ•WÛrÛ6}×WlÝ™Vnlï®§3©c§é´‰•éCÕñ@$d±I™€ì¨~P_ú]”D€R’:w»go‡&Ï# “½Æÿ£ï'£‹[bÀd>b@ñƒˆCÄ8‰&Åh ÝÏÅÜVuz!áq-ë è j¹ZŠT6_ÖÕ3äesTºJÿ-fKIN'¿[¦)'aX¦sd½Ê„–ÓqUç÷hìÌXœž~ëcNx¹¾Ý-ðú½obV­µñp&A~éZËÌu%Œ8¡IlYJÚÕœ¼5f.áÄ|hMâA–ÙràOÀÈÀ›wë²çÌs®[/¦ãé騼DÔÞÿüêåä²Jªò`êu]‚p/ð (s¯¨¥Z/5(©qyŒx”€¸çà FIB)'uË' ¢Ì`U祆XŒ­”ÏmŠ´RËR«#”’ˆÚ¹nlÜ7rßhOÇoC‚„bÜáNûo÷yL1Ì=ô©Ðé¦côFi(6êq¹Z]^~/²&—_¬§§ð—k%¢„ÑØûŒwi¢Þt9”u]ÕÊU-±+%÷Ôêuu$kò¼ÚÀ¬š?!‘ë®,ÎÙ@ÖKHÀØq€xB<Æ? ëª|’µÊ«òJ,!ŒyGPš‰ÌÔ@gbIÂüà íoþRø×1ì'1be—×öçd:ÕuW»à`ØsʽùýáÝ'" Û=‘êµX:æÚ/ïÍ—ÇRëG1¦#ú¼ÜúaŒ€ÇGs낚|*·7R¹ÒÇóêû‰¸›Ökcì\,—0¯ê¦*lø~Üܽ}ó⎲Ϊ›jß‹HÀÙáTßü¿NðyD<Î?.ƽ£pyIˆqîK¥3D];^bmê·0ê¬G/ ÚÛ^Uå×}# '^dIhƒb_„Ql&Ï’yͲªqm´·úέ çBZ:¸¤Îf‡½d såAÌ5&ï(óò¡á²ï±¤,¢XuüâE"Âc /$a›¤€„Ä'«g‰ÀÆíŽ—ßa!ÝIeøÂK¥ª4:Ç%ƒÓ@‹¼”\~àŽ}Ó³ÓÔÝ9š÷cCj' 9ŒçµíöS)¡š·,E>®óZf_™ïî&o,§q¦˜üõ”­ôrÊŽœþsb‚%iÖvlûñd „Ä÷lv—6 we7¸4œS-·* WøW´;¸y®7+ ¡:º³”J£Di.£Ÿ>*t¿4ÓªX‰º!i`aÀ=âG–èÄ\˜«3Èõö¦…°qÃ][:v°“èYÏÍv=Rí=ÀÅÖ—®V²\.xT “ÿ–HûÚjkhTÍÜÂѶ+]>^™|$ŸÇ$vØTkLƒÁ1Éda†/z)3g¬pÜ(M±=Áô]!µéòy]ØõEa¶É€kÇDØ£^»Ý¾­ŽËËëVû *C—Æé¸ Ä„0¤Ö G©ß£dù©Ã[Õ!M`ëËaZÝ ¬bÆBDç8mOpOôˆFŽì^è]â²’eÞrµh&ÎÉR¦¦™Í0ÚÎÂc%k䔃Ï€8lb‡äõÞšŽ@œÍîM¥£7“]Š\Ä'A€°šW5sÞcXŽŸ:GØ=<¶²æ´ÍÛWr·½=lV³»=ËNô}ˆ|ÛáÛËÜ»¾¼­»sçÇ~Oy8.|‘°m½-|òÇñò^r(JdÀkFï¼5@_'°>üùÛÑãÈÍ“(1Þ†ØTûmÜl%¶Ÿ÷[Åè(ÑÖwç/Ç endstream endobj 537 0 obj 1543 endobj 540 0 obj <> stream xÚ•XÛ’Û¸}×Wtæ!™‰50qámâÝ{½Ù­Ú¤Ê¥ò¢*EbF´)R&¨Ñ*©|PòàÈ×å”F)ÙÞqy"ÝÀ9Ý 4ÛNšåøõgüœ¼žM^þ¨(a!Í&œüã й`Iªh¶š\Óà'_UYkftû¤Ûùõüfúülc†OÖ™1öÉüæO7³§1¢T0•F^Œ—/éoºkKý¤)«*j›­¡‡¶YQ·Ôdº&ÿH]¶¨ð¶.h½éìó•5>Ý'‚‰4º¿ŸýBFwŒè¯MWæ2ë¥4´mÚ†>lLG>iÄÇ_mËúцˆ Òd®†žtމSÚ.Ë| gT”…}çÊp–¯×XÂÏÝ>èBç°ú8XHG[¸÷Ë=5‹a(k5UÚ˜[l¤¦¼Y­³Ö"ĆÎBÎ|4V;¬e½¾»{·ÑíŽ>¹ßßÁEÍÜx~}et… ôÇž‡ÿÕ&gaÀ=çÀø•³ÿžZmF3$g2Þ “Y¸uYϯ1ëL$°4PCD~(ͺÊvN$˜·©º=Ç÷e ŠËŽ@/ÐÙ“ïÄJìp³†á0„uÝß5{”5-2£ jj÷¶ì Ä¼©6«zگĊw[VÕ B˜€k$üÔ´.vÎÙÁ0 šÏáÚìÞ; ß/uVØã˜)ÿ©Ï»0’ dÝÝ!r›,a45L¾¯Ç¼ÙtlÝê¼4eÚ䙈*e±¯ŽøŸ_ƒ—ï,_l¡-å˜j¹ú]ÿP×EÿèÅ‹²›ßп†neÊBÎG9êP`ÃÜ~ïðÌñtŸžì³z³ê[]>.»éпH™äâl´?v&båºwb~È:}fó^þ(‰ƒ+ 9úý>Ú •¬7TC´^èíNmûr5¿9h8´‚ƒíé"y(XÄ=«Ó¶žšW\½9í ÷=ï;ؾ{Æ2òŒ :¯Ð† ‰?xæb =sƒ¾¨Yë%0oNmÇSÏöÉ{/Ðrû¡5b’g£ù{±%Ì3±9Ô7ÙB½¾mpÏfJ ÏüqßÅÏl>»6ßšÞL`ï¸êžŠ«ˆú h L¶;õjSK{F}ÿ_þ?[7í°Ç:³çËÒy^]×fŽ+í©'WtÏ‹K(…°ô̳…ÇŽÑ&¾‰Gˆ$‹¤o }ƒ„±o@.·Æ¶lîöÛÔU¯¼Ï-òÔg]Tk]ÛkâV’/u¿ƒ#—¶ñCºËí¾o´·eO¾!ÒFpoF³'‹§#²Ð„¬ÜY@H?×®`ØV̴߮¿´¯2oi6ç(ô'§>ô~§Ú^ Vê¿?%EE_åMñ Rœnß`çŸNl/ò ùhÀSÏ`fÕL®íwÚ6ÚY›/-v.½ccH÷Sj6-  |¤¾¯_ý3*ß@¯p?nÑÖ4"ަä`ºÌÜc™y ëW‘gç©7\¼÷ö<šE­›õ¦Â©p—‰·³ç¹JŠpHùjâ¾L°ãÃ0¡jª`0„ÁóXbØÛÚÑrò`¿Õ:âñ)¶o¯C9 }9F­: ˜8„~xq$>öóxÝÞÕ#Qß6Šõ“d‚…öЇžÕhSöK³ón{]—E‡¼Ï_~ÿnòib‡öMœÚÕF8ªÇQà–Ù[>-s–“P _ÿTqó• endstream endobj 541 0 obj 1810 endobj 546 0 obj <> stream xÚY[o·~÷¯àq’ 6³÷]%OIÛ8NSXEÀ€AK”µÍjWY®ì£¿Ô‡œ÷þº~ýˆCKÁA‘bmɹ|óÍ ˆùãY æ üïßøwön~öê} Â\F…˜¯ÎBà¿Pä‘ȃTFa.曳©ÌåËùŸÓr2Œ¹Œøq­êû²¾ÝZ W: ™„ “ž3(—錭«;&@ à'TZ|TMb—LØŒÃWådá«÷1ÔôlÊŠ@ÎâÄî[7P´+­º]«Å¾Ù‰My¿îÄ·z)”Ø-VM+J#®eºÃÕ5®Wûë_ÿóÃ$jDצsF2Å]ZН;Ý–ØPÖL<ËeÅLü ä‘ ÒŒ 4Õ©u 5®µ±! ¦»vgÅ´çÝ^,õÊ=yVHøÖ•Q»ª»°Ö.ìUp…Ñ-S',r¶žì=)cv½$—¬‹c‘øW=ðõ™Ìfü\«†!w[Ÿ+caM¦kw ½n¿ÕR¼Ûu¢\AJ”Æ=™œfÓ©e½h˜ûg±,¸Èƒç"ÀÊ]Öu©k8‰`³Pµ¸¯š;UUû,Ú‡ ²DħàWå÷ü8 e‘ñ ¬¯IêÕûD2õÁŒ¬I6$lºfñåõk{áÍ‹s“~ñ‚w~óòMƱ|2Ä™=âC÷ÜÕ(+fLq­L#¶1%Ù…è:¶Z+›§·º©ñ¹Õ- ï,’çÐ˲6ªZeß57Í3™fáÁ\aÞxN³LÆYÔ‹ÈñäÛÑ+o«N·µêôœ~1:”‘2Ç]”& BÒ{yÞ㊂¹ÚUâq­kò0/d²^æDr–±uÀº ½Ôßê²+á¾n­:Ë>Íf«:ëòDz[‹ ’³ÜV¼Ì…@P<´!4}M”àšG‡›Õb-¦à¶eɸ!L` ß²Ò-/·9“QÆÄ¬³Fr5œb2Isˆg2/¸žÆzzÕ6ŸSf3Íøa–«ëK¸ܵU-â>¸˜XÝÚm=&Åëf÷„‡ØwYL§ѧS6j»¥»”XT =±.u«ÚÅšW¿PQÊŽØ#= iÖQÒô¡›Bo¸sãÕ/IØ sÀØ4OqSö ù—Ù!ý¬^EAPB [”¸/ýŸÅLŒÃµ8)Ø:ÒÁ5ÈH/?“"›d¯»¶\tàK³Õê œØSiSãWµî‹a¸saµèïÖ­VKmÛæ¾U8Œu€sW.ÜŒ¸Ó°ql‚Yæ9#É'¾tÌ“Ä0j¥©¸€äÞC¼MiYßÑNJL«žÄ4—È|vÓœ2ܨry!Ê`‚3ºÇßQl½î`&‹0c»½î ‘YÆúuàéc(H²CÚ¸4~ ‹e‡̽ô£A^‚=÷º3}ÝëS…w Ð¹×#)Xe@4®0š;Y¤Lø¯2gËštöÑ—ÒG³µŒÄ]þo§k2Èla9¼±h–Zö¥éx³œD’!šåâh³ìʈß,È¿Š«‘Ö¯šåÉs²hÇhF¢ >]´]ã#) Bô™LÆKëL¢Ãv×8ÕÑZ‰5žß 9 ÑØQêcÂ’]›Þ.žIªg·}fËqJ}™»Ž ÚX®'лÒòz:PŒXƒ}ÆC€T`{C=n³»__ åŠt¶i?Z·¨vKd¹ÿ0FÏS9#9>ŽœC ³ØèÍníL°n*jü 푵I{¤úÔÁš“Í{Œ”žŒ_õmAßîÞØ2à°œÂäB™[•Æºå›Æå´bäÍKNG€š÷ìßÇv¦G^ê!/¦~eÆv<\tªqñäŠ^ù1„†Z÷5%Y=äÂK[4tÓ~Ò´‚ˆ ¨Ú_ZH"S÷›»¦ºm‰®:x þ"ºr£ý'ÈÆ<žŠè#kós‹}Gœ¬ÚfgýÚ7S£·­”ÚKq‹¶cËÁ)¿ýê3`öéÓ­EÛíÇ_n¯çoç~¼>îÍ$‰üȃ½pæ §©Œ¹TVxÁˆ% Š+ƒá a8q=\Süú¾LŒ5Õ/©qTL¢Cê÷á﫺a`—z¬ÜÖœ"¢<—;Î"ÕÆ£w9µ­¶Ž¢ïAXŒÉ½€›—Ç afÓùÄk|: eš3‘½Óvi›t¨«Î›wd !wŸÇh–È0È|£ÐÁ’ÚŸ(â€ÆOW–s6X2ågQÛK”|a†n¡`6û[c¾VF® ŠžlÁTÚ&iâÉSØÏ¨,¹[qÓíëôíÇì‘þ¦!Ú Âò“bt1Ÿê|cÜ Ãxèp€¿ÝÍ4“]hÆìyô"™'ls(b¿Ø@=ç¯H©‚m ^‘Ô=³·aÕ4r±Ýžð ZO¾7ÛS$.r„¾"\Vò~! 1;qøsgºþý«;Aë²7Øíû6GâýÆe£MýÜ{4Á€àÊtâ/ÖØ…!Z¶”‰<Öãoº÷…ü¶ñõnPpËÅ)&¡ÄF÷€ ï§½M]'ß4¼ôMïO¶~ÇxGXç;ÛÊjÏ»”Rnâ½0&š~gp°wž¶h#Tw#5»ÑJ‹I²ñàHÿ¯ÜZ+ÕÇ–ÁŽ ïd¹»ŠöTuôäI±%†q긾“4úEazPkè(êA˜ ¸X‰õX_Þ¼øùOo?þt{õyÀûö›—ÞØmø[Î3!Äÿ‘+?ϧý¸ ™¦b±9£‡lû=~¢:K“Àû„Àôã³—¥¯õÙªÿKØ ôŽ+£>ÉÒ䉮y‰ñCFãeþÓWHœ[õòÃ÷ Ç¡jÅ2R¬çÔþÙ™aø‹ÓC,1ˆß¨F_©z§ªA5ÚwÙ^ä'Á~þþú¯g_Ïè“Vòi›b_U³—>HŒ{Ög¿‹gýƒI[ endstream endobj 547 0 obj 2513 endobj 550 0 obj <> stream xÚµWërÔ6þ¿Oq&ýÑ6Ь‹/!e )ÌÈB¡„ÙqlmÖ`[_’æ¥úŒ=’÷by“P:-vdë\¿óéè˜ÂäzDa’àÏoøÿbôt2:8 “ÙÈŠ ‘00)F»?©2Íf{“¯ŽeĤ¨/óiR©¸QÓg»ŸÆðÁg{ppÍ\ÁééÛ“SHÕ,+³&ÓåÀ”pD5…ÇY®`¦5I‹1ÄP¨JA[« ôlcîphÄçDFapV&y›*Ø)n¦5FW“ùÎPž âº\ËZ¿×ó,™ƒ¾.ë{|2A$õ:Ÿ6=Ï?¾yòúÙôÕ§©U™žNžL^þz:Ôôá”ÝíÁ1J„…ƒÚÈÐ'‚ùVY’ˆôm{”»2ð"®JU×Yy±,Å˲QUçu熣ÚЇψ'¸ÕŸ`þ›C'•®±œaºµr¼G‘£|ÕßgÓξªâKÜÌuZcÕ+P1ânÃ$Ð×å,$”«ÕZ9Fšºnòk×Y3ÏJ[À<;¯âê¦oQ"¨›êØìïS¤9*}<$] ;ÅôIèì¶ ÔºPK²6,ŒeÖæ JÝ^ÌñuÜÀn¡È.æ \;…œÐÀ1— 4æ];£&A´€G¢¯,¨G¸£{]¢Ó´&ð¢¬îB[ÔªMu¢SµL—†[ùòx^g¤ž;^BI|á\f¹B7¤Ò³…0%ZÒaÔ«¡‹…ˆ;&t›§p®:ò¥c³ntò «6iÚï°ðqžÛýŽæb@s [}7F{þ˜`t¨AåöóÁüµŽðEÎöŸq±ÈU}¸ b»ÙŠÈ'>WÝèi\g‰É­t a5¬\£Ðª9ŽGI#-^Åe¶x CP×Ç-JÓ«8oÕ4Ïêæh©³ys¶›$È3xÂ/°3Þù>¡¢kxй„E‹„m±8<¼lu£°ñ'º¬›GÛÁÃþc pI„èg0ËTž:lÞlep‹A&yw©ž–Ú4Ž‹{2ÁNŠà‡2á‘ÀìÃ^&ê²s'“Í›ïÕ‚‡q‰–i,e•‘µòÿ¢:\rJ¶¦¡Ö¹ŠñUm¡° ÝÂH.8ñå}*pN„ìW3iëïpòó ˆ1|^f5þ_n˜qìܫʞcüyãå‚!3¼òÔp8Õk¹z}.8ê„r=,œ`P‹-AáL$ÃŽ ¢ý7h mŒ¬XÒ­l ‹HÿÑàÒ=¿~rbÁRá I}ï[ÒQ¾B&<‚Ú Â*i°uß"÷°+‹‘y˜¨ü@ô<Ì|…â• ûÈç1<ÈîN׋(¦Ûñ|“·Ý©Ï¯2k<冃‡ª›yúý ­Æeê4‚³½;ç4ÏÖÍì]Œ>Ì…ˆ‡¶©nÌЀ¸*q–ÅÃÜ…[÷mª·t™à©ÈUó³3pqŠ´w<`ä1jg%š¶÷n{þ1!ð+â¥Ö9f²¸çºóxD‚`S/¨Ïvwžee‰úïtž×ؽ9J¢î7Ûù3E& $™á>•ûLîœíí=Ú :¾&²£#Øù`ÊÐCl‘ø¦&}F ìø‡¥ü–rzás훚¹öe¼Ûˆp×ÞsSpמ˵½;É$ËÉ8 –8™ã×ÚFÂNR‹J§m¢ìTh/<ôÿÍØ ’=µ®®Ï'k ûø-ƒM7)FæÃÆ®WËò‘t°Dõšã²“5«ùhf>I× Äo+)ë—rËußs ¬f~ï\ Ö+Ïd”wòËõÀ;û∀ø]_ÝàwÉÇp…÷ Òú½ù(ÅöUZ†fôö;ÔÄeÐçùþý·£Ë‘Yš 2Ñúë­¨ ³“X=o$V:óÑïP¢­¿ W/1 endstream endobj 551 0 obj 1466 endobj 554 0 obj <> stream xÚ}XërÛÆþϧ8egjÉ¡V¸ìâÂ8ž©9IÇqÇ“þ3.®DD¸ÐX@ŒÚé9?ú}º~‹!.@GIKàœ³ç|ûËÊ¡Õ~æÐ*ůoðs7{µš]¾á1A«Û™K¾] = 1ž³³Ÿ’¼•”gªYÒ§¯³²”5ýPå¹z¶ÅÂaq÷+\|rã8ºpÄ…'>Ñùê×c‹Aì1Å7™Ì7½Å¬‘Å¢l‹Å^fwÛf±«³T.Ô&iäÔFä1/;WÛ$?²A_ƒQ<„‹Æ2Ö¯Ôí`>…ýFÐ=r^ïzùÆ'ס‹BÞí¿Ú& ejA ýþpì§ë9,ð-ÙÀÿA zIÕ-aï„ YÜÀiˆ'b¹ŠöY³ÍJ˜Ø%u“¥mžÔt}ýþí5e¥j’Ði‡þ{Àw´a³•cHy4l¡µ­ÏÒ*o‹R­ÏÛ5:ÖnX/7ø¡ßå€ÿñ°¤Ûª.ô~„u²ŠÒ[ŸŸ¦w¦ª¸¬Øå²e#7TTµ¤ª†JÏûã„/˜}K¿;LgŒ¢ËŸBÜfjyešå"ÌâNô¹–¥/hþÝ»ë«VôÝ»Õßi®Ÿ<°&¹É¥Ž­Eúç·:‘?è“ï_ŽØ%BÁ\“¯¨4‡ÌO}ûãÕõ“‰MìcZjþågsPŸ…ÜØÜo%ûçÃ3›%ÈaÉiœ5-M¦à°m…(`"²`5Q÷†Z’º¦êæW™6š&æ¨ñký^§ñMÒ3ûØUßeaþ;‹É‘Úc½ßãЛQã¶HQU÷z&”Vš8¨]VF»±ÏæJ°t·;M ß÷FªP×x1îºØŸ³2ÍÛ¤yZlò¬”l;å)#æ¹ÞH¡ltjŸP"æ3[A5UzB˜ÃgWØÂ/2ð¢–Iñr,í‡p=I? òTõDÖ áFÔ™®VeRHµÓg¢šÍ—#q?X`¢Ddã—(‚Ü3IV®µ %õ]ºÐ‡[Ós¬~þÅ$ø±¢N8Ϙý÷ø] çùCý¿¼¤od3ÔKJÒTw:Ì2𻑵¢Ûº*t9*ô˜¡OklQy|°X<‚7»Ýry ÒrùÚh¿…2õG¾>3èÖç\¸.b°™Ý¢;ýé zN“¨Ð‰¹ òú«–M‹ÑÁØöÐyê€ÿ¿GÙ‹¼xxß òŒ÷óPvßÚ@^)Ý”3µíÒ4­0ù¦MV•4jJ„^õ ëqoò"θïZV0_?YƒáõÙ ”774Ùc³!gžïYf_‡ü3é^±ž¡-žì¥ô“éyyhÔ‘ÏÇ€hf%yÞ_W{u¨`]ZR7ÁL@à>§A0]ß4ƒ¯4¬[cpQ2דÀsÃÖÎþü„›¾„mš˜<~Ñ©¼iÔDÉCÿöCK©Û–A§–:/¡ub3Ü×"?¶ô:Cš©ì_fx{IÎ >»¸™|rd€ô•n‰èˆ}À Si3t"«Ñ6€üØ<.mœ»§ì›¬AÛ¼ÁxÕÖ¸™IÓMÈcC!n|Ê-ã–O ™q>MÝÀc÷ORÕ¤´úÙù…O7óîö3_Óúkÿ©»VNOÆå.ЧÂÿ:S»ñËs¦Í´qur]EŸ­^.ƈ?±$f}Äeô)“^%›.™þBHò)ÿbÜ—Å8›¿ÒÚ’ò‚²®«ZT#‡qaS+…`Éû'µ¥¹Ç  îq·;Ü3T®VƒM‡.p}ehÖÝŽõú°Œ(Ÿ Ö>–FV¯¶³[ó–É0ã`„C¡4\ÁĉcBPþ°Ð³½ÙlüaX¹zŒÎ|¿îý¦0T=wáP&†ß?âfôÅô€êƒiêGTcú>)ÁüÞ5­wa 8Ú/YŸÿøýûÙÇ™^ê7a¬½ 0p=­œÎM#qøü$qÐÙÎþA%lýÒÖÊ9 endstream endobj 555 0 obj 1851 endobj 558 0 obj <> stream xÚ¥XmÛ6þî_Aìפõ2¢Þ•æhÓäZ -Zdý-´LÛJôâ•(oö÷—òïJ¶EÚÞ pd—¶†Ãá¼<óŒ¿ù` {>³è üçyœù<ÌâÃó\ê|ÃnŸåMÝiV=v÷åvûòå÷rùº©wªíЦþ+SíísöoWUês?K,»^¼`?ÊzY*¶K–TtîÞÄç^–Z{sÕ¶ìÕ+vu<·Mû’]Ñ÷ªå©oŸÁúˆcð×U 8+³ï®no5×j§–l)µd]ñ/uT|xª7<9¯uÎd®{Y:ʆ/ïè˽¹n°âPðÈ_Ù8<ðüË‘õ^ð¿"ûæS®¶ú‰¨ g^èFõ5i»–eÉVMËdýȽQ-ûåñÝï?ó S{µ'‘ö<žxÑùH¿y:¼® ¢Ìƒ¿â/óW”zðWrÑ_Q”á¢ÇLy'zÂŒ'CŒŒŠk‡!Uï‹·žS¬‘Ÿr?N½ÙSSuYÌE`É|’ÕÕÒwªcp(+  .®X³b´•0Á>Å÷$–uO©F{É}Ã6×8?ÉÜmœMóÓ€'‘sÅd; ¼”g¶Ðº¯T­» ÖaÈ3K¾ÓMþñîAë>oj(bg2nyá€0ˆxŸ9aÛ¹:ŠÎ݃{*$]_Ñâ;* Ú î¬üˆË&eÙ#”& L7&¦Û¦+¨4(¤øÜ)cÙWuÇ ½)j#dlfZ.JÅjõ.o•Ôêî/l­jÕbI B M>6½›ª^x´£×M%u‘£f§rÂx’Y²ÜѲûÇX4M©dí¤‚ ¥–ì ‡ôÕ(çK9,BŽÃ§›¿(‡ÓØÝÆè‚ìÁÊQP™M¥š¾\²²i>¢À>Z²qÈEdbüüroøiC#Qø¾Wí£Á²N•*×ìk¶j›j ç Rxs=ú<Š‚ øtï½?ùÔW&çÑ]V²ìÔánûÃoóÕíóoÏ;‹Ž¡ž0œò“þjjÀ1ͦÏ;&á­FU£­40¤a"®ÚECæÈŽòA¨Y§”(¨ÌÌ:ä;ܨX™6ôU©¤D¡|ÖJÃ7”¨ %ÒY«åœðÒTeeÜ–•¹F¡P>>Î <ކµ3;^QÂÿínŸE¶“§»R@H4ô¢Ýû)¦ýÉþfâs²#Gy?Á¨‹Àe¼(ýò,ˆç(û¢<Û=•IŸñ0ˆ}Íy%?ºˆ„–ìØÖªm­S5Â6ÆŸàvaå@˜òØ>¨/ÊeQ¯qLmI¢¢v¦’{:Bn*T77wê“—­ºÒhdçKR/³Ì5 Ó,>`Á÷ÝÞOvZqØñ‹mŠH-Ç#ìWJoš%*-'²D×*¶})qdg Î{„³bKUU¡Aíz B{ž­ày©V–Xâc ɾD&w}aZŒi Û ²ÓV¾÷?(ÞÁ³çÚ£ŸE‡= §=¦ÖÓ^ñ·ÀH°#[MKœˆÎ¶=‡f)Ù²X¹0ÚǬPP_­lœÁ(%,ÑOznò±’¬V þ@ÆîàM¶q;ÛÝè ‰õô¶XªÑt':DWÛÎÞZbqÄ=[ +@åe«ù™æOôm/š›~7‚äÄ}¸Û²¯¶Ãìƒøeû'–žOš}.÷‘pÜ /™%>ºý˜¿&«ïûFÓþ¶/  $‘P.çðv{=ßéêl›¢Fx”-45YòN¯Šy`?WÔ›9 Œäšaº-м«“½ƒMïØ œ«o•[w@¦ÀÒHe÷¹¦™:hêÔÀæ|#·¸ú@6€8]S)÷ªápÆÓ·(®- G»øÅØ‚ºL4ö} iéÐã"L}–3…‡%´d0”Û8 Å™%²£ýP¬ìÒò"PrO‡¿-2ìWY)S”¯1R¬áÄ‹-D¶œ²µcš¥\LˆŒ"—Nl‰d"HŰcg3ÑìJæmƒ´Ù€÷A7ý¡;m;Aâ㊕=Í E7[•³×}K7¶ItÇDXŽ»æÃ!5ˆÊ˜Cc÷ð2á ¥HÃqS¡qA”ec‡/5L'b¶ íЛ>F²Ñàü•KØR ¿G©eÙåm±€¿ä¢±£ ó£K'ú4ò%ÓÇhâÝÐOqƒRéÖHZ´c<>#CºÔ 8š*@ƒüF|†¼X›¬z-Ù⑾Ù7â8r]‰à ZѲ£Jomùá`ýAT9SŒÏE6}ÎÙoªEw§»ŸÑ’ž$Y ²òŒ™ƒÄþóQb¿g3ûƒÕÐõ_Câú² endstream endobj 559 0 obj 2157 endobj 562 0 obj <> stream xÚ}ZÛŽÜ6}Ÿ¯ ° 8gd]¨[v_'^ˆ³ãs!š«hòKÓÀ¥/ÀÒC3 0òü‰—öZ,Û«Ïe·ÝÒ/šº¥Ì7¨~Íí“>Ø ¤Èu×4MÅø®ZüÚÖ®ñdú¨u×2L<_2š¹ïe9[V-¿ö>|ë¾$Œ½ÓÈ^¿g²»†šÉaŠnô2å=ïSb/Ic›õH„‡zØœ«Ã|AŒéèoÆ£qJ_ 82^Øwûq¾¥ú¾ëÇ­n‹{ž!Ü©-zò0óªMÑ‰ÏÆ@_y0D¨éb›Ž¢Aφ¥¦’ú8(6¸0˜P´ îún§zdø±^†WDÛ^„Yú¤!€ÔE ;âí)‚œô/@™-…ɤ9PkpxàÅVâehæ-’)7UÎü%òi®™Ø”E9°Èœ¿†Ò%C½C$¯Çjv‰ê³‘.tÒbå 5ÊiXÏ-–'Þ¬§ŽˆAM€Ê i±Í·( JµŽ—„ Î'·é;îaÒ`×ÖøNN ú#̇“ØôÜÙp6’éG*mz¥7]ƒÚh¶%@Uצ‡¤M~âQ—£×?ÑÈÁÿ0yÄ2rzî»yæÉ̦¹=Eí Ì=&Ç`ö¢+Yˆ‡?ÎeÁég 7yaft”úo›ºëïÉõѤ}Þì·EûEáVA2€-S¦!âZð‰ ,ž±} m®TYP£>5L£ÝPÎ7~tOÇ/¤/¶hÆ'†ê¦ÚÖm±#ôèk4fóŸÜb>abTMÁgÿ¥0¶‰Ð’HÊ"/K]Iz‹ºPÀWÚ) .î  %HfsÁx¬hòuݺFŠ`ÔeMÃÀ/¥À›zƒh·Ñ›ùó˜Ù”8ô¯ö¦Oæqøæ6Kç=0ðÿHP5›¦Ø>ià„ ÈÌ\Š“ËÈMNl 3¨2Lä›BÕ I8À4¤ø¹ ½ð¥éÀ+`,O·@d3¤`?šð±²GEº¬HšÈdûçz÷q[·+Õ Å…k¹ t˜Œ Æ„cé¦zÆ;‚å W+ÞƒJ*‹-!{„Å¥ ,•I›øÉ9Œ ¥CnÒúR/®ïdÓÖ¢çá‡4[µ–gÿq<:È£©{ÇKÜLå›!ÎL29Ôâ‘($Æi2E/=þ@ÅyíA”æ]‹{‚~p¼e/J.N“2êgoGz÷îãëwß¾ùùã?þtûò‚UsÆ@0•ÖAæÓ ~Î2f¼Å»Ytþ2°éf÷™Zúf€6À÷ 룰¸ôIßcgÿ¢¯(Ô›G²S–»8 }£µ¬ÎÀÍíÙF¦SupÜ$_[-j¿V ˆ¯Ä?ÆY6U¿@i¾iïûI×GýÂÉÝ«‹bp,ÉfÚKG*š½˜#eKhæ{µs£†E3Ïó‹1ÌMÝÅ*ž¾Qf‡ln¯Rj°í?÷jÛåbkîôŽS^ožmç« ´ß¼ö¦Lg5þÇÎDn¯2èËÆPµx{SE™±Í´5í|R”˜ÖÁâ TŒw¨«ãIÔ¢~ “˜½„*O À«ãÝ¡nÇRwd^¹ô8..áž4w6ƒö;O=\øXD¢Òå p­®FoÁ (£˜¾ÿ¹dA)Cºë±wwG:N{‰`bR~ç#‹Èã‡èx Dÿ”3sÀ‘CVÖã¹^,ÃEù“3GÅÞcFtòáÚqkYÝ$#Š"ƒØD‡¶éŠj<ÎÑ#ÎÄÇ„×ü´ ü[¹!ŸF¡™³Y4¿qN¨/°–ë–ëKƒ¾(fúj£«ûÑ}"ä3ÂÁåÅÔõYÖeáèÔ'‹¾=þãä3§Ës›fÜ~1¾ù|À|eA—Mh&×NWJß‘@@L 9w ü–j¿«ÌgrÒø”%íéœû9ÌÊ¿jM¶}$8Ž@—êæÜøºûú'êæ,›IÇ’Y³›m×ÜÔÁÅÒb²ngéË…åÚÎvÛÅP[™/t~¼]dùâ&ÀcQn¯è‹ó†ŠS”•ã}Lœ¼Ú~s*C1?PÏ8¾Âýay h®ÒŒôÓ³óöP" )€uúâpv¦O‘‡’Yüªa—·E‹ŽnRønF>éEÖìç§×¹úóŠi%ÍIÛ$­'ߨ9RÌ??RÌ<›«ßD Yÿ;úÈA endstream endobj 563 0 obj 3615 endobj 570 0 obj <> stream xÚ•XmoãÆþ®_1ßâƒå=.¹|s€È5) 4(;ÈÆš¢,ö(RGR6Ô")ý‹}fIÉœ•|ip8}ûÌìì¼<3»Ý¿.º/ðãoøû¼øþ~ññGC™Šé~½Ðà¦4¤T‡*Ë ÝoWÅíÃÃöЩ¯¯¿£bEuõôáþ_„*ÉãˆïhWv5õëÕ®f?žª0óöJR£2;éXéH͵ë W©úkÙU/UóLën ƒ@%:ØvK¶¡»»Ÿÿq7šA£¿¨8JþnW•­«—+‚Ý Ý¾ö]ÙÓÖ~–»…Š7› —ôܶ+z²}IEmû¾ì ™Ì(#eî7¥@ä¹Ê$âðÍ)\-]I}µÝÕåg]ÑÆ |Ãÿ"Ö38Í?ÆZØ刊tÓ+uå—}Õ•Û²zjì<1™V‘‘Ç]BÃÆ^ú$Qv‚­Ûùr–ªH„õ9b‹ejÝ!êæÜJçk3fÒ çÃy–Øn9zC±±0±¥ºm?S»hÝvÒýFÒ %mZÑ™J3y•þŒ…ô|÷PQ«@ZJ#L¨ÂD”ïRœÖ>µM_Á¯ðIÕߎep©æcø:H´“AÙ>]i‡ò1|¸ò”Çi‚$ Çb¤ï‘îKÒK —>.I[Ñ„s²ÛÝÞ²îÛÁÕ2öL(NP#æ’PÕ Kò¹'6 œ1rÏÇoýÕ韤#3¹üsäê¾¥Ýþ©® g¿/¥cž9©ÿøkA ûFv5Üzƒz Óé?Rÿ;‘©ÄÈ ‘Nõ,{¸ºä)z´Ë3oÐãÓÃ:ÛŸù/‡çእìC£’ô!ÿ¨&]¥ÇPüæ¯F(…4y;çzßCÕ6 Ïá@vµ‚—QJ¨Ä‘€ñÕµûç U ê®lSøŽ7aÓ¾{jÛšVí#'r·yæ3£bûßW쀕ìyÔ šH’ŽñûíÛw‰?}„ñ˜:¿ Ò'±\~ã‘R®ÅºÏJð‹'Ÿ×4xë]Z£ ÈuøÒN êøíØÕàLj;WÝ-û(vVë\_ Š~°ýAG‚ ÝKêªçÍðÏ‹Qœ wvU 5¹A§%vl©ô¶Ó‘  GËQ¢¢X@Ë(šUILÆ–:‹ꨶ²Û#ý›s¹ç’þ+š_'þæ¯ôº©ŠßÍ#¨H $:I»ïÎÅ!W÷)Ù;N¹[ M«)rûfßÛ§-§?PÑßút}½¤jMÖAœ´\ìŒsÀ…Î8_>Y1zõX­Ô®]‰ö°á–zɉÅÿÿ6Í,½ßIlhÐqoÇ®Çý¸ƒÞ¶äŽkk7Þ*ˆ3LçÇfNŸ”l*ICOèhû“Ygõ”¦*3BR–TÆ#ªX?:ěѸ}§RÓ='ÙÝ®®J7̽wiûV«ò÷(ÙS gø{¦™h¬ö¹i­½]Dßã•ÒH +ÈWF¾;Q*_Ï¢àRÍ–OY4³mê§Ë’ »ïy(w¡æ‚£<éc’µ,r–XŠ~òÆG¸`Îö=Uüt€›¯¯§Ü 1Ûz‡ QŸá(´-Ñ:›ªßŽc'íû©ÁŠ®t†{ãr6 µZ^ÆS•lnÛ¼E¤oA*Ù^¢8Æœ ESƒ¿Ü¢<= ûÔÊC{Dµë$ÉHJ¦¿iÚáÆ¾cªAÉ‚……Ðq(:·Ó |ôxñè¹á`³FôÊ8B¿ e\†‹Yªy,3r\Ó¡ÝÓÐ8Ÿ8€—¡1JE‘PòUw‡aêã笼ä]½‹Wìrr&€¼~.$ÅvWÕèPe×!1Ð`0£œQc*DeÔBôHéh›GŸXÇEÙ÷^‡óì$ÄE7V ÜÔº¦9çÿŽbŒ?Šº›8/ëvΨt[5mçµZF¯x•ë¸}åb}É-ëZÑ?QG5›?³×OþH#bRƒl¼œ`F¬ƒƒ¼6op/•ðn°;Û¡õa¸ì¹ÓxÑIU*dl½/=BæQY'>Ü ÓabÝµÍ 4âGã÷>?ùÄÓÔ, ³œç‹¹(§®»l¹Ón[#œ¯GÏž0àU-4x÷ÏLáÿÅóÙa«6UZ?ÐÔ1N€ ‡ÍŒÔý£blºtT¾“’Ì©8VŽ”XA?¼hèÄõ­9ÂE£rªba ‹Ç‰ž¶-#˜ÄŸ ¨\ÿ^TpŸ›C›ç*y"_¸:Ù'[]¯iÊråârìT&õ/D—ÓÓÍu½¯ëwáæùhî × 4ƒ~¾Ê9%BH-m÷x„û’› ½âç¥Ô!ôâ¿oĹø¹Îq– Ü»CйSÂrüSõ;¤f]}–ÓJ0Ïåïu&dbË3ÎîÄ—™=æ'O謨c\4#“ —õ¥Æ†Ù S!0¥]q–œW'SÕLÙ3œÑmœÔ¸²êߢPbr`MåIóôqòC šŠüE6cÑÌÕ¹ùʃ›M/_}ÒI¢L®ÿð=Hã:æáŸ{Òqƒ<ú¿ßƒtŸ^®Ï_p톩ɟ|Òèýaž^|Êc˜—ùÏA?ÜŸ0ÝhULÅvÁ/sîûø™Q½ˆMà}púŽð9bùk³Xögãc€¤6Ü‚Ý3z~fÄ܆ԄtüÀ„=mæÿrúÒ*G+Nß“§ìgAŒõTM¯mÇñås2ë—žGÛìm=™Ær7£‚€íb?‘øýëë?/¾,ø“WÒœ­MÐß¾gæˆ8þþ†8Êl¿R]ÿ V- endstream endobj 571 0 obj 2144 endobj 574 0 obj <> stream xÚ•YÛŽ#·}×WðÉx†î ûæ}ÊnâÀÆÚ›ÍÈ0ZÝœQ{¥n¹/3VÿPöòu9E²%V4v`¬·µ,’źœ:Ebý´ ĺÂÿþŠ?«×ëÕ—_+‘ËD¬ïW¡ð_(²Hda$óB‰õ~õ™_~)j}_N»QT];ŒýT]ÿùúgÌŽE*ãŒÍ %–He&f‰PYá‹[‘LUê¶ú³î›G]ÿøÙŸ‹¯h’'™‘T*s’¯ËA“ØR(d¤r'ôïåhÉ@nô·åhJü9Ÿú¾ëo«n(ûfèÚ?tø(dˆ•aEsøäúáSJÄËÛÄþ8ü²;¾ú ýôXöÕ¶ì??•—L‡2 3 .Å¢PArÍ8a ó ½bœ¤ jîgÚíDÕërlžÛÆŸ˜ЭøÿÎx#.Œ7툱ͅó'Y ƒpqü#»”L ™‡á$ªi]3ATÈ(ô²âЦÝÅó_Ž ™HbäVì#½I˜Ë"MÇnïž>}÷tÉ(A.³”ç‹‘\È©›§×RF幌Ók)£ÒL™Ÿ2S[‘AÊ]3EY׺c'Æ­wwïßÞá«ï¦‡­hÚ-Ž4–m¥—k&™Ì²Ù ›®Û‰ºûièözÜ6í…îõ0âûÇÏðCÔåˆXµ\Fe2ÉlnýöjvJ,̬¢T:ßùKä1Næ?‰ÙY|‘"–°'è|uyË0Nâ¢nËÖšG.¨YìŸl(§öF»I웇í(ž|±0Še’3¹¶Ö½hîÅ3*l; ZúnÔÕWy^å†Ù#F8…þRl£HüaM~ïu­?¶úìÿOýI “âŸ4ˆÃ´Ù5•0N¾gµ\ùÂe¥¥øšÉ!|Î΋Ã"aè@7 ÛÆ¨'NêÝ;ì gÅnó3 2G®Ó‰âLìõ~£û«Š“Ó³Dœ£Æø«3ÏÅ º¥þ09¢›vµÐmUBc°áâÆËC]Ý:Ј”…dd_î‘fUÚFT»rÄæˆà@’]Áò6ÊC²m~=tfvYU«9SnCvýE$ ö°é7÷S3n9hÞ-ŠQž¡ñm‘æçРMá|®¸‹B…ä#'¬·& 6;½·{kàdè½-G¡Ëjëðk[ÒEfÇQúÀÔ¨»év¸ 18BεÝýìr{îœ. 2ŠóhqX¶ìµh5’®vV i˜[)9!<üݧúâ ›o@íáF ˜ÚùŒ0¢×·ÜÑ ,)x€· yÁQ‚àðò^ÀHOŦž©ý 9,±E%È™œ-úÈsè³q ÔãAŠ©/­|‘$Hat勔țmÉ„Àá²(ºªMO¸%‰‚¥¥ÕªT<ÏN07°O”§g Í›e$G/L£ ýQmã§íÆsÕwÍþ°;"øÆѵæËÁð¹ }‰p¬Êu«™¬if2Êõ5Qï Id¨X… ‰)&ãìT¶µxýöÝkñ¦ÛMûk9„õ#@~œ[Rö »üào”ðeô †ƒ®œ¡¢l.Q ´»šS™m+»­ߌŸ.«`ÎWÄ‚å=ø-Uk`[ïÕ;ñQÙ‘”ǃ¾L!èY!ãÄ®ÈXïf×m®P ˜ÎŸ¶9p„œ¯»v˜VM}¯Ûn.Rèî½ ´DÇ#îÆ¸}#ž¶ PÏ@ ¦½-/„Ê©?O8ôFcÈØ!N„xäy¡rÏ*X£ì5ˆ~Û û™Bk»‹ˆ©×ü(¢<»ðZo§tÔ-S«ê °è¾ï¬º3®€Îžö.åmdŽ#åŠ*¼  é­; èˆ=ÂruÓGÀŽL×HI„²¿ÆÑÁâþßå»Z\öz¾¹wt…*¨ŸRLŒ¬s´#‘ÞM£ãYàÓÈp9WÖì™ãXFî>൮Jʘ70æ`ô€Ÿm½CqoÚ²?Z›àõ³³¬ŠøûÆ£Ò\{´,éYú£(ÍË”Ö-{312Ó϶ææc[R1G«§Þ°äóe€K÷KÍ*¨Añ·që5OÝ,1â ¢íxk§ð°œ+{$O|üÕÖø9Ãék§G½;.Z‡°@¹ŽíTêÓ(âè q¬+‡4S1›ûRÜ…pÍB\ ÄœËã©ÌàB´ðGsÌ—[ë«(š² &ü;Õ3ΞÍ8UÃ=l¹ÑääöÁÞ`ØúH¨Ïûž,d«8ÍZÂ5e÷UË­MWÔŒä©âk¿dìI¾”GS9ÌuŽ ½0ÐN`•etìÛ9%Q šf"È”½ª«QÝê×”îšMO0o›Lc·/ -ä1*e Kñ†`»¹†ý ߹śôÒ¡ã4Θ<¥¸a±TÝZww¢èœøÀ)ðœebºùt÷ã¾QˆA»e)£àOÇ$–-elÌ™<«Q£×%ÝS ìÊ£6p‡ÎTDA@¿7®²6‹JŽ0ȪXºdç¨R|Y ‡^óŽ+–IÁ}\¶dJqŠê3ŽǺ„Ÿa\œfl4µêú~:Ð8%xë¶Â”Zoapú˜ wMM‹šÝuÝž~Ìø%4ÏÎ"•)› ²:¨ùËzõ Tÿ²O+Ò|)Çy÷«´iþµ[Ý­Þ¯™Ä&õI,Òw§K”Àuó[G,x'„ÐÁÈœ”íÑéŠå‡ë7 Ú¶O Äm¨$zœj¿2O«ô=æ@òD‹Oœ¾c|ZYúÚ®îg°_Ч¨Ó$ÍÒà™¾™©'öƒ®éìf˧/s¸³òîÛéqëØ<àfmw_6ßk<¢Eýauÿ®l«N5šwkH/²“`¿_oêd h$+H[z!=FM+1ÿ>KÌs¶«ˆkýùŸ"[ endstream endobj 575 0 obj 2825 endobj 579 0 obj <> stream xÚXÛnÛ8}÷WÌz"iZ¤¨›·ÅMl€ôÇEQÔE KŒ­F¢TIvl÷ƒö/w(Ù²u±Ûm‚$´HÎ9œFƒÉCOƒ‰‡¿.ðgÞ{9é Îu øð®GAÃo ‹Rbr˜D½£Ç“/Û)›ÐÚl¼Ï• ù"È ÞB_— ®—±T£|!@Ùœó†3Ʊk&½ypû%ór}s´Æz»™c“îÎs£$Ã{›—5Fôõâßé…K_@ß‹ü0‚,ú5p¹Í5Æò rç"ëXmRb™V¹ÚwhÎÆWç°óÕŸNÓéT¶¶”¦ÝÚÊÚ[÷Ð)¡¥ë@æÍI¦Ç¢ÅlärªÖ€›Î½ðnúTWŸ>O›©F,ü«6þÝœÓ4bXzü àBä໹;s3ŠðD–Aâ¦n$r‘fp—Æxq¹ÒE8w¤"2?f¢áÂ@èßu±DˈØ?õb_ø°rÃ¥@Ëq yŠJ<»¸D‘f‚4-ÙÒcT–¢Çìk˜$á(%“ ‡g%°+…k-ˆéQÉ‘bçúiçý“¦eÓAnÍÊr-¹”î,YèOÿhî3¤Öªö!Ó£ß6Ž¡I·Á¤Û®ùIE¾L%ЖmÝAÞœjí?ÍyjǦ»¼¾sÓ¬¤túYžrB®‚4–F¹NwâéaŽ‘.Ž\¾j×lbÙ¬2¾”Y0—+¥¹ šß>¼­‰™;xZí­œJ]ªQz¡|"œéQÿúýhüñöf2¾|sÑÁ,·m¢Û¼Île¨ƒZ®RmÔ¨-6M†PÈúöçÀñ÷÷ï‰È‹’IÔHà¿èŸ€>=îòcZH{[*Yî‡^¼ÌáùsèŸÅß3?Í1Ä$û-$!Ú¾š-– 釵- C`ýÀÑh<~;ÂKׯżØ4·0LvËô>)rÝÂ`8µõM9rfZ_¢’A›?jÇ¡-ß•¨Ü<vÂÏT Zˆ4“X;ˆHwLb8úÞ¤Û&Ñ­Ä:áê–‰¯U—U‘¦EÞa$ŠRš¤ñÓ¤:"1¸ð fXfÓ•HÿÍÔ8Å4ÍŒ¯›²ÑVS‘|ü ^+Ib=–‡cª2bÈU|é:‡‡ _ Â÷ã+Ìà÷e'0üyn ™ö~óûwêÒ즞,ò<%aDbµ!XdkÞ›ãO<šL!m:aa,îÇE ¢iôWÞHãÄÖØ7š(=<a¨ŽTˆ•(:ª2Ùì_¾FSÎNLMÿ€Ìæ„küÀØøP´3¬XWEQÀ”-dGâ»öº—ÉZêe'L3ºÕëæÅæž¿î}í©¡šQm^Ø3Õ¿1ª‘VÀ,Wl>oWlö,z@¢­ÿ#GBm endstream endobj 580 0 obj 1568 endobj 583 0 obj <> stream xÚ­YÛrÛ8}×W ò°“ÔD0Þ=ó’díÙTef'Ž'³[•ª-J„$&¼($Yµµ¿”oÜÓ .lÈvfj×IÊh4€Ó§O7hOÜn'ž¸ãÛOø·œ¼¼\\"‘¡¸]L”ððG‰X‹Xi™¤¸­&O…óÕõùåå¼ÙôâÇÅ“L_WÙÒL_ç—â ý¤¨–ÿ*rzzuóæúqq!M+r3Û,—E½|vû‘­äi¥áXéUS÷¦î§ýnm.± V½ø¸6Ë'ǵ×QªeFÂuiêe¿â:K´Ôi|¯³ÃŽ.ó¬Ï†oƒ³O?<;lPŸí0ÖÒK“oïðàùÌA¤§ôÌÁ\»PI¾÷3‹@ÉÐSÌÆ”ÿv }%}OŸ-ùX°zs×_¬Ë¬¨Ÿ<Œ…VRyþ7ü^ÝÜüýæRüÒ Û¢_‰×½—zîÊ“©<Ž‚çÉØ;±ÑS((5ÏúùJ|x:oê®Õ®û\®×——/³üíÆ´»¿Ó"ü.„aâB¤Éß²:/ÈêøL³1¹mÚÎ{À‰sæÅ> S@“>âóíoW7ÿ{ô­#ÓÊí*ëÇü>s¤2æ”jM¿ik¡ÎLýT†J= ¼N¥¯ô·€¿º››u_4õCÈ«T*å»È¿"oÓ¬,­TQš~eZñóîÝÛ7ß/ÌÁíY0¼D¦*ø¿#H >âó§«_®n^¼ù³á½ŠþP<‚8ÞñƒñÂ?1fïÇ;óÄ2Âf]\\c –:q N€À$Ád(U(Ç~”ÌF¼CdÞ!T¹[jÔ-/ö™éû¢Ûd¥x…8jÏó‡]øpêlÁOCFï[¶ ¥dä3«¦ýÔ‰¦DµyªNt›õºi{“‹ÙîÄ ±+ȧ bæÊ̲Š3|ÏÇ#DóÃJ¤ÈK3Ï6r0aB¶4‹Ã¶œ`ù‰ôÃÎ#kø°=úÇ ¼}­÷*ÌÀ }ÄÍxÏÇST}6Î7þ\lXe,¶P“Ôgs¾°ñ0qÂÆMý³ˆbéó]õ€¤j˜QŠ­‡,“‚ù|•ØÝ‘bÑ6•…ûD…²TТ5ånì.Hˆù“ž¹A™?Œ¾^ˆ]³y#jǧ<ÈZ#æ›¶Å*åŽhÉÁÃÑ™Ÿ÷;_¦|7´(ˆŸ!›Ã€òC-}>nI*6ƒ˜^ºÇ¤"°7UL’€ Þ¶Eµ.-­3ôج—m–ż ’!_d çÁ™DÌÆ´¹GÒðŽ$êÈØg&„(ÙøPÉ=…C;Ç›7Õº(±¿²¨Š>³x½¬³ÖdŸ†¸“Ÿ)Ú$¤Ö~ –ŽÞˆ¤P_ïX¢ÝÒ!3› Π9g6<‹‘‘Z³qÆšÐòÒ‰‚ŠÉ×E\.ú)³àˆiÔjÒÜ—Žé;‡;mìên ìˆ0‹Ö»G(FÕR>4èïª&ß”6H™S•I‹ó×m~URœØ™bÐÅ(:>›ÄCG6£ñ}si+ß©ÚôvÚCÜnüäaßÔ×9kh¿š¶ÄÁ ¨ øN“ÍÄn×õ¦z~ @iw„îêöèÐSê9C1¯&ö7 ô|xLD9 Ïy„ÁñÙÇã`KO«É‚~=ujE›´×HŸ-=^9Fÿux ~{XÂýp|RtS/ûý³³ºУáÆ±Œ†—¢Çj,Cñ[G¯‹³DÜoæMí‹Ðìóãão'Ÿ'ôH#qJ»”=yv›ƒÅáóÉâ0g5ù]Ôðõ_ÖþË» endstream endobj 584 0 obj 2362 endobj 587 0 obj <> stream xÚ…ZÛŽ7}Ÿ¯`^6^x†Û÷ òd;qblqÖ ‚ ”ÄuÜêVš-k´Ÿä‡|€¿nO±o,jÆa[š.’źœ:U=X®±ÚàŸñ÷þêåêê_¯23±º» E€?¡È#‘‘Œ²P¬öWÏ2ùÏÕóâI–2ñ›©š{ñ[SmÚ­§ªß‰Ûó»_~þœVÒ!a.£Â;#ËÇéxFÈN ƒ@†1—/Ä»]Û1±,”e”2±^üT™žËEQ$ÓƒUÝ6šœlXæl«Û­¨²öàiüÓùF ƒY|¹BžœØå“\†[ÐvˆC(&i~± ‘IȤUWµ5çýº­8èöPkq4što¾ÀvzµôtÜìÄçÁD#ƒyö>"Njž}¹-'©2•QÂÏ;{“¥LJ&ÂkIH¸Ê„0O€t’'°š'/~ZÝþ HîQÕ´™Ú5k´€úûgŸÿ±ÙèmU÷e€ï U_ýþŸÙ5]ø¥¶ÛÊÇ~W€Ø˜¿t}\d@4v¢uýäs"êžrÁ‚[_7mÍñ…,!ˆudµtGH€¯í¥xÓÚŽ .b¶–à ŒIaãîÝð¶±Gq$SÕ;ñhdä©Hœåz´×ñ@æMÄúÜk"$ÝrŽ8·%ÝÙe2]cqÓ%å//õQ9½oÿ¨€÷µ× ³‡c­x{R”2¡w—^ÛÛ ¹‰¤æ¶Ieã¸âÜx)ŒpÝÑ…Þkà”MÛ´{`Tˆá¥‹š‹œ­UõQÁ6"ø«'¼kí^‹ÏSYòk ¼RŸÂ3õOD9?Þ’bA¥C‹íAãQਠmÚ#ànL«;¯"QHéÇvxèYBôìÆ2S¶ ý»ˆÑ‘Å|D=jx–¡å-¸ÐY•kå1n8¯EÇ‘¤|щ ör. SȰûNí…–$w(:YÀ‡¶ë‡Üb Ý´² ¦ÅKeª¸=Ö}UWÔÔâ-šmöåí[vͤ!?CzE4I =ýÅQ×g9nÎd¯—ÙowV\…’czˆ˜CsâÊp°*Kx=0]­[êyˆ¤¹ÌK&Ü¢ùÝ(‚±¾mÑíõÚ‚ô}°Ë+¿ùÍdÎU^íZ ÷´ ªïg)w@NÜ÷~ d\'µá¨jÜöÀK4@ö–Í”z¥_Þ“xAµj¿×íÇt×W¨ÒŸKWÊ"aK¸•i"sªÈD%N.ŽQë=j‰mQžÜ5®ü1ª ßdg1¿ whÃ\}Û]×îýI†‘à eðêóçD¨@&#A1v`2 ÃEÞE ðõê´ZZÓúT…Œl2uGÉm¡ß RŠP¤c_õÇ’Ó”ÜR¯y)BY„\¯•¦ØŒc&âµÒ¡¯—öHpæÔÜsÕm⢠ÚcjLïš(tf6-ï-3êu]¦JyQ²ÇpÖb_œêñ²0-i´ÂV îTƒ´|úTšø$‰w,B¹®¿£#ÿ8¢”¡º¸U½²sð PXÕÜC¡#wM}¦Tâë•ÇÎ ™³c^¼}3Õ@߆Á½ˆ]Û¦Ív^b„ . “÷&:‰Lù~}s ;:WƵñ>ΰùþ83 îõ0ÊÙ\Ynâ8$¸ÏuÝö40›*F¢¼è”ÅûgJ|¬Û<˜#´1Ô´—ÁÿÍL¡Ôæü>þKât‘Iµ÷ƒ†Êk!ÐsåÓw"0öî<µ~FÄ™CµW¯oŠy#Åð5[Q G¼kk’K†¥™§q÷š;›v‚x€åˆÄÙñí+ôä.¢Yvú…ý.Á$É3Šw×ÞÎë‚/5%ÊüšB#”9¢x’‡Ô«»ÏϧPÑ÷Ä?nhç™L¦@vµÞ€'ƒ7K~Ô cG~û\ orGë?zfQÃP•æÛ¶à•+ËŒ¯|è-À®‡Ñ¢ƒ«F«Ä…ßĉ", 2êÌÝÇŸ<›ÙjêuÚãýĸe–1᳇ÿ¶ŠGÉÓçQaÊsïDšò£ÛžÐá®6ˆ¤‰nÚ2@v‘â5§à%´äi½71 t=£†žCÂúæ#q7Þ¹P¸~åbTã‹‹.ŒÖbÇ[™(B[\,ìhÉ]øU÷²€†•QGݵ+ê™?ù¥ùé TTÌa7‡ õؼ¦!‰· j–V Œà› ,RGõ=½¹Å­ú‹øÁg«zÓO‰"åþš¶ÂÙêJÉ9ÌÅâ¿›ŠP¯™”ì¤y.–æÚ…eî9’º:ÎG#4éEÆD•YÜLïÉ•±ˆM„¦Ö4S˜:;ô%zlºÅhõ{­yŠ9J0¬éõË@ì|l¦ ZlNèUãÆa^‰3 ÊÀ@s°3«÷,ó·Lx‘ñ~#F])b¶ý‰¿’Â-ÿ'üÕŒhàU‰Ç«èýEÉWÝþj¼}ûqV|xõîq>FœÐ[gQåñSâ”úŒ¯œòË´/I2!¦M×qÚU›/(iú&z8@«i¦xÑé”ñ,\‚˜n2}ûp¯´óõ‡Mõ‡‰©¦­yŸ¯îvöÝçäPuÏcšØIâJS¼õb©6t>‡†Ô$+3w½² ÁIs«6­ùa5/ ÄMˆN+›ýýý<},D}•&÷óçYú´»ºêÏË•ƒ-0{BlËþøâ|÷ø<‰ÄôAFÓ9þ—ùSH<¯äÇϤ‚sz”Ä2R<Ïé]Ð\²aóO”E©øÍÀJ·ª9ªzTÖÝ ¤™H°ï_þëÕŸWô‘žä%i›!Ó—OUs˜¾/ÓšÝÕï¢Á^ÿ[+K† endstream endobj 588 0 obj 3494 endobj 591 0 obj <> stream xÚ•ZÛrÛ8}÷Wàmœ!^gžofÖ[¹ÍZYR´[L(RCRVT[ûAÉC> _±Ÿ´§ARbCRf¶RNQB£Ñh4NŸnÊÓÍ™'¦3ü÷+þΞOÏžþ¢…—÷gJxø§Dì‹X)bº<;ÿ²nï“÷¦4uV¼ŸåßDÕ.L½É#Å“é‡Ý4•¤’O½aÃi"u46bÝeø™Íêªy)ªumÕ>ý%pìÒ¦Æc 5¦¶ó»NÜ݆´#.ÌØ z2`}Ê–«Âü,¶ÕúsmÄÆ³j «ÁÐ%ˆÑz¬{ŽÒtÐ1«æFd M.dg„bé'Ž‹£XI•ÄvR$µd¾ò<©4—ïÊÜ*¯Jzü´×Û¦5ˆ&^xÒ C:ޣǑL½ÎÀ—y¹þ$²rnµˆEƶ‚!›ðÈB%ã ÑXK.69Ì{7ýå"Ízµªê¶?Ýy¶m¤¸º·¾Õ ¡ÔæåC?Oä¨î…ïyJTµ(Ù)‰/#ÍܘZ<æe›=˜‰È[÷hïãë`'¾ª«»ì®Øb¯ ›-ëdïº ŒÝéÊßMSv“²ÞÜ mJ´¦^æeVˆ«§o„=—u97uÓ³MïSÒÀÛo³‰hªnû0ç¡Î–b^™¦üí5òpƒB¶z+jóû:G8fåX6ôBéÃacÙ­hVf–gE¿/¥Üm!®ak3B{VÕµ™µpϬxp]Ò™íâäZà›0Idw󚜀@Ç¥&ÌQEù8Ô t°ò“Èïmä|E jáŠÇvÃ\øä…ñìJ,ò‡ÅųëË«+1[du6CìY¨ÄiÍ ]Rû¥³Öï­=¿õ<Í7pþ&}yýÇ‚uygj™‘L4³ëçû÷¸ù6¡sv1Œ£äDz&„ làŽ8þ2QL¦eÕÂcå¼ ä°A$ÝEÃ`'?€¹Ã«¦þiÌf´;Ð:¡¾ÖÒç‹<òñDz\¥¡~`ÓÄX‚ðKùG&†« "WÑ‘MhPJ=¾ :R2ÐLt+î«zIá3d– ³ŠbBßÛZäM[Õùl(^ªD °ƒÂÚdMU6âJ<0W«PzIÀDyÒQ©Ô>àIÇ¤Š¹¬½«xê ¥âÖ‚#Wp)LH–$Ld 3ðˆ±a.6yQ8IÓéGéé•ýªRÇ~‹½%Tì.>­Ë ¸€é²l´”jH3}ST89‘\Ü!ÄvÀ!À˜ø¦\jiwÓ¦²¬ž÷g¦nlÄŠ8ä8 ´'“ ›j/Üýºœµ9˜Êq&§ü¤óóhB°|¼=¿}ru£¤Ø1ËJ±0ÅJÐí FŸqŽ]%}º1#%­sšˆD™FܶG.žÄLÀ²ÃS´·>õÿ³Yâ¶ÆÜNqÏŒH#ʽcl–yËS"’Q øÒ–¾ Gƒteâ¾6x¢ô´4àStd»,鹇¬’ýZ y#I·w4Ìü•iS>;/ÀÇ V¯–Öq¿¾~'ÞÖÕ𛾧m²M~VÚú yWgõÖ^Ê%2$Ÿ™}DýÐÒÞ®ž¿âG²¶?Ö¡ËwÎ]@€$ÜØ)P"ÕѲ “ñËCžå›ß^l D”ÏÍP2šêc £U–¡”4ñ.kò™‹ É Ôl"G5ð"°q°œc39>ö+nÊ÷ÑðË™!šEµ.æÈ6÷_gæ»…17¤Ÿ¾Ð Ž:c™q¡ÃcÁ—îÝXö&/ç‡ZÜÞ8aB›æø¶È6ˆ{'±HþXWJhÌDxA‹Øô5w­±d0b"›†gŠ„ÛñìíÕ?Û’r›q~/' ›cè2w|]æ×Hã[Aū剜cR]¬ù’•à†T9³º˜’âMi¸0ðE¢9Þ3þª„5êânÛš¡âJ#‡HÈ>Ãü/ìÖ„Ä™ÆÃÏ^__}SáÛóŒãi‰Ï¸Qƒdó‰Jß>±Y_ìÃ'EÁÍÅ·¨ãæäÆÏÏ>s´Ð^ŒˆäÆÝð|ƒ€O¸€#•ª§¸ ‚$+`Ý΃’¾u ¾»ë·9ÜdùÂÌUÁpß :ï.¯/üá"Ä2ß„ ›†%a/­âiس7|¬XŠkê’}¹ÿ…ã\ݵŽDoÿäÍÎÁ7Ÿ]8ö¥f‹MO¦Y’Ò!~eš&{0Ï«O§± ´ÆY÷ÏRࡈN}׫ûA8/‰&ͨÑìo^Öõ³&¶fÉPÁƒ‡ »ÝÕÓsóµìxû×W—oþú¢›DÅs)î˜4œ&láu^Ìé¶[ “?®r`¸§þ¼{…÷hNo£qS†ÇbR`О†÷ÍoÛ3_YK]† Û˜ü:a>n✒p³­³²)²;_ñh "[ÿ×ï9ÂE"Pû“?Y»h”è;/òLÌÛ…CŒN…ÌX¶rÈšï ü“£ ˆØxÞ #ˆKåàÎ7,¢³]·°!‚Í$#älÅ$7ŽernÁfìi„T&~}w5d îtU “ÕENMuÞq¥Î;ÓÕ³@$o§®Ñz›ÝYLbžÏ÷4ÅivxpÇ3y¯ÃÃ…Ùxæ¹íæ’¾¦B¹$åý~À4îxÛ ä4dJÖmç ΉS09&†(^—”¸ó¦Íg²ƒÿñŽÕ¡þÆû›Ýoìí°½K³s‡…¹Yz_€]zæF ¼fêjzqf±^p»”tG”bòœÛGÔÞ`ã(u¬$ç”/øøxü ±¤àŽšƒ2›P~$aYWßwtÞ!ò½„«ƒŸäëSÁ߈$Tá;Jݱöö¨÷K^7í䨩å˜(&í´$SElœ(pc~èEÂ)6–öq¡Â@[á§OÅ%jnʉ™¸J7DvÇ3©ð«z|í>»{ñ#$¤¡ëPáªM+ˆû·ç/ßN¯§ÿ«Ù›5öG¹¤ÄÓKSNì­éÚW³«ò ²ýÉ=­Ö»c’)œl© xµ.Úü9Š’iuÆ ¥·ç—oßcÉDx“n‰¸P“Á–ÞŽÛ'?»šµ²]5Òüw ᢃôÐqszçÁY§yà8°D2¿ÁäÛóÎ-ÇÜöòíå ¹ô¸ËT , ÕQ—)\˜8ô{— ~šV;çýI—ÙQïÐq*FÒõÞqG*@a;TPHÌû<\ç pJ޼ÓCd F£ÆöÛ*ó¥¥(ðš©kÜdÛŽÃaØâ¯1'Û£8x=6ÐôðécÓ®çyõty?£¿÷óâAÎV«uœ¯¹š¡„;¬´ìò-Ó:\C¡ŒõH´K:6‚^LÏ~µø;„7g¤µ#XðòŒª¤þCqv}öÑ'mÉÿ‹È9¤›DGN¥Íg õŸü^¨#E¬9…’ÐÆ27î´ d:šSà8ÞH0ý¯·.£Ñ)[fÂ)! ¾cÎË¿or´ò\;vµ4«T´+ŠºâÚ"€Ó•‹S¶¤íá.MF´“j}ë•ê¨tÇÓýÒa¬d[õe…Šì+•ç¯Þ ×3±´SúiàÔ((b¢~²ÓgJcqËF[ñ`ÚÝ/À>‚®Ý³·OŠç¸jÙƒËã€)Êr@E3`G€{Ô¯–ô"åtáqS©6§îüa£)ï‚6Þ{0(+г¬>ä±t~¢ Q„Â)ã]+åâPzýø@ãÅ–©Í‰‚õýP*íP9®—{"ÕA~sÐ.Žc©Á­GÚoÜ—m!ý i?~PðÈ„L‚“~ŠQð€‹dªØ>8¹DÙÁŒÆ³m#|A܈•©÷§|À’6o€¡AÄC¢À6B1[žÙßùÐóð˜ŒÂÀs!°{ÖxìdéiqvüaÚ£·¦ôòÛöðƒ#Æ6Ä/†é‹¹vOôs¢ÎŠÝsoÇþõ*8> stream xÚ}Xmoã6þî_1ß.{µQ¤Þ|w lƒ¤°iw/Þæ€óPd&VW¦\‘ÚÄ8ÜJ?ôô×ÝP’ Á&´ùp^žÎ 7€ÅÃ$€E¿~À÷“ï“Ó ¿¼›pð‡CBÂ9‹Xl&'—w°«Û¿¼[üú ÈR–ecL£àv à\² #Ú²Z•úr`?ž/ ßn«²ÈmYkXž˜¶XCn¦°UÍ:ßââVykÔf!S–øª[ã$X²LŒa7d;ã,KÆÛ¥^Õc„ 2. LYDxª›Y¾›Bi‰Å2Ž'ôÎZÕ€­Áùh×j|Ù³lîØªÊÛ&oJeà®ÆcëÒÌÝ‰Ó h…º8 PaÔ>=…³ZSEâÏÀØÆ1Ujø²¸˜¥NÚ&·ÎŽ!,×/€³ëY8˜o^”aüãNCâXÔx"\žµ6ŠuÞüZ{—.ßù‡e†ìû¯¿'õ,íöeÛFÃ}¡ÕÃ`ÙòÄÉœB0u¾TJ÷_8Ú¯wƪÍ|¾Pv>?×Eíòm>GOqÿo¾¦0csØiúŸ¿‡±~HàŠzßbØ'}diövÿ\—+Ç¢3÷¤ço[üÔZL(mAãê£ÒSØóm.õµQš²8¯R%)“¨Í›&ßýýûUï[ücàGœ½ÿAY‡7x[jŸÐ(NYDƒüÁ\z•Ûõ|~Ub¤ö_΀O{¥³÷øùÞ®_¥ƒx··ìŸ­¶åFÍç—ïO½½VÍ·²PäYçÕ|~VowË“NºK_¬Lød €r>ÙfyÒ1í²h°ñƒD‚ÜîS³Ãÿ{ÿÝ|Z.ƒ§ƒ3a‚œ’ìÕRËÒÞÕ/º*¿’J+YœHW/@cé$Wp†šÆÀot7¤'ˆdÈ„ €Ÿ. ÁR–P%ª1X‘j4 K)da3øc¾ÙV˜l9Ví¢vk«ð*—ºèÝênضʭ»7°ÎõªCCU[¨ï\åÓ÷®|âß•G¶Ìij'ÊJ³5ÌóU0L‚ñ ÒxÄYÂɾ‚U­I]çIÌRª´R+È5!‡,‰nªiꆠ°ðI*mV¬UñÕ¼‡ªó£k“¦t´AS·¶D»Ò2 °˜I×ÜÇ„$ü%”U5ð‡lÓn¿µò8a\JrîÕæ“XþÇÀ À2.(Ào°!Þ ¦ì±?.­µræ–ÖÀªlTaa¥\> stream xÚ•ZË®ã6Ý߯àn’‰/#ê­ìÒ ¤ÑÉôMz0mÚVZ–=®ÛóIYdöùº9EJ6‹¶ä]°H‹U§Nˆ§ãC žVøß÷øoûðâéáëï2‹Rñ´yP"À?Jd¡È‚P†©Oû‡/2ùåÓoçÁ<—qš0ñs_5[ñöôþ§¾úJT(ÅÛ±ªa×ér­×âÇÎ]"N#™1[£Ývåž„¾þ.*ðÔI³Tfyn$ÏÛô¢iñ‡ÝDôåFÿeönܽB•É$a œÄ^— 4ÞŒµèuÓkyÖ}Õ6CY5½xv‰òŒ­ »“¨«a¨5&¬µvå ÊÕP±Sb‚ÊÙ<¶hœ+D|Ýú$v¥’ —av•DERqéfèIä1QÒµ»–Lã³àеãg8⢄5c¿€ýÖ¢¬kÑnD5•ÛÃPµMYKÁ ç2‰ø‚˜@’Iåí¨Å®d2Y(‹Œ‰<óñLæþë¶Ñ¢o÷Pœ]R”Ê0™pÛ}$—˜owhžüÈ.!бAêíà¸ÔpÖ+SÏ+ã"–qÁ&–+~sðòœ ì*~·*‘yÂO_âBn‡AÁ““^dàßpž–îvp‘œŽÝðºÕ}ó7WP…J¦|¡ŽƒoÚNl:­"ОQp}ÚiXV‡ û¶1s†üÿš@qx«ÝÁÙNâÍ×ï—íØ¬&ª]»Ò}ß2܈ÈäÛÌÎជ0TîéT’+/Dµ§vìh}vì$´ëÌ;ÇQPøVVùÅÊ-AA£WéLÓñ8¬„‚ûrN”c¯ixìGs`Å¡EËNËS<8‹s ‚Š9ß\w;òUDëhP¸«º<öºãxaR{“źÊeIøŠÐ€–€jÓ¹ã,¡sã+ˆ"w¸.ÓŒû%Ö‚ŒS!¿ý j=0›ãÒ±,a,„#‹à°Èd€Üâ®\V©DNDÖŽÕJ‹²ŽÏ0KàMì)ÞWÍJŸu*;-4‡èX¦Ÿ÷\ÕÏ®yޱÀ3@R\"qUòÊ ÂvWb;]¸w´ a†×u8@¦‰T [èè(Òƒ;ŽS6±Ñå0vW Œ]ƒÝ iß~WdVî .œKw=t£{ôöâ>ÉCw_,ÞÂË7ÌÈ °ìŠ-ð\ ’XFLì™ÆθTÀ«(ñ®`¿†m†@vÅä·|¼YÊOÀx¸w5 c(œz@ôú÷QÃïz)^{Ñ‹Ëâ–“6â&t=ÁÃÂñb=dŠ™½æªPîB šæe%Ãâ¾ú‰JeÀµ)ëXåßqvÁC ÝPŽ¢¤¿Ž;ݺ°>x^5ø™!‰óÛô d³aÍ#(“…bãð¯mkð©Åîý¸ŸˆíNÎGÑcá v\íÊÃHZj‹¼$ô'ô%$êu½1úN‹ÑøŒ4Ä-ücD„hq1ݜݠACkô:ÿ88È ¥/)ÞîݳÌ×Õ¾ L³ô`àmͲ@ „Ž2¶çÑn7ÖÚêXr*™›ØˆîQÍ4‹·Þ?ex }x®yß[vȸýž²Úã™ÜO>êÑÃ"‘YÌVdמœû|Vˆù -Ù(R2)˜Ä’0-™kٵаƒÑûv;§§™ÙµãÐWë«»Vï!´\µí` ?¨Bx9›ô/>̆á‰&;šˆ)Ŷ# C^`ÐÙº!>§DnB“4AÁR{˜³G\e±¶G…¯•ëg$Li%&d È^mçX"J¦RO±VA UÄeÄ‹±ª×â±éÝŠ-N‰3„fÆ µ!ˆÁpÅÆ?Î ¶gQ:uE9@€BÄ||ˈA/ &PîM1çSU„5®¤ai>wá+øŽ cT™|!ã‘íæ‚â%«¦çS¾ýñ ж%ïE&(¹¸áÊîÄ ‡à7pŸJ…iæÇAj)–UƒuÅ-\¢¦Ÿipé\©»R’9 ›‹{8~Õ¬êÑ@–¥iÖõÏMIShp² 柳Mh«ßèX¸2øÆÏ¸arÁ™gïI ©Î¶}§þs÷¤`WD¨;k¾'ï"B8nÆ×_zCpªŽ3±!Ú:!Ó{å !Vï®ô´Ó½­U†ÓÚP°"ý_¯'M”i¡Þ¤ša ȈìBP|ê¯m÷ößLs6Çh{›wwÄê3;ü»»½G˜‡þDÛŠªËÁ6T¦ñ\;Q9G&“p/êýÿq[¡83åêßS!F^òDÿ2ov=x$TïÊf@ù0X½rt ©‹¹ÁÄŸ7T€<•11ÜŸmŸ_‘j;¢¾w…9uJsF\àŠ;ÁO¹Ì±ÿLl‡0V s'ðà^˜¸íᣀ3ÞH%Îzçóž3‘÷3.07£áúÞ«Aˆb˜«~é “µxXÆE„B2eòwâÒ>hELtq+[†``g³í*düéÜK}³€W8_šòi>9CvuÇÀRLÀë=QR\0a¯ \P£Ë׆†(±¾_kïšlà'ûRâ]#2 ¤ïn¥€ÝÌ۸ׇ²£÷¦µ^ò–b!Sńǭ»ÃPí«ÿ€-ý&G”ð Èœ½©uîÖÎDù‹€•9¿NÿN¿Ø ñ§;•ÿr $+Šníc˜Ügê)À›hê©;¥”Ê’³Üm®kªRWìBuŦk÷ ºc·Òöž÷Õv7Ø£{eÓ»Ÿ»²[д‰¹w" PB=JWÒ¾ó£|¦Žw¼DQmâ ów\xÓÕ·\sû ½uÅnÐ[wx~ÔÂ5í€òH´mšÎœ|Õ6nGø>Ymµk+z€ñذ¢*cZ1ºÏ†]±×öµÃ'¨ôT1Á¹lnrçîÂÄ[^ £ÞbÃ[¯•WÐS+à½]Ók¸µ+Ñ{T8J¨áîJX*lžûûÔT!ræOSKÊc€Ôˆ“´ Є˜öÓ%ÊRW”?óe6ÀqúµÍìkíþ¡Bé©h~ÔÀm“(«Ž†_•½ó”´ö_2óæîN¦ŽüÞqXÐO\aN§£”Š(wüªw'© ¸¾zÅ\A_SonÍr¬‡¹†??ÞÃFÎÛ5Y,¸àà+7–Ì£ãÙØì2¨ÕV»²ÙÒ3çþPÕôäoÝgØi>ú,D|'Wޱl‡í™á1q‘ËŒÌàÌöÏSP»Ôía?Ñg:w|õn³p±ßŠuaÃÏU×6´ç¸Ã"råíj$ÁÒv†èq×'±k}Z‡¤êÌ<ú|jõö"®½+‚M¦áÑ/OÀ{œákßBu«˜î.Ø×Ü©Ñ¬×Æ^?'âQÅ侫ýýÄ|ÏŸ¹¨’8ð>!pþŽðieék÷°±DïÅ“ó(H/¾rjÖ§éÕþîöYŠùC†ó>þç/E5`må§oRÁÙê H0žÉ4c¿5|Ž$h°ø¹‡¿-›Ñ6û Í{´ ¤™H°¿??þÓÃïôI#YAÚ¦*t¾£¦•˜ÿ¾HÌsvDƒµþ1/_ endstream endobj 600 0 obj 3467 endobj 603 0 obj <> stream xÚ•Zë®ÛÆþžb‘þHŠÈ4—ËëqÑÂq’Æ@Ó&ñiƒ j%1‡"^, }¢öG O×o–í¬$;a›çìÌrv®ßÌÒÇ;_<øçÏø»½ûâáîù×¾‰¤âas'…?R$HüÈ d"öwŸaÙûýÃÏ˲ô}O*N#^5u­‹¾ljñm^ç6}¦^’DŒ~ˢ̋|N ÷ºî‰èù× otÄ‹SßËTh(vZ|{zóý_Ä+ÁÄTÊË"Fúò»×b¨×º=”u]ÖÛ‘ïóÏźѨ›^äUÕØ›(ˆ”J¶ÉQ쇪/•ESCÛBRñË Û›àü¹è°÷¸<éÄc’EôR~ˆòõÄËB¶Þ DðÌ÷Â$#;âÉO$ÓÖJœ. E^‹v¨EY÷èwe'móXé=~³Hø¬ßµ:_ë5-nÛ|¿}Ó¬ÄqW;žãŽ)#ò½ˆ½å$ŽtLF”d^–q²wŒ á!#Ð-dÔb­û¼¬:¡«NÛ,!^œ¦)c9ît«WtF™#|3¹¥òd¼"Z [wQ¼püçÕÙ®ßÛv=;ùÿ˜ÿÂ^߯ûOyH/”Œ¦ÃŽý®iëÇŸ­ƒcÕb óˆÑ8ÝŠˆ†íŽÅ I¬B]¹'Ÿüï{2ŒþóÐõ¢À½&ƒëCÞâ~°BµyüObÓ´Bç0ùøJü—÷¢Özm6ÚçOÜ QÊ^Ëå}þ˜wzŽorW_JÒ¶-vXb“Ù›g™§ÒŒ5íˆtU‰r#NÍ v,»È$D6ŠË;N_H9ÑÈÁ.êaÿõ7›YÝçÃ_9»ŠRD`ìì5y%òzÍô8tðœ²ï¬L°8 ­iú¦‡èš,>ŠBÑéÖ9Sä9Œ8e±š{ /£ë'H<¤fFPîµh†žghߤA‹ŒÛ-ˆ‘š#ÈËž¼˜|ËuŠ(t4¥çx}}ÕÊ>äÌ8!×N‡œ@‹ªò-Û6cžÙ´"Õ;B•ÊR¶Á‰xçÌWuk"À‘‰)EIéE1'XÎþ«ó­©v‚í*Tž,¾}â0ô½$äºÝ‘ßKxö£,‰F×BFÿ¾Ð]WòÚ“"ºÃÛ¯PVý˜hïš[G r?E:K^‰§$[n³všÁG!S^Ê—›rLZ+SLÎ[EŸsÝwMS‰¢Ê»Žró¤vJÁZ€G°:`CÅ02?Ë+Ì—ø$ .X¦D *y.EJ¸*à´å#2õI<6ÍSwÏ5Cj%‰&â)Ï;]ÚŸ„­ë¶-×z‚êãI[× ˜D†œ“BœúD¼¾¿‘Ô˜0:ã­õÓg?ýþº"‡eu[Å~ ¹Fª5Ü»mN·w–AÌƬu}ošÎÈ&ßçïß–ëJ¿%Ürû-ºàäá„—pI€ª8Ì–A¢Œ,ªw|=5±ÖG["Ýè˘žKcyÁô?¢Ö8ʳÉ?æG¦Orxx[·õ‹± @× {½4³,7á™äòž>uKœ{¢vvœÌ¸®0(ƒÄŽ0F~¸Ö‹„hÜ“`òF°×’4 µ‰k}¼¡j´º-ˆEB@.À(†þZ†&èFŒ°§ö­hÂÕ5+oBG†ÞSSû~²3w%“%\éÖ®®êÌB.~ÐSÒüÛÁù߆¯™ò∽ölÄûûN÷o³ÓD”]²˜|ìêURºÛq#œóCîã)ãøp–‘Á#œ¹NêIG>9Ž•çœ`J,PSOóñJF#NÝÚÅ\€ã­Œ”"…eüMƒ[*¼äÓ”50³{í¦Ð¿Út¼5£{7ÉÖÇëšðoNg®G«Ór9:Y8p{Cp³œ½'õM YëtíJ5rLmíìsÝ\îŽÜ€n’”mEø¯¦¡üIlÜ1‹Ï3—‰SkãÎÝ|| ÜÌYÚæp´|<]½ƒ‰ÃÈ‘Îíb¾«{ ¸É%&“\ïԧ.1‘£çÊ!ZMº Ѿüâê Q–1>Ò]wQ£ƒÈ"<ŽC¬ð0o{)‹MÛìGß#¯âÊÇ»í׿ƒëÍKÂ6=Ù<æR³¤;#¨Bq¾Þɇpãb$ç,iL—Y6޲¢[( )Û\󪳓ûѽ¨jg¯©ûñÔE³6h¹ÛÌEñ¸FóZôfØdOàBb3¶·%øØz3ª{RìLK³W8ú†zßÂ…é2JÈm·’ñ9ô¿¡BEÞPóK")‘F#}Ÿ4Ó9m> ñ%# éÇ;&,M_8=m­¤'ýlÞÚ¾y9êÃý¦‹€á° ÿIà¿6ý4+8걫XkôOíÅöUþy÷\l«æ1¯æÒh®9°cn€é«ˆÓAÏGXn(Ì ˜»9’b"Ï»ohK“ ‡Ã‹q¯ å=Ž–Øïúl#ßÑå=¨‘`rú~&7šr·ø¨_¶‡2–oŠL,üÉaÈèjft³±—|cZ Çð÷â0<"ÅŠý©û¥:îï/á·µ) µœÿ¢¥¯–U_<“H$‘(öwôyžSQÝE¡ï<‚`yVxiéiw·?5»À6ˆ³(¤H2ÄÉ…¶ 4šÐtM/sXž$U‚j¤Ÿž'9Ή‰¾: M™&æôýyçï(ªô5ÛW“hÄ÷lÜÀ'¹HO‚ýüáõïï~¹£GZ¡Ïª»np~ò˜#Åüó™bæÙÝý(jìõ¶Ó endstream endobj 604 0 obj 3300 endobj 610 0 obj <> stream xÚ•WÛŽÛ6}÷WLóPx»»Œ(’º8@‹v{yI¦q‘†,Ók%’¨ˆR·hÿgÿ²CÉ’-ÊJÐN(‘sævf8r`y˜9°ŒñŸßð÷8ûi9{þ+‡€XîfüKÁwÁ§. BËl6/êMšÄ‹›åûÁ Ç%^(š€ž?‡å^‚Ú¼—qõ¤Aåéb•몬ãJ•–¸º„‡^/þ6ÉŠT>¨{†¨ç­yܨçbF‚ɧ8ÐúbØçš±R/fðAI£b¤8Þ A'‹‘âxË„kSùõµÉòCŽÓχ~–h8~6á«ÉV@q~ÌV€Úæ#‚è~X6ôű­Öwæ?S›ÑNÚµBqàŸª•ŸÿO­\(¶´àÐí‹!;½F¼°‰CµÖ½÷˲?áÀ=Å., ÎfÍwŠYwËÒ™àŽµÄýšá²=kVûÙ®ý6eˆËOS†Ÿ>‚“Óˆà##.mð±×t âvÊì‡~Õð0mÏŸÖ';:xÓsü òq|òÚryu|ûæåí-|b‹þÄBƒWQŽÃéÉ4#wß8Æ.'<yÿÍìãÌ,ÍŽk=ül8¯œÆÌöD÷|>ÑÉìgï G¬ÿɼ%º endstream endobj 611 0 obj 1434 endobj 614 0 obj <> stream xÚWkoÛ8ýî_q§Ài“°zËÊtH3í ØÎl;Éb¿0h‰¶ÕÈ¢JRu=‹ùAù—s(É/*lú0’÷yîá½Ým&Ýåøïü[NÞÞM^¿hÊbº[L|òðǧ4 Ô X’á·ëÉá§­u¹¬EAemhÍ¿ÏÊ¢3S®ÅýÙýË—w_Ž/'YÀ¢,Ù_þŸ»? X¥û}ûóú5Ý C²UdE“MܯI|ç릗 UŠº¨¶’¹¬ ͈®I ^¹ Ò€yÙÔUÐHYÑF¶UK¦U5i - ÅsSÊšä‚ÌJ@¸ú&Ô£&è¨E·åÊO|6Í2WþÞpÙJÁ æ^}vêù`Jø£{2òYìùû³ºûÏ|/ìöU~ãF\¹G|e^´k×s¡¬«ïài«”¨ b[ÖÔjáÊñ<–zÏ ÁÊѳ²žáÞÌu"žz,ôÒc þtSÃ_ #”v¯¦ü;$Q›âêJUÖK*泋!OX@±ýh¸Ö©Š±q†0ôéús´e,í£|[ZœÝìmû¼¼êPÓEÿ$ot×Ϙï÷)І›2€€ÇbÖ'ufèæúãÇ·×7ÿšÝ~zwóáý‡w¿»2¼)Ëü>G°þ®ô2îÏY\-!Hµu ×g‹Š/GeS8Ñ'È­¶hŠòö“ã\ë‡ém]UmmDoèúÓ2’xUÉXBåm©ê²·0Õ(Î\h*«!²Ð?Ir-D¡/,šr®®ÐŠëúÑ~4°Ðá•»E ¨aL©-Á¶âÊ•ŸLæé±üFÉ%p …Ê«µÔ†–-°T¨†@pGWÌ|!f8:·<cªŠæ¢’WEœ" Ù±ŠM‰³9Œ´±€C›cÔZÑ‹RAiGTˆ‘l—« Íên],GQÊðq$}fHB€Ž¢ –y‰Z¼ yÛ9¡„õ‘jYÿ!”¤|ÅëÜ-Ñ(LYøÇ*† ²y½åÌz»áßíáïc÷qu¥) ƒÖ¡¶€Ñ+¹¡¥”*t[ Ô¥¤ üâs´*—+R²ÁµnU·áªðSæ᱊CP8®ì"V ‰_@I!;˜~mÞírmä%, ô·Þê¯UÓ\]Jüêj(2”¯2#n‡Y‚Ô¸/¹³¦ÅÙÇÛGﱨZ½ê®wA]”Cr»Ú鄋•œ&êIÙ|j¹‚ŽGI®w‰1|^YÎÛ:_u/p‡ S¢\Û ‡4L„ô¤nŽ Œð8IpȳÂÜè…qŒèJ1§û3]þwŸÊŽññ†’éü¼Dq¹ÄF1KC÷‘üEÒ½õPˆc{ö[½ h;)>YÜ c‡þè^ô5Ó¦–=š¶ÂþÿÑ@Ô)/˜Á(WC³0 \ ÏÝW\Çs¨o\Û7Àݯü~Ìüp$سºY‰ +)žP¼×]Ö¥^azËÂèDæú·¹lDq(Ê›û³WÃJP­×@EÈd|"a¾?û·Ç‰¦“œïJG(EoÞЋ÷¼¬,Iï ð\@xaÛ¦odQ!3éHÅyN"ù´t»© Y¹yèêÑÚ×l÷Ýa_ÚÈüaW•à5t`µu¥ÆVŠ+= Y ÚÕž}–ý‹Âk+ƒÆÆ¸9 ‚…QðtN?ƒþzÜÞŸåÍåOÃò…9ä†^õQíL~qÿò‰üú!ó£ðÄm§â÷ÞÚþ,M E'¿’õ=9Ø£‡Áñqž~eŽF Ò‘ L5>Æ…4 Äu4:Ì7£FfèejñÝtüâÏ1…ħÈÕ•` ôZEÇžÿ ˆÎÉ·‰#÷:†”0žb|LY|2¡Ü ¸»FT{fÞ71Ã[ŠH}ÙÐ;B3L+ñ!¯”@m Õ€ƒgˆ¢y3·ýOðध ¼ÒÂÅF˜8NžjÞý¿ (¬§þww{É]úàɘòõ¤÷ìz·œR5‰#ÏYâÀ~bÙŸµ«ÕdÑó!Bz<ˇ˜ ㈠½[’Œ8¶!Ãì,Ø)s¿ìWàªþü°ì؉·¬êapLÑÿ&=[ÿº½ýüñüœ¾… eicE¿òºí‡x˜fï]ö> stream xÚWmoÛ6þî_qMÁiFE½¤í€®KÛí°6Þò¡.Y¢c6z«HÅñ†þ üËeÙ’%»(æ -Rw¼çîyx´`²Y0‰ðÏ[ü½ý6¿qÀ'&ó (x6x–MÜŸ¦£1àçü>‰D„J€^(Dy¦¥c(…Ê«2 fbž—–ăÔÇ“¯]ƒn`'p·Ó•ú–ÅÅÅë<ËD¤ež]\¬MÞˆ,žŽ§ÇÏû&<›X¿5Q ]•Xƒu.%~Ôë¾÷ç8%^=ó½ÈyÚ¦„Z¬^ ³A Ô"åÔ³i(³©YayB´Kx†ãûÏ_¦Çý-‹xÖÍ{s<°·ÖÀ<•sˆÅ\fx÷êï˛ɻO—¯~¿Xä¾E˜åuóóVhˆCÎL’Â3¢ Ë0Z” æežB”§i˜Å ‹¾EÏÂÐýa‚ÄC˜‰P&UõÛïñeˆÒØ™Ž×á›À‡ã<@À‚­M o:~²yõX8ñèvy'Ét`š„Óvm?Ñœ„RÖè5—nê7Ï0@Ü–á BÄeS„àZ@œƒÔ=¬@ç …ê·|P§ë@/B½6ßÂ"#nó<î°Ci´‹.dv‹á… ,óòîÔl§ç |„c‡„Í–f" +U[Ë„ˆ1‚–FϾâÈl; “R…KÜŠ¡U߉ì§n× Ú0//Dt·ŽIêGù]XcÑÝ~=»±›,¤ê;ð|ÂèN©&¡Fpj‘WIŒqÜã£y(ãÿZfq¾T§0«4,%†±™IóA*×Ç\û;!`JP+¥Eª ÊÆU^ïLú•ÔòÞ¤BÊ5«$îa)õ¢Á«ï‚{˜í ë¢43vM…bêâ¹ e?\ž=#úAfÝ8.¡À¨ñKJú¦à¿eSš….á%"²„+i¸×&÷OœŽ· ê³ÂaávË ]®$sl0ÛÞaÙ–ìWQ^ˆ¸SLQ1?kötŠöª}^©G¨Ív,6T/Î~í×ßÞ;–KÛÙ1`>‘(KxñŽ>¬®>¾?9e¨²G]gKw³Õ&ã À¾ÒsÀ1æ›O­ÛÖ—Ú²Æø(«¬öW¦þ‰1 xd$ýà™ï"äîÀô!ábž‹ð{;ëûâÅ\õŠãñj«1 u´@¼·i¼|ˆDaò÷ ìÓYæpâíæk õä³!:(U2C® ÃMàD+•{‘fœpF÷"-ÈõÂÔÀA0mN³ê`”ÊØAìÀÁ wÔó MæDNilý#_QÝT!3Py*šŠR„ô‰jû†Öf:2¥ÑRCgÈ Q}ÊÄõébDÑÈd”—%b–¬—.ž0G}ûžƒÁ{èŽêmµ*K£í:ˆI[8ª ë^j\eJÞ‘ÂŽez¬eŠT´ 8#kKkfbB.dÇç/¨JýZ²F¼!uRœþÌß¾9Æwèÿ¶ßÙŒ0Çî¤-S”üGÜhȪô¦I8Æfæó鸉ëô¼ÿ Ubh”괥ؗƒuØUN –9°‰DÏÖsð¢»çpr"÷p—b#í9|(¶¦5$~Ù”`ch:6E#Êæëé&™pr¯S߯ ¸‡Å¸UˆhÓQÕ\W¥Jž9ÞAñ=º0ûF(¢<k+«}%N]±öZo)vüüPo©ƒ·~PI(Þ ·»J2Á†°nõ8až„· L³BéÄ*‹±ïÐØ´`“†-}¼mWe¿ù¦ï|§[­[·¦±˜ÏO‘¸±Dßv]mk·n2•Î <ºû¢EñêpgG´HQ¡ ?^?b%¯Ì“J-ê;—qݸÂö2”µÃyœZ5Q÷{ðþâñ<¶~Eá]…óÝ‚R‰ØYІK—“íz Î(ê,ÇÆÈ\êñfèC2âŽÕâ‚í˜áp½ÖŒ£ùúŽËˆî—Yo¤iƒ> stream xÚZÛŽ·}߯ À– ]ªïÙA q¢ FlhÇðw†3ÓÞžîq³{Gûʃ? _—Sì˰8³v$hÕ³,’ÅbÕ©SÕˆÛãU nWøñüÛ^}q{õú«D2·›«PøŠ<yÉ¢LÄíþê…˜þTâ"øìåíÏL0ˆdV¦Lð¸«j-î^TâsÑ ûŸú]§ÕÚˆO>uCÓTÍö‡êÇ»—âÕ«Ê_/+#™”Ù²Þ¿ýñ"’Q™/ãÏìu÷òlá<’AY,WíЋÏ?ºY×ôÿÇoëZÌšš¾=ôú£g‰³ÕÒPž”xýZ¼ßa¹ª «¬Ûc#¥ô§$¡Lƒp™´Öµîµ8´m}軳 âPÆAtQÝ3Ù(”a[Ù?èÚh< dœ.óîÅc[­ï^ªn»úLL8ªŽ.F˜_†Êìtç¯2Ò3}°ÆãÁÖ‚¢Ó˜Üi;ª~1潆Öê¾þ-{¦eãdÓšuµñòg<]_§û¡kÎý1MKœµ´rÖw^‹0ðÜ; ™ãv·;èç®R&2N˜Èµ?ÀËŽ®TÇ’KµÝƒǪ߉û?˜p˸`Òß¹ã¢(ájUͺe"!–2‘£ê+&•2™Ô#Ocfl\/¥šõ¨ÿ7ÿxÿî_ó¯ålÅœ£D\†2ÉEšD²œ– ‹ËËB"fÝ]Åz¥3o~3yˆ¸wµMƒDü4CU“¦ïãi”.¢©Ÿ°®Fˆ17 aÂ,g¢j¨{Ñ6ü²’RÆ\Œ]V˜Bû—æ©zº"Gs |ø”ßz ã’I²¨`LƒˆMÛá(•‡®Ývj/úø"xE+TÇ“îÄ¡V=d÷FŠ÷Z uÏôI|î6ÜÊÀú”Û}} ‡‰s^Ówê¯ÚÆööH5ß§â¾X¯sV8òñ\FÇ s_ˆâLæ%“!_ðQ6¡ü1¿Ûˆ§vÇŽ,Ч¨µÖÖÅ ½V;½BÄŽ&¥…‡¶ëE]=¸ËÆ!°˜­l—†®ëivaß蘖lÞ#Ïdê¯K1K>P.ÁU+n„¤@ªNÙ2‚h­ŸßCÊñ®=Š`ýúéý·õjDçÊ4Ÿú^_0ñþâ]†E.Ô r\|F9Ç]’ïÃðHަ§Ÿ}÷DÇ,ö"J>›ðyT„l¯W;ÕTf‹c– R%|[ìs¯V£ f×úf\ @³ÇÑo°ÌØnNèØißb¹,™<Ò?ŠœPÝ•`f‘ s6®ªšpPže„‡+÷VT×W«¡VX«f ¨–¼«Å~èBÆq"s¾ÕQ·0ÎbP4^“­˜ï'I&‘ö݉ZìÄ\>å(“Ëó ÁÚò„ Ë‘',ªèÞ í±WU3u91Ѷ¢x»8ŠJYæcƒ=—±äÛ€ÿÆ\FüU×ÈŸâ« :Ìe˜¢•Ë…8@]'»ÉI\ìe“ IGÈk7Ä6”OúSó;›N׊J)Ó«¾ZáJp ë1µÆŠZr@‡ tÝL.3ß¾MnǘRCàw£Â"–Yü\‰ãŒuÄU­¨‡sÙxaaNáN:YðÍ›Q•ŸÔZß½¸{ù àÛÙ"–Okä¹=j:©Í_ó1•%8ˆ*¬jKy5“”Tê³³P53ÁÊ%OQ+O’dã˃{¿o„® mYPŽÔÏôèJê<º+ó\I6 IñÎ'_ “[¦ï¨–s^ñL7”ùõ0…»Â‘W1@ÁöÐT'>S^Ã}Sf.8ð {!Fíɶm~[¯„¬Ã2j£û§ËÛ¦aDï]é7~Ÿ:ç);¨ñÒQˆk²ýÏá@¦œˆáBçÄœ9n÷zºoRw¶Yå­ÓK1¿ÆŽ«-Íö•´¯sB:³MÌsæŠé+9¿œ¸l°$K©ýâÈ[ªºÚUuÃß¹e%Õ?ά㔮ž+àal— ùÙ°ëŸÏqxkH¯·•J$Agü–Âu.)¿{CXpàD+ÔqLíCD¸û¬ôÀ âI“… òq%•=‰ê1¯AŽ3…¢°˜çHv6¯ãEÏä¾÷Ã$ÏÝaÜÞY›Ñò3W¨_nئÿjâsÏÖ¢}e ˆËKŒ;OÜ×U Æ#eNMWâ举½úÞû7H¯p¨"ã2û«0IæõÕû«oÇïÛÄ"ó¿mCï¿Bç$´À >Õ¿:çg¢!ü:ƒ®Ž¼ .óz&h»‹›„e(>“¨=& ØpĉÁ&Aá#žŽZ,Ï“N‡Ù+ŸmÉ»µä#n[¦âŸ†È°mZMªÑ¼›q€ô"; öù·Ç¿µ±ÉKÒ–’Æé)°jŽóç“Ä> stream xÚZÛŽã6}ï¯à[¤‡‘¨{Þv²;‹6@.½,`!Ûl[3²äˆR{üSùÆ=EJ2‹nÏ,™ÈQY¬Ë©STÞD2U™x:?DâiûðÆûùOü³xûôðûDÄxýü‹bQ(QıÌSñt|øÖŒC=êïž>®ï«Df±/²¿ø¯ãHÉ2÷ß?ŠÞÖ“Ñb<4FO-É’s«˜œ‹§(+ÉážGóª’ylUÇÞž5pÆóÐW ð¯z§ù]%±ÄÞJ/M?rõÐ©d‰¯ú5%Y%£‚©<Šâ2‘¢6¦XØSUH¾‚Læ§lÁ'„ºï`¿ uø¼Êd¥ØqásçhMlßÏe!Éù‡wÏ} +¼Þ‰cý‰%k‘H•ûZÚÇD‰RqWõ¦Fê=¼°h•L ¦9à4÷Ó4ªd\úò_ Aj¸´¨‘yl¶œj ~7§ûï¾­ä—"“YfW9Ô¦û&(è´ô%°GKk|=³â¼ò¿v$¥˜8bntû,C[3 Œ²ïŸ-vÜ1 NQw¾ÊÕ†_ú¾}ÝŽ¸*­G»9ôS»såy§”òBƾ¢óöÍXãßþñݽrйš°BZ‘žèŸ…®·qæ“K*Ú«R?°äMÓJ¹/pÍŠqqª²8YÐ)UaÕ¤1ùƒ–8 ý¦ÞX<æY«\FTWÙQ ºm¬4°j×lGª8›œØw¸çÂ4—*c›î‡zsßyªdÂ.<ç­­¡cH™d%ŽËL=ß+KÄ3OR_ô«ÝÃ"Sýà ô8 p@‡èÅÐ;ñµføžã“¸øÜšªy·8õH‡M'ä÷Ü7$Üô/•¦°¸ò×2Ð6¦Ù´šVÛöÝV7Ì…*F‹ô5^øk sâ¿Ö”Ħ§šöð-Vî·–hm.Öõ?±-TIߘ¿ýòžÊÖ¡G>»^œ.=}«F±z&ª»JœEÏ3TYß®ï_Âü­ ï-e'îѨ/§[§1 Ò'y€&yŽì àéNÛAGœýóŒþ ®t•aêìfRüìÞïô&l^I•zKOû½€üƒÝÉ¢(=É‘Ü JæÀެùÔq¿dhÿ‘¿øY,™AÅEjÂôK[W7N‹e¯Ý2ÅÈå½¾8N±š8Φ~׋GZTF± <7Ùu¢$B`ÇŸ%ÑDøùòû¯ÿúþ{€/ªýiApôW FXÏ’Ïp¾| ø3ð€¤pIÙº³Û@u5šž!¯ü²ääÜ}=T)óÜ_íøh¾„y,€ÙÜ‚ÁaΩ]oÚþÁc»¯vq Àlrf´q²Èmõi Š<ŠÐq}!éŒÅË‚°cKŠpW±„Ÿe¸Tœpñû¡ȶ%ŠÇhJ9mA õR`IURŒ^…³¬È.-÷e^D÷þkÞ 0‚V1{ô±>"žÛŒý;Z”&@¢~=Û ŒÖ‹É¼ôÐÙÀáüE·1-gõvM“Ô¼r¡P±Ö´Q´õ.özñc‚ª …St®EYÔ*¥`ú27MäP3!#Íþ€Öµë§Íø<µóèŽ"¥ ]Õ¸t´%KfrI¢¸Ä–<‹¿>sƒi%ßVƒû¿½p¦±Üäørõ…Âp™ìõªìÑö >]Rç (kÍ sB^2©Ï§¶nÜT£uoÇ׃¦ÛE¶X?Ì®±-äÀŒ‰s%¦sg LßòKÐÖ‚‰¡‘ aÍR5@6üYºQÎiœ^K„n\c&š2×Ë ?'=\\HÝPfo®*e•¥l¹³q— ukzÊJX>Z÷ÏðîXW;±àBùÂiË2\˜ €Ž(.*Õ`Às¿ÁÁ½á'Æ?Ë;˜}™y8€ºñ+¦©Tɬä+”@1O-pA¢ow>ObB¥yÃ×Eö“$²c gÈI!#ÐV¦s]*1Û;ïä ,ä'O*Ö3E¿ùˆÔu|Æžö7ž‘%íΔÏÜ>ÅR[ø"d_É·Á,<ˆM½ý´ ó7;»ôZ.àS{;FÚªzk1×4ýè&S l^†ÇGÎ#·½…W¬J+`±hùªÝ—~¢Õù`E²ŠJ&…6û—­tÑöüÛåÆÍyàmpÇ d•ò=ƒ[†Œ ÌŸîÌјÁ*~äßúóÊä dgK ùy¹l¡ËüøsñÜq1o§Iˆ–ˆÌËM¦ÞÛ©±îì2W„ÐZ½ð êµûaЫZ=ÏzÕÃé¾9Ç0öÝ Gø½¹Y€Îtæ#~%+Px <ÃæÇ U–ÅLjAOUÄáé³t•zÇÈNÌ^†°F‹ñ/«˜ÈçšæÏWVš§@t|ib¾F´]`µ64*À×-¥`GÀºPJ"ƒ”Dã6®Æý4³²škiìƒ8rYñ3ý‡;&=½Ö ç"A—eFë°ýÅ4³úr˜9 “•/Á* dRÆü}ß숬µÍ³¶WT+/±wü %'ÜäÚ„BsYÀÛ[$0±Œ±–Þ~5´(]±5øwCš7#~Èð¢#QÑúîþê¿ïëµ(³n·t„µ¼€Ф½oxÿÂH›±U^ìðpÐôý‡ˆìî– ^Øt;}Òø«³úÔÀÈÓåž>j±›Þ$º"‘ßÍØÐ½ÎzƒÙŒz—àx*cK<}Él36h=³{&lÐZ{ÛÚ¬pM=b>þ‘芡’y˧"gû^ôNÞý<§Ê+ŒødÝÁà8£Œ3¦q&| (_\bÖO˜˜=JæGñ^l†y&™NÞwhÊq¢Ýmó‰ßš&Tl5øÝaƒiŽM[׈l‹9Ûë„EáÀ¯Š+\Ùx‡T‚"ø’u3ΣëF‹]c¶7ôC¡_ûÜ/]ßpM©Ðt¦Ù­#Ú›ûÄv¾¹ýO¸²­øÐ]YLc Ûƒ,>èö$&";W>Tn4ýuÝpÝXHY¹vÒ–©ü ˜ËÎZw+:Ó½ÈåM×w舘Ss¦J*ñ“øº­T\h¨[ô}í¾jm‡Ú¿9õÝm8~»@˱nZ«5ú–z²õopm™É„ïA)«ç™¹æ%¦à.ü Kç}`ûBw³°G«,ºÉÆÛ™»ª¨bÂtiOTÆÞ‰ñᬓș°Ö'oÇ8ç»+76ÑÜëQõ£ÕÛ5ÈDˆ\æˆz÷Òl-O: 8ƒqÜ<¾ÖHUâÁÐõsî†nÏ܇.WüKaþ^âF?ì戙E°<­‹Gâ æ©,Ûãƒý^JÏËc)Ú‡,‚G¬Ï ,=žéÿ¼¹Îúb*•û„[¨›­ý‹T‰å„iÞ"ü±>¡<3·÷úì®0æG€ð"-dînš¼6‰‰Nü›¾¿ý\w“ûìÓHï[ "»È;‚ýþòû_þ| GzSTdm+ï)²f:‰å÷UbÑ9<|ÖúÄïu^ endstream endobj 627 0 obj 3143 endobj 630 0 obj <> stream xÚZIsÜÆ¾óWôÍv™l£±ÃU9H²ä(ey ™Ø]ÀA Ë‹F㟔ƒrLU~]¾×Xدg §\¤Aáõëî·|oƒ'îŽWž¸Ûá×÷øy¸z~wõÍ+OøžL‚XÜí¯”ððŸ‰/Ï—~¬Ä]}õe*¿ºû}}™¦2Œ#F ^´Í¾|»²yoN·¿üðõ×´ä›WPžÃ9Nb™¤©Yx÷¨E¡÷6{¾U>VƒØµÍ'ìeÛˆv¿l#Ê^ôc9ä÷•û¶uÛâ0v‡¶×ýµ¸·yQ"ã”ñ1<êN‹œ~Ä^Ûô¡ÊdÌÏr9nÙ‹S;Š]ÞˆÝcÞL2bŒ'-NÔ¡KíûR%Œ|7‡½Áê¬ý®+F¸èk> ‚x-Ú •áz®¸rB\KyüФžÂqÆD)#r|ÑwEº€ÝE{‰Â•î PÜŸ`ƒ½®6à©pqhnÑï]–‘ ”‘‘µ…xPÖˆfè•rîW¤¶/›Ý# Œ¢+›~€h'9.íÅØ ä@Æ/ëôdpG&ºHÉD1æm÷®—âõžÂßì°NÜ‹Bð›¨]ðGDŠQèŽo }ÊŒQäýr vÙ@MK7EÞë…®M<>–@ÄÇœ”„Œãþgâ;R0ƒ«m¢H¦ü*â¡—¹+8š›ÁÛMQ.BPîŠÖ°Ä³hÛZ“Šïˆ¹Èåã*h377´ÃM}êßW.Fî¢ë-<@Tù ÿ›²ÙUc±!™ ñÎ÷!lÝ}æËÏl@ÞP¬¯ÿÎ`Í·Z_Þ‰DŽÌ+ &ò¿¿|öÝ›—7ÿhÊrø8løpÌ™ÀVèáª_¢€œ‡£Jˆ@³¬ø±-¥¤k, 8Ïr{&ù±Wû)[éÛn [Ènвßñl(‚F)[ÉÓJJ=N yx#$O}Nr}/}¥dÊ MÌ76Nr™Lþ)æÍH÷Ͼٵ…žR^D~hr›+—À:Lƒ•æ".§»±ë(½ýþ™àò"©bÆ‘ö7+ù±†²ž‘”£LÿSl–´‡coIo $Djª‘ÕÒA†0ªxÙ+ö¹œb¯qaáMQÀ(>æÐ‚~ ÿ«ÙºTÆHÿÉß'„pöû’ºxË!Ïû²št?KªÎû~¬—¿$¨ßòz&ŠT›ùîÛ·oîÚ‡.¯§²äí[ÃgþŸ+"2ýdZy‹¸ƒj·1§_"ÞÜ ¡šŒÑ¶Çžj`ƒÎ“Ï*[- ŠUVP =/@Å¡+óA¶ýkÏæö‡±ýaÓPûãMþ±¬!ÐO!÷° ÇZü8Ö÷p]¸ì«RWÈŸ98ô”ôùŽºØly@q4·›!-ïzù±ŒCF¸§sàÙ1eâ£jü9F’1ŠüÔSBK A ·3u/""Ôðlñf+TüSÙ1ˆnlLxû–… ‰¨Øµß±÷©’g®kò=-~™x3¹†1¹­M½f‚Oî†Js¼ÅQoyÑSô´i¤àXéQjÂŽMË PJƉ / Íò¶*ërê^ÁØšÕˆ>š’ZSðì)Ûdk×n†CiS0Æ”àP\ýhæWNÛ´ûO¦a¸ØÕ!ß½ËôÒ;<«G£heÔÏÌ}µm¸ˆ^²ÊgŠÞº¾o‹“9޹’¹õT´làÊd’0fÈÒ¿!Û:áîòq£. Ò/û\Y€:ÛWg›ô¨ úÍÒÌ]ƒp”£~~Ðî`¤Õ÷?뮚kµ~®³\#ö{ál"9bC¿œ˜ ßUŒr¦†]¾Uµ!ÌE|‰9‡x+‚ø(M"d8“úþV.QwÍæzG]ŠGJô¬yŸ‚›mè™Øk¯ÜÛûo°¢K.ÿabç゚ Œ¢ÖÔ¾Ÿb¤>‡aQ·^C5Ì TS_ºÓïÇïkyiïÓLÑÞ+ïSïõˆÅÚ Ö=~Ëbxt±Öãíã[ïnçvßun×; M€é6ý·R {OóÎûr ÑÅ¿ç´eÖ=a×µ½ëÙñ£¾àÔab4X¥é,d}ÈaúR¼ü¸Óº8Ë æ!€+† \Yíò‘€Þtlfa|/û{Íeâ{4³e‹y¨ <Øï5™¡Shî6Õµ€QaoŒ„Cm¢ØÔ4¥zè`ûѹYR<¶iÏlCùÜ6¯Tظ“rªçÚˆ: OQÑV*/'|ÔU³Q+Þñƒ´"ɉS¯(Å9Áiò­±Ÿ:ö¼Ö"Ä„=UÖ—ó<Å8Îaêï8ƒãKìû.“z—H¨íûŸa5ÉÌ{B•ÙŽLiCiÅCS~ÚåfztKk¡?ÑÔD÷ƒx(_Ó¡éyÃ5 e–¡N¤ìÉdEwž5ë ľkka |œx˜pmD%Ûðg¿{Óš ,Ö®pã™ÕÚ¶0÷7ícÉë¹Ðôâzú¸¢*y®…TrÚ»iêìaQÓvHÚÊ?¦`]b³Ú\áåÝÕ{¨åoàr¼¢{„Ð$êÈúJ…áúWuu{õËô™J Ü/TTK?v†š¼KšO â‰è‡²?^‹Û¶Ê;j;‘`Ÿß~‡§7ùNüt+~3#³i¨ ;¥†k{ ïH 3ýo¦+ýú»—o¿º/NDz‘RŠçy?ÕÕ¼‡‡¼ÈcG¸4< ~JÞð²7C©Ú¤'ó™É¥¡òà[´4”sµ©H"4Ùd„ KÞ¨xùtãL®ÔŠˆAå™\QmÍå#Œ¿åxßiÌhÝæ'ñ/«aþßÉ]îgÄ23ÕLóç4S>X™a@ϹÓÄ.!aÙìºÛµ•)ØÌð¸5’>‰þ„X\ÓÈr`LBFŠOLú)˜Æ¦Øxœ…<'ÌÜ«ýÊ¥žHe¿-›‚áAD#^ŸþØ_J'•¢O¦ƒMw¸†s6»IT½F$¥tÙAð|åÉnøÄèØT-¼ºÒƒ‰ 5ïeøô•ÉõiÓR e²÷mY,}l2Ö|îp»cß †-±½ñó÷±7ŠzЃ;²W4âÙ>I¨R÷$ë÷Içßf”z¼…$dªú€¾ƒ»hý^²ð|ê‹pëOäCÓcœáîÂpµEêE6Ñ:È©íÝ7ÐàprÛ6צ¸­ó²ð)Ñ·0NfÞ(JlÞÎDÛ—*Èì÷z ‡Å2f^+á~Ý¡^ž»L‹ '¨€„çÔ—Íw¦ÚBq¨‚õsBKz3$¯YÇÜÛ;Iþ˜¯,œœ$±Å'wB¿t TbQ˜ÀO?œ¼™s—/cú¶¤jÛwë|nú¬ÌéñÛé’k#%˜ñu Äæ0sòÔ¶;û 3E¾êV[.,'8@ÀÚu“P½ÌŸIìçñS^ãæ#Ù!Õ…eÞôË—7âS홞Õt¾½Õ ]ÌÛw*X$TXúsC®™²3¦29•ÙLÅ_tÉh™w@£Æ„(ŒP.óEo-Æ_#Dõ¼ÇƒB¨ / 3ȰCÀ$z=¨±ô'R>Î@•2±ì/2¦¹‡â„$ê5Í{jO!GZyâ˜EbWS¶›çå1Ež…žó‚õ9ÀãDKOWû%§r®ô}Šœ?õI‚³CØgHB_,ÔÑš6sÿXŸLªšèççùö'03 ú`Êž•|€ ÉHüÉZƒ*q>­»™xt.’“`þý/& õ½I2:m¬|ëÉ3Çœ(–¿Ÿ(–5W¿Š¼þÆD\ endstream endobj 631 0 obj 3828 endobj 636 0 obj <> stream xÚYÛnÛH}÷W4°³ƒ±ÛlÞ9Ø] ·™˜\fì `€€–Zש°I;šOÚïû~Ýžj^ÔEKÞE™«ªëzªªå‰›‡3OÜ,ðñ3þ­Ï^Þœ]þ…ÿ\)áá‰/¥dœˆ›íÙ_o6Z,õêû›NÊó%'Ê»²e±-Z#Úf/ÚZà¹X3®Ì“a¸Z-rFã«Pz\rQ™Väe)ê•h7ÚhÁtñÓhαhëÆˆ‡MQjaÚ¬·º¨ÖbS¬7BWu‡PðV‹ÎèUWЇ¢Ýˆms^¿teÃÆ8ËF¹KmŠueäœ"IFŠ«•Ø×Ýw.A–Ê,si-n™WÈâØ¥èŠrIê¾Û_ÿúË?ˆUSo…©»f¡E]‰\ìʼ]ÕÍîÈ[²ÁWbÀ#‘+ñE×Ö‹ºZ“…ÎM¡aëƒËú©L™1¹âb“Wk=8~paæ.ˆ£CHNz\wMÞж-¶úG"¿ü)©Œfy±TYdYå%éX€U‹‹ ŠÉŪÐåòÂû÷ÈëÅÉÖ>Lð³OWR!·^!k™6fÑ»–ìÚå¦ß fBýXÉ ¾X?ßS饌Tü;_Ó!$¿en|_fœ¸uSªQå[½ùmÍ££¤ŠÛ=³—ú\pþГ~ö IrMSØ4lŸÖäÅ2æâ,Ô«ybP ~$M#Å^~ ý‘ÞugÊ=“¨4¹£÷QQµºÙ5ŸT ¤™Ù›VoÊ¿†¼Îg2I™ôº¹;ç5dˆŠbD];iP`àg/ˆðun÷O<#2n/ydæŽ8iQ º›©ÐM·ÛÕ rà¾ÈGÅH&cKzŽF²q¤ùPõ¸ ?5h˜ó'¥Ò@¦cÛ&g*xÈ@NsÏßG”Øî{MÁXŒ*€ÏItEO¤œ®Ò(¡ÔqÉOW)Ä("´åß4F—+É! ¹Þ7”m[€d£¿v kH*›9yµœÇ&Š'ö]×¶DZ´`€j» Íè±1­oyüÌ:Ç‘rO"–u¥m+°‘öUø/4Œ­FEà}YÜÍ“=ULŒžj§É Ó{¼Çúg ;òáü¬GýÅô·ssU"=ä„5×BœùZ¹+ÅÅJôhîRSR´Ê‰úk§›=ÊŒ1\Ç€<cŽ6‚Ã@ÆVÈûºí-±B¶uÕìÁÕÆ6þÁý£¡ó´‰dfLð`é‘C–̉QÔ·K¤Í$ûa„9|ßÔÛFk)þèS m@ ÑN:É#{]+“`’Ÿ¶hn Q¨< èµMˆ?óÛÒ–cgõ4©…èÁLêˆ.‚r¨^Ê?¾ï-9‚žÎ½†rË™Ê@òQÑnpñ²k ÄĺA¼/>^‰·:_ê†1è«^Æ8ÍÉ ô=÷¹vÕ2tK=I19¼76þõ˜ Ë|oÈqŸªâÛ~r|5ô!bPu® D:’É5ÄPUç'’*ôE.ãvÒ8n[̉Å!Ÿº gÙRŸUSèA·~¬Œ=®Šò€).uQ-Ên©ë¢"Å©ªð~’ÉÑIqÕg>÷ ïÇ2c„®s ª'¼@F™ËzÙ™ærPÿò9‡bSàœçâ €æÝ ócY‡ro•úCº]Y¹D6¹ÿ3 HadF Z¥ æ oÈq(}åòP«/óŽ»Ý±_e.×ù3¨Æ)]çw[€<äŠ)9æ‚K×-j3'F ª®$ûS-ÄmgWK3³T‚jŒã{Öu™’v$—þÿ…4™3ç¥|=NæJ‚x+&Å´ðI+7'2„†¨ a[iá´Ãáã7™ W1£×Ë Sü©íÎhC´{¬§.íº·ûÆü>Ž¢»Ú˜'ñÍ*)¬V.óÍàÍï|›I.á·VW†òw ¡½ÜtýŒµo¤Fë®øÝœ/ƒ˜‘´b¯éãqQX¼ÞåM;>BtÝbmÈ›å9xkÍ¢ ¿d¤1ÌRÅaú :Œóßñˬ þì\~ub9ô璬ôpñy2)G F-‡l •šg6f¸yæ=ðû˜ÈîX.aÝÜÑ5­Xwý€0ÂtEóʧKŸ$`"ÆÂ7v}BfPš4ºÜ“ÃO®!ŸÉ˜Éyκ¦fôcÂÛËdn ”©Æ„ÏKS÷x œá£7à%‰"Æ…Þ^Ó= },ó6·ùÎohÐã”3óû-LÏAÀ ò¢Ì-,N3t>›ùhæÎ¸!(ȾûM—{ƒV”£Ç‚aî|ijBÍ":Å!y¨l…õ_•0CUèL]Ú{þ:¡ËBçõ`ä¬ÔUf—8‡…>Œšk±nšº_¥Oì1´Û»ìýTv2kè;—œ®Ùqbù…˜+g[hLJ”ãMø¤œùðþgûq}bÎR—óHûHíÌ¥9¬X³o¿°Ó.!ÝXÜ<Ó—cs_ G¶M·hûo¯ÞÜL©(ϢЛ=‚`zðØÓÒÓælEß(†ô¦fyR, Ÿížœ@ÿñAúãó_¦'…*íÏžžg§ûh³0 §¯´FÞ£QbOødVïòªËËA5â»èx¤yG°ßŸÿëÙ×3z¤7IFÚÆX<OžU³§?PŒ<›³Ï¢‚¬ÿÅIw endstream endobj 637 0 obj 2590 endobj 640 0 obj <> stream xÚZÛnÜF}Ÿ¯è·$°Üf“Í[Þ9¼°s“œ`5lihsÈ É±<‹|Q¼ äëöT󢮞í"°M‰§ŠÝÕU§.@\?¬q½Æ_ßãÏýêÛëÕ‹W™F‰¸¾[)à?%ÒP¤A(ÃD‰ëíêË\~uý~y™eR'1ˆw}ÕÜ‹·‡«Ÿß<{&ªF¸aF`ÿdïóPê,c€v߉ñSç"uÉL+Ž|oÖ^¼Š„ ¼m$i"Sè&ä»ZÑ´®Fà}Ì`콊dÄÕ\ˆaSõb[4û¢›¢mSDYõë}ß›Ò5úmÞï›õPµx¨† D0î¢<`Ú?Û]mÄ®kï»bÛC  fkyWšv˜èE¸®n»¢;¸ˆ<“b )¸B™E pMÛ[oŠÝ`:|š¡‹8ú#ŸK•±÷¦ëí®ûÁìzqh÷¢10Nb(>p7Q8\.K°ªY·Ý®íŠÁ8¦Å‹9 [žŽRÉW‚)ÉEzëÄÏÇš"Á5¡áóæøÜõ2\šÖ»)ØãX&¹fBž ð Ív#%öÒÓvê}iÄè²ÚsÙ0Ìdpáí¡ÿ£~öLnN{y˜…G"ä{¦XoĶ-÷p'ëEûÞô³¥xÝL/ûå-sŒ8È¥·‹+ˆ^&ð !ÂÃÉŠ‘ya ZÔ}»xÁÓöPBC1=¬ÑŸ5ìçáåŒLeÌ ‘’!AcNÐ0š|$ŒRÚâiJ ²E÷7ÃH»y1zääoôïmq f自®£•0BœDŠéj›/$Çeb™`WÕæBM)*ülº¡¨ˆ˜þ(‰d$Oé@:QœxúëªùÀ B îÌ·MAÒ™->L12FvÑQšiJÓ §œ$Îg-–ÚAX[hÙÚ] m[DA*÷”YøŠÂQž0}サíÝx 3}áñ¶kÏD›‹›Fìw#©ôŒ_µ$BËÅ~äïµÌr®«CVèåüþ¹Áˆ»¶óH;Îô£€Óâ} ש‹à­;ãñ4Ž+WL%Q•E2ˆØ{Xp]4¢ÿPí8M†pùœcÙ®Bì:Íø"»‘ħ}Ñ––ÕŽ‡Uúþ•+¸8SbIf G@RI¿g±lj ‘ǪCIž©"ËÝ.æ×ª§$|ùìÙ¢UKí+'°­üBzûêÒ«3ÂTK•pÉ¥Î= iž¥‡8À†Uhe^ß4R ;aЬؙ¢<øé&A~޹Z/ݤõQ,4Ô˜}wA±æ•e ø/gr¿úaFç¼­}5ì˪½}q¯@FâOñ¯iP¤\ò ŸÆQý„¥¬7më¥àdõùé¶HN¬çý8ÇS¼£Q^Îp bßÌs§ óÍnWWë‚ü\ŠïQ¦lºv?–nÕ¿Š®$›ZÖiÐogSc$ô%Ä0— 6ô”ËÇ~lÖæT‘*™#ëºP~êa"³€ Ï?tࢫî7HØÑpшÚÝóšŸX@Éñì×""WðÕ^‹¡úc˜O €t(0ëý€i(ÉWm½·µòwŸvuÛ^ü#‚„¯âbv#ørÉP™þâ¤ÄÙ"C9fËKOê.ÊØݵuÍ `Pîq‘ä È7ͽ饸ùò·AÞBn.[Ó{9=IçLº3ëêî ^š[ß (O\ìþ^€v1µ)z”Þ&4*ùôÔ&úÝø@*¸nÛaã¥#­“E-Ëçû}gý¿—7_ùÐð1øþ3WÔ‰uq<‘¦Ó©þŸdKdJð§ ›‚ç4Ã[ËbÅ—/ÆÿÞ46»þÉyLg2˸ä7eYÑ~=Õ—/«QÑvp‘¯Ï›Ž'Fbt5]~}sóÓØŒY²ëonlö˜þYœ-ð÷IâIGÛ4öÛâR Jnn¦š÷Bö©¼_~{¶—E«¸¨œM¹ŽžqÌ;”bÝb¼ËF-hClrˆ¿~Ù7Cy3öŽ“Áÿz»¯‡ê9˜ eºçšI<í~ ®ùòÍxÿ‹·/Ë›¯þ¶´'£0”'z±´‘4[®KJñŠ»M,SÍÐÓ‡§0®ðQÌÐh"ââ6t 0ï [“^D ˆæÇâîÂyÇÖ¥R+ö˦È\ÖM4åOe±Œ¹RØABjç=HU—(D‹'‚&0_Î{oÐ0ZÒˆ‘ŒAádçb3Ba¬c†vBsr9š§#“¶„R; ÿ¯ GWW·^°á7§>†ŸšU½¸´„¾ô«¥92|ÂEq6ã@†²’wLq*‘,z°uÀõŠKëØ´ÃÒ(SƒŽÓÛù_,JFŽBöx‰Ðqî„Â*Lí™9@{¯›ÖX”ç|HÙôãŠÍ>ô§k"z†s\âåÔA®a³³$åˆÏÕS»q~Žà5JZd W'd}BNq’ÌÃ,C’›6Õ·ëQHxa%w»ßKù”;…(kãh”–Rc6ËîN1Õ¹õ˜©tw N¬îéµ!ªâ |œû•Õ?ÿTšÁîPÞPÕJ­µYä–S?õ…ßd†ü½!j• e˜)‘ØñÆv×vÃC~_¥© ¸z^²Ò4‘«¦®èLâÏcš»àßËÓ6Ó¨”=¨è÷wŸ?‰ÞN$mËÍ—ªs;D8»TÛ!_ªÍUãå“G;c–Ò®œèó`GÄ힦DÍ¿+g䩵߃„ ¿MÃã92¡â¯±§máÍ—¨ƒÓŒáŠf `ïÑÎMótç侎˜'Þ ð½m,AÒwkû—ü¸¦fæôADqp¤Ë~ߘqDÍýz,~h‡iÚÓ$݉жæ?Õ-(ð‹Ö3‡oÍq\ØVÔEÚ¸@w;Mçà ôØ™Q}4‚aâǘ˜½ŸÖkYã 7 <Ð|M3”u}Ίʗ‘OŒR:pŸ¥ð²âAž3‘ߪ¦lý<˜ÑFÐC/^Ù©êÖ—o^Ý¥LÄÍatv6£tnç:$ó­%ÇÞ» ð̃_Wæ™bmg[èû©ùŸwþà3šJs_ŽðöþæøÎ"¢Î˜ÀxiAÕÍ»0ñ¾]92µ+jFŸÚQ{Ë2Þùx”J5ey'¼Ø #êt]U’óì­îóDé„+ŠÒ†+<»b_7gF÷HΞÌ4*²3ŒçË ƒbwÒ&pr¼3¡n”éÀqÙlÒ#Ë®gP Å[nϘ.R&ì_¶©0^ÞncƒØZÍÁ¹ó½–ÚO”5tw¡r&‹lHk?U!Œ¥òw׫?p¶ÿ€’‡-0@•¬2±])­—ŸêÕÕêçqp™‘Ø‹ßHøw¾yJœöxB>¡ÍrU˜0¯¡ÐmÑðèQ2B½ÿFú¦NªŸë£bXå mvÐûa¼ {  [ê®üa j D%ŽØ@#|.,Ž€Yî[íÅÂìª'ÀT²•z×KL3m,Ï(E=0àÑÃë(“!Ëێ‚ÌÒ*Д±à8t:NËlTƒ ýÛÌ g%SãÜuvØ•|–Fe]1¬WÄÞ4'‰‹ãcHM—„ì=N å«~g‰kcªÎkÐ÷¤)³ÜBƒT•ñ¹))j ”V·4ÀÆþw³~Ô;W‡ž;i¤ÖNï*NŸ]ß(¾ŽÿqPèÛ#.°ÌímwXœ,(R¸Ã¬¿Þ,·Tˆº<ì¨NYµFÉX¼ëAToíÿß1-äž ZÙI°ŸŸ~ÿ³eé@Л4§Õ&÷ǧÀ.sDÌ??"f™Íê7Ñ@×—xñø endstream endobj 641 0 obj 3028 endobj 646 0 obj <> stream xÚZÛrÜÆ}çWŒKÑ ÄýB;©²)QR%_HÅN«R vÈ……Ëpµ‰òCzPSå¯Ëé°;=\ʱË2v§§ÑÓ—Ó§gåŠËÍ‘+. üñÿÝ}wyt|_ÞyÂÅ¿žH|‘xž'â²>zôßÇ—¿î–R¶ô¶YÊNœ¶Í§Û¡Ëû²mÄ]»–]_J%>ˆ²‘]^-D±Ê›[)>ž¶u ¡s|r|ñÓÐôe-…Öë¶ë}+ú•ÇEÕ %û¾lnóý0-N3fÚS׉‚ˆN†'7öèx†¹†ødîñé“'0î´]ÊÉB²|oäó&¿®¤ ©çï ¹¦Uõ»¸éÚZ|ü»iM$Nxæ;pî«GÇÏ_ªâê±>߆¡f™µƒID¡xLçÏl=Ÿ)(û•¸xþÒ0–äÝ]¬MgÀài—¶2‡‘“ý”6˜~Ž¢YöÕØ¶ƒXå¦!ž‹Ã‡¦Ø[ö|ÇËÌe)òª“ùr+®™ $Sn(«^¼Þ^üxþäÉB\Svt’\‰Äºi»Zä¢hëu%{):Ét‘ïpÓ¡l)ò›×ñEBQ†))ÚÑW÷~;qj*¸D:ÒëÊJv“«âØvUÌ⛲ª„¬ËéËÝ‘8ž)Èå{N™ËT7â4L‘Ù&™ ˜¢¼kp(5²ÎßGlqÄ1£ÕBlVe±9ܸʻº’Já+ÙˆAMþÏÎÏņ2)§Ä?>=µK"ó Á®ö×]{Ûåõ ¦iÿíå†~z;?FŒZeúp ÑÞ  87t£kf$<ªíš:o€K²“/È<'HL¥—«R‰’ô° ¾C5¸—ÛÎùöO*oSÎ*Õ,pBvV©‘ë;al.—Ͳe^f²QSŽQ`ûÂq8éQ}^!!5$|Zî¹Î’›œUŸ{lØ÷’ÈÞsõ1aqìøQhÊÜÈNé Š uz•þöôü'Ár=ð#'uS4ÐβÁÞ…³ÎÉR,ËN}Ûm¿FHÊ€r¢F"ü×m¿:˜£À¥Iïœ)y³4ò†W^êêì7ƨùrùÅÜeüdî2aj+^¥ð§÷Ÿ±~… ŠÙrÛi·¨¼&ôÊu:S]Þ®zq[š»}XŒ5¶ßñõÔqƒØ\‡æšQÿé˯[]€¥Oo™#s8k`ªã¥‘©¯ÞªßªõÚYVÕᬠ}x.JÌ=±ÄË:!ÉïJv¼ª²ØI3öØ*Ve#è\äà$p¢t¬…e©ú®¼¶A4b’ñ‡Ñ” ®:Ü@¯aÜHY€FÎR–5ûírPäc–ö\%Ž™ïvä{ù€ÇRÏ’Ÿ* YÞ“·”Åw¢ÇЦN¿¨ D“¤›Ùf SílU/kÃê1ô8TÑè„EÛü§,úêHè…æ‹ÿ8 ÂÄÚÂû±š­ë.¯ÍX–76=BUC#›ÞvK˜ÍëQT6SDÁÎ"ß7…<Äa|Ÿ8Œ!hµå„8Œ±,çFaµ=ärÈ÷Ç#œøí)–_qú’jÉýŠX:b"a˶áå‚:Äæž~dzøaÃ4%êðÐa©›ù1?l>¿Þö,ÚüÞùbXO'³}Ki¾ý_N©éË¥Ðû/úaY¶ TßVœt©¿aLʀة¹q™F;T£ ˆOKü‡·”ÇCæAH àž9Ó¬€~འà LyÎÒ½Øñøé¬ÞÃ6Jœñ’Ñ\Ö÷µÈ ÷á·ëuU×ñ¢µÃ†~2'ɪ£¡!mSþ3ï–ó¼…hêo§ÈîQÞ))ŧÞ.1²IãH”Q bš¥âë!ÑPUÆÖ^ÔCqÐù( ¹ÆILÃ%Æ4wñúìt6‰ÓŠ[š"÷ç«Ð+¨òbÐÆMåw6õK™8}§zN8Éñ¾g9¡YØ>ŠwHvΦéÌñغÔöÞ´UÕòZÉ Á j¢÷t©/‹¡Ê;jdΛ痚ñL<þÄ6'Üøn~FaLÌÆO­‘Ñÿ?ÇýyÖ=tÊ)2šêOÖÓ0G8y×ï1^ç€ÝòáÙ¿OcSf&ƒuùž×NÞš’D•’õuµáøÁ19 vE]ÕŽJüÕÚ짦×éˆDZ UBA8R•×]Žž\•, d×·ë2ÎÕc;z^`GÏMبNBþ}6Ф=su"£çeÃ,òh ¡êØK"ðÄ«f=ôsLÕâ`?òC×IýÌÜÛ1:L6ü˜®S~£Úâf´jäw÷ÙFì´öX“`°g6:ÕD…ÄÓI˜|¬œªd˜t2øNRêvÆ*M½`yübÄ) cS,Ç©O Äpûˆÿƒ02wÉ÷9ݪ««;¥)åÕÕ†nÕüç® Î𤱭PÛ é“.6è^ (F¦õ¦í§ަïC·†SK{L×59%ô}áµ´¹‡IÜe»FîC÷¡E>݆y£{L'+tc–0˜GÜØÜÎï PÈ™g.ÏæP€ ‰ 3‹¦¡ðËÏŒ…žomÒÌäÏþã±3K­-sZÆnŠÇgKôå6û}ÃuÝñÎ-s|‡÷wԞˈ·Mù~+~€£yœ2:`Êd)¹N8‘…»C+<çµèƒÛÚ˜"Ãûfe\ËŸ¿»xÆZH×YÜöˆHÌ´|!~áRQoKêt{ Ú¹°ŒH,³ÅE &Z*Ç™cyc(üÎäǘ³pnÑèÔ«¶W„ê`9ߨ‘oÕ½NC·˜CL·š‰—)‚µ1˜k ¦Fμ¸ƒ©àg>Hb. غäS<Ô­£Ä‹–G9Éeîìß1,@À~T¯¡£nñpKl»,¸“hh SËI‚»x¨êÆk8sÇëü¼Áè}¸æ"@¢µal6äùQ|؃©K£¶¹Ì˜¦Nà±u8p$ÓÖõL@×%Lèµ* øÿù%Ñô):öínë‡:Ñ Yð¶Jb¼Zµ¼fõ¿)¸Ñ¿`vy£ª\·„ñr±n;zÓ{Ïéúš….C¸KtÒŽ×y  ý|£Ä‹7o­î‡ánË·Cßöm[!Ç;ñg£€!ɘ¸üTI›3úHîyýãK‰Éga÷gèI™\ÛUË/~ÙÍt96^fWmûN7D¸Ï{|`7Ȧ©itØÉœ¨©Ùpá¢{ã¥éŸÊ¦¨†¥ßè6aiõWë4 ùþtýÒƒl”ÍÕ£{#åFê7Ñÿ²×bÂ÷Q…À?SG:9¹³Ã™n;)iºzôåì-íŽ/¯m«¢Òôƒ*Õ/ON ºžÿæ›zÖ `þÕ= àþHΆNöC×÷ž5Rÿ}¸ˆI ‘Œ’ñh/¬€ÿ¾ÇDÔƒ×Å4G!þ<‚Ð/¾Ö=Ž'L‚êaœÀ²&0ÿL¦d8ýH NùåìüÛâä/âé«ãAuÇSêëpÎ_Vm‘W|éÞDAW÷ÙØçÎŸíµž ¦©õùånŸ+ž¢§ õ‘þµ˜žçÇTTGQèZØ=xeéiutsøom.°Y!d]ß3´! }1?8þü2ûÃî Sr4Z±{žìØýÄ"¬ïþ†Á wV$Þ*´°×y3äÕdí{:*pÉ.ò“`Ÿ?¿þãÑoGôH+IFÖÆ0öO®6s”˜?ï%æ=«£ŸE]ÿãq· endstream endobj 647 0 obj 3133 endobj 650 0 obj <> stream xÚYێܸ}Ÿ¯àC€ì®ghI¤nò`{½»ìØÎŒ0hº9ÝZëÒ+©Ýî|R6ïùºœ"%ŠÓ=Ékt›UÅb±êÔau n¸YᯟñÿæâÅÍÅÓŸ´Èd,nî.BàO(ÒH¤a$³\‹›úâ»7?¾yýâZ<û“¸ªêcÿ[µÛMŸVUišáû›_™nÉ$­î«O¯^~¼yþâÍ+Òßšªj=é$‹d”§Vº¨ªgâŸZŸ¿÷Å“ŽåV|U™¢y&|‰8”ΜÀ]-®î|›âiÝxú“aà=QŒ´³p³5 jO0d3Ù~zóüçëÓfÃ(ñÅEU6¦EgÄakð7/Ú;1`Ë¢ï÷õn(Û·í~¿Wø×f-vŰMQšUQ®Ö¥xßµ·ÅmuÅ –~mc`ÏN˜Í`§žïUöÍ— !ÛSC·7â®íıÝw¢?öƒ©/­s}+%NÑ™ßö%¼[m‹fS6é9牌Âû]¹úRøL16§ã&‰ fÂåçéÀGÈEOœ#ÅÛãõ‡7Ožˆ]×nº¢îEcÌZ ­Ø˜AÜ.V L„Ìľ¬Ql˜T–J¥™TQ68Òm‹£óØmœÆ½Iý i”+ªËe|2=©ÊÛ®èœKqkVž7³ëˆs4 ´ ÒŒ©[OÛÛMÉåüxÉÊF…‰Ô(Â¥êó÷¯…Ûý8Å6å8¡IŠCg™LG­HŸ¾•ä2´²÷;ˆ×w”D,åTžIí©ÄªC%uû]#ÕD3v¦Xã2Ç«½©æ‡EOqÅ™3ÄíÝ™zN¸’ «Æ®ãÓy.oÏít&}qBOKXHñù»kcøFˆ°f²×fE…-ÒKñ¯=…gΑz»¯†r —_£I0›yïù a ³Œ‰YP¨[ÜÖÚ EYõ”xìâBTGÌt¦ks^\,Ÿã\æ\üÀÖ“ùÎÖ §Š–zG¬2ÆNò]¸ªÍˆ_¨.*¶[›Žîp®: Ôy0Šb” ·û(å‘/>#^YïÚn(šá™p¸Œ…/,éQÝQÊ”M׋U[U¸eœ£¾mò»®­EWn¶j¿ÕÆèB“neî†KBl:•¯[ À¶à-ö‡·ÆJØÅi  ZŠ×8mXþ©T†loE½«Ìåœtk³3ÍÚ¦…ý§ißÍPÏ&NUÆ2gR ¨¢XÎÇñÆ„‘Óù;[CPùr»µâÔŠõÚ%÷}n íc¹¡3©2fóÑÜ@¥{â67äó x’qù«ªé«3è«H_ž3¬Ã‡†ÿyÆ,*Ô“µ îŒå4—*ò,×g,ç©/k Ϫ­ë¶‘cçý°_Å–%zŒô@¿^ªü<È‚ymFÄ¡7Õµ¯­†‰FGb:SWe ˆüY€CŒ4¬¨óôŽ™z_Sñ0-ã ,à|Z.–)-‹#U%;Sì×\°”²¶Lwp“Gq0bË‘às©¯|=–*eë†ÎºvlçLA$ŠÐo©ô8Xæ¾øc¹Šš%žñG¹BÓðäÇÆzM]áô&šz^Ì”Þ_Ì]Y™þô6¹ãiØ<ááÖ9ˆ[~>Üœ(×^¸‘fŸG:™¦¾àèçq¸B_ûw±é]ï'6€7¿Ö(–‰bftxUŒ(tßöR™$L²Ÿ¥¥ B‰·ÚR°í¾ˆÒQ¶·Òê'¶&@·©5vb×ÛvU±2Ó?M­d:¡ edZ+7™‚R×È!)~iyõ¤2Í=°®*p«œK0÷CÍLÇ$ð,qe—®îŠn(WÀ‡î\éà5®~–)óÎTòÛ× HÖ zx¤!'~þËG|cCÅZÆh©ìäºlÖÆÐ*¼øZtkÑí+céKU®Ê¡:2(%ˆƒ”3_^RÍ7ÛôÇ™-,™ìËMãš0==8TÞüK+­—Ú¸pɥĘ_8ŠÁ›ñx®J˜ ¸–±W67 ½Ü]9ÔÚvÀ2 õÏ´ u°]‰V^î—/àe´Ç{J»¯Öv{öš.¤ß¯¶(bôb +èÔo¬™u¹æû-6Š™üà“ C™¦Lä«ÿlL¸ã†®iݺ(yTx'Êɽ`õ•E2OØú Ì:ù°=…Ú‚ýRœc¬ðeëÑÚufŽLdóŽõaæ=0ßÞ9 ¯ ×Ú¾?˜8ž€çº=¿¸4ðâÌ15<ñ„%ü{ãs|•&³ =Ç„î Gæ'œt{A™šyov¥-™›P"ñY®…¸šâ2âݵø4¥óí…°¶õtuHG9ÚU²!! .%Ƈӹ‘V„.™1…Çs*Lr_Á ºýjžrtŒ‰?,å=p dš³uÃ×c)¾ßªõA=² S¾Cç•`%‡ £¦·Ö—¦å3¡€`h©}ç¢{7Õà}L'à'!ßíwÊEPvÊ9’…$†÷¡(U³Ê»Æb½NÀ?¢ÝCWûÝdËM+ïÙ>º¤Ø7î™"ÖǦ¨qïDPŠÍ4làdJ#¸‰NØÖ”Q¦èíHôÀ™ H±ÖL˜üjq;sª³Räód ZiG‘4m°WrË5-NvÒàu©ù¯'¯Ëu³Ú®™Ž{˜±Ïqe‰¿Xj^ ´^0o‹‰`UuŽáƒœPY-t«õ9rŸø¢hè0§'vÖÈå¦ÔH’Ø$(`®œÔó¦u>Óàš3I &3a¼Öʧ E§Y™ÍþMù`꥘¯”h ¶nº¾¨°KcÇx˜s/šÑ¤ ÷ﯯžÿøöÕÕÛbuõîú꓾FjúaÅS¶3¿sã¾8¤ù0W~Óì;öéz.>É~lr…÷‰b2,6tŸ_w±ùê_R'¾ J—#ò'O–ãï{,DfS¾¤ÍŒ_öç…G¿ùR/ÊC¾+u_GòÚì“~z(¸¯Z!7£ð”¯ÃžH1ÅŸ\vÐrh\6ªÒCÐîÇ'h‡¤k6må#=3Ìp±ÚõÌO«vmÆk¥Ÿì¬ýDç¤p’ØíòÚ#vá÷‹'TÄ×hZ4?„¡¶œš’σ e¾Ô:ü•€én×õgsñFس ù˜Aõ.ZˆÚô=¡øÈÄ&•¹?f´ú0Öó–U 0ó„Ê[Síè§;7v íW7¿ÁÄŸaápí,– m»¾ÀãrúR]\_|p?Û*‘ø?Úf(Äû†ó¦L¤1ˆW2·™“V$êc!é Xmãv=iK mî3™7]Ú¿yd|’²±Ô¡|;.gõí~³¥ü„3EÕ?` Z+0fO¯¢/Û¦Á¶ÝÓ—SÌ'@\…ôþ«š¢ŸØÏÓÇ ‘uà}„ÀüYᣓ¥OÛ‹»é–ü¹-pQËÈMš>pbéCŠÚš>Ð[Ímæ™?žcçÅüyôãþ:” ÐS€QÂçŸ_1‹=úÚÛ¢ÙÕèé]9ùEqìûãëlV‚VÒœ¼M@³ï?ÖM'1}¿—˜t¶ lýi: endstream endobj 651 0 obj 2782 endobj 657 0 obj <> stream xÚ…YínÛ¸ýï§ h‹&Œ(Q_î6M»’mwë¢] À…,1±Yòê#®ûL}Æ{Hɇ‰}±»]5<3$‡Ã3gÍ73ÍsüñÿÝÍÞÎggï=&bî'l~;ÌÃ?‚Å>‹½û"fóÕìeÊ%5ÿ±žÇE@1즬?|Õ(ãQré8Œâˆ§24à›ì^Ý–•êF|.: xäKƒž/³§O=î…q§jÕ–9ÝIÇðOb°[Àóó‹(u XYw};ä}ÙÔ˽ ?±5‚ ãÒãqJÆG:_¶^W[Ö7c\_Øð@$<¡ÓuŒLÝ€j;,5·ìÃ_*H}î b¶B ž’‘ fYÇ6ªª89.z<Šðo:ñ˜.¶ئ¬*¶Ì0x˜sè .i뚉µÎ-)x˜Ž€¢¼µGŸ'ܪVÕ¹êX1(}=’q]eýmÓ®Nà-xA³a\†å¤3fYñcèzUˆ¾Ÿ$<ˆ‰Ýñ4 ‚È58ß¹NxèÞ(ßçÈûüûåõ5;ÿ7û×÷—o>º¼øþÊ’ð¹鸎¿?ÿyýŸwWi›ßòó³Oms×f+ö^_â³›-†Ç?ÙES×*ï›–]°ˆ‹ß\¯8£Ô7N/¾}{ýæÃgíóô +ÙÏòýÕYYçÕP( `6ãùõëÝ—a*xì ãóúÝ£ËkÇeU.ðCË~p¶g-Ûa‚€úþäðúêíè¯Zm»ªÝÿ×k×*<À-ÖV—ß./¾Ìß¼½¾Ô–K\‰ÆEãR¤þȆYUë“x´zr!.tèL›W*«Ï™‹ð=L?/+TõœÃg™V¦`“x\ÉM$_f=»")-P!"‚$O µÀìö¸bC·ÏôÐåWlÞ§3cҸ8 @CÄ*+4“=ïÝ÷b.èjÛÕóÎ}¢âß\VeÖg-¹ÚÈ Iàwªçìj4Yg]Â<˜ê/“[.»D…ty„jƒÄƒ Ãmìv¨kÊ’)RÞ²v˜Š­}ðI„22¥à¢z¶Y*ì£ey³ZeuÑ™XЈ4æ© ¶ÁèŸmhQ(9EòÚ=„(!ÆÛ~YÖwlA HC÷òPB!ŽB‚?wjÁ³ÅÜC*j`x‰ ²¡Âí K  €„ï.Õ0Ñ*Û²…¿y¦—~åŠTû˜ÆâŽ'\Sˆ5®ØÅönƒÜž"®Š÷X"NGôfYæK¶nJˆ¾Y¯…{( \ 1üXdJ‰§’J@K‡!Ì—eǨªD©uÖøÊ›6lõ«íÀTe­vŒ÷«R'lÜ-ÙkÆ<ˆè^É8P~íqÕ¶&Ú­“”P´ÎÖé*yìÖÊ8á2!†Go­.ˆþÉ1£íÆÖC«FÁ­/j•_¢ÎÔ=&œÀýF™·mJN–·M×íµaЏe[(ÙûZQõ޳Ä~Ã…Û>šS2•¨iŽ‘!Sç.1÷œ¥‘qPr’q¨Rì°ïÁúæNô2­A qÔÛ¨pãˆú´cÛ,²"¹qE˜!¶ˆ¶¾ÓæžOuÝ4š§ .ÝWnô—‡Ö =«=B‡D²½¡YÁ£3cÝ`fb“µ¨U† w»ä_gH¼IÞ;Böì‚QÍ„!bâѹ˜R PU³^étÂ-CjîÁ¤ô!IRb|DD lZGb¼z‹,¿7ûÔÆÞ¾û·#éÉǨ ¯­™êòl ù³ÌÚ,GZXbcZ‡XF¦rSF¤’ Á¹©ê‹‘œ,m™Zꘌ«±‹ÊøŠ•·Ofàùe›µHZw“º>N ç&‰¾^Ž™•#üÈ«FVŠÑÝNL– I Åé'*œ….ä6‘[(aD¿¤Áջˎ}ù޲~$8:ëÃéÅëׄüdŠæÎF!ã u~þ¶jrE[šúzßqÎôú†ÈI|º;GÅA>5ý¡=¬XÝàšjVœ´QÍ–´'b´™„dQGk§Hý¸cƒ¿RݪŸè hFIÒÃ;ð1 €l¡U¹*ÝV"‰ŽxA™‰õRÀͺiûN‡@_ðUVš´®P«ØmÛ¬ØZ5ëjbT§8`ÂøHàµnu÷ Ѓ—½Ã÷B$'‰KîQœêKm7í½#õ„¹¤ޏ[«¼ü•›ÍmôúuQ¬•B‚³„,šZ9g™˜§%Û×î±ðy‹û¨#jÿÏûŠŒ\V”]>tæ)ÍyÔ‚ª`£i|!C…š;öD¥û &¢#ž"¡_Þ¨'­4L?ˆ> ·(ë™§Ý<–N0)Ÿ}Úµ1ì2§¤…üö%TåºSéÀOqLñø”ô¦côÅͼeÚˆ¬Õ¿b½‘$:Õ»r…ÄFšÓ&S]Ps#âî•G`£†aÏxQKû(ô£ö¼ÌÍVXi’®ƒÖÀjâCÍe¶ßã%£À5е7LoŠ9oË…r啿dºkÔIô ESpÉÈ&µ" õ{ª=lbÔ. £¨BºÅýú Î*ÓÎC1ÿºÚ‘¡õžŒœE-Áøá.¬m;<,tÌ['〚 RJõ£‚›Ž‘œ¼ô#ÍH¶™>yÍ™†.ÍKÏøÚá]+«éùÓtIGZ᥺µMïD ž¢~×èœû Áü/»ÜÅÖ}RAk›ÎéxÄeDÆ¢î>®áÿYŸúWˆÌAŸHòÔå»2«š;$I1& £MŽÄ‹‰Õ†UÙP£·´e'ö%êÔ¿”ÈÍÑô=9šX¿ÅØÃÈ5šÕ>÷PàmÈÏL“lj®,«-ûø™}cÝíÆ 4sä=ć*ôèZΆ®=[”õÙ]=ÉV?xbi.Å”¨æí\ß s[t×e~OÒ¸mš‘’öÚÝŽNàïýj£·Îë„þEHLP›ŽþM  ÷©£¯”äc-Oìq”ònåÊ)ç±ÇéTCßky2²§^eì 5ùFë Y”­é·¶T¨ú¥Ã†›¤¹œï!;E%(_ÍÌowô÷î3aÕ,”žó Àþ;ÀçˆÕ_ËÙ­þ­èãôh€%Ÿ~'O¦¶gŽ¥ÏvZâŒS¸Ù ÝVW#~úvf×RÔóBŒiaêËø» öpD„}éиßdõUÓÒ´ÝéèÀÓëÒÑaäïÇÇÿœý3ÓŸz$Nõj#èã—g–9"vDìl–³¯¬†¯ÿº³3 endstream endobj 658 0 obj 2550 endobj 663 0 obj <> stream xÚZÛŽÜÆ}߯èø%v´¢»ÙÍ›‚<8Fl°aË^# lCàÌôÌÐâc^v4ù¤<äU@¾.§š.«g9  ÜíSÍêêªSJЇÓküó5þîîþúp÷ùWR„2Ht,¶wJHüQ" E"à Œ•x8Ü}ªdðÙÃoÓj–YfB¼®Öõá˜wÅjŽ U¨(aÐÒŠoŠU“7 ˜¥JS<‹/÷yµ›Ãt*•e f[B|þ•Jzgˆ“8H°+ÁöE+ÖûüØÙFlêu°U׊n_·V”N¡3­W;ÛŠ¶¨ÖkVØc_–BI‰Æ–6oi%ïαù;a«Í˾ŞǦÞ5ù¡ Ä\ãšÆ1ÓäŸ|=Å[¯{±Î+½ÄiMH×6?Tl‚$ ›b]p°¶ë·óm•Jƒ8‹x+ê¾õÖk°™ñl¦5æbîì7õ.8lž·t¨ã+)ñŸÒÞ î ± ¢Ô0"m»‹²Þ‰-®¦ÅêÆŠºv¾…‘&Üïe^TEµyµ¿õmWlÏô#íËl©,01—Î×¶sþ#}+Gá‚Él¾ÞZÞ‹Ó¾(íhw»î hyÑûšÚ¡bÛDW‹Cgé¬8×}#ÖõÆŠ•íNÖV¤÷Ì#Ùñ±‹ŽØf¶iñþ–Å'©¯åùÑ9ó±‡=óͦ }[D€¨ê‹_\÷~ ‡Kä=Ër »Á˳(*ïÞ‚Á5ðú$S?ZF.QL[%³ 1 #¾øþõuð‡@È”#o”¤ð•ð)ø/wõüðQœyÛWn lZçJë2oéJ]¬Ÿ,LÑØ»[  cö¢GÎV*PŠ­“ýšÑl²b^áß u«NÌcC$üù™tDøžÅñ´öz;øÛxߢÎgŸêìáž0âD·¾Ï™ý鸊mÈŽâ¸2fë–\}t’¶&ëRdâØL `v¶Ã˶ ðÊ· jÿ,‘™¶îݸ@¯‡ð˜ îË´R© ÀMsÑyÌ8—5ñ'„EµIܯäHÈÆ$DÏ»è)QÃK~ðœ%‹ÈË箦”A”±uÜÇK+ Í_WŸ^½ª¤R7?ÿú˧¿|¶@Ö8­/,8e¡ÈÒxY×0Œ‚Ts€mÊ:GäXŸñ¥wª÷k{H¿®@Ј†¶ø—}Û`VŠ;pÔâÉ2×§.ëú]|»:¿­òƒ½œ\.Þ’É’Óaø¼Ð»'3Ìc±j·ýª]7ô_AŒ ¼ï¿}äeÑùé£ Öl«u^˜C`¢>îPšP”l^œ³œ¦M¤ƒ8b;7õéçO¶…-7ŸüºH‰å’‡hÏU—¿G{ãÅ geR¢ñ¹@ݼkÿì¸á€$KÜá4¬øÔ† “;-"Œ2”( Êoòùch£}±‘¶Á+mgóÏ€&B-^¢’vÞ8Íw¶¢pÁO—d‹äðýw?¾þ‡hÏØéЊmS–ÔÏ’ â›c›ö÷òXö IIGW"D^Ïï¯hûÙ^p|~{£}‰[ g:bÆpÙ²ß E뛼6G<Çkóõ›¼i†ýñÍ7ozÛœŸ¸í/7¨M§¾ü@)tÛ-îÝÑMÄ¿`òÐPy5—w/_ºÍ+´A¸²!?á±®¬‚3h\¸9Ðu uM¿îH»Á‡ïE±õÜXÃá&DaeÉkÿ JGAÄÁŽi§“>GÝ·G¼¿¨W¿¡,ºå(:QgŽÊEGÑ  )/5×S ²pºò‚B¢˜ qßAíl[‡Q9O¡æ#Aa‹«nÝ]†>ê‰(«34Y¥ÝXì½¹h÷uÓ‘Éîq(+òEwIS¤A¶òÑBlÊØÇÉî¾î} lªK˜è·D‹ï¢Ú…ã}FÔhØž»¦ŠE¶Â>h!çàÓSÉèÌÅcó$L4|¿+ „Ë× =^5N\U[òüšà5C\Ti¤£aí ´íù°ªËÕ-U¢âÛ3øåÅ ×çŒÍÙë$0Ûî&‡IæãCÑpzfÖ`-™0ì Ñï2íóIÖObÁwÐA R»RüÅ‹`¿à©IâKˆ=‰㑌œoÌP¨mœÒþHdf¬ÙÇãÔ%¶[J(.c&5æÔ`¿ ±J} ê±vÏàÓš'{,lFW"£A\éF ÇÅ­ÈöuAÕÑÂsuFY¯PìM÷ï ˆÈ„Û!é1L³iu0Þ¨Xçý”i\ãÔ¸~è€fêÄ©OQÎ7Ê›´ž¯¦”É[]´²†‰Ÿ‡q‡Œâ;§É’)bÐ]ÄŠ+rvÍá†÷¶&v17ÞJSa ;FcšBÈ úPD\‚ÆÝM·êªçk^'h½S†¥ᡨå•u=¶È@S1ÃÜ[ÐÈ4Œ‡ó~xÞ‰Ó¥Cï¯^­‹Šöífu£J %w×½D{ 1ÃЛ¦>ÞÞ>Ó¾Œhl×7àצw#=¤Õµm½A©N“€ì=“óâÀHHŽ8[£ºØò2+£ÖkÍËÖ‘¼+aÕcŸúP4ÑEͤÞ/¤XüŒþTWFÞaŠv¡KD'{YÛ?Rn–óy.Uõ)“ØâÎgãÃ1н‘ Edâ¹O²Ø6âÛZ¿…Ï‚T1„ëà‡!bÑæ«Ò^u\* 'ô‡qn¢iyšß¡$ïË–rÈQq‰¹×ÃéË·ëá7<™Íße¹ÿr¼“Ä ýÑWPsê Ý£ Åý´Öÿ1˜79Œ¨·˜¯£û)Ç¡øÖõ0ǼÉ:J»½JÎüœy_vŽØ¯fÝth5Õ˜Åý§rž>Gxí]Bie¾>v×HSK·‰àT“ùøÝ!ö=™±ë¿§½èþè×–iÌЭWu… _?Qåß5bЦ_ŸŒ‡yðR]«¨ž‹~Tuƒ~Á“¹".ô—µþ­ÐÚ49–¨änñU¢˜„GW›·µãÐ[luµ‡k[|‡D` 1ÌaK½ë†!áæÕƒ¨ˆK!ð膊öàÆ™—oJÓͼþ!Ó…4s'®S ®ûé«Óè¨n z¦>ûý!¦O°ó½x.Kè«[wÞô|¥ÃÌ™w†^´UAšAç·ù3à‚Ë¡ŠôD…­úÃ8w|䬭iD0ÇæeoÛ{ߘnú?Önšž¥ÕXfy3\\Ì…°+‘&šÉðc9v=ñÉ¡ ¸˜7uDcÁ?Ù0AÆÕÙ¹ïj‚fùøoЃ«ÁœÄÀÛ£ˆ«Ùl.Ÿq˼ó>E@Âð÷‹Å2Í e4±ÜÇcOÅ’ Áêw°²Ô‘“7òŒ7ëŸ Æð¿S4q\߉•Ú8¿iÓØU†Æ½Ñ7nºrš`œšüHWÃr›Ñ u¬s±G™¤lÚFÚ DÄ—^ƒ ªMú‹ï_{N™¦Óâ®±~9Øzh•r_Ôwõ5)S󜃮,Ýþ±.ÜGg7çìQR¬°IÅ“HJCõ™ø™<Ø/· YdòÊ­Œ 2[vÕù±×¥6zt_–½ñL’Áf ÓeŠ«. ‰'Üg¨èÍ/Û|k]‚úÛÄ—â%z_DÊúpGÖÝóå1å]d¤÷Àô¬ñ8`éi·¥ÿô”JpÙnèFº$ÙÕ«çoN%/T¯ð˜žQs9àÇgïí4 è™P&¬7Œ9‡ñÜ#lŽjù'ú_6ßæ> stream xÚ[ÛŽÜÆ}߯è7Ûð.Íf7oÊ“¤H€X¶£5‚ ΰw‡‡\‘&ŸäçÑ€¿.§šäLWÏp$‰gݧªoU§.Í„â~Šû5þçøïãÍ‹û›ï^‡BFâþáFŠÿ‘"DæAª´¸ßÞ|ýêÓÚ< UÛÜu¦.SŠõ7÷¿Ñ2‹‚8c›¢yt!‘”J8Æô„øîµ2ô&O²4ˆR‹úÓU“MC£‚—uÑ÷¦£í©‘R1ƒ·McÖ´ËóÊÔ¸]ÒœæøÓÎt‡ËJ£0ÿ2¥‘¿Ü™~W Zãð µÆñ™ÖŸ{³ 5—¾Ö¢)4+©­™êvY¯RÒƒŠ¦u¯Ui$¹ Ø‹ÒtÃ$YJó‘ §*ˆw؈‡®ÝЬáõц{±ßTëxdêc™Y¼¨>ŽT2íÖxïÂ@g’| ¿¤Lȱ\[Mã?lLoÄz²ØB¬Ûí¶mDÕ ¦{`Δ'A¨˜l±Æ^ÚN”U_¬êªy†ùVY»ǽâM#в¬è/\g½mûÿ¨Eû °&ñd:W—޲ ‡Ÿ:ºî¶fØ´%ŸS')Ž[]šóî¸L„ãžK¢f©ÿ¸ÓÑ™-3 ©ã eXv#’\ u‡M†Ht)qOî̃é:pØ´¯+'«dHíj8.o¼ÓvõX¥U/†V¬;‚„ßàjû¡hpuãIOæ&)ˆ{± "iµ7lvx£ÌÝá½xÛ:fliZ‡À\ë÷·“iÛñÝ„°Ñ\»Ùv°æW‡EtÙ'Ás¯ºìún鉊~·—^ô¢n3qEåÌFëïí¨8„Æ.Ü=¢%žÏ=™Ó]á«FôëöÉpcÂ&‚D»BÿáÈk‰;ÜîÄz²S `’Ï-¯N-]Ùéþ~5Çüòõ/ß,œpâKwɼ5‰½NÃd”½ñ£k”70Úõ­X1§Š`DÊÅíQ=ˆöÛ6õAìyf ‚œi-š&ÞÎ6ZŠÁlŸÚ®èªúÀ­5 ò̽ÕðwÏ$PL;,¾èä‡ðj=tjúhÂuæÎ4´qU”ÝpBÄÅ‚×ÁÀ&‚ ãyè,W9 ½ÝìãŸf˜º¸U»ëg:aî‚L×Ã(è¿?¼ûéŸß~{ å­_†M1ÀÏžp°”­µ“·z|!äIW‚u»«Ë™Ñfé½=ƹ dÙ¿ç”J¹ÂØA5¸Ad‰0"ëUŽä•TÅ>xŠX·WhU#T £ÿ²´òÁÓ È3úVl ?wÈó K.žšo[ä|‘K‰~ˆ'6Š]Üâ[@·ÖB¬•UÙ0æˆp‚´ä“Ü€u>="l›­ k»2^\J¿±¾°)¸Á{Ù*yJš!ÿHÝaò"ñQ)ß…Ž4Q8ÛVÍxWƒtîbv­þøÄP8Ó˜OYÚ9£ D*ø0%!2޼xÇé,‡êè»b+VÜÞu† "qÑe"]Ño({*w†ìw׬‹ÝãfðòTäI̤OîR<€xÅî ³–¤ ZhÑÓVc`“׺zÏ·¬‚üåh5CX@ï…ð˜Ž1ÜAÞy™Ÿ}ÄH=Á¸„°SòC3Ȩ̂'cì]·]s_ »‚67e†XÝOò""a¦m¿TÊåU8òó©ŽJCOF<€Zvc~Íiìº-á9Űé'>ö}\7é †epg WDáàÂ*ƒ¥JìÁž3ëª@gü9fÈ.èXûqɼ«SMèHì¹—GT8Ãm÷^0û†JîÒ¤ÌÖÀ]J6ÜV¯( ¢« çW¬C »g«ôµg’¸€Sýæ%±”3æÏ¹¢H3ß|O çDe»~@!<¥ ž1#ŽˆŒO"'ŸäEz!ÅÍ2z^¥G1ò,åb>òáÜòîixªÒÏOÍÖ^*áÓíýBá¬2dƒÒÅ£nöˆ7¡ø)Žñ¢@.€ ü¢Æäx¦b¸DÄ&´vž°…2Щ Av[¬ªºdÑ{cÆlKå1çI§p“’ qAÇOˆX”K+Òoêj[5”â5O§’ Ï]°ß9»»%°©1–‡2CýÐoY «é4Î)ŠÎ%K1nÕ¾(Ê+YƒT¡ ö«µâŽû¤|¢˜V…~»?Pue–:Uâp˜³¥Ù-P¦ì¨çcû‚Ôf·‘Áöš?Ìûd¬²(ȧ~>³&Ô¹;úÉo•k&»ÞÑSÍë'Eòß×äwä‰U “CñžÂÕbËEæT›83ôCùìÙ±A»ÛCåIÇPÀù†î0M½n›¡¨šéÁ&§¤(dD£‚™ð‘® fk²ijQÏ£XùýWbÚHºò˜œé|¦eLjˆ*öUon/U::ö´ù•òÿœW¹ µŠWÜÇ"EîâM}Ùlâìx1f¤Èª‘®:ã{dùôô0[„m^ ”{cl-ýæEDÜÑÃk´‹oè”ï„áé˜ Èã@Ë.æà½«ËÌ!öádí·‡³£üçw$ŒAœ' såùj¯X³*sìjí½æY´œ»Ü~‡%WLq]jq«(HQ:¨±ÇÝ/¾Á'¨ÄS6ù皺QDµ)™Š ËFäþªÊ0ŽkWˆžc{WuÑY7±W²@äù¹+|­ Tšºà¯x— âdï÷é œ­õÞövÆ|}jÅÓÄãÅ×Yz'ÔÓÐÌÜKÅDBûŽÀµ‚Oûà¯|3ŽØä6züM4­QAö¡tcjïçU© ' JÚ‹9 S÷Ñ>PØÂÿ‚HÔÝž¬ ¬:œ÷n¥Sz”r6§]4å¦èÆVfñ;™±¦f¶»¦ú0U!/‡rT ì°,~uð20ª+&ˆÝØÈé~þQ ϸ¿‡G‡‡_r±ðxêÐÙ ÐÛ‰Œè±4q´•¹/_tUOÞv,øŠUë¥ØözH1R¶Š¹J£Cµ‡kŸ¯Ó½µ^ëßô*µ6pÕÕÁ–ð¶Ë¼ü’Ùv¦3 §—“ç\|=¢>˜v_¸­‡ÖÖÐòGL1Ý´‹wq¥`OrOd®×qvïý`¹Î>5­Ú¶ö^ºóœšªŽ¼}°áÙÿl' 2¸÷>ª¡ÂØEðn*Vš»£`ªª¯ÍøÐÍ9üÊØf¾½ÅÊÌmI²ÌÜoƒD:¢ö­ ”- ¢Ô“èÚÝãæZS$%GÊ\ñÏu&2½zâ啈Q—Ø‘»–„Ë3´Í`Åúd wdë—˜†»ä SQPŸ¯_$`Ó' ÁY^EÌ…³ÔŸ—7”M ä³ü/Ò³%‰àŒ‚Çœ7—mˆH]Œ÷Eø0Ë1 ·žÙÞ†ƒ·9}Û)¶KÞežÌñ +¥—²^àÍ36È®M¦ÃØ\N5é³1;ünüÔÏKá‘iÎáRJê +Ž:û¢6ã+¥L¬ðb“À©/o¾0<íðÙ³í¡ÿPÿ:Æ21Ñpù+]*°cÛûÏΠTîIÙÞ÷ÕJ"©ã€P{C±*pYH>ò”•­tÁà´Æì†®¨ý(.c9ƒÎΘ†¦#󾲃!½=¸KQ5wF¯^N¬ØDãݘöáÊ•Ðw®Ô-Ufà¤}WØž0]iPS¬Ç<šˆœW ¤ÛjX¼äY°¢¾£óùoÄî±d.¬©ÜaQD¸»llb¼3æ3t4ÅòOµ@{à_¿òQ­LQÕ¸XPô‡+#Ïbp?Ή¬œñ1S¶/©ý´I$eO°)Þ§×’RG°°‰(E›PÙ†{c9¯˜5Wè yL®æï„ÙуFdÂ{„¾`q—ªà0ðÔœÁ ÕîÃ\¡¬\Ñ#Þ%oÊí—ÏW¼é¸äM§QXô´]Õ¿èd·Ëa$ ‘ô³ÉÛý³gä­«þ-a^&ˆ7ƒÿ2#;j´È&`-cƒãÕýŠ;úX=ëí }gÏ?3QßÄ:ô~pü­ðsÄÒ¯ÍÍýœ:KO ažMíΜ"oœPö0Náÿqü£ŽÇ¹¿½Ù#P O5Uý¬áöQ`8ñ3pßÍ®¨§¥‘Üݨ ¤uÑéö÷õñŸn>ÜÐO¡Ð\ß$pŸÓ¯Ð.sDÌŸ³Ìææß¢®ÿëÎ0 endstream endobj 668 0 obj 3830 endobj 671 0 obj <> stream xÚ•ZÛŽÜÆ}߯hbE£/ÍÛÆÎƒœØ0 %±½ŽD†ÀåôîÐâeÌ&w4¿ä½ð×åTs.]=ËÁ2wyª/Õ§ªOˆ›ÝU n*üõ5þ»¿zusõǯbâ—wW¡ð'Y$²0”i&nÚ«Ïþóüæ§«—Œèçàʃ縲ðïú\Ž‹fº5ÕPoǺ»Öæ„L©²ÔE÷Ã#Ú~Т©?¸Ø(Œe˜±hñÊLעﴨÊî<•(ż8q”É4ýMûˆUâAÅ®7ÚŒíåÝgZÞË…‰TXȤH\ó¡ßýûY»¿«u³~öãã“&A웽{¾ý`ç&›€Ç9’´(dZ$K2±Ã$z¬ä»ç˜Û1bßOƒØýýP¶Äò+é Ö8/±_|ý×,¯ñÿá…ÙPÜu¿gÜø\£Ø” +"(\Ä]È‚mG#>u'&C÷-ÄŒåXW¾wÂìhprµ¸ú»âÙ=Á»ø‡š¸ûÀÉÈ,qAz052‚jÂ?Ï\ÜžçØ8’Eá¾/÷ì=Ø’åî{é¾çq±-qÞ¾JæDâ¥í0Hˆ¶‚o/Ä)îkœ4¹ö¶¬>ìü ŽYkó²êÛ-á¶nêq/6ºIÌBÞ‹²H†lµæçfÛLFn6 Y/ö-àöõRZÅy&© n÷˜àÅ‹ÅáUè[HñÍ¥ôŽR‡k¤Œߌ^ùŽÏcZŸ=n2"8'y¥2wqÜý1„Jâ¾ÖöÆ¡ôhŸ–¤B#sÍN;]P*ö Ž—‡]òvmr4ûö¶o ®AŠÂlËJ ;ôv{AÇ4<ŽuAG¼B`Ó«/q7u=®§Ž”Ir8AAŠ\¹6;ÑoõPŽ=I­—FjBZ$NÖãükZ |C¿Zº`m09c~E²qá>‰ÓÌC¯–ÆÅZ9ò;m¦f\`©G†~‚¼*ÊeÄ\·(­•J=(I”±¬;„žœm€SRy·fƒçÁA¼E2’Áâ› 2òùe¿¾¨' •Aæ¢ÀÖ n‹Ç" ÉP¹X)B<ô†:†ÀõÑY¸·¼ª<‚tž£öçI{ñùçâÙZ7zÔsºo÷c‰{D§X>”_ü.¸n÷e3égò(­(?AÄž†”Ûr0VX_@áü"ÎèZßQ}2ü£øB˜¾ÕïíÆöâÉcýQW§™=ºQãcž’N¢)àvd§Çо¼V)3›Oé)¯EãÿïÔ gÆĽ ‹3©P*zÌg'Ì écˆ5«HñQœä²È稸9ÊûŠlºz»ÕÈs\û¥(ª š\;d)c“ Ž”ÑJ¸.\l‰è£n·M Í.Ã>‘<©xh5Ѹ6-ÙR „¢&Ù˜ßÒ(×ׇÙßI|ø„àë‘ËiñÇE !”NN!D®Â0ER„¢qu‹þîpÛQO?Ð@<[£ ‹œ{z©€å=4=tÁZÜõCkhÜ}@© á+s"c!{£,ôó7DD˜ 5¸Ož=| ’¾K×CpÊГybt\ˆ±üp:aì…+Ü nýý·¯¿·ý§p{,LbP9šMNt5sçá¬\ÀƒRDm§•^>Å"²Úµû_Œ&yâ™PéFC•0þE”*8rG´òc•XA4up ÁPy| ¯[7hTθ®æ¨âÙ2¢6†;À{áuv„3TÔÍš¾DâJqÀÇ»CníFJãQ’ªæé/¦˜vŒþÅ}hûî{ê˜0o¡øÈøKLŠÐÛ åÖN:ŸåbX„E(“ƒ$þ-¡*Åll(xÞ ³’—ÁxÒÈ ™¥ìýʦ½‘‹M|V7€¡u\2•;Qæ)÷0-d’8¿Q³fa‡1Ç?Ñ‚‘}²<½þf¿]> /m =6}4ïcÛQÎð)SRu@\¤CžÛ¶,‘Äij?­ºv§^Íç4éDÕ”†j¸u=À•|ùâë92ÉN£ý“…cNŸšÜ×µïÄ—/^(Sw_¿õ›£ïæFº-=y#˜ná˜a{OªÄö˰ÂÉÖ݆ǛҚºû`ï&úTÀ;×1–'l˜¹u} àƒ›ýoFˆ}Ø®ÙÞV!<Ö“Ð~ßua7ä|/©…*9½§c²Õ:xòpF+±éýnÑÃ1Ûi?Q•¸.qt‰bï¹ü sÔ\!Xù Â’dž?e»OŒjODbîÅ©ø­DùëÍ ˆ—¸ä“DTí•ýhEÏÇÇ\4W‰ ¼GNÏ1g,=m®îèß!8J$Šú€4s^LíΜa¡ÇjâÏSø?œž¬8kfüáÙ› ¶ Hð>;þˆ7{Ôž‡Xâ6?„þ›²;dk,ì^δ.òŽ`??ýþÛ«Ÿ¯è‘Þd­6Å}r~ ì2gÄñç3âh³¹z+:Œõ_ŸðTš endstream endobj 672 0 obj 2866 endobj 675 0 obj <> stream xÚZmoã6þž_Áo×¢YVõÚoݶw(°/í%EÑÃlÓ‰º²äŠR¼éÚûxïž!¥˜¤-g$Ãrf8/ÏŒ±ÛÃUÄn×øó/üÞ_½¾½úöŸ OØíöJ°?‚å1Ë£œg…`·»«¯%xôõퟖ8H³"æIšÒšJkÖV;ÅÖÄ0“‰¤ài‘x´U{ïÑä9—Á~JÛc%QxlZò²4T7ÊݧK:i.øK‚hŠ|Vtñ,àpHÏ(*K£è‘fQÓ¤4b)o†®W¿Žªº¨n’|'úbçié‚ÂD”Ì ÿ¦Õ…¤Ë i^RøH‰S_VWÊ€ëD]Üÿ´tA]"²…ôæ×7S±Ì\ê3§¹ÑøH³¨qf=Ó;ûöi¯¾ßTûAõ §"à:Ñ8Jç¥ßTË>÷z`+OÆXp É#áX7èÌ”¯J†bï’}ªõ@dën£Xå!ƒXdäVqU·8ØTg¯ºÇ•$—RõºîÚköÔlW=±ÏÈzõÀT³ßŽ :¶QŸ[›áwÕzÎoÉ)àHæT÷°éÛ?`Î_~¹{ÿæÇ»Þ|ss÷îû·?Ý,X^‚¦gû¾»ï«Ý?<ù äéÜ%×¾yc”kÔ(‡€Ì˺ý-5g.­L@Tº´·d°CÝ@ï±oY×2Ýí&½5LP L«{V55 ®?!le·¢òD6kýk°îÒ,¸š Õ®ÖtË`­Q뺾WzßµÆAºfB^2åYéîy ×»fr@XÒ3`IK—øÑ_.xT¸ËŠ}þäQĨÞÀƒdÖ£€™KõÄ:èÔ#hõ¨¬-'°„²‹èZ1+g.òÈ}ï›0J¸Gó诖:cÊ¢àÀMí“ã2ϵÒàDº©½s!v‘¹ë[Õ«v šî"“"Ü Þ…vÁ൭Ñí„FóÄFM6Zʰ¨‚Eêò_ø13 §LP±×oÞ¿F ´ƒ(²y&\òOƒµ½~èFDʨՂh2Ix*r—WÿÕÜ­šnµ€HË8d`ïi±Û÷@ T „%d£¶Ú&ÍÍÙÛ‰‘nb³ ô[*‹àÜ¡lêÕ·$#í¯ùÃB}ÌC6Fe@U›kÊãxIJ ¦Œ˜P˜uSôÒ .Pzâš" Õì+"=ñ•HP&šRÐ’n€ h Ú—Ê>ÒtÀ1É<]uë—Ï@étÈVyaÇ —G’­Z›4qÍ*m릱ƒgAM pù* ®[×÷-9@ÇVŠ|oÃVOLµÆ­µ9{=ÂE7#ìØó Ód¶‘$ŸšÓ½É ô­ßë JtOµl‰BÎ1˜ÚÝמæh#.¤1¤»<ùÈù«¤j\ —\›ï¾Ó.S&YÀr=ÕØúþ°£òRªe¶(lB}bê »R¨yƒÚí«?%˜·ä'U²vž#ÝM%î´VKíž@ëg.Ëj¢; X8»×6ì ÂÛM7® 'éªWÕÇk¿(É _¸[Œƒ©+¨c«jE\'µ80Ï=ÍŒþ9 š¡| {XË,"9™Q|¡¢²pÈç|Ça2AèdÓ0¬k[„€Y8 C}Ê Ö£OlE>U82‹ò2óh.ŒÌ¤jÉŸó—„ø ðÞ)2a­wðRm=­WsàÓ$äˆF<î–J_¸] tPÒ¥n§Y‡ï$OÑzõá+ÊH4ãŽ-–“-šôd9š~a\… UaE¦:‰Í<£Bé¬V ÒabU! &ËE:¡ëP£(ÏA—ÎÏHÕ´¥sbdA²àqYõMWm¨./䬲4YãÈq´\] wV¸_}øzaV„zäïpT¬êCè–zFºw„G©Œ–ŒË”‹©iuÍÂÙσ_…Pw¹”.Üqßi]¯*-lO±âç»XâB<ž§ù|{"u»{7¦^ûÑŒ™ÆÛol?Äå—ØX‚ÜçòÝ"‰bžyF Ú˜œð¹³lÝâú¹–RmÔηlŠDyl/‹*$µHfµµYx£8âÅ·Q€êªý;ß‘£ˆËÄå>x±`æèhu4üÃfíj‚ a —¹zqwzô— êðœelgŠøi“À-¢Øj)…àÂ=ñßï—Ó‡éûL,yyB&WˆµwÔST[nõ'ÜÝùZl= È"ñ¶üTÑU»›¡þ‹¦n|½ß/äetß?%Ÿsh2F ÅÏhR?µCõ ²Õ@:Öó–7I“'‡ýÒM ¤SŸšéqe74' =¹`MB& +ôæÊ˜•zƒÚÖÃX5ÔgÚlW€CÔƒ?Ðøˆ<© 9c,\Š`Ù|PÍSÝÀ³Õ Ç+]m…51Ô”^)´'÷MŠ2´9®gâ¾= ¶²@M.ÍabTî Î Û<Öý0G[)CÖì=%%ŠB.< ЧÓûÀ– ­LŠi*Ü¿öÓ@†Xàr˜Ol,¼uóZÐߤȸŒJ—hY4ÒÒgwzGHøbÁˆÈÌ-ò—ŒÈB‹`‚y\iWŒyV¾ÎtîëLg„m–²ibo ¼˜³bº&—AµÀòêNëæBÊ¢ ¥ÇeuY@8è’Ò¥¾ÑÍ¥Žó(`ÇÚpï§«;-I_÷a±ù(8‰t™(°PõôR²Nz7QtNŠÓ„ð·Ãù’ÇHr°5ú²A½Bâyµ¶Ü4‰B!× þ¿øZƒøå ¾œvY¾êõòÈŠ„0‘^¨Iòj8a;›ÛþB¥ÉUêq¼~|ž FàI¹`h"õð/Î eÏXÂÿµêÌä‡=M#<DæÀ¼èÎ1ñŸ¨ËÕ¹„â7uEe:})RD9KBwg9¥BC%—ö-මK…|!A ç Ú”ÝÔÐ]Ð<¤_Ât5µ‹;(•óŠT`±{Ô¡b¯åžòåz*> !ÔPÁ¸ à^몠8SS›öfú¹é8]¢ RNë.hA- 7§5t…¯öTP–Ì´FÃ!@L0º[l½gY2÷ĬûVÝYØþ¾ŠïÞb^zÃØÝ:¼87(¾õoó-Ž4²ÈeC¡2–ZºØÃ_Á>ìbO—àDÃ=ÐòÊ÷°¾çJhòã¬êÿ~šAÜC}¼oª²€r¯‡V§nšé²>ú5£L]òÃq™*ÆÂš¶»ýÁp£Î?š T˜/RFœÝ¾£÷8èö°¤Ý8DˆƒübÛr4½3¢!ùPôíû¥F_…PÃ&.¶³›››îÂò*áËàvƒY±ËÛ?LýQAŠû2Ø‹#*ºùrÊI!ú: ?Míõ™x:89/—ƒ_&)÷×]¶Uqz —æ†GWP|:ðåµ…>xœdhèx>Z2jÅLµŒƒí¦¡Xcºn‰áŒn˜-@&÷œ§'qHŽA»@H8*"ôÑ=º+vOGtX~§.°·ÌÔÕ3£Ý`¬ G‘ý¶" ,[BAp8ÊzQo—oÎuŒè i:R "Œ)ZÆü+m°¡Eˆ]ø¢µE8ˆs€Ÿúªúóú/Kµ hvð£3'»4íWÌð_¾|þǸÚ1­º’é ]σ¡ª¤gFJ8©AãM•ÃÉÛ~CÝ –°ïph•CÁÓõ•xÐg1 x0Ÿ”c?îK‘x‘2pÞÌjƒëe0 íÄÑ¢L ´Ùë»m_c ÛwcTØ?Cjkš››ÙÙ~Ç6ööýŸQr†Õ…KÇ!&jö=;èaXO§K§ÁáôuIÝgšPØyŸG¤ÐpEÇ&p @,ø}æÍlc,Š]Àñb_oý X”ù‡|saN-Ré3̯)Tv|MeÞËBmG‡ Ö¹÷°9Z-Iˆ¨H‡§“Ý|çKa‘#"l¿˜ÃÒ¤ èƒ\0Ã2 bÈÈ-Îôм¦y0Á©‡"Lv¶Àò7ãV]mцÝÒ\#ã8H3z¨+â›Ì4†1º çV+9Iþyÿ+tQŸŒýxÜ܆¾8ï¦*x6y‰C³ê’ßn_<‚ ‰2¿b_Ä<†Ù¾8úIÈXñxD­É–|ç’̓-’nÛºšj{ é\*IérSïÆqñ`4Kn"ܯ¨"ŽÏq¦ƒZ;ލc»Ò™ “´;ˆÎçíÅJ54Ôî4XbMw2Ë)^ç…í!üByq®\â\¹ÆŽs½×µ®ôÃúˆÙ5þ@ bÅ~…£ùáy~LYµŠTè=àø,áqÄâÓnµÅŸ,œÚIYb¿ƒIå Ñ®äD 6?à{ÈQ„ÿáøÄ1ýU#~zö¤ ÐpeJ¢†ß /jŸAaßÏe€õ$€–ýœ×ý8À€­!ßõ¸@ˆûBí0òù2ýóêÛ ‘’d¸Ûê€ÓS8lsDÌŸOˆ™g·ú7«a­ÿíaû endstream endobj 680 0 obj 2560 endobj 683 0 obj <> stream xÚZmã¶þ¾¿‚ý” nOE½n‚Í!WhÚ&Ù"_¸È½Ö,9zYŸÿÔõcÿ^Ÿ¡$/‡¶Ü"ÈÁk‡äpæ™g†öÅãñÎþù+þºûþñî›w¾xÜÞIáã?)’@$~æ%*û»Wï*]—"oJa>õ¢øúñãYX&Æ!›Qç½#ø‘—ø\j—7OLF…^˜ñµuOß¼ …ô-ÆiâÖ'AåJŸIŠªMËö(/d2G‘‹Nçµxûúµ(è,÷˜3ˆc?`h8t©·bÛvbØiQ´]§ûCÛ”Uó$Þ [¹J¤§”­ü/ÿüqÒ鉟òPqh»!ßTu5œDµ?äÅЋ¼Ó¶:m-*þc¥lèÇAìr:¡8Œ›º*D™¹ØëýFwX‘ßHìe±=ù·î´èuÓW›ZßÓáð7 –/Úò¢Ð}MoǦª¶íÖØ Ï÷Z4ôVÇî#µ,­õ…<«jŒn9™E^,í™d¹~èÆb;í¹æQrÕ<4$ÍÐ#–ÙçXOsˆ½4´å>ú`Ž7´Ø,P™S‰ë¾ÈÐËìéÛ:꯻c:²ö ±ëÉR/ImI~}ÊW^ÌÏ6í3›jX·kè#È"{"ÙÕlâl\ë§v„/•0kO™y25SÇ^‹ŸN¿þü·7ýAÕ—ÁÐôCÞÀ‡aº ¢è“xfÇ c³ü‹Ž¼u/Úq _ªoRøúõWì´p_ÚÓàäìUœzQfKW®K%©§˜®ðú®ð½âÐ1»„aäeÊ–{®Jm…Îå “)ýd?GT§q Ǧmkƒ2:/vs¤Áàÿ†s¹î¥Ñ¢ÈukˆÜŸ[Mj6–Ìq>_Ùê¾aw ãÄS©-;ÀÅŠz,á0u½@8bÛµû+N¨àAd«"'|æ÷‰$ mèƒ}œ(@”¤LÑoÜÙd¦DÔz;wv-¬9ìòð–Ÿ5ÂD_ò³ÂÙK×¶‰:Û­P4‹ó ÜZ… àÆN²™=és¾?ÔéâG³³)±ŒuÉ÷¥B„ml«À¾š¦AЕžø>ï«—qbV@¬glÝ{QmWV3ߓНP¶Å¸×Íàž>–ç ¦„ÙO€I P ÷¤ßغ2æöVóx¤3ÑK ök‰<µEÍu÷­DºŒ}sý/³ú¡|xxÖÅÐv+øŒ\À§ˆ#ç(±'¥=ÞvŸÞäuõ‰I!TâÄ–Ò¸ß Q|äž:bPÆÜSS r´k!•ÀÕc[–B ö™r¶É´½ö `HÅÙÚ’ˆL÷¾kǧ›Í%’Šl¹nšxÈK}¢0 Ãb£eÕÁÐøj >Ç×¾å WÄ¥E»ùˆ¥<ñ÷–›Ä÷be §p‡gîræô°sÀõ̇qéö¨^âîfòTI{”‘çgÙmMFœïsàù†@È@»ÉÖd%ú¦Ó[˜³)ôD>.îö—™­÷l‚ÍÜBæF;}¨sÒ±jôœ±-Þ2z˜Žô|fÚöòR°ÜaJ4nrÈ…8[AøYóÏsañíõµIML§žŒÿãnl›ÞJa‹œÈážî'îÖïåÄSÅ«–Ћc6é™g^$Ù¸6Éœ<}<põ°d<ºÙ·sâñ±}/à¸Îm|Ïç#¡æW.½A‘e ƒ´½¡ê±ÊgÆ¥å€Ç_–zÞ+5^H[‹b£ìç‘“é# )“99…ŸŒ½(æ"—…Ÿ 3/õ¹”[øÉ„¸[Ìd¦ÂïöRÕzÝ-dâ%/nA”ÕDÁØ*vyGõHÞˆô H1Âo`X>J ”©y‚ÙVÀ'~OAWÄÚÒcU—³§™è3õ“K\–=‰óœ(õàŒL@w€¿½°8ųB1% ¬ãâ…l¤T Ü(&Ýød?ÛjT‹Ç“²çŸ€×d)A†«õ2*QØE¾:³rS^š²`X8p,Ù*CÕœ>T¸è”-ù„\ˆüîy°‡(×É/-á“8é¼sëz*Š Å\¦CºDk•)/Q“¨Cï'h ½§f@7êï’qL°'‘s-8oÊfÓ •)›¶#Ñ[€K×µãT/àòvreÂOOüP‘¯–µì ™iÂÖ½mÿüЙpïš&•ç±vZœ6—0»ÿ¯òÞÚÿQÀb,l$’»bNØŠ¡"×Ä“ÀKå…ø‡±é«'¢ L—Þ „¹{«(;O¥Šç÷Ž!i–ÙgLÊìå÷_xµ£UÈ*¶Ü Áq,3<${MQ²oËê <~:½çDD¼}Étq TÄté”: O¹§ãPÓq‰§œîª®6]ŽM—-vßä_tìM :9q ,T4ñ'm$¯û"?Ðä÷¯¨ƒ,Îó*(w,Ù,žWãˆhª=®ëÓû¯a3Þý‘&v,1ž1²ØCRa›ëÊšˆ®]†ßœ¿8_7¡ÓãXç‰øBg¨oZ§ù· 妃Òíi%ý iaïݘTÑY0RF¸fÛ¡šì[ƒœýio|𝩖Jà_Iň6(BõA‰8ÁBmTº^LÙ9d«>»ph{|r¼a –%D–ÀU”蹫! ¸‘gêæô,¹PÊĹ…Ä¸Îº™Yû\¦ÂB…>‡uYÏn'Ó€¥Üñ‚†7ÚªQ³Á³¡I“Œ9„‰sàA(žžIÓ—³%{ì|˜ýö":!¾Èa¯¦Cýå³1û†ÛLTµÄǧéˆGÎÄ$•¶œu<ªêûöÂ1NÌæð–_l:Žö¸.W=ãj‹ H±Bb…ÎÃC7Õýyxÿêý×+-ƒ4fSÁWJPЄ0dÒ¿è~¬‡‡‡­ŠÝ‡®=®/D”Ç™MàP·Í“ñ¤Î©KS*¡méã­Bͯ˘øMùí´¿µz õ3‰N?Çž?Sêk¦Nã«Î2¿êµ•dÌ'9=/L1¥¹Þ;74'(øÄ F¦®N9.p’?]ÀuÆg=š5„»¶ì—.ÅÜÙ²(E‰›¦ln^÷+*-®Å_Ggá]5‘:ª¾æœÓÛ ªG§Ì7.`M?ºù-ãêÝ–o*dÚÅUéíeÍ·¥ ¼ aæ B5¾r©ÉÅÂÂý`Ç~tMÿ—>`¡|ÝYU¹ hµ}þÉ­”2.¥M“Eùz§E2€ç÷P¯ùœ ;~±#G¶ ¹,dÏn‘elüæ%?[²³‘~®ô t üÔê<åIe¼É0/]-²ÁÔ…[úAÔÅ.©32õ088‘gfëgV™y/dgîê,³<ÙüZFŒ«®uMë¸F÷ÝÑœ`¶+&K µEÁƒn ½¼_vt¿t_‰TLϸsÁ²Ñ°ªª÷¯ÞšþûZI‹‹Nþÿ­PÓÇ‘w¬ v—q3<»T>á HV6+t[öºõœ90E‘O½{þ žï\ƒ0Ï `ÜôDî\­Ì’³`ÓÂáPÊ›[ü况eú4_¹ý°{ærOuÛ~2¥p+ž4½¾í¹~Ò3‘=õD>;=6Òkª-6V@所L=Žó«çÅkPÆ™%lö0÷˜XEXéÞ-œ £`Þt`\N*u©mÁ#¹ºn›ünϺQSÈìBšÚ­ÈçÒœ |~ÌŸR— –¾¶hxÇÆPœJ6LŒša©Á?[bzý Æ- ¢våòjÍÉ0L®LþòÔç'aZ¿½p^dèÅ‘\ÌÒ o´­¥ Éü‹xíwßM¾âY¡E_"Ù×ëmk‚¤xþY¿ujoDlüh|ýbãÒ¼=؂ڀ÷ͧʓav¹w¶ßÏS|ñáE¢ØßÑO)Ìçåc*ê»(ô8Vø8ÉÒ§ÝÝvúQÑ&Ò{jèÍÆOËMØ{H@z–TUN‹¹œ?cÖ“üüyÞÇËï’àIh^æh /mU®)þE óŸòfÌëyk4ïͤÀ§}‘ûûöøÏwÜÑG¡†l}Gäå“o¶9I,¿H,svw¿‰ºþ zÏ`Õ endstream endobj 684 0 obj 3113 endobj 687 0 obj <> stream xÚ•Y[¯Û¸~÷¯àS› 'Œ¨%}hv7ÅÝ Iô¡gÐm+‘%¯(Å9-ú‡òÐ×òë:CIIÙ^ èð›á\87Ê#«ãÂ#« þùüÝ.^­/^{„ùdµY0âÁF¸O¸—R„dµ_nyémêX­úG,$õO²ô÷}TÆ ¹rˆ‡Á™öNÃÖ™ö¸ߨý„Eç7õñ’ê±Ksƒê^¯ÉDsù ?ôü™æ!·Î4Ç­àFÍ'lïw4¯û}"»ÝïÍ•CF¿OgÚ³tÜz'ñåÄé÷|h­"gç$h ,.²å˜aȦnÈ·m#ö{Ñ|‡|+T]A!yíVf±"K?±¡0_ÅþPB+¥êý)û¶k*±|”rHÀv‚ Sh'¹É¬kɬ.\Ë@ªßej}×Má)àð,P-–ö¢5O¨+àűè23¨¶Š”Åg«(Æ 7’À´PwP‡æ3×µZw£P©Ä¶‘’‹vçHBéïÄNÛUŒCsn"EÙIJÞ£Oõ_”ª&VåöáD̦+á²í²[W®íÊÐÐ$ßÖ̓ÛHIÓ‡‰²d°;ææ¶tËWȃqÏcغ-ˆG Žà{(ªØ¢_AÙÙc¡IyCC§é3û(uÛY·HÝX#ö¸útLüF LØ¡|uû{(¯ Qm¾\BK WÿOóu6tØ\·6Ò¨ÖD3”³Û c—Å™q`8¶Îìƒ[áö™°Sy¿rÁi,u o¸#ÎÛÍ`‘K1uiÎLàÅãÖ™ p‹Ýh‚ ;Uº›L0Þn‚‰f¨u7˜`¢qM$á¸õxïmë½íG+eÌæ9@¥ c‹–Êoj/Ëòáû\WÄþˆÿýqK%=(釡C×lå…¶ ©^’£%c#·¹/`Ô®0%ɦa±òɽ„§Lr µ®¼#UÝêR ¥ ª"} s(̼Ãh•‡oW3h͆c.h† axÇýPzA½(4I–Ž ýxZY¯>LlQbRµ8¦çÅv‹Úäv™bLûxOïF?wÞM#ù×üLrÑBwÒ6]õYB·{“P›"Öd‹¡w‚[B*)óáMª%Løø¸íÌ*³Œ9 éG™É-NëÁ‚ˆBûabÇÞ£¬ëÏ:TÊñø|¸ò˜ò$0Ùéç$ÌÜu#‹jÞgg4áÌ$…Ž©UöÕ °ôG–nuó\ýÈ¡©×b &ßɼ˴¼¢¤§·Ï4^?ȉíúˆ§ÃÛ’íÕi.öLš%>Åõm:Ȭè}jß0êÔdrìûLôÆÿ Ýö½`Y@e,„fÑ›âß_]2‰~S­hÚî€ANšÇ9pv•ûˆÆ¡‘ëyŸQ÷ÍØþAýVËå»úHšúøÒËg;X}S  ‚ ­ó')Îè<¬<ÃÌ ¦‡ü…x/ñ X@þWñëKòìYqÿ”üÇ!†É*Šû&š/ȵщã;‘悟ÍÂÄÓíþ·~Zv=†£7Û/ð»€^Ë„”‹(ôœ%Në–=W»Å¦ÿ"}–ä<|˜¤~ß‚%Ñ™¦ <ôɸ þx˜ûã´b eÖƒÓ»p@=˜IyÈǼñËÃû·öŒ| ¨áN ¿ˆªå Ò=ïx(Ú‰X¿/ï¿]ü¶À%îð¥™o¬<-fOˆ‘f·ø'©€×ÿ¹„µo endstream endobj 688 0 obj 2411 endobj 691 0 obj <> stream xÚZ[sܶ~ׯ@ŸâØ2M¼ÊíC”Ømfœtb«“éÄ –ÄjsÉ5ÁÕjÓéêCúÞ_× ¹ÂDõ’L&«å9À¹|ç;ྠž¦ìêp²«òì¥óçñßÍÙåÕÙ«·‚q<^Ÿqâ_βˆeœiÆ®¶gÏ®6r`µ>gu[©/¯~9‰ñˆ‘È]Ù»º½a;©6lSmź5“ìzèzõ/Ö+½o¦ÕÀ®¥(!b×R·o*öË–z5ìû–É–©ín8²¾sUE)U=°nõ‹*‡svØÔå† JšIÍÖ®b Å(&Š²Ñ §d«®kŒ¨qW.Œ»ϤE¤±•/»v )DpWâ›Ð«ã mÒtÝ.`ß“Cp쥈‰í„áw#õêmì(‚ç³"uå?ÿ°Wýñ½uò¨èGVðÌWDh¡Ç×" ò$sÅõP]\Ü»]ÿøqÈ}V©¾&¾çEg±+sKžGˆMDžËZ"(ž² ò §Ô9\ŠÃªaèYÙK½Qš»½=IèÇ9ÏfÍ]ßÝôrË:hɽVc õ ÛJökêU/û#:|O³3JpîÚ:ØD¦ÉoªÒ•¹+Õn¨»öŽÛ!qLQu-² Q©õd ‰åýÍ‘_+‰²™ÎLjo’0 ’ÄÕQ½Ær¨UWÌø KNùuõŽm¤É[±pÅ®à¸kªÜ´õç=JJ_Ìù•‰‡4iœâø‰ÕÞõçf·»¸xßPç‡×þ~…0WÖÏü‹ ]ÿª®‡ã+?°%A6•ûñüø¬f`ákV³ßx Úýö+ëÏ>~ùš½xQü’ýÍ7“ Ió1·Í>aº?Õ??X.L‘“ä«Wì›x°UHDÄè€L´êÈGåi&EðqŸ¼ÐŒP&‚,¥‚ Kr~Žð"6®ˆpÔúþb_ãhzÃêªî¶OD'‰‘ÀøÿDÄA˜‰ÿ ¦®ëAõÏ€ìD"ȳØÑ0z8X)$÷|÷»ñKTÈ)ZÃ#áJ¸Â'$\ÏY6¥ôÿˆU Ü2,<‰¾Ç(| y¾Ô3ÃÌ5ö V{óyOü)Àò'ü)°to=ÕàcMþÚ«'z˜<¼ðû’)J¦Mcé?…Z·ÈQtcãÓÁŒB¯Ùâ?h.^1…ÞÚMú†Ñ‘ÂÑ2n†Í“¶'Ë3R=ae+¢èž§ÏÈs$³¤Yt¶~)Ï>† ,³3ãÃú4kÆ ûñ m¸Ÿiì?ýüñ™mõ#ž/"¬(,ÕwíxÃaœ!Ø–+a§Ã} ûUm˜2²àø€| àe!R¢xXžuà¼0¦¹”ÕÛZ5Õ÷r« `ãkQzãI˜ÐíÏDA0tL§­îIw®ª)aœz£ŠˆŠ ʼn0Iö6=U§´î PuµºgnÊ›ÜÕzx8µ"0à®\ˆÙ<¦à koþ‰m =Åì [ÚèOZ®´xÌL^ ýÉ9µƒŒ\î¹¾ðéÚÔÒ¹y0ãq¯Öh m©Ì7ßDœ¦ÆÇ £vÓpnŠëñð0'²Ó.¼A UÆDúY¤uŸ#©Jìt@ÇÓÌ¿¹3½Œ­”d™Þ—s qÑ…«  Ä¸{SÂ\ƒÄ)ê»!X$ÆQaøþ87|Ø©²–Mý+½h3ω’Ü…Á±ûÒ̹>à‹€¯Ò¿Y 1›ºº>) ŸyB÷ñ)Ž2ˆlÊ/ÕžâµQFJäU·}¾ 涀ʛ|[0²&DX£·éçKLYøâ4Å ?ÎéâWfÖï‡ ¤µ™?'Ò²¯ô˲ÛîäP¯ê¦À<”¬Àxê5GgÉñN°YÀÚ(÷¦¾º-›}&¹@#‹øQW--d‚œ'Y©Àès¶òï>Š”î‡w˜ ˆ¾èJS~‡½™Ð;Ïåq××{›à” Ð!ºøég¦õÇ ñ›…m­À_7j`»n·oä€,^ÇÆarÚ£§‘HP(ׯÁgè)îós˜N6»™@«.…(ÑØ·-»,è"'²À(¹Ò]³ÀÏà,½šzž½ò²GÞÍmSä…×6#L³¹°gö©Y¥ÊFSµwOgúfvÕî0ûXæ$5N³§4øi¾íÕcÏ2l% ⪞2Û -=§f=Oe˜û*1Qƒ-ÐÒ²¡•eéØb0M“%ŽžÜyWxqaè 'B_µS!%^a$æ:+§žûê!.<DB%®Þ¼ŸbŒÔÅ$ûUI¢ÁŽIÝ,ÈbAžuùîÍR7Á˜" m·væ¤ásK©]ëHÙl;4Ùüææn…JÓ@³‹@Ù\yÔ¬U¥ÒºP`ÈÒJýÖš±ÃdDÙõ½Ò»n¼ßÓÕì²÷nxÃKé‰öuc•l¢O·ÓÁ‰Ž„¾gÃ{ÜûÐ!Kec/ßF~…öiÙóPÍöú~/õv×aç ^{K+7´Xà˜Bš#YÇíd?LWí¥iµj$S7ôþ> ƒ˜Ú ÷÷ˆŽˆÉóù.{:ïü‚&ɼ²æ¹ƒ¡Õ<°zﮀǘ”]ỹmM%»¦ó¹°‰M¬ƒo'€‹òúSç3Gq”@˜Jx—)›¥D„{S*qŽ CH-"R4E×½³È’ŸLðeEÁÑ˜Š‚ ·ƒ¼±G·Qn: :q¬Éy_6”  FI¾|â¸ÀŒRÕЈ$a!÷"2ößÇ^èðì¾{¬z%?´˜ÞjrᜈÞÚzíØ­Ø¥Z›»óo½˜‡æâ*Ýí‰,Úx/ƒÐCc"G!].ãäù9kÔð…ÿ¶(¦‹iÃ6èä Œ=}Ž ÈÉs5Vð¦¾ÙxÁ2Í—'OK3j qÂh>•ÝT¦t¿ iòà° M¿µ¶ïÞ "›DÜw°öÈ OJnØV™¥k½õyïôrƒæ›PtЦÃ~{à¶š^ØŽæîIŒI†­Ì‹eóSÈãÇ\^¦t¹óù¾îщ‘ƒÔ‰x:ßçæºD’꺼¶¦¯—††‚jNûµÊ†neÙwÞŠA´PÿUßa6œüï_@ƒp¢ð#e(©!Øîóérƒ"˜0zˆñšYÁ:ͨ¦S˜qG%Ouè" TöbyÝwÛ¥!3¿àDÑõ†ÔZr¹Åô´½™¬œ "0þ Âü&a«d«' ¼Ïɪzí¿.èRóÂJ ¥Æ–s iŸÛRwtäÑw¦¶(Ÿ9ìï&ŠŒÈ’ü2|_/:‰SM/•¢Ô&¹#ÐõŸæ«i†¹!ôÚOÈ-89*†Ì›D™RÐO¾<ˆR"µÙëóÉïæ‚ˆÎ*1’"âDáÀºÖðt²‘ؼx§r Ð}·ß釯‹ËÅZ`è‚j=\,¥)ZTÄ]Žÿ““{:óïYf­ïç*ïܼwTìu![O,´‘å'CNf”a÷Xb{Á›«“©½ä±qD¹=³¿E0Ÿç9kÎ’8ô>BàôYàã(k>mÎÖæ÷TNž3s¡3ÞÇç郥ݕ³8bóø|ZÂÿãô‰Y2®}úì­¡í„Àä,ÎæŸ7ÍMèäü“(ûN¶û13°5£÷r4š}ï0ò÷ÓÏ8û|f>š'Yav›òÈùÚmŽóß÷³ÎæìGÖÂÖ¿ãësý endstream endobj 692 0 obj 3247 endobj 695 0 obj <> stream xÚZénä6þï§ òcãdEuÍ@$‹,2LìŲšv+ÖÑ£Ã~¥ý1°O·_‘R7‹Ýš ‚í°Š*ÖùU‘¾¸Û_ùâ®ÄþŽŸ®¾¿»úö§HøŸWðñO ÒP¤Aà%RÜ5W×?·âIµª/êqè&1l»©Þˆ%¦¡jŸÄWw¿aéìú¾çK{Ÿácý¡ìU1ª_÷»a:<â±ëEQ×âööÝ/·jS[«aÐr´JmÄØA %6Õ#m¹l$eìE¹½Ñ£êU;жh° mº)Æ‚X¾ñ=éG¤ëôIž{I Õ<¨~U+~xõJŒÛ¢Õ_§¯Ò>ãV‰²ë{5ìºvCú(»zjZÍ¡=ýke1¨ÍwYc2ž°[*+»fW«Ew> |ÑpI–.ÜU;ŒªØx¶fˆ"‰ ˆöÞˆj{›("HbƒØuÃP=ÔŠT¾-yš‘š-ò¶œEžÌíå3{…~à…Œd¶8ës6Ö¿vmAaÌ3/î·äÆ £}ó²¢IqäÅÙtË@J›ATÚº¶>97³<‹W‰^}¥ìóE¶Ç _½ ¶—‹Ú[DI½Ø–%‚“d)h3Ï7´a|Yê( ½(e‚“¹#ÄÍ4ŒŸóEˆ”g+jâ®xÙ e°0ê~`ÄQAa…¶ ŒÕ=ÎzÛo• )æƒa,½ °7*àm†Ÿ2ÐìëMQ ‡K™ p‘Ǿk4¿ëSÞ’ ·“‚Ü‹c½Ã[fÓ<óÒ$³iö+Ê |+HlÒ·S]ÿåîo+þû.½¦Ý®ëGTæTXZˆ‡ªUßµ Ë z¡új1׋„Èlß÷l= ¼(cëÕ0a[Ò8òyä‰ûë÷ó1>¼qT‡±ç‡’éDõÇ|ekÖO žK mpZf‘’%žŸÛ«0J'ƾ{` ' <É6™öÕ¸E¦óî¿bJ ’ÜK3›ø;¤:8i×joiŠª¦¬^W˜¡8P BnòÓ—L{¢˜}usËHâTgÂÉAìT·;&­aœÊgóåjìèrÆ);{?T]{#†Nì•ø =;r ÝzçñѢŢ%‡²"›‚*—^˜Ø«ÑM&Mô6ªDJ®†FûE7­)Ê(h|—ß J!ƒ)Œ”†¨Q`†ŒPü<°§ª)™r(¿†±Møþä´??}#À™‚˜üQ•£ÆPªR—ü6F-›‰oA ý ÊÝ7â?F¤^û|"Û{¾œR¡µ–yÀý—«1¢"ië’3LOOj Qòœ=÷I$)i³hî(vÊÅq,T?› Ÿ1ÞxØQÊ&×7%øÍç}õêK. übï3*_C.p¯U4?¤ê'ˆmÃ&+͇Åöþ”á h¿äÄl£ŒWízæ„2ÊlΗª›”#¦.™Â©MÖõÏŒ ‡9íuÿ¦8 ±4^Ødû%2s·ÄÄae©µjL^‚eÑÞÁ¿tÝó´û ùImV ìî0òÈ 2h”Lv"ø½T;íL”ìï(lJ˜û”Úw.¦ñC¶ù¾åÛG¹ÛžŸ~™³u¤À+¾‹DùŒÃ‹BjÕn¹¯t0€¨ò‹ÙC‘ïå£t8ÊÒ£BÏn¥‡Mc.—yožX¯DùÆ¡ÄØ» Ä™n`+„XmŠQglÊ/U©œ /T‡Øùb1ç/… ôÐýìñ%w·Ô )1œø–J€–Â=2JôLô‰ò5ÒG5’ÎŽ’kœ„€5rô …DКf!hm©[‰3G ©j³Oï“‘¹Ø[t‹oà€î`ÿÁo“‹:½Ì£8FùO˜XÔ¯.N@ýך™îA77e_ [ÌÚäSðþbTOòÄY×DöÚ ¸ªD%< OÚíT;\*m@çqšÛ¼(m›Åu>N -Ä ‹;ebŠÁ`,E»¶›ZU«ù\Qr–Y À†Î,€¹N‡‡Å „E„4†.¯2¾6Lƒ‚€Ü$ÊÁ)è>Œ›–*'m ÞØ!«ËL²ïP¾ÒNƒq¤È6-‚»,Ær«KÄÒsˆª\mZrÏ—ìäÍh·{ýúÇÅ•.gÊŸvXuŸt¼JdÍ™ÈàlmÓú£ú4ÕÓvDI BHOj93a‹Kî¥Â"Öæ'7Jh£æéòs@ð¿3eâu*iÈÀ: M{ªkù $覧­ç€aTp›‡Ú“Ì£k¶ë9z«amö“‘½¶ÃúòÊ„¯_k!.ÛBÃ}#6êS‹yŽÝYxöüдmÛ| I`{ {~{ü¾Wîv+%pÉâòÄ/g3ËlŠŽ£^—–ë‚N€ÞèT\¢E+ƒ·]Á<Òeƒ·¡ì93§^áo]ö´e´Étò0³Š¥dº1À/Ñ{W2UA¾ù “èBtÊïµø‹­A‚â3F€¤PX ®>rhÄÐ[ξ‚fvÏH<óÏ LíÉT8Ý,e¿²c­”Ćh‰ì y1 á8®µŽ€Mõa.hø&`¢q®c¤û®fd°laL冺]yŒ–ËÖn¸=Q~ÐZqÁ0áÄÀå2ëâ™=gqÑW:^©5PE¹Û48EëÀ· PöÄ·‡&*ž2/³wæÐ-мĿ/FÅsIS9w´C~Ú4ªÝ ˜9ôŽ$)ÙÚOÛ¨(K÷j§îzñvpµ†8JMmM¢Ý¼ÖYbeƒ6=blÚ÷×'^Ê©ÃàØãßÕà`™\MHQ†¯Ë?ôY !‹Ú ¡‘^SH"šnS}Ҧ––ji&cÓpËo¹Õ¡3í÷§†¹Mü} ñÊ£0%±œ ½4²—U_wÅÙ„æ~[Á?ÍhŽu©ÖÒ,oæÚÓ‘wžyØ€ë#V¿1Ïܵ‘<2{o§¡©T÷_Û¨«s½4mF~ÞÕmÛ÷•îGÑšð©‹DÜfM[Lõ(ŽiÁVúșƘô¶»™¯°÷^Y®1—~ pÒI€ƒ-tÀ®Ö惥Æ×Kðd¼Y'qÐÝfI<—õJØ kŠúâÒâ¯â‹7‡;úó-vûâÏ«ƒâ(@Y’ó•ZÕÖú^Ã=¿xøœ„aæ{y’~FB&ÜýW³x`Ý­âÔKæAû›j(U]­ê&¸ ¯…‘—sjÒ¾›¨S¬Ù4锬^è„z®hL´ô ~œº‘ìK¯†²ÐÝ[3ÁÝ›±<¨š&TN·†*±-›t#' ¡½S:BD}È%sÆNÒ‹rNà‰ï‹Á´E|&ƒÓÛ¤7Kbu¼b„êÏ0ˆ„“$ð›»W{³n+¦‹À„Ÿkn·.%0ŒŽdű;̳0J]ÝÜ&P~àÕ(`%Êk@êè§Æàqaî…1Ûœ†Ó¸›FmHnŠ Jι(õ4_^n§Æ@"|inëNæqì…yp·¡£-®slO–Þ‚i0¤Á<ß‘hÀšãùQî[kL¬Õ®.JÓÝ¢†¨tÙßt7ÎQ‚<×Ãs´Y”e^.í;2Üë×úê kÚ§õ¢5:hçÛtLUÚ8¹‹ *ø™áûU5L-yL“X›‚ã8ß÷✭«µSAˆ(e´Ã¤Ògàq‡g½W пE#þ¡k[3ð^Ñ\tÆr³Ö Ié’j+­½ 8£ëæU ›ú¶¢«†_Õ€úºÒc¡¹r˜Äýu;Ãóp¦¾¾÷}É7¸^‘‚b7OwÞÞªz¥ãEfpèQCé” MaPÄY{Ð IlXÊšæT(j0…ö}èºZwíʽvˆrÆüûHq÷¤Lƒ­FÖÈÒAöð¿ `ìß‘n6ÑÒ5¤†áëþ%©¨Glƒÿç_2=c¡„¡§Õ¸@ âýñîê#2ú?Àº¿"Q$¢¹¢t´üU_Ý^½Óƒ³@æw0‰S|ƒ(ñ¢³‹öŒQe 2µ}~R±TizZq| *®qò|š i›š½¿>Â>è÷]°:È*ôò aßÒosvS|#ôP§2˜@ã Ãé±c‰Þ#g;Ým§Aƒ¯Â`-V«fz%$—${|ã<$’:|lRˆ»òJ&ˆ%R¨yPЫ‡`y•VêGiz”cŒ…Z?•h-é]Ðr_|îÖâ0à^zÄ=,t˜È°/¡“'‘¬Â€+J_p“B„4uUÄVH?ôd(×5Cñùœ^k[N®5P‹°¼¢Òð× s÷j,@'%çÐ%*¡h9-“Þù…º Ê´'÷y™6„À޵Iÿl¬dºöGh_[κk«+–4àÈ{µbc 3DìHsv¬Zº×YMŽtá0Úñɇ]‰—ùL/8㎚ñŽ®O5âž_Ï5ÅnyˆHwmúŽPÌÙÒ5=ˆ’#ö}(ÊggnïÓôLÚ„ÿæëPVd/Ï8ÿô‚òr]g©Íg?û ±$T08«9:7"|?DU±¨fœsr,=_ò“ôÏ&ø–ÜÊß‚égZLƒ¥nß 2Ye@vnÎ_fôΆɿ ÙÔ¸Wêâ´*“^2S“Uçëø–ÏEônr&?½ypÁd?:ÞÆÌSòzÜW˜¨t‰MÍS'•9¶D¶qXBw¦Ùú. üˆ¯U­ý­1ts‚>^àÍhlaöÅ7(q,ÊæJ?¤ßËÏ ˆ,–¾óÇß~Zúµ½z¼üv9¢÷4’zU’.KÏ„°eHe(–Ô››¹é‰Tmèçß³§\xéÇXGžLÙÌæ%òж‰"åˆ7E;õ,ñ}c6ðI.Ò“`~ýÆ»¾ •4'iÓ/_‹i(–¿O Ïöê_¢Å^ÿ²:‰å endstream endobj 696 0 obj 3930 endobj 700 0 obj <> stream xÚYÛnä6}÷WyI‚±QwÍ[2Ø äºã½a³ÐÛVF-õˆ’ÛÎ'åaö}¾nOéÒf±»EDO‹UŪSì«@E.nö¸)/®œ?¿Ç¿wßÝ\|ó6 Ë› %ü£DŠL)™fâf{ñÕ­e×Úº2½©ÄŸckDz4ÖnÆæ³Øß›V ÷¤5åPw­Ø}óûAW˜Ç2ˆ˜BmEÕ¹˜(ˆe¢b³o¥xW·¥™”[ÓZ#º þ¨­Œþß2%qœÉ”ë ë ÞO:ºÛßaäH( 8ÇM‹‚„Iªn…w]W ;èÁ\Šz]Û<‰Þ cßZ±qwUE*óÂ•× L=å= f»¸|%²ˆ˜|ÝX)Þè¦üæmìE'Ê"Y°-ß6yýº¶ï—=MõÛW¿}=ëð#œ„…§CÔÌ.òIž­‹OÝ(~áuZ¥"™d.N·ƒº9@®ï/ nãN’$c¤~ ÒdUvÁÊܲƒHæyì¢Æ;±í*#8.NèLÛX7ÕœAF4õm¯û'/¡ÈsWh/Z|ñ¾úBØqóéQlº^°*B³­þÎÖÃP†)[¯í¨ñæÕ«K¡ÛJü³„ý’)U(ó(çÞ€ç3XAÁ¸× žá¸‘‹~àË…äç‚»ºá^0T‚‹£øž¦·™]‚F~¬’èùÒà²4 êþî»q ÿ·.~.C“ܤ ÷¦1Úz! Üvt SGkìœRcߤ[«·u{'lyo¶ðâõ攨ÊUÅÝ£2Y$î²A\„áÅ%iêbk;ÐÆ»¾»ëõ–?ùRùÆ~²öÄêpî\-¹’QÁ–ÉÍâǧw¿þðêŠ9~Û5z@Zní%ýKæÅ8•qâê@Yi â„kZÞëöÎLÏÍâP¦Ì°ùöìè[E¦(´ž— ÇvÛS|Œ@Mõnr(0èr‘¥_…J”š5¤¬:SîL˜¹øŸ~~ÿÃÏ?}?ýçÝé:¨ŠÀ¢ÓÞ Dñ!“Ÿ±?þ ‘øå—÷ÿÇF .¦4÷z*f KÓ( dΖ»ºBmêkû [Ù5Mm§;·ž»¦»EÙê²ï|§Ùª„\jwºœÿÍ[ b{l A*¦áb¼ ³Ó§$h’ËhöNç$kÙhKW—Êù¡T™£@çX¨RK]>7¸>qÝÎôzüßÿ9¯?‚‡\!±E7ë*ŸtD ̈Ü®çîŽà;æ—ý©›ƒ.% ô®®ÛŠ£°œ; G¯HeL w½4»™‘Žx) Û¢Csß!:TôP¹¯ºÍU?†ÚÛž.K¦ÉG^ÝÃûGÎúÍTžVϱlÓœîÃ3V÷u7ZÐ,SO´¡Br·úȽ)?Çêž ªÁyè5^ò\˜¡^¥ŽçÂð¬çB çI/“å–%e‘PguÜ-ÁD´ÝuzíÁvñ‘NõìEÇ ä,IÌÆ1Íågwã4–m@~?ãZÔ¿Œ›ó’k‹#ôB&·f{ {9©§†^íÂ'*0½¿43ð9 7üÛ_Ö^véR[¯…±:H8®›ë~Íßö²i GàÁoDiÎÖ =?ðgÛ ¹Q0›Ï(ª@‰9¨©%¯$qm üÅ» ºÅĨ³®eÜk#`êHXüÄ­ GFˆny\ÕíRµ6|RD7Î'Å»îÒ³ ˆž¸KÓôƒD“ô‚™xêíü”´Õ˜ç¢LfÃOAߊÁfÅÔí|8~#&bÁ“öþµAátAǤ&Dk¤qã=†ô,ÄÜÔ‡ ñ¬æ½Ü\)nHÿÁçàäLGå'G<=°»b$8 wŸÇ00Çü¬/ÖOL IâÖÏxeiI~vLP9¼µôµwÝÖ àci~"šµÛr~7ÄHïE"ÈÁKR¦`w(¢¼‡ÂÊP~1…Ñ‰yyxÝÛ'û±ÙíÖ_fôà¬íù#&….fê0–hïàÞ;}ò¢r†ªãò¤}jþPi~À~â ;¤aÙ]§ËS¥¸>5å+XŠ º(ÈŸ]…²¡_ÁÖ>ý\ê"Fe»Þ0 íÝ¢œž]K¿i`f{øô Ãôª1ZÊ‚À73†íK)©bzÖ]RäMg;ºBó)’—:º‹8ÕÑÝõš“ˆaÙpí¦ë^x¸¹ó¤¥øí«kïÙ#!?P…™ð4xM—NÎÀÏ=—bxMcàxw?,OJSSõšñîŸC°ô*8‹zý€ÆÃ®Ëa„k¼ÉN)å셿ܤq¥¦ÛZn/¦ß>è{ýÌEs‘Ä÷ Àá;Â猥¯û‹ ý€í Ò"‰©ï‘Ay~´µ»s‡býẅÿÇá‹^Næ½ßÞî!Šu€®ÑïÐó#ËúV÷I¤Œø›ESûQ·ðÓbÉ]Í ²‹¼#Øß/¯ÿzññ‚>i%+ÈÚT…ÎW0™9#Ö¿Ÿ«ÌýÅ?D ]ÿêþÚj endstream endobj 701 0 obj 2672 endobj 704 0 obj <> stream xÚ•ZK“7¾Ï¯à-q2î4›ì×䔬÷‘ªd+ÞÌÖ^\å¢$jÔv«{Ü‘µ?iÉ}ÝdK(u»¶\¶5CAàÃP¯ã(µx<ܽޣ8/ÄãššFcñWøût÷ããÝwQBÆâq{'E ¤È‘Ke ¹¿ûúOm]›çÞnݳâÕ㘡ƒ2É#Ìj»ª¶ñ3Â=d‘EJÓbÝ6ýÐë¡íÄ`>VÍ“0bÕ¶µx÷õ~×ÛaÀ_¢îkqáÓr*ƒ£I¶Þá½eyå%ø¼¶Ï¨`/þ0Oï^ Óø#nì–NÔyå*£3ÍXT]½YÁÊÄŒYYžæTÍÐÂyz8AmÙYÇÞ5Ø7‘:Ê2º„Û-Z>›Îìí`;vÈ8ŽtNçD8 ÷® wïT·<2é/«6}oû¹ËuËŒMøÒífWSœyg6(Я ÒoGÛo¯È+ia:+æ‰*@Š ÀÀ]Åd2jùÂÇó¨ÈØ8DÁ¶k÷ ¡ d ‹j:éçvýѬj{û<ÊiÁ&pÛ1oP/iI…ÌÚÞƒ`?X³íVTûçÚîmsŠ‘ªÌ")ÄhÎV84gÇ¥~‘¥'ÿnlð?±wá}DEy­Nò?5¤t¸Œ£RR fß2òŒŽÚÎÔîH¦YÛþþ²'œÇ bhÛ¢]}ÏëÅê(øeàä%]ÍÔcè*.#Meˆ4LBÉ(a"6vû¹ ÝÚÎ6h}ŒE»ý}]Á 2Š<ÒÌ2G6\Ê(Ïéð•M¥…ú…GxáÝú2þdgÃ*NÙßÞþ¼X2U¼X#0|E÷—€†è¬¡^ìí~e»^8ˆsSf4€ËJ:y)ÎËP8´R 0—¦óV"ã_´‘ýG{x´Lf˜‰X™Ë`Ê-C•Šý?†*$ž+5g¦2½2DüiÛv€‚` ¯ !™‚Ê9•7]…ÀÈ ÚvÆÇbQÞî­?€í#Á#LE² k<TîÛæ~ß6çøU/;ÛølÆ‘Yç—®ò‡KŒªè`zXˆC=ˆgnÓ‡öÀ›Æü9Á<+ ±m½j㪮֧տÕ€š‡Ù¦Œ¶ÒÁÍmŸŸÛ¾ÝÜF¹³óEÚ0|ÀRft<°qG@èÈøãTZ›F¬w¦yòz{ d>©U1-{Q›c;x§àmÇôHAÏ8¥ò÷pó„öܘƟ»ö h‰¨«Æñ7psT¥®VéŽb?‚¬,@è*´Ð²ÎXÕÕÃM¦‰Ç1ÌuÕï%Ýàå;òV¼Rì*È%ÝzǶÑ2*]çȇ³()èp$ÞàÒ£ã¾í}P²bM'¼ð[RQÉÔ¶ž;Ìð†4‰Øîûcÿ©~¿™E!-ƒ ÷ÌI´„<϶dàbÓÑxsGÅ„–”³GÕeâ°.<êí“â]‚é Y_މW7¶Š‰ß»›Æ{y Ód "¸tœD'(F¤9•Ð9Ö&dxº¹U;ìj »¶·AL*¸ ¶äueе~†íψ¹`fé`dF/ .Ôk¢øIV •»mpeQ¿Þ¯L?gó4¦3øIeªáÙ’xTȹ$[ê(‰‹k5¾™Ij* åOÆûŠ3ô"âR'Êhêj8:_2bg€1ZH6Û¶Þ€ñ]vÐdÍö´´÷-Žì)ÜkŽàtÙãp‹5k ³Ó¸ߦ>ÂúˆýnÊ(ÃÁúl·ÇâúÆ>Ûfƒl¦8…Þ<⽈ab ‘ø­ÂÑPWŽë˜WQnTi\` !¨ Ð0“ûdIž©P'Ѧ¦Ü²qF¥_ƒwÔ7ywíXo~5kbM×`3fЉaX8Ó“që/ÑWÌÎÎðOw¹¿óà-m4ÄL'\Ãë|@/õÙB={õY.“¡Z?üúfPÓpPõ%Ûò<Ç€{®M}Ó‡W;•Ø\!£œ.6—’G³¸«5@‡¢¸{|¶ï«fÛÎÕñlNXZ’Rƒð'»Ä½Œâ’IðapII‡Íùe5T¿ÿ¤¬ Ò ¸aP™ÔIT²-1‡ÏÐìˆ;@3îgªtàd\t¢Ð, Àh‘S¡HüÚñ6T·ÅÖy©Ú±¯9„Ú!gB“kx O£‚Ýú½xjÅØ\lX·Àñ6¥à™çZ§Ö^Ð’À2*x«ëE[82#‘ø;÷¨O¤"Ž wÖsé«Þö Š«½ƒMpE×¼+γ ¾ç裙vÛ¸#[UCƒNyžõ4bWE¼ûú°«Ö;lCΕm.Ô©Ú³î”Æ’K¾{årTÈ­ñŽõTš0 âg9FMqÃË"_ýµœš0*lž`?M'Öp£ Œ=Ó¸œ*Ç}ön4à•dc·Š Ï×ßX9ß«®4¼ÿ´Ð©€j.˜sé‡öK,©bAf.µ ò+éSá|i‡£7„ãñ§@5k'Âlý)ÃíÚ¦EÖ`ÌúP5=µà­·’†ÂV«Çý•YDZù **]­æPÃ…¤»†ó8?Hcd>¦1Ÿä9ãK´«n©dï +sðõä‚HÂ}€•î犞DG%_¸ •²ao/s`N C»7.áÛ€{`ëÐu ŒÇ‚¹7[ËÁm µØ´†óELC¶Þaÿ Ï¥Ž1ÝŸùpêŒ|¶ëqðýþ³ƒŸ­g°»ÃjˆTY9•ò×ÛØµí{,³ñ¡¡ÿ躓Fø\å ÍuƧo—‰[MôÓ)YÙ«¦¯Bv§–á"p.ÃàåÏ4›ªó=Äy~ž”óÏ®k»ù[–ivžqÝ“Ä$©/K¦;Eëì0vMOo™¾$™Ù•ÆluZ±6@§Ät£C ’È_=ÙhÀÎLÇñ½&Ä™$‡1_À"p gÈðI¢TQÑå;‰oÍLHÞ}Õïx1³8`ç˜Ý‰¼q¦GÌ]búÃð¾"¢Tþ`7ÑÜ(…>H„¿ô6«ÊpÆî`“Q3]2´Ö¡°ó0ˆ]ˆ=8&ðüº…éÂK†Šº<±\^ìAm«è8?L0á“ÑÅ«ôTŒˆéšË@þÔ‹¹º`‰ *‰Ý&ÓO´ ®†ÌŒ(eÛàÑ¡4—ìŽ2õ÷EùŠ?»2ŠH»†úT•!aìCž§á%3áy C¢R˜G*9[à%™ ¼ïởfóÞÌR"L’‚.0›`¡Ò#bÓÚý`ºa!ÊœNZJ°*Ãt|½ƒm6óëk¨0ù¬_EÐ ‹4"s 6R€a×nú›¯* XÆUÜûŽq]e|ö/TkPrâ“ë³é#ñ¦€bŽ›û–B‰´õ²É›ßtÕ‹Í[ßQȹøIõSÛ·‡ÚK4ðÏ|ns-ú¢~mÛúᡳXä,ú›ãN»·k"s/U‡øê­+úq埆Ќ¼pHÝ·eÈ\ ÈK: i¹Ú ,…‘$|’yË[I²›–‹_-˜%Ötò ³$îq›ÈœÍò½¿3pŸ¾ml¬¸UÀ¢ŠÎäFÑb/¶§oAº›}†@zõ¥<"c&én,à6šÈ~ˆÔqp°@b°»ï¿71Xn¸D%é¼ÏÃ=žžzŠçœŠ÷j½ú +ßC‰Äߌ{É!ï®ÿÁ’Òíÿß)JD_=5(—½UÀ™ö€uöœ cÓ†¸Ô³3Ï϶ñÕ=ÐŽfÊ2a•.©J2÷*/$*ÁWè‹Ä%-}´¤("º¾óݰ˜I¶[?TUçæ¢s6þ ŽÍWz:ÞÕÖqŠIõ2ìüëÏgX¼†3¦©XïïÜ×ðóéc!ê»TÇÁG8VðÑËâ§ÝÝ¿ y9@vÿ˜Y”W[Ósˆ°Óì‡û-ÂΟ$¶vk/?}vG0‹ãÆslò¹ï·{ûó·ß¢Û¬ˆâÓË/¦}»TÃy¯ý1ê…Öìçåñ·wŸîð#Žä%j›á:ÏŸb§¦—8ý|‘8ÍÙÝýK4°Öÿn›Bx endstream endobj 705 0 obj 3265 endobj 708 0 obj <> stream xÚ…VÛŽÛ6}×WÌ[$axuÉ[´E€hy¦mz­D·"ecûI}èô+úIJk›Ãì&0lŒ0gng.2‡Õ©à°ÚàÏïø½)Þ¬Š—¿q%+aµ+pü¨%Ô¼fU#`u(žŒ?]}A°Á3hÕ”LU3rµ·`¶Û.tn·;íÎh¡9«ˆÅ ЍZ¦E»1L¦‡ƒ {·õ,É”Y2R—™ñ[7 vÓùÓ¹þá”j2+è³=¦i© 9H!v výlöf¸±[Xzß­G3ÞAjYÖšç¯ß¼cð¾Òºµ¨™.IÝ©:Ò\˳*R<ÜÀ¿¶G6Ò“¸iR3ŒüÖ)FrÉÚ2°ãèë&Åï§ÃìÛ„9@7VTËJ•ÚSÒÊ’I’½s±ø§°‡ÿ—‡û’–UY‡Êè0p? 7TsÍ*ÂáD¹ÖLÖ„PŸ“]ñ‹®'º– ¢&ž›ŠÉ’ßyðfg±L%g²%H¦÷.²bmdÓ²Z¥Ø× YƒÉZ<ÌDëR§ÖÝ#´É¶Êj›SÏFFIÜ1‚š~Ò=Uå÷ ýÈ:¶‚ BÍ¥ÂõhÍWÿݤÇñhH‰8é°¶3á¸u!ïmÙœqËî,7=Nû/´Ijž£+ÞÃ1˜uoÁw[–û•ÕõâH÷v`òpêpÌÃ)¿ƒR¥Öf‹»ìºõ¯À¢á„i¹©G…;àâ Ó³3ñ"‹esF{p„ Ž*ú>Ru•ê–Ã4%Çu´>¸ÑFE^¢¸œ§Û±s#iC«˜jSÈ|o\RÅ—ÉØZdzöÞ-ÄÿC/¡Ô kËÔω„‘UÄÈâüfØ%BIÁâˆ^'$¡"ù"ÃÃóX½ëË~…HǎЇwZ§¦ïñ,"n)h4·`nˆI+'L7Ð×¼eœÔô99ÄALR%ƒªq'[ùh¥Z⩉yÞW.¯+á¼–×™ ‡ðÖ„ý<ë¿®.6^ 7­as(敊òYl /tÉ3Y¡¸`£´/vñŸÈ¥1Ⱦȥœóiùw¡ÓÈu)á,0y‘?\$Áj½Ä¾ÈYt‰KϹF=r^Ï)¼¿ûøágÏÿI¦á“GRÞ›áþ‚ajÑîÅâ€Ç¼";@ž¬ÿPüUD1jê6f[á!¾J|NsAœŸ¯ˆ³Í¾ø úú“âUL endstream endobj 709 0 obj 902 endobj 712 0 obj <> stream xÚ}VK’Û6Ýë½³UÖÀ¿beeÇöT*JjlË•6 ‰°IBÀ‘u¥,|€œ"GJÔ‡ §¦¦f¦Uèßë~Ý- ëãŒÂºÄ?÷ø»Ÿ½]Ï^ Q’Ǭw3ää4"QÆ`ÝÎ^2Fæë¯××¢ E‘°’¥èŒìöNñõ‡8ÌòŒäË¥W_×Z¶\Ÿ T‡±s/IšÚ'-÷µ…Z5•ÐTíÿ8}þ¸zõ ¹ÕÎï*Ö@¥Ê¾åV¢&×~ûOXDâ8ð/Â÷Œ¤a¶²ƒ@%f$ S|c¿ÉÎ`¼ÍKVËÍ|1ä76s5È’›ÉÛA¹@4Zõûû@ÙfúÒàM:J(ÉŠÀÏ:|Ï žEYwªQû|Fõºf¿u%Áè0¹Fw5­¸ v(KG--6t3'A )0ÊÃj¡Åj‘<Þ]úרìÎj¹ ž“eè÷ViÌòX+àQ …åØƒ S\-–q`80åB©W•te4¿€ÂcšLc3ãeàìךw{±R{ÒVO³:I–S#øÑC§…Á´/Ú•4Ór9ÁY+õžÈ–ë-oØ) •«GcüPÞQ±Äö8[^Í×ÏÌÊ'±ÃÎu%jð®G®¹NiÑnD}‡óæ‘ÜÿùVÂüx/:¡Qó¡ß6²<Ͻ@2­îVÈ{—¦C³k:Z´Bv£ÿ­hTÈ„Œ$i } Þ“˜ÐЙ7]&OÿâR?cü®F4w4[~/ÅÁQŒjÅD;H–‡Ú¼=`ÓKU ØiÕúŠ]*=‚{”8VÖ3ÀñR»`ªhJXøu­©Î-NYîjŠ£™[ácÌùhr|Ë8†ÚR6ʈæ[ßÐóæ\É®ÿï‚=ù ÕWQÚq?ß¹~ÂcDè]6}õDÏ’,%ȶ ‰ i >Ðe˜¥Û=ëp@Æ3BŠë‚0L¶4Ý‹"¹[Nc ¼´Øw¬Âk;¬·g‹°À¾{Öo¿Œ «Ër‡‚‹²‚_z¾äJz:Í<¹ â\e Ø»ùÁÁ¹Ø‚é˸xok¥8QŒ+. ¼¬®€AÙ¼ØÌÿ…­·BtŽl ¿P ÌA”òÇ-Ò•JÞq&¨oôt~âÛlñá‘A««ç‚êÄõÂ’Í|j΂ñ3×0Æ1P–¾ ƺ+ckná¤z_×¾¸˜ÜžXŠ1‹ .¹±û}¸5ÖªJî\r.ZÈ<ܸJÇFJówEøcäVé¿Qø+«ô ½¶Tm+t)QïÐëκÁª7 —þw8öšwÖ—ÖpÜçKd“Pß«<… ù>ÖÛ¡C!˜ˆÆ=ýßð¸[« –¤ÍC-ZD ²>‹€ æ§ùŽp/ýÑ×m×ã-ß¡÷ë« …;æQ•íÌ<'_Ä%4³4¡®rŒâ ë¤z¶sßS¯õ¢X„„D‘Ï¥`?…GΓ.‚ûÆ6„˜~¸J 1±¯ò$zä.Mñ=wWÀ¥p¹01‰p…Í95gw78 ./W>?ÿþqö÷̉î%/\¶‹Fõi—Ï7‹M=û :ôõ?ïá,¾ endstream endobj 713 0 obj 1234 endobj 716 0 obj <> stream xÚZÛ’Û6}Ÿ¯ÀÛÚ MðÎÍ““ŠS©rvòx]©õ>P$1C‘ /ë§ü{ )4ÄqRŽS£hôåô㋇§;_<”øßÏø{¸ûááîÕ_ÈÔ 2ñ°¿“ÂÇ)Ò@¤~ì2§»RzÒ{ùðDz.ýÜK#F#~þ×ñVõ½êÄϪQ]Q‹wãÖæ eîeYÈØêªo«R5½"ÒWohsG”$÷½ÔÏ5ýì ÓÔËR¶¬º¾jxr#Þ0‰ÃГ1§ÝvŒ"J½”SŒ§H\„Ìóœhî}Úú}õ&\¹A’yyižÛ³½i–yqÊ.]u8âÓ‹?½¤ýq:E¼é”ïÛýðdóôÆ_tŠß=ˆ¤{F;6»b€ª6â—¦ôDœ n©blå×R§s­Ä»º(ÕF¼«A‰0ô7⇶è˜__ ?RÞËÐOŇ÷¯'­ùZk¶®âdÙô§ÏLU—'l]u—¶Q¢êÅYu§jÔN ­(¹Še–z0˜ÍxE³»ªºŠùh&^ÊiG\…É`1”Ž [¨óD'Wªí^ GHUÏ»¶Oª6‚‘9g‰òX4‡ª9ˆj ‹5í Šºnm¾8ð½,fŒOjçM"W£a´Ðý÷äÂÃQ‰¯]?ˆNÕªè¡8vG™Æ^”2Ö)¶ôÝÔêïÞzâ±'½ÍЋÂìÞe ¢¶›Y4BTÛ®è. Vèoèhß;–³™li¢oo-Ïa¿GÕ”JŸÆ¯çžÌÖxšñ´Å=€Þÿ žÌÂ#8Ρë(Öœï:Uœ˜!% ™m`ù£yÄyÚd¬bÛÒfG¥¯É²KÛiݶݮj[×=aý­Bšì2,ϲ Ä3&Íá2io Ÿ£üÙ€y¼.9l’ œ§ªr¬‹÷"×Üê¼û‘\L–@f(ÿ—s]4ÚÜ=îÀb±Fî ,dëK¶Ìu2U"%»`r×H,Ú”gUcă¸:„œŸ¡WQíõµŸªþøéå÷¤EÑ5  uªT¯*1lb®¤Ðø µN—»’®¼ÓaLðrPƒ.ý&‰x:À¤l dBPµm1¥?]„Ý;Ð)uö˜²&T_å“ (8D(£ï“««ðŠÚ|ç®=tÅ©ÿ^±ˆi²:ìpR;.ü®%Á{¥ðp“ #yá§ %[néðA•ƒ©t[ÕëPl”©%œ°`Â$d{PÈ’ã–x´¤z[­vaì»BŒ¥# Õðô“ÚÚ¤º®š.o„ÕÐÞ¢ ~4K­£ Ãæ¢cì:*’:¶ÏyÔÁæ’±=bvIÔW}ì {)Õ g,VÛª®†jªUI¨ÉQW´ÅõRöi<¾o«¨0KêáB:˜Î8µ»j¡Lî²%W|ã8E$Ù2vc‡æèéCFñ¥ Vvó‹É4£bÜfº¹˜˜ÄwËqĞͷYR:¢d¨´Åu=(ö 2è[(¯Îªùµ?óõŒ€Â^7pÔª ¤îÒPq® ¾ÆïäƒÚç4wž’匜§ ’ dë #xbÆÖuAïúkNå’Mõ»Û¥Êˆ­Ï [ íT:ç]sž£ˆÝVÈ¥ã†Ì°¿ÝÆ„7i! 2/ÉŸWDêŒ f¥âK–@³mܲ¦òÐÔ¼ôï®#«ª†ãsIfô%#·œðɈ©Œñg*°Ë–Ðnÿ ´ýZ›vƒ;Ü×XU6ÚÈçö¶}ýNéK‚ü$Ö.qO`ëŽÂÀª¼öTé¨à2IqlFÊJW°é© wÁ CÊ c¶ïkð,Jê­S0Ú'#ÿ”ÒTwê¸ €ËYʹˆÇ¦åíEäe+›WsjóÖªôп"êG6M3Æôíšm%_Í™:¢ó3ÆÝÞ÷ƒ:‹ЬÝýå˜üô’`ÃÆ…°vž0ÎiàùŒ‹†ièµÑVûô"0'´{Ž}(ù½QsO©ÕUytâ&ȯˆÉ!7Í)OØë|6`ØËp5§ÌÐR¢’ætw”òcÐèáf¯ÇU·ÓÍ€Â'a,«üœÜÆ^߬Vã‘O9棤M¿ÒS)zŸ³Q{>—ÁMÑ=óº­ÛìåkݦŠò¸š€Ñ c¢:‹§†#Ñ¥ŸãơČˆ ê•Ê%oÈwÓC>Fº øM¦¬UÑ-Ègæ>MË QÙs΢£)×ejU¦YÖŠê#ô^9¿°(¥fÏ^]÷­.onÓ`ºf„„¸dý¯(™·=C¢™»ª{Ó5œ‹Þtñ·Â2ŽõÎ…±Å“”줧©ÆXKaî…£¾8Ýi'6 /†ßËC¶®æÉº™›T‡ª)jWÖ´neül/›Q2KpË®ÓDê|º!i¸foÑCqçq0㬧 µ‰·…Š÷üa&Òwµ8÷cDͶV§©b;iPÝêái×îÆÒé’ᦫ ¬9ß›Ïõ¨‚ÏÑfeö‹€æfd8ho8·ä04îdÇNÃœŽ•;tŽùN_z´êšOšB„&—í"ìÎÓ‰©p6ùG¾žÑ¼Û^Wz,° zaîÐ^kÊb™÷¹¿ÀšRåÁ/$Jt{‹H×Cäjï>Y&„ý)¹ŸK•d‰œé d”œ@Õ—¥'ÔöÑsi­|¦\íQ[j©v*®}$×)’ú¥g%ˆãœ,¯"8¯=akãGâØÖèqÙP"L¡/Î=O÷â$uuï³·—N`Í|®Bw«¯d»Æí÷Ò€ó^f–)¬V‚Ì´o¼È÷Ñíp~þš6c­®(·JG‰öøáZùÒxž¨­UzÒšnš‘¢™õpW +~Üð—Ö¸òWz¢§ºÛG…,–îl³jÊzÜ‘è†eê¿!”-ù š„Iì->ßöõ£änµróª)ùfda¤„mež:f|àS1ηs4aÝx‚‚ÐOíåƒÓÉøŒYßH¿{˜ñHM|8Ó‹Å×vpvAW¹¿a´ÎŸC´!YÎÎçÙ$ˆuãú,?Z‘ˆñ«Y‰KI¶ÖÁP*µ¹œÇÂ8 ¦’ÏMÿòÅm˜ó‹ckÈiB¢§_–8.Ñ6и©Ïb¿ê¸O|=ñ”¤«Šù©yÁ‘ÚØ2K™ÔßÄ1GÒ4¾‘ô„ûˆºør=ž}™H‰oÍ ¤v:u2öO …/îáåq,ÊÓý2ˆþž?3QßÅ‘ï|‚`ùñihéëx·§ßu»¦cÄPD½œ7GÛ'§°ûüAÍ¢9Âýaù’ôKdµ¡Ÿ¾Óƒ(ô|?ÆzJ¹PçÜËûßÞ~÷øŒvøòìókÑŒ¦)hÄwo6ðI.ÒŽ`?{ý·»?ïè“VÒœ¤M¯_¾ÓPÌ?_)fžãÝGÑ`¯ÿ'í} endstream endobj 717 0 obj 3281 endobj 720 0 obj <> stream xÚZÙrÛÆ}×WÌÛµ+4Œe°Ý<)¶ì¨J^bÉ•J•_†àHD ËÌ'ù!௻§ §‡tr+ äl=½œ>Ý /î/|qWàŸ×øÿáâ§»‹ç¯"àËû‹@øø/i(Ò ð’TÜí.žüúôî÷e(ó½DÚ£ZªªD¿-;Q•…®;Z|½Ñ]§Ûoâµ®u«*ñ~Xc\ÜLsÖºPþ–½Ø4º4]ôØ·M¯‹Þìñö?öé2μ(²ïÄ}«õ¦ÙaªiÍæ{AÑe­+%y>¯jÚMY«öðá—HßààÖˆ"ºæ¾´EQèIÙ‹T«ÅF³I1vÎØÆl8 <Ÿm¡«f¯ÛIoͽÀåÕ†­‘2÷bÉöTu¯´`w’YèeQüÝ£e–zIÆÆqÕ¢Ùíu_Ö“ºÃ,sÕMëÆùuS?3º:ZµëTÙúåãÐ^™±·Ä£ãÅ,1‘F'vu¥^À¦Íª.kQè¶WøÛíuQB¥EÙîëU]L ²uGó¯ØPêÉÀ…!¸rBc…ã„/j·¯ôJÀÀ-¼) Õ•MÝ™{ã‹:Z„Z«„+º.š¡%ï'=Ò…{±oº®\W£«P-÷}°…‰£ØË™4+÷žòˆK ROð¤kv¤^„ü³{fˆ$7Æ?.SD%-nT»áQ†©J{ò·tÛÃPŶdú ßËí9ÜàIì¥l mp}%NX솮7Š®*Ž&lÊ4ñ8êÆsŠõ#g ¿y 'ÏR{üRìšvFú(:Aúp*Hýç ëYŠ’M7ZEP=É2& ®S;-~oÖBuÆEªɽ9Þÿˆâº“m<{ŸÉ}‡ÂØ`½ÌlÑàfg$X0gM ³+ fxLhœp>ß„r…´÷1‘RWnlÀ~fÏZa+6'ùNŠœ”ï»°ç \@Cc^$Á‹¯veGá:;„{Õöe1Tª].†è;õ7]+Ä)ѾǦõ°[ã¢v¯›ý¨r³ç9¥ÆÙ´8ŠÁsHXh!ÖÍæ@Ÿ×oÀ”ö ¨×¯8ÂúäÑÖÙB?Fr¶gÌÐvª%2Æë·Å (ÿÿP‘“Êbx\ltpP+N—¸¢¨rÔiÐrÛT£Ä9”ñÇîÐõz·2‘¢Añ·ì;ÁY‹d¥öˆ$‘Õ|¥ç7e=|9ÙÕͱ\‚æ²ê·Íð°ýw¥`4ähb”%“ 2 ì¹àAâʼn=lÒÃÌI;FJ£4ô‚Üžiöæ43àûIf/™q'‘‰â~d±GˆŠüOþ‹pê̵‹¦ÞKA ã+š½‹šò«µÍ—\ íÛrÍæ¦™—­[sÚØctR(óù¾qÒc”e^ÌòRàIF8{â=K¯¾ôò€I ÂST _ß#ÑM¸A Ý”ŒmÄà:bkïá lçSæKЮuÿ¨5n'¾r ¨ÌžÙ´ˆµ¢ŒÙÔv¶ÿf4㮓ˆ¬ë¬7ކøèØœD€` ¶µ’L«îLiR…Cfn6TfµåI9#í¥¼Ú唹=ŒËÜ·¦¾ÔŽŸËt‰ø3¬&Ï<ä{kÎj º) +2W»ð(PÄuYÛl¥C0˜:¢ €ç¯p‚ô¤S´K¢¦Y`N#´¾¹º½½ú ^_½½úpy#ÞüéæIäúÅÕÛÛ«qŸà´ô—’ªçxTëÕ‡7·âòíKñâÝÛ—×w×ïÞÞŠWï>àãû߮߾^‰—×·w®âè)É‹í}>ÒJ³Ï›w/¯_]¿¸ä¤JrÆüQÂ3Í d^”›y>wŒ,ð26~GmÎÌy#jÖÔK0 ½#®¨öûªÔ¦Ás)‘lTÔÖ¢ÃþfØsˆ~ÍÖðŒœh†ÒÇmYl>«ØAˆ€_•*à €gÏOæ½Ë0 íñC[>l{N.´œ®¤Ñ¶ü 'Ã-¡å«©‚:{(¼½ °wzl0ÔÆ;·3Ö8Ÿ’ïIvvnårÞk6Ò§'¦óB]%lþµ· øíÓSO\¡ª™+[“äÕfÓÒQâ _ÍðmN23•¡©’º^öÉÈÚ³áÅ×§vZ+@n" cz:µqˆ’%Iì]ÈÊ÷C]Œx÷ÚÞ¨^Q*‚’!®¥ŒW™€ç ‡åX„µág·® ‘=­q]—pÖêp $긌m5ãŠqì17-˜ï»ŠA8-[¨å§'£›!ìPÌŽ6¦¤Ãnl®ûé©)M€ÅœñR Õ‚µý×¹P][úzÃh]:EVxS§q2Þ zåé–8i⸀'°Åjb¯D«ï©­vú(BC¶‚f€NN}»¦ÒžéOùÀ¾˜É@IpT7‘·5eÞ3Á(C0{Å™ù8•4m`¯ºtu.ÁÍ“5êó8|’ëox éÒ MFqw®ÔÈÏŽ»N6ùMÈæpªŠãJËË+óþÌ4jPK´µæûE1J„¢Øš{¾(¦lˆ ÅYü‚™»ÜÁéÅ×íLñG—.Ó[°ÔçW0" š»r£Mתý—–fLpt†6áPEO–B1VmÞ±¡‚ÑUÁO¡®·2êÀÙ{€‰©+ ‰8îAeÞQ§·$q` ñÙ}ùlÜ(†¾¢$ôî–F¹Û3 ÿXHÔÔ> Óá‘e:q‚G(lB¾ê{$ ["Cî5þ©{«wæ4{DÂA‘ýØŽÍî²'¦ÏßÄ^ oýëV“㞃• ÏŽ±8åÕv 0&‰:öqnÅÝØ/È8ËëÀ- {þì21*IG‚t‰ÕÀ)Q1DÞšð›SÁ¥>nS“¹¡I´(b#? Íe±Ï7%ó:oVQ%%ö”9™ã`ƒÌp¼:¾ô±Öv ê3ôŸE}†p(4oÊĦŸcmÀ]œí¯ )!ç9ym›JG);½)‡Ýj6•/çš9—>A"­Ò‡Y%öü<·'Ð+ÓÍèt%Šš}Y ÍÐU£PkµÍ¾¥<ƒoöTýv[ò<­LÁ¿çèÉòÀ>à`^é79!›"!f2Mlsê LÎPTªÜYaâÖ{A¼àLÌ9îå±=Aµ GýáGÁ;ÑaæI6Oë=¥VÊ9‰BMïß oÛ”V{Æô¦ÇÖ¥ZwÔ˜ØÀ)vD]o묗Y¢¶AÂ?'ôw¢#ËôÙ ƒ}Nz¤ÿ=küplÌ7« šÛœç¿,‘¨ïí]–t»)>8¶–t¤q|ktFŽ-å„(™biÏ| °¿×#¿2Ø·åﳨÏVº²PÕœ m&.:&D×»Qv’/gãÔMÉÙø˜'Ó Æ kE³ŸhÏð0³W“wq¯c3&§X^5gßÅÇV°F;VGícMø5×C%]^Ý-+|ñ žÇ¢Ø]˜ Ðóü˜‰ê"–¾óˆ Ës„Çq.=m/îé·[ÇBš^fH’(ytr´}r ¬ž¼p>Âý°<ô£€jœ?=;§‡22ù%•ËË£7‡Û_n~øA|Ž<‰â#uߨzPÕ$­{6nà“\¤Á>ÿóø/^Ð#¤9I›ÀùO¾sœ1>Θ×l/~5öú"Ðe! endstream endobj 721 0 obj 3426 endobj 724 0 obj <> stream xÚZ[¯ã¶~?¿‚ ⣊"uKß‚6A€¤möE¶i[‰,yEéxý§ö7v†Ôe†¶7A±Øs8Îå› O,Þ®/±xÛÁïáÿñåÛ·—¿~§„„//RÄðOŠ<¹”Q–‹·óË_’H|õöÛ²XÈHÒåÿ²ÅÜÄ­{±ë.t‹,2ºá&:GR+ºƒNFüXoûªw UK·*G©æ»/]?Ô]‹{ëaûG+]®Û£¨Ä•nתˆòœIÛÿ.¶•5{ÈÑtWª²H+ºkC—AwYYÎKU»¿»o¬¢¤ D7dûÚ}½e¤©ŠbF:FØqwr ý¼«ðªÃ.–d*J݇Û½éÝ­ÓŸv1;§,)ªmÇT—‘,)‡w¶,ukºl6âÒs §,c,ê=hv8U:‚¨Û‰³1C¨>p¢Y}M395 Çv_» Ãõ ÊÒeˇ¯˜»JYDqI)Þ@N} Ì•{¢ŒTBIQmçÑàJÖ4±5àC¶; \ÝEeL†ÞˆæÞsT¢þÑÝE´š×¶wÉ£RQ y2“¤tCeßU#híþ¹ š¯>t°ÒCXÝ :L;ˆ¶êØ âe1ÕîTµGg;ÏäNl%©Ç#Ù¾WÛñˆ•y•šÒß&æ÷ªˆÇÙ=P…Ê)E  é’.ß«âzê3 ·fšE%;½´µE£îL‹ðP¡²Pòž8+£4¥[w¢§ºß‹Kè^b1¼uZ.οD)lµ€Dîè;5¥ùâM{PÓ qq`D€r2£tÕ®nêá&jq³CÌ0Û›ƒé­“[ÆÖ#b¯ª­W·šTbÇË¥©aûöÚ¥Ëw¬Î#ºÜ±¯ÎÞÁÀ$Ö ÂÄNt†F¤ ¼ØŒ(£BS¢è€ª¶jEeþä6Òà9ÝrÏèü—Ê¢e¯'ÓÞK£Ó$ÊõiD} iº8wÍ"ÓH±õwî¶q$Ùr÷;7dqöf ä½Í~®Ø–X’m3»n(;‹#PºªNÂp¢"´¦DWtp̱7Κ›Ù«˜g«ø§Oo®JP “ì–#.³ïÀK î´­–`s®xóù‘:®sÛÍ#Ë2 ‡Ù¨v¨1ó\L(f7.?Ã/XGXðø2L–)ãs—,5]÷Dð%Š—±¿tö ’ zs®jÈógSµ€Ë‡±q0ð J-°¢{EÇH±¬c â%â?üå;îˆY”æ”´dB_+ŧê|A-LKWsžsé¤;_\òqÄ ØwÜî„A8ßÑ< ¸î ëjšæuo>·fçÇKJo¢KµFÔÞ\ üh‡½‰—ðJ5Q‹²R? [×Ã=~·vª~’=`ÞDz^À Ê,=ðu†¿ÐzºX£$tED<‡—Ø—eÀ€¨Ý­šoD}wÁ% Ääì¾Æ½s­Q±Z#8Ë{ù#«E¾ Š2­s¢D°ä¤1„Në$t.0<«­0ÖP+̪Î7\*Ž0sÕhÖú³ÓÑdœ)‚Q‚Ò= oÙü¨È­5£. L鄚h y¡è2H€ª(ÔZ¢áIo€g”ÐcÇÀl‹:«,Xv º‚bÖÂu{8‰º4[è€ÕÓ•×–Ó„5ÜØNh{†ê”c¸~Æ$F|n[« 'Ý%I™bðÑû&kØ‘]=²t:&&ÇÀ^Ìuóу~&)³H¥”/:ÊžðäÞu2º¯‰oÇá‹GiÈ8™|p”°ÕÙLW–ЫW^»ºåF Ú ×“³ÂÏrLmÃŽ2IJÈðŒÍŸi)Ux ,ÙæÓÕƒ‹©š”’’Žs¿»Öµ ”´¬ß[’†š³†Î(Ö‚ÔÚ®qG¹:3C<×Ö:½ŽNÅÖT2^A@e’òü4˜v?…O^d'®[Ç‚¢õâ<ÏBõ¥tNùq§‡‘);Ï`ƒÆë x R¡<²u™Di¢èzÕï¡ñ±“*níZÁp'qí;p¹zˆQ´!¢j—1¨P+u;,É­¶s`¹üÚTõYôõñ4X?%R;ø©Êô5ñðÄ©^ñžöÚל²¦á­›ÍüM@üA™*‡„A8îP©¢°8É_{Cò¢"Å"šÐbË:ŽÒ’.›~WOýš»ž/2Ú¡ïšgá‘*Ê%e²„G˜”J"v¯I!Ãd)]†Ì‰<ÒÏ·CÃ°íÆ›¬iРA}%ò)'kÌ)ŒÏ…Üž™Áe†?œcIçÛdÛ\TÆ:Ìjí×€¢oïç0(H!~«ã‘G—_‰ñòë®#_/¡cëÕl¤ªõÐ}”æÑ%Å{úŬoÝ·á0×8‘ S¦3d–2T‰\ a:ºï+â÷°N¡’&ä] §Ï&vèúêè<ã‘/C@”ü(ïÌg³¯ÇóZ n{?­1âòtŒˆŸ2 Ø4Ðî Ñy8gÀYÁÅ“uB¡‚É0ˆ+A8Ž[ž†ÃPðºiƒ¯(è|Ò]©ß×-Zñûþ*¾7-ôdø÷¸…¤3 ˜cSíÃKøƱæÐáįƒ€w [  f¸) Y,5%º-™êªHIRxV4Bö/JJËÕ*Á;sI×ßø2è•…5êa³ª”: ¢Ì2ès…µ›÷øœL¾íürÐ]`å­éi7Ê`5W$’|™çvܱÀ¨ØVÓ[×°m˜Å¹ä„»›‚µ&œÍAfW:C$Ä÷ç¹ae iæ¡h¡Û†zÈäëÁ7Í—‹††Žx°°³Ã§g› ådøøBN˜dšuí$r¹Öö žø»/䃑QŠÓ ͸ýp K„âî’z…H~Ä;5+vñ¿d°YGÿjwÆ›wæaAâ½ñÃÚ ¤²û/c'AVïã:ÁP+( 7ª,’Š.ÏÅ[Ý÷Aé Ê)Ÿ‹’gøpEeSaÛ‹Eµ3m ™Je¤Ÿ ¦Ò4¸ù¿ >"—LÙàÖØymqpòqÄoz¦s¯WAq•@qUhʆ+Pj=z /Šp^ ¾°Ê+Éö‡Sü,Ãú‹¸¢È¹¶ö• $z²é¶àIF—ÃÒ^ÒQ¸…å ƒŒÖÆfmY1}9ËPk¬å$7ÍÍ'Zs×íMø, 7¦96SŸú‰êÑ3T*!O³3æ8LÁ$Ü d¾¹¾Kö©–”€'û̵~dyJöák(ø‰Œ%|þ gæPÉÚ¹©g•^µ>÷÷U¿„ü•°›qM@ ~ó°ð(¿ÄP"çÌüí«®ùÙ5ë¶¿Á“mƒAl˨PŒÙ'¾Š.øa»Ñ…µLK2¼?áMØâ£0Ø! Ÿ†]èQFïw¯g)]6áÃ0Žâœq†w8“ †°°ItÎ>×Rw4fÀÅö‚oÅí1 ÏuÂw®v§º5¯=$F?o„&zçl3Íwæ)ÊÃ6S#¼†à‰ûÿG:K0§È'³I¹×H²l|—á{€ð‚ë¼oÂw窯¡¦vófÌ,wO×ø[(ºg¨ØÂ÷žeñ¹ Y‚2etKNý|NãÛÛ4—¢½^¦é~(.Ýoì b°0S%àúÝqó_AðÛúØVhšKSíÌTKuÁÛ^%êÁ‰8áæ±†½% :‡4RŒOÕ@–œ°Rt‹ñŠ0Ïî†OÙN1AG׳­Þ:§3?Ùô÷„Cm?OïªdTG<š–âÒ°c–i) Þ”i”hºç=TV\Òe7{îÆãé0tìHÊç‘>Æ·išé™¸¿Û(ʇ:ªšl¹qBçÛÿx[øÄâŠ_ÐÃîü‚‡â>Ï Ѽ¤:>ÁòYÁGO‹ŸN/üãªÅIcP‰Æú,õÝÑôä\'bþ€0ãY>I¬ýO?}NO ]‰ãÖùéöËÏ?~ýµxWQ¥âW ÀõSÕŽU3‰†û^=ƒåBíöû—×~ùø‚q%/QÚ *›õSìÄôóï+żçôòѯÿÕ## endstream endobj 725 0 obj 3133 endobj 728 0 obj <> stream xÚ•ZÛŽãÆ}Ÿ¯à[va-ÍfóšJG™Ÿ¥|ÔÎ{ qF¦p¼ª‡ úêИ½7´Þ+iíÇb@Ûýî½VÑïÁ{¶ÛøøAÑí±;Jò|úlªæÓŸÎUµÚΫ«æw¾œJB?J3>Šv¹jØÑNË¢¦±…÷ŸWi/œ<ˆø@Ú¨½ëKoz¾ÛÿúÞçKyÄò¨òó4q¦À¢ Ömë‚lo·Ð´ƺ^«ÄCq^qíq`z!wü&ÖŸ¾5ƒŽqBnH¸ÏÒY.˜æ¾R²Ð}gRQîã6™þNº'õμ´ñ^ܰH¸6.ª÷ÚËÐW{c×èËölÆaÅ«Ò4½ñ'ÇIå#‰ç©þÑŠØÖ0$¿.Îc_g\,Œ¨‚À5›NÊS:Æ*ÞY'%Çu}N%¯´ØÉ}ŸÛÆLÙ™b€VÑxbÿ: áÊbÚ¯RŽÆBnÊËP<×f\ÆÝºgç~žé»v‰’ÈOµ;½5üKËÌ ÷Úxk¬gõ' DYÀtö¡'Øë¹žÞï¼® g¤S7›ÛшÇ8áÓo/§^A‘Æ|ä#tÅEQèÇ9Wù*Å©E\¼ÜPÕ¯$‚–ˆ-['™…9 »g‰¯".Åì{ ² 3ï³)möH¼~°~7˜îÔ{؇·¯ú¡«d¢@˜è„Ïz™sOOØ)=¾Eq°*K‡…k…âx³5ú9úU®]·P Èýr4ÛëU¸Þ(¸ÞÁgÿr±»ª¨½—®=a£)%Þ77ç¢Þ€Ä(Jü@%|ÑÕmŸƒyá³€:²(þvÓ׃7‘9È|*WÍPV”åc®..¶@¼J8V‰öõÓÌ{12Mª,ôÃÄݬ´™t8©Ã» †À •ŠLÖ^#^öí¥+ÍhÛ1ûÊpÕy槇™púpÝÅ5ýÙ”p€úêD^œ/E<¨úV üa<“<=< èôP§«rÙL$”k˜òDfï¹Xe;³#¢tk/…<àì…Ž<ô¦£œñM‚[èâ.ø%”õ™œÀo8v¦?¶õ~òn2j‹#»vÌÀ›mNdéÜÁìØÒ®ü­Á©.¤¥"?Q|¼dw Ÿ`ÔL<‡Î\àˆ“f>M`…Û™”bÝbAÛ`7Íå„У¤¸/NðÐï¼}1ÀÈîRœº¸‰±Ô§(KÓ÷-iÑ×þ_Bœ–]Û¯¸øq´FÕÀM€—¦ÓÚÓ»Oì-%Æ Ä9kÓ†#e¹áhÂî|4vùÒàzáå`öÈŠ2U5Fb ia7ÝÞî+½NT8ºw­—x«f`/L,ÖË"ë~šÓÄë-C2Î%J¡ˆŠ•˜ÇA9LÝ¡FãÝ@SB%¦€àòqY?|•h˜ûi.æ™sÛÌ`ˆ:ÚˆáIâ\_î2@ܪè_A±£Bæ—¿—–.'\ÂwÉûþÓ{W+XâéŸtϯÒÝ؃¹c>`‚šä ‹¬ªíA,∋ÝêYïW1Ñ&6o$ì0M¨V`Ú;álsë-ÖEÎ1/ƒ¹—àê¨V®…ìÝXe˶ûGùZU¿¬M² #ºt¦û±‘Žž`r'ýÒÝ%WøêÒ…(çâ; †$Aµz,æ¥ußJ¯%**®·xízæÝ‚50.匉A­æÕSâ”E·M¹¤ˆM!Ýì+$ a“õ©`™³[œ)tÉ2Iìz/1˜l:OÝǪðq[ã)EœWh}-ÍÙÚ‰•v2™cŸ[Ù>R ob¨Ó^é„ܬNo¯§lOÏ”ƒ¦̶t¢ Tžáÿ(loå¿(ZðÇ;wíþR·£4Ls]Ë­V¼ƒ—âô0šò9ÆT}+ØC›¨˜ê쮟kâH¹Ûš"ÛÖPØìÛyå±Eµµ£óÉÎP@©„Mð¥Ú›ýä[¡Î\cé•EÑnøðÎø¹øÔòf ŒLª´’l"ÚòŒ[å¥Z0Ÿ?IkÄÖøëœK(€G䱨Ýkc) ÙWrDF×ý"åÔÝrP/ÔØÍ~‰„‚˶…©yÞw.Îu9H™hÞM¿ `FËN¦¦×ŽÚ¯B”Q]ƤE°žwp¸ .˜«}q¡ÎĆ<ä„“¢ÈÖÁgÆ 2ÈjÙžec3E,òÑ×ÛwŽ*(«,!+p­§+ÛÛ¦æ0µóú#àorOØœlJ­]M-ynµµ×gÝ £"ÍE¹nÀ¥eË]\~»w!ùˆ ž úU 0»\Èç[ë/ç³%›®³Ø5qÝ´)½O·*0°Y˵`õýÅz°CÃQ¬EÂh²e„4®!§®6{ðŒ.‹ZKÌ Ü{¯I¿ ÂØ™Ürƒ!c^Ù…­n0C{+ŒuÂq³3®tãúÄ€TùYÎ|DZdfØ·(g^Ù“9°ÉþÏrÑÌà3¥yz/—P©O_5>–ôð!_y¨ƒL‰«ÙrïÜv¬™’x‚¡Yk”®øÐ¡ <·Íž,Šª›6:Sìmã‘·QX‹ŠZï4í«Êáü©Ÿ+!7”-‹æ`È3:³€Ò6ĨL#>–ŽÿôîõX-íu=›[ù:Q,VE‚ßKæÙoÜÍ_-!¥,†. CÔÛKQ÷zpàbóôþ/4Õíú*»2L®¯·—¦©7Í¿JqF™HmªÑ QÖ*§g®º¿IåxΦ;Vì9hã„› ´Ø8¤ÓÏÍ5ÕulÀ}Êi…Wd°ë÷piæâ;|YSA‹»µ0_¢ŸÚwD^®›Dh{/±4Y0WK'`²M#<ùÔ›FxÂ¥ËíˆBËÌ“o¶œ)'*%}N)0%jW|Æ|¬¯ÝK£ –Û%Ç‹lÐËi©YW„ûUƒSxÞZš6—°j XOE\c¨_VtU=¶²íU {NoÀv¾I¹šØ,„—Þp°]8 »h´xã3ø_DCæ«Ñªý± :1uA½“¡“VýÉâßüª÷¶Ï£Ä«¸­ç”h“\W_—“½3»o½ºy3OïŽ`ߺ ¬QÌ ¶Ùß°)F8Ÿ´¨)Ê®Ôxí‰d¶KÿP’þ,Q|ªÞ†2pÑtí$ï™fñÌŒRØã„‹Kó'97O'¨ B®|¥ ˜7½vD«fª%ôçÄQÊÇKìÃei­¸|ޝ±|zÂÀÖ9[TRHbÏøT_G/(xà}°€.²§½óÃ¥BêÄ01bŽÕh7ºñ”Û>bI6:«¦ÆgôÆXЫ‰S½YYʪüÆ*kVÓ½¸Ï˜Z¬_”æƒå)Cõ\››ÉQåÛ¶‰Ó[MÉLoÚÃ=Ns$ZsuËo„  M®\ÐsÞ~¬›|7ºTºÄcy›—17xÓºÏ˘ÒÂË ïµ«jë·ò7iH·Ã†¼ÈÄf¡³ðNÚ–œ<‰¸BQWã« l[›¢ìcñ®¦ w D’,V©$†c³¾¸¬IqéôÛâ43ôã&Ë«„eùñµ÷ì[Û·‘Õ}¾<÷s§¯Øm:Zi@(¤îü® DÅR†‰ öÀ”¹:—,™êÁÐ/¼Nôk IcŽëí#/"ÓœæþüæTëëý v©´¦ÐaJ¶XÛú¢^bk_Dyk²Ø>É2ÝËýæN`©%Ó¨¢‡çëÆå2? ¹úËØ_ß²È?˜ÖÔqHøˆëüb>þL¬ Š”Z]r±(…5rg±EÖÇsóÇ¥Ú´JR®átRr¼«¸¨)½Ý= =+j1`Œc×#„»¾»lH;¹ïÕ»W‡·6ZbÅÚgã 9¯¶À”2…»¯a™Þl•s¹#•×SæÅ2•[8Ä|†/nÝN‘ób`C<4êì$fJ×µB^Í`KKl‹Šéc![)=ÉÝÙå"¥ø–Çq-™­ åãØÔê¶;& Ð9Ó•ÉŒ•å*µ×õÃã¢x”}*Oö÷9ôyþ˜yõCÎG(,Ÿ5>ŽºôéøðB¿ceÆôbû»Z97Kó•Ó(ôæÞãî—å“¢"¤õ§ÏÎêÄ!ƒ †|1÷O×Ï?ÿøÝwÞ˜~LTºó~*šKQO[£qÆ ÚYÇßß–ÿüðÇ}$IšÓn²OÝæ¨1_5æ1LJ_¼sýQó endstream endobj 729 0 obj 3459 endobj 732 0 obj <> stream xÚ•ZÉŽ#ǽ÷Wäͨ§Tûbd@’HAmæR,›9S¬¢j™þ’þ_dÖ‘,`’ÈÎ-2–/"é«—·'_½TøÏÏø÷õéo/Oßý©<=ÊÇ?ÊB•—fêåòôÍOï^>nC™|´ëUÙªšÏ üØ‹3>é‹.¼HœPWÓXšúYçZõõŸ“îë£:uýEu'óÇ¿ñ-Â$óÂHŠñ óÊQMC=˜¿êC_ö·ÿªË4ŒJ·U3kÈÊ÷‰ÃÄ ÄunêXŽ%¦Õ4êF7uí»×¾¼ B ¡J‹bYÔÖõÑÊ á1ý8Uº}5RHÅä©—|¥TL1R>¼(Fúî¢ôè©¿wBYà _ñ& óȋĎŸåpî…BžºãEâ%9Vå J5\ëJ—¼]”„^!oWÕ×Qw­µë¥ë«`žNjuÔÃØëƒ°G9 šF(–ôKÓÞû^ŒàÃøäÃàÈÜ"y¶Z¤{dò „ëø)Ÿ|ÏÖ\p=¨nW6ÍmOÀ0޼0,øj#á‡o4‚@ãš½º©¯jg8èhüøÃ;õ†áY1Xu—k×Öí8`5}ÑÔ~áŒ@Hútªk!ÜfݵîË‘´1܆±Føµêí¬«ó½3‡Eæ¹8Txsä‡^‰ñÕû©žÕÔ6õ0X½¯Ú€—usReE*[mÙvöéÎüºi´îì\—L´ ¹òÀ b±v–Ê[\,K#5K Ç+Rü2Â7u.¯×ºµ—€ |]è.U׎}yÔÕh1©ÑUÝqäYÅÆ@ªïŒã9®½®Gò™Æ —½vŠ\zqÍUw®‘³(P8zQÁgÝvÍî©?&ؼd€¨êR—÷ÖMª*[’`«uë‹ñ'†¼ó×Ú\L·.v«K»Éƒ )â„ñ€~ÎGW—2j"Ñv¢6È /Lù2­çÈ”«Ÿfžr=†ÿK NÄbˆ@~qmʪžÍâ "∯)+J5«µË¨¥œŒ—x‘‚2Þ¡>]+Ô>ècýþp{Oÿ‡ê ®aÙffµ !’«…| ë”û7ˆÆ1Ÿ¼Ý€ü¢ê¤ú!´Øú³L{s|¸¦ì¸ÙxúÕÆŒ…«ãFAŽ@åËa\5,þ{c·ù2ùçιÏ‚bJœzi"$×”éçhÇ1õµDäÔ®³&v$p")³9“‰®‚…Ùƒ_ð¹ÍNêYPü±å¢$*ó 7ËAÙfå›FX.zDn³Šw“€Ã‘lÛŸjHVœÙ³#qÀè\4ôℯ yðÛᯠ,#dþÀ“!ç[ ‡I¤C\fŸòà ¦´±˜fÑu›½É¡®2 † l…\?[a(/Ž5£$ݧ=2§ð©ÈOø2Jž‹ˆw©Ñ¨&\ÂJ.¯’ŒOº}ÍiBß÷’€O_F"e¥Æ-¶‰/†ï3¾(H¼BHbøÔÔ! éœñ2,*ý£žsfyqŠ”ŸF|01<:‘èoæ¯1~€/ý¬%ÞåD„Ù‰`Qd}®)`.Ú" l£w®5_NÆiœxâÀ²-ìpFZ¢ YuÒDL."$q̽w\¬!¼ãzä(QÌ'Y8Û€KÁ›Ø¤/È~º%>ñ§ª‰ðÿg&{´$ bJúlƒ­Ý\\”‚÷q§W|=níæ÷8]¡%ßÉïlx'¿³Ñ9¿Û4'À ˆ •›{s±<=«KwÔ§›[#"åˆYÃth–,Øèö“ñ¥gª0D™,å5”ȲjÃí!´©Ú¨Î«e¶ô½\lûå ;4·»¤‰)¹¸MšKLk·’Ž“lsAsMiŸÀZ%|Ú«-ˆ_°qdC¤® ®±%4ø  Þa⮓ÃAÞ³Wç9ëÿ³¼¶àë]s!Ê%š¥ -èôœ¤ßtÓ¸º7ÌžÆ5¸®LqK¸Šòg!+÷ª×¯g)›Ôj Ùrˆ|lð}eË!BâõŹBø(ÿÈø°,z#(=Œùø³A<â'oçå–Ô]HTêáa`Z¡•J¯ªÖÒ±#/ŠîA,1ÈÅGr$d,j÷l:4®î£…‰ùÜëÖÌ ‰¼V‡/ørÙµA‡• ÑýR^›qMßtSijáÄ‹2Q¡¢©>8M‚@¹Ñe[­epçN½om²ÂAP°¨DLš"?ˆa¨ƒŠºúÚîC€"9öHÞê¥2^êj©(€\b[i}jCbÜž8èWÊ)÷í´…Ùz[àø6]¤x| "쇟'}»È©»ÅÆŸIÓ|ª¸Ãk_R;ˆ®jè÷0€ììu>¢­A­YPz/””ò”¯pñë4N…sjÙê*(R£G½CpÙTHh‘À{ÑWÖ#=„b½“Ô©wæ|’ºÃ7 Œ"±É‹©-Ê…&ö†ˆõA¶¤lJYßÁqÅú7¥OKB¾b=r‰¨H\Cl½9 š’=ÆÔµ`s_ˆÓÀ»!“µyÁ¾ CE™X?Ky1âÛˆwK½BˆxsÊ‘4õ]lÆ£räûg£Ý‘?æ¤1k%H]¥d¬N õ¬XöưŽ M]ÈIÆ -ݧ¿Tβf<™véUÊï,øQ¤Àçݦ229r–HõaÓMóNéup)#ÔR‹yA-x1áÓ°)(㤅hë!¾§~,©»ª/â„{ý+¸)_ç†ðŽõÃ41N¬º›~Íöö]¦ÒH{¨h$“¸Ë¨ 1ÐŒo-"?“ …ŽÊ¥ÊOó¥ùZ¤Ns3ÚÚ–K#Õ¼‹˜–ò02^3ç@¨cïÅÈC)ßÇ!|9õFØðó~8ŸP ²y°cz›gɾÜtøXS·v@v|Ý{ØÚ¶î¥H®ø‰eо\»áîañ¨ö§ÞTÿ²/ÝJ³‘<¯ >:ÛÆ©+@® qŒ|ˆ|㞬“ÛWDÓç"oæ£&#Â# /u+a• ?x¨—˜’yä(f&nDú+4@W\^›G7رnñ_óš·1¤¹5Ù7fjk{–œ­ƒˆì¯~9Íi0üþSÏI€)ÔÇéøj(¬›F¾»ÐóFÌw|•aj¶àÃåÒ]¼¸é¥=õ¸P½pºÃŽ˜*¾ÅÒêërÀ^ÌûZ£/”UÝ›n-A8úrä0Lõ@@ÂPlaÔ ¡ß‡oÞζ5 [UtýÑaQiÀ"_ûz½ÌZï}x·<,-/n÷ƒ„ÝÚL0'S=ßµMPubñm¡ ÒR¤,ø¼/½˜ÐMWàz|.¹ lÙ¢Ä)Iø ¦÷ "=¬,>vRYgÌ@¼c8Ñ£Áej¨ën¢’ÞÔ„ªØ×»ÊA϶(­è;µÉê’D(k"±|q,ÐÝÑvËîµoôáý¡Æ.í]í¥ï0Jx%¶ÀãcºÌ¸¹–ÞgšÆS?I²l¸[FØáf ?æ3¾”x—¦¸ŸeÉk’§ÁÛ#!S75GsÛ¥Wî«Eäebþ­lÆÛûâdŸ`$ANdâÖséÁµnç$t‚h%7ž)ÛP™~Ç ÂÀôpزC6ZÏ56l„½ÆÆ–)íúm<÷Ýôz&GýÀ°€¶qXµIä¹åÍ•ÑáìþîE· ͼnBÃöm“—îòE/&ò» ËÓï©Ô†}!=4±¿× Sgñ0´÷2€·à ܼC/ŸË{õÉ GzvKøŒ›ºvýv".;Ø~;µ Î5.$r‰O…âŒÏ.*2>\6úHvœZ›Vkórk±ã®vq$£L[MM‰J@÷ÕtLUa™é¡l¶ÃÅø [qƒ]GƒV´Ç¹ëp½67—og_ù¼>n/{Ø«ã{ÛQcÅBw¸³O’°ßhûzJÇ\§ÞP7רQ0Í óÍfsWadl“$\‡£ù¹É’&ͼ7˶TÕ”úb† wÆ•†µòMÝ4Äû‘ v’%|”ŒN?£êNw¿Äûøb§›íQYA¾—7?—ö7©œ©—iÊ\Ä‘%dÓ%ö/;嵟å1¯.ŠCw’Ï‘q†’;ÎÅ=úݬ<8NÄþ+vRq®â¢5ZçߨØØQB &c{WÓF^sµ§¶9‘úÍ5vàù(œØÖX]wØÍm˜‚ûgŸøÙÍ4Iʇé×JÇZ½Öm À,rêkâá~ÄWM–ØJìø¸›•Mß~¦Ý%¹0Lrg‰€ª¬”Ï}`ˆbdŸh^—DaÈà¬pÄ&€Øryx‘ìg*[Ä.58V\}??¸M×ùZn$ûk´Ÿ»þ»c×ÚP:¢‚¢Ÿbœ”)TÕp6˜AÍ_ãµÝn•™S˜íj™£1”Åâpzn›ïìxIYdsö5«Å0¶ÅÝê™v:×Ü~2×––dŸ;=wŽ|Y§ûê}Sö­.Oæ·Sôyù˜«æ)‰}ç#&¬Ÿ#|´séÓùéD?VÝ:=“~L;:½;šŸœÅ¡Z>xár„ûeý‚5vþüÙ9~H/òÙÆI»ýñû¯ß~«>w½Dýc€^¦SÙ̢Ѻ÷vŸä"í(ñýëã¿?ýùDi$+HÚ¬xûä1íŒåû6cYs~ú§j±×ÿ[ð­ endstream endobj 733 0 obj 3583 endobj 736 0 obj <> stream xÚ[Ûrã6}÷Wàm“Ї!xgek«d‹³"KŽD㪼Ðeq#‘ )ã_ÊC> _·§A]Мl¥&C[_NŸ0¶ÈÞ®l‘Íð¿Ïøózu“]}ç ‰_.®¤°ñŸ¡#B)­ Ùúê›lY¶¢-fÛ²®>Ëj[Tób.¶µXç¿~›ý÷ØQư΅Ø.ë¦Þ½.Wïb¶*òF¼-ó-óR¬ÊBïí:Ž%#½÷WÞZ¶ËWkx)D.fuÕ¿íŠjVˆzI Ñí¶ûÆdƒrV@ÂÒÄ6ƒ(> &K¤]ÏyÙn›ò…íÌ ,ÇÓåwJy5ÿ¾nÄ®=N;(_š¼y§Ò šr¶Å:ËJÌŠf›Óßõ®Â¯‹V%:4âå]lrètÛŠZý4«7úÜ^ì[>[ë{S¾.1¬¹›0[íæeõJž‹¥Íu-Ú¿ƒó^˜Õu\KºçÓB›¢ÁÔäu… €ÀÊùºÆ 'W¨ê-ÆÞµæV}÷èì¬ Þë­jÑÅ.\‰v7[ŠYÞ×Üe5«›MÝÀ×:ƒi:É× ñÖÐB+Z#µ¿Ôó÷‹ôɶÜÐ'0Ñ×êSº–Зð#_—È0ü]SbR/¶oÌ ^hE6Îs£…–ÏD Èy·rµÍîeU¶K ÞË "˜šuûZ¶ÅüÄ•F‘åpé7ÁÉs,OêEÓb í жE$|.ª¢At=ÒªfGs,šz½W¦m‡¦2å1Ø·åº œ£¿-1!ãò•JÀh³>ÆJe(ü¾.qXê[¹Z„¶ð…Цo7%ü@M‰Ml€bÀ&cë˜RFÎù€×‚‡E,¡"6ñn«L4/:y®c9Ô…Zͼj®h5¬¥5vï£gl÷Ôn›µ³iê—U±Vp‹Ä`®Úƒ_;®ÑÏŽ!äÐ=ÓCxh"(ì_KîÕE¬&ùÕtz鱓 h€D;ø2ëâ81ÝùÜÕnýR4LñÓD©î€Ùí¦˜•rÃбg…ñ‡³˜è€”PΖ—Ôï‡G¬Ê7Àx‚ ZÀÍ|â¼â-­ÈÓ»¼‹P«1¼:ò,/Ðźµýu-ÞëXæLžoÙ‘.̵éÅVì²±ºÔ¸Q ‚m.êÕªæã³½uY=ù­ÚÜk^nU¤í³½ÒXnÄ“/m"Ng[1ÒœOdèÍv¬Ø×¥.ëÍŸu±½M÷° D Ù~ˆÐNèOÓúŸ´Êâ²åðùÌóæõ>ý)\€' /uÎÄUd#ç9ç«6Uäaà<HA@#M¦s¤Ù²¦toh4r•[œ:¼ºãu"]`¯Kžy@]‘)4)î| üø ÿ¯1\ß·Ø®ÏlLm¹LädŒ=èyq„+e¢8 ò@W¨sÄMé)ë‘ÆÞ(½RŸ8Hl³mÏhp©Zyþ‚6ì¯Ct¼)vuJyˆìJŸ¸ãRZ,Ñ&iê5ˆs ,?ì# ûðcsÒ?ÅévI‹$†D”§8äº|GÕŠÊ5í¯ˆø¦#om«—{x„U’ÑNÃB¼=3Ê W†º­]Á$e ƒq“­l¾Ø×ÿ{7ð@ÕÏf¹ãUD„ò)b >øÁõ±mSkö ÝtM}ÀÝOåÃS§sêÐFŽÕDŽ«øA¼‡Ô나NkÖ–®Ý%1[ChNØdh±Ÿ›Î]È’”¦,1Ú5`³RÅèû ÁÎ 6ðÄ‹xÃ÷I+Ö[kñZç+åÿŠ25_Ù@ù} ¢½S­9&ETrjê¸iÃq€B½ ã[áßô‡Ò}Ö¿PK©wû¨<÷ÛÀ1D–¤Œ¦öW¯ëía{í2oè››•°©Áð<‹ó™¤íQÒÒ¤h¦×Ž3¯Þ9/P)@5ëyÏ?bÆpÄKÈ <½ý‰ñ¸ÀŠ"½µ7÷†Ù³9¼{ŒD‘¸In{l}¨{$“šNÁS¯g¹®.‘Ý'bÞŒ{cžV]ÔäžE:àm2œ$}q7N1º·÷½ñçäZðŒÈ‰9Æ õ7tfN¬S“dJñPÓ0´æ½VÄÝh,ÌŠ82¦4uçóÂ~m€“y6K>rjæ[–èêíkv@bõÖÑ™Qõ†Q’Ÿ³d˜‰Çdüft~ó,xÈ9tt¡õê=>Â@½›,Úã…"ÊU]ò‰Û+0önaòÛä1ã:æ“=Ý'C1b2’4¶Á´ìe"¦ˆ§:É8Ïr©¶Ö÷Å›|›%雦>Ñ¥C…0„¯·?Ó,~6ìa+ÖŽ aÛÑãó8ý|Ÿ‰ûÑ ŸŒ'ÜM™GëÓö¿‡›Žx ­00F‹Gn,©ìª4ææB³!Òd"¹L8öt!¾ ÀÇ–ñ%ís ðG©™ëàøE1!) vyè o3´Ü "03VvFß\ž"ÜTØ¥ÏI°ÀeBP†©êÙ„+'檜Zbpô/¹ûLÉ5t¹gŒé4É—ºÄˆ7GThÍ_ÑOî’Û,ýbP+*Ôù\¼5¦{}¢©a¿ÎON½ÉdúÀ‘ßA†rÜØøíh’×5æë b˜Ü"R ó‚˜Å.WÒÄäð-6í—ôV!ë8aí#ä™zéØÈÿ®Ê{c,}<&eކ&[§´, 9Ôä Ñ®ép@x3NŒ(rèBJë7EÌŸS³@ËÖÄ>¦f.˜?[É“00Î ‚iƒñŠ]Zà3¸yß n!•®šLÆi8[ëH¤‰¬ç±î—X…V3©îÀ¹[—¡=Ïš6‘G$6×µ© n!¥Þ…òöˆãšgÙ±.rθ”]®Ç†s¦ sÙ†½£À"ü> <ÝÄCϼ=f"ÏâaÔOïŒôGÇ(ÆŽ„—¥“lœršÛóýO3ƒÆ¡ŽãæÛ75nûÿXi2Ï UØÚzr;Õ,ÜZ¶å»Lô†Û ‘RÐI€ðï†PWEW¹C¼S“ådå6Š­yd€L²mqžîQù«wŸ*îÑçLÜf»1 Žú,fÛýœL4ÊÈíD„K²ÑàÉŸ“a2î ® ƒ9ñû&Ém ž3. ŒŒ<]¼7 QÃs\#|tÉ)ш÷M­2)sË0 ,¬ `˽sHïú L¤ b÷F~.Ñ©‘&L™ˆŽ4ˆƒ9ø¸–³q/K,#bãñ‹< Ò®7LÅGò£ƒtr¤.ð[@f’¡.÷,~ùæä7»"+rÙ¬fáøtìªO{(!¸Ú¥­¶¦Éñ怊=­y$£‰¢ò}óxØcãpûã÷¾÷ñ4€I®Åž0cÊ£¢Îÿpâ‰aðá *÷Øã3Ü$¤Øq2D9;) ƒÍãI«•‹µöŒBÊf­··Ó1?‰CùìºH¦¼–´Š˜Lù™‡Cgâ’Í—/ñ :GÒ¤8ýC6زZ&—°…lˆì>÷͇ŽôÕŒÍ+ŸÐgƒ¨ºÏ˜*ö ÷¶:£`{LÇg%„x|½—âÊGùª†,íÿ]ѬµŽÄù«gž4¸|óXÕU{ÑNwÍÊD‚‚Vk"g\…]É8>ç*“Ñ]öăÞ#:§5N~ùöZQW‘ÞÁ½nï÷œI˜GPžŒ¨ 7'á53ñg—O`˜Äй>žÅ=ÿM’ M½{§”Ö7ÞäØžÞü%UÇ+wgšµ#]Œ…ù$Ýüh¿ß¾ùÔ†´í}”é4‚¯©Ê¬œÓ!#àãliUéëBxQÚc| š ÌHÀý” ’ É~IÏòŒ%ˆ¤êtÏ.þÁ£blNx£{±Þf³2O|ØQ|gÏ\.‘ѽ$‡º•|E|¡„bèêeYû`ںܳy©Ä|ktG44^FÁu¢ÈP@wá[m§Ó oJeèѹ®ûîyÎß1¡<‰|]Œ_µ£ø õÖbUoDn>†òóÔÄÞĪ»‹>»†Œt±ku¥î¶95³‰Äi‚yµÝó¨—ã£Ïצ Wu[±©Û–.¤Õ‹Ðà *õîëšn7›bV¯×&Zç¿–Õëá1¢™Ÿ{Ð ß~>ÌuùŽŽ`ÑC–ÓdéêL½.)LG´}6(׬[±ÍÚ‹æ½® 1Ë+¬ùÂ%½ãÆ€cZ—ݶ» œ-óêµ°Œ¼'á¡l†gó`Þ X; A³ÏkzvIOd»g”tÓxqEt’è ¢KÞÃkTŠ*õ.çÒ1“ôíC¯_¾©Ù›0['Ðà(+ TW°ÒÇ‹tA®c:asõæÂ¸ÜtCËáó—¾P´w¶º™—½­¸ü°ð—oM• ²ûAÍÜëJ½µô6ë]×v»ÝÒ»7u“m¾rà‚`œÚê TUoËY÷«{gzô^– äÔÑ©zÞæ $zƒqœx}©ÝæzÔ]PK lš™×Ídz?äŸ+ƒëã órÂvuÙ=pç@â) 9‰/ö|zkAÜùs$z?-ƒ‡€kÙ’Á›é=ƒÖÚ½ÿà‹P¢ElzÜ½½~eûÉ›XöþƒŠZ¥PRX»¬w«¹ñzÎ¥úêøô´„ $ØŠU‘“!±æ?Ìíà‰6Ó^÷Êå/¸JÕ¡HnšÕ>ð¦V¯ÛÉ´oË¢éê-v«ÕÞïÈ‹ôªÄ2NR¨ªØñoB75F1žjÒ-i¬É~=»,ð´ÖBwñ™gú‘.ÚŠ*_ï·'^+¢œ¹2•úG[õÎú’dÇlñI*gœ­¯è%«ú>|Fbuå{¶ñ ã·‹ÏN–¾–W úW2 ðYÇQ+ŒÃ³©õ™C@øáÃrS˜?¿$•)«N~ÿmÌîx¸Nè©ìÃûä§Áw߉¯ð8ËSzAýW»îŸ`iÔïS7€Më"íöóß·ÿtõÛ}RKÓj«Ó—­–ÙI~>Iú,¯žD…±þˆý endstream endobj 737 0 obj 4189 endobj 740 0 obj <> stream xÚ…WÝnÛ6¾÷Sœ]-E–¢þ—¢€ÄM†$MmeEÞÐ2ms‘E—’kè‘¶GØÝÞl‡r$“v›Á±Aé|ç‡ç?²Ý€B–ãÏü.ï³Á›±¾\ < øñð)ØóHC¶œ]ªÍ«ìÏ•$Œm@£årUƒ½³gag_)¥ûWü3xÛ®ßÁÛ’¯¨ðm½Rú#•GIÚÉÎV²‚BÎ4× àq¡…€J-êÍÄhDâØæãZ\@£¶ó´˜ËªÖræð¤a϶ kàåüÒ°Vs¹hÌ‹m9ê•€Zèue 7îO ãNØ­¨*äú J¡yÛY!s¸•¹(+¼‚yS­ÄfM+ol®6=¾š†$õlÉx5;8"Ô·! MæµT割5|·‚Ð#à t…h`ÄÃÛÜ* ;œ±óùC@'}=ãµq³µ1ú¾¾B÷9^Â<[D¯-bx…Ä·a{‹È‰-ÿ³ÔøAŒ=ŒqÛLã9ȲuøJm0¤+¼y'‹f¶•Xl‹!8rü ifË7JðlÀç›ìúãcæ ê F÷_\„OIâüÙ%§ÄsL&£ûì‹J"2tqâE¿/Þæ‡ÂÛ„„…6̉–RL‹*ö•ëM!Ñ¿nmzI͵æeݘ:º»š\^ã_z~[̆Ñû›Û›ì‹I¸ñMv5ÂøãäÄq£eѹøhâ–DBhjÓ³›ËÇ[ÔºÎëûÅÃãäáãôŠÀTˆ®#ÀËu¿h ð\Ô\U›ßçèÍ”™Þl+ Ó¾:ðz^@êÐ18äîØ`¾oR×B5V#ý·ñB•K0©Š ‡ªoóšž8.雈\@©ê!ì´ÄÞ^«ú,cX56ïI›eAD"fCú6;„›2'C¼ÛXÛü,7ÑYz$P` x(xŽíuº5Fû>Â{UÕFËÝè8ø¯rÊ<Ï;÷|ÃãÔƨ$<$~Q)àsÓ1×íÿVÊž0âÛl;ã¿\•5ÏÛ–oÆ–(D^kUb¨pj†o0†kLì.¯]<Ñ01‹‡mK˜à1Vbä ÎíKñõé±[½¾ÂL·1ÿ\.î‡7µÁí½J¬þª:ÆbD\Á®–‡4®ª¸IÚ Mý¼%™í®úí8Sƒ4|©ŸYd7¤Øo©CnÔ¼)EWr¸ÜÌÄÎ3hÎñãÞSFŽŒ½?e‰6‹ªî6‚n›øw¬Õì/³Ýô¯Z_î’åòäjI_„O¥šU˜3¦ãÔ8Ñ´ß;`‚¢ÖpÍó'Ç4Üx|G‚ЮéŒD6ùd# ¢¾Dßš„âõV·ËµÛê}„66sÉáÈ&7p©TùnˆDw˜‡f·°€£–^JO óÓ+Ãùî{6y¯l 9e}b>NзYþpG¦Ph“qn5À཮|¿Úä´MbŸEfqn“KUÖ¿Ž«¬g¢pŽ™‹Í&_b³n™swL „=:" ?ûxÜcÍi5X˜ÿÅúÉ€[bˆÝ‰µÖ¤É‰j[s0èfkÛ«8~èO؊½îþ|¤áæHiˆôÞ!wÍôÓíë×ðÝ' Ç䣙Õw¼ÜòâÙ4Ãw¾@]Æ;à<¿Lÿ4ø60GC‰Scm„Máp¢­™{D÷|@t<«Ág(QÖkZ¥ÿ endstream endobj 741 0 obj 1440 endobj 744 0 obj <> stream xÚ}XÛrÛ6}×Wà­ÉÄAI¼õ-M”TS;nle2É MÂ’P@Òª~ªßØ]P¤°”ìñØ {ß³ØcëýÂcëþ|‚ßÍâ÷õâ×óc.¶~\øÌƒŸÅ‚Å^È…³u½xåû\ð×ë¦{ßKy, »9ܹ~ó†}m•a7YãÒ‹8âQ†>«Øu™«¦UHjí\Î̈€3•¡åXâ”ˀܳ÷·ý}·úôÇz€sqaÀ£PZòõV±\ï¨_’)¡:˜r³íX§Yôs'щ²eš:ëñˆ Ù7ª`Vv-Ëún«MË_rZÄ®£ÓÔë$¯%¡`׫÷ËÏ÷ËçF¯â“Ó—œ¨³{P̨ÑEŸƒ¹YS°¢l;S>¸¾à2!2ûÈË†í·ºRL<ï2Ó]áA›pX­Š²¯ÙnK(ÁÓ€ê9´e¦jC` X˜Š‰FU*ïŒnÊüŠ+$¹"å‘O¨ŸÊLï¶$x y¬<²FwpÂÌBvUvDŒêJÝpö^×µ2y fu!Z2܈Î9QôN™ºì vÈðÖãÒO±@]ÇobÃt¨&×½É6ªàŒx¤Üó)ýz[šîÀŠì+ž@=¨œ‰Ï'·ŸÊŒ©:+«õGÈ2ýxÙË ¹”Tÿäf¶ÛG¯Pতi–k ú•Þ”Ê~(lÅc8¼ußvPݪ³ùzÔU¥ij#Lj=(šW7ÌšñÚ¨Ÿ}i”ÿÛŒN&ñDçÓlHr‰-pt”@͇°]ZeZ„±uÚc•=@ƒÞز¶Ï·|nBNœâÌçM€òoQtöÃw4*<©L6Úz¦L“¼àL™sù.ÿÑ̠͆ÐìÁ«+9£aî• äs(³É£º¬l.˜ãdQž™ã\¢ï•ÜêCÃuÚ¨wÉÖç¾µ¿è@‘É0!L¬ÉjÕÚ! =Mê[C´³C¯ÞUhÑ$‘4ªí«“<ù´/AooËâ¬}¡½_¶UÂH£ôÃXi¶gÑr¸‚É\åФ;ìÓX[ªíŽóp^]–³êr/×s uj!Týöûk "ÄòBN¬œQ0Ò8™a8°f Ãë~Ç»ÐYø))‘kGáó£Nr/&ôvÒA£|„6xT ¡…¬·vÊÓ±›³Ëo—¹ŸNÓ;.#xF˜K)gSO80¸Q¢³ÙE+6}(—rCw$ÜW(©ÔK»#¢™i¸5§æ®oLVÃyð …"²Ë^ÆÚmãk)ÏúV]šá">¡•,gXu;¬5»høfн'“ÐOðMã ÑæG;›2éŒ+”!ËŠ+}J˜è H ¹Q´¹$ÜIBpJPîDÅF<ŸÑÃþ E¦ÍNX^žMÔ±Dó}SÈ*·$¼%¹'fà ÷Rruglïƒ ÊgA!t-ñ¼8?x§b&pÊ?48ë´EU«®˜¢KŒ€ &Ìÿæj× q:èÞÆá¸J\|â¤ðô©ú¾Ã6ˆƒyMv)xèË™©—ÛþE”‹S¡“ˆÃ»#î\Óˆ{íy<&¬Z„Ò›`:phñ´]<â?¦ÈyÐá$ÂZ”¦gª]Í1@`ÃA÷tži0†> endobj 316 0 obj <> endobj 747 0 obj <> endobj 748 0 obj <> stream xÚ]ÔÍŠÚPÆñ}®âtQ˜.¬Ñ÷kËÐY´Æöbr´BMBts÷Í“G¦Ð…ú?É9ú#àûñÃónöÐtû<“ÏezÉ—îu¨ólû­ê‹ùöéËS{º¦ùóÐÕ»|M‡SÛ ·=iŸ§¶X,Ssª¯·Õô^Ÿo‡wo—k>?µ‡®X¯Óüe¼y¹oénúÅOÅüÇÐäáÔÓݯín\ï^ûþO>çöšÊb³IM>Œ_4Z¾WçœæÍ×®ž[ÿÝøùÖç´œÖ ê®É—¾ªóPµÇ\¬Ër“Ö›"·Í÷VÆ#ûCý»Šõ[Ërü{Á^ —ì%ZØ‚V¶¢mhg;:Æ^–‹úž×ïÑ+öt½bWè={®Ù5ºa7èÌÎèû0¶Ð/ð ý¿Ð/ð ý¿Ð/ð ý¿Ð/ðK°M¿À/ô üB¿À/ô üB¿À/ô üB¿À/ô üJ¿Â¯ô+üJ¿Â¯ô+üJ¿Â¯ô+üJ¿Â¯ô+üJ¿Â¯ô+üJ¿Â¯ô+üJ¿Â¯ô+üJ¿Â¯ô+üF¿ÁoôüF¿ÁoôüF¿ÁoôüF¿ÁoôüF¿ÁoôüF¿ÁoôüF¿ÁoôüF¿ÁoôüN³Ãì4;ÌN³Ãì4;ÌN³Ãì4;ÌN³Ãì4;ÌN³Ãì4;ÌN³Ãì4;ÌN³Ãì4;ÌN³Ã|ægôüAÀôüAÀôüAÀôüAÀôüAÀôüAÀôüAÀ_Ýþû1 ¥ÛôÁxÂà|wõë0Œ“pš®Ó¬Ã”;µù}÷]SÓë/7Y¶ endstream endobj 749 0 obj 610 endobj 474 0 obj <> endobj 750 0 obj <> endobj 751 0 obj <> endobj 752 0 obj <> stream xÚ]PAnà ¼óŠí¡Rzp!éÕ²¹ŠêCÒ(´°—ÅEªa|ðï‹)J¥i˜™ÝÙ}|¸Êê¨Ü@Õ˳€Ín HU{î=ãm÷ÚY_ƒCI´±* 4ËöPcAùÅ©˜å:Gš:««kà·DÎ1¬°ËŸŠ‚±#ì>[™°\¼ÿ¦‰lÁšéÔ(e¹ô?ª7‡U’þ«'8d¼ÿÍ€NÑì{¤ÐÛ‘X-DõéÔ0²êWƒÆ¯>¥³¶ün®mŸ{ \BHóÒ9Â6ÜXºßÅ;¿¹rýƒÀsW endstream endobj 753 0 obj 232 endobj 499 0 obj <> endobj 754 0 obj <> endobj 755 0 obj <> stream xÚ]‘ÁjÃ0 †ï~ í0èYÒ4Ì-„@é(ëa[iºHl¥ ,¶qÒCß~’:ØÁÖ'¤ß–?>ëd«m‹Éê9ƒŽöê&»÷Ɖtwx=˜~‚ôè­ªq‚®7ÚÏ=Ðâ¥7b™ƒîÕ4gaWÃ,®oã„ÃÁtV”%¤'*Ž“¿Á"Üø$ÒO¯Ñ÷拯]My}uî4d¢ª@cGÑ,Í€nõ›U µþÎ7‡‡|gPVãè…¾1e–UPî÷•@£ÿÕ–E”´ún¼(snÍ2 Äyäœyyͼ‰¼!^éÀDYÄž‚{^V)‘ fY2·‘[æ.rG,£V²VF­d­ŒçSà‡Ìó“Øì»Eêê=¹~$øÃÎôïŸæ¬cUX¿¤’t endstream endobj 756 0 obj 300 endobj 491 0 obj <> endobj 757 0 obj <> endobj 758 0 obj <> stream xÚ]‘ÁjÃ0 †ï~ í0èYœ¦f+„@é(ëa[i¶Hm¥ ,¶qÒCß~’:ØÁÑ'$ý‘ßßšlcÜ ³òQÂGw ³í[ëE¾Ý¿ìm?A~N78A×[æ8á¹·¢X‚éõ4gñ«‡y¸¹Ž{Û9QU©8Ná ‹øÇ‘ƒ¡·gX|mÊ›‹÷?8 @Šºƒ Ñ.ïí€o̫ӵþ>¯aó"í ÁÑ·CkÏ(*)k¨v»Z 5ÿjE™FNþnƒ¨VµJI¸L\2«ÄŠyxÍlfLŒÌ]âŽXÉȈ“¦bMµJ¼bNúŠõUÒW¬ÿô™/?oÉ×`ƒo¶èKäX|…è »Ñ[¼=”wž§âù…· endstream endobj 759 0 obj 295 endobj 147 0 obj <> endobj 760 0 obj <> endobj 761 0 obj <> stream xÚ]“Án›@†ï<ÅöP)=¸`Ø™u$d)rÕ‡¶Qh–ÅAŠa|ðÛw~+•z°ùÌ?ߌØÏŸ^ªÍS;6aS|ÍÌk¸Œ×Ù‡ÍáG=%éáøí8ô‹I_æÑWa1]?´óýÓ„S?$ÛÜ´½_îwë¿?ß‹«Ûe çãÐIYšô5>¼,óÍ<¬¿$鯹 s?œÌßCï«ë4½‡s“%û½iCƒ¢ËÏúLúÔ~ý&¾úïÁïÛL¾ÞoéàÇ6\¦Ú‡¹N!)³loÊçç}†ö¿g²cIÓù·zNʯfY¼DÞ‘wàGò#¸!7`Oöà–Ü‚9D.˜Y ³Ø’·àœœƒ…,`ö-з`ß}-k-j-k-jmA.À–lÁÌ´È´JV°#;0óíš_“k0g´˜ÑrF‹-g´˜ÑrF‹mGî" çÌ+t8 ÎBg³ÐYà,t8 ÎBg³ÐYà¬ÌWä+óùÊ|E¾2_‘¯ÌWä+óùÊ|E¾rÿŠý+{éÚ‹ûQìG¹Å~”ûQìG¹ÅN”;QìÄq';qôtðtôtðtôtðtôtðtôtðtôtðtt‹|Ø÷/Ÿ8ßÇ‘ñ×yާi=¡ëyÁIé‡ðqˆ§qBÕúû ©Ìü¬ endstream endobj 762 0 obj 492 endobj 146 0 obj <> endobj 763 0 obj <> endobj 764 0 obj <> stream xÚ]ÔÏŠÚPð}žâvQ˜.¬Ñûý™ËPm‡±}€˜ÜØ@MBŒ ß¾992….f<ÑÄóãHòñÃëañ\uÇ´ˆŸóð–.Ýu(Ób÷­è³ånÿeß6cX¾]yHc¨›¶îç„c:5m¶Z‡ª)ÇûÑü¿<ß/>Ü.c:ïÛºË6›°|›>¼ŒÃ-<ÌŸ²å¡JCÓžÂïÝa:>\ûþO:§v y¶Ý†*ÕÓM–ïÅ9…åsõµ+Ó©ÿ>øyëSXÏÇ+Ê®J—¾(ÓP´§”mò|6//Û,µÕŸyä%Ǻü] ÙfSó|z™²Oy¯žùþ#òóü~Á\ ™È%s‰\1Wȉ9!×Ìõ”#{#zãŠy…¼f^#Gæˆ,Ì‚¬ÌŠl̆ìÌŽL„?ÒáôGø#=¡A`¡A`¡A`¡A`¡A`î&ØM¸›`7án‚Ý„» v:NånŠÝ”f…YiV˜•f…YiV˜•f…YiV˜•f…YiV˜•f…YiPŒ½†^c¯¡×Økè5öz½†^c¯¡×Økè5öz½†^ãïeø½Œ»v3îfØÍ¸›a7ãn†ÝŒfƒÙ¹›c7§ßáwú~§ßáwú~§ßáwú~§ßáwú~§ßáwú§ÜŒ÷»·%ï·yy†é 0?Uæ{wwÓ¦÷Oßõ¸jþû £!¯ endstream endobj 765 0 obj 548 endobj 317 0 obj <> endobj 766 0 obj <> endobj 767 0 obj <> stream xÚ]“ÁŠÛ0E÷þ uQ˜.R;Žô”R†fÑv·`KrÆ0±â,ò÷Õõ5Sè"ñ¶®Î…§ÏŸ^ê͓۰Ù}-Ôk¸Ž·èÂæø£™²üxúvúYå/qtu˜U×>®ß¨6œû!Û–Ê÷n^WË¿»¬›ëûu—ÓÐYU©ü5½¼Îñ®–¿dù¯èC쇳zøs¬Óº¾MÓ{¸„aVEv8(º”\~6— ò'ÿ}t›ôé¿¿ïSPå²ÞÒÁ>\§Æ…Ø çUEqPÕóó! ƒÿïÞsKÛ¹·&fU‰O‹"=—ä¼#ïÀ†lÀ ¹{²rwä.±Þ.œ‰™¯‘¯™¯‘¯5Yƒy–ÆYZÈÞ“÷àGò#¸%·`Gv`ºi¸iºi¸iºi¸v7ènèiàièiàièiàièiàièiài,Ù‚éià)Ìd 3™ÂLA¦0S)Ìd » º û ú ; : ; : ; : ; :Zv´èhécácécácécácécácécácécáÓ¬g Ò­Ó„qÃEø_w‹1Mör[–ÙÅÔöCø¸PÓ8a×òû #¢åØ endstream endobj 768 0 obj 447 endobj 334 0 obj <> endobj 769 0 obj <> endobj 770 0 obj <> stream xÚ]“M›0†ïü ÷Pi{Hù23»Š´JµjmWKûÀ6)RˆCþ}ýòF[©‡Àã0?3¶?~xmvÏ~ê®üœ™·p™®‹ »Ã·vNÒÃñËqV“¾.“kÂjúaôË=Ætá4ŒI^?¸õ>Úžî|ŸÜÜ.k8Ç~JêÚ¤oñãe]næa[ñS’þX|X†ñd~š8n®óü'œÃ¸š,Ùï}L]¾·ç`Ògÿur»úïÃÏÛL±s:¸É‡Ëܺ°´ã)$u–íMýò²OÂèÿûVYNéz÷»]’º@h–ÅWd\dù¸ãÿØ“=8Cä’sKÌ-sr.ȸ$—`K¶àŠ\…,`%+ø‘ü~"ílÉ-˜n%Ü,,,,,,,×µX×2§ENëÈÌœvËÉz-ê­Xo…z+®Ua­Šù+ä¯zrY#ˆú|„ñ‚xaO=º Ü„=ôDØAO„=ôDè/ðî—`¿„µjÖ"¨EX‹ ¡§ÀSY—¢.¥³ÂYé¬pV:+œ•Î g¥³ÂYé¬pV:+œ•Î g¥³ÂY¹ñ…ƒz?‘8²¸LïWÀ]—%ÞŽíÆmç'Ãû¥œ§³¶ß_X@ó_ endstream endobj 771 0 obj 478 endobj 149 0 obj <> endobj 772 0 obj <> endobj 773 0 obj <> stream xÚ]ÔÍjÛ@ཞB]Ò…kÙ÷/c)¡Y´ qúú¥†Z²³ÈÛWGG$Ð…í33ù›+û~þôxXÝ6}•VòµÈŸÒ¹ë´ºûQÙúîáÛCw¼äëDZ¯é’·Ç®—kò*½»l³Í›c}YFó{}Z6ÞΗtzèÚ>ÛíòõÓ´x¾ŒoùÕü_²õ¯±Iã±{ɯ~ߦñáuþ¦Sê.y‘í÷y“ÚéF“ågyJùú¶ùÞ׫éÒ…ç·!åÛy¼¡¡î›tÊ:e÷’²]QìóÝýý>K]óßÚqKÕÖÊ1ÛmqiQLSÞ0o·Ì[dadc6dgvä˜ò¶ØÜ _sþù†yž/™K䊹B®™k䆹ANÌ ¹en§,4 ÌB³À,4 ÌB³À,ʬÈô üB¿À/ÁÈô üB¿À/ô üB¿À/ô üB³À,4 ÌJ§Â©t*œJ§Â©t*œJ§Â©t*œJ§Â©t*œJ§Â©t*œJ§Â©t*œÊ:+ê¬4+ÌJ³Âl¬³¡ÎF¿ÁoôüF¿ÁoôüF¿ÁoôüF¿ÁoôüF¿ÁoôüF¿Áo4ÌF§Áé{¸Óép:§Óép:§Óép:§Óép:>ߟN‡Óét8N‡ÓYgGf‡ÙYgG~‡?Xç@ƒþ€?èøƒþ€?èøƒþ€?èøƒþ€?èøƒþ€?èøƒæ€¹\þ³Ø[–¬í<¿ø}9Ù~Œ±^±Ì=£ZöáÜõòLp¾fyV:7§¥ ¡M¡¾·½úu§Ž8wÙ¹ç¡Û»ôÞˆ‡~À®ùõ\{[” endstream endobj 774 0 obj 629 endobj 148 0 obj <> endobj 775 0 obj <> endobj 776 0 obj <> endobj 777 0 obj <> stream xÚ]ÍJÄ0ÇïyŠñ ¬‡Ú´«ÈB),•ÅÔe»>@šLjÀ&!M}{“´¬à!á7ßÿ™û»s—…é1Û?R¸àdfÇ1kÞ™%yÓ¾¶ZyÈÏÎð=H¥…Ûr ÇAiR” ÷›•~>nÅÝ2y[- ©*È/!8y·À.M| ù§è”`÷ÕtÁîfkpDí’º24 Z>؈Å›áYHý \‹P&»X5p#p²Œ£cz@RQZCu:Õµø{^+zÉ¿™Û2)e‡:p‘eärå—ÈûÄ’G~Zý‡Ô{ë§Äýoªùì\X()IŽb•ÆÛ­±±*½_ü}| endstream endobj 778 0 obj 255 endobj 150 0 obj <> endobj 151 0 obj <> endobj 152 0 obj <> endobj 153 0 obj <> endobj 154 0 obj <> endobj 155 0 obj <> endobj 156 0 obj <> endobj 157 0 obj <> endobj 158 0 obj <> endobj 159 0 obj <> endobj 160 0 obj <> endobj 161 0 obj <> endobj 162 0 obj <> endobj 163 0 obj <> endobj 164 0 obj <> endobj 165 0 obj <> endobj 166 0 obj <> endobj 167 0 obj <> endobj 168 0 obj <> endobj 169 0 obj <> endobj 170 0 obj <> endobj 171 0 obj <> endobj 172 0 obj <> endobj 173 0 obj <> endobj 174 0 obj <> endobj 175 0 obj <> endobj 176 0 obj <> endobj 177 0 obj <> endobj 178 0 obj <> endobj 179 0 obj <> endobj 180 0 obj <> endobj 181 0 obj <> endobj 182 0 obj <> endobj 183 0 obj <> endobj 184 0 obj <> endobj 185 0 obj <> endobj 186 0 obj <> endobj 187 0 obj <> endobj 188 0 obj <> endobj 189 0 obj <> endobj 190 0 obj <> endobj 191 0 obj <> endobj 192 0 obj <> endobj 193 0 obj <> endobj 194 0 obj <> endobj 195 0 obj <> endobj 196 0 obj <> endobj 197 0 obj <> endobj 198 0 obj <> endobj 199 0 obj <> endobj 200 0 obj <> endobj 201 0 obj <> endobj 202 0 obj <> endobj 203 0 obj <> endobj 204 0 obj <> endobj 205 0 obj <> endobj 206 0 obj <> endobj 207 0 obj <> endobj 208 0 obj <> endobj 209 0 obj <> endobj 210 0 obj <> endobj 211 0 obj <> endobj 212 0 obj <> endobj 213 0 obj <> endobj 214 0 obj <> endobj 215 0 obj <> endobj 216 0 obj <> endobj 217 0 obj <> endobj 218 0 obj <> endobj 219 0 obj <> endobj 220 0 obj <> endobj 221 0 obj <> endobj 226 0 obj <> endobj 227 0 obj <> endobj 228 0 obj <> endobj 229 0 obj <> endobj 230 0 obj <> endobj 231 0 obj <> endobj 232 0 obj <> endobj 233 0 obj <> endobj 234 0 obj <> endobj 235 0 obj <> endobj 236 0 obj <> endobj 237 0 obj <> endobj 238 0 obj <> endobj 239 0 obj <> endobj 240 0 obj <> endobj 241 0 obj <> endobj 242 0 obj <> endobj 243 0 obj <> endobj 244 0 obj <> endobj 245 0 obj <> endobj 246 0 obj <> endobj 247 0 obj <> endobj 248 0 obj <> endobj 249 0 obj <> endobj 250 0 obj <> endobj 251 0 obj <> endobj 252 0 obj <> endobj 253 0 obj <> endobj 254 0 obj <> endobj 255 0 obj <> endobj 256 0 obj <> endobj 257 0 obj <> endobj 258 0 obj <> endobj 259 0 obj <> endobj 260 0 obj <> endobj 261 0 obj <> endobj 262 0 obj <> endobj 263 0 obj <> endobj 264 0 obj <> endobj 265 0 obj <> endobj 266 0 obj <> endobj 267 0 obj <> endobj 268 0 obj <> endobj 269 0 obj <> endobj 270 0 obj <> endobj 271 0 obj <> endobj 272 0 obj <> endobj 273 0 obj <> endobj 274 0 obj <> endobj 275 0 obj <> endobj 276 0 obj <> endobj 277 0 obj <> endobj 278 0 obj <> endobj 279 0 obj <> endobj 280 0 obj <> endobj 281 0 obj <> endobj 282 0 obj <> endobj 283 0 obj <> endobj 284 0 obj <> endobj 285 0 obj <> endobj 286 0 obj <> endobj 287 0 obj <> endobj 288 0 obj <> endobj 289 0 obj <> endobj 290 0 obj <> endobj 291 0 obj <> endobj 292 0 obj <> endobj 293 0 obj <> endobj 294 0 obj <> endobj 295 0 obj <> endobj 296 0 obj <> endobj 297 0 obj <> endobj 298 0 obj <> endobj 299 0 obj <> endobj 300 0 obj <> endobj 301 0 obj <> endobj 302 0 obj <> endobj 303 0 obj <> endobj 318 0 obj <> endobj 319 0 obj <> endobj 324 0 obj <> endobj 329 0 obj <> endobj 335 0 obj <> endobj 352 0 obj <> endobj 357 0 obj <> endobj 358 0 obj <> endobj 363 0 obj <> endobj 364 0 obj <> endobj 365 0 obj <> endobj 366 0 obj <> endobj 375 0 obj <> endobj 380 0 obj <> endobj 381 0 obj <> endobj 386 0 obj <> endobj 395 0 obj <> endobj 396 0 obj <> endobj 453 0 obj <> endobj 454 0 obj <> endobj 455 0 obj <> endobj 460 0 obj <> endobj 461 0 obj <> endobj 492 0 obj <> endobj 493 0 obj <> endobj 494 0 obj <> endobj 508 0 obj <> endobj 509 0 obj <> endobj 518 0 obj <> endobj 543 0 obj <> endobj 544 0 obj <> endobj 565 0 obj <> endobj 566 0 obj <> endobj 567 0 obj <> endobj 568 0 obj <> endobj 577 0 obj <> endobj 606 0 obj <> endobj 607 0 obj <> endobj 608 0 obj <> endobj 633 0 obj <> endobj 634 0 obj <> endobj 643 0 obj <> endobj 644 0 obj <> endobj 653 0 obj <> endobj 654 0 obj <> endobj 655 0 obj <> endobj 660 0 obj <> endobj 661 0 obj <> endobj 698 0 obj <> endobj 1 0 obj <> ] >> /Names 779 0 R /PageMode /UseOutlines /Outlines 5 0 R /OpenAction [142 0 R /XYZ 0 792 0] /Metadata 3 0 R >> endobj 2 0 obj <> endobj 781 0 obj <> endobj 782 0 obj <> endobj 783 0 obj <> endobj 784 0 obj <> endobj 785 0 obj <> endobj 786 0 obj <> endobj 787 0 obj <> endobj 788 0 obj <> endobj 789 0 obj <> endobj 790 0 obj <> endobj 142 0 obj <> endobj 145 0 obj <> >> endobj 791 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 792 0 obj 36 endobj 222 0 obj <> endobj 225 0 obj <> >> endobj 793 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 794 0 obj 36 endobj 304 0 obj <> endobj 307 0 obj <> >> endobj 795 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 796 0 obj 36 endobj 308 0 obj <> endobj 311 0 obj <> >> endobj 797 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 798 0 obj 36 endobj 312 0 obj <> endobj 315 0 obj <> >> endobj 799 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 800 0 obj 36 endobj 320 0 obj <> endobj 323 0 obj <> >> endobj 801 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 802 0 obj 36 endobj 325 0 obj <> endobj 328 0 obj <> >> endobj 803 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 804 0 obj 36 endobj 330 0 obj <> endobj 333 0 obj <> >> endobj 805 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 806 0 obj 36 endobj 336 0 obj <> endobj 339 0 obj <> >> endobj 807 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 808 0 obj 36 endobj 340 0 obj <> endobj 343 0 obj <> >> endobj 809 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 810 0 obj 36 endobj 344 0 obj <> endobj 347 0 obj <> >> endobj 811 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 812 0 obj 36 endobj 348 0 obj <> endobj 351 0 obj <> >> endobj 813 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 814 0 obj 36 endobj 353 0 obj <> endobj 356 0 obj <> >> endobj 815 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 816 0 obj 36 endobj 359 0 obj <> endobj 362 0 obj <> >> endobj 817 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 818 0 obj 36 endobj 367 0 obj <> endobj 370 0 obj <> >> endobj 819 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 820 0 obj 36 endobj 371 0 obj <> endobj 374 0 obj <> >> endobj 821 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 822 0 obj 36 endobj 376 0 obj <> endobj 379 0 obj <> >> endobj 823 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 824 0 obj 36 endobj 382 0 obj <> endobj 385 0 obj <> >> endobj 825 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 826 0 obj 36 endobj 387 0 obj <> endobj 390 0 obj <> >> endobj 827 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 828 0 obj 36 endobj 391 0 obj <> endobj 394 0 obj <> >> endobj 829 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 830 0 obj 36 endobj 397 0 obj <> endobj 400 0 obj <> >> endobj 831 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 832 0 obj 36 endobj 401 0 obj <> endobj 404 0 obj <> >> endobj 833 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 834 0 obj 36 endobj 405 0 obj <> endobj 408 0 obj <> >> endobj 835 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 836 0 obj 36 endobj 409 0 obj <> endobj 412 0 obj <> >> endobj 837 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 838 0 obj 36 endobj 413 0 obj <> endobj 416 0 obj <> >> endobj 839 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 840 0 obj 36 endobj 417 0 obj <> endobj 420 0 obj <> >> endobj 841 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 842 0 obj 36 endobj 421 0 obj <> endobj 424 0 obj <> >> endobj 843 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 844 0 obj 36 endobj 425 0 obj <> endobj 428 0 obj <> >> endobj 845 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 846 0 obj 36 endobj 429 0 obj <> endobj 432 0 obj <> >> endobj 847 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 848 0 obj 36 endobj 433 0 obj <> endobj 436 0 obj <> >> endobj 849 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 850 0 obj 36 endobj 437 0 obj <> endobj 440 0 obj <> >> endobj 851 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 852 0 obj 36 endobj 441 0 obj <> endobj 444 0 obj <> >> endobj 853 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 854 0 obj 36 endobj 445 0 obj <> endobj 448 0 obj <> >> endobj 855 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 856 0 obj 36 endobj 449 0 obj <> endobj 452 0 obj <> >> endobj 857 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 858 0 obj 36 endobj 456 0 obj <> endobj 459 0 obj <> >> endobj 859 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 860 0 obj 36 endobj 462 0 obj <> endobj 465 0 obj <> >> endobj 861 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 862 0 obj 36 endobj 466 0 obj <> endobj 469 0 obj <> >> endobj 863 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 864 0 obj 36 endobj 470 0 obj <> endobj 473 0 obj <> >> endobj 865 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 866 0 obj 36 endobj 475 0 obj <> endobj 478 0 obj <> >> endobj 867 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 868 0 obj 36 endobj 479 0 obj <> endobj 482 0 obj <> >> endobj 869 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 870 0 obj 36 endobj 483 0 obj <> endobj 486 0 obj <> >> endobj 871 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 872 0 obj 36 endobj 487 0 obj <> endobj 490 0 obj <> >> endobj 873 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 874 0 obj 36 endobj 495 0 obj <> endobj 498 0 obj <> >> endobj 875 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 876 0 obj 36 endobj 500 0 obj <> endobj 503 0 obj <> >> endobj 877 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 878 0 obj 36 endobj 504 0 obj <> endobj 507 0 obj <> >> endobj 879 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 880 0 obj 36 endobj 510 0 obj <> endobj 513 0 obj <> >> endobj 881 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 882 0 obj 36 endobj 514 0 obj <> endobj 517 0 obj <> >> endobj 883 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 884 0 obj 36 endobj 519 0 obj <> endobj 522 0 obj <> >> endobj 885 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 886 0 obj 36 endobj 523 0 obj <> endobj 526 0 obj <> >> endobj 887 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 888 0 obj 36 endobj 527 0 obj <> endobj 530 0 obj <> >> endobj 889 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 890 0 obj 36 endobj 531 0 obj <> endobj 534 0 obj <> >> endobj 891 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 892 0 obj 36 endobj 535 0 obj <> endobj 538 0 obj <> >> endobj 893 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 894 0 obj 36 endobj 539 0 obj <> endobj 542 0 obj <> >> endobj 895 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 896 0 obj 36 endobj 545 0 obj <> endobj 548 0 obj <> >> endobj 897 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 898 0 obj 36 endobj 549 0 obj <> endobj 552 0 obj <> >> endobj 899 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 900 0 obj 36 endobj 553 0 obj <> endobj 556 0 obj <> >> endobj 901 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 902 0 obj 36 endobj 557 0 obj <> endobj 560 0 obj <> >> endobj 903 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 904 0 obj 36 endobj 561 0 obj <> endobj 564 0 obj <> >> endobj 905 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 906 0 obj 36 endobj 569 0 obj <> endobj 572 0 obj <> >> endobj 907 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 908 0 obj 36 endobj 573 0 obj <> endobj 576 0 obj <> >> endobj 909 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 910 0 obj 36 endobj 578 0 obj <> endobj 581 0 obj <> >> endobj 911 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 912 0 obj 36 endobj 582 0 obj <> endobj 585 0 obj <> >> endobj 913 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 914 0 obj 36 endobj 586 0 obj <> endobj 589 0 obj <> >> endobj 915 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 916 0 obj 36 endobj 590 0 obj <> endobj 593 0 obj <> >> endobj 917 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 918 0 obj 36 endobj 594 0 obj <> endobj 597 0 obj <> >> endobj 919 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 920 0 obj 36 endobj 598 0 obj <> endobj 601 0 obj <> >> endobj 921 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 922 0 obj 36 endobj 602 0 obj <> endobj 605 0 obj <> >> endobj 923 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 924 0 obj 36 endobj 609 0 obj <> endobj 612 0 obj <> >> endobj 925 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 926 0 obj 36 endobj 613 0 obj <> endobj 616 0 obj <> >> endobj 927 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 928 0 obj 36 endobj 617 0 obj <> endobj 620 0 obj <> >> endobj 929 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 930 0 obj 36 endobj 621 0 obj <> endobj 624 0 obj <> >> endobj 931 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 932 0 obj 36 endobj 625 0 obj <> endobj 628 0 obj <> >> endobj 933 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 934 0 obj 36 endobj 629 0 obj <> endobj 632 0 obj <> >> endobj 935 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 936 0 obj 36 endobj 635 0 obj <> endobj 638 0 obj <> >> endobj 937 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 938 0 obj 36 endobj 639 0 obj <> endobj 642 0 obj <> >> endobj 939 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 940 0 obj 36 endobj 645 0 obj <> endobj 648 0 obj <> >> endobj 941 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 942 0 obj 36 endobj 649 0 obj <> endobj 652 0 obj <> >> endobj 943 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 944 0 obj 36 endobj 656 0 obj <> endobj 659 0 obj <> >> endobj 945 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 946 0 obj 36 endobj 662 0 obj <> endobj 665 0 obj <> >> endobj 947 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 948 0 obj 36 endobj 666 0 obj <> endobj 669 0 obj <> >> endobj 949 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 950 0 obj 36 endobj 670 0 obj <> endobj 673 0 obj <> >> endobj 951 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 952 0 obj 36 endobj 674 0 obj <> endobj 677 0 obj <> >> endobj 953 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 954 0 obj 36 endobj 678 0 obj <> endobj 681 0 obj <> >> endobj 955 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 956 0 obj 36 endobj 682 0 obj <> endobj 685 0 obj <> >> endobj 957 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 958 0 obj 36 endobj 686 0 obj <> endobj 689 0 obj <> >> endobj 959 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 960 0 obj 36 endobj 690 0 obj <> endobj 693 0 obj <> >> endobj 961 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 962 0 obj 36 endobj 694 0 obj <> endobj 697 0 obj <> >> endobj 963 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 964 0 obj 36 endobj 699 0 obj <> endobj 702 0 obj <> >> endobj 965 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 966 0 obj 36 endobj 703 0 obj <> endobj 706 0 obj <> >> endobj 967 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 968 0 obj 36 endobj 707 0 obj <> endobj 710 0 obj <> >> endobj 969 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 970 0 obj 36 endobj 711 0 obj <> endobj 714 0 obj <> >> endobj 971 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 972 0 obj 36 endobj 715 0 obj <> endobj 718 0 obj <> >> endobj 973 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 974 0 obj 36 endobj 719 0 obj <> endobj 722 0 obj <> >> endobj 975 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 976 0 obj 36 endobj 723 0 obj <> endobj 726 0 obj <> >> endobj 977 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 978 0 obj 36 endobj 727 0 obj <> endobj 730 0 obj <> >> endobj 979 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 980 0 obj 36 endobj 731 0 obj <> endobj 734 0 obj <> >> endobj 981 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 982 0 obj 36 endobj 735 0 obj <> endobj 738 0 obj <> >> endobj 983 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 984 0 obj 36 endobj 739 0 obj <> endobj 742 0 obj <> >> endobj 985 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 986 0 obj 36 endobj 743 0 obj <> endobj 746 0 obj <> >> endobj 987 0 obj <> stream xÚ+ä2P0PÈå234Ò9`ÚÜÒÈ2€Ò\á y\Ÿàì endstream endobj 988 0 obj 36 endobj 3 0 obj <> stream application/pdf Untitled Unknown XEP 4.19 build 20110414 Unknown 2019-07-21T11:32:28Z 2019-07-21T11:32:28Z endstream endobj 5 0 obj <> endobj 133 0 obj <> endobj 134 0 obj <> endobj 137 0 obj <> endobj 136 0 obj <> endobj 135 0 obj <> endobj 138 0 obj <> endobj 140 0 obj <> endobj 141 0 obj <> endobj 139 0 obj <> endobj 97 0 obj <> endobj 123 0 obj <> endobj 132 0 obj <> endobj 131 0 obj <> endobj 130 0 obj <> endobj 129 0 obj <> endobj 128 0 obj <> endobj 127 0 obj <> endobj 126 0 obj <> endobj 125 0 obj <> endobj 124 0 obj <> endobj 98 0 obj <> endobj 100 0 obj <> endobj 99 0 obj <> endobj 111 0 obj <> endobj 121 0 obj <> endobj 120 0 obj <> endobj 119 0 obj <> endobj 118 0 obj <> endobj 117 0 obj <> endobj 116 0 obj <> endobj 115 0 obj <> endobj 114 0 obj <> endobj 113 0 obj <> endobj 112 0 obj <> endobj 110 0 obj <> endobj 109 0 obj <> endobj 122 0 obj <> endobj 102 0 obj <> endobj 108 0 obj <> endobj 107 0 obj <> endobj 106 0 obj <> endobj 105 0 obj <> endobj 104 0 obj <> endobj 103 0 obj <> endobj 101 0 obj <> endobj 85 0 obj <> endobj 96 0 obj <> endobj 93 0 obj <> endobj 95 0 obj <> endobj 94 0 obj <> endobj 90 0 obj <> endobj 92 0 obj <> endobj 91 0 obj <> endobj 89 0 obj <> endobj 86 0 obj <> endobj 88 0 obj <> endobj 87 0 obj <> endobj 19 0 obj <> endobj 43 0 obj <> endobj 42 0 obj <> endobj 41 0 obj <> endobj 40 0 obj <> endobj 39 0 obj <> endobj 38 0 obj <> endobj 37 0 obj <> endobj 36 0 obj <> endobj 33 0 obj <> endobj 35 0 obj <> endobj 34 0 obj <> endobj 29 0 obj <> endobj 32 0 obj <> endobj 31 0 obj <> endobj 30 0 obj <> endobj 26 0 obj <> endobj 28 0 obj <> endobj 27 0 obj <> endobj 25 0 obj <> endobj 24 0 obj <> endobj 23 0 obj <> endobj 22 0 obj <> endobj 21 0 obj <> endobj 20 0 obj <> endobj 49 0 obj <> endobj 68 0 obj <> endobj 67 0 obj <> endobj 66 0 obj <> endobj 65 0 obj <> endobj 64 0 obj <> endobj 63 0 obj <> endobj 62 0 obj <> endobj 61 0 obj <> endobj 60 0 obj <> endobj 59 0 obj <> endobj 58 0 obj <> endobj 53 0 obj <> endobj 57 0 obj <> endobj 56 0 obj <> endobj 55 0 obj <> endobj 54 0 obj <> endobj 52 0 obj <> endobj 51 0 obj <> endobj 50 0 obj <> endobj 80 0 obj <> endobj 84 0 obj <> endobj 83 0 obj <> endobj 82 0 obj <> endobj 81 0 obj <> endobj 44 0 obj <> endobj 48 0 obj <> endobj 47 0 obj <> endobj 46 0 obj <> endobj 45 0 obj <> endobj 11 0 obj <> endobj 12 0 obj <> endobj 18 0 obj <> endobj 14 0 obj <> endobj 17 0 obj <> endobj 16 0 obj <> endobj 15 0 obj <> endobj 13 0 obj <> endobj 75 0 obj <> endobj 76 0 obj <> endobj 79 0 obj <> endobj 78 0 obj <> endobj 77 0 obj <> endobj 8 0 obj <> endobj 10 0 obj <> endobj 9 0 obj <> endobj 7 0 obj <> endobj 6 0 obj <> endobj 69 0 obj <> endobj 74 0 obj <> endobj 73 0 obj <> endobj 72 0 obj <> endobj 71 0 obj <> endobj 70 0 obj <> endobj 779 0 obj <> endobj 780 0 obj <> endobj 1125 0 obj <> endobj 1126 0 obj <> endobj 1127 0 obj <> endobj 1128 0 obj <> endobj 1129 0 obj <> endobj 1130 0 obj <> endobj 1131 0 obj <> endobj 1132 0 obj <> endobj 1133 0 obj <> endobj 1052 0 obj <> endobj 1075 0 obj <> endobj 1104 0 obj <> endobj 1109 0 obj <> endobj 1084 0 obj <> endobj 1029 0 obj <> endobj 1107 0 obj <> endobj 1069 0 obj <> endobj 1001 0 obj <> endobj 998 0 obj <> endobj 990 0 obj <> endobj 989 0 obj <> endobj 1083 0 obj <> endobj 1117 0 obj <> endobj 1120 0 obj <> endobj 1115 0 obj <> endobj 1002 0 obj <> endobj 1095 0 obj <> endobj 995 0 obj <> endobj 994 0 obj <> endobj 1122 0 obj <> endobj 1066 0 obj <> endobj 1100 0 obj <> endobj 1020 0 obj <> endobj 1048 0 obj <> endobj 1088 0 obj <> endobj 1017 0 obj <> endobj 1014 0 obj <> endobj 1101 0 obj <> endobj 1121 0 obj <> endobj 1103 0 obj <> endobj 1111 0 obj <> endobj 1045 0 obj <> endobj 996 0 obj <> endobj 1118 0 obj <> endobj 1000 0 obj <> endobj 997 0 obj <> endobj 1074 0 obj <> endobj 1093 0 obj <> endobj 1062 0 obj <> endobj 1091 0 obj <> endobj 1098 0 obj <> endobj 1119 0 obj <> endobj 1038 0 obj <> endobj 1023 0 obj <> endobj 991 0 obj <> endobj 1018 0 obj <> endobj 1064 0 obj <> endobj 1022 0 obj <> endobj 1065 0 obj <> endobj 1003 0 obj <> endobj 1054 0 obj <> endobj 1009 0 obj <> endobj 1037 0 obj <> endobj 1099 0 obj <> endobj 1123 0 obj <> endobj 1032 0 obj <> endobj 1076 0 obj <> endobj 1012 0 obj <> endobj 1081 0 obj <> endobj 999 0 obj <> endobj 1035 0 obj <> endobj 1116 0 obj <> endobj 993 0 obj <> endobj 1058 0 obj <> endobj 1077 0 obj <> endobj 1082 0 obj <> endobj 1041 0 obj <> endobj 1114 0 obj <> endobj 1061 0 obj <> endobj 1053 0 obj <> endobj 1050 0 obj <> endobj 1024 0 obj <> endobj 1094 0 obj <> endobj 1071 0 obj <> endobj 1105 0 obj <> endobj 1040 0 obj <> endobj 1056 0 obj <> endobj 1096 0 obj <> endobj 1039 0 obj <> endobj 1025 0 obj <> endobj 1030 0 obj <> endobj 1106 0 obj <> endobj 1073 0 obj <> endobj 1015 0 obj <> endobj 1067 0 obj <> endobj 1110 0 obj <> endobj 1090 0 obj <> endobj 1049 0 obj <> endobj 1011 0 obj <> endobj 1085 0 obj <> endobj 1034 0 obj <> endobj 1006 0 obj <> endobj 1060 0 obj <> endobj 1013 0 obj <> endobj 1055 0 obj <> endobj 1036 0 obj <> endobj 1108 0 obj <> endobj 1113 0 obj <> endobj 1097 0 obj <> endobj 1008 0 obj <> endobj 1124 0 obj <> endobj 1031 0 obj <> endobj 1028 0 obj <> endobj 1047 0 obj <> endobj 1072 0 obj <> endobj 1086 0 obj <> endobj 1027 0 obj <> endobj 1068 0 obj <> endobj 1051 0 obj <> endobj 1042 0 obj <> endobj 1005 0 obj <> endobj 1080 0 obj <> endobj 1010 0 obj <> endobj 1057 0 obj <> endobj 1070 0 obj <> endobj 1079 0 obj <> endobj 1007 0 obj <> endobj 1019 0 obj <> endobj 1087 0 obj <> endobj 1063 0 obj <> endobj 1044 0 obj <> endobj 1089 0 obj <> endobj 1004 0 obj <> endobj 1102 0 obj <> endobj 1033 0 obj <> endobj 1059 0 obj <> endobj 1021 0 obj <> endobj 1016 0 obj <> endobj 1043 0 obj <> endobj 1092 0 obj <> endobj 1026 0 obj <> endobj 1112 0 obj <> endobj 1078 0 obj <> endobj 1046 0 obj <> endobj 992 0 obj <> endobj xref 0 1134 0000000000 65535 f 0000313365 00000 n 0000313560 00000 n 0000358318 00000 n 0000278395 00000 n 0000359286 00000 n 0000377126 00000 n 0000376991 00000 n 0000376591 00000 n 0000376870 00000 n 0000376742 00000 n 0000374775 00000 n 0000374927 00000 n 0000375756 00000 n 0000375164 00000 n 0000375628 00000 n 0000375465 00000 n 0000375321 00000 n 0000375048 00000 n 0000367026 00000 n 0000370337 00000 n 0000370212 00000 n 0000370076 00000 n 0000369953 00000 n 0000369823 00000 n 0000369689 00000 n 0000369273 00000 n 0000369564 00000 n 0000369439 00000 n 0000368750 00000 n 0000369160 00000 n 0000369050 00000 n 0000368932 00000 n 0000368311 00000 n 0000368616 00000 n 0000368479 00000 n 0000368178 00000 n 0000368040 00000 n 0000367897 00000 n 0000367742 00000 n 0000367612 00000 n 0000367464 00000 n 0000367309 00000 n 0000367180 00000 n 0000374079 00000 n 0000374646 00000 n 0000374491 00000 n 0000374355 00000 n 0000374238 00000 n 0000370455 00000 n 0000373217 00000 n 0000373061 00000 n 0000372927 00000 n 0000372215 00000 n 0000372807 00000 n 0000372675 00000 n 0000372521 00000 n 0000372378 00000 n 0000372083 00000 n 0000371924 00000 n 0000371782 00000 n 0000371630 00000 n 0000371486 00000 n 0000371322 00000 n 0000371184 00000 n 0000371030 00000 n 0000370888 00000 n 0000370752 00000 n 0000370624 00000 n 0000377252 00000 n 0000377951 00000 n 0000377819 00000 n 0000377680 00000 n 0000377544 00000 n 0000377422 00000 n 0000375880 00000 n 0000376064 00000 n 0000376451 00000 n 0000376318 00000 n 0000376178 00000 n 0000373327 00000 n 0000373937 00000 n 0000373788 00000 n 0000373645 00000 n 0000373496 00000 n 0000365361 00000 n 0000366596 00000 n 0000366895 00000 n 0000366744 00000 n 0000366431 00000 n 0000366067 00000 n 0000366321 00000 n 0000366218 00000 n 0000365652 00000 n 0000365955 00000 n 0000365806 00000 n 0000365544 00000 n 0000360640 00000 n 0000362003 00000 n 0000362272 00000 n 0000362155 00000 n 0000365243 00000 n 0000364274 00000 n 0000365111 00000 n 0000364965 00000 n 0000364829 00000 n 0000364684 00000 n 0000364552 00000 n 0000364429 00000 n 0000364056 00000 n 0000363940 00000 n 0000362375 00000 n 0000363819 00000 n 0000363673 00000 n 0000363526 00000 n 0000363388 00000 n 0000363241 00000 n 0000363105 00000 n 0000362946 00000 n 0000362814 00000 n 0000362654 00000 n 0000362531 00000 n 0000364172 00000 n 0000360817 00000 n 0000361898 00000 n 0000361779 00000 n 0000361660 00000 n 0000361541 00000 n 0000361424 00000 n 0000361307 00000 n 0000361190 00000 n 0000361073 00000 n 0000360970 00000 n 0000359343 00000 n 0000359488 00000 n 0000359947 00000 n 0000359802 00000 n 0000359658 00000 n 0000360056 00000 n 0000360515 00000 n 0000360231 00000 n 0000360389 00000 n 0000315152 00000 n 0000000015 00000 n 0000012657 00000 n 0000315930 00000 n 0000285775 00000 n 0000284097 00000 n 0000292650 00000 n 0000290834 00000 n 0000293490 00000 n 0000293580 00000 n 0000293671 00000 n 0000293763 00000 n 0000293856 00000 n 0000293961 00000 n 0000294071 00000 n 0000294164 00000 n 0000294258 00000 n 0000294357 00000 n 0000294461 00000 n 0000294555 00000 n 0000294654 00000 n 0000294745 00000 n 0000294837 00000 n 0000294938 00000 n 0000295040 00000 n 0000295133 00000 n 0000295227 00000 n 0000295320 00000 n 0000295414 00000 n 0000295509 00000 n 0000295609 00000 n 0000295705 00000 n 0000295806 00000 n 0000295901 00000 n 0000295997 00000 n 0000296093 00000 n 0000296194 00000 n 0000296288 00000 n 0000296383 00000 n 0000296476 00000 n 0000296570 00000 n 0000296667 00000 n 0000296765 00000 n 0000296854 00000 n 0000296944 00000 n 0000297040 00000 n 0000297137 00000 n 0000297232 00000 n 0000297328 00000 n 0000297425 00000 n 0000297527 00000 n 0000297624 00000 n 0000297726 00000 n 0000297819 00000 n 0000297913 00000 n 0000298010 00000 n 0000298108 00000 n 0000298210 00000 n 0000298313 00000 n 0000298410 00000 n 0000298512 00000 n 0000298603 00000 n 0000298695 00000 n 0000298796 00000 n 0000298902 00000 n 0000299003 00000 n 0000299109 00000 n 0000299209 00000 n 0000299310 00000 n 0000299408 00000 n 0000299507 00000 n 0000299601 00000 n 0000299700 00000 n 0000299795 00000 n 0000299891 00000 n 0000299998 00000 n 0000300110 00000 n 0000300210 00000 n 0000300311 00000 n 0000300406 00000 n 0000316166 00000 n 0000012680 00000 n 0000024738 00000 n 0000316992 00000 n 0000300502 00000 n 0000300602 00000 n 0000300703 00000 n 0000300803 00000 n 0000300904 00000 n 0000301005 00000 n 0000301107 00000 n 0000301207 00000 n 0000301308 00000 n 0000301412 00000 n 0000301521 00000 n 0000301627 00000 n 0000301738 00000 n 0000301839 00000 n 0000301945 00000 n 0000302053 00000 n 0000302166 00000 n 0000302271 00000 n 0000302381 00000 n 0000302476 00000 n 0000302572 00000 n 0000302669 00000 n 0000302767 00000 n 0000302863 00000 n 0000302964 00000 n 0000303064 00000 n 0000303165 00000 n 0000303267 00000 n 0000303374 00000 n 0000303471 00000 n 0000303569 00000 n 0000303669 00000 n 0000303770 00000 n 0000303871 00000 n 0000303977 00000 n 0000304073 00000 n 0000304174 00000 n 0000304271 00000 n 0000304369 00000 n 0000304470 00000 n 0000304572 00000 n 0000304671 00000 n 0000304771 00000 n 0000304875 00000 n 0000304980 00000 n 0000305081 00000 n 0000305186 00000 n 0000305284 00000 n 0000305387 00000 n 0000305482 00000 n 0000305578 00000 n 0000305677 00000 n 0000305777 00000 n 0000305865 00000 n 0000305954 00000 n 0000306056 00000 n 0000306163 00000 n 0000306259 00000 n 0000306356 00000 n 0000306449 00000 n 0000306543 00000 n 0000306635 00000 n 0000306728 00000 n 0000306822 00000 n 0000306917 00000 n 0000307013 00000 n 0000307110 00000 n 0000307208 00000 n 0000307311 00000 n 0000307407 00000 n 0000307504 00000 n 0000307600 00000 n 0000307697 00000 n 0000307790 00000 n 0000307884 00000 n 0000307973 00000 n 0000308063 00000 n 0000308167 00000 n 0000317192 00000 n 0000024761 00000 n 0000028573 00000 n 0000317384 00000 n 0000317596 00000 n 0000028595 00000 n 0000029663 00000 n 0000317788 00000 n 0000318000 00000 n 0000029684 00000 n 0000032981 00000 n 0000318218 00000 n 0000278585 00000 n 0000287524 00000 n 0000308276 00000 n 0000308380 00000 n 0000318454 00000 n 0000033003 00000 n 0000036046 00000 n 0000318664 00000 n 0000308481 00000 n 0000318900 00000 n 0000036068 00000 n 0000036808 00000 n 0000319110 00000 n 0000308577 00000 n 0000319322 00000 n 0000036829 00000 n 0000040488 00000 n 0000319532 00000 n 0000289165 00000 n 0000308683 00000 n 0000319780 00000 n 0000040510 00000 n 0000042679 00000 n 0000319972 00000 n 0000320208 00000 n 0000042701 00000 n 0000044781 00000 n 0000320400 00000 n 0000320624 00000 n 0000044803 00000 n 0000047428 00000 n 0000320816 00000 n 0000321040 00000 n 0000047450 00000 n 0000050628 00000 n 0000321250 00000 n 0000308786 00000 n 0000321474 00000 n 0000050650 00000 n 0000054059 00000 n 0000321692 00000 n 0000308886 00000 n 0000308989 00000 n 0000321928 00000 n 0000054081 00000 n 0000058532 00000 n 0000322162 00000 n 0000309088 00000 n 0000309192 00000 n 0000309287 00000 n 0000309389 00000 n 0000322386 00000 n 0000058554 00000 n 0000061356 00000 n 0000322578 00000 n 0000322802 00000 n 0000061378 00000 n 0000065840 00000 n 0000323012 00000 n 0000309488 00000 n 0000323236 00000 n 0000065862 00000 n 0000069905 00000 n 0000323454 00000 n 0000309591 00000 n 0000309686 00000 n 0000323690 00000 n 0000069927 00000 n 0000071934 00000 n 0000323900 00000 n 0000309796 00000 n 0000324124 00000 n 0000071956 00000 n 0000073666 00000 n 0000324316 00000 n 0000324528 00000 n 0000073688 00000 n 0000075742 00000 n 0000324746 00000 n 0000309898 00000 n 0000310006 00000 n 0000324970 00000 n 0000075764 00000 n 0000077245 00000 n 0000325162 00000 n 0000325374 00000 n 0000077267 00000 n 0000079381 00000 n 0000325566 00000 n 0000325790 00000 n 0000079403 00000 n 0000081323 00000 n 0000325982 00000 n 0000326194 00000 n 0000081345 00000 n 0000083743 00000 n 0000326386 00000 n 0000326610 00000 n 0000083765 00000 n 0000086227 00000 n 0000326802 00000 n 0000327050 00000 n 0000086249 00000 n 0000089123 00000 n 0000327242 00000 n 0000327454 00000 n 0000089145 00000 n 0000091350 00000 n 0000327646 00000 n 0000327882 00000 n 0000091372 00000 n 0000092843 00000 n 0000328074 00000 n 0000328286 00000 n 0000092865 00000 n 0000094919 00000 n 0000328478 00000 n 0000328702 00000 n 0000094941 00000 n 0000097038 00000 n 0000328894 00000 n 0000329118 00000 n 0000097060 00000 n 0000098244 00000 n 0000329310 00000 n 0000329522 00000 n 0000098266 00000 n 0000099750 00000 n 0000329714 00000 n 0000329926 00000 n 0000099772 00000 n 0000101954 00000 n 0000330118 00000 n 0000330330 00000 n 0000101976 00000 n 0000106287 00000 n 0000330556 00000 n 0000310109 00000 n 0000310215 00000 n 0000310314 00000 n 0000330780 00000 n 0000106309 00000 n 0000109758 00000 n 0000330998 00000 n 0000310416 00000 n 0000310531 00000 n 0000331234 00000 n 0000109780 00000 n 0000111355 00000 n 0000331426 00000 n 0000331638 00000 n 0000111377 00000 n 0000112192 00000 n 0000331830 00000 n 0000332042 00000 n 0000112213 00000 n 0000114037 00000 n 0000332234 00000 n 0000280369 00000 n 0000332470 00000 n 0000114059 00000 n 0000116376 00000 n 0000332662 00000 n 0000332898 00000 n 0000116398 00000 n 0000118834 00000 n 0000333090 00000 n 0000333314 00000 n 0000118856 00000 n 0000120333 00000 n 0000333506 00000 n 0000333742 00000 n 0000120355 00000 n 0000122834 00000 n 0000333968 00000 n 0000282610 00000 n 0000310637 00000 n 0000310742 00000 n 0000310848 00000 n 0000334204 00000 n 0000122856 00000 n 0000125543 00000 n 0000334396 00000 n 0000281120 00000 n 0000334656 00000 n 0000125565 00000 n 0000127104 00000 n 0000334848 00000 n 0000335072 00000 n 0000127126 00000 n 0000129880 00000 n 0000335290 00000 n 0000310949 00000 n 0000311051 00000 n 0000335502 00000 n 0000129902 00000 n 0000132296 00000 n 0000335694 00000 n 0000335918 00000 n 0000132318 00000 n 0000134939 00000 n 0000336128 00000 n 0000311157 00000 n 0000336352 00000 n 0000134961 00000 n 0000137267 00000 n 0000336544 00000 n 0000336780 00000 n 0000137289 00000 n 0000138791 00000 n 0000336972 00000 n 0000337184 00000 n 0000138813 00000 n 0000143001 00000 n 0000337376 00000 n 0000337600 00000 n 0000143023 00000 n 0000145133 00000 n 0000337792 00000 n 0000338028 00000 n 0000145155 00000 n 0000146775 00000 n 0000338220 00000 n 0000338444 00000 n 0000146797 00000 n 0000148684 00000 n 0000338662 00000 n 0000311262 00000 n 0000311376 00000 n 0000338874 00000 n 0000148706 00000 n 0000151296 00000 n 0000339066 00000 n 0000339314 00000 n 0000151318 00000 n 0000152861 00000 n 0000339506 00000 n 0000339730 00000 n 0000152883 00000 n 0000154811 00000 n 0000339922 00000 n 0000340134 00000 n 0000154833 00000 n 0000157067 00000 n 0000340326 00000 n 0000340550 00000 n 0000157089 00000 n 0000160781 00000 n 0000340784 00000 n 0000311490 00000 n 0000311600 00000 n 0000311703 00000 n 0000311817 00000 n 0000341020 00000 n 0000160803 00000 n 0000163024 00000 n 0000341212 00000 n 0000341436 00000 n 0000163046 00000 n 0000165948 00000 n 0000341646 00000 n 0000311926 00000 n 0000341894 00000 n 0000165970 00000 n 0000167615 00000 n 0000342086 00000 n 0000342298 00000 n 0000167637 00000 n 0000170076 00000 n 0000342490 00000 n 0000342738 00000 n 0000170098 00000 n 0000173669 00000 n 0000342930 00000 n 0000343178 00000 n 0000173691 00000 n 0000177177 00000 n 0000343370 00000 n 0000343606 00000 n 0000177199 00000 n 0000178990 00000 n 0000343798 00000 n 0000344022 00000 n 0000179012 00000 n 0000182556 00000 n 0000344214 00000 n 0000344450 00000 n 0000182578 00000 n 0000185955 00000 n 0000344676 00000 n 0000312028 00000 n 0000312142 00000 n 0000312251 00000 n 0000344900 00000 n 0000185977 00000 n 0000187488 00000 n 0000345092 00000 n 0000345304 00000 n 0000187510 00000 n 0000189370 00000 n 0000345496 00000 n 0000345708 00000 n 0000189392 00000 n 0000191093 00000 n 0000345900 00000 n 0000346112 00000 n 0000191115 00000 n 0000194526 00000 n 0000346304 00000 n 0000346540 00000 n 0000194548 00000 n 0000197768 00000 n 0000346732 00000 n 0000346968 00000 n 0000197790 00000 n 0000201695 00000 n 0000347186 00000 n 0000312359 00000 n 0000312461 00000 n 0000347422 00000 n 0000201717 00000 n 0000204384 00000 n 0000347614 00000 n 0000347850 00000 n 0000204406 00000 n 0000207511 00000 n 0000348068 00000 n 0000312562 00000 n 0000312663 00000 n 0000348292 00000 n 0000207533 00000 n 0000210743 00000 n 0000348484 00000 n 0000348708 00000 n 0000210765 00000 n 0000213624 00000 n 0000348934 00000 n 0000312756 00000 n 0000312859 00000 n 0000312958 00000 n 0000349158 00000 n 0000213646 00000 n 0000216273 00000 n 0000349376 00000 n 0000313061 00000 n 0000313164 00000 n 0000349612 00000 n 0000216295 00000 n 0000219328 00000 n 0000349804 00000 n 0000350040 00000 n 0000219350 00000 n 0000223257 00000 n 0000350232 00000 n 0000350456 00000 n 0000223279 00000 n 0000226222 00000 n 0000350648 00000 n 0000350872 00000 n 0000226244 00000 n 0000229297 00000 n 0000351064 00000 n 0000351300 00000 n 0000229319 00000 n 0000231956 00000 n 0000351492 00000 n 0000351716 00000 n 0000231978 00000 n 0000235168 00000 n 0000351908 00000 n 0000352132 00000 n 0000235190 00000 n 0000237678 00000 n 0000352324 00000 n 0000352548 00000 n 0000237700 00000 n 0000241024 00000 n 0000352740 00000 n 0000352976 00000 n 0000241046 00000 n 0000245053 00000 n 0000353186 00000 n 0000313263 00000 n 0000353422 00000 n 0000245075 00000 n 0000247824 00000 n 0000353614 00000 n 0000353838 00000 n 0000247846 00000 n 0000251188 00000 n 0000354030 00000 n 0000354254 00000 n 0000251210 00000 n 0000252189 00000 n 0000354446 00000 n 0000354682 00000 n 0000252210 00000 n 0000253521 00000 n 0000354874 00000 n 0000355098 00000 n 0000253543 00000 n 0000256901 00000 n 0000355290 00000 n 0000355514 00000 n 0000256923 00000 n 0000260426 00000 n 0000355706 00000 n 0000355930 00000 n 0000260448 00000 n 0000263658 00000 n 0000356122 00000 n 0000356322 00000 n 0000263680 00000 n 0000267216 00000 n 0000356514 00000 n 0000356714 00000 n 0000267238 00000 n 0000270898 00000 n 0000356906 00000 n 0000357106 00000 n 0000270920 00000 n 0000275186 00000 n 0000357298 00000 n 0000357510 00000 n 0000275208 00000 n 0000276725 00000 n 0000357702 00000 n 0000357914 00000 n 0000276747 00000 n 0000278373 00000 n 0000358106 00000 n 0000279471 00000 n 0000279661 00000 n 0000280348 00000 n 0000280535 00000 n 0000280600 00000 n 0000280790 00000 n 0000281099 00000 n 0000282011 00000 n 0000282212 00000 n 0000282589 00000 n 0000283504 00000 n 0000283704 00000 n 0000284076 00000 n 0000284991 00000 n 0000285185 00000 n 0000285754 00000 n 0000286673 00000 n 0000286878 00000 n 0000287503 00000 n 0000288420 00000 n 0000288620 00000 n 0000289144 00000 n 0000290057 00000 n 0000290258 00000 n 0000290813 00000 n 0000291727 00000 n 0000291923 00000 n 0000292629 00000 n 0000292836 00000 n 0000292941 00000 n 0000293137 00000 n 0000293469 00000 n 0000378082 00000 n 0000378119 00000 n 0000313691 00000 n 0000313838 00000 n 0000313985 00000 n 0000314132 00000 n 0000314279 00000 n 0000314426 00000 n 0000314573 00000 n 0000314720 00000 n 0000314867 00000 n 0000315014 00000 n 0000316033 00000 n 0000316146 00000 n 0000317059 00000 n 0000317172 00000 n 0000317463 00000 n 0000317576 00000 n 0000317867 00000 n 0000317980 00000 n 0000318321 00000 n 0000318434 00000 n 0000318767 00000 n 0000318880 00000 n 0000319189 00000 n 0000319302 00000 n 0000319647 00000 n 0000319760 00000 n 0000320075 00000 n 0000320188 00000 n 0000320491 00000 n 0000320604 00000 n 0000320907 00000 n 0000321020 00000 n 0000321341 00000 n 0000321454 00000 n 0000321795 00000 n 0000321908 00000 n 0000322253 00000 n 0000322366 00000 n 0000322669 00000 n 0000322782 00000 n 0000323103 00000 n 0000323216 00000 n 0000323557 00000 n 0000323670 00000 n 0000323991 00000 n 0000324104 00000 n 0000324395 00000 n 0000324508 00000 n 0000324837 00000 n 0000324950 00000 n 0000325241 00000 n 0000325354 00000 n 0000325657 00000 n 0000325770 00000 n 0000326061 00000 n 0000326174 00000 n 0000326477 00000 n 0000326590 00000 n 0000326917 00000 n 0000327030 00000 n 0000327321 00000 n 0000327434 00000 n 0000327749 00000 n 0000327862 00000 n 0000328153 00000 n 0000328266 00000 n 0000328569 00000 n 0000328682 00000 n 0000328985 00000 n 0000329098 00000 n 0000329389 00000 n 0000329502 00000 n 0000329793 00000 n 0000329906 00000 n 0000330197 00000 n 0000330310 00000 n 0000330647 00000 n 0000330760 00000 n 0000331101 00000 n 0000331214 00000 n 0000331505 00000 n 0000331618 00000 n 0000331909 00000 n 0000332022 00000 n 0000332337 00000 n 0000332450 00000 n 0000332765 00000 n 0000332878 00000 n 0000333181 00000 n 0000333294 00000 n 0000333609 00000 n 0000333722 00000 n 0000334071 00000 n 0000334184 00000 n 0000334523 00000 n 0000334636 00000 n 0000334939 00000 n 0000335052 00000 n 0000335369 00000 n 0000335482 00000 n 0000335785 00000 n 0000335898 00000 n 0000336219 00000 n 0000336332 00000 n 0000336647 00000 n 0000336760 00000 n 0000337051 00000 n 0000337164 00000 n 0000337467 00000 n 0000337580 00000 n 0000337895 00000 n 0000338008 00000 n 0000338311 00000 n 0000338424 00000 n 0000338741 00000 n 0000338854 00000 n 0000339181 00000 n 0000339294 00000 n 0000339597 00000 n 0000339710 00000 n 0000340001 00000 n 0000340114 00000 n 0000340417 00000 n 0000340530 00000 n 0000340887 00000 n 0000341000 00000 n 0000341303 00000 n 0000341416 00000 n 0000341761 00000 n 0000341874 00000 n 0000342165 00000 n 0000342278 00000 n 0000342605 00000 n 0000342718 00000 n 0000343045 00000 n 0000343158 00000 n 0000343473 00000 n 0000343586 00000 n 0000343889 00000 n 0000344002 00000 n 0000344317 00000 n 0000344430 00000 n 0000344767 00000 n 0000344880 00000 n 0000345171 00000 n 0000345284 00000 n 0000345575 00000 n 0000345688 00000 n 0000345979 00000 n 0000346092 00000 n 0000346407 00000 n 0000346520 00000 n 0000346835 00000 n 0000346948 00000 n 0000347289 00000 n 0000347402 00000 n 0000347717 00000 n 0000347830 00000 n 0000348159 00000 n 0000348272 00000 n 0000348575 00000 n 0000348688 00000 n 0000349025 00000 n 0000349138 00000 n 0000349479 00000 n 0000349592 00000 n 0000349907 00000 n 0000350020 00000 n 0000350323 00000 n 0000350436 00000 n 0000350739 00000 n 0000350852 00000 n 0000351167 00000 n 0000351280 00000 n 0000351583 00000 n 0000351696 00000 n 0000351999 00000 n 0000352112 00000 n 0000352415 00000 n 0000352528 00000 n 0000352843 00000 n 0000352956 00000 n 0000353289 00000 n 0000353402 00000 n 0000353705 00000 n 0000353818 00000 n 0000354121 00000 n 0000354234 00000 n 0000354549 00000 n 0000354662 00000 n 0000354965 00000 n 0000355078 00000 n 0000355381 00000 n 0000355494 00000 n 0000355797 00000 n 0000355910 00000 n 0000356189 00000 n 0000356302 00000 n 0000356581 00000 n 0000356694 00000 n 0000356973 00000 n 0000357086 00000 n 0000357377 00000 n 0000357490 00000 n 0000357781 00000 n 0000357894 00000 n 0000358185 00000 n 0000358298 00000 n 0000382781 00000 n 0000382729 00000 n 0000384576 00000 n 0000389327 00000 n 0000385522 00000 n 0000383203 00000 n 0000383151 00000 n 0000383942 00000 n 0000384100 00000 n 0000382677 00000 n 0000385366 00000 n 0000384047 00000 n 0000382624 00000 n 0000383045 00000 n 0000384838 00000 n 0000388693 00000 n 0000388059 00000 n 0000387054 00000 n 0000388377 00000 n 0000387476 00000 n 0000384942 00000 n 0000388165 00000 n 0000386897 00000 n 0000385260 00000 n 0000387158 00000 n 0000383626 00000 n 0000386632 00000 n 0000388958 00000 n 0000383573 00000 n 0000384628 00000 n 0000388430 00000 n 0000383414 00000 n 0000388905 00000 n 0000384734 00000 n 0000384523 00000 n 0000385998 00000 n 0000386422 00000 n 0000389117 00000 n 0000387847 00000 n 0000387635 00000 n 0000382465 00000 n 0000386475 00000 n 0000387582 00000 n 0000385154 00000 n 0000388799 00000 n 0000387001 00000 n 0000385418 00000 n 0000387264 00000 n 0000384995 00000 n 0000384470 00000 n 0000386369 00000 n 0000386210 00000 n 0000385733 00000 n 0000388006 00000 n 0000389011 00000 n 0000388587 00000 n 0000383891 00000 n 0000389274 00000 n 0000387688 00000 n 0000383467 00000 n 0000386844 00000 n 0000385945 00000 n 0000387953 00000 n 0000382202 00000 n 0000385892 00000 n 0000384889 00000 n 0000387211 00000 n 0000386263 00000 n 0000388218 00000 n 0000385574 00000 n 0000388852 00000 n 0000387107 00000 n 0000385839 00000 n 0000384258 00000 n 0000388534 00000 n 0000384681 00000 n 0000384785 00000 n 0000383308 00000 n 0000386685 00000 n 0000387900 00000 n 0000382571 00000 n 0000388271 00000 n 0000386104 00000 n 0000387741 00000 n 0000386579 00000 n 0000384152 00000 n 0000382255 00000 n 0000385207 00000 n 0000385627 00000 n 0000389221 00000 n 0000388324 00000 n 0000388112 00000 n 0000385313 00000 n 0000385680 00000 n 0000382833 00000 n 0000382412 00000 n 0000386950 00000 n 0000387794 00000 n 0000388483 00000 n 0000383520 00000 n 0000388640 00000 n 0000386791 00000 n 0000384311 00000 n 0000389064 00000 n 0000384205 00000 n 0000386051 00000 n 0000383098 00000 n 0000386316 00000 n 0000387423 00000 n 0000384364 00000 n 0000385048 00000 n 0000383361 00000 n 0000383679 00000 n 0000388746 00000 n 0000383785 00000 n 0000382308 00000 n 0000386157 00000 n 0000386528 00000 n 0000382518 00000 n 0000387317 00000 n 0000382361 00000 n 0000386738 00000 n 0000383838 00000 n 0000389168 00000 n 0000387370 00000 n 0000385786 00000 n 0000382992 00000 n 0000385469 00000 n 0000382886 00000 n 0000383994 00000 n 0000384417 00000 n 0000382939 00000 n 0000383732 00000 n 0000383255 00000 n 0000385101 00000 n 0000387529 00000 n 0000378231 00000 n 0000378645 00000 n 0000379117 00000 n 0000379594 00000 n 0000380036 00000 n 0000380485 00000 n 0000380902 00000 n 0000381415 00000 n 0000381894 00000 n trailer <<3DEA038117C7B57DE2AD2BA43C924A62>] >> startxref 389379 %%EOF mysql++-3.2.5/lib/stream2string.h000644 000765 000024 00000003305 13515046516 017351 0ustar00tangentstaff000000 000000 /// \file stream2string.h /// \brief Declares an adapter that converts something that can be /// inserted into a C++ stream into a std::string type. /*********************************************************************** Copyright (c) 1998 by Kevin Atkinson, (c) 1999-2001 by MySQL AB, and (c) 2004-2007 by Educational Technology Resources, Inc. Others may also hold copyrights on code in this file. See the CREDITS.txt file in the top directory of the distribution for details. This file is part of MySQL++. MySQL++ is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. MySQL++ is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with MySQL++; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ***********************************************************************/ #if !defined(MYSQLPP_STREAM2STRING_H) #define MYSQLPP_STREAM2STRING_H #include #include namespace mysqlpp { /// \brief Converts anything you can insert into a C++ stream to a /// \c std::string via \c std::ostringstream. template std::string stream2string(const T& object) { std::ostringstream str; str << object; return str.str(); } } // end namespace mysqlpp #endif // !defined(MYSQLPP_STREAM2STRING_H) mysql++-3.2.5/lib/mysql++.cpp000644 000765 000024 00000002465 13515046516 016401 0ustar00tangentstaff000000 000000 /*********************************************************************** mysql++.cpp - Implements functions dealing with the library itself, as opposed to individual features of the library. Copyright (c) 2007 by Educational Technology Resources, Inc. Others may also hold copyrights on code in this file. See the CREDITS file in the top directory of the distribution for details. This file is part of MySQL++. MySQL++ is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. MySQL++ is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with MySQL++; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ***********************************************************************/ #include "mysql++.h" namespace mysqlpp { unsigned int get_library_version() { return MYSQLPP_HEADER_VERSION; } } // end namespace mysqlpp mysql++-3.2.5/lib/connection.h000644 000765 000024 00000032101 13515046516 016700 0ustar00tangentstaff000000 000000 /// \file connection.h /// \brief Declares the Connection class. /// /// Every program using MySQL++ must create a Connection object, which /// manages information about the connection to the database server, and /// performs connection-related operations once the connection is up. /// Subordinate classes, such as Query and Row take their defaults as /// to whether exceptions are thrown when errors are encountered from /// the Connection object that created them, directly or indirectly. /*********************************************************************** Copyright (c) 1998 by Kevin Atkinson, (c) 1999-2001 by MySQL AB, and (c) 2004-2007 by Educational Technology Resources, Inc. Others may also hold copyrights on code in this file. See the CREDITS.txt file in the top directory of the distribution for details. This file is part of MySQL++. MySQL++ is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. MySQL++ is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with MySQL++; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ***********************************************************************/ #if !defined(MYSQLPP_CONNECTION_H) #define MYSQLPP_CONNECTION_H #include "common.h" #include "noexceptions.h" #include "options.h" #include namespace mysqlpp { #if !defined(DOXYGEN_IGNORE) // Make Doxygen ignore this class MYSQLPP_EXPORT Query; class DBDriver; #endif /// \brief Manages the connection to the database server. /// /// This class is a thick wrapper around DBDriver, adding high-level /// error handling, utility functions, and abstraction away from /// underlying C API details. class MYSQLPP_EXPORT Connection : public OptionalExceptions { private: /// \brief Pointer to bool data member, for use by safe bool /// conversion operator. /// /// \see http://www.artima.com/cppsource/safebool.html typedef bool Connection::*private_bool_type; public: /// \brief Create object without connecting to the database server. /// /// \param te if true, exceptions are thrown on errors Connection(bool te = true); /// \brief Create object and connect to database server in one step. /// /// This constructor allows you to most fully specify the options /// used when connecting to the database server. /// /// \param db name of database to select upon connection /// \param server specifies the IPC method and parameters for /// contacting the server; see below for details /// \param user user name to log in under, or 0 to use the user /// name this program is running under /// \param password password to use when logging in /// \param port TCP port number database server is listening on, or /// 0 to use default value; note that you may also give this as /// part of the \c server parameter /// /// The server parameter can be any of several different forms: /// /// - \b 0: Let the database driver decide how to connect; usually /// some sort of localhost IPC method. /// - \b ".": On Windows, this means named pipes, if the server /// supports it /// - \b "/some/domain/socket/path": If the passed string doesn't /// match one of the previous alternatives and we're on a system /// that supports Unix domain sockets, MySQL++ will test it to see /// if it names one, and use it if we have permission. /// - \b "host.name.or.ip:port": If the previous test fails, or if /// the system doesn't support Unix domain sockets at all, it /// assumes the string is some kind of network address, optionally /// followed by a colon and port. The name can be in dotted quad /// form, a host name, or a domain name. The port can either be a /// TCP/IP port number or a symbolic service name. If a port or /// service name is given here and a nonzero value is passed for /// the \c port parameter, the latter takes precedence. Connection(const char* db, const char* server = 0, const char* user = 0, const char* password = 0, unsigned int port = 0); /// \brief Establish a new connection using the same parameters as /// an existing connection. /// /// \param other existing Connection object Connection(const Connection& other); /// \brief Destroy object virtual ~Connection(); /// \brief Get version of library underpinning the current database /// driver. std::string client_version() const; /// \brief Connect to database after object is created. /// /// It's better to use the connect-on-create constructor if you can. /// See its documentation for the meaning of these parameters. /// /// If you call this method on an object that is already connected /// to a database server, the previous connection is dropped and a /// new connection is established. virtual bool connect(const char* db = 0, const char* server = 0, const char* user = 0, const char* password = 0, unsigned int port = 0); /// \brief Returns true if connection was established successfully /// /// \return true if connection was established successfully bool connected() const; /// \brief Returns the number of rows in a table /// /// \param table name of table whose rows you want counted /// /// This is syntactic sugar for a \c SELECT \c COUNT(*) /// \c FROM \c table SQL query. ulonglong count_rows(const std::string& table); /// \brief Ask the database server to create a database /// /// \param db name of database to create /// /// \return true if database was created successfully bool create_db(const std::string& db); /// \brief Drop the connection to the database server void disconnect(); /// \brief Returns a reference to the current database driver /// /// \internal This exists mostly for the benefit of Query, Result /// and ResUse. If there is something you want to use in the /// DBDriver interface, look for something similar in one of these /// classes instead. If you still can't find it, send a message to /// the mailing list asking about it. Unless you're doing something /// very low-level, there should never be a reason to use the /// driver directly. DBDriver* driver() { return driver_; } /// \brief Asks the database server to drop (destroy) a database /// /// \param db name of database to destroy /// /// \return true if database was dropped successfully bool drop_db(const std::string& db); /// \brief Return last error number associated with this /// connection int errnum(); /// \brief Return error message for last error associated with /// this connection. /// /// Returns either a MySQL++-specific error message if one exists, /// or one from the current database driver otherwise. const char* error() const; /// \brief Get information about the IPC connection to the /// database server /// /// String contains info about type of connection (e.g. TCP/IP, /// named pipe, Unix socket...) and the server hostname. std::string ipc_info() const; /// \brief Kill a database server thread /// /// \param tid ID of thread to kill /// /// \see thread_id() bool kill(unsigned long tid) const; /// \brief Test whether any error has occurred within the object. /// /// Allows the object to be used in bool context, like this: /// /// \code /// Connection conn; /// .... use conn /// if (conn) { /// ... nothing bad has happened since last successful use /// } /// else { /// ... some error has occurred /// } /// \endcode /// /// Prior to MySQL++ v3, the object was always falsy when we /// weren't connected. Now a true return simply indicates a lack of /// errors. If you've been using this to test for whether the /// connection is still up, you need to call connected() instead. operator private_bool_type() const { return copacetic_ ? &Connection::copacetic_ : 0; } /// \brief Copy an existing Connection object's state into this /// object. Connection& operator=(const Connection& rhs); /// \brief "Pings" the database server /// /// \retval true if server is responding /// \retval false if either we already know the connection is down /// and cannot re-establish it, or if the server did not respond to /// the ping and we could not re-establish the connection. bool ping(); /// \brief Returns version number of the protocol the database /// driver uses to communicate with the server. int protocol_version() const; /// \brief Return a new query object. /// /// The returned query object is tied to this connection object, /// so when you call a method like /// \link Query::execute() execute() \endlink /// on that object, the query is sent to the server this object /// is connected to. /// /// \param qstr an optional query string for populating the /// new Query object Query query(const char* qstr = 0); /// \brief Return a new query object /// /// \param qstr initial query string Query query(const std::string& qstr); /// \brief Change to a different database managed by the /// database server we are connected to. /// /// \param db database to switch to /// /// \retval true if we changed databases successfully bool select_db(const std::string& db); /// \brief Get the database server's version string std::string server_version() const; /// \brief Sets a connection option /// /// \param o pointer to any derivative of Option allocated on /// the heap /// /// Objects passed to this method and successfully set will be /// released when this Connection object is destroyed. If an error /// occurs while setting the option the object will be deleted /// immediately. /// /// Because there are so many Option subclasses, the actual effect /// of this function has a wide range. This mechanism abstracts /// away many things that are unrelated down at the database driver /// level, hiding them behind a coherent, type-safe interface. /// /// The rules about which options can be set, when, are up to the /// underlying database driver. Some must be set before the /// connection is established because they can only be used during /// that connection setup process. Others can be set at any time /// after the connection comes up. If you get it wrong, you'll get /// a BadOption exception. /// /// \retval true if option was successfully set bool set_option(Option* o); /// \brief Ask database server to shut down. bool shutdown(); /// \brief Returns information about database server's status std::string server_status() const; /// \brief Returns true if both MySQL++ and database driver we're /// using were compiled with thread awareness. static bool thread_aware(); /// \brief Tells the underlying database driver that this thread /// is done using the library. static void thread_end(); /// \brief Returns the database server's thread ID for this connection /// /// This has nothing to do with threading on the client side. The /// only thing you can do with this value is pass it to kill(). unsigned long thread_id(); /// \brief Tells the underlying database driver that the current /// thread is now using its services. /// /// It's not necessary to call this from the thread that creates /// the connection as it's done automatically. This method exists /// for times when multiple threads may use this object; it allows /// the underlying database driver to set up any per-thread data /// structures it needs. /// /// The MySQL++ user manual's chapter /// on threads details two major strategies for dealing with /// connections in the face of threads. The Connection-per-thread /// option frees you from ever having to call this method. The /// other documented strategy is to use ConnectionPool, which opens /// the possibility for one thread to create a connection that /// another uses, so you do need to call this method in that case, /// or with any other similar strategy. /// /// \retval True if there was no problem static bool thread_start(); protected: /// \brief Build an error message in the standard form used whenever /// one of the methods can't succeed because we're not connected to /// the database server. void build_error_message(const char* core); /// \brief Establish a new connection as a copy of an existing one /// /// \param other the connection to copy void copy(const Connection& other); /// \brief Extract elements from the server parameter in formats /// suitable for passing to DBDriver::connect(). bool parse_ipc_method(const char* server, std::string& host, unsigned int& port, std::string& socket_name); //// Subclass data mutable std::string error_message_; ///< MySQL++ specific error, if any private: DBDriver* driver_; bool copacetic_; }; } // end namespace mysqlpp // Not strictly required, but bring in our specialization subclasses #include "tcp_connection.h" #include "uds_connection.h" #include "wnp_connection.h" #endif // !defined(MYSQLPP_CONNECTION_H) mysql++-3.2.5/lib/stadapter.cpp000644 000765 000024 00000031404 13515046516 017070 0ustar00tangentstaff000000 000000 /*********************************************************************** stadapter.cpp - Implements the SQLTypeAdapter class. Copyright © 1998 by Kevin Atkinson, © 1999-2001 by MySQL AB, and © 2004-2009, 2018 by Educational Technology Resources, Inc. Others may also hold copyrights on code in this file. See the CREDITS.txt file in the top directory of the distribution for details. This file is part of MySQL++. MySQL++ is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. MySQL++ is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with MySQL++; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ***********************************************************************/ #include "stadapter.h" #include "mystring.h" #include "refcounted.h" #include "stream2string.h" #include #include #include using namespace std; namespace mysqlpp { SQLTypeAdapter::SQLTypeAdapter() : is_processed_(false) { } SQLTypeAdapter::SQLTypeAdapter(const SQLTypeAdapter& other) : buffer_(other.buffer_), is_processed_(false) { } SQLTypeAdapter::SQLTypeAdapter(const String& other, bool processed) : buffer_(other.buffer_), is_processed_(processed) { } SQLTypeAdapter::SQLTypeAdapter(const std::string& str, bool processed) : buffer_(new SQLBuffer(str, mysql_type_info::string_type, false)), is_processed_(processed) { } #if !defined(DOXYGEN_IGNORE) SQLTypeAdapter::SQLTypeAdapter(const Null& str, bool processed) : buffer_(new SQLBuffer(str.is_null ? null_str : str.data, str.is_null ? typeid(void) : typeid(str.data), str.is_null)), is_processed_(processed) { } SQLTypeAdapter::SQLTypeAdapter(const Null& str, bool processed) : buffer_(new SQLBuffer( str.is_null ? null_str.c_str() : str.data.data(), str.is_null ? null_str.length() : str.data.length(), str.is_null ? typeid(void) : typeid(str.data), str.is_null)), is_processed_(processed) { } #endif SQLTypeAdapter::SQLTypeAdapter(const char* str, bool processed) : buffer_(new SQLBuffer(str, strlen(str), mysql_type_info::string_type, false)), is_processed_(processed) { } SQLTypeAdapter::SQLTypeAdapter(const char* str, int len, bool processed) : buffer_(new SQLBuffer(str, len, mysql_type_info::string_type, false)), is_processed_(processed) { } SQLTypeAdapter::SQLTypeAdapter(char c) : buffer_(new SQLBuffer(stream2string(c), mysql_type_info::string_type, false)), is_processed_(false) { } #if !defined(DOXYGEN_IGNORE) SQLTypeAdapter::SQLTypeAdapter(Null c) : buffer_(new SQLBuffer(c.is_null ? null_str : stream2string(c), c.is_null ? typeid(void) : typeid(c.data), c.is_null)), is_processed_(false) { } #endif SQLTypeAdapter::SQLTypeAdapter(tiny_int i) : buffer_(new SQLBuffer(stream2string(i), typeid(i), false)), is_processed_(false) { } #if !defined(DOXYGEN_IGNORE) SQLTypeAdapter::SQLTypeAdapter(Null > i) : buffer_(new SQLBuffer(i.is_null ? null_str : stream2string(i), i.is_null ? typeid(void) : typeid(i.data), i.is_null)), is_processed_(false) { } #endif SQLTypeAdapter::SQLTypeAdapter(tiny_int i) : buffer_(new SQLBuffer(stream2string(i), typeid(i), false)), is_processed_(false) { } #if !defined(DOXYGEN_IGNORE) SQLTypeAdapter::SQLTypeAdapter(Null > i) : buffer_(new SQLBuffer(i.is_null ? null_str : stream2string(i), i.is_null ? typeid(void) : typeid(i.data), i.is_null)), is_processed_(false) { } #endif SQLTypeAdapter::SQLTypeAdapter(short i) : buffer_(new SQLBuffer(stream2string(i), typeid(i), false)), is_processed_(false) { } #if !defined(DOXYGEN_IGNORE) SQLTypeAdapter::SQLTypeAdapter(Null i) : buffer_(new SQLBuffer(i.is_null ? null_str : stream2string(i), i.is_null ? typeid(void) : typeid(i.data), i.is_null)), is_processed_(false) { } #endif SQLTypeAdapter::SQLTypeAdapter(unsigned short i) : buffer_(new SQLBuffer(stream2string(i), typeid(i), false)), is_processed_(false) { } #if !defined(DOXYGEN_IGNORE) SQLTypeAdapter::SQLTypeAdapter(Null i) : buffer_(new SQLBuffer(i.is_null ? null_str : stream2string(i), i.is_null ? typeid(void) : typeid(i.data), i.is_null)), is_processed_(false) { } #endif SQLTypeAdapter::SQLTypeAdapter(int i) : buffer_(new SQLBuffer(stream2string(i), typeid(i), false)), is_processed_(false) { } #if !defined(DOXYGEN_IGNORE) SQLTypeAdapter::SQLTypeAdapter(Null i) : buffer_(new SQLBuffer(i.is_null ? null_str : stream2string(i), i.is_null ? typeid(void) : typeid(i.data), i.is_null)), is_processed_(false) { } #endif SQLTypeAdapter::SQLTypeAdapter(unsigned i) : buffer_(new SQLBuffer(stream2string(i), typeid(i), false)), is_processed_(false) { } #if !defined(DOXYGEN_IGNORE) SQLTypeAdapter::SQLTypeAdapter(Null i) : buffer_(new SQLBuffer(i.is_null ? null_str : stream2string(i), i.is_null ? typeid(void) : typeid(i.data), i.is_null)), is_processed_(false) { } #endif SQLTypeAdapter::SQLTypeAdapter(long i) : buffer_(new SQLBuffer(stream2string(i), typeid(i), false)), is_processed_(false) { } #if !defined(DOXYGEN_IGNORE) SQLTypeAdapter::SQLTypeAdapter(Null i) : buffer_(new SQLBuffer(i.is_null ? null_str : stream2string(i), i.is_null ? typeid(void) : typeid(i.data), i.is_null)), is_processed_(false) { } #endif SQLTypeAdapter::SQLTypeAdapter(unsigned long i) : buffer_(new SQLBuffer(stream2string(i), typeid(i), false)), is_processed_(false) { } #if !defined(DOXYGEN_IGNORE) SQLTypeAdapter::SQLTypeAdapter(Null i) : buffer_(new SQLBuffer(i.is_null ? null_str : stream2string(i), i.is_null ? typeid(void) : typeid(i.data), i.is_null)), is_processed_(false) { } #endif SQLTypeAdapter::SQLTypeAdapter(longlong i) : buffer_(new SQLBuffer(stream2string(i), typeid(i), false)), is_processed_(false) { } #if !defined(DOXYGEN_IGNORE) SQLTypeAdapter::SQLTypeAdapter(Null i) : buffer_(new SQLBuffer(i.is_null ? null_str : stream2string(i), i.is_null ? typeid(void) : typeid(i.data), i.is_null)), is_processed_(false) { } #endif SQLTypeAdapter::SQLTypeAdapter(ulonglong i) : buffer_(new SQLBuffer(stream2string(i), typeid(i), false)), is_processed_(false) { } #if !defined(DOXYGEN_IGNORE) SQLTypeAdapter::SQLTypeAdapter(Null i) : buffer_(new SQLBuffer(i.is_null ? null_str : stream2string(i), i.is_null ? typeid(void) : typeid(i.data), i.is_null)), is_processed_(false) { } #endif SQLTypeAdapter::SQLTypeAdapter(float f) : is_processed_(false) { typedef numeric_limits nlf; if ((nlf::has_infinity && (f == nlf::infinity())) || (nlf::has_quiet_NaN && (f == nlf::quiet_NaN())) || (nlf::has_signaling_NaN && (f == nlf::signaling_NaN()))) { // f isn't null-able, but it's infinite or NaN, so store it // as a 0. This at least prevents syntactically-invalid SQL. buffer_ = new SQLBuffer("0", typeid(f), true); } else { ostringstream outs; outs.precision(9); // max dec digits needed for IEEE 754 32-bit float outs << f; buffer_ = new SQLBuffer(outs.str(), typeid(f), false); } } #if !defined(DOXYGEN_IGNORE) SQLTypeAdapter::SQLTypeAdapter(Null f) : is_processed_(false) { typedef numeric_limits nlf; if (f.is_null || (nlf::has_infinity && (f.data == nlf::infinity())) || (nlf::has_quiet_NaN && (f.data == nlf::quiet_NaN())) || (nlf::has_signaling_NaN && (f.data == nlf::signaling_NaN()))) { // MySQL wants infinite and NaN FP values stored as SQL NULL buffer_ = new SQLBuffer(null_str, typeid(void), true); } else { ostringstream outs; outs.precision(9); // as above outs << f; buffer_ = new SQLBuffer(outs.str(), typeid(f.data), false); } } #endif SQLTypeAdapter::SQLTypeAdapter(double f) : is_processed_(false) { typedef numeric_limits nld; if ((nld::has_infinity && (f == nld::infinity())) || (nld::has_quiet_NaN && (f == nld::quiet_NaN())) || (nld::has_signaling_NaN && (f == nld::signaling_NaN()))) { // f isn't null-able, but it's infinite or NaN, so store it // as a 0. This at least prevents syntactically-invalid SQL. buffer_ = new SQLBuffer("0", typeid(f), true); } else { ostringstream outs; outs.precision(17); // max dec digits needed for IEEE 754 64-bit float outs << f; buffer_ = new SQLBuffer(outs.str(), typeid(f), false); } } #if !defined(DOXYGEN_IGNORE) SQLTypeAdapter::SQLTypeAdapter(Null f) : is_processed_(false) { typedef numeric_limits nld; if (f.is_null || (nld::has_infinity && (f.data == nld::infinity())) || (nld::has_quiet_NaN && (f.data == nld::quiet_NaN())) || (nld::has_signaling_NaN && (f.data == nld::signaling_NaN()))) { // MySQL wants infinite and NaN FP values stored as SQL NULL buffer_ = new SQLBuffer(null_str, typeid(void), true); } else { ostringstream outs; outs.precision(17); // as above outs << f; buffer_ = new SQLBuffer(outs.str(), typeid(f.data), false); } } #endif SQLTypeAdapter::SQLTypeAdapter(const Date& d) : buffer_(new SQLBuffer(stream2string(d), typeid(d), false)), is_processed_(false) { } #if !defined(DOXYGEN_IGNORE) SQLTypeAdapter::SQLTypeAdapter(const Null& d) : buffer_(new SQLBuffer(d.is_null ? null_str : stream2string(d), d.is_null ? typeid(void) : typeid(d.data), d.is_null)), is_processed_(false) { } #endif SQLTypeAdapter::SQLTypeAdapter(const DateTime& dt) : buffer_(new SQLBuffer(stream2string(dt), typeid(dt), false)), is_processed_(false) { } #if !defined(DOXYGEN_IGNORE) SQLTypeAdapter::SQLTypeAdapter(const Null& dt) : buffer_(new SQLBuffer(dt.is_null ? null_str : stream2string(dt), dt.is_null ? typeid(void) : typeid(dt.data), dt.is_null)), is_processed_(false) { } #endif SQLTypeAdapter::SQLTypeAdapter(const Time& t) : buffer_(new SQLBuffer(stream2string(t), typeid(t), false)), is_processed_(false) { } #if !defined(DOXYGEN_IGNORE) SQLTypeAdapter::SQLTypeAdapter(const Null